; 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 ;