PET 2001

From C64-Wiki
Jump to navigationJump to 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
OS: BASIC 1.0
Info: PET 2001 alias CBM 2001 different names and designs.
Predecessor: KIM-1
Successor: CBM-II series

PET is an acronym of Personal Electronic Transactor. The PET was one of the first Commodore computers. It was sold fully assembled with an integrated monitor, keyboard, and cassette memory, making it a candidate for the title of "World's First Real Personal Computer."

The CBM PET[edit | edit source]

The PET prototype debuted at the Consumer Electronics Show CES in Las Vegas in January 1977. Its Processor was the ground-breaking MOS Technology 6502, developed in 1975. The production version of the PET made its humble first public appearance in the basement of the West Coast Computer Fair in San Francisco, costing USD800.

In 1978, "Computerwoche" magazine reported big crowds around the Commodore booth at the CeBit show in Hannover (Germany), where the PET 2001 was so popular that anybody wanting to see it had to use their elbows vigorously. The release price was a relatively high DEM2,900, but after one year it dropped below DEM2,000. Commodore's German branch sold at least 4,000 units.

Unfortunately, Philips had previously trademarked "PET", forcing Commodore to change the computer's name. From then on, they sold it under the CBM name (Commodore Business Machines). It went on to become a top seller in the Canadian and United States education markets. It was Commodore's first fully featured computer, and it formed the basis of their entire 8-bit product line.

Technical Details PET 2001[edit | edit source]

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 | edit source]

Only computers with the PET label on the front are actual PETs. They usually contain a 1977 circuit board. Today, these first machines are collector items, and they should only be powered on after careful maintenance, including a power supply test. Owners are also advised to check the old electrolytic capacitor near the transformer, which are known to fail as they age (replacement capacitors are still available for purchase).

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

Here is the typical BASIC 1.0 PET start screen:

*** COMMODORE BASIC ***
 7167 BYTES FREE

This BASIC version is known to contain bugs. The CBM-2 series is often called the PET-2, but this is incorrect. The PET label is found only on the first machines. The later CBM 2001 series had a reworked board from 1978 and a bug-fixed BASIC.

These BASIC 2.0 computers start with the following screen:

### COMMODORE BASIC ###
 7167 BYTES FREE

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 were often used for small tools, BASIC add-ons or software dongles.

With the newer 2001 series, the uncomfortable "chicklet" keyboard changed to a regular computer keyboard. The tape recorder was moved off the main unit and had to be connected externally.

The CBM 3001 series distinguishes itself only by the front label and the larger memory. Machines of the 3001 series often have the 2001 series type label on the rear.

Teacher's PET[edit | edit source]

North American schools who ordered two PETs between autumn 1979 and summer 1981 received a third PET free, donated by Commodore:[1]

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

This strategy, meant to give Commodore a competitive edge in education against their main business rival, Apple, wasn't successful, probably due to the lack of educational software! After 1982, Commodore manufactured the PET 64 for a short time. It was also known as the "Educator 64" and was merely a modified C64 in an old PET case!

Interfaces[edit | edit source]

Userport[edit | edit source]

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

Userport:

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2
  -|K|-|-|-|-|-|-|-|-|K|-|-
 ---E-----------------E-----
  -|Y|-|-|-|-|-|-|-|-|Y|-|-

   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.
D PA1
E PA2
F PA3
H PA4
J PA5
K PA6
L PA7
M CB2 Connection CB2 of 6522 VIA #1.
N GND Digital ground

[2]

Interface for internal and external tape recorder[edit | edit source]

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
 
   -|-|K|-|-|-|-
  -----E---------
   -|-|Y|-|-|-|-
 
    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.

IEEE-488[edit | edit source]

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
   -|-|K|-|-|-|-|-|-|K|-|-|-
  -----E-------------E-------
   -|-|Y|-|-|-|-|-|-|Y|-|-|-
  
    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 | edit source]

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 | edit source]

  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 | edit source]

  J4 and J9
 
  Side B are ground connections.
 
                   1111111111222222
          1234567890123456789012345
  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

[3]

Memory map[edit | edit source]

 .----------------------------------------------------------------------------------------------------------------.
 |            |                      |               |            |            |            |                     |
 |  $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.

I/O

$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.

DIY[edit | edit source]

CB2 Sound[edit | edit source]

   1 2 3 4 5 6 7 8 9 1 1 1
                     0 1 2
  -|K|-|-|-|-|-|-|-|-|K|-|-
 ---E-----------------E-----
  -|Y|-|-|-|-|-|-|-|-|Y|-|-

   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
  -|K|-|-|-|-|-|-|-|-|K|-|-
 ---E-----------------E-----
  -|Y|-|-|-|-|-|-|-|-|Y|-|-

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

                           22 Ohm resistor

Joysticks[edit | edit source]

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
  -|K|-|-|-|-|-|-|-|-|K|-|-
 ---E-----------------E-----
  -|Y|-|-|-|-|-|-|-|-|Y|-|-

   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
  -|K|-|-|-|-|-|-|-|-|K|-|-
 ---E-----------------E-----
  -|Y|-|-|-|-|-|-|-|-|Y|-|-

   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 | edit source]

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

  A-1-9
  B-2-10
  C-3
  D-4
  E-5
  F-6
  H-7
  J-8
For Userport pinout look above.

Userport Diagnostic Connector

  2-B
  3-C
  4-D
  5-E-11
  6-7-8
  9-K
  10-L 

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.

Software[edit | edit source]

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.

References[edit | edit source]

  1. Portcommodore.com: "PET/CBM FAQ - MODELS OF THE PET/CBM"
  2. Updated from schematic at Zimmers.net; 08. Jan. 2016
  3. Sources: Magazine: Elektronik 8/1980, CBM 600/700 Manual, CBM 2001/3001 Manual Language German

Links[edit | edit source]

German[edit | edit source]

International[edit | edit source]