Trivia

by Jim Brain ( brain@mail.msen.com)

Well, summer is upon the Brain household, and things are moving at a fast clip at the house. However, the trivia still keeps coming. I appreciate all the people who contribute to the trivia and all the people who take part in the monthly contest. I have collected Trivia Edition #13-18 in this article. As you may know, these questions form part of a contest in which the monthly winner gets a prize (Thanks to my various prize donators). The whole thing is mainly just for fun, so please enjoy.

As the summer months start up, news on the trivia includes:

  1. I now have access to some more orphan machines (C65, C116), so expect some trivia questions on those models.

  2. The new home now has a number of machines set up, so testing answers to the trivia is even easier. I am still trying to get the old PET machines in house, but the others are here.

  3. The Commodore World Wide Web Pages ( http://www.msen.com/~brain/cbmhome.html)that I maintain and place the trivia on caught the eye of USA Today and the Pheonix Gazette. I was interviewed for both articles. Look in the June 20th edition of USA Today for the segment, and possibly a picture of Jim Brain and the machines he uses to create the trivia.

As always, I welcome any questions (with answers), and encourage people to enter their responses to the trivia, now at #18.

Jim.

The following article contains the answers to the December edition of trivia ($0C0 - $0CF), the questions and answers for January ($0D0 - $0DF), February ($0E0 - $0EF), March ($0F0 - $0FF), April ($100 - $10F), and the questions for the May edition ($110 - $11F). Enjoy them!

Here are the answers to Commodore Trivia Edition #13 for December, 1994

Q $0C0) The early 1541 drives used a mechanism developed by ______.  Name
        the company.

A $0C0) Alps.

Q $0C1) On later models, Commodore subsequently changed manufacturers
        for the 1541 drive mechanism.  Name the new manufacturer.

A $0C1) Newtronics.

Q $0C2) What is the most obvious difference(s).  (Only one difference is
        necessary)

A $0C2) Alps:        push-type latch, round LED.
        Newtronics:  lever-type latch, rectangular LED.
                   
Q $0C3) On Commodore BASIC V2.0, what answer does the following give:
        PRINT (SQR(9)=3)

A $0C3) 0.  According to Commodore BASIC, the answer should bby -1, which
        is the BASIC value of TRUE.  However, the above equation is NOT
        true.  Doing PRINT SQR(9) yields 3, but doing PRINT (SQR(9)-3)
        yields 9.31322575E-10 (C64).  This anomaly can be attributed to
        roundoff errors in the floating point math routines in Commodore BASIC.

Q $0C4) In Commodore BASIC (Any version) what does B equal after the following
        runs: C=0:B=C=0 
           
A $0C4) B = -1.  The second statement is the one to look at.  The second
        equals sign is treated as a comparison, while the first is treated
        as a assignment.  B gets set to the outcome of the comparison, which
        is TRUE (-1).

Q $0C5) The first PET cassette decks were actually _______ brand cassette 
        players, modified for the PET computers.  Name the comapny.

A $0C5) Sanyo. Specifically, Model M1540A.  What a model number!

Q $0C6) In Commodore BASIC (Any version), what happens if the following
        program is run:
        
        10 J=0
        20 IF J=0 GO TO 40
        30 PRINT "J<>0"
        40 PRINT "J=0"

A $0C6) On BASIC 2.0 or greater:
   
   ?SYNTAX  ERROR IN 20
        READY.
        
        On BASIC 1.0:  (found on the PET 2001 series)
        
        J=0
        READY.

        BASIC 1.0 totally ignored spaces, so line 20 became "IFJ=0GOTO40".
        That statement would be correctly parsed, sicne it contains the "GOTO"
        keyword.  
        
        However, on BASIC 2.0 or greater, spaces weren't ignored so completely,
        and the "TO" in "GO TO" would be tokenized separately, so some code was
        added to BASIC to check to "GO".  As the code that accepts GOTO as a special
        case for THEN after an IF statement wasn't patched this way, the above fails,
        because GO is not a valid keyword after IF.  The statement SHOULD
        work correctly, but does not because of this failure to fix the IF
        command parsing.
        
        On BASIC 2.0 or greater, substituting the following line for line
        20 will cause the program to work:
        
        20 IF J=0 THEN GO TO 40

Q $0C7) In question $068, we learned how Jack Tramiel first happened upon the
        name "COMMODORE".  According to the story, though, in what country
        was he in when he first saw it?

A $0C7) Germany.  

Q $0C8) On the Commodore user port connector, how many edge contacts are
        there?

A $0C8) 24.  Two rows of 12 contacts each.

Q $0C9) On most Commodore computers, a logical BASIC screen line can contain
        up to 80 characters.  On what Commodore computer(s) is this not true?

A $0C9) According to Commodore documentation, a _physical_ screen line is 
        defined as one screen line of characters.  A _logical_ screen line is 
        defined as how many _physical_ lines can be chained together to 
        create a valid BASIC program line.  

        With that in mind, most Commodore computers chose a _logical_
        screen line that was a multiple of the screen width.  This works fine
        for 40 and 80 column screens, but what do we do with the VIC-20, with
        its 22 column screen.  Solution:  make the _logical_ line length equal
        to 4 _physical_ lines, or 88 columns.

        When the Commdore 128 was introduced, the number rose to 160
        characters, which is 4 _physical_ lines in 40 column mode, or
        2 _physical_ lines in 80 column mode.  However, you can only take
        advantage of this in 128 mode.  64 mode is limited to 80 characters.
        
        To add to all this confusion, a valid BASIC program line (in memory)
        can actually be 255 (tokenized) characters long, but creating such
        a long line cannot be done from the built-in editor in direct mode.
        
        The AmigaBASIC, available on the Amiga, also does not have the 80
        column line limit.  However, that BASIC is SOOO much different that
        I am not surprised.  The older CBM BASICs, on the other hand, were
        all derivatives of the original Level 1 BASIC for the PET.

Q $0CA) If a file is saved to a Commodore Disk Drive with the following
        characters: chr$(65);chr$(160);chr$(66), what will the directory
        entry look like?

A $0CA) The filename will show up as "A"B, with the 'B' showing up to the
        right of the '"' mark.  This could be used to make program loading
        easier.  A file that showed up as "filename",8,1 could be loaded
        by simply hitting shift-run/stop on that line.

Q $0CB) What is the maximum length (in characters) of a CBM datasette
        filename?

A $0CB) References I have on hand say 128 characters.  However, the actual
        code on the 8032 and the C64 acts as though 187 characters can
        actually be sent (tape buffer-5 control bytes = 192-5=187).  The
        references that claim 128 characters are Nick Hampshire's
        _The VIC Revealed_ and _The PET Revealed_.  ANyone care to lay
        this one to rest? 

Q $0CC) How many keys are on a stock Commodore 64 keyboard?

A $0CC) 66 keys.  This is the same number as found on the VIC-20 and the
        Commodore 16.

Q $0CD) Commodore BASIC uses keyword "tokens" to save program space.  Token
        129 becomes "FOR".  What two tokens expand to include a left
        parenthesis as well as a BASIC keyword?

A $0CD) TAB( (163) and SPC( (166).

Q $0CE) There are 6 wires in the Commodore serial bus.  Name the 6 wires.

A $0CE) 1) Serial /SRQIN
        2) GND
        3) Serial ATN IN/OUT
        4) Serial CLK IN/OUT
        5) Serial DATA IN/OUT
        6) /RESET

Q $0CF) On the Commodore datasette connector, how many logical connections are
        there?

A $0CF) 6. Opposing pins on the connector are hooked together electrically.

Here are the answers to Commodore Trivia Edition #14 for January, 1995

Q $0D0) How many keys were there on the "original" PET and what was special
        about them?

A $0D0) the original PET had 73 calculator-style keys that were laid out
        in a rectangular matrix, not typewriter-style.

Q $0D1) How do you produce the "hidden" message(s) on the Commodore 128?

A $0D1) SYS 32800,123,45,6.  The screen will clear, and the software
        and hardware developers on the 128 project will be named.

        The exact text is as follows:
                
[RVS]   Brought to you by...

Software:
 Fred Bowen
 Terry Ryan
 Von Ertwine

Herdware:
 Bil Herd
 Dave Haynie
 Frank Palaia

[RVS]Link arms,don't make them.

Q $0D2) How much memory did the "original" PET show on bootup?

A $0D2) The "original" PET came in two configurations, 4K and 8K, so:
         
          The PET 2001-4 had 3071 bytes.
          The PET 2001-8 had 7167 bytes.

Q $0D3) We all know the "reboot" sys for the 64 is sys 64738, but who knows
        the same sys location to reboot the CBM 8032?

A $0D3) sys 64790

Q $0D4) Which computer(s) beeped at bootup?  (May be more than one, but only
        one required)
           
A $0D4) I know some of these are corect, but the sheer size of the
        list prevents me from checking them ALL out.
        
        FAT 40XX series
        80XX series
        PC-10  (I suspect a number of IBM clones did, and these things have
                no consistent naming convention across country boundaries.)
        PC-20
        Amiga 1000
        SP9000 (SuperPET)
        
Q $0D5) How much memory did the CBM 8032 show on bootup?

A $0D5) 31743 bytes.

Q $0D6) Certain Commodore computers provided emtpy EPROM sockets on the
        motherboard.  Give me the number of empty sockets on the following
        machines:

        a)  CBM 30XX.
        b)  CBM 8XXX.
        c)  CBM C128.
        d)  Plus/4.

A $0D6) a)  3 sockets.
        b)  2 sockets.
        c)  1 socket.
        d)  1 socket.

Q $0D7) In Germany, the CBM 8032 came with a 4kB EPROM for the EXXX area,
        while the US version only had a 2kB EPROM.  Why?

A $0D7) The German version had additional keybaord drivers for umlaut
        characters and dead keys.  

Q $0D8) Who published the first PET memory map in the "PET Gazette"?

A $0D8) None other than the infamous Jim Butterfield.

Q $0D9) Which is faster to move the sursor on a PET/CBM or C64: SYS or 
        PRINT?

A $0D9) PRINT is faster, since the sys approach must process the pokes
        before the sys, which are very slow.

Q $0DA) On the Amiga 1000, where are the signatures of the first Amiga
        developers located?

A $0DA) Inside the top case of the Amiga (1000).

        There is an interesting footnote to this question.  It seems
        that at least some original Amiga machines were labeled as
        Amiga (with nu number).  Then, at some later point, the number was
        added.  In addition, Commodore produced some Amiga 1000 machines
        without the signatures, but most had the telltale handwriting on
        the inside of the case.  

Q $0DB) On the 6502, what does the accumulator contain after the following
        is executed:

        lda #$aa
        sed
        adc #01

A $0DB) Assume carry was clear.  If so, then $11 is the coprrect answer. 

Q $0DC) What is the model number of the US NTSC VIC-II chip?

A $0DC) Its first number was 6567, and that is the number most people know
        it by, but Commodore produced a VIC-II using a new manufacturing 
        process that was numbered the 8562. 

Q $0DD) What is the European PAL VIC-II chip's model number?
        (Not sure if that's its rightful term, but I hope you understand).

A $0DD) Same here.  The part number 6569 is the most remembered number, but
        an 8565 will work as well.

Q $0DE) Assume you have two computers, one with each of the above chips inside.
        Which chip draws more pixels on the screen per second?

A $0DE) Note, for the purposes of the calculation I am performing, "pixels"
        refers to picture elements that can be adddress and modified using
        normal VIC modes, so there are 320*200 "pixels" on both the PAL
        and NTSC screens.  (I probably should have stated this, but it is
        too late now.)  Also, the screen refresh rates used in the 
        calculations are those defined by the respective television
        standards (60Hz U.S., 50Hz European), even though the actual
        frequencies are off by a small percentage. (for example, the actual
        50Hz refresh rate on European VIC-II chips was calculates as 
        50.124567Hz by Andreas Boose)
        
        So, the PAL draws 320*200*50 pixels per second = 3200000 pixels/s
        NTSC draws 320*200*60 pixels per second = 3840000 pixles/s
        
        Now, some people thought I meant the whole screen, not just the 
        display area provided by the VIC-II chip.  Well, I am not sure
        exactly you calculate pixels on a screen, since the numbers could
        vary from display to display, but if we measure in scanlines:
        
        PAL = 312 scanlines * 50 = 15600 scanlines/s
        NTSC = 262 scanlines * 60 = 15720 scanlines/s
        
        The NTSC machines wins both ways.  

Q $0DF) In Commodore BASIC, which statement executes faster:

        a = 2--2

        or

        a = 2+2

A $0DF) b is the correct answer, and there are a couple of reasons why:

        1) 2--2 takes longer to parse in the BASIC interpreter.
        2) Commodore BASIC subtracts by complementing the sign of the
           second number and adding.  This incurs extra time.

        There are even more subtle ones, but I leave them as an
        exercise for the reader.  Send me your reason why.

Here are the answers to Commodore Trivia Edition #15 for February, 1995

Q $0E0) What is the difference(s) between the Newtronics 1541 and the 1541C?
        (only one difference is needed)

A $0E0) (George Page, a noted authority on CBM Drives, indicated that Commodore
        made this a tough question to answer.)  By the time the 1541C was 
        introduced, Commodore threw a number of drives together and called
        them 1541Cs.  The theoretical 1541C exhibited the following
        features:

        No head banging, and other problems fixed by modified ROMs.
        Case color matches C64C and C128 computers.

Q $0E1) What happens when you type 35072121 in direct mode on the C64 and
        hit return?

A $0E1) Simple answer:  Most likely, the screen clears and the word READY.
        is printed at screen top.  This is the behavior seen when pressing 
        RUN-STOP/RESTORE.  Alternately, nothing could happen, or the computer
        could lock up.

        Involved answer:  There is a bug in BASIC 2.0.  Easily fixed, but 
        destined to live life immortal.  (long)

        The bug is in the PETSCII number to binary conversion routine at
        $a69b (LINGET).  The routine basically reads in a character from the
        line, multiplies a partial result by 10 and adds the new character
        to the partial result.  Here is a code snippet:

        a96a     rts
        a96b     ldx #$00  ; zero out partial result
        a96d     stx $14
        a96f     stx $15
        a971     bcs $a96a ; not a number, return
        a973     sbc #$2f  ; PETSCII to binary
        a975     sta $07   
        a977     lda $15   ; get hi byte or partial result
        a979     sta $22
        a97b     cmp #$19  ; partial > 6399
        a97d     bcs $a953 ; yes, goto error
        a97f     lda $14   ; load lo byte of result
        a981     asl       ; lo*2
        a982     rol $22   ; hi*2 + c
        a984     asl       ; lo*2
        a985     rol $22   ; hi*2 + c
        a987     adc $14   ; complete lo*5
        a989     sta $14
        a98b     lda $22  
        a98d     adc $15   ; complete hi*5
        a98f     sta $15
        a991     asl $14   ; lo*2 complete lo*10
        a993     rol $15   ; hi*2 complete hi*10
        a995     lda $14
        a997     adc $07   ; add new char
        a999     sta $14
        a99b     bcc $a99f ; did lo overflow?
        a99d     inc $15   ; yes, inc hi
        a99f     jsr $0073 ; get next char
        a9a2     jmp $a971 ; go through it again.
        
        The problem is at $a97d.  when the partial result is greater than 6399,
        (if partial > 6399, then new partial result will be over 63999)
        the routine needs to get to $af08 to print an error, but can't due to
        branch restrictions.  However, a branch that will get there is in the
        preceding function, which handles the ON GOTO/GOSUB keywords ($a94b,
        ONGOTO).  

        So, the BASIC writers just branched to the code in ONGOTO; specifically
        $a953:
        
        a94b     jsr $b79e
        a94e     pha
        a94f     cmp #$8d  ; is the keyword GOSUB ($8d)
        a951     beq $a957 ; yes
        a953     cmp #$89  ; is the keyword GOTO ($89)
        a955     bne $a8e8 ; no, print SYNTAX ERROR.
        a957     ...       ; handle ON GOTO/GOSUB

        This code is checking to make sure the ON (var) is followed with a
        GOTO or GOSUB keyword.

        The LINGET error handler branches to $a953, which compares
        .A (which holds hi byte of partial result) to $89.  Normally, this
        fails, and the normal SYNTAX ERROR code is reached through the branch
        to $a8e8.  However, for partial results of the form $89XX, the check
        succeeds, and BASIC tries to execute an ON GOTO/GOSUB call.

        By the way, it is no coincidence that this error occurs on 35072121,
        since one of the partial results is $8900 (hi byte is $89). In fact,
        350721 will achieve the same result.

        If the check succeeds, the code limps along until $a96a:

        a969     pla       ; complement to $a94e
        a96a     rts       ; return

        But we never executed $a94e, the push, so the stack is now
        messed up.  Since the stack held $9e, $79, $a5 before the PLA,
        (The stack could hold other values, but I always saw these)
        the RTS gets address $a579 to return to, which usually holds a BRK
        opcode.  The break handler is invoked, and the screen clears with the
        READY. at the top.

        Now, the BASIC 2.0 authors were justified in reusing the error
        handler code in ONGOTO for LINGET, but they calculated the branch
        offset wrong, according to my tests.  If you have the LINGET error
        handler branch to $a955, all these troubles disappear.  You can
        verify this procedure with the following BASIC program on a 64:
        
        10 for t=57344 to 65535:poke t,peek(t):next
        20 for t=40960 to 49151:poke t,peek(t):next
        30 poke 43390, 214
        40 poke 1, peek(1) and 254

        Just to be complete, this error occurs when a 6 digit or greater line
        number is entered and the first 6 digits indicate a number in the
        range 35072-35327 ($8900-$89ff).  Also, it appears the error occurs
        on the VIC-20, but I didn't completely verify it.  It would be
        interesting to note if the error is found on all version of CBM BASIC.

        Whew, what a mouthful.

Q $0E2) If a SID chip is producing a "sawtooth waveform", does the waveform look
        like: 

        a) "/|/|/|/|"  or
        b) "|\|\|\|\"  ?

A $0E2) a is the correct answer.

Q $0E3) On BASIC 2.0, what special precaution(s) must one take when working with
        relative files? (only one is needed)

A $0E3) Because BASIC 2.0 doesn't handle positioning in relative files quite
        right, one must position the relative file pointer before AND AFTER
        a read or write to a relative file.

Q $0E4) What incompatibility existed between C128 Rev. 0 ROMS and the REU?
           
A $0E4) OK, I admit it.  I placed this answer and its discussion somewhere
        in my store of information, and it must have fallen behind the 
        cabinet, because I cannot find it.  I will post an answer to this
        as soon as I can find it, but the answers really must go out, as
        they have been held up long enough.

Q $0E5) What can trigger an NMI interrupt? (count all sources on one chip as
        one)

A $0E5) The following sources can trigger an NMI interrupt:

        1) The expansion port.
        2) CIA #2.
        3) The RESTORE key.

Q $0E6) What can trigger an IRQ interrupt? (count all sources on one chip as
        one)

A $0E6) The following sources can trigger an IRQ interrupt:

        1) The VIC-II chip.
        2) CIA #1.
        3) The expansion port.

Q $0E7) Where is the ROM in a 1541 located in the 64K memory map?

A $0E7) The ROM is located from $C000 to $FFFF, yet the ROM code does not
        begin until $C100.

Q $0E8) Which VIA on the 1541 is hooked to the read/write head?

A $0E8) VIA #2, located in memory from $1C00 to $1C0E.

Q $0E9) In the Commodore DOS, what bit in the file type byte denotes a "locked"
        file?

A $0E9) bit 6.

Q $0EA) If files are "locked" under Commodore DOS, under what condition(s) may
        the file be changed?

A $0EA) Depending on the file, the following operations can be done on a 
        locked file:
        
        1) Rename will change file name, although not contents of file.
        2) Random access can be used to alter file.
        3) Formatting the disk will alter the file. (duh!)
        4) Save-with-replace (@0:) will replace file and unlock it.
        5) Opening file in append mode will allow it to be changed, and
           unlock it.
        6) Opening a relative file and adding or changing a record will
           succeed and unlock file.

Q $0EB) How big can a program file be on a 1541 or similar?

A $0EB) The file can be as large as a sequential file, since both are stored
        in the same way: 168656 bytes.  However, since a program contains its
        load address as bytes 0 and 1, the largest program size is 168654
        bytes.

Q $0EC) Under BASIC 2.0, how does one open a random access file on a disk
        drive?

A $0EC) Random access (or direct access) files are a misnomer.  What you
        really doing is opening the disk for reading and writing.  You need
        two open command to access a random file: (assume drive 8)
        
        open 15,8,15     and
        
        open 1,8,4,"#1" will open a random access file using buffer 1.
        open 1,8,4,"#" will open a random access file using the first
        available buffer
        
        Now, by using B-R, B-W, B-A or their replacements, you can write
        data to sectors on the disk.
        
        Note that Random access files are different from relative files.
        
Q $0ED) A file that has a '*' immediately before the filetype is called
        a _________ file.

A $0ED) a splat file.  This is its correct term, believe it or not.

Q $0EE) We know the 1541 and similar drives have 5 internal buffer areas, but
        how many does an 8050 drive have?

A $0EE) Since the 8050 has twice the on-board RAM (4kB), it has 16 buffers, but
        only 13 are available.  (All CBM drives use one buffer for zero-page
        memory, one for stack memory, and one for temporary variables.) 

Q $0EF) On a "save-with-replace", where is the location of the first track and
        sector of the new copy of the program saved in the directory entry for
        the old copy?

A $0EF) The new first track is stored at location 26, and the new first sector
        is stored at location 27.  These values are copied to their
        correct locations after the save is completed.

Here are the answers to Commodore Trivia Edition #16 for March, 1995

Q $0F0) What size matrix of pixels comprises a character on a PET 2001
        computer?

A $0F0) The matrix was 8 by 8.  

Q $0F1) How many bytes did the opening screen on a CBM 4016 show as
        available for use by BASIC?

A $0F1) 15359 bytes free.

Q $0F2) The character set that produces uppercase letters on unshifted keys 
        is the ________________ character set.

A $0F2) "standard mode".  

Q $0F3) The character set that produces lowercase letters on unshifted keys
        is the ________________ character set.

A $0F3) "alternate mode"

Q $0F4) To get to the set mentioned in $F2, what character code would be
        printed to the screen?
 
A $0F4) chr$(142)

Q $0F5) What character code would one print to the screen to invoke the 
        chararacter set in $F3?

A $0F5) chr$(14)

Q $0F6) If one does LIST 60-100, will line 100 get "listed"?

A $0F6) Yes.  The above translates as: LIST 60 through to and including 100.

Q $0F7) The abbreviation for the BASIC 4.0 command "COLLECT" is ________.

A $0F7) coL. "C" "O" "SHIFT-L".  For those who are interested, the 
        COLLECT command is analogous to the VALIDATE operation.

Q $0F8) When you use a subscripted variable in BASIC, how many elements
        are created by default if no DIM statement is issued?

A $0F8) 11 elements.  A(0) - A(10).  Almost everyone who has ever programmed 
        in Commodore BASIC has seen the "BAD SUBSCRIPT" error when they try 
        to use the 12th element in a un-DIMensioned array.

Q $0F9) How large is the keyboard buffer in CBM computers?

A $0F9) 10 bytes.  Since this area could be POKEd to, many boot programs
        would poke characters into this buffer to simulate keypresses.

Q $0FA) On the Commodore 1581, how large is a physical sector in bytes?

A $0FA) A physical sector is 512 bytes in length.  Internally, the 1581
        creates 2 256 "logical" sectors in a physical sector, to maintain
        compatibility with older Commodore drives.

Q $0FB) You'll find BASIC 3.5 on the _____________ line of CBM computers.

A $0FB) The X64 series.  That includes the Commodore 16, the Commodore 116,
        and the Commodore Plus/4.

Q $0FC) On the Commodore 1351 mouse, what registers in the Commodore
        computer would the X and Y proportional information be read
        from?

A $0FC) Even though you are looking for digital information (how far the
        mouse has traveled since the last movement in a particular axis), 
        the information is read from the "paddle" or potentiometer (POT)
        registers.  On the C64, the POT registers are part of the SID
        chip, and are at 54297 ($D419) for POTX, and 54298 ($D41A) for
        POTY.

Q $0FD) What is the maximum size of a sequential file on a 1581 drive?

A $0FD) 802640 bytes.

Q $0FE) What flaw exists in the early Commodore 1670 modems?

A $0FE) When the 1670 modem was first introduced, it powered up in auto-
        answer mode, which means it would answer incoming calls after
        the phong rang.  You could turn this feature off through software
        control, but if the power was reset, the modem would answer the
        phone.  So many people complained to Commodore that CBM revised
        the 1670 to include an extra DIP switch that turned this feature
        off.

Q $0FF) What is the model number of the first modem for the VIC and C64?

A $0FF) The 1600 manual dial/manual answer 0-300 bps modem.  The author 
        owns one, and used it for many years.  To operate, you must use
        a phone with a detachable handset cord.  You dialed the number
        on the phone, waited for the answer, unplugged the handset, and
        plugged the cord into the 1600.  A switch toggled between using
        originate or answer frequencies.  The 1600 was manufactured by
        Anchor Automation for Commodore.  (As an aside, this unit claimed
        300 bps, but I never could get 300 to work well.  Most of my
        telecommunications happened at 150 bps.)

-------Commodore Trivia Edition #17 Questions and Answers (BEGIN)--------

Q $100) On the MOS Technology's KIM-1, how many keys were on the keypad?

A $100) 23 keys.  The keypad has room for 24, but one spot is taken by
        a switch that puts the system into single-step mode.  Interestingly,
        some pictures have the switch on the upper left, some on the upper
        right.

Q $101) The KIM-1 keypad had the common 0-9A-F keys on the keypad, but
        also had some special keys.  Name them.

A $101) GO (Go) Executes an instruction and displays the address of next,
        ST (Stop) Stops execution of program and return control to monitor, 
        RS (Reset), 
        AD (Address) Address entry mode, 
        DA (Data) Data entry mode, 
        PC (Program Counter) Displays and restores program counter to values
                             in PCL and PCH,
        +  (Increment) Increments the address without changing the entry mode.

Q $102) The KIM-1 was a set of modules that could be plugged together to
        expand the system.  Each module had a model number.  What was the 
        model number of the KIM-1 motherboard?

A $102) The KIM-4.  

Q $103) On the 1525 line of printers, if you wanted to create the following
        graphic, what bytes would you send to the printer after turning on
        graphics mode?
        
        ****
        *  *
        *  *
        *  *
        *  *
        *  *
        ****

A $103) I guess I should have stipulated that this is a bitmap.  ASCII just
        has a few limitations.  Anyway, the correct bytes to send are:
        255, 193, 193, 255.  You got these by assigning each bit in a column
        a value, and adding 128 to the result for each column.  

Q $104) What is the horizontal resolution of the 1525 line of printers?

A $104) Character resolution:   80 chars, or 10 chars/inch (cpi).
        Graphics resolution:    480 dots, or 60 dots/inch (dpi).  

Q $105) On Commodore drives, explain the difference between the B-R command
        and the U1 command.

A $105) The two commands read in data from a disk sector.  However, the 
        U1 command always reads a full sector (255 bytes).  The B-R
        command reads the number of bytes specified in the first byte of
        the sector.  If the first byte is a 15, B-R will read 15 bytes
        from the sector.  (From the 1581 manual)

Q $106) On the Commodore 1541 drive, what does the U: command do?

A $106) This command has been traditionally used to reset Commodore drives,
        including the CBM 1541.  However, some early versions of the Drive
        DOS did not correctly handle this command.  In these versions, the 
        drive and computer failed to complete the command transaction 
        successfully, and what looked like a hung machine resulted.  
        Commodore later fixed this problem.  If U: seems to not work on
        your drive, try U; instead.  

Q $107) What does the first routine in the 1541 drive ROM actually do?

A $107) The function, called SETLDA and residing at $C100, turns on the
        drive active LED for the current drive.  The routine loads the
        current drive from $7F and sets bit 3 of DSKCNT ($1C00).

Q $108) How many files will a 1581 disk drive hold?

A $108) 296 files.  Note that it is not a multiple of 144.  

Q $109) Commodore 1581 drives have a special "autoboot" feature that enables
        the drive to load and run a program off a disk upon drive bootup.
        What is the required name of the file?

A $109) COPYRIGHT CBM 86

Q $10A) What filetype must the file mentioned in $109 be?

A $10A) USR.

Q $10B) To power up a 1351 mouse in "joystick mode", what must the user do?

A $10B) If one depresses the right mouse button during power-up, the 1351
        will behave just like a joystick.

Q $10C) Describe the contents of the POTX or POTY registers when using a
        1351 mouse.

A $10C) Each register holds the same type of information, just for a 
        separate axis, so we will describe just one register:
        
        Bit:   Function
        
        7      Don't care
        6-1    Mouse axis position mod 64.
        0      Noise Bit. (check this bit to see whether mouse has moved)

Q $10D) Commodore computers typically use most of zero page for temporary
        variables and other items.  However, both the VIC-20 and the 64
        reserve 4 bytes for user programs that need zero page memory.  Where
        are these locations?

A $10D) $FB-$FE (251-254).  I am not sure these were "reserved" for 
        programmers as much as they were just not utilized by the 
        CBM programmers.  

Q $10E) Name the 16 colors available on the 64.

A $10E) Black
        White
        Red
        Cyan (Light Blue-Green)
        Purple
        Green
        Blue
        Yellow
        Orange
        Brown
        Light Red
        Dark Gray (Gray 1)
        Medium Grey (Gray 2)
        Light Green 
        Light Blue
        Light Gray (Gray 3)
                         
Q $10F) Both the VIC-20 and the C64 emulate the operation of the 6551 UART.
        How many "mock 6551" registers are mapped into the memory map?

A $10F) 5, from $293-$297 (659-663).  The register contents:

        $293   6551 Control Register
        $294   6551 Command Register
        $295-6 6551 User Defined Baud Rate value.
        $297   6551 Status Register 

------------Commodore Trivia Edition #18 Questions (BEGIN)--------------

Q $110) What is the name of the company that recently purchased the
        liquidated Commodore assets?

Q $111) At one time, Commodore attempted to manufacture a dual drive
        version of the 1571 called the 1572.  For what technical reason
        did it utimately fail?

Q $112) Over what computer system did a User Group sue Commodore and win?

Q $113) In $103, the question asked how to create a graphic of a small box
        on the 1525.  In this quesrtion, we have made a different design.
        If you wanted to create the following graphic using individual
        dots on the printer, what bytes would you send to the printer after
        turning on graphics mode?
        
         **     * *
        *       ***
        *   **  ***
        *   * * * *
         ** **  * *
            * *
            **

Q $114) (Some C65 questions)  How many SID chips does the the development
        Commodore 65 machine contain?

Q $115) What CPU does the Commodore 65 use?

Q $116) What is the alternate name for the Commodore 65?

Q $117) How many processors does the internal 1581-compatible drive 
        on the C65 contain?

Q $118) In the tradition of naming certian ICs after famous cartoon
        characters, one of the ICs in the C65 is named after a Warner
        Brothers cartoon character.  Which one?

Q $119) What version of BASIC is included on the Commodore 65 in C65 mode?

Q $11A) How many I/O ports does a Commodore 65 contain?

Q $11B) What common Commodore 64 I/O port does the C65 NOT have?

Q $11C) How many function keys are on a Commodore 65?

Q $11D) What CBM disk drive DOS was used as the template for the internal
        C65 drive DOS?

Q $11E) What resolution of text screen does the C65 power up in? (Please
        give answers in characters).

Q $11F) What distinguishing non-textual characteristic in the C65 is not
        present in othe Commodore 8-bit computers? 
The information in this between the lines marked by (BEGIN) and (END) is copyright 1995 by Jim Brain. Provided that the information between the (BEGIN) and (END) lines is not changed except to correct typographical errors, the so marked copyrighted information may be reproduced in its entirety on other networks or in other mediums. For more information about using this file, please contact the address shown below.

Jim Brain
brain@mail.msen.com
602 North Lemen
Fenton, MI 48430
(810) 737-7300 x8528

Some are easy, some are hard, try your hand at: Commodore Trivia #18!