%%HP: T(1)A(D)F(.); DIR NB « "NB" DROP 0 1 1 Ť Žlmax Žl0 ok « IF 'LST' RCL VTYPE -1 == THEN CHLST IF THEN TV ELSE 0 'ok' STO END ELSE TV END WHILE ok REPEAT GKEY Ť k « CASE k 25.2 == THEN TVDN END k 35.2 == THEN TVUP END k NUMKY THEN VU TV END k 25.1 == THEN Žl0 7 - 1 MAX 'Žl0' STO TV END k 35.1 == THEN Žl0 7 + Žlmax 6 - MIN 1 MAX 'Žl0' STO TV END k 35.3 == THEN Žlmax 6 - 1 MAX 'Žl0' STO TV END k 25.3 == THEN 1 'Žl0' STO TV END k CAP THEN SRCH 'Žl0' STO TV END k 16.1 == THEN CHLST IF THEN TV END END k 11.1 == THEN LADD TV END k 12.1 == THEN LSTK TV END k 13.1 == THEN FIELD TV END k 14.1 == THEN INFO TV END k 15.1 == THEN NEWL TV END k 91.3 == THEN OFF END 0 'ok' STO END » END » 2 MENU » NEWL « "NEWL" DROP DEPTH Ť d « IFERR VARS 28 MENU "List Name" { Ś 1 1 } INPUT "'" SWAP "'" + + STRŤ DUP 'LST' STO "~" "Field " 0 DO 1 + DUP2 + { Ś 1 1 } INPUT 3 ROLLD UNTIL 3 PICK "" == END 3 ROLLD DROP DROP 1 - ŤLIST 1 3 ŤLIST 1 ŤLIST SWAP STO 1 'Žl0' STO { } TMENU CLLCD "ORDERING VARIABLES" 3 DISP ORDER THEN DEPTH d - DROPN END 2 MENU » » LADD « "LADD" DROP 28 MENU { } Ť rec « 'LST' RCL Žlmax 1 + GET 2 GET REVLIST OBJŤ 1 SWAP START { Ś } INPUT 'rec' STO+ NEXT rec REVLIST » LST SWAP LSRT 'LST' RCL STO » LSRT « "LSRT" DROP 0 0 Ť e j n « OBJŤ DUP 'n' STO 'j' STO IF j 1 > THEN WHILE j PICK e < HEAD REPEAT 'j' DECR DROP END END e j 1 + ROLLD n 1 + ŤLIST » » LEDT « "LEDT" DROP 28 MENU 'LST' RCL SWAP DUP2 GET 'LST' RCL Žlmax 1 + GET 2 GET SWAP 2 « { Ś } SWAP + INPUT » DOLIST PUT LST SORT 'LST' RCL STO » LSTK « IF DEPTH 0 ‹ THEN LST SWAP LSRT 'LST' RCL STO END » INFO « CLLCD # 21d # 8d BLANK DUP DUP 3 DUPN 6 ŤLIST TMENU 'LST' RCL ŤSTR DUP SIZE 1 - 2 SWAP SUB 1 DISP "Length: " LST SIZE 1 - + 2 DISP "Bytes: " 'LST' RCL BYTES SWAP DROP + 3 DISP 7 FREEZE GKEY DROP » VU « "VU" DROP 1 - Žl0 + IF DUP Žlmax ‰ THEN Ť num « LST num GET OBJŤ IF DUP 1 > THEN 2 SWAP START " " SWAP + + NEXT ELSE DROP END CLLCD 1 DISP { "EDIT" "DEL" "ŤSTK" } TMENU 7 FREEZE num GKEY Ť k « CASE k 11.1 == THEN LEDT END k 12.1 == THEN IF YN THEN LRM END END IF k 13.1 == THEN LST SWAP GET 1 END DROP END » » ELSE DROP END » TV « "TV" DROP LST SIZE 1 - 'Žlmax' STO LST Žl0 DUP 6 + Žlmax MIN IF DUP2 ‰ THEN SUB REVLIST OBJŤ 1 SWAP 'LST' RCL Žlmax 1 + GET 3 GET Ť v « CLLCD FOR i v GET i " " + SWAP + i DISP NEXT » ELSE 3 DROPN CLLCD END { "ADD" "STKŤ" "FIELD" "INFO" "NEW" "CHLST" } TMENU 7 FREEZE » LRM « "RM" DROP LST OBJŤ DUP DUP 3 + ROLL - 2 + ROLL DROP 1 - ŤLIST 'LST' RCL STO » CHLST « "CHOOSE A LIST" 5 TVARS 1 CHOOSE IF THEN 'LST' STO 1 'Žl0' STO 1 ELSE 0 END » FIELD « "FIELD" DROP CLLCD 'LST' RCL Žlmax 1 + GET 2 GET REVLIST OBJŤ 1 SWAP FOR i i " " + SWAP + i DISP NEXT { "ADD" "SWAP" "EDIT" "DEL" "DISP" } TMENU GKEY DUP IF { 11.1 12.1 13.1 14.1 15.1 } SWAP POS 0 ‹ THEN Ť k « CASE k 11.1 == THEN FADD END k 12.1 == THEN FSWP END k 13.1 == THEN FEDT END k 14.1 == THEN FDEL END k 15.1 == THEN IF FNUM THEN FDISP END END END » ELSE DROP END » FSWP « "FSWP" DROP IF FNUM THEN IF FNUM THEN IF DUP2 ‹ THEN Ť i j « 'LST' RCL Žlmax 1 + DUP2 GET DUP 4 ROLLD 2 GET PUT 'LST' RCL RCL 1 « i DUP2 GET 3 ROLLD 2 PICK j GET PUT j 3 ROLL PUT » DOLIST Žlmax 1 + DUP2 GET 4 ROLL SWAP 2 SWAP PUT PUT 'LST' RCL STO IF i 1 == j 1 == OR THEN 'LST' RCL DUP RCL SORT SWAP STO END » ELSE DROP2 END END ELSE DROP END » FDEL « "FDEL" DROP FNUM IF THEN Ť Ži « 'LST' RCL Žlmax 1 + DUP2 GET DUP 4 ROLLD 2 GET PUT 'LST' RCL RCL 1 « OBJŤ DUP Ži - 2 + ROLL DROP 1 - ŤLIST » DOLIST Žlmax 1 + DUP2 GET 4 ROLL SWAP 2 SWAP PUT PUT 'LST' RCL STO » END » FADD « "FADD" DROP "New Field Name" { Ś } INPUT LST Žlmax 1 + GET 2 DUP2 GET 4 ROLL + PUT 1 ŤLIST Žlmax 1 + LRM LST 1 « "" + » DOLIST SWAP + 'LST' RCL STO » FEDT « "FEDT" DROP FNUM IF THEN Ť i « 'LST' RCL Žlmax 1 + DUP2 GET 2 DUP2 GET i DUP2 GET { Ś } SWAP + "Field name" SWAP INPUT PUT PUT PUT » END » FDISP « 'LST' RCL Žlmax 1 + DUP2 GET 3 5 ROLL PUT PUT » FNUM « "FNUM" DROP 'LST' RCL Žlmax 1 + GET 2 GET SIZE DUP "Field 1" SWAP + { V } INPUT STRŤ DUP DUP IF 4 ROLL ‰ SWAP 1 Š AND THEN 1 ELSE DROP 0 END » TVUP « "TVUP" DROP IF Žl0 6 + Žlmax < THEN 'Žl0' INCR LST SWAP 6 + GET 'LST' RCL Žlmax 1 + GET 3 GET GET LCDŤ DUP { # 6d # 8d } { # 131d # 55d } SUB { # 6d # 0d } SWAP REPL ŤLCD "7 " SWAP + 7 DISP END 7 FREEZE » TVDN « "TVDN" DROP IF Žl0 1 > THEN 'Žl0' DECR LST SWAP GET 'LST' RCL Žlmax 1 + GET 3 GET GET LCDŤ DUP { # 6d # 0d } { # 131d # 47d } SUB { # 6d # 8d } SWAP REPL ŤLCD "1 " SWAP + 1 DISP END 7 FREEZE » CAP « "CAP - or - KeyŤA-Z" DROP IF DUP DUP 0 TRNC - .4 == OVER 0 TRNC DUP 53 ‰ SWAP 51 ‹ AND AND THEN { 11 12 13 14 15 16 21 22 23 24 25 26 31 32 33 34 35 36 41 42 43 44 45 46 52 53 } SWAP 0 TRNC POS 1 - "A" NUM + CHR 1 ELSE DROP 0 END » SRCH « 1 Žlmax Ť c a b « 'LST' RCL CASE DUP a GET c > 1 GET THEN DROP a END DUP b GET c < 1 GET THEN DROP b END WHILE a b + 2 / 0 TRNC DUP a > REPEAT DUP2 GET 1 GET CASE DUP c < THEN DROP 'a' STO END DUP c > THEN DROP 'b' STO END c == THEN 'a' STO 0 'b' STO END END END DROP DROP a 1 + END Žlmax 6 - MIN » » NUMKY « "NUMKY" DROP 0 TRNC DUP -1 TRNC 10 / SWAP 10 MOD Ť t u '(8-t)*3+u-1' IF DUP DUP 7 ‰ SWAP 1 Š AND THEN 1 ELSE DROP 0 END » GKEY « IFERR -1 WAIT THEN IF -55 FC? THEN DROP END 91.1 END » YN « CLLCD " This action can't be reversed. Are you sure?" 2 DISP 3 FREEZE { "YES" { } { } { } { } "NO" } TMENU GKEY IF 11.1 == THEN 1 ELSE 0 END 2 MENU » LST GEO GEO { { "Bombay, India" "" "" "+5:30" } { "Devil's Tower, WY" "104.443 W" "40.34 N" "-7" } { "Madrid, Spain" "" "" "+1" } { "Salisbury, MD" "?" "?" "-5/-4" } { "~" { "Place" "LONGITUDE" "LATITUDE" "Time Zone" } 1 } } END