OpenZXRom 2006-06-18 (back to BASICs…)

Since succeeding at loading Basic programs into memory, I’ve been forging ahead at attempting to make sense of them. We now have an interpreter that can deal with a (very) modest subset of Sinclair Basic: INK, PAPER, BORDER, NEW, CLS, REM, GO TO, RUN, STOP, RANDOMIZE and CLEAR. As a teensy drawback, the only numbers it can handle right now are literal integers – there’s code in there that can parse almost any numeric expression, but nothing to actually do the maths.

Download OpenZXRom 2006-06-18

2 Responses to “OpenZXRom 2006-06-18 (back to BASICs…)”

  1. Andrew Owen says:

    I am a complete idiot. We already have a clean room disassembly of the Spectrum ROM thanks to Logan and O’Hara. For a legally watertight OpenZXRom it would be fine for someone like me who has read this disassembly to tell you what the code should do in a given situation, as long as I don’t give you any source or write any of the code myself.

    One request, please make SAVEing work as well. This in addition to one or two other things will enable the OpenZXRom to serve as the environment ROM for BBC Basic, which would give you a legally distributable fully fledged BASIC (although BBC Basic Z80 is no source (it’s gone) rather than open source).

  2. matt says:

    Just a slight snag with that – I’ve read (bits of) the Logan and O’Hara disassembly too…

    What you describe is roughly the same as the approach I’m taking though – except that I’m restraining myself from looking at the actual code rather than being physically separated from it. I’ve consulted L&OH to check their documentation of entry points and things, along with other sources such as Toni Baker’s book.

    I’m sure I can get the save-bytes routine done without too much trouble. Unlike the loading routine, there’s no messing around scanning for edges, adjusting for polarity, or continual error checking. It’s just beeping – how hard can it be? :-)

Leave a Reply