Self written tape stuff
This commit is contained in:
@@ -19,6 +19,7 @@ BANK_MODE_CLEAR_MASK = 0xF9 ; preserve ROM-disable and auxiliary outputs
|
||||
.globl _bios_putc
|
||||
.globl _bios_try_getc
|
||||
.globl _bios_getc
|
||||
.globl _bios_flush
|
||||
.globl _bios_init
|
||||
.globl _bios_bank
|
||||
.globl _bios_rom_disable
|
||||
@@ -79,7 +80,7 @@ boot_copy:
|
||||
; Stable BIOS jump table for ROM-resident applications.
|
||||
; C050 putc(A), C053 try_getc(), C056 getc(), C059 io_out(A,L),
|
||||
; C05C io_in(A), C05F delay_ms(HL), C062 monitor warm start,
|
||||
; C065 bank(A), C068 disable ROM, C06B enable ROM.
|
||||
; C065 bank(A), C068 disable ROM, C06B enable ROM, C06E flush output.
|
||||
.org BIOS_PUTC
|
||||
jp bios_service_putc
|
||||
.org BIOS_TRY_GETC
|
||||
@@ -100,11 +101,13 @@ boot_copy:
|
||||
jp _bios_rom_disable
|
||||
.org BIOS_ROM_ENABLE
|
||||
jp _bios_rom_enable
|
||||
.org BIOS_FLUSH
|
||||
jp bios_service_flush
|
||||
|
||||
; Port 00 is write-only. Keep its last BIOS-managed value outside the C data
|
||||
; areas so a monitor warm start does not reset it. The bootstrap establishes
|
||||
; this same value in the hardware before the resident image is copied.
|
||||
.org RESIDENT_RAM_BASE + 0x70
|
||||
.org RESIDENT_RAM_BASE + 0x73
|
||||
_bank_control_shadow::
|
||||
.db BOOT_BANK_MAPPING
|
||||
|
||||
@@ -258,6 +261,22 @@ bios_service_getc:
|
||||
pop bc
|
||||
ret
|
||||
|
||||
bios_service_flush:
|
||||
push af
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
push ix
|
||||
push iy
|
||||
call _bios_flush
|
||||
pop iy
|
||||
pop ix
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
bios_service_io_out:
|
||||
push af
|
||||
push bc
|
||||
|
||||
Reference in New Issue
Block a user