SNOW
Author: regregex
Category: Christmas Challenge
System: EDSAC
Language: Initial Orders 2
Len source code: 228 bytes
Len exe file: 228 bytes
Len code only: 228 bytes
Instructions:
Install and open the EDSAC Simulator for your platform,
such as EdsacPC ( https://www.dcs.warwick.ac.uk/~edsac/ ).
Ensure that Initial Orders 2 is selected.
Click File -> Open, select snow.txt
Click the Clear button on the console, then the Start button.
Description: The program displays a specific snowflake pattern on the
teleprinter.
For each character cell up to the vertical axis of the snowflake, it
prints a number sign (U+0023, #) if marked on one of two copies of a
bitmap. The second one is a row-by-row mirror image copied from the
first on-the-fly.
Meanwhile within each row it saves the bits read out in a second shift
register, and prints them in reverse once the first bitmap is exhausted.
When the second bitmap is empty the program prints a newline without
trailing spaces.
Comments:
Annotated source code can be found in notes.txt.
Watch the program at work by displaying long tank 0 or 2 on the monitor;
and the quarter snowflake bitmap (packed two rows to a line) being
duplicated in long tank 4.
Asterisk is not available from the teleprinter, though it is used in the
simulator as a substitute character. For the full set of substitutes,
see the footnotes on p.42 of EdsacTG.pdf, included in the EdsacPC
distribution.
Punched on five-hole tape without newlines, the source code would amount
to 134 bytes of data. If the assembled program could be exported from
the EDSAC as bytes perfectly packed, then it would consist of 108 bytes
code + 51 bytes data = 159 bytes total, or 199 bytes including gaps.