Personal Computer News


Beyond Basic

 
Published in Personal Computer News #046

Basic Principles

Spectrum program on machine code and assembly language may be too elementary says Ted Ball

Beyond Basic is a tutorial and simulation program for the 48K Spectrum, designed as an easy introduction to some of the fundamental ideas behind machine code and assembly language.

Features

Beyond Basic divides into three sections. The first two contain the tutorial material, which consists of a mixture of text and animated diagrams.

The first covers how a computer is organised as a microprocessor with RAM and ROM, an explanation of the microprocessor registers and their use in some simple machine code instructions, as well as an animated demonstration of what happens in the memory and the micro-processor when a simple machine code program is running.

The second section has more detail of the microprocessor registers and some of the simpler assembly language instructions for the Spectrum's Z80 microprocessor. Animated diagrams show what these assembly language instructions do.

Finally, the last section, Experimentor, allows you to type in assembly language programs, using the instructions described in the second part of Beyond Basic. You can then run your program one instruction at a time, noting how each affects the registers and memory. You can also save programs on tape and load them back.

Presentation

The cassette and a small booklet come in a colourfully labelled box.

The booklet tells only how to set up the Spectrum and load the tape, and what the program is for. All the tutorial material is in the program.

In Use

The program is menu-driven, with clear prompts on the screen, but one annoying feature is that in some menus you just have to press a key to move on while in others you have to press a key and then press the ENTER key.

Beyond Basic is straightforward to use when working through the two tutorial sections in order: you just press a key to get to the next screen. However, when using the Experimentor section it is very tedious to refer to the other sections. You must go through the whole first section in order, and you can't get out of it before the end. In the second section, the Assembler Command Tutor, you can look up the explanation of a single instruction, but it you only want the screen that lists the instructions available you still have to go through one of the explanatory screens before you can get back to Experimentor.

The editor for typing in and alterting assembly language programs is very simple, allowing you only to insert, delete or replace whole lines, but it is adequate for the short programs you would want to carry out.

Beyond Basic is designed to teach the fundamental principles behind using machine code rather than teach assembly language programming, and the concepts introduced in the program have deliberately been kept simple. It does explain the principles simply and you should be able to work quickly through the tutorial sections and into the Experimentor whether you haven't studied machine code at all, or you have started on a textbook and had difficulty understanding it.

There are, however, some points where Beyond Basic needs some improvement, without destroying its simplicity. Near the beginning it tells you that RAM addresses in the Spectrum run from 0 to 16K or 0 to 48K, which could cause problems for you later on as the RAM addresses actually start at 16K and go up from there. One basic topic not mentioned is the relation between machine code and assembly language. Many people have more difficulty understanding this than any of the topics that are covered in Beyond Basic.

More guidance in using the Experimentor section of the program properly would be helpful. The question usually asked about the simple assembly language instructions explained in Beyond Basic is not "what do they do" but "wht can you do with them?" What is required is two or three example programs in the instruction booklet for you to type in and run, and some suggestions for simple programs that you can write yourself using the limited instruction set available in Beyond Basic.

Reliability

On the whole, Beyond Basic is reliable, ignoring wrong keys in the menus as it does and telling you when you have typed in an incorrect assembly language instruction. However, there were two bugs in the Experimentor section. The first bug is minor - if you type in something like 'LD A,' where there should be something after the comma, it treats it as 'LD A,0'. The second bug is more serious: instructions of the form 'LD A,A', 'ADD A,A', 'CP A ', 'SUB A' don't work properly. Executing one of these instructions leaves a dash or a blank as the value of A, and sometimes executing the next instruction gives a screen full of nonsense.

Verdict

Beyond Basic goes a long way towards introducting fundamental ideas behind assembly language, but not quite far enough to justify a price of £9.95. It could be greatly improved, at little or no extra production cost, by including some reference information and some programming ideas in the instruction booklet.

Rating

Features 3/5
Documentation 3/5
Performance 4/5
Usability 4/5
Reliability 3/5
Overall Value 3/5

Ted Ball