summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-09sux.h: Fix some bugs in the interrupt bitmasks.mrb0nk500
2022-02-02sux.c, sux.h: Add code for using the new instructionmrb0nk500
handler.
2022-02-02io.c: Add include for `<time.h>`.mrb0nk500
This is used by the delay code in `get_key()`.
2022-02-02sux.h: Remove unneeded, and inaccurate cycle increments.mrb0nk500
2022-02-02io.c: Add code for delaying by some amount of time permrb0nk500
cycle.
2022-02-02sux.h, io.c: Added support for setting key timeout.mrb0nk500
2022-02-02sux.h: Added a `tick()` function.mrb0nk500
This function will increment the cycle count by one everytime it's called. Later on, this'll help simplify I/O emulation, as I've considered implementing read, write, and tick callbacks for I/O.
2022-02-02sux.h: Add third implementation of the `t()` macro.mrb0nk500
2022-02-02sux.h: Corrected some typos, and fixed some bugs inmrb0nk500
the bitmasks.
2022-01-29sux.h: Added bitmasks for updating the status flags.mrb0nk500
2022-01-29sux.h: Make `msb` non const.mrb0nk500
2022-01-24sux.h: Add bitmasks for writing registers.mrb0nk500
2022-01-24sux.h: Corrected typo in `reg2` initialization.mrb0nk500
2022-01-24sux.h: Add bitmasks for arithmetic operations.mrb0nk500
2022-01-24sux.h: Add bitmasks for register transfers.mrb0nk500
2022-01-24sux.h: Correct typos in bitmasks for registermrb0nk500
assignments, and for inverting `tmp`.
2022-01-21sux.h: Use conditional branch code for unconditionalmrb0nk500
jumps. This gets rid of some code duplication, and is also how `bra` was implemented anyway. So, might as well use it for unconditional jumps too.
2022-01-21sux.h: Add bitmask for relative addressing.mrb0nk500
2022-01-21sux.h: Add bitmasks for conditional branches.mrb0nk500
2022-01-21sux.h: Corrected typos in bitmasks that dealt withmrb0nk500
conditional branches.
2022-01-21opcode-bitmask-gen: Add relative addressing to themrb0nk500
list of addressing modes. oof, forgot about that until just now.
2022-01-21sux.h: Add bitmasks for setting/testing/clearing flags,mrb0nk500
and for bitwise operations.
2022-01-19sux.h: Add bitmask for unconditional jumps.mrb0nk500
2022-01-19sux.h: Add bitmasks for stack related operations.mrb0nk500
2022-01-19sux.h: Make `rs` non const.mrb0nk500
2022-01-19sux.h: Set program counter to interrupt vectors, whenmrb0nk500
an interrupt gets triggered. This is done in order to properly use the `read_addr()` function.
2022-01-19sux.h: Add bitmasks for writing a value to memory.mrb0nk500
2022-01-19sux.h: Corrected bitmask for `reg = &cpu->a;`.mrb0nk500
2022-01-19opcode-bitmask-gen: Fixed bug that occurred when maskingmrb0nk500
out unwanted bits when inverting the addressing mode bitmask.
2022-01-18opcode-bitmask-gen: Invert the addressing mode bitmaskmrb0nk500
after all bits have been found, if inverting is enabled.
2022-01-18Add support for getting an inverted addressing modemrb0nk500
bitmask in `opcode-bitmask-gen`.
2022-01-18Add bitmasks for operations that mogrify (overwrite)mrb0nk500
memory directly.
2022-01-18Add bitmask for instructions that use the processormrb0nk500
status register.
2022-01-18Remove `pbits` from instruction handler.mrb0nk500
2022-01-18Initialize `tmp`, and `tmp2` to `0`, rather than `-1`.mrb0nk500
2022-01-18Add the rest of the load opcodes to the other registermrb0nk500
bitmasks.
2022-01-18Add `LDA` opcodes to accumulator bitmask.mrb0nk500
2022-01-16Add bitmasks for the registers.mrb0nk500
2022-01-16Fix bug in print_mask() where it'd always use the firstmrb0nk500
instruction entry, rather than the entry of the supplied instruction id(s).
2022-01-14Consolidate reading addresses for non-indirect addressingmrb0nk500
modes into a single block.
2022-01-14Add bitmasks for indexing, and indirect addressing.mrb0nk500
2022-01-14Add bitmasks for reading data from memory, andmrb0nk500
immediate data.
2022-01-14Add bitmask for absolute addressing.mrb0nk500
2022-01-14Add a bitmask generator for the new instruction handlermrb0nk500
macro. This program will help with generating the bitmasks for the instruction handler macro.
2022-01-14Start work on new instruction handler macro.mrb0nk500
This macro will create a function for each opcode, but with only a single block of code for each one. It uses a bitmask (one bit for each opcode) that will evaluate which blocks of code are used by each opcode. The bitmask checks are (usually) evaluated at compile time, which means that each function will only have the blocks that had the bit for that opcode set in the bitmask.
2021-05-09Subtract another 16 from the size in clr_arr.HEADmastermrb0nk500
This fixes a bug where it would zero out the info of the next malloc'd block.
2021-05-09Replace call to memcpy, with call to memcpy_dir.mrb0nk500
This fixes a bug where when shifting the line left, it would overwrite everything after the cursor with the character at the cursor's position. The reason this was happening is because memcpy copies from start to end, and because the destination is more than one byte ahead of the source, it overwrites the next length source bytes, which will repeat until it's copied n bytes.
2021-05-09Add a end to start version of memcpy, and a selectablemrb0nk500
direction version of memcpy. This can help with some subroutines/functions like shftln, which need to copy data in a certain direction depending on the condition.
2021-05-09Add scr_ptr to the list of outputted addresses when inmrb0nk500
debuging mode.
2021-05-08Fixed a bug in print_char caused by not zero extendingmrb0nk500
`b`.