32 lines
552 B
ArmAsm
32 lines
552 B
ArmAsm
|
#
|
||
|
#include "asm.h"
|
||
|
|
||
|
! Calls the BIOS SECTRAN routine, which returns its result in HL.
|
||
|
|
||
|
.define _cpm_bios_sectran
|
||
|
_cpm_bios_sectran:
|
||
|
pop d ! pop return address
|
||
|
pop h ! pop translation table
|
||
|
shld trans_table
|
||
|
pop h ! pop sector number
|
||
|
shld sec_num
|
||
|
push h
|
||
|
push h
|
||
|
push d
|
||
|
push b ! save FP as we'll corrupt it
|
||
|
|
||
|
trans_table = . + 1
|
||
|
lxi d, 0
|
||
|
sec_num = . + 1
|
||
|
lxi b, 0
|
||
|
|
||
|
lda 0x30-3 ! BIOS offset from WBOOT to SECTRAN
|
||
|
call call_bios_raw
|
||
|
|
||
|
pop b
|
||
|
xchg ! DE = HL
|
||
|
ret
|
||
|
|
||
|
|
||
|
|