Crates.io | m64 |
lib.rs | m64 |
version | 0.0.5 |
source | src |
created_at | 2021-12-31 13:26:44.826762 |
updated_at | 2022-01-06 16:48:17.844311 |
description | A MAXCOM 64 personal computer emulator |
homepage | |
repository | https://github.com/jakeledoux/m64 |
max_upload_size | |
id | 505802 |
size | 95,973 |
:warning: This crate is in pre-alpha and should not be used for any purpose at this time.
A MAXCOM 64 personal computer emulator.
cargo install m64
m64 run my_program.m64
Example M64 assembly programs are available in ./samples
.
opcode | args (undocumented) |
---|---|
MOV | |
LOG | |
PSH | |
POP | |
ADD | |
SUB | |
MUL | |
DIV | |
MOD | |
CMP | |
RUN | |
RET | |
YLD | |
JMP | |
JLT | |
JGT | |
JEQ | |
JNE | |
NOP | |
HLT |
start | end | usage | byte represents |
---|---|---|---|
0x0000 | 0x03E7 | screen contents | index of character in cell |
0x03E8 | 0x07CF | screen colors | 0xFB where F is foreground color and B is background color |
0x07D0 | 0x0E9F | character map | 8 bytes per character, each bit is a pixel, bytes are rows |
0x0EA0 | 0x0F9F | program stack | any data |
The M64 comes with a standard library of functions that can be called by pushing
the arguments to the stack and executing RUN {function code}
.
function name | function code | args... | returns |
---|---|---|---|
0x00 | null-terminated string | ||
getch | 0x01 | block | ASCII code |
time | 0x02 | timestamp |