SMOLNET PORTAL home about changes
; 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
Response: 20 (Success), text/x-c
Original URLgemini://gemini.conman.org/boston/2023/11/27/Coco-DP.i
Status Code20 (Success)
Content-Typetext/x-c; charset=us-ascii