Article 53731 of comp.sys.cbm:
Xref: undergrad.math.uwaterloo.ca comp.sys.cbm:53731
Newsgroups: comp.sys.cbm
Path: undergrad.math.uwaterloo.ca!watserv3.uwaterloo.ca!novice.uwaterloo.ca!dfevans
From: dfevans@bbcr.uwaterloo.ca (David Evans)
Subject: As Promised: The P128: A First Look, A Last Look
Sender: news@novice.uwaterloo.ca (Mr. News)
Message-ID: <Dr63r7.25D@novice.uwaterloo.ca>
Date: Fri, 10 May 1996 02:18:43 GMT
Nntp-Posting-Host: bcr.uwaterloo.ca
Organization: University of Waterloo

  As promised, here's the above-titles article from The Transactor,
Volume 4 Issue 4 (I was wrong when I said it was from Issue 2.)  The
date in the lower- right corner of the magazine says July 1983, but I
trust that about as much as other such dates in The T.
  The article is by Fred Hambrecht, Chattanooga, TN, copied without
permission.  I've altered the formatting a little, but otherwise it's
pretty much as in the magazine, complete with most of the little
errors that made The T. such a down-to-earth magazine.
  Remember, the "I" in this article isn't me, although I wish it were.
So don't go offering me $200 for "my" P128 or anything like that.
:-)  Although, I am looking for a B-series machine...

The P128: A First Look, A Last Look

Christmas in March!  That's the way I felt unpacking my new Commodore
B128[sic] computer.  A quick check of the reference manual .
. . Whoops!  No manual.  Oh well, it's more fun without the book,
besides I know Commodore inside and out, what could be different?  Plug
it in, turn it on, and the monitor (yes, monitor---no RF modulator in
this one) comes up with the Commodore Basic message.  They even redid
the colour combination, white background with blue characters.

Let's push a few keys and see what happens.  Push F1 on the top left
and it printed "PRINT#".  Each of the other keys has such goodies as
"DIRECTORY", "DLOAD", "LIST", etc.  Hm!  Have to spend more time
looking at that later.  The keyboard has a really nice layour, with a
typewriter style return key in the main array.  The numeric pad
contains a separate enter key, along with a "?" key.  In addition, a
CE key is provided to clear entries to the last arithmetic operator
entered or to the beginning of the line.  A single as well as a double
ZERO key should make any "bean counter" happy.  The feel of the
keyboard, in my opinion, is the best on the market today.  Photograph
number one shows the general layout.  [Note: There's no Photo 1 in the
article.  :-(]

The back of the unit has a few more surprises: two joystick ports,
IEEE-488 interface, User Port, anda real honest-to-goodness RS-232
connector.

Enough of the inside, let's look to see if the Basic is the same.  We
entered a program in Basic to look at [the] parse table in ROM and
found a few more surprises.  First of all, the Basic appears to be
standard 4.0 with the following additions:

BANK        Sets the bank number (16 banks of 64K) for peeks, pokes,
            and bank save/load commands.

BLOAD/BSAVE    Used to load and save binary files from memory.  I can't
            be sure but it appears that you can specify high and low
            addresses within the bank.

DISPOSE        Used with the TRAP command to purge unwanted NEXT and
            RETURNs.

IF..THEN..    A new one for Commodore.
    ELSE

INSTR        I have not been able to figure this one out.

PRINT USING    Both PRINT and PRINT# are supported.

PUDEF        This redefines the sumbols used in PRINT USING.

RESUME        Used with TRAP to RESUME after error handling.

TRAP        Uses error supplied error routines in place of the
            Commodore routines.

New Variables:

ERR$        Reserved string for error messages.

EL            Reserved variable for error line.

ER            Reserved for error number.

TI$            Returns time in the format HHMMSSJ where J is a 1/10th of
            a second.  TI no longer exists!

KEY            Allows programming of the 20 function keys and takes the
            form KEY n, "expression" where n is the key number and
            "expression" is the string assigned to that key.  KEY by
            itself will display a list of the current function key
            definitions.

The screen now resides (in bank 15) at location 53248 to 54247
followed by the colour memory at locations 54272 to 55271.  The screen
has many of the features of the 8032.  I have discovered Escape
sequences that set windowing, insert line, delete line, erase to
end/beginning of line, etc.  Now I wish I had the manual.

Next, spend teo hours on the phone calling the folks at Commodore.  No
one knows about the P128!  Inside sources said the unit had been
engineered "overseas" and they were as much in the dark as I was.
Manuals are supposed to be available in the next month or so, and this
uniot was a dealer demo only.  The unit was not supposed to be sold
prior to FCC and UL approval.

I can't stand it any longer, get out the screwdriver and tear it
apart.  When the cover was removed, it revealed prototype ROMs.  As can
be seen in the photo [sorry...I'll try to scan it it], 28 pin ROMs have
been *jerry rigged* on to 24 pin sockets.  Several nice features . . .
the power supply is a switching regulator type made by someone other
than COmmodore and is easily removed for service.  The internal 128K of
ROM [do they mean RAM?] is located in the lower left and upper right.
note the spaces for socketing an aditional 128K already esist.  Wonder
if they plan to drill holes in the board ala the old 16K pet?  (Shh)

The processor os a 6509, functionally the same as the 6510 used in the
Commodore 64, but with an additional bank select register that allows
for the 16 banks of 64K.  The addressing indicates the operating
system, SID chip, I/O, etc. all reside in bank $F (15) and the
internal memory is in banks 0, 1, and 2.  Only bank 0 is used in an
unexpanded 128.  A feature that appears to exist is a Co-Processor
function.  Interrupt processor granted and refused signals leads me to
think that we will probably see a multi-user system in the future.

Photo 2 shows the internal layour of my machine, and in spite of the
fact that this is a prototype, a lack of wire jumpers, etc., indicates
the hardware is pretty solid, and the one remaining "cat to skin" is
the firmware.  The model I am playing with has no tape routines.  In
fact, a "LOAD" will result with "DEVICE NOT PRESENT ERROR".  Speaking
of error messages, a new one exists.  If you overflow the subroutine
stack, the message is "OUT OF STACK" rather than the old ambiguous
"OUT OF MEMORY".

(Note: to Jim Butterfield, I stayed awake nights to try, just once, to
generate a memory map before seeing yours in Compute!)

The memory may be viewed as 16 pages (0-15) of 64K each.  Page 15 of
$F is fixed in hardware as the operating system and hardware layed out
as in Figure 1 [see the end].

A Further breakdown of $FD800 to $FE000 will let you see that the only
difference between the P and the B is probably jumpers or land cuts.
I suspect that changing a P128 to a B256 is no harder than changing a
Fat 40 to an 8032.  The B addresses appear in Figure 2 [again, at the
end.]

A few general comments.  The P128 should be a great machine.  It looks
smart, especially next to the new low profile disk drives.  I am
presently running this one with an 8250LP drive and the 8300P printer
and am really pleased with it.  I have been able to load most of the
programs I have in Basic, and am in the process of converting some
machine language programs.  The only negative comment I have is that
it is slower than the 64 and previous generation PET/CBMs.  I believe
the reason is that all 20 function keys appear to be processed by
CHRGET in the run mode.  I will reserve judgement on this until I see
a final ROM set.  Aside from that, it's the neatest Commodore yet!

Editor's Note [not me--Karl, likely]

First off, most of us, and Mr. Hambrecht, probably know by now that he
has one of the few P128s ever released!  This is the machine that was
to have 40 column screen with colour, plus VIC II graphics and SID
sound---like an *inflated* Commodore 64.  But this project has been
locked in the far depths of the Commodore dungeon.  Mr. Hambrecht, you
are now the proud owner, or what some may consider, a collectors'
item!

I couldn't help publishing the article, however.  After all, the B
machine is identical to the P in all aspects except screen features.
For example, you'll notice that the P has 1K set aside for screen RAM
(60 cols by 25 lines) and another 1K for the corresponding colour RAM.
The B has no colour, but 80 columns---therefore, 2K for screen RAM.
The P uses the VIC II chip for video activity whereas the B uses the
6545 CRT Controller like the 8032.  This explains why the character
ROM is addressable in the P and not in the B.  Aside from these, the
two machines differ very little.

You may be asking, "So why did COmmodore cancel the P series?  It
seems like it woudl have been quite successful."  Once again, I
believe the best answer would come from the Commodore marketing mill.
The market for the P is not as well defined as the rest of COmmodore's
line and with the price of the 64 dropping so low, the P becomes
somewhat less attractive to the average customer.  Fear not, though.
The competition in the micro industry will see manufacturers
continually releasing new machines.  A successor to the 64 might not
be in Commodore's immediate future, but you can bet it will happen.

Look for Jum Butterfield's B Series Memory Maps next issue!

Figure 1 [$F2000-$FFFFF of the P128]

$FFFFF
        Kernal ROM
$FE000
        Port 2 6525
$FDF00
        Port 1 6525
$FDE00
        ACIA 6551
$FDD00
        CIA 6526
$FDC00
        Co Processor Ext. Port
$FDB00
        SID 6581
$FDA00
        Disk Port (internal)
$FD900
        VIC II 6567
$FD800
        Colour Memory 1K
$FD400
        Screen RAM 1K
$FD000
        Character ROM 4K
$FC000
        Basic ROM Hi
$FA000
        Basic ROM Lo
$F8000
        External ROM
$F4000
        Cardridge Slot
$F2000

Figure 2 [$FC000-$FEFFF of the B128]

$FEFFF
        6525 Keyboard
$FDF00
        6525 (IEEE-488)
$FDE00
        6551 (RS-232 Port)
$FDD00
        6526 (IEEE & User Port)
$FDC00
        Ext. Processor
$FDB00
        SID 6581
$FDA00
        Disk Units (internal)
$FD900
        CRT Controller 6545
$FD800
        Screen RAM 2K
$FD000
        Unused
$FC000

-- 
David Evans              (NeXTMail OK)              dfevans@bbcr.uwaterloo.ca
Computer/Synth Junkie                      http://bbcr.uwaterloo.ca/~dfevans/
University of Waterloo         "Default is the value selected by the composer
Ontario, Canada           overridden by your command." - Roland TR-707 Manual


