home *** CD-ROM | disk | FTP | other *** search
-
- commodore 64 memory maps
-
- address
- label hex dec description
- -----------------------------------------------------------------------------
- d6510 0000 0 6510 oN-CHIP dATA dIRECTION rEGISTER.
- r6510 0001 1 6510 oN-CHIP 8-BIT iNPUT/oUTPUT rEGISTER.
- temp 0002 2 uNUSED. fREE FOR USER PROGRAMS.
- adray1 0003-0004 3 jUMP vECTOR: cONVERT fac TO iNTEGER IN (a/y)
- ($b1aa).
- adray2 0005-0006 5 jUMP vECTOR: cONVERT iNTEGER IN (a/y) TO
- fLOATING POINT IN (fac); ($b391).
- charac 0007 7 sEARCH cHARACTER/tEMPORARY iNTEGER DURING int.
- endchr 0008 8 fLAG: sCAN FOR qUOTE AT END OF sTRING.
- integr 0007-0008 7 tEMPORARY iNTEGER DURING or/and.
- trmpos 0009 9 sCREEN cOLUMN FOR LAST tab.
- verck 000a 10 fLAG: 0 = lOAD, 1 = vERIFY.
- count 000b 11 iNPUT bUFFER pOINTER/nUMBER OF sUBSCRIPTS.
- dimflg 000c 12 fLAG: dEFAULT aRRAY DIMENSION.
- valtyp 000d 13 dATA TYPE fLAG: $00 = nUMERIC, $ff = sTRING.
- intflg 000e 14 dATA TYPE fLAG: $00 = fLOATING POINT, $80 =
- iNTEGER.
- garbfl 000f 15 fLAG: data SCAN/lIST qUOTE/gARBAGE COLLECTION.
- subflg 0010 16 fLAG: sUBSCRIPT REFERENCE/uSER fUNCTION CALL.
- inpflg 0011 17 iNPUT fLAG: $00 = input, $40 = get, $98 =
- read.
- tansgn 0012 18 fLAG: tan SIGN/cOMPARATIVE RESULT.
- channl 0013 19 fILE NUMBER OF CURRENT iNPUT dEVICE.
- linnum 0014-0015 20 tEMPORARY: iNTEGER VALUE.
- temppt 0016 22 pOINTER: tEMPORARY sTRING sTACK.
- lastpt 0017-0018 23 lAST TEMPORARY sTRING aDDRESS.
- tempst 0019-0021 25 sTACK FOR TEMPORARY sTRINGS.
- index 0022-0025 34 uTILITY pOINTER aREA.
- index1 0022-0023 34 fIRST uTILITY pOINTER.
- index2 0024-0025 36 sECOND uTILITY pOINTER.
- resho 0026-002a 38 fLOATING POINT PRODUCT OF mULTIPLY AND
- dIVIDE.
- txttab 002b-002c 43 pOINTER: sTART OF basic tEXT aREA ($0801).
- vartab 002d-002e 45 pOINTER: sTART OF basic vARIABLES.
- arytab 002f-0030 47 pOINTER: sTART OF basic aRRAYS.
- strend 0031-0032 49 pOINTER: eND OF basic aRRAYS + 1.
- fretop 0033-0034 51 pOINTER: bOTTOM OF sTRING SPACE.
- frespc 0035-0036 53 uTILITY sTRING pOINTER.
- memsiz 0037-0038 55 pOINTER: hIGHEST aDDRESS AVAILABLE TO basic
- ($a000).
- curlin 0039-003a 57 cURRENT basic lINE NUMBER.
- oldlin 003b-003c 59 pREVIOUS basic lINE NUMBER.
- oldtxt 003d-003e 61 pOINTER: basic sTATEMENT FOR cont.
- datlin 003f-0040 63 cURRENT data lINE NUMBER.
- datptr 0041-0042 65 pOINTER: uSED BY read - CURRENT data iTEM
- aDDRESS.
- inpptr 0043-0044 67 pOINTER: tEMPORARY STORAGE OF pOINTER DURING
- input rOUTINE.
- varnam 0045-0046 69 nAME OF vARIABLE BEING SOUGHT IN vARIABLE
- tABLE.
- varpnt 0047-0048 71 pOINTER: TO VALUE OF (varnam) IF iNTEGER, TO
- DESCRIPTOR IF sTRING.
- forpnt 0049-004a 73 pOINTER: iNDEX vARIABLE FOR for/next LOOP.
- vartxt 004b-004c 75 tEMPORARY STORAGE FOR txtptr DURING read,
- input AND get.
- opmask 004d 77 mASK USED DURING frmevl.
- tempf3 004e-0052 78 tEMPORARY STORAGE FOR flpt VALUE.
- four6 0053 83 lENGTH OF sTRING vARIABLE DURING gARBEGE
- COLLECTION.
- jmper 0054-0056 84 jUMP vECTOR USED IN fUNCTION eVALUATION -
- jmp FOLLOWED BY aDDRESS ($4c,$lb,$mb).
- tempf1 0057-005b 87 tEMPORARY STORAGE FOR flpt VALUE.
- tempf2 005c-0060 92 tEMPORARY STORAGE FOR flpt VALUE.
- fac 0061-0066 97 mAIN fLOATING POINT aCCUMULATOR.
- facexp 0061 97 fac eXPONENT.
- facho 0062-0065 98 fac mANTISSA.
- facsgn 0066 102 fac sIGN.
- sgnflg 0067 103 pOINTER: sERIES eVALUATION cONSTANT.
- bits 0068 104 bIT oVERFLOW aREA DURING NORMALISATION
- rOUTINE.
- afac 0069-006e 105 aUXILIARY fLOATING POINT aCCUMULATOR.
- argexp 0069 105 afac eXPONENT.
- argho 006a-006d 106 afac mANTISSA.
- argsgn 006e 110 afac sIGN.
- arisgn 006f 111 sIGN OF RESULT OF aRITHMETIC eVALUATION.
- facov 0070 112 fac LOW-ORDER ROUNDING.
- fbufpt 0071-0072 113 pOINTER: uSED DURING crunch/ascii CONVERSION.
- chrget 0073-008a 115 sUBROUTINE: gET NEXT bYTE OF basic tEXT.
- ,0073 inc $7a ,0082 beq $0073
- ,0075 bne $0079 ,0084 sec
- ,0077 inc $7b ,0085 sbc #$30
- ! ,0079 lda $0801 ,0087 sec
- ,007c cmp #$3a ,0088 sbc #$d0
- ,007e bcs $008a ,008a rts
- ,0080 cmp #$20
- chrgot 0079 121 eNTRY TO gET SAME bYTE AGAIN.
- txtptr 007a-007b 122 pOINTER: cURRENT bYTE OF basic tEXT.
- rndx 008b-008f 139 fLOATING rnd fUNCTION sEED vALUE.
- status 0090 144 kERNAL i/o sTATUS wORD st.
- stkey 0091 145 fLAG: $7f = stop KEY.
- svxt 0092 146 tIMING cONSTANT FOR tAPE.
- verckk 0093 147 fLAG: 0 = lOAD, 1 = vERIFY.
- c3po 0094 148 fLAG: sERIAL bUS - oUTPUT cHARACTER BUFFERED.
- bsour 0095 149 bUFFERED cHARACTER FOR sERIAL bUS.
- syno 0096 150 cASSETTE sYNC. NUMBER.
- tempx 0097 151 tEMPORARY STORAGE OF x rEGISTER DURING chrin.
- tempy 0097 151 tEMPORARY STORAGE OF y rEGISTER DURING rs232
- FETCH.
- ldtnd 0098 152 nUMBER OF oPEN fILES/iNDEX TO fILE tABLE.
- dfltn 0099 153 dEFAULT iNPUT dEVICE (0).
- dflto 009a 154 dEFAULT oUTPUT dEVICE (3).
- prty 009b 155 pARITY OF bYTE oUTPUT TO tAPE.
- dpsw 009c 156 fLAG: bYTE RECEIVED FROM tAPE.
- msgflg 009d 157 fLAG: $00 = pROGRAM MODE: sUPPRESS eRROR
- mESSAGES, $40 = kERNAL eRROR mESSAGES ONLY,
- $80 = dIRECT MODE: fULL eRROR mESSAGES.
- fnmidx 009e 158 iNDEX TO cASSETTE fILE NAME/hEADER id FOR
- tAPE WRITE.
- ptr1 009e 158 tAPE eRROR LOG PASS 1.
- ptr2 009f 159 tAPE eRROR LOG PASS 2.
- time 00a0-00a2 160 rEAL-TIME JIFFY cLOCK (uPDATED BY irq
- iNTERRUPT APPROX. EVERY 1/60 OF sECOND);
- uPDATE rOUTINE: udtimk ($f69b).
- tsfcnt 00a3 163 bIT cOUNTER tAPE rEAD OR wRITE/sERIAL bUS
- eoi (eND oF iNPUT) fLAG.
- tbtcnt 00a4 164 pULSE cOUNTER tAPE rEAD OR wRITE/sERIAL bUS
- SHIFT cOUNTER.
- cntdn 00a5 165 tAPE sYNCHRONISING COUNT DOWN.
- bufpnt 00a6 166 pOINTER: tAPE i/o BUFFER.
- inbit 00a7 167 rs232 TEMPORARY FOR RECEIVED bIT/tAPE
- TEMPORARY.
- bitc1 00a8 168 rs232 iNPUT bIT COUNT/tAPE TEMPORARY.
- rinone 00a9 169 rs232 fLAG: sTART bIT CHECK/tAPE TEMPORARY.
- ridata 00aa 170 rs232 iNPUT bYTE bUFFER/tAPE TEMPORARY.
- riprty 00ab 171 rs232 iNPUT PARITY/tAPE TEMPORARY.
- sal 00ac-00ad 172 pOINTER: tAPE bUFFER/sCREEN SCROLLING.
- eal 00ae-00af 174 tAPE eND aDDRESS/eND OF pROGRAM.
- cmpo 00b0-00b1 176 tAPE TIMING cONSTANTS.
- tape1 00b2-00b3 178 pOINTER: sTART aDDRESS OF tAPE bUFFER ($033c).
- bitts 00b4 180 rs232 wRITE BIT COUNT/tAPE rEAD TIMING fLAG.
- nxtbit 00b5 181 rs232 nEXT bIT TO SEND/tAPE rEAD - eND OF
- tAPE.
- rodata 00b6 182 rs232 oUTPUT bYTE bUFFER/tAPE rEAD eRROR fLAG.
- fnlen 00b7 183 nUMBER OF cHARACTERS IN fILENAME.
- la 00b8 184 cURRENT fILE - lOGICAL fILE NUMBER.
- sa 00b9 185 cURRENT fILE - sECONDARY aDDRESS.
- fa 00ba 186 cURRENT fILE - fIRST aDDRESS (dEVICE NUMBER).
- open la,fa,sa; open 1,8,15,"i0":close 1
- fnadr 00bb-00bc 187 pOINTER: cURRENT fILE NAME aDDRESS.
- roprty 00bd 189 rs232 oUTPUT pARITY/tAPE bYTE TO BE iNPUT OR
- oUTPUT.
- fsblk 00be 190 tAPE iNPUT/oUTPUT bLOCK COUNT.
- mych 00bf 191 sERIAL wORD bUFFER.
- cas1 00c0 192 tAPE mOTOR sWITCH.
- stal 00c1-00c2 193 sTART aDDRESS FOR load AND cASSETTE wRITE.
- memuss 00c3-00c4 195 pOINTER: tYPE 3 tAPE load AND GENERAL USE.
- lstx 00c5 197 mATRIX VALUE OF LAST kEY PRESSED; nO kEY = $40.
- ndx 00c6 198 nUMBER OF cHARACTERS IN kEYBOARD bUFFER
- QUEUE.
- rvs 00c7 199 fLAG: rEVERSE oN/oFF; oN = $01, oFF = $00.
- indx 00c8 200 pOINTER: eND OF lINE FOR iNPUT (uSED TO
- SUPPRESS TRAILING SPACES).
- lxsp 00c9-00ca 201 cURSOR x/y (lINE/cOLUMN) POSITION AT START OF
- iNPUT.
- sfdx 00cb 203 fLAG: pRINT SHIFTED cHARACTERS.
- blnsw 00cc 204 fLAG: cURSOR BLINK; $00 = eNABLED, $01 =
- dISABLED.
- blnct 00cd 205 tIMER: cOUNT DOWN FOR cURSOR BLINK TOGGLE.
- gdbln 00ce 206 cHARACTER UNDER cURSOR WHILE cURSOR iNVERTED.
- blnon 00cf 207 fLAG: cURSOR sTATUS; $00 = oFF, $01 = oN.
- crsw 00d0 208 fLAG: iNPUT FROM sCREEN = $03, OR kEYBOARD =
- $00.
- pnt 00d1-00d2 209 pOINTER: cURRENT sCREEN lINE aDDRESS.
- pntr 00d3 211 cURSOR cOLUMN ON CURRENT lINE, INCLUDING
- wRAP-ROUND lINE, IF ANY.
- qtsw 00d4 212 fLAG: eDITOR IN qUOTE mODE; $00 = nOT.
- lnmx 00d5 213 cURRENT LOGICAL lINE LENGTH: 39 OR 79.
- tblx 00d6 214 cURRENT sCREEN lINE NUMBER OF cURSOR.
- schar 00d7 215 sCREEN VALUE OF CURRENT iNPUT cHARACTER/lAST
- cHARACTER oUTPUT.
- insrt 00d8 216 cOUNT OF NUMBER OF INSERTS OUTSTANDING.
- ldtb1 00d9-00f2 217 sCREEN lINE LINK tABLE/eDITOR TEMPORARIES.
- hIGH bYTE OF lINE sCREEN mEMORY lOCATION.
- user 00f3-00f4 243 pOINTER: cURRENT cOLOUR ram lOCATION.
- keytab 00f5-00f6 245 vECTOR: cURRENT kEYBOARD DECODING tABLE.
- ($eb81)
- ribuf 00f7-00f8 247 rs232 iNPUT bUFFER pOINTER.
- robuf 00f9-00fa 249 rs232 oUTPUT bUFFER pOINTER.
- frekzp 00fb-00fe 251 fREE zERO pAGE SPACE FOR uSER pROGRAMS.
- baszpt 00ff 255 basic TEMPORARY dATA aREA.
- ascwrk 00ff-010a 255 aSSEMBLY aREA FOR fLOATING POINT TO ascii
- CONVERSION.
- bad 0100-013e 256 tAPE iNPUT eRROR LOG.
- stack 0100-01ff 256 6510 hARDWARE sTACK aREA.
- bstack 013f-01ff 319 basic sTACK aREA.
- buf 0200-0258 512 basic iNPUT bUFFER (iNPUT lINE FROM sCREEN).
- lat 0259-0262 601 kERNAL tABLE: aCTIVE LOGICAL fILE NUMBERS.
- fat 0263-026c 611 kERNAL tABLE: aCTIVE fILE fIRST aDDRESSES
- (dEVICE NUMBERS).
- sat 026d-0276 621 kERNAL tABLE: aCTIVE fILE sECONDARY
- aDDRESSES.
- keyd 0277-0280 631 kEYBOARD bUFFER qUEUE (fifo).
- memstr 0281-0282 641 pOINTER: bOTTOM OF mEMORY FOR oPERATING
- sYSTEM ($0800).
- memsiz 0283-0284 643 pOINTER: tOP OF mEMORY FOR oPERATING
- sYSTEM ($a000).
- timout 0285 645 sERIAL ieee bUS TIMEOUT DEFEAT fLAG.
- color 0286 646 cURRENT cHARACTER cOLOUR CODE.
- gdcol 0287 647 bACKGROUND cOLOUR UNDER cURSOR.
- hibase 0288 648 hIGH bYTE OF sCREEN mEMORY aDDRESS ($04).
- xmax 0289 649 mAXIMUM NUMBER OF bYTES IN kEYBOARD
- bUFFER ($0a).
- rptflg 028a 650 fLAG: rEPEAT KEYS; $00 = cURSORS, inst/del &
- sPACE REPEAT, $40 NO kEYS REPEAT, $80 ALL
- kEYS REPEAT ($00).
- kount 028b 651 rEPEAT kEY: sPEED cOUNTER ($04).
- delay 028c 652 rEPEAT kEY: fIRST REPEAT DELAY cOUNTER ($10).
- shflag 028d 653 fLAG: sHIFT kEYS: bIT 1 = sHIFT, bIT 2 = cbm,
- bIT 3 = ctrl; ($00 = nONE, $01 = sHIFT, ETC.).
- lstshf 028e 654 lAST sHIFT kEY USED FOR DEBOUNCING.
- keylog 028f-0290 655 vECTOR: rOUTINE TO DETERMINE kEYBOARD TABLE
- TO USE BASED ON sHIFT kEY pATTERN ($eb48).
- mode 0291 657 fLAG: uPPER/lOWER cASE CHANGE: $00 = dISABLED,
- $80 = eNABLED ($00).
- autodn 0292 658 fLAG: aUTO SCROLL DOWN: $00 = dISABLED ($00).
- m51ctr 0293 659 rs232 pSEUDO 6551 CONTROL rEGISTER iMAGE.
- m51cdr 0294 660 rs232 pSEUDO 6551 COMMAND rEGISTER iMAGE.
- m51ajb 0295-0296 661 rs232 nON-STANDARD bITS/sECOND.
- rsstat 0297 663 rs232 pSEUDO 6551 sTATUS rEGISTER iMAGE.
- bitnum 0298 664 rs232 nUMBER OF bITS LEFT TO SEND.
- baudof 0299-029a 665 rs232 bAUD rATE; fULL bIT TIME MICROSECONDS.
- ridbe 029b 667 rs232 iNDEX TO eND OF iNPUT bUFFER.
- ridbs 029c 668 rs232 pOINTER: hIGH bYTE OF aDDRESS OF iNPUT
- bUFFER.
- rodbs 029d 669 rs232 pOINTER: hIGH bYTE OF aDDRESS OF oUTPUT
- bUFFER.
- rodbe 029e 670 rs232 iNDEX TO eND OF oUTPUT bUFFER.
- irqtmp 029f-02a0 671 tEMPORARY STORE FOR irq vECTOR DURING tAPE
- OPERATIONS.
- enabl 02a1 673 rs232 eNABLES.
- todsns 02a2 674 tod SENSE DURING tAPE i/o.
- trdtmp 02a3 675 tEMPORARY STORAGE DURING tAPE read.
- td1irq 02a4 676 tEMPORARY d1irq iNDICATOR DURING tAPE read.
- tlnidx 02a5 677 tEMPORARY FOR lINE iNDEX.
- tvsflg 02a6 678 fLAG: tv sTANDARD: $00 = ntsc, $01 = pal.
- temp 02a7-02ff 679 uNUSED.
- spr11 02c0-02fe 704 sPRITE #11 dATA aREA.
- (screen + $03f8 + spr NUMBER)
- poke 1024+1016+0,11 TO USE sPRITE#0 data
- FROM ($02c0-$02fe).
- ierror 0300-0301 768 vECTOR: iNDIRECT ENTRY TO basic eRROR
- mESSAGE, (x) POINTS TO mESSAGE ($e38b).
- imain 0302-0303 770 vECTOR: iNDIRECT ENTRY TO basic iNPUT lINE
- AND dECODE ($a483).
- icrnch 0304-0305 772 vECTOR: iNDIRECT ENTRY TO basic tOKENISE
- rOUTINE ($a57c).
- iqplop 0306-0307 774 vECTOR: iNDIRECT ENTRY TO basic list
- rOUTINE ($a71a).
- igone 0308-0309 776 vECTOR: iNDIRECT ENTRY TO basic cHARACTER
- DISPATCH rOUTINE ($a7e4).
- ieval 030a-030b 778 vECTOR: iNDIRECT ENTRY TO basic tOKEN
- EVALUATION ($ae86).
- sareg 030c 780 sTORAGE FOR 6510 aCCUMULATOR DURING sys.
- sxreg 030d 781 sTORAGE FOR 6510 x-rEGISTER DURING sys.
- syreg 030e 782 sTORAGE FOR 6510 y-rEGISTER DURING sys.
- spreg 030f 783 sTORAGE FOR 6510 sTATUS rEGISTER DURING sys.
- usrpok 0310 784 usr fUNCTION jmp iNSTRUCTION ($4c).
- usradd 0311-0312 785 usr aDDRESS ($lb,$mb).
- temp 0313 787 uNUSED.
- cinv 0314-0315 788 vECTOR: hARDWARE irq iNTERRUPT aDDRESS ($ea31).
- cnbinv 0316-0317 790 vECTOR: brk iNSTRUCTION iNTERRUPT aDDRESS
- ($fe66).
- nminv 0318-0319 792 vECTOR: hARDWARE nmi iNTERRUPT aDDRESS ($fe47).
- iopen 031a-031b 794 vECTOR: iNDIRECT ENTRY TO kERNAL open
- rOUTINE ($f34a).
- iclose 031c-031d 796 vECTOR: iNDIRECT ENTRY TO kERNAL close
- rOUTINE ($f291).
- ichkin 031e-031f 798 vECTOR: iNDIRECT ENTRY TO kERNAL chkin
- rOUTINE ($f20e).
- ickout 0320-0321 800 vECTOR: iNDIRECT ENTRY TO kERNAL chkout
- rOUTINE ($f250).
- iclrch 0322-0323 802 vECTOR: iNDIRECT ENTRY TO kERNAL clrchn
- rOUTINE ($f333).
- ibasin 0324-0325 804 vECTOR: iNDIRECT ENTRY TO kERNAL chrin
- rOUTINE ($f157).
- ibsout 0326-0327 806 vECTOR: iNDIRECT ENTRY TO kERNAL chrout
- rOUTINE ($f1ca).
- istop 0328-0329 808 vECTOR: iNDIRECT ENTRY TO kERNAL stop
- rOUTINE ($f6ed).
- igetin 032a-032b 810 vECTOR: iNDIRECT ENTRY TO kERNAL getin
- rOUTINE ($f13e).
- iclall 032c-032d 812 vECTOR: iNDIRECT ENTRY TO kERNAL clall
- rOUTINE ($f32f).
- usrcmd 032e-032f 814 uSER dEFINED vECTOR ($fe66).
- iload 0330-0331 816 vECTOR: iNDIRECT ENTRY TO kERNAL load
- rOUTINE ($f4a5).
- isave 0332-0333 818 vECTOR: iNDIRECT ENTRY TO kERNAL save
- rOUTINE ($f5ed).
- temp 0334-033b 820 uNUSED.
- tbuffr 033c-03fb 828 tAPE i/o bUFFER.
- spr13 0340-037e 832 sPRITE #13.
- spr14 0380-03be 896 sPRITE #14.
- spr15 03c0-03fe 960 sPRITE #15.
- temp 03fc-03ff 1020 uNUSED.
- vicscn 0400-07e7 1024 dEFAULT sCREEN vIDEO mATRIX.
- temp 07e8-07f7 2024 uNUSED.
- spntrs 07f8-07ff 2040 dEFAULT sPRITE dATA pOINTERS.
-
-
- 0800-9fff 2048 nORMAL basic pROGRAM SPACE.
- 8000-9fff 32768 oPTIONAL cARTRIDGE rom SPACE.
- a000-bfff 40960 basic rom (pART) OR 8 kb ram.
- c000-cfff 49152 4 kb ram.
- d000-dfff 53248 iNPUT/oUTPUT dEVICES AND cOLOUR ram OR
- 4 kb ram OR cHARACTER rom.
- d000-d02e 53248 6566 vIDEO iNTERFACE cHIP, vic ii.
- d400-d41c 54272 6581 sOUND iNTERFACE dEVICE, sid.
- d500-d7ff 54528 sid iMAGES.
- d800-dbe7 55296 cOLOUR ram (nYBBLES = 4 bIT ram, lsb).
- dbe8-dbff 56296 uNUSED nYBBLES.
- dc00-dc0f 56320 6526 cOMPLEX iNTERFACE aDAPTOR, cia.
- dd00-dd0f 56576 6526 cOMPLEX iNTERFACE aDAPTOR, cia.
- e000-ffff 57344 basic (pART)/kERNAL rom OR 8 kb ram.
- e000-e4ff 57344 basic rom (pART) OR ram.
- e500-ffff 58624 kERNAL rom OR ram.
-
-
-
- commodore 64 input/output assignments
-
-
- hexdecimalbitsdescription
-
- 000007-0mos 6510 dATA dIRECTION
- rEGISTER (XX101111)
- bIT= 1: oUTPUT, bIT=0:
- iNPUT, X=dON'T cARE
-
- 00011mos 6510 mICRO-pROCESSOR
- oN-cHIP i/o pORT
- 0/loram sIGNAL (0=sWITCHbasic rom oUT)
- 1/hiram sIGNAL (0=sWITCH kERNAL rom oUT)
- 2/charen sIGNAL (o=sWITH cHAR. rom iN)
- 3cASSETTE dATA oUTPUT lINE
- 4cASSETTE sWITCH sENSE: 1 = sWITCH cLOSED
- 5cASSETTE mOTOR cONTROL
- o = on, 1 = off
- 6-7uNDEFINED
-
-
- d000-d02e53248-54271mos 6566 video interface controller (vic)
-
- d00053248sPRITE o x pOS
- d00153249sPRITE o y pOS
- d00253250sPRITE 1 x pOS
- d00353251sPRITE 1 y pOS
- d00453252sPRITE 2 x pOS
- d00553253sPRITE 2 y pOS
- d00653254sPRITE 3 x pOS
- d00753255sPRITE 3 y pOS
- d00853256sPRITE 4 x pOS
- d00953257sPRITE 4 y pOS
- d00a53258sPRITE 5 x pOS
- d00b53259sPRITE 5 y pOS
- d00c53260sPRITE 6 x pOS
- d00d53261sPRITE 6 y pOS
- d00e53262sPRITE 7 x pOS
- d00f53263sPRITE 7 y pOS
- d01053264sPRITES 0-7 x pOS (MSB OF x COORD.)
-
- d01153265vic cONTROL rEGISTER
- 7rASTER cOMPARE: (bIT 8)sEE 53266
- 6eXTENDED cOLOR tEXT mODE 1 = eNABLE
- 5bIT mAP mODE. 1 = eNABLE
- 4bLANK sCREEN TO bORDER cOLOR: o = bLANK
- 3sELECT 24/25 rOW tEXT dISPLAY: 1 = 25 rOWS
- 2-0sMOOTH sCROLL TO y dOT-pOSITION (0-7)
-
- d01253266rEAD rASTER / wRITE rASTER vALUE FOR cOMPARE irq
- d01353267lIGHT-pEN lATCH x pOS
- d01453268lIGHT-pEN lATCH y pOS
- d01553269sPRITE DISPLAY eNABLE: 1 = eNABLE
-
- d01653270vic cONTROL rEGISTER
- 7-6uNUSED
- 5always set this bit to 0 !
- 4mULTI-cOLOR mODE: 1 = eNABLE (tEXT OR bIT-mAP)
- 3sELECT 38/40 cOLUMN tEXT dISPLAY: 1 = 40 cOLS
- 2-0sMOOTH sCROLL TO x pOS
-
- d01753271sPRITES o-7 eXPAND 2X vERTICAL (y)
-
- d01853272vic mEMORY cONTROL rEGISTER
- 7-4vIDEO mATRIX bASE aDDRESS (INSIDE vic)
- 3-1cHARACTER dOT-dATA bASEaDDRESS (INSIDE vic)
- 0sELECT UPPER/LOWER cHARACTER sET
-
- d01953273vic iNTERRUPT fLAG rEGISTER (bIT = 1: irq oCCURRED)
- 7sET ON aNY eNABLED vic irq cONDITION
- 3lIGHT-pEN tRIGGERED irq fLAG
- 2sPRITE TO sPRITE cOLLISION irq fLAG
- 1sPRITE TO bACKGROUND cOLLISION irq fLAG
- 0rASTER cOMPARE irq fLAG
-
- d01a53274irq mASK rEGISTER: 1 = iNTERRUPT eNABLED
- d01b53275sPRITE TO bACKGROUND dISPLAY pRIORITY: 1 = sPRITE
- d01c53276sPRITES o-7 mULTI-cOLOR mODE sELECT: 1 = m.c.m.
- d01d53277sPRITES 0-7 eXPAND 2X hORIZONTAL (x)
-
- d01e53278sPRITE TO sPRITE cOLLISION dETECT
- d01f53279sPRITE TO bACKGROUND cOLLISION dETECT
- d02053280bORDER cOLOR
- d02153281bACKGROUND cOLOR o
- d02253282bACKGROUND cOLOR 1
- d02353283bACKGROUND cOLOR 2
- d02453284bACKGROUND cOLOR 3
- d02553285sPRITE mULTI-cOLOR rEGISTER 0
- d02653286sPRITE mULTI-cOLOR rEGISTER 1
-
- d02753287sPRITE o cOLOR
- d02853288sPRITE 1 cOLOR
- d02953289sPRITE 2 cOLOR
- d02a53290sPRITE 3 cOLOR
- d02b53291sPRITE 4 cOLOR
- d02c53292sPRITE 5 cOLOR
- d02d53293sPRITE 6 cOLOR
- d02e53294sPRITE 7 cOLOR
-
- d400-d7ff54272-55295mos 6581 sound interface device (sid)
-
- d40054272vOICE 1: fREQUENCY cONTROL - lOW-bYTE
- d40154273vOICE 1: fREQUENCY cONTROL - hIGH-bYTE
- d40254274vOICE 1: pULSE wAVEFORMwIDTH - lOW-bYTE
- d403542757-4uNUSED
- 3-0vOICE 1: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
- d40454276vOICE 1: cONTROL rEGISTER
- 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
- 6sELECT pULSE wAVEFORM, 1 = oN
- 5sELECT sAWTOOTH wAVEFORM, 1 = oN
- 4sELECT tRIANGLE wAVEFORM, 1 = oN
- 3tEST bIT: 1 = dISABLE oSCILLATOR 1
- 2rING mODULATE oSC. 1 WITH oSC. 3 oUTPUT, 1 = oN
- 1sYNCHRONIZE oSC. 1 WITH oSC. 3 fREQUENCY, 1 = oN
- 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
-
- d40554277eNVELOPE gENERATOR 1: aTTACK / dECAY cYCLE cONTROL
- 7-4sELECT aTTACK cYCLE dURATION: o-15
- 3-0sELECT dECAY cYCLE dURATION: 0-15
-
- d40654278eNVELOPE gENERATOR 1: sUSTAIN / rELEASE cYCLE cONTROL
- 7-4sELECT sUSTAIN cYCLE dURATION: o-15
- 3-0sELECT rELEASE cYCLE dURATION: o-15
-
- d40754279vOICE 2: fREQUENCY cONTROL - lOW-bYTE
- d40854280vOICE 2: fREQUENCY cONTROL - hIGH-bYTE
- d40954281vOICE 2: pULSE wAVEFORM wIDTH - lOW-bYTE
-
- d40a542827-4uNUSED
- 3-0vOICE 2: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
-
- d40b54283vOICE 2: cONTROL rEGISTER
- 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
- 6sELECT pULSE wAVEFORM, 1 = oN
- 5sELECT sAWTOOTH wAVEFORM, 1 = oN
- 4sELECT tRIANGLE wAVEFORM, 1 = oN
- 3tEST bIT: 1 = dISABLE oSCILLATOR 1
- 2rING mODULATE oSC. 2 WITH oSC. 1 oUTPUT, 1 = oN
- 1sYNCHRONIZE oSC. 2 WITH oSC. 1 fREQUENCY, 1 = oN
- 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
-
- d40c54284eNVELOPE gENERATOR 2: aTTACK / dECAY cYCLE cONTROL
- 7-4sELECT aTTACK cYCLE dURATION: o-15
- 3-0sELECT dECAY cYCLE dURATION: 0-15
-
- d40d54285eNVELOPE gENERATOR 2: sUSTAIN / rELEASE cYCLE cONTROL
- 7-4sELECT sUSTAIN cYCLE dURATION: o-15
- 3-0sELECT rELEASE cYCLE dURATION: o-15
-
- d40e54286vOICE 3: fREQUENCY cONTROL - lOW-bYTE
- d40f54287vOICE 3: fREQUENCY cONTROL - hIGH-bYTE
- d41054288vOICE 3: pULSE wAVEFORM wIDTH - lOW-bYTE
- d411542897-4uNUSED
- 3-0vOICE 3: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
- d41254290vOICE 3: cONTROL rEGISTER
- 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
- 6sELECT pULSE wAVEFORM, 1 = oN
- 5sELECT sAWTOOTH wAVEFORM, 1 = oN
- 4sELECT tRIANGLE wAVEFORM, 1 = oN
- 3tEST bIT: 1 = dISABLE oSCILLATOR 1
- 2rING mODULATE oSC. 3 WITH oSC. 2 oUTPUT, 1 = oN
- 1sYNCHRONIZE oSC. 3 WITH oSC. 2 fREQUENCY, 1 = oN
- 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
-
- d41354291eNVELOPE gENERATOR 3: aTTAC/dECAY cYCLE cONTROL
- 7-4sELECT aTTACK cYCLE dURATION: o-15
- 3-0sELECT dECAY cYCLE dURATION: 0-15
-
- d41454285eNVELOPE gENERATOR 3: sUSTAIN / rELEASE cYCLE cONTROL
- 7-4sELECT sUSTAIN cYCLE dURATION: o-15
- 3-0sELECT rELEASE cYCLE dURATION: o-15
-
-
- d41554293fILTER cUTOFF fREQUENCY: lOW-nYBBLE (bITS 2-o)
- d41654294fILTER cUTOFF fREQUENCY: hIGH-bYTE
- d41754295fILTER rESONANCE cONTROL / vOICE iNPUT cONTROL
- 7-4sELECT fILTER rESONANCE: 0-15
- 3fILTER eXTERNAL iNPUT: 1 = yES, 0 = nO
- 2fILTER vOICE 3 oUTPUT: 1 = yES, 0 = nO
- fILTER vOICE 2 oUTPUT: 1 = yES, 0 = nO
- 0fILTER vOICE 1 oUTPUT: 1 = yES, 0 = nO
-
- d41854296sELECT fILTER mODE AND vOLUME
- 7cUT-oFF vOICE 3 oUTPUT: 1 = oFF, o = oN
-
- 6sELECT fILTER hIGH-pASS mODE: 1 = oN
- 5sELECT fILTER bAND-pASS mODE: 1 = oN
- 4sELECT fILTER lOW-pASS mODE: 1 = oN
- 3-0sELECT oUTPUT vOLUME: 0-15
-
- d41954297aNALOG/dIGITAL cONVERTER: gAME pADDLE 1 (o-255)
- d41a54298aNALOG/dIGITAL cONVERTER gAME pADDLE 2 (o-255)
- d41b54299oSCILLATOR 3 rANDOM nUMBER gENERATOR
- d41c54230eNVELOPE gENERATOR 3 oUTPUT
-
- d500-d7ff54528-55295sid images
- d800-dbff55296-56319cOLOR ram (nYBBLES)
-
- dc00-dcff56320-56575mos 6526 cOMPLEX iNTERFACE aDAPTER (cia) #1
-
- dc0056320dATA pORT a (kEYBOARD, jOYSTICK, pADDLES, lIGHT-pEN)
-
- 7-0wRITE kEYBOARD cOLUMN vALUES FOR kEYBOARD sCAN
- 7-6rEAD pADDLES ON pORT a / b (01 = pORT a, 10 = pORT b)
- 4jOYSTICK a fIRE bUTTON: 1 = fIRE
- 3-2pADDLE fIRE bUTTONS
- 3-0jOYSTICK a dIRECTION (0-15)
-
- dc0156321dATA pORT b (kEYBOARD, jOYSTICK, pADDLES): gAME pORT 1
- 7-0rEAD kEYBOARD rOW vALUES FOR kEYBOARD sCAN
-
- 7tIMER b tOGGLE/pULSE oUTPUT
- 6tIMER a: tOGGLE/pULSE oUTPUT
-
- 4jOYSTICK 1 fIRE bUTTON: 1 = fIRE
- 3-2pADDLE fIRE bUTTONS
- 3-0jOYSTICK 1 dIRECTION
-
- dc0256322dATA dIRECTION rEGISTER - pORT a (56320)
- dc0356323dATA dIRECTION rEGISTER - pORT b (56321)
- dc0456324tIMER a: lOW-bYTE
- dc0556325tIMER a: hIGH-bYTE
- dc0656326tIMER b: lOW-bYTE
- dc0756327tIMER b: hIGH-bYTE
-
- dc0856328tIME-OF-dAY cLOCK: 1/10 sECONDS
- dc0956329tIME-OF-dAY cLOCK: sECONDS
- dc0a56330tIME-OF-dAY cLOCK: mINUTES
- dc0b56331tIME-OF-dAY cLOCK: hOURS + am/pm fLAG (bIT 7)
-
- dc0c56332sYNCHRONOUS sERIAL i/o dATA bUFFER
- dc0d56333cia iNTERRUPT cONTROL rEGISTER (rEAD irqS/wRITE mASK)
-
- 7irq fLAG (1 = irq oCCURRED) / sET-cLEAR fLAG
- 4flag1 irq (cASSETTE rEAD / sERIAL bUS srq iNPUT)
- 3sERIAL pORT iNTERRUPT
- 2tIME-OF-dAY cLOCK aLARM iNTERRUPT
- 1tIMER b iNTERRUPT
- 0tIMER a iNTERRUPT
-
- dc0e56334cia cONTROL rEGISTER a
- 7tIME-OF-dAY cLOCK fREQUENCY: 1 = 50 hZ, 0 = 60 hZ
- 6sERIAL pORT i/o mODE oUTPUT, 0 = iNPUT
- 5tIMER a cOUNTS: 1 = cnt sIGNALS, 0 = sYSTEM 02 cLOCK
-
- 4fORCE lOAD tIMER a: 1 = yES
- 3tIMER a rUN mODE: 1 = oNE-sHOT, 0 = cONTINUOUS
- 2tIMER a oUTPUT mODE TO pb6: 1 = tOGGLE, 0 = pULSE
- 1tIMER a oUTPUT ON pb6: 1 = yES, 0 = nO
- 0sTART/sTOP tIMER a: 1 = sTART, 0 = sTOP
-
- dc0f56335cia cONTROL rEGISTER b
- 7sET aLARM/tod-cLOCK: 1 = aLARM, 0 = cLOCK
- 6-5tIMER b mODE sELECT:
- 00 = cOUNT sYSTEM 02 cLOCK pULSES
- 01 = cOUNT pOSITIVE cnt tRANSITIONS
- 10 = cOUNT tIMER a uNDERFLOW pULSES
- 11 = cOUNT tIMER a uNDERFLOWS wHILE cnt pOSITIVE
- 4-0sAME AS cia cONTROL rEG. a - FOR tIMER b
-
- dd00-ddff56576-56831mos 6526 cOMPLEX iNTERFACE aDAPTER (cia) #2
-
- dd0056576dATA pORT a (sERIAL bUS, rs-232, vic mEMORY cONTROL)
- 7sERIAL bUS dATA iNPUT
- 6sERIAL bUS cLOCK pULSE iNPUT
- 5sERIAL bUS dATA oUTPUT
- 4sERIAL bUS cLOCK pULSE oUTPUT
- 3sERIAL bUS atn sIGNAL oUTPUT
- 2rs-232 dATA oUTPUT (uSER pORT)
- 1-ovic cHIP sYSTEM mEMORY bANK sELECT (dEFAULT = 11)
-
- dd0156577dATA pORT b (uSER pORT, rs-232)
- 7uSER / rs-232 dATA sET rEADY
- 6uSER / rs-232 cLEAR TO sEND
- 5uSER
- 4uSER / rs-232 cARRIER dETECT
- 3uSER / rs-232 rING iNDICATOR
- 2uSER / rs-232 dATA tERMINAL rEADY
- 1uSER / rs-232 rEQUEST TO sEND
- 0uSER / rs-232 rECEIVED dATA
-
- dd0256578dATA dIRECTION rEGISTER - pORT a
- dd0356579dATA dIRECTION rEGISTER - pORT b
- dd0456580tIMER a: lOW-bYTE
- dd0556581tIMER a: hIGH-bYTE
- dd0656582tIMER b: lOW-bYTE
- dd0756583tIMER b: hIGH-bYTE
-
- dd0856584tIME-OF-dAY cLOCK: 1/10 sECONDS
- dd0956585tIME-OF-dAY cLOCK: sECONDS
- dd0a56586tIME-OF-dAY cLOCK: mINUTES
- dd0b56587tIME-OF-dAY cLOCK: hOURS + am/pm fLAG (bIT 7)
- dd0c56588sYNCHRONOUS sERIAL i/o dATA bUFFER
- dd0d56589cia iNTERRUPT cONTROL rEGISTER (rEAD nmLS/wRITE mASK)
- 7nmi fLAG (1 = nmi oCCURRED) / sET-cLEAR fLAG
- 4flag1 nmi (uSER/rs-232 rECEIVED dATA iNPUT)
- 3sERIAL pORT iNTERRUPT
-
- 1tIMER b iNTERRUPT
- 0tIMER a iNTERRUPT
-
- dd0e56590cia cONTROL rEGISTER a
-
- 7tIME-OF-dAY cLOCK fREQUENCY: 1 = 50 hZ, 0 = 60 hZ
- 6sERIAL pORT i/o mODE oUTPUT, 0 = iNPUT
- 5tIMER a cOUNTS: 1 = cnt sIGNALS, 0 = sYSTEM 02 cLOCK
- 4fORCE lOAD tIMER a: 1 = yES
- 3tIMER a rUN mODE: 1 = oNE-sHOT, 0 = cONTINUOUS
- 2tIMER a oUTPUT mODE TO pb6: 1 = tOGGLE, 0 = pULSE
- 1tIMER a oUTPUT ON pb6: 1 = yES, 0 = nO
- 0sTART/sTOP tIMER a: 1 = sTART, 0 = sTOP
-
- dd0f56591cia cONTROL rEGISTER b
- 7sET aLARM/tod-cLOCK: 1 = aLARM, 0 = cLOCK
- 6-5tIMER b mODE sELECT:
- 00 = cOUNT sYSTEM 02 cLOCK pULSES
- 01 = cOUNT pOSITIVE cnt tRANSITIONS
- 10 = cOUNT tIMER a uNDERFLOW pULSES
- 11 = cOUNT tIMER a uNDERFLOWS wHILE cnt pOSITIVE
- 4-0sAME AS cia cONTROL rEG. a - FOR tIMER b
-
-
- deoo-deff56832-57087rESERVED FOR fUTURE i/o eXPANSION
- dfoo-dfff57088-57343rESERVED FOR fUTURE i/o eXPANSION
-
-