some BIOS work

This commit is contained in:
FeralChild64 authored and FeralChild64 committed 2021-01-26 00:03:07 +01:00
1 parent e35336296f
commit 635ed2f0bb
2 files changed
+33 -11

No files matched your search

+3
View File
@@ -40,6 +40,9 @@
!addr REG_TMP1 = $25 ; emulation-specific temporary storage
!addr REG_TMP2 = $26
!addr VEC_MOVE_fetch = $30 ; vector to byte fetch routine, for BIOS routine MOVE
!addr VEC_MOVE_store = $32 ; vector to byte store routine, for BIOS routine MOVE
!addr VEC_DISKIO_store = $34 ; vector to byte store routine, for BIOS disk I/O operations
!addr VEC_fetch_value = $60
!addr VEC_fetch_stack = $62
+30 -11
View File
@@ -11,7 +11,7 @@
; $FE85 - $FEFF - unused
; $FF00 - $FFFF - Disk Drive Tables, dynamically generated, $10 bytes for each one
!addr zvm_BIOS_return = Z80_instr_C9 ; RET instruction
zvm_BIOS_vectable:
@@ -60,6 +60,10 @@ zvm_BIOS_01_WBOOT: ; Warm start
zvm_BIOS_31_RESERV1: ; Reserved
zvm_BIOS_32_RESERV2: ; Reserved
; Reset BIOS vectors to point to bank 1
; XXX setup VEC_MOVE_fetch, VEC_MOVE_store, VEC_DISKIO_store
; XXX !!!
zvm_BIOS_02_CONST: ; Check if input character available
@@ -115,17 +119,17 @@ zvm_BIOS_14_WRITE: ; Write sector
; XXX !!!
zvm_BIOS_15_LISTST: ; List status
zvm_BIOS_17_CONOST: ; Console output status
; XXX
; Always report the printer / output console as ready
lda #$FF
sta REG_A
jmp zvm_BIOS_return
zvm_BIOS_16_SECTRN: ; Convert logical to physical sector
; XXX !!!
zvm_BIOS_17_CONOST: ; Console output status
; XXX
zvm_BIOS_18_AUXIST: ; AUX input status
; XXX
@@ -156,7 +160,19 @@ zvm_BIOS_24_FLUSH: ; Force buffer flushing for user deblocking
zvm_BIOS_25_MOVE: ; Memory move
; XXX
lda REG_B
ora REG_C
beq @2 ; branch if nothing to be copied
@1:
jsr (VEC_MOVE_fetch)
jsr (VEC_MOVE_store)
inw REG_DE ; source address
inw REG_HL ; destination address
dew REG_BC ; count
bne @1
@2:
; XXX setup VEC_MOVE_fetch (to bank 1), VEC_MOVE_store (to bank 1)
jmp zvm_BIOS_return
zvm_BIOS_26_TIME: ; Get or set time
@@ -164,15 +180,18 @@ zvm_BIOS_26_TIME: ; Get or set time
zvm_BIOS_27_SELMEM: ; Select memory bank
; XXX
; XXX !!!
; XXX setup VEC_MOVE_fetch (REG_A), VEC_MOVE_store (REG_A)
zvm_BIOS_28_SETBNK: ; Set bank for DMA operation
zvm_BIOS_28_SETBNK: ; Set bank for disk DMA operation
; XXX
; XXX !!!
; XXX setup VEC_DISKIO_store (REG_A)
zvm_BIOS_29_XMOVE: ; Set bank if buffer is in bank other than 1 or 2
; XXX
; XXX !!!
; XXX setup VEC_MOVE_fetch (REG_C), VEC_MOVE_store (REG_B)
zvm_BIOS_30_USERF: ; Implementation-specific functionality