CTBASIC
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
CTBASIC is a compiled Sinclair BASIC inspired language imagined by User:Salpynx targeting a cyclic tag system "fantasy console" architecture.
The language is written using high-level output commands and compiled into a range of cyclic tag dialects, such as CT {0, 1, ;}
, or BCT {0, 1}
.
Data string output convention
The key feature of the CTBASIC architecture is a particular set of output conventions which distinguish a CTBASIC machine from a plain cyclic-tag interpreter. This output feedback assists writing and evaluating cyclic tag system programs.
Byte strings can be encoded and recognised within the data-string:
- 8 bit bytes are encoded within a 10 bit data-frame with start-bit
1
and end-bit0
. - A string is a series of 10-bit frames beginning with the ASCII C0 STX character (0x02), and terminated by the ETX character (0x03).
- When a valid string is completed, (i.e. the stop-bit
0
of the ETX is appended to the right of the data-string) the complete string is sent to output.
Output is a serial byte-stream, with flexible destinations.
- The CTBASIC language has drawing commands which when compiled produce serial byte output that can be recognised by wikipedia:Tektronix_4010 compatible terminals.
- Non-graphical serial terminals are also intended to be supported for character output.
Commands are effectively macros to simplify forming output using the provided conventions.
PRINT
,CHR$
,CLS
,PLOT
,DRAW
, andINK
for output.BIN
,DATA
,FILL
,ZFILL
,ASM
for internal data.CLEAR
unconditionally clears bits from the data string.
All control flow is provided by the underlying cyclic tag mechanism.
Examples
REM Hello, World! output example. PRINT "Hello, World!"
External resources
- CTBASIC cyclic-tag compiler and interpreter with graphical (Tektronix 4010 / xterm) output examples, including looping animations.