I want my program to start at address $8000, but my Eprom Programmer expects the ROM code to start at address $0000.
How do I put the reset and interrupt vectors at the end of memory?
You can safely use the .NO directive to point to the beginning of the vector space.
I get only empty binary or Hex files
Binary and plain Hex files are so called unformatted files, which means that they do not contain any other information than the bytes of your code.
This means that there is no address field on each line, nor is there a byte count or checksum available.
As from software version 2.07 this behaviour has been improved. It is now allowed to start an unformatted file first and then specify the .OR address, but only if the target file is still empty!
I'm trying to send the object file directly to the COM port, but I get an error that looks like "Write fault error writing device COM1"
This is an error message produced by MS-DOS (or the DOS box in Windows), complaining that the communication with the COM port has failed.
Please press the a to abort.
You can solve this problem by connecting the signals RTS to CTS and DTR to DSR on the computer's COM port. On a 9-pin D-connector you should connect the pins 7 and 8 together and the pins 4 and 6 together. After this small modification to the cable it should work.
I try to assemble a file intended for a different assembler and get many error messages.
Remember that directives are named differently in the SB-Assembler ( .XX ) and probably require different parameters or parameter syntax.
I want to create a software library. How do I do that?
The SB-Assembler doesn't have library features, but can handle libraries with a little trick. Define your library routines as separate Macros stored in one or more include files. Include the include files in your main source file. Call only the required Macros to insert the routines you need in your project. You can use Macro parameters to adapt I/O addresses and memory usage.
How can I use the high byte of a word only?
This function is most often needed with immediate addressing mode. The SB-Assembler knows 4 special symbols to select the byte you want to use from a 32 bit value. Other assemblers may use the keyword LOW or HIGH to select between lower and upper byte of a word.
How do I locate errors
Every time the SB-Assembler encounters an error it will beep and list the line containing the error.
But if you have a longer program and a fast computer there is hardly any time to see those errors.