Browsed by
Category: Retro computing

Compute! Type-in programs

Compute! Type-in programs

I got my start in programming with type-in BASIC programs. Back in the 80’s, almost every computer had BASIC built-in, but almost no kid could afford games. Or even get them – the nearest store that sold software from me was over 30 miles away. Mail order took 2-3 weeks. On top of that – kids are notoriously broke. What I did have was a library, and plenty of time.

Enter Compute! magazine. After ravenously devouring all the programming books our small Carnegie library had, I branched into magazines. BYTE was too news oriented and didn’t have type-in programs; though reading about the technology was fun. When I found Compute! – I was hooked. I eventually checked out just about every single magazine they had a dozen times over. I remember digging in the downstairs old issue stacks in search of any I might not have seen. I spent whole weekend afternoons typing the programs in – and then even more hours debugging each line to figure out where I’d gone wrong.

Nate Anderson recently wrote an article about those early days of type-in programs. Even more fun is the comments section full of people sharing their similar experiences.

With the internet and instantly available content and content development tools – it makes me wonder how the next generation’s engineers will develop. How will the instantly available world of free software and tools shape them compared to our generation of type-in programmers?

Thankfully, all these wonderful magazine scans have been saved in the Compute! Magazine Archive on the Internet Archive. I even sat down and typed one in (well – heavily utilized OCR as well!). What a blast.

Fluxfox floppy disk visualizer

Fluxfox floppy disk visualizer

Fluxfox is a floppy disk image library – written in Rust. It’s intended to serve the needs of the emulator world and supports IBM, Amiga, Macintosh, and Atari ST formats. It can even perform operations on disk images consistent with typical operations of a PC floppy disk controller, while also giving low-level access to the track bitstream for other controllers.

It’s written by martypc/GloriousCow that has written a lot about floppy protection schemes.

When floppy disk copy protection was a thing

When floppy disk copy protection was a thing

Back in the day, software didn’t come on encrypted, online, distributed marketplaces, they came on humble floppy disks. This made them susceptible to copying. To fight this, developers started using all kinds of interesting tricks, which hackers would try to break. Thus started a nearly decade-long war of hackers and copy protection schemes.

GloriousCow started a series of investigations on historical floppy protection schemes on his blog. His site is amazing – he makes his own tools as well as shows the assembly code and has great diagrams. He covers things like EliaShim CodeSafe, XEMAG Xelok, Vault Prolok, EA Interlock, Softguard Superlok, Formaster Copy-Lock, and even got an interview with Robert McQuaid who made the protection circumventing CopyWrite software.

I particularly like his article about Copy-Lock mechanism used by Kings Quest. Copy-Lock employed several tricks such as sectors with non-standard sizes and putting purposefully incorrect CRC values on tracks to make standard copying incorrect.

In this case, Copy-Lock used a mechanism in which sector 1 on track 6 was intentionally written as only 256 bytes (instead of 512 bytes), with a 256-byte blank section to fill the gap. Additionally, the CRC was also altered to make a normal read think it was invalid. A normal INT 13h disk read would search and fail the read and CRC check.

CopyLock worked by bypassing the BIOS and talking directly to the disk controller. It would issue an INT 13h read on sector 1 track 6 that it knew would fail. This would place the head on the right track. The code would then tell the floppy controller directly to read track – and dump all 512 bytes. It was looking for the special byte 0xF7 as the final byte of that supposedly empty section of the track. The key is that it is not possible to create invalid tracks with invalid CRC’s like this using a standard IBM PC floppy controller. Copy-Lock created the special hardware that could write in this way and sold that, along with the checking code, as their solution.

His article has all the assembly code – which is really awesome.

Links:

Demozoo Demoscene Library

Demozoo Demoscene Library

Crystal Dream

Demozoo.org is a website that is a library of not only old school ’90’s era demo competition submission – but even all the recent ones as well. They have lists of current competitions and news too. An extra feature is many demos have youtube videos of the runs so you don’t have to download the binaries and run them locally.

Go to the Video Game History library for free

Go to the Video Game History library for free

The Video Game History Foundation (VHGF)’s digital archive of video game research has launched its first round of online early access to it’s library. It’s free to access anywhere in the world and intended for “anyone who wants to study video game history.”

What do they have?

There are some caveats: There are no playable games in the archive due to copyright restrictions and VGHF said it “cannot give express permission” for users to reproduce materials in the library unless explicitly stated otherwise though researchers may be exempt under fair use cases.