Addition memory map notes, edit and add to MemMap documentation. | | $FE00 | | | | | | | VECTORS: | $FE40 | RESV | Default vectors | | $FE42 | SWI3V | when running in ROM | | $FE44 | SWI2V | Same location as SWTPC | | $FE46 | FIRQV | | | $FE48 | IRQV | | DEFSWI: | $FE4A | SWIV | | | $FE4C | NMIV | | | $FE4E | DMADONE | | | | | | | $FE50 | EVENTV | | DEFBRK: | $FE52 | BRKV | | | $FE54 | xxx1V | | | $FE56 | IRQ2V | | | $FE58 | CLIV | | | $FE5A | BYTEV | | | $FE5C | WORDV | | | $FE5E | WRCHV | | | $FE60 | RDCHV | | | $FE62 | FILEV | | | $FE64 | ARGSV | | | $FE66 | BPUTV | | | $FE68 | BGETV | | | $FE6A | GBPBV | | | $FE6C | FINDV | | | | | | | $FE6E | PROGRAM | Program entry address | | $FE70 | MEMBOT | Bottom of user memory | | $FE72 | MEMTOP | Top of user memory | | $FE74 | ADDRESS | Tube execution address | | $FE76 | TRANSFER| Tube transfer address | | $FE78 | LPTR | Command line tail | | $FE7A | CTRL | Control block address | | $FE7C | DMATYPE | TempA/Client personality | | $FE7D | FAULT | Last error message | | $FE7F | ESCFLG | Escape flag | | | | | Vector dispatch | XRES: | $FE80 | JMP [RESV] | via WORKSP+$00 | | XSWI3: | $FE84 | JMP [SWI3V] | via WORKSP+$02 | | XSWI2: | $FE88 | JMP [SWI2V] | via WORKSP+$04 | | XFIRQ: | $FE8C | JMP [FIRQV] | via WORKSP+$06 | | XIRQ: | $FE90 | JMP [IRQV] | via WORKSP+$08 | | XSWI: | $FE94 | JMP [SWIV] | via WORKSP+$0A | | XNMI: | $FE98 | JMP [NMIV] | via WORKSP+$0C | | | $FE9C | JMP [NMIV+2] | via WORKSP+$0E | | XEVENT: | $FEA0 | JMP [EVENTV] | via WORKSP+$10 | | XBRK: | $FEA4 | JMP [BRKV] | via WORKSP+$12 | | Xxxx1: | $FEA8 | JMP [xxx1V] | via WORKSP+$14 | | XIRQ2: | $FEAC | JMP [IRQ2V] | via WORKSP+$16 | | XCLI: | $FEB0 | JMP [CLIV] | via WORKSP+$18 | | XBYTE: | $FEB4 | JMP [BYTEV] | via WORKSP+$1A | | XWORD: | $FEB8 | JMP [WORDV] | via WORKSP+$1C | | XWRCH: | $FEBC | JMP [WRCHV] | via WORKSP+$1E | | XRDCH: | $FEC0 | JMP [RDCHV] | via WORKSP+$20 | | XFILE: | $FEC4 | JMP [FILEV] | via WORKSP+$22 | | XARGS: | $FEC8 | JMP [ARGSV] | via WORKSP+$24 | | XBPut: | $FECC | JMP [BPUTV] | via WORKSP+$26 | | XBGet: | $FED0 | JMP [BGETV] | via WORKSP+$28 | | XGBPB: | $FED4 | JMP [GBPBV] | via WORKSP+$2A | | XFIND: | $FED8 | JMP [FINDV] | via WORKSP+$2C | | | $FEDC | JMP [FINDV+2] | via WORKSP+$2E | | | | | | | IOADDR: | $FEE0 | IO ADDRS | | HWVEC: | $FEF0 | Remapped hardware vectors | | Hardware vectors, remapped from $FFFx | | FDB XRES | $FEF0 | RESERVED | FDB XSWI3 | $FEF2 | SWI3 | FDB XSWI2 | $FEF4 | SWI2 | FDB XFIRQ | $FEF6 | FIRQ | FDB XIRQ | $FEF8 | IRQ | FDB XSWI | $FEFA | SWI1 | FDB XNMI | $FEFC | NMI | FDB RESET | $FEFE | RESET |-----------+---------+-------+---------+-----------+------------------------------------- | ORG $FEF0 FDB HUSER ; FFF0 -> FF00 FDB SWI3 ; FFF2 -> 0100 FDB SWI2 ; FFF4 -> 0103 FDB FIRQ ; FFF6 -> 010F FDB IRQ ; FFF8 -> 010C FDB SWI ; FFFA -> 0106 FDB NMI ; FFFC -> 0109 FDB RESET ; FFFE -> STARTUP ORG $FF00 HUSER: JMP [USERV] ; FF00 -> [DFD0] HSWI3: JMP [SWI3V] ; FF04 -> [DFC2] HSWI2: JMP [SWI2V] ; FF08 -> [DFC4] HFIRQ: JMP [FIRQV] ; FF0C -> [DFC6] HIRQ: JMP [IRQV] ; FF10 -> [DFC8] HSWI: JMP [SWIV] ; FF14 -> [DFCA] HNMI: JMP [NMIV] ; FF18 -> [DFC0] | IF WORKSP > ROMSTART | | | | | Vector dispatch | | | | | XRES: JMP >RTI | | | $FF00 | | XSWI3: JMP >RTI | | | $FF03 | | XSWI2: JMP >RTI | | | $FF06 | | XFIRQ: JMP >RTI | | | $FF09 | | XIRQ: JMP >RTI | | | $FF0C | | XSWI: JMP >ERROR | | | $FF0F | | XNMI: JMP >RTI | | | $FF12 | | | | | | | RESV: EQU XRES+1 | | | $FF01 | | SWI3V: EQU XSWI3+1 | | | $FF04 | | SWI2V: EQU XSWI2+1 | | | $FF07 | | FIRQV: EQU XFIRQ+1 | | | $FF0A | | IRQV: EQU XIRQ+1 | | | $FF0D | | SWIV: EQU XSWI+1 | | | $FF10 | | NMIV: EQU XNMI+1 | | | $FF13 | +-----------+---------+-------+---------+-----------+------------------------------------- | | | CoCo/Dragon | | | | $0100 | JMP SWI3 | Default -> $FF04 | | | $0103 | JMP SWI2 | Default -> $FF08 | | | $0106 | JMP SWI | Default -> $FF04 | | | $0109 | JMP NMI | Default -> $FF18 | | | $010C | JMP IRQ | Default -> $FF10 | | | $010F | JMP FIRQ | Default -> $FF0C