Commit Graph

43 Commits

Author SHA1 Message Date
n loewen 2802623c4c assembler - Change error handling: Just quit, don't throw a JS error 2023-08-24 16:33:33 +01:00
n loewen 1bf2144a67 assembler - Fix 'Too many arguments' error so that it works for normal lines as well as lines with `*` (which might include an optional 2nd arg) 2023-08-24 16:32:29 +01:00
n loewen d56eb34a44 assembler - Add feature: throw useful error on references to undefined constants 2023-08-24 16:01:56 +01:00
n loewen d6b55db381 assembler - Add feature: allow use of `*` with a numeric offset 2023-08-24 15:26:37 +01:00
n loewen dc78518b73 assembler - Fix test for argument-less operations / Remove unnecessary variable 2023-08-24 15:16:12 +01:00
n loewen 0fca21dfab assembler - Change to better catch lines that are missing operands, and provide a useful error message 2023-08-24 15:00:33 +01:00
n loewen 9268b2c59a assembler - Fix: Make preparse start counting lines at 1, so that they match the numbers in your text editor 2023-08-24 14:42:45 +01:00
n loewen 1dc535a71e assembler/cpu - Add feature: Pass debug info from assembler to cpu, so that cpu can print source line 2023-08-24 13:16:01 +01:00
n loewen f2e43888b5 assembler / machine config - Remove/Change: Remove pointer-to-keypad / Change initial IP 2023-08-24 08:16:56 +01:00
n loewen 78ac43bead assembler - Fix bug where the assembler attempted to handle indirect references to constants twice / Remove unused "assemble with optional args" function / Tidy up debugging printouts 2023-08-23 21:23:45 +01:00
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 5e1cf9e413 assembler - Change label for program counter from `*addr` to `*` 2023-08-21 12:30:31 +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 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 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 899c24be7f Bugfix (assembler): Make camelCase =constant names work in indirect expressions 2023-08-15 20:51:15 +01:00
n loewen 4a2f3724d5 Bugfix (assembler): Add a quick hack to make camelCase =constant names less likely to fail 2023-08-15 16:55:08 +01:00
n loewen 9414d19fad Bugfix (assembler): Split opcodes from operands using a regular expression, so that tabs don't break it 2023-08-15 16:52:57 +01:00
n loewen b1dc2a7c7e Feature: WIP: Replace CHP and CFC instructions with FHP and FTG (carry flag is implemented, other flags are not) 2023-08-15 12:04:48 +01:00
n loewen 2d38e28957 Bugfix (assembler): Put the pointer to display memory in the right place
Refactor: Put the value of the pointer to display memory in machine.config.js
2023-08-15 10:55:01 +01:00
n loewen 3e753f6965 Formatting: Rename 'argument' to 'operand' (except when it is shortened to 'arg', which is clearer) 2023-08-15 10:49:44 +01:00
n loewen 6ebebe294e Add JSdoc annotatinos 2023-08-03 16:42:19 +01:00
n loewen e4cf2bb221 Apparently you're not supposed to give groupEnd() an argument... 2023-08-03 16:26:45 +01:00
n loewen 5fa20c3963 Assembler: always add an END at the end of the output 2023-08-03 15:53:59 +01:00
n loewen d3134aa9e6 Add constants to assembler 2023-08-03 15:50:37 +01:00
n loewen a0892109a6 Implement NOP 2023-08-03 15:05:50 +01:00
n loewen 6883adcd71 Fix/implement relocatable display memory 2023-08-02 15:28:18 +01:00
n loewen 5f3d4ea22f Update reference to logging.js 2023-08-02 14:06:24 +01:00
n loewen 9a3d9cffdc Turn print-memory.js into a more general-purpose 'printing utils' library -- export num2hex + rename function that prints a table of memory 2023-08-02 13:56:10 +01:00
n loewen 97ab0c6ee0 Add 'debug' flag when calling assembler 2023-08-02 13:54:04 +01:00
n loewen b81b6c8f5a Move config constants to a config file 2023-08-02 10:52:47 +01:00
n loewen 91ff26fdea Move display memory and add a pointer to display memory 2023-08-02 10:38:58 +01:00
n loewen c732f4408f Remove syntax reference - it's in the readme now 2023-08-02 10:27:06 +01:00
n loewen a46641e172 Move files out of 'sketch' directory 2023-08-01 15:46:09 +01:00