SuperBASIC Variables

The basic variables are used by SuperBASIC to hold details of how the Basic system looks. Some of these are helpful to user written programs, others are not.

SuperBasic Variables Area

Offset Size Mnemonic Description
$00 Long BV_BFBAS Buffer Base
$04 Long BV_BFP Buffer running pointer - aka Top
$08 Long BV_TKBAS Token List
$0C Long BV_TKP Token List Top
$10 Long BV_PFBAS Program File Base
$14 Long BV_PFP Program File Top
$18 Long BV_NTBAS Name Table Base
$1C Long BV_NTP Name Table Top
$20 Long BV_NLBAS Name List Base
$24 Long BV_NLP Name List Top
$28 Long BV_VVBAS Variables Values Base
$2C Long BV_VVP Variables Values Top
$30 Long BV_CHBAS Channel Table Base
$34 Long BV_CHP Channel Table Top
$38 Long BV_RTBAS Return Table Base
$3C Long BV_RTP Return Table Top
$40 Long BV_LNBAS Line Number Table Base
$44 Long BV_LNP Line Number Table Top
$48 Long BV_BTP Backtrack Stack during parsing
$4C Long BV_BTBAS Backtrack Stack Base
$50 Long BV_TGP Temporary Graph Stack during Parsing
$54 Long BV_TGBAS Temporary Graph Stack Base
$58 Long BV_RIP Maths Stack Top
$5C Long BV_RIBAS Maths Stack Base
$60 Long BV_SSP System Stack Top
$64 Long BV_SSBAS System Stack Base
$68 Word BV_LINUM Current Line Number
$6A Word BV_LENGTH Current Line Length
$6C Byte BV_STMNT Current Statement on Line
$6D Byte BV_CONT Continue ($80) or stop ($00) Processing
$6E Byte BV_INLIN Processing in-line clause or not. Loop ($01), other ($FF) or off ($00)
$6F Byte BV_SING Single line execution on ($ff) or off ($00)
$70 Word BV_INDEX Name table row of last in-line loop index used
$72 Long BV_VVFREE First free space in variables area
$76 Long BV_SSSAV Value of SP to go to when Out of Memory occurs
$7A 6 Bytes Currently unused
$80 Long BV_RAND Randon number
$84 Long BV_COMCH Command Channel ID
$88 Word BV_NXLIN Line number to start after
$8A Byte BV_NXSTM Statement to start after
$8B Byte BV_COMLN Command line saved ($FF) or not ($00)
$8C Word BV_STOPN Set stop number
$8E Byte BV_EDIT Program has been edited ($FF) or not ($00)
$8F Byte BV_BRK Break during I/O ($00) or not ($80)
$90 Byte BV_UNRVL Need to unravel ($FF) or not ($00)
$91 Byte BV_CNSTM Statement to CONTinue after
$92 Word BV_CNLNO Line number to CONTinue after
$94 Word BV_DALNO Current DATA line number
$96 Byte BV_DASTM Current DATA stamement number
$97 Byte BV_DAITM DATA item counter
$98 Word BV_CNIND In-line loop index to CONTinue with
$9A Byte BV_CNINL In-line loop flag for CONTinue
$9B Byte BV_LSANY Whether checking LIST ($FF) or not ($00)
$9C Word BV_LSBEF Invisible top line number
$9E Word BV_LSBAS Bottom line number in window
$A0 Word BV_LSAFT Invisible bottom line number
$A2 Word BV_LENLN Length of window line
$A4 Word BV_MAXLN Number of lines in window
$A6 Word BV_TOTLN Number of window lines so far
$A8 Word Currently unused
$AA Byte BV_AUTO AUTO or EDIT is on ($FF) or off ($00)
$AB Byte BV_PRINT Print from PRTOK ($FF) or not ($00)
$AC Word BV_EDLIN Next editable line number
$AE Word BV_EDINC AUTO incerment number
$B0 Long BV_TKPOS Location of A4 in Token List when starting a PROCedure
$B4 Long BV_PTEMP Temporary pointer for GO_PROC
$B8 Byte BV_UNDO Undo return stack ($FF) or not ($00). Results in PROC/FN Cleared.
$B9 Byte BV_ARROW Arrow down ($FF) or up ($01) or neither ($00)
$BA Word BV_LSFIL Where to fill window to, when relisting
$BC Word BV_WRLNO WHEN ERRor line number. QDOS 1.10 onwards
$BE Byte BV_WRSTM WHEN ERRor statement number. QDOS 1.10 onwards
$BF Byte BV_WRINL WHEN ERRor in-line ($FF) or not ($000). QDOS 1.10 onwards
$C0 Word BV_WHERR Processing WHEN ERRor ($80) or not ($00). QDOS 1.10 onwards
$C2 Long BV_ERROR Last error code. QDOS 1.10 onwards
$C6 Word BV_ERLIN Last error line number. QDOS 1.10 onwards
$C8 Word BV_WVNUM Number of watched (WHEN) variables. QDOS 1.10 onwards
$CA Long BV_WVBAS Base of WHEN variable table. QDOS 1.10 onwards
$CF-$9F 49 Bytes Currently unused
$100 BV_END End of Basic Variables