"intelligent" disk drives

Jim Brain brain at jbrain.com
Sun Nov 18 22:49:19 CST 2007


Ethan Dicks wrote:
> On Sun, Nov 18, 2007 at 10:22:36PM -0000, Ensor wrote:
>   
>> Hi,
>>
>>  >....I think he was joking, of course, given the
>>  >horrendous bottlenecks in its software and its bus
>>  >protocol.
>>
>> To be fair, the only thing wrong with the CBM serial bus was the speed it 
>> ran at....or rather the lack of it....
>>     
>
> Indeed.  There's a well-documented saga of how the bit-serialization was
> supposed to be done in hardware, but could not due to bugs with the interface
> chip.  IIRC, it was a CB2 problem with the 6522 VIAs on the 1540 drive and
> the on the VIC-20 (the first machine to use the CBM serial bus).  IIRC, the
> problem was fixed with the 6526 CIAs, but the moment had passed.
>   
Have fun:  (From Commodore Trivia 8)

Q $07B) When the VIC-20 was designed, the serial port throughput was roughly
        equivalent to the throughput of the IEEE-488 bus?  Why isn't it
        very fast in production VICs?
   
A $07B) Let's go back to question $04F:

        <begin insert>
        Q $04F) What was the primary reason Commodore went to a serial bus
                with the introduction of the VIC-20?

        A $04F) Jim Butterfield supplied me with this one:

                As you know, the first Commodore computers used the IEEE bus
                to connect to peripherals such as disk and printer.  I
                understand that these were available only from one source: 
                Belden cables.  A couple of years into Commodore's computer
                career, Belden went out of stock on such cables (military
                contract? who knows?).  In any case, Commodore were in 
quite
                a fix:  they made computers and disk drives, but couldn't
                hook 'em together! So Tramiel issued the order:  "On our 
next
                computer, get off that bus.  Make it a cable anyone can
                manufacture".  And so, starting with the VIC-20 the serial
                bus was born.  It was intended to be just as fast as the
                IEEE-488 it replaced.                   
        <end insert>
       
        And here is what Jim Butterfield followed up with:
       
        "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.
       
        When the 64 came out, the problem VIA 6522 chip had been
        replaced by the CIA 6526.  This did not have the shift register
        problem which had caused trouble on the VIC-20, and at that time it
        would have been possible to restore plan 1, a fast serial bus.  
Note
        that this would have called for a redesign of the 1540 disk drive,
        which also used a VIA.  As best I can estimate - and an article in
        the IEEE Spectrum magazine supports this - the matter was discussed
        within Commodore, and it was decided that VIC-20 compatibility was
        more important than disk speed.  Perhaps the prospect of a 1541
        redesign was an important part of the decision, since current
        inventories needed to be taken into account.  But to keep the
        Commodore 64 as a "bit-banger", a new problem arose.

        The higher-resolution screen of the 64 (as compared to the VIC-20)
        could not be supported without stopping the CPU every once in a 
while.
        To be exact:  Every 8 screen raster lines (each line of text), 
the CPU
        had to be put into a WAIT condition for 42 microseconds, so as to
        allow the next line of screen text and color nybbles to be swept 
into
        the chip.(More time would be needed if sprites were being used).
        But the bits were coming in on the serial bus faster than that: 
        a bit would come in about every 20 microseconds!  So the poor CPU,
        frozen for longer than that, would miss some serial bits completely!
        Commodore's solution was to slow down the serial bus even more.
        That's why the VIC-20 has a faster serial bus than the 64, even 
though
        the 64 was capable, technically, of running many times faster.
  
        Fast disk finally came into its own with the Commodore 128."

                                 --Jim



More information about the cctalk mailing list