[comp.sys.handhelds] FlagTool

seitz@az3.informatik.uni-stuttgart.de (Steffen Seitz) (08/26/90)

Here is a small program, that should help to customize the system flags
on the HP-48.

During its creation, I have discovered a small flaw in conjunction
with long pathnames displayed in the status area and the clock string.
Setting flag -40 in a program overwrites a displayed (long) pathname.
Clearing flag -40 in a program does not clear the part in the status
area, that is used for displaying date and time. In both cases, the
display is adjusted after program termination.

Here is the program:
----------------------------< snip >--------------------------------
%%HP: T(3)A(R)F(.);
@
@ Name    : FlagTool - set/clear system flags interactively
@ Author  : Steffen Seitz, seitz<at>informatik.uni-tuebingen.de
@ Date    : 90-08-23
@ 
@ Pressing a [menu key] toggles the flag, whose number is displayed
@ in the corresponding menu label. A set flag is indicated by a small
@ square near its number.
@ [up] and [down] selects the previous and next group of flags.
@ [Enter] terminates the program.
@
@ ( The 'feeling' of this program is adopted from the 'FCAT' program,
@   that has been designed by HP for the HP-42. )
@
@ Checksum: #F7AAh
@ Length: 494 bytes
@
\<< 1 \-> l
  \<< RCLMENU
      DO
        l DUP 5 +
        FOR f
          f IF DUP 64 > THEN 64 - END NEG DUP \->STR
          f IF 10 < THEN " " + END
          SWAP IF FS? THEN 158 ELSE 32 END CHR +
        NEXT
        6 \->LIST TMENU -1 WAIT
        IP
        CASE
          DUP 11 \>= OVER 16 \<= AND
            THEN DUP 11 - l + NEG IF DUP FS? THEN CF ELSE SF END END
          DUP 25 ==
            THEN l 6 - IF DUP 1 < THEN 64 + END 'l' STO END
          DUP 35 ==
            THEN l 6 + IF DUP 64 > THEN 64 - END 'l' STO END
        END
      UNTIL 51 == END
      MENU
  \>>
\>>

Steffen Seitz
seitz@informatik.uni-tuebingen.de