• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Announcing ZuluSCSI - A file-based SCSI device emulator

pgreenland

Well-known member
@rabbitholecomputing Just added a ZuluSCSI to the SE/30 I'm restoring but having a few issues.

Updated firmware to 1.0.2 and confirmed in the log file.

Dropped a blank 64MB HD0.img onto the SD card.

Drive is detected and with SW1 set I can initialise the disk using Disk Tools without any problems, all be it at a slightly strange ~16MB (related to the whitelisted drive geometry?) The drive is mounted after etc.

Installed to the drive via floppy disks as if using a "real" hard drive, all went well. Ended on a successful install message and prompt to reboot.

System refuses to boot from the drive though for some reason.

With debug enabled I see a few SCSI transactions as the machine is turned on and get a few led flashes but end up getting prompted for a boot disk.

I may be doing something monumentally stupid with the mac, as this is my first step into retro and board seems to be performing well aside from the not booting issue.

Will look to try @frankz and your suggestions above and report any progress. If you're aware of other customers having issues please let me know / if there's anything additional I could do to try debugging the problem.

Great work btw, its a really neat looking little unit :cool:

Phil
 

rabbitholecomputing

Vendor The First
@rabbitholecomputing Just added a ZuluSCSI to the SE/30 I'm restoring but having a few issues.

Updated firmware to 1.0.2 and confirmed in the log file.

Dropped a blank 64MB HD0.img onto the SD card.

Drive is detected and with SW1 set I can initialise the disk using Disk Tools without any problems, all be it at a slightly strange ~16MB (related to the whitelisted drive geometry?) The drive is mounted after etc.
Once it's initialized, you can re-partition it and make it use the full amount of space, within Disk Tools, but it must be done in that order. Thanks, Apple!
Installed to the drive via floppy disks as if using a "real" hard drive, all went well. Ended on a successful install message and prompt to reboot.
Sounds textbook-successful so far...
System refuses to boot from the drive though for some reason.
Strange. Are there any other devices on the SCSI bus?
With debug enabled I see a few SCSI transactions as the machine is turned on and get a few led flashes but end up getting prompted for a boot disk.
If you boot from floppy, does Finder see and mount the installed filesystem? If not, there's something possibly going on there.
I may be doing something monumentally stupid with the mac, as this is my first step into retro and board seems to be performing well aside from the not booting issue.

So far, there's nothing obviously wrong about the config. It seems simple. Can you confirm termination is enabled, since it wasn't mentioned? If you could open a new discussion and provide a debug log of the Zululog during an attempted boot, https://github.com/ZuluSCSI/ZuluSCSI-firmware/discussions/new

Will look to try @frankz and your suggestions above and report any progress. If you're aware of other customers having issues please let me know / if there's anything additional I could do to try debugging the problem.

I don't have an SE/30 to test with here, but it works fine with my SE, and with an LC III, so this is strange.
Great work btw, its a really neat looking little unit :cool:
Thanks Phil! It's been a lot of work, but I've been pleased with the results so far.
 

3lectr1cPPC

Well-known member
This seems like a great little device - always great to have more options! Any plans for a PowerBook version? BlueSCSI PB Edition has been out of stock for a while now and my 145 is in need of a drive replacement.
 

frankz

Member
I tried with a 60 MB image, which I created with qemu-img, initialized as a single Mac OS Standard partition with Drive Setup in a Mac OS 9 environment running in qemu, and with System 6.0.8 installed on it from the Apple Legacy Recovery CD. It does not boot the Mac Plus at all... after the usual dark gray screen, the screen just turns to black.

I hope I’ll manage to undo the terminator diode modification later today. For now, here is the debug log:

[0ms] DIPSW3 is ON: Enabling SCSI termination
[18ms] SD card detected, FAT32 volume size: 7572 MB
[18ms] SD MID: 0x03, OID: 0x53 0x44
[19ms] SD Name: SS08G
[19ms] SD Date: 6/2014
[19ms] SD Serial: 0x7F5B1E2A
[20ms] Reading configuration from zuluscsi.ini
[20ms] Active configuration:
[24ms] -- SelectionDelay: 0
[702ms] Finding HDD images in directory /:
[703ms] -- Opening /HD1_512.hda for id:1 lun:0
[708ms] ---- Image file is contiguous.
[708ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 122880 is not divisible.
[748ms] SCSI ID:1 BlockSize:512 Type:0 Quirks:0 ImageSize:61440kB
[1252ms] SCSI PHY operating mode: PIO
[1252ms] Initialization complete!
[1252ms] Platform: ZuluSCSI v1.0
[1253ms] FW Version: 1.0.2 May 17 2022 08:12:51
[30407ms] DBG BUS RESET
[30408ms] DBG BUS RESET
[30653ms] DBG -- BUS_BUSY
[30653ms] DBG -- BUS_FREE
[30654ms] DBG -- BUS_BUSY
[30654ms] DBG -- BUS_FREE
[30655ms] DBG -- BUS_BUSY
[30656ms] DBG -- BUS_FREE
[30657ms] DBG -- BUS_BUSY
[30657ms] DBG -- BUS_FREE
[30658ms] DBG -- BUS_BUSY
[30658ms] DBG -- BUS_FREE
[30659ms] DBG -- BUS_BUSY
[30660ms] DBG ---- SELECTION: 1
[30660ms] DBG ---- COMMAND: Read6
[30660ms] DBG ------ OUT: 0x08 0x00 0x00 0x00 0x01 0x00
[30661ms] DBG ------ Read 1x512 starting at 0
[30662ms] DBG ---- DATA_IN
[30700ms] DBG ---- Total IN: 512 OUT: 0
[30700ms] DBG ---- STATUS: 0 GOOD
[30703ms] DBG ---- MESSAGE_IN
[30703ms] DBG ------ IN: 0x00
[30704ms] DBG -- BUS_FREE
[30705ms] DBG -- BUS_BUSY
[30705ms] DBG ---- SELECTION: 1
[30706ms] DBG ---- COMMAND: Read6
[30706ms] DBG ------ OUT: 0x08 0x00 0x00 0x40 0x17 0x00
[30706ms] DBG ------ Read 23x512 starting at 64
[30707ms] DBG ---- DATA_IN
[30790ms] DBG ---- Total IN: 11776 OUT: 0
[30790ms] DBG ---- STATUS: 0 GOOD
[30793ms] DBG ---- MESSAGE_IN
[30793ms] DBG ------ IN: 0x00
[30794ms] DBG -- BUS_FREE
[30794ms] DBG -- BUS_BUSY
[30794ms] DBG ---- SELECTION: 1
[30795ms] DBG ---- COMMAND: Read6
[30795ms] DBG ------ OUT: 0x08 0x00 0x00 0x01 0x01 0x00
[30796ms] DBG ------ Read 1x512 starting at 1
[30796ms] DBG ---- DATA_IN
[30832ms] DBG ---- Total IN: 512 OUT: 0
[30832ms] DBG ---- STATUS: 0 GOOD
[30835ms] DBG ---- MESSAGE_IN
[30835ms] DBG ------ IN: 0x00
[30836ms] DBG -- BUS_FREE
[30836ms] DBG -- BUS_BUSY
[30837ms] DBG -- BUS_FREE
[30837ms] DBG ---- SELECTION: 1
[30837ms] DBG ---- COMMAND: TestUnitReady
[30838ms] DBG ------ OUT: 0x00 0x00 0x00 0x00 0x00 0x00
[30838ms] DBG ---- STATUS: 0 GOOD
[30841ms] DBG ---- MESSAGE_IN
[30841ms] DBG ------ IN: 0x00
[30842ms] DBG -- BUS_FREE
[30842ms] DBG -- BUS_BUSY
[30843ms] DBG ---- SELECTION: 1
[30843ms] DBG ---- COMMAND: ReadCapacity
[30844ms] DBG ------ OUT: 0x25 0x00 0x00 0x00 0x00 0x00
[30844ms] DBG ------ OUT: 0x00 0x00 0x00 0x00
[30845ms] DBG ---- DATA_IN
[30845ms] DBG ---- Total IN: 8 OUT: 0
[30846ms] DBG ---- STATUS: 0 GOOD
[30848ms] DBG ---- MESSAGE_IN
[30849ms] DBG ------ IN: 0x00
[30849ms] DBG -- BUS_FREE
[30850ms] DBG -- BUS_BUSY
[30851ms] DBG ---- SELECTION: 1
[30851ms] DBG ---- COMMAND: Read6
[30852ms] DBG ------ OUT: 0x08 0x00 0x00 0x01 0x01 0x00
[30852ms] DBG ------ Read 1x512 starting at 1
[30853ms] DBG ---- DATA_IN
[30857ms] DBG ---- Total IN: 512 OUT: 0
[30857ms] DBG ---- STATUS: 0 GOOD
[30860ms] DBG ---- MESSAGE_IN
[30860ms] DBG ------ IN: 0x00
[30861ms] DBG -- BUS_FREE
[30862ms] DBG -- BUS_BUSY
[30862ms] DBG ---- SELECTION: 1
[30863ms] DBG ---- COMMAND: Read6
[30863ms] DBG ------ OUT: 0x08 0x00 0x00 0x01 0x01 0x00
[30863ms] DBG ------ Read 1x512 starting at 1
[30864ms] DBG ---- DATA_IN
[30868ms] DBG ---- Total IN: 512 OUT: 0
[30869ms] DBG ---- STATUS: 0 GOOD
[30871ms] DBG ---- MESSAGE_IN
[30872ms] DBG ------ IN: 0x00
[30872ms] DBG -- BUS_FREE
[30873ms] DBG -- BUS_BUSY
[30873ms] DBG ---- SELECTION: 1
[30874ms] DBG ---- COMMAND: Read6
[30874ms] DBG ------ OUT: 0x08 0x00 0x00 0x02 0x01 0x00
[30875ms] DBG ------ Read 1x512 starting at 2
[30875ms] DBG ---- DATA_IN
[30879ms] DBG ---- Total IN: 512 OUT: 0
[30880ms] DBG ---- STATUS: 0 GOOD
[30882ms] DBG ---- MESSAGE_IN
[30883ms] DBG ------ IN: 0x00
[30883ms] DBG -- BUS_FREE
[30884ms] DBG -- BUS_BUSY
[30884ms] DBG ---- SELECTION: 1
[30885ms] DBG ---- COMMAND: Read6
[30885ms] DBG ------ OUT: 0x08 0x00 0x00 0x03 0x01 0x00
[30886ms] DBG ------ Read 1x512 starting at 3
[30886ms] DBG ---- DATA_IN
[30890ms] DBG ---- Total IN: 512 OUT: 0
[30891ms] DBG ---- STATUS: 0 GOOD
[30894ms] DBG ---- MESSAGE_IN
[30894ms] DBG ------ IN: 0x00
[30894ms] DBG -- BUS_FREE
[30895ms] DBG -- BUS_BUSY
[30896ms] DBG ---- SELECTION: 1
[30896ms] DBG ---- COMMAND: Read6
[30897ms] DBG ------ OUT: 0x08 0x00 0x00 0x04 0x01 0x00
[30897ms] DBG ------ Read 1x512 starting at 4
[30898ms] DBG ---- DATA_IN
[30902ms] DBG ---- Total IN: 512 OUT: 0
[30902ms] DBG ---- STATUS: 0 GOOD
[30905ms] DBG ---- MESSAGE_IN
[30905ms] DBG ------ IN: 0x00
[30906ms] DBG -- BUS_FREE
[30907ms] DBG -- BUS_BUSY
[30907ms] DBG ---- SELECTION: 1
[30908ms] DBG ---- COMMAND: Read6
[30908ms] DBG ------ OUT: 0x08 0x00 0x00 0x05 0x01 0x00
[30908ms] DBG ------ Read 1x512 starting at 5
[30909ms] DBG ---- DATA_IN
[30913ms] DBG ---- Total IN: 512 OUT: 0
[30913ms] DBG ---- STATUS: 0 GOOD
[30916ms] DBG ---- MESSAGE_IN
[30917ms] DBG ------ IN: 0x00
[30917ms] DBG -- BUS_FREE
[30918ms] DBG -- BUS_BUSY
[30918ms] DBG -- BUS_FREE
[30918ms] DBG ---- SELECTION: 1
[30919ms] DBG ---- COMMAND: Read6
[30919ms] DBG ------ OUT: 0x08 0x00 0x00 0x06 0x01 0x00
[30920ms] DBG ------ Read 1x512 starting at 6
[30920ms] DBG ---- DATA_IN
[30925ms] DBG ---- Total IN: 512 OUT: 0
[30925ms] DBG ---- STATUS: 0 GOOD
[30928ms] DBG ---- MESSAGE_IN
[30928ms] DBG ------ IN: 0x00
[30928ms] DBG -- BUS_FREE
[30929ms] DBG -- BUS_BUSY
[30930ms] DBG ---- SELECTION: 1
[30930ms] DBG ---- COMMAND: Read6
[30931ms] DBG ------ OUT: 0x08 0x00 0x00 0x07 0x01 0x00
[30931ms] DBG ------ Read 1x512 starting at 7
[30932ms] DBG ---- DATA_IN
[30936ms] DBG ---- Total IN: 512 OUT: 0
[30936ms] DBG ---- STATUS: 0 GOOD
[30939ms] DBG ---- MESSAGE_IN
[30939ms] DBG ------ IN: 0x00
[30940ms] DBG -- BUS_FREE
[30941ms] DBG -- BUS_BUSY
[30941ms] DBG ---- SELECTION: 1
[30942ms] DBG ---- COMMAND: Read6
[30942ms] DBG ------ OUT: 0x08 0x00 0x00 0x08 0x01 0x00
[30943ms] DBG ------ Read 1x512 starting at 8
[30943ms] DBG ---- DATA_IN
[30947ms] DBG ---- Total IN: 512 OUT: 0
[30948ms] DBG ---- STATUS: 0 GOOD
[30951ms] DBG ---- MESSAGE_IN
[30951ms] DBG ------ IN: 0x00
[30951ms] DBG -- BUS_FREE
[30952ms] DBG -- BUS_BUSY
[30952ms] DBG ---- SELECTION: 1
[30953ms] DBG ---- COMMAND: Read6
[30953ms] DBG ------ OUT: 0x08 0x00 0x04 0x08 0x01 0x00
[30954ms] DBG ------ Read 1x512 starting at 1032
[30954ms] DBG ---- DATA_IN
[30959ms] DBG ---- Total IN: 512 OUT: 0
[30959ms] DBG ---- STATUS: 0 GOOD
[30962ms] DBG ---- MESSAGE_IN
[30962ms] DBG ------ IN: 0x00
[30963ms] DBG -- BUS_FREE
[30964ms] DBG -- BUS_BUSY
[30965ms] DBG ---- SELECTION: 1
[30965ms] DBG ---- COMMAND: Read6
[30966ms] DBG ------ OUT: 0x08 0x00 0x00 0x00 0x01 0x00
[30966ms] DBG ------ Read 1x512 starting at 0
[30967ms] DBG ---- DATA_IN
[30971ms] DBG ---- Total IN: 512 OUT: 0
[30971ms] DBG ---- STATUS: 0 GOOD
[30974ms] DBG ---- MESSAGE_IN
[30974ms] DBG ------ IN: 0x00
[30975ms] DBG -- BUS_FREE
[30976ms] DBG -- BUS_BUSY
[30976ms] DBG ---- SELECTION: 1
[30977ms] DBG ---- COMMAND: Read6
[30977ms] DBG ------ OUT: 0x08 0x00 0x00 0x40 0x01 0x00
[30977ms] DBG ------ Read 1x512 starting at 64
[30978ms] DBG ---- DATA_IN
[30982ms] DBG ---- Total IN: 512 OUT: 0
[30983ms] DBG ---- STATUS: 0 GOOD
[30985ms] DBG ---- MESSAGE_IN
[30986ms] DBG ------ IN: 0x00
[30986ms] DBG -- BUS_FREE
[30990ms] DBG -- BUS_BUSY
[30990ms] DBG ---- SELECTION: 1
[30991ms] DBG ---- COMMAND: Read6
[30991ms] DBG ------ OUT: 0x08 0x00 0x00 0x76 0x24 0x00
[30992ms] DBG ------ Read 36x512 starting at 118
[30992ms] DBG ---- DATA_IN
[31125ms] DBG ---- Total IN: 18432 OUT: 0
[31126ms] DBG ---- STATUS: 0 GOOD
 

loplop

Well-known member
This seems like a great little device - always great to have more options! Any plans for a PowerBook version? BlueSCSI PB Edition has been out of stock for a while now and my 145 is in need of a drive replacement.
I just bought a 145b, so I'd be interested in that, also.
 

frankz

Member
I tried with a 60 MB image, which I created with qemu-img, initialized as a single Mac OS Standard partition with Drive Setup in a Mac OS 9 environment running in qemu, and with System 6.0.8 installed on it from the Apple Legacy Recovery CD. It does not boot the Mac Plus at all... after the usual dark gray screen, the screen just turns to black.

I hope I’ll manage to undo the terminator diode modification later today. For now, here is the debug log:
I have undone the diode modification and provided power via the USB connector. The problem still persists: with a known-good drive image (one which used to work with SCSI2SD) I can boot to Finder, but as soon as I try to copy a file onto the HD, the Mac bombs.
 

rabbitholecomputing

Vendor The First
I have undone the diode modification and provided power via the USB connector. The problem still persists: with a known-good drive image (one which used to work with SCSI2SD) I can boot to Finder, but as soon as I try to copy a file onto the HD, the Mac bombs.
I wonder if this has something to do with the fact that you're initializing the drive with Mac OS 9. That seems...unnecessary, and ill-advised, given that Mac OS 9 was PPC-only. Can you try booting one of these pre-made images and see if you're able to copy reliably?
 

frankz

Member
I tried with the images for System 6.0.8 and System 7.0.1. Neither boots: the Mac shows the floppy disk icon with the question mark, but the question mark is NOT flashing, and the red LED on the ZuluSCSI stays steady on. If I insert a bootable floppy in the drive, the Mac does not attempt to boot from it. It seems the boot process is stuck.

Debug log is attached. Do I need to suspect a defective unit?
 

Attachments

  • zululog.txt
    26.8 KB · Views: 8

rabbitholecomputing

Vendor The First
I tried with the images for System 6.0.8 and System 7.0.1. Neither boots: the Mac shows the floppy disk icon with the question mark, but the question mark is NOT flashing, and the red LED on the ZuluSCSI stays steady on. If I insert a bootable floppy in the drive, the Mac does not attempt to boot from it. It seems the boot process is stuck.

Debug log is attached. Do I need to suspect a defective unit?
Not yet. Thanks for the log. Why do you have SelectionDelay set to zero in your zuluscsi.ini? That isn't necessary on any mac other than the Plus, and that's only because it's SCSI implementation was not entirely compliant to the specification.

Please remove that and try again.
 

rabbitholecomputing

Vendor The First
And indeed I have a Mac Plus, did I forget to mention it?
Can you set EnableSelLatch=1 in the [SCSI] section of your zuluscsi.ini? This is the equivalent of checking the "Respond to short SCSI selection pulses" in SCSI2SD-util, in the context of a SCSI2SD V5.x

On the CodeSrc wiki, Michael McMaster (creator of SCSI2SD), back in 2017, wrote "The Mac Plus is troublesome as it's bootrom code doesn't follow the SCSI standards. The SCSI standards recommend a SCSI selection abort timeout of 250ms, but the Mac Plus bootroms quit before even 1ms has expired"

It would also be worth making sure you de-energize the board completely, before you try booting again. Is it safe to assume that you're powering it separately?
 
Last edited:

frankz

Member
Yes, I am powering the ZuluSCSI mini separately, via the USB port. I tried setting EnableSelLatch to 1, but unfortunately it still can’t boot. I am attaching the new debug log.
 

Attachments

  • zululog.txt
    6.8 KB · Views: 5

rabbitholecomputing

Vendor The First
Thanks for the logs, @frankz . I was able to get my Mac Plus to power up, after some surgery, and can now replicate the same behavior here, with my Mac Plus. Stay tuned. We'll get this figured out. It may not be until Tuesday/Wednesday next week though, as I'll be going off-grid to go camping for the Memorial Day holiday weekend.
 

frankz

Member
Thanks for the logs, @frankz . I was able to get my Mac Plus to power up, after some surgery, and can now replicate the same behavior here, with my Mac Plus. Stay tuned. We'll get this figured out. It may not be until Tuesday/Wednesday next week though, as I'll be going off-grid to go camping for the Memorial Day holiday weekend.
Thank you so much, I appreciate that! And of course it’s not a life-or-death situation, so no hurry.
 

loplop

Well-known member
@rabbitholecomputing : with a Powerbook 145B incoming, I'm in search of a SD-based SCSI solution. I'm very happy with my ZuluSCSI mini, and curious if you know when the ZuluSCSI PowerBook Edition will be available?
 

pgreenland

Well-known member
Once it's initialized, you can re-partition it and make it use the full amount of space, within Disk Tools, but it must be done in that order. Thanks, Apple!

Sounds textbook-successful so far...

Strange. Are there any other devices on the SCSI bus?

If you boot from floppy, does Finder see and mount the installed filesystem? If not, there's something possibly going on there.


So far, there's nothing obviously wrong about the config. It seems simple. Can you confirm termination is enabled, since it wasn't mentioned? If you could open a new discussion and provide a debug log of the Zululog during an attempted boot, https://github.com/ZuluSCSI/ZuluSCSI-firmware/discussions/new



I don't have an SE/30 to test with here, but it works fine with my SE, and with an LC III, so this is strange.

Thanks Phil! It's been a lot of work, but I've been pleased with the results so far.
I'm the Mac SE/30 guy ;) - Have opened a discussion as suggested on Github: https://github.com/ZuluSCSI/ZuluSCSI-firmware/discussions/11

Thanks again,

Phil
 

pgreenland

Well-known member
I'm the Mac SE/30 guy ;) - Have opened a discussion as suggested on Github: https://github.com/ZuluSCSI/ZuluSCSI-firmware/discussions/11

Thanks again,

Phil
Solved my issue for the moment.

On the SE/30, for me at least formatting with Apple HD SC Setup (either patched or unpatched) leads to a driver partition that doesn't seem to like the ZuluSCSI.

Formatting with Lido however works perfectly. I dropped it onto a 6.0.8 Disk Tools image with the help of an emulator before writing it to a floppy.
 
Top