home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CBM Funet Archive
/
cbm-funet-archive-2003.iso
/
cbm
/
maps
/
C64.MemoryMap
< prev
next >
Wrap
Text File
|
1995-04-26
|
30KB
|
651 lines
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