[HN Gopher] How to copy a file from a 30-year-old laptop
___________________________________________________________________
How to copy a file from a 30-year-old laptop
Author : tfvlrue
Score : 305 points
Date : 2024-05-31 15:30 UTC (7 hours ago)
(HTM) web link (www.unterminated.com)
(TXT) w3m dump (www.unterminated.com)
| mbreese wrote:
| 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?
| Evidlo wrote:
| He says he tried multiple font sizes.
| tfvlrue wrote:
| 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 wrote:
| Did you try a search-and-replace in Word, changing the
| problem characters to something else?
|
| e.g. 0123456789ABCDEF 012345M7XPAVKHEF
| tfvlrue wrote:
| 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 wrote:
| 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
| adastra22 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| immibis wrote:
| I once solved the Wayland screen sharing problem this way. [0]
|
| [0] https://social.immibis.com/notice/AeWSRvyKlhBB2hANoe
| p0seidon wrote:
| Had exactly the same thought.
| gizajob wrote:
| I had this brainwave and basically duped your comment before
| I'd scrolled down to read it...
| PreInternet01 wrote:
| 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...
| chedabob wrote:
| Someone managed to snag a copy:
| http://web.archive.org/web/20240531155301/https://www.unterm...
| axus wrote:
| Good story, I liked how they were almost thwarted by FCC fax
| regulations.
| jeffhuys wrote:
| 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...
| duxup wrote:
| 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 wrote:
| I'd try cracking open the laptop and intercepting the audio
| signal before it goes to the built-in speaker
| kleiba wrote:
| 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.
| chem83 wrote:
| 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?
| kelnos wrote:
| 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.
| sed3 wrote:
| 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 wrote:
| According to everymac.com it has a serial port but macs had odd
| port shapes that need a special cable.
| novagameco wrote:
| Did the laptop not have any kind of serial port to write to?
| thrtythreeforty wrote:
| 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?
| Evidlo wrote:
| Digital bitmapped images over an analog channel.
| utensil4778 wrote:
| 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.
| ruslan wrote:
| 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...
| rvense wrote:
| Apple used 8-pin mini DIN connectors for serial. The author
| might not have had the right cable.
| ruslan wrote:
| 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. :)
| inferiorhuman wrote:
| 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 wrote:
| 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...
| hi-v-rocknroll wrote:
| A Farallon EtherWave provides Ethernet directly.
| tfvlrue wrote:
| 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 wrote:
| The faxing program you were using should have a terminal
| feature which was used to setup modem and to dial BBSes. :)
| fuzzfactor wrote:
| 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.
| oneplane wrote:
| 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 wrote:
| 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.
| duskwuff wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| canucker2016 wrote:
| 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.
| ruslan wrote:
| Excellent find!
|
| The user should have consulted HN before diving into the
| problem. :)
| tfvlrue wrote:
| 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.
| Moru wrote:
| 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 :-)
| EvanAnderson wrote:
| > 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 wrote:
| Thanks for mentioning {X,Y,Z}modem. I think folks forget that
| it still has modern uses.
| implements wrote:
| 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)
| tsegers wrote:
| 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 wrote:
| U-Boot supports Zmodem ?
| ale42 wrote:
| 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.bo
| otlin.com/u-boot/latest/source/common/xyzMo...
|
| extremely useful feature (I used xmodem in the past, if I
| remember well)
| ruslan wrote:
| Did not know that. Indeed it's very useful. Thank you!
| olyjohn wrote:
| 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.
| gcp123 wrote:
| 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.
| anthk wrote:
| If you can fax I'm sure you can do some zmodem/ymodem.
| gist wrote:
| 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...
| anthk wrote:
| 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 wrote:
| 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.
| elaus wrote:
| 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 :)
| tfvlrue wrote:
| 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 wrote:
| 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 wrote:
| 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!
| chasil wrote:
| 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 wrote:
| 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.
| chasil wrote:
| 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 wrote:
| 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.
| Symbiote wrote:
| Looks like it's the MODE command:
| https://home.csulb.edu/~murdock/mode.html
| qwerty456127 wrote:
| 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 wrote:
| 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 wrote:
| Just program directly on the macbook! :D would be fun to
| experience imo
| jeffhuys wrote:
| `cat file > /dev/com1`, or something like that.
| rusk wrote:
| Isn't this a pre unix mac?
| chasil wrote:
| 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.
| m_herrlich wrote:
| Jeez, no floppy drive on this laptop? How did people install
| stuff back then? But thanks, this is inspirational :)
| zbentley wrote:
| It had one, but the author mentioned that the drive's hardware
| had failed.
| mrunkel wrote:
| 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 wrote:
| Should we tell them about fidonet too?
| ruslan wrote:
| Knowing about Fidonet is too much. But a little bit of UUCP
| definitely won't hurt. ;)
| qiqitori wrote:
| > 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)!
| tfvlrue wrote:
| This is great! I'm amazed that someone else has solved the same
| problem in a different context. Good stuff.
| lisper wrote:
| 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 wrote:
| _> 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 wrote:
| 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 wrote:
| _> 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 wrote:
| 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?
| jdsnape wrote:
| 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.
| Rinzler89 wrote:
| 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...
| Terr_ wrote:
| 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 wrote:
| 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.
| OptionOfT wrote:
| 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.
| jdthedisciple wrote:
| > 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 wrote:
| 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.
| jdthedisciple wrote:
| > hex dump
|
| ah, missed that, was just skipping through
| Moru wrote:
| Still would not solve the problem of copying data without
| changing it.
| mminer237 wrote:
| 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.
| theideaofcoffee wrote:
| 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.
| JSR_FDED wrote:
| That was my first thought too!
| mdorazio wrote:
| 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.
| wannacboatmovie wrote:
| 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.
| WalterBright wrote:
| In the olden days, we transferred files using the RS232 serial
| port between computers that had no compatible media.
| josephcsible wrote:
| > 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.
| btbuildem wrote:
| 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.
| immibis wrote:
| 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 wrote:
| 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 wrote:
| > 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).
| t0mek wrote:
| 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 wrote:
| 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.
| endgame wrote:
| The fax is a good trick, but my favourite story of this type
| involves a hand-written hex editor and many, many, hours of
| copying bytes by hand:
|
| http://www.oocities.org/zztexpert/docs/upoprgv4.html
| Brajeshwar wrote:
| 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 31/2 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.
| cornholio wrote:
| Sounds like an IBM Portable PC:
| https://en.wikipedia.org/wiki/IBM_Portable_Personal_Computer
|
| Although the screen on that would have been somewhat larger
| than a 3.5" floppy (and it didn't even come with 3.5 floppies,
| just 5.25). You could find a smaller screen on the Osborne 1
| and other early 80s portables, but they wouldn't have run DOS.
|
| PC Convertible is another option:
| https://en.wikipedia.org/wiki/IBM_PC_Convertible
| kk6mrp wrote:
| Did you get Doom on it the same way?
| jorgelbg wrote:
| 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 wrote:
| 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.
| cabirum wrote:
| 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 wrote:
| Probably not
| dewfaced wrote:
| 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.
| gumby wrote:
| 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 wrote:
| 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.
| jandrese wrote:
| 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 wrote:
| 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 wrote:
| 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.
| 1970-01-01 wrote:
| You can also print it: http://ollydbg.de/Paperbak/#1
| Suppafly wrote:
| 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 wrote:
| 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 wrote:
| 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.
| eviks wrote:
| 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?
| ska wrote:
| 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...
| mongol wrote:
| Didn't it have 3.5" floppy disk?
| giantrobot wrote:
| 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.
| mysteria wrote:
| 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.
| Cockbrand wrote:
| 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.
| metalliqaz wrote:
| If you're just doing OCR you could have taken photos of the
| screen, right?
| devit wrote:
| Seems far easier to figure out the hard drive connector and find
| software that can read the filesystem.
| hi-v-rocknroll wrote:
| Of the era, it's probably Apple proprietary connector sort of
| like IDE but maybe not.
| MarkusWandel wrote:
| 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 wrote:
| Which SCSI? There's like five for just old school parallel
| SCSI.
| irusensei wrote:
| Uh... Laplink serial cable?
| mmmlinux wrote:
| raspberry pi with serial and localtalk. done.
| Dwedit wrote:
| 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...
| andix wrote:
| 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 wrote:
| > 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?
| pradmatic wrote:
| One of the coolest articles I've read lately. Thanks for sharing!
| StillBored wrote:
| 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 wrote:
| > _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 wrote:
| 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 wrote:
| Appletalk was installed by default in all Macs of that era -
| the author is talking about TCP/IP
| PhasmaFelis wrote:
| 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.
| gizajob wrote:
| 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 wrote:
| I was thinking the same thing. A camera capture would be fast
| and accurate if you were going to ocr.
| RIMR wrote:
| 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.
| skeaker wrote:
| 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!
| causality0 wrote:
| _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 wrote:
| To be expected from a 30 year old laptop no?
| causality0 wrote:
| 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.
| notorandit wrote:
| Video hex display and camera recording...
| j45 wrote:
| 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.
| jeffbee wrote:
| 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.
| kjellsbells wrote:
| 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?
| anal_reactor wrote:
| 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.
| fragmede wrote:
| 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.
| og2023 wrote:
| 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.
| brisketbbq wrote:
| 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 wrote:
| 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...
| jesprenj wrote:
| 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.
| qalmakka wrote:
| > 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.
| Sprotch wrote:
| Those games brought back some memories.... Escape Velocity was
| such an awesome game!
___________________________________________________________________
(page generated 2024-05-31 23:00 UTC)