diff -u xtrs-4.9c/debian/changelog xtrs-4.9c/debian/changelog --- xtrs-4.9c/debian/changelog +++ xtrs-4.9c/debian/changelog @@ -1,3 +1,25 @@ +xtrs (4.9c-3.5ubuntu1) xenial; urgency=medium + + * Merge from Debian unstable (LP: #1508289). Remaining changes: + - {debug,dis}.c: fix instances of "format not a string literal and no + format arguments" to fix build failure. + - Makefile: Remove -DHAVE_SIGIO to stop hangs on startup. + - trs_disk.c: Override unchecked usages of ftruncate, fwrite, and fread, as + there is no error checking on any other function around there. + - mkdisk.c: Handle errors from fwrite. + - trs_xinterface.c: Fix unused result warning and ignored retval error, + resolving FTBFS. + + -- Logan Rosen Sat, 24 Oct 2015 03:01:58 -0400 + +xtrs (4.9c-3.5) unstable; urgency=medium + + * Non-maintainer upload. + * Fix function declare: type of 'state' defaults to 'int' + [-Werror=implicit-int] (Closes: #798765) + + -- YunQiang Su Mon, 19 Oct 2015 01:22:15 +0800 + xtrs (4.9c-3.4ubuntu1) utopic; urgency=medium * Merge from Debian unstable. Remaining changes: @@ -676,2 +698,4 @@ +# $Id: changelog 120 2008-05-12 06:38:58Z branden $ +# vim:set ai et sw=2 ts=2 tw=78: diff -u xtrs-4.9c/trs_disk.c xtrs-4.9c/trs_disk.c --- xtrs-4.9c/trs_disk.c +++ xtrs-4.9c/trs_disk.c @@ -3124,7 +3124,7 @@ } void -real_restore(curdrive) +real_restore(int curdrive) { #if __linux DiskState *d = &disk[curdrive]; only in patch2: unchanged: --- xtrs-4.9c.orig/cassette.txt +++ xtrs-4.9c/cassette.txt @@ -1,18 +1,16 @@ -cassette(1) cassette(1) +cassette(1) General Commands Manual cassette(1) - - -Name +Name cassette - data cassette image manipulator for xtrs TRS-80 emulator -Syntax - cassette +Syntax + cassette -Description - To control the emulated cassette used by xtrs, a file called ".cas- +Description + To control the emulated cassette used by xtrs, a file called ".cas- sette.ctl" in the current directory keeps track of what file is cur- rently "loaded" as the cassette tape and the current position within - that file. The cassette shell script provides a way to manipulate this + that file. The cassette shell script provides a way to manipulate this file; typing "help" at its prompt shows its commands. You may use this script to load and position cassette tape files. The operation works very much like an actual tape recorder. @@ -20,90 +18,82 @@ This manual page also describes the image formats that the emulator supports and their limitations. - In this release, two cassette programs are supplied. The original cas- - sette is a C-shell script; it should work with most versions of - /bin/csh. If you do not have /bin/csh installed, you can use cas- - sette.sh, which is a Bourne shell script. It requires a modern version - of the Bourne shell that supports user-defined functions, so it may not - work on older Unix systems. - - -Commands - pos generates a status message including the filename being used as the +Commands + pos generates a status message including the filename being used as the cassette image and the current position within the image, in bytes. - load [filename] changes the cassette image currently being used to the + load [filename] changes the cassette image currently being used to the file specified, and resets the position counter to zero. - type typename tells the emulator what type of image is loaded. Usually - this is detected from the file extension, but you can override the - detected value with this command. The supported types are listed in + type typename tells the emulator what type of image is loaded. Usually + this is detected from the file extension, but you can override the + detected value with this command. The supported types are listed in the next section. - rew [position] changes the position counter to the position specified. + rew [position] changes the position counter to the position specified. If no position is given, the counter is reset to zero. - ff [position] changes the position counter to the position specified. + ff [position] changes the position counter to the position specified. If no position is given, the counter is set to the end of the file. - quit exits the cassette shell script. + quit exits the cassette shell script. -Types - xtrs supports several different types of cassette images, each of which +Types + xtrs supports several different types of cassette images, each of which represents cassette data in a different format. - cas format is fairly compact and is compatible with other TRS-80 emula- + cas format is fairly compact and is compatible with other TRS-80 emula- tors that have cassette support. This format represents the bit stream - that (the emulator thinks) the TRS-80 cassette routines were trying to + that (the emulator thinks) the TRS-80 cassette routines were trying to save to the tape, not the actual electrical signals on the tape. - On writing, the emulator monitors the values that the TRS-80 software - is sending to the cassette port and their timing, auto-recognizes - whether a 250-bps, 500-bps, or 1500-bps format is being written, - decodes the signals into a string of 0 and 1 bits, packs the bits into + On writing, the emulator monitors the values that the TRS-80 software + is sending to the cassette port and their timing, auto-recognizes + whether a 250-bps, 500-bps, or 1500-bps format is being written, + decodes the signals into a string of 0 and 1 bits, packs the bits into bytes, and writes them to the cas file. On reading, the emulator auto- detects whether software is trying to read at 250, 500, or 1500 bps and - encodes the 0's and 1's back into the signals that the TRS-80 software - is expecting. This somewhat roundabout method should work with most - TRS-80 cassette routines that read and write signals compatible with - the ROM cassette routines, but it may fail with custom routines that + encodes the 0's and 1's back into the signals that the TRS-80 software + is expecting. This somewhat roundabout method should work with most + TRS-80 cassette routines that read and write signals compatible with + the ROM cassette routines, but it may fail with custom routines that are too different. - Note that generally nothing useful will happen if you try to write a - cas image at one speed and read it at another. There are differences + Note that generally nothing useful will happen if you try to write a + cas image at one speed and read it at another. There are differences in the actual bit streams that standard TRS-80 software records at each - of the three different speeds, not just differences in encoding the - electrical signals on the tape. Thus an incoming bit stream that was - originally recorded at one speed will not be understood when read back - in at a different speed. For example, Level 2 Basic programs are tok- - enized, while Level 1 Basic programs are not, and the two Basic imple- + of the three different speeds, not just differences in encoding the + electrical signals on the tape. Thus an incoming bit stream that was + originally recorded at one speed will not be understood when read back + in at a different speed. For example, Level 2 Basic programs are tok- + enized, while Level 1 Basic programs are not, and the two Basic imple- mentations record different binary information at the start of the pro- - gram and between lines. Also, when a file is saved at 1500 bps, stan- - dard TRS-80 software puts an extra 0 bit after every 8 data bits, and + gram and between lines. Also, when a file is saved at 1500 bps, stan- + dard TRS-80 software puts an extra 0 bit after every 8 data bits, and these extra bits are packed into the cas file along with the data bits. - cpt format (for "cassette pulse train") encodes the exact values and + cpt format (for "cassette pulse train") encodes the exact values and timing of the signals that the TRS-80 cassette routine sends to the cassette output port to be recorded on the tape. Timing is to the nearest microsecond. This format emulates a perfect, noise-free cas- sette, so any cassette routines that even halfway worked on real hard- ware should work with it. - wav format is a standard sound file format. The wav format is interme- + wav format is a standard sound file format. The wav format is interme- diate in emulation accuracy between cas and cpt. It does represent actual signals, not decoded bits, but its timing precision is limited by the sample rate used. The default rate for new wav files is 44,100 Hz; you can change this with the -samplerate command line option to - xtrs. + xtrs. - You can play wav files written by xtrs through your sound card and hear + You can play wav files written by xtrs through your sound card and hear roughly what a real TRS-80 cassette sounds like. A real TRS-80 should - be able to read wav files written by xtrs if you copy them to a cas- + be able to read wav files written by xtrs if you copy them to a cas- sette or connect the TRS-80 directly to the sound card's output. This feature has not been tested extensively, but it does seem to work, at least for short programs. - xtrs can also read wav files. It can read back the wav files that it + xtrs can also read wav files. It can read back the wav files that it writes without error. Reading wav files sampled from real cassettes is more difficult because of the noise introduced, but in brief testing it does seem to work. The signal processing algorithms used are very @@ -118,27 +108,24 @@ header xtrs rejects, try using sox(1) to convert it to a more vanilla format. - direct format is similar to wav format, except that the samples go to + direct format is similar to wav format, except that the samples go to (or come from) your sound card directly, not a wav file. Direct format requires the Open Sound System /dev/dsp device. Extending the code to work with other sound interfaces would probably not be hard, but is left as an exercise for the reader. Please send me the changes if you do this. - debug format is the same as cpt format except that the data is written + debug format is the same as cpt format except that the data is written in human-readable ASCII. The cassette output is assumed to be 0 ini- tially. Each line of output gives a new value (0, 1, or 2), and the amount of time (in microseconds) to wait before changing the output to this value. - -Authors - xtrs 1.0 was written by David Gingold and Alec Wolman. The current +Authors + xtrs 1.0 was written by David Gingold and Alec Wolman. The current version was revised and much extended by Timothy Mann (see http://tim- mann.org/). An initial version of this man page, and the translation from C-shell (cassette) to Bourne shell (cassette.sh), are due to Bran- den Robinson. - - cassette(1) only in patch2: unchanged: --- xtrs-4.9c.orig/trs_memory.c +++ xtrs-4.9c/trs_memory.c @@ -149,7 +149,7 @@ memory_map = which + (trs_model << 4) + (romin << 2); } -void mem_romin(state) +extern void mem_romin(int state) { romin = (state & 1); memory_map = (memory_map & ~4) + (romin << 2); only in patch2: unchanged: --- xtrs-4.9c.orig/trs_printer.c +++ xtrs-4.9c/trs_printer.c @@ -16,7 +16,7 @@ #include "z80.h" #include "trs.h" -void trs_printer_write(value) +extern void trs_printer_write(int value) { if(value == 0x0D) { only in patch2: unchanged: --- xtrs-4.9c.orig/xtrs.txt +++ xtrs-4.9c/xtrs.txt @@ -1,4 +1,4 @@ -xtrs(1) xtrs(1) +xtrs(1) General Commands Manual xtrs(1) Name xtrs - TRS-80 Model I/III/4/4P emulator for the X Window System @@ -69,391 +69,394 @@ nals a disk change in the emulated floppy drives (see below). F8 exits the program. F9 enters the debugger (zbx). F10 is the reset button. - In Model III, 4, and 4P modes, the left and right shift keys are dis- - tinct; in Model I mode, they are the same. The PageUp and PageDown - keys always activate the positions that correspond to the Model - III/4/4P left and right shift keys (address bit 7, data bits 0 and 1 - respectively), even in Model I mode. The End key activates an unused + F11 (or Shift+F1 on some systems) toggles an overlay window which sum- + marizes the above information. + + In Model III, 4, and 4P modes, the left and right shift keys are dis- + tinct; in Model I mode, they are the same. The PageUp and PageDown + keys always activate the positions that correspond to the Model + III/4/4P left and right shift keys (address bit 7, data bits 0 and 1 + respectively), even in Model I mode. The End key activates an unused position in the keyboard matrix (address bit 7, data bit 7). - The keys [, \, ], ^, , {, |, }, and ~ also activate unused positions - in the keyboard matrix (address bit 3, data bits 3-7). With many - TRS-80 keyboard drivers, these keys map to the corresponding ASCII - characters; with others, they do nothing. In some cases you may find - the shift state is reversed from what it should be; if you press [ but - { is displayed instead (etc.), see the -shiftbracket and -noshift- - bracket options below to correct the problem. The Insert key maps to - the same position as underscore (address bit 3, data bit 7), so that - this key can be used both with and without shift pressed; with many + The keys [, \, ], ^, , {, |, }, and ~ also activate unused positions + in the keyboard matrix (address bit 3, data bits 3-7). With many + TRS-80 keyboard drivers, these keys map to the corresponding ASCII + characters; with others, they do nothing. In some cases you may find + the shift state is reversed from what it should be; if you press [ but + { is displayed instead (etc.), see the -shiftbracket and -noshift- + bracket options below to correct the problem. The Insert key maps to + the same position as underscore (address bit 3, data bit 7), so that + this key can be used both with and without shift pressed; with many TRS-80 keyboard drivers one of these maps to ASCII code 0x7f. - On a German keyboard, the umlaut and "ess-tsett" keys should activate + On a German keyboard, the umlaut and "ess-tsett" keys should activate the corresponding characters used in the GENIE, a German Model I clone. - This feature is most useful together with the "-charset genie" command + This feature is most useful together with the "-charset genie" command line argument. - Pressing a key on a PC numeric keypad with NumLock disengaged emulates - the Alpha Products joystick. Keys 2, 4, 6, 8 (KP Down, KP Left, - KP Right, KP Up) are the main directions; keys 1, 3, 7, and 9 (KP End, + Pressing a key on a PC numeric keypad with NumLock disengaged emulates + the Alpha Products joystick. Keys 2, 4, 6, 8 (KP Down, KP Left, + KP Right, KP Up) are the main directions; keys 1, 3, 7, and 9 (KP End, KP Page Down, KP Home, KP Page Up) work as diagonal directions by acti- - vating two main directions at once; and key 0 (KP Insert) or 5 - (KP Begin) is the fire button. Note that your X server may default to - sending digits for the keys on the numeric pad even if NumLock is not - pressed. If you have this problem, you can use the xmodmap program to + vating two main directions at once; and key 0 (KP Insert) or 5 + (KP Begin) is the fire button. Note that your X server may default to + sending digits for the keys on the numeric pad even if NumLock is not + pressed. If you have this problem, you can use the xmodmap program to remap your numeric pad, and use the xev program to debug it. Emulated cassette - To control the emulated cassette, a file called ".cassette.ctl" in the - current directory keeps track of what file is currently loaded as the - cassette tape and the current position within that file. The cas- - sette(1) shell script provides a way to manipulate this file. You may - use this script to load and position cassette tape files. The opera- - tion works very much like an actual tape recorder. See the cassette - man page for more information about the cassette shell script and the + To control the emulated cassette, a file called ".cassette.ctl" in the + current directory keeps track of what file is currently loaded as the + cassette tape and the current position within that file. The cas- + sette(1) shell script provides a way to manipulate this file. You may + use this script to load and position cassette tape files. The opera- + tion works very much like an actual tape recorder. See the cassette + man page for more information about the cassette shell script and the cassette file formats that are supported. Printer - For printer support, any text sent to the TRS-80's printer (using + For printer support, any text sent to the TRS-80's printer (using LPRINT or LLIST, for example) is sent to the standard output. Emulated floppy disks - In Model I mode, xtrs emulates a Radio Shack Expansion Interface with - the Percom Doubler or Radio Shack Doubler installed. The Doubler pro- - vides double-density disk access by allowing either the stock WD1771 - FDC chip or a WD1791 chip to be selected under program control. At - powerup the 1771 is selected, so operating systems with no Doubler - driver see a stock system. By default, the emulator pretends to be - both a Percom and Radio Shack Doubler at the same time -- it responds - to the special commands of both -- so a driver for either should work. - Under LDOS, use the command "FDUBL" (newer versions of LDOS), or - "PDUBL" or "RDUBL" (older versions) to install the driver. Software + In Model I mode, xtrs emulates a Radio Shack Expansion Interface with + the Percom Doubler or Radio Shack Doubler installed. The Doubler pro- + vides double-density disk access by allowing either the stock WD1771 + FDC chip or a WD1791 chip to be selected under program control. At + powerup the 1771 is selected, so operating systems with no Doubler + driver see a stock system. By default, the emulator pretends to be + both a Percom and Radio Shack Doubler at the same time -- it responds + to the special commands of both -- so a driver for either should work. + Under LDOS, use the command "FDUBL" (newer versions of LDOS), or + "PDUBL" or "RDUBL" (older versions) to install the driver. Software that tries to detect which doubler you have (such as Super Utility) may be confused by the emulation of both at once, so you can choose to emu- late only one with a command line option; see below. In Model III, 4, or 4P mode, xtrs emulates the stock floppy controller, - which uses a WD1793 chip (software-compatible with the WD1791) to pro- + which uses a WD1793 chip (software-compatible with the WD1791) to pro- vide both single and double density. - Four 5.25-inch floppy drives are emulated, with storage in files named - diskM-U, where M is the TRS-80 model (1, 3, 4, or 4p) and U is the - drive unit number (0, 1, 2, or 3). If a file of the required name is - not found, a drive with no disk in it is emulated (but see below). If - the user does not have write permission for a floppy file, and/or the - file has an internal write protect flag set, a write-protect tab is - emulated. Use the mkdisk(1) program to turn the write protect flag on - or off. To change floppies in an emulated drive, rename the existing - file for the drive (if any), rename the new floppy file to the proper + Four 5.25-inch floppy drives are emulated, with storage in files named + diskM-U, where M is the TRS-80 model (1, 3, 4, or 4p) and U is the + drive unit number (0, 1, 2, or 3). If a file of the required name is + not found, a drive with no disk in it is emulated (but see below). If + the user does not have write permission for a floppy file, and/or the + file has an internal write protect flag set, a write-protect tab is + emulated. Use the mkdisk(1) program to turn the write protect flag on + or off. To change floppies in an emulated drive, rename the existing + file for the drive (if any), rename the new floppy file to the proper name, and hit function key F7 in the emulator. - If you try to boot an emulated Model I, III, or 4 with no file named - diskM-0 (that is, no disk in drive 0), xtrs emulates having no floppy + If you try to boot an emulated Model I, III, or 4 with no file named + diskM-0 (that is, no disk in drive 0), xtrs emulates having no floppy disk controller. The behavior of a real machine with a disk controller - in this case didn't seem useful to emulate faithfully: A real Model I - hangs with a screen full of garbage; a real Model III or 4 goes into a - retry loop printing "Diskette?" on the screen and rechecking whether - you've inserted one. A real Model 4P always has a floppy controller, + in this case didn't seem useful to emulate faithfully: A real Model I + hangs with a screen full of garbage; a real Model III or 4 goes into a + retry loop printing "Diskette?" on the screen and rechecking whether + you've inserted one. A real Model 4P always has a floppy controller, however, so xtrs always emulates one. - Due to a limitation of the original Model I hardware, drive :3 cannot - be double-sided in Model I mode. In the original Model I, you could + Due to a limitation of the original Model I hardware, drive :3 cannot + be double-sided in Model I mode. In the original Model I, you could not have a drive :3 at all if any drive in the system was double-sided, but the emulator is able to be more forgiving. Emulated floppy image files can be of any of three types: JV1, compati- - ble with Jeff Vavasour's popular freeware Model I emulator for MS-DOS; - JV3, a compatible extension of a format first used in Vavasour's com- - mercial Model III/4 emulator; or DMK, compatible with David Keil's - Model 4 emulator. All three types work in xtrs regardless of what - model it is emulating. A heuristic is used to decide which type of - image is in a drive, as none of the types has a magic number or signa- + ble with Jeff Vavasour's popular freeware Model I emulator for MS-DOS; + JV3, a compatible extension of a format first used in Vavasour's com- + mercial Model III/4 emulator; or DMK, compatible with David Keil's + Model 4 emulator. All three types work in xtrs regardless of what + model it is emulating. A heuristic is used to decide which type of + image is in a drive, as none of the types has a magic number or signa- ture. JV1 supports only single density, single sided, with directory on track - 17. Sectors must be 256 bytes long. Use FORMAT (DIR=17) if you want + 17. Sectors must be 256 bytes long. Use FORMAT (DIR=17) if you want to format JV1 disks with more (or less) than 35 tracks under LDOS. - JV3 is much more flexible, though it still does not support everything - the real controllers could do. It is probably best to use JV3 for all - the disk images you create, since it is the most widely implemented by - other emulators, unless you have a special reason to use one of the - others. A JV3 disk can be formatted with 128, 256, 512, or 1024-byte - sectors, 1 or 2 sides, single or double density, with either FB (nor- - mal) or F8 (deleted) data address mark on any sector. In single den- - sity the nonstandard data address marks FA and F9 are also available. - You cannot format a sector with an incorrect track number or head num- + JV3 is much more flexible, though it still does not support everything + the real controllers could do. It is probably best to use JV3 for all + the disk images you create, since it is the most widely implemented by + other emulators, unless you have a special reason to use one of the + others. A JV3 disk can be formatted with 128, 256, 512, or 1024-byte + sectors, 1 or 2 sides, single or double density, with either FB (nor- + mal) or F8 (deleted) data address mark on any sector. In single den- + sity the nonstandard data address marks FA and F9 are also available. + You cannot format a sector with an incorrect track number or head num- ber. You can format a sector with an intentional CRC error in the data field. xtrs supports at most 5802 total sectors on a JV3 image. - The original Vavasour JV3 format supported only 256-byte sectors, and - had a limit of 2901 total sectors. If you use sector sizes other than - 256 bytes or format more than 2901 sectors on a disk image, emulators - other than xtrs may be unable to read it. Note that an 80 track, dou- - ble-sided, double-density (18 sector) 5.25-inch floppy will fit within - the original 2901 sector limit; the extension to 5802 is primarily for + The original Vavasour JV3 format supported only 256-byte sectors, and + had a limit of 2901 total sectors. If you use sector sizes other than + 256 bytes or format more than 2901 sectors on a disk image, emulators + other than xtrs may be unable to read it. Note that an 80 track, dou- + ble-sided, double-density (18 sector) 5.25-inch floppy will fit within + the original 2901 sector limit; the extension to 5802 is primarily for emulation of 8-inch drives (discussed below). - The DMK format is the most flexible. It supports essentially every- - thing that the original hardware could do, including all "protected" - disk formats. However, a few protected disks still may not work with - xtrs due to limitations in xtrs's floppy disk controller emulation - rather than limitations of the DMK format; see the LIMITATIONS section + The DMK format is the most flexible. It supports essentially every- + thing that the original hardware could do, including all "protected" + disk formats. However, a few protected disks still may not work with + xtrs due to limitations in xtrs's floppy disk controller emulation + rather than limitations of the DMK format; see the LIMITATIONS section below. The program mkdisk(1) makes a blank emulated floppy or "bulk erases" an - existing one. By default, mkdisk makes a JV3 floppy, but with the -1 - flag it makes a JV1 floppy, or with the -k flag a DMK floppy. See the + existing one. By default, mkdisk makes a JV3 floppy, but with the -1 + flag it makes a JV1 floppy, or with the -k flag a DMK floppy. See the mkdisk man page for more information. - Early Model I operating systems used an FA data address mark for the - directory on single density disks, while later ones wrote F8 but would + Early Model I operating systems used an FA data address mark for the + directory on single density disks, while later ones wrote F8 but would accept either upon reading. The change was needed because FA is a non- - standard DAM that is fully supported only by the WD1771 floppy disk - controller used in the Model I; the controllers in the Model III and 4 - cannot distinguish between FA and FB (which is used for non-directory - sectors) upon reading, and cannot write FA. To deal nicely with this - problem, xtrs implements the following kludge. On writing in single + standard DAM that is fully supported only by the WD1771 floppy disk + controller used in the Model I; the controllers in the Model III and 4 + cannot distinguish between FA and FB (which is used for non-directory + sectors) upon reading, and cannot write FA. To deal nicely with this + problem, xtrs implements the following kludge. On writing in single density, an F8 data address mark is recorded as FA. On reading with an emulated WD1771 (available in Model I mode only), FA is returned as FA; - on reading with a WD179x, FA is returned as F8. This trick makes the + on reading with a WD179x, FA is returned as F8. This trick makes the different operating systems perfectly compatible with each other, which - is better than on a real Model I! You can use the -truedam flag to + is better than on a real Model I! You can use the -truedam flag to turn off this kludge if you need to; in that case the original hardware is emulated exactly. - TRS-80 programs that attempt to measure the rotational speed of their + TRS-80 programs that attempt to measure the rotational speed of their floppy disk drives using timing loops will get the answers they expect, - even when xtrs does not emulate instructions at the same speed as the + even when xtrs does not emulate instructions at the same speed as the original machines. This works because xtrs keeps a virtual clock (tech- - nically, a T-state counter), which measures how much time it should - have taken to execute the instruction stream on a real machine, and it - ties the emulation of floppy disk index holes to this clock, not to + nically, a T-state counter), which measures how much time it should + have taken to execute the instruction stream on a real machine, and it + ties the emulation of floppy disk index holes to this clock, not to real time. Emulated 8-inch floppy disks - In addition to the four standard 5.25-inch drives, xtrs also emulates - four 8-inch floppy drives. There is no widely-accepted standard hard- - ware interface for 8-inch floppies on the TRS-80, so xtrs emulates a + In addition to the four standard 5.25-inch drives, xtrs also emulates + four 8-inch floppy drives. There is no widely-accepted standard hard- + ware interface for 8-inch floppies on the TRS-80, so xtrs emulates a pseudo-hardware interface of its own and provides an LDOS/LS-DOS driver for it. - Storage for the emulated 8-inch disks is in files named diskM-U, where - M is the TRS-80 model number (1, 3, 4, or 4p) and U is a unit number + Storage for the emulated 8-inch disks is in files named diskM-U, where + M is the TRS-80 model number (1, 3, 4, or 4p) and U is a unit number (4, 5, 6, or 7). The only difference between 5.25-inch and 8-inch emu- - lated drives is that the emulator allows you to format more bytes per - track in the latter. A new JV3 floppy can be formatted as either - 5.25-inch or 8-inch depending on whether you initially put it into a + lated drives is that the emulator allows you to format more bytes per + track in the latter. A new JV3 floppy can be formatted as either + 5.25-inch or 8-inch depending on whether you initially put it into a 5.25-inch or 8-inch emulated drive. A new DMK floppy, however, must be - created with the -8 flag to mkdisk in order to be large enough for use - in an 8-inch emulated drive. JV1 floppies cannot be used in 8-inch + created with the -8 flag to mkdisk in order to be large enough for use + in an 8-inch emulated drive. JV1 floppies cannot be used in 8-inch drives. Be careful not to put an emulated floppy into a 5.25-inch emu- - lated drive after it has been formatted in an 8-inch emulated drive or - vice versa; the results are likely to be confusing. Consider using - different file extensions for the two types; say, .dsk for 5.25-inch + lated drive after it has been formatted in an 8-inch emulated drive or + vice versa; the results are likely to be confusing. Consider using + different file extensions for the two types; say, .dsk for 5.25-inch and .8in for 8-inch. To use the emulated 8-inch drives, you'll need a driver. Under LDOS or LS-DOS, use the program XTRS8/DCT supplied on the emulated floppy util- - ity.dsk. This driver is a very simple wrapper around the native + ity.dsk. This driver is a very simple wrapper around the native LDOS/LS-DOS floppy driver. Here are detailed instructions. - First, make sure an appropriate version of LDOS is in emulated floppy - drive 0, and the supplied file utility.dsk is in another emulated + First, make sure an appropriate version of LDOS is in emulated floppy + drive 0, and the supplied file utility.dsk is in another emulated floppy drive. Boot LDOS. If you are using Model I LDOS, be sure FDUBL is running. - Second, type the following commands. Here d is the LDOS drive number + Second, type the following commands. Here d is the LDOS drive number you want to use for the 8-inch drive and u is the unit number you chose - when naming the file. Most likely you will choose d and u to be equal + when naming the file. Most likely you will choose d and u to be equal to reduce confusion. SYSTEM (DRIVE=d,DRIVER="XTRS8",ENABLE) Enter unit number ([4]-7): u - You can repeat these steps with different values of d and u to have - more than one 8-inch drive. You might want to repeat four times using - 4, 5, 6, and 7, or you might want to save some drive numbers for hard + You can repeat these steps with different values of d and u to have + more than one 8-inch drive. You might want to repeat four times using + 4, 5, 6, and 7, or you might want to save some drive numbers for hard drives (see below). - Finally, it's a good idea to give the SYSTEM (SYSGEN) command (Model - I/III) or SYSGEN command (Model 4/4P). This command saves the SYSTEM - settings, so the 8-inch drives will be available again the next time - you reboot or restart the emulator. If you need to access an 8-inch - drive after booting from a disk that hasn't been SYSGENed, simply use + Finally, it's a good idea to give the SYSTEM (SYSGEN) command (Model + I/III) or SYSGEN command (Model 4/4P). This command saves the SYSTEM + settings, so the 8-inch drives will be available again the next time + you reboot or restart the emulator. If you need to access an 8-inch + drive after booting from a disk that hasn't been SYSGENed, simply use the same SYSTEM command again. - In case you want to write your own driver for another TRS-80 operating - system, here are details on the emulated pseudo-hardware. The 8-inch - drives are accessed through the normal floppy disk controller, exactly - like 5.25-inch drives. The four 5.25-inch drives have hardware select - codes 1, 2, 4, and 8, corresponding respectively to files diskM-0, -1, + In case you want to write your own driver for another TRS-80 operating + system, here are details on the emulated pseudo-hardware. The 8-inch + drives are accessed through the normal floppy disk controller, exactly + like 5.25-inch drives. The four 5.25-inch drives have hardware select + codes 1, 2, 4, and 8, corresponding respectively to files diskM-0, -1, -2, and -3. The four 8-inch drives have hardware select codes 3, 5, 6, - and 7, corresponding respectively to files diskM-4, -5, -6, and -7. + and 7, corresponding respectively to files diskM-4, -5, -6, and -7. (See also the -sizemap option below, however.) Real floppy disks - Under Linux only, any diskM-U file can be a symbolic link to a real - floppy disk drive, typically /dev/fd0 or /dev/fd1. Most PCs should be + Under Linux only, any diskM-U file can be a symbolic link to a real + floppy disk drive, typically /dev/fd0 or /dev/fd1. Most PCs should be able to read and write TRS-80 compatible floppies in this way. Many PC - floppy controllers cannot handle single density, however, and some may - have problems even with double density disks written on a real TRS-80, - especially disks formatted by older TRS-80 operating systems. Use the - -doublestep flag if you need to read 35-track or 40-track media in an - 80-track drive. If you need to write 35-track or 40-track media in an - 80-track drive, bulk-erase the media first and format it in the - 80-track drive. Don't write to a disk in an 80-track drive if it has + floppy controllers cannot handle single density, however, and some may + have problems even with double density disks written on a real TRS-80, + especially disks formatted by older TRS-80 operating systems. Use the + -doublestep flag if you need to read 35-track or 40-track media in an + 80-track drive. If you need to write 35-track or 40-track media in an + 80-track drive, bulk-erase the media first and format it in the + 80-track drive. Don't write to a disk in an 80-track drive if it has ever been written to in a 40-track drive. The narrower head used in an 80-track drive cannot erase the full track width written by the head in a 40-track drive. If you link one of the 5.25-inch floppy files (diskM-0 through diskM-3) - to a real floppy drive, TRS-80 programs will see it as a 5.25-inch - drive, but the actual drive can be either 3.5-inch or 5.25-inch. The - drive will be operated in double density (or single density), not high + to a real floppy drive, TRS-80 programs will see it as a 5.25-inch + drive, but the actual drive can be either 3.5-inch or 5.25-inch. The + drive will be operated in double density (or single density), not high density, so be sure to use the appropriate media. If you link one of the 8-inch floppy files (diskM-4 through diskM-7) to - a real floppy drive, TRS-80 programs will see it as an 8-inch drive. - Again, you need to use the XTRS8/DCT driver described above to enable - LDOS/LS-DOS to access an 8-inch drive. The real drive can be either - 3.5-inch, 5.25-inch, or 8-inch. A 3.5-inch or 5.25-inch drive will be - operated in high-density mode, using MFM recording if the TRS-80 is + a real floppy drive, TRS-80 programs will see it as an 8-inch drive. + Again, you need to use the XTRS8/DCT driver described above to enable + LDOS/LS-DOS to access an 8-inch drive. The real drive can be either + 3.5-inch, 5.25-inch, or 8-inch. A 3.5-inch or 5.25-inch drive will be + operated in high-density mode, using MFM recording if the TRS-80 is trying to do double density, FM recording if the TRS-80 is trying to do - single density. In this mode, these drives can hold as much data as a + single density. In this mode, these drives can hold as much data as a standard 8-inch drive. In fact, a 5.25-inch HD drive holds exactly the - same number of bits per track as an 8-inch drive; a 3.5-inch HD drive + same number of bits per track as an 8-inch drive; a 3.5-inch HD drive can hold 20% more, but we waste that space when using one to emulate an - 8-inch drive. In both cases we also waste the top three tracks, since + 8-inch drive. In both cases we also waste the top three tracks, since an 8-inch drive has only 77 tracks, not 80. - The nonstandard FA and F9 data address marks available in single den- - sity on a real Model I with the WD1771 controller also need special + The nonstandard FA and F9 data address marks available in single den- + sity on a real Model I with the WD1771 controller also need special handling. A PC-style floppy disk controller can neither read nor write - sectors with such DAMs at all. This raises three issues: (1) It will - be impossible for you to read some Model I disks on your PC even if + sectors with such DAMs at all. This raises three issues: (1) It will + be impossible for you to read some Model I disks on your PC even if your PC otherwise supports single density. In particular, Model I TRS- - DOS 2.3 directory tracks will be unreadable. (2) On writing in single + DOS 2.3 directory tracks will be unreadable. (2) On writing in single density, xtrs silently records a F9 or FA DAM as F8. (3) On reading in - single density with an emulated WD1771 (Model I mode only), F8 is - returned as FA. If you need more accurate behavior, the -truedam flag + single density with an emulated WD1771 (Model I mode only), F8 is + returned as FA. If you need more accurate behavior, the -truedam flag will turn on error messages on attempts to write F9 or FA DAMs and will turn off translation of F8 to FA on reading. Hint: Be sure to set the drive type correctly in your PC's BIOS. Linux - and xtrs rely on this information to know how fast your drives are + and xtrs rely on this information to know how fast your drives are spinning and hence what data rate to use when reading and writing. All - 3.5-inch drives spin at 300 RPM. Newer 5.25-inch high-density capable - drives ("1.2MB" drives) normally always spin at 360 RPM. (Some can be - jumpered to slow down to 300 RPM when in double-density mode, but you - should not do that when plugging one into a PC.) Older 5.25-inch - drives that cannot do high density ("180KB", "360KB" or "720KB" - 5.25-inch drives) always spin at 300 RPM. All 8-inch drives spin at + 3.5-inch drives spin at 300 RPM. Newer 5.25-inch high-density capable + drives ("1.2MB" drives) normally always spin at 360 RPM. (Some can be + jumpered to slow down to 300 RPM when in double-density mode, but you + should not do that when plugging one into a PC.) Older 5.25-inch + drives that cannot do high density ("180KB", "360KB" or "720KB" + 5.25-inch drives) always spin at 300 RPM. All 8-inch drives spin at 360 RPM. If you plug an 8-inch drive into a PC (this requires a 50-pin - to 34-pin adaptor cable), tell your BIOS that it is a 5.25-inch 1.2MB + to 34-pin adaptor cable), tell your BIOS that it is a 5.25-inch 1.2MB drive. Emulated hard disks xtrs can emulate a hard disk in a file in one of two ways: it can use a - special, xtrs-specific LDOS driver called XTRSHARD/DCT, or it can emu- - late the Radio Shack hard drive controller (based on the Western Digi- + special, xtrs-specific LDOS driver called XTRSHARD/DCT, or it can emu- + late the Radio Shack hard drive controller (based on the Western Digi- tal WD1010) and use the native drivers for the original hardware. Using XTRSHARD/DCT The XTRSHARD/DCT driver has been tested and works under both LDOS 5.3.1 - for Model I or III and TRSDOS/LS-DOS 6.3.1 for Model 4/4P. It may or - may not work under earlier LDOS versions. It definitely will not work + for Model I or III and TRSDOS/LS-DOS 6.3.1 for Model 4/4P. It may or + may not work under earlier LDOS versions. It definitely will not work under other TRS-80 operating systems or with emulators other than xtrs. - The hard disk format was designed by Matthew Reed for his Model I/III - and Model 4 emulators; xtrs duplicates the format so that users can + The hard disk format was designed by Matthew Reed for his Model I/III + and Model 4 emulators; xtrs duplicates the format so that users can exchange hard drive images across the emulators. - To use XTRSHARD/DCT, first run the mkdisk program under Unix to create - a blank hard drive (.hdv) file. Typical usage would be: mkdisk -h + To use XTRSHARD/DCT, first run the mkdisk program under Unix to create + a blank hard drive (.hdv) file. Typical usage would be: mkdisk -h mydisk.hdv. See the mkdisk(1) man page for other options. Second, link the file to an appropriate name. XTRSHARD/DCT supports up - to eight hard drives, with names of the form hardM-U, where M is the + to eight hard drives, with names of the form hardM-U, where M is the TRS-80 model (1, 3, or 4; in this case Model 4P also uses M=4) and U is a unit number from 0 to 7. It looks for these files in the same direc- tory as the floppy disk files diskM-U. - Third, make sure an appropriate version of LDOS is in emulated floppy - drive 0, and the supplied file utility.dsk is in another emulated + Third, make sure an appropriate version of LDOS is in emulated floppy + drive 0, and the supplied file utility.dsk is in another emulated floppy drive. Boot LDOS. If you are using Model I LDOS 5.3.1, patch a - bug in the FORMAT command by typing PATCH FORMAT/CMD.UTILITY M1FOR- - MAT/FIX. You need to apply this patch only once. It must not be + bug in the FORMAT command by typing PATCH FORMAT/CMD.UTILITY M1FOR- + MAT/FIX. You need to apply this patch only once. It must not be applied to Model III or Model 4/4P LDOS. - Fourth, type the following commands. Here d is the LDOS drive number - you want to use for the hard drive (a typical choice would be 4) and u + Fourth, type the following commands. Here d is the LDOS drive number + you want to use for the hard drive (a typical choice would be 4) and u is the unit number you chose when naming the file (most likely 0). SYSTEM (DRIVE=d,DRIVER="XTRSHARD",ENABLE) Enter unit number ([0]-7): u FORMAT d (DIR=1) - Answer the questions asked by FORMAT as you prefer. The DIR=1 parame- - ter to FORMAT is optional; it causes the hard drive's directory to be - on track 1, making the initial size of the image smaller. You can - repeat these steps with different values of d and u to have more than + Answer the questions asked by FORMAT as you prefer. The DIR=1 parame- + ter to FORMAT is optional; it causes the hard drive's directory to be + on track 1, making the initial size of the image smaller. You can + repeat these steps with different values of d and u to have more than one hard drive. - Finally, it's a good idea to give the SYSTEM (SYSGEN) command (Model - I/III) or SYSGEN command (Model 4/4P). This command saves the SYSTEM + Finally, it's a good idea to give the SYSTEM (SYSGEN) command (Model + I/III) or SYSGEN command (Model 4/4P). This command saves the SYSTEM settings, so the drive will be available again the next time you reboot - or restart the emulator. If you need to access the hard disk file - after booting from a floppy that hasn't been SYSGENed, simply use the - same SYSTEM command(s) again, but don't FORMAT. You can freely use a + or restart the emulator. If you need to access the hard disk file + after booting from a floppy that hasn't been SYSGENed, simply use the + same SYSTEM command(s) again, but don't FORMAT. You can freely use a different drive number or (if you renamed the hard disk file) a differ- ent unit number. The F7 key currently doesn't allow XTRSHARD/DCT disk changes to be rec- - ognized, but you can change to a different hard disk file for the same + ognized, but you can change to a different hard disk file for the same unit by renaming files as needed and rebooting LDOS. - Technical note: XTRSHARD/DCT is a small Z-80 program that implements - all the required functions of an LDOS disk driver. Instead of talking - to a real (or emulated) hard disk controller, however, it uses special - support in xtrs that allows Z-80 programs to open, close, read, and - write Unix files directly. This support is described further in the + Technical note: XTRSHARD/DCT is a small Z-80 program that implements + all the required functions of an LDOS disk driver. Instead of talking + to a real (or emulated) hard disk controller, however, it uses special + support in xtrs that allows Z-80 programs to open, close, read, and + write Unix files directly. This support is described further in the "Data import and export" section below. Using native hard disk drivers - Beginning in version 4.1, xtrs also emulates the Radio Shack hard disk + Beginning in version 4.1, xtrs also emulates the Radio Shack hard disk controller (based on the Western Digital WD1010) and will work with the - native drivers for this hardware. This emulation uses the same hard + native drivers for this hardware. This emulation uses the same hard drive (.hdv) file format that XTRSHARD/DCT does. With LDOS/LS-DOS, the - RSHARDx/DCT and TRSHD/DCT drivers are known to work. With Montezuma - CP/M 2.2, the optional Montezuma hard disk drivers are known to work. + RSHARDx/DCT and TRSHD/DCT drivers are known to work. With Montezuma + CP/M 2.2, the optional Montezuma hard disk drivers are known to work. The hard disk drivers for NEWDOS/80 and for Radio Shack CP/M 3.0 should - work, but they have not yet been tested at this writing. Any bugs + work, but they have not yet been tested at this writing. Any bugs should be reported. - To get started, run the mkdisk program under Unix to create a blank - hard drive (.hdv) file. Typical usage would be: mkdisk -h mydisk.hdv. + To get started, run the mkdisk program under Unix to create a blank + hard drive (.hdv) file. Typical usage would be: mkdisk -h mydisk.hdv. See the mkdisk(1) man page for other options. - Second, link the file to an appropriate name. The WD1010 emulation - supports up to four hard drives, with names of the form hardM-U, where + Second, link the file to an appropriate name. The WD1010 emulation + supports up to four hard drives, with names of the form hardM-U, where M is the TRS-80 model (1, 3, 4, or 4p) and U is a unit number from 0 to - 3. It looks for these files in the same directory as the floppy disk - files diskM-U. If no such files are present, xtrs disables the WD1010 + 3. It looks for these files in the same directory as the floppy disk + files diskM-U. If no such files are present, xtrs disables the WD1010 emulation. - Note that if hard drive unit 0 is present on a Model 4P (file - hard4p-0), the Radio Shack boot ROM will always try to boot from it, - even if the operating system does not support booting from a hard - drive. If you have this problem, either hold down F2 while booting to + Note that if hard drive unit 0 is present on a Model 4P (file + hard4p-0), the Radio Shack boot ROM will always try to boot from it, + even if the operating system does not support booting from a hard + drive. If you have this problem, either hold down F2 while booting to force the ROM to boot from floppy, or simply avoid using unit number 0. Stock TRSDOS/LS-DOS 6 systems do not support booting from a hard drive; - M.A.D. Software's HBUILD6 add-on to LS-DOS for hard drive booting - should work, but is untested. Montezuma CP/M 2.2 does boot from the + M.A.D. Software's HBUILD6 add-on to LS-DOS for hard drive booting + should work, but is untested. Montezuma CP/M 2.2 does boot from the emulated hard drive. Finally, obtain the correct driver for the operating system you will be - using, read its documentation, configure the driver, and format the + using, read its documentation, configure the driver, and format the drive. Detailed instructions are beyond the scope of this manual page. Data import and export @@ -682,12 +685,12 @@ joysticks using the X input extension, but this is not implemented yet. Running games - Some games run rather well under xtrs now, provided that your machine - is fast enough to run the emulation in real time and that you choose - the right command line options. "Galaxy Invaders Plus" by Big 5 Soft- + Some games run rather well under xtrs now, provided that your machine + is fast enough to run the emulation in real time and that you choose + the right command line options. "Galaxy Invaders Plus" by Big 5 Soft- ware is particularly good. You will usually want to turn on autodelay, - and if your machine is slow you may need to reduce the sound sample - rate. Running your X server in 8-bit/pixel mode also seems to help in + and if your machine is slow you may need to reduce the sound sample + rate. Running your X server in 8-bit/pixel mode also seems to help in some cases. Example command lines: startx -- -bpp 8 @@ -695,7 +698,7 @@ If you have a slow machine and the sound breaks up, it is possible that your machine is not fast enough to generate samples at the default rate - of 44,100 Hz. If you think this may be happening, try "-samplerate + of 44,100 Hz. If you think this may be happening, try "-samplerate 11025" or even "-samplerate 8000". Options @@ -718,32 +721,32 @@ Specifies the foreground color of the xtrs window. -title titletext - Use titletext in the window title bar instead of the program + Use titletext in the window title bar instead of the program name. -borderwidth width - Put a border of width pixels around the TRS-80 display. The + Put a border of width pixels around the TRS-80 display. The default is 2. -scale xfac[,yfac] - Multiply the horizontal and vertical window size by xfac and - yfac, respectively. Possible values are integers in the range - [1,4] for xfac and [1,8] for yfac. Defaults are xfac=1 and + Multiply the horizontal and vertical window size by xfac and + yfac, respectively. Possible values are integers in the range + [1,4] for xfac and [1,8] for yfac. Defaults are xfac=1 and yfac=2*xfac. -resize In Model III or 4/4P mode, resize the X window whenever the emu- lated display mode changes between 64x16 text (or 512x192 graph- - ics) and 80x24 text (or 640x240 graphics). This is the default - in Model III mode, since 80x24 text is not available and the + ics) and 80x24 text (or 640x240 graphics). This is the default + in Model III mode, since 80x24 text is not available and the 640x240 graphics add-on card is seldom used. -noresize In Model III or 4/4P mode, always keep the X window large enough - for 80x24 text or 640x240 graphics, putting a blank margin - around the outside when the emulated display mode is 64x16 text - or 512x192 graphics. This is the default in Model 4/4P mode, - since otherwise there is an annoying size switch during every + for 80x24 text or 640x240 graphics, putting a blank margin + around the outside when the emulated display mode is 64x16 text + or 512x192 graphics. This is the default in Model 4/4P mode, + since otherwise there is an annoying size switch during every reboot. -charset name @@ -751,66 +754,66 @@ In Model I mode, five sets are available. The default, wider, is a modified Model III set with characters 8 pixels wide; it looks - better on a modern computer screen with square pixels than the + better on a modern computer screen with square pixels than the real Model I fonts, which were 6 pixels wide. lcmod is the char- - acter set in the replacement character generator that was sup- - plied with the Radio Shack lower case modification. (It was - reconstructed partly from memory and may have some minor bit + acter set in the replacement character generator that was sup- + plied with the Radio Shack lower case modification. (It was + reconstructed partly from memory and may have some minor bit errors.) stock is the character set in the stock character gen- - erator supplied with most upper case only machines. Since xtrs + erator supplied with most upper case only machines. Since xtrs currently always emulates the extra bit of display memory needed - to support lower case, this character set gives you the authen- - tic, unpleasant effect that real Model I users saw when they - tried to do homebrew lower case modifications without replacing - the character generator: lower case letters appear at an incon- + to support lower case, this character set gives you the authen- + tic, unpleasant effect that real Model I users saw when they + tried to do homebrew lower case modifications without replacing + the character generator: lower case letters appear at an incon- sistent height, and if you are using the Level II BASIC ROM dis- play driver, upper case letters are replaced by meaningless sym- - bols. early is the same as stock, but with the standard ASCII - characters [, \, ], and ^ in the positions where most Model I's + bols. early is the same as stock, but with the standard ASCII + characters [, \, ], and ^ in the positions where most Model I's had directional arrows. This was the default programming in the - Motorola character generator ROM that Radio Shack used, and a - few early machines were actually shipped with this ROM. - Finally, german or genie gives an approximate emulation of the - GENIE, a German Model I clone. Characters are 8 pixels wide, + Motorola character generator ROM that Radio Shack used, and a + few early machines were actually shipped with this ROM. + Finally, german or genie gives an approximate emulation of the + GENIE, a German Model I clone. Characters are 8 pixels wide, and double width is supported even though later GENIE models did not include it. - In Model III, 4, and 4P modes, three sets are available: - katakana (the default for Model III) is the original Model III + In Model III, 4, and 4P modes, three sets are available: + katakana (the default for Model III) is the original Model III set with Japanese Katakana characters in the alternate character - positions. This set was also used in early Model 4's. interna- - tional (the default for Model 4 and 4P) is a later Model 4 set + positions. This set was also used in early Model 4's. interna- + tional (the default for Model 4 and 4P) is a later Model 4 set with accented Roman letters in the alternate positions. bold is - a bold set from a character generator ROM found in one Model + a bold set from a character generator ROM found in one Model III, origin uncertain. -usefont Use X fonts instead of the built-in character bitmaps. -nofont - Use the built-in character bitmaps, not a X font. This is the + Use the built-in character bitmaps, not a X font. This is the default. -font fontname - If -usefont is also given, use the specified X font for normal + If -usefont is also given, use the specified X font for normal width characters. The default uses a common X fixed-width font: "-misc-fixed-medium-r-normal--20-200-75-75-*-100-iso8859-1". -widefont fontname - If -usefont is also given, use the specified X font for double + If -usefont is also given, use the specified X font for double width characters. The default uses a common X fixed-width font, - scaled to double width: "-misc-fixed-medium-r-nor- + scaled to double width: "-misc-fixed-medium-r-nor- mal--20-200-75-75-*-200-iso8859-1". -nomicrolabs In Model I mode, emulate the HRG1B 384x192 hi-res graphics card. - In Model III mode or Model 4/4P mode, emulate the Radio Shack + In Model III mode or Model 4/4P mode, emulate the Radio Shack hi-res card. This is now the default. -microlabs - In Model III or 4/4P mode, emulate the Micro Labs Grafyx Solu- - tion hi-res graphics card. Note that the Model III and Model - 4/4P cards from Micro Labs are very different from one another. + In Model III or 4/4P mode, emulate the Micro Labs Grafyx Solu- + tion hi-res graphics card. Note that the Model III and Model + 4/4P cards from Micro Labs are very different from one another. -debug Enter zbx, the z80 debugger. @@ -827,42 +830,42 @@ tions on compiling in default romfiles or default romfile names. -model m - Specifies which TRS-80 model to emulate. Values accepted are 1 - or I (Model I), 3 or III (Model III), 4 or IV (Model 4), and 4P + Specifies which TRS-80 model to emulate. Values accepted are 1 + or I (Model I), 3 or III (Model III), 4 or IV (Model 4), and 4P or IVP (Model 4P). Model I is the default. -delay d - A crude speed control. After each Z-80 instruction, xtrs busy- - waits for d iterations around an empty loop. A really smart C + A crude speed control. After each Z-80 instruction, xtrs busy- + waits for d iterations around an empty loop. A really smart C optimizer might delete this loop entirely, so it's possible that - this option won't work if you compile xtrs with too high an + this option won't work if you compile xtrs with too high an optimization level. The default delay is 0. -autodelay - Dynamically adjusts the value of -delay to run instructions at - roughly the same rate as a real machine. The tracking is only + Dynamically adjusts the value of -delay to run instructions at + roughly the same rate as a real machine. The tracking is only approximate, but it can be useful for running games. -noautodelay Turn off -autodelay. This is the default. -keystretch cycles - Fine-tune the keyboard behavior. To prevent keystrokes from - being lost, xtrs "stretches" the intervals between key transi- - tions, so that the Z-80 program has time to see each transition + Fine-tune the keyboard behavior. To prevent keystrokes from + being lost, xtrs "stretches" the intervals between key transi- + tions, so that the Z-80 program has time to see each transition before the next one occurs. Whenever the Z-80 program reads the - keyboard matrix and sees an emulated key go up or down, xtrs - waits cycles Z-80 clock cycles (T-states) before it allows the + keyboard matrix and sees an emulated key go up or down, xtrs + waits cycles Z-80 clock cycles (T-states) before it allows the program to see another key transition. Key transitions that are - received during the waiting period or when the Z-80 program is - not reading the keyboard are held in a queue. The default + received during the waiting period or when the Z-80 program is + not reading the keyboard are held in a queue. The default stretch value is 4000 cycles; it should seldom if ever be neces- sary to change it. -shiftbracket Emulate [, \, ], ^, and as shifted keys, and {, |, }, and ~ as - unshifted. This is the default in Model 4 and 4P modes, and it - works well with the keyboard driver in Model 4 TRSDOS/LS-DOS 6. + unshifted. This is the default in Model 4 and 4P modes, and it + works well with the keyboard driver in Model 4 TRSDOS/LS-DOS 6. -noshiftbracket Emulate [, \, ], ^, and as unshifted keys, and {, |, }, and ~