D E C E M B E R 1 9 8 7 H P - 2 8 C N O T E S As this is the last column of the year it includes a summary of what some of the HP-28C pioneers are doing now. Following that is a description of ways to improve your control of menus. One point which has become clear is that despite my pun above, "Pioneer" is not the right name to use for the HP-18 and 28. A while back HP had a proposal for three clamshell calculators, one business, one technical and one for OEMs (Own Equipment Manufacturers, companies which adapt someone else's product for their own purposes), but Bill Wickes denies that this is the HP internal name for the 18 and 28, and suggests "Champion series", instead, since the internal name for the HP-18C was the Champion, and this was the first calculator of the series to come on the market. The internal name for the HP-28C was "Paladin" - the game-players among us may know that a Paladin is a noble champion. (That's a Bill Wickes joke too, maybe he meant Nobel Champion!) I avoid "Champion" as this was apparently used as a name for various projected HP-12C upgrades before the clamshell design and internal features of the HP-18C had been decided on. Some people suggest we call this the "series 8"; HP have indeed previously had calculator series linked by the last digit, for instance the original "classic" series - HP-35, HP-45, HP-55 and HP-65, then again 67 and 97. I am pretty sure that this series will have some models which do not use an 8 at the end, so I shall just call them all "clamshells". Following the dissection of our R&D HP-28C, the bits and pieces were passed to Rabin Ezra, who has been designing a receiver for data transmitted by the infra- red bulb on the HP-18C and HP-28C. Thanks to help from Tony Collinson at HP, in the form of some technical notes and copies of the HP Journal, Rabin has now built his interface. This means he can transmit data directly from an HP-28C to a computer. One use for this would be to send the entire contents of the HP-28C ROMs to a computer for deciphering - there is even a SYSEVAL address which seems to do this automatically! In the meantime though, Graeme Cawsey has connected an HP-28C directly to an HP-71B and read out the entire ROM area, copying the contents to a floppy disk. Graeme is now slowly working his way through this, disassembling it all, using programs he has written in C. He plans to write up his discoveries in DATAFILE within a few months, and maybe to send his disassembly to HP with a request that they correct any mistakes; I wonder if he means his or theirs! One problem with the HP-28C is that the battery compartment is of a new design. Unlike earlier models, this one requires that you put two batteries in one after another. This leads to the risk that if the batteries corrode and expand then the one further in might be very difficult to remove. That seems to be the reason why the battery channel is much wider than the batteries. This in turn means that the contact between the two upper batteries can be rather poor; as they move about relative to one another the friction can wear away the metal surface between them or the contacts can corrode. On a few HP-28Cs (and HP- 18Cs, I suppose) this seems to lead to interrupted contacts, the display fading, the keyboard locking up, or even Memory Lost. If you are one of the unlucky few to whom this happens, try cleaning the battery contacts once a week with a pencil eraser, particularly between the two batteries which touch top-to-bottom. If that does not solve the problem, try changing the batteries. HP suggest that you use batteries which have very high quality contacts - Kodak batteries with their gold-plated tips are very good, and are a little longer than other makes, which should help ensure a better contact, but they are not yet widely available in the UK (try a photographic shop). The shape of the tips on the Kodak batteries makes it a bit difficult to close the battery compartment door, as it tends to catch on the protruding positive tip. New HP-28Cs have tighter springs in the battery compartment, to decrease the chances of losing contact between the top two batteries; the spring is still not tight enough to guarantee a good contact in all circumstances, but as Bill Wickes says, if it were any tighter, the batteries would shoot right across the room when you tried to remove them. Anyway, that is no help if you already have a 28C with weaker springs. My own suggestion would be to wrap the top two batteries in thin card before putting them in the battery compartment. This will decrease the amount of sideways motion, but if you do this you must check the state of the batteries often, otherwise they might corrode and get completely stuck in the battery compartment. In the long run, HP will probably redesign this part of the clamshell calculators, maybe even using only one mercury, silver oxide or lithium cell, and leaving the space currently occupied by the other two batteries free for an input circuit, more memory, or plug-in modules. (The present hardware permits inmput as well as output, but there is no room in the case for a full input decoder circuit and software.) We can always hope! Kim Holm, who first checked my ideas on memory extension and speed-ups, is now routinely offering a service of building 32K RAM chips into HP-28s to extend their memory. This speeds up an HP-28C most of the time, since it does not have to tidy up its memory so often to make free space, but when it does have to do this "garbage collection", it can take several minutes. The self-check test also takes much longer. Both problems can be alleviated by the speeding-up of the HP-28C at the same time. The main problem with a speed-up is that the printer might not be able to read the infra-red signal any longer. (I wonder if this will be a problem for speeded-up HP-41s using the "blinky" module, but I expect not as that will probably have its own timer built in.) The Redeye printer has a snap-fit case, held together with screws, so it can be opened fairly easily and its timing circuit can be altered so it will match a speeded- up 28C. The one remaining question is whether the printing mechanism can keep up. If you really do want to speed up a 28C and use it with a printer then you could get Rabin's design for an infra-red receiver and use it with a computer. Frans de Vries has written to tell me that another Dutchman, Michiel Niemeijer, read my PEEK program and has written several machine language programs of his own; one is PIXTOG which toggles a display pixel using absolute addressing, so there is no need to calculate the scaling. Michiel's programs should soon appear in one of the Dutch journals, NUTS or Prompt - I was sent a copy of Prompt recently and it had some very nice HP-28C programs, including ones to do line drawings, as well as several interesting HP-41 synthetic programs. Back to our own club - I am still writing my HP-28 "booklet" for HPCC members - the more I write the more I find and want to write about, but I plan to have a first printing ready by mid-December. It will be just under 100 pages long, photocopied onto stapled A5 pages, selling at 7 pounds including postage in the UK and Europe. I don't have a price for outside Europe because I do not yet know the price of postage (nor of the dollar!). The first printing will be limited to less than 100 copies, and I plan to have a second printing made by a printer early in the New Year, including changes that might be suggested by readers of the first print run. My main worry now is whether to increase the amount of detail about machine language and calculator internals in the book, or whether not to bother and to get it finished as soon as possible. One topic discussed in the book is control of menus; the row of menu keys below the display is one of my favourite features on the HP-28C. It is an excellent development of the ideas used on earlier calculators which used the top row of keys for labels A to E. The HP-41 took this idea further, and some 41 modules even had programs which showed the corresponding label names in the display above the keys. HP spent some time thinking of a "plasma keyboard" which would allow different names to be shown on the face of every key, but such a keyboard is still a long way off, even at HP prices. Instead, HP18C and 28C owners can select one of many menus and display it in the bottom line of the display, above the selectable menu keys. This is certainly better than demanding that you know what each of the labels A to E did. It also gave HP a chance to put only two functions per key on all other keys, avoiding the criticism that calculators had too many functions per key. (The HP-67 had four functions per key - unshifted and three shift keys. The HP-41 can have up to 8 functions per key plus an unlimited number provided by PASN, GETKEY and GETKEYX.) On the 18C and 28C this is avoided by the use of two keyboards connected by a flexible link. The most natural way to use the HP-28C is to write programs while sitting at a table with both keyboards resting on a firm surface, and to assign the programs to the USER menu. Then you can fold the left hand keyboard underneath, and use the right hand one alone, treating the HP-28C as a handheld calculator and selecting your own programs or built-in commands or menus from the right hand keyboard. If you have more than six programs you still only need the one keyboard, since NEXT and PREV let you move among groups of six variables in your USER menu. Unfortunately, because of the flexible link, handheld use of the left-hand keyboard, even if only to select a menu, is decidedly awkward. Either you have to fold out the left hand keyboard and find some way to hold it steady, or you have to press the SHIFT key, turn the HP-28C over, and select a menu, or you can turn the 28C over and spell out a command name. If you have just a few commands which you need to use often then it is worth adding them to the USER menu. For example if you use the FACT function a lot, write the program << FACT >> and store it with the name 'Fact'. Since the menu display does not show lower case keys, this will look just like FACT in the USER menu. The above program is 25 nybbles long, whereas you really only want to store the command FACT which is just 5 nybbles long. Graeme Cawsey has just discovered a brilliant way of storing the command alone. First create the list { FACT } by pressing {, then F, A, C, T, then ENTER. Now type 1 GET. This extracts the first object from the list, in this case the command FACT. Finally type 'Fact and press STO. If you want to use a whole menu though, then what you really need is a menu selection command. Set HEX mode, word size 16 or more, and type this in: << 10 * #6D56 + SYSEVAL #E38E SYSEVAL CLMF >> 'MENU' STO To use this, type any number from 0 to 21, then press MENU. 0 cancels the menu display, 1 gives USER, the following numbers select menus from the left hand keyboard: 3 is Program TEST, 8 is STACK, 9 ALGEBRA, 11 BINARY, 12 LIST, 13 REAL, 14 Program CTRL, 15 Program BRANCH, 16 STORE, 17 PRINT, 18 ARRAY, 19 CMPLX, 20 STRING. Numbers above 21 are dangerous - up to 31 they select FORM submenus of ALGEBRA, beyond that the results are undefined. To get back to the USER menu, just press the USER key. The way this program works is explained in my book. Say you want to get the FACT command without turning the HP-28C over. Use USER (and NEXT if necessary) to get MENU on the menu display. Type 13, and press MENU - the REAL menu with FACT is shown. Another example - say you want to run a program and then use R->B and B->R - put 11 MENU in the program and when it stops press NEXT. If you decide that this is going to be useful then I suggest you stick a label on the name plate above the display and write the above numbers on the label. At the same time you could well write the numbers of useful flags on the same label, I don't know about other users but I still have trouble remembering that flag 51 turns off the beeper! Wlodek Mier-Jedrzejowicz