Project-28/GIBL/Xmas2023 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.