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

55 строки
2.5KB

  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-$BFFF BANK1 compiler tables
  8. # $1900-$19FF DISKBUF $C000-$FFFF system ROM (unmapped RAM)
  9. # $1A00-$1AFF private zero page (P0)
  10. # $1B00-$1BEF SCRATCH (common)
  11. # $1BF0-$1BFF MAILBOX
  12. # $1C01-$B7FF MAIN (stub, code, data)
  13. # $B800-$BFFF SWSTACK
  14. # $C000-$FFFF system ROM
  15. MEMORY {
  16. # Logical zero page. With P0 -> $1A00 these are physical $1A02-$1AFF.
  17. # $00/$01 are the 8502 port and are never allocated.
  18. ZP: file = "", start = $0002, size = $00FE, type = rw, define = yes;
  19. LOADADDR: file = %O, start = $1BFF, size = $0002;
  20. HEADER: file = %O, start = $1C01, size = $000C;
  21. MAIN: file = %O, start = $1C0D, size = $9BF3, define = yes; # to $B7FF
  22. COMMONRAM: file = "", start = $1300, size = $0600, define = yes; # to $18FF
  23. DISKBUF: file = "", start = $1900, size = $0100, define = yes;
  24. SCRATCH: file = "", start = $1B00, size = $00F0, define = yes;
  25. MAILBOX: file = "", start = $1BF0, size = $0010, define = yes;
  26. SWSTACK: file = "", start = $B800, size = $0800, define = yes; # to $BFFF
  27. BANK1: file = "", start = $2000, size = $A000, define = yes; # to $BFFF
  28. }
  29. SEGMENTS {
  30. ZEROPAGE: load = ZP, type = zp, optional = yes;
  31. LOADADDR: load = LOADADDR, type = ro;
  32. EXEHDR: load = HEADER, type = ro;
  33. STARTUP: load = MAIN, type = ro; # first: SYS 7181 enters at $1C0D
  34. CODE: load = MAIN, type = ro;
  35. RODATA: load = MAIN, type = ro, optional = yes;
  36. DATA: load = MAIN, type = rw, optional = yes;
  37. COMMON: load = MAIN, run = COMMONRAM, type = rw, define = yes;
  38. BSS: load = MAIN, type = bss, optional = yes, define = yes;
  39. DISKBUF: load = DISKBUF, type = bss, optional = yes;
  40. SCRATCH: load = SCRATCH, type = bss, optional = yes;
  41. MAILBOX: load = MAILBOX, type = bss, optional = yes;
  42. SWSTACK: load = SWSTACK, type = bss, optional = yes;
  43. TABLES: load = BANK1, type = bss, optional = yes, define = yes;
  44. }
  45. SYMBOLS {
  46. # Physical bank-0 page that P0 maps to logical zero page in compiler states.
  47. __COMPILER_ZP_PAGE__: type = export, value = $1A;
  48. }

Powered by TurnKey Linux.