View Full Version : Tarbell CP/M BIOS origins question

March 23rd, 2017, 06:13 AM
I've been puttering around with the Tarbell CP/M BIOS listings from deramp and the Maslin archives. One BIOS says "CVE IO4 48K CPM V1.4 of 7-20-79/9-5-81". What does CVE IO4 refer to? What is the significance of the 9-5-81 date?

Another puzzle for me is where exactly the skew 6 interleave is implemented in CP/M. Is the interleave lookup from logical to physical in the BDOS (since I can't find it in BIOS)? Boy this gave me a headache when I was writing images... until I sorted out my problem was with some marginal SRAM, not the disk.

March 23rd, 2017, 06:58 AM
I wouldn't be surprised if IO4 refers to the Solid State Music IO-4 board, a common S-100 board that provided two serial ports and two parallel ports. It could be strapped up to look like basically any common serial board, so it was a popular alternative for e.g. MITS and IMSAI boards. Pretty common to see one in an Altair configured to mimic a MITS 2SIO.

March 23rd, 2017, 08:52 AM
Don distributed a sample BIOS with his disk controller boards, so the genesis is probably in that.

If the lookup tables aren't in his BIOS, it's quite likely that he got smart and employed a physical interleave. No need for a translation table; just put the interleave in the disk format utility.

March 23rd, 2017, 12:01 PM
It's definitely a modified version of the Tarbell BIOS. Re: lookups, my images are all written with physical sectors in 1-26 order but the logical is skew 6 (for tracks 2+). It took some trial and error with ImageDisk and cpmtools to get it right (actually, had it right from the start, but the memory problem threw me down the wrong path... an interesting experience in its own right, since it checked out with various "monitor" tests, but failed in CP/M.) (Does this sound right? Or does the WD1771 generate due to sticking to the IBM-3740 format? Logical and physical sectors with skew makes my head spin a bit.)

March 23rd, 2017, 12:17 PM
The original deal with SSSD 8" floppies was that there were several systems incapable of formatting floppies, or were not delivered with formatting utilities. So the IBM 3740 "standard" was widely used in those cases. It uses a unity physical interleave.

Later, many systems dispensed with the sector translation table and relied on a physical interleave instead. Makes more sense and gives the user the ability to change the interleave on demand. For example, there were formats where the boot tracks were unity for speed; the directory used perhaps a 2:1 interleave and the data areas used a 3:1 interleave. Easy to accommodate during formatting.