2009-01-01:

CPC 464

cpc464:easy:basic
Frankly speaking it's good to have a wife. Especially a wife that finds an old (but operational) Amstrad-Schneider CPC 464 (64k Colour Peronal Computer) at the bottom of the wardrobe. And so, a new toy came into my possession (great! another architecture to play with ;D), and most definitely few random future posts will be about it.

After starting this wonder (it has a green&green old-school monitor) it came to my mind (once again) that back in the old days, everything was simpler. And I'm not talking about idealizing the past, but about a simple  straightforward fact:

If You want to write a program on CPC 464 (or Atari 800 XL, or Commodore 64, etc) You have to turn it on.

And that's it. Now lets compare this fact with analogous fact related to the modern PC systems:

If You want to write a program on a PC, you have to turn it on, wait a minute or two as the OS loads, find a page with some interpreter/compiler which interests You (if You don't have it already), download and install it (checkout downloading MinGW compiler and You'll get the idea what I'm talking about), run an editor/IDE, download some tutorial which will tell you which one of the 100 buttons is "compile" / find a tutorial that will tell you how to compile or run the program, find a tutorial that will tell You what libraries/headers should be included/imported, etc.

Yeah, I'm over exaggerating. But then again, not that much, not that much at all. Todays computer systems are tens of thousand times more powerful then the CPC 464 mentioned earlier, but most of this power is used for making the life simpler for newbie users, or to put it in another way - to make life more miserable for newbie researchers/programmers. Well, is it an even trade?

OK, I didn't tag this post as 'rant', so this ends now ;D

By the way...
If you'd like to learn SSH in depth, in the second half of January'25 we're running a 6h course - you can find the details at hexarcana.ch/workshops/ssh-course


The readers who remember the old 8-bit times also remember the strange (in todays terms) editors for programming languages (I'm talking about BASIC). These "editors" resemble todays interpreter-shells more (like the python interpreter shell) - everything we entered was executed. To create a larger (then one line) program, one had to place a line number in front of the line. The next lines should have of course growing numbers. A common practice was to increase the number by 10 - this way there was always place to squeeze another line, just in case of course. There were no labels nor functions there, everything was described by line number. Let's look on an example:

10 REM this is a remark/comment
20 PRINT "hi world!"
30 GOTO 20


This powerful application could be executed by entering the RUN command. It could been erased by using NEW command, displayed (as in code listing) using LIST, or edited in a few different ways. The first way was to overwrite the line by entering the same line number with different commands. For example:

20 PRINT "hi cpc464!"
LIST
10 REM this is a remark/comment
20 PRINT "hi cpc464!"
30 GOTO 20


Another way was to enter EDIT line_number - this caused the currently entered line buffer to be filled with the given line, which could be of course changed/corrected. As You can see, things were a little different then they are now ;D. Btw, some time ago I've seen a BASIC interpreter for mobiles (called Mobile BASIC, shareware afair) - it's a fun app to play when traveling somewhere with a very slow train...

And now, some things I found interesting in the old CPC 464:
- There is a key COPY on the keyboard, it may be used to copy (surprise!) chars, in an interesting way. Mainly, this coping is similar to cloning in GIMP/PSP/PS/etc - You select a source spot, and then draw in some over place - the colors are taken from the source spot, and the source pointer moves just like the destination pointer. In CPC 464, You use the SHIFT key with arrows to select the source char, and then, You press COPY to copy one char to the main/destination cursor (both source and destination cursors move forward, so You can just hold COPY to copy a whole line). I found this surprisingly convenient
- To run a game from a cassette, type RUN " (and no, You cannot play without a joystick)
- I've found user manuals for CPC 464 in Spanish and French (no English), but I've found reading Spanish quite fun (it's good that I played a few years with Atari Basic, this way I don't have to abuse the dictionary to much)
- CPC 464 has a FDD 3' (yes! 3', not 3.5'). I've read in a few places that the controller of this FDD is the same as in standard 3.5', except for some fancy features like DMA - so using a simple adaptor with a few crossed cables allows You to connect 3' to a PC, or 3.5' to CPC (another think is the lack of DD disks on the marked ;p).
- CPC 464 is powered by a RISC Z80 processor (Zilog 80).
- From BASIC (Locomotive Basic 1.0 is used here) one can call any address in memory (where some machine code is placed) using a CALL command with a memory address.

And thats all for now.

Add a comment:

Nick:
URL (optional):
Math captcha: 10 ∗ 10 + 2 =