Mumps Class 18

 Using username "sam". sam@172.16.16.142's password: Access denied sam@172.16.16.142's password: Linux sam-desktop 2.6.32-30-generic #59-Ubuntu SMP Tue Mar 1 21:30:21 UTC 2011 i686 GNU/Linux Ubuntu 10.04.2 LTS

Welcome to Ubuntu! * Documentation: https://help.ubuntu.com/

0 packages can be updated. 0 updates are security updates.

Last login: Sun Mar 20 10:28:46 2011 from 172.16.16.56 sam@sam-desktop:~$ cd pocn-moh/ sam@sam-desktop:~/pocn-moh$. run_utf8 sam@sam-desktop:~/pocn-moh$ mumps -dikr %GTM-E-CLIERR, Unrecognized option : DIKR sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>; Using Devices;

GTM>; Communicating using GT.M to the outside world

GTM>; Open & Use & Close

GTM>; Open - Opens a Device

GTM>; Use - Makes the Device the one you write and read from

GTM>; Close - self-explanator

GTM>; Close - self-explanatory

GTM>; Open - O; Use - U; Close - C

GTM>O "/tmp/sam.txt"

GTM>W $IO /dev/pts/3 GTM>W $PRINCIPLE %GTM-E-INVSVN, Invalid special variable name

GTM>W $PRINCIPAL /dev/pts/3 GTM>; $IO - Device I am writing to

GTM>; $Principal - Device I started GT.M with.

GTM>U "/tmp/sam.txt"

GTM>W "$IO is ",$IO,!

GTM>W "$P is ",$P,!

GTM>C "/tmp/sam.txt"

GTM>w $io /dev/pts/3 GTM>W $P /dev/pts/3 GTM>ZSY "cat /tmp/sam.txt" $IO is /tmp/sam.txt $P is /dev/pts/3

GTM>h sam@sam-desktop:~/pocn-moh$ cd sam@sam-desktop:~$ ls 1281251308247.xls astropubkey.asc AUPNLK_investigation.txt Desktop Documents Downloads examples.desktop fm-projection GF3.mp3 Music mysql-dfsg-5.1-5.1.41 mysql-dfsg-5.1-5.1.41-1 ovtemp paps-0.6.8 paps_0.6.8-2.diff.gz paps_0.6.8-2.dsc paps_0.6.8.orig.tar.gz patches Pictures pocn-moh Public rpms201011 swdev swdev-prod-platinum_online_all_mumps.mbk_2010151220002.tgz Templates TMGGRC1.m TMGGRC2.m TMGGRC3.m Videos vistadev-prod-platinum_online_all_mumps.mbk_2009341121729.tgz sam@sam-desktop:~$ cat TMGGRC1.m TMGGRC1 ;TMG/kst-Work with Growth Chart Data ;10/5/10 ; 3/13/11 11:48am ;;"1.0;TMG-LIB;**1**;10/5/10;Build 21       ;        ;"Code FOR working with pediatric growth chart data. ;"NOTE: Data is stored in custom file 22713       ;"      TMGFIX3 loaded in this data ;"       ;"Kevin Toppenberg MD        ;"(C) 10/5/10        ;"Released under: GNU General Public License (GPL) ;       ;"=======================================================================        ;" RPC -- Public Functions. ;"=======================================================================       ;"LENPCTL(AGEYR,GENDER,LEN,NONULL)    -- Return percentile of length FOR age ;"HCPCTL(AGEYR,GENDER,HC,NONULL)     -- Return percentile of head circumference for age        ;"WTPCTL(AGEYR,GENDER,WT,NONULL)      -- Return percentile of weight for age ;"BMIPCTL(AGEYR,GENDER,BMI,NONULL)   -- Return percentile of BMI FOR age        ;"WTLENPCT(AGEYR,GENDER,WT,LEN,NONULL) - Return percentile of WT, LEN combo ;"WHOHAPCTL(AGEYR,GENDER,LEN,NONULL) -- Return percentile of WHO height FOR age        ;"WHOHCPCTL(AGEYR,GENDER,HC,NONULL)   -- Return percentile of WHO head circumference for age ;"WHOWAPCTL(AGEYR,GENDER,WT,NONULL)  -- Return percentile of WHO weight for age        ;"WHOBAPCTL(AGEYR,GENDER,BMI,NONULL)  -- Return percentile of WHO BMI FOR age ;"WHOWLPCT(AGEYR,GENDER,WT,LEN,NONULL) - Return percentile of WHO WT, LEN combo       ;"WHOWSPCT(AGEYR,GENDER,WT,LEN,NONULL) - Return percentile of WHO WT,Stature combo ;"---       ;"LENREF(MODE,GENDER,ARRAY,RLINES)    -- Return array with data for %tile curves ;"HCREF(MODE,GENDER,ARRAY,RLINES)    -- Return array with data for %tile curves        ;"WTREF(MODE,GENDER,ARRAY,RLINES)     -- Return array with data for %tile curves ;"BMIREF(MODE,GENDER,ARRAY,RLINES)   -- Return array with data for %tile curves        ;"WTLENREF(MODE,GENDER,ARRAY,RLINES)  -- Return array with data for %tile curves ;"WHOBMIREF(MODE,GENDER,ARRAY,RLINES) -- Return array with data for %tile curves       ;"WHOHAREF(MODE,GENDER,ARRAY,RLINES)  -- Return array with data for %tile curves ;"WHOWAREF(MODE,GENDER,ARRAY,RLINES) -- Return array with data for %tile curves        ;"WHOHCREF(MODE,GENDER,ARRAY,RLINES)  -- Return array with data for %tile curves ;"WHOWLREF(MODE,GENDER,ARRAY,RLINES) -- Return array with data for %tile curves        ;"WHOWSREF(MODE,GENDER,ARRAY,RLINES)  -- Return array with data for %tile curves ;"=======================================================================       ;"PRIVATE API FUNCTIONS ;"=======================================================================       ;"COMMON(GRAPH,YVAL,XVAL,GENDER,NONULL) -- common lookup for all graphs ;"GETLMS(CHART,MONTHS,GENDER,L,M,S) --return the LMS values for a given chart       ;"LMS2Z(X,L,M,S) --convert Input value X, and L,M,S SET  into a Z score ;"LMSZ2Y(L,M,S,Z) --convert a LMS pair + Z score into a value (e.g. weight for Z=-1.645)       ;"LMSP2Y(L,M,S,P) --convert  LMS pair + %tile --> value (e.g. weight for 5th %tile) ;"Z2PCTL(Z)-- Convert a Z score into a Percentile       ;"PCTL2Z(P) -- Convert a percentile to an approximated Z-score ;"SETSUFFIX(NUM) --Return a suffix, e.g. 1-->'st %tile', 2--> '2nd %tile' etc.       ;" ;"=======================================================================       ; LENPCTL(AGEYR,GENDER,LEN,NONULL)        ;               ;"Purpose: Return percentile of length for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       LEN: stature or recumbent length in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW GRAPH,RESULT               IF (+$GET(AGEYR)*12)<24 SET GRAPH="LENGTH BY AGE -- INFANT"               ELSE  SET GRAPH="STATURE BY AGE"               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               SET RESULT=$$COMMON(GRAPH,.LEN,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; HCPCTL(AGEYR,GENDER,HC,NONULL)  ;               ;"Purpose: Return percentile of head circumference for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       HC: Head circumference in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               NEW RESULT               SET RESULT=$$COMMON("HEAD CIRC BY AGE -- INFANT",.HC,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; WTPCTL(AGEYR,GENDER,WT,NONULL)  ;               ;"Purpose: Return percentile of weight for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       WT: weight in *Kg*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW GRAPH,RESULT               IF (+$GET(AGEYR)*12)<24 SET GRAPH="WEIGHT BY AGE -- INFANT"               ELSE  SET GRAPH="WEIGHT BY AGE"               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               SET RESULT=$$COMMON(GRAPH,.WT,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; BMIPCTL(AGEYR,GENDER,BMI,NONULL)        ;               ;"Purpose: Return percentile of BMI FOR age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       BMI: weight in Kg/M**2               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' NEW MONTHS SET MONTHS=+$GET(AGEYR)*12 NEW RESULT SET RESULT=$$COMMON("BMI BY AGE",.BMI,.MONTHS,.GENDER,.NONULL) ; QUIT RESULT ; WTLENPCT(AGEYR,GENDER,WT,LEN,NONULL)   ; ;"Purpose: Return percentile of WT, LEN combo              ;"Input: AGEYR: age in *Years* ;"      GENDER: should be M or F               ;"       WT: weight in Kg               ;"       LEN: stature or recumbent length in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW GRAPH,RESULT               IF ((+$GET(AGEYR)*12)<12)!(LEN<77)  DO               . SET GRAPH="WEIGHT FOR LENGTH -- INFANT"               ELSE  DO               . SET GRAPH="WEIGHT FOR STATURE"               SET RESULT=$$COMMON(GRAPH,.WT,.LEN,.GENDER,.NONULL) ;               QUIT RESULT               ; WHOHAPCTL(AGEYR,GENDER,LEN,NONULL)        ;               ;"Purpose: Return percentile of WHO length for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       LEN: stature or recumbent length in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW RESULT               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               SET RESULT=$$COMMON("WHO-HEIGHT BY AGE",.LEN,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; WHOHCPCTL(AGEYR,GENDER,HC,NONULL)         ;        ;"Purpose: Return percentile of WHO head circumference for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       HC: Head circumference in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               NEW RESULT               SET RESULT=$$COMMON("WHO-HEAD CIRC BY AGE",.HC,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; WHOWAPCTL(AGEYR,GENDER,WT,NONULL)         ;               ;"Purpose: Return percentile of WHO weight for age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       WT: weight in *Kg*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW RESULT               NEW MONTHS SET MONTHS=+$GET(AGEYR)*12               SET RESULT=$$COMMON("WHO-WEIGHT BY AGE",.WT,.MONTHS,.GENDER,.NONULL) ;               QUIT RESULT               ; WHOBAPCTL(AGEYR,GENDER,BMI,NONULL)       ;               ;"Purpose: Return percentile of WHO BMI FOR age ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       BMI: weight in Kg/M**2               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' NEW MONTHS SET MONTHS=+$GET(AGEYR)*12 NEW RESULT SET RESULT=$$COMMON("WHO-BMI BY AGE",.BMI,.MONTHS,.GENDER,.NONULL) ; QUIT RESULT ; WHOWLPCTL(AGEYR,GENDER,WT,LEN,NONULL)   ; ;"Purpose: Return percentile of WHO WT, LEN combo              ;"Input: AGEYR: age in *Years* ;"      GENDER: should be M or F               ;"       WT: weight in Kg               ;"       LEN: stature or recumbent length in *Cm*               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               NEW RESULT               SET RESULT=$$COMMON("WHO-WEIGHT FOR LENGTH",.WT,.LEN,.GENDER,.NONULL) ;               QUIT RESULT               ; WHOWSPCT(AGEYR,GENDER,WT,LEN,NONULL)     ;        ;"Purpose: Return percentile of WHO WT, STATURE combo ;"Input: AGEYR: age in *Years*              ;"       GENDER: should be M or F               ;"       WT: weight in Kg               ;"       LEN: stature or recumbent length in *Cm* ;"      NONNULL: OPTIONAL, default=0.  If 1 then 'N/A' is returned instead of ''               ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A' NEW RESULT SET RESULT=$$COMMON("WHO-WEIGHT FOR STATURE",.WT,.LEN,.GENDER,.NONULL) ; QUIT RESULT ; COMMON(GRAPH,YVAL,XVAL,GENDER,NONULL)  ; ;"Purpose: common lookup for all graphs              ;"Input: GRAPH -- The name of the graph to lookup. ;"      YVAL -- the value to lookup on the graph               ;"       XVAL: Will be: Months or Length ;"      GENDER: should be M or F               ;"       NONNULL: OPTIONAL, default=0. If 1 then 'N/A' is returned instead of '' ;"Results: e.g. 54th %tile, or "" IF invalid. If NONNULL=1, then return 'N/A'               ;               NEW DIC,X,Y,L,M,S               SET NONULL=$GET(NONULL)               NEW RESULT SET RESULT=$SELECT(+NONULL'=0:"N/A",1:"")  ;"default IF +$GET(XVAL)=0 GOTO COMQT SET GENDER=$EXTRACT($$UP^XLFSTR(GENDER),1) IF (GENDER'="M")&(GENDER'="F") GOTO COMQT SET YVAL=+$GET(YVAL) IF YVAL=0 GOTO COMQT SET DIC=22713,DIC(0)="M",X=$GET(GRAPH) DO ^DIC IF +Y'>0 GOTO COMQT ;"IF GRAPH="WHO-WEIGHT FOR LENGTH" SET XVAL=XVAL\1   ;"ELH TEST IF +$$GETLMS(Y,XVAL,GENDER,.L,.M,.S)<0 GOTO COMQT NEW Z SET Z=$$LMS2Z(YVAL,L,M,S) NEW W SET W=$$Z2PCTL(Z)\1 IF W=-1 SET RESULT="Invalid value" GOTO COMQT SET RESULT=$$SETSUFFIX(W) ; COMQT    QUIT RESULT ; LENREF(MODE,GENDER,ARRAY,RLINES)        ; ;"Purpose: Return array filled with data for percentile curves              ;"Input: MODE -- 1 if for age range 0-36 months, 2 if age 2-20 yrs ;"      GENDER -- M OR F               ;"       ARRAY -- PASS BY REFERENCE. AN OUT PARAMETER. PRIOR VALUES KILLED. ;"          ARRAY(%tile,Age)=x^y               ;"       RLINES -- OPTIONAL. Default='5,10,25,50,75,95' Listing of which lines to get ;"Result: none              NEW GRAPH               IF +$GET(MODE)=1 SET GRAPH="LENGTH BY AGE -- INFANT"               ELSE  SET GRAPH="STATURE BY AGE"               DO COMMONREF(MODE,GENDER,GRAPH,.ARRAY,.RLINES) ;               QUIT               ; HCREF(MODE,GENDER,ARRAY,RLINES) ;               ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for LENREF (see above)              DO COMMONREF(MODE,GENDER,"HEAD CIRC BY AGE -- INFANT",.ARRAY) ;               QUIT               ; WTREF(MODE,GENDER,ARRAY,RLINES) ;               ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for LENREF (see above)              NEW GRAPH               IF +$GET(MODE)=1 SET GRAPH="WEIGHT BY AGE -- INFANT"               ELSE  SET GRAPH="WEIGHT BY AGE"               DO COMMONREF(MODE,GENDER,GRAPH,.ARRAY,.RLINES) ;               QUIT               ; BMIREF(MODE,GENDER,ARRAY,RLINES)        ;               ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for LENREF (see above)              DO COMMONREF(MODE,GENDER,"BMI BY AGE",.ARRAY,.RLINES) ;               QUIT               ; WTLENREF(MODE,GENDER,ARRAY,RLINES)      ;               ;"Purpose: Return array filled with data for percentile curves ;"Input: MODE -- 1 if for age range 0-36 months, 2 if age 2-20 yrs              ;"       GENDER -- M OR F               ;"       ARRAY -- PASS BY REFERENCE.  AN OUT PARAMETER.  PRIOR VALUES KILLED.               ;"           ARRAY(%tile,x)=x^y  ;x=LengthOrStature ;"      RLINES -- OPTIONAL.  Default='5,10,25,50,75,95' Listing of which lines to get               NEW GRAPH               IF +$GET(MODE)=1 SET GRAPH="WEIGHT FOR LENGTH -- INFANT"               ELSE  SET GRAPH="WEIGHT FOR STATURE"               DO COMMONREF(MODE,GENDER,GRAPH,.ARRAY,.RLINES) ;               QUIT               ; WHOBMIREF(MODE,GENDER,ARRAY,RLINES)      ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: MODE -- 1 if for age range 0-36 months, 2 if age 2-20 yrs, 3 if age range 0-60 months       DO COMMONREF(MODE,GENDER,"WHO-BMI BY AGE",.ARRAY,.RLINES) ;               QUIT        ; WHOHAREF(MODE,GENDER,ARRAY,RLINES)        ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for WHOBMIREF (see above)       DO COMMONREF(MODE,GENDER,"WHO-HEIGHT BY AGE ",.ARRAY,.RLINES) ;               QUIT        ; WHOWAREF(MODE,GENDER,ARRAY,RLINES)        ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for WHOBMIREF (see above)       DO COMMONREF(MODE,GENDER,"WHO-WEIGHT BY AGE",.ARRAY,.RLINES) ;               QUIT        ; WHOHCREF(MODE,GENDER,ARRAY,RLINES)        ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for WHOBMIREF (see above)       DO COMMONREF(MODE,GENDER,"WHO-HEAD CIRC BY AGE",.ARRAY,.RLINES) ;               QUIT        ; WHOWLREF(MODE,GENDER,ARRAY,RLINES)        ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for WHOBMIREF (see above)       DO COMMONREF(MODE,GENDER,"WHO-WEIGHT FOR LENGTH",.ARRAY,.RLINES) ;               QUIT        ; WHOWSREF(MODE,GENDER,ARRAY,RLINES)        ;        ;"Purpose: Return array filled with data for percentile curves ;"Input: Same as for WHOBMIREF (see above)       DO COMMONREF(MODE,GENDER,"WHO-WEIGHT FOR STATURE",.ARRAY,.RLINES) ;               QUIT        ; COMMONREF(MODE,GENDER,GRAPH,ARRAY,RLINES)       ;               ;"Purpose: Return array filled with data for percentile curves ;"Input: MODE -- 1 if for age range 0-36 months, 2 if age 2-20 yrs, 3 if age range 0-60 months       ;"               4 age range 0-24 months, 5 age range 24-60 months, 6 age range 0-6 months, ;"              7 age range 6-24 months, 8 age range 0-13 months               ;"       GENDER -- M OR F               ;"       GRAPH -- Name of graph               ;"       ARRAY -- PASS BY REFERENCE. AN OUT PARAMETER. PRIOR VALUES KILLED. ;"          ARRAY(%tile,x)=x^y               ;"       RLINES -- OPTIONAL. Default='5,10,25,50,75,95' Listing of which %tile lines to get ;"Result: none              NEW DIC,X,Y,L,M,S               KILL ARRAY               SET GENDER=$EXTRACT($$UP^XLFSTR(GENDER),1)               IF (GENDER'="M")&(GENDER'="F") GOTO CMRFQT               SET DIC=22713,DIC(0)="M",X=$GET(GRAPH)               DO ^DIC               IF +Y'>0 GOTO CMRFQT               NEW IEN SET IEN=+Y               NEW X0,XINC,XMAX               IF (GRAPH="WEIGHT FOR LENGTH -- INFANT") DO               . SET X0=80,XINC=5,XMAX=140  ;"X axis here is LENGTH, and Y = Weight . ;"SET X0=45,XINC=10,XMAX=105 ;"X axis here is LENGTH, and Y = Weight ELSE IF (GRAPH="WEIGHT FOR STATURE") DO               . SET X0=75,XINC=5,XMAX=125  ;"X axis here is STATURE, and Y = Weight               ELSE  IF (GRAPH="WHO-WEIGHT FOR LENGTH") DO               . SET X0=65,XINC=5,XMAX=130               ELSE  DO               . IF MODE=1 SET X0=0,XINC=1,XMAX=36               . ELSE  IF MODE=2 SET X0=24,XINC=12,XMAX=240        . ELSE  IF MODE=3 SET X0=0,XINC=2,XMAX=60        . ELSE  IF MODE=4 SET X0=0,XINC=1,XMAX=24        . ELSE  IF MODE=5 SET X0=24,XINC=2,XMAX=60        . ELSE  IF MODE=6 SET X0=0,XINC=1,XMAX=6        . ELSE  IF MODE=7 SET X0=6,XINC=2,XMAX=24        . ELSE  SET X0=0,XINC=1,XMAX=3               SET RLINES=$GET(RLINES,"5,10,25,50,75,95")               SET X=X0               NEW ZARRAY,Z               NEW ABORT SET ABORT=0               FOR  DO  SET X=X+XINC QUIT:(X>XMAX)!ABORT               . IF +$$GETLMS(IEN,X,GENDER,.L,.M,.S)<0 SET ABORT=1 QUIT . NEW P,PCTLNUM . FOR PCTLNUM=1:1:$LENGTH(RLINES,",") DO               .. SET P=+$PIECE(RLINES,",",PCTLNUM) QUIT:(P'>0) . . IF $GET(ZARRAY(P))="" SET ZARRAY(P)=$$PCTL2Z(P) . . SET Z=ZARRAY(P) . . NEW VAL SET VAL=$$LMSZ2Y(L,M,S,Z) . . SET VAL=+$JUSTIFY(VAL,0,2) . . SET ARRAY(P,X)=X_"^"_VAL ; CMRFQT  QUIT ;       ;"====================================================================        ;"==================================================================== GETLMS(CHART,MONTHS,GENDER,L,M,S)       ; ;"Purpose: return the LMS values for a given chart              ;"Input: CHART --Name of the chart to reference, OR, IEN^Name of chart to use. ;"      MONTHS -- The age to use for lookup in the chart               ;"       GENDER -- MUST be "M" or "F" FOR male or female ;"      L, M, S -- PASS BY REFERENCE, OUT Parameters.  Prior values killed               ;"Results: 1 IF successful, -1^Message IF error (Message is optional) ;"Output: L,M,S are filled with data IF valid               NEW RESULT SET RESULT=0               NEW IEN SET IEN=+$GET(CHART)               IF IEN'>0 DO               . NEW DIC,X,Y               . SET DIC=22713,DIC(0)="M"               . SET X=$GET(CHART)               . DO ^DIC               . SET IEN=+Y               IF IEN'>0 DO  GOTO GLMSDN               . SET RESULT="-1^Unable to find chart: '"_$GET(CHART)_"'"               SET GENDER=$GET(GENDER)               IF (GENDER'="M")&(GENDER'="F") DO  GOTO GLMSDN               . SET RESULT="-1^Invalid GENDER. Should be 'M' or 'F'. Got: '"_GENDER_"'"              SET MONTHS=$GET(MONTHS)               IF +MONTHS'=MONTHS DO  GOTO GLMSDN               . SET RESULT="-1^Invalid AGE. Should be numeric value. Got: '"_MONTHS_"'"              KILL L,M,S               NEW MO1,MO2               IF (CHART="13")!(CHART["13^WHO") DO  ;"WHO-WEIGHT FOR LENGTH . NEW N SET N=$JUSTIFY(MONTHS,0,1) . NEW D SET D=$PIECE(N,".",2) . SET N=$PIECE(N,".",1) . IF D'<0.5 DO              .. SET MO1=N_".5" . . SET MO2=MONTHS\1+1 . ELSE DO               .. SET MO1=MONTHS\1 . . SET MO2=MO1+0.5 ELSE DO               . SET MO1=(MONTHS\1)-.01 . IF MO1<0 DO              .. SET MO1=0 . . SET MO2=0.99 . ELSE SET MO2=MO1+1 ;              IF MO1=23.99 DO               . IF (CHART="1")!(CHART="5")!(CHART="4")!(CHART["1^BMI")!(CHART["5^WEIGHT")!(CHART["4^STATURE") SET MO1=24 NEW L1,L2,M1,M2,S1,S2 ;              IF $$GEXCTLMS(IEN,MO1,GENDER,.L1,.M1,.S1)=0 DO  GOTO GLMSDN . SET RESULT="-1^Unable to find LMS data for lower end of age range." IF $$GEXCTLMS(IEN,MO2,GENDER,.L2,.M2,.S2)=0 DO GOTO GLMSDN . SET RESULT="-1^Unable to find LMS data for upper end of age range." ;              DO INTRPLMS(MONTHS,MO1,MO2,L1,M1,S1,L2,M2,S2,.L,.M,.S)               ; ;"Get correct Age interval              ;"IF $DATA(^TMG(22713,IEN,"D","B",MONTHS))=0 DO  GOTO:(+RESULT=-1) GLMSDN ;". NEW MONTHS2 SET MONTHS2=$ORDER(^TMG(22713,IEN,"D","B",MONTHS)) ;"convert e.g. 31.2 --> 31.99 ;". IF CHART'["13^WHO" DO ;"WHO-WEIGHT FOR LENGTH ;". . IF (MONTHS\1)'=(MONTHS2\1) SET MONTHS2="" ;"Ensure e.g. 31.2 doesn't goto 40.99 ;". IF MONTHS2="" DO QUIT               ;". . SET RESULT="-1^Unable to find age interfal FOR AGE: Got: '"_MONTHS_"'" ;". SET MONTHS=MONTHS2              ;"NEW DONE SET DONE=0 ;"NEW I SET I=0              ;"FOR  SET I=$ORDER(^TMG(22713,IEN,"D","B",MONTHS,I)) QUIT:(+I'>0)!DONE  DO               ;". NEW NODE SET NODE=$GET(^TMG(22713,IEN,"D",I,0)) QUIT:NODE=""               ;". IF $PIECE(NODE,"^",2)'=GENDER QUIT ;". SET DONE=1,RESULT=1              ;". SET L=$PIECE(NODE,"^",3) ;". SET M=$PIECE(NODE,"^",4)              ;". SET S=$PIECE(NODE,"^",5) GLMSDN  QUIT RESULT ; GEXCTLMS(CHART,MONTHS,GENDER,L,M,S)     ; ;"Purpose: return the LMS values for a given chart -- ROUNDING AGE TO EXACT INTERVAL              ;"Note: input validation not done in this function. Private API ;"Input: CHART -- IEN of the chart to reference              ;"       MONTHS -- The age to use for lookup in the chart -- ROUNDED TO EXACT INTERVAL ;"         It is expected that this month will EXACTLY match the intervals in the data               ;"       GENDER -- MUST be "M" or "F" FOR male or female ;"      L, M, S -- PASS BY REFERENCE, OUT Parameters.  Prior values killed               ;"Results: 1 IF successful, 0 otherwise ;"Output: L,M,S are filled with data IF valid               KILL L,M,S               NEW DONE SET DONE=0               NEW I SET I=0               IF $EXTRACT(MONTHS,1)="." SET MONTHS="0"_MONTHS               FOR  SET I=$ORDER(^TMG(22713,IEN,"D","B",MONTHS,I)) QUIT:(+I'>0)!DONE  DO               . NEW NODE SET NODE=$GET(^TMG(22713,IEN,"D",I,0)) QUIT:NODE=""               . IF $PIECE(NODE,"^",2)'=GENDER QUIT               . SET DONE=1,RESULT=1               . SET L=$PIECE(NODE,"^",3)               . SET M=$PIECE(NODE,"^",4)               . SET S=$PIECE(NODE,"^",5)               QUIT ($DATA(L)'=0)               ; INTRPLMS(MONTHS,MO1,MO2,L1,M1,S1,L2,M2,S2,L,M,S)        ;               ;"Purpose: to return an interpolated LMS based on input values ;"Input: MONTHS -- the patient's actual age              ;"       MO1,M02 -- the patient's age rounded to lower and upper ends of age range ;"      L1,M1,S2 -- the LMS values for the lower end of the age range               ;"       L2,M2,S2 -- the LMS values for the upper end of the age range ;"      L,M,S -- PASS BY REFERENCE.  This is the output values               SET L=$$INTERPLT(MONTHS,MO1,MO2,L1,L2)               SET M=$$INTERPLT(MONTHS,MO1,MO2,M1,M2)               SET S=$$INTERPLT(MONTHS,MO1,MO2,S1,S2)               QUIT               ; INTERPLT(X,X1,X2,Y1,Y2)  ;               ;"Purpose: Return an interpolated value ;"Input: X - the measured value              ;"       X1,X2 -- the lower and upper known x values ;"      Y1,Y2 -- the lower and upper known y values               ;"Results: returns the interpolated value NEW SLOPE SET SLOPE=(Y2-Y1)/(X2-X1) NEW B SET B=Y1-(SLOPE*X1) NEW RESULT SET RESULT=(SLOPE*X)+B QUIT RESULT ; LMS2Z(X,L,M,S) ; ;"Purpose: convert Input Patient measurement value X, and L,M,S SET into a Z score               ;"Input: X -- This is the value of the patient measurement, units should ;"           be the same as specified in INPUT UNITS field FOR Record               ;"      L,M,S -- These are Values as may be obtained by GETLMS ;"Results: Outputs the Z score              ;" ;"formula used is Z = [((X/M)**L) - 1] / LS where L <> 0               ;"             or Z = ln(X/M)/S  where L=0 NEW RESULT SET RESULT=0 SET L=+$GET(L),M=+$GET(M),S=+$GET(S),X=+$GET(X) IF L=0 DO              . NEW T               . SET T=X/M . SET T=$$LN^XLFMTH(T) . SET RESULT=T/S ELSE DO               . NEW T               . SET T=X/M . SET T=(T**L)-1 . SET RESULT=T/(L*S) QUIT RESULT ; LMSZ2Y(L,M,S,Z) ; ;"Purpose: To convert a LMS pair + Z score into a value (e.g. weight FOR 5th %tile, Z=-1.645)              ;"Input: L,M,S -- LMS pair that describes normal distribution ;"        Z -- The z-score corelating to the desired %tile               ;"Results: Returns value requested ;"Formula used: X= M (1 +LSZ)**(1/L) IF L<>0 or X = M exp(SZ) IF L=0               ;               NEW RESULT SET RESULT=0               SET L=+$GET(L),M=+$GET(M),S=+$GET(S),X=+$GET(X),Z=+$GET(Z)               NEW T               IF L=0 DO               . SET T=$$EXP^XLFMTH(S*Z)               ELSE  DO               . SET T=((L*S*Z)+1)**(1/L)               SET RESULT=M*T               QUIT RESULT               ; LMSP2Y(L,M,S,P) ;               ;"Purpose: To convert a LMS pair + Percentil into a value (e.g. weight FOR 5th %tile) ;"Input: L,M,S -- LMS pair that describes normal distribution              ;"         P -- Percentile of desired value. 0-100              ;"Results: Returns value requested, or -1 IF error               NEW RESULT SET RESULT=-1               NEW Z SET Z=$$PCTL2Z(+$GET(P))               IF Z="E" GOTO LP2XDN               SET RESULT=$$LMSZ2Y(.L,.M,.S,Z) LP2XDN   QUIT RESULT               ; Z2PCTL(Z)       ;               ;"Purpose: To convert a Z score into a Percentile ;"Input: Z : zscore              ;"Output: the Percentile, or -1 if invalid ;"NOTE: Code from Cameron Schlehuber              ;           NEW $ETRAP SET $ETRAP="G ERRZ2PTL^TMGGRC1"           NEW TMGERR SET TMGERR=0           SET Z=+$GET(Z)               NEW ABZ SET ABZ=$$ABS^XLFMTH(Z)           ; Overflow error can happen here. TMGERR set to 1 if error occurs               NEW P               SET P=1-((1/$$SQRT^XLFMTH(2*3.14159265))*$$EXP^XLFMTH(-(ABZ**2)/2)*(0.4361836*(1/(1+(0.33267*ABZ)))-(0.1201676*((1/(1+(0.33267*ABZ)))**2))+(0.937298*((1/(1+(0.33267*ABZ)))**3))))               IF TMGERR QUIT -1  ; Error happened.           IF Z>0 SET P=P*100               ELSE  SET P=100-(P*100)               ;" SET P=P\1  ;"truncate decimal portion               QUIT P               ; ERRZ2PTL    ; Process Error from Z2Percenticle function.            S $ETRAP="D ^%ZTER H"            I $ECODE[",M92," SET $ECODE="",TMGERR=1 QUIT:$QUIT "" QUIT  ; Process Numeric Overflow error E QUIT:$QUIT "" QUIT  ; Otherwise, let default error handler do its work PCTL2Z(P)      ; ;"Purpose: To Convert a percentile to an approximated Z-score              ;"Input: P : Percentile (should be 0-100) ;"Code from function critz found at http://www.fourmilab.ch/rpkp/experiments/analysis/zCalc.js              ;"   notes state that code was in public domain ;"Results: returns percentile, or "E" IF error              ;               NEW RESULT SET RESULT="E"               NEW ZEPSILON SET ZEPSILON=0.000001  ;"Accuracy of Z approximation NEW MINZ SET MINZ=-6 NEW MAXZ SET MAXZ=6 NEW ZVAL SET ZVAL=0 NEW PVAL SET P=+$GET(P)/100 IF (P<0)!(P>1) GOTO PC2ZDN FOR QUIT:((MAXZ-MINZ)'>ZEPSILON)  DO               . SET PVAL=$$Z2PCTL(ZVAL)/100 . IF PVAL>P SET MAXZ=ZVAL . ELSE SET MINZ=ZVAL . SET ZVAL=(MAXZ+MINZ)*0.5 SET RESULT=ZVAL PC2ZDN  QUIT RESULT ; SETSUFFIX(NUM) ; ;"Purpose: Return a suffix, e.g. 1-->"st %tile", 2--> "2nd %tile" etc.              ;"Input: NUM -- integer >0 SET NUM=+$GET(NUM) NEW ENDNUM SET ENDNUM=$E(NUM,$L(NUM))+1 SET:(ENDNUM>5) ENDNUM=5 QUIT NUM_$PIECE("th^st^nd^rd^th","^",ENDNUM)_" %tile" ;       ;"=======================================================================        ;"======================================================================= TEST    ; NEW DIC,X,Y,Age,Gender SET DIC=22713,DIC(0)="MAEQ" DO ^DIC IF +Y'>0 QUIT write ! write "The age range FOR this graph is: ",$$GET1^DIQ(22713,+Y,.06),! write "Please input ",$$GET1^DIQ(22713,+Y,.02)," (in ",$$GET1^DIQ(22713,+Y,.03),"): " read Age:60 write ! IF Age="^" QUIT write "Please enter patient value FOR ",$$GET1^DIQ(22713,+Y,.04)," (in ",$$GET1^DIQ(22713,+Y,.05),"): " read X:60,! IF X="^" QUIT read "Please Enter GENDER (must be 'M' or 'F'): ",Gender:60,! IF (Gender'="M")&(Gender'="F") write "??",! QUIT NEW L,M,S NEW TEMP SET TEMP=$$GETLMS(Y,Age,Gender,.L,.M,.S)              IF +TEMP<0 write $P(TEMP,"^",2),! QUIT write "L=",L,! write "M=",M,! write "S=",S,! NEW Z SET Z=$$LMS2Z(X,L,M,S) write "That Z score is: ",Z,! write "%tile=",$$Z2PCTL(Z)\1,! write "For this input, we have the following normal values:",! NEW pctl FOR pctl=3,5,10,25,50,75,85,90,95,97 do              . write pctl,"th: ",$$LMSP2Y(L,M,S,pctl),! QUIT ;

sam@sam-desktop:~$ sam@sam-desktop:~$ ls 1281251308247.xls astropubkey.asc AUPNLK_investigation.txt Desktop Documents Downloads examples.desktop fm-projection GF3.mp3 Music mysql-dfsg-5.1-5.1.41 mysql-dfsg-5.1-5.1.41-1 ovtemp paps-0.6.8 paps_0.6.8-2.diff.gz paps_0.6.8-2.dsc paps_0.6.8.orig.tar.gz patches Pictures pocn-moh Public rpms201011 swdev swdev-prod-platinum_online_all_mumps.mbk_2010151220002.tgz Templates TMGGRC1.m TMGGRC2.m TMGGRC3.m Videos vistadev-prod-platinum_online_all_mumps.mbk_2009341121729.tgz sam@sam-desktop:~$ cd /tmp/ sam@sam-desktop:/tmp$ ls fis-gtm              keyring-XLFo0U  pulse-PKdhtXMmr18n  ssh-qnykOl3605 gedit.sam.3636843392 orbit-gdm       pulse-YmsbHF1V23X7 gtm_mutex00000F83    orbit-sam       sam.txt sam@sam-desktop:/tmp$ vim toread.txt sam@sam-desktop:/tmp$ cd - /home/sam sam@sam-desktop:~$ cd pocn-moh/ sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>O "/tmp/toread.txt"

GTM>U "/tmp/toread.txt"

GTM>FOR READ X QUIT:$ZEOF S Y(X)="" %GTM-E-QUITARGUSE, Quit cannot take an argument in this context FOR READ X QUIT:$ZEOF S Y(X)="" ^-

GTM>FOR READ X QUIT:$ZEOF  S Y(X)=""

GTM>C "/tmp/toread.txt"

GTM>zwrite Y Y("Line 1")="" Y("Line 2")="" Y("Line 3")="" Y("Line 4")=""

GTM>; if writing to a file, you can add the following flags:

GTM>; (newversion): deletes the file and starts over

GTM>; (append); add to the end of the file.

GTM>O "/tmp/sam.txt":(append)

GTM>U "/tmp/sam.txt"

GTM>w "hello",!

GTM>w "hello again",!

GTM>C "/tmp/sam.txt"

GTM>zsy "cat /tmp/sam.txt" $IO is /tmp/sam.txt $P is /dev/pts/3 hello hello again

GTM>O "/tmp/sam.txt":(newversion)

GTM>U "/tmp/sam.txt"

GTM>W "HELLO"

GTM>c "/tmp/sam.txt"

GTM>rec zsy

GTM>zsy "cat /tmp/sam.txt" HELLO

GTM>O "/tmp/sam.txt"

GTM>U "/tmp/sam.txt"

GTM>W "HELLO AGAIN" %GTM-E-NOTTOEOFONPUT, Not positioned to EOF on write (sequential organization only)

GTM>W !,"HELLO AGAIN" %GTM-E-NOTTOEOFONPUT, Not positioned to EOF on write (sequential organization only)

GTM>U "/tmp/sam.txt":(truncate)

GTM>W !,"HELLO AGAIN"

GTM>c "/tmp/sam.txt"

GTM>rec zsy

GTM>zsy "cat /tmp/sam.txt"

HELLO AGAIN

GTM>open "/home/vista/.vim" %SYSTEM-E-ENO2, No such file or directory

GTM>open "/home/vista/.vim"::5 %SYSTEM-E-ENO2, No such file or directory

GTM>; You can put the descriptors in a variable

GTM>S F="/tmp/sam.txt"

GTM>O F U F:(TRUNCATE) W "HELLO",!,"HELLO AGAIN",!,"HELLO 3" C F

GTM>rec zsy

GTM>zsy "cat /tmp/sam.txt" HELLO HELLO AGAIN HELLO 3

GTM>; O F:(newversion)

GTM>; O F:(readonly)

GTM>; O F:(exception="g BADOPEN")

GTM>; U F:(width=132)

GTM>; O F:(append)

GTM>; C F:(delete)

GTM>O "/dev/pts/4"

GTM>U "/dev/pts/4"

GTM>W "Mickey mouse device",!

GTM>W "Isn't this so damn cool!!!",!

GTM>; Opening another terminal

GTM>C "/dev/pts/4"

GTM>; Null device

GTM>; /dev/null

GTM>set dev="/dev/null"

GTM>u dev %GTM-E-IONOTOPEN, Attempt to USE an I/O device which has not been opened

GTM>o dev

GTM>u dev

GTM>w "this goes no where"

GTM>c dev

GTM>zed "XWBTCPM"

GTM>; Escape processing from the current device

GTM>; if a user presses, Ctrl-V, or F11, or Up or Down buttons, how to check that?

GTM>U $P:(escape)

GTM>R X S ESC=$ZB

GTM>W X

GTM>W ESC V GTM>R X S ESC=$ZB

GTM>R *X S ESC=$ZB

GTM>W X 27 GTM>W ESC T GTM>R *X S ESC=$ZB

GTM>W X 27 GTM>W ESC GTM>W ESC GTM>R *X S ESC=$ZB

GTM>W X 27 GTM>W ESC

GTM>R *X S ESC=$ZB

GTM>W X 2 GTM>W ESC

GTM>H sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>H sam@sam-desktop:~/pocn-moh$ export TERM="ansi" sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>U $P:(ESCAPE)

GTM>R *X S ESC=$ZB

GTM>W X 27 GTM>W ESC

GTM>U $P:(NOECHO)

GTM>R X

GTM>W X SDFGJKERTYUKIDFGHJK GTM>ZWRITE ^%ZOSF ^%ZOSF("$INC")=0 ^%ZOSF("ACTJ")="S Y=$$ACTJ^%ZOSV" ^%ZOSF("AVJ")="S Y=$$AVJ^%ZOSV" ^%ZOSF("BRK")="U $I:(CENABLE)" ^%ZOSF("DEL")="D DEL^%ZOSV2(X) ;N %RD,%OD S %RD=$P($S($ZRO[""("":$P($P($ZRO,         ""("",2),"")""),1:$ZRO),"" "")_""/"",%OD=$S($ZRO[""("":$P($ZRO,""(          "",1)_""/"",1:%RD) ZSYSTEM ""rm -f ""_%RD_X_"".m"" ZSYSTEM ""rm -f           ""_%OD_X_"".o""" ^%ZOSF("EOFF")="U $I:(NOECHO)" ^%ZOSF("EON")="U $I:(ECHO)" ^%ZOSF("EOT")="S Y=$ZA\1024#2 ; <=====" ^%ZOSF("ERRTN")="^%ZTER" ^%ZOSF("ETRP")="Q" ^%ZOSF("GD")="G ^%GD" ^%ZOSF("HASHLIST")="LEGACY|| MD5 SHA1 RIPEMD160 SHA256 SHA384 SHA512 SHA224          ||/usr/bin/||GT.M (Unix)^19GNU/Linux||" ^%ZOSF("JOBPARAM")="G JOBPAR^%ZOSV" ^%ZOSF("LABOFF")="U IO:(NOECHO) ; <=====" ^%ZOSF("LOAD")="D LOAD^%ZOSV2(X) ;S %N=0 F XCNP=XCNP+1:1 S %N=%N+1,%=$T(+%N^          @X) Q:$L(%)=0  S @(DIF_XCNP_"",0)"")=%" ^%ZOSF("LPC")="S Y="""" ; <=====" ^%ZOSF("MAGTAPE")="S %MT(""BS"")=""*1"",%MT(""FS"")=""*2"",%MT(""WTM"")=""*3         "",%MT(""WB"")=""*4"",%MT(""REW"")=""*5"",%MT(""RB"")=""*6"",%MT("          "REL"")=""*7"",%MT(""WHL"")=""*8"",%MT(""WEL"")=""*9"" ; <=====" ^%ZOSF("MAXSIZ")="Q" ^%ZOSF("MGR")="EHR,EHR" ^%ZOSF("MTBOT")="S Y=$ZA\32#2 ; <=====" ^%ZOSF("MTERR")="S Y=$ZA\32768#2 ; <=====" ^%ZOSF("MTONLINE")="S Y=$ZA\64#2 ; <=====" ^%ZOSF("MTWPROT")="S Y=$ZA\4#2 ; <=====" ^%ZOSF("NBRK")="U $I:(NOCENABLE)" ^%ZOSF("NO-PASSALL")="U $I:(ESCAPE:TERMINATOR="""":NOPASTHRU)" ^%ZOSF("NO-TYPE-AHEAD")="U $I:(NOTYPEAHEAD)" ^%ZOSF("OS")="GT.M (Unix)^19" ^%ZOSF("PASSALL")="U $I:(NOESCAPE:NOTERMINATOR:PASTHRU)" ^%ZOSF("PRIINQ")="S Y=$$PRIINQ^%ZOSV" ^%ZOSF("PRIORITY")="Q ;G PRIORITY^%ZOSV" ^%ZOSF("PROD")="EHR,EHR" ^%ZOSF("PROGMODE")="S Y=$$PROGMODE^%ZOSV" ^%ZOSF("RD")="G ^%RD" ^%ZOSF("RESJOB")="Q:'$D(DUZ) Q:'$D(^XUSEC(""XUMGR"",+DUZ))  N XQZ S XQZ=""^          FORCEX[MGR]"" D DO^%XUCI ; <=====" ^%ZOSF("RM")="U $I:WIDTH=$S(X<256:X,1:0)" ^%ZOSF("RSEL")="K ^UTILITY($J) D ^%RSEL S X="""" X ""F S X=$O(%ZR(X)) Q:X=" """"""" S ^UTILITY($J,X)="""""""""" K %ZR" ^%ZOSF("RSUM")="S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1,"" "") Q:'%3 S %3=$          S($E(%1,%3)'="";"":$L(%1),$E(%1,%3+1)="";"":$L(%1),1:%3-2) F %2=1:          1:%3 S Y=$A(%1,%2)*%2+Y" ^%ZOSF("RSUM1")="N %,%1,%2,%3 S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1,"" "")          Q:'%3  S %3=$S($E(%1,%3)'="";"":$L(%1),$E(%1,%3+1)="";"":$L(%1),1          :%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*(%2+%)+Y" ^%ZOSF("SAVE")="D SAVE^%ZOSV2(X) ;N %I,%F S %I=$I,%F=$P($S($ZRO[""("":$P($P(         $ZRO,""("",2),"")""),1:$ZRO),"" "")_""/""_X_"".m"" O %F:(NEWVERSIO          N) U %F X ""F  S XCN=$O(@(DIE_XCN_"""")"""")) Q:+XCN'=XCN  S %=@(D          IE_XCN_"""",0)"""") Q:$E(%,1)=""""$""""  I $E(%)'="""";"""" W %,!"          " C %F U %I" ^%ZOSF("SIZE")="S Y=0 F I=1:1 S %=$T(+I) Q:%=""""  S Y=Y+$L(%)+2 ; <=====" ^%ZOSF("SS")="D ^ZSY" ^%ZOSF("TEST")="I X]"""",$T(^@X)]""""" ^%ZOSF("TMK")="S Y=$ZA\16384#2" ^%ZOSF("TMP")="/tmp/" ^%ZOSF("TRAP")="$ZT=""G ""_X" ^%ZOSF("TRMOFF")="U $I:(TERMINATOR="""")" ^%ZOSF("TRMON")="U $I:(TERMINATOR=$C(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1          6,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127))" ^%ZOSF("TRMRD")="S Y=$A($ZB)" ^%ZOSF("TYPE-AHEAD")="U $I:(TYPEAHEAD)" ^%ZOSF("UCI")="S Y=^%ZOSF(""PROD"")" ^%ZOSF("UCICHECK")="S Y=1" ^%ZOSF("UPPERCASE")="S Y=$TR(X,""abcdefghijklmnopqrstuvwxyz"",""ABCDEFGHIJKL MNOPQRSTUVWXYZ"")" ^%ZOSF("VOL")="EHR" ^%ZOSF("XY")="S $X=DX,$Y=DY ; <=====" ^%ZOSF("ZD")="S Y=$$HTE^XLFDT(X,2) I $L($P(Y,""/""))=1 S Y=0_Y"

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>U $P:(NOCENABLE)

GTM>U $P:(CENABLE) %GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found U $P:(CENABLE). ^-

GTM>U $P:(CENABLE)

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>H %GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found H.        ^-

GTM>H sam@sam-desktop:~/pocn-moh$ export TERM="linux" sam@sam-desktop:~/pocn-moh$ gtm %GTM-E-NONUTF8LOCALE, Locale has character encoding (ANSI_X3.4-1968) which is not compatible with UTF-8 character set %GTM-E-NONUTF8LOCALE, Locale has character encoding (ANSI_X3.4-1968) which is not compatible with UTF-8 character set %GTM-E-NONUTF8LOCALE, Locale has character encoding (ANSI_X3.4-1968) which is not compatible with UTF-8 character set sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>O dev="/dev/null %GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found       O dev="/dev/null ^-

GTM>h sam@sam-desktop:~/pocn-moh$ export TERM="xterm" sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>s %GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found s        ^-

GTM>

GTM>r x

GTM>r y

GTM>w y

GTM>u $p:(escape)

GTM>r *x

GTM>w x 27 GTM>w $zb P GTM>r x

GTM>w x

GTM>set dev="/dev/null"

GTM>o dev u dev

GTM>w "this isn't going anywhere at all!!!"

GTM>c dev

GTM>set dev="/dev/pts/4"

GTM>o dev u dev

GTM>w "Hello",!

GTM>w "how are you?",!

GTM>c dev

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>%GTM-I-CTRLC, CTRL_C encountered

GTM>u $p:(nocenable)

GTM> [1]+ Stopped                 mumps -dir sam@sam-desktop:~/pocn-moh$ fg %1 mumps -dir

%GTM-E-CMD, Command expected but not found ..       ^-

GTM>u $p:(cenable)

GTM>zwrite ^DD ^DD("$O")="S Y=""%"" F %=0:0 S Y=$O(@Y) Q:Y="""" S %=$D(@Y) S:%#2 @(X_""Y)=          ""_Y) I %>9 S %X=Y_""("",%Y=X_""Y,"" D %XY^%RCR" ^DD("DD")="S Y=$$FMTE^DILIBF(Y,""5U"")" ^DD("DILOCKTM")=3 ^DD("KWIC")="^AND^THE^THEN^FOR^FROM^OTHER^THAN^WITH^THEIR^SOME^THIS^and^the^         then^for^from^other^than^with^their^some^this" ^DD("OS")=19 ^DD("ROU")=15000 ^DD("SITE")="MOH - Amman, Jordan" ^DD("VERSION")="22.0"

GTM>zwrite ^%ZOSF ^%ZOSF("$INC")=0 ^%ZOSF("ACTJ")="S Y=$$ACTJ^%ZOSV" ^%ZOSF("AVJ")="S Y=$$AVJ^%ZOSV" ^%ZOSF("BRK")="U $I:(CENABLE)" ^%ZOSF("DEL")="D DEL^%ZOSV2(X) ;N %RD,%OD S %RD=$P($S($ZRO[""("":$P($P($ZRO,         ""("",2),"")""),1:$ZRO),"" "")_""/"",%OD=$S($ZRO[""("":$P($ZRO,""(          "",1)_""/"",1:%RD) ZSYSTEM ""rm -f ""_%RD_X_"".m"" ZSYSTEM ""rm -f           ""_%OD_X_"".o""" ^%ZOSF("EOFF")="U $I:(NOECHO)" ^%ZOSF("EON")="U $I:(ECHO)" ^%ZOSF("EOT")="S Y=$ZA\1024#2 ; <=====" ^%ZOSF("ERRTN")="^%ZTER" ^%ZOSF("ETRP")="Q" ^%ZOSF("GD")="G ^%GD" ^%ZOSF("HASHLIST")="LEGACY|| MD5 SHA1 RIPEMD160 SHA256 SHA384 SHA512 SHA224          ||/usr/bin/||GT.M (Unix)^19GNU/Linux||" ^%ZOSF("JOBPARAM")="G JOBPAR^%ZOSV" ^%ZOSF("LABOFF")="U IO:(NOECHO) ; <=====" ^%ZOSF("LOAD")="D LOAD^%ZOSV2(X) ;S %N=0 F XCNP=XCNP+1:1 S %N=%N+1,%=$T(+%N^          @X) Q:$L(%)=0  S @(DIF_XCNP_"",0)"")=%" ^%ZOSF("LPC")="S Y="""" ; <=====" ^%ZOSF("MAGTAPE")="S %MT(""BS"")=""*1"",%MT(""FS"")=""*2"",%MT(""WTM"")=""*3         "",%MT(""WB"")=""*4"",%MT(""REW"")=""*5"",%MT(""RB"")=""*6"",%MT("          "REL"")=""*7"",%MT(""WHL"")=""*8"",%MT(""WEL"")=""*9"" ; <=====" ^%ZOSF("MAXSIZ")="Q" ^%ZOSF("MGR")="EHR,EHR" ^%ZOSF("MTBOT")="S Y=$ZA\32#2 ; <=====" ^%ZOSF("MTERR")="S Y=$ZA\32768#2 ; <=====" ^%ZOSF("MTONLINE")="S Y=$ZA\64#2 ; <=====" ^%ZOSF("MTWPROT")="S Y=$ZA\4#2 ; <=====" ^%ZOSF("NBRK")="U $I:(NOCENABLE)" ^%ZOSF("NO-PASSALL")="U $I:(ESCAPE:TERMINATOR="""":NOPASTHRU)" ^%ZOSF("NO-TYPE-AHEAD")="U $I:(NOTYPEAHEAD)" ^%ZOSF("OS")="GT.M (Unix)^19" ^%ZOSF("PASSALL")="U $I:(NOESCAPE:NOTERMINATOR:PASTHRU)" ^%ZOSF("PRIINQ")="S Y=$$PRIINQ^%ZOSV" ^%ZOSF("PRIORITY")="Q ;G PRIORITY^%ZOSV" ^%ZOSF("PROD")="EHR,EHR" ^%ZOSF("PROGMODE")="S Y=$$PROGMODE^%ZOSV" ^%ZOSF("RD")="G ^%RD" ^%ZOSF("RESJOB")="Q:'$D(DUZ) Q:'$D(^XUSEC(""XUMGR"",+DUZ))  N XQZ S XQZ=""^          FORCEX[MGR]"" D DO^%XUCI ; <=====" ^%ZOSF("RM")="U $I:WIDTH=$S(X<256:X,1:0)" ^%ZOSF("RSEL")="K ^UTILITY($J) D ^%RSEL S X="""" X ""F S X=$O(%ZR(X)) Q:X=" """"""" S ^UTILITY($J,X)="""""""""" K %ZR" ^%ZOSF("RSUM")="S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1,"" "") Q:'%3 S %3=$          S($E(%1,%3)'="";"":$L(%1),$E(%1,%3+1)="";"":$L(%1),1:%3-2) F %2=1:          1:%3 S Y=$A(%1,%2)*%2+Y" ^%ZOSF("RSUM1")="N %,%1,%2,%3 S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1,"" "")          Q:'%3  S %3=$S($E(%1,%3)'="";"":$L(%1),$E(%1,%3+1)="";"":$L(%1),1          :%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*(%2+%)+Y" ^%ZOSF("SAVE")="D SAVE^%ZOSV2(X) ;N %I,%F S %I=$I,%F=$P($S($ZRO[""("":$P($P(         $ZRO,""("",2),"")""),1:$ZRO),"" "")_""/""_X_"".m"" O %F:(NEWVERSIO          N) U %F X ""F  S XCN=$O(@(DIE_XCN_"""")"""")) Q:+XCN'=XCN  S %=@(D          IE_XCN_"""",0)"""") Q:$E(%,1)=""""$""""  I $E(%)'="""";"""" W %,!"          " C %F U %I" ^%ZOSF("SIZE")="S Y=0 F I=1:1 S %=$T(+I) Q:%=""""  S Y=Y+$L(%)+2 ; <=====" ^%ZOSF("SS")="D ^ZSY" ^%ZOSF("TEST")="I X]"""",$T(^@X)]""""" ^%ZOSF("TMK")="S Y=$ZA\16384#2" ^%ZOSF("TMP")="/tmp/" ^%ZOSF("TRAP")="$ZT=""G ""_X" ^%ZOSF("TRMOFF")="U $I:(TERMINATOR="""")" ^%ZOSF("TRMON")="U $I:(TERMINATOR=$C(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1          6,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127))" ^%ZOSF("TRMRD")="S Y=$A($ZB)" ^%ZOSF("TYPE-AHEAD")="U $I:(TYPEAHEAD)" ^%ZOSF("UCI")="S Y=^%ZOSF(""PROD"")" ^%ZOSF("UCICHECK")="S Y=1" ^%ZOSF("UPPERCASE")="S Y=$TR(X,""abcdefghijklmnopqrstuvwxyz"",""ABCDEFGHIJKL MNOPQRSTUVWXYZ"")" ^%ZOSF("VOL")="EHR" ^%ZOSF("XY")="S $X=DX,$Y=DY ; <=====" ^%ZOSF("ZD")="S Y=$$HTE^XLFDT(X,2) I $L($P(Y,""/""))=1 S Y=0_Y"

GTM>u $p:(width=132:wrap)

GTM>u $p:(length=50:width=132:wrap)

GTM>u $p:(length=30:width=132:wrap)

GTM>; TCP connections from Mumps - (connecting to the internet)

GTM>; Simplest example - open ssh port

GTM>O "tcpclient":(connect="127.0.0.1:22:TCP":attach="client"):5:"SOCKET"

GTM>u "tcpclient"

GTM>R X

GTM>c "tcpclient"

GTM>W X SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu5

GTM> "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client")ST %GTM-E-CMD, Command expected but not found "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:SOCKET ^-

GTM> "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" %GTM-E-CMD, Command expected but not found "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" ^-

GTM> "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" %GTM-E-CMD, Command expected but not found "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" ^-

GTM>O "tcpclient":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" GTM>U "tcpclient"

GTM>F R X U $P W X,! U "tcpclient" Q:X=""

/~\                                         |oo )                                   .              .           . .                                          _\=/_                          ___            / _  \                         / \          //|/.\|\\                       _|____   _____ _|_        \\ \_/  ||                          __|                      | | === | |        \|\ /| ||                    |====__ _________ |(O)|===|__       |_|  O  |_|        # _ _/  #                       ||  O  ||          | | |            .                <>                      ||__*__||          | | |                      |~ \___/ ~|         []|[]                               .             .                      /=\ /=\ /=\         | | |      ________________[_]_[_]_[_]________/_]_[ _\_________________________ %GTM-I-CTRLC, CTRL_C encountered %GTM-W-NOTPRINCIO, Output currently directed to device tcpclient

GTM>U $P

GTM>zshow "D" /dev/null CLOSED /dev/pts/3 OPEN TERMINAL NOPAST NOREADS TYPE WIDTH=132 LENG=30 /dev/pts/4 CLOSED tcpclient OPEN SOCKET TOTAL=1 CURRENT=0 SOCKET[0]=client DESC=6 CONNECTED ACTIVE NOTRAP  REMOTE=94.142.241.111@23 ZDELAY ZBFSIZE=1024 ZIBFSIZE=87380 NODELIMITER

GTM>c "tcpclient"

GTM>zshow "D" /dev/null CLOSED /dev/pts/3 OPEN TERMINAL NOPAST NOREADS TYPE WIDTH=132 LENG=30 /dev/pts/4 CLOSED tcpclient CLOSED

GTM>zp ^KBANSTAR KBANSTAR ; 3/22/11 3:12pm ;; STARWARS O "sam":(connect="towel.blinkenlights.nl:23:TCP":attach="client"):5:"SOCKET" U "sam" FOR D  Q:X="" . R X . U $P . W X,! . U "sam" C "sam" QUIT PYTHON S D="d" O D:(connect="diveintopython3.org:80:TCP":attach="client"):20:"SOCKET" U D ; Send Headers W "GET / HTTP/1.1",$C(13,10) W "Host: diveintopython3.org",$C(13,10) W "Accept: */*",$C(13,10) W $C(13,10),! ; Receive Headers N HEADER FOR DO  QUIT:X="" . U D:(DELIMITER=$C(13,10)) . READ X . QUIT:X="" . S HEADER($P(X,":"))=$$TRIM^XLFSTR($P(X,":",2)) U D:(NODELIMITER) R X#HEADER("Content-Length") C D QUIT MUMPS S D="d" O D:(connect="127.0.0.1:9250:TCP":attach="client"):5:"SOCKET" U D W "[XWB]10304",$C(10),"TCPConnect50012172.16.16.88f00010f0012servicedesk1f",$C(4),! U D:(DELIMITER=$C(4)) R X W "[XWB]10304",$C(5),"#BYE#",$C(4),! C D QUIT

GTM>D PYTHON^KBANSTAR

GTM>ZWRITE HEADER %GTM-E-UNDEF, Undefined local variable: HEADER

GTM>ZED %GTM-E-ZEDFILSPEC, Illegal ZEDIT file specification:

GTM>ZED "KBANSTAR"

GTM>zl

GTM>D PYTHON^KBANSTAR

GTM>zwrite HEADER HEADER("Accept-Ranges")="bytes" HEADER("Connection")="close" HEADER("Content-Length")=6685 HEADER("Content-Type")="text/html" HEADER("Date")="Wed, 23 Mar 2011 08" HEADER("ETag")="""1a1d-51ecd640""" HEADER("HTTP/1.1 200 OK")="" HEADER("Last-Modified")="Thu, 17 Feb 2011 22" HEADER("Server")="Apache" HEADER("Vary")="Accept-Encoding"

GTM>W X <!DOCTYPE html>

 Dive Into Python 3  body{font:med ium/1.75 'Gill Sans','Gill Sans MT',Corbel,Helvetica,'Nimbus Sans L',sans-serif;word-spacing:.1em}pre,kbd,samp,code{font:small/2.154 Consolas,'Andale Mono',Monaco,'Liberation Mono','Bitstream Vera Sans Mono','DejaVu Sans Mono',monospace;word-spacing:0}.baa{font:ob lique 105% Constantia,Baskerville,Palatino,'Palatino Linotype','URW Palladio L',serif}abbr{font-variant:small-caps;text-transform:lo wercase;letter-spacing:.1em}.c{line-height:2.154}p,ol{margin:1.75em 0;font-size:medium}html{background:#fff;color:#222}body{margin:1 .75em 28px}.c{clear:both;text-align:center}.c{margin:2.154em 0}form div{float:right}a{text-decoration:none;border-bottom:1px dotted} a:hover{border-bottom:1px solid}a:link{color:steelblue}a:visited{color:#b44582}.c a{color:inherit}pre{padding-left:2.154em;border-le ft:1px solid #ddd}.c{font-size:small}ol,p,h1,h2{clear:left}pre a{padding:.4375em 0}.p{color:#667}code,samp{line-height:inherit!impor tant}pre a,pre a:hover{border:0}h1,h2{font-family:"Book Antiqua",Palatino,Georgia,serif}h1,h2{font-variant:small-caps}h1,h2{letter-s pacing:-1px}h1{font-size:xx-large;line-height:1.3125}h2{font-size:x-large;line-height:1.167;margin:1.167em 0}h1{border-bottom:4px do uble;width:100%;margin:1.49em 0;counter-reset:h2}h1:before{content:"Chapter " counter(h1) ". "}h2:before{counter-increment:h2;conten t:counter(h1) "." counter(h2) ". "}h2{counter-reset:h3}h1:before,h2:before{content:''}#a,#b,#c,#d{list-style:none;margin:0 0 0 -1.7e m}#a:before{content:'A. \00a0 \00a0'}#b:before{content:'B. \00a0 \00a0'}#c:before{content:'C. \00a0 \00a0'}#d:before{content:'D. \00 a0 \00a0'}@media screen and (max-device-width:480px){body,.c,span,.c,p,ol{font:normal 12px/18px sans-serif}pre,kbd,samp,code{font:no rmal 12px/18px monospace}.baa{font:normal 14px/18px serif}abbr{font-variant:normal;text-transform:none;letter-spacing:0}.c,p,ol,h2{m argin:1.75em 0}html{color:#000}body{margin:4px 2px 0 2px}a{text-decoration:underline;border-bottom:0}pre a{text-decoration:none}h1,h 2,pre{padding:0;border:0;letter-spacing:0}h1{margin:0}h1{font:normal 18px/18px serif}h2{font:normal 16px/18px serif}h1:before{conten t:""}form,form+p{display:none}}@media print{body{font-size:12pt}pre,kbd,samp,code{font-size:10pt;line-height:2.1}span{font-size:12pt }.baa{font-size:13pt}p,ol{font-size:12pt}html,body{background:#fff;margin:0;padding:0}a{text-decoration:none;border-bottom:1px dotte d}html,a:link,a:visited{color:#000}pre{border:0}.c{font-size:10pt;line-height:2.1}h1{font-size:24pt}h2{font-size:18pt}form,form+p{di splay:none!important}} _gaq='_setAccount','UA-7434570-3'],['_trackPageview';(function{var g=document.createElem ent('script');g.src='//www.google-analytics.com/ga.js';g.setAttribute('async','true');document.documentElement.firstChild.appendChil d(g);});    You are here:  • Dive Into Python 3 Dive Into Python 3 covers Python 3 and its diff erences from Python 2. Compared to Dive Into Python, it’s about 20% revised and 80% new material. The book is now complete, but feedback is always welcome. Table of Contents (expand) <p style="float:right;width:245px;text-align:center;margin:0 0 0 1.75em"> Also available on dead trees! <img src="i/cover.jpg" alt="Dive Into Python 3" width=245 height=300 ></a><ol start=-1><li>What’s New in “Dive Into Python 3”</a><li>Installing Pyt hon</a><li>Your First Python Program</a><li>Native Datatypes</a ><li>Comprehensions</a><li>Strings</a><li>Regular Expressions</a><li>Closures &amp;</i> Generators</a><li>Classes <i class =baa>&amp;</i> Iterators</a><li>Advanced Iterators</a><li>Unit Testing</a> <li>Refactoring</a><li>Files</a><li>XML</a><li>Serializing Python Objects</a><li><a href=http-web-services.html>HTTP Web Services</a><li><a href=case-study-porting-chardet-to-pyt hon-3.html>Case Study: Porting  to Python 3</a><li><a href=packaging.html>Packaging Python Libraries</a><li id=a ><a href=porting-code-to-python-3-with-2to3.html>Porting Code to Python 3 with </a> <a href=special-method- names.html>Special Method Names</a> <a href=where-to-go-from-here.html>Where to Go From Here</a> <a href=troubleshoo ting.html>Troubleshooting</a></ol> The book is freely licensed under the <a rel=license href=http://creativecommons.org/licenses/b y-sa/3.0/>Creative Commons Attribution Share-Alike</a> license. You can download it as <a href=d/diveintopython3-html-latest.zip><ab br>HTML </a> or <a href=d/diveintopython3-pdf-latest.zip> PDF </a>. Über-geeks can also clone the Mercurial reposit ory: you@localhost:~$ hg clone <a href=http://hg.diveintopython3.org/>http://hg.diveintopython3.org/</ a> diveintopython3 © 2001–10 <a href=about.html>Mark Pilgrim</a> Translations: <a href=http://code.g oogle.com/p/inmersionenpython3/ lang=es hreflang=es>en español</a>, <a href=http://gpiancastelli.altervista.org/dip3-it/ lang=it hre flang=it>in italiano</a>, <a href="http://ru.wikisource.org/wiki/%D0%9F%D0%BE%D0%B3%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2 _Python_3_(%D0%9F%D0%B8%D0%BB%D0%B3%D1%80%D0%B8%D0%BC)" lang=ru hreflang=ru>на русском языке</a>, <a href=http://www.diveintopython3 .ir/ lang=fa hreflang=fa dir=rtl>به پارسی</a> GTM>

GTM>zed

GTM>O "ftp":(connect="ftp.microsoft.com:21:TCP":attach="client"):20:"SOCKET"

GTM>R X %GTM-I-CTRLC, CTRL_C encountered

GTM>U "ftp"

GTM>R X

GTM>U $P W X 220 Microsoft FTP Service

GTM>U "ftp"

GTM>R X %GTM-I-CTRLC, CTRL_C encountered %GTM-W-NOTPRINCIO, Output currently directed to device ftp

GTM>W "USER anonymous",!

GTM>R X:0

GTM>U $P W X

GTM>U "ftp"

GTM>R X %GTM-I-CTRLC, CTRL_C encountered %GTM-W-NOTPRINCIO, Output currently directed to device ftp

GTM>R X:0

GTM>U $P

GTM>W X

GTM>U $P

GTM>W $DEVICE

GTM>C "ftp"

GTM>O "ftp":(connect="ftp.microsoft.com:21:TCP":attach="client"):20:"SOCKET"

GTM>u "ftp"

GTM>r x1:1

GTM>W "USER anonymous",!

GTM>r x2:1

GTM>w "PASS lksdjfkds",!

GTM>r x3:1

GTM>c "ftp"

GTM>zwrite D="d" HEADER("Accept-Ranges")="bytes" HEADER("Connection")="close" HEADER("Content-Length")=6685 HEADER("Content-Type")="text/html" HEADER("Date")="Wed, 23 Mar 2011 08" HEADER("ETag")="""1a1d-51ecd640""" HEADER("HTTP/1.1 200 OK")="" HEADER("Last-Modified")="Thu, 17 Feb 2011 22" HEADER("Server")="Apache" HEADER("Vary")="Accept-Encoding" X="" dev="/dev/pts/4" x="" x1="220 Microsoft FTP Service"_$C(13,10) x2="" x3="" y=""

GTM>u "ftp" %GTM-E-IONOTOPEN, Attempt to USE an I/O device which has not been opened

GTM>O "ftp":(connect="ftp.microsoft.com:21:TCP":attach="client"):20:"SOCKET"

GTM>u "ftp"

GTM>r x:1

GTM>w "anonymous"

GTM>r x:1

GTM>u $p

GTM>w x

GTM>u "ftp"

GTM>w x

GTM>h sam@sam-desktop:~/pocn-moh$ mumps -dir

GTM>zed "KBANSTAR"

GTM>D MUMPS^KBANSTAR O D:(connect="ftp.microsoft.com:21:TCP":attach="client":20:"SOCKET"                                                                ^-                At column 58, line 34, source module /home/sam/pocn-moh/routines/KBANSTAR.m %GTM-E-DEVPARUNK, Deviceparameter unknown

GTM>W X accept GTM>ZED

GTM>