Computer Languages and the BBC Micro-Computer This is a brief overview of the computer programming languages that are available for the 8-bit BBC model 'B' and Master 128 computers. The languages mentioned in this article do not require a second processor, although some of them may benefit by having one. The additional requirements over and above the specification of a standard BBC Model 'B' will be detailed where appropriate. The various second (or co) processors that are available for the BBC 8-bit machines further extend the programming languages that are available to the user, but these will not be discussed here, but could be the subject of a future article if enough interest is shown. The languages are discussed in alphabetic sequence and not in ease of use! So off we go with the letter 'A' :- APL This language is interesting in that it uses a special character set. The language itself is very concise and powerful, but does take a bit of getting used to. To the best of my knowledge there is only one version of this language for our machines, and that is I-APL. The disk itself is 'freeware' i.e. can be freely distributed on its own and unaltered to those who require it. Books on its use can be ordered from I-APL Ltd at a very reasonable cost (less than it would cost to copy them!) A copy of the disk is in the pool. EDITOR...... TBI-37-3 (DFS) TBI-37-4 (Archi) The software comprises two rom images (which can be blown into Eproms) and a disk of some sample workspaces and tutorials. As special characters are used for the language, a graphics mode (preferably 0) is best for program development, and therefore shadow ram will allow much larger workspaces. ASSEMBLER There are many assemblers, macro or other, for our beloved 8-bit machines, in fact there is one built into the BASIC interpreter!. For the serious assembler programmer however, a good macro assembler is a boon to writing large programs. Probably the best of the crowd is SYSTEM ADE+. This comprises 2 (or 3) roms, a disk and a comprehensive manual. The two main roms are the assembler itself and the linker/memory management rom. The optional third rom is the SPY debugger. The assembler contains a simple but useful full screen editor designed specifically for entering assembler programs. It can use shadow ram, up to 4 banks of sideways ram, and even the memory in the 65C02 second processor if present and switched on. A slightly simpler (and cheaper) macro assembler is Clares MACROM. This comprises one rom, one disk, and a manual. Finally, there is a very good public domain macro assembler from Alan Phillips of Lancaster University. All of these I use regularly and would heartily recommend them. BASIC This language comes supplied with our machines, and all versions are well known to us. However, there are two other Basics available to us and they are :- Multi-Basic by CMS This has additional commands that allow for multi-tasking. XBASIC This has additional commands making it more structured and more powerful language. Although XBASIC is mentioned as a 'new' version of BASIC, personally I would place it among the other 'add-ons' to existing BASIC. Other add-ons I would include are Computer Concepts Graphics Rom, Acorn's GXR, Computer Concepts Accelerator (Basic compiler), Vine Micro's Matrix Rom, and finally Acorn's Basic Editor. BCPL This language (the forerunner of 'C') is a powerful language for writing 'system' type software such as editors and compilers, although it need not be restricted to this. It was released by Acornsoft and comprises a rom, a disk, and a very detailed manual. Other add-ons included a disk/book entitled 'BCPL Calculations Package' and similarly the 'BCPL Stand Alone Generator'. C This very popular language was one of the last languages to arrive for our machines, and there are several versions :- Acornsoft 'C' This version was designed for the Master series machines, and requires two banks of SWR and shadow ram. If you Model 'B' has been expanded to this level, then this version of 'C' is one of the two leaders. Beebug 'C' This version of C has more modest demands, and hence I highly recommend its purchase if you wish to learn C on a BBC micro. It comprises two roms, a disk, and a manual. A further bonus is that there is an add-on, the Stand Alone Generator, which allows your programs to run without the roms being present. Mijas 'C' This comprises a disk and several manuals which contains the Small C and the 6502 development system. This version of C generates assembler code which is then assembled to produce 6502 machine code. It is not as comprehensive a C as either Acornsoft's or Beebug's, but it has the advantage of compiling down to machine code. It is a much enhanced version of the public domain version of C. This version requires 4 banks of SWR or the rom images blown into eproms. Brasscourt 'C' This comprises a rom, a disk, and a manual. Comments as for Mijas C, but is less comprehensive. Public Domain Tiny C This version of C is too restrictive for serious use, but it is never the less a reasonable introduction to C. *** NOTE *** None of the above versions of C come supplied with a book to teach you about the C language, the manuals supplied simply detail how to use the compiler and what functions are contained within each library supplied with the package. COMAL This language comprises a rom and a very comprehensive manual. The language is a dialect of BASIC, but has a much tighter program structure and also has syntax checking on entry. It has additional commands such as CASE, excellent string manipulation, and enhanced file i/o commands. It does not, however, contain the assembler. FORTH There are many versions of this language available for the BBC micro, but I will concentrate on Acornsoft's, which is probably the most well known. Forth is available on cassette, disk, or rom, but for serious use the rom version is preferred. It is a language that comprises of a dictionary of known 'words'. Each word performs a particular function and the dictionary is extended by the definition of new words which comprise combinations of existing (or known) words. Extensive use is made of the stack and reverse polish notation is the norm here! Programs (or rather new words) are defined as 'screens'. It is an ideal language to use for real time control of devices connected to the outside world. It has also been used to write games due to its impressive speed. FORTRAN As far as I am aware, there is only one version of Fortran available for the native BBC micro, and that is supplied by AJS Soft. Unfortunately I do not possess the manual for the rom, but I have discovered that it is a reasonable implementation. If anyone has the manual or knows where I may obtain one, then please let me know. HALCIEN This language, by High Level Algorithms, is a powerful graphics and text handling language. The package comprises a rom, a disk and a very detailed manual containing many example programs. LISP This language from Acornsoft is available on cassette, disk, or rom, but as with FORTH, only the rom version should be considered for serious use. It is used (as its name implies) for list processing and is often talked about in Artificial Intelligence circles. It is an excellent implementation, but it is not a language for the faint hearted. A disk of examples was released by Acornsoft as an extra purchase option. LOGO This language, 'the turtle graphics' language, is available from several suppliers, the most well known ones being Logotron and Acornsoft. Logotron's package comprises a rom, disk, and a manual. Acornsoft's comprises 2 roms, a disk, and a manual. Both versions are very good, and have been widely used is schools. PASCAL There have been three versions of Pascal for the BBC micros :- Acornsoft's S-Pascal. This is disk based and is an implementation of tiny Pascal, and as such is not suitable for serious use. Acornsoft's Iso Pascal This comprises 2 roms, a disk, and two books and is a very good implementation. The 2 roms contain an excellent full screen editor as well as the compiler and run time interpreter. A stand alone generator is available as an extra purchase if required. Oxford Pascal This comprises a rom, a disk, and a manual. It is a reasonable implementation of Pascal, but it uses the editor in BASIC and so all the Pascal statements have to have line numbers, which detracts from the purity of the language. Overall, Acornsoft's is the one to go for. PROLOG (Micro Prolog) This language is supplied by Acornsoft and comprises a rom, two disks (1x5.25 and 1x3.5) and a very readable manual. It is a language that is often used in expert systems. This implementation is a good one and represents excellent value for money. EDITOR........... If any interest is shown, K2O Will continue this series by going into each of the above languages in greater detail. Please let 8BS have your comments and encouragement as I personally would like to see this subject flourish into a series of articles.