Kipp Yeakel's Ithaca Intersystems DPS-1


This Web page updated Mar 11 2016. (c) 2016 Herb Johnson except for content produced by others.

Introduction

[Kipp's Ithaca]

In 2014 I was repairing a DPS-1 system.. at the time, I asked Kipp Yeakel to provide some Ithaca DPS-1 boot disks, based on the system he was running. Some time later, I started work on a S-100 Ithaca Intersystems DPS-1 system from Andy Robinson in Feb 2016. In Feb I looked hard at Kipp's system and the copies of boot disks he provided. This Web page describes his Ithaca DPS-1 cards and boot disk contents. This page also describes the process I used, to extract the boot tracks into a file; disassembly I used to examine both the boot-track file and the expanded BIOS file called by the booted CP/M system. There's more notes in various Ithaca DPS-1 documents, commonly available in Web archives.

Thanks to Kipp Yeakel for his files and efforts, and permission to reference his good work.

It is WORK IN PROGRESS and part of a number of repair and restoration Web pages I have which are linked from this Web page My S-100 Web pages have a home at this Web link. I have an Ithaca Intersystems Web page at this link.. - Herb Johnson

Index:
Kipp's DPS-1 boards.
Jumper settings of DPS-1 boards
Kipp's Ithaca bootable disks
Extracting the Ithaca boot tracks and the boot process
Ithaca documentation




Kipp's DPS-1 boards.

In Feb 2016 at my request, Kipp was kind enough to send a set of photos of his four DPS-1 boards, from which I could determine how his jumpers were set. Here's those photos.

S-100 cards:
Z80 CPU board
IA-2030 64K DRAM board
IA-2020 Floppy disk controller board
serial and parallel I/O board

Kipp told me in 2014, "I should note that my machine meets the standard Ithaca configuration per the manual: DCB-II (IA2020), VIO (IA1190), Z80-II (IA2000), 64k ram (IA2030). My IO addresses are: MIO = 00-1F, Floppy = B0-BF, Front panel = FF, Z80 relocation registers = E0-E3."

Jumper settings of DPS-1 boards

Here's a list of the jumpers on Kipps' DPS-1 boards as photographed by him from his DPS-1 system. For comparision, Here's a list of the jumpers on my DPS-1 system as recieved from Robinson.

The DPS-1 boards have many jumper settings. I spent much of the last half of Feb 2016, in obtaining and working on the jumper settings of the Robinson DPS-1 system I was working on, comparing them to jumper settings on Kipp Yeakel's DPS-1 system of the same four boards; and trying to interpret those settings. Kipp's DPS-1 setup is very close to the "standard" settings in one set of Ithaca's DPS-1 manuals. Check my Web page on my repairs to Robinson's former system, and notes about jumper settings, for some of those details.

I frankly worked backwards on understanding these settings. I went from just listing the settings, to reading the manuals repeatedly in more detail, to trying to understand the differences between Kipp's boards, my Robinson boards, and what the manuals suggested were "standard" or at least for one kind of use. Kipp was very patient with me, as he verified and reworked a list I sent him to match the designations in the Ithaca manuals.

What I learned from this exercise, with Robinson's boards and images of Kipp's boards, is that the DPS-1 systems were likely set up in a number of very different ways, at different times. Why does this matter? because boot disks from one DPS-1 system won't likely boot up on another DPS-1 system.. And of course it matters when replacing or swapping DPS-1 boards.

Kipp's Ithaca bootable disks

This ZIP file contains the Ithaca-specific files from Kipp Yeakel's SSSD 8" boot disk. There's also notes about the process, which I describe below and in the next section about booting and BIOS.

In March 2014, I corresponded with Kipp Yeakel as I was desperatly trying to create Ithaca DPS-1 bootable disks, from parts of disks that I could read (as single-density 8-inch) and hope to boot on a DPS-1 system I was trying to repair. I sent Kipp a disk I created: he was not able to boot it on his working DPS-1 system. He provided discusion and notes about my disk. But he also provided two SSSD 8" disks (single sided single density) with his bootable system on them.

Here's how he created those disks, in his own words. " Herb, I got my DPS-1 working again. I formatted a diskette as single sided, single density to match yours. I then transferred the operating system and all files to it. It was then verified to boot the machine. I then used teledisk 2.15 to image that disk. The file is enclosed here. I made another diskette from this image and it was verified to boot."

In the next paragraphs, I describe how in 2016 I extracted from the 8-inch disks sent, a set of Ithaca files and boot-track Kipp uses on his DPS-1 system. Notes about interpreting how the Ithaca CP/M boot process works and is documented, is in a following section of this Web page.

In Feb 2016, while working on another DPS-1 system from Robinson, I spent more time on Ithaca operating systems and bootable disks. I looked hard at Kipp's disks, to extract the files and in particular to access the boot tracks for the bootable system on them. I learned a lot in that process, which I'll describe in another section.

Here's what I did with Kipp's disk. I read and duplicated it on my Z-100 zenith system. That means that under CP/M-85 I formatted a SSSD 8" disk - the same format as Kipp's SSSD disk. I made an exact copy by simply "duplicating", a track-by-track copy. This gave me copies to work with, without fear of damaging original disks.

Then I extracted out Kipp's boot tracks from Kipp, to create a CP/M file I called IBOOT, using the "DU" utility from CPMUG archives. I also copied the Ithaca specific files on his disk. Those were copied to 5.25" disks in CP/M-85 format. I read those on a desktop MS-DOS system running "22disk", an MS-DOS commercial program suite to read CP/M disks of files and write them to a MS-DOS disk. Then I moved that MS-DOS disk to my desktop Windows system. This ZIP file contains the Ithaca-specific files.

On my desktop Windows system, I can compare the files (binary code and source) with source listings and to the Ithaca manuals' documentation, and to other sources. The next section details how I read the disks with common CP/M tools, transferred them to the MS-DOS/Windows world, and how I interpreted the BIOS and boot process.

Extracting the Ithaca boot tracks and the boot process

These are rough notes I kept, as I transferred Kipp's Ithaca boot tracks to a file, and read his other CP/M Ithaca files, from the 8" SSSD disks he provided me as described above. The follow is a general summary from those notes, about Ithaca's boot and BIOS process and details on how to read them at the binary level. In the section above,I described how I obtained the boot-track file, and tranferred the CP/M files, to my modern desktop system.

Boot process

The Ithaca DPS-1 boot process, is to read a configured CP/M system from the first two boot tracks. This system has a minimal BIOS included, called either PICO or TBIOS (depending on the DPS-1 system version), that seems to be relatively simple and less dependent on DPS-1 hardware settings (the jumper settings and hardware features). the purpose of that small BIOS, is to load in a larger BIOS which is a file on the boot disk. The file is called either ISTARTUP.COM or STARTUP.COM, depending on system version. That file when executed, copies itself over the old BIOS and the Ithaca system then runs under that BIOS.

This is not an academic exercise. This process of reading boot tracks, then reading in a larger BIOS, produces an action on floppy drives you can follow by ear. On reset, the DPS-1 system resets the floppy drives to track 0; reads that track and steps once to track 1; reads the directory on track 2 to find the "startup" file; steps several or many tracks to get to that file; and then steps incrementally to read that file. In principle, the CP/M prompt should appear after all that activity. If there's problems of course, the system may not do all those steps.

To examine the boot code:

First I wanted to verify the BIOS on the boot tracks, and its features. I was worried my hardware did not support Kipp's boootup BIOS. So on my desktop system, I hex-edited and examined the IBOOT.COM file I created from Kipp's disk boot tracks. Like most CP/M boot images, it has the CP/M CCP, BDOS, and BIOS in that order; those are loaded into memory and CP/M is started. It's typical to have a BIOS start with a jump table, that's what CP/M the operating system uses to access the BIOS. That set of jumps leades to a set of serial console routines; those are a good place to analyze a BIOS if all you have is the binary! Or, to compare that binary to sources as available.

In my notes I show some hand disassembly of the Z80 code (Ithaca uses expanded Intel 8080 mnemonics, not Zilog's!) of serial support, to verify where in memory that BIOS is intended to run; and some basic operations including the I/O address of the serial ports. With various parts of the BIOS binary disassembled, I was able to compare them to a file on Kipp's disk called PICO.SRC. It looked like the pieces matched, which means I'd be able to confirm through that PICO.SRC source file, that my DPS-1 hardware would be compatible (or not) with Kipp's hardware (if I used his same jumper settings).

I had previously done the same analysis, on the "Robinson" Ithaca disk I obtained with the Robinson system. So I was able to state in my notes: "So! Both the Robinson disk and the Kipp [single density] disk, use a similar "tiny BIOS" or "PICO BIOS" in the boot tracks. The Robinson disk, loads in an ISTARTUP.COM which begins with a header that identifies it with a jump instruction and a "4hFST" [a description in ASCII for the ISTARTUP BIOS version]. The Kipp disk, loads in a STARTUP.COM file."

Next, I looked at the Kipp disk's STARTUP.COM file - the larger BIOS which will overlay the small PICO BIOS - in a similar fashion. It's essentially another, larger BIOS; it has some starting code to move it from it's CP/M-loaded location at 100H, to overwrite the BIOS in high memory. Then it looks like a conventional BIOS, with features to support Ithaca's DPS-1 of course, and specific features of Ithaca BIOS's. One such feature is an identifying startup message, which on Kipp's disk was "CP/M BIOS ver 3.d Ithaca InterSystems Inc.". Later on, when I looked at Kipp's disks for files, I found a XBIOS.SRC with the same version description. This suggests that his disk contains a source for his STARTUP file.

What this told me, was that Kipp's disk running BIOS was version 3.d; while I determined ISTARTUP on my Robinson single-density boot disk was version 4h "FST". These two disks, therefore, were a major version apart in time and features. I knew later on, the Robinson Ithaca cards were jumpered differently from the Kipp cards.

And I learned later, that my Robinson double-density boot disk, had an ISTARTUP 4cSTD. I eventually used that as the running version for my DPS-1 system, as I discuss on that Web page.

Ithaca documentation

Ithaca documentation: I found a description for the files on Kipp's boot disk. It's a PDF of an Ithaca document titled "Adding Intersystems BIOS to CPM 2.2", which seems to be archived with other DPS-1 documents on the Web. There's reference in the document to version 3d of the BIOS. That's consistent with the BIOS startup message on Kipp's disk. A copy of this document is in the ZIP file I made of Kipp's Ithaca files. Other Ithaca documents are "Ithaca Intersystems Standard BIOS Manual.pdf", however it covers version 4c of the STARTUP/ISTARTUP BIOS; and "Ithaca Intersystems FDC-2 Bootstrap.pdf" which covers the 1K PROM on both Kipp's boards and my Robinson system boards.

Various other archives of Ithaca DPS-1 files and disks, may include more BIOS and "tiny BIOS" or boot sources. Sites include "bitsavers.org" and "s100computers.com" and "hartetechnologies.com". Some manuals are for earlier DPS-1 systems, some are for later models. I may cover Ithaca DPS-1 documents further on another Web page; there's different versions of DPS-1 CP/M support and hardware documentation.

- Herb Johnson


Contact information:
Herb Johnson
New Jersey, USA
To email @ me, see
see my ordering & contact Web page.

Copyright © 2016 Herb Johnson