; PV - permanent variable---DO NOT USE

; TV - temporary variable---maybe use

; DV - double vairable---probably do not use

; Vhh - free to use, but used by BASIC

; Uhh - not used by BASIC at all

;***********************************************

; COLOR BASIC

;***********************************************

CB.endflg equ $00 ; stop/end flag; positive=stop, neg=end

.charac equ $01 ; terminator flag 1

.endcur equ $02 ; terminator flag 2

.tmploc equ $03 ; scratch variable

.ifctr equ $04 ; IF counter - how many IF statement in a line

.dimflg equ $05 ; DV array flag 0=evaluate 1=dimentioning

.valtyp equ $06 ; DV *PV type flag; 0=numeric, $FF=string

.garbfl equ $07 ; *TV string space housekeeping flag

.arydis equ $08 ; disable array search; 0=allow search

.inpflg equ $09 ; *TV input flag: read=0, input<>0

.relflg equ $0A ; *TV relational operator flag

.temppt equ $0B ; *PV temporary string stack pointer

.lastpt equ $0D ; *PV addr of last used string stack address

.temptr equ $0F ; temporary pointer

.tmptr1 equ $11 ; temporary descriptor storage (stack search)

.fpa2 equ $13 ; floating point accumulator #2 mantissa

.botstk equ $17 ; bottom of stack at last check

.txttab equ $19 ; *PV beginning of BASIC program

.vartab equ $1B ; *PV start of variables

.arytab equ $1D ; *PV start of arrays

.aryend equ $1F ; *PV end of arrays (+1)

.fretop equ $21 ; *PV start of string storage (top of free RAM)

.strtab equ $23 ; *PV start of string variables

.frespc equ $25 ; utility string pointer

.memsiz equ $27 ; *PV top of string space

.oldtxt equ $29 ; saved line number during a "STOP"

.binval equ $2B ; binary value of a converted line number

.oldptr equ $2D ; saved input ptr during a "STOP"

.tinptr equ $2F ; temporary input pointer storage

.dattxt equ $31 ; *PV "DATA" statement line number pointer

.datptr equ $33 ; *PV "DATA" statement address pointer

.dattmp equ $35 ; data pointer for "INPUT" & "READ"

.varnam equ $37 ; *TV temp storage for a variable name

.varptr equ $39 ; *TV pointer to a variable descriptor

.vardes equ $3B ; temp pointer to a variable descriptor

.relptr equ $3D ; pointer to relational operator processing routine

.trelfl equ $3F ; temporary relational operator flag byte

V40 equ $40 ; FPA #3 packed

V41 equ $41

V42 equ $42

V43 equ $43

V44 equ $44

V45 equ $45 ; FPA #4 packed

V46 equ $46

V47 equ $47

V48 equ $48

V49 equ $49

V4A equ $4A ; FPA #5 packed

V4B equ $4B

V4C equ $4C

V4D equ $4D

V4E equ $4D

CB.fp0exp equ $4F ; FPA #0 exponent

.fpa0 equ $50 ; FPA #0 mantissa

.fp0sgn equ $54 ; FPA #0 sign

.coefct equ $55 ; polynomial coefficient counter

.strdes equ $56 ; temporary string descriptor

.fpcary equ $5B ; floating point carry byte

.fp1exp equ $5C ; FPA #1 exponent

.fpa1 equ $5D ; FPA #1 mantissa

.fp1sgn equ $61 ; FPA #1 sign

.ressgn equ $62 ; sign of result of floating point operation

.fpsbyt equ $63 ; floating point sub byte (fifth byte)

.coefpt equ $64 ; polynomial coefficient pointer

.lsttxt equ $66 ; current line pointer during list

.curlin equ $68 ; *PV current line # of BASIC program, $FFFF = direct

.devcfw equ $6A ; *TV tab field width

.devlcf equ $6B ; *TV tab zone

.devpos equ $6C ; *TV print position

.devwid equ $6D ; *TV width

.prtdev equ $6E ; *TV print device: 0=not cassette, -1=cassette

.devnum equ $6F ; *PV device number: 0=DLOAD, -2=PRINTER , -1=CASSETTE, 0=SCREEN, 1-15=DISK

.cinbfl equ $70 ; *PV console in buffer flag: 00=not empty, $FF=empty

.rstflg equ $71 ; *PV warm start flag: $55=warm, other=cold

.rstvec equ $72 ; *PV warm start vector - jump address for warm start

.topram equ $74 ; *PV top of RAM

U76 equ $76

U77 equ $77

CB.filsta equ $78 ; *PV file status flag: 0=closed, 1=input, 2=output

.cinctr equ $79 ; *PV console in buffer char counter

.cinptr equ $7A ; *PV console in buffer pointer

.blktyp equ $7C ; *TV cass block type: 0=header, 1=data, $FF=EOF

.blklen equ $7D ; *TV cassette byte count

.cbufad equ $7E ; *TV cassette load buffer pointer

.ccksum equ $80 ; *TV cassette checksum byte

.csrerr equ $81 ; *TV error flag/character count

.cpulwd equ $82 ; *TV pulse width count

.cpertm equ $83 ; *TV bit counter

.cbtpha equ $84 ; *TV bit phase flag

.clstsn equ $85 ; *TV last sine table entry

.grblok equ $86 ; *TV graphic block value for SET, RESET and POINT

.ikeyim equ $87 ; *TV INKEY$ RAM image

.curpos equ $88 ; *PV cursor location

.zero equ $8A ; *PV dummy - these two bytes are alwas zero

.sndton equ $8C ; *TV tone value for SOUND command

.snddur equ $8D ; *TV duration value for SOUND command

.cmpmid equ $8F ; *PV 1200/2400 Hertz partition <-- moved from ROM

.cmp0 equ $90 ; *PV upper limit of 1200 Hz period "

.cmp1 equ $91 ; *PV upper limit of 2400 Hz period "

.syncln equ $92 ; *PV number of $55s to cassette leader "

.blkcnt equ $94 ; *PV cursor blink delay "

.lptbtd equ $95 ; *PV Baud rate constant (600) "

.lptlnd equ $97 ; *PV Printer carriage return delay "

.lptcfw equ $99 ; *PV tab field width "

.lptlcf equ $9A ; *PV last tab zone "

.lptwid equ $9B ; *PV printer width "

.lptpos equ $9C ; *PV line printer position "

.execjp equ $9D ; *PV jump address for EXEC command <-- moved from ROM

.getnch equ $9F ; *PV function <-- moved from ROM

.getcch equ $A5 ; *PV function "

.charad equ $A6 ; *PV function <-- moved from ROM

VAB equ $AB ; low order four bytes of the product

VAC equ $AC ; of a floating point multiplication

VAD equ $AD ; these bytes are used as random data

VAE equ $AE ; by the RND statement

;***********************************************

; EXTENDED COLOR BASIC

;***********************************************

ECB.trcflg equ $AF ; *PV trace flag 0=off else on

.usradr equ $B0 ; *PV address of the start of usr vectors

.forcol equ $B2 ; *PV foreground color

.bakcol equ $B3 ; *PV background color

.wcolor equ $B4 ; *TV wofking color being used by ECB

.allcol equ $B5 ; *TV all pixels in the byte set to color of bakcol

.pmode equ $B6 ; *PV PMODE's mode argument

.endgrp equ $B7 ; *PV end of current graphic page

.horbyt equ $B9 ; *PV number of bytes/horizontal grpahic line

.beggrp equ $BA ; *PV start of graphc page

.grpram equ $BC ; *PV start of graphic RAM (MSB)

.horbeg equ $BD ; DV *PV horizontal coordinate start point

.verbeg equ $BF ; DV *PV vertical coordinate start point

.cssyal equ $C1 ; *PV SCREEN's color set argument

.setflg equ $C2 ; *PV PRESET/PSET flag: 0=PRESET, 1=PSET

.horend equ $C3 ; DV *PV horizontal coordinate ending point

.verend equ $C5 ; DV *PV vertical coordinate ending point

.hordef equ $C7 ; *PV horizontal coordinate default coordinate

.verdef equ $C9 ; *PV vertical coordiate default coordiate

VCB equ $CB

VCC equ $CC

VCD equ $CD

VCE equ $CE

VCF equ $CF

VD0 equ $D0

VD1 equ $D1

VD2 equ $D2

VD3 equ $D3

VD4 equ $D4

VD5 equ $D5

VD6 equ $D6

VD7 equ $D7

VD8 equ $D8

VD9 equ $D9

VDA equ $DA

ECB.chgflg equ $DB ; *TV flag to indicate if graphic data has been changed

.tmpstk equ $DC ; *TV stack pointer storage during paint

.octave equ $DE ; *PV octage value (PLAY)

.volhi equ $DF ; DV *PV volume high value (PLAY)

.vollow equ $E0 ; DV *PV volume low value (PLAY)

.noteln equ $E1 ; *PV note length (PLAY)

.tempo equ $E2 ; *PV tempo value (PLAY)

.plytmr equ $E3 ; *TV timer for the PLAY command

.dotyal equ $E5 ; *TV dotted note timer scale factor

.dlbaud equ $E6 ; DV *PV DLOAD baud rate constant $B0=300, $2C=1200

.timout equ $E7 ; DV *PV DLOAD timeout constant

.angle equ $E8 ; DV *PV angle value (DRAW)

.scale equ $E9 ; DV *PV scale value (DRAW)

;***********************************************

; DISK [EXTENDED] COLOR BASIC

;***********************************************

DECB.dcopc equ $EA ; *PV DSKCON operation code 0-3

.dcdrv equ $EB ; *PV DSKCON drive nubmer 0-3

.dctrk equ $EC ; *PV DSKCON track number 0-34

.dsec equ $ED ; *PV DSKCON sector number 1-18

.dcbpt equ $EE ; *PV DSKCON data pointer

.dcsta equ $F0 ; *PV DSKCON status byte

.fcbtmp equ $F1 ; temporary FCB pointer

UF3 equ $F3

UF4 equ $F4

UF5 equ $F5

UF6 equ $F6

UF7 equ $F7

UF8 equ $F8

UF9 equ $F9

UFA equ $FA

UFB equ $FB

UFC equ $FC

UFD equ $FD

UFE equ $FE

UFF equ $FF

Proxy Information
Original URL
gemini://gemini.conman.org/boston/2023/11/27/Coco-DP.i
Status Code
Success (20)
Meta
text/x-c; charset=us-ascii
Capsule Response Time
590.817229 milliseconds
Gemini-to-HTML Time
3.556819 milliseconds

This content has been proxied by September (3851b).