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

  1.  
  2. commodore 64  memory maps
  3.  
  4.           address
  5. label     hex         dec     description
  6. -----------------------------------------------------------------------------
  7. d6510     0000        0       6510 oN-CHIP dATA dIRECTION rEGISTER.
  8. r6510     0001        1       6510 oN-CHIP 8-BIT iNPUT/oUTPUT rEGISTER.
  9. temp      0002        2       uNUSED. fREE FOR USER PROGRAMS.
  10. adray1    0003-0004   3       jUMP vECTOR: cONVERT fac TO iNTEGER IN (a/y)
  11.                               ($b1aa).
  12. adray2    0005-0006   5       jUMP vECTOR: cONVERT iNTEGER IN (a/y) TO
  13.                               fLOATING POINT IN (fac); ($b391).
  14. charac    0007        7       sEARCH cHARACTER/tEMPORARY iNTEGER DURING int.
  15. endchr    0008        8       fLAG: sCAN FOR qUOTE AT END OF sTRING.
  16. integr    0007-0008   7       tEMPORARY iNTEGER DURING or/and.
  17. trmpos    0009        9       sCREEN cOLUMN FOR LAST tab.
  18. verck     000a        10      fLAG: 0 = lOAD, 1 = vERIFY.
  19. count     000b        11      iNPUT bUFFER pOINTER/nUMBER OF sUBSCRIPTS.
  20. dimflg    000c        12      fLAG: dEFAULT aRRAY DIMENSION.
  21. valtyp    000d        13      dATA TYPE fLAG: $00 = nUMERIC, $ff = sTRING.
  22. intflg    000e        14      dATA TYPE fLAG: $00 = fLOATING POINT, $80 =
  23.                               iNTEGER.
  24. garbfl    000f        15      fLAG: data SCAN/lIST qUOTE/gARBAGE COLLECTION.
  25. subflg    0010        16      fLAG: sUBSCRIPT REFERENCE/uSER fUNCTION CALL.
  26. inpflg    0011        17      iNPUT fLAG: $00 = input, $40 = get, $98 =
  27.                               read.
  28. tansgn    0012        18      fLAG: tan SIGN/cOMPARATIVE RESULT.
  29. channl    0013        19      fILE NUMBER OF CURRENT iNPUT dEVICE.
  30. linnum    0014-0015   20      tEMPORARY: iNTEGER VALUE.
  31. temppt    0016        22      pOINTER: tEMPORARY sTRING sTACK.
  32. lastpt    0017-0018   23      lAST TEMPORARY sTRING aDDRESS.
  33. tempst    0019-0021   25      sTACK FOR TEMPORARY sTRINGS.
  34. index     0022-0025   34      uTILITY pOINTER aREA.
  35. index1    0022-0023   34      fIRST uTILITY pOINTER.
  36. index2    0024-0025   36      sECOND uTILITY pOINTER.
  37. resho     0026-002a   38      fLOATING POINT PRODUCT OF mULTIPLY AND
  38.                               dIVIDE.
  39. txttab    002b-002c   43      pOINTER: sTART OF basic tEXT aREA ($0801).
  40. vartab    002d-002e   45      pOINTER: sTART OF basic vARIABLES.
  41. arytab    002f-0030   47      pOINTER: sTART OF basic aRRAYS.
  42. strend    0031-0032   49      pOINTER: eND OF basic aRRAYS + 1.
  43. fretop    0033-0034   51      pOINTER: bOTTOM OF sTRING SPACE.
  44. frespc    0035-0036   53      uTILITY sTRING pOINTER.
  45. memsiz    0037-0038   55      pOINTER: hIGHEST aDDRESS AVAILABLE TO basic
  46.                               ($a000).
  47. curlin    0039-003a   57      cURRENT basic lINE NUMBER.
  48. oldlin    003b-003c   59      pREVIOUS basic lINE NUMBER.
  49. oldtxt    003d-003e   61      pOINTER: basic sTATEMENT FOR cont.
  50. datlin    003f-0040   63      cURRENT data lINE NUMBER.
  51. datptr    0041-0042   65      pOINTER: uSED BY read - CURRENT data iTEM
  52.                               aDDRESS.
  53. inpptr    0043-0044   67      pOINTER: tEMPORARY STORAGE OF pOINTER DURING
  54.                               input rOUTINE.
  55. varnam    0045-0046   69      nAME OF vARIABLE BEING SOUGHT IN vARIABLE
  56.                               tABLE.
  57. varpnt    0047-0048   71      pOINTER: TO VALUE OF (varnam) IF iNTEGER, TO
  58.                               DESCRIPTOR IF sTRING.
  59. forpnt    0049-004a   73      pOINTER: iNDEX vARIABLE FOR for/next LOOP.
  60. vartxt    004b-004c   75      tEMPORARY STORAGE FOR txtptr DURING read,
  61.                               input AND get.
  62. opmask    004d        77      mASK USED DURING frmevl.
  63. tempf3    004e-0052   78      tEMPORARY STORAGE FOR flpt VALUE.
  64. four6     0053        83      lENGTH OF sTRING vARIABLE DURING gARBEGE
  65.                               COLLECTION.
  66. jmper     0054-0056   84      jUMP vECTOR USED IN fUNCTION eVALUATION -
  67.                               jmp FOLLOWED BY aDDRESS ($4c,$lb,$mb).
  68. tempf1    0057-005b   87      tEMPORARY STORAGE FOR flpt VALUE.
  69. tempf2    005c-0060   92      tEMPORARY STORAGE FOR flpt VALUE.
  70. fac       0061-0066   97      mAIN fLOATING POINT aCCUMULATOR.
  71. facexp    0061        97      fac eXPONENT.
  72. facho     0062-0065   98      fac mANTISSA.
  73. facsgn    0066        102     fac sIGN.
  74. sgnflg    0067        103     pOINTER: sERIES eVALUATION cONSTANT.
  75. bits      0068        104     bIT oVERFLOW aREA DURING NORMALISATION
  76.                               rOUTINE.
  77. afac      0069-006e   105     aUXILIARY fLOATING POINT aCCUMULATOR.
  78. argexp    0069        105     afac eXPONENT.
  79. argho     006a-006d   106     afac mANTISSA.
  80. argsgn    006e        110     afac sIGN.
  81. arisgn    006f        111     sIGN OF RESULT OF aRITHMETIC eVALUATION.
  82. facov     0070        112     fac LOW-ORDER ROUNDING.
  83. fbufpt    0071-0072   113     pOINTER: uSED DURING crunch/ascii CONVERSION.
  84. chrget    0073-008a   115     sUBROUTINE: gET NEXT bYTE OF basic tEXT.
  85.             ,0073  inc $7a       ,0082  beq $0073
  86.             ,0075  bne $0079     ,0084  sec
  87.             ,0077  inc $7b       ,0085  sbc #$30
  88.           ! ,0079  lda $0801     ,0087  sec
  89.             ,007c  cmp #$3a      ,0088  sbc #$d0
  90.             ,007e  bcs $008a     ,008a  rts
  91.             ,0080  cmp #$20
  92. chrgot    0079        121     eNTRY TO gET SAME bYTE AGAIN.
  93. txtptr    007a-007b   122     pOINTER: cURRENT bYTE OF basic tEXT.
  94. rndx      008b-008f   139     fLOATING rnd fUNCTION sEED vALUE.
  95. status    0090        144     kERNAL i/o sTATUS wORD  st.
  96. stkey     0091        145     fLAG: $7f = stop KEY.
  97. svxt      0092        146     tIMING cONSTANT FOR tAPE.
  98. verckk    0093        147     fLAG: 0 = lOAD, 1 = vERIFY.
  99. c3po      0094        148     fLAG: sERIAL bUS - oUTPUT cHARACTER BUFFERED.
  100. bsour     0095        149     bUFFERED cHARACTER FOR sERIAL bUS.
  101. syno      0096        150     cASSETTE sYNC. NUMBER.
  102. tempx     0097        151     tEMPORARY STORAGE OF x rEGISTER DURING chrin.
  103. tempy     0097        151     tEMPORARY STORAGE OF y rEGISTER DURING rs232
  104.                               FETCH.
  105. ldtnd     0098        152     nUMBER OF oPEN fILES/iNDEX TO fILE tABLE.
  106. dfltn     0099        153     dEFAULT iNPUT dEVICE (0).
  107. dflto     009a        154     dEFAULT oUTPUT dEVICE (3).
  108. prty      009b        155     pARITY OF bYTE oUTPUT TO tAPE.
  109. dpsw      009c        156     fLAG: bYTE RECEIVED FROM tAPE.
  110. msgflg    009d        157     fLAG: $00 = pROGRAM MODE: sUPPRESS eRROR
  111.                               mESSAGES, $40 = kERNAL eRROR mESSAGES ONLY,
  112.                               $80 = dIRECT MODE: fULL eRROR mESSAGES.
  113. fnmidx    009e        158     iNDEX TO cASSETTE fILE NAME/hEADER id FOR
  114.                               tAPE WRITE.
  115. ptr1      009e        158     tAPE eRROR LOG PASS 1.
  116. ptr2      009f        159     tAPE eRROR LOG PASS 2.
  117. time      00a0-00a2   160     rEAL-TIME JIFFY cLOCK (uPDATED BY irq
  118.                               iNTERRUPT APPROX. EVERY 1/60 OF sECOND);
  119.                               uPDATE rOUTINE: udtimk ($f69b).
  120. tsfcnt    00a3        163     bIT cOUNTER tAPE rEAD OR wRITE/sERIAL bUS
  121.                               eoi (eND oF iNPUT) fLAG.
  122. tbtcnt    00a4        164     pULSE cOUNTER tAPE rEAD OR wRITE/sERIAL bUS
  123.                               SHIFT cOUNTER.
  124. cntdn     00a5        165     tAPE sYNCHRONISING COUNT DOWN.
  125. bufpnt    00a6        166     pOINTER: tAPE i/o BUFFER.
  126. inbit     00a7        167     rs232 TEMPORARY FOR RECEIVED bIT/tAPE
  127.                               TEMPORARY.
  128. bitc1     00a8        168     rs232 iNPUT bIT COUNT/tAPE TEMPORARY.
  129. rinone    00a9        169     rs232 fLAG: sTART bIT CHECK/tAPE TEMPORARY.
  130. ridata    00aa        170     rs232 iNPUT bYTE bUFFER/tAPE TEMPORARY.
  131. riprty    00ab        171     rs232 iNPUT PARITY/tAPE TEMPORARY.
  132. sal       00ac-00ad   172     pOINTER: tAPE bUFFER/sCREEN SCROLLING.
  133. eal       00ae-00af   174     tAPE eND aDDRESS/eND OF pROGRAM.
  134. cmpo      00b0-00b1   176     tAPE TIMING cONSTANTS.
  135. tape1     00b2-00b3   178     pOINTER: sTART aDDRESS OF tAPE bUFFER ($033c).
  136. bitts     00b4        180     rs232 wRITE BIT COUNT/tAPE rEAD TIMING fLAG.
  137. nxtbit    00b5        181     rs232 nEXT bIT TO SEND/tAPE rEAD - eND OF
  138.                               tAPE.
  139. rodata    00b6        182     rs232 oUTPUT bYTE bUFFER/tAPE rEAD eRROR fLAG.
  140. fnlen     00b7        183     nUMBER OF cHARACTERS IN fILENAME.
  141. la        00b8        184     cURRENT fILE - lOGICAL fILE NUMBER.
  142. sa        00b9        185     cURRENT fILE - sECONDARY aDDRESS.
  143. fa        00ba        186     cURRENT fILE - fIRST aDDRESS (dEVICE NUMBER).
  144.                                 open la,fa,sa;  open 1,8,15,"i0":close 1
  145. fnadr     00bb-00bc   187     pOINTER: cURRENT fILE NAME aDDRESS.
  146. roprty    00bd        189     rs232 oUTPUT pARITY/tAPE bYTE TO BE iNPUT OR
  147.                               oUTPUT.
  148. fsblk     00be        190     tAPE iNPUT/oUTPUT bLOCK COUNT.
  149. mych      00bf        191     sERIAL wORD bUFFER.
  150. cas1      00c0        192     tAPE mOTOR sWITCH.
  151. stal      00c1-00c2   193     sTART aDDRESS FOR load AND cASSETTE wRITE.
  152. memuss    00c3-00c4   195     pOINTER: tYPE 3 tAPE load AND GENERAL USE.
  153. lstx      00c5        197     mATRIX VALUE OF LAST kEY PRESSED; nO kEY = $40.
  154. ndx       00c6        198     nUMBER OF cHARACTERS IN kEYBOARD bUFFER
  155.                               QUEUE.
  156. rvs       00c7        199     fLAG: rEVERSE oN/oFF; oN = $01, oFF = $00.
  157. indx      00c8        200     pOINTER: eND OF lINE FOR iNPUT (uSED TO
  158.                               SUPPRESS TRAILING SPACES).
  159. lxsp      00c9-00ca   201     cURSOR x/y (lINE/cOLUMN) POSITION AT START OF
  160.                               iNPUT.
  161. sfdx      00cb        203     fLAG: pRINT SHIFTED cHARACTERS.
  162. blnsw     00cc        204     fLAG: cURSOR BLINK; $00 = eNABLED, $01 =
  163.                               dISABLED.
  164. blnct     00cd        205     tIMER: cOUNT DOWN FOR cURSOR BLINK TOGGLE.
  165. gdbln     00ce        206     cHARACTER UNDER cURSOR WHILE cURSOR iNVERTED.
  166. blnon     00cf        207     fLAG: cURSOR sTATUS; $00 = oFF, $01 = oN.
  167. crsw      00d0        208     fLAG: iNPUT FROM sCREEN = $03, OR kEYBOARD =
  168.                               $00.
  169. pnt       00d1-00d2   209     pOINTER: cURRENT sCREEN lINE aDDRESS.
  170. pntr      00d3        211     cURSOR cOLUMN ON CURRENT lINE, INCLUDING
  171.                               wRAP-ROUND lINE, IF ANY.
  172. qtsw      00d4        212     fLAG: eDITOR IN qUOTE mODE; $00 = nOT.
  173. lnmx      00d5        213     cURRENT LOGICAL lINE LENGTH: 39 OR 79.
  174. tblx      00d6        214     cURRENT sCREEN lINE NUMBER OF cURSOR.
  175. schar     00d7        215     sCREEN VALUE OF CURRENT iNPUT cHARACTER/lAST
  176.                               cHARACTER oUTPUT.
  177. insrt     00d8        216     cOUNT OF NUMBER OF INSERTS OUTSTANDING.
  178. ldtb1     00d9-00f2   217     sCREEN lINE LINK tABLE/eDITOR TEMPORARIES.
  179.                               hIGH bYTE OF lINE sCREEN mEMORY lOCATION.
  180. user      00f3-00f4   243     pOINTER: cURRENT cOLOUR ram lOCATION.
  181. keytab    00f5-00f6   245     vECTOR: cURRENT kEYBOARD DECODING tABLE.
  182.                               ($eb81)
  183. ribuf     00f7-00f8   247     rs232 iNPUT bUFFER pOINTER.
  184. robuf     00f9-00fa   249     rs232 oUTPUT bUFFER pOINTER.
  185. frekzp    00fb-00fe   251     fREE zERO pAGE SPACE FOR uSER pROGRAMS.
  186. baszpt    00ff        255     basic TEMPORARY dATA aREA.
  187. ascwrk    00ff-010a   255     aSSEMBLY aREA FOR fLOATING POINT TO ascii
  188.                               CONVERSION.
  189. bad       0100-013e   256     tAPE iNPUT eRROR LOG.
  190. stack     0100-01ff   256     6510 hARDWARE sTACK aREA.
  191. bstack    013f-01ff   319     basic sTACK aREA.
  192. buf       0200-0258   512     basic iNPUT bUFFER (iNPUT lINE FROM sCREEN).
  193. lat       0259-0262   601     kERNAL tABLE: aCTIVE LOGICAL fILE NUMBERS.
  194. fat       0263-026c   611     kERNAL tABLE: aCTIVE fILE fIRST aDDRESSES
  195.                               (dEVICE NUMBERS).
  196. sat       026d-0276   621     kERNAL tABLE: aCTIVE fILE sECONDARY
  197.                               aDDRESSES.
  198. keyd      0277-0280   631     kEYBOARD bUFFER qUEUE (fifo).
  199. memstr    0281-0282   641     pOINTER: bOTTOM OF mEMORY FOR oPERATING
  200.                               sYSTEM ($0800).
  201. memsiz    0283-0284   643     pOINTER: tOP OF mEMORY FOR oPERATING
  202.                               sYSTEM ($a000).
  203. timout    0285        645     sERIAL ieee bUS TIMEOUT DEFEAT fLAG.
  204. color     0286        646     cURRENT cHARACTER cOLOUR CODE.
  205. gdcol     0287        647     bACKGROUND cOLOUR UNDER cURSOR.
  206. hibase    0288        648     hIGH bYTE OF sCREEN mEMORY aDDRESS ($04).
  207. xmax      0289        649     mAXIMUM NUMBER OF bYTES IN kEYBOARD
  208.                               bUFFER ($0a).
  209. rptflg    028a        650     fLAG: rEPEAT KEYS; $00 = cURSORS, inst/del &
  210.                               sPACE REPEAT, $40 NO kEYS REPEAT, $80 ALL
  211.                               kEYS REPEAT ($00).
  212. kount     028b        651     rEPEAT kEY: sPEED cOUNTER ($04).
  213. delay     028c        652     rEPEAT kEY: fIRST REPEAT DELAY cOUNTER ($10).
  214. shflag    028d        653     fLAG: sHIFT kEYS: bIT 1 = sHIFT, bIT 2 = cbm,
  215.                               bIT 3 = ctrl; ($00 = nONE, $01 = sHIFT, ETC.).
  216. lstshf    028e        654     lAST sHIFT kEY USED FOR DEBOUNCING.
  217. keylog    028f-0290   655     vECTOR: rOUTINE TO DETERMINE kEYBOARD TABLE
  218.                               TO USE BASED ON sHIFT kEY pATTERN ($eb48).
  219. mode      0291        657     fLAG: uPPER/lOWER cASE CHANGE: $00 = dISABLED,
  220.                               $80 = eNABLED ($00).
  221. autodn    0292        658     fLAG: aUTO SCROLL DOWN: $00 = dISABLED ($00).
  222. m51ctr    0293        659     rs232 pSEUDO 6551 CONTROL rEGISTER iMAGE.
  223. m51cdr    0294        660     rs232 pSEUDO 6551 COMMAND rEGISTER iMAGE.
  224. m51ajb    0295-0296   661     rs232 nON-STANDARD bITS/sECOND.
  225. rsstat    0297        663     rs232 pSEUDO 6551 sTATUS rEGISTER iMAGE.
  226. bitnum    0298        664     rs232 nUMBER OF bITS LEFT TO SEND.
  227. baudof    0299-029a   665     rs232 bAUD rATE; fULL bIT TIME MICROSECONDS.
  228. ridbe     029b        667     rs232 iNDEX TO eND OF iNPUT bUFFER.
  229. ridbs     029c        668     rs232 pOINTER: hIGH bYTE OF aDDRESS OF iNPUT
  230.                               bUFFER.
  231. rodbs     029d        669     rs232 pOINTER: hIGH bYTE OF aDDRESS OF oUTPUT
  232.                               bUFFER.
  233. rodbe     029e        670     rs232 iNDEX TO eND OF oUTPUT bUFFER.
  234. irqtmp    029f-02a0   671     tEMPORARY STORE FOR irq vECTOR DURING tAPE
  235.                               OPERATIONS.
  236. enabl     02a1        673     rs232 eNABLES.
  237. todsns    02a2        674     tod SENSE DURING tAPE i/o.
  238. trdtmp    02a3        675     tEMPORARY STORAGE DURING tAPE read.
  239. td1irq    02a4        676     tEMPORARY d1irq iNDICATOR DURING tAPE read.
  240. tlnidx    02a5        677     tEMPORARY FOR lINE iNDEX.
  241. tvsflg    02a6        678     fLAG: tv sTANDARD: $00 = ntsc, $01 = pal.
  242. temp      02a7-02ff   679     uNUSED.
  243. spr11     02c0-02fe   704     sPRITE #11 dATA aREA.
  244.                                 (screen + $03f8 + spr NUMBER)
  245.                                 poke 1024+1016+0,11  TO USE sPRITE#0 data
  246.                                 FROM ($02c0-$02fe).
  247. ierror    0300-0301   768     vECTOR: iNDIRECT ENTRY TO basic eRROR
  248.                               mESSAGE, (x) POINTS TO mESSAGE ($e38b).
  249. imain     0302-0303   770     vECTOR: iNDIRECT ENTRY TO basic iNPUT lINE
  250.                               AND dECODE ($a483).
  251. icrnch    0304-0305   772     vECTOR: iNDIRECT ENTRY TO basic tOKENISE
  252.                               rOUTINE ($a57c).
  253. iqplop    0306-0307   774     vECTOR: iNDIRECT ENTRY TO basic list
  254.                               rOUTINE ($a71a).
  255. igone     0308-0309   776     vECTOR: iNDIRECT ENTRY TO basic cHARACTER
  256.                               DISPATCH rOUTINE ($a7e4).
  257. ieval     030a-030b   778     vECTOR: iNDIRECT ENTRY TO basic tOKEN
  258.                               EVALUATION ($ae86).
  259. sareg     030c        780     sTORAGE FOR 6510 aCCUMULATOR DURING sys.
  260. sxreg     030d        781     sTORAGE FOR 6510 x-rEGISTER DURING sys.
  261. syreg     030e        782     sTORAGE FOR 6510 y-rEGISTER DURING sys.
  262. spreg     030f        783     sTORAGE FOR 6510 sTATUS rEGISTER DURING sys.
  263. usrpok    0310        784     usr fUNCTION jmp iNSTRUCTION ($4c).
  264. usradd    0311-0312   785     usr aDDRESS ($lb,$mb).
  265. temp      0313        787     uNUSED.
  266. cinv      0314-0315   788     vECTOR: hARDWARE irq iNTERRUPT aDDRESS ($ea31).
  267. cnbinv    0316-0317   790     vECTOR: brk iNSTRUCTION iNTERRUPT aDDRESS
  268.                               ($fe66).
  269. nminv     0318-0319   792     vECTOR: hARDWARE nmi iNTERRUPT aDDRESS ($fe47).
  270. iopen     031a-031b   794     vECTOR: iNDIRECT ENTRY TO kERNAL open
  271.                               rOUTINE ($f34a).
  272. iclose    031c-031d   796     vECTOR: iNDIRECT ENTRY TO kERNAL close
  273.                               rOUTINE ($f291).
  274. ichkin    031e-031f   798     vECTOR: iNDIRECT ENTRY TO kERNAL chkin
  275.                               rOUTINE ($f20e).
  276. ickout    0320-0321   800     vECTOR: iNDIRECT ENTRY TO kERNAL chkout
  277.                               rOUTINE ($f250).
  278. iclrch    0322-0323   802     vECTOR: iNDIRECT ENTRY TO kERNAL clrchn
  279.                               rOUTINE ($f333).
  280. ibasin    0324-0325   804     vECTOR: iNDIRECT ENTRY TO kERNAL chrin
  281.                               rOUTINE ($f157).
  282. ibsout    0326-0327   806     vECTOR: iNDIRECT ENTRY TO kERNAL chrout
  283.                               rOUTINE ($f1ca).
  284. istop     0328-0329   808     vECTOR: iNDIRECT ENTRY TO kERNAL stop
  285.                               rOUTINE ($f6ed).
  286. igetin    032a-032b   810     vECTOR: iNDIRECT ENTRY TO kERNAL getin
  287.                               rOUTINE ($f13e).
  288. iclall    032c-032d   812     vECTOR: iNDIRECT ENTRY TO kERNAL clall
  289.                               rOUTINE ($f32f).
  290. usrcmd    032e-032f   814     uSER dEFINED vECTOR ($fe66).
  291. iload     0330-0331   816     vECTOR: iNDIRECT ENTRY TO kERNAL load
  292.                               rOUTINE ($f4a5).
  293. isave     0332-0333   818     vECTOR: iNDIRECT ENTRY TO kERNAL save
  294.                               rOUTINE ($f5ed).
  295. temp      0334-033b   820     uNUSED.
  296. tbuffr    033c-03fb   828     tAPE i/o bUFFER.
  297. spr13     0340-037e   832     sPRITE #13.
  298. spr14     0380-03be   896     sPRITE #14.
  299. spr15     03c0-03fe   960     sPRITE #15.
  300. temp      03fc-03ff   1020    uNUSED.
  301. vicscn    0400-07e7   1024    dEFAULT sCREEN vIDEO mATRIX.
  302. temp      07e8-07f7   2024    uNUSED.
  303. spntrs    07f8-07ff   2040    dEFAULT sPRITE dATA pOINTERS.
  304.  
  305.  
  306.           0800-9fff   2048    nORMAL basic pROGRAM SPACE.
  307.           8000-9fff   32768   oPTIONAL cARTRIDGE rom SPACE.
  308.           a000-bfff   40960   basic rom (pART) OR 8 kb ram.
  309.           c000-cfff   49152   4 kb ram.
  310.           d000-dfff   53248   iNPUT/oUTPUT dEVICES AND cOLOUR ram OR
  311.                               4 kb ram OR cHARACTER rom.
  312.           d000-d02e   53248   6566 vIDEO iNTERFACE cHIP, vic ii.
  313.           d400-d41c   54272   6581 sOUND iNTERFACE dEVICE, sid.
  314.           d500-d7ff   54528   sid iMAGES.
  315.           d800-dbe7   55296   cOLOUR ram (nYBBLES = 4 bIT ram, lsb).
  316.           dbe8-dbff   56296   uNUSED nYBBLES.
  317.           dc00-dc0f   56320   6526 cOMPLEX iNTERFACE aDAPTOR, cia.
  318.           dd00-dd0f   56576   6526 cOMPLEX iNTERFACE aDAPTOR, cia.
  319.           e000-ffff   57344   basic (pART)/kERNAL rom OR 8 kb ram.
  320.           e000-e4ff   57344   basic rom (pART) OR ram.
  321.           e500-ffff   58624   kERNAL rom OR ram.
  322.  
  323.  
  324.  
  325. commodore 64 input/output assignments
  326.  
  327.  
  328. hexdecimalbitsdescription
  329.  
  330. 000007-0mos 6510 dATA dIRECTION
  331. rEGISTER (XX101111)
  332. bIT= 1: oUTPUT, bIT=0:
  333. iNPUT, X=dON'T cARE
  334.  
  335. 00011mos 6510 mICRO-pROCESSOR
  336. oN-cHIP i/o pORT
  337. 0/loram sIGNAL (0=sWITCHbasic rom oUT)
  338. 1/hiram sIGNAL (0=sWITCH kERNAL rom oUT)
  339. 2/charen sIGNAL (o=sWITH cHAR. rom iN)
  340. 3cASSETTE dATA oUTPUT lINE
  341. 4cASSETTE sWITCH sENSE: 1 = sWITCH cLOSED
  342. 5cASSETTE mOTOR cONTROL
  343. o = on, 1 = off
  344. 6-7uNDEFINED
  345.  
  346.  
  347. d000-d02e53248-54271mos 6566 video interface controller (vic)
  348.  
  349. d00053248sPRITE o x pOS
  350. d00153249sPRITE o y pOS
  351. d00253250sPRITE 1 x pOS
  352. d00353251sPRITE 1 y pOS
  353. d00453252sPRITE 2 x pOS
  354. d00553253sPRITE 2 y pOS
  355. d00653254sPRITE 3 x pOS
  356. d00753255sPRITE 3 y pOS
  357. d00853256sPRITE 4 x pOS
  358. d00953257sPRITE 4 y pOS
  359. d00a53258sPRITE 5 x pOS
  360. d00b53259sPRITE 5 y pOS
  361. d00c53260sPRITE 6 x pOS
  362. d00d53261sPRITE 6 y pOS
  363. d00e53262sPRITE 7 x pOS
  364. d00f53263sPRITE 7 y pOS
  365. d01053264sPRITES 0-7 x pOS (MSB OF x COORD.)
  366.  
  367. d01153265vic cONTROL rEGISTER
  368. 7rASTER cOMPARE: (bIT 8)sEE 53266
  369. 6eXTENDED cOLOR tEXT mODE 1 = eNABLE
  370. 5bIT mAP mODE. 1 = eNABLE
  371. 4bLANK sCREEN TO bORDER cOLOR: o = bLANK
  372. 3sELECT 24/25 rOW tEXT dISPLAY: 1 = 25 rOWS
  373. 2-0sMOOTH sCROLL TO y dOT-pOSITION (0-7)
  374.  
  375. d01253266rEAD rASTER / wRITE rASTER vALUE FOR cOMPARE irq
  376. d01353267lIGHT-pEN lATCH x pOS
  377. d01453268lIGHT-pEN lATCH y pOS
  378. d01553269sPRITE DISPLAY eNABLE: 1 = eNABLE
  379.  
  380. d01653270vic cONTROL rEGISTER
  381. 7-6uNUSED
  382. 5always set this bit to 0 !
  383. 4mULTI-cOLOR mODE: 1 = eNABLE (tEXT OR bIT-mAP)
  384. 3sELECT 38/40 cOLUMN tEXT dISPLAY: 1 = 40 cOLS
  385. 2-0sMOOTH sCROLL TO x pOS
  386.  
  387. d01753271sPRITES o-7 eXPAND 2X vERTICAL (y)
  388.  
  389. d01853272vic mEMORY cONTROL rEGISTER
  390. 7-4vIDEO mATRIX bASE aDDRESS (INSIDE vic)
  391. 3-1cHARACTER dOT-dATA bASEaDDRESS (INSIDE vic)
  392. 0sELECT UPPER/LOWER cHARACTER sET
  393.  
  394. d01953273vic iNTERRUPT fLAG rEGISTER (bIT = 1: irq oCCURRED)
  395. 7sET ON aNY eNABLED vic irq cONDITION
  396. 3lIGHT-pEN tRIGGERED irq fLAG
  397. 2sPRITE TO sPRITE cOLLISION irq fLAG
  398. 1sPRITE TO bACKGROUND cOLLISION irq fLAG
  399. 0rASTER cOMPARE irq fLAG
  400.  
  401. d01a53274irq mASK rEGISTER: 1 = iNTERRUPT eNABLED
  402. d01b53275sPRITE TO bACKGROUND dISPLAY pRIORITY: 1 = sPRITE
  403. d01c53276sPRITES o-7 mULTI-cOLOR mODE sELECT: 1 = m.c.m.
  404. d01d53277sPRITES 0-7 eXPAND 2X hORIZONTAL (x)
  405.  
  406. d01e53278sPRITE TO sPRITE cOLLISION dETECT
  407. d01f53279sPRITE TO bACKGROUND cOLLISION dETECT
  408. d02053280bORDER cOLOR
  409. d02153281bACKGROUND cOLOR o
  410. d02253282bACKGROUND cOLOR 1
  411. d02353283bACKGROUND cOLOR 2
  412. d02453284bACKGROUND cOLOR 3
  413. d02553285sPRITE mULTI-cOLOR rEGISTER 0
  414. d02653286sPRITE mULTI-cOLOR rEGISTER 1
  415.  
  416. d02753287sPRITE o cOLOR
  417. d02853288sPRITE 1 cOLOR
  418. d02953289sPRITE 2 cOLOR
  419. d02a53290sPRITE 3 cOLOR
  420. d02b53291sPRITE 4 cOLOR
  421. d02c53292sPRITE 5 cOLOR
  422. d02d53293sPRITE 6 cOLOR
  423. d02e53294sPRITE 7 cOLOR
  424.  
  425. d400-d7ff54272-55295mos 6581 sound interface device (sid)
  426.  
  427. d40054272vOICE 1: fREQUENCY cONTROL - lOW-bYTE
  428. d40154273vOICE 1: fREQUENCY cONTROL - hIGH-bYTE
  429. d40254274vOICE 1: pULSE wAVEFORMwIDTH - lOW-bYTE
  430. d403542757-4uNUSED
  431. 3-0vOICE 1: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
  432. d40454276vOICE 1: cONTROL rEGISTER
  433. 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
  434. 6sELECT pULSE wAVEFORM, 1 = oN
  435. 5sELECT sAWTOOTH wAVEFORM, 1 = oN
  436. 4sELECT tRIANGLE wAVEFORM, 1 = oN
  437. 3tEST bIT: 1 = dISABLE oSCILLATOR 1
  438. 2rING mODULATE oSC. 1 WITH oSC. 3 oUTPUT, 1 = oN
  439. 1sYNCHRONIZE oSC. 1 WITH oSC. 3 fREQUENCY, 1 = oN
  440. 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
  441.  
  442. d40554277eNVELOPE gENERATOR 1: aTTACK / dECAY cYCLE cONTROL
  443. 7-4sELECT aTTACK cYCLE dURATION: o-15
  444. 3-0sELECT dECAY cYCLE dURATION: 0-15
  445.  
  446. d40654278eNVELOPE gENERATOR 1: sUSTAIN / rELEASE cYCLE cONTROL
  447. 7-4sELECT sUSTAIN cYCLE dURATION: o-15
  448. 3-0sELECT rELEASE cYCLE dURATION: o-15
  449.  
  450. d40754279vOICE 2: fREQUENCY cONTROL - lOW-bYTE
  451. d40854280vOICE 2: fREQUENCY cONTROL - hIGH-bYTE
  452. d40954281vOICE 2: pULSE wAVEFORM wIDTH - lOW-bYTE
  453.  
  454. d40a542827-4uNUSED
  455. 3-0vOICE 2: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
  456.  
  457. d40b54283vOICE 2: cONTROL rEGISTER
  458. 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
  459. 6sELECT pULSE wAVEFORM, 1 = oN
  460. 5sELECT sAWTOOTH wAVEFORM, 1 = oN
  461. 4sELECT tRIANGLE wAVEFORM, 1 = oN
  462. 3tEST bIT: 1 = dISABLE oSCILLATOR 1
  463. 2rING mODULATE oSC. 2 WITH oSC. 1 oUTPUT, 1 = oN
  464. 1sYNCHRONIZE oSC. 2 WITH oSC. 1 fREQUENCY, 1 = oN
  465. 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
  466.  
  467. d40c54284eNVELOPE gENERATOR 2: aTTACK / dECAY cYCLE cONTROL
  468. 7-4sELECT aTTACK cYCLE dURATION: o-15
  469. 3-0sELECT dECAY cYCLE dURATION: 0-15
  470.  
  471. d40d54285eNVELOPE gENERATOR 2: sUSTAIN / rELEASE cYCLE cONTROL
  472. 7-4sELECT sUSTAIN cYCLE dURATION: o-15
  473. 3-0sELECT rELEASE cYCLE dURATION: o-15
  474.  
  475. d40e54286vOICE 3: fREQUENCY cONTROL - lOW-bYTE
  476. d40f54287vOICE 3: fREQUENCY cONTROL - hIGH-bYTE
  477. d41054288vOICE 3: pULSE wAVEFORM wIDTH - lOW-bYTE
  478. d411542897-4uNUSED
  479. 3-0vOICE 3: pULSE wAVEFORM wIDTH - hIGH-nYBBLE
  480. d41254290vOICE 3: cONTROL rEGISTER
  481. 7sELECT rANDOM nOISE wAVEFORM, 1 = oN
  482. 6sELECT pULSE wAVEFORM, 1 = oN
  483. 5sELECT sAWTOOTH wAVEFORM, 1 = oN
  484. 4sELECT tRIANGLE wAVEFORM, 1 = oN
  485. 3tEST bIT: 1 = dISABLE oSCILLATOR 1
  486. 2rING mODULATE oSC. 3 WITH oSC. 2 oUTPUT, 1 = oN
  487. 1sYNCHRONIZE oSC. 3 WITH oSC. 2 fREQUENCY, 1 = oN
  488. 0gATE bIT: 1 = sTART aTT/dEC/sUS, 0 = sTART rELEASE
  489.  
  490. d41354291eNVELOPE gENERATOR 3: aTTAC/dECAY cYCLE cONTROL 
  491. 7-4sELECT aTTACK cYCLE dURATION: o-15
  492. 3-0sELECT dECAY cYCLE dURATION: 0-15
  493.  
  494. d41454285eNVELOPE gENERATOR 3: sUSTAIN / rELEASE cYCLE cONTROL
  495. 7-4sELECT sUSTAIN cYCLE dURATION: o-15
  496. 3-0sELECT rELEASE cYCLE dURATION: o-15
  497.  
  498.  
  499. d41554293fILTER cUTOFF fREQUENCY: lOW-nYBBLE (bITS 2-o)
  500. d41654294fILTER cUTOFF fREQUENCY: hIGH-bYTE
  501. d41754295fILTER rESONANCE cONTROL / vOICE iNPUT cONTROL
  502. 7-4sELECT fILTER rESONANCE: 0-15
  503. 3fILTER eXTERNAL iNPUT: 1 = yES, 0 = nO
  504. 2fILTER vOICE 3 oUTPUT: 1 = yES, 0 = nO
  505. fILTER vOICE 2 oUTPUT: 1 = yES, 0 = nO
  506. 0fILTER vOICE 1 oUTPUT: 1 = yES, 0 = nO
  507.  
  508. d41854296sELECT fILTER mODE AND vOLUME
  509. 7cUT-oFF vOICE 3 oUTPUT: 1 = oFF, o = oN
  510.  
  511. 6sELECT fILTER hIGH-pASS mODE: 1 = oN
  512. 5sELECT fILTER bAND-pASS mODE: 1 = oN
  513. 4sELECT fILTER lOW-pASS mODE: 1 = oN
  514. 3-0sELECT oUTPUT vOLUME: 0-15
  515.  
  516. d41954297aNALOG/dIGITAL cONVERTER: gAME pADDLE 1 (o-255)
  517. d41a54298aNALOG/dIGITAL cONVERTER gAME pADDLE 2 (o-255)
  518. d41b54299oSCILLATOR 3 rANDOM nUMBER gENERATOR
  519. d41c54230eNVELOPE gENERATOR 3 oUTPUT
  520.  
  521. d500-d7ff54528-55295sid images
  522. d800-dbff55296-56319cOLOR ram (nYBBLES)
  523.  
  524. dc00-dcff56320-56575mos 6526 cOMPLEX iNTERFACE aDAPTER (cia) #1
  525.  
  526. dc0056320dATA pORT a (kEYBOARD, jOYSTICK, pADDLES, lIGHT-pEN)
  527.  
  528. 7-0wRITE kEYBOARD cOLUMN vALUES FOR kEYBOARD sCAN
  529. 7-6rEAD pADDLES ON pORT a / b (01 = pORT a, 10 = pORT b)
  530. 4jOYSTICK a fIRE bUTTON: 1 = fIRE
  531. 3-2pADDLE fIRE bUTTONS
  532. 3-0jOYSTICK a dIRECTION (0-15)
  533.  
  534. dc0156321dATA pORT b (kEYBOARD, jOYSTICK, pADDLES): gAME pORT 1
  535. 7-0rEAD kEYBOARD rOW vALUES FOR kEYBOARD sCAN
  536.  
  537. 7tIMER b tOGGLE/pULSE oUTPUT
  538. 6tIMER a: tOGGLE/pULSE oUTPUT
  539.  
  540. 4jOYSTICK 1 fIRE bUTTON: 1 = fIRE
  541. 3-2pADDLE fIRE bUTTONS
  542. 3-0jOYSTICK 1 dIRECTION
  543.  
  544. dc0256322dATA dIRECTION rEGISTER - pORT a (56320)
  545. dc0356323dATA dIRECTION rEGISTER - pORT b (56321)
  546. dc0456324tIMER a: lOW-bYTE
  547. dc0556325tIMER a: hIGH-bYTE
  548. dc0656326tIMER b: lOW-bYTE
  549. dc0756327tIMER b: hIGH-bYTE
  550.  
  551. dc0856328tIME-OF-dAY cLOCK: 1/10 sECONDS
  552. dc0956329tIME-OF-dAY cLOCK: sECONDS
  553. dc0a56330tIME-OF-dAY cLOCK: mINUTES
  554. dc0b56331tIME-OF-dAY cLOCK: hOURS + am/pm fLAG (bIT 7)
  555.  
  556. dc0c56332sYNCHRONOUS sERIAL i/o dATA bUFFER
  557. dc0d56333cia iNTERRUPT cONTROL rEGISTER (rEAD irqS/wRITE mASK)
  558.  
  559. 7irq fLAG (1 = irq oCCURRED) / sET-cLEAR fLAG
  560. 4flag1 irq (cASSETTE rEAD / sERIAL bUS srq iNPUT)
  561. 3sERIAL pORT iNTERRUPT
  562. 2tIME-OF-dAY cLOCK aLARM iNTERRUPT
  563. 1tIMER b iNTERRUPT
  564. 0tIMER a iNTERRUPT
  565.  
  566. dc0e56334cia cONTROL rEGISTER a
  567. 7tIME-OF-dAY cLOCK fREQUENCY: 1 = 50 hZ, 0 = 60 hZ
  568. 6sERIAL pORT i/o mODE oUTPUT, 0 = iNPUT
  569. 5tIMER a cOUNTS: 1 = cnt sIGNALS, 0 = sYSTEM 02 cLOCK
  570.  
  571. 4fORCE lOAD tIMER a: 1 = yES
  572. 3tIMER a rUN mODE: 1 = oNE-sHOT, 0 = cONTINUOUS
  573. 2tIMER a oUTPUT mODE TO pb6: 1 = tOGGLE, 0 = pULSE
  574. 1tIMER a oUTPUT ON pb6: 1 = yES, 0 = nO
  575. 0sTART/sTOP tIMER a: 1 = sTART, 0 = sTOP
  576.  
  577. dc0f56335cia cONTROL rEGISTER b
  578. 7sET aLARM/tod-cLOCK: 1 = aLARM, 0 = cLOCK
  579. 6-5tIMER b mODE sELECT:
  580. 00 = cOUNT sYSTEM 02 cLOCK pULSES
  581. 01 = cOUNT pOSITIVE cnt tRANSITIONS
  582. 10 = cOUNT tIMER a uNDERFLOW pULSES
  583. 11 = cOUNT tIMER a uNDERFLOWS wHILE cnt pOSITIVE
  584. 4-0sAME AS cia cONTROL rEG. a - FOR tIMER b
  585.  
  586. dd00-ddff56576-56831mos 6526 cOMPLEX iNTERFACE aDAPTER (cia) #2
  587.  
  588. dd0056576dATA pORT a (sERIAL bUS, rs-232, vic mEMORY cONTROL)
  589. 7sERIAL bUS dATA iNPUT
  590. 6sERIAL bUS cLOCK pULSE iNPUT
  591. 5sERIAL bUS dATA oUTPUT
  592. 4sERIAL bUS cLOCK pULSE oUTPUT
  593. 3sERIAL bUS atn sIGNAL oUTPUT
  594. 2rs-232 dATA oUTPUT (uSER pORT)
  595. 1-ovic cHIP sYSTEM mEMORY bANK sELECT (dEFAULT = 11)
  596.  
  597. dd0156577dATA pORT b (uSER pORT, rs-232)
  598. 7uSER / rs-232 dATA sET rEADY
  599. 6uSER / rs-232 cLEAR TO sEND
  600. 5uSER
  601. 4uSER / rs-232 cARRIER dETECT
  602. 3uSER / rs-232 rING iNDICATOR
  603. 2uSER / rs-232 dATA tERMINAL rEADY
  604. 1uSER / rs-232 rEQUEST TO sEND
  605. 0uSER / rs-232 rECEIVED dATA
  606.  
  607. dd0256578dATA dIRECTION rEGISTER - pORT a
  608. dd0356579dATA dIRECTION rEGISTER - pORT b
  609. dd0456580tIMER a: lOW-bYTE
  610. dd0556581tIMER a: hIGH-bYTE
  611. dd0656582tIMER b: lOW-bYTE
  612. dd0756583tIMER b: hIGH-bYTE
  613.  
  614. dd0856584tIME-OF-dAY cLOCK: 1/10 sECONDS
  615. dd0956585tIME-OF-dAY cLOCK: sECONDS
  616. dd0a56586tIME-OF-dAY cLOCK: mINUTES
  617. dd0b56587tIME-OF-dAY cLOCK: hOURS + am/pm fLAG (bIT 7)
  618. dd0c56588sYNCHRONOUS sERIAL i/o dATA bUFFER
  619. dd0d56589cia iNTERRUPT cONTROL rEGISTER (rEAD nmLS/wRITE mASK)
  620. 7nmi fLAG (1 = nmi oCCURRED) / sET-cLEAR fLAG
  621. 4flag1 nmi (uSER/rs-232 rECEIVED dATA iNPUT)
  622. 3sERIAL pORT iNTERRUPT
  623.  
  624. 1tIMER b iNTERRUPT
  625. 0tIMER a iNTERRUPT
  626.  
  627. dd0e56590cia cONTROL rEGISTER a
  628.  
  629. 7tIME-OF-dAY cLOCK fREQUENCY: 1 = 50 hZ, 0 = 60 hZ
  630. 6sERIAL pORT i/o mODE oUTPUT, 0 = iNPUT
  631. 5tIMER a cOUNTS: 1 = cnt sIGNALS, 0 = sYSTEM 02 cLOCK
  632. 4fORCE lOAD tIMER a: 1 = yES
  633. 3tIMER a rUN mODE: 1 = oNE-sHOT, 0 = cONTINUOUS
  634. 2tIMER a oUTPUT mODE TO pb6: 1 = tOGGLE, 0 = pULSE
  635. 1tIMER a oUTPUT ON pb6: 1 = yES, 0 = nO
  636. 0sTART/sTOP tIMER a: 1 = sTART, 0 = sTOP
  637.  
  638. dd0f56591cia cONTROL rEGISTER b
  639. 7sET aLARM/tod-cLOCK: 1 = aLARM, 0 = cLOCK
  640. 6-5tIMER b mODE sELECT:
  641. 00 = cOUNT sYSTEM 02 cLOCK pULSES
  642. 01 = cOUNT pOSITIVE cnt tRANSITIONS
  643. 10 = cOUNT tIMER a uNDERFLOW pULSES
  644. 11 = cOUNT tIMER a uNDERFLOWS wHILE cnt pOSITIVE
  645. 4-0sAME AS cia cONTROL rEG. a - FOR tIMER b
  646.  
  647.  
  648. deoo-deff56832-57087rESERVED FOR fUTURE i/o eXPANSION
  649. dfoo-dfff57088-57343rESERVED FOR fUTURE i/o eXPANSION
  650.  
  651.