Commodore plus/4 and Commodore 16 Memory Map ....
Suche
Index
FAQ
Kontakt
Zurück
;       Commodore plus/4 and
;       Commodore 16 Memory Map
;
;       V1.1    9 Dec 1994

; Annotated and updated by Cameron Kaiser with grateful acknowledgement to
; Mike Dailly

; http://www.scotch.demon.co.uk/
; http://www.retrobits.com/ckb/secret/

Label Hex Addr.   Decimal Loc.  Description

PDIR    $0000           0       7501 on-chip data-direction register
PORT    $0001           1       7501 on-chip 8-bit Input/Output register
SRCHTK  $0002           2       Token 'search' looks for (run-time stack)
ZPVEC1  $0003-0004      3-4     Temp (renumber)
ZPVEC2  $0005-0006      5-6     Temp (renumber)
CHARAC  $0007           7       Search character
ENDCHR  $0008           8       Flag: scan for quote at end of string
TRMPOS  $0009           9       Screen column from last TAB
VERCK   $000A           10      Flag: 0 = load 1 - verify
COUNT   $000B           11      Input buffer pointer / No. of subsctipts
DIMFLG  $000C           12      Flag: Default Array DIMension
VALTYP  $000D           13      Data type: $FF = string $00 = numeric
INTFLG  $000E           14      Data type: $80 = integer, $00 = floating
DORES   $000F           15      Flag: DATA scan/LIST quote/garbage coll
SUBFLG  $0010           16      Flag: subscript ref / user function coll
INPFLG  $0011           17      Flag: $00 = INPUT, $43 = GET, $98 = READ
TANSGN  $0012           18      Flag TAN siqn / comparison result
CHANNL  $0013           19      Flag: INPUT prompt
LINNUM  $0014-0015      20-21   Temp: integer value
TEMPPT  $0016           22      Pointer: temporary string stack
LASTPT  $0317-0018      23-24   Last temp string address
TEMPST  $0019-0021      25-33   Stack for temporary strings
INDEX1  $0022-0023      34-35   Utility pointer area
INDEX2  $0024-0025      36-37   Utility pointer area
RESHO   $0026           38
RESMOH  $0027           39
RESMO   $0028           40
RESLO   $0029           41
        $002A           42
TXTTAB  $002B-002C      43-44   Pointer: start of BASIC text
VARTAB  $002D-002E      45-46   Pointer: start of BASIC variables
ARYTAB  $002E-0030      47-48   Pointer: start of BASIC arrays
STREND  $0031-0032      49-50   Pointer: end of BASIC arrays (+1)
FRFTOP  $0033-0034      51-52   Pointer: bottom of string storage
FRESPC  $0035-0036      53-54   Utility string pointer
MEMSIZ  $0037-0038      55-56   Pointer: highest address used by BASIC
CURLIN  $0039-003A      57-58   Current BASIC line number
TXTPTR  $003B-003C      59-60
FNDPNT  $003D-003F      61-62
DATLIN  $003F-0040      63-64   Current DATA line number
DATPTR  $0041-0042      65-66   Pointer: Current DATA item address
INPPTR  $0043-0044      67-68   Vector: INPUT routine
VARNAM  $0045-0046      69-70   Current BASIC variable name
VARPNT  $0047-0048      71-72   Pointer: Current BASIC variable data
FORPNT  $0049-004A      73-74   Pointer: Index variable for FOR/NEXT
OPPTR   $0048-004C      75-76
OPMASK  $004D           77
DEFPNT  $004E-004F      78-79
DSCPNT  $0050-0051      80-81
        $0052           82
HELPER  $0053           83
JMPER   $0054           84
SIZE    $0055           85
OLDOV   $0056           86
TEMPF1  $0057           87
HIGHDS  $0058-0059      88-89
HIGHTR  $005A-005B      90-91
        $005C           92
LOWDS   $005D-005E      93-94
LoWTR   $005F           95
EXPSGN  $0060           96
FACEXP  $0061           97      Floating-point accumulator #1: exponent
FACHO   $0062           98      Floating accum. #1: mantissa
FACMOH  $0063           99
FACMO   $0064           100
FACLo   $0065           101
FACSGN  $0066           102     Floating accum. #1: sign
SGNFLG  $0067           103     Pointer: series evaluation constant
BITS    $0068           104     Floating accum. #1: overflow digit
ARGEXP  $0069           105     Floating-point accumulator #2: exponent
ARGHO   $006A           106     Floating accum. #2: mantissa
ARGMOH  $006B           107
ARGMO   $006C           108
ARGLO   $006D           109
ARGSGN  $006E           110     Floating accum. #2: sign
ARISGN  $006F           111     Sign comparison result: accum. #1 vs #2
FACOV   $0070           112     Floating accum. #1. low-order (rounding)
FBUFPT  $0071-0072      113     Pointer: cassette buffer
AUTINC  $0073-0074      115-116 Increment value for auto (0 = off)
MVDFLG  $0075           117     Flag if 10K hires allocated
KEYNUM  $0076           118
KEYSIZ  $0077           119
SYNTMP  $0078           120     Used as temp Eor indirect loads
DSDESC  $0079-0078      121-123 Descriptor for DSS
TOS     $007C-037D      124-125 Top of run time stack
TMPTON  $007E-007F      126-127 Temps used by music (tone & volume)
VOICNO  $0080           128
RUNMOD  $0081           129
POINT   $0082           130
GRAPHM  $0083           131     Current graphic mode
COLSEL  $0084           132     Current color selected
MC1     $0085           133     Multicolor 1
FG      $0086           134     Foreground color
SCXMAX  $0087           135     Maximum # of columns
SCYMAX  $0088           136     Maximum # of rows
LTFLAG  $0089           137     Paint-left flag
RTFLAG  $008A           138     Paint-Right flag
STOPNH  $008B           139     Stop paint if not BG (Not same Color)
GRAPNT  $008C-008D      140-141
VTEMP1  $008E           142
VTEMP2  $008F           143

STATUS  $0090           144     Kernal I/O status word: ST
STREY   $0091           145     Flag: STOP key / RVS key
SPVERR  $0092           146     Temp
VERFCK  $0093           147     Flag:  0 = load,  1 = verify
C3PO    $0094           148     Plag: serial bus - output char buffered
BSOUR   $0095           149     Buffered character for serial bus
XSAV    $0096           150     Temp for basin
LDTND   $0097           151     # of open files / index to file table
DFLTN   $0098           152     Default input device (0)
DFLTO   $0099           153     Default output (CMD) device (3)
MSGFLG  $009A           154     Flag:   $80 = direct mode  $00 = program
SAL     $009B           155     Tape pass 1 error log
SAH     $009C           156     Tape pass 2 error log
EAL     $009D           157
EAH     $009E           158
T1      $009F-00A0      159-160 Temp data area
T2      $00A1-00A2      161-162 Temp data area
TIME    $00A3-00A5      163-165 Real-time jiffy clock (approx) 1/60 sec
R2D2    $00A6           166     Serial bus usage (EOI on output)
TPBYTE  $00A7           167     Byte to be written/read on/off tape
BSOUR1  $00A8           168     Temp used by serial routine

FPVERR  $00A9           169
DCOUNT  $00AA           170
FNLEN   $00A8           171     Length of current file name
LA      $00AC           172     Current logical fiie number
SA      $00AD           173     Current seconda.y address
FA      $00AE           174     Current device number
FNADR   $00AF-00B0      175-176 Pointer: current file name
ERRSUM  $00B1           177
STAL    $00B2           178      I/O start address
STAH    $00B3           179
MEMUSS  $00B4-00B5      180-181 Load ram base
TAPEBS  $00B6-00B7      182-183 Base pointer to cassette base
TMP2    $00B8-00B9      184-185
WRBASE  $00BA-00BB      186-187 Pointer to data for tape writes
IMPARM  $00BC-00BD      188-189 Pointer to immediate string for primms
FETPTR  $00BE-00BF      190-191 Pointer to byte to be fetched in bank fetc
SEDSAL  $00C0-00C1      192-193 Temp for scrolling
RVS     $00C2           194     RVS field flag on
INDX    $00C3           195
LSXP    $00C4           196     X position at start
LSTP    $00C5           197
SFDX    $00C6           198     Flag: shift mode for print
CRSW    $00C7           199     Flag: INPUT or GET from keyboard
PNT     $00C8-00C9      200-201 Pointer: current screen line address
PNTR    $00CA           202     Cursor column on current line
QTSW    $00CB           203     Flag: editor in quote mode, $00 = no
SEDT1   $00CC           204     Editor temp use
TBLX    $00CD           205     Current cursor physical line number
DATAX   $00CE           206     Temp data area
INSRT   $00CF           207     Flag: insert mode, >0 = # INSTs
        $00D0-$00D7     208-215 Area for use by speech software
        $00D8-00E8      216-232 Area for use by application software
CIRSEG  $00E9           233     Screen line link table / editor temps
USER    $00EA-00EB      234-235 Screen editor color IP
KEYTAB  $00EC-00ED      236-237 Key scan table indirect
TMPKEY  $00EE           238
NDX     $00EF           239     Index to keyboard queue
STPFLG  $00F0           240     Pause flag
TO      $00F1-00F2      241-242 Monitor ZP storage
CHRPTR  $00F3           243
BUFEND  $00F4           244
CHKSUM  $00F5           245     Temp for checksum calculation
LENGTH  $00F6           246
PASS    $00F7           247     Which pass we are doing str
TYPE    $00F8           248     Type of block
USE4DY  $00F9           249     (B.7 = 1)=> for wr, (B.6 = 1)=> for rd
XSTOP   $00FA           250     Save xreg for quick stopkey test
CURBNK  $00FB           251     Current bank configuration
XoN     $00FC           252     Char to send for a x-on (RS232)
XoFF    $00FD           253     Char to send for a x-off (RS232)
SEDT2   $00FE           254     Editor temporary use
LOFBUF  $00FF           255


FBUFFR  $0100-$010F     256-271
SAVEA   $0110           272     Temp Locations for
SAVEY   $0111           273     ...  for Save and
SAVEX   $0112           274     ...  Restore
COLKEY  $0113-0122      275-289 Color/luminance table in RAM
SYSSTK  $0124-01FF      291-511 System stack

BUF     $0200-0258      512-606 Basic/monitor input buffer
OLDLIN  $0259-025A      601-602 Basic storage
OLDTXT  $025B-025C      603-604 Basic storage

        $025D-02AC      605-684 BASIC/DOS INTERFACE AREA
XCNT    $025D                   DOS loop counter
PNBUFR  $025E-026D              Area for filename
DOSF1L  $026E                   DOS filename 1 length

DOSDS1  $026F                   DOS disk drive 1
DOSF1A  $0270-0271              DOS filename 1 addr
DOSF2L  $0272                   DOS filename 2 length
DOSDS2  $0273                   DOS disk drive 2
DOSF2A  $0274-0275              DOS filename 2 addr
DOSLA   $0276                   DOS logical address
DOSEA   $0277                   DOS phys addr
DOSSA   $0278                   DOS secordary address
DOSDID  $0279-027A              DOS disk identifier
DIDCHK  $0278                   DOS DID flag
DOSSTR  $027C                   DOS output string buffer
DOSSPC  $027D-02AC              Area used to build DOS string


Graphics Variables

XPOS    $02AD-02AE      685-686 Current x position
YPOS    $02AE-02B0      687-688 Current y position
XDEST   $02B1-02B2      689-690 X coordinate destination
YDEST   $02B3-02B4      691-692 Y coordinate destination
XABS    $02B5-02B6      693-694
YABS    $02B7-0288      69S-696
XSGN    $02B9-02BA      697-69B
YSGN    $02BB-028C      699-700
FCT1    $02BD-02BE      701-702
FCT2    $02BF-02C0      703-704
ERRVAL  $02C1-02C2      705-706
LESSER  $02C3           707
GREATR  $02C4           708
ANGSGN  $02C5           709     Sign of angle
SINVAL  $02C6-02C7      710-711 Sine of value of angle
COSVAL  $02C8-02C9      712-713 Cosine of value of angle
ANGCNT  $02CA-02CB      714-715 Temps for angle distance routines


Start of multiply defined area #1

        $02CC           716     Placeholder
BNR     $02CD           717     Pointer to begin no.
ENR     $02CE           718     Pointer to end no.
DOLR    $02CF           719     Dollar flag
FLAG    $02DO           720     Comma flag
SWE     $02D1           721     Counter
USGN    $02D2           722     Sign exponent
UEXP    $02D3           723     Pointer to exponent
VN      $02D4           724     # of digits before decimal point
CHSN    $02D5           725     Justify flag
VF      $02D6           726     # of pos before decimal point (field)
NF      $02D7           727     # of pos after decimal point (field)
POSP    $02D8           728     +/- flag (field)
FESP    $02D9           729     Exponent flag (field)
ETOF    $02DA           730     Switch
CFORM   $02D8           731     Char counter (field)
SNO     $02DC           732     Sign no.
BLFD    $02DD           733     Blank/star flag
BEGFD   $02DE           734     Pointer to beginning of field
LFOR    $02DF           735     Length of format
ENDFD   $02E0           736     Pointer to end of field

XCENTR  $02CC-02CD      716-717
YCENTR  $02CE-02CF      718-719
XDIST1  $02D0-02D1      720-721
YDIST1  $02D2-02D3      722-723
XDIST2  $02D4-02D5      724-725
YDIST2  $02D6-02D7      726-727
        $02D8-02D0      728-729 Placeholder

COLCNT  $02DA           730     Characters column counter
ROWCNT  $02DB           731     Characters row counter
STRCNT  $02DC           732


Start of multiply defined area #2

XCORD1  $02CC-02CD      716-717
YCORD1  $02CE-02CF      718-719
BOXANG  $02D0-02D1      720-721 Rotation angle
XCOUNT  $02D2-02D3      722-723
YCOUNT  $02D4-02D5      724-725
BXLENG  $02D6-02D7      726-727 Length of a side
XCORD2  $02D8-02D9      728-729
YCORD2  $02DA-02DB      730-731

XCIRCL  $02CC-02CD      716-717 Circle center, x coordinate
YCIRCL  $02CE-02CF      718-719 Circle center, y coordinate
XRADUS  $02D0-02D1      720-721 X radius
YRADUS  $02D2-02D3      722-723 Y radius
ROTANG  $02D4-02D5      724-725 Rotation angle
ANGBEG  $02D8-02D9      728-729 Arc angle start
ANGEND  $02DA-02DB      730-731 Arc angle end
XRCOS   $02DC-02DD      732-733 X radius * cos (rotation angle)
YRSIN   $02DE-02DF      734-735 Y radius * sin (rotation angle)
XRSIN   $02E0-02E1      736-737 X radius * sin (rotation angle)
YRCOS   $02E2-02E3      738-739 Y radius * cos (rotation angle)


Start of multiply defined area #3

        $02CC           716     Placeholder
KEYLEN  $02CD           717
KEYNXT  $02CE           718
STRS2   $02CE           719     String length
GETTYP  $02D0           720     Replace string mode
STRPTR  $02D1           721     String position counter
OLDBYT  $02D2           722     Old bit map byte
NEWBYT  $02D3           723     New string or bit map byte
        $02D4           724     Placeholder
XSI2E   $02D5-02D6      725-726 Shape column length
YSIZE   $02D7-02D8      727-728 Shape row length
XSAVE   $02D9-02DA      729-730 Temp for column length
STRADR  $02D8-02DC      731-732 Save shape string descriptor
BITIDX  $02DD           733     Bit index into byte
SAYSIZ  $02DE-02E1      734-737 Temporary work locations

CHRPAG  $02E4           740     High byte addr of char ROM for char cmd
LITCNT  $02E5           741     Temp for gshape
SCALEM  $02E6           742     Scale mode flag
WIDTH   $02E7           743     Double width flag
FILFLG  $02E8           744     Box fill flag
BITMSK  $02E9           745     Temp for bit mask
NUMCNT  $02EA           746
TRCFLG  $02EB           747     Flags trace mode

T3      $02EC           748
T4      $02ED-02EE      749-750
VTEMP3  $02EF           751     Graphic temp storage
VTEMP4  $02F0           752
VTEMP5  $02F1           753

ADRAY1  $02E2-02F3      754-755 Ptr to routine: convert float to integer
ADRAY2  $02F4-02F5      756-757 Ptr to routine: convert integer to float

BNKVEC  $02FE-02FF      766-767 Vector for function cartridge users
IERROR  $0300-0301      768-769 Indirect Error (Output Error in .X)
IMAIN   $0302-0303      770-771 Indirect Main (System Direct Loop)
ICRNCH  $0304-0305      772-773 Indirect Crunch (Tokenization Routine)
IOPLOP  $0306-0307      774-775 Indirect List (Char List)
IGONE   $0308-0309      776-777 Indirect Gone (Character Dispatch)
IEVAL   $030A-0303      778-779 Indirect Eval (Symbol Evaluation)
IESCLK  $030C-030D      780-781 Escape token crunch
IESCPR  $030E-030F      782-783
IESCEX  $0310-0311      784-785
ITIME   $0312-0313      786-787
CINV    $0314-0315      7B8-789 IRQ Ram Vector
CBINV   $0316-0317      790-791 BRK Instr RAM Vector
IOPEN   $0318-0319      792-793 Indirects for Code
ICLOSE  $031A-031B      794-795
ICHKIN  $031C-031D      796-797
ICKOUT  $031E-031F      798-799
ICLRCH  $0320-0321      800-801
IBASIN  $0322-0323      802-803
IBSOUT  $0324-Q325      804-805
ISTOP   $0326-0327      806-807
IGETIN  $0328-0329      808-809
ICLALL  $032A-032B      810-811
USRCMD  $032C-032D      812-813
ILOAD   $032E-032E      814-815
ISAVE   $0330-0331      816-817 Savesp

TAPBUF  $0333-03F2      819-1010        Cassette tape buffer
WRLEN   $03F3-03F4      1011-1012       Length of data to be written to tape
RDCNT   $03F5-03F6      1013-1014       Length of data to be read from tape
INPQUE  $03F7-0436      1015-1078       RS-232 input queue
ESTARL  $0437-0454      1079-1108
ESTAKH  $0455-0472      1109-1138

CHRGET  $0473-0478      1139-1144
CHRGOT  $04?9-0484      1145-1156
QNUM    $0485-0493      1157-1171

INDSUB  $0494-04A1      1172-1185       Shared ROM fetch sub
ZERO    $04A2-04A4      1186-1188       Numeric constant for Basic

INDTXT  $04A5-04AF      1189-1199       Txtptr
INDIN1  $04B0-04BA      1200-1210       Index & Index1
INDIN2  $04BB-04C5      1211-1221       Index2
INDST1  $04C6-04D0      1222-1232       Strng1
INDLOW  $04D1-04DB      1233-1243       Lowtr
INDFMO  $04DC-04E6      1244-1254       Facmo

PUFILL  $04E7           1255            Print using fill symbol [space]
PUCOMA  $04E8           1256            Print using comma symbol [;]
PUDOT   $04E9           1257            Print using D.P. symbol  [.]
PUMONY  $04EA           1258            Print using monetary symbol [$]

TMPDES  $04EB-04EE      1259-1262       Temp for instr
ERRNUM  $04EF           1263            Last error number
ERRLIN  $04F0-04F1      1264-1265       Line # of last error
TRAPNO  $04F2-04F3      1266-1267       Line to go on error
TMPTRP  $04F4           1268            Hold trap no. temporarily
ERRTXT  $04F5-04E6      1269-1270
OLDSTR  $04F7           1271

TMPTXT  $04F8-04F9      1272-1273
TMPLIN  $04FA-04F8      1274-1275

MTIMLO  $04FC-04FD      1276-1277       Table of pending jiffies (2's comp)
MTIMHI  $04FE-04FF      1278-1279
USRPOK  $0500-0502      1280-1282
KERNDX  $0503-0507      1283-1287
DEJAVU  $0508           1288            'cold' or 'warm' start status

LAT     $0509-0512      1289-1298       Logical file numbers
FAT     $0513-051C      1299-1308       Primary device numbers
SAT     $051D-0526      1309-1318       Secondary addresses

KEYD    $0527-0530      1319-1328       IRQ keyboard buffer
MEMSTR  $0531-0532      1329-1330       Start of memory [1000]

MSIZ    $0533-0534      1331-1332       Top of memory [FD00]
TIMOUT  $0535           1333            IEEE timeout flag

FILEND  $0536           1334            File end reached = 1, 0 otherwise
CTALLY  $0537           1335            # of chars left in buffer (for R & W)
CBUFVA  $0538           1336            # of total valid chars in buffer (R)
TPTR    $0539           1337            Ptr to next char in buffer (for R & W)
FLTYPE  $053A           1338            Contains type of current cass file

COLOR   $053B           1339            Active attribute byte
FLASH   $053C           1340            Character flash flag
        $053D           1341            FREE
HIBASE  $053E           1342            OC Base location of screen (top) [0C]
XMAX    $053F           1343
RPTFLG  $0540           1344            Key repeat flag
KOUUT   $0541           1345
DELAY   $0542           1346
SHFLAG  $0543           1347            Shift flag byte
LSTSHF  $0544           1348            Last shift pattern
KEYLOG  $0545-0546      1349-1350       Indirect for keyboard table setup
MODE    $0547           1351            shift, C=
AUTODN  $0548           1352            Auto scroll down flag (0=on,0off)
LINTMP  $0549           1353
ROLFLG  $054A           1354

FORMAT  $054B           1355            Monitor non-zpage storage
MSAL    $054C-054E      1356-1358
WRAP    $054F           1359
TMPC    $0550           1360
DIFF    $0551           1361
PCH     $0552           1362
PCL     $0553           1363
FLGS    $0554           1364
ACC     $0555           1365
XR      $0556           1366
YR      $0557           1367
SP      $0558           1368
INYL    $0559           1369
INVH    $055A           1370
CMPFLG  $055B           1371            Used by various monitor routines
BAD     $055C           1372

KYNDX   $055D           1373            Used for programmable keys
KEYIDX  $055E           1374
KEYBUF  $055F-0566      1375-1382       Table of P.F. lengths
PKY9UF  $0567-05E6      1383-1510       P.F. Key storage area

KDATA   $05E7           1511            Temp for data write to kennedy
RDYCMD  $05E8           1512            Select for kennedy read or write
KDYNUM  $05E9           1513            Kennedy's dev #
RDYPRS  $05EA           1514            Rennedy present = $ff, else = $00
KDYTYP  $05EB           1515            Temp for type of open for kennedy


SAVRAM  $05EC-06E8      1516-1771       1 page used by banking routines
PAT     $05EC-05EF      1516-1519       Physical Address Table
LNGJMP  $05F0-05F1      1520-1521       Long jump address
FETARG  $05F2           1522            Long jump accumulator
FETXRG  $05F3           1523            Long jump x register
FETSRG  $05F4           1524            Long jump status register

AREAS   $05F5-065D      1525-1629       RAM areas for banking

ASPECH  $065E-06EB      1630-1771       RAM area for speech

STKTOP  $06EC-07AF      1772-1967       BASIC run-time stack

WROUT   $07B0           1968            Byte to be written on tape
PARITY  $07B1           1969            Temp for parity calc

TT1     $07B2           1970            Temp for write-header
TT2     $07B3           1971            Temp for write-header
RDBITS  $07B5           1973            Local index for READBYTE routine
ERRSP   $07B6           1974            Pointer into the error stack
FPERRS  $07B7           1975            Number of first pass errors

DSAMP1  $07B8-07B9      1976-1977       Time constant
DSAMP2  $07BA-07BB      1978-1979       Time constant
ZCELL   $07BC-07BD      1980-1981       Time constant

SRECOV  $07BE           1982            Stack marker for stopkey recover
DRECOV  $07BF           1983            Stack marker for dropkey recover
TRSAVE  $07C0-07C3      1984-1987       params passed to RDBLOK
RDETMP  $07C4           1988            Temp stat save for RDBLOK
LDRSCN  $07C5           1989            # consec shorts to find in leader
CDERRM  $07C6           1990            # Errors fatal in RD countdown
VSAVE   $07C7           1991            Temp for Verify command
T1PIPE  $07C8-a7CB      1992-1995       Pipe temp for T1
ENEXT   $07CC           1996            Read error propagate


FOR RS-232

UOUTQ   $07CD           1997            User chracter to send
UOUTFG  $07CE           1998            0 = empty ; 1 = full
SOUT9   $07CF           1999            System character to send
SOUNFG  $07D0           2000            0 = empty ; 1 = full
INOFPT  $07D1           2001            Pntr to front of input queue
INQRPT  $07D2           2002            Pntr to rear of input queue
INQCNT  $07D3           2003            # of chars in input queue
ASTAT   $07D4           2004            Temp status for ACIA
AINTMP  $07D5           2005            Temp for input routine
ALSTOP  $07D6           2006            FLG for local pause
ARSTOP  $07D7           2007            FLG for remote pause
APRES   $07D8           2008            FLG to indicate presence of ACIA

RLUDES  $07D9-07E4      2009-2020       Indirect routine downloaded
SCBOT   $07E5           2021            Screen bottom (0...24)
SCTOP   $07E6           2022            Screen top
SCLF    $07E7           2023            Screen left (0...39)
SCRT    $07E8           2024            Screen right
SCRDIS  $07E9           2025            Negative = scroll out
INSFLG  $07EA           2026            Insert mode: FF = on, 00 = off
LSTCHR  $07EB           2027
LOGSCR  $07EC           2028
TCOLOR  $07ED           2029
BITABL  $07EE-07F1      2030-2033

SAREG   $07F2           2034            Registers for SYS command
SXREG   $07F3           2035
SYREG   $07F4           2036
SPREG   $07F5           2037

LSTX    $07F6           2038            Key scan index
STPDSB  $07F7           2039            Flag to disable CTRL-S pause
RAMROM  $07F8           2040            MSB for monitor fetches from ROM=0;RAM=
1
COLSW   $07F9           2041            MSB for color/lim table in RAM=0;ROM=1
FFRMSK  $07FA           2042            ROM mask for split screen
VMBMSK  $07FB           2043            VM base mask for split screen
LSEM    $07FC           2044            Motor lock semaphore for cassette
PALCNT  $07FD           2045            PAL tod


TEDATR  $0800-0BFF      2048-3071       TED attribute bytes
TEDSCN  $0C00-0FFF      3072-4095       TED character pointers
BASBGN  $1000-          4096-           Start of BASIC text area
BMLUM   $1800-1BFF      6144-7167       Luminance for bit map screen
BMCOLR  $1C00-1FFF      7168-8191       Color for bit map

        Commodore 16 and plus/4 Memory Configuration

$0000 System memory
$0800 Color memory (Text)
$0C00 Video matrix (Text)
$1000 Beginning of BASIC RAM (without graphics)
$1800 Luminance (Graphics)
$1C00 Colour table (Graphics)
$2000 Graphics screen data
$4000 Beginning of BASIC RAM (with graphics)
$8000 ROM BANK LOW (BASIC)
$C000 BASIC expansions
$D000 Character table
$D800 Operating system
$FC00 Routines for switching banks
$FD00 End of BASIC RAM, I/O area

According to the schematics diagram, $FD00-$FF3F contains the following,
regardless of the RAM/ROM banking configuration:

$FD00-FD0F: 6551 ACIA (for the RS232, only on the +4.  4 registers.)
 $fd00-fd03   ACIA 6551A      used for RS232
                             (rsstar register bits)
                             0 - Parity error bit
                             1 - Framing error bit
                             2 - Receiver buffer overrun bit
                             3 - Unused bit
                             4 - CTS signal missing bit
                             5 - Unused bit
                             6 - DSR signal missing bit
                             7 - Break detected bit
              $fd00           DATA port
              $fd01           STATUS port
              $fd02           COMMAND port
              $fd03           CONTROL port

$fd04-fd07   ACIA copy
$fd08-fd0b   ACIA copy
$fd0c-fd0f   ACIA copy

$FD10-FD1F: 6529B (1 register, drives 8 I/O-lines on the +4 user port)
$fd10        PIO 6529B       User Port PIO (P0-P7)
                             Bit 2 (P2) is used to detect
                             if play on cassette is pressed
                             (CST sense)
$fd11-fd1f   PIO copies

$FD20-FD2F: not mapped
$FD30-FD3F: 6529B (1 register, keyboard scan. The other 8 lines come from TED)
$fd30        PIO 6529B       Keyboard PIO  Keyboard Matrix Connector
                             P0            15
                             P1            18
                             P2            7
                             P3            12
                             P4            11
                             P5            10
                             P6            5
                             P7            1
$fd31-fd3f   PIO copies

$FD40-FDCF: not mapped
$fdd0-fddf   ADDR CLK        used for module select?
                             in the schematic this is
                             the clk/in for 4 D-FlipFlops
                             located in the 74LS175 chip which generates
                             the C1,C2 low/high signals
$FDE0-FEBF: not mapped (but may be slots for additional drives not supported
            by the 1551)
$FEC0-FEFF: TIA mappings for 1551 disk drives #9 and #8
$fec0-fedf   TIA 6523A       if you have a CBM 1551 as device #9
                             then the TIA located in the paddle of
                             you drive will appear at this location
                             for details see $fee0-feff
$fee0-feff   TIA 6523A       if you have a CBM 1551 as device #8
                             then the TIA located in the paddle of
                             your drive will appear at this location
             $fee0           TIA PORT A   (DATA)
             $fee1           TIA PORT B   (STATUS)
             $fee2           TIA PORT C   (HANDSHAKE)
             $fee3           TIA PORT A   data direction register
             $fee4           TIA PORT B   data direction register
             $fee5           TIA PORT C   data direction register
             $fee6           not connected
             $fee7           not connected
             $fee8-feef      TIA copy
             $fef0-fef7      TIA copy
             $fef8-feff      TIA copy

$FF00: TED (registers shown below)
$FF40: ROM

*** TED registers ***
0 Timer 1 low
1 Timer 1 high
2 Timer 2 low
3 Timer 2 high
4 Timer 3 low
5 Timer 3 high

R#   Bit 7       6       5       4        3      2       1      0
---------------------------------------------------------------------
6       Test    ECM     BMM     Blank   Rows    Y2      Y1      Y0
7       RVS off PAL     Freeze  MCM     Columns X2      X1      X0
8 Keyboard Latch
9       IRQ     I-T3    -       I-T2    I-T1    I-LP    I-RAS   -
A       -       EI-T3   -       EI-T2   EI-T1   EI-LP   EI-RAS  RC8
B       RC7     RC6     RC5     RC4     RC3     RC2     RC1     RC0
C       -       -       -       -       -       -       C9      CUR8
D       CUR7    CUR6    CUR5    CUR4    CUR3    CUR2    CUR1    CUR0
E       SND1-7  SND1-6  SND1-5  SND1-4  SND1-3  SND1-2  SND1-1  SND1-0
F       SND2-7  SND2-6  SND2-5  SND2-4  SND2-3  SND2-2  SND2-1  SND2-0
10      -       -       -       -       -       -       SND2-9  SND2-8
11      SND-REL Noise   V2-SEL  V1-SEL  VOL3    VOL2    VOL1    VOL0
12      -       -       BMB2    BMB1    BMB0    R-Bank  S1-9    S1-8
13      CB5     CB4     CB3     CB2     CB1     CB0     SCLOCK  Status
14      VM4     VM3     VM2     VM1     VM0     -       -       -
15      -       LUM2    LUM1    LUM0    COLOR3  COLOR2  COLOR1  COLOR0
16      -       LUM2    LUM1    LUM0    COLOR3  COLOR2  COLOR1  COLOR0
17      -       LUM2    LUM1    LUM0    COLOR3  COLOR2  COLOR1  COLOR0
18      -       LUM2    LUM1    LUM0    COLOR3  COLOR2  COLOR1  COLOR0
19      -       LUM2    LUM1    LUM0    COLOR3  COLOR2  COLOR1  COLOR0
1A      -       -       -       -       -       -       BRE9    BRE8
1B      BRE7    BRE6    BRE5    BRE4    BRE3    BRE2    BRE1    BRE0
1C      -       -       -       -       -       -       -       VL8
1D      VL7     VL6     VL5     VL4     VL3     VL2     VL1     VL0
1E      H8      H7      H6      H5      H4      H3      H2      H1
1F      -       BL3     BL2     BL1     BL0     VSUB2   VSUB1   VSUB0

3E Write switches on ROM bank
3F Write switches on RAM bank

        $FF0E   65294   Voice #1 frequency, bits 0-7

        $FF0F   65295   Voice #2 frequency, bits 0-7

        $FF10   65296   Voice #2 frequency, bits 8 & 9
                        (bit 0 is bit 8, bit 1 is bit 9)

        $FF11   65297   Bits 0-3 : Volume control
                        Bit 4   : Voice #1 select
                        Bit 5   : Voice #2 select
                        Bit 6   : Voice #2 noise select
                        Bit 7   : Sound reload

        $FF12   65298   Bit 0-1 : Voice #1 frequency, bits 8 & 9
                        Bit 2    : TED data fetch ROM/RAM select
                        Bits 0-5 : Bit map base address

        $FF13   65299   Bit 0 : Clock status
                        Bit 1 : Set single clock
                        Bits 2-7 : Character data base address

        $FF14   65309   Bits 3-7 : Video matrix/color memory base address

        $FF15   65301   Background color register
                        Bits 0-3 : Color
                        Bits 4-6 : Luminance

        $FF16   65302   Color register #1
                        Bits 0-3 : Color
                        Bits 4-6 : Luminance

        $FF17   65303   Color register #2
                        Bits 0-3 : Color
                        Bits 4-6 : Luminance

        $FF18   65304   Color registes #3
                        Bits 0-3 : Color
                        Bits 4-6 : Luminance

        $FF19   65305   Color register #4
                        Bits 0-3 : Color
                        Bits 4-6 : Luminance

        $FF1A   65306   Bit map reload

        $FF1B   65307   Bit map reload

        $FF1C   65308   Bit 0 : Vertical line bit 8

        $FF1D   65309   Bits 0-7 : Vertical line bits 0-7

        $FF1E   65310   Horizontal position

        $FF1F   65311   Blink, vertical sub address

        $FF3E   65342   ROM select

        $FF3F   65343   RAM select



  BANKING JUMP TABLE

        $FCF1   64753   JMP to cartridge IRQ routine
        $FCF4   64756   JMP to PHOENIX routine
        $FCF7   64759   JMP to LONG FETCH routine
        $FCFA   64762   JMP to LONG JUMP routine
        $FCFD   64765   JMP to LONG IRQ routine


  UNOFFICIAL JUMP TABLE
        $FF49     65353 JMP to define function key routine
        $FF4C     65356 JMP to PRINT routine
        $FF4F     65359 JMP to PRIMM routine
        $FF52     65362 JMP to ENTRY routine
        $FF80     65408 RELEASE # OF KERNAL (MSB: 0 = NTSC ; 1 = PAL)


  KERNAL JUMP TABLE

; NAME     ADDRESS      DESCRIPTION
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CINT    $FF81   65409   Initialize screen editor
IOINIT  $FF84   65412   Initialize I/O devices
RAMTAS  $FF87   65415   Ram test
RESTOR  $FF8A   65418   Restore vectors to initial values
VECTOR  $FF8D   65421   Change vectors for user
SETMSG  $FF90   65424   Control O.S. messages
SECND   $FF93   65427   Send SA after LISTEN
TKSA    $FF96   65430   Send SA after TALK
MEMTOP  $FF99   65433   Set/Read top of memory
MEMBOT  $FF9C   65436   Set/Read bottom of memory
SCNKEY  $FF9F   65439   Scan keyboard
SETTMO  $FFA2   65442   Set timeout in DMA disk
ACPTR   $FFA5   65445   Handshake serial bus or DMA disk byte in
CIoUT   $FFA8   65448   Handshake serial bus or DMA disk byte out
UNTLR   $FFAB   65451   Send UNTALK out serial bus or DMA disk
UNLSN   $FFAE   65454   Send UNLISTEN out serial bus or DMA disk
LISTN   $FFB1   65457   Send LISTEN out serial bus or DMA disk
TALK    $FFB4   65460   Send TALK out serial bus or DMA disk
READSS  $FFB7   65463   Return I/O STATUS byte
SETLFS  SEF8A   65466   Set LA, FA, SA
SETNAM  $FFBD   65469   Set length and FN address
OPEN    $FFC0   65472   Open logical file
CLOSE   $FFC3   65475   Close logical file
CHKIN   $FFC6   65478   Open channel in
CHOUT   $FEC9   65481   open channel out
CLRCH   $FECC   65484   Close I/O channels
8ASIN   $FFCF   65487   Input from channel
BSOUT   $FFD2   65490   output to channel
LOADSP  $FFD5   65493   Load from file
SAYESP  $FFD8   65496   Save to file
SETTIM  $FFDB   65499   Set internal clock
RDTIM   $FFDE   65502   Read internal clock
STOP    $FFE1   6S50S   Scan STOP key
GETIN   $FFE4   65508   Get character from queue
CLALL   $FFE7   65511   Close all files
UDTIM   $FFEA   65514   Increment clock
SCRORG  $FFED   65517   Screen org.
PLOT    $FFF0   65520   Read/Set X,Y coord of cursor
IOBASE  $FFF3   65523   Return location of start of I/O


Quelle: http://www.floodgap.com/retrobits/ckb/secret/264memory.txt

 

Letzte Änderung: 2019-01-03 11:17:17
  Rubrik:  C16
Rubriken-Übersicht
 14 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!