^ma 1 40 ^pl 0 ^ju ^sk0EXTENDED IL ROM - THE ENHANCEMENT MODULE ^sk0---------------------------------------- ^sk0That is the title on the cover of the manual and it is not far from the truth. When the HPIL ROM, the Cassette Tape Drive and the IL version of the HP82143A printer were introduced in late 1981 no provision was made for future use of disc drives (with more than 131,072 bytes of storage) or for 80 column printers. Allthough the HP41 can drive both the Thinkjet and the 9114A disc drive by means of the standard IL module it cannot make anything like full use of either device. The Extended IL ROM provides a FUNCTION (as distinct from FOCAL) solution to this problem. ^sk1 19 of the functions in the EXTIL ROM provide an enhancement to the type and the number of files that can be stored on a disc. ^sk1SNEWM : ^sk0 This function provides the ability to store upto 2183 files on a disc (compared with the 447 maximum on a tape). Use of SNEWM could not be simpler - key in XEQ Alpha SNEWM Alpha and SNEWM followed by 4 prompts will appear. Fill in the prompts right justified (480 entries would be 0480) and R/S. The rest is as for the NEWM function of the HPIL ROM. Should you attempt to enter a directory size greater than 2183 on a disc or 447 on a tape the command will fail and the error message DATA ERROR will appear. ^sk0NAMEMED : ^sk0Those users who have several tapes or discs cannot identify a DIR listing contents other than manually, say with a pencil. NAMEMED allows the user to give a magnetic medium, be it cassette or disc, a volume label of upto 6 characters. This volume label is output as part of the SDIR listing. ^sk0SCREATE : ^sk0This fuction is the same as the CREATE function of the HPIL ROM but it allows you to create files of upto 65535 registers (458745 bytes by my maths) long. That should be large enough for any 41 user. Attempts to create files larger than this will result in the DATA ERROR message. ^sk0SWRTA : ^sk0Works exactly the same way as WRTA, even to the point of allowing SF11 before use. ^sk0SWRTK : ^sk0Works in a similar manner to WRTK but allows key assignments for plug in module programs & functions to be saved. It's inclusion is a distinct enhancement to the HP41's capability. ^sk0SWRTP/SWRTPV : ^sk0These functions replace WRTP and WRTPV of the standard HPIL ROM. ^sk0SWRTS : ^sk0This is similar to WRTS and allows the HP41's status to be saved to a magnetic medium. ^sk0READBUF/WRTBUFX : ^sk0The READ BUFfer and WRiTe BUFfer by X functions allow the User to read and write a buffer to and from a mass storage device. These buffers are stored in the HP41 just above the key assignments and below the .END. To save one of these buffers place the name in Alpha and the buffer ID in X. The name must not have more than 6 characters and it is suggested that the last character be a number as there is no way of telling from an SDIR listing the ID of the buffer - the digit could identify it. For further info on buffers ask Wlodek Mier-Jedrzejowicz or wait for his buffer article to appear in DATAFILE (soon?). ^sk0READXM/WRTXM : ^sk0These two functions allow the User to save that portion of Extended memory that is being used to a magnetic medium and to read such files from a magnetic medium. The filename must not be longer than 7 characters. Using them is simple - put the filename in Alpha and XEQ Alpha READXM or WRTXM Alpha. Two error messages are provided: NO XFM which appears if no Extended Memory is present (applies only to 41C/CV) and DIR EMPTY which appears if there are no files in Extended Memory. ^sk0READCAL/WRTCAL : ^sk0Ever since the introduction of Extended Memory it has been very difficult (if not impossible) to do a true Write All for the READA/WRTA functions existed before Extended memory did. Well, these two functions take care of that 'loophole'. The same two error messages that apply to READXM/WRTXM apply here too and the usage is similar - put the filename (LEN<=6) in Alpha and XEQ Alpha READCAL/WRTCAL Alpha. ^sk0SDIR : ^sk0This function replaces the DIR function of the HPIL ROM. It recognizes the 3 (XMEM, CALC and BUFF) new file types and it displays all file types with 4 characters rather than 1. In addition an SDIR listing will show the volume label (see NAMEMED), the number of directory entries and the number of records left on the magnetic medium. ^sk0DIRSIZE : ^sk0This is a function new to the HPIL system in that it will tell you the maximum number of directory entries on a magnetic medium - useful when you forget what size you NEWM/SNEWMed. ^sk0DIRLEFT : ^sk0Use of DIRLEFT will indicate to the user how many more directory entries may be added to a magnetic medium. ^sk0RECLEFT : ^sk0This is a companion function to DIRLEFT insofar as it tells the user how many unused records (how much blank and available space) remains on the magnetic medium. ^sk0SCOPYFL : ^sk0This function is similar in operation to COPYFL in the Extended I/O module. It will copy an HP41 file from one mass memory device to another without the file being resident in the HP41. ^sk1UTILITY FUNCTIONS ^sk1Three 'utility' fuctions are provided in this Rom - X>AR, CLRBUF and PRTAID. The first acts in the same way as XTOA in the Extended Functions Rom. Certain plug-in modules, David Assem, CCD, Advantage, EXTIL, Time, Plotter, HPIL Developement, CMT and DATAFILE(ES-41) Roms create buffers in which to store data safe from the actions of the user. (?) CLRBUF will delete these buffers, thus making room for more programs or data. PRTAID is the third and final 'utility' function. It allows the user to select the device that is to receive the material the EXTIL ROM would normally send to the 'printer device' and is similar in operation to SELECT in the Extended I/O Rom. ^sk1PRINTER FUNCTIONS ^sk1 4 functions provided in the EXTIL ROM make it possible for an HP41 owner to make FULL use of a Thinkjet. ^sk0ATOBUFX : ^sk0Alpha to BUFfer by X allows you to put a string of up to 24 characters in the EXTIL ROM buffer for later use by SACA. Such strings may be numbered from 1 to 31, excluding 7. To use this function clear Alpha (CLA), place the desired string (using X>AR if necessary) in Alpha, the string ID in X and XEQ Alpha ATOBUFX Alpha. The string will be in the EXTIL ROM buffer and ready for future use by SACA. An obvious use of this function would be to create 14 strings to control the Print pitches, Bold mode, Underline, Line spacing, Perforation skip and End-of-line Wraparound. Using the 27 ACCHR 38 ACCHR 107 ACCHR etc. technique is clumsy and not everyone has a ZENROM. The amount of HP41 memory used is quite economical: 2 registers are needed for buffer overhead and one register for each string. Thus the full set of 14 strings mentioned above would take 16 registers (112 bytes). Usage is simple - say we had created string 1 to be NORMAL (CF12) mode and string 2 to be EXPANDED (SF12) then 2 X>AR SACA will put CHR$(2) in Alpha; this character will be intercepted by SACA and the escape code to set expanded print will be sent. The Thinkjet will now be in EXPANDED (SF12) mode till you use the 1 X>AR SACA sequence to switch the Thinkjet back to NORMAL (CF12) mode. ^sk0SACA : ^sk0This function is similar to ACA in the HPIL ROM in that it too will accumulate characters for Alpha to the printer buffer. There the similarities end. SACA does not change CHR$(13) into CHR$(124) nor does it change CHR$(126) into CHR$(28). SACA allows you to send CHR$(n) wher n>127. If 1= Alpha and function execution begins. If you want to alter the column width then SF00, put the overall print width (column width * no of columns) in Y and the number of columns in X. Continue as above and function execution will begin. ^sk0MCLIST : ^sk0This function is similar to LIST in the HPIL ROM. The default settings are as for MCPRP and the mode of operation is the same. It too is non-programmable. ^sk1Certain HP41 characters cannot be accomodated on the Thinkjet so the following substitutions are made:- ^sk0NOT EQUAL is represented by an '=' and an overprinted '/'. The ANGLE sign is represented by a'<' with an overprinted vertical slash. APPEND is represented by a '>' with an overprinted vertical slash. The SIGMA sign is represented by a 'wavy' minus sign [CHR$(126)] and the NULL by a '*'. ^sk1BUGS and ERRORS ^sk1The manufacturer admits to one (an addendum is bound into the manual, to overlay the first page) in that SNEWM will not work on a previously un-formatted medium. The addendum states that you should first use NEWM and then SNEWM. I tried NEWM 020 and then SNEWM0480 and the 'fix' worked perfectly. ^sk1I think I have found a bug in the EXTIL ROM. The EXTIL ROM uses the formula DIRSIZE=[INT((N+7)/8]*8-1 where N is the number you input after SNEWM. SNEWM0025 (after NEWM020) gave a DIRSIZE of 31 (correct). A subsequent SNEWM0240 should have shown the DIRSIZE to be 239 - it did not for the answer given was 247. Thinking that I had goofed when doing the SNEWM I checked the disc with a BASIC program (written by Roger Wiley) in an HP75 and the total directory size showed as 248. I reckon the bug is in SNEWM. I have written to SKWID INK, the manufacturers of this Rom, but have yet to receive a reply. The bug is not serious and can very easily be worked round. ^sk1My manual had two page 9's and two page 10's. The example of SDIR shown on page 15 of the manual is wrong because if you initialise a disc with an SNEWM0025 you will get 31 usable entries. Put 9 files on the disc, as the example says, and do a DIRLEFT. The result will be 22, not 16 as shown. ^sk1XROM CLASHES ^sk1This Rom has the same XROM numbers as the Wand. Provided it is put in a lower numbered port than the wand, the wand will still read barcode but the wand functions will not work. ^sk1CONCLUSIONS ^sk1This ROM is a necessity for any serious user of an HP41 mated to a 9114A/Thinkjet who wants to use the additional capabilities that these two devices have over the CTD and Strip printer. If HP ever produce an HP41 Turbo, HP42, call it what you will, they should build in a debugged version of the EXTIL ROM. YES, the Rom is that good. ^sk1If you want to try some of the features of the EXTIL ROM then give me a buzz and I will bring it along to the next London meeting. ^sk1Mark Cracknell, ^sk0 6 Stratton Mews, ^sk0Off South Street, ^sk0Leighton Buzzard, ^sk0Bedfordshire LU7 8NT, ^sk0England. ^sk0------------- ^sk0 [0525-383265]