Author: Gordon Henderson
Category: Christmas Challenge
System: Project-28
Language: GIBL - Gordons Interactive Basic Language: A TinyBasic
Len source code: 1140
Len exe file: 357
Len code only: 298
Instructions:
No emulator, but to run in a TinyBasic environment then you need to type
it in or copy/paste it in, somehow. The TB needs to support TOP and byte
indirection (or peek/poke)
Description:
There is no clever algorithm, it's done with a set of look-up tables.
There are 4 tables for the 4 unique lines called A, B, C and D. Each one
represents a number of spaces to print followed by an implicit asterisk.
There is another table; the Order table that represents the order of
each of the 4 unique tables to print.
The code of the program iterates over the Order table and calls a
subroutine to print out the line orders (stars and spaces)
Comments:
I wrote my own TinyBasic interpreter (heavily influenced by ones of the
mid 1970s) and designed and built the hardware it's running on for this
demo - it's called Project 28 as the main ICs are 28 pins; 6507 CPU,
4K RAM and 4K ROM. Serial is done in software.
The ? operator is PEEK, so J=?Q is the same as J=PEEK(Q) in other
systems. Strings are stored in free RAM after the end of the program (TOP)
The "exe" file is the source code minus comments and spaces, the "code
only" length is the "in-core" length where line numbers are stored as
binary, but all else is text "as-is". There is no tokenisation.
The extra JPG image is a picture of the computer itself.