Example screen (not original
As you can see from the example X is displaying the directory of a TRS-80 disk (emulated) on the left side. The left side can display any disk available to the DOS (which X is running under). When starting X will display the contents of logical disk :0. At the top there is disk information: The disk number ':0', the disk name 'C C ' and the disk creation date '02/07/01' (this is what was specified when the disk was formated).
The right side displays the PC directory. This can be any directory or disk accessible with a drive letter (to the emulator). It will start with the location from which the emulator is run. Note that the emulator is an MS-DOS program and doesn't support long filenames therefore X can't deal with long filenames either. X will display the "8.3" version which is kept for MS-DOS tools. In the example you can see 'WD~1.ZAS' which actually refers to WD.ZASM (my extention for distinguishing Z80 assembly files from x86 ones). On the top is the directory path displayed MS-DOS fashion. If the path is too long it will be truncated to display only the rightmost part. Note that X changes the current PC directory to the current session of the emulator (similar to CD/CMD).
Underneath the directory displays is one line for messages and input. In the example you can see the result of copying X/CMD:0 to D:\TRS-80\KR-L. The message will typically stay there until it is replaced by another.
X supports only David Keil's TRS-80 model I emulator and TRS-80 model III/4 emulator in model III mode. The emulator have to be v6.10 or later. The extended instruction set of the emulator is extensively used, this lies in the purpose of the program. X can't be used in model 4 mode.
X needs floppydisks and a DOS and can run under LDOS, DOSPLUS and NEWDOS/80. X might also run under other DOS's but this is untested. X is meant to run under the latest versions of these (5.3.1, 3.5 and 2.0 respectively) but should also work on other versions.
X/CMD v1.0 is 12943 bytes and will use all the free memory available, for buffering directory information. It is possible to use X even with only 16K RAM but 48K RAM is recommended. With 48K RAM the directory listings can contain over 1000 entries, less RAM means less entries. There is a warning if directory entries were lost due to lack of RAM. Running X in a shell from another program, can be done, but note that this will reduce the available memory.
What X is not
X is not a TRS-80 Norton Commander. X is not a disk analyzer, super tool or repair utility, it uses DOS functions for accessing disks on the TRS-80 side and if you can't DIR it in DOS, X can't dir it either. The PC side works through emulator functions and are limited by them. For example long filenames are not available.
X doesn't convert files: No LF/CR/CRLF conversion, no ctrl-Z removal or adding. When a file is transfered it is a binary clone. Any needed conversion have to be done before or after X transfers the file.
To install it you need to transfer it into the emulator. There are several ways to do this (using XFER or IMPORT) but the most fun way is to use X itself:
|Up||Move focus one line up|
|Down||Move focus one line down|
|Shift-Right, Right, Left, Shift-Left||Toggle focus side|
|Clear-Up, '-'||Move focus one page up (12 lines)||'-' is the PC keyboard PgUp key|
|Clear-Down, Clear||Move focus one page down||Clear is the PC keyboard PgDn key|
|Shift-Up, 't', 'T', ':'||Move focus to the top||':' is the PC keyboard Home key|
|Shift-Down, 'b', 'B', '@'||Move focus to the end||'@' is the PC keyboard End key|
|Enter||Transfer focused file to the other side or enter focused directory||X will automatically generate a legal name. It will overwrite without warning|
|Space||Transfer focused file with name editing or enter focused directory||You will be given the opportunity to edit the from and to names see below. Use to enter password or changing to name.|
|'d', 'D'||Disk selection||Numbers for TRS-80, letters for PC|
|'r', 'R'||Reread disk on focused side|
|'f', 'F'||Filter toggle (applies to both sides)||Cycle through enabling and disabling viewing of SYStem and INVisible files - note that most SYStem files are also INVisible|
|'o', 'O'||sort Order toggle (both sides too)||Cycle through sort orders: Name, Type, Size, Date and None. Type, Size and Date will secondly sort by Name|
|Clear-A, Clear-B,... Clear-Z||Search for next file starting with key||Only with LDOS' KI/DVR or similar|
Clear-Up f.ex. might be unfamiliar, it is a feature of LDOS' KI/DVR driver, where Clear is used in a similar way as Shift to generate more key codes.
Transfer with edit (Space):
X first generates an automatic name for the other side, then it displays the from name in the message area and places a cursor at the end. The cursor is an undescore '_'. It might be slightly confusing to the user to edit PC side names containing '_'. X has no problem with this.
|Left||Move cursor left one character|
|Right||Move cursor right one character|
|Shift-Left||Backspace (delete character to the left of the cursor)|
|Shift-Right, (127)||Del (delete character to the right of the cursor)|
|Space, Down||Toggle between from and to|
|Enter||Do the transfer|
|Break||Cancel the transfer|
|Any other 'visible' key||Inserted as is into the string at cursor position|
The key assigments and graphics are configurable, but unfortunately there is no configuration tool yet. See tecnical section below.
The date on a copied file is todays date, according to the DOS or the PC respectively. This is the same as normal file creation on both sides (see the wish list).
Error handling is an art in itself. When dealing with three different DOS's on two different machines with custom drivers it becomes impossible. There probably are holes in the logic still, so if anything happens to you please make a note on how it happened and send it to me, with relevant directory listings, disk images etc.
An unreadable disk will be reported with 'no files' instead of f.ex. 'disk error'. To identify a disk as empty use the filter (F) option to view both SYStem and INVisible files so that BOOT/SYS and DIR/SYS appears. If no files can be seen anyway DOS is unable to read the disk (try another DOS or PDRIVE setting).
DOS incompatibility issues
X is working on the TRS-80 disks through the DOS so you will still be trapped in the incompatibilities that are between the DOS's. Often you can read SSSD disks from another DOS but you shouldn't write to them. DS and/or DD floppies generally don't go around. You need to deal with this in the normal way (super tools and repair utilities).
When X is encountered with a readable alien floppy it will be slightly different from DOS copy, in the way that it will handle the directory according to the OS number in DIR/SYS of that floppy. I still recommend that the correct DOS should be used.
Automatic name conversion
Naming-conventions are different on PC and TRS-80 and even between the DOS's. The main difference is the extention marker '/' on TRS-80 and '.' on the PC. Asside of that the PC can use anything from the TRS-80. The TRS-80 on the other hand can use only alphanumeric character so any unwanted character is skipped. (DOSPLUS can use more characters than the other DOS's, but for compatibility, name conversion is the same anyway). Use transfer with editing to "correct" names (f.ex. my pc file WD.ZASM is converted to WD~1.ZAS by MS-DOS then '~' is dropped by X to WD1/ZAS I would use tranfer with editing to change it to WD/ASM).
PC directories and filenames with international characters (128 and up) are handled by X but will display as graphics. This might also be strange when editing a PC side name. The graphic character will be the TRS-80 equivalent of the MS-DOS extended ASCII characterset (see also wish list).
X is copyright © 2001 by Knut Roll-Lund. I define X as freeware. As such there are no warranties of any kind. You can even make modifications and distribute it, but you have to keep this disclaimer and the copyright notice.
Offisial wish list (not necessarily in order of preference)
Warning on alien disks
Multiple file selection
Compare between sides
Keeping the date
Translation of international characters