I still have the real thing
Well, second generation - BBC Master, along with the classic Microvitec colour monitor.
If one of the tenets of retro computing is doing awesome things with not a lot of resources, then there are few better examples of the breed than the BBC Micro Bot - a Mastodon account that recently posted an image that looked for all the world like a raytraced scene. The BBC Micro Bot is an excellent service for anyone who …
I know this makes me a total nerd but the biggest regret in my life was binning my Beeb B (my old man got it for me not long after it came out) and an early Apple Mac that I'd picked up for £5 from Uni. The Mac booted and everything worked but I had zero use for it apart from keeping part of a shelf free from dust and the Beeb booted but the keyboard was kaput.
I also still had a big box of 5.25" floppies with all my Beeb games and had acquired the classic dual 40/80 Cumana disk drive from someone but had never tested it.
I was moving house and thought 'these are worth nothing, I'll never use them, why take them with me?'.
GRRRR!!!
I kept my vinyl along with my dad's old Technics SL7 linear turntable. That gets regular use! It turns out my mother in law was a HUGE prog fan and we are now caretakers of the collection.
Hobby electronics was in the doldrums in the late 2000s, no PIs, no arduino, and retro computing didn't seem to be a thing. So they got binned.....
Retro computing has definitely been a thing since at least the late 90s, perhaps longer. I already had a few beebs from when they were current, then started my own 'retro' collection with other 8 bit machines around 1997 or 1998 onwards, picking up old systems at car boot sales - and I certainly wasn't the only person doing that, I used to frequently bump into and chat with the same faces all collecting the the same sort of machines as me. On reflection, I suspect that perhaps the release of MAME (1997 ish?) was the trigger for myself and many others to start getting into it. I guess retro computing didn't start getting expensive until other people with different aims realised there was money to be made on eBay etc.
I sold my BBC B with FDD to a friend of my fathers when I needed money to buy a 286 to replace my Amstrad 1512. :-(
Bought a Mac SE/30 about 9 or 10 years ago which has sat in the loft since then, although I brought it down to my study a few weeks ago.
My son was very impressed with how small it is.
Need to extract the motherboard and get it recapped now but I need to get a long Torx T-15 to get the screws out.
On a giving things away the worst offender was my mother.
She gave away all my Scalextric, and more importantly all my Lego, including early Lego spaceship, when I went to Uni.
Came back to find the cupboard bare.
She just didn't understand the concept that while I wasn't necessarily doing anything with it at the time it was being kept for my son/daughter, grandkids etc. eventually.
Planning ahead a bit I know.
Hardly surprising. Tidying up after kids is like painting the Forth Bridge[1]
[1] Apparently they now have new paint which lasts longer, so they get a break[2]. Anyone know of anything with a never-ending paint job to replace it with?
[2] Unlike Kondo Mari and her hoover full of cereal.
If it's any consolation, the original Mac Classic would likely have stopped working by now. Dug mine out of the attic and it had suffered multiple catastrophic cap bursts and the lithium battery took a section of the motherboard and chassis with it to the grave.
Sad to consign such an iconic piece of gear to the landfill.
Unfortunately my Beeb and Amstrad 6128 were both sold off for about a tenner each back in the early 90s.
One of my favourite jobs as work-experience boy was repairing keyboards on Model Bs. They were individual keyswitches, so it was a case of open it up, take the board out, unsolder the old keyswitch, solder in the new one, test, send back to customer. Lovely job. It was usually the "Break" key that failed, so they came in as "Won't Boot" because the boot sequence used to be hold down "Shift", press "Break", release "Shift"
If you have a Raspberry Pi, you can download a RISC OS disk image, copy it onto a micro-SD card and boot your Pi from it.
Once in RiscOS, press F12 to bring up the CLI and type "BASIC". This runs full-screen, Mode 7 BBC BASIC directly on the Raspberry Pi's hardware (not emulation).
Like this: https://www.youtube.com/watch?v=Mu-s2EV8FrY&t=205s
Good info for booting the Pi directly into BBC BASIC: https://forums.raspberrypi.com/viewtopic.php?t=120673
I don't disagree that there were 'better' programming languages by 1981, but the beauty of BASIC was that it appeared to the layman that you could write programs in plain English and they would (mostly) just work. Although admittedly 'Syntax error at line 30' isn't the most informative of error messages!
I'm pretty sure there were other language ROMs you could plug in to your Beeb if you wanted C, Pascal, Forth etc, but I don't think they were aimed at 'beginner' programmers.
I think there were "better" languages by the end of the 60's but how many of them would fit into a ROM based interpreter and be useful with 16k of memory? Probably only Forth (Jupiter Ace), but you can't really call that plain English!
I guess Python is the new BASIC, but what's the minimum hardware for that?
I guess Python is the new BASIC, but what's the minimum hardware for that?
Casio and TI calculators have Python interpreters.
Micro Python runs on little microcontrollers like Raspberry Pico 2040 for a couple of quid.
BASIC of the time didn’t really have distinct function blocks but it did have conditional branching so was OK as a starter language.
DEF PROC = define procedure, DEF FN = define function, as with proper grown-up languages. Meant that beeb basic only needed GOTO / GOSUB for compatibly, or for students to upset the lecturers.
You're correct in saying that dollar variables in the beeb are strings, but variables without are all float numbers. You need to add a % to force an integer variable. So silly$ = "sillystring", e = 2.718281828 and int% = 127. All defined variables are stored in the RAM space between the program and the screen memory space.
The beeb also had A% to Z% as integers stored below user RAM (page 04xx iirc). These didn't get cleared when a program was run, so could be used to pass integer values between programs.
Never saw a C compiler for the BEEB (well, I may have seen a TinyC compiler, but I can't remember much about it). I have two Pascal systems and a Forth (but not Acornsoft Forth) in my BEEB, or at least as ROM images for Sideways RAM. Other languages I saw were Comal and Lisp, and I'm sure there were more.
There is a thriving retro community producing SD card interfaces and Sideways RAM and Flash addons, and even emulations of second processors using a Raspberry PI through the tube.
I was involved in using BBC Micros for education in higher education in the '80s, and had some really wonderful 'toys' which attached to the BBC micro. My favourite was the Bitstik with a 6502 second processor, which allowed you to play a mean game of Elite. The Bitstik put the throttle on the twist of the joystick, which made interesting things possible.
Comal and Lisp, and I'm sure there were more.
BCPL! I still have the Acornsoft BCPL and LISP books on my bookshelf (the Beeb B's are buried somewhere in the collection of "old stuff" - alongside the A3000 and RISCPC StrongARM [with 486 card]).
Not sure if the Solidisk Sideways RAM would still be functional (or more importantly whether the electrolytics on the motherboard/PSU have dried out and will explode if I power the machine up). Similarly the Cub monitor has not been tested for many years.
Fun times!
I'm not sure that there really was an alternative to Basic in the '80s, especially on microcomputers.
I really don't think that you really wanted to teach the likes of Fortran or Algol to anybody other than those who needed it to support other things, and if you ever used a compiler on an early PC without a hard disk, you will probably remember it being a frustrating process that often involved swapping floppies in and out of disk drives. Basic, often in ROM, was just so much more accessible.
Yes, there were better teaching languages around, but for a microcomputer aimed at low-ish spec. PCs for home and school, you needed something quick to learn without barriers to learn like compilers, but powerful enough to do 'interesting things' to engage merely curious people.
BBC Basic was better than most, although it could have done with WHILE/(W)END in addition to REPEAT/UNTIL, and also code blocks that you could condition more easily (both rectified in later versions of BBC Basic that weren't so limited by space in the interpreter). What it didn't really teach was efficient memory management and strict data typing in programs, but then a lot of languages intended for teaching glossed over these things to make programming more accessible.
I was involved in teaching Pascal to students at around the same time as the BBC became popular, and the kids really disliked it because of it's constraints which made writing pretty much anything in strict ISO Pascal a real pain in the neck. Strict Pascal was deliberately intended as a language that enforced good programming style at the expense of ease, which really turned off a bunch of students who were presented this as a first language to learn.
I think the best teaching language I saw was PL/C, which was a teaching compiler for a cut-down version of PL/1. It explained where a syntax error was and even attempted to fix it for you (sometimes with amusing results), which was useful in a batch environment with a turn around time of hours for jobs. This is what I learned on in 1978 when I went to Uni., but this was on mainframes, not microcomputers.
There was, and I used them on microcomputers before the BBC Mirco was released.
VB5 was hardly Basic except in keywords and Name, VB4 was nearly decent. Earlier BASICs were pointless. VB5 and VB6 were decent enough. VB.net was a C programmers design of Basic. At that point the C# made more sense (based on MS J++, their idea of Java).
Also Basic was Fortran like, not English like apart from keywords.
Option Explicit was the best thing MS added to VB, making it a 'grown up' language. Ironically the code emitted by VB was run on a kind of VM inspired by the p-code and p-machine of UCSD Pascal, which was on the Apple II.
Forth used reverse polish notation and a stack. HP Calculators had used RPN from the 1970s and it isn't hard for children to learn. Key words in Forth can be just as English like as in Basic. Almost all computer languages are English based.
Basic was designed as beginers cut down version of Fortran at Dartmouth College and Bill Gates and a friend ported it to 8080 and 6502 years before the BBC micro. Wilson would have been better occupied enhancing a decent programming language. Shame on BBC too.
ForTran 1956
Cobol 1960
BASIC 1963
Qubol (QUB) 1967? (Hoare?). The first language I learned in after school classes.
Algol 1968 (Wirth resigned)
Pascal 1970 (Wirth, Jensen and Hoare)
C 1972. Really a machine independent macro assembler originally so as to easily port UNIX.A dangerous language.
MS Basic 1975 as Altair BASIC of 8080. soon ported to the 6502. Launched MS. Basically a copy/port or Dartmouth BASIC done in a few days for prototype.
UCSD Pascal 1977. The P-system ran on 6502 and had a decent screen editor. I used it.
VII (maybe 1978 or 1979) Widely distributed, available on many early microcomputers. Numerous versions included Apple II, DEC PDP-11, Intel 8080, Zilog Z80 and MOS 6502 based machines, Motorola 68000 and the IBM PC (Version II on the PC was restricted to one 64K code segment and one 64K stack/heap data segment; Specially designed for teaching programming, whereas BASIC was purely designed to be a less resource hungry interpreted language to teach Fortran (which I also learned).
Was Basic for BBC penny-pinching or stupidity, or copying success of MS Basic (which bootstrapped Microsoft, not DOS for PCs)?
Mind, I made a lot of money supporting Apple II, RM380Z and BBC micro (stupid UK scatter gun computers for schools scheme).
Modula 1976 (Wirth)
Forth
Lisp 1960 (not very useful)
Prolog 1972 (better than Lisp, still not general purpose) I played with it on CP/M
Modula-2 1978 (Wirth) (I used it on CP/M 80, DOS and Windows)
Occam 1983 (Hoare)
C++ 1985 (I used it in 1987 before I was doing major C programming)
BASIC was the native language of most home micros. However, more importantly, it was also the Operating System and Command Line Interpreter / Shell of those same home micros. If you wanted to load a game written in assembly language from tape, you would perform those actions through the BASIC command line.
An interpreted language like BASIC is ideal for getting your head round programming concepts for the first time. You can break into programs, examine the contents of variables and GOTO whichever line you want. All without recompiling or running under a debug environment. And generally speaking, you can't crash the system if you don't POKE about or use a machine code CALL.
IF you decide to get into programming, and start to feel the limitations of BASIC, THEN you should GOTO a software catalogue for your machine and READ about what alternative languages are available. Only a tiny subset of micro users would have done this back in the day.
It would be interesting to know what percentage of 1980s home micro owners went on to have a career in software engineering. LESS interesting to know is how many Reg readers started off their career by being exposed to BASIC on a 1980s home micro. A bit like comparing how many heroin addicts started off smoking pot vs how many pot smokers 'graduated' to using heroin.
The BBC BASIC was actually one of the better dialects.
As the BASIC interpreter was also the shell for home machines in this era, as someone else mentioned, it wasn't totally inappropriate.
While programming in another language was possible on these type of machines (Logo on the BBC machines wasn't uncommon in schools), in reality this was seldom the case (limited amount of memory being one reason).
Once you'd reached the limits of BASIC, you learned machine code. In assembly you're basically doing GOTOs and GOSUBs.
There must be be thousands of us who first learnt programming in BASIC, meticulously typing in listings from magazines and books at first, who later had no problem whatsoever progressing to nicer languages and techniques as they became available.
It was the best.
"There must be be thousands of us who first learnt programming in BASIC,"
No, most learnt Basic. Same mistake as Universities now teaching C++ and Java or python programming languages instead of programming.
Also why several generations of C++ users are really writing C programs. They learned a language, not how to program. Difference between learning English or French at school and learning how to write a novel.
A cut down beginners version of ForTran.
BASIC had string objects, and exception handling, which did not exist in FORTRAN and were not implemented in c or Pascal until those languages got object-oriented versions.
It's also fair to point out that the "interpreted" nature of BASIC was an innovative design feature that enabled Edit-And-Continue , something FORTRAN, c and Pascal also didn't get until decades later.
Technically, the first version of BASIC was JIT line-compiled rather than interpreted, but either way implies the existence of a meta-process -- and it was the meta-process that handled object lifetimes and exceptions. It also turned out that interpretation / JIT compilation supported dynamic (object-oriented and functional) programming patterns, which, although they weren't part of the original use-case for BASIC, were widely used in application-programming.
Exceptions, Functional and object-oriented programming patterns weren't obvious choices for "a language for putting unix on new processors", but in those aspects as in many others, BASIC was a precursor to C++ and Python, not an inferior version of FORTRAN Pascal or c.
Oh, how I drooled over the swanky pictures of the CUB monitor in the monthly PC rag-mag... colour !!
Too exciting for a young teen... and way too expensive to ever get my grubby paws on one.
Great fun in the old days with ROM copying* for some word processing app ... can't remember its name. Learned loads from doing that kind of thing.
* scientific research only of course.
We had a 'big' TV on rental from Granda back when I got my Beeb and it had an RGB socket on the back. My dad managed to find the right plugs for both ends from work and made up a cable. The quality was superb! A friend down the road had a C64 and I always thought the Beeb looked better. C64 had better games and music....
Probably wordwise. I put off writing my degree thesis by writing a proportional font printer driver for it (and font designer). Had to remember to switch to mode 0 so that the driver could use the frame buffer to render the current line, that was quite satisfying to see your text being processed.
The built in assembler plus all the info on how to make the 6845 do weird stuff. I also remember things like: loading code from the floppy in mode 7, move it into the space used for the disc buffer then switch into a graphics mode. A precious 512 bytes.
The browser I'm typing this into seems to be using 750MB.
My computing experience started with a job teaching undergraduate psychology students BBC BASIC on a room full of Model Bs. It was one of those, 'read the book so you stay a week ahead of the students' gigs for me, but it meant I learned the ins and outs of BBC BASIC quite thoroughly. A year or so later I was writing fairly complex programs in 6502 assembler on BBC Model Bs (with re-entrant interrupt routines, linked lists, reading data and controlling external hardware). I then learned C (on a PDP-11/73 - there was no complete C implementation on the BBC micro) and never looked back (apart from an odd interlude updating some ancient code in FORTAN-2). I ow it all (well, not all), to The BBC Micro.
Had a collection - SuperBrain, Apple IIfx, Arab Apple II clone that was advertised in PCW (yes, it was real), gorgeous Apple IIc portable, Aquarius, Dragon 64, Enterprise, Memotech, Osborne 1, PC portable, RMZ, MZ80A, MZ80K, Einstein, and a load of the popular 8-bit ones. No space, so they went off to a museum with software and mags, for the £ that would buy one or two of them today. I guess you have to be rich to own enough space for your needs.
At least they can be recapped and kept safe as part of our heritage. Our scientific heritage isn't valued enough.
Still got my original ZX81 and Speccy.
Hours spent copying code from Acorn Magazine then debugging.
Learning how to use procedures and functions in BBC basic.
I then got a +one for my Electron and a lisp and a pascal cartridge, then porting my
basic code which didn't run any faster.
Trying to my head around inline assembler (another great feature of BBC Basic)
I then got a second Electron, connected the two machines via the RS423 port.
Set the second machine to either low res 8 colour mode or high res black and white, which was
used as the output, whilst the primary machine ran the code (gaining 20kB back in the process).
Not good for real time output, but I could use larger models in my ray-tracing program that took a week to
render a single screen. The result a bouncing ball simulation I could show off to those pesky Amiga owners
"Look my 8bit computer can do that too"
I regret leaving the programming world (cam back to it at Uni with Fortran for a while).
It is damn hard coming back to it in the age of Object Oriented programming coming from the world where you
had to do everything yourself.