more work on CP/M memory banking

This commit is contained in:
FeralChild64 committed 2020-12-31 23:07:33 +01:00
1 parent d71ce24357
commit 05c68cd79d
4 files changed
+105 -26

No files matched your search

+6 -6
View File
@@ -69,9 +69,7 @@
;
!addr PTR_IXY_d = $30 ; 4 bytes - calculated address IX+d / IY+d XXX - review usage !!!
!addr PTR_IXY_d_EXT1 = PTR_IXY_d+2
!addr PTR_DATA = $34 ; 4 bytes - calculated data source address XXX - review usage !!! also check functions using ZVM_store_next
!addr PTR_DATA_EXT1 = PTR_DATA+2
!addr ADDR_IO = $38 ; 4 bytes - address for fetching/storing the IO
!addr REG_TMP1 = $3C ; 1 byte - emulation-specific temporary storage
@@ -80,17 +78,19 @@
; $3E ; 2 bytes - reserved
;
; Memory banking vectors
; Memory banking vectors - every single routine destroys .Y in case of bank 0
;
; XXX inline some of these routines - provide separate opcode implementations for various banks
!addr zvm_bankvectors__start = $40
!addr VEC_fetch_via_PC_inc = $40 ; fetch to .A from (PC), increment PC afterwards XXX consider providing dual-byte retrieval
!addr VEC_fetch_via_PC_inc = $40 ; fetch to .A from (PC), increment PC afterwards
!addr VEC_fetch_stack = $42 ; fetch to .A - stack POP operation, destroys .X
!addr VEC_store_stack = $44 ; store .A - stack PUSH operation, destroys .X
; XXX implement routines for vectors below
!addr VEC_fetch_stack = $42
!addr VEC_store_stack = $44
!addr VEC_fetch_via_BC = $46
!addr VEC_store_via_BC = $48
!addr VEC_fetch_via_DE = $4A