Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

1200-Baud Archeology

kdawson posted about 6 years ago | from the when-men-were-men-and-interpreters-ran-in-4k dept.

It's funny.  Laugh. 211

jamie found this singularly geeky article on reconstructing Apple I BASIC from a cassette tape. It claims to offer the first confirmed perfect dump (BIN) of the 4096 bytes of this venerable interpreter. Terrific fun for the whole family. "The Apple I is extremely rare. Only 200 were built, and less than 100 are believed to be in existence. Neither Steve nor Woz own an Apple I any more, and neither does Apple Inc. The cassettes are even rarer, as not every Apple I came with one... So here is how to decode the signal. Let us first open the audio file in Audacity and look at the waveform... It is now time to write a small program to measure and dump the width of the pulses."

cancel ×

211 comments

Alternative tools (5, Interesting)

stryyker (573921) | about 6 years ago | (#24193315)

Probably would have been useful for the person to look at how C64 emulators and people handle transfer C64 tapes to PC.

Re:Alternative tools (5, Interesting)

Alioth (221270) | about 6 years ago | (#24193465)

Yes - I thought this too - the article's slashdotted at the moment but the summary makes me think he made a mountain from a molehill. In the Sinclair Spectrum world, loading Speccy tapes on to a PC, and encoding them in a useful format (TZX) has been a solved problem for years.

All these tape formats were physically pretty similar when it comes to how they were encoded, and the same techniques could have been used by looking at any home computer emulator that loaded stuff from tape even if the details were different.

Re:Alternative tools (3, Funny)

KGIII (973947) | about 6 years ago | (#24193593)

I was actually thinking VIC 20. (I painfully admit that the first was not a woman but a PET and my father and I built a wooden case for it but that predated the VIC 20 by about a year or so.) I played FLOG off of tape and saved my SkiDownHillFaster game to tape damn it! Now somoene better get off my lawn but probably not you.

Re:Alternative tools (4, Insightful)

lpontiac (173839) | about 6 years ago | (#24193665)

the summary makes me think he made a mountain from a molehill.

I think the emphasis is more on the historical significance, given the rarity of the tapes and the fact that the only digitised copy floating about has been patched.

Re:Alternative tools (1)

Dan East (318230) | about 6 years ago | (#24193947)

The article comes up fine for me. He lists a simple C routine comprised of 15 or so lines of code. So it wasn't like he made that big of a mountain out of it.

Re:Alternative tools (2, Insightful)

YeeHaW_Jelte (451855) | about 6 years ago | (#24193999)

The code being simple does not necessarily mean the though process of coming to those 15 lines was simple and/or straightforward.

Re:Alternative tools (4, Interesting)

Lumpy (12016) | about 6 years ago | (#24193953)

Didn't the Apple I use PSK instead of FSK encoding for the tape audio?

I though instead of Shifting frequency they shifted phase which is quite a but harder to detect than frequency shift.

BTW: Computer Tapes worked great to load software across Ham radio. 2 meter radio, I would load a game from a friend across the city over 2 meters by simply patching audio from the rig to the computer.

Luckily the C64 had a very slow bitrate (even the floppy drive was slow as hell) for it's storage tapes so it worked great.

Re:Alternative tools (1)

badran (973386) | about 6 years ago | (#24194029)

So you had better wifi then....

Re:Alternative tools (5, Interesting)

daBass (56811) | about 6 years ago | (#24194573)

There used to be a Dutch radio program in the 80s called "NOS Hobbyscoop" that had their own basic interpreter for many computers of the day. (MSX, Acorn, Sharp MZ, etc.)

They actually broadcast computer programs every week on medium wave AM. They'd count down, you start the cassette recorder and you had some new programs.

Fun for the whole family, even if a bit painful on the ears!

Re:Alternative tools (4, Interesting)

Mr Z (6791) | about 6 years ago | (#24195381)

No. It's FSK, but it used a constant number of zero crossings per bit, rather than a constant bit period. So, to decode it, you count the average time between zero crossings rather than the number of zero crossings in a fixed time window.

On the plus side, it seems like the Woz scheme has some benefits. If you assign the shorter bit period to the more common bit value (likely, '0'), you shorten your average recording length a little. On the minus side, if you get an extra zero crossing in there (say, due to noise that wasn't filtered away by a Schmitt trigger or other hysteresis somewhere), recovery may be awkward.

BTW, the C64 floppy drives were slow as heck, but that had nothing to do with the bitrate for its media. There's some goofy history there, involving bugs in the shift register on the VIC-20's PIA, the decision to use CPU control loops instead to determine the bit period when communicating between the drive and the machine, and then the greater cycle-stealing period of the VIC-II as you get to the C64 throwing a monkey wrench in the works. The fast-load carts worked by restoring the native CIA hardware shift register to get rid of the CPU-controlled bit shifting to read bits from the floppy, restoring its speed to performance levels similar to the old IEEE-488 based bus they used back in the Commodore PET era. But that's a different story for another day.

--Joe

Re:Alternative tools (5, Insightful)

linhux (104645) | about 6 years ago | (#24195553)

When I was a teenager, I used to decode FAT tables and directory structures by hand, using pen and paper and printouts from a raw hex dump of a hard disk. I didn't do this because there was a problem needed to be solved; I knew what was on the disk and there sure were plenty of tools to read the data (like MS-DOS). But it was a fun challenge and I learned how FAT worked.

I can see how this is a similar challenge. It's nothing more than a geeky sudoku.

Re:Alternative tools (2, Interesting)

CharlieG (34950) | about 6 years ago | (#24193781)

Actually, If I remember right (digging back oh, nearly 30 years into the recesses of my mind), the C-64 had a fairly unusual tape format, unlike almost everyone else, just like their disk drive was unique (everyone else used a fixed number of sectors/track, where Commodore used a variable number, with more sectors/track as you moved out, to get more data on the disk)

Re:Alternative tools (1)

Miamicanes (730264) | about 6 years ago | (#24195335)

Has anyone written a program that can take a .wav sample of a poor-quality c64/vic 20 tape (stretched tape, warbling output, drifting volume level, etc) and do modern DSP analysis on it to turn it into something the more mundane .wav->.tap converters can handle? I unfortunately don't have the background to actually implement such a beast, but from what I know about both DSP and the way signals were recorded to tape by a Datasette/C2N, it *should* be a somewhat straightforward exercise. In theory, it might even be possible for a software DSP to recognize "print through" artifacts and accommodate for them.

Going a step further, does there exist a guide to the tokenization scheme used by BASIC on the Vic/64, so if there end up being a couple of mangled/indeterminate bytes, the proper values can be guessed based upon their context and the values of the surrounding bytes (assuming it's not in the middle of something mostly context-free, like a DATA statement)?

I have a couple of Vic-20 programs I wrote back in middle school that I'd love to recover for nostalgia reasons, but I've never been able to get any of the .wav conversion software to take them because the average volume level's drift tends to exceed the high/low threshold. In other words, I can only get a semi-intact CRC-error-free dump of the header and first few bytes if I set the threshold to something like 1 or 2, but within a second or two of the main recording starting, its average volume level drifts up or down enough to put "low" above the beginning's "high" threshold, or "high" below the beginning's "low" threshold. And most of the programs I've seen aren't much more sophisticated than the C64/Vic 20's own tapeloading routines were. For example, they might use the two copies to determine an error, but they don't even try to use the good parts of both copies to produce a single error-free result. The original hardware/software didn't do it because there wasn't enough RAM... but modern software has no such limit ;-)

this makes me want to take a dump of my own (4, Funny)

Anonymous Coward | about 6 years ago | (#24193327)

*off to bathroom*

I'll report my findings later

Re:this makes me want to take a dump of my own (4, Funny)

Anonymous Coward | about 6 years ago | (#24193677)

be sure to check the logs

Re:this makes me want to take a dump of my own (2, Informative)

eclectro (227083) | about 6 years ago | (#24193835)

be sure to check the logs

There are no logs with a cload.

Re:this makes me want to take a dump of my own (1)

morgan_greywolf (835522) | about 6 years ago | (#24194135)

Mod parent Informative!

Sounds like a great idea for an iPhone app. (4, Funny)

jcr (53032) | about 6 years ago | (#24193343)

It would be way cool to have an Apple I emulator on my phone. Come to think of it, a DEC PDP-1 emulator with SpaceWar would be pretty sweet, too.

-jcr

Re:Sounds like a great idea for an iPhone app. (-1, Flamebait)

Anonymous Coward | about 6 years ago | (#24193715)

Either would be more complex than a jcr emulator, which would just spout poorly defended pro-Apple and pro-laissez-faire rants at every opportunity.

Doing it the hard way (1)

MichaelSmith (789609) | about 6 years ago | (#24193361)

It is now time to write a small program to measure and dump the width of the pulses

Its just an FSK modem. I have an old computer right here in my house which would demodulate that, once I bumped the clock rate up by a factor of four.

Re:Doing it the hard way (5, Interesting)

Hal_Porter (817932) | about 6 years ago | (#24193513)

Yes. But a few people did some very magical things with tapes before the became obsolete. I saw a demo of a turbo tape system on an Atari 800XL which could load games "faster than a disk drive". Actually it about tied, but that was still impressive. The disk drive could probably managed 9600 baud sustained.

The modulator / demodulator was lump of potted electronics I could easily fit in my hand. Potting compound was a blank gunk you applied to electronics you didn't want people to tamper with, in this case to stop people seeing the components used. But whatever they were they could modulate and demodulate data at around 9600 baud. This was in the 80's back before DSPs too, so whatever circuit was used must have been made of Op Amps, transistors and passive components.

I never worked out how it worked. Though I can imagine exploiting the stereo nature of the tapes to send one carrier and phase shifted signal might work. Phase modulation is easy and demodulation is too if you have the carrier. Still phase modulation at 9kbaud+ would be a tight fit on an audio tape. I don't think things like QAM would be possible given the size of the package, the selling price (about twenty English pounds, or $40), and the primitive nature of 80's technology.

Re:Doing it the hard way (2, Interesting)

MichaelSmith (789609) | about 6 years ago | (#24193601)

My 6502 system accessed the tape at 300 baud. I used an old cassette recorder for the job. I had my eyes on my uncles reel to reel hi-fi system. I reckon I could have got 9600 baud out of that just by exploiting the frequency response.

Re:Doing it the hard way (1, Interesting)

Anonymous Coward | about 6 years ago | (#24193689)

The computer I designed and built around 1981 did 9600 bps with some TTL logic i designed myself. The format used was Manchester II, very simple to encode and decode if the clock can be recovered (the difficult part) for the decode phase. I think I used less PCB space than what was needed for the common 300 bps Kansas City format.

Re:Doing it the hard way (5, Interesting)

Hal_Porter (817932) | about 6 years ago | (#24193873)

The computer I designed and built around 1981 did 9600 bps with some TTL logic i designed myself. The format used was Manchester II, very simple to encode and decode if the clock can be recovered (the difficult part) for the decode phase. I think I used less PCB space than what was needed for the common 300 bps Kansas City format.

When the Atari sent data to the tape it had an internal modulator. But IIRC the demodulator was in the tape deck. And in any case you could output data to the disk drive, when it was a selectable baud 0-19200 rate and not modulated. So it seems like the turbo tape interface could use custom software to get 9600 baud TTL data to or from the tape and do its 9600 modem baud magic internally with a handful of components.

Tapes are stereo, so you could send the clock one one channel and the phase shifted clock (the signal) on the other.

You need an oscillator and a phase shifter made out of an XOR gate to modulate. Shifted single goes on one channel say left, unshifted one on the other, say right

To demodulate you use a phase detector made out of an XOR gate to compare the phase of the two channels.

This would be analogous to Manchester BPSK coding, except that you use one of the two audio channels to store the carrier so you don't need to spend expensive electronics regenerating it.

So something like this seems plausible. Unfortunately I didn't know enough about electronics back in the Atari days to try it.

Re:Doing it the hard way (1)

repvik (96666) | about 6 years ago | (#24194309)

echo -e 'global _start \n _start: \n mov eax, 2 \n int 80h \n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;

Too long for the signature field? It appears it would compile the forkbomb, but not run it. Or am I missing something? :)

Re:Doing it the hard way (0)

Anonymous Coward | about 6 years ago | (#24194549)

run the executable ( ./a )

9600 baud was common on C64 (1)

Joce640k (829181) | about 6 years ago | (#24193713)

But that had a dedicated "digital" tape drive (ie. it was optimized for recording those sorts of signals, not music.

QAM (2, Interesting)

tepples (727027) | about 6 years ago | (#24193819)

Still phase modulation at 9kbaud+ would be a tight fit on an audio tape. I don't think things like QAM would be possible given the size of the package

Quadrature amplitude modulation was in use in the 1960s: it's just two AM carriers out of phase by 90 degrees. The color encoding in NTSC and PAL used QAM.

Re:QAM (1)

Hal_Porter (817932) | about 6 years ago | (#24194149)

Still phase modulation at 9kbaud+ would be a tight fit on an audio tape. I don't think things like QAM would be possible given the size of the package

Quadrature amplitude modulation was in use in the 1960s: it's just two AM carriers out of phase by 90 degrees. The color encoding in NTSC and PAL used QAM.

This modem was potted circuit board. It had space for a couple of 8 pin chips a few passive components, all of which had to be available in the 80s, so we're talking OpAmps and 4000 series CMOS chips. It cost £20 so it the cost of the components had to be less than that. You're not going to build a QAM modem with those constraints.

Re:Doing it the hard way (1)

Angstroem (692547) | about 6 years ago | (#24193853)

The hardware itself probably isn't much more than a compander and signal cleaner, e.g. some LM111 plus according resistors/capacitors like I used on my ZX81 to get 2k4 and 3k6.

To go into the 9k6 range, you could eventually go for 4 different frequencies marking 00, 01, 10, and 11 instead of just mark and space. A slightly more dedicated hardware therefore would also install 1 LP (00), 1 HP (11), and 2 BP (01, 10) filters to avoid any confusion.

I wonder if DTMF was ever used for data recording, giving you 16 different symbols and a nice analog way to separate the individual frequency components, therefore being easily able to reconstruct the 16 symbols.

Re:Doing it the hard way (1)

Lumpy (12016) | about 6 years ago | (#24193975)

That black potting compound was easy to defeat. I did it weekly back then yanking proms off of Digicipher boards for Satellite receivers.

Re:Doing it the hard way (1)

v1 (525388) | about 6 years ago | (#24194193)

Potting compound was a blank gunk you applied to electronics you didn't want people to tamper with

They weren't so much worried about tampering as they were about reverse-engineering. Nowadays they have a different process they use on chips for cable boxes, which we saw an article here awhile ago on.

Re: TurboTape (1)

DaveP in Ohio (1147071) | about 6 years ago | (#24195063)

I ran TurboTape for the Commodore64 for quite a while... You actually had to enter the program using Compute's special assembly entering program, the name is eluding me at the moment (It was over 25 years ago!)... the early release had an error that blew 7414's so I had to replace them a couple of times in the datasette. Amazing that a single incorrect byte in the assembly could take out hardware.

Apple I BASIC? (1)

baldass_newbie (136609) | about 6 years ago | (#24193435)

Isn't that the buggy version that Woz built (and hated?)

Re:Apple I BASIC? (3, Insightful)

Zaatxe (939368) | about 6 years ago | (#24194469)

Isn't that the buggy version that Woz built (and hated?)

Who cares? The fun is in recovering it, not using it! I'm sure that the archeologists that find mummies don't want to mummify dead people, they just want to learn about how the ancient people lived.

Teach it! (4, Insightful)

VincenzoRomano (881055) | about 6 years ago | (#24193447)

I think that at least the basic interpreter should be taught to the new generations.
They don't feel confortable enough in less than 1 GB, what if they had just 4 KB?

Re:Teach it! (4, Interesting)

Technician (215283) | about 6 years ago | (#24193583)

I think that at least the basic interpreter should be taught to the new generations.

To rain on the parade, I wonder if there is a copyright violation in posting the code online un-edited. How long is copyright nowdays?

It's something we need to address in this age of IP property where the market has expired years ago but the copyright is in force for many more decades.

Re:Teach it! (4, Insightful)

Digital Vomit (891734) | about 6 years ago | (#24193761)

How long is copyright nowdays?

Functionally "forever".

Re:Teach it! (1)

Junior J. Junior III (192702) | about 6 years ago | (#24193997)

True, but if not even the creators nor their company held an actual copy any longer, when what right should they have to the copyright?

Re:Teach it! (1)

Digital Vomit (891734) | about 6 years ago | (#24194375)

There you go trying to inject common sense into the Litigation Industry. Tsk, tsk, tsk.

Re:Teach it! (5, Insightful)

QuantumG (50515) | about 6 years ago | (#24193809)

If Apple tried to sue, Woz would likely pay for your defense.

Re:Teach it! (3, Funny)

3waygeek (58990) | about 6 years ago | (#24194003)

There's a simple solution; post it as a hex (or binary or octal) dump. You can then claim that it's just an excerpt of the first trillion or so digits of pi. By the time Apple's lawyers determine it isn't, the guys who decoded & published it will be long dead.

Re:Teach it! (3, Insightful)

morgan_greywolf (835522) | about 6 years ago | (#24194147)

How long is copyright nowdays?

How old is Mickey Mouse?

Re:Teach it! (1)

Zaatxe (939368) | about 6 years ago | (#24194593)

How old is Mickey Mouse?

80 years this year. I get your point, but Wikipedia says [wikipedia.org] that copyright usually last between 50 and 100 years after the creator's death. Walt Disney died in 1966, that is 42 years ago.

Re:Teach it! (0)

Anonymous Coward | about 6 years ago | (#24195245)

Hopefully a court would rule it "fair use", based on the four factors for determining such in the USA.

1. Purpose: It's provided for the purpose of discussion.

2. Nature: There aren't many other ways of expressing the non-copyrightable ideas underlying the code.

3. Amount: The code is posted in it's entirety. (I assume. Couldn't RTFA.)

4. Effect: None. The work has no remaining commercial value.

3 out of 4 ain't bad...but one never knows how a court will rule.

Assembler (1, Insightful)

Anonymous Coward | about 6 years ago | (#24193633)

Seriously... teach assembler in school, with the same memory limitation... let them squeeze out the last bit of the hardware, just like the hackers did with Commodore 64.

Re:Teach it! (0)

howardd21 (1001567) | about 6 years ago | (#24193785)

Really? I am not sure about that, it would effectively be telling them to to not use what was available to them. Should we also deny access to color? I understand the need to write tight code, but not sure putting the equivalent of shackles on a sprinter makes sense.

Re:Teach it! (2, Insightful)

SimonGhent (57578) | about 6 years ago | (#24193829)

Really? I am not sure about that, it would effectively be telling them to to not use what was available to them. Should we also deny access to color? I understand the need to write tight code, but not sure putting the equivalent of shackles on a sprinter makes sense.

Yeah, but runners sometime train with weights on to build strength. When they remove them their speed improves.

Microcontrollers (1)

tepples (727027) | about 6 years ago | (#24194019)

Really? I am not sure about that, it would effectively be telling them to to not use what was available to them.

As long as there are integrated circuits, there will always be dirt-cheap microcontrollers that don't have a lot of ROM and RAM available to them.

Re:Teach it! (1)

Yungoe (415568) | about 6 years ago | (#24194313)

The way to get current students to be comfortable in small memory environments is to have the write code for microcontrollers.

Small is beautiful (1)

sunny256 (448951) | about 6 years ago | (#24194501)

I think that at least the basic interpreter should be taught to the new generations. They don't feel confortable enough in less than 1 GB, what if they had just 4 KB?

Anyone remember Turbo Pascal 3.02? It had a pretty decent editor, compiler, overlay support and was able to create .COM files by copying parts of itself into the compiled file. And everything packed together in a single .COM file of 37 kilobytes. Impressing. Check out The Borland Museum [codegear.com] and have a look for yourself.

They really knew how to create small and elegant code in those days. I'd like to have the assembly code for that, just for fun and inspiration.

Electron ROM Ripping, ol' school (5, Interesting)

ga5p0d3 (1326207) | about 6 years ago | (#24193521)

Reminds me of my housemate and I at university ('92-'95) using the tape control relay on an Acorn Electron wired to a PC serial port to rip the ROM so we could start writing an emulator. A small BASIC program PWM encoded the whole ROM in about an hour IIRC. Was a great start to the project, we got as far as CPU emulator, multi-window debugger, VGA display driver, and had it running basic no problems. He got it reading WAV's of games recorded from tape too. Got as far as the in-game screen of Chuckie Egg before we ran out of knowledge and became stuck trying to fathom the hardware keyboard input. (for the BASIC interpreter we just injected characters into the key buffer). Ahh, happy days. :o)

Re:Electron ROM Ripping, ol' school (1, Informative)

Anonymous Coward | about 6 years ago | (#24193611)

There is now a Free Software Acorn Electron emulator called ElectrEm:
http://electrem.emuunlim.com/ [emuunlim.com]

Unfortunately a GNU/Linux port of the new codebase version does not exist yet. Someone please contribute that the project. The graphics code is written for Simple Directmedia Layer (SDL), so this emulator should be quite straightforward to port.

Re:Electron ROM Ripping, ol' school (1)

EmagGeek (574360) | about 6 years ago | (#24193891)

92-95 is "ol' school?"

God, I feel old now...

I had a TRS-80 Model 1 with the 600-baud cassette (I think it was 600 anyway). I still have boxes of tapes for old games and software. I'd love to pull some of those off and see if I can emulate them. Talk about fond memories of the late 70's and early 80's...

Re:Electron ROM Ripping, ol' school (1)

ga5p0d3 (1326207) | about 6 years ago | (#24194065)

No, the hack was 'ol school, not when it was done. ;o) If it makes you feel any better, my dad and I were modding teletype machines to use as printers for our Interak 1 home built Z80 modular computer back in the 80's.

(I keep meaning to get round to ripping all the old code I wrote for my ZX Spectrum stored on a load of C15's so I can have an emulator powered trip down memory lane.)

Re:Electron ROM Ripping, ol' school (1)

Nefarious Wheel (628136) | about 6 years ago | (#24194209)

92-95 is "ol' school?"

God, I feel old now...

I had a TRS-80 Model 1

I pre-date the integrated circuit, you insensitive clod!

Nobody will ever use more than 640 vacuum tubes on a single storage frame...

Re:Electron ROM Ripping, ol' school (2, Funny)

CountBrass (590228) | about 6 years ago | (#24194301)

"Vacuum tubes"? You were lucky, we had to play Space Invaders on an abacus made from a handful of hot gravel. And if we missed a single alien our father would flay us alive!

Re:Electron ROM Ripping, ol' school (3, Funny)

Nefarious Wheel (628136) | about 6 years ago | (#24194917)

You think you had it bad? We had to play Pong with wooden mallets!

Re:Electron ROM Ripping, ol' school (2, Informative)

Megane (129182) | about 6 years ago | (#24195607)

It was 500 baud. I've done a similar thing trying to read some of my own Model I tapes, but noise makes the simple decoding mechanism in TFA not work so well. (The Model III used 1500 baud)

I've also done some experimenting with Apple II and C-64 GCR decoding with a Catweasel board (FM/MFM already having been handled quite well), and the C-64 GCR is a lot harder to keep in sync because it doesn't have address-mark-only nibbles.

Re:Electron ROM Ripping, ol' school (0)

Anonymous Coward | about 6 years ago | (#24194103)

ROM Ripping.

Ok - a rip is one way, right?

Rip a DVD - you can't reburn it, but I think that with a ROM you can.

EEPROM?

Very interesting (2, Interesting)

Dan East (318230) | about 6 years ago | (#24193531)

I have a TI-99/4A that has been dead for nearly two decades, along with several hours worth of data stored on cassettes. I would love to recover the data off of those tapes. Most of it is the type of stuff a 10 year old would write in TI BASIC (and Extended Basic!), and it would really bring back some fond memories and certainly some good laughs.

Are there any generic utilities that can extract binary out of low-baud modem audio files? With the advantage of performing various audio processing and analysis in a non-linear, non-realtime manner, certainly data could be extracted by modern software that not even the actual legacy computer could decode.

Re:Very interesting (3, Interesting)

clickety6 (141178) | about 6 years ago | (#24193959)

Re:Very interesting (1)

zakezuke (229119) | about 6 years ago | (#24194021)

I have a TI-99/4A that has been dead for nearly two decades, along with several hours worth of data stored on cassettes. I would love to recover the data off of those tapes. Most of it is the type of stuff a 10 year old would write in TI BASIC (and Extended Basic!), and it would really bring back some fond memories and certainly some good laughs.

Are there any generic utilities that can extract binary out of low-baud modem audio files? With the advantage of performing various audio processing and analysis in a non-linear, non-realtime manner, certainly data could be extracted by modern software that not even the actual legacy computer could decode.

I'm sure there are emulators for the TI there. I met a few that came with a pretty complete cartridge collection including extended basic. Copyright is bound to be a little querky as there is TI stuff and there is Geneve. I think TI might have given up on their copyright, since their stuff has NO commercial value presently save the speech synthesizer.

http://www.mrousseau.org/programs/ti99sim/README.html [mrousseau.org]

Claims to be able to convert .wav file TI files to binary.

But it's rather funny, the TV tape drive was pretty fast by the standards of the time. Many a time I transfered programs to answering machines.

Re:Very interesting (1)

sheph (955019) | about 6 years ago | (#24194747)

There are emulators, along with ROMS available. V9T9 is what I used until I went to XP 64x. Bring your cassettes into WAV files and read it in just like you're running it from tape. It'll run in a vpc, but then I discoved this cool thing called MESS. Every console you could ever want to emulate is in there, but the catch is that you have to find the console roms, and the game roms on your own. Google is your friend though.

Uhh... (5, Funny)

consonant (896763) | about 6 years ago | (#24193579)

Terrific fun for the whole family.

That must be one weird family...

Re:Uhh... (1)

Zaatxe (939368) | about 6 years ago | (#24194637)

That must be one weird family...

I have a 14-years-old step-daughter who is crazy about Star Trek. Families are sure weird.

Re:Uhh... (0)

Anonymous Coward | about 6 years ago | (#24195555)

Is she hot?

Re:Uhh... (1)

Dr. Cody (554864) | about 6 years ago | (#24195273)

At least they're not walking into an agent's office to show him their act...

Javascript VM? (0)

Anonymous Coward | about 6 years ago | (#24193731)

So when will we actually see a javascript vm being able to execute it?

Nick Hodge Says (4, Interesting)

Anonymous Coward | about 6 years ago | (#24193735)

(scroll down to the comments, in case you ever RTFA):

Apple Inc does own an Apple I

It is actually owned by Apple Computer Australia, and on loan and display at the Powerhouse Museum in Sydney.

For many years, it was under a glass box in the foyer of the Apple Australia offices.

Re:Nick Hodge Says (1)

argent (18001) | about 6 years ago | (#24194751)

I wonder if that was the one that was on display at Apple's only distributor in Sydney when I used to go in (damn, I can almost remember the bus lines I took) and write game programs on the display models in the back. They didn't have much software back then so they let kids write stuff and leave it running as an early "attract mode". There was an Apple I in a display case... it was never powered on when I was there.

Memories (3, Insightful)

buddhaunderthetree (318870) | about 6 years ago | (#24193815)

I tell my kids about loading programs off cassette tapes but they just don't get it. I guess they'll never know the agony of having a program ruined by fragility of magnetic tape.

Re:Memories (4, Interesting)

troon (724114) | about 6 years ago | (#24193935)

Tape, yes. But do you remember 45rpm floppy 7" "records" that came with magazines? Or programs broadcast over the radio late at night?

I've just written this article, coincidentally:

http://mark.tranchant.co.uk/2008/07/a-unique-generation [tranchant.co.uk]

Re:Memories (1)

stevey (64018) | about 6 years ago | (#24194011)

It was always bad on multi-stage games, where you loaded up levels on demand, and had to rewind and re-load earlier levels when you'd died!

I can still remember this error message:

R Tape loading error, 0:1

Re:Memories (1)

troon (724114) | about 6 years ago | (#24194063)

:-)

My sister used to hide behind the sofa whilst games loaded off tape, as she had developed a phobia for that error message! As an annoying little brat, I would sometimes subtly turn down the volume on the tape player until the Spctrum could no longer recreate the signal, and bombed out with that error.

Re:Memories (1)

anomnomnomymous (1321267) | about 6 years ago | (#24194253)

I guess they'll never know the agony of having a program ruined by fragility of magnetic tape.

They never encountered a scratched (software) CD?

I don't get this bit... (-1, Offtopic)

Anonymous Coward | about 6 years ago | (#24193913)

Is this a negation or an error?

if (sample<-(32768/DIVISOR))

Shouldn't that be...

if (sample < -(32768/DIVISOR))

But negative length samples don't make sense, so...

if (sample <= (32768/DIVISOR))

What is this code trying to do?

And then...

./applebasic-decode < applebasic-mono.wav > applebasic.bin

Re:I don't get this bit... (1)

sjaskow (143707) | about 6 years ago | (#24194223)

The negative sample is probably right. If you look at the wave form sample, you can see where it drops. I think he's looking for errors in the data from the tape.

The command line is simple the is to redirect stdout to the output file of choice.

Re:I don't get this bit... (0)

Anonymous Coward | about 6 years ago | (#24194577)

The negative sample is probably right. If you look at the wave form sample, you can see where it drops. I think he's looking for errors in the data from the tape.

That doesn't make sense in the context of the program though. If you look at the code, the if clause I asked about does --direction, the variable is initialized to 1 and there's a check...

If (!direction) {
// blah
  ++direction;
}

So if direction is less than 1 then it hits the if statement I wrote about and becomes --direction. My guess is it's to handle silence at the end of the sample data and the if statement I posted about is actually...

if (sample < threshold)

Which is very strange... since direction will never be greater than 1 it may as well be a break/return.

I know about the command line, the original was...

cat apple1basic-mono.wav | ./apple1basic-decode > apple1basic.bin

I was curious about why someone why write it like that.

MP3 ? (3, Informative)

XNormal (8617) | about 6 years ago | (#24193987)

The psychoacoustic models of MP3 compression must have done wonders for the ancient recording.

It's like compressing a bitmap of line art with JPEG.

Pom1 (4, Informative)

anarkavre (904651) | about 6 years ago | (#24193991)

I wrote, ahem, ported a Java Apple 1 emulator about a year ago to SDL and added a few of my own features. Haven't done much more to it since then. But for those nostalgic geeks out there, you can find it at the following link.

http://pom1.sourceforge.net/ [sourceforge.net]

Re:Pom1 (2, Funny)

morgan_greywolf (835522) | about 6 years ago | (#24194161)

Hmmm....an Apple in Java....I'll have to try that.

*dunks a piece of Washington Golden Delicious in his coffee*

*munch*Not*munch*bad*munch*

Amazed it actually works (4, Interesting)

pslam (97660) | about 6 years ago | (#24194017)

The interesting thing about this article is:

  • a) The MP3 encoding process didn't totally mangle the signal. A decent encoder should have dropped all those 1ms duration waves due to masking. Must be a crappy encoder or a forced high bitrate :)
  • b) I get the distinct impression the author doesn't know what FSK is, or that it's the encoding for the signal. Yet he still manages to decode it. The HARD way.

This could have been done so much more easily :)

Period shift keying (1)

tepples (727027) | about 6 years ago | (#24194053)

I get the distinct impression the author doesn't know what FSK is, or that it's the encoding for the signal. Yet he still manages to decode it. The HARD way.

The author treated it as period shift keying, which is equivalent to frequency shift keying. What makes decoding an FSK signal in the period domain "the hard way"?

Re:Period shift keying (1)

pslam (97660) | about 6 years ago | (#24194525)

The author treated it as period shift keying, which is equivalent to frequency shift keying. What makes decoding an FSK signal in the period domain "the hard way"?

It's not quite equivalent. The recorded wave file is heavily bandlimited so you can't reliably use a comparator to convert it to a period shift signal. I suspect the MP3 conversion is a lot to do with that. If there were any noise around the zero-crossing point, it wouldn't work at all. He's lucky that method works.

Re:Amazed it actually works (0)

Anonymous Coward | about 6 years ago | (#24194559)

That's what's cool... if you don't know any better, the way it was done, was as good as any.

Re:Amazed it actually works (1)

pla (258480) | about 6 years ago | (#24195137)

A decent encoder should have dropped all those 1ms duration waves due to masking.

a 1ms pulse (if you mean rise, 1ms hold, fall) corresponds to 500hz - Pretty much smack dab in the middle of the human auditory range.

Any encoder that filtered that out would most likely only appeal to bats and insects, who don't tend to write all that much audio processing code.

There is a MUCH Easier Way... (5, Informative)

macs4all (973270) | about 6 years ago | (#24194057)

I own an Apple 1. ...And a copy of Apple 1 BASIC on cassette, and Woz's Mini-Assembler that is "origin-ed" for the Apple 1. (This is the same Mini-Assembler that was in the Apple ][ ROMs, at $F666). And a few other Apple 1 goodies.

Do you realize that the cassette interface for the Apple 1 and the Apple ][ are identical?

Yep, you can read an Apple 1 audio cassette with any old, easy-to-find Apple ][. And from there, you can use any one of a million methods to get the data out of memory and onto another medium.

Also, you can simply use the Apple ][ to create a NEW cassette for your Apple 1 (if you happen to be lucky enough to have one).

BTW, I think mine is "serial number" 0064. At least that's what I think the "0064 that is written in Sharpie on the PC board means...

Re:There is a MUCH Easier Way... (1)

Stavr0 (35032) | about 6 years ago | (#24194393)

Pics or it didn't happen... But seriously, I would love to see shots of your Apple I

Those were the days... (4, Funny)

Digital_Mercenary (136288) | about 6 years ago | (#24194213)

Many seasons ago, in a high school computer lab in the Bronx. I would save programs from computer labs Commodore PET to tape and wonder why they would always be blank the next day. Over time I realized that riding the NYC trains with my school bag on the car floor was not such a cool idea. NYC trains were somehow erasing the tapes when they were place closed to the floor. Until I figured this out there were many nights spent pondering what the gods of computing had against me. Curse you Number 6 Line! Curse you!!!

"Ahhh the suffering...."

Re:Those were the days... (3, Informative)

Gordonjcp (186804) | about 6 years ago | (#24194405)

That's because they're electric trains with big spinning magnets ;-)

The BBC used to get people to take taxis rather than use the Underground, for the same reason.

So how will Apple react to this? (1, Flamebait)

sunny256 (448951) | about 6 years ago | (#24194219)

This is way cool. But we have seen lately how strict Apple behaves when unlocking iPhones, etc. Wouldn't it be ironic if Apple sues this guy for copyright infringement and pushing the DMCA instead of being thankful that he recovered this piece of history?

Re:So how will Apple react to this? (1)

CountBrass (590228) | about 6 years ago | (#24194331)

Wouldn't it be "ironic" if Apple gave him a billion dollars in cash and elected him life-time president of the world. There, see, random speculation is both easy and worthless.

Re:So how will Apple react to this? (1)

BBird (664014) | about 6 years ago | (#24194513)

and so are pointless replies. grand-parent makes you think. yours (parent) does not.

Re:So how will Apple react to this? (1)

argent (18001) | about 6 years ago | (#24194643)

Wouldn't it be ironic if Apple sues this guy for copyright infringement and pushing the DMCA instead of being thankful that he recovered this piece of history?

It would be extremely unlikely. Apple has to respond promptly to schemes that bypass controls that they are are contractually obligated to provide. They have not, so far as I know (and I've used Apple computers almost as long as there have BEEN Apple computers) ever shown any interest in chasing after people over ancient legacy stuff.

Why they didn't use MESS? (3, Interesting)

marcomarrero (521557) | about 6 years ago | (#24195217)

MESS emulates the Apple I, can read WAVE files, and the entire source code is available. :)

I miss my old CoCo3, but I hated cassette tapes. The saddest thing is that Audio Cassettes were designed to be lousy as a data storage media - they used two sides (interference), and were created to record just human voice. The only other option were floppy drives, and back then they were expensive and/or overpriced ($200 and up) which is equivalent to $400+ now in 2008. Most drives had to include the entire controller I/O inside the unit, and probably also a disk OS.

You insenSitive clod! (-1, Offtopic)

Anonymous Coward | about 6 years ago | (#24195471)

to und38score [goat.cx]

Some people STILL haven't learned (0)

Anonymous Coward | about 6 years ago | (#24195491)

Back in the TRS-80 Model 1 days, I wrote a bunch of BASIC arcade style games. The tapes are long lost, destroyed, or unreadable. But even then, I was smart enough to PRINT. I can easily read them today, and the only device I need is a pair of reading glasses. I could even easily load them into an emulator running on modern hardware using OCR software.

There's nothing like a good old hardcopy.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...