HELP28 - This file tells you about HP-28C related files on this disk/cassette. The files all have "28" in their names; the programs create, sort and print lists of HP-28C commands and command addresses. The command addresses were obtained by use of the SYSEVAL function, and a list in address order can be very useful for further analysis of the 28C operating system. Note that this is a list of HP-28C "commands", i.e. programmable operations only. Other useful addresses can be found too (see some of my other HP-28C articles) but the programs given here are mostly concerned with commands. These programs and lists were written on an HP-71B. I originally distributed printed copies of the article HP28BYTES and a list of HP-28C commands in address order, but people asked for them on mass storage, so here they are. I am unsure how useful they will be as I used an Epson printer to print the special HP-28C characters; I think it easier to photocopy a printed listing than to look for an Epson printer with some form of IL interface, but here you are. For details see below and read the remarks in the programs. For those people who do not have a printer which uses Epson graphics commands I have included some remarks on changes required to use other printers; I have also provided an alternative text file which has printable characters in place of the special ones. The alternative file is described below and the characters used are described in the list given with the description of KEY28. The programs are not fully optimized - after all, I am most interested in the HP-28C itself just at the moment, not in optimizing HP-71 programs. If you use them and make any further discoveries then please let me know what you discover so we can carry on the work of understanding the HP-28C and being able to use it better. Thanks. Wlodek Mier-Jedrzejowicz You can reach me by telephone on UK - London - 992-2039, by electronic mail on EARN/BITNET on MIER%UK.AC.IMPERIAL.PHYSICS.SPVA at UKACRL, (MIER%UK.AC.IC.PH.SPVA is usually an acceptable abbreviation; from the UK system JANET you should use MIER@AC.IMPERIAL.PHYSICS.SPVA) or by post at 42,Heathfield Rd., London W3 8EJ, England. The files are: HP28 - The original program I used to create the list, this has now been hacked around quite a lot, but can be restored by judicious removal of ! marks if you really want to start over from the very beginning. In its present form the program takes an array N$(I0) with names and an array H$ with I0 addresses, then creates an array of pointers N1(I), each pointing to the item whose address comes sequentially after H$(I). The first address is saved in the value F. ADD28 (see below) has now replaced HP28, but the remarks at the beginning of HP28 should be read as they describe variables used by other programs. HP28BYTES - The list of command addresses was obtained using SYSEVAL and methods described in this text file. This is a slightly altered version of the printed article which I sent to friends and user clubs in June 1987. P28 - prints a list of HP-28C commands, created by HP28, in its original order, namely the order in which the commands are given by the CATALOG operation. HP28SORT - Creates a list of command names (M$) and addresses (E$) sorted in address order, using the sort index built up by HP28 or ADD28. P28AD - Prints commands in address order, using the lists made by HP28SORT. ADD28 - Adds and corrects items in the lists built up by HP28. SAV28 - Saves command names, addresses, the special character set used to enter HP-28C names, the related key assignments, and the number of items in the list, all on files which will be described below. Works with tape or disk. GET28 - Gets back the data saved on tape/disk by SAV28. SAV28 does not save the lists in address order so you must run HP28SORT to get the lists in address order again. Any previous key file is renamed OLDKEYS, and any special character set you may already have is appended to the character set used by HP28. DAT28 - Text file with data saved by SAV28. Contains the arrays of names, addresses and pointers, plus the CHARSET$ with the special characters. ADAT28 - Alternative to DAT28, containing only printable characters. Each of the special characters described in the list with KEY28 below is replaced by the ordinary characters in brackets. To use this list rename the file DAT28 to something else, then rename ADAT28 to DAT28, then proceed as described in the write-ups. As the file has no special characters you can use it with all the programs just as they are, including PSPEC28 which will do nothing untoward as it will not find any special characters. KEY28 - Key file saved by SAV28. This assigns special HP-28C symbols to the shifted number keys as described below. For users who cannot print special characters the alternative datafile ADAT28 uses the characters in brackets. If you use these alternative characters then the keyfile will be of no use to you; you could change GET28 so it does not read in the key definitions. 1: not equals ( NOT= ) 2: less than or equals ( <= ) 3: integral sign ( INTEGRATE ) 4: capital sigma ( Sig ) 5: greater than or equals ( >= ) 6: curly d - differentiation symbol ( d ) 7: lower case pi ( PI ) 8: right-hand arrow ( -> ) 9: square root ( SQRT ) Sigma, not equals and PI are available as HP-71 characters, the other six are defined by use of CHARSET. PSPEC28 - The programs P28 and P28AD call subprogram PSPEC which prints these characters correctly on an Epson MX-80 or FX-80 printer in normal (not expanded or bold) mode. I use an MX-80F/T III with the HP-IL board from an HP82905B mounted inside it. That way I don't need an IL to RS232C or Centronix interface, but the same programs should work with other configurations. I hope to write a ThinkJet version, but the ThikJet insists on doing a line feed after every graphic print command, so P28 and P28AD will have to be changed as well so that all the special characters are printed at one pass. For the present it is best to use the alternative characters provided by ADAT28. A typical use of this set of files after you have read this HELP file would be: 1. Print/display and read the article HP28BYTES. This should print correctly on any ordinary 80 column printer. 2. Get/borrow an HP-71, and an HP82905B printer or an Epson compatible printer with an interface to connect it to the HP-71. Alternatively you could rewrite PSPEC to print the special HP-28 characters on your own printer. Another alternative would be to rename the file ADAT28 as described above and to use all the programs as described here, but without the special HP-28C characters. 3. Read GET28 into your HP-71 and run it to read in the command name and address data, plus related data and key assignments. If you have trouble with this program or any other one, first check the remarks in that program, then check the remarks in related programs (SAV28 in this case) and then check the remarks in HP28 which was the original program of this set. 4. Read in P28 and PSPEC28. If your HP-71 is short of memory then you may want to purge programs which you no longer need, in this case you could purge GET28. 5. Run P28 to print the original list of commands. 6. Use this list and the methods described in HP28BYTES to study the HP-28C. Assuming you find some changes or additions that you want to make to the list, continue as follows. 7. Read in ADD28. Purge P28 if you are short of memory. 8. Run ADD28 to add, correct or delete commands in the list. ADD28 identifies commands by their numbers as given in the list printed by P28. Note that when you "End" ADD28 it will spend about 10 minutes removing any deleted items and then rebuilding the array of pointers. 9. Run P28 again to get an updated list of commands and check that the changes were made correctly. 10. Read in HP28SORT and run it to produce a new pair of arrays of command names and addresses, sorted in the order of their addresses. Note that SAV28 does not save these arrays, so you must always run HP28SORT to recreate them if you alter the command list or read it into the HP-71 before you print a list in adress order. The name and address arrays created by HP28SORT are called M$ and E$. 11. Read in P28AD and run it to print your own version of the list of commands in address order. 12. Read in SAV28 and run it to make a copy of your updated data. If you are short of memory you can run this program immediately after HP28SORT, then purge any files you no longer need, and destroy the arrays N$, H$ and N1. Note that the disk or tape on which these files have reached you already has the original versions of the data files - rename them before saving your new versions, or delete the originals, or change SAV28 and GET28 to use new names for your versions. Note also that GET28 adds the special characters at the front of the present CHARSET$ string every time it is run, so this string will grow by 6 characters every time you run GET28, and will write 6 more chars out to the data file every time you run SAV28. You can avoid this by using: CHARSET CHARSET$[37,768] to remove excess copies of the six specially defined characters. 13. Tidy up by deleting any remaining unwanted files and DESTROYing any unwanted variables. 14. Remember to send any new information to Wlodek so he can share it. 15. Get some rest, it's probably way past midnight by now!