| # SDLTRS ## Known Bugs Introduction | Features | Options | Text GUI | Known Bugs | Release History | Credits

### Bugs and limitations

The emulated serial port's modem status and control signals are not tied to the signals on the real serial port, because the real signals are not available to software through the Unix tty device interface. The ability to check for parity, framing, and overrun errors and receive an interrupt when one occurs is not emulated. Unix does not support 2000, 3600, or 7200 baud, so these TRS-80 data rates are remapped to 38400, 57600, and 115200 baud respectively.

Some features of the floppy disk controller are not currently emulated: Force Interrupt with condition bits 0x01, 0x02, or 0x04 is not implemented. Read Track is implemented only for DMK emulated floppies. The multiple-sector flags in Read and Write are not implemented. The timing of returned sectors is emulated only for the Read Address command, and not very accurately for JV1 or JV3. If a disk has more than one sector with the same number on a track, SDLTRS will always see the first (counting from the index hole) when reading or writing; a real machine would see the next one to come under the head depending on the current rotational position of the disk. Partially reformatting a track (which TRS-80 programs like HyperZap and Model I Super Utility do to achieve mixed density) is supported for DMK but not JV3; however, switching densities while formatting (which Model III and 4 Super Utility do) works on both DMK and JV3.

Real physical floppy disks are supported only under Linux, because the other OS's does not define a portable interface to the low-level floppy controller functionality that SDLTRS needs, or support the floppy controllers themselves. There are some limitations even under Linux: Index holes are faked, not detected on the real disk, and the timing of returned sectors is not emulated at all. Due to the limitations of PC-style floppy disk controllers, when formatting a physical floppy under SDLTRS, you cannot mix sectors of different sizes on the same track, switch densities in the middle of a track, or reformat only part of a track. However, SDLTRS can read and write to physical floppies that have already been formatted in these ways (perhaps by a real TRS-80).

The extended JV3 limit of 5802 sectors is somewhat arbitrary. It could be raised by generalizing the code to permit more than two blocks of 2901, but this does not seem too useful. 5802 sectors is already enough for a 3.5-inch HD (1.44MB) floppy, which the TRS-80 didn't support anyway. If you need more space, use emulated hard drives instead of emulated floppies with huge numbers of tracks.

XTRSHARD/DCT ignores the internal write-protected flag in hard drive images, but a hard drive image can still be effectively write protected by turning off its Unix write permission bits.

The emulator uses a heuristic to decide what format a ROM file is in. If a raw binary ROM image starts with 0x01, 0x05, or 0x22, it can be misidentified as being in a different format. This is rather unlikely to occur, as ROMs typically begin with 0xF3, the DI instruction.

If you discover other bugs, write fixes for any of these, or make any other enhancements, please let us know so that we can incorporate the changes into future releases.