Fantasy Console
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
Isabelle L. 86497070b3 starting to work on loading programs to the system pirms 5 gadiem
ceres-asm starting to work on loading programs to the system pirms 5 gadiem
ceres-sys starting to work on loading programs to the system pirms 5 gadiem
src changed main.rs to be a lot cleaner pirms 5 gadiem
.gitignore added add instruction assembly pirms 5 gadiem
Cargo.lock starting to work on loading programs to the system pirms 5 gadiem
Cargo.toml starting to work on loading programs to the system pirms 5 gadiem
LICENSE initial commit! pirms 6 gadiem
README.md cleaning up asm a bit pirms 5 gadiem
justfile lots of work on ceres-asm (not working yet) pirms 5 gadiem
test.asm cargo clippy to clean some stuff up pirms 5 gadiem

README.md

CERES-16

a shitty fantasy console written in rust using a proprietary MIPS based asm instruction set. a lot of inspiration from PICO-8. ceres is structured of these crates:

  • ceres-sys: the core system structure of ceres-16
  • ceres-asm: the assembler for ceres-16

Graphics

ceres uses a 256x144 screen with a separate video buffer from the standard memory. colors are 16-bit structured like 0b0000_rrrr_gggg_bbbb where the first four bits are ignored. the video buffer is structured row major where each u16 is an individual pixel

Register layout and info

all registers are unsigned 16 bit

Register number Register name Register usage
0 z0 always contains zero
1 pc program counter
2 sp stack pointer
3 ra return address
4-6 a0-a2 argument registers
7 v0 return register
8 v1 return register 2
9-15 t0-t6 temporary registers

Memory map and info

god oh fuck what am i even doing

instructions

load - ld:signifier $dest immediate/address
opcode signifier destination padding immediate/address
00001 000 0000 0000 0000000000000000
store - st:signifier address $source
opcode signifier source padding address
00100 000 0000 0000 0000000000000000
add - add $src1 $src2 $dest
opcode padding source1 source2 dest
00010 000000000000000 0000 0000 0000
sub - sub $source1 $source2 $dest
opcode padding source1 source2 dest
00011 000000000000000 0000 0000 0000