01/01/2017 at 15:50 •
What it says .... it's complete and apparently working okay. Code size is 722 bytes. Currently the source compiles to 725 bytes + some extra code after $400 ; this code allows me to put code in the assembly which is loaded on new - it's quicker than typing it in manually.
The < 768 bytes would actually matter ; ROMs in these days were often 256 x 8 bytes, so it's the difference between 3 and 4 of them.
01/01/2017 at 11:21 •
Well, having sobered up after Christmas, the project is nearly completed. It is currently running at $000-$29C - 668 bytes. 3 of those are a 'hack' put in so I can load code in without typing it in, which wouldn't be in the final build.
Currently implemented commands are FETCH, GOTO, IF, LET, NEW, OUT, PRINT, STOP, VIEW and XECUTE. The reason for the renaming is I decode on the first character only (so I can't have IF and INPUT). So FETCH is INPUT, VIEW is LIST and XECUTE is RUN.
Currently outstanding are GOSUB/RETURN which means the interpreter is likely to come in in under 3 pages.
In places it is horribly wasteful of CPU time and data memory, but then it's designed to minimise code memory.
I appreciate the people who worked on the MCM/70 system - an 8008 APL Laptop from the early 1970s. It's an interesting machine to program for to put it mildly.
12/15/2016 at 22:02 •
The project is about 570 bytes long, which includes : program editing/listing, evaluation, assignment, GOTO, INPUT, PRINT.
Outstanding are GOSUB/RETURN (will actually be CALL/RETURN), a conditional statement, and a command which is a bit like INKEY.
Some things may be improved later if space permits ; the evaluator was written first and is about 110 bytes but needs some better error checking - it doesn't crash, it just accepts bad syntax.
The project is very wasteful of RAM - deliberately to save program memory :)