docs: Add more documents (but they're unfinished)

This commit is contained in:
jn 2022-12-31 12:56:17 +01:00
parent c27f3405cd
commit 571729dafa
3 changed files with 76 additions and 0 deletions

53
docs/instructions.md Normal file
View File

@ -0,0 +1,53 @@
# Fox32 instructions
This file describes every Fox32 instruction in detail. For a general
description of the Fox32 CPU, see cpu.md.
## NOP: no operation
## ADD: add
## MUL: multiply (unsigned)
## AND: bitwise AND
## SLA: shift left
## SRA: shift right arithmetic (with sign extension)
## BSE: bit set
## CMP: compare
## JMP: absolute jump
## RJMP: relative jump
## PUSH: push value to stack
## IN: get input from I/O bus
## ISE: set interrupt enable flag
## MSE: set MMU enable flag
## HALT: halt CPU
## INC: increment (add 1)
## OR: bitwise OR
## IMUL: multiply (signed)
## SRL: shift right logical (with zero extension)
## BCL: bit clear
## MOV: move value
## CALL: absolute call
## RCALL: relative call
## POP: pop value from stack
## OUT: output on I/O bus
## ICL: clear interrupt enable flag
## MCL: clear MMU enable flag
## BRK: debug breakpoint
## SUB: subtract
## DIV: divide (unsigned)
## XOR: bitwise XOR
## ROL: rotate left
## ROR: rotate right
## BTS: test if bit set
## MOVZ: move value and clear upper bits in target register
## LOOP: absolute loop
## RLOOP: relative loop
## RET: return from function
## INT: raise interrupt
## TLB: flush TLB and set page directory pointer
## DEC: decrement (subtract 1)
## REM: calculate remainder of division (unsigned)
## NOT: bitwise NOT
## IDIV: divide (signed)
## IREM: remainder (signed)
## RTA: calculate address relative to instruction pointer
## RETI: return from interrupt
## FLP: flush page from TLB

15
docs/io_bus.md Normal file
View File

@ -0,0 +1,15 @@
# I/O bus
| start | end | description
|------------|------------|---------------------------------------
| 0x00000000 | 0x00000000 | debug serial port
| 0x80000000 | 0x8000031f | display overlay
| 0x80000400 | 0x80000401 | mouse
| 0x80000500 | 0x80000500 | keyboard
| 0x80000600 | 0x80000600 | audio
| 0x80000700 | 0x80000706 | RTC
| 0x80001000 | 0x80005003 | disk
| 0x80010000 | 0x80010000 | power off
TODO: details

8
docs/memory.md Normal file
View File

@ -0,0 +1,8 @@
# Memory
The memory in a Fox32 system is laid out as follows:
| start | end | size | description
|------------|------------|---------|---------------------------------------
| 0x00000000 | 0x04000000 | 64 MiB | RAM
| 0xf0000000 | 0xf0080000 | 512 KiB | ROM