home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CBM Funet Archive
/
cbm-funet-archive-2003.iso
/
cbm
/
maps
/
Vic20rom.doc
< prev
Wrap
Text File
|
1995-03-08
|
15KB
|
533 lines
;
;cOMMODORE vic-20 rom mEMORY mAP
;v1.01 sEP 1994
;
; dATA TYPES IN HEADERS (FOR REASSEMBLER):
;
;datamISC DATA
;textsTRING TERMINATED WITH 00
;wordvECTORS IN lo/hi BYTE PAIRS
;chipi/o aREA
;emptyrom CONTAINING ff'S OR aa'S
;
;
; basic V2.0 INTERPRETER rom ($b000 - $dfff)
; tHIS IS ALMOST IDENTICAL TO THE c64 ONE.
;
C000-bASIC rESTART vECTORSword
C004-'CBMBASIC'data
C00CSTMDSPbasic cOMMAND vECTORSword
C052FUNDSPbasic fUNCTION vECTORSword
C080OPTABbasic oPERATOR vECTORSword
C09ERESLSTbasic cOMMAND kEYWORD tABLEdata
C129MSCLSTbasic mISC. kEYWORD tABLEdata
C140OPLISTbasic oPERATOR kEYWORD tABLEdata
C14DFUNLSTbasic fUNCTION kEYWORD tABLEdata
C19EERRTABeRROR mESSAGE tABLEdata
C328ERRPTReRROR mESSAGE pOINTERSword
C364OKKmISC. mESSAGESdata
;C364'<CR>OK<CR>'text
;C369'ERROR'data
C389-uNUSED BYTEdata
C38AFNDFORfIND for/gosub eNTRY ON sTACK
C3B8BLTUoPEN sPACE IN mEMORY
C3FBGETSTKcHECK sTACK dEPTH
C408REASONcHECK mEMORY oVERLAP
C435OMERRoUTPUT ?out of memory eRROR
C437ERROReRROR rOUTINE
C469ERRFINbREAK eNTRY
C474READYrESTART basic
C480MAINiNPUT & iDENTIFY basic lINE
C49CMAIN1gET lINE nUMBER & tOKENISE tEXT
C4A2INSLINiNSERT basic tEXT
C533LINKPRGrECHAIN lINES
C560INLINiNPUT lINE iNTO bUFFER
C579CRUNCHtOKENISE iNPUT bUFFER
C613FNDLINsEARCH FOR lINE nUMBER
C642SCRTCHpERFORM [NEW]
C65ECLEARpERFORM [CLR]
C68ESTXPTrESET txtptr
C69CLISTpERFORM [LIST]
C717QPLOPhANDLE list cHARACTER
C742FORpERFORM [FOR]
C7AENEWSTTbasic wARM sTART
C7C4CKEOLcHECK eND OF pROGRAM
C7E1GONEpREPARE TO EXECUTE STATEMENT
C7EDGONE3pERFORM basic kEYWORD
C81DRESTORpERFORM [RESTORE]
C82CSTOPpERFORM [STOP], [END], BREAK
C857CONTpERFORM [CONT]
C871RUNpERFORM [RUN]
C883GOSUBpERFORM [GOSUB]
C8A0GOTOpERFORM [GOTO]
C8D2RETURNpERFORM [RETURN]
C8F8DATApERFORM [DATA]
C906DATANsEARCH FOR nEXT sTATEMENT / lINE
C928IFpERFORM [IF]
C93BREMpERFORM [REM]
C94BONGOTOpERFORM [ON]
C96BLINGETfETCH LINNUM fROM basic
C9A5LETpERFORM [LET]
C9C4PUTINTaSSIGN iNTEGER
C9D6PTFLPTaSSIGN fLOATING pOINT
C9D9PUTSTRaSSIGN sTRING
C9E3PUTTIMaSSIGN ti$
CA2CGETSPTaDD dIGIT TO fac#1
CA80PRINTNpERFORM [PRINT#]
CA86CMDpERFORM [CMD]
CA9ASTRDONpRINT sTRING fROM mEMORY
CAA0PRINTpERFORM [PRINT]
CAB8VAROPoUTPUT vARIABLE
CAD7CRDOoUTPUT cr/lf
CAE8COMPRThANDLE COMMA, tab(, spc(
CB1ESTROUToUTPUT sTRING
CB3BOUTSPCoUTPUT fORMAT cHARACTER
CB4DDOAGINhANDLE bAD dATA
CB7BGETpERFORM [GET]
CBA5INPUTNpERFORM [INPUT#]
CBBFINPUTpERFORM [INPUT]
CBEABUFFULrEAD iNPUT bUFFER
CBF9QINLINdO iNPUT pROMPT
CC06READpERFORM [READ]
CC35RDGETgENERAL pURPOSE rEAD rOUTINE
CCFCEXINTiNPUT eRROR mESSAGESdata
;CCFC'?EXTRA IGNORED<CR>'
;CD0C'?REDO FROM START<CR>'
CD1ENEXTpERFORM [NEXT]
CD61DONEXTcHECK vALID lOOP
CD8AFRMNUMcONFIRM rESULT
CD9EFRMEVLeVALUATE eXPRESSION IN tEXT
CE83EVALeVALUATE sINGLE tERM
CEA8PIVALcONSTANT - PIdata
CEADQDOTcONTINUE eXPRESSION
CEF1PARCHKeXPRESSION IN bRACKETS
CEF7CHKCLScONFIRM cHARACTER
CEF7--TEST ')'-
CEFA--TEST '('-
CEFD--TEST COMMA-
CF08SYNERRoUTPUT ?syntax eRROR
CF0DDOMINsET UP not fUNCTION
CF14RSVVARiDENTIFY rESERVED vARIABLE
CF28ISVARsEARCH FOR vARIABLE
CF48TISASCcONVERT ti TO ascii sTRING
CFA7ISFUNiDENTIFY fUNCTION tYPE
CFB1STRFUNeVALUATE sTRING fUNCTION
CFD1NUMFUNeVALUATE nUMERIC fUNCTION
CFE6OROPpERFORM [OR], [AND]
D016DORELpERFORM <, =, >
D01BNUMRELnUMERIC cOMPARISON
D02ESTRRELsTRING cOMPARISON
D07EDIMpERFORM [DIM]
D08BPTRGETiDENTIFY vARIABLE
D0E7ORDVARlOCATE oRDINARY vARIABLE
D11DNOTFNScREATE nEW vARIABLE
D128NOTEVLcREATE vARIABLE
D194ARYGETaLLOCATE aRRAY pOINTER sPACE
D1A5N32768cONSTANT 32768 IN fLPTdata
D1AAFACINXfac#1 TO iNTEGER IN (ac/yr)
D1B2INTIDXeVALUATE tEXT FOR iNTEGER
D1BFAYINTfac#1 TO pOSITIVE iNTEGER
D1D1ISARYgET aRRAY pARAMETERS
D218FNDARYfIND aRRAY
D245BSERR'?BAD SUBSCRIPT ERROR'
D248-'?ILLEGAL QUANTITY ERROR'
D261NOTFDDcREATE aRRAY
D30EINLPN2lOCATE eLEMENT IN aRRAY
D34CUMULTnUMBER OF bYTES IN sUBSCRIPT
D37DFREpERFORM [FRE]
D391GIVAYFcONVERT iNTEGER IN (ac/yr) TO fLPT
D39EPOSpERFORM [POS]
D3A6ERRDIRcONFIRM pROGRAM mODE
D3E1GETFNMcHECK sYNTAX OF fn
D3F4FNDOERpERFORM [FN]
D465STRDpERFORM [STR$]
D487STRLITsET uP sTRING
D4D5PUTNW1sAVE sTRING dESCRIPTOR
D4F4GETSPAaLLOCATE sPACE FOR sTRING
D526GARBAGgARBAGE cOLLECTION
D5BDDVARSsEARCH FOR nEXT sTRING
D606GRBPAScOLLECT A sTRING
D63DCATcONCATENATE tWO sTRINGS
D67AMOVINSsTORE sTRING IN hIGH ram
D6A3FRESTRpERFORM sTRING hOUSEKEEPING
D6DBFREFACcLEAN dESCRIPTOR sTACK
D6ECCHRDpERFORM [CHR$]
D700LEFTDpERFORM [LEFT$]
D72CRIGHTDpERFORM [RIGHT$]
D737MIDDpERFORM [MID$]
D761PREAMpULL StRING pARAMETERS
D77CLENpERFORM [LEN]
D782LEN1eXIT sTRING mODE
D78BASCpERFORM [ASC]
D79BGTBYTCeVALUATE tEXT TO 1 bYTE IN xr
D7ADVALpERFORM [VAL]
D7B5STRVALcONVERT ascii sTRING TO fLPT
D7EBGETNUMgET PARAMETERS FOR poke/wait
D7F7GETADRcONVERT fac#1 TO iNTEGER IN linnum
D80DPEEKpERFORM [PEEK]
D824POKEpERFORM [POKE]
D82DWAITpERFORM [WAIT]
D849FADDHaDD 0.5 TO fac#1
D850FSUBpERFORM sUBTRACTION
D862FADD5nORMALISE aDDITION
D867FADDpERFORM aDDITION
D947NEGFAC2'S cOMPLEMENT fac#1
D97EOVERRoUTPUT ?overflow eRROR
D983MULSHFmULTIPLY BY zERO bYTE
D9BCFONEtABLE OF fLPT cONSTANTSdata
D9EALOGpERFORM [LOG]
DA28FMULTpERFORM mULTIPLY
DA59MULPLYmULTIPLY BY A bYTE
DA8CCONUPKlOAD fac#2 fROM mEMORY
DAB7MULDIVtEST bOTH aCCUMULATORS
DAD4MLDVEXoVERFLOW / uNDERFLOW
DAE2MUL10mULTIPLY fac#1 BY 10
DAF9TENCcONSTANT 10 IN fLPTdata
DAFEDIV10dIVIDE fac#1 BY 10
DB07FDIVdIVIDE fac#2 BY fLPT AT (ac/yr)
DB0FFDIVTdIVIDE fac#2 BY fac#1
DBA2MOVFMlOAD fac#1 fROM mEMORY
DBC7MOV2FsTORE fac#1 IN mEMORY
DBFCMOVFAcOPY fac#2 INTO fac#1
DC0CMOVAFcOPY fac#1 INTO fac#2
DC1BROUNDrOUND fac#1
DC2BSIGNcHECK sIGN OF fac#1
DC39SGNpERFORM [SGN]
DC58ABSpERFORM [ABS]
DC5BFCOMPcOMPARE fac#1 wITH mEMORY
DC9BQINTcONVERT fac#1 TO iNTEGER
DCCCINTpERFORM [INT]
DCF3FINcONVERT ascii sTRING TO A nUMBER IN fac#1
DDB3N0999sTRING cONVERSION cONSTANTSdata
DDC2INPRToUTPUT 'in' AND lINE nUMBER
DDDDFOUTcONVERT fac#1 TO ascii sTRING
DE68FOUTIMcONVERT ti TO sTRING
DF11FHALFtABLE OF cONSTANTSdata
DF71SQRpERFORM [SQR]
DF7BFPWRTpERFORM POWER ($)
DFB4NEGOPnEGATE fac#1
DFBFLOGEB2tABLE OF cONSTANTSdata
DFEDEXPpERFORM [EXP]
;
;vic-20 kERNEL rom
;
;E000(EXP CONTINUES) exp CONTINUED fROM basic rom
E040POLYXsERIES eVALUATION
E08ARMULCcONSTANTS FOR rnddata
E094RNDpERFORM [RND]
E0F6BIOERRhANDLE i/o eRROR IN basic
E109BCHOUToUTPUT cHARACTER
E10FBCHINiNPUT cHARACTER
E115BCKOUTsET uP fOR oUTPUT
E11BBCKINsET uP fOR iNPUT
E121BGETINgET oNE cHARACTER
E127SYSpERFORM [SYS]
E153SAVETpERFORM [SAVE]
E162VERFYTpERFORM [VERIFY / LOAD]
E1BBOPENTpERFORM [OPEN]
E1C4CLOSETpERFORM [CLOSE]
E1D1SLPARAgET pARAMETERS fOR load/save
E1FDCOMBYTgET nEXT oNE bYTE pARAMETER
E203DEFLTcHECK dEFAULT pARAMETERS
E20BCMMERRcHECK fOR cOMMA
E216OCPARAgET pARAMETERS fOR open/close
E261COSpERFORM [COS]
E268SINpERFORM [SIN]
E2B1TANpERFORM [TAN]
E2DDPI2tABLE OF tRIG cONSTANTSdata
;E2DD1.570796327PI/2
;E2E26.28318531PI*2
;E2E70.25
;E2EC#05(COUNTER)
;E2ED-14.3813907
;E2F242.0077971
;E2F7-76.7041703
;E2FC81.6052237
;E301-41.3417021
;E3066.28318531
E30BATNpERFORM [ATN]
E33BATNCONtABLE OF atn cONSTANTSdata
;E33B#0B(COUNTER)
;E3EC-0.000684793912
;E341 0.00485094216
;E346-0.161117018
;E34B 0.034209638
;E350-0.0542791328
;E355 0.0724571965
;E35A-0.0898023954
;E35F 0.110932413
;E364-0.142839808
;E369 0.19999912
;E36E-0.333333316
;E373 1.00
E378INITbasic cOLD sTART
E387INITATchrget fOR zERO-PAGE
E39FRNDSEDrnd sEED fOR ZERO-PAGEdata
;E39F0.811635157
E3A4INITCZiNITIALIZE basic ram
E404INITMSoUTPUT pOWER-uP mESSAGE
E429WORDSpOWER-uP mESSAGEdata
;E429' BYTES FREE<CR>'
;E436'<CLR>**** CBM BASIC V2 ****<CR>'
E44FBVTRStABLE OF basic vECTORS (FOR 0300)word
E45BINITViNITIALIZE vECTORS
E467BASSFTbasic wARM rESTART [runstop-restore]
E475?
E47C-uNUSED bYTES fOR fUTURE pATCHESempty
E4A0-sERIAL oUTPUT 1
E4A9-sERIAL oUTPUT 0
E4B2-gET sERIAL dATA aND cLOCK iN
E4BC-gET sECONDARY aDDRESS PATCH FOR sERIAL load/verify
E4C1-rELOCATED lOAD PATCH FOR sERIAL load/verify
E4CF-tAPE wRITE PATCH FOR close
E4DA-uNUSEDempty
E500IOBASErETURN i/o bASE aDDRESS
E505SCREENrETURN sCREEN oRGANIZATION
E50APLOTrEAD / sET cURSOR x/y pOSITION
E518CINT1iNITIALIZE i/o
E55F-cLEAR sCREEN
E581-hOME cURSOR
E587-sET sCREEN pOINTERS
E5B5-sET i/o dEFAULTS (uNUSED eNTRY)
E5BB-sET i/o dEFAULTS
E5CFLP2gET cHARACTER fROM kEYBOARD bUFFER
E5E5-iNPUT fROM kEYBOARD
E64F-iNPUT fROM sCREEN OR kEYBOARD
E6B8-qUOTES tEST
E6C5-sET uP sCREEN pRINT
E6EA-aDVANCE cURSOR
E719-rETREAT cURSOR
E72D-bACK ON TO pREVIOUS lINE
E742-oUTPUT TO sCREEN
E756--UNSHIFTED CHARACTERS-
E800--SHIFTED CHARACTERS-
E8C3-gO TO nEXT lINE
E8D8-oUTPUT <cr>
E8E8-cHECK lINE dECREMENT
E8FA-cHECK lINE iNCREMENT
E912-sET cOLOUR cODE
E921-cOLOUR cODE tABLEdata
E929?data
E975-sCROLL sCREEN
E9EE-oPEN a sPACE oN tHE sCREEN
EA56-mOVE a sCREEN lINE
EA6E-sYNCRONISE cOLOUR tRANSFER
EA7E-sET sTART OF lINE
EA8D-cLEAR sCREEN lINE
EAA1-pRINT tO sCREEN
EAB2-sYNCRONISE cOLOUR pOINTER
EABF-mAIN irq eNTRY pOINT
EB1ESCNKEYsCAN kEYBOARD
EB71-pROCESS kEY iMAGE
EC46-pOINTERS TO kEYBOARD DECODING TABLESword
EC5E-kEYBOARD dECODING tABLE- uNSHIFTEDdata
EC9F-kEYBOARD dECODING tABLE- sHIFTEDdata
ECE0-kEYBOARD dECODING tABLE- cOMMODOREdata
ED21-gRAPHICS/tEXT cONTROL
ED69-kEYBOARD dECODING tABLEdata
EDA3-kEYBOARD dECODING tABLE- cONTROLdata
EDE4-vIDEO cHIP sET uP tABLEdata
EDF4-sHIFT-rUN eQUIVALENTdata
EDFD-lOW bYTE sCREEN lINE aDDRESSESdata
EE14TALKsEND talk cOMMAND ON sERIAL bUS
EE17LISTNsEND listen cOMMAND ON sERIAL bUS
EE49-sEND dATA oN sERIAL bUS
EEB4-fLAG eRRORS
EEB4sTATUS #80 - DEVICE NOT PRESENT
EEB7sTATUS #03 - WRITE TIMEOUT
EEC0SECONDsEND listen sECONDARY aDDRESS
EEC5-cLEAR atn
EECETKSAsEND talk sECONDARY aDDRESS
EED3-wAIT fOR cLOCK
EEE4CIOUTsEND sERIAL dEFERRED
EEF6UNTLKsEND untalk ON sERIAL bUS
EF04UNLSNsEND unlisten ON sERIAL bUS
EF19ACPTRrECEIVE fROM sERIAL bUS
EF84-sERIAL cLOCK oN
EF8D-sERIAL cLOCK oFF
EF96-dELAY 1 MS
EFA3-rs-232 sEND
EFEE-sEND nEW rs-232 bYTE
F016-'nO dsr' eRROR
F019-'nO cts' eRROR
F021-dISABLE tIMER
F027-cOMPUTE bIT cOUNT
F036-rs-232 rECEIVE
F05B-sET uP tO rECEIVE
F068-pROCESS rs-232 bYTE
F0BC-sUBMIT TO rs-232
F0ED-sEND TO rs-232 bUFFER
F116-iNPUT fROM rs-232
F14F-gET fROM rs-232
F160-sERIAL bUS iDLE
F174-tABLE OF kERNAL i/o mESSAGESdata
;F174'<CR> I/O ERROR #'
; ...
;F1DF'OK<CR>'
F1E2-pRINT mESSAGE IF dIRECT
F1E6-pRINT mESSAGE
F1F5GETINgET A BYTE
F20ECHRINiNPUT A BYTE
F250-gET fROM tAPE / sERIAL / rs-232
F27ACHROUToUTPUT oNE cHARACTER
F2C7CHKINsET iNPUT dEVICE
F309CHKOUTsET oUTPUT dEVIC
F34ACLOSEcLOSE fILE
F3CF-fIND fILE
F3DF-sET fILE VALUES
F3EFCLALLaBORT aLL fILES
F3F3CLRCHNrESTORE dEFAULT i/o
F40AOPENoPEN fILE
F495-sEND sECONDARY aDDRESS
F4C7-oPEN rs-232
F542LOADlOAD ram fROM dEVICE
F549load-LOAD-
F55C-lOAD fILE fROM sERIAL bUS
F5CA-lOAD fILE fROM tAPE
F647-pRINT "searching"
F659-pRINT fILENAME
F66A-pRINT "loading / verifying"
F675SAVEsAVE ram tO dEVICE
F685save-SAVE-
F692-sAVE TO sERIAL bUS
F6F1-sAVE TO tAPE
F728-pRINT "saving"
F734UDTIMiNCREMENT rEAL-tIME cLOCK
F760RDTIMrEAD rEAL-tIME cLOCK
F767SETTIMsET rEAL-tIME cLOCK
F770stopcHECK stop kEY
;F77E-oUTPUT i/o eRROR mESSAGES
F77E'TOO MANY FILES'
F781'FILE OPEN'
F784'FILE NOT OPEN'
F787'FILE NOT FOUND'
F78A'DEVICE NOT PRESENT'
F78D'NOT INPUT FILE'
F790'NOT OUTPUT FILE'
F793'MISSING FILENAME'
F796'ILLEGAL DEVICE NUMBER'
F7AF-fIND aNY tAPE hEADER
F7E7-wRITE tAPE hEADER
F84D-gET bUFFER aDDRESS
F854-sET bUFFER sTAT / eND pOINTERS
F867-fIND sPECIFIC tAPE hEADER
F88A-bUMP tAPE pOINTER
F894-pRINT "press play on tape"
F8AB-cHECK tAPE sTATUS
F8B7-pRINT "press record..."
F8C0-iNITIATE tAPE rEAD
F8E3-iNITIATE tAPE wRITE
F8F4-cOMMON tAPE cODE
F94B-cHECK tAPE sTOP
F95D-sET rEAD tIMING
F98E-rEAD tAPE bITS
FAAD-sTORE tAPE cHARACTERS
FBD2-rESET tAPE pOINTER
FBDB-nEW cHARACTER sETUP
FBEA-sEND tONE TO tAPE
FC06-wRITE dATA TO tAPE
FC95-wRITE tAPE lEADER
FCCF-rESTORE nORMAL irq
FCF6-sET irq vECTOR
FD08-kILL tAPE mOTOR
FD11-cHECK rEAD / wRITE pOINTER
FD1B-bUMP rEAD / wRITE pOINTER
FD22-pOWER-uP reset eNTRY
FD3F-cHECK fOR a-rom
FD4D-rom mASK 'A0cbm'data
FD52RESTORrESTORE kERNAL vECTORS (AT 0314)
FD57VECTORcHANGE vECTORS fOR uSER
FD6D-kERNAL rESET vECTORSword
FD8DRAMTASiNITIALISE sYSTEM cONSTANTS
FDF1-irq vECTORS fOR tAPE i/oword
FDF9IOINITiNITIALISE i/o
FE39-eNABLE tIMER
FE49SETNAMsET fILENAME
FE50SETLFSsET lOGICAL fILE pARAMETERS
FE57READSSgET i/o sTATUS wORD
FE66SETMSGcONTROL os mESSAGES
FE6FSETTMOsET ieee tIMEOUT
FE73MEMTOPsET / rEAD tOP OF mEMORY
FE82MEMBOTsET / rEAD bOTTOM OF mEMORY
FEA9nmi tRANSFER eNTRY
FED2wARM sTART bASIC [brk]
;FED2uSER vECTOR (DEFAULT brk)
FF56eXIT iNTERRUPT
FF5Brs-232 tIMING tABLEdata
FF72irq tRANSFER eNTRY
;
;FF8AvIC-20 kERNEL jUMP tABLE
;
FF8AJMP $FD52RESTORrESTORE vECTORS
FF8DJMP $FD57VECTORcHANGE vECTORS fOR uSER
FF90JMP $FE66SETMSGcONTROL os mESSAGES
FF93JMP $EEC0SECNDsEND sa aFTER lISTEN
FF96JMP $EECETKSAsEND sa aFTER tALK
FF99JMP $FE73MEMTOPsET/rEAD sYSTEM ram tOP
FF9CJMP $FE82MEMBOTsET/rEAD sYSTEM ram bOTTOM
FF9FJMP $EB1ESCNKEYsCAN kEYBOARD
FFA2JMP $FE6FSETTMOsET tIMEOUT iN ieee
FFA5JMP $EF19ACPTRhANDSHAKE sERIAL bYTE iN
FFA8JMP $EEE4CIOUThANDSHAKE sERIAL bYTE oUT
FFABJMP $EEF6UNTALKcOMMAND sERIAL bUS untalk
FFAEJMP $EF04UNLSNcOMMAND sERIAL bUS unlisten
FFB1JMP $EE17LISTNcOMMAND sERIAL bUS listen
FFB4JMP $EE14TALKcOMMAND sERIAL bUS talk
FFB7JMP $FE57READSSrEAD i/o sTATUS wORD
FFBAJMP $FE50SETLFSsET lOGICAL fILE pARAMETERS
FFBDJMP $FE49SETNAMsET fILENAME
FFC0JMP ($031A)(IOPEN)oPEN vECTOR [f40a]
FFC3JMP ($031C)(ICLOSE)cLOSE vECTOR [f34a]
FFC6JMP ($031E)(ICHKIN)sET iNPUT [f2c7]
FFC9JMP ($0320)(ICHKOUT)sET oUTPUT [f309]
FFCCJMP ($0322)(ICLRCH)rESTORE i/o vECTOR [f353]
FFCFJMP ($0324)(ICHRIN)iNPUT vECTOR, CHRIN [f20e]
FFD2JMP ($0326)(ICHROUT)oUTPUT vECTOR, CHROUT [f27a]
FFD5JMP $F542LOADlOAD ram fROM dEVICE
FFD8JMP $F675SAVEsAVE ram tO dEVICE
FFDBJMP $F767SETTIMsET rEAL-tIME cLOCK
FFDEJMP $F760RDTIMrEAD rEAL-tIME cLOCK
FFE1JMP ($0328)(ISTOP)tEST-sTOP vECTOR [f770]
FFE4JMP ($032A)(IGETIN)gET fROM kEYBOAD [f1f5]
FFE7JMP ($032C)(ICLALL)cLOSE aLL cHANNELS aND fILES [f3ef]
FFEAJMP $F734UDTIMiNCREMENT rEAL-tIME cLOCK
FFEDJMP $E505SCREENrETURN sCREEN oRGANIZATION
FFF0JMP $E50APLOTrEAD / sET cURSOR x/y pOSITION
FFF3JMP $E500IOBASErETURN i/o bASE aDDRESS
;FFF6uNUSED vECTORS
FFF6[FFFF]
FFF8[FFFF]
;FFFAtRANSFER vECTORS
FFFA[FEA9]nmi
FFFC[FD22]reset
FFFE[FF72]irq