Commodore User


The Sensible 64

Author: Ken Ryder
Publisher: Micro-books
Machine: Commodore 64

 
Published in Commodore User #13

The Sensible 64

The Sensible 64 contains 122 pages of useful pieces of information omitted from the user manual. It mainly concentrates on graphics, with a small section on the music facilities offered by the SID ship. There is no introduction, the authors dive straight into input from the keyboard using the GET statement to select menu options. Numerous short, useful subroutines are given as examples.

User-defined characters pop up next with the usual inistructions on how to design and locate them in memory. Multicolour and reverse options are also included, something which is often glossed over in other dissertations I've seen. The subject of sprites follows on naturally, and is equally well covered. Useful single line Basic statements are given to help control the numerous sprite registers. But to grasp this section fully, the reader should have been introduced to logical operators, AND, OR, but unfortunately is not.

The chapter on screen memory offers a useful subroutine for storing alternative screens and their colour maps in the spare 4K RAM above Basic. The authors admit that Basic is too slow for large amount of data transfer, and introduce equivalent machine code routines. Again, no attempt is made to explain the code - but it does encourage you to find out. Machine code is again used in the mysterious art of screen scrolling. I say mysterious because Commodore neglect it entirely in their user manual, and only mention it in passing in the Reference Guide. Extended colour mode is briefly explained but no applications are suggesterd for it.

High resolution and multicolour bit mapping is saved for the last subject on graphics. Where to locate hi-res screens is briefly and incompletely covered. Again, a machine code subroutine is used to good effect to clear a bitmapped screen. Several compact Basic subroutines are included for drawing lines, squares and circles.

This section is followed by a brief description of bank selection, and another subroutine that addresses the VIC chip to bank 2, allowing the creation of 128 user-definable characters and up to sixteen sprites, leaving 30K for Basic programs. Joysticks are introduced and combined with hi-res graphics to produce a crude plotting routine under joystick control.

Only twenty pages are devoted to sound and music. The sound envelope, ADSR is well explained including waveforms and sound effects. General music notation is introduced with a useful table of POKE values for notes and their duration. Unfortunately, only a single voice is covered, and there is a little advice on chorn generation. Filtering and ring modulation is skimmed over and one of the final commands of the chapter is: "It is impossible to give more than a guide to the sound capabilities of the Commodore 64." I think this is more of an excuse than a statement of fact!

The final two sections deal with disk drive and printer operations. The examples are rather trivial or more adequately covered by the appropriate Commodore manuals (and they are bad enough).

The Sensible 64 implies a 'serious' approach to programming: instead, it is a serious approach to the advanced facilities of the C64, filling in the gaps of the user manual. There are many useful subroutines, particularly on the subject of high resolution graphics, including some machine code. But explanations are generally brief and somewhat superficial, leaving you wanting to know more, but without the detail to find out. At £5.95 it's also rather expensive.

Overall, useful hints and tips - but overpriced.

Ken Ryder