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