added the TI-74 BASIC port and the mu808asm'MU74 export support

This commit is contained in:
Luxferre
2025-04-27 16:53:48 +03:00
parent 66c5befb9b
commit 192656fef8
3 changed files with 152 additions and 2 deletions
+57 -1
View File
@@ -303,7 +303,10 @@ Reference implementations
* [Python 3](mu808asm.py): supports assembling MU8A source files into both
plain text (MU8) and binary (MU8B) machine code formats. Also supports
disassembling MU8 and MU8B files into their MU8A sources and converting
machine code between MU8 and MU8B formats.
machine code between MU8 and MU8B formats. Additionally, this assembler
implementation provides the `t74` mode to convert plaintext MU8 machine code
into the format suitable for entering into TI-74 BASIC for running on the
TI-74 port of mu808 (see below).
These lists are going to be expanded as soon as new reference implementations
appear.
@@ -331,6 +334,59 @@ keys of the standard phone keypad, the following convention is recommended:
* the `#` (pound) key actually confirms entering a single number field, and
all instructions are required to contain exactly five numbers.
Retro/minimal platform implementations
--------------------------------------
Here's the list of known/existing mu808 implementations that adhere to the
specification to most extent and run compatible machine code but cannot
provide full operating environment functionality due to the limits of the
platform itself.
### TI-74 BASIC
The [mu808.b74](mu808.b74) file contains a BASIC port of mu808 for the Texas
Instruments TI-74 portable computer (tested on the TI-74S variant). Due to
the resource constraints, the following limitations apply:
* only 149 program steps and 256 data cells supported (adjustable at line 110),
* no interactive mode (the `RUN` command directly executes the predefined
program in the VM),
* the program itself is entered into the DATA statements in the so-called
MU74 format (see below),
* no support for I/O port 2, tracing or intruction dumping,
* no boundary checks for the addresses inside the program.
Also, since the VM runs on top of a BASIC interpreter, program execution is
extremely slow most of the time. Keep in mind, this is more of a proof of
concept than a viable solution, and using the "native" TI BASIC is preferred
for any serious computing on that machine.
In order to store your programs on the device to run via this mu808 VM version,
you need to enter them in DATA statements in two-number pairs starting from
`DATA 0,0` at the BASIC line 5000. The last `DATA` line of the program must be
`DATA -1,0`. In between these two, every program instruction `lno cmd a1 a2 a3`
must be compressed into the form:
```
[5000+lno] DATA [cmd*10000 + a1], [a2 * 10000 + a3]
```
This storage format is called MU74. For example, the compound interest
calculator from the official mu808 examples will transform into:
```
5000 DATA 0,0
5001 DATA 50100,1
5002 DATA 40002,30000
5003 DATA 90002,10004
5004 DATA 50001,5
5005 DATA 70005,40005
5006 DATA 130001,50005
5007 DATA 70000,30005
5008 DATA 130000,50005
5009 DATA 30005,50000
5010 DATA -1,0
```
To make the conversion easier, the official mu808 assembler, `mu808asm.py`, now
supports the `t74` mode that accepts a plain MU8 machine code file and outputs
the same program in the MU74 format.
FAQ
---