; Copyright 2018 David Schmidt. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Sources:
;  David T. Craig's disassembly projects

*SYNOPSIS Symbols from the Apple /// monitor ROM

;
; Zero page usage by monitor.
;
LMARGIN     @ $58       ;left viewport margin
RMARGIN     @ $59       ;right viewport margin
WINTOP      @ $5A       ;top of viewport
WINBTM      @ $5B       ;bottom of viewport
CH          @ $5C       ;
CV          @ $5D       ;
BAS4L       @ $5E       ;
BAS4H       @ $5F       ;
BAS8L       @ $60       ;
BAS8H       @ $61       ;
TBAS4L      @ $62       ;
TBAS4H      @ $63       ;
TBAS8L      @ $64       ;
TBAS8H      @ $65       ;
FORGND      @ $66       ;
BKGND       @ $67       ;
MODES       @ $68       ;
CURSOR      @ $69       ;
STACK       @ $6A       ;
PROMPT      @ $6B       ;
TEMPX       @ $6C       ;
TEMPY       @ $6D       ;
CSWL        @ $6E       ;
CSWH        @ $6F       ;
KSWL        @ $70       ;
KSWH        @ $71       ;
PCL         @ $72       ;
PCH         @ $73       ;
A1L         @ $74       ;
A1H         @ $75       ;
A2L         @ $76       ;
A2H         @ $77       ;
A3L         @ $78       ;
A3H         @ $79       ;
A4L         @ $7A       ;
A4H         @ $7B       ;
STATE       @ $7C       ;
YSAV        @ $7D       ;
INBUF       @ $7E       ;

;
; Zero page used by floppy.
;
HRDERRS     @ $80       ;
IBSLOT      @ $81       ;
IBDRVN      @ $82       ;
IBTRK       @ $83       ;
IBSECT      @ $84       ;
IBBUFP      @ $85       ;
IBCMD       @ $87       ;
IBSTAT      @ $88       ;
IBSMOD      @ $89       ;
;CSUM       @ $89       ;
IOBPDN      @ $8A       ;
IMASK       @ $8B       ;
CURTRK      @ $8C       ;
;DRVOTRK    @ $85       ;
RETRYCNT    @ $93       ;
SEEKCNT     @ $94       ;
BUF         @ $9B       ;
ENVTEMP     @ $9F       ;
COUNT       @ $95       ;
CKSUM       @ $96       ;
CSSTV       @ $97       ;
PRIOR       @ $9D       ;
TRKN        @ $9E       ;
MONTIMEL    @ $99       ;
MONTIMEH    @ $9A       ;
TWOMEG      @ $7F       ;fast speed
SECT        @ $98       ;
;TRACK      @ $99       ;
;VOLUME     @ $9A       ;

;
; Floppy driver ROM routines.
;
REGRWTS     @ $F000     ;
DRIVSEL     @ $F035     ;
DRVWAIT     @ $F041     ;
OK          @ $F048     ;
MOTOF       @ $F052     ;
CONWAIT     @ $F054     ;
NODRIVERR   @ $F064     ;
TRYTRK      @ $F069     ;
TRYTRK2     @ $F07F     ;
TRYADR      @ $F083     ;
TRYADR2     @ $F08A     ;
GOCAL1      @ $F0A6     ;
GOCAL       @ $F0A7     ;
RDRIGHT     @ $F0AC     ;
RTTRK       @ $F0C0     ;
CORRECTVOL  @ $F0C4     ;
ALLDONE     @ $F0E3     ;
DRVERR      @ $F0E8     ;
HNDLERR     @ $F0EA     ;
ALDONE1     @ $F0EB     ;
WRIT        @ $F0F9     ;
MYSEEK      @ $F104     ;
SEEK1       @ $F105     ;
GOSEEK      @ $F115     ;
ALLOFF      @ $F118     ;
NXOFF       @ $F11A     ;
SETTRK      @ $F125     ;
CHKDRV      @ $F12B     ;
CHKDRV1     @ $F12D     ;
CKDRTS      @ $F13D     ;
DRVINDX     @ $F13E     ;
READ16      @ $F148     ;
RSYNC       @ $F14A     ;
RD1         @ $F14D     ;
RSYNC1      @ $F152     ;
RD2         @ $F157     ;
RD3         @ $F163     ;
RD4         @ $F16E     ;
RD5         @ $F180     ;
RD5A        @ $F181     ;
RD6         @ $F195     ;
RDCKSUM     @ $F1A0     ;
CHKINT      @ $F1AA     ;
GOSERV      @ $F1B4     ;
RDERR       @ $F1B7     ;
RDADR16     @ $F1B9     ;
RDASYN      @ $F1BD     ;
RDA1        @ $F1C4     ;
RDASN1      @ $F1C9     ;
RDA2        @ $F1CE     ;
RDA3        @ $F1D9     ;
RDAFLD      @ $F1E5     ;
RDA4        @ $F1E7     ;
RDA5        @ $F1EF     ;
RDA6        @ $F201     ;
RDA7        @ $F20B     ;
RDEXIT      @ $F214     ;
WEXIT       @ $F215     ;
WRITE16     @ $F216     ;
WRIT1       @ $F220     ;
WSYNC       @ $F22D     ;
WINTRPT     @ $F24B     ;
VRYFRST     @ $F253     ;
WRTFRST     @ $F255     ;
WNTRPRT1    @ $F264     ;
WMIDLE      @ $F267     ;
WDATA2      @ $F26E     ;
WDATA3      @ $F27E     ;
WRCKSUM     @ $F292     ;
WRBITSLMK   @ $F297     ;
NOWRITE     @ $F2A3     ;
SERVICE     @ $F2AA     ;
WNIBL9      @ $F2BA     ;
WNIBL7      @ $F2BB     ;
WNIBL       @ $F2BD     ;
PRENIB16    @ $F2C4     ;
PRENIB1     @ $F2C8     ;
PRENIB3     @ $F2E2     ;
PRENIB2     @ $F2E5     ;
PRENIB4     @ $F2F6     ;
POSTNIB16   @ $F30F     ;
PNIBL1      @ $F314     ;
PNIBL2      @ $F323     ;
POST1       @ $F336     ;
POST2       @ $F338     ;
;POSTERR    @ $F34C     ;
SET1MEG     @ $F34C     ;
SEV         @ $F354     ;
SEEK        @ $F400     ;
SEEK2       @ $F40A     ;
OUT         @ $F41B     ;
MINTST      @ $F41F     ;
MAXTST      @ $F425     ;
STEP        @ $F429     ;
STEP2       @ $F42B     ;
SEEKEND     @ $F444     ;
SETPHASE    @ $F448     ;
CLRPHASE    @ $F44A     ;
SEEKRTS     @ $F455     ;
MSWAIT      @ $F456     ;
MSW1        @ $F458     ;
MSW2        @ $F461     ;
BLOCKIO     @ $F479     ;
TRKSEC      @ $F47E     ;
QUIT        @ $F49D     ;
ANALOG      @ $F4A8     ;
ANLOG1      @ $F4AB     ;
GOODTIME    @ $F4C4     ;

;
; Diagnostics ROM routines.
;
CHPG        @ $F4CD     ;
DISK1       @ $F513     ;
NXBYT       @ $F524     ;
NXBIT       @ $F526     ;
NOGOOD      @ $F52A     ;
CNTWR       @ $F523     ;
PULBT       @ $F53A     ;
NOMEM       @ $F548     ;
NMEM1       @ $F54F     ;
NMEM2       @ $F562     ;
ERRLP       @ $F575     ;
ERRLP1      @ $F593     ;
RAMWT1      @ $F5A1     ;
RAMWT2      @ $F5A5     ;
RAMWT4      @ $F5AD     ;
ZP1         @ $F5BE     ;
ZP2         @ $F5D4     ;
ZP3         @ $F5E2     ;
ROMTST      @ $F5E7     ;
ROMTST1     @ $F5F2     ;
ROMTST2     @ $F5FE     ;
VIATST      @ $F60D     ;
ACIA        @ $F63E     ;
ATD         @ $F653     ;
ADCTST1     @ $F663     ;
ADCTST3     @ $F669     ;
ADCERR      @ $F676     ;
KEYPLUG     @ $F67B     ;
RECON       @ $F686     ;
BOOT        @ $F6A1     ;
GOBOOT      @ $F6BF     ;
SEX         @ $F6C2     ;
SEX1        @ $F6C4     ;
SEX2        @ $F6CE     ;
SEX3        @ $F6D4     ;
USRENTRY    @ $F6E6     ;
RAMTST0     @ $F6F4     ;
RAMTST1     @ $F6FD     ;
RAMTST4     @ $F70F     ;
RAMTST6     @ $F72A     ;
STRWT       @ $F738     ;
RAM         @ $F748     ;
RAM0        @ $F76B     ;
RAM00       @ $F772     ;
RAM1        @ $F776     ;
MESSERR     @ $F77B     ;
ERROR       @ $F77E     ;
RAMSET      @ $F784     ;
RAMSET1     @ $F78D     ;
PTRINC      @ $F7A1     ;
PINC2       @ $F7B6     ;
PINC1       @ $F7B8     ;
RETS        @ $F7C3     ;
RAMERR      @ $F7C9     ;
RAMERR2     @ $F7D6     ;
RAMERR3     @ $F7DA     ;
RAMERR4     @ $F7E9     ;
RAMERR5     @ $F7F0     ;
RAMWT       @ $F7F6     ;
RAMRD       @ $F7FA     ;

;
; Monitor ROM routines.
;
RET1        @ $F7FE     ;
RET3        @ $F882     ;
RET2        @ $F900     ;
ENTRY       @ $F901     ;
MON         @ $F904     ;
MONZ        @ $F908     ;
SCAN        @ $F912     ;
NXTINP      @ $F915     ;
CMDSRCH     @ $F91C     ;
GETNUM      @ $F92C     ;
NXTCHR      @ $F932     ;
DIGIT       @ $F941     ;
NXTBIT      @ $F947     ;
NXTBAS      @ $F94F     ;
NXTBS2      @ $F959     ;
TOSUB       @ $F95E     ;
ZSTATE      @ $F967     ;
DIGRET      @ $F96B     ;
NXTA4       @ $F98E     ;
NXTA1       @ $F994     ;
TSTA1       @ $F99D     ;
RETA1       @ $F9AD     ;
PRBYTE      @ $F9AE     ;
PRHEX       @ $F9B7     ;
PRHEXZ      @ $F9B9     ;
PRHEX2      @ $F9C1     ;
PRBYCOL     @ $F9C4     ;
PRCOLON     @ $F9C7     ;
TST80WID    @ $F9CB     ;
SVMASK      @ $F9D3     ;
A1PC        @ $F9D6     ;
A1PC1       @ $F9D9     ;
OLDPC       @ $F9E0     ;
ASCII1      @ $F9E1     ;
ASCII2      @ $F9E3     ;
ASCII3      @ $F9F4     ;
CRCHK       @ $F9FD     ;
ASCDONE     @ $FA08     ;
SEARCH      @ $FA09     ;
SRCH1       @ $FA15     ;
ASCII       @ $FA1B     ;
ASCII0      @ $FA1D     ;
CKMDE       @ $FA1E     ;
BITON       @ $FA25     ;
BITOFF      @ $FA29     ;
REPEAT      @ $FA2D     ;
REPEAT1     @ $FA35     ;
LFA36       @ $FA36     ;
CRMON       @ $FA3A     ;
MOVE        @ $FA40     ;
MOVNXT      @ $FA45     ;
VRFY        @ $FA4F     ;
VRFY1       @ $FA54     ;
VRFY2       @ $FA60     ;
MISMATCH    @ $FA66     ;
PRINTA1     @ $FA75     ;
PRA1BYTE    @ $FA82     ;
PRBYTSP     @ $FA84     ;
PRSPC       @ $FA87     ;
USER        @ $FA8C     ;
JUMP        @ $FA8F     ;
GO          @ $FA91     ;
RWERROR     @ $FA97     ;
ERROR2      @ $FA9F     ;
ERROR       @ $FAA2     ;
DEST        @ $FAA5     ;
SEP         @ $FAAE     ;
BL1         @ $FAB4     ;
SPCE        @ $FAB8     ;
STOR        @ $FABF     ;
STOR1       @ $FAC3     ;
DUMMY       @ $FACB     ;
SETMODE     @ $FACC     ;
SETMDZ      @ $FAD1     ;
READ        @ $FAD4     ;
WRTE        @ $FAD7     ;
SAVCMD      @ $FAD9     ;
RWLOOP      @ $FADB     ;
NOVER       @ $FAF3     ;
DUMP8       @ $FAFD     ;
TSTDUMP     @ $FB0A     ;
ERROR1      @ $FB0B     ;
DUMP        @ $FB0D     ;
DUMP0       @ $FB10     ;
DUMP1       @ $FB1D     ;
DUMP2       @ $FB20     ;
DUMP3       @ $FB30     ;
DUMPASC     @ $FB35     ;
ASC1        @ $FB40     ;
ASC2        @ $FB4C     ;
ASC3        @ $FB5A     ;
COL80       @ $FB5D     ;
COL40       @ $FB63     ;
SET80       @ $FB67     ;
SET80A      @ $FB6F     ;
SET80B      @ $FB7B     ;
CLSCRN      @ $FB7D     ;
CLEOP       @ $FB85     ;
CLEOP1      @ $FB8E     ;
CLEOL       @ $FBA2     ;
CONTROL     @ $FBA7     ;
TSTCR       @ $FBAB     ;
CARRAGE     @ $FBAF     ;
CURUP       @ $FBB8     ;
CURUP1      @ $FBC2     ;
SETCV       @ $FBC5     ;
BASCALC     @ $FBC7     ;
CURIGHT     @ $FBCB     ;
RIGHT1      @ $FBD1     ;
SETCHZ      @ $FBD7     ;
SETCVH      @ $FBDB     ;
CURDOWN     @ $FBDD     ;
TSTBACK     @ $FBE9     ;
CURLEFT     @ $FBED     ;
LEFT80      @ $FBF3     ;
LEFTUP      @ $FBFD     ;
COUT2       @ $FC06     ;
DISPLAYX    @ $FC10     ;
INCHORZ     @ $FC13     ;
NXTLIN      @ $FC16     ;
BASCALC1    @ $FC19     ;
BSCLC2      @ $FC2D     ;
CTRLRET     @ $FC38     ;
COUT        @ $FC39     ;
COUT1       @ $FC47     ;
TSTBELL     @ $FC4A     ;
BELL        @ $FC4E     ;
LNFD        @ $FC52     ;
SCROLL      @ $FC5B     ;
SCRL1       @ $FC61     ;
SCRL2       @ $FC63     ;
SCRL3       @ $FC7A     ;
LASTLN      @ $FC87     ;
CLEOL1      @ $FC89     ;
CLEOL2      @ $FC91     ;
DISPLAY     @ $FC9D     ;
DSPBKGND    @ $FCAA     ;
DSPL80      @ $FCAD     ;
NOTCR       @ $FCB8     ;
CANCEL      @ $FCCD     ;
GETLN       @ $FCD5     ;
BKSPCE      @ $FCDE     ;
NXTCHAR     @ $FCE4     ;
CROUT       @ $FCEF     ;
STOPLST     @ $FD02     ;
NOSTOP      @ $FD07     ;
RDKEY       @ $FD0C     ;
KEYIN       @ $FD0F     ;
KEYIN1      @ $FD16     ;
KEYIN2      @ $FD24     ;
KEYIN3      @ $FD2E     ;
KEYIN4      @ $FD31     ;
KEYWAIT     @ $FD35     ;
KWAIT2      @ $FD42     ;
KEYRET      @ $FD47     ;
ESC3        @ $FD48     ;
ESCAPE      @ $FD4B     ;
ESC1        @ $FD53     ;
ESC2        @ $FD58     ;
RDCHAR      @ $FD60     ;
GOESC       @ $FD77     ;
PICK        @ $FD88     ;
PICK40      @ $FD95     ;
CLDSTRT     @ $FD98     ;
SETUP       @ $FD9D     ;
SETUP1      @ $FDA2     ;
GENENTR     @ $FDC6     ;
ZIPTEMPS    @ $FDD5     ;
GENASC      @ $FDE1     ;
GASCI1      @ $FDE3     ;
GASCI2      @ $FDE5     ;
GASCI3      @ $FDE7     ;
GASCI4      @ $FDF4     ;
CBYTES      @ $FE01     ;
CCOLMS      @ $FE05     ;
CSHFT       @ $FE07     ;
SHFTCNT     @ $FE1A     ;
;DONE       @ $FE28     ;
STORCHRS    @ $FE28     ;
STORSET     @ $FE2A     ;
STOROW      @ $FE2C     ;
GENDONE     @ $FE44     ;
GEN1        @ $FE48     ;
NXTASCI     @ $FE63     ;
NXTASC2     @ $FE65     ;
GEN2        @ $FE75     ;
UNDER       @ $FE79     ;
ALTCHR      @ $FE88     ;
ALTC1       @ $FE8A     ;
NXTPORT     @ $FE99     ;
NOHIGH      @ $FEA3     ;
PORTDN      @ $FEAD     ;
VRETRCE     @ $FEAE     ;
VWAIT       @ $FEBF     ;
CHRSETPRE   @ $FEC4     ;
NMIRQ       @ $FFBC     ;
