glm94
|
0eaa5527ea
|
Updated the parser to be able to handle the changes made to the ISA.
|
2023-06-18 00:50:18 -05:00 |
|
glm94
|
403439def4
|
Updated the opcode listing and 'fixed' the code to at least compile, but obviously I'll need to rework how the new copy instructions are to be parsed. Fixed some errors in the documentation where I skipped some hex numbers and added a copy immediate op.
|
2023-06-17 21:15:08 -05:00 |
|
glm94
|
aa3888b578
|
Fixed up the RemoveCurrentToken function which was causing all sorts of bugs, and added the ability to delcare a data byte, '.db', to have a variable's address as a value. This will be needed for building up an interrupt table at least with the version I have in mind.
|
2023-04-04 22:14:17 -05:00 |
|
glm94
|
288ba9f9cb
|
Updated the docs to include new jump operands and setup the assembler to handle parsing all the jump instructions.
|
2023-03-29 22:30:12 -05:00 |
|
glm94
|
a9a50055a4
|
Updated the parser to validate most of the opcodes. NOP falls through via the default case since it takes no parameters but the jump instructions need some thought before proceeding.
|
2023-03-29 20:57:04 -05:00 |
|
glm94
|
2e888913be
|
Added support for the STORE directive.
|
2023-03-29 12:57:07 -05:00 |
|
glm94
|
ee60d14570
|
Refactored the code and added expect functions to make the code flow a bit nicer.
|
2023-03-29 12:41:53 -05:00 |
|
glm94
|
fa12a04bb3
|
Moved some of the grunt work to their own functions to clean the code up a bit.
|
2023-03-28 22:14:31 -05:00 |
|
glm94
|
2d7aad1617
|
Fixed a bug with labels not advancing the parser after being processed resulting in a redefinition error.
|
2023-03-28 12:41:56 -05:00 |
|
glm94
|
ae03991fa5
|
Fixed some parser bugs processing the syntax for some LOAD instruction types.
|
2023-03-27 22:22:01 -05:00 |
|
glm94
|
95ed2143ea
|
Updated the parser to handle processing a simple load byte instruction. Added the LODB opcode to the opcode enum listing and updated the Scanner to look for 'byte' and mark it as a directive.
|
2023-03-24 23:24:24 -05:00 |
|
glm94
|
f96e1c6380
|
Added grammar checking for DB declarations.
|
2023-03-08 21:38:33 -06:00 |
|
glm94
|
4f9f4202b2
|
Wrote the first batch of directive handling code, so far just handling creating variables.
|
2023-03-08 13:25:46 -06:00 |
|
glm94
|
4230708f15
|
Added a function to remove an item from the generic list, which is mainly used for the tokens.
|
2023-03-07 21:31:14 -06:00 |
|
glm94
|
5e9e1bdec4
|
Massive refactoring to simplify this whole setup. The Token List will be modified in place and reused in the Parser to normalize the list and generate a symbols table. Normalizing the token list will make sure the syntax is valid and the symbols table will have the relative offsets and length of symbol values. At least this is all the plan but one step at a time.
|
2023-03-06 21:51:36 -06:00 |
|
glm94
|
bca2ad67f1
|
Fixed a bug with single parameter instructions that land at the end of a file expecting a comma.
|
2022-10-08 22:02:51 -05:00 |
|
glm94
|
fd44e03b1b
|
Updated the Parser to try and give 'AddressParameter's more meaning depending on the SymbolType.
|
2022-10-08 18:21:11 -05:00 |
|
glm94
|
48a77950be
|
Updated the way string symbols are handled, allowing the programmer to terminate a string with any byte or none at all.
|
2022-10-08 16:35:05 -05:00 |
|
glm94
|
8b6edc39be
|
Updated the Parser to handle the variable declaration directive.
|
2022-10-08 16:15:10 -05:00 |
|
glm94
|
c142d2c6d0
|
Cleaned up the Symbol struct and updated code accordingly.
|
2022-10-08 14:43:00 -05:00 |
|
glm94
|
4b08707e67
|
Cleaned up the list implementation so as to NOT copy items into a new buffer.
|
2022-10-07 20:46:55 +00:00 |
|
glm94
|
bdb4d2b241
|
Updated the way Instructions keep track of symbols. Only their name is important but we need the Symbols to be able to track which Instruction they point to (if they do that is, i.e. a label symbol).
|
2022-10-06 21:11:22 -05:00 |
|
glm94
|
d53833c25f
|
Added some debug print out for the instruction list and a helper function to get a string for any Registers enum.
|
2022-10-06 21:05:57 +00:00 |
|
glm94
|
f38da9cc74
|
A bit of cleanup.
|
2022-10-04 21:05:15 +00:00 |
|
glm94
|
33309a2759
|
Updated the Instruction's structure and updated the Parser accordingly.
|
2022-10-04 20:37:47 +00:00 |
|
glm94
|
1f7989533b
|
Fixed a bug in the SymbolsTable where it wouldn't update its size.
|
2022-10-03 20:11:04 -05:00 |
|
glm94
|
cd1258a724
|
Fixed various Parser bugs.
|
2022-10-03 19:58:44 -05:00 |
|
glm94
|
be91e3c112
|
Updated the parser to better handle parameters, sort of and including a string length assembly program to use as a test for the whole assembler.
|
2022-10-03 21:26:28 +00:00 |
|
glm94
|
f7cd87f13f
|
Started reworking the Parser to simplify how instructions will be represented. It will act like a 'first pass' that will do grammar checks but not verify the parameters of the opcodes.
|
2022-10-02 22:54:18 -05:00 |
|
glm94
|
0b58e0124f
|
Some refactoring to update everything to use the new structures and some new considerations for how Symbols and Instructions shoudl be represented.
|
2022-09-15 22:14:38 -05:00 |
|
glm94
|
2ae60a607c
|
Incomplete, but I want to make sure the ideas I have here don't get wiped. Sadly this commit won't compile.
|
2022-09-15 21:29:27 +00:00 |
|
glm94
|
2518214585
|
Added a length attribute to the symbol.
|
2022-09-06 14:15:45 +00:00 |
|
glm94
|
7004fff659
|
This feels like a trainwreck but eh. Changed the way the opcodes are managed. Hopefully this is the right direction when I add support for multiple ASM files.
|
2022-09-01 18:46:59 +00:00 |
|
glm94
|
13f8ff194b
|
Smoothbrain indeed...
|
2022-08-30 22:48:49 -05:00 |
|
glm94
|
dac01ffd0c
|
Changed the TokenClass from opcode to nomic, a less smoothbrain name IMO and also frees up Opcode for a better use later on.
|
2022-08-30 22:06:50 -05:00 |
|
glm94
|
3c7056c5e6
|
The main function will now write out the output of the parser.
|
2022-08-29 21:23:02 +00:00 |
|
glm94
|
6c7b8d5356
|
Fixed a bug where CMP REG, REG wouldn't get encoded and a disassembler bug related to said CMP bug.
|
2022-08-29 19:29:34 +00:00 |
|
glm94
|
5f437b6869
|
Both the assembler and the disassembler should now support all the instructions I've layed out thus far.
|
2022-08-29 18:51:48 +00:00 |
|
glm94
|
e3b4293314
|
Fixed a bug in the parser where the size of the binary was too big.
|
2022-08-29 18:02:11 +00:00 |
|
glm94
|
ae1e73e00f
|
Fixed a bug to correct the location of symbols in the heap.
|
2022-08-29 16:00:02 +00:00 |
|
glm94
|
7385a807a5
|
Created a basic binary format to help guide the disassembler.
|
2022-08-29 15:57:14 +00:00 |
|
glm94
|
0d3f8a460e
|
Added more instructions for the parser to emit and refactored the code in doing so.
|
2022-08-28 15:37:56 -05:00 |
|
glm94
|
8e9d1aefe8
|
Fixed some disassembler issues. At least some instuctions are being disassembled correctly.
|
2022-08-26 21:43:03 -05:00 |
|
glm94
|
0785f21805
|
Added a disassembler which is still very buggy. Also fixed some bugs with the opcode mask getting function.
|
2022-08-26 21:41:02 +00:00 |
|
glm94
|
e4a191a17e
|
Refined the encoding some more.
|
2022-08-26 19:00:37 +00:00 |
|
glm94
|
eb5e2c506e
|
Got the start of encoding opcodes.
|
2022-08-26 18:27:41 +00:00 |
|
glm94
|
0e53f9798f
|
Added a distinction between constant numbers and what are effectively memory addresses (i.e. strings and labels).
|
2022-08-25 19:47:16 -05:00 |
|
glm94
|
03d5660677
|
Seems I fixed the memory offset bugs, so far anyway...
|
2022-08-25 19:54:47 +00:00 |
|
glm94
|
4f6d5f652e
|
Made use of the Symbols Table, and started the proccess of determining the memory location of opcodes and variables.
|
2022-08-25 19:06:05 +00:00 |
|
glm94
|
89ab951c6a
|
Refactored the parsing code just a touch.
|
2022-08-24 21:23:14 +00:00 |
|