I have a question about RBase values.....How can I tell what the value should be in a subroutine? Here is an exampler from eko2...
Code: Select all
Sub_868c5:
868c5: f2 pushp push(PSW);
868c6: b0,83,26 ldb R26,R83 TEMP1L = PDL;
868c9: 99,08,26 cmpb R26,8
868cc: d9,6a jgtu 86938 if (TEMP1L <= 8) {
868ce: 99,06,26 cmpb R26,6
868d1: d3,65 jnc 86938 if (TEMP1L >= 6) {
868d3: 3f,9d,62 jb B7,R9d,86938 if (FLG_SFT_IN = 0) {
868d6: a3,01,08,f1,34 ldw R34,[R0+f108] TMP1L = OSDIAG_1F108;
868db: b0,81,36 ldb R36,R81 TMP2L = GR_CM;
868de: ac,81,38 ldzbw R38,R81 TMP3L = GR_CM;
868e1: 08,01,38 shrw R38,1 TMP3L >>= 1;
868e4: b3,39,d7,06,26 ldb R26,[R38+6d7] TEMP1L = [TMP3L+106d7];
868e9: 99,08,36 cmpb R36,8
868ec: df,34 je 86922 if (TMP2L != 8) {
868ee: d9,48 jgtu 86938 if (TMP2L > 8) goto 86938;
868f0: b3,e2,9e,94 ldb R94,[Re2+9e] FLAGTEMP_BG = FLAGS_R121E;
868f4: 32,94,41 jnb B2,R94,86938 if (B2_FLAGTEMP_BG = 0) goto 86938;
868f7: a3,01,04,f1,3c ldw R3c,[R0+f104] TMP5L = ESDIAG;
868fc: 8b,fd,14,01,3c cmpw R3c,[Rfc+114]
86901: d3,35 jnc 86938 if (TMP5L < [15c5c]) goto 86938;
86903: a0,62,3c ldw R3c,R62 TMP5L = TP_REL;
86906: 8b,fd,16,01,3c cmpw R3c,[Rfc+116]
8690b: d3,2b jnc 86938 if (TMP5L < [15c5e]) goto 86938;
8690d: 8b,ff,80,01,34 cmpw R34,[Rfe+180]
86912: db,1b jc 8692f if (TMP1L >= OSSMIN) goto 8692f;
86914: a3,01,02,f1,34 ldw R34,[R0+f102] TMP1L = VSDIAG;
86919: 8b,fd,22,01,34 cmpw R34,[Rfc+122]
8691e: d9,09 jgtu 86929 if (TMP1L > [15c6a]) goto 86929;
86920: 20,16 sjmp 86938 goto 86938; }
86922: 8b,ff,80,01,34 cmpw R34,[Rfe+180]
86927: d3,06 jnc 8692f if (TMP1L < OSSMIN) goto 8692f; }
86929: 17,26 incb R26 TEMP1L++;
8692b: d3,06 jnc 86933 if (TEMP1L <= ff) goto 86933;
8692d: 20,09 sjmp 86938 goto 86938; } }
8692f: 15,26 decb R26 TEMP1L--;
86931: d3,05 jnc 86938 if (TEMP1L < 0) goto 86938; }
86933: c7,39,d7,06,26 stb R26,[R38+6d7] [TMP3L+106d7] = TEMP1L; } } } } } } } }
86938: f3 popp PSW = pop();
86939: f0 ret return;
It looks like R26 should be an Rbase value, but I am lost as to find out what it should be.
Funny enough I think I found another bug in SAD V5, here is the same subroutine from the SAD V5 LST file..
Code: Select all
Sub_868c5:
868c5: f2 pushp push(PSW);
868c6: b0,83,26 ldb R26,R83 TEMP1L = PDL;
868c9: 99,08,26 cmpb R26,8
868cc: d9,6a jgtu 86938 if (TEMP1L <= 8) {
868ce: 99,06,26 cmpb R26,6
868d1: d3,65 jnc 86938 if (TEMP1L >= 6) {
868d3: 3f,9d,62 jb B7,R9d,86938 if (FLG_SFT_IN = 0) {
868d6: a3,01,08,f1,34 ldw R34,[R0+f108] TMP1L = OSDIAG_1F108;
868db: b0,81,36 ldb R36,R81 TMP2L = GR_CM;
868de: ac,81,38 ldzbw R38,R81 TMP3L = GR_CM;
868e1: 08,01,38 shrw R38,1 TMP3L >>= 1;
868e4: b3,39,d7,06,26 ldb R26,[R38+6d7] TEMP1L = [TMP3L+306d7];
868e9: 99,08,36 cmpb R36,8
868ec: df,34 je 86922 if (TMP2L != 8) {
868ee: d9,48 jgtu 86938 if (TMP2L > 8) goto 86938;
868f0: b3,e2,9e,94 ldb R94,[Re2+9e] FLAGTEMP_BG = FLAGS_R121E;
868f4: 32,94,41 jnb B2,R94,86938 if (B2_FLAGTEMP_BG = 0) goto 86938;
868f7: a3,01,04,f1,3c ldw R3c,[R0+f104] TMP5L = ESDIAG;
868fc: 8b,fd,14,01,3c cmpw R3c,[Rfc+114]
86901: d3,35 jnc 86938 if (TMP5L < [15c5c]) goto 86938;
86903: a0,62,3c ldw R3c,R62 TMP5L = TP_REL;
86906: 8b,fd,16,01,3c cmpw R3c,[Rfc+116]
8690b: d3,2b jnc 86938 if (TMP5L < [15c5e]) goto 86938;
8690d: 8b,ff,80,01,34 cmpw R34,[Rfe+180]
86912: db,1b jc 8692f if (TMP1L >= OSSMIN) goto 8692f;
86914: a3,01,02,f1,34 ldw R34,[R0+f102] TMP1L = VSDIAG;
86919: 8b,fd,22,01,34 cmpw R34,[Rfc+122]
8691e: d9,09 jgtu 86929 if (TMP1L > [15c6a]) goto 86929;
86920: 20,16 sjmp 86938 goto 86938; }
86922: 8b,ff,80,01,34 cmpw R34,[Rfe+180]
86927: d3,06 jnc 8692f if (TMP1L < OSSMIN) goto 8692f; }
86929: 17,26 incb R26 TEMP1L++;
8692b: d3,06 jnc 86933 if (TEMP1L <= ff) goto 86933;
8692d: 20,09 sjmp 86938 goto 86938; } }
8692f: 15,26 decb R26 TEMP1L--;
86931: d3,05 jnc 86938 if (TEMP1L < 0) goto 86938; }
86933: c7,39,d7,06,26 stb R26,[R38+6d7] [TMP3L+306d7] = TEMP1L; } } } } } } } }
86938: f3 popp PSW = pop();
86939: f0 ret return;
I am sure you can spot it right away...LOL