Needs some time spent on it to work out the contents of various temporary registers and the purpose of the sub.
RZASA
Code: Select all
0803b: b3,41,99,9c,40 ldb R40,[R40+9c99] TMP7L = [TMP7L+19c99];
0807d: b3,45,99,9c,44 ldb R44,[R44+9c99] TMP9L = [TMP9L+19c99];
080d3: b3,3d,99,9c,3c ldb R3c,[R3c+9c99] TMP5L = [TMP5L+19c99];
OMAE2 L1a1fe does look like the start of the equivalent structure.
OMAE2
Code: Select all
0b8fd: b3,41,fe,a1,40 ldb R40,[R40+a1fe] R40 = [R40+1a1fe];
0b93f: b3,45,fe,a1,44 ldb R44,[R44+a1fe] R44 = [R44+1a1fe];
0b995: b3,3d,fe,a1,3c ldb R3c,[R3c+a1fe] R3c = [R3c+1a1fe];
Solve one...both solved.
Yes these are tables.
1873E
18806
188CE
From the comments in DIR for LU Subs, tells you what the registers hold for table lookups.
###### Word Table Lookup Subroutines: R3C Tb_Addr Reg, R34 Column Input Reg, R36 Row Input Reg
###### R38 Column Quantity Input Reg, R3E Output Reg
The table address is loaded into R3C before a table lookup sub call.
swTb34EPPH is a table.
Code: Select all
09756: a1,1c,5d,36 ldw R36,5d1c TMP2L = uuyFn.0x15d1c;
0975a: b3,01,93,f3,38 ldb R38,[R0+f393] TMP3L = VS_U4_DELTA;
0975f: 10,09 rombk 9
09761: ef,84,93 call 92ae8 SLU92AE8_UUYFn ();
09764: ac,3c,34 ldzbw R34,R3c TMP1L = TMP5L;
09767: a1,2c,5d,36 ldw R36,5d2c TMP2L = uuyFn.0x15d2c;
0976b: b3,e4,fd,38 ldb R38,[Re4+fd] TMP3L = VSBART_RT;
0976f: 10,09 rombk 9
09771: ef,74,93 call 92ae8 SLU92AE8_UUYFn ();
09774: ac,3c,36 ldzbw R36,R3c TMP2L = TMP5L;
09777: ad,08,38 ldzbw R38,8 TMP3L = 8;
0977a: a1,3c,5d,3c ldw R3c,5d3c TMP5L = swTb34EPPH; <<<<<<<<<<<<<<<<<<<<<<<<
0977e: 10,09 rombk 9
09780: ef,b0,96 call 92e33 SLU92E33_Y16SWTb (); <<<<<<<<<<<<<<<<<<<<<<<<
09783: a0,3e,3c ldw R3c,R3e TMP5L = TMP6L;