INMC 80 News


September 1980 – January 1981 · Issue 2

Page 46 of 59

Z80 Books

Book Review


Practical Microcomputer Programming – The Z80

By W.J. Weller.
Published Northern Technology Books, Evanston, USA.

Cost: Approx 20.00

I imagine that this book title has caught most microfans eyes as they scan advertisements of books on programming because of its high price. What do you get for your 20.00 ?

This is a thick hardcovered book of some 480 pages, well laid out and printed, on the Z80. It contains a complete listing for an interesting Assembler and monitor, and by sending off the back page to the publishers, one can receive a free paper tape of the assembler monitor object code. Great !, I hear hundreds (thousands ? (millions ?)) of readers say as they reach for the telephone to order this from their Friendly Local All Night Computer Store, or their F.L.A.N.C.S’s answering machine for 24 hours ordering. Don’t do it ! Wait ! There is a snag.

The snag is that this excellent book, for reasons that Mr. Weller explains in his introduction, does not use Zilog/​Mostek mnemonics. Mr. Weller feels that in the first place most microists are already acquainted with the 8080, and he extends that language to cover the added Z80 instructions. Secondly, he feels that the Z80 language does not make a good practical programming language, and thirdly, that it requires about one third as many keystrokes again per line as conventional languages. These arguments may be true in the USA, where many people have graduated to the Z80 from 8080s, but I doubt if they are in general true in Europe, and in particular not of Nascomers, most of whom have assembled their own machine, with no previous experience of a microcomputer. This is the first and major snag with this book. The language used, extended 8080, is very incomprehensible after the clear syntax of the Z80 language. To change from one to the other can be done, and even done on the fly, but Murphy’s law always prevails – there are always hidden bugs that take hours to find. One example will show this up – a valid Z80 statement would be JP BEGIN; meaning JUMP to the label BEGIN. This is also a valid statement in 8080 extended, meaning JUMP IF POSITIVE to BEGIN. This one has caught me on a number of occasions, with another experienced Nascomer looking over my shoulder as I translated. O.K. I hear you say, I can put up with that to get an assembler listing, and then I’ll change the assembler to the type of mnemonic I like.

The assembler is very interesting (if you can see through the 8080 mnemonics), as it allows a number of pseudo ops which are not normally encountered – such as to define a store area of a certain size, and initialise it to a given character, and one called TITL which allows you to title a program and have its name on each page just by using the Pseudo-op. It also allows a listing to be started and stopped at defined points within a program – which is most useful and I have implemented that on ZEN for myself, and it leaves space for any extensions to the pseudo ops you may wish to make. The assembler is written entirely in 8080 code, and flags any instructions which are unique to the Z80 – so it is in fact a Z80 cross assmbler to run on an 8080 (if you are the unfortunate) and will also facilitate those who have occasion to convert programs back to 8080 code.

Page 46 of 59