A Hard (Drive) Bargain

In June, I mentioned that I had extracted a ST-251 MFM HDD from what appeared to be the club’s main Color Computer system and sent it on to the designer of the MFM Emulator, David Gesswein. While David was able to coax a bit of data from the unit, the heads were out of alignment, which is common in drives of this age. To coax more from the drive, he’d need to take over the head positioning motor, called a “stepper motor“.

Stepper motors are unlike regular electric motors in that they are not designed for constant rotation. Instead of containing a set of coils that encourage the rotor (the part that turns) to spin, a stepper motor contains a set of coils designed to force the motor to shift by a small amount. It does this by using a set of coils that can be individually energized. To simulate constant rotation, one uses a stepper motor driver which sequences the various coils and coil polarities to constantly shift the motors position by a slight amount. Stepper motors are typically rated according to the number of full “steps” in a single rotation.

“Micro stepping” is the ability for a stepper motor driver to position the stepper motor in various fractions of a step by applying specific voltages and sequences to the motor windings. This reduces rotational speed and sometimes the force the motor can exert, but it also increases the resolution of the shaft positioning.

As is usual, nothing is easy. Most stepper motors utilize 2 phases, but the ST-251 head positioning stepper motor is a 5 phase motor. The difference is shown here. David linked to examples where he’d read data using a 2 phase microstepper circuit, but noted he needed to work on how to handle a 5 phase motor.

Obviously, I would not be posting if there was no progress. Mid July, David sent a note indicating he has been able to interface with the multi-phase stepper motor and read out the contents of the drive! He was gracious enough to send a dump of the data that can be read by toolshed. He cleaned up a few things in subsequent runs and I am thankful for his efforts.

As a next step, I’d like to see if any of our members is interested in taking this dump and getting it to boot using XRoar or (O)VCC to better understand what is held on the drive and what should be preserved. As the earlier posting implied, it is an OS9 drive, and it looks like it has CoCoFEST! 1996, 1997, and 1998 data on it, and perhaps PA98 was PennFest #2 in 1998? Many files appear to be club database information, while there also appear to be various member profiles stored on the drive. Obviously, I can’t share the drive publicly, to safeguard member’s privacy, but I am happy to work with a few folks who are willing to handle the data sensitively.

Anyway, if you would like to help investigate the material on this drive, perhaps extracting useful information or seeing what can be run from the image, please reach out to me via our contact page. I’d love to reconstruct some details for our Spring 2024 CoCoFEST! Again, many thanks to David Gesswein for imaging this drive (free of charge, even!) for the club. At the very least, the data on the now non-functional drive can live on as an image.

Here’s David’s run of the toolshed dir command over the image:

../toolshed-2.2/os9 dir -r coco2_good.ext 

                           Directory of coco2_good.ext,
Bootcopy        CMDS            COMM4           DATABASE        Fest97b
GLNSD           IDE             MODULES         POS             PROFILE
SPOOL           SYS             UTILS           VED             aif.dba
aif.lbl         aif.rpt         aif.wdw         strtposdd       readme.pos
paposdd         s1              s2              s3              s7
startup         startup.bak     startup.org     d0backup1       termsettings
w1              w7              ww              dislex          roster
BURKE           w               i               n               d
o               zzzzzlist       z               zz              

                           Directory of coco2_good.ext,/Bootcopy
CMDS            date            display         dmode           echo

                           Directory of coco2_good.ext,/Bootcopy/CMDS

                           Directory of coco2_good.ext,/Bootcopy/CMDS/ICONS

                           Directory of coco2_good.ext,/CMDS
At              CD              Clock           DD              Devname
Dw_defdb        Dw_deflbl       Dw_defrpt       Dw_defwin       Dw_labels
Dw_report       Dw_wind         Dwindows        H1.dd           ICONS
IO              IO1             MakeVDefs       VDefsText       VSplit
Ved             Ved..help       Wattr           Wcopy           Window
ansied          ar              

                           Directory of coco2_good.ext,/CMDS/ICONS
icon.dw         icon.dw_wind    icon.dw_labels  icon.dw_report  

                           Directory of coco2_good.ext,/COMM4
t3.dd           t0.dd           t1.dd           NetLink         ReCobbler
SetPak          T0              T1              T3              

                           Directory of coco2_good.ext,/DATABASE
ROLODEX         MAGAZINE        VIDEO           MEDICAL         INVENTORY

                           Directory of coco2_good.ext,/DATABASE/ROLODEX
Rolodex.dba     Rolodex.ndx     Rolodex.wdw     Rolodex.rpt     Rolodex.lbl

                           Directory of coco2_good.ext,/DATABASE/MAGAZINE
Magazine.dba    Mag.category.ndx Mag.article.ndx Magazine.wdw    

                           Directory of coco2_good.ext,/DATABASE/VIDEO
Video.dba       Video.rating.ndx Video.name.ndx  Video.star.ndx  Video.wdw

                           Directory of coco2_good.ext,/DATABASE/MEDICAL
Medical.dba     Medical.ndx     Medical.wdw     Medical.rpt     

                           Directory of coco2_good.ext,/DATABASE/INVENTORY
Inventory.dba   Inv.name.ndx    Inv.value.ndx   Inventory.wdw   

                           Directory of coco2_good.ext,/DATABASE/CLUBLIB
invintory.dba   oper.sys.ndx    type.ndx        author.ndx      name.ndx
location.ndx    status.ndx      media.ndx       inv.name.wdw    Club_lib.rpt

                           Directory of coco2_good.ext,/Fest97b
logo.pos        membership.pos  prices.pos      receipt.sat1    tot.sat.oops
tot.sat1        tot.sat2        receipt.sat2    

                           Directory of coco2_good.ext,/GLNSD
DISP            DRPT            DCTL            DATA            DKEY1
DKEY2           DKEY3           DKEY4           DKEY5           glnrc.lzh

                           Directory of coco2_good.ext,/IDE
cc3ide.6809     cc3ide_6.a      hi.ide          

                           Directory of coco2_good.ext,/MODULES
BBFhdisk        CC3Disk         CC3Go           CC3IO           CCDisk
CCIO            CO32            Clock           D0              D1
GrfInt          IOMan           Init            M1              OS9p2
OS9p3           P               PRINTER         Pipe            PipeMan
Piper           RBF             RS232           SCF             SIO
Sacia.Pak       Shell           SysGo           T1              T2a.dd
T2s.dd          T3a.dd          T3s.dd          TERM            Td.dd
VDGInt          aciapak.dr      bbfhdisk.dd     clock.bb.s2.60hz clock.bb.s3.60hz
clock.doc       clock.dsto2.50hz clock.dsto2.60hz clock.dsto2.s4.50hz clock.dsto2.s4.60hz
clock.dsto4.60hz clock.dsto4.s4.60hz clock.soft.50hz clock.soft.60hz d0_40d.dd
d1_40d.dd       ddmaker         h0.dd           hd              t1.dd
t3.dd           w.dw            w1.dw           w10.dw          w11.dw
w12.dw          w13.dw          w14.dw          w15.dw          w2.dw
w3.dw           w4.dw           w5.dw           w6.dw           w7.dw
w8.dw           w9.dw           windint.io      RAM             r0.dd

                           Directory of coco2_good.ext,/POS
poscmds.arc     message.text    totals.data     prices.data     membership.da
CHI96           CHI97           CHI98           PA98            

                           Directory of coco2_good.ext,/POS/CHI96
pos_printr0     cposr1          prices.pos      logo.pos        readme.pos
os9arc          dearc           totals.pos      pos_printr1     apr1396
pos_printd1     cposd1          pos_printdd     membership.pos  cposr0
cposdd          t2              receipt.logfile 

                           Directory of coco2_good.ext,/POS/CHI97
cposd1          cposdd          cposr0          cposr1          dearc
logo.pos        membership.pos  newprices       os9arc          pos_printd1
pos_printdd     pos_printr0     pos_printr1     prices.pos      readme.pos
receipt.sat1    receipt.sat2    tot.sat.oops    tot.sat1        tot.sat2
totals.pos      receipt.logfile 

                           Directory of coco2_good.ext,/POS/CHI98
cposd1          cposdd          cposr0          cposr1          dearc
logo.pos        membership.pos  newprices       os9arc          pos_printd1
pos_printdd     pos_printr0     pos_printr1     prices.pos      readme.pos
totals.pos      receipt.logfile rcpts.sat       nmba.sat        

                           Directory of coco2_good.ext,/POS/PA98
cposd1          cposdd          cposr0          cposr1          dearc
logo.pos        mmbrshp.sat     os9arc          pos_printd1     pos_printdd
pos_printr0     pos_printr1     prices.pos      readme.pos      recpts.sat
totals.sat      working         receipt.logfile totals.pos      membership.pos

                           Directory of coco2_good.ext,/PROFILE
prfl.lzh        dbases.lzh      X               DCTL            DISP
DRPT            DATA            

                           Directory of coco2_good.ext,/PROFILE/X
GLNSD           VNDRS           CLBS            prfl.lzh        CHRIS
CHRS            CHS             ADRSBK          PACA            

                           Directory of coco2_good.ext,/PROFILE/X/GLNSD

                           Directory of coco2_good.ext,/PROFILE/X/VNDRS

                           Directory of coco2_good.ext,/PROFILE/X/CLBS

                           Directory of coco2_good.ext,/PROFILE/X/CHRIS

                           Directory of coco2_good.ext,/PROFILE/X/CHRS

                           Directory of coco2_good.ext,/PROFILE/X/CHS

                           Directory of coco2_good.ext,/PROFILE/X/ADRSBK

                           Directory of coco2_good.ext,/PROFILE/X/PACA

                           Directory of coco2_good.ext,/SPOOL

                           Directory of coco2_good.ext,/SYS
config.sys      duopts          errmsg          events.sys      macro
option          shell.parameters stdfonts        stdpats_16      stdpats_2
stdpats_4       stdptrs         altfonts        rsb_env.file    clipboard.txt
logo.txt        BFONTS          helpmsg         

                           Directory of coco2_good.ext,/SYS/BFONTS

                           Directory of coco2_good.ext,/UTILS
PP.file         PP.file.fon     acbbs24.ar      acbbs24.doc     adrlabel.pak
alarm.ar        almanac         almanac.OSK     ar              areacode.ar
calendar.pak    cc.pak          cc3go.pak       ccheck.arc      cursive.ar
ded             digiclock       dir.ar          dirutil.ar      dirutl
dmtree          dutils.ar       ed30.arc        ed30.doc        ed31.ar
ff.ar           files           files.pak       fileslist.sys   finance.pak
gdmap.arc       gif2vef.ar      gifos9.ar       glabel.ar       gshell
hdkit.ar        hdmtree         jtfm            kdutils.ar      lha_2_11.ar
lof.bo9         megaread.ar     menu.ar         modemio.sys     month
month.ar        month.bin       month.dat       month.dat1      os9arc.pak
pak             phonebook.pak   playsound.ar    pos.arc         pp
pp.ar           prfl.lzh        prfl.lzh.1      profile         profile.arc
reback.ar       repack          scanfile.pak    screensavemenu.ar sdump.ar
sled.ar         sound.ar        time.ar         unlzh_7.ar      view4.4.PAK
volume.bin      whereis.ar      wheres.lzh      windchill.ar    

                           Directory of coco2_good.ext,/VED
CMDS            SRC             MACROS          DOCS            

                           Directory of coco2_good.ext,/VED/CMDS
Ved             Ved..help       VSplit          MakeVDefs       VDefsText

                           Directory of coco2_good.ext,/VED/SRC
MakeVDefs       VDefsText       VSplit.c        

                           Directory of coco2_good.ext,/VED/MACROS

                           Directory of coco2_good.ext,/VED/DOCS
history         config          

                           Directory of coco2_good.ext,/BURKE
i               n               d               o               s

A Hard (Drive) Life

In late 2021, as GCCC worked to put on a belated 29th “Last” Chicago CoCoFEST!, a question arose about all of the storage of hardware and software items belonging to GCCC. Some were recent items destined for the cancelled 2020 show auction, some were for the upcoming 2021 show auction, some were items donated long ago and never auctioned, and still more were club owned items. I had no idea GCCC had accumulated so much stuff, but I felt it was important to do some cleaning and asked that folks storing items bring them to the show.

At the show, Tony Podraza and I quickly sorted through the myriad of totes (I bet there were 35 of them, in addition to items delivered the day before the show started) to sort out what was the club’s, what we auction, and what was junk. Tony and I focused attention on retaining paperwork (correspondence and newsletters from other clubs, historical GCCC materials, and materials for the hardware projects GCCC had sponsored), interesting software (things produced by the club, modified for the club, etc.), and a bit of hardware (I felt the club should retain a complete CoCo system to run a demo, BBS, or similar). The rest of the items were placed on the auction to allows others to enjoy (I saw no reason for the club to collect Game Paks or multiple copies of OS/9 and the related manuals).

On the hardware front, we found a club-owned (at least Tony were pretty sure) Burke and Burke XT-based HDD, 100% complete. Time grew short, so we packed it away after the show, but I always thought it would be nice to image the drive and get the data off it.

Sadly, I was not able to attend the 2022 show, but I did ask if there was an interested resource who could take the ST-251 MFM drive and attempt to image. Rick Ulland graciously volunteered to attempt, and diligently tried to read data off the unit, to no avail. We thank Rick for the attempt, as it was a long shot.

This Spring, as I packed the totes away at the end of the 2023 show, I saw the B&B HDD again and decided to take it home and see what I could accomplish. As I don’t know much about MFM technology, I asked on the Classic Computers Mailing List if anyone might be interested in helping me attempt to image the drive. I got a number of good responses and leads, but the best came from David Gesswein.

David, who some may know from his PDP8Online web page , has created an MFM reader/emulator, and he responded graciously offering to help me image the drive if possible. It took a bit of time, but I was able to ship the drive off this week, and he received it today.

As expected, the drive is in poor shape, with mis-aligned heads, which is why Rick was unsuccessful imaging the unit. But, David notes that he has had success manually “micro”-stepping the heads across the platters to overcome alignment issues. He notes he has more familiarity with 2 wire microstepping systems, where the Seagate ST-251 is a 5 wire unit, so he’s looking into how he might interface with this type of stepper motor.

But, he was able to pull a bit of data from the drive, ran the “strings” command on the resulting material, and rendered the following:

Exit to OS9
        Are you sure? (Y/N):
Disk Manager Tree, Version 1.10  

Chat procedure for access color bbs
Copyright 1989,1990 by Ezra Story

Brnout  Version 1.0
Copyright (c) 1991 By Keith Alphonso
Licenced to and distributed by COCOPRO!

I theorized the drive might hold a copy of a BBS installation, and there is a bit of evidence for that in the above data.

Obviously, there are no guarantees David will be successful at pulling more off the drive. But, I do appreciate David’s help in attempting an image, and I am hopeful more will be retrieved.