bbc/electron apps, languages, utils, educational progs, demos + more
- Posts: 2975
- Joined: Sun Jan 24, 2010 10:24 am
- Location: West
As mentioned in passing here
, a friend of mine who wishes to remain anonymous has passed on some images of disks containing, hopefully, sources and binaries for his Life program from 1988. He had a Beeb (perhaps a Master) and a cheese wedge 6502 copro, I think.
It turns out the sources are not legal for Acorn's known versions of Basic - see that thread - but we can probably get them to assemble and run, and perhaps this thread is a good place to discuss the algorithm and coding technique and to show any results.
See attached for a recreated disk image. The contents of the original look like this:
Code: Select all
Disk title: New Disc4 #2 (92) Disk size: &190 - 100K
Boot Option: 0 (None) File count: 8
Filename: Lck Lo.add Ex.add Length Sct
$.snacko 00A000 00A000 001732 151
$.6HUNT 000500 000500 006763 0E9
$.SNARK 000500 000500 003C1A 08D
S.SCREEN 000500 000500 00332F 059
O.Screen FF21DE FF21DE 000956 026
$. 00A000 00A000 00150D 00E
$.BMK 000800 008023 000098 007
$.GRIDDO 000800 008023 0002B4 004
Edit: more discussion over here
- (23.25 KiB) Downloaded 31 times
Last edited by BigEd
on Sun Jan 20, 2019 7:25 am, edited 1 time in total.
- Posts: 9091
- Joined: Sat Oct 13, 2012 7:21 pm
- Location: Bristol
It does seem that there are a couple of pre-compiled versions on disk that actually run. The clue was the load/exec address of 0000A000.
One is called $.SNACKO the other is called "$." You need to rename the "$." one (e.g. in a binary editor or in DFS Explorer, say to $.TEST) for it to be runnable.
When you run them you get a single flashing dot, and a > cursor.
I think $.TEST is the more recent, and more functional of the two. It looks like the source for this is "$.6HUNT", as you can see the command processor in this code.
The commands I have sussed so far are:
Cursor keys move the dot around
Cursor keys with shift move the viewport around
F0 - clear cell
F1 - set cell
F2 - home cursor
F3 - origin to cursor
F4 - clear all cells
F5 - toggle 4-line text window - not found a purpose for this yet
F6 - Mode 4 - keeps the current cells intact
F7 - Mode 7- keeps the current cells intact
F8 - Run multiple generations
F9 - Run single generation
I've managed to run an r-pentomino to 1100 generations:
- in 80 seconds at 3MHz (our list life is currently 207.8s - we previously reported as 161s, so we have slowed down, I suspect the keyboard scanning but will investigate)
- in 26 seconds at 225MHz (our list life is currently 5.8s)
So it looks like the engine may be 2x faster, but the display updates 4x slower.
The universe does seem to be larger than the screen.
$.SNACKO I think is the older of the two - the keys below do work, but F0/F1 are awkward, as the need to be used together with a cursor key.