Age | Commit message (Collapse) | Author |
|
- 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.
|
|
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'.
|
|
emulator some more.
I optimized the emulator by replacing the main loop
from a conditional while loop, to an unconditional for
loop.
|
|
emulator smaller, and faster.
I am also starting to make SuBEditor's source code
more readable.
|
|
It now has a lexer/tokenizer, along with a parser.
I have also made the emulator even smaller.
|
|
|
|
efficient, and ported SuBEditor to C.
I revamped the opcode table to add another prefix bit
for the addressing mode, finally giving access to all
addresses, without wasting any bytes.
I made the stack based operations more efficient, by
sort of applying Duff's device to it.
And I ported SuBEditor to C, to make it easier for me
to figure out how to implement SuBAsm.
|
|
Which I am now calling, SuBEditor.
|
|
I also added a new input testing program called
input-3.s, which contains a mostly working editor.
|
|
We're now Free Software!!!
|
|
for use of the B register as an operand, for ALU based
instructions.
This allows for both low code size, and high
performance.
This means we can save upto 9 bytes, by just using
the B register for ALU operations, rather than using a
memory address.
The indirect addressing modes, give Sux the abillity
to now use pointers.
Hope you guys have a Merry Christmas!
From mr b0nk 500 <b0nk@b0nk.xyz>
|
|
monitor, and the cursor movement routines for SuBAsm.
|
|
remainder during a DIV instruction.
I also added the TAB, and TBA instructions, for
transfering between the Accumulator, and the
B register.
|
|
Also added support for moving the cursor arround.
|
|
It now does not use an interrupt, although, in the
emulator, it does act like an interrupt, when the
keypoll macro is set to 0.
|
|
I also added the WAI instruction, which puts the thread
that executed it, into a catatonic stat, where it can't
do anything, until an interrupt occurs.
I will be starting work on GFsuX next.
I also might start work on SuBAsm, the
Sux Bootstrapping Assembler.
|
|
the suffix.
I added this because BieHDC said the already existing
notation glowed in the dark too much.
|
|
I also added the ASR instruction, for doing arithmetic
shifts, and have added a hello world program.
|
|
AKA, referencing a label before it has been declared
yet.
|
|
monitor.
I also rewrote the fibonacci program to include lables.
|
|
between the three main registers.
These instructions are:
TAY: Transfer Accumulator to Y.
TAX: Transfer Accumulator to X.
TYX: Transfer Y to X.
TYA: Transfer Y to Accumulator.
TXA: Transfer X to Accumulator.
TXY: Transfer X to Y.
|
|
from it into sux.c.
|
|
I have also added a program that computes the
Fibonacci sequence that I wrote in Sux assembly.
|
|
|
|
Any instructions that either have a register size of
8 bits, use implied addressing, or branch can save a
byte by disabling the prefix byte.
It does this by checking if the first three bits are
all set to 1.
If true, then it will treat it as a prefix
byte, otherwise, it will treat it as an opcode.
|
|
Added a prefix byte to tell the CPU certain
information such as, how many bytes to load into the
registers, or what ISA extension we want to use.
I also added an assembly language monitor, so that I
don't have to write stuff in machine code.
|