HP1631D Logic Analyzer..Software???

Glen Slick glen.slick at gmail.com
Tue Dec 6 09:48:19 CST 2016

On Tue, Dec 6, 2016 at 2:02 AM, Christian Corti
<cc at informatik.uni-stuttgart.de> wrote:
> On Mon, 5 Dec 2016, Glen Slick wrote:
>> I tried using ImageDisk on a PC to read the two HP 1630 3.5-inch
>> floppies I have (10304 8085 preprocessor, 10342 HP-IB, RS-232C/V.24,
>> RS-449 preprocessor). It appeared to be able to read the expected data
>> just fine. Singled sided disk with 16 256-byte sectors per track
>> (sector numbers 0 - 15) and 70 tracks.
>> But it also seemed to detect a sector number 17 with no data in each
>> track. Is that a normal 9121 low level format? I haven't tried to
>> write a floppy back out using ImageDisk to see if the result is
>> readable on a 9121 drive.
> Funny that you mention that. I just came across that anomaly yesterday when
> I tried to create some disks for the HP150 with 9121 drive; the images are
> from the hpmuseum site and are in TeleDisk format.
> I had a lot of trouble writing the images back. I wanted to use ImageDisk
> instead and tried the TD02IMD tool, but it failed miserably with the error
> "Cannot do mixed sector size within track", even with the option M=15 that
> should truncate every track after sector number 15.
> I found out that a disk formatted in the 9121 has 16 normal sectors
> (numbered from 0 to 15) with 256 bytes each (size code 1), and one extra
> sector numbered 17 (there's no sector 16) with size code 5.
> The solution to TD02IMD was to move the call of remove_sectors() *before*
> the three issame() calls. remove_sectors() is responsible to remove the
> unwanted sectors greater that 15 with option M=15. With that bugfix TD02IMD
> produces a correct IMD file that can be written back without problems, and
> the 9121 drive is very happy with that floppy :-)
> Christian

That reminded me I ran into this problem 4 years ago and sent this
email to Dave at the time about it. I ended up rebuilding my own
version from the IMD118 source code to fix the problem.
Dave, I have some questions/suggestions about TD02IMD.COM

In the main routine would it make sense to move the remove_sectors()
call prior to where it does the mixed sector size check?  For example,
if the tracks of a disk contain 16 normal and same sized sectors and
there is a 17th garbage sector in the Teledisk image with a different
sector size, would it make sense to be able to use the M= command line
option to filter out and remove sectors that cause image conversion

                // Read each sector, buffer & build maps
                for(s=0; s < Thead.Tsectors; ++s)
                if(!issame(Smap, Size = Smap[0], Stop)) // 765 cannot
do mixed sector sizes
                        error("Cannot do mixed sector size within track");
                if(!issame(Cmap, Cylinder, Stop))               //
Cylinder map required
                        Head |= 0x80;
                if(!issame(Hmap, Head & 0x0F, Stop))    // Head map required
                        Head |= 0x40;

                // Remove sectors as requested

Also, would it be reasonable to add command line options for selecting
a single side of a Teledisk image, and also to limit the maximum track

My motivation for asking these questions comes from trying to convert
some HP-85/86/87 TeleDisk disk images which do appear to have the
garbage sector issue I mentioned above.  Plus some of these images
were processed as doubled sided when only one side would actually be
used, and/or process all possible 40 or 80 tracks when only 35 or 70
would actually be used in the original target environment.

For example TD02IMD.COM chokes on this disk image:

I believe the original disk here would only contain 16 valid 256-byte
sectors per track, only one side of valid data, and only 70 valid
tracks of data on the one valid side.

More information about the cctech mailing list