// HACKER NEWS — CYBERSECURITY
Kodak DC50 now usable on the Apple II
I have just released a new Quicktake for Apple II version, and it is a quite large upgrade!
Most importantly, the program now supports a new camera, the Kodak DC50 Zoom, released in 1996, thirteen years after the Apple IIe. The camera’s custom cable is rather easy to make (and my serial hardware allows to skip making a custom cable altogether). All features are supported (picture download, thumbnail preview, date/name/flash/quality settings, picture deletion).
The camera is able to do 115200bps on the serial port, which makes transfers blazing-fast compared to the Quicktakes!
It has both internal storage and a PCMCIA slot. Mine came with a 6MB storage card, which is a ludicrous amount of storage, allowing for 92 low quality pictures or 36 high quality ones. My program will work with the storage card when it is inserted, and the internal memory otherwise.
The DC50’s resolution is a weird-ass 756×504 pixels, and as its image format (KDC) is RADC-compressed – like the Quicktake 150, I’m reusing that decoder. But that resolution is very hard to quickly scale down to my renderer’s required 256×192 resolution, so the DC50 pictures that my program displays are cropped to 640×480 during decoding.
I have managed to reverse-engineer everything that I needed using different helpers: dcraw for the subtle RADC decoding differences wrt QT150’s format; libgphoto2‘s Kodak DC120 implementation for a few serial commands/packet format (but not all of them… both cameras differ in protocol); the ancient kdcpi Perl program for a few other serial-related things (but not all of them… It seems kdcpi was full of bugs!); the ancient official Kodak Windows 3.1 software, pta31.exe; and finally, a large dose of hexadecimal buffers dumping and comparing.
The cable wiring is documented on the project’s home page.
Adding support for a brand new class of camera required and/or induced a large number of changes, that all contribute to making Quicktake for Apple II better and more maintainable:
Your email address will not be published. Required fields are marked *
Δ
document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );