just finished tested the SET command for the 8-bit project, which sets the contents of memory to new values and takes the form
SET [A$xxxx,] aa bb cc…
where as usual square brackets indicate that the address parameter is optional, and (if present) the address must be 4 hex characters long and followed by a separating comma. if the address parameter is omitted, then input begins at the current address. If the previous command was SET, this is the byte after the last byte modified by the previous SET command. If the previous command was SHOW, this is the byte after the last byte shown.
after the comma, the byte values to be set are entered in hex. each byte must be two hex characters long and separated from the next byte by a space. the number of bytes entered in a single SET command is limited only by the 255 character limit on the length of an input line (not 256 because the 256th character will be the CR). so this allows you to enter up to ~80 bytes with a single command.
as i’ve mentioned previously, the ‘A’ is actually completely optional at this point – i scan directly for the ‘$’ to look for an address parameter. so in reality, you could enter something like
SET adfsa8093ja;klncvd$1000,01 02 03
and the code would set the 3 bytes starting at $1000 to 01, 02, and 03 without issuing any error message. i’ll work at making it stricter once everything is working. (although, at least for the basic set of commands, i think i’m actually approaching that point…)
not sure where i’ll go next. other than the disk commands, the only primary command left is LIST, which is intended to provide a full disassembly of several lines of code starting at the target address.