Previous Thread
Next Thread
Print Thread
Page 30 of 39 1 2 28 29 30 31 32 38 39
Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
8x300 firmware for the aforementioned harddisk controller got dumped. Looks sane, too:
Code:
00000000: E036            jmp  0036h
00000002: E029            jmp  0029h
00000004: B021            nzt  liv0,1,01h
00000006: B704            nzt  liv7,0,04h
00000008: B324            nzt  liv3,1,04h
0000000A: 1781            move liv7,4,r1
0000000C: 8109            xec  r1,09h
0000000E: 8119            xec  r1,19h
00000010: E004            jmp  0004h
00000012: C700            xmit 00h,ivl
<...>


There's another 8x300 disassembler out there -- http://amigan.1emu.net/releases/Dis8X305.readme -- could be useful.

Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
Apparently, these are bitwise identical to firmware of DEC Pro controller Rev.1 (P/N 54-15134-01) -- ROMs 071B2, 072B2, 073B2... wonder if DEC published firmware source for it?

Joined: Jan 2011
Posts: 206
Senior Member
Offline
Senior Member
Joined: Jan 2011
Posts: 206
Originally Posted By shattered
Apparently, these are bitwise identical to firmware of DEC Pro controller Rev.1 (P/N 54-15134-01) -- ROMs 071B2, 072B2, 073B2... wonder if DEC published firmware source for it?


that's a useful data point. is the pro hard disk controller schematic somewhere? I think I looked for it when this came up and I don't think I found it

Joined: Feb 2012
Posts: 14
B
Member
Offline
Member
B
Joined: Feb 2012
Posts: 14
I've been working a little bit off-and-on for years on reverse-engineering the WD1000 and WD1001 disk controllers (8X300/8X305-based), and their clones. I've only made any significant progress within the last few days, after hacking together my own disassesmbler which deals with the Fast I/O Select PROM. I do NOT recommend using this disassembler yet, for reasons that are explained in the README, but I've put it on github:

https://github.com/brouhaha/s8x30x

I've made some progress interpreting the firmware of an early WD1000, which only had 512 words of firmware, and didn't support run-time configurable sector size selection. So far I've figured out how they handle the host reading and writing the task file, dispatching the commands, and much of the sector ID search.

Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
Originally Posted By Al Kossow
is the pro hard disk controller schematic somewhere?


Apparently not. There's schematic of second clone, though: http://www.emuverse.ru/downloads/computers/DVK/docs/kzhd.djvu

The story, apparently, is that once Pro got cloned (with its disk controller), the design was reused in the DVK series, as a Q-bus controller. That document is for the DVK one.

Joined: Feb 2012
Posts: 14
B
Member
Offline
Member
B
Joined: Feb 2012
Posts: 14
I've put my work in progress on reverse-engineering the original WD1000 firmware on github:

https://github.com/brouhaha/wd100x

I use my own assembler syntax output by my previously mentioned s8x30x disassembler, so at the present there is no assembler for it. I expect to have an assembler in the not-too-distant future.

Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
I think (after quick look at kzhd.djvu) that dec's controller was derived from wd1000 (at least the fast select layout looks similar) and I've tried disassembling its firmware, but something is wrong (python 3.4.3):

Code:
% /tmp/s8x30x/dis8x30x /tmp/kr1656re3-4.bin /tmp/kr1656re3-5.bin 
Traceback (most recent call last):
  File "/tmp/s8x30x/dis8x30x", line 116, in <module>
    disassemble(s8x30x, memory, show_obj = args.listing, output_file = args.output)
  File "/tmp/s8x30x/dis8x30x", line 59, in disassemble
    symtab_by_value = pass1(s8x30x, fw, base)
  File "/tmp/s8x30x/dis8x30x", line 30, in pass1
    (dis, operands, fields) = s8x30x.disassemble_inst(fw, pc, disassemble_operands = False)
  File "/tmp/s8x30x/s8x30x.py", line 354, in disassemble_inst
    inst, form, fields = self.inst_search(fw, pc)
  File "/tmp/s8x30x/s8x30x.py", line 339, in inst_search
    form, fields = self.form_search(fw, pc, inst)
  File "/tmp/s8x30x/s8x30x.py", line 315, in form_search
    if OT.sr in form.operands and not sr.is_src_reg():
  File "/tmp/s8x30x/s8x30x.py", line 84, in is_src_reg
    if self >= self.liv0:
AttributeError: 'Reg' object has no attribute 'liv0'

Joined: Feb 2012
Posts: 14
B
Member
Offline
Member
B
Joined: Feb 2012
Posts: 14
The WD1000 and WD1001 have very similar fast select, so it's not easy to distinguish them based on that. The surest way I know to distinguish them is that the WD1000 has a WD1100-04 CRC chip, while the WD1001 has a WD1100-06 ECC/CRC chip.

The WD1001 also has a WD1100-07 and WD1100-09, but it's possible that those could be used on late revisions of the WD1000, so I wouldn't assume that the presence of those is definitive.

The problem you found is due to an improvement in how enumerations work in Python 3.5. I've just pushed an update which I've tested with Python 3.4.5, so with a bit of luck it should work with Python 3.4.3.

I do all my normal development with Python 3.5.1 or newer, so please let me know if you run into any other Python 3.4 incompatibilities in future versions.

If a copy of the DEC PROMs can be made available, I'd appreciate it.

Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
Apparently, Pro350 controller uses WD1100-01, -04, -05 and -12 (looking at the schematics of the clone.)

Joined: May 2012
Posts: 541
S
Senior Member
OP Offline
Senior Member
S
Joined: May 2012
Posts: 541
Help, my floppy disk is rusting smile



This particular floppy is not interesting, but a few others in the same pile are -- but they use an unique format that has to be emulated first (http://torlus.com/floppy/forum/viewtopic.php?f=19&t=1384)

Page 30 of 39 1 2 28 29 30 31 32 38 39

Link Copied to Clipboard
Who's Online Now
1 members (robcfg), 47 guests, and 0 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,837
Posts116,231
Members4,921
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.5