Teaching kids about computers...

Ray Arachelian ray at arachelian.com
Sat Nov 24 21:39:20 CST 2007

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
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. :-)

More information about the cctalk mailing list