Web implementation appears

This commit is contained in:
Luxferre
2025-04-23 18:57:33 +03:00
parent db8422a1fd
commit 72bea2b2e1
6 changed files with 553 additions and 0 deletions
+32
View File
@@ -282,6 +282,15 @@ Reference implementations
program file name is optional and used for preloading MU8 program files into
VM's memory. The Busybox AWK implementation is compact but quite slow, so use
it as a last resort solution when no other programming environment is available.
* [Web (HTML5/JS) implementation](https://mu808.luxferre.top) aka mu8web:
supports the entire mu808 spec except the I/O port 2 and offers a way to
load program files in the same MU8 format via a convenient UI.
Uses a convoluted flow to achieve true synchronous input.
Since there's no exiting to the OS environment, the -5 instruction number
resets the VM instead (by zeroing out both memory areas and the counter).
Entry conventions within UI are pretty much the same as for 808UL. Tested
on various devices with physical keypads and touch screens. The source code
can be found in the [mu8web](mu8web/) directory of this repo.
### Assembler reference implementations
@@ -293,6 +302,29 @@ Reference implementations
These lists are going to be expanded as soon as new reference implementations
appear.
### Web reference implementation keyboard controls
The virtual keyboard (unavailable on the smallest screens) is duplicated with
the following keys at all times in the mu808 Web reference implementation:
* `0`-`9`: decimal digits input;
* `*` (star), comma, dot: decimal point input;
* Space, `+`, `/`, down arrow, Call key (if present): whitespace input;
* Backspace, Delete, left arrow, `-`: minus or backspace input (as the minus sign
can only be entered at the beginning of the instruction or data input line);
* `#` (pound, hash sign), Enter: newline input;
* `l`, `L`, up arrow, Left Soft key (if present): open a program file loading dialogue.
### 12-key (DTMF) input method proposal
For hobbyist projects and other environments where all input is limited to 12
keys of the standard phone keypad, the following convention is recommended:
* the `*` (star) key is inputting a minus if this is the first position in
the entry, otherwise it's inputting a decimal point;
* the `#` (pound) key actually confirms entering a single number field, and
all instructions are required to contain exactly five numbers.
FAQ
---