summaryrefslogtreecommitdiff
path: root/asmmon.h
AgeCommit message (Collapse)Author
2020-12-04- Started work on writing the new version of themrb0nk500
assembler. - Did alot of stuff in the emulator. - Did alot of stuff in the SuB Suite.
2020-11-20- Implemented support for Sux's base extension.mrb0nk500
This is the biggest milestone I've reached for this project, since the base extension changes alot about what Sux can do by default, and now makes it a viable instruction set for modern day use, when compared with other instruction sets.
2020-09-24- Fixed some more bugs with struct, and union handling.mrb0nk500
2020-09-21- Fixed some issues with how structs, and unions weremrb0nk500
handled. - Added a function called fix_symtree(), which when called. will rearrange the symbol tree based on the order they're declared in by the token stream. The reason I wrote this, was to make sure the symbol tree could be printed correctly. - Optimized print_symtree() to now use tail recursion. - Started adding all of the SuB Suite's structs.
2020-09-18- Added support for structs, and unions to themrb0nk500
emulator's assembler. - Make the symbol table a doublely linked list, in both ways. - Optimized the memcopy() function. - Changed the benchmark timing, to now use a timer, and stops once the timer reaches zero. When the timer hits zero, it sends SIGALRM to the main function, which tells the emulator that the benchmark is done.
2020-08-17- Fixed some bugs in the emulator's assembler.mrb0nk500
- Simplified the effective address functions. - Made SuBEditor a bit faster. - JSR, and RTS now support using the RS prefix, which is used to specify the return address size, with an RS prefix of 0 being a return address size of 64 bits, rather than 8 bits.
2020-08-11- Changed the spacing format to now store the number ofmrb0nk500
spaces, and tabs before the current token. Along with also now storing a sub-token count which is used in case the token's secondary id is meant to be treated as a sub-token. - Added suppor for saving the number of blank lines before the current tokenized line.
2020-08-09Added the bitwise OR, left shift, and right shiftmrb0nk500
expressions to the emulator's assembler.
2020-08-08- Refactored the opcode table, in order to make themrb0nk500
instruction formatting simpler. - Refactored the instruction table of the emulator's assembler, it now has two parts, the addressing mode bits, and the base value. The base value is what's used to generate the actual opcode, with the addressing mode bits telling the assembler what addressing modes this instruction supports. The reason for doing this was to use less space. For comparison, the previous version used 870 bytes for the instruction table, while the new version uses only 222 bytes. The new version is nearly 4 times smaller than the pervious version. - The B register based ALU instructions now use their own addressing mode, and are specified by using 'b' as the operand for those instructions. For example, to add the Accumulator with the B register, you now use "ADC B" instead of "AAB".
2020-08-08Did a ton of stuff.mrb0nk500
- Changed the file structure of the SuB Suite, so that all variable declarations, symbols, and constants are in a single file. - Moved the C library functionss into a separate file, and made them use stack frames. - Added support for using the emulator's assembler for realtime debugging, to enter it, get in to stepping mode by pressing Ctrl+s, press any other key, then press F1, The reason for having to press some other key before pressing F1 is because it only allows entering the assembler when the keyboard is not ready. - Added the ".res" directive to the emulator's assembler, the ".res" directive tells the assembler to reserve however many bytes specified by the operand. - Fixed some bugs in the emulator's assembler.
2020-07-06- Implemented a new opcode table.mrb0nk500
- Added a new preifx called the OF prefix, which adds the contents of a specific register to the current operand. - Added a table generator, which parses opcode table csv files.
2020-06-13Made the source code cleaner.mrb0nk500
2020-06-01Did some more refactoring to the assembler.mrb0nk500
- Refactored the symbol, and fixup table to now use a linked list - Added support for local symbols to the assembler. - Rewrote SuBEditor, and SuBAsm to use local symbols.
2020-05-30Fixed a typo, oof.mrb0nk500
2020-05-30Refactored the assembler a bit more, in order to removemrb0nk500
code duplication. The assembler now uses pre-tokens, which are smaller tokens, that make up the larger tokens.
2020-05-29Make JSL, JSR absolute, and remove RTL.mrb0nk500
The reason for doing this was because JSL, and RTL are redundent, as they both do the same thing as JSR, and RTS.
2020-05-28Refactored the assembler, yet again, and implementedmrb0nk500
support for comma separated values. The assembler now uses a linked list of tokenized lines, each containing a linked list of tokens for that line. I also moved all of the large tables into the higher parts of memory, in order to free up the lower part of memory for the user. Comma sepparated values only work with directives, and only with the byte", word, dword, and qword directives. I also added support for getting the upper, and lower halves of an address. The tokens for both of those are '<', and '>' respectively.
2020-05-18Fixed some more bugs in the assembler.mrb0nk500
2020-05-18Did alot of stuff while I was up at the family trailer.mrb0nk500
- Moved the large enums, and large tables into separate header files. - Added enums for implementing the base extension - Fixed a bug in the assembler. - Worked more on SuBAsm.
2020-05-09Added support for single quote marks to the emulator'smrb0nk500
assembler. Single quote marks works in the assembler just like they do in C, except that it only supports a handful of escaped characters, like '\n', and '\r'.
2020-04-27Added support for including source files to themrb0nk500
emulator's assembler. And removed three pointers, and the linewrap table from zero page, in SuBEditor. I moved the linewrap table to address $1000. And because of finally adding include support to the assembler, I can now start work on SuBAsm!
2020-04-17Made both the assembly language monitor, and themrb0nk500
emulator smaller, and faster. I am also starting to make SuBEditor's source code more readable.
2020-04-09Completely changed the assembler.mrb0nk500
It now has a lexer/tokenizer, along with a parser. I have also made the emulator even smaller.