| Age | Commit message (Collapse) | Author | 
|---|
|  | 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. | 
|  | - Made the debug print for the CPU flags more
  readable.
- Started work on implementing line number support
  into SuBAsm. | 
|  |  | 
|  | This is to allow for making the stack bigger for
  anything that needs to change the size of it.
- Made the SuB Suite set the stack pointer to the end
  of the usable RAM, and allow for changing the stack
  size.
  In this case, the size of the stack is currently set
  to 192K, with the end of the heap being just below
  the stack. | 
|  | implementation of free(), although it's commented
  out.
- Removed the sbc() function from the emulator, since
  sbc can be done by just inverting the second operand
  of adc. | 
|  | emulator's memory.
  All reads outside of the emulator's memory give back
  $/0xFF bytes, while all writes outside of the
  emulator's memory are ignored.
- Implemented malloc(), and free() in the SuB Suite.
  In order to do this, I had to add support for a heap,
  which I did by reserving the first 3 banks of the
  address space (the first 192K), and by adding a
  routine that finds the end of the RAM.
  In this case, I set the starting address for the
  routine at bank 3 (bank 4 with one indexing), but,
  the routine's starting address isn't hardcoded, and
  thus, any starting address can be passed as an
  argument.
  The routine uses the fact that we can now read/write
  outside the emulator's memory, and also uses the
  fact that writing outside the emulator's memory will
  be ignored, and that reading outside the emulator's
  memory will always read $/0xFF bytes, and uses that
  to signal that it's reached the end of the RAM.
- Added a test program for getting the size of RAM
  starting at address $/0x20000. | 
|  |  | 
|  | 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. | 
|  | - Optimized the memory read, and write functions.
- Made the emulator faster, and cleaner in general. | 
|  | - 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. | 
|  | It now uses a struct to store the escape sequence.
  Before it handles the escape sequence, it parses it,
  which includes things like getting any arguments
  that are supplied, and getting the mode type.
- Moved the code that handles control codes to a
  separate function.
The reason for doing this was because I wanted to make
the escape sequence handling faster, but also make the
code more readable at the same time.
I got the idea to do this from st, a terminal emulator
created by the suckless.org project. | 
|  | expressions to the emulator's assembler. | 
|  | 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". | 
|  | - 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. | 
|  | - 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. | 
|  | - Fixed some bugs in the emulator's assembler.
- Worked on SuBAsm's lexer some more.
- Created a new directory for the SuB suite, and moved
  all of the SuB suite's files in there. |