Commit Graph

361 Commits

Author SHA1 Message Date
n loewen c0f11f2b03 assembler - Finish WIP - Refactor extensively / Add a 'set the initial address to assemble at' feature / Add a feature that collects debug info that could be passed as output when running in debug mode 2023-08-22 13:03:52 +01:00
n loewen a766fd867c assembler - WIP - Continue refactoring everything, in support of 'set the initial IP to assemble to' feature, etc. (Everything is probably broken... but it's much closer) 2023-08-21 19:44:16 +01:00
n loewen 12273a6389 assembler - WIP - Continue refactoring everything, in support of 'set the initial IP to assemble to' feature, etc. (Everything is probably broken... but it's much closer) 2023-08-21 19:37:32 +01:00
n loewen f0e8664ab8 assembler - WIP - Continue refactoring everything, in support of 'set the initial IP to assemble to' feature, etc. (Everything is broken...) 2023-08-21 18:34:15 +01:00
n loewen 4481fc10d4 assembler - WIP - Start adding a 'set the initial IP to assembler to' feature + Start adding a 'return debug data as well as machine code' feature 2023-08-21 16:08:58 +01:00
n loewen a52336db07 (docs) readme - Fix keypad section, updating keypad address and removing pointer-to-keypad 2023-08-21 14:47:56 +01:00
n loewen 00ddf2c8fe (docs) todos - Add entry about re-ordering flags register 2023-08-21 14:46:43 +01:00
n loewen d48ead819f (docs) readme - Change memory map + Add section on CPU start-up
Memory map:
- Change to a 5x5 display
- Remove pointer to keypad (I can't see why you would want to relocate it)
- Add placeholder for bank-switching flag
- Remove `$30` as initial value of IP - that's covered (differently) by the new CPU start-up section
2023-08-21 14:46:25 +01:00
n loewen 97f1d02912 tests - Fix fill-display program: use new assembly syntax 2023-08-21 14:40:58 +01:00
n loewen eaa0597552 Merge branch '5x5-display' 2023-08-21 14:38:02 +01:00
n loewen efab770460 (notes) 2023-08-21 - Add section brainstorming a revised memory-map + initial Instruction Pointer 2023-08-21 14:34:20 +01:00
n loewen 209a03f281 (notes) todos - Remove JSDoc entry 2023-08-21 14:11:49 +01:00
n loewen 286875135f (notes) - Update to remove todo entry for previous commit 2023-08-21 12:31:20 +01:00
n loewen 5e1cf9e413 assembler - Change label for program counter from `*addr` to `*` 2023-08-21 12:30:31 +01:00
n loewen 9fa1bf5392 (docs) readme - Change keypad reference to a side-by-side layout 2023-08-21 10:42:36 +01:00
n loewen c5c64e5cd5 (docs) readme - Create a new 'peripherals' section (split up 'memory map/peripherals' section) 2023-08-21 10:37:51 +01:00
n loewen f421abaaf7 (notes) todos/dev note - Update todo list, copying items from today's dev note 2023-08-21 10:34:31 +01:00
n loewen 08fe395a5f (note) 2023-08-21 - Create dev note 2023-08-21 10:29:37 +01:00
n loewen c53bc14c36 (notes) 2023-08-17 - Create note / List todos + program ideas 2023-08-17 11:34:56 +01:00
n loewen 37578f038d (notes) 2023-08-16 - Update todo list to indicate that an item will be moved to the next note 2023-08-17 11:33:56 +01:00
n loewen 2f90bbd453 Docs: Add todo re: initial IP location 2023-08-16 16:40:46 +01:00
n loewen 742303e06c Docs: Update dependency list 2023-08-16 16:37:41 +01:00
n loewen ffe96962a4 Docs: Update todos re: invoking the cpu/assembler; move notes on this from `run-cpu.js` to `todo.md` 2023-08-16 16:36:01 +01:00
n loewen 12f8e39c54 Docs: Update todo list 2023-08-16 16:28:14 +01:00
n loewen 700702c4ba Docs: Update today's dev note 2023-08-16 16:28:08 +01:00
n loewen 501910b17f Feature: Keypad simulation!
Refactor: Tidy up constants use for machine configuration
2023-08-16 16:23:59 +01:00
n loewen b8265409cf Fix: Load CPU with 256 bytes of memory, regardless of the length of the data provided
(This mostly reverts the previous commit -- better to have short assembler output, and memory-padding/validation on the CPU side)
2023-08-16 15:55:04 +01:00
n loewen 6e897b7f74 Fix (Assembler): Pad machine code output to a full $FF bytes 2023-08-16 15:38:59 +01:00
n loewen 5fba7daf32 Docs: Rename computer "Cardiograph _Mark_ I" 2023-08-16 14:06:41 +01:00
n loewen dd0fdd3b06 Feature (CPU): Implement a simple single-stepping mode 2023-08-16 13:56:23 +01:00
n loewen 344257a322 Refactor: Rename `framerate` to `clockSpeed` and add jsdoc annotation 2023-08-16 12:58:51 +01:00
n loewen 1d88d0b5b6 Refactor: Use `setInterval` to clock CPU, in order to remove unnecessary use of async/await 2023-08-16 12:56:30 +01:00
n loewen aa6cbc3e6d Refactor (CPU): Move more logic into `stepCPU()` in preparation for implementing single-stepping 2023-08-16 12:50:00 +01:00
n loewen 3ac1276bfe Docs: Update today's dev note 2023-08-16 12:48:57 +01:00
n loewen 8027f4d961 Docs: update today's dev note 2023-08-16 09:49:10 +01:00
n loewen c590ca4882 Refactor: Rename CPU to cpu.js (from 'simulator.js') 2023-08-16 09:48:56 +01:00
n loewen d02c8241af Docs: Add dev notes for 2023-08-16 2023-08-16 09:39:48 +01:00
n loewen 5078efa1fe Linting: Remove FIXMEs that I'm unlikely to do any time soon 2023-08-16 09:39:03 +01:00
n loewen 4dda5881ef Refactor (assembler): Define label prefix in a constant, for easy re-configuration 2023-08-16 09:38:18 +01:00
n loewen 3fd862a55d ! Refactor (assembler): Chance constant prefix from '=' to '#'
'=' could be confusing when referencing a constant, since it looks like assignment

'#' is hopefully clearer (by analog to #hashtags)

Breaking change!
2023-08-16 09:35:37 +01:00
n loewen 9fefa0916a Feature (assembler): Allow assigning `*ADDR` to a constant 2023-08-16 09:29:27 +01:00
n loewen 6a3c70be37 Docs: Mark unfinished todos with 'incomplete' checkboxes (in Obsidian Tasks style) so that they don't show up when searching for todos
(See https://publish.obsidian.md/tasks/Getting+Started/Statuses)
2023-08-16 09:09:44 +01:00
n loewen 8f9f50e28c Update sketch to suggest use of `*ADDR` 2023-08-15 21:31:35 +01:00
n loewen 4e01a0943c Feature: Add `*ADDR` assembly operation (`*ADDR`, used as an operand, is replaced with the memory address where the current line will be stored after assembly) 2023-08-15 21:29:28 +01:00
n loewen 190592813d Merge branch 'main' into 5x5-display 2023-08-15 20:58:38 +01:00
n loewen 5c41369ecd Add sketches/notes re: subroutines and a call stack 2023-08-15 20:58:05 +01:00
n loewen 2cceaa71f2 Refactor: Rewrite fill-display:
- make more use of constants
- improve comments
2023-08-15 20:53:51 +01:00
n loewen 899c24be7f Bugfix (assembler): Make camelCase =constant names work in indirect expressions 2023-08-15 20:51:15 +01:00
n loewen 88e36eccce Docs: Update to-dos in dev note 2023-08-15 2023-08-15 20:17:02 +01:00
n loewen 59861ecdeb Docs: Update to-do list 2023-08-15 20:15:35 +01:00