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@goldrush.com]
Reply To: classiccmp(a)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
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-