Known Bugs

This page will list all known bugs, whether reported by users or the ones I found myself. It goes without saying that serious bugs will be fixed as soon as possible. Other bugs are of minor importance and will usually have a way to work around the problem. Those minor bugs often don't justify a new version of the program on their own.
Nevertheless I will try to eliminate all known bugs whenever a new version of the program is released.

This means that only very serious bugs in Version 2 of the SB-Assembler will be fixed from now on, because that version is actually discontinued at the arrival of Version 3.

The good news is that Version 3 is written in Python, which means that the source code of the SB-Assembler is automatically shared with you. If you know your way around in Python you may even fix the bugs yourself. Please let me know if you have found and fixed a bug, so I can help other users with it.

Bug List For Version 3

If the status of a known bug is fixed in a newer version than is currently officially released it means that it will come soon in the next official release of the SB-Assembler. Simply drop me an email if you can't wait that long. Then I'll send you the fixed version by email.

Wrong representation of Negative numbers

Status: 2017-01-13 Fixed in version 3.02.00 of the SB-Assembler.

Negative numbers are sometimes truncated to less than the usual 8 byte resolution in the listing. And negative numbers are a bit distorted in the symbol file. E.g. -1 is shown as $000000X1, instead of $FFFFFFFF.
This bug only affected the representation of the numbers. There was nothing wrong with the actual calculations with negative numbers.

8041 and 8041A cross overlays 3.01.00: OUT versus OUTL

Status: 2017-01-12 Fixed in version 3.02.00 of the SB-Assembler (version 3.01.01 of the affected cross overlays).

A bit confusingly these processors have a new instruction OUT DBB,A, instead of the more common notation OUTL DBB,A. Before version 3.01.01 of the affected cross overlays the SB-Assembler didn't support the correct notation OUT DBB,A. Now it allows both OUT DBB,A and OUTL DBB,A.

8021 and 8022 cross overlays 3.01.00: Missing instructions

Status: 2017-01-12 Fixed in version 3.02.00 of the SB-Assembler (version 3.01.01 of the affected cross overlays).

The instructions IN A,P0 and OUTL P0,A, which are unique to these two processors, are missing. As a matter of fact they were also missing in Version 2

Z80 cross overlay 3.01.00: Memory reference (MEMORY)

Status: 2017-01-09 Fixed in version 3.02.00 of the SB-Assembler (version 3.01.01 of the Z80 cross overlay).

When the label name for a memory reference like LD (MEMORY),HL starts with the letters BC, DE, HL, IX, or IY you will get a Bad Operand error. Example: LD (DEEP),HL will trigger this bug because DEEP starts with DE.

Bug List For Version 2

Last line of source is sometimes not interpreted

The last line of a source file was not interpreted if it wasn't ended with a CR character. This is corrected in software version 2.07.

Small bug in Microchip PIC16Cxxx cross overlay

In version 2.00 of this overlay an undefined label in the first operand of bit instructions wasn't reported. This bug is now fixed in cross overlay version 2.01.

Bug in Intel Hex notation

A silly bug was found in the interpretation of the recently added Intel Hex notation. A value of 0001BH should of course be interpreted as $001B by the assembler. Due to this bug it is interpreted as a binary number %0001, followed by a meaningless "H" which caused a Bad operand error.
This bug is fixed in version 2.05 of the main assembler program.

.DB does not accept spaces

The .DB directive does not accept spaces in a string. This is of course wrong and is fixed in version 2.05.

Undefined Label Error

The directives .OR, .PH, and .RF will produce a fatal undefined label error when using a label as operand. It goes without saying that this is not the way it should be and the problem is fixed in the SB-Assembler version 2.05.

The .LF directive doesn't redirect the listing to the screen

Officially the .LF directive must close the current list file and open a new one if one is given, or redirect the listing to the screen again if no new list file is given.
But instead of redirecting the listing to the screen again it tries to open a new file with no file name. It goes without saying that this doesn't work and DOS will protest with an open error.
This bug is fixed in the SB-Assembler version 2.05.