Re: Help needed for reviving Widget hard drive

From: pschaefer <dr.p.schaefer_at_email.domain.hidden>
Date: Fri, 15 Aug 2008 11:22:36 -0700 (PDT)

It seems I have to use the web interface to get my message into the correct thread. So this is the next try:

Hello all,

> IIRC, the Sun drives are low-level formatted by connecting a serial
> terminal to the controller and typing in the appropriate commands. ie. no
> special hardware or software is required, but you do need to know how to
> connect to it and what commands to issue.

Many years ago I did some reverse engineering to the Sunfile firmware. I have two non-working units and wanted to get at least one running (without success -- and because the ebay prices for working ProFiles or Widgets were beyond any reason, this led to the IDEfile project).

There is a 3 pin connector at the end of the board, close to the MFM data cable. First pin is Gnd, second TxD, third RxD. Or like that, it's eight years ago ;-). Set up your terminal program to 2k4, no parity. Press Enter or Space bar a few times - when you receive "Lisa Diagnostic Utility Routines Rev. D" or "oooh,oooh", you got it.

The commands are:

JumpTable    LJMP _2D84        ; A
        LJMP _2D8B        ; C
        LJMP Cmd_DumpBlock    ; D: Read and dump current sector (532
bytes)
        LJMP Cmd_Format        ; F: format drive
        LJMP _2DF8        ; H
        LJMP Cmd_NOP        ; N: do nothing
        LJMP Cmd_Read        ; R: read block into buffer
        LJMP Cmd_Verify        ; V: verify drive
        LJMP Cmd_Write        ; W: -
        LJMP Cmd_Xecute        ; X: -
        LJMP Cmd_Restart    ; ctrl-L: restart
        LJMP Cmd_Burnin        ; BI: 10 hour burnin test
        LJMP Cmd_BC        ; BC: -
        LJMP Cmd_FF        ; F!: ???
        LJMP Cmd_MS        ; MS: -
        LJMP Cmd_PS        ; PS: -
        LJMP Cmd_RR        ; RR: read random block (LBA 00.TH1.TL1)
        LJMP Cmd_Rezero        ; RZ: rezero drive to track 0
        LJMP Cmd_ParkHeads    ; PK: park heads
        LJMP Cmd_DR        ; DR: dump 128 bytes data RAM
        LJMP Cmd_LimitFlag    ; CL: display Limit flag status
        LJMP Cmd_Rezero1    ; RZ!: rezero drive to track 1

"F" starts the formatting process. You will be asked for the drive's geometry data and whether or not you want to limit the capacity to 16MB. I never had any success with this. Either formatting took infinite time or I got the "Drive has over 30 defects replace drive !!!!" message (with a known good drive that runs fine at a PC's WD1003 controller).

"BI" formats the drive and starts a 10hr self test. This test is not fully implemented, some steps are missing. Besides that, some of the commands are also not implemented at all, and there is a lot of dead code which is never accessed by JMP or CALL commands. So it seems that the firmware was released before it was finished, and the unfinished features were killed. Usual problem -- project management was faster than engineering.

There are many "JNB F0, $+5" to skip a LJMP -- this has never worked at all! To skip this instruction, you need six bytes.

I think, as the copyright for the code is owned by Sun Remarketing, I am not allowed to post my commented disassembly here.

> The Widget LLF procedure does appear to be a well kept secret.

There is a theory that formatting is done by just sending a command to the drive. Contrary to the ProFile, the Widget (Pepsi) team had enough memory available to include all features at the same time. 2k in the Z8 (341-0288-A), and another 8k in an external 2764 EPROM (341-0289- D).

The first batch of Widget controller boards was shipped with Z8-03 piggybacks instead of the mask ROM Z8 (money did not matter?). From that code, one should be able to figure out the supported commands. However, without any hints on the memory mapping or the function of the 40pin gate array, you're completely in the dark. So I gave up after a few days and decided.

Besides formatting, there has to be an alignment procedure. Track positioning is done by a two-phase signal that is derived from a glass with black stripes on it. It's the same principle as for the computer mouse. The amplifiers for this tracking circuit are adjusted through six small pots located on the pcb on the back. To adjust these, you need the drive's arm to move in a smooth way back and forth. This generates two sine waves, 90° out of phase.

So finding the command set, or finding someone with proper documentation of the drive will be the next big challenge...

Best regards
Patrick

--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "LisaList" group. To post to this group, send email to lisalist_at_email.domain.hidden To unsubscribe from this group, send email to lisalist+unsubscribe_at_email.domain.hidden For more options, visit this group at http://groups.google.com/group/lisalist?hl=en -~----------~----~----~----~------~----~------~--~--- Received on 2015-07-15 16:44:21

This archive was generated by hypermail 2.4.0 : 2020-01-13 12:15:15 EST