readme
This commit is contained in:
parent
b8c15c65ee
commit
20171a1d86
79
README.md
Normal file
79
README.md
Normal file
@ -0,0 +1,79 @@
|
||||
|
||||
# vc4
|
||||
|
||||
**virtual computer 4** (see [vc3](https://git.sfja.dk/sfja/vc4) and [vc2](https://github.com/simonFJ20/vc2))
|
||||
|
||||
a computer-emulator with custom architecture, and some stuff to write and run software on it.
|
||||
|
||||
## goals
|
||||
|
||||
- [ ] assemble program on host
|
||||
- [ ] run program from host
|
||||
- [ ] run program from emulated disk
|
||||
- [ ] output to monitor device
|
||||
- [ ] input from keyboard device
|
||||
- [ ] command shell
|
||||
- [ ] read/write files on emulated disk
|
||||
- [ ] host/vm file share
|
||||
- [ ] run programs from emulated disk
|
||||
- [ ] edit text files
|
||||
- [ ] assemble program on vm
|
||||
|
||||
## isa
|
||||
|
||||
- 16-bit instruction set
|
||||
- big endian
|
||||
|
||||
### registers
|
||||
|
||||
```
|
||||
r0 accumulator / return value
|
||||
r1
|
||||
r2
|
||||
r3
|
||||
r4
|
||||
r5
|
||||
r6
|
||||
sp stack pointer
|
||||
bp base pointer
|
||||
```
|
||||
|
||||
### instructions
|
||||
|
||||
```
|
||||
r = register
|
||||
i16 = 16-bit immediate
|
||||
m = memory [r/i16]
|
||||
|
||||
nop
|
||||
hlt
|
||||
jmp r/i16
|
||||
jnz r/i16
|
||||
cmp r/i16
|
||||
mov r/i16/m r
|
||||
mov r r/i16/m
|
||||
in r/i16
|
||||
out r/i16 r/i16
|
||||
call r/i16
|
||||
ret
|
||||
lit r/i16
|
||||
int i8
|
||||
|
||||
or r r/i16
|
||||
xor r r/i16
|
||||
and r r/i16
|
||||
shl r r/i16
|
||||
rshl r r/i16
|
||||
shr r r/i16
|
||||
rshr r r/i16
|
||||
add r r/i16
|
||||
sub r r/i16
|
||||
rsub r r/i16
|
||||
mul r r/i16
|
||||
imul r r/i16
|
||||
div r r/i16
|
||||
idiv r r/i16
|
||||
mod r r/i16
|
||||
rmod r r/i16
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user