On Sat, Nov 24, 2007 at 10:39:20PM -0500, Ray Arachelian wrote:
Ethan Dicks wrote:
C64 BASIC
is pretty bad. PET BASIC or better yet, C128 Basic were a lot
better. I suppose with the Simon's Basic cart, C64 BASIC was quite nice.
How is C-64 BASIC bad compared to PET BASIC? They are virtually
identical. Do you mean because the PET lacks a SID chip and sprites
and bitmapped graphics, the BASIC is "better"?
C64 BASIC is V2.0. There are no disk commands at all. You need to use
OPEN and LOAD ,8,1. There's no CATALOG command, etc. PET - at least
the 4032's I used, had BASIC 4.0.
Ah... now I get you - my early experience was entirely on BASIC 1.0
and BASIC 2.0 machines. I didn't touch a BASIC 4.0 machine until years
after I got a C-64 (when I could get them from surplus for $10-$15).
Allow me to amend my statement that BASIC 2.0 on the PET and on the C-64
are virtually identical.
With the exception of the destructive (to BASIC memory) load of the
disk catalog (LOAD "$",8) and the fact that you couldn't query the
error channel with DS$, etc., except by writing a program (INPUT #15,$A
doesn't work on the command line), I didn't find that not having "DOS"
commands in ROM was that bad. I suppose the argument could be made that
it was what I was used to, but on other 8-bit micros of the time, you
_did_ have CATALOG or DIR or something, and you _did_ see error messages
from the disk without having to explicitly query the
device, so I did
have plenty of other examples of how it could be done.
Of course, back in the BASIC 2.0 PET days, most folks who could afford
to have disk drives (at $2200 for a C= 4040), also tended to load the
old "DOS Wedge" program that added a series of disk commands preceded
by either a ">" or "@". I had the DOS Wedge for the C-64 early on,
but
it came on a Commodore Macro Assembler diskette - not something anyone
else I know had in 1982.
Note that I commented only on the
BASIC, not the SID, not the sprites, not the bitmapped graphics.
Obviously a machine with bitmapped graphics, sprites, color, and sounds
is going to be a lot more interesting.
Fair enough. I just made a different assumption about what PET ROMs
you were describing.
The C128 BASIC's, V7.0 I believe had commands for
things like graphics
and sounds. The C64 did not, and you could only get at those features
by poking. Some things on the PET, you had to poke - sound for
instance, but at least the disk access stuff had built in commands.
I did a lot of POKEing back in the PET days...
Worse yet, if you had to reset the machine
and then load a monitor, you would have lost the program you were trying
to crack.
I didn't bother cracking programs much in those days. I used the monitor
for software development. I extended my PET with three pushbuttons on the
side, wired to the memory expansion port - NMI (which I hardly ever used),
RESET (which I used a lot, learning ML)
I used that
monitor to write a ML Scott Adams
Adventure runtime in high school (i.e. - it's good enough for programs
larger than the cassette buffer, especially if you don't have a disk drive
and a proper symbolic assembler).
It's perfectly suited for writing code, and a lot less trouble than a
full assembler. Well, I suppose that depends on the type of
programmer. If you want nice neat clean code with subroutines, you'll
want the full symbolic assembler, otherwise the monitor was more than
enough since you could tweak code on the fly and mess with it and see
the results instantly (or crash the machine.) :-)
I agree that it depends... when I started, all I had was a copy of
"The PET Paper" with the opcodes, and another rag of the era with some
simple ML tips. I began coding in hex with TIM, the built-in monitor,
_then_ upgraded to the 4K ROM-based SuperMON. Pointing back to the
original topic, I would _not_ recommend teaching kids to code in hex
as a first step, unless you handed them an unexpanded Cosmac Elf - then
you have no choice. It can be a useful learning step, but I can't see
how most kids would find it easy to understand, nor anything short of
tedious.
I forget what the weird assembler was called, but it
used the C64's
BASIC editor - I think it just disabled the tokenizer, so you still had
to write code with line numbers, and use the same editing features of
basic (List command, cursor up, down, etc..) but you could use it for
assembly, then I think you had either another program to run to assemble
and yet another to link or a command.
Yep... that was the CBM Macro Assembler that I used from 1982 on... a tool
suite that you loaded into memory to disable the tokenizer and load/save
SEQ files, not PRG files, and a series of large and slow assembler and
linker applications to produce binaries. I have a disk image of it with
me, but I don't use it much anymore - these days, I use dasm or some other
cross assembler, then test with VICE (by loading my UNIX-compiled 6502
programs via device '11', an emulated disk).
I personally found it insanely
slow to code that way, so the monitor was a godsend for me...
When I did finally get my hands on a disk drive and the Macro Assembler,
at age 16, my productivity *soared*. I'd been keeping paper notes of where
subroutines went, and I no longer had to guess how large a subroutine would
be before coding it (and having to manually relocate code full of fixed
memory references).
Perhaps I learned more than was obvious from the experience, but once I
had a "real" assembler, I was able to write stuff that was far less
tortuous and much easier to follow. I still have at easy recall most of
the code I wrote 25 years ago. I think it's easy to see the difference.
I think the PET
is a great teaching machine for kids...
Yeah, it depends on what the kid's trying to do. For assembly, a C64
or a PET is perfectly fine. For hardware hacking there's a wide range of
stuff to do, and C64s are indeed more plentiful incase of mistakes, it's
easier to get replacement parts.. The User port on the 64's have nice
wide fingers, perfect for soldering a bunch of wires to interface to,
and the CIA's are pretty easy to do I/O on - much nicer than trying to
interface on a PC's parallel port, especially since it was bidirectional
and gave you full access to the machine.
The User Port on all the C= machines is more-or-less the same... 12x2 0.154"
edge connectors. There are minor variations (no 9VAC on the PET, IIRC),
but you to get 8 bits of I/O plus handshaking plus CB2 sound (I _think_ the
6526 still allows you to make sound the same way as we did on the PET with
a 6522, but nobody bothered).
For learning BASIC though, you're better off with
a nicer one like in
the C128, or an expanded one for the C64.
Certainly an easier time with working with diskettes.
Of course there are always emulators and such if a
real machine can't be
found, but it's just not the same. :-)
Of course - I use VICE all the time, but I still keep a stable full of
real CBM hardware since emulation isn't always perfect, and there's just
nothing to compare with running on the original box - you know it's not a
trick of brute-force modern speed - it's real.
-ethan
--
Ethan Dicks, A-333-S Current South Pole Weather at 25-Nov-2007 at 04:10 Z
South Pole Station
PSC 468 Box 400 Temp -33.2 F (-36.2 C) Windchill -33.2 F (-36.2 C)
APO AP 96598 Wind 0.0 kts Grid 150 Barometer 678.9 mb (10670 ft)
Ethan.Dicks at
usap.gov http://penguincentral.com/penguincentral.html