m64

Crates.iom64
lib.rsm64
version0.0.5
sourcesrc
created_at2021-12-31 13:26:44.826762
updated_at2022-01-06 16:48:17.844311
descriptionA MAXCOM 64 personal computer emulator
homepage
repositoryhttps://github.com/jakeledoux/m64
max_upload_size
id505802
size95,973
Jake (jakeledoux)

documentation

README

M64

:warning: This crate is in pre-alpha and should not be used for any purpose at this time.

A MAXCOM 64 personal computer emulator.

Usage

M64 assembly interpreter

cargo install m64

m64 run my_program.m64

Example M64 assembly programs are available in ./samples.

Specs

Instruction set

opcode args (undocumented)
MOV
LOG
PSH
POP
ADD
SUB
MUL
DIV
MOD
CMP
RUN
RET
YLD
JMP
JLT
JGT
JEQ
JNE
NOP
HLT

Memory Map (NYI)

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

Standard Library (NYI)

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
print 0x00 null-terminated string
getch 0x01 block ASCII code
time 0x02 timestamp
Commit count: 20

cargo fmt