Files

35 lines
2.4 KiB
Plaintext

1 .module wc_mezz
2 .area _CODE
00006006 3 WC_ENTRY = 0x6006
4 .globl _wc_mezz
00000000 5 _wc_mezz::
00000000 DD E5 [15] 6 push ix
00000002 E5 [11] 7 push hl ; save win (HL = 1st arg)
00000003 DD 21 00 00 [14] 8 ld ix, #0
00000007 DD 39 [15] 9 add ix, sp
00000009 DD 7E 06 [19] 10 ld a, 6(ix) ; A = msg_num
0000000C DD 6E 07 [19] 11 ld l, 7(ix)
0000000F DD 66 08 [19] 12 ld h, 8(ix) ; HL = str
00000012 DD 56 09 [19] 13 ld d, 9(ix) ; D = y
00000015 DD 5E 0A [19] 14 ld e, 10(ix) ; E = x
00000018 D9 [ 4] 15 exx
00000019 08 [ 4] 16 ex af, af' ; A' = msg_num
0000001A DD 6E 00 [19] 17 ld l, 0(ix)
0000001D DD 66 01 [19] 18 ld h, 1(ix) ; HL = win
00000020 E5 [11] 19 push hl
00000021 DD E1 [14] 20 pop ix ; IX = win
00000023 D9 [ 4] 21 exx ; HL=str, D=y, E=x
00000024 3E 0C [ 7] 22 ld a, #0x0C
00000026 CD 06 60 [17] 23 call WC_ENTRY
00000029 7A [ 4] 24 ld a, d ; return: next row
0000002A E1 [10] 25 pop hl ; remove saved win
0000002B DD E1 [14] 26 pop ix
27 ; callee cleans 5 bytes
0000002D E1 [10] 28 pop hl ; HL = return address
0000002E 33 [ 6] 29 inc sp
0000002F 33 [ 6] 30 inc sp
00000030 33 [ 6] 31 inc sp
00000031 33 [ 6] 32 inc sp
00000032 33 [ 6] 33 inc sp
00000033 E9 [ 4] 34 jp (hl)