%%HP: T(3)A(D)F(.);
@ by Joseph K. Horn
DIR
  TR42   @ Translates 42 INPRT'ed program into ->41'able form.
    \<< DUP "}" POS 2 + MAXR SUB    @ remove line 00
      1 TAB42 SIZE                 @ loop through 42 lookup table
      FOR n 'TAB42' n GET         @ fetch next command pair
        EVAL REPLACE             @ global search & replace
      NEXT                      @ leave translated string on stack.
    \>>
  TAB42 {              @ lookup table of { 42 41 } commands
{ "+/-" "CHS" }        @ change sign
{ "\->DEC" "DEC" }     @ octal to decimal
{ "\->RAD" "D-R" }     @ degrees to radians
{ "ENTER" "ENTER\|^" } @ add up-arrow to ENTER
{ "N!" "FACT" }        @ factorial
{ "FP" "FRC" }         @ fractional part
{ "\->HMS" "HMS" }     @ decimal hours to H.MMSS
{ "\->HR" "HR" }       @ H.MMSS to decimal hours
{ " IP" " INT" }       @ integer part (leading space for AIP)
{ "\->OCT" "OCT" }     @ decimal to octal
{ "\->REC" "P-R" }     @ polar to rectangular
{ "Rv" "RDN" }         @ roll down
{ "\->DEG" "R-D" }     @ radians to degrees
{ "\->POL" "R-P" }     @ rectangular to polar
{ "STO+" "ST+" }       @\
{ "STO-" "ST-" }       @ \ storage
{ "STO\.x" "ST*" }     @ / arithmetic
{ "STO\:-" "ST/" }     @/
{ "X\<=0?" "X<=0?" }   @\ special "<=" sign
{ "X\<=Y?" "X<=Y?" }   @/
{ "\.x" "*" }          @ multiply
{ "\:-" "/" }          @ divide
{ " ST " " " }         @ stack register
{ "\004" "\010" }      @ printer newlines -> real newlines
{ C$ 1 " "'" }         @ double-quotes -> single-quotes
{ "\|>" " " }          @ delete LBL blobs
   }
END
