added the TI-74 BASIC port and the mu808asm'MU74 export support
This commit is contained in:
@@ -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
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user