cardiograph-computer/issues/issues.md

1.0 KiB

Cardiograph issues

Open

#1 - Improve CLI interface

I'm thinking of an interface like this...

$ ./cpu.js -mc code.bin  
$ ./cpu.js code.asm
$ ./cpu.js --debug code.asm

Full list of flags I want:

-d --debug
-s --singlestep
-p --prettydisplay
-mc --machinecode

#2 - Startup: Execute JMP $FF

See 2023-08-24

... say that there's a 1-byte ROM at $FF.

  • 00-19 - display (5x5)

  • 1A - pointer to display memory

  • 1B - keypad: value of latest key pressed

  • 1C - reserved for future use (bank switching flag)

  • 1D - initial IP

  • 1D-FE - free

  • FF - ROM (unwriteable) - pointer to initial IP

  • store $1D at $FF

  • make CPU execute JMP $FF on startup

  • make ROM unwriteable

More step-by-step:

  • Change memory from a Uint8Array to a regular array, and make every entry { number | { type: 'ROM', value: number }}
  • Store ROM as an object in machine.config.js
  • Load ROM data into memory at CPU startup (startCPU(RAM, ROM))

Closed