c0re_dump (c0re_dump) wrote,

BBC BASIC Programming

Last week, I received a copy of Donald Alcock's Illustrating BBC BASIC, another in his series of hand-drawn programming books. According to the dedication, the manuscript for this one was saved from a house fire by the Fire Brigade. It seems to go much deeper into implementation details then the generic Illustrating BASIC. I suppose that's to be expected, but the details must be confusing for novices to programming. It also leaves out several examples of the higher level stuff, like the Roman numerals program, linked lists, and the critical path program, as well as the entire chapter on MAT statements, which BBC BASIC doesn't have. The book goes into details like hex numbers, binary representation and screen modes. It tells us all about the Beeb's esoteric "@%" pseudo-variable, which affects the formatting of numbers printed by PRINT and can (optionally) affect STR$(), too.

I've also been reading BASIC Programming by the inventors of the language, Kemeny and Kurtz. I was struck by the large amount of mathematics in that text, although it perhaps shouldn't be all that surprising, since the authors were maths professors at Dartmouth College. I also noticed that many of the examples in that book are just the same as the example programs in Illustrating BASIC, and indeed, in many other beginning programming books and courses. We have a Noughts and Crosses program, the Game of Nim, compound interest calculations, trigonometry programs, prime number generators, a critical path example, queuing simulations and sports simulations. I've just started the chapter on files in BASIC, and the example is a sports league table. This is very similar to the coursework we did in Algol-68 in my first year of Computer Science at Westfield College, where we wrote a program to update a football league table. The Westfield course was perhaps unusual in that the very first programs we wrote (in simplified Algol-68) were turtle graphics programs modelled on those in LOGO. We had no graphical output devices, and no physical turtles, so all the output was in the form of line-printer graphics -- and the programs were run by means of a batch job queue on a CDC 7600, so we could never interact with them and results usually took an hour or more to come back.

In the AVR programming world, I have installed a new version of WINAVR, which is a complete GCC toolchain running on Windows. I don't have much code in C for the AVR chips (apart from the Arduino stuff), but the one program that I found had to be updated a little to work with the new AVR C library. I'll be writing some stuff to run on the ATmega1284, but as yet I can't decide whether to plug the 1284 in place of the 324 or to build a new board to take the 1284 and maybe a MAX232A.

As usual after a General Election, I've been trying not to find out who won. Four and a half days later and I still didn't know who is the Prime Minister. But then I glimpsed it on the Yahoo home page and my ignorance was over -- until next time.
Tags: avr, basic, bbc basic, gcc, programming, winavr
  • Post a new comment


    default userpic