31 lines
1.0 KiB
ArmAsm
31 lines
1.0 KiB
ArmAsm
.module wc_tmrkdfl
|
|
.area _CODE
|
|
WC_ENTRY = 0x6006
|
|
.globl _wc_tmrkdfl
|
|
_wc_tmrkdfl::
|
|
push ix
|
|
push hl ; save panel (HL = 1st arg)
|
|
push de ; save filenum (DE = 2nd arg)
|
|
ld ix, #0
|
|
add ix, sp
|
|
ld e, 8(ix)
|
|
ld d, 9(ix) ; DE = namebuf (from stack)
|
|
ld l, 0(ix)
|
|
ld h, 1(ix) ; HL = filenum (from saved DE)
|
|
exx
|
|
ld l, 2(ix)
|
|
ld h, 3(ix) ; HL = panel (from saved HL)
|
|
push hl
|
|
pop ix ; IX = panel
|
|
exx ; HL=filenum, DE=namebuf
|
|
ld a, #0x36
|
|
call WC_ENTRY
|
|
pop de ; remove saved filenum
|
|
pop hl ; remove saved panel
|
|
pop ix
|
|
; callee cleans 2 bytes (namebuf)
|
|
pop hl
|
|
inc sp
|
|
inc sp
|
|
jp (hl)
|