Sinclair Spectrum+ Tape emulation: Métal Hurlant

So I’ve tried for years now to get a Spectrum +, or a ‘toast rack’ Spectrum 128k, and met no success at all. I have bid unsuccessfully on over 24 systems, with no luck at all. However on a business trip to the UK, I bid on 8 systems, and won 4.

One of many

So now I have too many, which I’ll have to flip a few as I don’t need so many, but for me it’s been super interesting as the whole UK 80’s scene was an isolated parallel software society, that a few software publishers ‘broke out’ once there was common hardware platforms in the 16bit (ST/Amiga), and especially in the Play Station 1 era.

A seeming 100% catastrophic failure of these machines is the keyboard.

dried out contacts

The plastics tend to dry up and disintegrate over the decades, leaving a dead keyboard. However since it’s such a common problem people do make modern replacements.

closeup of the damage

Here is a closeup of the damage, and you can see the clear breakage.

view of the domes

While the keyboard is disassembled it’s a good time to clean the domes, to make sure there is no debris inside, and give it a light wash.

Reassembly

One thing that caught me off guard is that the membrane is really made up of 3 layers, and that they need to be pressed together to make it fully work. So the cable that goes under the collar needs to be tight. Many videos recommend pushing the cable slightly towards the keyboard assembly to give it that extra bit of tension as you screw it down to give it that little extra push to press the layers together.

After all that fun, the keyboard is working and now I can continue onto the next part!

Software

As always one of the big challenges with old machines is getting software loaded. Media deteriorates, becomes scarce, and of course some titles become more expensive than the machines. So what’s a pirate to do?

Luckily a discount ‘toy’ computer from the 80’s also used ‘toy’ storage, in this case the humble audio Philips compact audio cassette. And many of these tapes have been ripped, and converted to a ‘tap’ format, for emulation.

So first you’d think that it’s a simple matter of converting the tap file to a sound file, and playing the resulting file to the computer, and bingo you are up and running! Except it’s not quite that simple.

Digital to analog

This is the easiest part, is the tap conversion, I’m using Igor Maznitsa’s zxtap-to-wav, which is pretty simple to go to a 44100khz

zxtap2wav-windows-386.exe -a -f 44100 -s -i IM2.TAP -o impossibleMissionII.wav

  TAP2WAV converter of .TAP files (a format for ZX-Spectrum emulators) into its .WAV image (PCM, mono).
  Project page : https://github.com/raydac/zxtap-to-wav
        Author : Igor Maznitsa (http://www.igormaznitsa.com)
       Version : 1.0.1

Detected data blocks : .P.D.C.D.D.D.D.D.D
The Result WAV file size is 11043 Kb
3.5mm jack
But we are living in a stereo world, but the ZX Spectrum is a monaural girl

Now you’d think we are good to go, however there is one more problem, and that is the mono plug in the Spectrum. As answered on stackexchange, by mcleod_ideafix, the fundamental problem is that odds are your sound card is stereo, your ‘headphone cable’ is also stereo. So instead of one nice big happy waveform, you’ll actually end up sending 2 waveforms down the stereo plug to the mono jack, that will introduce so much crosstalk that it’d be amazing that anything loads.

Inside the thread is a good explanation of how to fix the waveform to appear over both sides of the pin, but also this nice script to use sox to split for you:

#!/bin/bash
# wav2differential.sh - convert mono game tape audio to 2× stereo
# usage:   wav2differential.sh infile.wav
#          (creates  infile-differential.wav)
# scruss - 2016-06-07
# method by ‘mcleod_ideafix’; many thanks / greetz
#   — https://retrocomputing.stackexchange.com/a/774/439

base="${1%.wav}"
sox -q --norm=-3 "$1" -b 16 "${base}-n.wav"
sox -q  "${base}-n.wav" "${base}-ni.wav" vol -1.0
sox -q  --norm=-0.1 -M -c 1 "${base}-n.wav" -c 1 "${base}-ni.wav" "${base}-differential.wav"
rm -f  "${base}-n.wav" "${base}-ni.wav"

With the wav file in place, the next thing to do is to play it back to the spectrum. On the PC however in the age of multitasking you probably have a LOT of things going beep, and that’ll mess up the entire load process. Bring up the Volume Mixer, and mute everything that isn’t what you are using to play the wav file.

Mute them all!

The first few mistakes I made was thinking that I didn’t want to send too loud of a signal to the Spectrum, as it is voltage, and it probably doesn’t need that much. However the DAC is very hard of hearing, even by 80’s standards so that means you need to crank the volume to 100%

Overboost to 125%

As a matter of fact, go all the way to 125% if you are using VLC. Tapes load slow, expect anywhere for a minute for a 10kb program, and 5+ minutes for a 40kb program. Times vary depending on how the packed the waveform, fast loaders and other fun things.

Spectrum loading from Laptop

And yeah there we go, loading Impossible Mission II, converted from a .tap to wav, then split and combined waveform to load from a stereo plug.

Going overboard!

Now I have 3 ways!

In the last auction I inadvertly won, it included a joystick interface (that hangs OVER the keyboard, WTF?!), and a legit 1980’s Tape deck, the Ingersoll XK696. Shockingly it actually works! It did have it’s fair share of dust bunnies inside which needed promptly cleaning out, I tested with a ‘legit’ tape, a copy of startrike, and yeah, it loaded up fine! I do like how it’s got it’s own ‘monitor’ volume and speaker, along with nice big chunky buttons, and tactile feedback. Got to say I do like it, although yeah loading from tape is slow. But since I never did back in the day, there is something oddly weird about having to pace oneself because of the insanely slow peripherals. I wonder how slot in bps the 1541 was.

I also ordered a retro.care “MaxDuino TZXduino CASduino” loader which can read the tap files directly, and included a stereo to monaural RCA 3.5 cable in the bundle. Pitty it didn’t include a SD card, and I ended up buying some 4GB card for £5. Such is the price of wanting it immediately. It does let you set the baud rate from 1200/2400/3600 and a blistering overdrive of 3668? Short of an eye watering £90+ for a DivIDE/DivMMC board it does seem to be the budget way to go for someone who doesn’t want to waste all that time converting tap images to wav, then inverse wav to load from PC. But then again if you have 5+ minutes to load a program, you have time to convert files.

There does seem to be something oddly zen about loading from tape, and it makes one all the more hesitant to reboot as loading up something else is such a long process, and that is of course assuming that it even loads in the first place.

Also the other odd thing is that some programs/games want you to load tapes as if they are semi-random access needing you to stop and go on demand (maybe rewind too!). Granted other computers (MSX?) did include a control cable allowing rewind giving a more randomish access out of tape. It’s a limitation of the time, sadly and microdrives and floppies arrived too late, and failed to have any significant adoption to matter, sadly.

I don’t know if this will reach any audience, although there is some ‘retro wave’ going on since the unmentionable event of CNY 2019, and shut ins are getting retro. Although for me, it’s very interesting exploring this parallel and yet foreign experience of a retro past I never knew existed. Although I guess thanks to US Gold, many in the UK were well aware of American software from the likes of EA/Activision et al.

I forget where I heard the term “Métal Hurlant” although it does seem appropriate having a younger machine scream the programs of tape drive past to it’s earphone jack. But it’s most likely the French magazine, and my imagination of something cross between Jarre/Ulrich.

Lenslock: annoying DRM of the 1980s

So while I currently have no tape drive for my ZX Spectrum, loading totally legit tap files, got me into this fun thing, lenslock copy protection.

OK

But thanks to Simon Owen, there is this great emulator to an old physical dongal that’ll let you unlock the magical codes! LensKey doesn’t seem to scale to DPI that well, but it does work. And I was able to unlock Elite!

code..decoded

As you can see the weird pattern is reveled to be ‘j4’, you only get 3 chances, otherwise it’ll reset the Spectrum, and you HAVE TO LOAD FROM TAPE AGAIN. I can barely take it today, even with a dedicated MAX duino, tape emulator running at 3,850 baud, it’s just absolutely insane!

I need to write something sensible about tap files, and loading them to a physical machine, as it’s a bit more involved than I had first imagined. But it does work!!.. kinda.

Server in a can: Unbridled rage

Back nearly a decade ago, Apple was going to release a new Mac Pro. And it was goi to be unlike all the other computers, it was going to be compact, and stylish, a jet engine for the mind.

However instead, we got what everyone would know as the trash can.

big brain idea

So at the time i had this idea that I wanted a Xeon workstation in a nice portable form factor. And this little cylinder seemed to fir the bill. But things changed in my life, i was okay being tied down, and a regular Xeon desktop became my goto machine, a desktop would do just fine.

Then years later, an artist id commish to do some stuff was selling their Mac Pro, as they’d gone all in on Hackintosh, and this was my chance to get one on the cheap. As I’m on a business trip at the moment, I thought this would be a good time to test out what I had envisioned as the future of a personal server in a can.

A long while ago, I’d bought a newer/faster/larger flash for the Mac Pro, and it was a simple matter of hitting the Windows key + R and the machine boots up into an internet recovery mode, and will install OS X Mavericks over the wire. Which sounds great, but this is where the fun begins. Since I ordered. a NVMe M.2 module, it of course is too new for the 2013 machine, so I had to use a shim bridging the Mac’s NVMe SSD port to M.2 for my modern flash. And it never fit exactly right, and I kind of screwed it in incorrectly, but it held in place. Obviously flying bumped things around, as I had kind of figured, but I’m getting ahead of myself.

I didn’t take any big peripherals with me, as I figured I’d just get some new stuff, and didn’t worry about it at all. I picked up a View Sonic VX2770 for £45, I got this RED5 Gaming keyboard for £13, and I already had this Mad Catz 43714 mouse NIB with me. I think I paid $200 HKD or so a year ago, but I like the feel of this style of mouse, and was happy to bring it with me. Little did I know…

So after setting up a desk, and the system, it performed like crap. Worse it was locking up again at random times. I already was using Macs Fan Control to set the fan to 100%, and still it was locking up. I had guessed it’d taken a jostle too many, and I reseated the storage. And then on booting it back up I only got the blinking folder. Great, either it was dying, or I’d just killed it.

A quick jump on Amazon, and I found the “Timetec 512GB MAC SSD NVMe PCIe Gen3x4 3D NAND TLC”, which at a whopping £68 seemed like a good idea. And since it was SSD NVMe, it’d just slot into the Mac Pro, and life would be good. Or so I thought.

The first problem I ran into is that I couldn’t boot the mac into either diagnostics, or recovery mode. There is something really weird with a UK keyboard on a non UK machine. I think the 2013 (and probably many more) power up as American, and this is some kind of common issue with non American keyboards. Seriously why is the pipe,backslash on the lower row? Quotes is over 2? It’s a mess. And since I got my Mac Pro in Asia, maybe it defaults to Chinese? Japanese? Who knows?!

Crappy keyboard controller

Lucky for me, I had this ugly little thing with me for another project. And yeah holding down the ‘Win’+R button got me to recovery mode, with zero issues.

Loading Recovery

I still have to say, this is pretty cool. However what wasn’t cool, is loading the disk util, and yeah, NO FLASH detected. I have VMWare ESX 7.0 on USB, so booting that up, and yeah it totally sees the drive:

TIMTEC drive is spotted!

And of course, like an idiot, I installed VMware to at least make sure it’s working.

ESX on Mac

Yeah it’s booting fine.

By default the Mac Pro seems to be picking up bootable USB devices, so I pop in a Windows 10 MBR USB, and instead I get this:

Bad memory on the GPU? Bad cable? Bad monitor? I have no idea. At this point I’m thinking I’ve totally killed the machine, but a power cycle, and I’m back in ESX in no time. Something is up.

I pull the flash, and I can boot Windows 10 to the installer, but obviously there is no storage to install to. I try adding in a 16GB USB thumb drive, and … It won’t let you install to it. It appears that there is a way to prepare a USB drive for Windows 10 to install, but it’s not exactly something that is easy to do. However Mac OS X, doesn’t suffer this limitation and will let you install to whatever you want, so I install Mavericks to the 16GB drive, and yeah it’s booting. And SUPER slow. The flash still doesn’t show up, so I read the amazon page some more and find this tidbit:

My Macbook came with Mac OS Capitan as the operating system for recovery, and therefore did not detect the SSD. I had to create a High Sierra installer on a USB using another Mac and an app (DiskMaker) in order to reinstall the operating system from High Sierra. Once this was done, the SSD appeared available and I was able to install the operating system and upgrade without problem.” –Gilberto R. Rojina

Oh, now isnt’ that interesting? So of course I got to update my thumb drive, and of course 16GB isn’t enough space. Great. So I order a Elecife M.2 NVME Enclosure for £23, thinking I should be able to figure out once and for all if I can see the old drive, or maybe boot from it. I get the drive, plug in the storage, and Disk Util sees a drive, but will not mount it, nor is it selectable too boot from. The issue of course is that it’s APFS, which I guess cannot boot from external media? I have no idea, but I don’t have anything that critical on there, as I keep my stuff backed up on some cloud thing. So I do have a 128GB thumb drive on me, so I format the 1TB as HFS+, backup the drive, and and once more again reboot to the recovery mode, using the crap keyboard, to install Mavericks onto the 128GB flash. Thinking everything is going to be fine, I find this apple support page, with the needed links to get ‘old’ versions of MacOS.

These versions can be directly downloaded and installed without the store.

Another weird thing is that Mavericks won’t let me login to the Apple store. It notifies me on my phone, I approve it, but it never prompts for the verification. Maybe it’s too old? Anyways I install macOS Sierra, and do the upgrade.

Now running Sierra, I can use the store, and try to take the leap on my USB to Mojave. And of course disappointment strikes again:

You may not install to this volume because the computer is missing a firmware partition.

What the hell?! So now I’m trying to find out how to create a bootable USB installer from the download. That leads me to this fun page at apple. Apparently an ‘install installer to USB drive’ would be too complicated for Apple, so its hidden in a terminal command. Fantastic. Since I’m using that 128GB as my system, I grab that 16GB flash drive, and install the installer to that.

sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/SanDisk\ Fit

What an insane path to get this far. The tool will partition and format the drive, and now I can shut down, pop out the 128GB Sierra drive, and boot into the Mojave installer.

I didn’t take pictures, but by default the Mojave installer & DiskTool only show existing partitions. You have to right click on the drive, to expose the entire drive. This was an issue as I’d installed ESX onto the new storage. I clear the drive, and now I can finally install Mojave.

Home run?

Thinking it’s all over, I reboot into the Mac Pro, thinking everything should be fine, I have a properly fitting drive that is super fast, and It’s already 10.14.6 the latest and last version that lets me run 32bit stuff. Except that It’s slow. And unstable. No progress was seemingly made.

Trying to search ‘why is my Macintosh slow’ is, well a total waste of time. And it periodically locks hard making it extremely annoying.

Somehow I found this thread over on Apple support:

I have a quad-core CPU Mac Pro late 2013 (Model Identifier: MacPro6,1).  MacOS X 10.9.5. 
I have had all sorts of USB devices hooked up to it.  At any one time, I usually have all 4 ports filled.  I have a 3TB USB 3.0 disk that stores my large files, a USB mouse and keyboard (logitech with a usb mini dongle), a cable to charge my logitech USB cordless mouse, Lightning cable to my iPhone 5, and other things that I rotate in and out, like CF card reader, Audio Box USB audio interface from PreSonus, Sony Webcam, etc. 
About 3 months into having the Mac Pro, I noticed that my keyboard went dead in the middle of using it.  The mouse was dead too.  I blamed the RF dongle that they both share, because the Apple Magic Trackpad (bluetooth) I have still functioned.  Try as I might, I couldn't get the keyboard or mouse to work again, so I used the Magic Trackpad to restart the machine, and then my keyboard and mouse worked again. 
It wasn't until later that I realized that all the USB busses on the machine had frozen or "died" temporarily.  I realized it later because my USB hard drive complained about being "ejected improperly." 
Now I have had the USB die on the Mac Pro at least 15 times over the last month and a half.  Usually once every two days or so. 
I have tried (almost one by one) using some of the USB devices on the mac, and removing others to ascertain if it's a certain USB device that is causing this.  But the odd thing is that I never get a message from the OS like "xxx USB device is drawing too much power." 
I'm going a little nuts here because I cannot see any rhyme or reason to the USB interface lock ups.  And each time it happens, all the USB devices go dead until I restart.  Sometimes, I'm able to SSH into the machine from my iPhone and issue a "shutdown -h now" and even though I see the Mac OS X UI shutdown, it never fully halts.  I often have to hold the power button to get the machine to turn off. 
I really can't say if it's software related, hardware related or what.  I've tried to watch my workflow carefully to see if anything seems to make a pattern, but nothing yet. 
Any suggestions? Is anyone else seeing behavior like this?  Do we think it's a USB device... or is my Mac Pro flakey? -- Cheule

Wait the USB?

And to follow up, this thread over on Apple, that mentions:

"When I plugged in the same config on my new machine USB 3.0 directly it was very weird, devices would not remount and only show up if they were then when present at startup, and thruput was sluggish.  So I stopped using the in built USB 3.0 and grabbe the old belkin thunderbolt USB hub, and BAM it all works perfectly.  Better than that after testing the throuput , the belkin gave me 30-50% better performance that the inbuilt USB, that is without any hubs just direct." -- symonty Gresham

And sure enough another search about the USB setup seems to confirm it from Anandtech

Here we really get to see how much of a mess Intel's workstation chipset lineup is: the C600/X79 PCH doesn't natively support USB 3.0. That's right, it's nearly 2014 and Intel is shipping a flagship platform without USB 3.0 support. The 8th PCIe lane off of the PCH is used by a Fresco Logic USB 3.0 controller. I believe it's the FL1100, which is a PCIe 2.0 to 4-port USB 3.0 controller. 

Unreal. I notice as I try to use the machine more occasionally the mouse turns itself off. Replugging the mouse shows it powering up and immediately powering off. I turn on the annoying backlight of the keyboard, and yeah it powers down too, however reinserting it brings it back to life. Luckily I still have this A1296 Apple Wireless Magic Mouse with me, so I pair that and unplug the mouse, and everything else USB.

Mad Catz, the Mac KILLER
This mouse killed my Mac Pro

It was the mouse. I can’t believe it either. I am simply blown away how this could possibly be a thing. I haven’t ordered the thunderbolt to USB dock yet, as I really didn’t want to spend any money on this thing, it was a grab and go solution, that has proven itself not so much grab and go.

Finally getting somewhere

After 6 hours of working yesterday, I shut it down to give it a break for a few hours, and it’s been up some 12 hours so far, pain free. In 2022, the Xeon E5v2 processor just really isn’t worth lugging around, but I already had it, so when it comes to transport, it actually works out pretty well. I wonder if this would have been a good traveling solution 2013 onward, but the fact a mouse could basically bring the machine down makes me think I’d have gone totally insane trying this on the road. Just as the USB Win/Alt/Alt GR/FN keys not being able to trigger the recovery mode was also crazy.

I don’t know why Apple insists on such fragile machines, but maybe the new Arm stuff is better? I can’t justify one at the moment.

Updates in the field

I’m working on getting some local retro kit, and I’ll have more fun coming up. But this fun experience ate 4 days of my life, and the least I could do is document it. I don’t know if it’ll help anyone in the future, maybe once these become iconic collectable, like the Mac Cube. Although as a former cube owner, those at least didn’t freak out when you used a 3rd party mouse.

How to fix rsync slowing down over time (SOLVED)

(This is a guest post by Antoni Sawicki aka Tenox)

I often make copies of large data archives, typically many TB in size. I found that rsync transfer speed slows down over time, typically after a few GB, especially when copying large files. Eventually reaching crawl speeds of just few KB/s. The internet is littered with people asking the same question or why rsync is slow in general. There really isn’t a good answer out there, so I hope this may help.

After doing some quick profiling I found out that the main culprit was rsync's advanced delta transfer algorithm. The algorithm is super awesome for incremental updates as it will only transfer changed parts of a file instead of the whole thing. However when performing initial copy it’s not only unnecessary but gets in the way and the CPU is spinning calculating CRC on chunks that never could have changed. As such…

Initial rsync copies should be performed with -W option, for example:

$ rsync -avPW <src> <dst>

The -W or --whole-file option instructs rsync to perform full file copies and do not use delta transfer algorithm. In result there is no CRC calculation involved and maximum transfer speeds can be easily achieved.

Long term, rsync could be patched to do a full file transfer if the file doesn’t exist in destination.

Also while copying jumbo archives of many TB I don’t want to see every individual file being copied. Instead I want a percentage of the total archive size and current transfer speed in MB/s. After some experiments I arrived at this weird combo:

$ rsync -aW --no-i-r --info=progress2 --info=name0 <src> <dst>

UK is over the edge: archive.org blocked at the telecom level

Well at first that looks weird. It pings and all so I jump to incognito mode, and…

My EE – Content unlock

Content Lock on EE helps to keep you and your children safe online by blocking 18-rated content.
We have three settings – Strict, Moderate and Off so you can choose exactly what level of security you’d like.
Please note: All new and existing accounts with Content Lock enabled have the “Moderate” setting applied by default. Content Lock is only activated when you’re using our network – not when you’re using WiFi.

And this is EE censoring archive.org . UNREAL!

Going through the SIM registration, and login….

You need a credit card to get it unlocked. Luckily my Hong Kong business card worked, as always set the zip code to ‘0000’.

Thanks over reaching corporations (at the behest of who?) from blocking me from the past?

Pathetic.

Microsoft Ends the Bethesda Launcher

Why yes, I do live in a cave!

Although I only got this for Fallout 76, back after the discounts started after launch:

So it doesn’t mean a heck of a lot to me. And they did a Fallout 76 migration a while back, and the rest was just freebies given out for whatever reason. Oh well. Steam, love them or hate them kills another single vendor pointless storefront.

Ready to run OpenVMS VM – Student Kit from VSI

(This is a guest post by Antoni Sawicki aka Tenox)

I was recently registering a new OpenVMS Community License. In the process I learned that there is a ready to run, pre-installed and pre-configured VM with OpenVMS 8.4. Completely free for non-commercial purposes. You don’t even need to register or leave your details (WOW). Just download and run! Thank you VSI!

https://training.vmssoftware.com/student-license/

The student kit runs only on Windows as contains FreeAXP emulator. However it’s super easy to download, install and run.

VSI OpenVMS Student Kit

I’m hoping that in near future once x86 OpenVMS port is ready there will be images for x64 hypervisors like VMware, VirtualBox, Hyper-v and QEMU/KVM hopefully.

Re-visiting an install of 386BSD 0.0

    I shall be telling this with a sigh
    Somewhere ages and ages hence:
    Two roads diverged in a wood,
            and I ---
    I took the one less traveled by,
    And that has made all the difference.
       "The Road Not Taken" [1916] -- Robert Frost

I didn’t want to make my last post exclusively focusing on 386BSD 0.0, but I thought the least I could do to honor Bill’s passing was to re-install 0.0 in 2022. As I mentioned his liberating Net/2 and giving it away for free for lowly 386/486 based users ushered in a massive shift in computer software where so called minicomputer software was now available for micro computer users. Granted 32bit micro computers, even in 1992 were very expensive, but they were not out of the reach of mere mortals. No longer did you have to share a VAX, you could run Emacs all by yourself! As with every great leap, the 0.0 is a bit rough around the edges, but with a bit of work it can be brought up to a running state, even in 2022.

But talking with my muse about legacies, and the impact of this release I thought I should at least go thru the motions, and re-do an installation, a documented one at that!

Stealing fire from the gods:

Although I had done this years ago, I was insanely light on details. From what I remember I did this on VMware, and I think it was fusion on OS X, then switching over to Bochs. To be fair it was over 11 years ago.

Anyways I’m going to use the VMware player (because I’m cheap), and just create a simple VM for MS-DOS that has 16MB of RAM, and a 100MB disk. Also because of weird issues I added 2 floppy drives, and a serial & parallel port opened up to named pipe servers so I can move data in & out during the install. This was really needed as the installation guide is ON the floppy, and not provided externally.

VMware disk geometry

One of the things about 386BSD 0.0 is that it’s more VAX than PC OS, so it doesn’t use partition tables. This also means geometry matters. So hitting F2 when the VM tries to boot, I found that VMware has given me the interesting geometry of 207 cylinders, 16 heads, and a density of 63 sectors/track. If you multiply 207*16*63 you get 208656 usable sectors, which will be important. Multiply that by 512 for bytes per sector you get a capacity of 106,831,872. Isn’t formatting disks like it’s the 1970s fun? Obviously if you attempt to follow along, obviously yours could be different.

Booting off install diskette

Throwing the install disk in the VM will boot it up to the prompt very quickly. So that’s nice. The bootloader is either not interactive at all, or modern machines are so fast, any timeout mechanism just doesn’t work.

As we are unceremonially dumped to a root prompt, it’s time to start the install! From the guide we first remount the floppy drive as read-write with the following:

mount -u /dev/fd0a /

Now for the fun part, we need to create an entry in the /etc/disktab to describe our disk, so we can label it. You can either type all this in, use the serial port, or just edit the Conner 3100 disk and turn it into this:

vmware100|VMWare Virtual 100MB IDE:\
:dt=ST506:ty=winchester:se#512:nt#16:ns#63:nc#207:sf: \
:pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
:pb#12144:ob#12144:tb=swap: \
:pc#208656:oc#0: \
:ph#184368:oh#24288:th=4.2BSD:bh#4096:fh#512:

As you can see the big changes are the ‘dt’ or disk type line nt,ns and nc, which describe heads, density and cylinders. And how 16,63,207 came from the disk geometry from above. The ‘pa’,’pb’… entries describe partitions, and since they are at the start of the disk, nothing changes there since partitions are described in sectors. Partition C refrences the entire disk, so it’s set to the calculated 208656 sectors. Partition A+B is 24288, so 208,656-24,288 is 184,368 which then gives us the size of partition H. I can’t imagine what a stumbling block this would have been in 1992, as you really have to know your disks geometry. And of course you cannot share your disk with anything else, just like the VAX BSD installs.

With the disklabel defined, it’s now time to write it to the disk:

disklabel -r -w wd0 vmware100

And as suggested you should read it back to make sure it’s correct:

disklabel -r wd0
wd0 labeled as a custom VMware 100

Now we can format the partitions, and get ready to transfer the floppy disk to the hard disk. Basically it boils down to this:

newfs wd0a
newfs wd0h
bad144 wd0 -f
mount /dev/wd0a /mnt
mkdir /mnt/usr
mount /dev/wd0h /mnt/usr
(cd /;tar -cf - .)|(cd /mnt;tar -xvf -)
umount /mnt/usr
umount /mnt
fsck -y /dev/rwd0a
fsck -y /dev/rwd0h

Oddly enough the restore set also has files for the root, *however* it’s not complete, so you need to make sure to get files from the floppy, and again from the restore set.

One of the annoying things about this install is that VMware crashes trying to boot from the hard disk, so this is why we added 2 floppy drives to the install so we can transfer the install to the disk. Also it appears that there is some bug, or some other weird thing as the restore program wants to put everything into the ‘bin’ directory just adding all kinds of confusion, along with it not picking up end of volume correctly. So we have to do some creative work arounds.

So we mount the ‘h’ partition next as it’s the largest one and will have enough scratch space for our use:

mkdir /mnt/bin
mount /dev/wd0a /mnt/bin
mount /dev/wd0h /mnt/bin/usr
cd /mnt/bin/usr

Now is when we insert the 1st binary disk into the second floppy drive, and we are going to dump into a file called binset:

cat /dev/fd1 > binset

Once it’s done, you can insert the second disk, and now we are going to append the second disk to binset:

cat /dev/fd1 >> binset

You need to do this with disks 2-6.

I ran the ‘sync’ command a few times to make sure that binset is fully written out to the hard disk. Now we are going to use the temperamental ‘mr’ program to extract the binary install:

cd /mnt
mr 1440 /mnt/bin/usr/binset | tar -zxvf -

This will only take a few seconds, but I’d imagine even on a 486 with an IDE disk back then, this would take forever.

The system is now extracted! I just ran the following ‘house cleaning’ to make sure everything is fine:

cd /
umount /mnt/bin/usr
umount /mnt/bin
fsck -y /dev/rwd0a
fsck -y /dev/rwd0h

And there we go!

Now for actually booting up and using this, as I mentioned above, VMware will crash attempting to boot 386BSD. Maybe it’s the bootloader? Maybe it’s BIOS? I don’t know. However old versions of Qemu (I tested 0.9 & 0.10.5) will work.

With the system booted you should run the following to mount up all the disks:

fsck -p
mount -a
update
/etc/netstart

I just put this in a file called /start so I don’t have to type all that much over and over and over:

Booting from Hard Disk, under Qemu

On first boot there seems to be a lot of missing and broken stuff. The ‘which’ command doesn’t work, and I noticed all the accounting stuff is missing as well:

mkdir /var/run
mkdir /var/log
touch /var/run/utmp
touch /var/log/wtmp

Will at least get that back in action.

The source code is extracted in a similar fashion, it expects everything to be under a ‘src’ directory, so pretty much the same thing as the binary extract, just change ‘bin’ to ‘src’, and it’s pretty much done.

End thoughts

I think this wraps up the goal of getting this installed and booting. I didn’t want to update or change as little as possible to have that authentic 1992 experience, limitations and all. It’s not a perfect BSD distribution, but this had the impact of being not only free, but being available to the common person, no SPARC/MIPS workstations, or other obscure or specialized 68000 based machine, just the massively copied and commodity AT386. For a while when Linux was considered immature, BSD’s led the networking charge, and I don’t doubt that many got to that position because of that initial push made by Bill & Lynne with 386BSD.

Compressed with 7zip, along with my altered boot floppy with my VMware disk entry it’s 8.5MB compressed. Talk about tiny! For anyone interested here is my boot floppy and vmdk, which I run on early Qemu.

And there we go!

Bill Jolitz passed last month..

As mentioned on the TUHS mailing list. Many will remember his work on being a literal Prometheus, thrashing his work in the cathedral and delivering Net/2 to the lower i386 users. He and his wife, Lynne were instrumental in kicking off the surviving legacy of University research Unix.

I don’t need to bemoan on opertunities lost, the pivotal moments of 1991 or the way the Internet arranged itself around the needs of being PC i386, portability, and then a schism later security.

Details are sparse overall, I believe he is survived by his wife and a daughter?

Bill was far too young at 65.