Recreating Z80 Micro-Reference Manual in LaTeX

Mostek published a great little Z80 reference card called the “Z80 Microcomputer System Micro-Reference Manual”.  In addition to the Z80 CPU, it covers the PIO, CTC, and SIO, but not the Z80 DMA.  Unfortunately it’s long out of print, so I decided to try to recreate it in LaTeX.  I’m a LaTeX novice at best, so this is quite a challenge.  Here’s a PDF sample of pages 1, 2, 8, and 9. There’s a scan of the original on Bitsavers.

Page 1 (“Flag Summary”) is nearly ready, other than the positioning of the page number, but there’s a lot of work yet to be done to get the formatting right on the other pages.  I mostly want to reproduce the original fairly closely, but on page 2 (“8-Bit Load Group”) I moved the Implied Source operand columns (I and R registers) to the right side of the table, because I always thought it looked wrong with them on the left.

I can’t figure out why on page one the horizontal line separating the headings from the body of the table stretches off to the right edge of the page.

This will require meticulous proofreading.

Posted in RetroChallenge | Leave a comment

Quay 900 CP/M porting progress

I’m way behind on reporting on my Retrochallenge project, but I have been working on it. As Dr. Asimov wrote, “Sloane’s Teddy Wins the Race.”  I’ve made progress porting CP/M to the Quay 900.  I’ve improved my disk routines, added a boot command to my monitor ROM, have GetSys and PutSys programs working, have written a cold start loader that will fit in a single-density sector (128 bytes), and have partially written the BIOS.

The original Quay 900 BIOS could only boot a double-density disk, which it did by reading the entire side 0 track 0 into RAM and jumping into it.  There is some funniness about moving the loaded code that I haven’t fully sussed out.  I want to be able to boot from either single or double density, and I’ve not been able to obtain an actual Quay 900 bootable CP/M disk, so for now I’m not going to make my monitor ROM boot normal Quay 900 disks.

Posted in RetroChallenge | Leave a comment

Better error recovery in floppy disk formatter

I put some better error recovery code in floppy disk formatter for the verify pass.   Previously I was getting verify failures on drive 0 when using double density, and the new code reveals that some of them are cleared up with a retry or two, but some still fail even after five retries.  The source code is here.  It’s released under version 3 of the FSF General Public License. Continue reading

Posted in RetroChallenge | Leave a comment

Quay 900 internal photos

Mark Wickens asked for photos.  I haven’t taken many, but here are two.

Continue reading

Posted in RetroChallenge | Leave a comment

Quay floppy formatter

I did a lot of cleanup of my floppy routines, and got the formatter working with double density.  Right now it only runs as a “standalone” program.  Once I have CP/M running on the Quay, I’ll put in conditionals to run it either standalone or under CP/M.

The source code is here.  It’s released under version 3 of the FSF General Public License. Continue reading

Posted in RetroChallenge | Leave a comment

BYTE conolidated adveriser index for vol 1 & 2 available

I’ve added volume 2 to the BYTE consolidated advertiser index.  It is provided as an ODF (Open Document Format) spreadsheet.

Posted in RetroChallenge | Leave a comment

BYTE consolidated advertiser index, Quay ads, 8080 XPL0

I’ve been compiling a consolidated advertiser index for the early years of BYTE magazine, thus far from V1N1 (September 1975) through V2N3 (March 1977).  Hey, that’s one more thing to add to my Retrochallenge project!

This did turn up some Quay advertisements. There are two in V2N1 (January 1977). On page 84 there is a one column (1/3 page) ad for the Quay 80MPS single board computer, which is probably the immediate predecessor of the 90MPS board in my Quay 900 system.  On page 98 there is one column an ad for the Quay 80AI board for S100 bus systems.  The same two ads appear in V2N3 and V2N5. The 80AI ad appears by itself in V2N7.  In V2N9 (September 1977) a full page ad includes the 80AI along with several new products including the 90MPS.  It appears that they gave up on advertising in BYTE, because there aren’t any further Quay ads through V4N12 (December 1979).  If anyone is aware of Quay advertisements in other periodicals, please let me know. Continue reading

Posted in RetroChallenge | 1 Comment

Quay 900 stuff

I have a Quay 900, which is an obscure Z80-based system from 1979.  It has two MPI (CDC) eight-inch double-sided floppy drives, and uses a Quay MPS-90F single-board computer rather than the then-common S-100 bus, though it has two daughterboards for additional parallel and serial I/O.  I received it with no documentation or software. I heard about it back in the day, but I’m not sure where, as there don’t even seem to have been many advertisements for it.  The Internet doesn’t know much about it.

I recently reverse-engineered the boot EPROM, which only contained code to read track 00 from drive 0 in double density.  In particular, it didn’t initialize the console serial port or output any messages to it.  I used a continuity checker to figure out the port and bit assignments of the console UART, and wrote a simple monitor ROM that lets me dump memory, download programs in Intel hex records, and execute them.  I also wrote a floppy disk formatter.

For RC2014SC, I plan to get write or port more software to the Quay.  This will likely be some subset of:

  • Upgrade my floppy formatter
    • Add double-density support
    • Add error recovery
  • Write a program to upload and download entire floppy disk images
  • Write a CBIOS and get CP/M 2.2 running
  • Get FIG-Forth running on the bare metal (Z80 version here) (or maybe CamelForth under CP/M)
  • Write an I2L interpreter and run XPL0 programs (once upon a time Pickles & Trout sold XPL0 for the 8080, but I haven’t been able to track down a copy)

And perhaps other stuff I haven’t thought of yet.

Posted in RetroChallenge | 1 Comment

Creating bootable USB media from ISO image

I’ve found lots of reverences to using livecd-iso-to-disk from the livecd-tools package to create bootable USB media from an ISO image (or for a DVD, quite possibly a UDF image, but the principle is the same). However, most of the descriptions either seem light on examples, or give absurdly complicated examples. It’s actually quite easy, if you’re not concerned with preserving the old content of the USB media. Continue reading

Posted in Linux | Leave a comment

TRS-DOS as possible prior art for MS patent on exFAT, and reference request

Microsoft introduced a new “exFAT” file system a few years ago, and I wouldn’t care about it in the least, except that it is now the official filesystem for SD-XC cards.  I only care about that in that digital cameras and such will likely only support exFAT on SD-XC cards, and I’d like my computer, not running Windows, to be able to efficiently access files on such cards.  The problem is that Microsoft filed several patent applications covering exFAT.  One of them is application US 2009/0164440 A1, for which the US patent office has recently mailed a “Notice of Allowance”, which means that they have decided to issue the patent.

This application is titled “Quick filename lookup using name hash”.  Based on the title, it sounded like they are doing what TRS-DOS 2.0 did back in 1978, which is putting on the disk a hash table of filenames which then refer to directory entries.  TRS-DOS did that so that it usually only needed to read two sectors to look up a file, the HIT (Hash Index Table) sector, and the actual directory sector containing the file’s directory entry.  Otherwise they might have had to read multiple directory sectors to find the file if it existed, and all of the directory sectors if it did not.

The claims of the patent are a little difficult to interpret.  They refer to “a first one or more computer readable storage media having computer executable instructions…”.  This is basically referring to the disk/flash/etc. the operating system is booted from.  They refer to “a second one or more…” which is the disk/flash/etc. which holds the file system in question.

Here’s are two of the independent claims:

1. A first one or more computer readable storage media having computer executable instructions that, when executed on at least one processor, configure the at least one processor to perform a method of detecting if a target file name exists on a second one or more computer readable storage media, the method comprising:

(A) determining a name hash from the target name;
(B) determining if the name hash corresponds to a directory entry set name hash value, the directory entry set name hash value corresponding to one of a plurality of directory entry sets, each of the plurality of directory entry sets stored on the second one or more computer readable storage media;
(C) determining if the target name matches a directory entry set name corresponding to the one of the plurality of directory entry sets after step (B) determines the name hash corresponds to the directory entry set name hash value; and
(D) indicating that the target name exists after step (C) determines the target name matches the directory entry set name.

19. A method of detecting if a target file name exists, the method executing on one or more processors, the method comprising:

(A) determining a file name hash from the target file name;
(B) determining if the file name hash corresponds to a directory entry hash value, the directory entry hash value corresponding to one of a plurality of directory entries;
(C) determining if the target file name matches a file name, the file name corresponding to the one of the plurality of directory entries after step (B) determines the file name hash corresponds to the directory entry hash value; and
(D) indicating that the target file name exists after step (C) determines the target file name matches the file name corresponding to the one of the plurality of directory entries.

These seem to be to be to be *exactly* what TRS-DOS 2.0 did as early as 1978, so it seems possible that TRS-DOS could be used as prior art to invalidate at least these independent claims, and quite possibly some of the dependent claims as well.

So my question is, are there any published works documenting the TRS-DOS file system on-disk format, especially the use of the HIT table, other than “TRS-80 Disk and Other Mysteries” by H. C. Pennington?

Posted in Patents, Retrocomputing, Software | 2 Comments