(picking a name is hard and is deferred for later)
The eventual goal(?) is to build a general-purpose processor integrated with simple input (e.g. buttons) and output devices (8x8 LED display).
- Ping Pong
- Source: ping_pong.asm
- Generate resolved assembly:
python3 -m planner asm -r programs/ping_pong.asm[example] - Generate binary:
python3 -m planner asm -b programs/ping_pong.asm[example] - Run on emulator:
python3 -m planner compile_and_execute ping_pong
- Memory Address Line: 16-bits (points to a byte)
- Memory Value Line: 32-bits (4 bytes)
- Max Memory: 64KB
- Memory layout: here
programs/boot_sequence.asmbinary (akaBROM) is mapped from address_lineBOOTSEQUENCE_LOAD = 0x30- Memory Read
- If
BOOTSEQUENCE_ORG <= address_line < DEFAULT_PROGRAM_ORG, pulls value fromBROM - Otherwise, pulls the value from
RAM
- If
- Execution starts with
PCatBOOTSEQUENCE_ORG = 0x34 BROMgoal is to copyPROMto RAM atDEFAULT_PROGRAM_ORG = 0x80- Followed by
jmp DEFAULT_PROGRAM_ORG
- Programs like
programs/ping_pong.asmare translated into binary and are referred to asPROM. PROMis connected to as input-output device.- The equivalent program is loaded in RAM at
DEFAULT_PROGRAM_ORG = 0x80, followed by execution after boot sequence.
