Binary Dinosaurs Computer Museum
titlebar
button1Museum History button2Museum Updates button3BinarySaurs on Twitter button4Adverts&Reviews button5Moan, Bitch, Gripe scroll1
button6Inhabitants button7Reviews button8WOW! button9Contact button10Recursion 2017 scroll2
button11Links button17Floppy Recreation button13BDonFacebook button14CGE-UK 2004 button15WROCC 2006 scroll2
button16DECBOX button12Retro2017 button18Floppy Recreation spaaaaace spaaaaace scroll3
base blank_textbox

STC Executel Software Recovery
8" Floppy Imaging
With other projects stalled waiting for parts I finally got together all the components necessary to allow me to attempt to image all the STC Executel source disks I got with my mega haul a few years ago. All 8" SSSD and SSDD. I have 4x 8" drives so surely one of them would be able to create entire flux dumps of the disks using my newly acquired Greaseweazle F7 V3, a tool originally designed by Keir Fraser to do what a Kryoflux does but for far less money.
Reading 8" disks isn't straightforward, largely because of the age of the technology. A lot more people are familiar with the later and much more common 5.25" floppy drive, indeed I have loads of them though I can never find one when I need it. The main difference between 8" and 5.25" is the electrical interface. Original 8" drives used AC motors for spinning the disks so were locked to the phase of the electricity for stability. As the tech improved the AC motors gave way to 24VDC quartz locked motors instead, and did I have a 24V PSU? No. I also had to source all the necessary parts to hook up both power and data, and fortunately the power sockets are still available. Drive maintenance is also vital, the head transport must be kept running smoothly and the actual read head(s) themselves must be kept clean.
The signals for driving an 8" unit are also in different places on the edge connector, and it requres a 50 way card edge socket instead of the 34 way found on 5.25" drives. A 34 way cable can still be used however, and instructions are available at Dave Dunfield's website. You also need an old ISA slot from a PC which needs to be cut down to 50 pins, handily I had one that someone had removed with prejudice from a PC many years ago. I started with a Shugart 860-1 DSDD drive which would happily dump... something off the disk. At the time I didn't know what format the disks were in and wasn't aware of the OmniDisk DOS utility which can identify tracks per sector and other useful info for working out what could be on the disk. I was using the tools I had available, namely ImageDisk, Anadisk and the Greaseweazle's sidekick disk-analyse, also by Keir Fraser. All utilities declared the disks blank or unformatted.
Because the printed source code I had was in PL/M and a couple of the floppies were labelled as 'System Disks' containing PLM80 and other assemblers I was confident the code had been written on an Intel Intellec MDS800 which used an operating system called ISIS. Not much is really known about ISIS but a lot more is known about the follow-up, ISIS-II which was based on CP/M 2.2. My floppies were either FM encoded or M2FM encoded, but which? I kept reading scary warnings that nothing will read M2FM disks any more.
I then dismantled my monster CPT8500 word processor which gave me 2x Tandon TM848 SSDD drives and, crucially, the correct 50 pin drive cable to attach to my DBIT FDADAP 5.25" to 8" adapter board that I'd rediscovered. This also produced readable dumps but again none of the tools could translate them. I was giving the idea up as toast until Mark Ogden saw my pleas for help on the FacebookB Vintage Computer Group and pointed me in the direction of his Intellec ISIS and ISIS-II image translation utilities - bingo! Suddenly I could identify files and directories, not complete but enough to give me the impetus to carry on.
Only the application software for the Executel was written in PL/M, the initialisation routines and interrupt tasks etc are all in assembler but that's fine because they're commented listings so I can see what was supposed to be happening and will be able to trace the running code better on the real machines. For instance, this is a snippet of code executed at power up that I worked out does literally nothing, it just delays startup to give other components time to initialise:

0040							L0040:
0040 : F3			    " "		[4]		di
0041 : 3E 0F			    "> "	[7]		mvi	a,00FH
0043 : 30			    "0"		[4]		sim
0044 : 3E 40			    ">@"	[7]		mvi	a,040H
0046 : 30			    "0"		[4]		sim
0047 : 01 00 00			    "   "	[10]		lxi	b,00000H
004A							L004A:
004A : 0B			    " "		[6]		dcx	b
004B : 78			    "x"		[4]		mov	a,b
004C : B1			    " "		[4]		ora	c
004D : C2 4A 00			    " J "	[7/10]		jnz	L004A

The real code snippet is this:


RESET:		; Power-ups are vectored to here, where
		;   things are initialised.

	DI			; Disable interrupts,
	SIMASK	00001111B	;   and mask them out to make sure,
				;   as some routines may re-enable interrupts
				;   during initialisation.

	SOD	LO		; So screen will not be written to.

	LXI	B,0		; Do nothing for about 1/2 second,
RSTLOP:	DCX	B		;   while things warm up.
	MOV	A,B		; NB this loop doesn't use RAM.
	ORA	C
	JNZ	RSTLOP


Having the routine names and macros all to hand really makes reading the code a lot easier when you're not used to 8085 assembler!
Pictures
Resources
Greaseweazle V3, the flux engine I used.
FluxEngine by David Given.
Shugart SA810-860 OEM Service Manual
Tandon TM848 User and Service Guide
Dave Dunfield's guide on hooking up an 8" drive.
Mark Ogden's DiskTools pages for all things ISIS and ISIS-II.
OmniFlop by 8-Bit Software, see also: OmniDisk.

All images and text © Adrian Graham 1999-2021 unless otherwise noted using words. Also on