* Memory layout in main memory (Apple environment) * * ; $0000-$00FF Zero page * ; $0100-$01FF Stack * ; $0200-$02FF ProDOS string buffers RTCBUF EQU $0200 ; $0200-$0227 Overwritten by RTC routines * ; $0228-$023D $15 spare bytes DRVBUF1 EQU $023E ; $023E Drive DRVBUF2 EQU $023F ; $023F Prefix on current drive, length * $0240 Prefix on current drive, path CMDPATH EQU $0280 ; $0280 Path used to start Applecorn * ; $02C0-$02FF $40 spare bytes * * ; $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 ROMTOTL EQU $0382 ; $0382 Maximum ROM number ROMTHIS EQU $0383 ; $0383 Currently loaded ROM ROMADDRS EQU $0384 ; $0384 16xaddress of ROM filename * ; $03A4-$03BD $1A 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 AUXCPY * ; $03D0-$03EF ProDOS workspace * ; $03D0-$03EC .SYSTEM workspace? * ; $03ED-$03EE XFER address * ; $03EF ProDOS reserved * ; $03F0-$03FF Monitor/Applesoft locations * ; $03F0-$03F1 BRKV * ; $03F2-$03F3 RESETV * ; $03F4 PWDRUP * ; $03F5-$03F7 AMPERV * ; $03F8-$03FA USERV (^Y) * ; $03FB-$03FD NMIV * ; $03FE-$03FF IRQV * * EQU $0400 ; $0400-$07FF Text Page 1 & screen holes - not for general use * ; To do: 8 x 120-byte usable space SCREEN EQU $0800 ; $0800-$0BFF Text Page 2 IOBUF0 EQU $0C00 ; $0C00-$0FFF For loading ROM, OSFILE, *. IOBUF1 EQU $1000 ; $1000-$13FF Four open files for user program IOBUF2 EQU $1400 ; $1400-$17FF IOBUF3 EQU $1800 ; $1800-$1BFF IOBUF4 EQU $1C00 ; $1C00-$1FFF * ; $2000-$3FFF Hi-Res screen 1 - used for transient .SYSTEM loader code * ; $4000- Code - to do: layout now different as .SYSTEM code * -$6FFF BLKBUF EQU $9000 ; $9000-$93FF 512-byte buffer plus channel data BLKBUFEND EQU $9200 * * ; $BF00-$BFFF ProDOS Global Page - reserved 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 --> used as transient command buffer * ; $0E00 Default PAGE