reworked native mode extended memory map for easier porting of the legacy software

This commit is contained in:
FeralChild64 committed 2021-04-14 18:30:26 +02:00
1 parent d68583d1b3
commit bf583d904b
1 file changed
+40 -30
+40 -30
View File
@@ -33,39 +33,49 @@
; Pages 4-7 - reused screen memory
;
; $400-$57F - reserved for BASIC
!addr M65_RS232_INBUF = $400 ; $400-$4FF -- reserved for RS-232 input buffer --
!addr M65_RS232_OUTBUF = $500 ; $500-$5FF -- reserved for RS-232 output buffer --
; $400-$57F -- UNUSED -- reserved for BASIC
; $600-$77F - reserved for BASIC
; $580-$5FF - reserved for KERNAL
; $600-$77F -- UNUSED -- reserved for BASIC
!addr M65_SCRSEG = $580 ; $580-$581 segment address (2 higher bytes) of the screen memory
!addr M65_SCRBASE = $582 ; $582-$583 first byte of screen memory
!addr M65_SCRGUARD = $584 ; $584-$585 last byte of screen memory + 1 XXX is it needed?
!addr M65_COLGUARD = $586 ; $586-$587 last byte of colour memory + 1
!addr M65_COLVIEW = $588 ; $588-$589 first byte of color memory viewport
!addr M65_COLVIEWMAX = $58A ; $58A-$58B largest allowed value of M65_COLVIEW
!addr M65_SCRMODE = $58C ; 0 = 40x25, 1 = 80x25, 2 = 80x50
!addr M65_SCRWINMODE = $58D ; $00 = normal mode, $FF = window enabled
!addr M65_TXTWIN_X0 = $58E ; text window - top-left X coordinate, starting from 0
!addr M65_TXTWIN_Y0 = $58F ; text window - top-left Y coordinate, starting from 0
!addr M65_TXTWIN_X1 = $590 ; text window - bottom-right X coordinate + 1
!addr M65_TXTWIN_Y1 = $591 ; text window - bottom-right Y coordinate + 1
!addr M65_TXTROW_OFF = $592 ; $592-$593 offset to the current text row from the viewport start
!addr M65_SCRCOLMAX = $594 ; maximum allowed column
!addr M65_ESCMODE = $595 ; flag - if set, escape mode is in effect
!addr M65_KB_BUCKY = $596 ; result of bucky keys scan
!addr M65_KB_COLSCAN = $597 ; $597-$59F results of keyboard scan, columns 0-8
!addr M65_KB_PRESSED = $5A0 ; $5A0-$5A2 keys pressed, used during scanning keyboard
!addr M65_KB_PRESSED_OLD = $5A3 ; $5A3-$5A5 keys pressed during previous scan
!addr M65_KB_PRESSED_NEW = $5A6 ; $5A6-$5A8 set of M65_KB_PRESSED minus M65_KB_PRESSED_OLD
!addr M65_BELLDSBL = $5A9 ; flag - if set, disable the bell
!addr M65_SOLIDCRSR = $5AA ; flag - if set, cursor is solid (does not flash)
!addr M65_JOYCRSR = $5AB ; joystick to be used for cursor movement
; $5AC-$5EB -- UNUSED --
!addr M65_DMAGIC_LIST = $5F1 ; $5EF-$5FF reserved for DMAgic list, 15 bytes (modulo bytes are not needed)
!addr M65_RS232_INBUF = $600 ; $600-$6FF -- reserved for RS-232 input buffer --
!addr M65_RS232_OUTBUF = $700 ; $700-$7FF -- reserved for RS-232 output buffer --
; $780-$7FF - reserved for KERNAL
!addr M65_SCRSEG = $780 ; $780-$781 segment address (2 higher bytes) of the screen memory
!addr M65_SCRBASE = $782 ; $782-$783 first byte of screen memory
!addr M65_SCRGUARD = $784 ; $784-$785 last byte of screen memory + 1 XXX is it needed?
!addr M65_COLGUARD = $786 ; $786-$787 last byte of colour memory + 1
!addr M65_COLVIEW = $788 ; $788-$789 first byte of color memory viewport
!addr M65_COLVIEWMAX = $78A ; $78A-$78B largest allowed value of M65_COLVIEW
!addr M65_SCRMODE = $78C ; 0 = 40x25, 1 = 80x25, 2 = 80x50
!addr M65_SCRWINMODE = $78D ; $00 = normal mode, $FF = window enabled
!addr M65_TXTWIN_X0 = $78E ; text window - top-left X coordinate, starting from 0
!addr M65_TXTWIN_Y0 = $78F ; text window - top-left Y coordinate, starting from 0
!addr M65_TXTWIN_X1 = $790 ; text window - bottom-right X coordinate + 1
!addr M65_TXTWIN_Y1 = $791 ; text window - bottom-right Y coordinate + 1
!addr M65_TXTROW_OFF = $792 ; $792-$793 offset to the current text row from the viewport start
!addr M65_SCRCOLMAX = $794 ; maximum allowed column
!addr M65_ESCMODE = $795 ; flag - if set, escape mode is in effect
!addr M65_KB_BUCKY = $796 ; result of bucky keys scan
!addr M65_KB_COLSCAN = $797 ; $797-$79F results of keyboard scan, columns 0-8
!addr M65_KB_PRESSED = $7A0 ; $7A0-$7A2 keys pressed, used during scanning keyboard
!addr M65_KB_PRESSED_OLD = $7A3 ; $7A3-$7A5 keys pressed during previous scan
!addr M65_KB_PRESSED_NEW = $7A6 ; $7A6-$7A8 set of M65_KB_PRESSED minus M65_KB_PRESSED_OLD
!addr M65_BELLDSBL = $7A9 ; flag - if set, disable the bell
!addr M65_SOLIDCRSR = $7AA ; flag - if set, cursor is solid (does not flash)
!addr M65_JOYCRSR = $7AB ; joystick to be used for cursor movement
; $7AC-$7C8 -- UNUSED --
!addr M65_DMAGIC_LIST = $7C9 ; $7C9-$7D7 reserved for DMAgic list, 15 bytes (modulo bytes are not needed)
; $7D8-$7E7 - 4 32bit registers, reserved for parameters for future Kernal AP{I expansion
!addr M65_R0 = $7D8 ; $7D8-$7DB
!addr M65_R1 = $7DC ; $7DC-$7DF
!addr M65_R2 = $7E0 ; $7E0-$7E3
!addr M65_R3 = $7E4 ; $7E4-$7E7
; $7E8-$7FF - 24 free bytes, as in the legacy compatibility mode
;
; Addresses for configuring the DMA job