Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

59 строки
2.8KB

  1. # Nova128 compiler memory map (E01-S05). docs/memory-map.md explains each
  2. # region and the evidence behind it. ld65 refuses any segment that overflows
  3. # its area, so this layout is also the compiler's capacity check.
  4. #
  5. # Bank 0 (CR=$0E) Bank 1 (CR=$4E)
  6. # $0000-$12FF system (BASIC/KERNAL) $0000-$1FFF hidden by common RAM
  7. # $1300-$18FF COMMON (copied at init) $2000-$6AFF SRCCACHE source cache
  8. # $1900-$19FF DISKBUF $6B00-$BFFF BANK1 compiler tables
  9. # $C000-$FFFF system ROM (unmapped RAM)
  10. # $1A00-$1AFF private zero page (P0)
  11. # $1B00-$1BEF SCRATCH (common)
  12. # $1BF0-$1BFF MAILBOX
  13. # $1C01-$B7FF MAIN (stub, code, data)
  14. # $B800-$BFFF SWSTACK
  15. # $C000-$FFFF system ROM
  16. MEMORY {
  17. # Logical zero page. With P0 -> $1A00 these are physical $1A02-$1AFF.
  18. # $00/$01 are the 8502 port and are never allocated.
  19. ZP: file = "", start = $0002, size = $00FE, type = rw, define = yes;
  20. LOADADDR: file = %O, start = $1BFF, size = $0002;
  21. HEADER: file = %O, start = $1C01, size = $000C;
  22. MAIN: file = %O, start = $1C0D, size = $9BF3, define = yes; # to $B7FF
  23. COMMONRAM: file = "", start = $1300, size = $0600, define = yes; # to $18FF
  24. DISKBUF: file = "", start = $1900, size = $0100, define = yes;
  25. SCRATCH: file = "", start = $1B00, size = $00F0, define = yes;
  26. MAILBOX: file = "", start = $1BF0, size = $0010, define = yes;
  27. SWSTACK: file = "", start = $B800, size = $0800, define = yes; # to $BFFF
  28. # Whole-file source cache (D118): >= 18,999 bytes, page aligned.
  29. SRCCACHE: file = "", start = $2000, size = $4B00, define = yes; # to $6AFF
  30. BANK1: file = "", start = $6B00, size = $5500, define = yes; # to $BFFF
  31. }
  32. SEGMENTS {
  33. ZEROPAGE: load = ZP, type = zp, optional = yes;
  34. LOADADDR: load = LOADADDR, type = ro;
  35. EXEHDR: load = HEADER, type = ro;
  36. STARTUP: load = MAIN, type = ro; # first: SYS 7181 enters at $1C0D
  37. CODE: load = MAIN, type = ro;
  38. RODATA: load = MAIN, type = ro, optional = yes;
  39. DATA: load = MAIN, type = rw, optional = yes;
  40. COMMON: load = MAIN, run = COMMONRAM, type = rw, define = yes;
  41. BSS: load = MAIN, type = bss, optional = yes, define = yes;
  42. DISKBUF: load = DISKBUF, type = bss, optional = yes;
  43. SCRATCH: load = SCRATCH, type = bss, optional = yes;
  44. MAILBOX: load = MAILBOX, type = bss, optional = yes;
  45. SWSTACK: load = SWSTACK, type = bss, optional = yes;
  46. SOURCE: load = SRCCACHE, type = bss, optional = yes, define = yes;
  47. TABLES: load = BANK1, type = bss, optional = yes, define = yes;
  48. }
  49. SYMBOLS {
  50. # Physical bank-0 page that P0 maps to logical zero page in compiler states.
  51. __COMPILER_ZP_PAGE__: type = export, value = $1A;
  52. }

Powered by TurnKey Linux.