I was given an XOR Data Science computer in June of 2005. The donor of the computer (Mr. Stan Johnson) said the machine was given to him as well, and he never got around to looking at it, so it was an unknown quantity. There is some information on the web about the machine, but I wanted to try and put together more information for anybody else who wants to get theirs going again.There is nothing particularly unique about the box; it is a power supply (two, actually), a four slot S-100 backplane, and two disk drives in an enclosure. It would be perfectly possible to use other S-100 cards, or to use these S-100 cards in a different manufacturer's backplane.
The history of the computer is confusing, at least to me. The schematics say the machine was designed by Delta Products, of Huntington, California, including the three S-100 cards that are used in its standard S-100 backplane. Somewhere along the line the company was named "XOR Data Science Inc.". Towards the end of its life, the company was either bought by or renamed themselves US Micro Sales. US Micro Sales vanished abruptly in early 1984, leaving many customers in the lurch.
The Machine
Various configurations were sold. One configuration, XOR-100-12 (the one described in the operator's manual below) was as follows:The machine I have is somewhat different. The smaller case (9.5" W, 9" H, 18" deep) has four S-100 slots instead of ten, and no doubt the S-100 power supply is also less capable. The disk controller uses the 1795 FDC chip, not the 1791. It has two Mitsubishi M2896-63-02U floppy drives (8" DS/DD).
- sheet metal enclosure
- two (linear) DC power supplies, one for the floppy disks, one for the S-100 cage
- muffin fan cooling
- ten slot S-100 motherboard
- a front panel consisting only of a single reset switch
- CPU card
- Z80 CPU, 2 MHz/4 MHz selectable
- 2 KB monitor ROM
- two serial ports, running up to 19200 bps, driven from two 8251 UART chips
- one 24 bit parallel port, driven from one 8255 parallel interface chip
- one (optional) Z80A-CTC
- memory card, holding 64 KB of DRAM
- floppy disk controller card
- 1791 FDC chip
- configurable with interfaces to both 8" and 5.25" drives
- dual Shugart SA100 8" (SSDD) floppy disk drives
Documents
Most of the following manuals were scanned by Jerry Wright; the S-100-4 manual was scanned and contributed by Paul Beaupre. I did a little fiddling with them to make them smaller and, with their permission, I've posted them here. Thanks, Jerry and Paul! All are PDF files.
Document Title Describes Pages Size Delta Products DP-CPU-B CPU Manual 43 1.2 MBDelta Products 64K-DQ Memory Manual 24 427 KBDelta Products DP-DSK Disk Controller Manual 67 2.0 MBXOR S-100-12 Computer Assembly and Operating Instructions Operator's Manual 84 2.2 MBXOR S-100-4 Computer Assembly and Operating Instructions S-100-4 Assembly and Instructions 66 2.2 MBMonitor ROM
The machine has a 2 KB monitor ROM, appearing at F800 to FFFF in the memory map (actually, at power on it appears 32 times covering the entire memory read space, but an IN instruction at a particular address causes the boot ROM to appear just at its normal location). The commands that I had figured out didn't match what is documented in the user manual, so I disassembled the ROM in my system. The sticky label on the 2716 EPROM says "XP 185", which I assume means it is version 1.85 (the manual refers to revisions 1.82 and later). A while after disassembling, I obtained the original source for the monitor.XOR monitor version 1.85 (original source code)However, there are some issues.
Source code for version 1.85 (my disassembly)
Intel HEX file for version 1.85Summary of monitor commands:
- The H command (find hex string) doesn't work. While disassembling the reason seems obvious: the code for this command uses the IX register pair yet IX never gets initialized. Update: the reason is that this is broken is that the original source code used the 8080 macro assembler with a macro file to provide a way to enter some of the Z80 mnemonics. In two places the author of the code used the macros incorrectly, using "PUSH IX" and "POP IX" instead of "PUSHIX" and "POPIX" (no spaces).
- Another issue is that the code to attempt a floppy boot tests bit 4 of the floppy disk controller status register and if set, reports a CRC error; in fact, bit 3 reports CRC status and bit 4 indicates that the requested sector couldn't be found on the current track.
- The user manual indicates that there are a number of jump vectors at the start of the monitor ROM to standard routines so that applications can use those routines even if a given monitor changes exactly where the routine is located. Indeed the monitor begins with a number of
"JP nnnn" instructions. The problem is that most of them don't do what the user manual says they do. Caveat programmer.- The tail end of the ROM has a lot of junk DNA code, probably left over from a previous version of the ROM.
D AAAA BBBBWhen entering a command, typing "." aborts the command. If a hex number can be specified in fewer than the two or four digits expected for the parameter, the number can be finished by hitting the RETURN key.
Dump memory in hex from address AAAA to BBBB. hitting any key stops this mode and is taken as the first keystroke of a new command.F AAAA BBBB CC
Fill memory from AAAA to BBBB-1 with byte CCG AAAA
Jump to address AAAA (e.g.. G F800 reboots)H AAAA BBBB CC DD EE FF ...
Find the string of bytes CC DD EE FF in memory between addresses AAAA and BBBB.L AAAA
Shows the current byte at address AAAA and waits for input. Entering CR then moves to the next byte; entering a hex value replaces that value; entering "." Exits this mode.M AAAA BBBB CCCC
Block move from AAAA to BBBB for CCCC bytesV AAAA
Dumps memory in ASCII, 64 chars/line, stopping after each 24 lines, waiting for a CR. Hitting space instead of CR stops this mode.X
Gets a "Bank ?" message. Typing in 0 to 7 causes the CPU to set an extended addressing bank register. Unless the system has more than 64 KB of RAM, there is no need to use this command, and should be left at its default state of 0.Control-C or Control-F
Boot from floppy. Some versions of the ROM allow Control-A to boot from hard disk.Boot Disks
Jerry Wright sent along teledisk images for two boot disks containing utility programs and some source code. Jerry thinks that the boot tracks might not be right in the teledisk image, but that the files are OK. These disk images are for single sided floppies. The ASCII files on disk 2 are available in a zip file.Pictures
- faceplate with 20 year old tape residue
- faceplate after some isopropyl alcohol and a plastic kitchen sponge
- CPU card
- 64 KB DRAM card
- Disk Controller card
- the "spine" (structurally supports everything else)
- rear view
- insides with S-100 card cage and no disk drives
- close-up of inside rear electronics
Drive Jumpering
The XOR came with either Shugart 801 disk drives or Mitsubishi 2896-63-02U disk drives; I'm sure other types of drives would work as well, but those are what are mentioned in the manual. When I received the machine it has Mitsubishi drives in it, although one was broken (the disk hub was shattered), and the other drive had bad alignment, at least. I bought two replacement drives of the same type, but they used a later revision of the floppy controller electronics (revision G vs. revision C), and the jumpers were very different. I puzzled out most of the jumpers and got it to work, but I was able to buy manuals for this type of drive from Herb Johnson, "Dr. S-100". With the manual I was able to fine tune things. Here is what I ended up with (if not mentioned, it isn't jumpered):
| Jumper | use |
| HUD, not HUN | HUD=head unload delay; HUN=head unload normal |
| WP, not NP | inhibit write when write protected |
| JFG, not JSG | connect frame ground to signal ground |
| A | radial head load |
| B | radial head load |
| C | alternate input HEAD LOAD |
| not X | radial head load |
| SI, not SE | use internally generated write current switch |
| RS, not RM | ready standard (vs ready modified) |
| RFa, not RFb | RFa=don't remove; RFb=keep open |
| IT | IN USE terminator |
| MS, not MO | MS=motor on from drive select; MO=motor on from head load; neither jumpered means motor always on |
| S2 | standard side select input |
| I | INDEX output |
| R | READY output |
| Z, not Y | IN USE LED based on drive select |
| HY, not HR | HY=standard ready; HR=hold ready |
| M2, not M1 | USE J1 pin 18 for motor start |
| PS, not PH | PS=head load and'd with standard ready;
PH=head load and'd with hold ready |
| DS1 (or DS2 as appropriate) |
The combination of (A & B & C & !X) means that the head load solenoid is active when both the drive select signal and the head load signals are active. Jumpering as (A & !B & C & X) means it is active based on the drive select signal. Jumpering as (!A & B & C & X) means it is active based on the head load signal.
The XOR S-100-4 manual also says to remove the jumper at Z and add a wire jumper at Y, but it only affects the "IN USE" LED and I didn't feel like adding wires, so I left the Z jumper in place. The software seems to activate the drive select and head load signals simultaneously anyway.Links
Here are a few other links of significance on the XOR computer:Obsolete Computer Museum The Trailing Edge
If you want to contact me for whatever reason, try me at frustum@pacbell.net.Other documents, software, peripherals, or even just an email with stories, are all welcomed. I'm happy to pay shipping for anything you are willing to donate.
Back to Jim's Junk main page.
Last updated: May 5, 2006