The 6509s: The P500, B128/256, B500, 600, 700, BX128/256 |
The B/P series of computers, sometimes known as the CBM-II series, were intended to be followups to Commodore's PET series (in the same way that the 264 series were to herald Commodore's new age of home computers). Their first idea, says Hans, was to develop two lines: the B500, as the "B"usiness model, and the P500, as the "P"rivate (?) model. All of the lines were to have from 64K to 256K of memory, in 64K increments (so four models per line), and were to be identical except for the graphics chip (the VIC-II in the P and the CRTC in the B). Three case designs were also initially considered: the LP "Low Profile" model, typewriter style and flat to be used with an external monitor; the HP "High Profile" model with an internal monitor and separated keyboard; and an unnamed third design based on the HP with an internal drive.
Later on, the 192K variant was dumped and Commodore came up with a uniform numbering scheme. Model numbers ending in 05 were to have 64K, model numbers ending in 10 to have 128K, and model numbers ending in 20 to have 256K. The P500, released as a prototype, gave way to the European 'B' 500s (the 256K 520 was never released); the LP series became the 600s, based on the B500s (though there is some evidence to propose that the 600s were actually descendants of the 700s; see that entry); and the HPs became the 700s, also based on the B500s. The internal drive variants of the HP also were released. Of the 05 models, only the 505 materialised (there is no 605 or 705), and only the 600s and higher have 20 models extant.
Eventually, the Grim Computer Reaper caught up. Bugs in the systems' BASIC ROMs were crippling and development was only in mid-stride before the units were pushed out to be manufactured. As the Commodore 64 slowly took off to its legendary status, Commodore dropped the ailing B/P series in favour of their PC compatible line and released the PC-10 instead. As for the PETs themselves, they actually outlasted their intended successors. Commodore continued to sell the SK models, including the 200/8032-SK, 8096-SK and 8296-D, for some time afterwards until sales made them no longer profitable.
Don't cry for the lost 6509s, though. At least one 6509 survived, the D128, though not in its original form, and eventually with a different microprocessor that while less finicky than its predecessor superficially preserved many of the banking and memory management ideas first introduced in the 6509. That machine became the 128.
aka P128, 'C' Series, PET-II (very, very early Commodore literature),
C128-40
Introduced Never officially.
Hardware 6509 CPU @
1MHz, 24K ROM; 128K RAM, expandable to max 256K internal and 704K external. May
have been intended to have two 5.25" floppies, detachable keyboard (like the
700s; apparently, this never came to fruition, as pictures of the few existing
P500s show them to be very similar to the 600s. IEEE-488 bus, RS232C, dual 8-bit
user port.
Graphics and Sound Identical to the 64; 6581 SID; 6569
VIC-II.
Eventual Fate Released as beta models with the 600/B128 but
never publicly rolled out. Replaced by the B500/600 series in Europe and the
B128 in the States.
Comments
The P500 is very similar to the D128
development model, but I'm pretty certain by now after some correspondence that
they are not the same computer.
Early Commodore circulars claim the P500 was to have 40K ROM, not 24; Z-80 and 8088 CPUs were to be available as "optional future processors". UCSD Pascal was also another language option. None materialized.
Because of the identical graphics and sound hardware, Commodore was planning to release versions of 64 software rewritten for the 500s. This never came to pass.
There is a drastic difference in availability of these machines on either side of the Atlantic. While European versions turn up from time to time (thus with PAL VIC-IIs), the USA version is vanishingly rare thanks to yet another interesting Commodore bungle. According to Larry Anderson, Commodore released several demo B128/600s and P500s to stores to entice consumers to buy the then-in-development units. These units were not fully operational, and had not been FCC certified in the United States, but dealers sold them anyway to the great ire of the FCC, which proceeded to threaten Commodore with penalties unless Commodore pulled all the units back (with the exception of the units sold or units the stores would not return). However, once Commodore discovered that the 64 was much more popular (not to mention cheaper to manufacture) than the P500, the P500 was pulled from rollout. Rumours persist that the P500s remaining were 'bulldozed' literally -- run over with a bulldozer to turn them into scrap plastic and silicon -- but nevertheless at least one American unit is confirmed to exist, and hopefully a couple of others. On the other hand, European P500s, while hardly common, are much easier to locate. Presumably Commodore learned its lesson from its run-in with the American FCC?
The P500's screen is superficially similar to the SX-64's; it starts up with a white screen and cyan border and the startup message *** commodore basic 128, v4.0 ***.
The same designer who created the sexy PET 200 look probably sculpted the P500's case as well (or perhaps the B500's).
Introduced April 1982
Hardware 6509 CPU @ 1MHz, 24K ROM;
128K RAM (in this unit; supposedly ranged from 64K to 256K) expandable to max
256K internal and 704K external. Rumoured intentions to have two 5.25" floppies,
detachable keyboard (like the 700s). Apparently, this never came to fruition, as
pictures of the few existing 510s show them to be very similar to the 600s.
IEEE-488 bus, RS232C, dual 8-bit user port.
Graphics and Sound 6581
SID; 6545 CRTC.
Eventual Fate The B500 was never released, though the
later 505 and 510 models were announced in Europe. The 256K 520 never emerged.
Not certain how many sold or when it was discontinued. Probably never released
in the States. Based on the use of the same part numbers in the B128/600 series,
according to Ullrich, the B500 is likely an early name or incarnation of the 600
design.
Comments
Unlike the P500, the B500 series were very similar to the
600/B128 series, but kept the joyport (annoyingly, there's no hole on the back
for this, though it is fully wired into the board). In all other facets, the
B500 series are largely identical with their descendants, the 600s. Based on the
fact that even the part numbers are the same, it's just about impossible to tell
if a bare motherboard is a B500 or 600 series (as I found out when I ended up
with one).
There are supposedly three in the 500 line: the 520 with 256K, the 505 with 64K and the 510 with 128K. The 520 was never announced and the 500 was never released, but some were actually manufactured (Ian Moote's model has a production serial number, which means there must have been at least one run). Hans' system above is probably a prototype like the US P500, further proof coming from the very old chip date codes and the ROMs, which are piggybacked ROM/EPROMs. Hans doubts that any 500 series systems were actually sold, but if any made it to the outside world, they are likely 510s.
Here's the video pinout for the 500s, if you're trying to make a cable (thanks Paul Foerster):
Pin Type
1 +12V (LK6) / +5V (LK7)
2 GND
3 Audio Out
4 Composite Video
5 Audio In
The B500s survive in the form of ...
Complete Views of the B128 (610) (.jpg, courtesy Ullrich von
Bassewitz)
Portrait
(13K) | Keyboard
Closeup (79K) | Mainboard
(91K) | Upperboard
(19K) | Rear
Ports (34K; 510 model backplate -- the 610 does not have joyports or
external user port by default)
Steve Gray's CBM-II
Page
Ullrich von
Bassewitz's 600 Series Page
.gif
Advertisement for the 600 (107K) -- see index page for
credits
.gif
Advertisement for the 600 and SuperPET (167K) -- see index page for
credits
ROMs
and Software for the B128/B256 (from FUnet)
aka B128 (U.S.), 600 (Europe), "CBM II Low Profile", CBM
128-80
Introduced June 1982
Hardware 6509A CPU @ 2MHz (600
and 700 at 1MHz, though), 40K ROM, 128K RAM (610/710) or 256K RAM
(620/630/720/730) and up to 704K external (banking scheme described below); 6551
ACIA with external RS232-C port (19.2 kbaud max). Commodore circulars also
mention IEEE-488 capability.
Graphics and Sound 80x25 6545 CRTC (8x8
character matrix), 6581 SID, 6525 TPI (triport interface) keyboard interface.
Eventual Fate Released. No known discontinuation date or sales
figures. Apparently fared poorly.
Comments
The B128/600 series are the direct inheritors of the B500,
and seem to be identical in all respects except name and memory configuration.
According to Don Judy, the B128 appeared in the movie Jewel of the Nile. I've only seen the movie once. Can anyone confirm?
The B128 appears to be referred to in early Commodore circulars, but interestingly as a variant of the 700s -- "version also to be available excluding integral disk and with external VDU option" (read: no internal dis kdrive and no monitor) -- and not as a model in its own right.
The American B128 is surmised to be identical to the Europen 610, mostly on guesses from volume produced.
See the 700 series for additional comments on both series.
aka B256 (U.S.), 700s (Europe), "CBM II High Profile", CBM
256-80
Introduced April 1982
Hardware Identical to the 600.
Integrated monitor, detachable keyboard, different character generator ROM (see
Graphics and Sound), two 5.25" disk drives. Optional 8088 chip (see
BX256).
Graphics and Sound Identical to the 600, except that character
graphics were generated off an 8x14 matrix. The Kernal, identical in the 600 and
700 series, determined which generator to use based on inputs hard-soldered on
the mainboard.
Eventual Fate Released. No known discontinuation date
or sales figures. Apparently fared poorly.
Comments
The US B256 is surmised to be a 720, guessed mostly from
volume produced.
Early Commodore circulars claimed maximum memory to be 896K for the 700s. A Z-80 was supposedly offered as an option (which jibes with the Z-80 card mention in the 730s; see that entry below). Optimistically, the monitor is billed as "Easy Read Green Phosphor" (oh, really?) and apparently can swivel and tilt.
Strange that a computer with little better than terminal-quality graphics would have SID chip in its line-up. There are some reports that some 700s may have had a 7.5MB hard disk (unconfirmed, could be a repackaged CBM D9090), but both the 600s and 700s could take internal disk drives. The address decoder has an unused output line mapping to $d900 marked as "disk units" in the 600s, and there is 4K in the machine's bank 15 (see What's A 6509, Anyway? for an explanation of 6509 banking) marked "Disk ROM".
The 600s and 700s both shared the same Kernal, as stated, but the BASIC versions differ; one version is in the 128K 610 and 710, and another in the 256K 620, 630, 720 and 730. Note that unlike the 710 and 720, the 700 is actually a low profile model (Jim Brain). Jim Brain also notes the existence of the 740 and 750, as well as a mythical 760 with three processors and 1MB RAM. (!)
Ullrich von Bassewitz notes that since the SID is really a 1MHz chip being clocked at 2MHz, it is impossible to read any values out of the few readable registers the SID has anyway.
While the 600s and 700s have cassette ports, the ROM has no code to drive them.
If you can't seem to get a video cable for your 600 or 700, Paul Foerster notes how to build your own. A very odd 7-pin beast. From the User's Guide:
Commodore 600/700
=================
Video Connector
Pin Type
1 Video
2 GND
3 Vertical Sync
4 GND
5 Horizontal Sync
6 Key
7 GND
aka BX700, CBMX 128-80 (128K version), CBMX
256-80
Introduced 1983
Hardware Identical to the 600 and 700
series, 8088 chip came standard, clocked at 4MHz (says "das Programmier Handbuch
für CBM 600/700"; the German service manual for the 600/700 says 5MHz). 128 and
256K RAM.
Graphics and Sound Identical to the 700s.
Eventual
Fate Released.
Comments
Because of the 8088, Commodore billed the BX series as
16-bit in the regular marketing balderdash they were swilling at the time. The
"X", reportedly standing for "extra processor", was simply an upgraded version
of the existing 600 and 700 computers; the 600 series computers with the extra
8088 received the BX moniker (BX128, BX256) and the 700 series computers, the
CBMX designation.
In the BXes, the 6509 was relegated to I/O, keyboard scanning and display maintenance through an unknown method. Reports state that this allows users to use CP/M-86 and MS-DOS (!) on these units. The 700s and 600s themselves could accept an 8088 card to become BXes, and Steve Gray has found a NorthWest Music ad that confirms the cards do exist (apparently released as part of an inventory dump during the mid 1980's). According to the ad, CP/M-86 ran quite well on these amphibious beasts. There is also supposedly a Z80 card that runs at 4.5MHz, but its only mention is in the German service manual for these units (Ullrich); a Transactor clipping alleges that the Z8001, the processor used in the CBM 900, was also offered.
Here's how it plays out in practice (thanks to Ullrich von Bassewitz and Andre Fachat for the explanation). The 6509 has 20 address lines (meaning up to 1MB memory access), with RAM in banks 1-4 (not 0-3 as you would think) and bank 15 being I/O and ROM. Using zero page indirect addressing, the 6509 puts the contents of the register at address $01 on the high 4 address lines to get at memory in other banks. The other internal register at address $00 determines from which 64K bank the processor executes out of. This register defaults to 15 on startup, implying that the system bank is 15, just like the 128. Of course, the 8502 definitely doesn't bankswitch this way; the 8502 uses its 6510-like internal I/O port and the MMU, while this process is entirely internal to the 6509.
Here's some sample code, based on an example by Andre:
; copy $c000-$c0ff from bank 1 to bank 2
lda #0
sta $fd
lda #192
sta $fe
; get byte from bank 1
ldy #0
lup ldx #1
stx $01
lda ($fd),y
; store in bank 2
ldx #2
stx $01
sta ($fd),y
iny
bne lup
This only works for LDA and STA. All
other zero page indirect addressing behaves like the normal 6502.
Memory management in the 6509 series does not make much sense. The default system bank has only about 1K free (though most users had an internal 4K expansion that mapped to the $C000-$CFFF space), which meant that programs had to reside in the other banks. Unfortunately, making these kinds of "far calls", to borrow the Intel-ism, was nightmarish because, unlike the 128's equally snarled banking scheme, there was no ROM at all in any of the other banks. Programs running in them had to have all their own routines for handling I/O and interrupts because the 6509 could not far-call back to the system bank to use the routines there.
The VIC-II in the P500 maps to its usual spot, $d000, but in bank 0. Video architecture, obviously, is slightly different between the P500 and the other CRTC-based 6509 systems; where the 2K 80-column screen memory of the 600s and up would normally be is the 1K 40-column screen matrix and the 1K colour memory, also in bank 0.
One would expect that banks 5-14 were where expanded RAM mapped, but Andre notes that the PLA only provides RAS/CAS for four banks (256K) total. Some other method would be required to get access to that memory, and that method is provided, according to Ullrich, in "Heute Schon Geused" (the newsletter for an obscure 610 users group in Germany). While the newsletter has since disappeared, one conceivable method to get the 6509s up to 1MB would be to replace the 4164 RAM chips with 41256s, and shift the PLA address lines up by two (i.e., A16 to A18 and A17 to A19).