home *** CD-ROM | disk | FTP | other *** search
- --
- nEWSGROUPS: COMP.SYS.CBM
- fROM: SLAUR@UTU.FI (sAM lAUR)
- sUBJECT: vic-20 MEMORY MAP (LONG)
- dATE: wED, 2 mAR 1994 12:54:14 gmt
-
- oKAY, HERE'S WHAT ALL YOU vic-20 FREAKS OUT THERE HAVE BEEN WAITING FOR...
- sORRY FOR THE DELAY, BUT i GUESS i'M JUST TOO LAZY TO CORRECT THE ERRORS
- THAT ocr SCANNERS MAKE :-) aLSO i FOUND A COUPLE OF TYPOS IN THE vic-20
- pROGRAMMER'S rEFERENCE gUIDE ITSELF. i TRIED TO CORRECT EVERYTHING, BUT
- WHO KNOWS, THERE MAY STILL BE QUITE MANY TYPOS LURKING IN THIS. hERE IT COMES:
-
-
- memory maps
-
- tHE FOLLOWING MEMORY MAPS PROVIDE A GUIDE WHICH SHOWS WHICH
- SPECIAL LOCATIONS ARE SET ASIDE FOR USE BY THE vLc'S OPERATING
- SYSTEM . . . AND WHAT THOSE LOCATIONS ARE USED FOR.
-
- mEMORY mAP
-
- hex decimal description
-
- 0000 0 jUMP FOR usr
- 0001-0002 1-2 vECTOR FOR usr
- 0003-0004 3-4 fLOAT-fIXED VECTOR
- 0005-0006 5-6 fIXED-fLOAT VECTOR
- 0007 7 sEARCH CHARACTER
- 0008 8 sCAN-QUOTES FLAG
- 0009 9 tab COLUMN SAVE
- 000a 10 0=load, 1=verify
- 000b 11 iNPUT BUFFER POINTER/# SUBSCRIPT
- 000c 12 dEFAULT dim FLAG
- 000d 13 tYPE: ff=STRING, 00=NUMERIC
- 000e 14 tYPE: 80=INTEGER, 00=FLOATING POINT
- 000f 15 data SCAN/lLst QUOTE/MEMORY FLAG
- 0010 16 sUBSCRIPT/fnX FLAG
- 0011 17 0 = input;$40 = get;$98 = read
- 0012 18 atn SIGN/cOMPARISON EVAL FLAG
- 0013 19 cURRENT L/o PROMPT FLAG
- *0014-0015 20-21 iNTEGER VALUE
- 0016 22 pOINTER: TEMPORARY STRING STACK
- 0017-0018 23-24 lAST TEMP STRING VECTOR
- 0019-0021 25-33 sTACK FOR TEMPORARY STRINGS
- 0022-0025 34-37 uTILITY POINTER AREA
- 0026-002a 38-42 pRODUCT AREA FOR MULTIPLICATION
- *002b-002c 43-44 pOINTER: sTART OF bASIC
- *002d-002e 45-46 pOINTER: sTART OF vARIABLES
- *002f-0030 47-48 pOINTER: sTART OF aRRAYS
- *0031-0032 49-50 pOINTER: eND OF aRRAYS
- *0033-0034 51-52 pOINTER: sTRING STORAGE (MOVING DOWN)
- 0035-0036 53-54 uTILITY STRING POINTER
- *0037-0038 55-56 pOINTER: lIMIT OF MEMORY
- 0039-003a 57-58 cURRENT bASIC LINE NUMBER
- 003b-003c 59-60 pREVIOUS bASIC LINE NUMBER
- 003d-003e 61-62 pOINTER: bASIC STATEMENT FOR cont
- 003f-0040 63-64 cURRENT data LINE NUMBER
- 0041-0042 65-66 cURRENT data ADDRESS
- *0043-0044 67-68 iNPUT VECTOR
-
- * uSEFUL MEMORY LOCATION
-
- 170
-
-
- hex decimal description
-
- 0045-0046 69-70 cURRENT VARIABLE NAME
- 0047-0048 71-72 cURRENT VARIABLE ADDRESS
- 0049-004a 73-74 vARIABLE POINTER FOR for/next
- 004b-004c 75-76 y-SAVE; OP-SAVE; bASIC POINTER SAVE
- 004d 77 cOMPARISON SYMBOL ACCUMULATOR
- 004e-0053 78-83 mISC WORK AREA, POINTERS, ETC
- 0054-0056 84-86 jUMP VECTOR FOR FUNCTIONS
- 0057-0060 87-96 mISC NUMERIC WORK AREA
- *0061 97 aCCUM#1: eXPONENT
- *0062-0065 98-101 aCCUM#1: mANTISSA
- *0066 102 aCCUM#1: sIGN
- 0067 103 sERIES EVALUATION CONSTANT POINTER
- 0068 104 aCCUM#1 HI-ORDER (OVERFLOW)
- *0069-006e 105-110 aCCUM#2: eXPONENT, ETC.
- 006f 111 sIGN COMPARISON, aCC#1 VS #2
- 0070 112 aCCUM#1 LO-ORDER (ROUNDING)
- 0071-0072 113-114 cASSETTE BUFFER LENGTH/sERIES POINTER
- *0073-008a 115-138 chrget SUBROUTINE (GET basic CHAR)
- 007a-007b 122-123 bASIC POINTER (WITHIN SUBROUTINE)
- 008b-008f 139-143 rnd SEED VALUE
- *0090 144 sTATUS WORD st
- 0091 145 kEYSWITCH pia: stop AND rvs FLAGS
- 0092 146 tIMING CONSTANT FOR TAPE
- 0093 147 lOAD=0, vERIFY=1
- 0094 148 sERIAL OUTPUT: DEFERRED CHAR FLAG
- 0095 149 sERIAL DEFERRED CHARACTER
- 0096 150 tAPE eot RECEIVED
- 0097 151 rEGISTER SAVE
- *0098 152 hOW MANY OPEN FILES
- *0099 153 iNPUT DEVICE (NORMALLY 0)
- *009a 154 oUTPUT (cmd) DEVICE, NORMALLY 3
- 009b 155 tAPE CHARACTER PARITY
- 009c 156 bYTE-RECEIVED FLAG
- 009d 157 dIRECT=$80/run=0 OUTPUT CONTROL
- 009e 158 tAPE pASS 1 ERROR LOG/CHAR BUFFER
- 009f 159 tAPE pASS 2 ERROR LOG CORRECTED
- *00a0-00a2 160-162 jIFFY cLOCK (hml)
- 00a3 163 sERIAL BIT COUNT/eoi FLAG
- 00a4 164 cYCLE COUNT
- 00a5 165 cOUNTDOWN, TAPE WRITE/BIT COUNT
- 00a6 166 pOINTER: TAPE BUFFER
- 00a7 167 tAPE wRITE LDR COUNT/rEAD PASS/INBIT
- 00a8 168 tAPE wRITE NEW BYTE/rEAD ERROR/INBIT
- CNT
- 00a9 169 wRITE START BIT/rEAD BIT ERR/STBIT
-
- * uSEFUL MEMORY LOCATION
-
- 171
-
-
- hex decimal description
-
- 00aa 170 tAPE sCAN;cNT;lD;eND/BYTE ASSY
- 00ab 171 wRITE LEAD LENGTH/rD CHECKSUM/PARITY
- 00ac-00ad 172-173 pOINTER: TAPE BUFFER, SCROLLING
- 00ae-00af 174-175 tAPE END ADDRESSES/eND OF PROGRAM
- 00b0-00b1 176-177 tAPE TIMING CONSTANTS
- *00b2-00b3 178-179 pOINTER: START OF TAPE BUFFER
- 00b4 180 tAPE TIMER (1 =ENABLE); BIT CNT
- 00b5 181 tAPE eot/rs-232 NEXT BIT TO SEND
- 00b6 182 rEAD CHARACTER ERROR/OUTBYTE BUFFER
- *00b7 183 # CHARACTERS IN FILE NAME
- *00b8 184 cURRENT LOGICAL FILE
- *00b9 185 cURRENT SECONDARY ADDRESS
- *00ba 186 cURRENT DEVICE
- *00bb-00bc 187-188 pOINTER: TO FILE NAME
- 00bd 189 wRITE SHIFT WORD/rEAD INPUT CHAR
- 00be 190 # BLOCKS REMAINING TO wRITE/rEAD
- 00bf 191 sERIAL WORD BUFFER
- 00c0 192 tAPE MOTOR INTERLOCK
- 00c1-00c2 193-194 i/o START ADDRESSES
- 00c3-00c4 195-196 kernal SETUP POINTER
- *00c5 197 cURRENT KEY PRESSED
- *00c6 198 # CHARS IN KEYBOARD BUFFER
- *00c7 199 sCREEN REVERSE FLAG
- 00c8 200 pOINTER: eND-OF-LINE FOR INPUT
- 00c9-00ca 201-202 iNPUT CURSOR LOG (ROW, COLUMN)
- *00cb 203 wHICH KEY: 64 IF NO KEY
- 00cc 204 CURSOR ENABLE (0=FLASH CURSOR)
- 00cd 205 cURSOR TIMING COUNTDOWN
- 00ce 206 cHARACTER UNDER CURSOR
- 00cf 207 cURSOR IN BLINK PHASE
- 00d0 208 iNPUT FROM SCREEN/FROM KEYBOARD
- *00d1-00d2 209-210 pOINTER TO SCREEN LINE
- *00d3 211 pOSITION OF CURSOR ON ABOVE LINE
- 00d4 212 0=DIRECT CURSOR, ELSE PROGRAMMED
- *00d5 213 cURRENT SCREEN LINE LENGTH
- *00d6 214 rOW WHERE CURSOR LIVES
- 00d7 215 lAST INKEY/CHECKSUM/BUFFER
- *00d8 216 # OF insertS OUTSTANDING
- *00d9-00f0 217-240 sCREEN LINE LINK TABLE
- 00f1 241 dUMMY SCREEN LINK
- 00f2 242 sCREEN ROW MARKER
- *00f3-00f4 243-244 sCREEN COLOR POINTER
- 00f5-00f6 245-246 kEYBOARD POINTER
- 00f7-00f8 247-248 rs-232 rCV POINTER
- 00f9-00fa 249-250 rs-232 tX POINTER
-
- * uSEFUL MEMORY LOCATION
-
- 172
-
-
- hex decimal description
-
- *00fb-00fe 251-254 oPERATING SYSTEM FREE ZERO PAGE SPACE
- 00ff 255 bASIC STORAGE
-
- 0100-010a 256-266 fLOATING TO ascii WORK AREA
- 0100-013e 256-318 tAPE ERROR LOG
- 0100-01ff 256-511 pROCESSOR STACK AREA
-
- *0200-0258 512-600 bASIC INPUT BUFFER
- *0259-0262 601-610 lOGICAL FILE TABLE
- *0263-026c 611-620 dEVICE # TABLE
- *026d-0276 621-630 sECONDARY aDDRESS TABLE
- *0277-0280 631-640 kEYBOARD BUFFER
- *0281-0282 641-642 sTART OF MEMORY FOR OP SYSTEM
- *0283-0284 643-644 tOP OF MEMORY FOR OP SYSTEM
- 0285 645 sERIAL BUS TIMEOUT FLAG
- *0286 646 cURRENT COLOR CODE
- 0287 647 cOLOR UNDER CURSOR
- *0288 648 sCREEN MEMORY PAGE
- *0289 649 mAX SIZE OF KEYBOARD BUFFER
- *028a 650 kEY REPEAT (128=REPEAT ALL KEYS)
- *028b 651 rEPEAT SPEED COUNTER
- 028c 652 rEPEAT DELAY COUNTER
- *028d 653 kEYBOARD sHIFT/cONTROL FLAG
- 028e 654 lAST KEYBOARD SHIFT PATTERN
- 028f-0290 655-656 pOINTER: DECODE LOGIC
- *0291 657 sHIFT MODE SWITCH (0 = ENABLED, 128 = LOCKED)
- 0292 658 aUTOSCROLLDOWNFLAG (0=ON, <>0=OFF)
- 0293 659 rs-232 CONTROL REGISTER
- 0294 660 rs-232 COMMAND REGISTER
- 0295-0296 661-662 nONSTANDARD (bIT TIME/2-100)
- 0297 663 rs-232 STATUS REGISTER
- 0298 664 nUMBER OF BITS TO SEND
- 0299-029a 665-666 bAUD RATE (FULL) BIT TIME
- 029b 667 rs-232 RECEIVE POINTER
- 029c 668 rs-232 INPUT POINTER
- 029d 669 rs-232 TRANSMIT POINTER
- 029e 670 rs-232 OUTPUT POINTER
- 029f-02a0 671-672 hOLDS irq DURING TAPE OPERATIONS
- 02a1-02ff 673-767 pROGRAM INDIRECTS
-
- *0300-0301 768-769 eRROR MESSAGE LINK
- 0302-0303 770-771 bASIC WARM START LINK
- 0304-0305 772-773 cRUNCH bASIC TOKENS LINK
- 0306-0307 774-775 pRINT TOKENS LINK
- 0308-0309 776-777 sTART NEW bASIC CODE LINK
-
- * uSEFUL MEMORY LOCATION
-
- 173
-
-
- hex decimal description
-
- 030a-030b 778-779 gET ARITHMETIC ELEMENT LINK
- 030c 780 sTORAGE FOR 6502 .a REGISTER
- 030d 781 sTORAGE FOR 6502 .x REGISTER
- 030e 782 sTORAGE FOR 6502 .y REGISTER
- 030f 783 sTORAGE FOR 6502 .p REGISTER
- 0310-0313 784-787 ??
- 0314-0315 788-789 hARDWARE (irq) INTERRUPT VECTOR [eabf]
- 0316-0317 790-791 bREAK INTERRUPT VECTOR[fed2]
- 0318-0319 792-793 nmi INTERRUPT VECTOR[fead]
- 031a-031b 794-795 open VECTOR[f40a]
- 031c-031d 796-797 close VECTOR[f34a]
- 031e-031f 798-799 sET-INPUT VECTOR[f2c7]
- 0320-0321 800-801 sET-OUTPUT VECTOR[f309]
- 0322-0323 802-803 rESTORE L/o VECTOR[f3f3]
- 0324-0325 804-805 input VECTOR[f20e]
- 0326-0327 806-807 oUTPUT VECTOR[f27a]
- 0328-0329 808-809 tEST-stop VECTOR[f770]
- 032a-032b 810-811 get VECTOR[f1f5]
- 032c-032d 812-813 aBORT L/o VECTOR[f3ef]
- 032e-032f 814-815 uSER VECTOR (DEFAULT brk)[fed2]
- 0330-0331 816-817 lINK TO LOAD ram[f549]
- 0332-0333 818-819 lINK TO SAVE ram[f685]
- 0334-033b 820-827 ??
- *003c-03fb 828-1019 cASSETTE BUFFER
- 0400-0fff 1024-4095 3k EXPANSION ram AREA
- 1000-1dff 4096-7679 uSER bASIC AREA
- 1e00-1fff 7680-8191 sCREEN MEMORY
- 2000-3fff 8192-16383 8k EXPANSION ram/rom BLOCK 1
- 4000-5fff 16384-24575 8k EXPANSION ram/rom BLOCK 2
- 6000-7fff 24576-32767 8k EXPANSION ram/rom BLOCK 3
-
- note: wHEN ADDITIONAL MEMORY IS ADDED TO BLOCK 1 (AND 2 AND 3), THE
- kernal RELOCATES THE FOLLOWING THINGS FOR basic:
-
- 1000-11ff 4096-4607 sCREEN MEMORY
-
- 1200-? 4608-?uSER bASIC AREA
-
- 9400-95ff 37888-38399 cOLOR ram
-
- 8000-8fff 32768-36863 4k cHARACTER GENERATOR rom
- 8000-83ff 32768-33791 uPPER CASE AND GRAPHICS
- 8400-87ff 33792-33815 rEVERSED UPPER CASE AND GRAPHICS
- 8800-8bff 33816-35839 uPPER AND LOWER CASE
- 8c00-8fff 35840-36863 rEVERSED UPPER AND LOWER CASE
- 9000-93ff 36864-37887 i/o block 0
-
- * uSEFUL MEMORY LOCATION
-
- 174
-
-
- hex decimal description
-
- 9000-900f 36864-36879 aDDRESS OF vic CHIP REGISTERS
- 9000 36864 BITS 0-6 HORIZONTAL CENTERING
- BIT 7 SETS INTERLACE SCAN
- 9001 36865 VERTICAL CENTERING
- 9002 36866 BITS 0-6 SET # OF COLUMNS
- BIT 7 IS PART OF VIDEO MATRIX ADDRESS
- 9003 36867 BITS 1-6 SET # OF ROWS
- BIT 0 SETS 8X8 OR 16X8 CHARS
- 9004 36868 tv RASTER BEAM LINE
- 9005 36869 BITS 0-3 START OF CHARACTER MEMORY
- (DEFAULT = 0)
- BITS 4-7 IS REST OF VIDEO ADDRESS
- (DEFAULT= f)
- bits 3,2,1,0 cm STARTINQ ADDRESS
- hex dec
- 0000 rom 8000 32768
- 00018400 33792
- 00108800 34816
- 00118c00 35840
- 1000 ram 0000 0000
- 1001XXXX
- 1010XXXX UNAVAIL.
- 1011XXXX
- 11001000 4096
- 11011400 5120
- 11101800 6144
- 11111c00 7168
-
- 9006 36870 HORIZONTAL POSITION OF LIGHT PEN
- 9007 36871 VERTICAL POSITION OF LIGHT PEN
- 9008 36872 dIGITIZED VALUE OF PADDLE x
- 9009 36873 dIGITIZED VALUE OF PADDLE y
- 900a 36874 fREQUENCY FOR OSCILLATOR 1 (LOW)
- (ON: 128-255)
- 900b 36875 fREQUENCY FOR OSCILLATOR 2 (MEDIUM)
- (ON: 128-255)
- 900c 36876 fREQUENCY FOR OSCILLATOR 3 (HIGH)
- (ON: 128-255)
- 900d 36877 fREQUENCY OF NOISE SOURCE
- 900e 36878 BIT 0-3 SETS VOLUME OF ALL SOUND
- BITS 4-7 ARE AUXILIARY COLOR INFORMATION
- 900f 36879 sCREEN AND BORDER COLOR REGISTER
- BITS 4-7 SELECT BACKGROUND COLOR
- BITS 0-2 SELECT BORDER COLOR
- BIT 3 SELECTS INVERTED OR NORMAL MODE
-
-
- 175
-
-
- hexdecimal description
-
- 9110-911f 37136-37151 6522 via#1
- 9110 37136 pORT b OUTPUT REGISTER
- (USER PORT AND rs-232 LINES)
- pin 6522 description eia abv
- id id
-
- c pb0 rECEIVED DATA (bb) sIN
- d pb1 rEQUEST TO sEND (ca) rts
- e pb2 dATA TERMINAL READY (cd) dtr
- f pb3 rING INDICATOR (ce) ri
- h pb4 rECEIVED LINE SIGNAL (cf) dcd
- j pb5 uNASSIGNED ( ) xxx
- k pb6 cLEAR TO SEND (cb) cts
- l pb7 dATA SET READY (cc) dsr
- b cb1 iNTERRUPT FOR sIN (bb) sIN
- m cb2 tRANSMITTED DATA (ba) sOUT
-
- a gnd pROTECTIVE GROUND (m) gnd
- n gnd sIGNAL GROUND (ab) gnd
- 9111 37137 pORT a OUTPUT REGISTER
- (pa0) bIT 0=sERIAL clk in
- (pa1) bIT 1=sERIAL data in
- (pa2) bIT 2=jOY 0
- (pa3) bIT 3=jOY 1
- (pa4) bIT 4=jOY 2
- (pa5) bIT 5 = lIGHTPEN/fIRE BUTTON
- (pa6) bIT 6=cASSETTE SWITCH SENSE
- (pa7) bIT 7=sERIAL atn OUT
- 9112 37138 dATA DIRECTION REGISTER b
- 9113 37139 dATA DIRECTION REGISTER a
- 9114 37140 tIMER 1 LOW BYTE
- 9115 37141 tIMER 1 HIGH BYTE & COUNTER
- 9116 37142 tIMER 1 LOW BYTE
- 9117 37143 tIMER 1 HIGH BYTE
- 9118 37144 tIMER 2 LOW BYTE
- 9119 37145 tIMER 2 HIGH BYTE
- 911a 37146 sHIFT REGISTER
- 911b 37147 aUXILIARY CONTROL REGISTER
- 911c 37148 pERIPHERAL CONTROL REGISTER
- (ca1, ca2, cb1, cb2)
- ca1 = RESTORE KEY (bIT 0)
- ca2 = CASSETTE MOTOR CONTROL (bITS 1-3)
- cb1 = INTERRUPT SIGNAL FOR RECEIVED
- rs-232 DATA (bIT 4)
- cb2=TRANSMITTED rs-232 DATA (bITS
- 5-7)
- 911d 37149 iNTERRUPT FLAG REGISTER
-
- 176
-
-
- hex decimal description
-
- 911e 37150 iNTERRUPT ENABLE REGISTER
- 911f 37151 pORT a (sENSE CASSETTE SWITCH)
- 9120-912f 37152-371676522 via#2
- 9120 37152 pORT b OUTPUT REGISTER
- KEYBOARD COLUMN SCAN
- (pb3) bIT 3 =CASSETTE WRITE LINE
- (pb7) bIT 7 =jOY 3
- 9121 37153 pORT a OUTPUT REGISTER
- KEYBOARD ROW SCAN
- 9122 37154 dATA DIRECTION REGISTER b
- 9123 37155 dATA DIRECTION REGISTER a
- 9124 37156 tIMER 1, LOW BYTE LATCH
- 9125 37157 tIMER 1, HIGH BYTE LATCH
- 9126 37158 tIMER 1, LOW BYTE COUNTER
- 9127 37159 tIMER 1, HIGH BYTE COUNTER
- TIMER 1 IS USED FOR THE
- 60 TIME/SECOND INTERRUPT
- 9128 37160 tIMER 2, LOW BYTE LATCH
- 9129 37161 tIMER 2, HIGH BYTE LATCH
- 912a 37162 sHIFT REGISTER
- 912b 37163 aUXILIARY CONTROL REGISTER
- 912c 37164 pERIPHERAL CONTROL REGISTER
- ca1 cASSETTE READ LINE (bIT 0)
- ca2 sERIAL CLOCK OUT (bITS 1-3)
- cb1 sERIAL srq in (bIT 4)
- cb2 sERIAL DATA OUT (bITS 5-7)
- 912d 37165 iNTERRUPT FLAG REGISTER
- 912e 37166 iNTERRUPT ENABLE REGISTER
- 912f 37167 pORT a OUTPUT REGISTER
-
- 9400-95ff 37888-38399LOCATION OF color ram WITH
- ADDITIONAL ram AT BLK 1
- 9600-97ff 38400-38911nORMAL LOCATION OF color ram
- 9800-9bff 38912-39935i/o BLOCK 2
- 9c00-9fff 39936-40959i/o BLOCK 3
- a000-bfff 40960-491528k DECODED BLOCK FOR EXPANSION rom
- c000-dfff 49152-573438k bASIC rom
- e000-ffff 57344-655358k kernal rom
-
- 177
-
-
- useful memory locations
-
- tHIS IS A MORE IN-DEPTH GUIDE TO SOME OF THE MEMORY LOCATIONS
- YOU CAN USE.
-
- hex decimal description
-
- 0014-0015 20-21 wHERE basic STORES INTEGER VARIABLES
- USED IN CALCULATIONS. tHE FIXED-FLOAT AND
- FLOAT-FIXED ROUTINES (VECTORS AT 1-2 AND
- 3-4) USE THE VALUE IN THIS AREA.
-
- 002b-002c 43-44 tHE START OF THE basic PROGRAM IN
- MEMORY. lOCATION 43 CONTAINS THE LOW
- BYTE, AND LOCATION 44 HAS THE HIGH BYTE.
- tO COMPUTE THE START OF basic IN
- DECIMAL, USE THE FORMULA: peek(43) +
- 256 * peek(44)
-
- 002d-002e 45-46 tHE START OF THE NUMERIC VARIABLES,
- WHICH IS USUALLY IMMEDIATELY AFTER THE
- END OF THE basic PROGRAM.
-
- 002f-0030 47-48 tHE START OF ARRAYS IN MEMORY, USUALLY
- IMMEDIATELY FOLLOWING THE NUMERIC VARI-
- ABLES.
-
- 0031-0032 49-50 tHE END OF THE ARRAYS IN MEMORY.
-
- 0033-0034 51-52 bOTTOM OF STRING STORAGE, MOVING FROM
- THE TOP OF AVAILABLE MEMORY DOWN TO THE
- TOP OF ARRAYS.
-
- 0037-0038 55-56 tHE TOP OF FREE ram. bY LOWERING THIS
- VALUE, SOME ram CAN BE "PROTECTED"
- AGAINST basic PUTTING VALUES HERE.
-
- 0043-0044 67-68 jUMP VECTOR FOR input STATEMENT.
-
- 0061-0066 97-102 fLOATING POINT ACCUMULATOR #1 FOR CAL-
- CULATIONS.
-
- 0069-006e 105-110 fLOATING POINT ACCUMULATOR #2.
-
- 0073-008a 115-138 tHE chrget SUBROUTINE RESIDES HERE.
- tHIS ROUTINE GETS THE NEXT basic
- CHARACTER FROM MACHINE LANGUAGE.
-
- 0090 144 sTATUS WORD st.
-
- 0098 152 nUMBER OF OPEN FILES.
-
- 0099 153 dEVICE NUMBER FOR INPUT, NORMALLY 0
- (KEYBOARD).
-
- 009a 154 oUTPUT (cmd) DEVICE, NORMALLY 3 (SCREEN).
-
- 178
-
-
- hexdecimal description
-
- 00a0-00a2 160-162 3 BYTE JIFFY CLOCK. tHE tL AND tL$
- VARIABLES ARE TRANSLATIONS OF THESE LOCA-
- TIONS.
-
- 00b2-00b3 178-179 pOINTS TO THE START OF THE TAPE BUFFER. cAN
- BE USED AS AN INDIRECT ZERO-PAGE JUMP
- TO A ROUTINE IN THE BUFFER.
-
- 00b7 183 nUMBER OF CHARACTERS IN FILENAME.
- 00b9 185 wHICH SECONDARY ADDRESS IS CURRENTLY
- BEING USED.
-
- 00ba 186 cURRENT DEVICE NUMBER BEING ACCESSED.
- 00bb-00bc 187-188 pOINTS TO LOCATION OF FILENAME IN MEMO-
-
- 00c5 197 cURRENT KEY BEING HELD DOWN. tHERE WILL
- BE A 64 HERE IF NOTHING IS HELD DOWN. iF
- MORE THAN 1 KEY IS DOWN, THE KEY WITH
- THE HIGHEST NUMBER ON THE CHART IS WHAT
- SHOWS UP HERE.
-
- # KEY # KEY# KEY# KEY
- 0 1 16 NONE32 SPACE48 q
- 1 3 17 a33 z49 e
- 2 5 18 d34 c50 t
- 3 7 19 g35 b51 u
- 4 9 20 j36 m52 o
- 5 + 21 l37 .53 @
- 6 {CBM-T} (POUND) 22 ;38 NONE54 ^ (UP ARROW)
- 7 del 23 CRSR LT/RT 39 F155 F5
- 8 <- 24 stop40 NONE56 2
- 9 w 25 NONE41 s57 4
- 10 r 26 x42 f58 6
- 11 y 27 v43 h59 8
- 12 i 28 n44 k60 0
- 13 p 29 ,45 :61 -
- 14 * 30 / 46 =62 home
- 15 return 31 CRSR UP/DN 47 F363 F7
-
- 00c6 198 nUMBER OF CHARACTERS CURRENTLY IN KEY-
- BOARD BUFFER.
- 00c7 199 fLAG FOR REVERSE ON/OFF. a 1 HERE IS ON, A
- 0 IS OFF.
- 00cb 203 sAME AS 197.
- 00d1-00d2 209-210 aDDRESS OF START OF LINE WHERE CURSOR IS.
- 00d3 211 pOSITION OF CURSOR ON LINE.
- 00d5 213 cURRENT SCREEN LINE LENGTH--EITHER 21,
- 43, 65, OR 87.
-
- 179
-
-
- hexdecimal description
-
- 00d6 214 sCREEN ROW WHERE CURSOR IS. tO CHANGE
- THE CURSOR POSITION, LOCATIONS 209, 210,
- 211, AND 214 MUST BE CHANGED.
-
- 00d8 216 nUMBER OF SPACES LEFT IN insert MODE.
- pokeING THIS TO A ZERO WILL TURN OFF INSERT
- MODE.
-
- 00d9-00f0 217-240 sCREEN LINE LINK TABLE. a 158 MEANS THAT
- THE LINE IS FINISHED AT THE END OF THAT LINE,
- AND A 30 MEANS THAT THE LINE CONTINUES
- ON THE NEXT LINE.
-
- 00f3-00f4 243-244 pOINTER TO THE CURRENT SPACE IN COLOR MEMORY.
-
- 00fb-00fe 251-254 aVAILABLE LOCATIONS IN ZERO PAGE.
-
- 0200-0258 512-600 basic INPUT BUFFER--WHERE THE CHARAC-
- TERS BEING input WILL GO.
-
- 0259-0262 601-610 lOGIC 1 FILE TABLE FOR open FILES.
-
- 0263-026c 611-620 dEVICE # TABLE FOR open FILES.
-
- 026d-0276 621-630 sECONDARY ADDRESS TABLE
-
- 0277-0280 631-640 kEYBOARD BUFFER. iF CHARACTERS ARE pokeD IN
- HERE AND LOCATION 198 (# OF CHARACTERS IN
- BUFFER) IS CHANGED, IT WILL BE AS IF THE
- CHARACTERS WERE TYPED FROM THE KEYBOARD.
-
- 0281-0282 641-642 sTART OF MEMORY POINTER.
-
- 0283-0284 643-644 tOP OF MEMORY POINTER.
-
- 0286 646 cURRENT COLOR CODE. tHIS HOLDS THE COLOR
- NUMBER THAT GOES INTO COLOR MEMORY
- DURING print OPERATIONS.
-
- 0288 648 sCREEN MEMORY PAGE. iF YOU WANT THE
- OPERATING SYSTEM TO KNOW WHERE SCREEN
- MEMORY IS, THIS MUST BE CHANGED AS WELL
- AS THE vic CHIP.
-
- 0289 649 mAXIMUM SIZE OF KEYBOARD BUFFER. iF THIS
- IS SET GREATER THAN 10, VITAL POINTERS WILL
- BE DESTROYED.
-
- 028a 650 kEYBOARD REPEAT FLAG. iF THIS IS A 0, ONLY
- CURSOR CONTROLS REPEAT; IF 128, ALL KEYS
- REPEAT.
-
- 028b 651 tHIS DETERMINES HOW LONG THE vic WAITS
- BEFORE REPEATING KEY.
-
- 028d 653 kEYBOARD shift, ctrl, cOMMODORE FLAG. tHE shift
- SETS THE 1 BIT, cOMMODORE SETS THE 2 BIT, AND
- THE ctrl SETS THE 4 BIT.
-
- 180
-
-
- hex decimal description
- 0291 657 sETTING THIS LOCATION TO 128 WILL DISABLE
- SWITCHING CASE, AND A 0 HERE ENABLES
- THE ABILITY TO SWITCH.
-
- 0300-0301 768-769 tHIS IS THE JUMP VECTOR FOR ERRORS. bY
- CHANGING THIS VECTOR, A ROUTINE CAN
- INTERCEPT ANY ERROR CONDITION.
-
- 033c-03fb 828-1019 cASSETTE BUFFER. tHIS IS WHERE DATA FILES
- ARE HELD BEFORE THEY ARE input. wHEN
- NOT USING FILES, THIS IS AVAILABLE FOR
- pokeING OR MACHINE LANGUAGE PROGRAMS.
-
-
-
-
- 181
-
-
- --
- /* sAM lAUR SLAUR@UTU.FI */
- /* gO FINGER YOURSELF! */
- -
-