Skip to content

Releases: Kroc/v80

v80: v0.1.3

01 Jul 13:04
Compare
Choose a tag to compare

In a spectacular case of not seeing the woods for the trees, the expression parser wasn't evaluating anything more than a single operator and ignoring the rest of the expression. Unary operators were also not working due to expected registers changing at some point.

v80 now assembles itself byte-for-byte compared to the WLA-DX version meaning there should be no more surprise bug-fix releases, and a v80 version of v80 will be coming with v1.0!

v80: v0.1.2

01 Jul 08:56
Compare
Choose a tag to compare
  • Square brackets allowed as alternatives to parenthesis

Many fixes realised whilst working on v80 assembling itself:

  • Expression parsing was sometimes returning carry-set if not deferred
  • Multiplication was straight-up broken!
  • Decimals not being recognised in .b / .w lists
  • 2nd pass not reporting the correct line/col number for errors

v80: v0.1.1

30 Jun 17:17
Compare
Choose a tag to compare

Sorry, a bug fix for defining labels after setting the program-counter with an expression.

Feature-wise, v80 has enough to begin converting v80's code to v80 so it can self-assemble, and doing this showed up this bug in the release.

v80: v0.1

30 Jun 14:56
Compare
Choose a tag to compare

I've added so much over the last two days that v80 should feel much more like other z80 assemblers without being too restricting. There's decimal numbers, binary literals, character literals, a fill keyword and local labels to minimise the pain of every label having to be unique even if we don't have anonymous labels. All this and the binary is still under 8 KB.

v80: v0

27 Jun 13:33
Compare
Choose a tag to compare

This is v80's first release, version 0. Why version 0? Because v80 cannot yet assemble itself (that will come with version 1), it still depends upon a PC for first assembly which makes it hypocritical for its given goals of removing PC dependency from 8-bit software. However, what is delivered to you in this release is still a native Z80 CP/M executable so everything you assemble with it, even on PC, will be reproducible with 8-bit hardware.

The release package (v80.0.0.zip) contains the v80 assembler, documentation and NTVCM Windows executable to run v80 on PC. Compiling NTVCM yourself will allow using v80 on Mac, Linux and other UNIX-likes. You may also run it on any other Z80 CP/M simulator such as RunCPM or emulated 1980's system such as CPM Box, MAME etc. If you think you could write a C version of v80, please consider helping out, as it would remove this extra step of running v80.

That said, if you want to learn some Z80 assembly code, consider downloading the source code / cloning the repo, as v80 itself is written in very heavily commented Z80 assembler. It has been meticulously constructed over a period of six months and I sweated over every routine to be clean, compact and efficient as possible. It is the toughest 8 KB I've pieced together and nobody would write software this way for work; consider it a rare learning material free of all sane constraints on software productivity.