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 error Directory of coco2_good.ext,/Bootcopy/CMDS ICONS 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 CLUBLIB 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 club_lib.lbl 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 roster 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 vndrc.lzh Directory of coco2_good.ext,/PROFILE/X/CLBS clbrc.lzh Directory of coco2_good.ext,/PROFILE/X/CHRIS chris.lzh Directory of coco2_good.ext,/PROFILE/X/CHRS chrs.lzh Directory of coco2_good.ext,/PROFILE/X/CHS chs.lzh Directory of coco2_good.ext,/PROFILE/X/ADRSBK adrsbk.lzh Directory of coco2_good.ext,/PROFILE/X/PACA paca.lzh 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 s7 Directory of coco2_good.ext,/VED/SRC MakeVDefs VDefsText VSplit.c Directory of coco2_good.ext,/VED/MACROS VedDefs.txt Directory of coco2_good.ext,/VED/DOCS history config Directory of coco2_good.ext,/BURKE i n d o s