<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cisc-0.2/test, branch master</title>
<subtitle>An emulator for the Sux instruction set.</subtitle>
<id>https://git.b0nk.xyz/cisc-0.2.git/atom?h=master</id>
<link rel='self' href='https://git.b0nk.xyz/cisc-0.2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/'/>
<updated>2021-02-25T17:43:11Z</updated>
<entry>
<title>- Implemented the multiply expression into the assembler.</title>
<updated>2021-02-25T17:43:11Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2021-02-25T17:43:11Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=35a18609864470b3dc49f3a9a6cb6ec93e57300d'/>
<id>urn:sha1:35a18609864470b3dc49f3a9a6cb6ec93e57300d</id>
<content type='text'>
- Implemented support for the SIB addressing mode into
  the assembler.

  SIB is short for "Scale Index, and Base", and works
  much like x86's version of SIB (scale*index+base),
  although my version supports any scale value between
  1, and 256.

- Redid the line shifting routine in SuBEditor.

  It now uses memcpy, and memset to do that, and also
  supports shifting the line left, or right by any
  number of characters.
</content>
</entry>
<entry>
<title>- Reverted back one commit before the previous commit.</title>
<updated>2021-02-13T18:59:48Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2021-02-13T18:59:48Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=8d7f27d9a0b61d3694a62f3e54be885d8073f02b'/>
<id>urn:sha1:8d7f27d9a0b61d3694a62f3e54be885d8073f02b</id>
<content type='text'>
  This is because the previous commit actually created
  a bug, rather than fixing one.

- Added JMP, and JSR to the ortho extension, and
  implemented them both in the assembler, and
  emulator.
</content>
</entry>
<entry>
<title>- Fixed some bugs in the emulator.</title>
<updated>2021-01-27T18:42:57Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2021-01-27T18:42:57Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=cd6982e5da1f5facdc1e0154b3a27c01e8b076c9'/>
<id>urn:sha1:cd6982e5da1f5facdc1e0154b3a27c01e8b076c9</id>
<content type='text'>
- Started work on implementing the Super VIA emulation.
- Added support for disabling disassembly per
  instruction, when in debug mode.
- Did some more work on rewriting the SuB Suite to
  work with the new calling convention.
- Rewrote the symbol handling code in the emulator's
  assembler, to make it both simpler, and to add
  support for arbitrarily deep symbol scopes.
- Added support for arbitrarily deep local symbol
  scopes.

  For example, to declare a symbol of depth 2, you add
  two '@' characters to the start of the symbol name.

  In other words, the number of '@' characters before
  the symbol name is what determines the scope of that
  symbol.

  And to use a symbol thats outside the current
  scope, you would use the same syntax as using a
  struct member, so you would do `global.local`.
</content>
</entry>
<entry>
<title>- Implemented support for the `set` instruction in the</title>
<updated>2020-12-09T16:28:59Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-12-09T16:28:59Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=b1cf9d8a524edab9363bb53c0fd70457a8bdbd76'/>
<id>urn:sha1:b1cf9d8a524edab9363bb53c0fd70457a8bdbd76</id>
<content type='text'>
  assembler.

  The main thing I had to do was implement the parsing
  of the condition code token, but that wasn't hard to
  do, since I had already done the lexing part already.

  The next thing to do, will be to design a calling
  convention for Sux.
</content>
</entry>
<entry>
<title>- Fixed yet another bug with the ortho extension.</title>
<updated>2020-12-08T22:56:02Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-12-08T22:56:02Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=464130cf4b19578f45fc51a6a37453261bdf37f9'/>
<id>urn:sha1:464130cf4b19578f45fc51a6a37453261bdf37f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>- Implemented support for the Orthogonal extension into</title>
<updated>2020-12-08T15:42:10Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-12-08T15:42:10Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=a769f65a13db5546e427989d85f9646303f4fa32'/>
<id>urn:sha1:a769f65a13db5546e427989d85f9646303f4fa32</id>
<content type='text'>
  both the assembler, and the emulator.

  I finally figured out how I could get support for the
  Ortho extension implemented into the old assembler.

  The only reason for doing this, is to buy me some
  while I start work on the new assembler, and to help
  me get an idea for how to do the same in the new
  assembler.
</content>
</entry>
<entry>
<title>- Implemented support for Sux's base extension.</title>
<updated>2020-11-20T20:10:24Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-11-20T20:10:24Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=83ce1151ee1f06ae6b1c5c1018cc2489494e5ea4'/>
<id>urn:sha1:83ce1151ee1f06ae6b1c5c1018cc2489494e5ea4</id>
<content type='text'>
  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.
</content>
</entry>
<entry>
<title>- Made the stack pointer 64 bit, rather than 16 bit.</title>
<updated>2020-10-06T12:02:23Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-10-06T12:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=8aa8586b03568d3a3d6eba39269a1b79510bc835'/>
<id>urn:sha1:8aa8586b03568d3a3d6eba39269a1b79510bc835</id>
<content type='text'>
  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.
</content>
</entry>
<entry>
<title>- Fixed the rotate instructions.</title>
<updated>2020-10-05T15:15:21Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-10-05T15:15:21Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=8c880c339000010260a927c3a0f28f9049b8a0b8'/>
<id>urn:sha1:8c880c339000010260a927c3a0f28f9049b8a0b8</id>
<content type='text'>
  The carry flag is now set properly, and the rotation
  now is set properly by the carry flag, even for
  shift values greater than one.

- Added a test program for properly testing the rotate
  instructions.
</content>
</entry>
<entry>
<title>- Added support for reading, and writing outside the</title>
<updated>2020-10-04T22:22:00Z</updated>
<author>
<name>mrb0nk500</name>
<email>b0nk@b0nk.xyz</email>
</author>
<published>2020-10-04T22:22:00Z</published>
<link rel='alternate' type='text/html' href='https://git.b0nk.xyz/cisc-0.2.git/commit/?id=ca8e2f93acc794b00464c5513956bd84de258913'/>
<id>urn:sha1:ca8e2f93acc794b00464c5513956bd84de258913</id>
<content type='text'>
  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.
</content>
</entry>
</feed>
