* Memory layout in main memory
*
*                     ; $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-      Code, to do: make code move itself
*                            -$4FFF
BLKBUF    EQU   $5000 ; $5000-$53FF 512-byte buffer plus channel data
BLKBUFEND EQU   $5200


* To do later:
*                     ; $2000-$3FFF Hi-Res screen 1
*                     ; $4000-$5FFF Hi-Res screen 2
*                     ; $6000-        available
*                     ;      -$95FF   available
*                     ; $9600-$BDFF ProDOS buffers
*                     ; $BE00-$BEFF MLI Global workspace
*                     ; $BF00-$BFFF MLI API interface

I think $0300-$03DF can be usefully used as filing system workspace,
the mainmem copies of the filename and control block, MOSNAME and CBFILE,
and later for OSGBPB.
