Copy Link
Add to Bookmark
Report
Commodore Trivia 03
Here are the answers to Commodore Trivia Edition #3 for February, 1994.
Q $020) What does the letters IEEE in IEEE-488 stand for?
A $020) Institute of Electrical and Electronics Engineers.
Q $021) What was the logo of Batteries Included?
A $021) It was a the face and hands of a man with glasses inside a circle.
Early renditions of him were in black and white, while later ones had
him with blond hair a a red shirt. Some views had him actually
typing on the 64/VIC with one finger, but most just showed him,
not the keyboard.
Q $022) The Commodore VIC-20, 64, and 128 computers emulate in software a very
important integrated circuit. What is its number, and why is it
important?
A $022) The 6551 UART IC. It is used for RS-232 communications.
Q $023) Commodore watches play a beautiful song for the alarm. What is the
song's title?
A $023) Fleur-de-lis. The "Godfather" theme.
Q $024) The C2N style Commodore tape decks are impressive in handling errors.
How many times is a single program stored onto tape?
A $024) Twice, second copy is placed right after the first. That means, even
if you get a load error on load, you might be able to just run the
program anyway, as a load puts the first copy in memory, and verifies
it against the second copy.
Q $025) What is a jiffy?
A $025) A jiffy is 1/60th of a second. It is the same on PAL and NTSC
Commodore computers.
Q $026) What is the screen resolution of the Commodore VIC-20?
A $026) On the VIC-I IC, the text and graphics screens are definable within
limits. Therefore, there are a number of answers that are correct:
The default screen has (and the answers I was looking for):
Text: 22H x 23V = 506 characters
Graphics: 176H x 184V = 32384 pixels
However, on experimentation with a NTSC VIC-I (6560), I found that
it could support a resolution of:
Text: 24H x 29V = 696 characters
Graphics: 192H x 232V = 44544 pixels
Your mileage may vary, but these numbers remove all border area.
(I am not sure if you can use all the pixels, since the VIC-I only
allows 32768 to be used. You might be able to flip the graphics
page in the middle of the screen, but I leave that as an exercise.)
The VIC-I also supports a virtual screen, which can be "panned" so
that the physical screen becomes a "window" into the virtual screen.
The maximum "scrollable" virtual screen on NTSC is:
Text: 28H x 32V? = 896 characters
Graphics: 224H x 256V? = 57344 pixels
The VIC supports more resolution than 32V, but you can never see
it since you can't scroll it into view, so the point is moot.
So, if I didn't thoroughly confuse you, email me and I will make
sure I do!
Q $027) Why is the VIC-20 named the VC-20 in Germany?
A $027) Because 'V" is pronounced 'F" in Germany, and the resulting
pronunciation was a naughty word.
Commodore put one over on many people. The VIC-20 was designed in
the states and given that name due to the IC that did the graphics.
When the marketing started, CBM found out the name was no good in
Germany, so they quickly renamed it VC-20. The after-the-fact
Volks-Computer conjured up images of the Volkswagon car (VW), which
was popular at the time for its dependability and price. The rest is
history...
Q $028) Why was early Commodore equipment built into such heavy enclosures?
A $028) Simple. Commodore made office furniture, which includes desks and
filing cabinets. They simply used the facilities and parts on hand.
Also, at the time the PEt came out, people equated physical stability
of a machine as an indication of its worth. Also, the system had to
hold up the built-in monitor.
Most people think it is due to FCC regulations. While that was
indeed a factor, Commodore had experience with different types of
shielding from the calculators they made. Commodore has always
been a "cheap" company, so the fact that they could get good
shielding in-house at almost no cost proevd to be the overriding
factor. It might interest some to note that, even with the metal
case, early PEts had foil inside as a secondary shield.
Q $029) What two BASIC 2.0 commands might still work if mispelled?
A $029) The answers I was looking for are END and STOP, although someone
correctly pointed out that GO TO can be construed as a mispelling.
Also, print#, get#, and input# might work if the '#' was omitted and
the program was getting data to screen or keyboard.
Although the following aren't really the result of mispelled commands,
I put them in, since you could stretch the definition of mispelled to
include them.
LET would work if it was left out, since LET was an optional
keyword. Commands of the form <keyword> <number or variable> would
work if letters were tacked onto the end. (example: RUNDY., prg has
a valid line 0, and DY = 0). Finally, LOAD"jim",8,1garbage would
work due to the way LOAD absolute worked, but that is a stretch!
Q $02A) What does CIA stand for? (not the U.S. CIA!)
A $02A) CIA = Complex Interface Adapter. The german Magazine 64'er calls
it a Control Interface Adapter, but that is not its official
name.
Q $02B) (hard one) What is the key VIC capability that makes full-screen
hires graphics possible on the _VIC-20_?
A $02B) A lot of people answered redefinable characters, but that alone does
not provide FULL-SCREEN graphics. 256 8*8 cells gives you a little
over 1/2 of the screen in graphics, but the VIC has the ability to
make each character cell be 8*16, which gives enough pixels to map
the entire default screen.
Q $02C) How many cassette ports does the CBM 8032 computer have?
A $02C) Two. One on back, one on side near the back.
Q $02D) What 5 bytes must appear in every Commodore 64 autostart cartrdge and
what location in memory must they be placed at?
A $02D) CBM80 at $8004. The letters must have bit 7 set. So, the actual
PETSCII codes are 195, 194, 205, 056, 048.
$c3, $c2, $cd, $30, $30 in HEX
Q $02E) What is the correct Commodore technical term for "Sprites"?
A $02E) MOBs, or Movable Object Blocks.
Q $02F) (Three parter, all parts must be correct) "Push-wrap-crash" is a
nickname for a condition that can lock up an old-style C=64.
What causes it?
How can it be avoided (besides not doing it)?
What is the only way out once it has occured (besides rebooting)?
A $02F) Wow, I got so many responses to this! This question actually
dealt with a typical user, but people sent in descriptions of
what the code does and how to patch it. So, there are two sets
of answers to this:
User Answer:
1) If you put the cursor at the bottom of the screen and type 82 characters
(not 81) and then trying to delete back to the 78th one.
2) Any of the following will work:
Do not use the following colors for the cursor: red, blue, yellow,
light red, dark grey, light blue, light gray.
Some people devised a IRQ wedge that will recover from the lockup.
Have the following lines as the first lines of a program:
10 open 15,8,15 20 input#15,a$.
3) There are actually two ways to recover. They are:
If you have a reset button installed on the 64, reset the machine,
then load and run an unnew program. (I accepted this, but I figured
most people would assume this much)
If you have a tape drive installed, press either Shift-3 or move a
joystick installed in Port 1 in the UP direction. Then, respond to
the directions on the screen "PRESS PLAY ON TAPE". Next, press
RUN-STOP to stop the tape load.
What really happens: (I can't prove this)
1) The user types the line of text and the scroll code is invoked.
The first two lines become linked as one logical line, and the
third line is treated as a new line.
The user deletes the 82nd and the 81st character and then hits delete
while in the first column of the third line. Since the delete will put
the cursor back up into the second line, which is linked with the first,
the KERNAL gets confused and thinks the second line is at the bottom of
the screen. Remember, the "cursor" is actually constructed by a
combinations of using reverse characters and changing the color RAM
nybble for that screen location. Thus, when the cursor gets "erased"
from the first column of the last line, the KERNAL thinks the color
nyble for it is at $DC00, which is 40 bytes off from the actual
position. $DC00 is actually Port A for CIA #1, which is where the
kernal writes the column of the keyboard it wishes to scan. Because the
KERNAl is messed up, it puts the color nybble for where it thinks the
cursor was into this location. (That is why there is a connection
between cursor color and this bug.
Now, the system integrity has been compromised, but it does not show
yet. The user proceeds to delete the 80th character. As the user
deletes the 79th character, the bad value in $DC00 goes to work and
fools the KERNAl into thinking SHIFT/RUN-STOP has been pressed. It also
pretty much disables the keyboard.
2) Since the Color RAM is what the KERNAl gets confused about, the solution
was to not use certain bit patterns of colors:
RED 0010
CYAN 0011
BLUE 0110
YELLOW 0111
LIGHT RED 1010
DARK GRAY 1011
LIGHT BLUE 1110
LIGT GRAY 1111
OK Colors:
BLACK 0000
WHITE 0001
PURPLE 0100
GREEN 0101
ORANGE 1000
BROWN 1001
MEDIUM GRAY 1100
LIGHT GREEN 1101
All of the BAD colors have bit 1 set. I have no idea what the
significance of that is.
3) You needed to get out of the tape load code, but you only had so many
keys that were still active. So, if you followed the directions on
the screen, you could break out. Since the tape load code uses CIA #1
for its operations, it would take over the IC and then restore it
to a correct state when either the load was stopped or the load
completed. Now, that is amazing!
(Someone is free to check up on me concerning this, since I do not
have a Rev 1 ROM to try out. If someone has one, I would like to
have a copy of it on disk or in email. And if someone has the
information on this bug from either the May 1984 Gazette p108, or
from the COMPUTE! Toolkit Kernal VIC20/64, I would like a copy.)
New questions coming!
Jim Brain
--
Jim Brain, Embedded Systems Designer, Brain Innovations.
brain@msen.com
Dabbling in VR, Old Commodore Computers, and Good Times!
"The above views DO reflect my employer, since I am my employer" - Jim Brain