reworked native mode extended memory map for easier porting of the legacy software
This commit is contained in:
1 parent
d68583d1b3
commit
bf583d904b
1 file changed
+40
-30
@@ -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
|
||||
|
||||
Reference in new issue
Block a user