Subscribe via RSS
4Dec/231

LocalTalk Ethernet Bridge

I've tried it before, back then resorting to a hardware solution, but this time I wanted to get Apple's software LocalTalk Bridge working. The setup was meant to be simple... I had RetroNAS running in VirtualBox on my actual NAS, ethernet-over-power to the dinner table to a Centris 660AV, which in turn was connected to a Macintosh LC via LocalTalk.

Appletalk was configured and working, but for some reason I'd chosen to use the Modem Port on both machines. I then installed LocalTalk Bridge 2.1 and, initially, nothing worked ... Chooser just locked up and didn't show anything.

Anyway, the short answer is that LocalTalk Bridge ONLY works with the printer port. Don't try and use the Modem Port! I suppose the icon says it all? Anyway, I could've avoided the effort if I'd just read a proper tutorial like this one from retro apple computing.

Filed under: Apple 1 Comment
24Oct/230

Apple IIe – Booting A Z80 Microsoft Softcard Clone

So this card was part of the recent bundle'o'Mac and I honestly thought it was just a lowly 80-column text module. Turns out it's a lot more than that! Sure, it's a clone, but it happens to be a Z-80 SoftCard, based on the Microsoft Softcard.

It seems that you need to slap it in slot 4 or 7 and boot relevant software... let's give it a go!

Hardware Installation

Before we get near the machine, let's reset the card to factory default! Make sure all four dipswitches are in the OFF position, as per the photo above. Just for fun, here's the meaning of the four switches, in case you need to tinker:

Switch Function when ON
1-1 Disable address translation.
1-2 Higher priority DMA devices cause SoftCard to relinquish bus.
1-3 Pass NMI line to Z80.
1-4 Pass IRQ line to Z80.

Finally, don't forget to clean the edge connector with isopropyl alcohol, just to make sure there'll be no issues with conductivity once inserted.

Next, we need to get to the innards of your computer. Fortunately, all machines in the Apple II line-up make this part really easy. Make sure everything is turned off and remove the top cover from your machine. Regardless of your model, it'll be two clips at the rear of the top panel.

We're going to choose Slot 4 for this card...

It's the slot directly to the right of the 'Auxiliary Slot' and the card only fits one way. Once inserted, you can either leave the case open so we can see the LED turn on when the card is alive... or work in a clean environment and close everything up!

Software

Before booting up, I'd recommend a full review of the CP/M reference. As with everything Apple II, we'll need a boot disk to get started. For today's post, we'll be using Microsoft Softcard CP/M Disk #1 in Drive 1. Thanks to this machine having two floppy drives, we can also insert whatever-we-want-to-run in Drive 2.

The CPM disks were written using ADTPro via serial from my Windows 11 laptop. I then slapped the first one in the first drive and cold-restarted the machine.

It was a beautiful site, albeit a little underwhelming. I initially had the case off and watched the monitor whilst the unit (very quickly) booted. I then looked back into the chassis of the Apple IIe and the LED on the Z80 board was dark... was it even used? I mean, the fact that CP/M was booted, and displaying on the monitor, should've proven that it did work... but no LED made me sad. I then typed dir...

And, yey! We're in DOS... no more weird Apple OS. Second yey was that... out of the corner of my eye, I saw the LED on the Z80 card flicker! So it only illuminates when it's being used? I rebooted the machine, watching the LED this time, and saw that this was the case: the LED flickered along nicely as CP/M booted.

We're up and running, what next?

Someone on Reddit already asked the question and a great answer was provided: ZORK! Can we boot from Drive A: and play from Drive B:?

Ooops... sorry, that was loaded from A:\. Here's a sample from B:\...

Or write a novel like George on WordStar 4.0. Don't forget to also try and recall your Douglas Adams Knowledge and boot up The Hitchhikers Guide to the Galaxy (1984, Infocom).

It works!

Filed under: Apple No Comments
22Oct/230

Apple IIe – Capacitors and Games!

This unit came in a recently-acquired bunch of Apple memorabilia. I was actually meant to be purchasing a Mac LC (I'll post on that later, when I'm happy with the unit... it's being a pest), but the seller mentioned that he "had some other stuff", and I happily offered bullion which was happily accepted. I was lucky enough to also receive an A2M2010P monitor, which quickly cooked itself after I applied power.

The shot above is the end result... there was quite a bit of work to get to that point!

Capacitors

I replaced all capacitors in the PSU of the Apple IIe. I know some say "if it ain't obviously broke/damaged, then don't replace", but I wanted to be able to slap a sticker on the PSU saying "totally recapped in 2023". Which I did...

With these cleaned up, the voltages were optimal. Note that there are two RIFA capacitors that REALLY need to be replaced.

A2M2010P Monitor

This green monocrome beast needed love. I was stupid enough at the start to just power it up and, although it worked for 5 minutes, one of the RIFA capacitors let out its magic smoke pretty quickly.

All were replaced and the screen was restored to its former glory.

65C02 Enabled Keyboard Light?

Here I was thinking the light labelled 65C02 on the bottom-left of the keyboard was some kind of indicator that the CPU was in some turbo mode? It's not. It's a bloody power LED and mine was dark! It's a bit of a hassle to get to: all of the base screws, lift the shell, 4 screws from the keyboard and you're there.

The LED is encased and should actually be removable with a good tug. It's actually seated in two pipes, which are soldered into the PCB. Unfortunately, one of the legs was totally fused in, so I de-soldered the lot.

The LED unit must have had a resistor in series as, when I initially soldered a LED direct, the current was way too strong! Instead I soldered a 470ohm resistor in series and got some illumination. I'd probably recommend a 330ohm, as the 470ohm is a little dull. It'll totally depend on your LED though. I should've also checked the supply voltage, but I assume it's 5v.

Getting Data Onto It!

I love it when my own articles come up when I'm trying to get something done. It seems that I've used ADTPro before with an Apple IIc to bootstrap and write floppy images. This unit didn't have serial, so I had to go another way and load images via the cassette port. All I needed was something that could play audio from Apple ][ Disk Server via a standard 3.5mm audio cable.

The instructions were simple. Boot the machine with no disks inserted, or no disk controller at all, and type LOAD at the prompt. Hit play on the audio device and watch the magic. The caveats? Make sure you plug the cable into the correct port. The correct port is the one right next ot the joystick port, where the arrow is pointing out of the little cassette tape! I may have spent a little too much time reviewing schematics and components on the board... wondering why there was nothing happening... (I had it plugged into the wrong port...)

Secondly, don't use a shitty audio device. My phone couldn't play the audio files loud enough. Neither could a Dell Inspiron 910. Finally my GPD Win Max 2 blasted the audio out and a disk was written! Many actually. If your audio is too low then you'll either get "Err", "ErrErr", "Error", "CHKSUM ERROR" or "Base 0x9xxx yada yada" errors... All of these mean MORE VOLUME PLEASE.

Which Games?

There's plenty of sites that think they have the best list of games on earth. I went for randoms! Bubble Bobble is a hilarious port... terrible really!

Price of Persia is fantastic... the motion is so smooth and the soundtrack is great.

I must admit that I was very impressed with the floppy drives that came with the bundle. The slimline black unit needed to warm up a bit, but operated perfectly after it got itself seeking. The apple-branded hulk just worked!

Filed under: Apple No Comments
27Aug/230

Macintosh Classic

This was an unexpected find at the local tip shop back home. The price wasn't low, but I couldn't resist. It was powered up on the bench next to the register and was just begging to be bought. Even though it had a RAM error displayed on the screen, I went ahead and threw money at the cashier.

Although it was 'working' at the tip shop, upon powering it up I heard no chime and just got a checkerboard pattern. A quick google had me fearing the worst... had the battery exploded inside? Somehow they had it running on the bench? I also noticed that it came with a serial cable and not the ADB cable, so I couldn't hook up the keyboard.

Hilariously, as I was taking a photo of the checkerboard, the machine flicked past that screen and started loading! It just seemed to be stuck there whilst trying to get the system online. With no ADB cable, I plugged in the mouse and tried to open Hypercard... it froze.

What's on the inside?

I cobbled together a torx T15 screwdriver to get the four screws out of the back. Note that the two screws, either side of the top handle, are a nuisance and you'll need a thin screwdriver with around 12cm of length. Once they're out though, the rear case just slides off. No leaking battery! No chime either when powering on, so the speaker and/or caps on the analog board are toast. The caps on the logic don't look too bad, but they can get replaced anyway.

There's great information all over the web on how to re-cap these. You either need to recap the logic board (more info here) or the analog board. Those later links have a list of all the parts you'll need. I had to do a run to jaycar to stock up on some 10v variants of electrolytics that weren't in the box'o'junk.

The above was the result of re-capping the analogue board, but the machine still displayed erratic behaviour. Sometimes a boot with the RAM extension saying RAM was toast, other times just Illegal Operations half-way through using the system. This machine has maxxed out RAM: 1mb onboard, 1mb soldered on the expansion board and 2x1mb SIMMs. Unfortunately, the 'About' dialog never showed the correct amount of RAM!

I then endeavoured to replace the logic board capacitors. Jaycar didn't have surface-mount tantalums in 47uf, so I went with standard through-hole capacitors and just made them look as-presentable-as-possible.

The machine felt better, but it was still not repaired.

Sound Is Loudest At Volume Setting 2?

I also replaced the capacitors around the audio circuitry and this revived the bong startup sound and others... but... when adjusting the volume, it peaked at '2' and then went quieter as you raised to 7? The actual issue was capacitor residue on the amp IC chip. A good clean with alcohol wipes got the sound back to 100%.

Crash And Burn... Then Sad Mac

Ok, the fun was short-lived, I started receiving erratic startup errors. Usually 00000003 0000FFFF. Fortunately, the internet always has a solution.

Seems the LS174 next to the power plug cops a beating from the omega-3 fish oils from the leaking 47uf 16v self-destructing caps.

The above shot is post-cleaning. Prior to wiping it down (as I did to the audio chip), you couldn't even see the legs. This did get the machine back to stable booting, but the extra 2x1mb SIMMs in the expansion board were still not being recognised! I then realised that there was a broken trace on the bottom-left third leg in.

I couldn't find my transformer winding wire, so I used a resistor leg. All the other pins beeped out, so I booted it up and...

No way! What's next? To hook the keyboard up, I just used an S-Video cable.

It turns out that, although you can use S-Video cables for ADB, you can't safely do it the other way around. ADB cables aren't overly-shielded to prevent interference to video signals.

So pretty in monochrome. The music sounded great also!

Destroying CRTs

Whilst doing all this, I had accidently applied incorrect lateral pressure to the rear of the CRT's input circuit board. This happened to crack the glass stem of the tube, right at the end!

The tip is missing there... it cracked off and the vacuum failed! Fortunately, I was able to find a donor CRT on Facebook Marketplace. Thanks Danny!

The yoke wasn't included, so there was a fair amount of stuffing around to get the picture looking plumb!

What's next?

I have a BlueSCSI in kit form, so I'll build it an get this thing on my local network. I flogged off all of my previous ethernet to localtalk hardware. If you have the space... then hoard stuff... you'll need it all a year later.

Filed under: Apple No Comments
9May/230

Mac Pro 1,1 A1186

This beast was AUD$30 at the local tip and (after failing with two of them months back and selling them off as parts) I thought it looked like a good challenge.

I got it home and checked the guts (you're not allowed to open things at the tip!), noticing no drives, no drive sleds and no RAM. This is all fine... except the RAM... those FB-DIMMs are proprietary hell. I tried to power it on anyway and got the slowly-pulsing power light, as expected when there's no RAM installed.

RAM must be installed in pairs, in a specific order. I scoured the web for the cheapest pair (or two) as I didn't want to sink too much cost into this thing, until knowing it'd boot. The FB-DIMMs arrived ... slowly ... darn Santa! ... and one pair was installed in the first two slots of the top RAM card.

Power was applied... and... a solid power light! No bong? Do these Mac Pros even go 'BONG'? Power was quickly removed and the second pair of RAM was installed into the first two slots of the bottom RAM card. This is, of course, following the installation order as expected. Power was applied once more and ... another solid power light!

Next up was disk. Without the sleds, the drives would be suspended in mid-air from the fixed SATA connectors. I therefore chose a very light-weight SATA SSD drive, anything heavier would apply way too much pressure to the SATA sockets. I'll install more drives later, once I print some sleds. For now, the goal is just to get an OS installed and booted.

So yeah, an OS. Let's not get too tricky, too early. This is a Mac Pro 1,1 and it's only good for OS X 10.7.5, so let's start with anything I have, bootable, lying around that keeps below that maximum. Yes, this unit can be flashed to pretend to be a Mac Pro 2,1 and can even run up to OS X 10.11! It can also run Linux and just about anything else, with the caveat being the 32-bit EFI vs. 64-bit CPU. This machine was born during the world's transition to 64-bit EFI, and so is quite a hybrid.

You'll find OS X 10.5 Leopard here, if you don't have media lying around. Fortunately, I had a DVD of OS X 10.7 Lion in my box'o'junk from previous eMac/MacMini tinkering. Of course, it wasn't legit... it was bought from a computer fair for the exhorbitant price of AUD$20 and is merely a 'restore' disc. Regardless, the bloody thing booted... and installed... to 75% and kept stalling.

The stalling was from a scratched DVD. Not the best investment. Realising this was never going to work, I instead burned a random ISO of 10.6, which I had on my NAS, to a USB key with Balenca Etcher. Balenca might warn that there's no bootable yada on the media, but please disregard this warning! Hit next-next-finish, slap that USB in the front of your Mac and reboot! Pray that the flashy-flashy-folder icon pisses off and that the installer starts.

It worked!

Fake MacPro2,1

I have a plan to upgrade the CPUs to X5365s, so I followed this video to upgrade the BIOS, using this file and this file. This all worked splendidly, even though it required a little mucking around. I'm sure you could just extract all required files from the mounted DMGs into a single folder and make the process a whole lot easier.

More RAM

The next two 2gb FB-DIMMs arrived and simply just-worked... Mac OS 10.7.5 displayed 6GB!

Yay... but not enough for 10.11... so... buy more. I found a bargain on generic Samsung FB-DIMMs and everything worked perfectly... 22gb baby! I have all slots full now, but it seems you can install 64gb of RAM if you really desire!

OS X 10.11

Follow this Youtube video to get OS X 10.11 on the machine. It seems it'll be the last ever version that'll work. Make sure to never run the software updater. I did this and it stopped the machine from booting up again.

Note that this was still running on the stock NVidia video card. You can now probably guess what's being replaced next.

Better Video

First I tried a Radeon 6870 and it was nice... but then I browsed to MacVideoCards and determined the 'final' best card for this machine: R9 280X. This thread about the card had ultimate success with the MSI Gaming 3GB version. I checked eBay and they were going for quite a lot of cash, so I scoured FB Marketplace, grabbing one for a nominal fee! You can use ATIWinFlash on Windows 7 (no idea if newer windowses will work!), or amdvbflash on linux. The latter was MUCH easier. I put the card in as my primary video and booted to MX Linux.

$ chmod a+x ./amdvbflash
$ sudo ./amdvbflash -s 0
$ sudo ./amdvbflash -p 0 MSI\ R9\ 280X\ 3GB\ Mac\ EBC.rom
AMDVBFLASH version 4.71, Copyright (c) 2020 Advanced Micro Devices, Inc.

Old SSID: 2775
New SSID: 2775
Old P/N: 113-C3865000-G77
New P/N: 113-C3865000-O77
Old DeviceID: 6798
New DeviceID: 6798
Old Product Name: 113-MSITV277MH.300 TAHITI B0 XTL C38650 GDDR5 3GB 
New Product Name: 113-MSITV277MS.350 TAHITI B0 XTL C38650 GDDR5 3GB 
Old BIOS Version: 015.039.000.001.003331
New BIOS Version: 015.041.000.000.003435
Flash type: W25X20
Burst size is 256 
20000/20000h bytes programmed
20000/20000h bytes verified

Restart System To Complete VBIOS Update.

So yeah, after downloading, make it executable and then save the current ROM with -s. Use -i to get the ID of your card if you have mutliple installed. Finally, write back with -p followed by the card ID and the filename of the ROM.

Note that in the MacPro you'll need one 6-6 and one 6-8 PCI-E power cable. I only had two 6-6 cables, but a random ATX 6/8 cable on hand, so I rigged it together!

I tried all ports, but the boot only seemed to show on the mini-display-port closest to the DVI port!

The resolution options in OSX were fantastical. The best resolution, I found, was 3840x2160 (2160p).

More Disk!

Whilst screwing around with the video card, I had the 3D printer working overtime on a drive sled. The STL was actually pretty detailed and Cura demanded a 4.5hr print. Whatever, better to make it strong and safe so disks don't drop onto the newly installed video card!

Once printed, I grabbed a 4TB from the ex-NAS pile and slapped it in. I had no need for any of this space, but maybe I can just install a ridiculous amount of OSs on here for a museum-esque experience.

What first?

Max CPU?

That plan to upgrade the CPUs came true and was very easy!

So yeah, the final answer/question is... now what? A-Train?

Filed under: Apple No Comments
21Nov/220

Resurrecting a Dead PowerMac G4

Saw this on FB Marketplace... didn't know what I was thinking. Seller listed it as a "display piece" and, upon opening it, I worked out why. Weird cables disconnected, RAM missing, power supply set to 115v in Australia?

Switching it to 240v and attempting a power up saw nothing. I realised the ribbon to the front panel was disconnected internally? Connecting it didn't help though. OK, time to pop the supply open and.. oh look? It's just a blown fuse... replace... test... OH LOOK, IT'S A BLOWN MAINS BREAKER.

(Something has now occurred to me after posting this blog entry: The sticker above the 'closed off' power plug says 100-120v MAX... with no 240v rating? Even though the power supply had a 115-240v switch, was this supply actually only ever going to work on 110v? It's a little weird!)

Either way, screw it, this power supply is filthy... time to hack off the power cable and inject some ATX goodness.

Replacing a G4 Power Supply

First step? Choose a donor. I have some ATX to AT adapters which I could re-wire, but I would have to cut and heatshrink wires, so, I might as well just use a real donor ATX power supply. The next question is if the donor ATX supply in the junk box is even race-fit. If I install it and, knowing an Apple, too much power is consumed.. it might fail in minutes/hours/days. Should I go buy a new one? Actually, does the unit even fit?

The answer is simple.. it didn't... so-much-so that I even forgot to take a photo. The shot above is from Google images and explains a newer power supply where the main power socket is centered and has a mains-switch underneath. This, when compared to the image above of the actual power supply from the G4, is obviously quite different. The original had two plugs (one covered), with the the power-on plug much lower-than-center when compared to newer power supplies.

Could I shift the guts of the newer one into the Apple supply? Or put this PS into my PIII-550 and use that older PS in here? I could... but that's a lot of unscrewing... oh what the heck... Maybe I should jerry-rig this ATX supply into this power cable.. I could just tin and insert the wires? Just to see if the motherboard even wants to show life.

Of course, the gauge of the wires prevents one from cleanly jamming them in the end of the ATX plug. What to do? Tin them all and trim them with snips... then tediously jam them in and grab two diodes to make the trickle supply.

To do the actual wiring, here's the mapping:

ATX Supply Gigabit Pinout
3.3v 12 24 GND
12v 11 23 5v GND 11 22 28v TRKL
12v 10 22 5v 12v 10 21 5v
+5v TRKL 9 21 5v NC 9 20 5v
POK 8 20 -5v 3.3v 8 19 GND
GND 7 19 GND GND 7 18 GND
5v 6 18 GND 5v 6 17 GND
GND 5 17 GND GND 5 16 GND
5v 4 16 P-ON 5v 4 15 P-ON
GND 3 15 GND GND 3 14 GND
3.3v 2 16 -12v 3.3v 2 15 -12v
3.3v 1 14 3.3v 3.3v 1 12 3.3v

Above, you can see that more than the lower half of pins can be straight-wired through. The top just needs a bit of juggling. Firstly, glue the plugs from the ATX supply together, then cut all four wires (11,12,23,24) from the ATX header, leaving zero mm length on 12 and 24, but 5cm on 11 and 23. Run the ground to pin 11 and pin 19 on the Mac side. Then cut pin 9 from ATX clean level with the plug and run it into a diode and then into pin 22 on the Mac side. Run the 12v from pin 11 on the ATX side through another diode and join to the Mac side of the previously-soldered diode. This makes the trickle voltage as per ATXG4's doings. Finally connect the 3.3v from pin 12 on the ATX side to pin 8 on the Mac side.

Finally, it's all plugged together... how does the Mac respond!?

WE HAVE LIFE! A hideous single beep, but... LIFE! The single beep means we have no RAM? Sure we do... but it seems to hate PC100 modules. After slapping in a PC133 DIMM....

It worked! But nothing would boot.. until I flexed the IDE cable to the CD-ROM?

Right, that damage was hiding up behind the CD-ROM/ZIP chassis area.. fun. It's also ultra-DMA, which I can't reproduce, so I'll just create a new IDE cable as I did for the last G4. Wait, that G4 was faster... and I ended up putting it on the gutter during hard-rubbish for another scavenger to collect. Why did I buy this one!? Oh well.

Hacky cable created and...

Yessss... it works! In the end, I had two options: truncate an existing ATX plug and graft on the old cable or just re-wire a 24-pin plug to fit... with overhang. I did the latter. As mentioned above, glue the 4-pin extra plug ONTO the base 20-pin plug. That way you (like I did!) won't cut wires that you need. When the 22-pins don't line up, it's easy to mistake the wiring!

Old and new... but we're only going to use the new. The old can be donated to a museum (or to the next G4 I stupidly pick up after disposing of this one.)

Route the grounds and volts and stuffs as per above... you'll have wires left over, but that's OK. Don't forget to wire up the fan plug!

And then remember that there'll be two pins hanging over the edge... easily removed if you can be assed...

No need... JUST PLAY!

WHEEEEE.....

Filed under: Apple No Comments
30Apr/220

PowerComputing PowerCenter 180 – Power Supply

Turned this machine on for the first time since packing it away after getting Linux running on it and it tripped the main circuit breaker in my apartment! I'm still resetting clocks.

20220429 155013

I opened up the power supply, and didn't really like what I saw. The main large caps were bulging and there was a burnt-out resistor in between them. Instead of attempting a repair, I compared the ATX plug on the dead power supply with another ATX supply I had on hand and.... would you believe it... they matched? Same plug type/size/wiring. Probably not a smart idea to just plug it in and test, but it worked perfectly! Thank you PowerComputing for choosing off-the-shelf parts instead of proprietary power supplies!

So the answer is: You can use a standard ATX Power Supply in the PowerComputing PowerCenter 180. It lives!

Filed under: Apple No Comments
18Feb/220

Repairing a faulty AppleDesign ADB Keyboard

After setting up my G3 266mhz, I found that I couldn't play Transport Tycoon. The game worked perfectly, apart from very soft music volume, but I couldn't work out how to actually move around the map. In DOS or Windows TT, this was a right-click-and-drag, which was obviously not a thing on a single-buttoned Mac mouse. I tried opt/cmd-click to no avail.

I then realised that the UP cursor key worked, but no other directions. Back in Finder... only UP also worked. Trying a little harder, I then found that the outer-ring of keys on my AppleDesign ADB Keyboard failed to respond at all!

keyb

I mean... you only have to look at it externally to see that it's had a hard life! Stickers... yellowed-plastic.. time for an autopsy.

Opening it up...

There's 6-or-so screws underneath, and a few clips along the bottom which'll need to be prized open. There's then 6000 screws holding the black metal plate to the back of the internal keyboard frame. Enjoy.

20220131 141915

The first obvious-ness was blistering contacts. This damage happened to be exactly on the cursor keys which didn't work... but a continuity test showed that this wasn't actually a problem.

20220131 142004

The next obvious-ness was a serious amount of water damage on both sides of the membrane.

20220131 141927

The real damage was black/broken traces. These are painted onto the plastic, so there's no soldering here, unlike when I fixed the eMate 300.

20220201 161218

Yeah, you'll just have to pretend the silver parts above are black. They were black. Unfortunately I didn't take a photo prior to fixing the bloody things! Actually, you can just see an example of the-blackening on the traces over on the far-right.

Fixing it

As you can see, I failed to take a 'before' photo, but whatevs. I first tried to use my Circuit Pen, but it turns out it had dried up all by itself. I had done everything right, the lid had been securely on during storage, but the pen was somehow rendered useless. Just for fun, I cracked it open and tried to use the contents, but they were taking WAY too long to dry on the plastic.

20220201 123608

Instead, I went back to Jaycar and bought a vile of silver conductive varnish. On the rack in the shop, this product looks like clear resin.

20220201 182153

The silver-ness of it actually settles to the bottom of the vile and I had a hard time finding it.

20220201 182338

A quick shake fixes that tho! Once shook, I used a toothpick to bridge all busted traces...

20220201 161227

Unlike the circuit pen, you can lather this shit on. It takes no time to dry and the resistance dropped to ~0ohms very quickly!

20220202 192506

In no time, many games were played.

Filed under: Apple No Comments
6Sep/213

Build Your Own Macintosh Classic!

Man, somehow I google'd across this link on creating your own Macintosh Classic and decided I'd do it myself. I'd already sunk cost into my own Kickstart'd Creality CR-6 SE printer and decided wtf, how hard can it be? The article even had a BOM that included all of the other physical components required. I placed the order, it arrived, COVID happened, box was stored, everything was forgotten.

Come Melbourne's lockdown #6 and I'm bashing through everything in the received-but-not-touched list. What to do first? Print the case. If that doesn't work, then who could care less about the tech purchased?

DSC03952 DSC03954 DSC03951

DSC03955

And with the printing, I screwed up! Make sure to configure your print settings with supports everywhere, not just 'touching base' or whatever the boring default is, as it won't work. I had to scrape the top inner frame of the display window to get it to not look too saggy!

DSC04001

The floppy disk is an insert and, as per the instructions, I added a white sticky-label to make it actually look like a floppy label. Once in the case it looks great!

Required Hardware

First off, we'll be using a Raspberry Pi Zero W, an old IDE cable and a 640x480 VGA screen for inside the case. Outside, some form of USB Keyboard and Mouse will be required to get everything installed. The Pi Zero is a very bare-bones unit and you'll need to get out the soldering iron, find some headers and solder up the GPIO interface.

DSC03989

From there, you just need to plug in the IDE cable and test it out. I did this first with just the standard RasPi install.

DSC03996

It worked fine... and was hilariously small.

Installing RetroPie

So, long-story-short, I tried the latest RasPiOS + yada and although the UI was lovely, the speed was shite. I then tried compiling my own BasiliskII and it just chuggggged. So, what's the answer? THIS IS THE INTERTUBES, someone has already done this: let me present to you RetroPie! Now, this is an amazing front-end + engines for Linux, to the point where configuration is out-of-the-box, but not so much for what we're about to do.... there's a bit of screwing around required!

First off, to get that Pi Zero W to boot, you're going to need to flash an SD card. On Windows, use the official Raspberry Pi Imager and choose RetroPie from the Emulators sub-menu.

rpimg1

rpimg2 rpimg3 rpimg4

Grab the card, a USB KB/Mouse and a display and boot the Pi. If everything works, you should be at a prompt to configure a gamepad?!

DSC04126

This was a little confusing for me as I didn't really care for a gamepad on this system at all. RetroPie expects you'll be playing Bubble Bobble, Snow Bros and Metal Slug, so it demands a controller configuration on installation. And so, with our goal being to play A-Train on System 7.5.5, we don't need a gamepad, but we'll still need to configure a device. This device will be a stock-standard keyboard and we'll need to tread lightly when mapping the buttons.

DSC04128

To get started, hold down a key on your keyboard for about 5 seconds. From there, please map the D-PAD directions to the arrow keys on your keyboard and then start=enter and select=space. From there, you can either spend time holding down any key to skip the association or just choose any key (don't choose the same key each time) to map to the millions of buttons. Once you succeed, the OK button will be highlighted and you get to press the key you mapped to button A.. do you remember?

DSC04132

If all is well, you'll have hit the screen above. This, in all it's glory, is RetroPie as a shell, with no engines underneath. Before we install engines, let's make sure we have full connectivity. Make sure that Configuration is showing under the RetroPie banner (use left and right buttons to select it) and then press the A button. You should see the following list:

DSC04127

From here, scroll all the way down to raspi-config (yes yes, the shot above doesn't show this highlighted!) and press A. You'll get thrown back to a console and raspi-config will load up in all of it's ncurses-glory. From here, configure wireless and enable SSH. Note that you'll be back to standard keyboard key mapping, so don't try and use the A button... just stick with your standard cursors keys and enter... escape'ing when you choose the wrong adventure.

Meanwhile, if you happen to select the wrong wireless country, you can hit escape to the main menu and re-select it in the Localization sub-menu by selecting WLAN Country.

SSH is under Interfaces and, once enabled, the configuration app will ask you to reboot. Do this. Finally, SSH in with your favourite terminal client using the credentials pi/raspberry.

     .***.     Sunday,  5 September 2021, 10:51:22
     *****     Linux 5.4.72+ armv6l GNU/Linux
     `***'
      |*|      Filesystem      Size  Used Avail Use% Mounted on
      |*|      /dev/root        30G  2.5G   26G   9% /
    ..|*|..    Uptime.............: 0 days, 00h14m35s
  .*** * ***.  Memory.............: 97496kB (Free) / 247472kB (Total)
  *******@@**  Running Processes..: 88
  `*****@@**'  IP Address.........: 192.168.1.57
   `*******'   Temperature........: CPU: 48°C/118°F GPU: 48°C/118°F
     `"""'     The RetroPie Project, https://retropie.org.uk

pi@classicpi:~ $

From here, let's cut over to the VGA display. This is done via the following:

pi@classicpi:~ $ cd ~/
pi@classicpi:~ $ git clone https://github.com/tianyoujian/MZDPI.git
Cloning into 'MZDPI'...
remote: Enumerating objects: 323, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 323 (delta 15), reused 26 (delta 10), pack-reused 291
Receiving objects: 100% (323/323), 1.54 MiB | 599.00 KiB/s, done.
Resolving deltas: 100% (165/165), done.
pi@classicpi:~ $ cd MZDPI/vga
pi@classicpi:~/MZDPI/vga $ sudo chmod +x mzdpi-vga-autoinstall-online
pi@classicpi:~/MZDPI/vga $ sudo ./mzdpi-vga-autoinstall-online

... setup setup ...

Setting up libgtk2.0-0:armhf (2.24.32-3+rpt1) ...
Setting up matchbox-keyboard-im (0.1+svn20080916-12) ...
Setting up libgail18:armhf (2.24.32-3+rpt1) ...
Setting up libgtk2.0-bin (2.24.32-3+rpt1) ...
Setting up libgail-common:armhf (2.24.32-3+rpt1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libgdk-pixbuf2.0-0:armhf (2.38.1+dfsg-1) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...

ZERO-W

CM

2B

3B

3B+

CM3
pi@classicpi:~/MZDPI/vga $ sudo reboot

From here, reboot and disconnect your HDMI screen.

System RAM

I did note that my system was only reporting 256mb total system memory when it had 512mb on-board?

pi@classicpi:~ $ free
              total        used        free      shared  buff/cache   available
Mem:         247468       48468       91656        2932      107344      146248
Swap:        102396           0      102396

Turns out the boot configuration is allocating 256mb to Video RAM!? Let's fix that... we don't need anywhere near that much RAM for a 640x480 screen. Here's the important part in /boot/config.txt.

[all]
gpu_mem_256=128
gpu_mem_512=64
gpu_mem_1024=256

The three lines are the settings related to actual system RAM. We care about gpu_mem_512 and, as you can see, it's setting VRAM to 256mb! Change that to 64 and reboot. Don't try any lower as RetroPie will struggle badly.

Install Basilisk II

Jump back into SSH and start up RetroPie's setup application. Note that you can also do this through the front end if you're working directly on the unit.

pi@classicpi:~ $ ls
RetroPie  RetroPie-Setup
pi@classicpi:~ $ cd RetroPie-Setup/
pi@classicpi:~/RetroPie-Setup $ ls
AUTHORS          COPYRIGHT.md  logs           README.md             retropie_setup.sh
CONTRIBUTING.md  LICENSE.md    platforms.cfg  retropie_packages.sh  scriptmodules
pi@classicpi:~/RetroPie-Setup $ sudo ./retropie_setup.sh

From here, you'll be warned you shouldn't have paid for this... and I hope you didn't.

packages-1

You'll find Basilisk II (package:basilisk) under opt and Mini vMac (package:minivmac) under experimental. Note you'll also find OpenTTD under opt... I might try that for fun. All packages will ask you a few questions, I always default to install from binary.

packages-2 packages-3 packages-4

packages-5

After installing each package, you'll be brought back to that packages sub-menu offering options for the already-installed package... without it telling you that it installed correctly. Slightly confusing, but just press the TAB key to get Back highlighted below and then hit Enter.

packages-6

Go and install anything else you're after, whilst you're here, and then choose the reboot option at the bottom. You'll then get a final warning, of which you'll only need to heed if you've been tinkering with the front-end whilst waiting for this stuff to install... I should've mentioned above that you shouldn't do this!

reboot-2

So... reboot!

Configuring Basilisk II

This took a little bit of working-out before I got it how I liked it. Emulators on RetroPie have configuration/data in multiple places. ROMs (of which Basilisk II needs) are in the main users' (pi, in this case) home directory, whereas configuration is in the /opt/retropie folder. We'll be tinkering around everywhere to get this to work.

Although we've installed the Basilisk II package, the individual configuration file for it hasn't been created yet. To make it appear, we need to actually kick off Basilisk II once and let it error back to the RetroPie menu. Do this now by going back to RetroPie and selecting Start from the Macintosh menu. If everything worked, there'll now be a configuration file located in /opt/retropie/configs/macintosh/.

Next, download the fundamental items to get Basilisk II to work: ROM, OS 8.1 ISO. Expand both items locally and then copy them across to the ~/RetroPie/roms/macintosh folder. Rename the ROM file to mac.rom and the ISO file to anything you want, but make sure it matches the configuration below. Also make sure the CD image is read-only:

pi@classicpi:~/RetroPie/roms/macintosh $ chmod -w macos_81.iso
pi@classicpi:~/RetroPie/roms/macintosh $ ls -l
total 935696
-r-xr--r-- 1 pi   pi   420229120 Sep  5 12:01 macos_81.iso
-rwxr--r-- 1 pi   pi     1048576 Sep  5 11:35 mac.rom
-rw-r--r-- 1 root root         0 Sep  5 11:06 Start.txt

We'll also need to create a harddisk file which we will format and install OS 8.1 onto inside the emulator. The following command will create a 512mb blank file.

pi@classicpi:~/RetroPie/roms/macintosh $ dd if=/dev/zero of=disk.img bs=1024k count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 63.6174 s, 8.4 MB/s

Note that we've called it disk.img. This is because the RetroPie configuration specifies this file on the command line and we'll just use that, instead of adding more config. We do have to do a few other configuration changes, so open up /opt/retropie/configs/macintosh/basiliskii.cfg with nano and update the settings as follows. Note that, if you want to change the allocated RAM, you should use a proper 8-byte value, so lookup the value here and update the config accordingly.

displaycolordepth 0
extfs /
seriala /dev/ttyS0
serialb /dev/ttyS1
ether slirp
udptunnel false
udpport 6066
bootdrive 0
bootdriver 0
ramsize 67108864
frameskip 6
modelid 14
cpu 4
fpu false
nocdrom false
nosound false
noclipconversion false
nogui false
jit false
jitfpu false
jitdebug false
jitcachesize 0
jitlazyflush false
jitinline false
keyboardtype 5
keycodes false
mousewheelmode 1
mousewheellines 3
dsp /dev/dsp
mixer /dev/mixer
ignoresegv false
idlewait true
disk macos_81.iso

The 'extfs' option defines the location of the 'Unix' drive that appears on the desktop. Note that, although there is an 'extfs' option configured above, RetroPie overrides this on the command line and sets it to the directory where we've just copied everything to. It's a great mechanism for copying files into the emulated machine, so you can copy extra things into this folder and then access them in Basilisk II. You can even do it while it's running... just close and re-open the Unix folder.

With the configuration saved, you should be able to choose start from RetroPie and ...

DSC04107

Hah, it booted and OS 8.1 is installing. Slowly!

Getting Audio Out Of A Pi Zero W

This wasn't easy! The Pi Zero W is a tiny board, missing many of the standard components so save cost. One of the components missing is an audio-out jack, but fortunately we can wire one up to the alread-in-use GPIO header. One note before you read any of the following: The pin numbering on the header is different to the connected pin numbers on the main CPU. Most of the time, when sites talk about GPIO18 or GPIO19, they actually mean the pin on the CPU and not GPIO Header pin 18 or 19! Grab and build the tools here and then run the gpio readall command:

pi@classicpi:~ $  gpio readall
 +-----+-----+---------+------+---+-Pi ZeroW-+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT2 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT2 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 | ALT2 | 1 |  7 || 8  | 0 | ALT2 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT2 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 | ALT2 | 0 | 11 || 12 | 0 | ALT5 | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 1 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 | ALT2 | 0 | 15 || 16 | 0 | ALT2 | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | ALT2 | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI | ALT0 | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO | ALT0 | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK | ALT0 | 0 | 23 || 24 | 0 | ALT2 | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | ALT2 | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 | ALT2 | 1 | 27 || 28 | 1 | ALT2 | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 | ALT2 | 0 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 | ALT2 | 0 | 31 || 32 | 1 | ALT2 | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 | ALT2 | 1 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 | ALT5 | 0 | 35 || 36 | 0 | ALT2 | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | ALT2 | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | ALT2 | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+-Pi ZeroW-+---+------+---------+-----+-----+

So, there's a lot to take-in above. Note it's mirrored, so start outside-in when reading. On both outside columns are the GPIO pins of the BCM CPU. We're looking for 18 and 19 in these columns. Above, I've already actually configured the unit for sound, so you'll see that these are configured for ALT5. To understand ALT5, you can read the GPIO mappings here, but just understand that both need to be ALT5 for PWM to come out of 18 and 19. These then map to header-pins 12 and 35 respectively. You'll find these two numbers in the inner two columns on the table above.

Next, we'll need a bit of physical hardware to interface with the GPIO header. Fortunately, since I have used an old IDE cable, we already have a point to connect into! The IDE cable has the middle header on the Raspberry Pi, one end on the LCD and, on the final end, we'll need to tap into pins 35 and 12. From these pins, we'll wire into a low-pass filter as per the circuit schematic here.

DSC04105

The VGA project specifically left GPIO18 and 19 free to let us have audio out, but they aren't enabled just yet. To do this, we'll need to edit /boot/config.txt once more and tell it to send PWM out the required pins. Add the following line to the very bottom of the file:

dtoverlay=pwm-2chan,pin=18,func=2,pin2=19,func2=2

The first note here is that func2=2 somehow equals ALT5, which is what we want. The second is that, with any future changes of boot config by any software, you should review this file and make sure this configuration is still at the bottom! Once confirmed, reboot and double-check that headphones are selected in raspi-config.

audio-1

audio-2 audio-3 audio-4

Save and exit and see what happens when you test with:

aplay /usr/share/sounds/alsa/Front_Center.wav

If the sound is quiet, then use alsamixer to adjust the volume.

┌───────────────────────────────────────── AlsaMixer v1.1.8 ──────────────────────────────────────────┐
│ Card: bcm2835 Headphones                                                    F1:  Help               │
│ Chip: Broadcom Mixer                                                        F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All                                    F6:  Select sound card  │
│ Item: Headphone [dB gain: 1.25]                                             Esc: Exit               │
│                                                                                                     │
│                                                                                                     │
│                                                                                                     │
│                                                ┌──┐                                                 │
│                                                │  │                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                │▒▒│                                                 │
│                                                ├──┤                                                 │
│                                                │OO│                                                 │
│                                                └──┘                                                 │
│                                                 90                                                  │
│                                            <Headphone >                                             │
│                                                                                                     │
│                                                                                                     │
└─────────────────────────────────────────────────────────────────────────────────────────────────────┘

Bump the volume up to 90%.

Networking

So, TCP/IP to the internet should just work. AppleTalk to local ethernet devices probably won't work as AppleTalk packets don't survive over Wireless. I don't know why... but it's the same thing that happened when I was mucking around with physical LocalTalk adapters. Since I have another Pi on the network providing AppleTalk shares, I have the option to create a VPN and route AppleTalk over it to make it show up in Chooser auto-magically... but on a first attempt, the effort required is huge. I'll stick with manual IP entry for now, as that works fine!

The End Result

The screen is hilariously small, but games can be played!

241118466 361998575428700 6298152496122914924 n

The Pi Zero has just enough CPU to run OS 8.1 and A-Train. Audio works great and the MIDI sounds fine!

241139049 609410486890269 6802814062589133231 n

Shares are mounted via AppleTalk to the NAS and all is well!

Filed under: Apple 3 Comments
26Mar/212

Apple eMate 300 – Battery Refurb

Whilst fixing the hinges in my eMate 300, I noticed that there were also links to replacing the batteries. That link shows how to replace with proper cells, but it turns out that you could also use a battery holder.

DSC03021

I bought a full kit of bits to do the latter, but then realised that the installation required hacking out the existing cage for the battery. Not wanting to do this, I fell back to the soldering idea and wished I'd bought batteries with solder tabs instead of just standard AA-style cells.

Anatomy of a Battery Pack

The eMate 300 battery back has a socket with 5 pins/4 wires, a thermistor, 4 cells and a temperature switch at the far end. When replacing the cells, remember to keep everything but the actual cells themselves.

DSC02433

Peel the plastic off and then de-solder or cut all contacts. And keep the temperature switch!

DSC03050

Solder everything back together in the same order...

DSC03030 DSC03033 DSC03035

And then jam it back in the plastic case that it all came in...

DSC03082

If you're in luck...

DSC03094

You'll have a charging battery!

Testing it...

There doesn't seem to be an SSH client for the Newton (although people have tried), so I thought I'd go for Telnet. It seems easy to do over a serial cable, but I want to do it over Wifi! Thankfully there's the PT100v1.1 Client available over at United Network of Newton Archives.

DSC03099

Installing this got me a prompt... but a swift disconnection when trying to log in. But, the battery is still showing full charge after minimal use over two days! Win.

Filed under: Apple 2 Comments