Preliminary PET FAQ

From: Kai Kaltenbach <kaikal_at_MICROSOFT.com>
Date: Tue Jul 22 17:22:44 1997

A very complete Commodore ROM Geneology is in MICRO Issue 41, October
'81. I have a copy in my PET Service Reference Guide, but it's 4 pages
of tables and has handwritten additions that would be difficult to OCR.
If you're a PET fan you might have this issue around anyway.

By the way, the Service Reference Guide is a priceless piece; all
schematics and test instructions, plus diagnostic cassettes and
floppies. I have most of the Commodore "Techtopics" monthly bulletins
also.

Kai

> ----------
> From: Larry Anderson & Diane Hare[SMTP:foxnhare_at_goldrush.com]
> Reply To: classiccmp_at_u.washington.edu
> Sent: Monday, July 21, 1997 9:48 PM
> To: Discussion re-collecting of classic computers
> Subject: Preliminary PET FAQ
>
> I figured I'd shoot this by you guys as I am getting closer to putting
> it on my web site. I am sure I will get some good criticism from you
> all. If you have any additions/suggestions or additional questions to
> include, let me know.
>
> I also plan also to add in a couple texts on disk drive usage some PET
> memory maps (gee there are barely any PET maps on the net!) and if I
> don't find a link to one, an overview of Commodore PET BASIC (applies
> to
> 64 also).
>
> (view with a monospaced font for best results)
>
> THE COMMODORE PET COMPUTER
> FREQUENTLY ASKED QUESTIONS FILE - VERSION 1.0beta
> ---------------------------------------------
> BY LARRY ANDERSSON,
> COMMODORE COLLECTOR AND PET ENTHUSIAST
> ---------------------------------------------
>
> WHAT MODELS OF THE PET ARE THERE?
>
> The PET line was Commodore's first computer line after purchasing
> MOS
> Technologies the primary design of the computer (as well as its
> microprocessor,
> the 6502) was by Chuck Peddle. The line was labeled in series' the
> first
> series, the 2001 series, the european 3000 series, and the modern
> 4000
> and
> 8000 series, and the final single unit 9000 series which is the
> SuperPET.
>
> 9" display units (40 column x 25 line character only display):
> PET 2001series:
> Original PET:
> - Steel case - Internal 'datasette' cassette tape
> drive
> - Blue on black 9" display - Small 'calculator style' keyboard
> - Small shipment with 4k, most with 8k RAM
> - Original ROMs
> Large Keyboard PETs (no more internal datasette drive):
> PET 2001 xN (x=8,16,or 32 depending on amount or RAM it was
> shipped
> with)
> - Full-size key keyboard w/PET graphic symbols imprinted on keys
> - Upgrade ROMs
> - Many steel cased, some w/molded plastic tops.
> - many with clearer green on black displays
> - Later versions had 4.0 ROMs installed
> PET 2001 xB (labeled as CBM, Commodore Business Machine)
> - Full size xx key keyboard (no graphics symbols printed on keys)
> - Upgrade ROMs (powers up in upper/lower case mode)
> - Later versions had 4.0 ROMs installed
> - Many w/molded plastic tops some steel cased.
> PET/CBM 40xx Series (PET= N keyboard/ROM, CBM= B keyboard/ROM, xx=
> RAM)
> - 4.0 ROMs
> - molded plastic top
> 12" displays - updated video controller (prone to the 'killer poke')
> - internal piezo speaker, audible startup, and right margin sound.
> - 4.0 ROMs
> PET/CBM 40xx (PET= N keyboard/ROM, CBM= B keyboard/ROM, xx= RAM)
> - 40 x 25 display, upgradable to 80 columns
> - lower case availabe by CHR$(14) which also changes line spacing.
> 80 column series (can be set to 40 column mode via software.)
> CBM 80xx
> - 80 x 25 display, powers-up in upper/lower case.
> - buisness xx key keyboard
> - later versions had 64k & 96k RAM expansion board options.
> - 4.0 ROMs
> PET SP9000 SuperPET (or Micro Mainframe)
> - 80 x 25 display - 6809 co-processor board
> - 96k RAM - True RS-232 interface
> - Multiple charactersets (for APL, etc.)
> - Avalability of disk Based languages
>
> MOTHERBOARD SERIES
>
> 2000 series(9" CRT) 3000 & 4000 series (8" CRT)
> IEEE user tape #2 IEEE user tape #1
> +------####-####--##-+ +------####-####--##-+
> ! # ! #!
> ! # ! #!
> ! # exp ! #! exp
> ! # bus ! ROMS #! bus
> ! # ! F E D C A B 9 #!
> ! # ! #!
> ! ! ! !
> ! ! ! !
> ! ROMS ! ! !
> ! F E D C A B 9 ! ! !
> ! ! ! !
> tape # RAM MEMORY ! tape # RAM MEMORY !
> #1 # ! #2 # !
> +--------------------+ +--------------------+
>
> 4000/8000 series (12" CRT)
> IEEE user tape #1
> +------####-####--##-+
> ! # # tape
> ! # # #2
> ! R exp bus # !
> ! A #! 2000 Series
> ! M 9 #! circa 1977/78 Max RAM - 8k
> ! A #! [daughterboard exp to 32k]
> ! M R B !
> ! E O C ! 3000 & 4000 Series
> ! M M D ! circa 1979/80 Max RAM - 32k
> ! O S E !
> ! R F ! 4000 & 8000 Series
> ! Y ! circa 1981 Max RAM - 32k*
> ! spkr! [daughterboard exp to 96k]
> +--------------------+
>
> WHAT VERSION OF ROMS DO I HAVE ON MY PET?
>
> The PET/CBM line had three major ROM revisions as well as a few
> minor
> ones,
> you cannot reliably determine the ROMs by looking at the outside of
> the PET
> (unless it has a large monitor). Fortunately there is an easy way
> to
> distinguish the three various versions by just turning on the
> computer.
> Depending on how your start-up message looks you can determine the
> ROM
> version:
>
> *** COMMODORE BASIC *** - Original ROMs sometimes referred to as
> 2.0*
> ROMs.
> (only found in the older calculator
> keyboard style
> PETs) Occupy $C000-$FFFF
>
> ### COMMODORE BASIC ### - Commonly known as the 'Upgrade ROMs'
> sometimes
> referred to as 2.0 or 3.0 ROMs depending
> on
> who
> you ask. Occupy $C000-$FFFF
>
> *** COMMODORE BASIC 4.0 *** - 4.0 ROMs The only ROMs that will work
> on
> large-screen PETs. Occupy $B000-$FFFF
>
> * Some people contend that BASIC version 1.0 never made it out of
> beta
> development and the PET line started with version 2.0 ROMs...
> Commodore
> on the other hand usually refers to the 'Upgrade ROMs' as V2, or
> 2.0.
> For the sake of sanity in this FAQ I will refer to them as
> original
> and
> upgrade ROMs, and as for an opinion I will go with the company's
> numbering
> (which leaves V 3.0 out of the picture).
>
> WHAT ARE THE DIFFERENCES AND/OR BUGS OF MY VERSION OF BASIC?
>
> Original ROMs
> Commodore had not yet implemented the IEEE-488 disk routines.
> Arrays
> are
> limited to 256 elements due to a bug in firmware. There is no
> machine
> language
> monitor nor could the PEEK command access locations above memory
> location
> 49152. The upper/lower case character set was inverted (SHIFT for
> lower
> case) (note: reading my sources there are ALOT of bugs, will take a
> while to
> compile them)
>
> Upgrade ROMs
> Many Original ROM bugs were squashed. BASIC commands and
> capabilities
> very
> much like the Commodore 64's. Now includes a tiny ML monitor and
> IEEE-488
> disk operability. Easter Egg - enter WAIT 6502,x to see MICROSOFT!'
> displayed
> on the screen x number of times.
>
> 4.0 ROMs*
> Addition of direct Disk operation commands DLOAD, DSAVE, COPY,
> HEADER,
> etc.
> Ability to repeat cursor control characters by holding down keys.
> Reserved
> DOS error-channel variables: DS,DS$. Added screen 'window'
> formatting
> control
> characters.
> * The small screen-and large screen versions of these ROMs differ
> and
> some software developed for the small-screen 4.0 ROMS crash on the
> large
> screen units. This is due to the necessary changes made for the new
> video
> controller of the 12" display PETs.
>
> CAN I RUN VIC-20, 64, 128, PLUS/4, OR C-16 SOFTWARE ON MY PET?
>
> Maybe. Any program that is all BASIC that does not use hi-res
> graphics or
> sound and contains no POKES should work readily on a PET. Of course
> if it
> contains POKEs, sound commands, and Machine Language conversion will
> be
> nessasary. If it rely on more than one voice of sound, hi-res
> grpahics,
> programmable character sets or color, it may not be worth converting
> because
> those features aren't present on the PETs.
>
> NOTE: Many early VIC, 64, and Plus/4 BASIC games and programs were
> converted
> PET games.
>
> HOW DO I GET 64 (VIC, PLUS/4, ETC.) BASIC PROGRAMS ON MY PET?
>
> Unlike the later 8-bit Commodores,the PET always loads programs into
> the
> memory address they were saved at (i.e. no loading ,8 and ,8,1 as
> on
> the
> later machines), which means BASIC programs saved on VICs, 64s,
> 128s,
> etc,
> will not load in the right location on the PET to be seen by the
> BASIC
> interpreter. PET BASIC starts at location 1025 ($0401 in hex) and
> the
> later
> Commodore machines have different, higher starting locations. (see
> table x)
>
> There are a couple ways to get a BASIC program to load properly into
> memory,
>
> Disk Track/Sector Editors:
> My preferred method of conversion is using a disk track/sector
> editing
> utility
> to change the 'load address bytes' of the file directly on the disk.
>
> This is
> not an easy process to 'explain' and I hope to write it up at a
> later
> time.
>
> BASIC Line Relocation Method:
> Here is a way to get the BASIC editor to do it for you; of course
> you
> will
> need to have an upgrade ROM or later PET (which has a ML monitor) or
> load in
> a monitor for your original ROM PET first. It involves 'linking'
> the
> higher
> located BASIC program to a line starting in regular BASIC, when you
> delete
> that line, the editor will move your program to where it belongs in
> memory.
>
> 1. Enter NEW to erase any programs already in memory.
> 2. Enter: 0 REM
> 3. LOAD the program you want converted (i.e. LOAD"program name",1
> for
> tape)
> 4. When loaded, enter the machine language monitor by entering SYS
> 1024
> 5. display the first part of the BASIC you first typed:
> M 0401 0408
> 6. Change the line-link to the memory location of the program to be
> moved;
> use cursor keys to move up and change the first two two-digit
> numbers to
> read:
> :0401 01 08 00 00 8F 00 00 00
> ^^ ^^ (for a program from a 64, otherwise, see table x)
> 7. Press return to change the bytes then enter X to exit the
> monitor.
> 8. Type LIST, you should see the 0 REM followed by the program.
> 9. Enter 0 to delete line 0 which will move the BASIC to its proper
> place.
> 10. Save the program.
>
> TABLE X - Load Addresses for BASIC files:
>
> Saved under Start of BASIC
> Computer load load change
> Model/ addr. addr. bytes
> configuration dec. hex. to:
> ------------- ---- ----- -----
> PET/CBM 1025 $0401 N/A
> VIC-20 unex. 4097 $1001 01 10
> VIC-20 +3k 1025 $0401 N/A
> VIC-20 8k+ 4609 $1201 01 12
> Commodore 64 2049 $0801 01 08
> B-128 0003 $0003 *
> Plus/4-C16 4097 $1001 01 10
> Plus/4-C16** 8193 $2001 01 20
> C128 mode 7169 $1C01 01 1C
> C128 mode** 16384 $4001 01 40
>
> * The BASIC RAM of the B128 is located in a separate bank of RAM
> memory,
> which starts at a VERY low address and will be difficilt to
> convert
> without
> a track/sector editor or saving it special on a B-128 itself.
> ** When hi-res GRAPHICS mode space has been allocated.
>
> WHAT KIND OF DRIVES CAN I USE?
> Tape Drives
> Tape Drives for the VIC, 64 and 128 work well on the PET. In fact
> you can
> hook up 2 tape drives on the PET (the second connector is inside
> the
> case,
> on the edge of the motherboard.) and can be accessed as device #2.
> Commodore Models:
> SANYO - First drives, power supply section cut out and modified
> for
> PET datasette cable/plug.
> C2N - Box look, black or cream colored case.
> 1530 - Rounded low-profile, counter & 'save' indicator light.
> Commodore IEEE-488 5.25" models
> 2020 - (first drive design, bugs may be present)
> 2040 - Updated ROMS, resembles a 1541 format & readbable on
> 1541/71s
> 4040 - Read/Write compatible with 1541/1571s.
> 2031 - Read/Write compatible with 1541/1571s.
> 8050 - Single Sided/Quad Density format, 512k per disk side.
> 8250 - Double Sided/Quad Density format, 1mb per disk
> SFD-1001 - Same as 8250, but single drive unit.
> Commodore IEEE-488 8"
> 8280 - 1 MB or 512k per Drive (little info on this one...)
> Commodore IEEE-488 Hard Disk Drives
> 9060 - Five Magabyte Hard Disk Unit
> 9090 - Seven Megabyte Hard Disk Unit
> 3rd party
> MSD-SD1 ** The MSD SD1&2 offer both IEEE-488 and
> MSD-SD2 ** VIC/64/128/+4 Serial bus interfaces.
> Modified 1541
> PRINTERS?
> Commodore Model IEEE-488 Printers
> 4022
> 4023
> 8023
> Some companies produced printers with IEEE-488 interface options
> (Epson was one)
>
> HOW CAN I GET PET PROGRAMS FROM DISK TO TAPE?
>
> You can just LOAD the program from tape and and SAVE them to disk
> one
> after
> another, of course, if you are using a VIC/64/128, etc. the loading
> address
> will get messed up. Fortunately there is a wonderful fily copy
> utility
> available for PET (4.0), VIC, and Commodore 64/128, called
> 'Unicopy'.
> Unicopy (written by the famous Commodore enthusiast, Jim
> Butterfield)
> allows
> you to copy from disk directly to tape. This of course preserves
> the
> loading
> address and makes things mauch easier. (also it performs multiple
> file copies
> instead of just one program at a time).
>
> HOW CAN I GET PET TAPE PROGRAMS TO DISK?
>
> Again you can do LOAD and SAVE as I mentioned or use a handy little
> utility I
> had discovered for the 64. This program will automatically LOAD
> each
> file off
> of tape and subsequently SAVE it to disk and continue until you stop
> it (or a
> disk error occurs when it attempts to save a file with the same name
> as one
> already on disk, disk full, or end of tape.
>
> HOW DO I HEAR/PLAY SOUND ON MY PET?
>
> Like many other microcomputers of the time the PET was not
> originally
> designed
> to produce sound. A few methods of sound generation have been
> developed but
> the most popular employs the use of parallel user port pin M which
> generates....
> The latest 4000/8000 (large screen PET) motherboards have a built-in
> piezo
> speaker and also have a bell sound accessible with a print: chr$(7)
>
> Sound Interface Diagrams here...
>
> WHAT ARE THE BASIC COMMANDS FOR MY PET?
> For the most part the BASIC on the 64 is identical to the upgrade
> ROM
> PETs and
> it only varys by a few commands and features between original and
> 4.0
> ROMs.
> On the other hand the 'memory map', the locations you POKE numbers
> into, vary
> quite a bit between ROM revisions. Memory Maps are available for
> all
> the
> versions...
>
> HOW DO I ACCESS THE PET's M/L MONITOR?
>
> The 'timy machine language monitor' (known as TIM to some) is
> available on all
> PETs but the original ROM version. TIM is invoked by executing a
> BRK
> instruction by SYSing any memory location containing a zero (0),
> most
> people
> enter SYS 1024, as it almost always contains a 0.
>
> WHAT ARE THE COMMANDS FOR THE M/L MONITOR?
> G - Execute M/L: G programaddress (i.e. G 033C)
> L - Load: L "filename",dev (i.e. L "PACMAN",08)
> S - Save: S "filename",dev,startaddress,endaddress
> (i.e. S "FLASH ATTACK",02,027A,2000)
> R - Display Processor Registers
> X - Exit Tiny Mon
> M - Memory Display: M startaddress endaddress (i.e. M 0400 04A0)
> : - Modify Memory (supplied in memory dumps using the M command)
> ; - Modify Processor Registers (supplied in the processor register,
> P
> command)
>
> CAN I GET A BETTER M/L MONITOR FOR MY PET?
>
> Yes, there are two that I know of that are readily avaiable. The
> most
> popular
> (and universal among the Commodore 8-bits) is Jim Butterfield's
> Supermon.
> There are versions available for all ROM revisions including
> original
> ROM PETS
> and offer a mini Assembler and Disassembler among other useful
> memory/ML
> commands. The other, similar to Supermon is called Extramon. There
> are other
> versions many of wich are commercial but I have little information
> on
> them.
>
>
> I HAVE A PROGRAM THAT CAN USE JOYSTICKS, WHERE CAN I GET/MAKE THEM?
>
> The PET was not initially designed for joysticks but a determined
> user
> had
> devised a dual-joystick interface employing the parallel port. This
> interface
> allows you to plug in standard Atari/Commodore compatible
> joysticks....
>
> Interface Diagram Here
>
> HOW COME MY PET CAN'T READ A TAPE FROM MY PLUS/4 OR COMMODORE 16 OR
> VISA-VERSA?
>
> You are quite a collector, aren't you? When Commodore designed the
> Plus/4 and
> Commodore 16 they broke alot of standards they had previously
> established for
> their 8-bits (and fortunately went back to in the C128); besides the
> plug
> designs, they changed the sound-frequency of the signals used to
> record on
> tape. Though the the format is identical to the PET and the other
> 8-bits,
> the sound is only readable on the Plus/4 and Commodore 16. My
> sggestion would
> be to record the program on disk (1541) and then read it on a 4040
> or
> 2031, or
> copy them from the 1541 to tape using a 64 or 128.
>
> WHAT IS THE 'KILLER POKE' AND SHOULD I WORRY ABOUT IT?
>
> This is THE POKE of computer lore, the command that WILL physically
> break a
> computer! Of course other commands and methods are known that can
> potentially cause damage (usually to disks, hard drives or other
> mechanical
> units), but this is the most notable mainly because it was a command
> somewhat
> commonly used and it affects solid-state circuitry.
>
> History of 'the killer poke'
> When the first PETs (small 9" screen) models came out, the display
> wasnt all
> that fast. It wasn't too long before someone learned they could
> impove the
> character printing speed via a poke to location 59458; which would
> set
> the
> video controller into a faster mode. It was a noticible improvement
> of speed
> on programs using PRINT often, it was kind of like a free upgrade.
> It
> was
> mentioned in a few publications and used in many programs that
> relied
> on
> printing to the screen. I had learned of the poke through Cursor
> Magazine,
> a monthly tape-based publication. They printed the command in one
> of
> the
> 'newsletter' flyers included with an issue which you could insert
> into
> their
> game "joust" to make it play faster.
>
> Later on, when Commodore released the larger display (14") PETs,
> they
> had
>  improved display speed which made that POKE unnecessary. An
> unfortunate side
> effect was that the POKE to 59458 still caused the already faster
> controller
> to run even faster, in fact too-fast, which could result in damaging
> the PETs
> video curcuitry when left running. I discovered it by accident
> after
> our
> school received some large-screen 4016s. When active, the screen
> starts to
> warp after about the third line and the display stops around the
> fifth, the
> keyboard is also unresponsive. When a PET is in this mode, the only
> solution
> is to turn it off, quickly! Fortunately none of the school's PETs
> were
> damaged due to this POKE. Later Cursor Magazine published a 'fix'
> that would
> allow older PETs to use the poke and keep the large-screen units
> from
> frying.
> Unfortunately there are still many programs that do not have this
> fix.
>
> Prevention
> Make sure to check BASIC programs (especially games) when running
> them
> on a
> large-screen PET and be ready with the power switch when you first
> run
> it.
> I have usually found the 'killer poke' statement looking like this:
>
> POKE 59458,PEEK(59458)OR 32.
>
> The fix is to put an if-then conditional to determine if the poke is
> needed
> for the PET running the program, here is the code:
>
> IF PEEK(50000) THEN POKE 59458,PEEK(59458)OR 32
>
> CAN I HOOK UP AN EXTERNAL MONITOR TO MY PET?
>
> With the help of the following circuit you can get a composite
> singnal
> from
> the user port...
>
> Insert Video Diagram here....
>
> WHAT ARE THE PINOUTS SO I CAN BUILD AN IEEE-488 CABLE FOR MY PET TO MY
> DRIVE.
>
> WHERE CAN I GET SOFTWARE FOR MY PET?
>
> WHERE CAN I GET CONNECTORS THAT FIT THE USER/IEEE-488 PORTS?
>
> IS THERE A MODEM AVAILABLE FOR MY PET?
>
> I know of only one company that prosuced a modem and IEEE-488
> interface, the
> company is TNW, and I think they also built the Commoodre 8010, an
> acoustic
> modem for the PET. I have some notes on using the device but have
> never
> actually seen one.
>
> Larry Anderson
>
> --
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
> Visit our web page at: http://www.goldrush.com/~foxnhare/
> Call our BBS (Silicon Realms BBS 300-2400 baud) at: (209) 754-1363
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
>
Received on Tue Jul 22 1997 - 17:22:44 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:30:27 BST