Ethan Dicks wrote:
On Sat, Nov 24, 2007 at 06:45:32PM -0500, Ray
Arachelian wrote:
Chris M wrote:
> The C64 is a great machine, but you're not going to
> learn many *deep* details about the hardware
>
I built plenty of add-on devices for the User Port and the joystick
ports when I was a teenager (I got my hands on my first C-64 when I was
15, and by 16, I owned one). How deep do you mean here? It's a little
tougher to find a cartridge-port proto board than it used to be, so
building your own SCSI or IDE or Ethernet interface from scratch
might be somewhat advanced, but hanging LEDs or switches off of one
of the other ports is easy enough, and easy enough to control from
BASIC.
I didn't write the above sentence that you've replied to here, so
I'll
let Chris answer that. :-)
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. 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.
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.
Then again, if
you can master the peeks and pokes, you're better off
writing 6502 code. I'm really partial to the C128 which had a built in
machine language monitor.
As did BASIC 2 and BASIC 4 PETs (just not the original chicklet-keyboard
PET - on that one, you had to load the monitor from tape).
Well, don't confuse BASIC with the monitor. :-) Not having to load the
Monitor from tape made the C128 very useful as previously mentioned for
cracking C64 software. You can't quite load a monitor into memory and
not wipe a chunk of memory. 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.
The ML monitor on PETs was nice to have - better IMO
than a blue "READY"
screen - but anyone who was serious about it gave up one of their two or
three precious expansion ROM sockets for a better monitor. ISTR SuperMon
was pretty good. I forget what I have in my 2001-32N, but one nice feature
is that it would assemble and disassemble on the fly - scroll up or down
to rip though memory.
Yup, sounds like the same one used in the C128, or at least
the same
kind of thing.
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 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. I personally found it insanely
slow to code that way, so the monitor was a godsend for me...
I think the PET is a great teaching machine for kids,
but I admit that I'm
biased - the first machine I got to use, and the first machine I owned, was
a PET. Given the costs, decreasing availability, etc., of the PETs and PET
peripherals, I would probably recommend the C-64 in its place. There were
millions and millions of them made, they are still abundant and inexpensive,
and they have many of the same features that make the PET interesting, and
only lack a small number (like the built-in ML monitor).
If you desire a greater hardware angle than a packaged system provides, there
are a number of recent reimplementations of classic designs - I've built the
Elf 2000, along with many of its peripherals, and I have a MicroKIM here,
and am gathering parts.
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.
For learning BASIC though, you're better off with a nicer one like in
the C128, or an expanded one for the C64.
Of course there are always emulators and such if a real machine can't be
found, but it's just not the same. :-)