3.3 KiB
3.3 KiB
Dev notes - 2023-08-21
Goals for today
-
graphic design
- graphics: 80 col card template
- see below
-
printing
- print: paper tape template
- print: colour coding forms
- print: 80 col card template
-
see code/design commentary below...
-
(consider python (microbit) version of simulator)
- maybe ask for e's input
Memory map re-think
CPU start-up
When starting up, the CPU executes a JMP $FF.
Put differently: it starts executing instructions at the address contained in $FF.
Cardiograph memory map
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-FE - free
References re: where do CPU instruction pointers start, and how are they set?
- "Memory Map Requirements", in 6502 PRIMER: Building your own 6502 computer
- "Reset (RST): When the 6502's RST input gets pulled low and then brought back high, the 6502 starts its reset process, and gets the address to start executing program instructions from $FFFC-FFFD. Notice it does not start executing at address $FFFC, but reads it to get the beginning address of the routine where it should start executing. That routine will normally have to be in ROM."
- What address does the x86 begin executing at?
- "The
cs(code selector) register is set to0xffffandip(instruction pointer) is set to0x0000."
- "The
- Why is the first BIOS instruction located at 0xFFFFFFF0 ("top" of RAM)? (x86)
Imported notes from earlier
2023-08-18 cardiograph loose thoughts
- use binary encoded punch cards for cardiog progs in machine code
- try making a microbit based emulator
- (microbit + hex keypad)
- (machine code monitor like VIP…)
- (+ tape input??)
- (microbit + hex keypad)
- a4 template with full size 80 col card
- snake
- [/] add simulator todo: pass asm line thru to cpu to print when debugging
- asm: create a second array that stores every line with code (nor blank or comment only lines) + its line number
- cpu: accept an optional debugging array, print line # and statement
- readme:
- readme: rename (or split up?) mem map / peripherals section
- ? readme: put 2 keypad charts side by side (they would fit on my phone)
- [/] see paper notes on mem map
2023-08-19
[/] reconsider ISA order in light of supercat comment here - Why didn't the 6503 have increment/decrement opcodes for A?
- [/] look at use of
*or.in assembly
2023-07-17 - cardiograph - worksheet for hand-assembling code… + other docs
- docs/graphics: machine code quick ref (ops + short explanations + mnems)
- docs/graphics: assembly quick ref (as above, plus assembler-specific syntax like constants)
- docs/graphics: worksheet for hand-assembling