68xx CoPro Memory Map for various builds ======================================== Memory Map Overview ------------------- |ROMCoPro|RAMCoPro|SWTPC/etc| 6812hi | 6812lo |6809BBC | $0000 +--------+--------+---------+--------+--------+--------+ | | $00C0 +--------+ +--------+ | WORKSP | | WORKSP | $0100 +--------+ +--------+ | ERRBUF | | ERRBUF | $0180 +--------+ +--------+ | CLIBUF | | $0200 +--------+ +--------+ | |Vectors | $0236 + +--------+ | | WORKSP | $0400 + +--------+ | | $1000 +--------+--------+---------+--------+--------+--------+ | | ERRBUF | | $1030 + +--------+ + | | CLIBUF | | $10C0 + +--------+ + | | WORKSP | | $1100 + +--------+ + | | $7F00 + +--------+ + | | ERRBUF | | $7F30 + +--------+ + | | CLIBUF | | $7FC0 + +--------+ + | | WORKSP | | $8000 +--------+--------+---------+--------+--------+--------+ | | $DF00 + +---------+ + | | ERRBUF | | $DF30 + +---------+ + | | CLIBUF | | $DFC0 + +---------+ + | | WORKSP | | $E000 + +---------+ + | | I/O | | | +---------+ + | | $F800 +--------+--------+---------+--------+--------+ + | BIOS entry block | | $F820 +--------+--------+---------+--------+--------+ + | | $FF00 + +--------+ + | | ERRBUF | | $FF30 + +--------+ + | | CLIBUF | | $FF80 + +--------+ + | | WORKSP | | $FF95 +--------+--------+---------+--------+--------+--------+ | MOS Entry points | $FFFF +--------+--------+---------+--------+--------+--------+ |ROMCoPro|RAMCoPro|SWTPC/etc| 6812hi | 6812lo |6809BBC | +-----------+---------+--------------+-------------+------------------------------------------------------+ | Standard 6809 BIOS entry block | | | COLD: | $F800 | FDB RESET | | cold start | | WARM: | $F802 | FDB WARMS | | warm start | | INCH: | $F804 | FDB OSRDCH | | char input | | INCHE: | $F806 | FDB INECHO | | char input with echo | | INCHECK: | $F808 | FDB KBDTST | | test for char input | | OUTCH: | $F80A | FDB OSWRCH | | char output | | PDATA: | $F80C | FDB PRDAT | | output string until EOT | | PCRLF: | $F80E | FDB OSNEWL | | output CR/LF | | PSTRING: | $F810 | FDB PRTST | | output CR/LF then string until EOT | | LRA: | $F812 | FDB LREAL | | Load Real Address | | | $F814 | BRA WARMS | | for FLEX compatibility | +-----------+---------+--------------+-------------+------------------------------------------------------+ +-----------+---------+---------+-------+-------+-------+---------+----------+----------------------------+ | |6809CoPro|6809CoPro|SWTPC/ | 6812 | 6812 | BBC6809 | | | | | in RAM | in ROM | Dragon|high ws|low ws | | | | +-----------+---------+---------+-------+-------+-------+---------+----------+----------------------------+ | WORKSP= | $FF80 | $00C0 | $DFC0 | $7FC0 | $1000 | | | | | | | | | | | | | | |WORKSP+$00 | | | | | $1000 | | ESCFLG | Escape flag | |WORKSP+$01 | | | | | $1001 | | DMATYPE | TempA/Client personality | |WORKSP+$02 | | | | | $1002 | | FAULT | Last error message | |WORKSP+$04 | | | | | $1004 | | DEFERR | Default error handler | |WORKSP+$06 | | | | | $1006 | | LPTR | Command line tail | |WORKSP+$08 | | | | | $1008 | | MEMBOT | Bottom of user memory | |WORKSP+$0A | | | | | $100A | | MEMTOP | Top of user memory | |WORKSP+$0C | | | | | $100C | | ADDRESS | Tube execution address | |WORKSP+$0E | | | | | $100E | | TRANSFER | Tube transfer address | |WORKSP+$10 | | | | | $1010 | | PROGRAM | Program entry address | |WORKSP+$12 | | | | | $1012 | | ADDRHI | Memory address high word | |WORKSP+$14 | | | | | $1014 | | | | |WORKSP+$16 | | | | | $1016 | | | | |WORKSP+$18 | | | | | $1018 | | | | |WORKSP+$1A | | | | | $101A | | | | |WORKSP+$1C | | | | | $101C | | | | |WORKSP+$1E | | | | | $101E | | | | | | | | | | | | | | | | | | | | | $00FD | FAULT | Last error message | | | | | | | | $00FF | ESCFLG | Escape flag | | | | | | | | | | | |WORKSP-$C0 | | | $DF00 | $7F00 | | $0100 | ERRBLK | Host error buffer/CLI stack| |WORKSP-$A0 | | | $DF30 | $7F30 | | | CLIBLK | CLI input line/error stack | |WORKSP-$00 | | | $DFC0 | $7FC0 | | | CLIEND | | | | | | | | | | | | |WORKSP+$00 | | $00C0 | $DFC0 | | | | RESV | RESV/NMIV | |WORKSP+$02 | | $00C2 | $DFC2 | | | | SWI3V | SWI3V | |WORKSP+$04 | | $00C4 | $DFC4 | | | | SWI2V | SWI2V | |WORKSP+$06 | | $00C6 | $DFC6 | | | | FIRQV | FIRQV | |WORKSP+$08 | | $00C8 | $DFC8 | | | | IRQV | IRQV | |WORKSP+$0A | | $00CA | $DFCA | | | | SWIV | SWIV | |WORKSP+$0C | | $00CC | $DFCC | | | | NMIV | SVCLO | |WORKSP+$0E | | $00CE | $DFCE | | | | DMADONE | SVCHI | |WORKSP+$0F | | $00CF | $DFCF | $7FCF | $101F | | PENDA | | | | | | | | | | | | |WORKSP+$10 | | $00D0 | $DFD0 | $7FD0 | $1020 | $0200 | EVENTV | | |WORKSP+$12 | | $00D2 | $DFD2 | $7FD2 | $1022 | $0202 | BRKV | | |WORKSP+$14 | | $00D4 | $DFD4 | $7FD4 | $1024 | $0204 | xxx1V | | |WORKSP+$16 | | $00D6 | $DFD6 | $7FD6 | $1026 | $0206 | IRQ2V | | |WORKSP+$18 | | $00D8 | $DFD8 | $7FD8 | $1028 | $0208 | CLIV | | |WORKSP+$1A | | $00DA | $DFDA | $7FDA | $102A | $020A | BYTEV | | |WORKSP+$1C | | $00DC | $DFDC | $7FDC | $102C | $020C | WORDV | | |WORKSP+$1E | | $00DE | $DFDE | $7FDE | $102E | $020E | WRCHV | | | | | | | | | | | | |WORKSP+$20 | | $00E0 | $DFE0 | $7FE0 | $1030 | $0210 | RDCHV | | |WORKSP+$22 | | $00E2 | $DFE2 | $7FE2 | $1032 | $0212 | FILEV | | |WORKSP+$24 | | $00E4 | $DFE4 | $7FE4 | $1034 | $0214 | ARGSV | | |WORKSP+$26 | | $00E6 | $DFE6 | $7FE6 | $1036 | $0216 | BGETV | | |WORKSP+$28 | | $00E8 | $DFE8 | $7FE8 | $1038 | $0218 | BPUTV | | |WORKSP+$2A | | $00EA | $DFEA | $7FEA | $103A | $021A | GBPBV | | |WORKSP+$2C | | $00EC | $DFEC | $7FEC | $103C | $021C | FINDV | | | | | | | | | | | | |WORKSP+$2E | | $00EE | $DFEE | $7FEE | | | PROGRAM | Program entry address | |WORKSP+$30 | | $00F0 | $DFF0 | $7FF0 | | | MEMBOT | Bottom of user memory | |WORKSP+$32 | | $00F2 | $DFF2 | $7FF2 | | | MEMTOP | Top of user memory | |WORKSP+$34 | | $00F4 | $DFF4 | $7FF4 | | | ADDRESS | Execution address | |WORKSP+$36 | | $00F6 | $DFF6 | $7FF6 | | | TRANSFER | Transfer address | |WORKSP+$38 | | $00F8 | $DFF8 | $7FF8 | | | LPTR | Command line tail | |WORKSP+$3A | | $00FA | $DFFA | $7FFA | | | ADDRHI | Memory address high word | |WORKSP+$3C | | $00FC | $DFFC | $7FFC | | | DMATYPE | TempA/Client personality | |WORKSP+$3D | | $00FD | $DFFD | $7FFD | | | FAULT | Last error message | |WORKSP+$3F | | $00FF | $DFFF | $7FFF | | | ESCFLG | Escape flag | +-----------+---------+---------+-------+-------+-------+---------+----------+----------------------------+ | | $FF00 | $0100 | | | $1040 | | ERRBLK | Host error buffer/CLI stack| | | $FF20 | $0180 | | | $1070 | | CLIBLK | CLI input line/error stack | | | $FF80 | $0200 | | | $1100 | | CLIEND | | +-----------+---------+---------+-------+-------+-------+---------+----------+----------------------------+ |WORKSP+$00 | $FF80 | | | | $1000 | | ESCFLG | Escape flag | |WORKSP+$01 | $FF81 | | | | $1001 | | DMATYPE | TempA/Client personality | |WORKSP+$02 | $FF82 | | | | $1002 | | FAULT | Last error message | |WORKSP+$04 | $FF84 | | | | $1004 | | DEFERR | Default error handler | |WORKSP+$06 | $FF86 | | | | $1006 | | LPTR | Command line tail | |WORKSP+$08 | $FF88 | | | | $1008 | | MEMBOT | Bottom of user memory | |WORKSP+$0A | $FF8A | | | | $100A | | MEMTOP | Top of user memory | |WORKSP+$0C | $FF8C | | | | $100C | | ADDRESS | Tube execution address | |WORKSP+$0E | $FF8E | | | | $100E | | TRANSFER | Tube transfer address | |WORKSP+$10 | $FF90 | | | | $1010 | | PROGRAM | Program entry address | |WORKSP+$12 | $FF92 | | | | $1012 | | ADDRHI | Memory address high word | |WORKSP+$14 | $FF94 | | | | | | DAMDONE | Transfer completion flag | |WORKSP+$15 | $FF95 | | | | | | MOSBASE | MOS API ENTRIES | +-----------+---------+---------+-------+-------+-------+---------+----------+----------------------------+