Commodore C16 /Plus4/C116

C16 and Plus 4 with no take off

From the article in Commodore User about C16

This is how it all sounded when c16 and Plus 4 reached the market in 1984, just ahead of the christmas season. I’m lucky my parents stuck with the Commodore 64 as the gaming experience and the potential of the machine was way over what these machines could handle.

Pride of place in this month’s news from Commodore Businesss Machines must go to the launch of their two new machines: the Commodore 16 and the Plus/4.

Howard Stanworth, General Manager of Commodore Business Machines (UK) Ltd., hopes that these two machines along with the 64, will “…form the strongest range on the market over the Christmas period”. The Commodore 16 has been designed as a successor to the VIC-20 and will be sold in a complete starter pack at £139.99. It includes 16K RAM, a full typewriter-style keyboard, sophisticated sound capabilities, 121 colours for high-quality graphics and advanced BASIC. The starter pack contains the computer, cassette deck, Introduction to BASIC part 1 and 4 recreational software’ packages. (The 16 is reviewed elsewhere in this magazine).

The Commodore Plus/4 is described by Mr. Stanworth as “…an affordable home computer for the more serious user”. And, in an attempt to prove this point, it comes with 4 integral programs: word processing, database, spreadsheet and business graphics. But he does stress that the Plus/4 “…is not a fully-fledged business machine. It is a competitively- – ‘priced home machine ideally suited to the professional who wants to use it for productive, applications”. The Plus/4 contains 64K RAM, of which 60K is available to the user for BASIC programs and includes, amongst the more obvious facilities, advanced BASIC, screen window facility, a HELP key and simple cursor controls. It retails at £299.99.

Both machines are being manufactured at the new Commodore factory in Corby and should be available at the end of September. Father Commodore also promises to stuff our Christmas stockings with other goodies. A new cassette deck, the 1531 (cost — £44.95) and a new single disc drive, the 1541 (cost — £299) should soon be available.

Also in the Commodore Christmas package this year can be found two new printers compatible with the entire range of Commodore home computers. These are the MCS 801, a colour dot matrix printer, and the DPS 1101. a low-cost letter quality printer; both models will sell for £399. Both Commodore and the leading software houses are developing a range of software for the 16 and the Plus/4.

Your Commodore Issue 03 – December 1984

Commodore 16

Instead of trying to describe the specifications of this machine I would like to lay the weight on a walkthrough of the machine done by Mike Roberts and Simon Rockman for the Commodore User Magazine. As they mention they “investigate the smaller of Commodore’s new offspring, the Commodore 16.”, and yes they do.

The colour upgrade gives it a more luxury feeling than the C64 presented, but how fooled can you be?

A commodore 16 computer

THE COMMODORE 16

Is packaged in the same type of box that has clothed Commodore 64s and VICs for the past few years. The machine’s colour scheme is rather different to the CBM 64: it looks like a negative —gunmetal box and a grey keyboard. The ports at the back of the box show a departure from the 64/VIC stable with the omission of the RS232C interface and the parallel user port. Most remaining features have been changed: the cartridge/expansion port has been reduced in size to stop people shoving CBM64 cartridges into a C16. Commodore say that no RAM memory expansion will fit into this slot, only cartridges, although ‘Memory Expansion’ is written above it. Commodore’s answer is “We know”; apparently the moulding was made by a Chinaman or something. It is unknown whether the highly advanced structure of the CBM 64’s slot is duplicated with the facility for second processors etc. The two D9 connectors of the CBM 64 have been dispensed with and replaced with mini DIN connectors: this means you can only use Commodore’s joysticks but even their new ‘hi-tec’ style ones are not the best on the market. This is foolish since it is so easy to make an adaptor for use with any joystick. No doubt there will be a roaring trade in adaptors. There is also one other problem with joysticks: on the box they are labelled ‘PORT 0’ and ‘PORT 1’: BASIC thinks they are ‘JOY 1l’ and ‘JOY 12)’ — the mysterious Chinaman perhaps? The cassette recorder socket is also a mini DIN connector; this is because the C16 cassette deck is different to the old tape decks. This doesn’t really matter with the C16 as a cassette deck gets supplied with the computer.

From the magazine Commodore User about C16

Thankfully. Commodore have left the Serial BUS and the audio/video connector alone. Since all Commodore’s existing peripherals which use these ports will work straight off, there are already printers and disc drives available for the machine: this is a welcome change from the usual state of affairs where the user has to wait up to two years for any peripherals at all. The keyboard is up to Commodore’s usual excellent standards and probably represents most of the component cost of the machine fit did on the CBM64 and VIC). Changes made from the VIC/64 keyboard include four separate cursor keys, an escape key, and various modifications to the layout of the keys to facilitate these changes. The cursor keys are now on the top right of the keyboard. This is confusing to a user who is experienced with the Commodore keyboard of old, but it is extremely logical and easy to get used to for the first time user.

Inside the C16

The internal hardware reveals some surprises. Most of the inside is driven via one big chip: called either the 7501 or the TED chip depending on your inclination, it combines a 6510 processor at 2MHz with a sound generator, timers, input/output, memory banking, and graphics generation. In all it has 19 registers to control things in order of graphics ability: the Spectrum has 1, MSX has 6, the BBC has 17, the Commodore 64 has 47. Sound ability is as good as any other computer although it only has two channels either two sound channels or one sound and one noise (for special effects). Nearly all the advanced sound features of the SID chip have been left out like ADSR, filtering, and mod-ulation. Graphics ability is superb. It is natural that this and the Plus 4 will be compared with the Commodore 64 as there are a lot of similarities in spec; the graphics are different and there are currently two schools of thought as to which is better, the CBM64 or the C16.

No sprites. . .
The big difference lies with sprites. These wonderful things that make games programming easy have been chopped from the C16. In their place is a software simulation of them from BASIC where you can extract an area of the screen and store it in a string. This string can then be recalled and put back on the screen at any point. There are also other options to manipulate these objects, but they are not true sprites; a large 120 byte object takes about a quarter of a second to write to the screen. I feel that the world can live without sprites for at least another computer generation (about 18 months); the Commodore 64 and Atari were just too far ahead of their time.

C16 logotype

. . .But more colour
The trade-off against the sprites is more colour. The screen of the C16 can have 128 colours (121 excluding black) made up of 16 colours, B luminence levels, and flashing. Screen size is 40 x 25 text with four other graphics modes. The other graphics modes are 320 x 200 with the previously mentioned 128 colours being used in a colour map system, and 160 x 200 in a multicolour form. Both hi-res screens have an option to leave four text lines at the bottom of the screen. There are some other graphics modes and options but these are only available by POKEing. UDGs are obtained bv POKEing and manipulation of registers. The manual gives no hint of these although they are very straightforward to obtain. When playing with UDGs one other feature becomes apparent. A character gen-erator is 2K long (256 x 8 bytes), the C16 one is only 1K long. How come? Well, the long and short of it is that the C16 uses a hardware reverse field attribute. The top bit of the current character displayed indicates whether it is inverted or not. The advantage of this lies in memory consumption. The disadvantages are that you can only have 128 UDGs, and flashing works in a rather strange way. A reverse field space is shown as a black square; when you flash it instead of getting a flashing square nothing happens. This is quite confusing until you realise that a flashing space doesn’t change. Other modes not docu-mented include Extended Background Colour mode, which gives you different background colours as well as foreground colours, and multicolour characters where each character can be made up out of a number of colours. There may be others but, without a technical manual. I cannot ascertain them.

Programming the C16
While investigating the ROM in the machine I came across a strange quirk. Before getting the manual, I was PEEKing the top end of ROM to discover the BASIC keywords. Doing this produced garbage and not the codes that I was expecting. S However, entering the monitor and interrogating _memory revealed them: all the memory paging systems of the Plus 4 have been left in. so when you try to PEEK the ROM the BASIC pages it out to allow access to the RAM beneath. This is alright in a 64K Plus 4 but in a 16K C16 there is no memory there — just garbage. This brings me onto another point. The BASIC (covered in the latter half of this article) is ideal for an inexperienced user or an experienced BASIC user, but what about us machine code hacks and people that wouldn’t use BASIC if they were paid to? The answer is TEDMON —a full feature assembler. disassembles, monitor, debugger. It is similar to Extramon 7.5 and is very good indeed. This makes writing assembly language very easy as you already have most of the development software built in. Here is a list of monitor commands.

Quick Commands for Monitor on C16

The monitor can also be called by using the reset button. This is a great feature and is in a little recess just by the power supply. Press it in and the machine goes back to its power on state —memory contents are pre-served but it is awkward to get at them. The beauty of it all comes when you keep the STOP key pressed down at the same time as you press in the reset key: the computer jumps into the monitor, key in ‘X’ (for eXit) and you are back in BASIC. complete with intact program.

BASIC on the 16
Commodore BASIC has been around in one form or another since the early PET in the mid 70’s; little has happened to it since then. In the outside world fancy. structured BASICS have been the order of the day. BBC and QL BASIC are so far removed from the original Dartmouth BASIC that they can hardly be called BASIC at all. The Commodore 16 is the first major departure from the standard Commodore BASIC. The 64 and VIC use BASIC 2.0, the business machines use BASIC 4.0, The Commodore 16’s BASIC 3.5 does not really fall between the two but goes beyond BASIC 4.0. It incorporates most of the features of BASIC 4.0 and adds °many new graphics and sounds commands. The only command which is missing from BASIC 3.5 but is present in BASIC 4.0 is RECORD. RECORD aids the accessing of data in a random access file; this omission is a shame because random access files open up (no pun intended) great scope for business programming. They can still be implemented but sending bytes off one at a time is a little laborious. There are lots of new commands in BASIC 3.5. some replace the POKEing required on the Commodore 64 and some add extra functions. They divide up into five main sections: structure, toolkit, disc handling, graphics and sound.

Commodore 16 User Guide


Structure
The IF..THEN structure has finally sprouted an ELSE tag. Most Commodore program-mers fail to see the value of this, after all you can always put the next statement on the following line. Where ELSE really comes into its own is in conjunction with a GOSUB.
Consider this routine:
10 IF Z =1 THEN GOSUB 100 ELSE GOSUB 200
20 PRINT “BACK FROM THE ROUTINE”

Without the ELSE it would have to look like this

10 IF Z=1 THEN GOSUB 100
15 IF Z- >1 THEN GOSUB 200
20 PRINT “BACK FROM THE ROUTINE”

Without the test in line 15 the program would always get to 200. The ELSE function is a very valuable addition to Commodore BASIC. Brand new structures are DO..LOOP WHILE and DO..LOOP UNTIL. These allow a FOR..NEXT type of loop where the control variable can be altered in the middle of the loop. They do of course mean that any program with the variable DO in it will not work. Most Commodore users will be familiar with the line

10 GI 1A$:1FA$=- ” ” THEN10

Which waits for a key to be pressed. Well Commodore have decided that this is so common that they have added a command GETKEY which does the same thing. The INSTR command makes data validation much more simple, it returns the position in a string or a substring so PRINT INSTR (“NNANNN”, “A”) will give the answer 3. Think how useful this is for adventures, all you need is a INSTR (“NORTHSOUTHEAST WEST”,D$). To neaten up output there is the PRINT USING command, this allows you to define the shape of the output and the decimal point and pound sign are looked after by the computer. Adventure writers will appreciate the RESTORE line number > feature and everyone will appreciate the TRAP linenumber > command which causes the program to jump to a specified line if an error occurs. This can lead to sloppy programming but its benefits, in preventing the user of a BASIC program getting into the program when an error occurs, far outweigh the disadvantages.

Start up screen on the Commodore 16

Toolkit
From the early days of the PET there have been add-on toolkits for the PET. The C16 comes with one built in. Most prominent is the HELP key. When an error occurs in a program pressing the HELP key causes the line to be listed with the offending statement in a multi-statement line flashing. The VIC and 64 have always required a machine code patch to allow them to use the function keys on the left hand side. The 06 has a KEY command. Just typing KEY produces a list of the key definitions on the screen. KEY followed by a number and a string allocates that string to the key specified by the number. Even the HELP key can be redefined. An AUTO command provides automatic line numbering. It works in an odd fashion, you have to type AUTO and then the increment. Then you start entering the program with a line number and then all the subsequent line numbers are generated for you. The AUTO command is not quite fast enough and can’t keep up with a key defined with a message and a carriage return. The AUTO mode is switched off by hitting return over a blank line. The RENUMBER command neatens up programs and allows forgetful program-mers to squeeze in that essential bit of code which was missed out. Unlike the dreadful renumber in Simons BASIC this one works properly and renumbers GOTOs and GOSUB’s.

The toolkit for the old PETs had a great TRACE function. This gave the line that was being executed and the last few lines above that in a window. The C16 just prints out the line being executed at the current print position. This means that the screen gets cluttered with a load of line numbers and cannot see what is supposed to be going on. It is switched on with TRON and off with TROFF.


Disc handling on the C16
BASIC 4.0 programmers will be familiar with all these commands. BACKUP provides a fast backup between drives on a dual drive unit. The only way of using this is with a 4040/8050 type drive and an interpod since the 1542 is only a single drive. There may be a dual drive in the pipeline; one was pictured in Commodore’s report to shareholders. DIRECTORY shows the contents of a disc without destroying any BASIC program in memory. There is no CATALOG command as used in BASIC 4.0. DLOAD and DSAVE load and save files from and to disc. HEADER formats a new disc; there are two ways of doing this, a full HEADER which formats the whole disc and a quick HEADER which just formats over the directory on a disc which has already been used. The former is probably safer since it ensures the whole disc is safe to use and there are no bad sectors. RENAME does just that; it allows the name of a file to be changed on the disc, ideal for archiving a file you are working on. COPY is slower than back up for copying a whole disc and does not format the disc it is copying onto but will copy one or a selection of files. Overall, the disc handling commands are a very useful addition — for disc users — but how many people will spend £230 on a disc drive for a £140 computer remains to be seen.

Disc Drive 1551 for Commodore C16
The 1551 – the disc drive for C16


Graphics
By far the greatest improvements in Commodore BASIC have occurred in the field of graphic commands. The use of high resolution graphics really clobbers the memory, in high res mode the user is left with 2K to work with. Clever machine code could eek this out but most users will want to use BASIC. The non-high res com-mand is COLOUR. This replaces all the messy POKEing. There are three parameters to this command: type, colour and brightness. The type is a number between 0 and 4:

0 — Background
1 — Character (INK)
2 — multi colour 1
3 — multi colour 2
4 — border

To use the high resolution graphics there is the GRAPHIC command. This allows for two modes, a 320 by 200 mode where the colour resolution is limited to two colours per 64 pixels and a multi colour mode which allows four colours per 64 pixels. There is an option to clear the graphic mode as you enter it. The graphic screen can be cleared with the SCNCLR command. The DRAW command will either draw from the last point or from and to a specified point. The colour can be given for each line. One of the major problems with a graphics screen is the difficulty of printing text to it. Drawing out a whole word can be very laborious. The C16 has two ways of overcoming this. The first is a text window at the bottom of the screen which can be printed to and which scrolls in the normal way. The second is the CHAR command. This either writes or erases a given string at a specified position; it is slow but allows the string to be put anywhere on the graphics screen. The BOX command is a fast alternative to using four draw commands. It is possible to produce a filled or rotated box.

The CIRCLE command is a little slow but makes up for that in its flexibility; it can be used to draw any polygon or oval. Colour fill is quite difficult to write but this is no problem on the C16 which has a PAINT instruction. The 121 colours make the C16 a very pretty machine. An attempt to mimic sprites has been made by the inclusion of the commands GSHAPE and SSHAPE. These suck graphics from the screen into a string which can then be squirted back onto a different part of the screen. There are flags for different logical operations which can be used to produce different effects when reprinting the software sprite.

Commdore 16 C16 Pacman
Pacman on the C16

Sound
Sound on the C16 is a doddle when compared to the 64. This is partly due to the new BASIC commands and partly due to the lack of facilities. There are only two commands, VOL and SOUND. There are two musical voices and one noise channel. The parameters for SOUND are the voice number, the note and the duration. It won’t be long before we start to learn the standard zapping sounds.

Final points
The manual is excellent and way past Commodore’s usual standard. It is informative and instructional for the first time user. For the experienced person there are memory maps and register details. At only 16K the C16 looks a bit on the slim side, especially as the system cust out 4K for the operating system and screen. This leaves you with 12K for programs. This is not too bad considering that Commodore machines are very frugal with memory consumption. Finally, another 10K disappears when using hi-res graphics, thus leaving only 2K for the user. Through clever programming, an extra 2K can be extracted from the machine making a grand total of 4K!!! All we can hope for is that memory expansion units become available as soon as possible. if not from Commodore then from third party manufacturers.

Your Commodore Issue 03 – December 1984

Related Content

Check out for some more Commodore 16 Titles – many covers represented on this site. Many of the high end titles for the C64 were released on the C16 as well. These titles are in no way near to their big brother versions on the C64.

C16/Plus4/C116 Game Covers

Games that stick out are Elite titles like Commando, Airwolf and Frank Bruno’s Boxing. My favourite games on this machine are from the labels Gremlin Graphics, Bubble Bus and Solar Software.

Check our Bubble Bus section for the many titles under this brand,

Bubble Bus Gallery