From: brain@msen.com (Jim Brain) Subject: Commodore Trivia Edition #12 Answers Date: 13 Dec 1994 15:15:46 -0500 Organization: Brain Innovations, Inc. Lines: 155 Sender: brain@garnet.msen.com Message-ID: <1QTxkmoZj4c3072yn@msen.com> Reply-To: brain@mail.msen.com NNTP-Posting-Host: garnet.msen.com Here are the answers to Commodore Trivia Edition #12 for November, 1994 Q $0B0) What will happen if you type ?""+-0 into the CBM BASIC interpreter on the PET series, the 64 series, or the 128 series? A $0B0) Basically, the BASIC interpreter executes a BRK instruction. On the C64, the system vectors through $316-$317 (BRK vector) and does a warm start. On the C128 and PETs with Monitors, the system dumps into the internal machine language monitor. If the machine under use did not do something with the BRK vector, the machine would hang. Now, this is NOT normal behavior. The system should report an error, not execute a BRK. Q $0B1) In the first CBM 64 units, what color was the screen color RAM changed to when you cleared the screen? A $0B1) The screen color RAM was changed to value 1 when the screen was cleared. Thus, when a byte was poked into screen RAM, the resulting character was white on the screen. The white contrasted nicely with the normal blue background. Q $0B2) Why was it changed in later versions of the 64? A $0B2) Commodore found that this practice sometimes caused "light flashes" during screen scrolls. I was going to leave this for another time, but ... The change was to make the color RAM equal to background color register #0. Well, this got rid of the "light flashes", but then poking values to screen RAM caused invisible characters, since the foreground color of the character was the same as the background color of the screen. Oh well.... Q $0B3) What is "special" about the text that displays the "illegal quantity error" in CBM BASIC? A $0B3) The text is actually "?ILLEGAL QUANTITY ERROR". Notice the two spaces between "QUANTITY" and "ERROR". The current theory is that " ERROR" was a separate string with the space prepended, to save memory (since that word occurs at end of error messages. Someone then messed up the string ?ILLEGAL QUANTITY " by inserting a redundant space. You decide. Q $0B4) On what Commodore machine was the operating system OS/9 available? A $0B4) Since OS/9 was a real-time operating system for the 6809 microprocessor, it was available on only one Commodore machine, which had two different names: The Commodore SuperPET. The machine was sold as the "MMF (Micro MainFrame) 9000 in Germany, and its model number was SP9000. Q $0B5) Which Commodore machine(s) does not have a user port? A $0B5) The Commodore C16. Commodore decided to cut out telecommunications, and thus designed the user port out of the computer, as the modem is the only use Commodore ever made of the user port. Q $0B6) How many pins are there in a Commodore Serial Connector? A $0B6) 6. Q $0B7) There are 13 addressing modes available on the 6502. Name them. A $0B7) No# Name Description --- ------------ ----------- 01) accumulator asl a 02) immediate lda #$00 03) zero page lda $00 04) zero page,X lda $00,X 05) zero page,Y lda $00,Y 06) absolute lda $1000 07) absolute,X lda $1000,X 08) absolute,Y lda $1000,Y 09) implied clc 10) relative bne 11) (indirect,X) lda ($00,X) 12) (indirect),Y lda ($00),Y 13) (absolute indirect) jmp ($1000) Q $0B8) If you were to put one large sequential file onto an 8050 disk drive, how big could that file be? A $0B8) According to the 8050 User Manual, a sequential file could be 521208 bytes in size. Q $0B9) How many characters can be present in a standard Commodore DOS filename? A $0B9) 16 characters. Q $0BA) How many pins does a 6502 IC have on it? A $0BA) 40 pins. Q $0BB) How many pins does the standard IEEE-488 connector have on it? A $0BB) 24 pins. Q $0BC) On the IEEE-488 bus, what does the acronym for pin 7, NRFD, stand for? A $0BC) Not Ready For Data. Q $0BD) On the NMOS 6502, what is the ML opcode for SED, and what does this opcode do? A $0BD) $f8, SEt Decimal mode. Sets the D flag in the status flags byte. Although used rarely, this opcode switches on Binary Coded Decimal mode. In BCD mode, the byte $10 is treated as 10, not 16. The add and subtract instructions are the only ones affected by this mode. For example, in this mode, adding the byte $15 (21) to the byte $25 (37) yields $40 (64) not $3a (58). emember that, in this mode, $40 = 40, not 64. Q $0BE) Assuming a PET computer and a non-PET computer have access to a common disk drive or tape drive, there are two ways to load a PET BASIC program on the non PET CBM computer. Name them. A $0BE) Most differing series of Commodore computers had different places for the start of BASIC programs. For instance, on the C64, $0801 (2049) is the start of BASIC memory, but most PET computers start BASIC memory at $0401 (1025). This wouldn't matter, except that BASIC programs are stored on tape and disk with the start address, and the line links ina BASIC program have absolute addresses in them. To fix these problems, the Commodore VIC-20 and newer computers came out with a "relocatable load". So, here are the two choices: 1) simply load the program relocatable, i.e "name",8 or "name",1. This would load the program in at start of BASIC memory and refigure the line links. 2) Redefine start of BASIC memory on non-PET machine. A couple of pokes to relevant BASCI pointer, and the start of BASIC was moved. Q $0BF) Only one of the ways detailed in $0BE works the other way around. Which one? A $0BF) Since the earlier PET computers did not have a "relocatable load", the only way to load a program from, say, a C64 into an 8032 was to use option #2 above and move the start of BASIC memory to $0801 (1025). End of Commodore Trivia Edition #12! Jim Brain brain@mail.msen.com 602 North Lemen (New address) Fenton, MI 48430 (810) 737-7300 x8528 -- 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