Archive for March, 2014

Which OS, Which Book?

04 Mar


Assembly Language RISC OS Beginners is a perfect place for novices to start learning fow to program ARM machine code on the Raspberry Pi.

Assembly Language RISC OS Beginners is a perfect place for novices to start learning how to program ARM machine code on the Raspberry Pi.

The ability of the Raspberry Pi to run different operating systems is very appealing. It means you can choose a working environment that best meets your computing needs. But it can also lead to issues when it comes to choosing an operating system when you do not necessarily have a lot of experience with any of them. This can be especially galling if the Raspberry Pi is your first foray into the use of computers.

I had a similar problem when I opted to write an introduction to assembly language – which OS? I selected RISC OS because I thought the benefits of using the assembler that is part of BBC BASIC made it an overwhelming choice. Simple, easy, tried, proven.

Although RISC OS has a great support base it doesn’t have the numbers that a more main stream OS such as Linux and Debian has, and in particular the Raspbian version of the OS that is available for the Raspberry Pi. As I was getting numerous enquires about a Raspbian version of the book I took the plunge and published Assembly Language Raspbian Beginners and then subsequently revised and updated the original Beginners tome and renamed it Assembly Language RISC OS Beginners.

The question I get asked now by those wishing to learn assembly language on the Raspberry Pi is ‘which book should I use?’ I would suggest in the first instance that anyone in this position should spend a few hours looking at both of the operating systems. They are available free and are readily downloaded. Dedicating an SD Card for each one will enable you to try both simply by changing the SD Card. On Amazon the first few chapters of each book of the books are available to view free of charge (more if you ‘join’ and sign-in). Thus you can read the beginning of each book book, try a few examples and start to analyse which one you prefer working with. After all this is going to be your experience.

Here are the appropriate links for the book previews:  RASPBIAN       RISC OS

Both books contain similar information but it is presented differently by necessity of the OS. Thus by the end of either book you will have covered largely the same information and have similar skills. The Raspbian book uses the GCC Compiler (supplied with the SD Card image) to run through all the examples. The RISC OS book starts by using the BBC BASIC Assembler (supplied with the SD card image) and then goes on to show the use of the GCC Compiler (a simple free download from the Desktop). The BBC BASIC Assembler has been around for several decades and is tried and tested. Personally I believe it is the best tool available on the Raspberry Pi to learn assembler. I stress the term ‘learn’. The BBC BASIC Assembler (currently) cannot do everything that the GCC Compiler can do, which is why I cover it later in the book by which stage you will be comfortable with using ARM assembler.

Programming using the GCC Compiler is coverd in both books.

Programming using the GCC Compiler is covered in both books.

Operating system access is also a key consideration. When you are writing assembly language you will want to access routines that will allow you to undertake tasks such as reading input from the keyboard and writing output to the screen. These basic tasks are available in both OS however the level of support for other tasks is infinitely superior in RISC OS.

Support from external sites should also be considered. RISC OS is managed by a single entity and has an excellent forum and documentation ( Raspbian is open source and community developed and so is probably less co-ordinated ( That said Raspbian has by far the bigger take-up and usage when compared to RISC OS and there is a wealth of information related to Linux & Debian. A look at the posts on the Raspberry Pi Forums will confirm this.

It may seem like I am beating round the bush here, and I probably am. I am a firm believer that RISC OS should have been the default OS for the Raspberry Pi. It is safe, tried and tested, is small quick and easy to use. If you are totally new to using the Raspberry Pi then I would suggest that the RISC OS is the best place to start in relation to the two books. If you are a regular computer user and are familiar with a DOS style environment then I would probably say opt for the Raspbian version of the book, especially if you are planning to learn assembler for more than just educational purposes.

But for your own sanity I would strongly suggest taking the route outlined above – get both operating systems installed on SD cards and work through the early chapters of each book – and let that be a key factor in making your own mind up.