Simplifying and expanding the HP49G and HP49G+ built-in filers

This package contains new filers which both expand and simplify the built-in filer. Filers 1 - 4 are for the HP49G, Filer5 is for the HP49G+. The first 3 filers need at least ROM 1.19-6, Filer4 requires a not yet released ROM >1.19-6, and Filer5 requires at least ROM 1.22 for the 49G+. It has some extra features described at the end. Filer1 has a one-page application menu while all the others have the tranfer options on a 2nd menu page. Filers 3 and 4 contain a special memory browser on key 3 which allows a recall of purged backup objects and libraries. Main advantages over the built-in filer are:

Name sorting in Filer5 for the HP49G+ is on rightshift N since the EVAL and CAT keys have been swapped on the 49G+. The scanned object is evaluated right on the EVAL key. Filer4 and Filer5 are language-sensitive, i.e., not only error messages but all built-in messages and menu names are translated into the chosen language.


VERSION 4.2004 (Filer5 only).  SD functionality improved. Creates directory on the SD-card for storing libs,

VERSION 3.2004 (Filer5 only). Hardly noticable bug fixed when saving HOME on the card. 

VERSION 2.2004 (Filer5 only). Menu option SD allows saving all ports on the SD-card in one key-stroke, see below. Other extras of Filer5 are described in the paragraph More extras of Filer5.

VERSION 1.2004 (Filers 2 - 5): I/O parameter setting still more comfortable, overwrite toggler now on menu page 2.

VERSION 9.2003: Filers 1 - 3 revised. Filers 4 and 5 added. Filer4 for the HP49G requires ROM >1.19-6, it will not work under ROM 1.19-6. Filer5 is for the HP49G+ only. No date stamps in backups of Port0 in other ports (to avoid problems with the SD card). Menu page 2 in Filer5 modified.

VERSION 8.2003: Rightshift EDITB uses ASM2 for recompilation. This HTML document written to replace Filers.txt.

VERSION 7.2003: HOME backups now have the time of creation appended. HOME backups under older versions of Filer can still be restored.

VERSION 6.2003: This version distinguishes from v.5.2003 only in that the ARCHIVE/RESTORE-Box has been expanded to allow saving and restoring Port0 which may be empty after a system crash or if the batteries are too old.

VERSION 5.2003: Filer3 (for advanced users) adds a Memory browser on key 3  to Filer2.

VERSION 4.2003: Find-option now on the ALPHA-key which sets the ALPHA-mode. Finds any name or library title.

VERSION 3.2003: The SPC-key is multi-functional. It invokes a HIDE/UNHIDE choose box if in a directory. This change makes obsolete other hiding tools but it preserves compatibility. If a port is scanned, SPC invokes an ARCHIVE/RESTORE choose box. The ARCHIVE backup name has date&time appended. In Filer1, NXT toggles the 3 languages (a menu option in Filer2).

VERSION 1.2003: A choose box for ARCHIVE/RESTORE is now on a key. Functionality of the shifted TIME key has been improved.

VERSION 7.2002: Option SORT discarded. All sorting options (including return to the original order) are now on hard keys.


The main appl menu in Filer1 has only one page as follows:


All other options are on hard keys.The menu option KEYS informs you of active keys during a filers run as shown by the screen shot for Filer3. This screen looks somewhat different in different filters.Pressing KEYS in the main menu Active hard keys are listed in more detail below and referred to by the letter on it - provided there is any. After a while, you'll remember the relevant keys. Menu options others than KEYS are self-explaining. PURGE is executed with or without confirmation, depending on flag -76. Like COPY it may be used with multiselection. Selection is done with the +/- key. EDITB ("Edit Best") edits like DownArrow, while LS EDITB (LS = Leftshift) edits an object always in a command line like LS DownArrow. For instance, pressing EDITB on PERIOD in the CAS menu, you see 2pi in the equation writer, but pressing LS EDITB one sees '2*pi' in the edit line. In addition, there is a SysRPL editor on RS EDITB (RS = Rightshift), displaying PERIOD as "SYMBOL ZINT 2 xPI x*". This function should only be used by those familiar with the basics of SysRPL. Note that COPY overwrites an equally named backup if copying from a directory to a port.

Purging in Port2 (flash bank) is less dangerous for users of Filer3. Purged port objects can mostly be recovered with the memory browser since they are not at once removed. Page 2 of the main menu in Filer2 and the other filers contains options related to transfer and looks as follows:

IOP?     SEND     RECV     XSEND     XRECV     ~OVW

IOP? is the most comfortable I/O parameter setter one can imagine. It sets a screen and menu for toggling wire/infrared (only 49+) and ascii/binary and cycling through all admissible IOPAR values relevant for the 49/49+. The menu look somewhat different in Filer5 because IR transfer returned and a SD-card may be installed. CANCEL and OK leave the dialog box and set the currently displayed values which the user might have changed, In all filers, Reset is the last option in the IOP? menu. Remember that IOPAR does not include a setting of wire/infrared or ascii/binary transfer! With the exception of XRECV which keeps waiting for input of names, all transfer options can be used with multiple choice. ~OVW toggles the Overwrite flag. Filer1 has a language toggler on L (NXT) and transfer options from  page 2 are on the following hard keys not listed below:
 > (SEND),  < (RECV),  X (XSEND),  LS X (XRECV),  Y (IOP?).

Arrow keys work as in the built-in filer. For instance, LeftArrow goes UPDIR, RighArrow to a selected directory. Most hardkey options are active only if the main appl menu is present, TREE has its own menu. More options can be added to the APPS box. But these must not affect the filers application menu. For instance, from APPS you may directly run the Constants lib and I/O-functions  inside a filer. Trivially valid hardkeys in the filers are not listed below (e.g. CANCEL, TurnOff, etc). Keys working both with a single item and multiple items are marked with asterisk.

Hard Keys in the filers
APPS choose box (for calling additonal options inside the filers).
Toggle two distinct Header views of the filer. 
Toggle inverse sorting provided a sorting (Name, Size, Type) is active.
(VAR) Toggle variables only, or long library titles if in a port. 
(STO) store the level 1 object in the selected name by overwriting it. If  in a port, the level 1 object is stored in the current directory under a corresponding name. The backup object itself is not overwritten.
RCL * Recall contents of a file to the stack.
L Toggle the built-in languages in Filer1. Same as LANG on page 2 in other filers.
M * Move file to another directory or to a port. Note: backups in ports will be overwritten.
N Names sorted alphabetically. Does EVAL in Filer5 (49G+). Therefore, name sorting is on  RS N.
O * Order one or a set of selected files in a directory.
P Pause (HALT). Return to the filer with the CONT key.
EVAL (rightshifted on the 49G). Eval selected item (e.g., one may temporarily play a game).
  Delete tags from previously selected items. TREE entry in Filer5 (you may unselect also with U).
Q * Quote the selected name(s). Quoting in ports includes the port-tag.
R Rename. Beeps in a port since libraries and backups cannot be renamed.
S Size sorting of files. 
T Type sorting of files (e.g., DIR, LIST, PROG, etc..).
U Unsort, returns original file order after any kind of sorting. Removes also selections. 
V Version information as displayed in this screen shot.Version key display
W (+/-) Select and go to next or previous item.
ALPHA Find a file name after waiting for its first letter in ALPHA mode. Case-insensive search. If searching names starting with $ or other unusual symbols shift has to be used to print the chacacter. Press ALPHA twice in Filer 4 and 5.
TIME Date&Time with running seconds. Disappears with the next key operation but ignores CANCEL.
   . (dot) Immediate return to HOME from anywhere,. also from a directory.  This does not work in the built-in filer.
0,1,2 Immediate entry to ports 0, 1, or 2 from anywhere.
   3 Immediate entry to Port3 (SD-card) in Filer5 provided a SD-card is plugged in.The Memory Browser on key 3 in Filer3 In Filer3 and Filer4 key 3 sets a Memory Browser which shows the contents of each ERAM half (Port1) and of the eight user flash banks as in the example screen shot. This includes also the deleted objects and those with a bad CRC, marked with D and C, respectively. Very useful feature: A deleted object can be recalled to the stack with the STO key. Referring to the screen shot at left, a HOME backup exists in flash bank D (highlighted) that has been deleted (D). No corrupted object is found and the flash bank still has 92 KB free. To exit the Memory Browser, press either CANCEL or the backspace key. 
 SPC Works differently depending on whether in a directory or a port.SPC hit in a directory In a directory (whicch may be HOME), a choose box is launched as shown in the screen shot. HIDE hides the selected files(s) in the current directory. It creates a nullnamed file displayed in the filer as
                       ''...''      CHAR      3
which separates visibles from hiddens by putting the latter behind the nullname which contains a small dummy (character H by default). Hidden files work normally and invisible only in the VAR menu, hence are well protected against unintended overwriting. UNHIDE uncovers the selected files by putting them on top of the directory. If nothing is selected, just the scanned name will be unhidden. Note that anything can be stored in the nullname with the filer's STO function. Also the so-called Hidden directory has a nullname but this one is unvisible in filers.

When pressing SPC in port (including the SD-card), a choose box with the items seen in the example screen is set. In Filer5 only the first two items since no extra saving of Port0 is needed.SPC hit  in a port sets this choose box ARCHIVE archives the entire HOME directory including key assignments in the scanned port, with date and time appended. The screen-shot shows such a HOME backup name just below the choose box. Date format depends on flag -42. Key VAR uncovers the time of creation. Since the card does not accept long names, a HOME backup name on the card contains only the day and month. For restoring, first press key T. This puts all candidates for RESTORE closely together. Then select the desired HOME backup and press RESTORE. Since Port0 is often lost in a system crash, item SavePort0 creates a Port0 backup in the scanned port (1,2 or 3) under the name 'PORT0', containing a list. Don't modify this list by hand. Item RestPort0 restores a scanned Port0 backup. More precisely, it adds to Port0 those objects from the backup not present in the current Port0. Filer5 does not contain these options anymore since one may save anything from the ports on the card.

ENTER Enter the selected directory and leave the filer. Equivalent to running CHDIR at the end of the built-in filer menu and then leaving with CANCEL.

Extras of Filer5

RCL appears in the menu. The TREE option is here on (backspace). In HOME or in a port, LeftArrow enters the TREE as well. XRECV has been replaced by the powerful option SD for data transfer to and from the SD-card. If being in a standard port, SD copies the selected files to the card. If a library was selected, a directory LIBS is created on the card if not already present in which the library is stored. If being on the card, SD copies the selected files to the port to be choosen  in a choose box. If beeing in HOME or another directory, SD may still do something different because from a directory files can be copied to the card with COPY. Hence, in this case SD saves all standard ports on the card in one keystroke. This amazing function allows returning a defective unit to the dealer and keeping all data on a SD-card, including all libraries! No need for saving on a computer. Backup objects with long names (containing the space character) are not saved on the card since the card cannot handle these. This concerns in particular long named HOME backups. Note that these need not be tranfered to the card since dated HOME backups can directly be created on the card with SPC. Attention: In contrast to COPY, SD never overwrites. A library on the card is always wrapped in a list but is automatically unpacked if returned to a standard port. If two objects have the same backup name in different standard ports, only the one with smaller port number is saved on the card. This concerns in particular different versions of the same library in different ports. 

HINT for newbees. We recommend storing the selected filer in Port2 and attaching it to a key. For instance, to leftshift APPS, so that toggling USR mode toggles the selected Filer with the built-in filer. Avoid stepping into a HOME backup with RightArrow, at least do not step into the nullnamed Hidden directory. You' ll end up in a warmstart. This bug has been fixed in ROMs >1.19-6.

HINT for advanced users: The access to APPS makes the filers more powerful. E.g., if the APPS box contains BZDIR from OT49, the scanned directory can be compressed as a whole inside the filer. Keep a copy of the prefered filer in Port2, for having access to after a crash. You may call it with the default filer (a filer invokes another one without problems). RS EDITB uses ASM2 for recompilation. Hence, extable should be present and the libraries 256 and 257 attached (done by default provided OT49 is present). 


Thanks to Jean-Yves Avenard for creating flexible filer-tools, to Carsten Dominik and Luis Boisett for useful suggestions. Luis also wrote the essentials of the search-option on the ALPHA key. The port browser in Filers 3 and 4 has been written by Thomas Rast. Thanks also to Otto Praxl for his support in creating this html document and for beta-testing, and to Steven Martin for revising the document and beta-testing again.

Wolfgang Rautenberg - -