-
Code Complete
01/01/2017 at 15:50 • 0 commentsWhat 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.
-
State of Play 1 Jan
01/01/2017 at 11:21 • 0 commentsWell, 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.
-
State of Play 15-Dec
12/15/2016 at 22:02 • 0 commentsThe 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 :)