Applecorn/memmap.txt
2021-09-21 22:59:11 -04:00

86 lines
4.3 KiB
Plaintext

* Memory layout in main memory (Apple environment)
*
* ; $0000-$00FF Zero page
* ; $0100-$01FF Stack
* ; $0200-$02FF ProDOS string buffers
* ; $0200-$022F Overwritten by RTC routines
* ; $0228-$023D
DRVBUF1 EQU $023E ; $023E Drive
DRVBUF2 EQU $023F ; $022F Prefix on current drive
CMDPATH EQU $0280 ; $0280 Path used to start Applecorn
*
* ; $0300-$03CF File system core workspace
* ; $0300-$0382 Filename string buffers
MOSFILE1 EQU $0300 ; $0300 length
* ; $0301 64 byte string
MOSFILE2 EQU $0341 ; $0341 length
* ; $0342 64 byte string
* ; $0382-$03BD $3C spare bytes
* ;
* ; $03BE-$03CF: local copy of control block
* ; $03BE FPTR FPTR
* ; $03BF CHANNEL
* ; $03C0 LOAD LOAD ADDR
* ; $03C4 EXEC EXEC COUNT
* ; $03C8 SIZE START OFFSET
* ; $03CC ATTR END
* ; $03D0-$03FF: ProDOS vectors, etc.
* ; $03D0-$03D2 JMP WARM
* ; $03D3-$03D5 JMP WARM
* ; $03D6-$03EC ProDOS
* ; $03ED-$03DE XFER address
* ; $03EF ProDOS
* ; $03F0-$03D1 BRKV
* ; $03F2-$03D3 RESETV
* ; $03F4 RESETV ACK
* ; $03F5-$03F7 JMP AMP
* ; $03F8-$03FA JMP USER
* ; $03FB-$03FD JMP MON
* ; $03FE-$03FF IRQV
*
* EQU $0400 ; $0400- Can't use as ProDOS uses 'hidden' bytes
* ; -$07FF within screen for workspace
SCREEN EQU $0800 ; $0800-$0BFF Half 80-col screen or 40-col screen
IOBUF0 EQU $0C00 ; $0C00-$0FFF For loading ROM, OSFILE, *.
IOBUF1 EQU $1000 ; $1000-$13FF Four open files for langs
IOBUF2 EQU $1400 ; $1400-$17FF
IOBUF3 EQU $1800 ; $1800-$1BFF
IOBUF4 EQU $1C00 ; $1C00-$1FFF
* ; $2000-$3FFF Hi-Res screen 1
* ; $4000- Code, to do: make code move itself
* -$6FFF
BLKBUF EQU $7000 ; $7000-$73FF 512-byte buffer plus channel data
BLKBUFEND EQU $7200
*
* ; $9600-$BDFF ProDOS buffers
* ; $BE00-$BEFF MLI Global workspace
* ; $BF00-$BFFF MLI API interface
Memory layout in aux memory (Acorn environment)
* ; $0000-$00FF Zero page
* ; $00-$8F Language workspace
* ; $90-$9F Network workspace
* ; $A0-$A7 NMI workspace
* ; $A8-$AF Non-MOS *command workspace
* ; $B0-$BF Temporary filing system workspace
* ; $C0-$CF Persistant filing system workspace
* ; $D0-$DF VDU driver workspace
* ; $E0-$EE Internal MOS workspace
* ; $EF-$FF MOS API workspace
* ; $0100-$01FF Stack
* ; $0200-$02FF Kernel vectors and workspace
* ; $0200-$0235 Vectors
* ; $0236-$028F OSBYTE variables
* ; $0290-$02ED
* ; $02EE-$02FF MOS control block
* ; $0300-$03FF
* ; $0300-
* ; $03E0-$03EF XFER workspace
* ; $03F0-$03FF
* ; $0400-$07FF Language workspace
* ; $0800-$0BFF Screen memory
* ; $0C00-$0DFF --> use as transient command buffer
* ; $0E00 Default PAGE