Quick look so far. It is what I would describe as exploding args, one byte gives multiple addresses.
More later.
Moderators: cgrey8, EDS50, Jon 94GT, 2Shaker
Quick look so far. It is what I would describe as exploding args, one byte gives multiple addresses.
Jamie,jamie from oz wrote: ↑Sun May 21, 2023 4:32 am John,
6DBD.
Can you help with encoded addresses in Sub_A0BE please.
LST.Code: Select all
9fab: ef,10,01 call a0be Sub_a0be_ ( 9fae: 15,80 #arg 1 8015 ); DIR. Sub A0BE "Sub_A0BE_" :E1 E0 #2/4/23 jm to get arg display correct.
Code: Select all
9f8e: 91,40,80 orb R80,40 B6_R80 = 1;
9f91: 3a,81,09 jb B2,R81,9f9d if (B2_R81 = 0) {
9f94: 3d,86,06 jb B5,R86,9f9d if (B5_R86 = 0) {
9f97: 3d,88,03 jb B5,R88,9f9d if (B5_R88 = 0) {
9f9a: 71,bf,80 an2b R80,bf B6_R80 = 0; } } }
9f9d: ef,1e,01 call a0be Sub_a0be (
9fa0: 0f #arg 1 f, # [04B7] ?04B7?
# [EC0B] ?EC0B?
# [EC29] ?EC29?
# [089F] ?089F?
# [08B6] ?08B6?
9fa1: 0d #arg 2 d ); # [04DB] ?04DB?
9fa2: 91,40,80 orb R80,40 B6_R80 = 1;
9fa5: 3f,8f,03 jb B7,R8f,9fab if (B7_R8f = 0) {
9fa8: 71,bf,80 an2b R80,bf B6_R80 = 0; }
9fab: ef,10,01 call a0be Sub_a0be (
9fae: 15 #arg 1 15, # [04BD] ?04BD?
# [EC11] ?EC11?
# [EC2F] ?EC2F?
# [08A0] ?08A0?
# [08BC] ?08BC?
9faf: 80 #arg 2 80 );
It's not possible to just apply one subroutines solution to all others.Any with 8### don't decode and i have tried xF0 and xE0 but i was getting lost/confused in how to decode them.
From our previous decoding encoded addresses my understanding is 8015 would be decoded as 80 refers to F0 that = C000 and add 15 that would be address combined to be C000+15=C015 ??
No it's not correct.jamie from oz wrote: ↑Sun May 21, 2023 7:15 am John,
my next encoded address problem.
edit. have tried :UW N : E4 F0 N and appears to be valid addresses but not sure if this is correct ?Code: Select all
a00a: 29,a2 scall a1ae Sub_a1ae_ ( a00c: 03,00 #arg 1 LIO_Port, a00e: 80,98 #arg 2 cbf4 );
Thanks,Code: Select all
SUB A1AE "Sub_a1ae_" :UW N : E1 E0 N
Jamie
Code: Select all
Sub_a1ae:
a1ae: cc,26 pop R26 R26scr = pop(); # A00C
a1b0: b2,27,28 ldb R28,[R26++] R28 = [R26scr]; # Y 03
a1b3: ae,27,2a ldzbw R2a,[R26++] R2Ascr = [R26scr]; # Y 0000
a1b6: b2,27,29 ldb R29,[R26++] R29 = [R26scr]; # Y 80
a1b9: ae,27,24 ldzbw R24,[R26++] R24scr = [R26scr]; # Y 98
a1bc: c8,26 push R26 push(R26scr); # A010
a1be: 73,2b,da,04,28 an2b R28,[R2a+4da] R28 &= [R2Ascr+4da]; # 03 & [0000+4DA]
a1c3: df,05 je a1ca if (R28 != 0) {
a1c5: 92,24,29 orb R29,[R24] R29 |= [R24scr]; # 80 |= R98
a1c8: 20,05 sjmp a1cf goto a1cf; }
a1ca: 12,29 cplb R29 R29 = ~R29;
a1cc: 72,24,29 an2b R29,[R24] R29 &= [R24scr];
a1cf: c6,24,29 stb R29,[R24] [R24scr] = R29; R98 = (80 |= R98)
a1d2: f0 ret return;
Code: Select all
SUB A1AE "Sub_a1ae_" :Y :Y :Y :Y
Users browsing this forum: No registered users and 5 guests