return to table of content

How to copy a file from a 30-year-old laptop

qiqitori
39 replies
1d2h

I try a bunch of different OCR programs, but can't find any that can transcribe the document with 100% accuracy. They often confuse certain letters or numbers (like 0 and C, 9 and 4, 0 and D). Sometimes they omit characters, sometimes they introduce new ones. I try different font sizes and different fonts, but it doesn't matter.

I decided to OCR a hex dump from an old computer magazine a while back and fixed this problem by writing a tool to help verify the OCR result. Basically you input the OCR'd result and segment the numbers. It'll display the original segmented characters ordered by their class, and the human eye will very quickly find any chars that do not belong, e.g. 3s sorted under "8" etc.

https://blog.qiqitori.com/2023/03/ocring-hex-dumps-or-other-...

https://blog.qiqitori.com/2023/03/ai-day-in-retroland-prolog...

I wrote two blog posts about this, and the tools are also linked from the blog posts. Note: the tools are just slightly more user-friendly than sendmail.

That said, I don't know if these old Apple laptops came with anything resembling a programming environment (or at least that ancient version of Microsoft Word?), but even if not... There must be a better way (even without hardware hacking)!

lisper
24 replies
1d

Programming environments were available of course, but none were built-in. The fact that the external floppy doesn't work is the main problem here.

I think a better solution would have been to use the serial port rather than the modem port to send a fax. Serial-to-USB adapters are easy to find.

Rinzler89
19 replies
1d

>I think a better solution would have been to use the serial port rather than the modem port to send a fax.

From what I could Google, that laptop doesn't have a traditional RS-232 serial port but a DIN-8 RS-422 serial port. Still, it's serial, it's standard and very well documented, easy to acquire and easy to hook up.

I'd definitely would have used that instead to transfer data, especially since I could find USB to RS-422 port converters online easy and cheap[1]. I'm not sure why the author didn't try this, or maybe he tried but had no app to serialize file transfers?

Feels like a missing lead the article doesn't touch on.

[1] https://www.amazon.com/Serial-Converter-Adapter-Supports-Win...

NegativeLatency
17 replies
21h36m

I think if there was another "bridge" mac it would've been easier (setup LocalTalk over the serial port, could theoretically send the required TCP/IP libraries, to make it easier to go straight to a modern computer). I'd guess that the comment about "but no networking software installed." includes not having something like ZTerm installed already for direct serial communication, and also not having MacTCP or OpenTransport installed on the old mac (not to mention the missing hardware to set that up)

https://en.wikipedia.org/wiki/ZTerm https://lowendmac.com/1998/tcpip-over-localtalk/

I have a few old macs that I play with from time to time, and it's certainly possible to network them to modern computers, just becoming increasingly hard with the number of old software and hardware items you have to keep around to do it.

Rinzler89
16 replies
21h26m

>I think if there was another "bridge" mac it would've been easier (setup LocalTalk over the serial port

But serial communication doesn't require another Mac to receive the data since it's just raw HEX/ASCII bytes over the standard serial protocol. You can pick up the data with an Arduino.

Nor does serial mandate any handshake or a master-slave sync to work. You're free to shoot those bytes on the empty wire for all it cares. If someone picks them up good, if not, just as good.

NegativeLatency
15 replies
21h8m

Sure, but IDK how you'd send them on a mac without the software to do it?

Is there even an environment you can program in? Can Applescript on classic macos do serial stuff in any form?

Rinzler89
11 replies
20h12m

IDK about MacOS, but on Windows 9x/XP, sending bytes via serial was incredibly trivial in C#, Visual C++ or even ols school Visual Basic.[1]

Even if you didn't have one of the dozens of already written serial terminal apps, you could write your own pretty easily in one of those languages to push bytes out the serial port, with just a few standard API calls.

I doubt MacOS didn't have something similar. Unless of course, MacOS back then was somehow shittier than Windows, which I doubt.

[1] https://learn.microsoft.com/en-us/dotnet/api/microsoft.visua...

Sesse__
6 replies
10h8m

Windows 9x/XP did not come with C#, Visual C++ or Visual Basic. Likewise, classic macOS did not come with any programming or scripting languages. In this respect, they were equally “shitty”, and your solution would have been unavailable for both.

Rinzler89
3 replies
7h10m

AFAIK MacOS was just another UNIX, and in UXIX writing to a serial port was just writing to a file. Are you telling me MacOS had no shell scripting capabilities to write to a file via the command line? Even MS-DOS could do that.

lmz
2 replies
6h46m

Mac OS X is a UNIX (of sorts). Mac OS classic (as in the article) is most definitely not.

Rinzler89
1 replies
5h34m

So that version of MAcOS had no possibility of some command line shell scripting?

Sesse__
0 replies
4h36m

There was no command line at all.

xanathar
0 replies
3h47m

Everything from DOS 5.x onwards (including Windows 9x and NT) came with QBasic, previous versions of DOS had GW-BASIC.

Not the greatest tools out of the box, but still better than nothing.

Anarch157a
2 replies
19h30m

No need for any programming language in Windows 9X, just open a DOS prompt and use 'copy file.txt COM1: /B'. We used that trick back in the DOS days to print raw ASCII files on parallel (LPT1:) or serial (COM1:) devices. I'm willing to bet it still works on Win11.

Rinzler89
1 replies
18h33m

> I'm willing to bet it still works on Win11.

It might not. A lab I was at in uni still had Windows XP PCs because according to them, that's the last Windows OS that allowed direct serial/paralel port access needed to control the external robotics/CNCs via those old APIs the SW used, since subsequent versions of Windows abstracted away those direct HW API calls that DOS used in the name of security and stability.

Gormo
0 replies
14m

What OS-level APIs would something communicating over serial be using? Sure, Windows abstracts the hardware, but that's been true since well before Windows XP, and modern versions of Windows still expose virtual COM ports for serial adapters connected through USB or PCIE, just as XP did.

In fact, even DOS abstracts away serial communications: your hardware would be set to a specific I/O port and IRQ, but DOS exposes those as I/O devices, so you would just read and write to COM1, COM2, etc.

My guess is that there's some other issue running that old Windows program on modern versions of Windows -- maybe some components are 16-bit, and since current 64-bit Windows doesn't include the VDM, they can't run. Or maybe it's an issue with current versions of certain DLLs.

NegativeLatency
0 replies
18h45m

Didn’t know how to program at the time I was using classic macos but my current understanding (having done some retro programming for fun) is that unless you specifically installed a programming environment there’s no real ability to script or even run commands.

jdsnape
2 replies
20h43m

I wonder if you could convince the mac there was was a postscript printer on the other end, then retrieve the text from the ps commands that were sent.

phibz
1 replies
19h5m

You could use local talk and another Mac with ethernet or a floppy drive. Mac file sharing is built in with system 7 and later

westurner
0 replies
3h57m

https://apple.fandom.com/wiki/Serial_port links to "Macintosh Serial Throughput" (1998) https://lowendmac.com/1998/macintosh-serial-throughput/ which mentions a Farallon Mac serial to Ethernet adapter.

/? farallon Mac serial port Ethernet https://www.google.com/search?q=farallon+mac+serial+port+eth... : $50 and no FreePPP or Zmodem or AppleScript serial port to a [soldered] cable to an Arduino/RP2040W/ESP32 (which is probably faster than the old Mac).

https://unix.stackexchange.com/a/548343/44804 mentions minicom and gnu screen, and the need to implement e.g. file-level checksums because over serial like ROM flashing

kalleboo
0 replies
16h20m

The RS-422 ports are backwards compatible with RS-232, so you don't even need a special RS-422 adapter to talk to them.

The RS-422 support is just there to support LocalTalk networking.

romwell
2 replies
18h6m

I think a better solution would have been to use the serial port rather than the modem port to send a fax. Serial-to-USB adapters are easy to find.

With the file sizes involved, one could take a picture of the screen showing the hex dump with a smartphone, and then OCR that.

No need to even bother with external hardware.

remram
1 replies
15h21m

Given that the perfect image from the fax barely worked, a photograph would certainly not do.

wruza
0 replies
10h8m

Or they’d do with a similar accuracy, since the main factor here is font rendering resolution.

II2II
0 replies
11h47m

I think a better solution would have been to use the serial port rather than the modem port to send a fax. Serial-to-USB adapters are easy to find.

Two potential problems. I have tried serial transfers on a similar vintage of Mac, and it seems to require a USB/Serial adapter that supports proper RS-232 logic levels. Many (perhaps most) don't. I ended up using the built-in serial port on an older PC. The second issue is that you require software on the Mac side to perform the data transfer. Something like the rather common ClarisWorks would do the job, but the presence of Word and PowerPoint suggests they didn't have ClarisWorks. (Even if it did have ClarisWorks, they would need to know that ClarisWorks includes built-in communications software. It isn't exactly a common component in office suites.)

I suppose they could have explored AppleTalk, print drivers, or (depending on the version of MacOS) TCP/IP. Each option is limited though. AppleTalk requires another suitably equipped Mac or a PC with rare hardware and ancient software. (I think Sun systems would work too, but then we are really getting into the weeds.) I'm pretty sure the Mac print drivers rasterize the text, so you would still have to undo that. (Though it would probably transfer the data faster.) I think TCP/IP only shipped with MacOS 7.5 and later, would have required setup on another PC, and would still be convoluted (e.g. downloading FTP software to the Mac, so it could upload to a PC).

It's going to be a tricky situation.

jdthedisciple
7 replies
22h54m

I try a bunch of different OCR programs, but can't find any that can transcribe the document with 100% accuracy. They often confuse certain letters or numbers (like 0 and C, 9 and 4, 0 and D). Sometimes they omit characters, sometimes they introduce new ones. I try different font sizes and different fonts, but it doesn't matter.

I feel like this could be trivially solved by plugging an LLM to the OCR output with the sole task to correct spelling errors like that. That's pretty much one of the tasks LLMs should excell the most at.

wizzwizz4
4 replies
22h41m

Denoising algorithms are always lossy. An LLM (or, y'know, Markov chain) could do this job by exploiting statistical regularities in the English language, but a hex dump isn't quite the English language, so it'd be completely useless. Even if this text were English, though, the LLM would make opinionated edits (e.g. twiddling the punctuation): you'd be unlikely to get a faithful reproduction out the other end.

ratboy666
1 replies
2h21m

Of course, use search and replace to change 0 to zero... etc. The OCR will (should) work better.

wizzwizz4
0 replies
9m

You might as well just use an error-correction code: same result, less overhead.

jdthedisciple
1 replies
22h9m

hex dump

ah, missed that, was just skipping through

Moru
0 replies
19h48m

Still would not solve the problem of copying data without changing it.

mminer237
1 replies
20h7m

It's hexadecimal. There is no spelling, so there's no way for an LLM to know if something is supposed to be a `D` or a `0` any more than traditional OCR software can.

jdthedisciple
0 replies
7h56m

yes i noticed that way too late, my bad

zamfi
1 replies
15h9m

One could also find-and-replace in Word to pick a set of 16 characters that avoids OCR confusion…

akoboldfrying
0 replies
9h35m

Good idea. Maybe making the replacements short, space-separated words would have helped even more, by countering any "helpful corrections" the OCR might have been making based on English words (e.g., it would not surprise me if some OCR software would "correct" "B0B" to "BOB").

Terr_
1 replies
1d

That could become an automated improvement as well... although it was probably published in some paper 40 years ago and I just don't know the name of it.

Basically a second-pass where you look for outliers in each character-group, reassign them to another group, and keep the change if it improves similarity-scores the character groups involved. Then iterate a bit until nothing seems to be improving.

For example, one might find "the 3 that is least-like all the other 3s", temporarily reassign it to "8", and then keep that change if it means an improvement in the the scores for "how closely all sub-pictures of 3s resemble each other" and "how closely all sub-pictures 8s resemble each other".

That might backfire if a document has different typefaces in it though, where it makes the mistake of putting all "3"s from different typefaces together, ruining the group-similarity scores.

KeepFlying
0 replies
23h32m

For typefaces you check for the distribution of similarities in each group. If it has large clusters then group by 3, 3', etc then run your outlier check on each of those groups

Still would risk some weirdness, but would help a bit I'd hope.

I wonder if it would be worth running some kind of language analysis or spelling/Grammer check to verify the scan too. At least for text, you'd need another solution for number tables.

tfvlrue
0 replies
1d2h

This is great! I'm amazed that someone else has solved the same problem in a different context. Good stuff.

OptionOfT
0 replies
23h36m

This reminds me of an OCR application I used for converting PGS subs to SRT. It would show you words/letters grouped together and you had to approve / correct its translation.

ruslan
33 replies
1d2h

Arn't there a serial (COM) port available on that laptop ? It was kind of ubiquitous at those days. This website [1] says there were two of them. Solving the probem with Zmodem would be trivial. The software (terminal) is already there, it seems.

1. https://everymac.com/systems/apple/powerbook_duo/specs/mac_p...

oneplane
14 replies
1d2h

You can indeed use xmodem or zmodem, and use a macbinary encoding to transfer any file you want in either direction. Does require you to have something that can receive over serial on the PowerBook. ClarisWorks could definitely do it, but office probably has exactly the same 'receive document' feature.

Alternatively, you can use the serial port to 'print' to, and just capture the serial output. It's essentially just unidirectional text transfer but that's enough for what the author intended to do.

On the other hand, faxing and OCR'ing is pretty cool.

flomo
11 replies
1d

It's highly unlikely any terminal software would be installed on an old Mac, even if it had a modem. (Although I don't know about Clarisworks.) It was counter to the whole mentality. There was a bootstrapping problem where you needed to get the software which allowed you to download the software, and even the common MacBinary/Stuffit/etc programs did not come with the system.

canucker2016
5 replies
21h57m

From the screenshot after the picture of the battery and a picture of a circuit diagram, we can see that the fax software is from Global Village ("GlobalFax PowerPort/Mercury Duo", probably v2.5)

GlobalFax had a terminal emulator app included, most likely ZTerm, in this case.

from https://tagn.wordpress.com/2023/09/10/tech-support-at-the-vi...:

" the absolute garbage terminal emulator software we were including in the box.

And I set about pestering Rick to get somebody to Dave Alverson’s ZTerm terminal emulator app bundled with our modems because it was light and easy and supported the ZModem file transfer protocol which "

So the user could have likely run ZTerm to transfer the files.

tfvlrue
3 replies
21h2m

Awesome sleuthing!

Should we discover any more files to recover from the laptop, I may explore this avenue a bit further. If the ZTerm software is present, the trickiest part might be physically connecting the serial port to something else. Not an insurmountable problem.

dredmorbius
0 replies
23m

SLIP, zmodem, and uuencode are tremendously useful when no other options are available.

I suspect you won't even have uudecode, in which case so long as you can transfer binary files, self-extracting ZIP files should work. Might take a while for larger transfers.

Getting a Real Operating System onto the old laptop would be a benefit. You might want to look into boot-from-floppy options including TomsRootBoot and Trinux. The former fits onto a single 1.5 MB floppy ("superformatted" to about 1.7 or 1.8 MB). The latter uses 2--3 disk images to include a number of more formidable tools.

Trinux still has a Sourceforge page, though I've not dug into it. You may need to hit up Internet Archive for working images:

<https://sourceforge.net/projects/trinux/>

A 2001 white-paper: <https://www.sans.org/white-papers/327/>

Tom's Root Boot ... seems to now be offline, but has a Wikipedia article:

<https://en.wikipedia.org/wiki/Tomsrtbt>

And numerous Wayback captures. The one from 2008 should be functional and suit your hardware:

<https://web.archive.org/web/20080724163531/www.toms.net/rb>

November 2023 appears to be the most recent active capture:

<https://web.archive.org/web/20231123003805/http://www.toms.n...>

And a ~2001 article describing TRB's capabilities: <https://www.linux.com/news/little-linux-distribution-could-t...>

Moru
0 replies
19h44m

As a poor Atari owner out in the nowere, I used metal paper-clips bent into shape and welded cables on them to connect my weird non-standard ports to other things. Worked pretty good :-)

ruslan
0 replies
21h23m

Excellent find!

The user should have consulted HN before diving into the problem. :)

duskwuff
2 replies
1d

ClarisWorks had a "communications" module which is effectively a serial terminal, and which supported sending and receiving files. I'm not sure if it internally supported MacBinary, but it'd at least be enough to get files off the system.

oneplane
0 replies
23h21m

It did automatically detect MacBinary, I think there's even some example out there of someone doing exactly this. You don't need a terminal on the old Mac, but they did use a new Mac because it came with the macbinary tool preinstalled which makes it all very easy.

giantrobot
0 replies
23h4m

The ClarisWorks communication module could act as a TTY, like HyperTerminal. You could just dump text into it and copy from the buffer to SimpleText if you really wanted.

oneplane
1 replies
23h20m

I found the example where this exact ClarisWorks process was used: https://forum.vcfed.org/index.php?threads/transfer-applicati...

Because serial ports (and modems) were pretty much the default thing to use (besides LocalTalk and AppleTalk) the desktop software usually supported that out of the box, no terminal required. This is also why Fax support was built in, because even then, any other type of peer connectivity wasn't really big enough. And around that same time, ClarisWorks was also really common on Macs.

Now, we don't know for sure that the author also had ClarisWorks, but we don't really know much about what was available in general (except the games, the sound files and the fax). But in general serial file transfers, modem and serial based methods were pretty 'normal' to have.

flomo
0 replies
18h56m

Good finds everyone! Other than LocalTalk (which was 'normal'), I don't believe the old MacOS had any OOB support for serial transfers. Thus Clarisworks or ZTerm or etc was needed.

dredmorbius
0 replies
43m

Many moons ago I'd bootstrapped a Linux install on a circa-1990 laptop which afforded a floppy drive, serial, and parallel ports, but no innate networking (a 32-bit PCMCIA network card was later possible but required drivers and/or kernel support to be compiled).

I'd pieced together the install by splitting a tar.gz across multiple floppy transfers, then enabled SLIP and zmodem which permitted copying uu-encoded files for further support, then SLIP and PLIP. The latter was particularly useful as I could sustain multiple simultaneous network connections: both an SSH session and scp'ing across files for further support, rather than running a console under minicom. SLIP was bound at somewhere around 9600 AFAIR, fine for a terminal session, but cramping my style for file transfers. (It may have been faster, 38,400 and 56k are available modem rates.) PLIP IIRC was at or approaching Mb/s speeds, which was (comparatively) blazing.

Though the sheer audacity of copy-pasting uuencoded files through minicom had a certain coolness factor.

EvanAnderson
0 replies
20h28m

Alternatively, you can use the serial port to 'print' to, and just capture the serial output.

I've done this to recover data from a number of old systems. It's a great way to get at old data.

I've also done this to get data out of proprietary databases. As long as there's a report that gets the data you want it becomes just a parsing problem.

thebeardisred
6 replies
1d1h

Thanks for mentioning {X,Y,Z}modem. I think folks forget that it still has modern uses.

tsegers
4 replies
1d

I still use it regularly in 2024 to load data onto embedded devices running U-Boot. It saves me a network cable if one is not otherwise required.

ruslan
2 replies
23h49m

U-Boot supports Zmodem ?

ale42
1 replies
21h59m

EDIT: actually not ZModem, but it supports X/YModem -- source code, despite the comment at its beginning, finally says "Sorry, zModem not available yet"

yes and also X/Ymodem, see source code: https://elixir.bootlin.com/u-boot/latest/source/common/xyzMo...

extremely useful feature (I used xmodem in the past, if I remember well)

ruslan
0 replies
21h32m

Did not know that. Indeed it's very useful. Thank you!

olyjohn
0 replies
20h19m

I just had to update the firmware my HF radio using xmodem protocol. Tons of modern ham radio gear still using serial data... even the modern ones that connect to your PC via USB, still just a USB->serial device built in.

implements
0 replies
1d1h

There’s also https://en.wikipedia.org/wiki/Kermit_(protocol)

(We used back in the day to move files between PDP11s and PCs - it was the original “anything to anything” file transfer program)

rvense
5 replies
1d2h

Apple used 8-pin mini DIN connectors for serial. The author might not have had the right cable.

inferiorhuman
2 replies
1d1h

Classic macs had RS-422 not RS-232 ports so you'll need more than just a dumb cable to get it working with a PC.

ruslan
0 replies
1d

You are right, but it's possible to connect RS-422 to RS-232 using just proper wiring [1]. Basically, same three wires and one loop wire for RX+ to ground. It's not reliable and not recommended, but works and would solve the problem. :-)

1. https://stratusengineering.com/rs232-rs422485-conversion-cab...

kalleboo
0 replies
16h10m

The Mac RS-422 ports are backwards compatible with RS-232, dumb cables work fine. No Mac users were buying special RS-422 modems back in the day, we all used standard PC RS-232 modems and they worked fine with just a dumb cable. Even Apple's own serial printers were just RS-232.

ruslan
0 replies
1d2h

There are plenty of mini-DIN connectors and serial cables for mac on ebay.

You need just three wires for serial line to work. I would strip the wires and plug them in without any connector. :)

hi-v-rocknroll
0 replies
23h13m

A Farallon EtherWave provides Ethernet directly.

tfvlrue
2 replies
1d2h

Author here. It's a good question. It probably does, but I admit I'm not familiar with Zmodem. I don't recall finding a terminal application installed on the laptop, but maybe I just wasn't looking hard enough.

ruslan
0 replies
1d2h

The faxing program you were using should have a terminal feature which was used to setup modem and to dial BBSes. :)

fuzzfactor
0 replies
21h5m

Before they had built-in phone modems, the CPU communicates with a COM port for general I/O to the outside world.

COM port is just serial digital data transfer by RS-232 standard, unlike the parallel (printer) port, the COM port is very robust because the RS-232 standard requires the ability to short or improperly connect any of the pins to at least +/- 12VDC without doing any damage.

You connect two mainframes or personal computers' COM ports together using a "null modem" (crossover) cable having a common ground connection and with each's data transmit wire (pin 2) connected to the other's data receive wire (pin 3). You have to set the same baud rate, word length, parity, and number of stop bits on each device. Handshaking lines can often be considered "optional" so many of the cables only have these 3 wires. However using the comm app you may have to virtually enable a handshake line or two on each computer if the extra wires are not there and the devices are troublesome for some reason.

The terminal app or related program will usually be where you get to the communication settings, and once the terminal at each end of the communication cable is correct, then each person can type to the other in real time, perhaps simultaneously depending on "duplex" setting. Very much like an antique teletype machine, COM ports are also referred to as tty's.

With a GUI there should be a drop-down menu where you can set the receiving terminal to collect all following data from that point, into a file which you should be able to name yourself and store where you would like after the transfer finishes.

At the sending terminal you click the corresponding button to open the selection window so you can browse for the file you want to send out on the COM port.

To do it over the phone, the device at each end would then add an external modem plugged into the COM port. Then you can connect computers to the outside world using a phone cable. The modem is what detected the dial tone and dialed your target's number on the public phone network from your land-line location, as well as doing the audio modulation of your data so it would go well over the phone line. Modems started out pretty dumb and it was years before "smart" modems became common, but almost all of them responded to what is known as special AT commands. Somewhat specific set of AT's for different manufacturers and vintages. Receiving the ATD command followed by the target phone number, the modem would open the phone line, listen for a dial tone, then autodial the digits you had provided. If the other party responded then the intercommunication would begin.

But if you're just connecting two computer modems together in the same office without going over land lines there is no dial tone and no voltage being provided by the phone company either. The voltage is well covered with the battery arrangement shown, but a different AT command must be used on the sending modem so it will proceed to negotiate communication without the dialing process.

IOW all personal devices had com ports and that's what you used at first, not everybody was good with the cables and settings though so it never became very common knowledge. After built-in phone modems began to appear, devices retained COM ports in addition for a period of time before they started becoming more rare. Once there was no more COM port exposed to the user, yes you can go directly from modem-to-modem, but it's always another layer of complexity in addition to the underlying COM-to-COM foundation.

Remember terminals produce ASCII text through your designated COM port when typing but it's just binary data when sending files. You can send a Windows EXE file to a MAC for storage and it will be a faithful copy but naturally it's not made to actually execute on the MAC.

perakojotgenije
0 replies
11h22m

That's the first thing that came to my mind. I remember connecting two laptops using LPT or COM cable and transferring files using norton commander (if I remember correctly) 30 years ago.

gcp123
0 replies
23h9m

Yes, it had those ports. Just like Kevin McCallister could've called the police in Home Alone, I think the author preferred this to become an extraordinary story more than the simplest possible solve.

mbreese
15 replies
1d2h

I was actually expecting the author to take photos of the old laptop's screen and OCR those. This was far more entertaining.

I do wonder though... perhaps it would have been faster to have the larger fonts and let the transfer take 24 minutes. It probably took longer than 24 minutes to write the updated OCR software.

But, where's the fun in that?

tfvlrue
9 replies
1d2h

Author here. Seeing how difficult it was to get a reliable OCR transcription with commercial software from a pristine, computer-generated representation of the text, I suspect trying to OCR photos would be even less reliable :)

I simplified some things for brevity in the write-up. I did indeed try a bunch of fonts/font sizes (trying a single page at a time and manually inspecting the results) without much improvement.

Symbiote
3 replies
1d2h

Did you try a search-and-replace in Word, changing the problem characters to something else?

e.g.

  0123456789ABCDEF
  012345M7XPAVKHEF

tfvlrue
1 replies
1d

Nope! That's a good idea though.

The transcription errors I was getting were not consistent. Like, D would be O or 0 or D, with no apparent rhyme or reason to it. And the turnaround time on each fax attempt was long enough that I focused on doing the image recognition myself instead.

1-more
0 replies
22h30m

This was a phenomenal effort and such a joy to read. Based on how much work this was, these were probably some very important sound files that mean a lot to someone in your family, so thanks for your hard work getting them off the laptop.

My goofy idea was using the font OCR-A but you'd be very lucky if that Mac came with that.

https://en.wikipedia.org/wiki/OCR-A

remram
0 replies
15h17m

That's brilliant! You could even expand each input character to multiple characters to build an error correcting code.

adastra22
2 replies
1d1h

Why not display the info as a series of QR images? There probably wasn’t a dev environment on the laptop though.

For the record, you’d have had no problem mounting an image of the HFS disk on any modern Linux or macOS system.

kelnos
1 replies
22h21m

Well, mounting the disk itself. If it was simple to get an image of the disk, the author could have used the same method to just get the files they wanted.

adastra22
0 replies
22h7m

There are many different SCSI to USB cables out there, for exactly this purpose. Even the weird mini-SCSI interface used by Apple in the 90’s.

jandrese
0 replies
1d

There is nothing pristine about images transmitted over Fax. It's such a grotty old technology with loads of aliasing issues. A modern cell phone picture of a word screen full of hex would almost certainly be easier to OCR.

Maxion
0 replies
11h3m

Did you try seeing how well ChatGPT was at OCRing the images? Though since it is HEX characters it might not do so good. I've found it to be very reliable at OCRin e.g. photos of receipts.

p0seidon
0 replies
23h9m

Had exactly the same thought.

hypercube33
0 replies
13h26m

A laptop of this age should have a serial port. It's possible even with something like Win95 to run a null modem and tcp/IP over that and SMB to copy files to a semi modern OS.

gizajob
0 replies
22h0m

I had this brainwave and basically duped your comment before I’d scrolled down to read it…

Evidlo
0 replies
1d2h

He says he tried multiple font sizes.

chasil
10 replies
1d2h

In my younger years, I had to pull a dBase 2 database off a CP/M desktop into an MS-DOS portable.

I ended up configuring a serial cable, and running PROCOMM on the PC, set 9600/n/8/1 on both ports, then printed from dBase 2 and set PROCOMM to record the session to a file.

It would lose characters if I let it run too long without a pause to write to a floppy, so I would ctrl-s/q on the CP/M side.

I guess nobody else had ever figured out how to do this.

ruslan
9 replies
1d2h

I think in this particular (macbook) case the problem was lack of proper software. Yet, I recall if there was modem installed, a terminal software had to be present as well.

qwerty456127
5 replies
1d2h

Is it so hard to write your own program which would just read a file stream and send it to a port? Maybe also split it into smaller frames with CRC hashes attached.

zbentley
1 replies
1d1h

Depends: I wonder what programming tools/languages were present on the old PowerBook. Otherwise, getting any handwritten program or its associated tools/runtimes (if necessary) onto the laptop might be just as much of a challenge as getting audio data off.

jeffhuys
0 replies
1d1h

Just program directly on the macbook! :D would be fun to experience imo

jeffhuys
1 replies
1d1h

`cat file > /dev/com1`, or something like that.

rusk
0 replies
23h46m

Isn’t this a pre unix mac?

chasil
0 replies
22h42m

CP/M was an OS for the 8080/Z80, which was limited to 64k of RAM.

None of the tools that you know today would work in something that small.

There was a C compiler for a dialect of C that met these constraints; I didn't have it, and I didn't know C at the time.

chasil
2 replies
1d2h

The CP/M side didn't have any terminal software. Both sides had methods to set 9600/n/8/1 on the printer device.

On the PC side, without PROCOMM, it would be possible to "COPY COM1: FOO.TXT" but I don't know how 9600/n/8/1 could be set in advance (IIRC setting it as a printer to force the baud rate altered the device so it could not be read).

Generally speaking, all of the pre-PC microcomputers implemented serial ports, which is the first choice in pulling data off of them (including binary data with XMODEM and its variants).

ruslan
1 replies
1d2h

Yes, you can transfer files via COM port in MS-DOS using COPY command, but errors may occur. :) Also you have to switch port to 8-bit binary mode and turn off flow control. Don't remember how to do that exactly. Default was 7 bit XON/XOFF, AFAIR.

gist
7 replies
1d2h

Very creative and interesting ie 'use whatever tools/knowledge you have' but:

The internal hard drive uses SCSI with an unusual connector.

This is literally never an issue as old connectors are easily obtainable (in particular 'in this day and age').

Adapting it didn't seem straightforward, and we weren't confident the old file system (HFS) would be easy to read from a modern system.

Simple search pulled this up. Honestly that reason didn't make any sense to me at all. The other way might be interesting and fun but I don't think this is a reason not to attempt mounting the old file system.

https://www.matthewhughes.co.uk/how-to-mount-hfs-classic-dri...

tfvlrue
2 replies
1d2h

Author here. Admittedly I didn't explore this avenue very deeply. I was more focused on accomplishing this with parts I had on hand.

A quick search yielded this result, which does confirm it's absolutely possible to adapt the drive: https://vintagemacmuseum.com/reading-powerbook-2-5-scsi-hard...

(My way might be more fun. Ha.)

inferiorhuman
0 replies
1d1h

Hell, I wrote a FUSE implementation of HFS a while back. HFS (and to a lesser extent HFS+) is quite well documented. Current versions of MacOS can still do HFS+ (but not HFS) natively.

EgoIncarnate
0 replies
23h28m

Fun for the win! I suspect most of the other suggestions, even if possible, wouldn't have generated this level of interest. Well done on your Rube Goldberg method!

elaus
1 replies
1d2h

I sympathize with the notion to fix things in software instead of buying hardware (an SCSI adapter): You have to spend money, wait for it to arrive (or even leave the house to get it yourself!) and it's one more future plastic waste.

If fiddling around and getting creative is something one enjoys (and has the time to do so), doing things like OP did is a nice alternative :)

ssl-3
0 replies
14h22m

Used cables exist on platforms like eBay.

(They can also be resold on eBay after they're done being used.)

anthk
1 replies
1d2h

Linux will mount HFS drivers and files like nothing...

This setup it's overcomplicated and hackey, but dumb in the end. You can mount old SCSI drivers with modern adaptors just fine, and Linux/BSD will either mount or extract HFS images with unar (I think) or hfsutils/hfstools.

Or just spawn ymodem/zmodem compatible software (as he used a Fax setup for modem) and the problem would be solved in minutes.

bombcar
0 replies
1d2h

Also it's a 30 year old Apple laptop - there are tons of resources available on how to do things with them.

But, this worked with what he had at the time, so, eh, fun times.

btbuildem
7 replies
1d2h

My first thought was to use the serial port, but perhaps that was unavailable on the recipient hardware?

The second, much more entertaining approach, would've been to harken back to the very arcane days of ZX Spectrums and C64s with tape drives... since the old laptop had functional speakers, it may have been possible to write a bit of code that endcoded the binary data to an audio stream, played that over the speakers, recorded on the recipient machine, and decoded it back to binary form there.

coolcoder613
3 replies
7h14m

This "binary data" already is audio. The author did not want to do that because of the loss of fidelity.

kortex
0 replies
1h19m

Sounds like GP is suggesting digitally encoding/modulating the audio bitstream, like using the speaker as a modem. Which would be far less lossy than trying to record the analog signal.

btbuildem
0 replies
1h25m

Seems like I didn't get the idea across clearly. While audio files are binary data, they're encoded in a specific way, and use specific playback codecs to render that binary into data suitable for playback by soundcard chipsets.

Back, way back in the day (but not as far back as punch cards, but before diskettes), binary streams were persisted to tape. Not the backup tape used today, but regular audio cassettes. The data was converted into an audio stream, similar in nature to what you'd hear during a modem handshake. On the receiving end, the audio stream was decoded back into binary data, without any loss (well, given the robustness of error correction back then, sometimes you'd have to try again). The key point being, the audio was just a transport layer for binary data, which could have been anything -- images, code, text, audio files, etc.

anthk
0 replies
58m

Minimodem using 1200 BPS with Opus@64KBPS it's pretty usable, the file doesn't get very huge.

immibis
2 replies
1d1h

a.k.a. a WinModem driver

It's funny that we used to all blame WinModem vendors for making WinModems instead of blaming open source for not being able to write DSP code. To be fair, it was a lot younger then.

jandrese
0 replies
1d

I don't think those old Macs used software modems. Honestly they probably couldn't, the CPU in these machines were not very fast and had some pretty horrendous bus contention issues. Servicing a realtime device is likely beyond their capabilities.

cesarb
0 replies
1d

It's funny that we used to all blame WinModem vendors for making WinModems instead of blaming open source for not being able to write DSP code.

From what I recall, the main issue was not with writing DSP code; the main issue was (and usually still is) the lack of documentation on the hardware. Knowing how to write DSP code does not help if you don't know how to run it.

With a normal hardware modem, all you needed to know was how to talk with the UART (and these not only were publicly documented, but also were mostly backwards compatible with the original PC UART), and the Hayes command set variant used by the modem (which was also usually publicly documented, and also backwards compatible with ancient modems).

kjellsbells
5 replies
20h33m

This feels like a practical exam in information theory, and I love it.

"You've got a 32,000 byte file to transmit over a channel of your choice. They all suck in some way. You have a smartphone, a serial port, and a computer. The computer has no compiler, but you can use any of its native facilities. Solutions that require more bytes of input (eg scripts) than are in the file to be transferred are disqualified. There is no time limit, but the fastest solution wins. Go."

Given this is an old Mac, Im not sure I could have outdone the author. Although I was tempted by the notion that if you could replace visually similar chars like 3 and 8 with something very distinct (eg 8 with Z), then using a smartphone to capture the screen and OCR might be the fastest path of all. I think System 7 had AppleScript so perhaps that sed-like step is possible?

jtriangle
2 replies
18h57m

Before I ever entertained any sort of soft solution, I would have the drive out and plugged into a XYZ to USB interface. Simple manner of installing hfsprogs mounting the drive, yanking the files you want off, and you're done.

The proprietary connector might prove to be a problem, would likely have to bodge your way to victory there, but, mercifully, old stuff tends to work when bodged just fine.

Perks of being a hardware guy first to be honest.

TacticalCoder
1 replies
18h14m

I'm a software guy and my first reaction was the same: "Two words: eBay, Linux".

But then it turns out: taking the harddrive out of that Powerbook Duo 280c is kinda sorta a real mess for it requires taking the entire laptop apart (I just looked at an online teardown video of that old Mac laptop).

Now the advantage of eBay+Linux is that it works even if the screen is broken, if the laptop doesn't boot, etc. It works as long as the harddrive still boots.

ssl-3
0 replies
14h38m

There's no reason to open the laptop to access the disk from another computer.

With a dock, that laptop gains an external SCSI port.

And with an external SCSI port, it can boot up in a mode wherein the whole laptop behaves like a standalone SCSI disk -- ready to use with whatever other computer with SCSI from the past 40-ish years that one can muster up.

fragmede
0 replies
19h34m

with a hex editor, I wonder how many bytes it would take to input a binary program that output the data to the screen as a series of black and white images, like a QR code but not. So you wouldn't be trying to OCR characters which has the problems mentioned, but you'd have to get the program into it first.

anal_reactor
0 replies
19h39m

OCR from smartphone camera could easily make mistakes that would be difficult to detect and correct.

What I would do is look for some kind of encoding that makes errors extremely unlikely. If I had to dump the entire laptop's drive, I'd rather leave the laptop running for a week once than use a faster method that introduces errors.

I don't know much about error correction, so let's take naive approach. 320MB (drive size) in a week is 530 bytes per second. I don't know what's the screen refresh rate (and reaction time) but it's sensible to assume that if we display any image at 4Hz and record it with a smartphone, we won't miss frames or have any other funny artifacts. So it's like 135 bytes per frame, which is 1080 bits. If we divide the 8.4 inch 640x480 screen into squares 16 by 16 pixels, then we have 1000 squares 0.5 by 0.5cm. If each square is either black or white for 0.25 seconds, then camera artifacts shouldn't affect the transferred data too much, and the bandwidth is almost exactly what we need.

StillBored
5 replies
22h31m

Appletalk is the way to go, the drivers are built in and apple did a good job of maintaining compatibility over a long timeframe. I have similar issues moving stuff between a IIGS and modern machines. Its possible to move stuff with floppy emulators, via scsi , or just raw serial, but the simplicity of having a Mac with both appletalk and ethernet, allows one to drag and drop entire file hierarchies between the target appletalk based machine and a SMB/etc share from the machine in the middle.

Also SCSI tends to be easy to convert if one knows the drive connector/type, and is willing to chain a couple adapters. I'm sure that is the case here too, the 2.5" scsi drives were a form of SCA connectors IIRC, SCSI adapters exist for almost anything to anything as long as the single ended vs differential rules are followed, newer ultra differential adapters could usually fall back to 8 bit single ended allowing them to drive just about everything. The problem is going to be finding an OS/etc that can real the old mac filesystems although I'm guessing one of the utilities to read raw images (of which i'm failing to remember the ones Ive used in the past) could probably read/write the raw disk image.

kelnos
2 replies
22h28m

Appletalk is the way to go, the drivers are built in

The article author claims the networking software wasn't installed, though.

Also SCSI tends to be easy to convert if one knows the drive connector/type, and is willing to chain a couple adapters.

I was thinking this too. And the author also says they didn't believe they'd be able to read the HFS volume, but Linux has had an HFS driver for... decades?... at this point.

adrianmonk
0 replies
20h30m

I assume they must have meant it doesn't have any TCP/IP networking software installed. As I recall, Macs had AppleTalk hardware from the very beginning and AppleTalk software was a built-in part of Mac OS. I don't know if it's even possible to remove if you tried.

Sprotch
0 replies
19h49m

Appletalk was installed by default in all Macs of that era - the author is talking about TCP/IP

jasomill
0 replies
16h33m

Setting aside the internal connector, most Mac laptops (and all modern Macs) have a Target Mode[1] that exposes the internal hard drive externally as a SCSI, FireWire, Thunderbolt, or USB device you can mount on another computer.

In this case, it's a PowerBook Duo with a SCSI disk, so you'd need a Duo Dock or similar[2], a HDI-30-to-something-a-little-more-standard adapter [3], and whatever combination of cables, converters, and controllers are required to connect a parallel SCSI device into a more modern system.

For example, if you have a machine with a PCI Express slot (or Thunderbolt PCI Express enclosure), I'd recommend any of the LSI Logic Ultra320 adapters available on eBay for < $50, as drivers are readily available for macOS (AppleLSIFusionMPT.kext, included in all Mac OS versions worth mentioning, up to and including Sonoma, Intel and Apple Silicon), Linux (in-kernel mptspi driver), and Windows (the Windows Server 2008 driver[4] should work on current Windows versions).

Assuming all these things are in order, connect the Macs with a SCSI cable, hold down T while booting the PowerBook to enter target disk mode, and answer no to any prompts your OS may display offering to format the unreadable disk you just attached!

As for accessing the HFS filesystem, assuming macOS, my preferred method would be:

1. Create a raw disk image:

  $ hdiutil create -tgtimagekey diskimage-class=CRawDiskImage -srcdevice disk<Number> <Name>.img
(use the "diskutil list" command to find <Number>)

2. Shut down the PowerBook.

3. Make a backup copy of the image in case something goes wrong.

4. Install Mac OS 9 in qemu[5] and attach the image.

5. Use Alsoft PlusMaker[6] in Mac OS 9 to do an in-place conversion of the filesystem on the image from HFS to HFS+ (download the first file, use StuffIt[7] to extract the file and Toast[8] to mount the image, and run PlusMaker directly from the image to avoid being prompted for a serial number).

6. Shut down Mac OS 9 ("Shut Down" is in the Mac OS 9 Finder's "Special" menu).

7. Mount the resulting HFS+ image in (current) macOS (double-click in Finder, "hdiutil attach <Name>.img" from a command prompt, etc.).

Other options exist, but this is the easiest full-fidelity one that comes to mind.

As a bonus, you'll now have an emulated Mac OS 9 system that should run most of the applications from the original PowerBook's hard drive on your modern Mac.

[1] https://developer.apple.com/library/archive/technotes/tn/tn1...

[2] https://en.wikipedia.org/wiki/PowerBook_Duo#Docking_stations

[3] https://www.amazon.com/dp/B0081SAIS2/

[4] https://www.broadcom.com/support/download-search?pg=Legacy+P...

[5] https://wiki.qemu.org/Documentation/GuestOperatingSystems/Ma...

[6] https://www.macintoshrepository.org/19-plusoptimizer-plusmak...

[7] https://www.macintoshrepository.org/809-stuffit-deluxe-1-5-x...

[8] https://www.macintoshrepository.org/1724-toast-5-titanium

Nevolihs
0 replies
7h36m

I wish the author had given the model of the HDD and pictures of the PCB and connector. I think it'll probably be reasonably simple to hook that up somewhere else to copy the data. I work at a place where we do this sort of thing all the time, even with 30 year old hardware or older, the problem is just getting out of the software solution box. This isn't a software problem and it requires a different sort of expertise for the most part.

t0mek
4 replies
1d1h

A few years ago, I spent a fair share of time trying to copy files from and to a Macintosh Plus. I decided to use a 100 MB ZIP drive (actually two of them, SCSI for the Mac Plus and USB for a modern computer) and later a serial port connection with terminal software [1].

Now there's a much better and cheaper option: BlueSCSI [2]. It's a SCSI HDD emulator that allows to mount .img files stored on a SD card as HDD disks. It also supports CD and network card emulation.

Once the files are copied on a such a virtual drive, they can be extracted on a modern machine using via some kind of HFS explorer or an emulator.

[1] https://blog.rekawek.eu/2016/12/08/mac-plus#hard-drive

[2] https://bluescsi.com/

Agingcoder
3 replies
23h1m

I dreamt of Zip drives back in the days - I never quite understood white they didn’t become standard, much like usb drives would become later.

kalleboo
0 replies
15h54m

They were proprietary and made by only one company. So there was a bit of a battle between Zip, SyQuest and LS120 ("SuperDisk")

What I don't get is why Magneto-Optical didn't take off. 3.5" disks that were essentially MiniDisc but not proprietary (there were drives and disks from several manufacturers), faster than Zip, and eventually got upgraded to over 1 GB capacity disks. They were huge in Japan where they became a de-facto standard, but mostly unheard of in the rest of the world.

fluentbyfire
0 replies
17h19m

Zip drives malfunctioned too much. The "click of death" they used to call it.

WoodenChair
0 replies
16h25m

They sorta did in the Apple world. Maybe not quite a standard, but quite common. Apple shipped several Macs with (optionally) built-in Zip drives in the late 1990s.

PreInternet01
3 replies
1d2h

Well, the source site seems to be hosted on an 30-year-old laptop, and therefore unavailable (even trough archive.org), but here we go:

-If you ever encounter a situation where "well, this volume might contain valuable data" is a thing, try to make a forensically-sound copy first;

-Depending on the exact source media, this might be a very specific process. Don't skip on it, though.

But, once you have an accurate copy of the source media, feel free to run any non-destructive experiments that you'd like. After, of course, publishing the source media for fellow enthousiasts...

tfvlrue
1 replies
13h14m

the source site seems to be hosted on an 30-year-old laptop

You're not too far off :)

It's actually hosted on super cheap shared VPS with only 768MB of RAM and a single CPU core. This is the first time it's seen any real heavy traffic, and all considered I think it did pretty well with such limited resources.

I did a little postmortem investigation and, surprisingly, it wasn't CPU-bound. A low memory condition killed the database service a couple times. It looks like PHP-FPM was set to scale too aggressively. For the future I've reduced the number of workers it can spawn. Server administration is not my specialty, so this was a fun learning experience!

lawrenceyan
0 replies
8h13m

Wow! That’s efficiency right there. I’m pretty sure you can get a device with those specs for <$10 today.

Good job.

PhasmaFelis
3 replies
22h10m

I'm slightly shocked that (all?) modern OCR systems can't handle a perfectly clean image of Courier text with 100% reliability.

I wonder if reducing the font size for faster transmission made it worse? A larger font might have been easier to read. Probably save time in the long run.

EDIT: Actually, looking at the output of the Fax to Binary Converter program, I think that's very likely. Even I'm not 100% sure whether that 8x6 glob of pixels is a 0 or a D.

Hmmm. If nothing else, what about search-and-replacing the Word doc to replace some of the most difficult characters with clearer ones, and then reversing the process on the other end? I mean, that's ridiculously complex, but not as complex as writing a custom Fax to Binary Converter app.

tfvlrue
2 replies
15h4m

Author here. I was also surprised by this.

I simplified the story a bit for brevity. I actually tried a bunch of different font styles, including a 47 page fax using a pretty large size Courier (with only 72 characters per line). The screenshots from the blog post were after the point I decided OCR wasn't working, so I was using a heavily reduced font size to optimize the transfer time. Hence the characters looked like barely-legible blobs.

The Fax-to-Binary converter isn't doing anything particularly complicated with the image, just breaking it up into an accurately-aligned grid and hashing the pixel data of each tile.

Replacing the characters in the document hadn't occurred to me at the time! It's a good idea, but for my programmer brain, writing this software was the easier (and more fun) solution :)

steve1977
1 replies
11h25m

Just out of curiosity, would that old Mac OS have had OCR A or OCR B fonts available? (pretty sure Windows would have). These were essentially designed for OCR (duh...)

tfvlrue
0 replies
5h0m

Nope, not that I found. The set of fonts installed was _very_ limited. I can't remember the exact count, but I think it was less than 20. Nothing specialized like an OCR font.

vorticalbox
2 replies
2h15m

Would opening the laptop and attaching an audio jack the speaker wires have worked?

declan_roberts
1 replies
1h46m

Yes, but a lossy copy.

0l
0 replies
1h27m

Why would it have to be lossy? There are lots of modulation methods for digital data over an analog carrier.

thrtythreeforty
2 replies
1d2h

Is a fax implicitly an analog transmission? Or is there a digital data stream somewhere beneath the layer sending the photo that could be used like a modem?

utensil4778
0 replies
1d2h

Very, very old faxes used to be purely analog. Since dial-up was invented, however, faxes are fully digital. If you've ever used a fax machine, you'll notice the classic dial-up handshake noises. Faxes are modems and vice-versa: any PC with a modem could send and receive faxes. It was a commonly advertised feature back in the day.

Evidlo
0 replies
1d2h

Digital bitmapped images over an analog channel.

theideaofcoffee
2 replies
1d2h

He says that there are internal speakers, but no jack. If it were me, I would have cracked the case open and tapped into the audio going to the speakers directly and recorded it from another device, but then again this makes a much more satisfying hack.

mdorazio
0 replies
1d

Same. Solder one of the $1 audio cables I’ve got lying around to the speaker leads and run it into your choice of audio recorders, play the files and you’re done in 5 minutes with basically no losses.

JSR_FDED
0 replies
1d

That was my first thought too!

telegtron
2 replies
18h31m

Was it not an option to take out the HD and connect it to a modern computer? It sure had an HD. [0]

[0] Macintosh PowerBook Duo 280c: Technical Specifications https://support.apple.com/en-us/112137

flounder3
1 replies
18h23m

On the very first page:

The internal hard drive uses SCSI with an unusual connector. Adapting it didn't seem straightforward, and we weren't confident the old file system (HFS) would be easy to read from a modern system.

telegtron
0 replies
18h17m

Oops! I forgot I read that part. You are right.

mrunkel
2 replies
1d2h

DB9 serial to USB Null modem cable + some simple file transfer software would have solved this in minutes.

Since the mac had a built-in modem, you could have used that software to transfer the file via xmodem or ymodem protocol.

I guess this isn't common knowledge any more.

meffie
1 replies
21h59m

Should we tell them about fidonet too?

ruslan
0 replies
20h0m

Knowing about Fidonet is too much. But a little bit of UUCP definitely won't hurt. ;)

kleiba
2 replies
1d2h

If you have OCR in the loop anyway, you could have just taken a picture of the file as displayed on the original laptop, no need to do the fax transfer.

kelnos
0 replies
22h14m

Right. Fax is a terrible, crappy protocol that generates pretty bad images on the receiving side, even when you have clean phone lines. I wouldn't be surprised if a modern camera-phone photo of the screen displaying the text would yield a better image.

chem83
0 replies
1d2h

Also, replace the ambiguous characters like D/0 or 3/8 to something a bit more recognizable like D becomes d and 8 becomes X and then do a find-replace after the OCR process. Was there really a need to write the OCR software from scratch?

jandrese
2 replies
1d

In the picture with the phone cable plugged into the modem port directly next to it appears to be an Ethernet port. I know the blog post says there was "no networking software" installed, but the OS came with file sharing capabilities built in. Someone would have had to gone to effort to remove it. It might even have an old school FTP client.

Suppafly
1 replies
1d

That picture is of the thinkpad he used to receive the faxes. The mac doesn't have an ethernet port. I believe it would have had appletalk that maybe could have connected to ethernet using an adapter.

jandrese
0 replies
1d

Ah, that makes sense.

The problem with the Appletalk to Ethernet adapter is that would definitely need drivers that are unlikely to exist on the Mac.

Given that, then using the serial port with a dumb terminal would be the next best option, but IIRC MacOS didn't ship with a terminal application so there's a bit of a chicken and egg problem.

What might exist is an Appletalk implementation for the GPIO ports on a Raspberry Pi or similar board, which would let you use the built-in Appletalk file sharing to get stuff on and off of the machine. The retrocomputing scene has to have something like that, it would be extremely useful.

causality0
2 replies
21h20m

How do you transfer files off an Apple laptop from 1994? It's harder than it sounds!

Somewhat misleading. It would have been trivial if the laptop didn't have multiple hardware faults.

ThrowawayTestr
1 replies
21h15m

To be expected from a 30 year old laptop no?

causality0
0 replies
20h47m

Sure, but it makes it sound like the laptop being old is what creates the problem, when it's the laptop being busted that's the problem.

Terretta
2 replies
2h13m

"Think Alert Sound" I see in the dialog box -- is that the "I'm trying to think but nothing happens!" error message alert sound popular on Macs of that era? (We had that sound in the office, and many more.)

The sound I recall is the last phrase in 3stooges05.mp3 from here:

https://www.barbneal.com/the-collection/tv-shows/the-three-s...

Everyone's talking about the way to connect to the Mac, I'm just wondering if it's easier get the sound sources the Mac sounds the person wants were made from.

netsharc
1 replies
1h41m

In the spirit of creativity, I downloaded that MP3 and compared the waveform of the phrase and the one on the page. They don't seem to match.

Terretta
0 replies
1h19m

Only the very last phrase of it, not the whole thing.

You'd have to "trim" it (e.g. quicktime), then using Garage Band you can make it a iOS ring tone (how I rebuilt my pre OSX Mac sounds from original sources).

Suppafly
2 replies
1d

I'm not a Mac guy, but it seems like they glossed over all of the normal solutions to intentionally come up with weirdest one possible. Good for them getting the files they needed I guess, but still weird.

ska
1 replies
1d

The serial ports might have been easier (depending what was on the machine already and what you have on hand) but it's not obvious. The real problem was the lack of functioning floppy drive. Most of the modern "normal solutions" wouldn't help.

Suppafly
0 replies
1d

I suppose it depends on how fast you needed a solution too, getting an adapter for the hard drive probably would have been the easiest method even if you had to wait a week for one to come from ebay. Likewise, a replacement floppy drive could have been purchased too. Overall OP came up with a workable solution that didn't really require much in the way of purchases, and it might help someone else out in the future, it's just so strange.

MarkusWandel
2 replies
23h28m

I keep an old USB-to-SCSI adapter cable handy for this sort of challenge. In general, I hoard any USB-to-X adapters that I come across (RS232, parallel printer port, USB floppy drive, USB optical drive). Of course if you don't have the right SCSI cable that may not be worth the effort in this case.

morsch
0 replies
22h3m

Which SCSI? There's like five for just old school parallel SCSI.

kosma
0 replies
8h11m

Hold onto it, these things are incredibly rare.

sed3
1 replies
1d2h

This laptop has a serial port, I am pretty sure vanilla Mac is capable of transferring files over serial port. We did that on DOS all the the time.

ralphc
0 replies
1d1h

According to everymac.com it has a serial port but macs had odd port shapes that need a special cable.

musicale
1 replies
16h4m

I like the idea of using a SCSI adapter or cable and then making a hard drive image, which can then be booted in an emulator or mounted in Linux (or NetBSD, or older MacOS?) using the hfs filesystem. Could also use hfstools.

Making a localtalk adapter is also a cool idea. There seem to be localtalk implementations (tashtalk) for PIC microcontrollers. Someone even made a localtalk-wifi gateway.

twelvechairs
0 replies
15h33m

Yeah. A quick google says this uses a HDI30 plug, you can get a converter from this to scsi plug cheaply and another from scsi to usb. Then you just mount it in Linux. I'd imagine that's by far the easiest and most complete route.

mongol
1 replies
1d

Didn't it have 3.5" floppy disk?

giantrobot
0 replies
22h49m

The Duos did not have internal floppy drives. They had external floppies that used the docking port. Or you'd use a floppy in a big Duo Dock. This was not uncommon in the mid-90s for a smaller laptop.

m_herrlich
1 replies
1d2h

Jeez, no floppy drive on this laptop? How did people install stuff back then? But thanks, this is inspirational :)

zbentley
0 replies
1d1h

It had one, but the author mentioned that the drive's hardware had failed.

jorgelbg
1 replies
1d1h

Immediately took me back to the scene from Firewall (2006) when Harrison Ford is copying the account data with an iPod and a fax machine https://www.youtube.com/watch?v=J13jKfVH01o ^_^.

charbuff
0 replies
1d1h

What an epic save. I have a few laptops and harddrives that I have been wanting to convert for years, and this motivates me again to try since I know that they're a bunch of ide and nvme connectors, nothing near the hoops the author had to jump through.

johnklos
1 replies
12h17m

The internal hard drive uses SCSI with an unusual connector. Adapting it didn't seem straightforward[...]

I suppose the author hasn't heard of eBay. The adapter is $15.

The laptop has an AppleTalk port and a phone jack... but no networking software installed.

The author may have some search engine problems if they can't figure out that Macs have had networking software built in for ages, and that a PowerBook is too new to run any Mac OS that doesn't have networking :P

Transferring data via FAX is cool and job well done, but the other things really don't fit with a clever solution.

ajross
0 replies
2h17m

Started typing almost exactly this comment before checking to see if anyone else had. Absolutely. I guarantee that for any "old hardware" need there's a geek expert selling recovery/compatibility/adaptation hardware. These problems have all been solved, albeit not at a level of "take it into a repair shop" convenience.

Just as a point of general archival best practices: old spinning media are extremely fragile. Your goal should be to image the drive exactly once, before doing anything else. Once that completes, everything amounts to a pure software problem you can solve at your convenience. But insisting on booting that drive repeatedly trying to "recover" it is a good way to break it forever.

Also:

The internal hard drive uses SCSI with an unusual connector. Adapting it didn't seem straightforward, and we weren't confident the old file system (HFS) would be easy to read from a modern system.

Yeah, that's silly. You can literally mount that drive image on a vanilla linux box.

gizajob
1 replies
22h1m

What about pointing a camera at the screen and then paging through all the numbers on the Mac while capturing images?? Then you could OCR the numbers directly on the capturing laptop rather than trying to convert sound back into text.

10/10 for ingenuity anyway using the fax port.

sponaugle
0 replies
21h48m

I was thinking the same thing. A camera capture would be fast and accurate if you were going to ocr.

semi
0 replies
4h27m

interesting story but i really wonder why he wrote it out with pencil and paper rather than directly typing it into the other computer.

duxup
1 replies
1d2h

The phone line simulator was very impressive.

I likely would have given up several times and just played the audio on the laptop and tried capturing it with another device (my phone) over the air.

tantalor
0 replies
1d2h

I'd try cracking open the laptop and intercepting the audio signal before it goes to the built-in speaker

devit
1 replies
23h35m

Seems far easier to figure out the hard drive connector and find software that can read the filesystem.

hi-v-rocknroll
0 replies
23h12m

Of the era, it's probably Apple proprietary connector sort of like IDE but maybe not.

cabirum
1 replies
1d1h

Does it have a working C compiler? May have tried hacking together a data-over-audio app. Or quickly steam a bunch of qr codes.

rusk
0 replies
23h38m

Probably not

axus
1 replies
1d2h

Good story, I liked how they were almost thwarted by FCC fax regulations.

jeffhuys
0 replies
1d

I also love how they required this to always know the sender of the fax, but then not requiring you to fill in a name…

Cockbrand
1 replies
23h59m

ResEdit... now that's a name I hadn't heard in a long time. ResEdit was really a fantastic tool to do all sorts of tinkering. Too bad pretty much all Mac software is signed now, so this kind of tinkering isn't possible any more.

Amorymeltzer
0 replies
12m

Quite a memory. I'm fairly certain that using ResEdit to modify and create plug-ins for Escape Velocity: Nova (the sequel to EV Override in the games folder here) is what first got me interested in programming.

Brajeshwar
1 replies
1d1h

Wow! That was an exciting read. It was way too complex for my limited knowledge of computers.

Sometime around 1993-1994, based on my placements against other relative events, I had the opportunity to "fix" a non-booting IBM Laptop. It was thick, heavy, and large but with just a screen the size of a 3½ Floppy. I have never encountered such a laptop in pictures or elsewhere, so I will assume it was even older in those years.

If anyone have any idea what that might be, it would be nice to see a picture.

An eccentric, out-of-time, local-uncle/mentor gave me that to fix and I let it lie on my table for a few days just to show off to others. I think we did something stupid and simple to fix it - replace the AUTOEXEC.BAT and then load WordStar, which was the only thing they need. Not even Windows 3x but DOS.

The Laptop was likely given by the visiting Christian Missionaries who visit the local Churches in my hometown.

I've another computer-fixing story, but I need to remember and write down the details. Sleeping in an army barrack in the mountains, armed guards while we pee, and returning home while taking care of a pregnant woman in an ambulance. That "mission" was with my childhood/neighbor friend, but he died. That out-of-time uncle also died. Not related.

wannacboatmovie
0 replies
1d2h

If it had "fax software" it almost certainly had terminal emulator software whereby one could use something like ZMODEM and not corrupting the files in the process.

This was painful to read, like using a butter knife as a precision screwdriver.

skeaker
0 replies
21h34m

Maybe I missed it, but it seems the actual sound file that was transferred wasn't included in the post... A shame, since all that buildup had me wondering what the file was!

ska
0 replies
1d

Years ago I had a (much older) colleague who seemed to obsessively copy data onto newer media, including transcoding file formats sometimes. I'm pretty sure it was to avoid this sort of dance and avoid thinking about what they might want to keep. They had a nightmare story of recovering data off an obsolete-ish tape format, after all...

rurban
0 replies
10h53m

I would have compressed it with some kind of Reed-Solomon (ARC, RAR,...) and sent this hexdump instead per fax. Much shorter (audio is extremely compressable) and with additional OCR hints in the RS decoder. Even a trivial CRC check per block or line would be better than nothing

rnitchy
0 replies
6h49m

o shoot. i see Lode Runner, the legend returns on there!! Some great times as a kid playing that

qalmakka
0 replies
19h50m

we weren't confident the old file system (HFS) would be easy to read from a modern system.

AFAIK modern Linux is still able to properly read from HFS and HFS+. I mounted a MacOS 9 disk image just a few days ago.

pradmatic
0 replies
22h32m

One of the coolest articles I’ve read lately. Thanks for sharing!

olddragon2a
0 replies
10h46m

Brings back a memory of doing a similar transfer with two systems that refused to communicate with each other. Had to install a printer driver long ago. The computer wasn't on the network and refused all media including connecting another hard drive directly. It did have a 300 baud modem though. Took an entire weekend to bounce the 11 something megabyte driver over to it through a BBS I emailed the driver to.

og2023
0 replies
20h33m

You could have made photographs of the hex representation right from the screen with a modern smartphone, recognize them through the built in into the camera app software and call it a day.

novagameco
0 replies
1d2h

Did the laptop not have any kind of serial port to write to?

notorandit
0 replies
21h12m

Video hex display and camera recording...

mysteria
0 replies
1d

Since these are audio recordings an easier hardware approach would be to tap the output of the motherboard's D/A converter right before the speaker amp and capture it with an A/D. You could also tap the speaker wires which should be easier than tapping thin SMD traces, though the signal might have been highpassed before amplication to better support the small laptop speakers.

Of course this means you'll have to disassemble the ancient laptop and all that, and it won't be a bitperfect capture. For voice recordings though the quality should be more than adequate.

mmmlinux
0 replies
22h44m

raspberry pi with serial and localtalk. done.

metalliqaz
0 replies
23h59m

If you're just doing OCR you could have taken photos of the screen, right?

lemoncucumber
0 replies
11h35m

Like others have said, AppleTalk is the right way to solve this.

But if we’re going with crazy hacks, I bet one could emulate an ADB keyboard to copy binaries onto the laptop by sending keystrokes to “type” hex into ResEdit.

kristopolous
0 replies
17h6m

people have done floppy<->SD card emulators for over a decade such as here (https://jimatwood.wordpress.com/2011/04/23/sd-card-hxc-flopp...)

It'd take a bit of work but you could probably just go straight to USB and maybe even have some file system trickery where you misreport the amount of "free space" as the host os copies to the "1.44MB" floppy basically by opportunistically "removing and freeing" sectors from the virtual disk transparently, essentially always reporting 1.44MB. It's such a dirty and beautiful hack if it would work.

If I were doing this, this is essentially the only approach I'd actually be interested in.

kkfx
0 replies
4h18m

Hum, a 30-years-old laptop without a serial port? Because a usb-serial on a modern machine, a null-modem cable, kermit/gtkterm/minicom/* and passing data it's much easier...

kk6mrp
0 replies
1d1h

Did you get Doom on it the same way?

kilianinbox
0 replies
12h33m

there is a screen and speaker :) mobiles have mic and cam.. and we can write a C or any oldschool that can transfer data to screen or speaker :) noisy ! no need to physically serial floppy disk things

josephcsible
0 replies
1d2h

Oops. The FCC says I need a cover page. Let's try to appease them.

Yet another reason I hate when things I own try to enforce laws against me: there will be cases, like the author's, in which the law doesn't apply but the thing doesn't know it.

jesprenj
0 replies
20h2m

OP could search-and-replace all Ds in Word with something more understandable by the OCR, maybe a period, before faxing the document. Or maybe convert every hex character into two characters from the set .0-|, doubling page count.

jeffbee
0 replies
20h44m

Something is a little off about the statements regarding the rarity of HTTP in 1994. I didn't know anyone with a Mac that lacked Mosaic (or, later, Netscape) and NCSA Telnet.

j45
0 replies
21h10m

Creative way to transfer a file.

Could just use a serial cable on one end, and USB->serial or parallel port cable that could transfer files with the software to allow file transfers easily.

isoprophlex
0 replies
12h36m

A (lossy) fix for the bad OCR giving glitched PCM data would be to do a median sliding window filter. Not 100% accurate, but it would probably be good enough...

irusensei
0 replies
22h58m

Uh... Laplink serial cable?

gumby
0 replies
1d

I like this article, but given the number of misreads (small, in the example given) it might have been easier to diff a couple of OCR'd versions and just look up the diffs manually.

goda90
0 replies
1d

I did tech support for my college's library. Someone donated some collection to the library and their catalog of it was in a spreadsheet on an Amiga 2000. I was tasked with recovering it. The Amiga turned on, but its normal monitor connection didn't work. It did have another connector that I hooked up to a CRT TV and got a blurry black and white output. I think I used a floppy disk to copy the file off, and the format was not supported so I picked through the plain text view to get the info.

ggm
0 replies
17h14m

Years ago bootstrapping 4.1BSD on a vax730 (a very mini variant of the 11/780) all I had was single disk removable rl02 type platters. And had to do a sequence of

  dd seek= 
Commands to split a 1200 bpi tape read ona larger machine nto chunks, write to the pack as a raw bits to read off, and reassemble as a boot structure to install from.

ganesmo
0 replies
16h6m

I would suggest you to tap the inputs to the speaker to get preout equivalent of audio signal using audio transformers that support the input impedance equal to the speaker impedance. Once pre out is achieved, then it is easy to record

fsckboy
0 replies
2h10m

The internal hard drive uses SCSI with an unusual connector. Adapting it didn't seem straightforward

this was the way:

SCSI is a bus mastering protocol which allows multiple masters to share the bus, which means you can plug two computers into the same SCSI bus at the same time and they will both be able to share access the disk device. You wouldn't want to rely on simultaneous access to the file system, but the entire disk from those days would be just a large file today and you could just dump the whole thing (the inconsistencies in the open file system would be like recovering from a crash, and none of the long term files would be affected)

and we weren't confident the old file system (HFS) would be easy to read from a modern system.

the nice thing about opensource/New Jersey style is that that old HFS would be completely easy to mount loopback on linux

I still have a complete disk image of my old Mac SE20 from 1988, and I still mount it up from time to time, and I pulled it off my old mac through the scsi bus. I believe the 20 referred to the MHz of the 68020 processor, but it also coincidentally had a 20MB disk, as was the case for the SE30 that came out the following year.

Deus fax machina: While the laptop has no networking software, it does have fax software ... The first question was how to turn the audio file into something faxable.

this reminds me of an old idea I had that I never pursued. Back in the days of fax there was generally a cover sheet for tracking/delivery of faxes in an office environment, but which seemed like a waste of paper/modem time to me who was never in a big org situation. To cut to the chase for my idea, I thought it would be cool to transmit something like a large QR code on the coversheet, which would be an encoding of the document you were sending in .DOC (ms-word) format. That way, you could fax to a fax machine, but if the recipient was a computer modem it could receive the document in original format, and abort (via handshake) the rest of the fax transmission. I thought it would be a gentle way to transition past "obsolete" fax technology.

eviks
0 replies
1d

Since the two easier options of transferring data directly via the modem or connecting the hard drive were not explored properly, nor the third option of much bigger font size (let it take 8 overnight hours for large easily OCRable text?), maybe adding some kind of parity check could've helped restore audio perfectly?

dewfaced
0 replies
1d

Was Appletalk not installed? It just used a apple printer cable to do networking, this is how I played Warcraft II back in the day.

cycomanic
0 replies
9h24m

Those artifacts in the audio file should be trivial to correct, I suspect even a super simple outlier detection script would have worked. Should have been much easier than optimising the OCR (not to disparage the effort).

brisketbbq
0 replies
20h22m

I think I would have just pulled out my audio recorder and played the file on the computer.

The files were very small and recorded with the internal mic on the computer, so it's not as though these are high quality recordings, they're more sentimental to whoever owned the laptop.

asveikau
0 replies
20h5m

I wonder how hard it would be to track down a dock. Googling around, it seems like the dock has nubus slots, which would mean you could add ethernet.

From there, I remember running ssh and scp on classic macs, so that is theoretically possible. Getting those old clients to talk with modern sshd might be tough.

I feel like I would attempt that, or perhaps floppies, before what this person did...

anthk
0 replies
1d2h

If you can fax I'm sure you can do some zmodem/ymodem.

andix
0 replies
22h43m

If it was an old DOS/Windows laptop, you could just use INTERLNK via COM or parallel port. I have to post that, it's just such a nostalgic memory copying files like that.

So if somebody needs to do it: Dosbox + USB-RS232 adapter and the right cable. INTERLNK/SRV was included with DOS 6.0 and later, so it's rather easy to find.

amelius
0 replies
22h37m

The laptop has no audio jacks, so we couldn't get good analog copies of the recordings even if we wanted to.

How about directly connecting a DSO to the speaker terminals?

WalterBright
0 replies
1d2h

In the olden days, we transferred files using the RS232 serial port between computers that had no compatible media.

ThePowerOfFuet
0 replies
8h2m

Faxing a hexdump then OCRing it,.instead of sending the file itself by Xmodem/Zmodem?

Sprotch
0 replies
19h47m

Those games brought back some memories…. Escape Velocity was such an awesome game!

SillyUsername
0 replies
10h25m

I'd have got the floppy working. It's highly likely a short, perhaps a bent pin, if it's failing to start with it connected, or possibly just some duff caps.

RIMR
0 replies
21h58m

This is a neat trick and all, but if you could find the Duo Dock, it has a SCSI port on it to connect a second hard drive.

Felger
0 replies
18h21m

I recovered a post apo novel written like 30 years ago by a friend last year.

Patient : Miniscribe 8425SA 20 MB SCSI hard disk from an Apple Hard Disk 20SC (external SCSI enclosure with a HDD). Hoped the disk was still in working condition after more than a decade stored (HDD was built in '88 and a sticker mentioned a repair in '99), the enclosure power supply was presumed dead (no power on) and the mac itself was shorting mains power in a few little minutes, probably from the screen high voltage converter dying and shorting.

I simply extracted the hard disk from the enclosure. This full height 3.5" disk has an "external" mechanical actuator : a stepper motor visible from outside drives the arm with the head(s) inside the disk, protected by a bellows. It gives a cool sort of a floppy drive sound when random access occurs.

I simply plugged it on a SCSI chain on my vintage Advansys SCSI PCI Card and ribbons.

Read the HFS partition with an old recovery software I could find on the recovery computer, quickly found the files (very simple file system and hierarchy), recovered them on the PC. Encountered just one bad sector.

Then looked the content of the file as raw shaking and ajusted the recovered text format for use with Windows PC/Word from the old word processor software - I think they were Corel Wordperfect files.

Very few correction to make to the raw text. Layout will have to be more thoroughly restored beyond EOL. Mainly accented characters and a few other replacements to do. I thought it would be more of an chore from an vintage apple system and third party software.

Overall, it was far easier than expected. Took me less than 2 hours. But am a ex data recovery guy with some ressources.

Quite pleased the miniscribe acted almost like a charm after 10 years or so of (warm, indoor) storage and not a single power on. Feared the HDD motor's ball bearing were totaly stuck !

Dwedit
0 replies
22h43m

Upon reading the headline, my guess for how to copy a file off would involve a Parallel-port ZIP drive on the old computer, then using a USB ZIP drive on the modern computer. Or a USB disk enclosure that uses IDE. Now I'll go read the article...

Oh, it's about a Mac...