PET 2001

From C64-Wiki
(Redirected from Commodore PET)
Jump to: navigation, search
PET 2001
PET 2001
Type: Computer
Producer: Commodore
Price: 1977: USD800, DEM2,900 (ca. EUR1,450)
Released: 1977
Discontinued: 1986
Processor: MOS 6502 @ ca. 1 MHz
Memory: 4KByte or 8KByte, upgradable to 32KByte
Info: PET 2001 alias CBM 2001 different names and designs.
Predecessor: KIM-1
Successor: CBM-II series

PET spelled in full means Personal Electronic Transactor. It was one of the first Commodore computers.

The CBM PET[edit]

After the prototype had been presented in January 1977 at the Consumer Electronics Show CES in Las Vegas, in April the Commodore PET was presented to the public at the West Coast Computer Fair in San Francisco. Of all places, Commodore presented its new complete computer solution PET 2001 in the basement of the venue.

The "Personal Electronic Transactor" which was called "Peddles Ego Trip" in jest applies for being the first "real" Personal Computer of the world. For USD800 the customer got a completely assembled machine with monitor, keyboard and cassette memory. The Processor of the computer was the legendary MOS Technology 6502 which had been developed by MOS Technology in 1975.

In 1978 the "Computerwoche" magazine reported big crowds around the booth of Commodore at the CeBit show in Hannover (Germany). Those who wanted to see the new desktop computer had to use their elbows vigorously. The rather high price of 2,900 Deutsche Mark in the home computer market at that time went down below a threshold of DEM2,000 after one year.

Meanwhile Commodore's German branch could sell at least 4,000 units. Bad luck for Commodore: PHILIPS registered a trade mark for the PET letter combination and now the "pet" had to be renamed. From then on Commodore sold its computers under the well-established abbreviation CBM.

The Commodore PET became a top-seller in the Canadian and United States educational markets. It was Commodore's first full-featured computer, and formed the base for their entire 8-bit product line.

Technical Details PET 2001[edit]

CPU : MOS Technology 6502
Clock : 1MHz
RAM : 4 or 8KByte, up to 32KByte external
BASIC : 1.0
Interfaces : IEEE-488, tape recorder (2x), Userport, memory expansion
Keyboard : 73 small keys
Mass Storage: Internal tape recorder
Monitor : 9 inch green, b/w or rare blue (40 chars)

PET, CBM 2001, CBM 3001[edit]

Only the first computers with the PET label on the front are actual PETs. Usually a board from 1977 can be found in these computers. These first machines are considered collector items today and should only be turned on after careful maintenance.

Especially the power supply from 1977 cannot be considered safe today. It is recommended to at least check the old electrolytic capacitor near the transformer. These electrolytic capacitors can still be bought.

Defective RAM or ROM can be replaced with Nicholas Welte's universal 6502 RAM/ROM Expansion.

Typical for the PET is the BASIC 1.0 with following start screen:


This BASIC version has many bugs.

Quite often the whole range of CBM computers is associated with the name PET. Even the CBM-2 series is called PET-2 in some literature which in fact is not true. The PET label can only be found on the first machines. The later CBM 2001 series has a reworked board from 1978 and a bug fixed BASIC. These BASIC 2.0 computers start with the following screen:


BASIC V2 from 1979 can be identified by using the BASIC command: WAIT6502,n.
MICROSOFT! is printed n times on the screen. If n is set to 0, it is printed 256 times.

Until this board version it was possible to use 3 optional 4 KB ROMs at the memory addresses $9000-$9fff, $a000-$afff and $b000-$bfff. They often have been used for small tools, BASIC add-ons or software dongles.

With the newer 2001 series the uncomfortable "chicklet keyboard" was changed to a regular computer keyboard. The tape recorder had to go and could only be connected externally.

The CBM 3001 series distinguishes itself only by the front label and the better memory expansion. Machines of the 3001 series often have the 2001 series type label on the back side.

Teachers' PET[edit]

For northamericans schools donated Commodore between autumn 1979 until summer 1981 a third PET 2001-8N by ordering two PETs. The donated, third PET get this label:[1]

2001 Series -  TEACHERS' PET(TM)  - professional computer 	
           donated by C= commodore

This advertisment against the business rival Apple wasn't successful, because it exists not enough education software! Since 1982 Commodore produced for a short time the PET 64, also known as "Educator 64", which is only a modify C64 in a old PET case!



The connector is designated J2, interface has 12 positions (24 contact pads) with a 3.96mm (0.156") division between the centre of pads. Keying slots are placed between pads 1-2 and 10-11.

The upper row of pads (1..12) was intended for support service teams and retailers.

The pins on the bottom row (A..N) connect to a VIA, a 6522 chip from MOS-Technology, which is a "Versatile Interface Adapter".

The parallel interface in the userport is made up from eight programmable bidirectional I/O signals (PA0..PA7), an input handshake line (CA1) for these eight signal lines, which could also be used as a edge triggered input, and finally the CB2. CB2 has most functions that CA1 has, but can also be used as an I/O line for the shift register in the VIA. CB2 is often used as a sound output on early pets that have no internal speaker.

All the lines of the VIA that aren't connected to the userport are used by the computer for internal controls. The user should never use these signal lines.

The base address of the userport VIA 6522 is $E840 / 59456


   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2

   A B C D E F H J K L M N
Contact Signal Description
1 GND Digital ground
2 VIDEO Video output for external screens.
3 IEEE-SRQ Connection for testing the SRQ (Service Request).
4 IEEE-EOI Connection for testing the EOI (End Of Identity).
5 /DIAG If pulled low at power on, jumps to the diagnostic test routine.
6 #1 READ Used by the test routine for checking the read function of recorder #1.
7 WRITE Used by the test routine for checking the write function for both recorders.
8 #2 READ Used by the test routine for checking the read function of recorder #2.
9 HORZ. Horizontal synchronization signal. Is checked by the test routine.
10 VERT. Vertical synchronization signal (60 Hz). Is checked by the test routine.
11 GND Digital ground
12 GND Digital ground
A GND Digital ground
B CA1 Edge triggered connection of 6522 VIA #1 (position A5).
C PA0 PA0..PA7 can be programmed individually for input or output.
M CB2 Connection CB2 of 6522 VIA #1.
N GND Digital ground

Interface for internal and external tape recorder[edit]

This interface is an edge connector, designation J3 (internal J6). It has 6 positions and 12 contacts. Contact pad division is 0.156' (3.96mm). The coding slot is between contacts 2/B and 3/C.

    1 2 3 4 5 6
    A B C D E F
A-1     GND         Digital ground
B-2     +5V         Power supply for the tape recorder.
C-3     MOTOR       +6V (controlled from computer) for the motor of the tape recorder.
D-4     READ        Read signal from tape recorder.
E-5     WRITE       Write signal to tape recorder.
F-6     SENSE       Senses if one of the buttons REW, FFWD or PLAY is pressed on the recorder.
Note: On some early machines the pads 1 to 6 are not connected with A to F.


In 1975 the first information about the IEC-BUS was published. With time different names for the IEC-BUS were used. The reason is that the international IEC-BUS norm had not been declared at this time. Only the various, but nearly same, national norm proposals exists. So e.g. in Germany the common name was IEC-Bus which was based on the German norm DKE 66.22(2). In the USA the same norm had the name IEEE 488/75. Apart from this the name GPIB (Hewlett Packard / General Purpose Interface Bus) has been established. After adoption of the international norm the official paper received the name IEC 625-1 which was effective for all countries. Out of this follows the international approved name IEC-625-Bus with the shortcut < IEC-625 >.
Important at first is, that all these names mark the same bus system and that hardware with this identifier is compatible with each other. In the following text the identifier IEEE-488 will be used because this is more popular to use with the CBM computers. This bus system was originally developed for measure and control duties but was very soon used for computer mass memories as well. With the IEEE-488 bus disk drives and hard drives could also be controlled. CBM, just as Hewlett Packard, used these (relative) fast bus systems for external drives. The complete CBM office computer palette was equipped with the IEEE-488 bus. Further down the road home computers have used optional interfaces that have had some incompatibility with the used software because the kernal of the computer had to be adjusted or the cartridge version occupy certain memory space.

Pinout :
 (1)    Data Input/Output 1 = DIO1   1 *     *  13   Data Input/Output 5 = DIO5  (A)  
 (2)    Data Input/Output 2 = DIO2   2 *     *  14   Data Input/Output 6 = DIO6  (B)
 (3)    Data Input/Output 3 = DIO3   3 *  I  *  15   Data Input/Output 7 = DIO7  (C)
 (4)    Data Input/Output 4 = DIO4   4 *  E  *  16   Data Input/Output 8 = DIO8  (D)
 (5)    End of Identify      /EOI    5 *  E  *  17   REN Remote Enable           (E) 
 (6)    Data Valid           /DAV    6 *  E  *  18   GND 6                       (F) 
 (7)    Not Ready for Data  /NRFD    7 *     *  19   GND 7                       (H) 
 (8)    Not Data Accepted   /NDAC    8 *  4  *  20   GND 8                       (J) 
 (9)    Interface Clear      /IFC    9 *  8  *  21   GND 9                       (K) 
 (10)   Service Request      /SRQ   10 *  8  *  22   GND 10                      (L)
 (11)   Attention            /ATN   11 *     *  23   GND 11                      (M) 
 (12)   Shield                      12 *     *  24   Logic GND                   (N) 
  Connector J1 on the PET computer 
  Just like the userport and tape connector it has 0.156" spacing between
  contact centres (3.96mm), key slots are between contacts 2-3 and 9-10.
    1 2 3 4 5 6 7 8 9 1 1 1
                      0 1 2
    A B C D E F H J K L M N

  Note: E to N is GND on PET, same digital GND.

Mainboard connectors (CBM 2001)[edit]

These connector strips with a raster of 2.54 mm can be found on the mainboard.

    (J10)                    (J11)
  * * * * * * *            * * * * * * *
  1 2 3 4 5 6 7            1 2 3 4 5 6 7
  1  -5V unreg.            1 +9V unreg.
  2  -5V unreg.            2 Codierung
  3  Coding                3 Coding
  4  +12V unreg.           4 +9V unreg.
  5  +12V unreg.           5 Ground
  6  Ground                6 +9V unreg.
  7  Ground                7 Ground

Memory Expansion (PET 2001)[edit]

  All upper connectors are digital GND. 

   2. A0                        42. NS6
   4. A1                        44. NS7
   6. A2                        46. NS9  
   8. A3                        48. NSA
  10. A4                        50. NSB
  12. A5                        52. --
  14. A6                        54. Reset
  16. A7                        56. IRQ
  18. A8                        58. Clock (Phi2)
  20. A9                        60. R/W 
  22. A10                       62. --
  24. A11                       64. --
  26. --                        66. BD0 Data Bit  
  28. --                        68. BD1 
  30. --                        70. BD2  
  32. NS1 Address select        72. BD3  
  34. NS2                       74. BD4
  36. NS3                       76. BD5 
  38. NS4                       78. BD6
  40. NS5                       80. BD7

Memory Expansion (CBM 2001)[edit]

  J4 and J9
  Side B are ground connections.
  Side A  *************************
  Side B  *************************
  J4-1  GND
  J4-2  BD0   Buffered data line
  J4-3  BD1
  J4-4  BD2
  J4-5  BD3
  J4-6  BD4
  J4-7  BD5
  J4-8  BD6
  J4-9  BD7
  J4-10 SEL2  (2000-2FFF)
  J4-11 SEL3  (3000-3FFF)
  J4-12 SEL4  (4000-4FFF)
  J4-13 SEL5  (5000-5FFF)
  J4-14 SEL6  (6000-6FFF)
  J4-15 SEL7  (7000-7FFF)
  J4-16 SEL8  (8000-8FFF)
  J4-17 SEL9  (9000-9FFF)
  J4-18 SELA  (A000-AFFF)
  J4-19 SELB  (B000-BFFF)
  J4-20 RAS
  J4-21 CAS
  J4-22 RES   Power-on Reset
  J4-23 RDY   Ready line of the 6502
  J4-24 NMI
  J4-25 GND
  J9-1  GND
  J9-2  BA0   Buffered address bit A0 to A15
  J9-3  BA1
  J9-4  BA2
  J9-5  BA3
  J9-6  BA4
  J9-7  BA5
  J9-8  BA6
  J9-9  BA7
  J9-10 BA8
  J9-11 BA9
  J9-12 BA10
  J9-13 BA11
  J9-14 BA12
  J9-15 BA13
  J9-16 BA14
  J9-17 BA15
  J9-18 SYNC
  J9-19 IRQ   Interrupt Request Line of the 6502
  J9-20 --
  J9-21 B2    Clock
  J9-22 R/W
  J9-23 R/W
  J9-24 DMA
  J9-25 GND


Memory map[edit]

 |            |                      |               |            |            |            |                     |
 |  $0-$03FF  |     $0400-($7FFF)    | $8000-$8FFF   | $9000-9FFF | $A000-AFFF | $B000-BFFF |     $C000-$FFFF     |
 |            |                      |               |            |            |            | I/O $E800-EFFF      |
    Zeropage       BASIC memory        Video-RAM         ROM          ROM           ROM        BASIC,Kernel,I/O

The BASIC memory varied depending on development. The 1kB video memory is mirrored four times in the area $8000-$8FFF.


$E800-0F free
   10-1F PIA 1, 4 x
   20-2F PIA 2, 4 x
   40-4F VIA 

The rest of the area consists of mirrored addresses.


CB2 Sound[edit]

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2

   A B C D E F H J K L M N
                       | +-----------+=================. 
                   CB2 |  _____      | Audio Amplifier |

                           50-500 kOhm resistor

  Alternative version:

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2

   A B C D E F H J K L M N
                       | +-----------+================. 
                   CB2 |  ______     |  Piezo speaker |

                           22 Ohm resistor


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:

  Looking at back of user port:

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2

   A B C D E F H J K L M N
   8   1 2 3 4              J1
               1 2 3 4   8  J2

  Joystick pin diagram =>  5  [4] [3] [2] [1]
  looking at back of                    \ /
  male connector             9  [8]  7  [6]

The 'fire' button (pin 6) is added by connecting joystick port pins 1 & 2 to pin 6 with diodes, solder each diode from (already wired) pins 1 & 2 to pin 6 with the banded end (cathode) to pin 6. When fire is pressed the two opposite directions forward+backwards will be triggered at the same time, this construction prevents from using fire at the same time as forward or backward.

  6 ----|<|----- 1
  6 ----|<|----- 2

Some games list joystick connections as LEFT=PA0, RIGHT=PA1, FIRE=PA5, such choice of interface is not compatible with the hookup above. That would be pins C, D, J on the above interface which is forward, backward on joystick 1 and backwards on joystick 2...
Haven't found a complete schematic for single joystick but why not LEFT=PA0, RIGHT=PA1, FORWARD=PA2, BACKWARDS=PA3, FIRE=PA5? FORWARD, BACKWARD, LEFT, RIGHT, FIRE on PA0-PA4 would seem more logic.

  Looking at back of user port:

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2

   A B C D E F H J K L M N
   8   1 2       6

  DSUB9 pin numbers for the three functions above. 

Diagnostic plugs[edit]

Here's how to construct dongles to use with the diagnostic mode:

  Keyboard Connector Pinout

  A B C D E F H J 1 2 3 4 5 6 7 8 9 10  12

  Keyboard Diagnostic Connector

For Userport pinout look above.

Userport Diagnostic Connector


Usage: Plug in connectors, turn PET on, as soon as screen clears you'll see a block moving through all character positions from top left to bottom right then display all ROM characters on screen. @ABCDEFGH... etc then graphical characters and then all of them inverted as well and repeated again three more times. LED on the motherboard will lit up after finished test.


The first spreadsheet software VisiCalc was published in 1979.

Commodore published software on Datassette tape for the PET/CBM under the PETSOFT label. The following titles were published: BASIC BASIC, Merge, Band Pass, Graphics, PET BASIC Tutor, PASCAL, Fortran, ALGOL, Commodore BASIC Compiler. A monthly datassette magazine was published by PETSOFT from September 1979 until about June 1980. Other titles published by PETSOFT were the games: Backgammon, Super Alien, Invasion Orion.


  2. Updated from schematic at; 08. Jan. 2016
  3. Sources: Magazine: Elektronik 8/1980, CBM 600/700 Manual, CBM 2001/3001 Manual Language German