Sunday, January 20, 2013

The VIC gets JiffyDOS'd...

New, licensed release for 2013 on VIC-20.
Thirty-three years after the VIC-20's debut, a licensed version of JiffyDOS has just been released for sale.  First announced at the World of Commodore 2012, RETRO Innovations said it had acquired the rights to offer Click Here Software’s port of JiffyDOS for the Commodore VIC-20, thus completing the set of JiffyDOS kernal replacement offerings.  I wanted to take a moment and talk about it the kernal.  


All modern day operating systems have a kernel, but the early Commodore PETs did not.  The kernel is the interface between applications and the actual data processing done at the hardware level.  New hardware can be supported and hardware bugs can often be corrected (compensated for) by modifying code in the kernel.

Like most of the older 8-bit computers, BASIC was not only the out-of-box language you could learn to program, but it was also the operating system.  In the case of the early PET series computers, the ROM code to talk to the hardware was mixed in with the ROM code for the BASIC interpreter.  This was done by Microsoft.

John Feagans introduced the idea of separating the BASIC interpreter routines from the rest of the operating system.  Commodore called their kernel the kernal.  I had an opportunity to talk to John on March 18, 1997. 

John said Bob Russell took his code from the Advanced R&D Facility, and did things like modify the cassette tape routines (with consulting from Chuck Peddle on how the PET cassette worked) as well as the serial interface to the disk drive and printers.  Bob was part of the production engineering team in Santa Clara which later ended up in West Chester.  Bob also ported the Vic-20 code to the Vic-40 (aka Commodore-64).

The disk drive interface was based off the IEEE-488 bus.  That is what Bill Seiler and John implemented on the original PET.  When the Vic-20 peripherals were designed, they had the Atari 400 as a model of a serial system, and hence they altered the parallel IEEE-488 to a serial version with the same handshake lines, because it was cheaper.  However, Commodore's implementation had a shift delay which negatively impacted performance.  (The C-64 serial bus had to be slowed down even more because of hits by the video that cause missed data.)

Technically, the idea was sound:  the 6522 VIA chip has a "shift register" circuit that, if tickled with the right signals (data and clock) will cheerfully collect 8 bits of data without any help from the CPU. At that time, it would signal that it had a byte to be collected, and the processor would do so, using an automatic handshake built into the 6522 to trigger the next incoming byte.  Things worked in a similar way outgoing from the computer, too.

We early PET/CBM freaks knew, from playing music, that there was something wrong with the 6522's shift register:  it interfered with other functions.  The rule was:  turn off the music before you start the tape!  (The shift register was a popular sound generator).  But the Commodore engineers, who only made the chip, didn't know this.  Until they got into final checkout of the VIC-20.

By this time, the VIC-20 board was in manufacture.  A new chip could be designed in a few months (yes, the silicon guys had application notes about the problem, long since), but it was TOO LATE!
A major software rewrite had to take place that changed the VIC-20 into a "bit-catcher" rather than a "character-catcher".  It called for eight times as much work on the part of the CPU; and unlike the shift register plan, there was no timing/handshake slack time.  The whole thing slowed down by a factor of approximately 5 to 6.
- Jiim Butterfield (1997)
So, what is JiffyDOS?

drop-in KERNAL replacement
JiffyDOS is a drop-in replacement ROM chip for the kernal which fixes the poor performance of the serial interface to the disk drive.  Just remove ROM 901486-06 in socket UE12 (located near bottom/right of motherboard), and insert the JiffyDOS ROM.

A DOS ROM upgrade is also required for one or more of your disk drives, but is included natively in µIEC and all other sd2iec-based solid state drive solutions.  The performance improvement is HUGE (approximately 600%).  The only disadvantage of using JiffyDOS is that when it is enabled, the tape routines are not available. The space taken by these routines is used for the JiffyDOS code. However, a switch is provided which allows JiffyDOS to be disabled, should the need arise.

JiffyDOS was created by Creative Micro Designs, Inc.  The VIC-20 version was never completely finished and therefore never released (until now), although bootleg copies were available.  There are only two authorized sales channels for JiffyDOS; no other distributors are currently licensed to offer JiffyDOS at this time:
I have additional VIC-20 material over on my web site:

Are you interested in computer history?  Join the irregular regulars Earl Evans, David Greelish, and Carrington Vanston, plus surprise guests, in the show where everything old is news again.  Gather 'round a virtual table where today's talk is about yesterday's computers. Get the skinny from the world of vintage computer hobbyists, collectors, enthusiasts, and old school geeks. They cover modern day vintage tech events, new developments for old hardware, the revival of retro tech, the best of 8 bit culture, and take many strolls down memory lane.  Head on over to and explore podcasts, review show notes and be informed of upcoming episodes.  You'll be glad you did!

No comments:

Post a Comment