Commodore Trivia
Home  Weblog  Research Kitchen  Contact 
All You Ever Wanted To Know About Commodore Main Menu
Home > Trivia #11A

Resources
C64 Chronology
  A comprehensive chronology of the Commodore 64
Zzap! 64
  Fan site for the classic C64 mag
Lemon 64
  Awesome 64 games site
CCS64
  A C64 on your desktop
RKO C64 Remixes
  Amazing site of C64 SID remixes
   

Who wrote this stuff?
This trivia was originally written by Jim Brain as part of the now long defunct C= Hacking Magazine, but happily Jim has kindly agreed to let me reproduce it in HTML-ized format for retro computing fans everywhere.

If you are interested in seeing the Commodore Trivia digests in their original form, take a look at this website.

For those who are interested, these pages were generated from the original text files using Perl and Velocity (and a nice template originally found here)

 
TRIVIA 11A

$0A0)
	In the mid 1980's, Commodore introduced RAM Expansion Units for the
        Commodore 64, 64C, 128, and 128D.  There were three of them.  Give
        their model numbers, and what was different among them.
        

	The 1700 (128kB), the 1764 (256kB), and the 1750 (512kB).  The
        1700 and the 1750 were marketed for the 128, while the 1764 was
        marketed from the 64 line.  
        

Top
$0A1)
	Some of the CIA integrated circuits used on the C64 and C128
        computers have a hardware defect.  What is the result of this
        defect, and when does it occur? (May be more than one, but I need
        only one)

	The only one I have documented in front of me is the timer B
        interrupt bug, which is explained in the "Toward 2400" article
        by George Hug in Transactor 9.3. (1)  However, I had many people
        relate other bugs (2 and 3), which I haven't been able to test, so I
        add them as possibilities. (I encourage readers to confirm/deny the
        latter 2.)
           
        1) If timer B of the 6526 CIA times out at about the same time as a
           read of the interrupt register, the timer B flag may not be set at
           all, and no interrupt will occur if timer B interrupts were 
           turned on.
        
        2) When the hour on the TOD clock is 12, the AM/PM must be reversed
           from its normal setting to set/reset the AM/PM flag.
        
        3) The TOD clock sometimes generates double interrupts for alarm
           trigger. 
        
           

Top
$0A2)
	Name the Commodore machine(s) on which a Intel 8088 was an OPTIONAL
        coprocessor.  (Hint, not the IBM clones)

	I was looking for the B series computers, which contains the B 
        computers (B128, B256), as well as the 600 series and the 700
        series.  These computers could be fitted with an optional 8088
        processor on a separate card.  However, another correct answer is
        the Amiga, which can have a 8088 attached via an expansion card or a
        SideCar(tm) unit.
             

Top
$0A3)
	On Commodore computers beside the Plus/4 series, there are three
        frequencies used to record the data on the tape.  Name the
        frequencies used.

	1953.125Hz, 2840.909Hz, and 1488.095Hz.  These correspond to
        waveforms with periods: 512us, 352us, and 672us, respectively.

Top
$0A4)
	Commodore Plus/4 series computers can not read any cassettes
        recorded on other Commodore computers.  Why?  (Hint: It has
        nothing to do with the nonstandard connecotr on the Plus/4)

	The tones recorded on the Plus/4-C16 are exactly one-half the
        frequencies shown above.  This suggests to many that the Plus/4
        and C16 were supposed to run at twice its present frequency,
        but were downgraded at the last-minute, and the code to generate
        the tones was not updated to reflect the change.  This is just
        heresay, so you decide for yourself.

Top
$0A5)
	During power-up, the Commodore 64 checks to see if it running
        in PAL-land or NTSC-land.  How does it determine its location?

	It sets the raster compare interrupt to go off at scan line 311.
        If the interrupt occurs, we are on a PAL system, since NTSC will
        never get to line 311 (NTSC only has 262.5 lines per frame, every
        other frame shifted down a bit to create 525 lines).
        

Top
$0A6)
	What is the 65XX ML opcode for BRK?

	$00, or 00

Top
$0A7)
	On the 65XX CPU, what gets pushed onto the stack when an interrupt
        occurs?

	The program counter gets saved high byte first, then the processor
        status flags get saved.  
        

Top
$0A8)
	Speaking of the stack, where is the stack located in the 65XX address
        map?

	$0100 to $01FF

Top
$0A9)
	On the 65XX CPU line, it is possible to set and clear a number of
        processor status flags.  Examples include SEC and CLC to set and
        clear the carry flag.  What flag has a clear opcode, but no set 
        opcode?

	The overflow flag: V.  However, the V flag can be set via an external
        pin on some members of the 65XX line.  The 1541 uses this as an
        ingenious synchronization tool.

Top
$0AA)
	When saving a text file to tape, the computer records 192 bytes of
        data, an inter-record gap, and then the same 192 bytes of data
        again.  How wide is this inter-record gap, and why is it there?

	Some terminology:  "inter" means "between".  Most everyone knows
        that a tape block is recorded twice on the tape, but Commodore
        considers the two copies and the gap between them a single
        "record".  Thus, this question is referring to the gap in between
        two dissimilar records.  With that in mind,
        the interrecord gap is nominally 2 seconds long, (or 223.2 byte
        lengths, although the gap contains no data).  It is there to allow
        the tape motors to get up to speed before the next data comes under
        the read/write head.  The tape motors may need to stop between
        records if the program is not requesting any more data from the
        tape data file at this time.  If the program subsequently asks
        for data from the tape, the drive must get up to speed before the
        read can occur.  Note: on the first version of PET BASIC, the
        gap was too small, so programmers had problems retrieving data
        files.  
        
        For completeness, the "intra-record" gap (The one between the two
        copies of the data) consists of 50+ short pulses, each of which is
        352us in length, giving a timing of .0176s+.  This time was used to
        copy important data to safe locations, reset pointers, and do error
        logging.  The entire "record" is recorded in 5.7 seconds. 
        

Top
$0AB)
	On an unexpanded VIC-20, where does the screen memory start?

	$1e00, or 7680

Top
$0AC)
	In Commodore BASIC, what is the abbreviated form of the "Load"
        command?

	lO (L SHIFT-O)

Top
$0AD)
	In Commodore BASIC, what is the abbreviated form of the "List"
        command?

	lI (L SHIFT-I)

Top
$0AE)
	On the Commodore 64, there is section of 4 kilobytes of RAM that
        cannot be used for BASIC programs.  It is the favorite hiding
        places for many ML programs, however.  What is its address in
        memory?

	$c000, or 49152

Top
$0AF)
	What is stored at locations $A004-$A00B, and why is it strange?

	The text "CBMBASIC" is stored there.  It is strange because this
        text is not referenced by any routine.  It can also be called 
        strange because the code is Microsoft's. Doesn't it make you wonder?
        


Jim Brain
j.brain@ieee.org
10710 Bruhn Avenue
Bennington, NE  68007
(402) 431-7754


Top


This site 2005 The Research Kitchen and Jim Brain.
Page generated: Sat Oct 14 14:06:37 BST 2006