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
Mark Wickens asked for photos. I haven’t taken many, but here are two. Continue reading
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.
I’ve added volume 2 to the BYTE consolidated advertiser index. It is provided as an ODF (Open Document Format) spreadsheet.
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
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.
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
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?
I’ve been trying to build an EPEL 6 package (for Red Hat Enterprise Linux 6, Centos 6, etc.) of Meshlab, for which I already have a Fedora package. The latest challenge is that the Koji build server is trying to use qt-devel-3.x, while Meshlab needs qt-devel-4.x.
The obvious thing to do was to change the spec from:
BuildRequires: qt-devel >= 4.6
However, Koji still tries to use qt-devel-3.x!
A Google search revealed an explanation in the rpmfusion-developers list from Kevin Fenzi:
That doesn’t work because it’s missing the Epoch. “>= 1:4″ would work, but it’s better to use the virtual qt4-devel Provides, which is backwards-compatible with EPEL 5 (which had an actual qt4-devel package), which will keep working in the future when Qt 5 will be the default and which avoids the pesky Epoch.
Now on to the next problem!
The conventional wisdom has it that if you add a user to a group in a Linux (or Unix) system, the user will have to log in again for the new group membership to take effect. Using the “newgrp” command, an existing shell can gain the group membership. For example, to create a new group “foo”, add the current user to the group, and make it effective immediately:
sudo groupadd foo sudo usermod -a -G foo user newgrp foo
Note that this makes the new group effectively the user’s primary group ID in the current shell and any new descendents. If you don’t want that, do another newgrp back to the original group. The new group will still be in the process’ group list.
Note that the “-a” (append) option to usermod may not exist in all Linux distributions.