mirror of
https://codeberg.org/hkzlab/TK2048.git
synced 2025-12-26 07:52:17 +11:00
30 lines
No EOL
1.7 KiB
Scheme
30 lines
No EOL
1.7 KiB
Scheme
(define memories
|
|
'((memory zeroPage (address (#x56 . #xff)) (type ram)
|
|
(section registers zpage zzpage))
|
|
(memory firstPage (address (#x100 . #x1ff)) (section stack))
|
|
(memory reserved (address (#x200 . #x7ff)) (type ram))
|
|
(memory program (address (#x800 . #x15ff)) (type ram)
|
|
(section (programStart #x800) (dii_critical_wr_code #x803) (dii_critical_rd_code #x90b) startup code switch idata cdata data_init_table))
|
|
;;; (memory exportedTables (address (#x1c00 . #x1c1f)) (type ram) (section functionTable)) ;;; Exported function table can be found here
|
|
(memory dataMem (address (#x1600 . #x1fff)) (type ram) (section cstack zdata data heap zpsave))
|
|
(memory displayPage1 (address (#x2000 . #x3fff)) (type ram))
|
|
(memory upperMem (address (#x4000 . #x99ff)) (type ram))
|
|
(memory sharedMem (address (#x9a00 . #x9bff)) (type ram)) ;;; This memory page will be used to pass parameters and data between the master and the modules, and to save the game state
|
|
(memory diskBuffer (address (#x9c00 . #x9fff)) (type ram)) ;;; This memory will be used by the disk II routines as buffer
|
|
(memory displayPage2 (address (#xa000 . #xbfff)) (type ram))
|
|
(memory io (address (#xc000 . #xc0ff)) (type ram))
|
|
(memory rombank (address (#xc100 . #xffff)) (type rom))
|
|
|
|
(block cstack (size #x600))
|
|
(block heap (size #x000))
|
|
(block stack (size #x100))
|
|
))
|
|
|
|
|
|
;;; Floppy buffer structure
|
|
;;; The decoding table for the reads should be generated ad 0x0356
|
|
;;; The "twos" buffer should be located at 0x9C00
|
|
;;; The encoding table should be located at 0x9C56
|
|
;;; The "sixes" buffer should be located at 0x9D00, and it should overlap with the buffer used for DOS catalog reads
|
|
;;; We leave pages 9E and 9F alone, as resetting back with those modified leads to breakage
|
|
|