Date: 9/5/96 12:17 AM To: All From: j.brain@ieee.org (Jim Brain) Subject: COMP.SYS.CBM: General FAQ, v3.1 X-Posted-By: YPost, version 0.08 Archive-name: cbm-main-faq.3.1.p9 Comp-answers-archive-name: commodore/main-faq/part9 News-answers-archive-name: commodore/main-faq/part9 Comp-sys-cbm-archive-name: main-faq/part9 Version: 3.1 Last-modified: 1996/09/04 --------------------------------------------------------------------------- Table of Contents (for this file) --------------------------------- 14. Programming 14.1. What Programming Languages are available? 14.2. What is a Cross Assembler? How do I use one? + 14.3 What is an "undocumented opcode"? 15. User Groups 16. Sales and Service 16.1. Where do I purchase Commodore Equipment and Software? 16.2. Where do I get equipment serviced? 16.3. How do I know who to buy from or request service from? 17. Miscellaneous 17.1. How fast does a Commodore 64 run? 17.2. How can a turn my NTSC-M 64 into a PAL-B 64 or vice versa? 17.3. What does this IC number mean? + 17.4. What are the differences between C64 ROM Revisions? 18. Credits --------------------------------------------------------------------------- 14. Programming 14.1. What Programming Languages are available? The following programming languages are known to exist for the CBM computers: Ada APL Assembly Language BASIC (interpreted and compiled) BASIC extenders C COBOL COMAL FORTH FORTRAN LISP LOGO MUMPS Pascal PILOT You name it, and it is probably available for the Commodore computer system. The list of supported languages availeble for the Commodore 8 bit computer systems is much too large to fir in the FAQ, but they are available at http://www.wimsey.com/~danf/cbm/languages.html. 14.2. What is a Cross Assembler? How do I use one? A cross assembler is a program that runs on one computer and generates code for another computer. Usually, a non 8-bit CBM machine generates the code using this program, but it can be another 64 hooked in some way to a "target" 64. Whatever the case, here are some packages that can be used: as6502 linking 6502 cross assembler masm6502 6502 macro cross-assembler ps65a12 Unix format 6502 cross assembler svasm02 6502 cross assembler xasm220 many-targeted cross assemblers smal6502 linking macro assembler written in portable PASCAL A more detailed list can be found at: http://www.wimsey.com/~danf/cbm/cross-development.html For all cross assemblers, the user will most likely benefit from a way to transfer the program from the source platform to the target platform. See Section 7 for information on products that will help transfer the files. 14.3 What is an "undocumented opcode"? In the 65XX CPU line, each machine language instruction is a single byte, which allows for 256 instruction types, or opcodes. However, there are fewer than 256 defined. When designing the 65XX line, the designers, needing to keep complexity down, decided to treat the extra opcode positions as "don't care" opcodes, where no effort would be made to make those opcodes do anything special. Since the opcodes are arranged in a 16X16 matrix, with a row or column cotaining opcodes that perform similar operations, an undefined opcode in the matrix can have the behavior of other opcodes in its row or column or both. These opcodes are called "illegal" or "undocumented" opcodes, and are occasionally used by demo coders to accomplish special timing effects, or by software programmers for copy protection code. To learn more about these opcodes and what each does, the get the 64doc file at ftp://ftp.funet.fi/pub/cbm/documents/64doc or visit a cbm emulator forum. 15. User Groups User's Groups fulfill a major function for Commodore owners. They provide a place to meet other users, discuss problems and solutions for computing, teach and learn information about their machines. Software can be shared and friendships are made. The Commodore community is made up largely by real or virtual user's groups. A complete list of Commodore user groups can be found at | http://www.msen.com/~brain/pub/cbm-ug-list.1.0.txt This file is also available from Jim Brain's MAILSERV server as file | cbm-ug-list.1.0.txt. (See Section 6.5.2 for directions on using the | MAILSERV server.) Commodore owners are encouraged to join a CBM user group to help keep these vital organizations around. In addition, most user groups publish newsletters 16. Sales and Service Sooner or later, every Commodore owner will need to get his or her computer serviced, add another peripheral, or simply purchase some enhancement hardware or software. Contrary to popular belief, there is a large base of hardware and software suppliers and service centers. 16.1. Where do I purchase Commodore Equipment and Software? ESCOM (holder of the Commodore patents and copyrights), does not currently manufacture Commodore 8-bit computer systems. Many online services, including GEnie, the Internet, and user group newsletters contain classified ads from individuals wanting to sell used CBM equipment, however. In Germany, there are a number of shops which still sell factory new Commodore 64 and Commodore 128 computers. ESCOM also does not manufacture software for the Commodore 8-bit line. However, many companies still sell software for the Commodore line. A complete list of Commodore hardware, peripheral, and software suppliers | is available at http://www.msen.com/~brain/pub/cbm-supply-list.txt, as on Jim Brain's MAILSERV server as file cbm-supply.txt (See Section 6.5.2 for directions on using MAILSERV). 16.2. Where do I get equipment serviced? There are a number of repair facilities around that will bring your trusty Commodore computer up to speed again. Please look in the list below for one that might be able to help you. If that doesn't turn up anything, check with your local User's Group. A complete list of Commodore software and hardware repair facilities can be found at http://www.msen.com/~brain/pub/cbm-repair.txt or at Jim Brain's MAILSERV server as file cbm-repair.txt. (See Section 6.5.2 for directions on using MAILSERV) 16.3. How do I know who to buy from or request service from? The information provided in this file does not imply that a company is reputable or even still in business. It is best to use the above information as a starting point, and contact others who can discuss the various manufacturers and repair facilities listed above. 17. Miscellaneous Well, this is where the chaff falls. The following questions are either too new to categorize or do not fit into a category. 17.1. How fast does a Commodore 64 run? If you are using a stock Commodore 64, the CPU clock frequency is a function of the video timing frequency, which is slightly different for differing countries. If you have a stock PAL-B C64 (Common in Europe), the computer is running at 985248.444Hz. If you are using an NTSC-M C64 (Common in the USA), the computer is running slightly faster, at 1022727.143Hz. 17.2. How can a turn my NTSC-M 64 into a PAL-B 64 or vice versa? Changing a C64 from stock PAL-B to stock NTSC-M or vice versa requires swapping in the approproate VIC-II chip and the appropriate crystal, as well as changing a jumper on the motherboard (The jumper has printing near it that indicates whether to cut or connect the jumper). Also, if you have a version 1 KERNAL ROM and want to use the built-in RS-232 routines, you need to either swap KERNAL ROMs with the other computer (not recommended), or obtain a revision 3 KERNAL (recommended). Now, if maintaining stock operation is not a complete must, or if you just want to tinker, the crystal and jumper modifications can be made optional. The VIC-II chip has a relaxed tolerance for timing, so it is possible to run an NTSC-M VIC-II with a PAL-B crystal and jumper settings. The converse is possible as well. Since the crystal frequency is used to generate the frequencies for the TV and monitor output, your TV or monitor may not like the resuling hybrid signal very well, but it won't break anything. In addtion, the jumper indicated above determines the divisor used to scale down the crystal frequency for the CPU. For PAL-B units, the divisor is 18, and for NTSC-M units the divisor is 14. The Commodore 64 will operate regardless of the crystal frequency and state of this jumper. Therefore, to speed up a 64, one can install a PAL-B crystal (17734472Hz) and change the jumper to use the NTSC divisor (14) to increase the operating speed of the machine to 1266748Hz. However, note that any operations (disk, rs-232, special VIC tricks) that require synchronized timing may fail in this "non-stock" scenario. 17.3. What does this IC number mean? Here are a few Commodore IC numbers and their functions. Note that this | is an incomplete list. A more comprehensive list is called csg.chips.info and is at ftp.funet.fi. For the VIC-20: Mnemonic PN# Alt. PN# CPU 6502 VIC-I (NTSC-M) 6560 VIC-I (PAL-B) 6561 CPU 6502 For the C-64 and C-64C: Mnemonic PN# Alt. PN# CPU 6510 VIC-II (NTSC-M) 6567 8562? VIC-II (PAL-B) 6569 8565 VIC-II (PAL-N) 6572 VIC-II (PAL-M) 6573 SID 6581 6582 8580 For the C-128(D): Mnemonic PN# Alt. PN# Notes: CPU 8502 VIC-IIe (NTSC-M) 8564 VIC-IIe (PAL-B) 8566 VIC-IIe (PAL-N) 8569 | DVDC 8563 8568 (get r9a or r9b if possible) SID 6581 6582 8580 Differences between 64 boards: The older boards had discrete LSI logic and a PLA chip. The newer boards put all the PLA and LSI logic into one ASIC chip. On the older boards, the KERNAL and BASIC ROMs were separate, while they are combined in the newer design. There are two different models of the narrow board. One has Color RAM, while the other does not. The ASIC chip includes the PLA and 7 TTL chips, and the Color RAM on some machines machines. The new models use 9 volt versions 8580 SID, while older models use the 6581 12 volt SID. The VIC chip (6567 NTSC-M, 6569 PAL-B) has been replaced with the 8562 (NTSC-M) and 8565 (PAL-B) on newer models. Both BASIC 2.0 and the KERNAL ROM have been combined into one ROM for the C64C/G/GS. This ROM is the same as is used on the C128 in C64 mode. The ROM is indentical except for nationality differences. + 17.4. What are the differences between C64 ROM Revisions? + Well, they have a number of them, and each difference is documented and + explained in "The Commodore 64 Whole Memory Guide" by Tim Arnot. + (ftp://x2ftp.oulu.fi/pub/cbm/docs/c64-kernel.diffs) 18. Credits I want to extend my thanks to the following people for their help in providing correct, up-to-date information in this FAQ: Fred Mueller, who maintained this FAQ before I. Everyone who helped add to the 1.4 FAQ material to make the 2.0-2.2 FAQ. Everyone who helped add to the 2.2 FAQ to make the 3.0 FAQ. + Adam Vardy, with corrections to Section 3.3. + Roger Long, for information on Random Magazine. + Jouko Valta, for information on C65 archives and kernal diffs. + Tom Cwikla, for info on ANADISK. + Alan Jones, for info on a new newsgroup mail gateway. + Antony Gibbs, for info on Commodore Zone. + Gaelyne Moranec, for info on GIF viewers. + John Keyerleber, for info on plans for CBM printer to PC interface. + David Gahris, for numerous WWW addresses. + Marc Frank, for error in cbm-supply-list.txt filename. + Jack Vander White, for address updates. + Jeff Daniels, for info on his company. + Paul MacArthur, for info on X1541 cable source. + Craig Bruce, for info on his FTP Mail Server. + Dirk Moell, for info on blinks on 8050. + Bob Masse, for info on C128 VDC IC revisions. + Alan Jones, for corrections to Daniel Dallmann's RS-232 interface. + Donald Ayers, for information on his GRASSROOTS #1 Disk. + Daniel Kahlin, for info on Over5. + Dallas Legan, for info on Transactor Index. + Andre Fachat, for info on VICE. + Allen Smith, for info on COMPUTERSMITH Internet updates. + Jack vanderwhite, for updates on COMMODORE CEE BBS phone. + Jeff Jones, for updates on LOADSTAR prices. + Frank Ellert, for info on more UNIX-like OSes. + Paul McAleer, for informaiton on Micro-Bytes. + J. E. Sears, for info on PPI. + Jeff Jones, for information on LOADSTAR Letter going commercial. + Chris MCEE, for corrections on Demo terms. + R.T. Cunningham, for updates on SuperCPU dates and info. + Beth Gladen, for uncovering a bug in user group list filename. + Nhat-Viet Phi, for info on his RAMLink User's List. + Holger Heimes, for info on extra BBS numbers to get FAQ at. + Scott Eggleston, with new email info and merger of Underground info. + Jarno Lamberg, for corrections to 17.4 URL. + Eric Hoetzel, for info on 6502CC mailing list. + Jeff Daniels, for updates on the VIC newsletter. + Nick Rossi, for information on Novaterm 9.6. + Walt Roth, for corrections on posting frequency. + Malcolm O'Brien, for updates on CIS. + Gaelyne Gasson, for info on DejaNews and BBS mag. + Greg Noggle, for info on Micro-Bytes. + Pontus Berg, for Cross Platform Tools URL. + Jan Neuvians, for info on Graphics Booster 128. + Robert Akins, for info on COIN! magazine. + Jayme Rice, for info on PLA failures. -- Jim Brain, Embedded System Designer, Brain Innovations, Inc. (BII)(offline sig) j.brain@ieee.org "Above views DO reflect my employer, since I'm my employer" Dabbling in WWW, Embedded Systems, VR, Old CBM computers, and Good Times! -Me- Jim Brain: BII, VR, and CBM info