Category : Miscellaneous Language Source Code
Archive   : MUMPSDEM.ZIP
Filename : DEMOGLB.DAT

 
Output of file : DEMOGLB.DAT contained in archive : MUMPSDEM.ZIP
3:/P
Èú‚€²¥ZR°€ %ZR¥ZR°€B;CKW,,,@UTILv4.21;13FEB86 11:25AM;PRINT STATUS THEN RESET $Z STUFF±€wK S S:$D(%ZD) S=$P(%ZD," ",1)_$P(%ZD," ",2) K %ZD R:'$D(S) !,"CHANGE $Z* TO :",S Q:S="." I $T(@("%"_S))'="" G @("%"_S)²€PI S?2N G EZS:S<50!(S>99) W !,"$ZS WAS ",$ZS,", --" S $ZS=+S W " NOW IS ",$ZS,! Q³€I S?1N S T=S_"A"_S_"B"_S G T´€6I S?1U S D=$A(S)+1\2*2,T=$ZR_$C(D-1)_$ZR_$C(D)_$ZL G Tµ€ÐART2µ€?ÄEMODBL°€@ÄEMODBL²€A´€B·€CÄEMOEXPÄEMOEXP²€D¶€E±1€"ÄEMOGLB°€FÄEMOGLB±€G³€¶€±0€ ±6€
ÄEMOMORÄEMOMOR±€ ³€ ·€
±0€ÄEMOPATÄEMOPAT³€ÿÿ±1€±3€ÿÿÿÁÄEMOGLBÄEMOGLB¶€?W GRN1," SET ^PHONEBK(""Brown,David"")=""(713)529-4858""",!·€œW !,CYN,"This simple MUMPS command stores a phone number in the permanent global",!,"file ^PHONEBK. The name 'Brown,David' is used as a key into the file."¸€€W !,"That's it! No explicit data initialization or allocation is needed",!,"to create this file and save an entry." D PAGE^DEMO¹€W #?17,WHT1,UL1,$E(UL,1,39),UL2,!?17,UL3," ",BLU1,"GLOBALS -- Optimized B-Tree Structure",WHT1," ",UL3,!?17,UL4,$E(UL,1,39),UL5,!ÿÁÄEMOGLBÄEMOGLB±0€TW !,CYN,"A corporation might keep a file of employees referenced by an ID number.",!±1€2W !,GRN1,"^EMP(IDNO,""NAME"") = employee's name",!±2€xW !,CYN,"Data elements stored in lower 'nodes' of the global structure could use the",!,"name of each field as a key.",!±3€3W !,GRN1,"^EMP(""400"",""NAME"")=""Mitchell,Andy"""±4€&W !," ,""DOB"")=""11/12/64"""±5€)W !," ,""SSN"")=""453-84-6983"""ÿEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOGLBÄEMOGLB±6€JW !,"^EMP(""406"",""NAME"")=""Wellman,Jeff""",!?14,".",!?14,".",!?14,".",!±7€©W !,CYN,"Since the data values are not required to have a pre-defined length, no disk",!,"space is wasted. Additional fields, each with a mnemonic name, may be added",!±8€|W "at any time. As many employees may be entered as disk space permits, with",!,"fast, random access to all information.",!±9€ ÄEMOMOR°€ DEMOMORÄEMOMOR°€5;AJM,,,@DEMOv4.43;27SEP86 4:51PMv4.43;MORE ADVANTAGESÿµ€¸€ÁÄEMOMORÄEMOMOR±€¢W #,RED1," ",BX1,$E(BX,1,75),BX2,!," ",BX3,YEL1," Move up to the advanced capabilities offered by CCSM for PC applications. ",RED1,BX3,!," ",BX4,$E(BX,1,75),BX5,!²€ØW YEL1,"* ",BLU1,"MULTI-USER VERSION",CYN," allows you to add up to ",BLU1,"14",CYN," dumb terminals to any PC for ",!," ",BLU1,"true concurrent processing.",CYN," (Additional serial ports may be needed.)",!,YEL1ÿ±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOMORÄEMOMOR³€zW !,"* ",BLU1,"MULTI-TASKING VERSION",CYN," lets other ",BLU1,"MUMPS",CYN," background jobs run while you program.",!,YEL1´€hW !,"* ",BLU1,"GRAPHICS OPTION",CYN," lets you draw pie charts, graphs, bar charts, etc. easily.",!,YEL1µ€XW !,"* ",BLU1,"8087 MATH COPROCESSOR",CYN," supported for higher math functions.",!,YEL1¶€fW !,"* ",BLU1,"NETWORKING AND JOURNALING",CYN," capabilities protect large systems' integrity.",!,YEL1ÿ·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOMORÄEMOMOR·€bW !,"* ",BLU1,"INTERFACE TO MODULES",CYN," of assembly or other languages, or call to DOS.",!,YEL1¸€ºW !,"* ",BLU1,"PROGRAMMER'S UTILITIES OPTION",CYN," includes cross-indexing routines, file examine,",!," memory dump, and pre-compiler for up to ",BLU1,"50% speed enhancement.",YEL1,!¹€­W !,"* ",BLU1,"MUMPS TOOLKIT",CYN," provides pull-down and pop-up menus, pop-up calculator and,",!," notepad, general-purpose menu driver, and screen planning utilities."ÿT³€µ€¸€ÁÄEMOMORÄEMOMOR±0€´W !,RED1," ",UL1,$E(UL,1,72),UL2,!," ",UL3,YEL1," Now that you know what ",BLU1,"CCSM",YEL1," is, find out how well it can work for you. ",RED1,UL3,!," ",UL4,$E(UL,1,72),UL5,! Q±1€ ÄEMOPAT°€ DEMOPATÃLR°€±€Q²€ ÄEMOPAT°€6;AJM,,,@DEMOv4.43;27SEP86 4:27PMv4.43;PATTERN MATCHING±€
S REG=YEL1²€ŒW #?15,WHT1,UL1,$E(UL,1,45),UL2,!?15,UL3," ",BLU1,"PATTERN MATCHING -- Intelligent Interaction",WHT1," ",UL3,!?15,UL4,$E(UL,1,45),UL5,!!,WHTÿEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÄEMOPAT³€£W " Data errors occur most frequently during user input.",!," To minimize the effects of the '",REG,"Garbage In / Garbage Out",WHT,"' syndrome in",!´€ªW " an interactive application, ",REG,"MUMPS",WHT," includes a sophisticated pattern matching",!," facility that can 'filter' data to check for proper format.",!!ÿ±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÄEMOPATµ€§W " Suppose that a Social Security number must be typed in, following the form:",!,REG," NNN-NN-NNNN",WHT," (3 digits, 1 dash, 2 digits, 1 dash, 4 digits).",!¶€µW " We can use the ",REG,"MUMPS",WHT," pattern match operator '",REG,"?",WHT,"' to test the contents",!," of the local variable SSNO to see if it matches this pattern:",!·€QW !,GRN," IF SSNO?3N1""-""2N1""-""4N WRITE ""Valid Social Security no.""",WHTÿ±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÄEMOPAT¸€·W !!," Only strings that follow the pattern exactly will pass the",!," the pattern match operation to produce the output",!!,WHT1,"Valid Social Security no.",WHT¹€W !!," All other strings will fail the test, and can trigger",!," a warning message, to be re-entered by the user.",!±0€'D PRS,TRY1 W /CUP:10:1 F I=1:1:7 W !?80ÿ€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÄEMOPAT±1€âW /CUP:10:1,WHT," A definite number of characters can be specified, or a range of characters",!,"can be denoted with a period. The ",REG,"MUMPS",WHT," 'NOT' operator, the apostrophe,",!,"logically inverts a pattern match.",!±2€ÄW !,"Consider a dollar amount that must follow the form ",REG,"[$][N][N][N]N.NN",WHT,!," (optional dollar sign, 1 to 4 digits, decimal point, 2 digits)",!!,"In ",REG,"MUMPS ",WHT,"one can use:",!ÿ³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÄEMOPAT±3€ŸW !,GRN,"IF AMT'?.1""$""1.4N1"".""2N WRITE ""?? Please enter a dollar amount.""",!!,WHT,"to accomplish what would be very tedious in some other languages.",! Q±4€ PRSÐRS°€uW /CUP:25:1,?25,WHT1,$C(174)," Press a key to try it! ",$C(175) D KEY^DEMO W /CUP:25:1,?79,/CUP:17:1 F I=1:1:7 W !?80±€Q²€ TRY1ÔRY1°€˜W /CUP:25:1,?24,WHT1,$C(174)," Press return to continue ",$C(175),?79,/CUP:17:1,?80,/CUP:17:1,"Enter a valid Social Security number: ",CYN1 R SSNO:240,!ÿµ€¸€ÁÄEMOPATÔRY1±€GI SSNO?3N1"-"2N1"-"4N W !,WHT1,"Valid Social Security no.",?80,! G TRY1²€VQ:SSNO="" W !,*7,RED1,"INVALID -- Please enter in form NNN-NN-NNNN.",WHT,?80,! G TRY1³€ CLRÄEMOPRG°€ DEMOPRGÄEMOPRG°€5;AJM,,,@DEMOv4.43;27SEP86 4:54PMv4.43;PROGRAM EXAMPLE±€ RDÌP°€*S NAM=$ORDER(^PHONEBK(NAM)) IF NAM="" QUIT±€"W NAM,": ",^PHONEBK(NAM),! GOTO LP²€ ÏUT°€#WRITE "Phone Numbers:",! SET NAM=""±€ LPÒD°€%READ "Name: ",NAM:60,! IF NAM="" QUITÿÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPATÔRY1±€ÄEMOPRGÒD±€ÄEMOSTRÄEMOSTR²€´€·€ÓTR1°€ÄEMOWDFÄEMOWDF°€³€·€ÉN±€ÿe very tedious in some other languages.",! Qÿperator, the apostrophe,",!,"logically inverts a pattern match.",!ÿor convenience.",!!ÿs."ÿ±2€ ÐART2°€
ÄEMODBLÄEMODBL²€´€·€ÄEMOEXPÄEMOEXP²€¶€±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOPRGÒD±€FIF NAM'?2.A1",".1" "1A.AP WRITE "Please enter as LAST,FIRST",! GOTO RD²€ TELÔEL°€ŠREAD "Phone: ",TEL:60,! S:TEL="" TEL=" " IF TEL'?3N1"-"4N,TEL'?1"("3N1")"3N1"-"4N W "Please enter as NNN-NNNN or (NNN)NNN-NNNN",! GOTO TEL±€SET ^PHONEBK(NAM)=TEL G RD²€ OUTÄEMOSTR°€ DEMOSTRÄEMOSTR°€-;AJM,,,@DEMOv4.43;27SEP86 4:24PMv4.43;STRINGS±€S REG=WHT W #,?17,WHT1,UL1,$E(UL,1,42),UL2,!?17,UL3," ",BLU1,"VARIABLE LENGTH STRINGS -- Effortlessly",WHT1," ",UL3,!?17,UL4,$E(UL,1,42),UL5,!ÿÁÄEMOSTRÄEMOSTR²€õW !,CYN1," MUMPS",REG," primitives are designed to handle ",CYN1,"variable length strings",REG," routinely",!," without the obstacles presented by most other programming languages.",!," An extensive set of ",CYN1,"string operations"³€gW " and functions",REG," greatly",!," simplifies data analysis and user interaction.",!!ÿMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOSTRÄEMOSTR´€¥W " One example is the '",CYN1,"Contains",REG,"' operator, '",CYN1,"[",REG,"', which tests if",!," a string is a substring of another:",!µ€jW !,GRN1," string1[string2",REG," -- is ",CYN1,"true",REG," if string2 is a substring of string1",!¶€W !,GRN1," IF INGREDIENTS[""SALT"" WRITE ""THIS RECIPE CONTAINS SALT.""",!," ELSE WRITE ""NO SALT IN THIS RECIPE.""",!ÿEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOSTRÄEMOSTR·€žW !,REG," If the contents of the local variable INGREDIENTS were",!," """,BOLD,"2 C FLOUR, 1 T BUTTER, PINCH SALT, 2 EGGS",REG,""""¸€jW !," the '",CYN1,"Contains",REG,"' operation would evaluate ",CYN1,"true",REG,", producing",!!¹€˜W WHT1,"THIS RECIPE CONTAINS SALT.",!!,REG," A list of ingredients that did not contain """,CYN1,"SALT",REG,""" would evaluate ",CYN1,"false",REG,"."±0€ STR1ÿ·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOSTRÓTR1°€oU 0:0 W WHT1,/CUP:25:1,?25,$C(174)," Press a key to try it! ",$C(175) D KEY^DEMO W /CUP:22:1,?80,!?80,!?80,!?79±€ TRYÔRY°€˜W /CUP:17:1,!?80,!?80,!?80,!?80,/CUP:25:1,?24,WHT1,$C(174)," Press return to continue ",$C(175),?79,/CUP:19:1,WHT1,"Enter a list of ingredients: ",CYN1 ±€4R A:0,ING#200:240,A:0,! Q:ING="" W WHT1,/CUP:21:1,!²€\W $S(ING["SALT"!(ING["salt"):"THIS RECIPE CONTAINS SALT.",1:"NO SALT IN THIS RECIPE.") G TRY³€ ÄEMOWDF°€ DEMOWDFÿPATÄEMOPAT³€µ€¸€ÁÄEMOWDFÄEMOWDF°€.;AJM,,,;27SEP86 4:50PM;WORD FREQUENCY EXAMPLE;±€uW #,!?27,WHT1,UL1,$E(UL,1,20),UL2,!?27,UL3," ",BLU1,"THE POWER OF MUMPS",WHT1," ",UL3,!?27,UL4,$E(UL,1,20),UL5,!!,CYN²€¥W "As a final example, consider the problem of counting the frequency of different",!,"words in a sentence. We will define a blank space to be the character that",!ÿ±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOWDFÄEMOWDF³€íW "separates words. To achieve more meaningful results, the most common",!,"punctuation characters will be converted to blank spaces. Control characters",!,"will not be allowed in the input sentence. (Remember that all MUMPS commands"´€?W !,"may be abbreviated to a single letter for convenience.)",!µ€gW !,"Imagine solving this problem in BASIC, C, or Pascal -- then compare ",WHT1,"MUMPS",CYN,":",!!,GRN1¶€>W "IN READ !,""Enter a sentence: "",S:180,! QUIT:S=""""",!ÿ¸€ÁÄEMOWDFÄEMOWDF·€HW " IF S'?.ANP WRITE ""No control characters, please."" GOTO IN",!¸€FW " SET S=$TRANSLATE(S,""!""""(),.:;?"","" "") KILL F",!¹€YW " FOR N=1:1:$LENGTH(S,"" "") S W=$PIECE(S,"" "",N) S:W'="""" F(W)=$GET(F(W))+1",!±0€TW " S W="""" FOR S W=$ORDER(F(W)) GOTO IN:W="""" WRITE !,W,"" "",F(W)",!,CYN±1€ INÉN°€ZR !,"Enter a sentence: ",S:180,! Q:S="" I S'?.ANP W "No control characters, please." G INÿ·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOWDFÉN±€cS S=$TR(S,"!""(),.:;?"," ") K F F N=1:1:$L(S," ") S W=$P(S," ",N) I W'="" S F(W)=$G(F(W))+1²€-S W="" F S W=$O(F(W)) Q:W="" W W," ",F(W),!³€D PAGE^DEMO G DEMOWDF´€ ÿd in the input sentence. (Remember that all MUMPS commands"ÿations"ÿ!ÿs."ÿ±2€ ÐART2°€
ÄEMODBLÄEMODBL²€´€·€ÄEMOEXPÄEMOEXP²€¶€±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€€ÿÂX€OÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÕL€OÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÿـA(713) 529-4858) (301) 779-6555 ÿ ÿexampleÔEL€
(617)123-1234ÕL€OÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄـA(713) 529-4858) (301) 779-6555 ÿ ÿ%A+%C-1 S %X=$V(%I@%M)#128 I %X>9 Q:%X<32 W $C(%X) I %I=%AA W "(^)"²€W ! QÿÁÄEMOPATÄEMOPATµ€¸€±1€±3€ÿblk len>.ÞOÞ
<©© data ©©> =ÌÌvariable length data field (may be zero).ÞOÞ
=ÌÌ2 byte value. This value only encompasses the <©© data ©©>
field. If in CRC mode this will be a sixteen bit CRC, if in
additive modeÄEMODBL²€A´€B·€CÄEMOEXPÄEMOEXP²€D¶€E±1€FÄEMOGLBÄEMOGLB±€G³€¶€±0€ ±6€
ÄEMOMORÄEMOMOR±€ ³€ ·€
±0€ÄEMOPATÄEMOPAT³€µ€¸€±1€±3€ÁÄEMOCÍESSAGE²1€;Houston, Texas 77006²2€-;1-800-257-8052 or (In Texas: 1-713-529-4858)²3€ PART2ÐART2°€ W /10:14:1,!±€,F X=0:1:16 W ?7,$P($T(MESSAGE+X),";",2,99),!²€F X=17:1:22 D DISP³€F BK=0:1:15 W /10:15:BK D DOTS´€D PAGE^DEMO W /10:0:0µ€7F X=41:1:80 F Y=1:1:25 W /CUP:Y:81-X," " W /CUP:Y:X," "¶€W /10:14:0 U 0:80 Q·€ DISPÿÄEMOGLBÄEMOGLB±€G³€¶€±0€ ±6€
ÄEMOMORÄEMOMOR±€ ³€ ·€
±0€ÄEMOPATÄEMOPAT³€µ€¸€±1€±3€ÁÄEMOEXPÄEMOEXP±1€GW " who must manage large, complicated filing systems.",!±2€EW " A single level storage concept makes it the most",!±3€DW " efficient system design on the market today.",!!±4€-W " ",YEL1,UL1,$E(UL,1,48),UL2,!±5€…W " ",UL3,BOLD," MUMPS is unmatched in programming productivity.",YEL1,UL3,!," ",UL4,$E(UL,1,48),UL5,!,BOLD±6€ ÿORTœ

CCSM supports serial lines in addition to the two standard usua\,°E 0ä%t‹Æ ë‹F‹vŠœÄ0ÿ;ÉFt¸äPÿ6žèÍ ‹åÿvÿv¸öPè¾ ‹åèª+ÿ6$è8+‹å‰FÿF뢍FPF
P¸ Pÿ6$è‹åÿvÿv
¸Pÿ6&萋åÿ6$èÿ*‹å‰F‹vŠ„E 0ä%tÿ6$èå*‹å‰Fëä‹F=(tNƒ~
u*=nu%ÿ6$èÄ*‹å=i‰Fuÿ6$è³*‹å=l‰Fu鐸Pÿ6žè ‹åÿv¸:Pè ‹åèõ*ëÇF‹F;F
}Ç(èɸEPÿ6&èï‹åÿFëÝÿ6$èY*‹å‰F‹vŠ„E 0ä%tÿ6$è?*‹å‰Fëäƒ~)t¸HPÿ6žè¡
‹åÿv¸:Pè•
‹åè*ÿ6&¸tPè<*‹åÿ6$è*‹å‰F‹vŠ„E 0ä%tÿ6$èè)‹å‰Fëäƒ~(t¸bPÿ6žèJ
‹å¸yPèA
‹åè-*3À£(‰F‹F;F}.FP¸ŠPÿ6$è‰ ‹å‹F%ÿP¸Pÿ6&è‹åÿ(ÿFëʃ>( Microsoft (R) Macro Assembler Version 4.00 4/29/87 17:28:09

Page 1-1


NAME SUB
PAGE 62,132
;* MUMPSSUB **
; SUBROUTINES FOR USE BY MUMPS INTERPRETER
;
; INCLUDE MACRO DEFINITIONS
C INCLUDE MACROS.EQU
C .LIST

C INCLUDE PAGE0.EQU
C ;* CCSM MULTI-USER MUMPS FOR IBM PC ***** COPYRIGHT 1985
C .LIST

C INCLUDE PAGE0S.EQU
C .LIST

C INCLUDE PAGE0IO.EQU
C ; IOTAB OFFSET DEFINITIONS
= 0000 C IOX EQU 0 ;X-COORDINATE
= 0001 C IOY EQU 1 ;Y-COORDINATE
= 0002 C IOLL EQU 2 ;LINE LENGTH
= 0003 C IOOWN EQU 3 ;OWNERSHIP (0=UNOWNED)
= 0004 C IOOPNTYP EQU 4 ;OPEN TYPE
= 0005 C IONUM EQU 5 ;DEVICE # (CONTAINS DEV # IF PRESENT IN SYSTEM)
= 0006 C IODS EQU 6 ;I/O STATUS WORD ($ZDS)
= 000A C IOUTAB EQU 10 ;PTR TO USER TABLE
= 000C C IOPARM EQU 12 ;I/O PARAMETERS (FROM OPEN/USE)($ZIO)
= 000E C IOSTAT EQU 14 ;I/O STATUS (B0=1 FOR LINE CAPABLE DEVICE; HIGH NIBBLE IS DYNAMIC
= 000F C IODEVTYP EQU 15 ;I/O DEVICE TYPE
= 0010 C IOIN EQU 16 ;IN CHARACTER VECTOR
= 0012 C IOOUT EQU 18 ;OUT CHARACTER VECTOR
= 0014 C IOOPEN EQU 20 ;OPEN CHARACTER VECTOR
= 0016 C IOADDR EQU 22 ;I/O DEVICE ADDRESS
C ;
C ;SYTEM TABLE OFFSETS
= 0000 C UNXT EQU 0 ;PTR TO NEXT USER
= 0002 C USTAT EQU 2 ;USER STATUS
= 0003 C UJOB EQU 3 ;JOB #
= 0004 C UTICK EQU 4 ;CURRENT TICK VALUE
= 0005 C USWAPCNT EQU 5 ;CURRENT SWAP COUNT VALUE
= 0006 C UMAP EQU 6 ;DS MAP VALUE
= 0008 C UPRIOR EQU 8 ;VALUE ORED WITH USWAPCNT
= 0009 C UPRIAND EQU 9 ;VALUE ANDED WITH USWAPCNT
= 000A C UEXTRA EQU 10 ;UNUSED
= 000C C UCOMCNT EQU 12;COMMAND COUNT

EXTRN STKRESET:WORD
EXTRN CODE8:BYTE
EXTRN CCLDEL:BYTE
EXTRN SRUNRUN:BYTE
;
0000 CSEG SEGMENT PARA PUBLIC 'MCODE'
ASSUME CS:CSEG
;
; EXTERNAL REFERENCES
EXTRN GRETROU:NEAR
EXTRN GRETROUF:NEAR
EXTRN GGETBUF:NEAR
Microsoft (R) Macro Assembler Version 4.00 4/29/87 17:28:09

Page 1-2


EXTRN BIN1DEC:NEAR
EXTRN MUL10:NEAR
EXTRN MUMPSTR2:NEAR
EXTRN HALTHALT:NEAR
;
;* STACK BUFFERS ONTO MUMPS STACK
;
PUBLIC STACKA,STACKR
PUBLIC ADDSTKEY
PUBLIC UNSTK,MOVEKEY1,UNWPRNI
PUBLIC MOVE,MOVE2,STWPRN,UNSTKA,STACKR
PUBLIC MOVEI,UNWPRN3,UNSTKR,UNSTKR1
PUBLIC MOVEDDI,MOVEDEI,MOVEEDI,MOVEEEI
PUBLIC MOVEKEY€ÂÄEMO°€±€ã »É ººº»ÉÉÍ»ÍËÍ ºººÌ͹Ì͹º  º º º º º º º º
 ÈÍÊͼ
¼
È
¼
È
¼²€@#Í#É%ÉÍÍ» #º %ÈÍÍ»
#¼
%ÈÍͼ³€@= HÉÍÍËÍÍ»=!Hº=!Kº=!Nº="Hº="Kº="Nº=#Hº=#Nº=$Hº=$Nº´€5=#Mº=#Rº=$Mº=$Rº=%Mº=%Rº=&Mº=&Rº='MÈÍÍÍͼµ€@=&QÉÍÍËÍÍ»='Qº='Tº='Wº=(Qº=(Tº=(Wº=)Qº=)Wº=*Qº=*WºÿÂÄEMO¶€)=)VÉÍÍÍ»=*Vº=*Zº=+VÌÍÍͼ=,Vº=-Vº·€(=,YÉÍÍÍÍ=-Yº=.YÈÍÍÍ»=/]º=0YÍÍÍͼ¸€T>ÉÍÍÍÍÍ»>ÈÍÍÍÍ»º@ÉÍͼº@ºÉÍͼ @ȼ
@É» @ȼÿÐHONEBKôest, name€
(617)123-1234ôest,sdf€123-1234ÿl MUMPS commands"ÿations"ÿ!ÿs."ÿ°€†W ! G CURL2PC:%PC,CURL2X:$V(-4)\10=1 H 0 S %M=-$V(7@%J),%A=$V(&32@%J)#4096,%C=$V(36@%J),%AA=$V(&30@%J)#4096-1 I $V(CUR@%J)=128 S %M=%J±€VF %I=%A:1:'%T*256+%A+%C-1 S %X=$V(%I@%M)#128 I %X>9 Q:%X<32 W $C(%X) I %I=%AA W "(^)"²€W ! Qÿ€-ÂÄEMO¶€.ÿName: ",NAM:60,! IF NAM="" QUITÿAM="" QUITÿ%READ "Name: ",NAM:60,! IF NAM="" QUITÿ"" QUITÿ%READ "Name: ",NAM:60,! IF NAM="" QUITÿLPÒD°€%READ "Name: ",NAM:60,! IF NAM="" QUITÿIF NAM="" QUITÿAM=""±€ LPÒD°€%READ "Name: ",NAM:60,! IF NAM="" QUITÿF NAM="" QUITÿ60,! IF NAM="" QUITÿ€#WRITE "Phone Numbers:",! SET NAM=""±€ LPÒD°€%READ "Name: ",NAM:60,! IF NAM="" QUITÿ Numbers:",! SET NAM=""±€ LPÒD°€%READ "Name: ",NAM:60,! IF NAM="" QUITÿ32 W $C(%X) I %I=%AA W "(^)"²€W ! QÿÁÄEMOALLÄEMOALL³€ÆW YEL1,"^PHONEBK",GRN,".",!!,WHT1,"RD READ ""Name: "",NAM:60,! IF NAM="""" QUIT",!,GRN,"Use the ",YEL1,"READ",GRN," command to prompt for a name and read it into variable '",YEL1,"NAM",GRN,"'."´€`W !,YEL1,"QUIT",GRN," the subroutine if there is a null entry, or 'timeout' after 60 seconds.",!µ€eW !,WHT1," IF NAM'?2.A1"","".1"" ""1A.AP WRITE ""Please enter as LAST,FIRST"",! GOTO RD",!,GRNÿT:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionRLINP
007E 2A C9 SUB CL,CL ; INIT LENGTH TO ZERO
;
0080 FC CLD
0081 AC STCLI: LODSB
0082 88 07 MOV [BX],AL
0084 43 INC BX
0085 41 INC CX ;(REALLY CL
0086 3C 80 CMP AL,80H
0088 75 F7 JNE STCLI
;
008A 88 0F MOV [BX],CLÁÄEMOALLÄEMOALL¶€ûW "Use the pattern match operator '",YEL1,"?",GRN,"' to test if the name fits the format:",!,YEL1," 2 to any number of Alphabet letters, 1 literal comma, 1 optional blank space,",!," 1 Alpha letter, then any number of Alpha or Punctuation characters."·€ÙW GRN,!,"If the name does not match (the apostrophe is the unary logical ",YEL1,"NOT",GRN," operator),",!,YEL1,"WRITE",GRN," an error message and ",YEL1,"GOTO",GRN," label ",YEL1,"RD",GRN," to re-prompt for a name.",!ÿµ€¸€€ÁÄEMOPATÄEMOPATµ€ ÔRY1±€ÿ%ÿ´€%ÿ°€%ÿÿÿ%ÿÿTR²€%ÿÿ%ÿ%ÿ€;±0€B;MULTI USER PC MUMPS - Supports up to 31 users utilizing dumb ter-±1€C;minals for true concurrent processing on IBM-PC's and compatibles.±2€B;Additional serial ports are the only requirement. $24.95±3€;±4€B;MACMUMPS -- MUMPS for the MacIntosh. Supports Graphics, Windows,ÿ±5€B;Menus, etc. Multi-tasking. 1984 ANSI Standard. $149.95±6€;ÿÁÄEMOALLÄEMOALL¸€›W !,WHT1,"TEL READ ""Phone: "",TEL,! IF TEL'?3N1""-""4N,TEL'?1""(""3N1"")""3N1""-""4N WRITE ""Please enter as NNN-NNNN or (NNN)NNN-NNNN"",! GOTO TEL",!¹€ÂW YEL1,"READ",GRN," a telephone number into variable '",YEL1,"TEL",GRN,"'. If the number does not match the",!,"ordinary format, and it does not match the form for a number with an area code",!±0€`W YEL1,"WRITE",GRN," a message and ",YEL1,"GOTO",GRN," label ",YEL1,"TEL",GRN," to re-prompt.",!ÿMOPATÄEMOPAT³€µ€¸€ÁÄEMOALLÄEMOALL±1€2W !,WHT1," SET ^PHONEBK(NAM)=TEL GOTO RD",!±2€°W YEL1,"SET",GRN," the data into file ",YEL1,"^PHONEBK",GRN,", using '",YEL1,"NAM",GRN,"' as a subscript (i.e. key). The",!,"data node is set equal to the telephone number.",!±3€ D PAGE^DEMOÿÿ±2€ ÐART2°€
ÄEMODBLÄEMODBL²€´€·€ÄEMOEXPÄEMOEXP²€¶€±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOALLÄEMOALL±4€öW #,MAG,!,"The addition of a comment line will complete the user-input subroutine.",!,"Note that there are",WHT1," NO",MAG," type or file declarations. Commands may either be",!,"spelled out or abbreviated to a single letter for convenience.",!!±5€gW !,WHT1," ;INPUT NAMES AND PHONE NUMBERS",!,"RD READ ""Name: "",NAM:60,! IF NAM="""" QUIT"±6€ZW !," IF NAM'?2.A1"","".1"" ""1A.AP WRITE ""Please enter as LAST,FIRST"",! GOTO RD"ÿÄEMOPATÄEMOPAT³€µ€¸€RESTORE EXEhX ÷¼NSETUP COMh
’@eSHIPTRAKCOMh
âñPROBE ÿÿÿÿ+°k TLIST COM…}J
ñ
MUMPSGLIEXEÿÿÿÿ0«z švWORD A¯> CCSM ԙC wGRAPHICSCOM ÿÿÿÿh
—üBOB BAT ÿÿÿÿFpAPX {uG BARC51 COMÿÿÿÿk8v ÕOçGT ÿÿÿÿ5€"´AVAILMEMCOMÿÿÿÿ…]¸ MMODULE ASM ÿÿÿÿ˜k
åüINSTANT ÃcñÁÄEMOALLÄEMOALL±7€ÀW !,"TEL READ ""Phone: "",TEL,! IF TEL'?3N1""-""4N,TEL'?1""(""3N1"")""3N1""-""4N WRITE ""Please enter as NNN-NNNN or (NNN)NNN-NNNN"",! GOTO TEL",!," SET ^PHONEBK(NAM)=TEL GOTO RD",!±8€‘U 0:0 W /10:15:0,/CUP:25:1,?25,$C(174)," Press a key to try it! ",$C(175),/CUP:1:1 R A#1:180 W *8 W /10:14:0,/CUP:25:1,?79 W /CUP:15:1 K ^PHONEBK±9€ DOÄO°€U 0:79 W YEL1 D RD^DEMOPRGÿ±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOALLÄO±€ŽU 0:0 W /10:15:0,/CUP:25:1,?12,$C(174)," Press ^ to enter more data, or return to continue ",$C(175),/CUP:1:1 R A#1:180 W *8 W !,/CUP:25:1,?79²€W ! G:A="^" DO³€HW #!,YEL,"Our sorted list can be output instantly with a simple loop:",!´€­W !,WHT1,"OUT WRITE ""Phone Numbers:"",! SET NAM=""""",!,"LP SET NAM=$ORDER(^PHONEBK(NAM)) IF NAM="""" QUIT",!," WRITE NAM,"": "",^PHONEBK(NAM),! GOTO LP",!ÿMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€²¥ZR¥ZR·€I S?1N1U1N1U1N S T=S G T¸€žW !,"CURRENT:",$ZR,$ZRD," ",$ZG,$ZGD," ",$ZL," ",$ZS S %D=$ZR D %W^%DVOL:$T(^%DVOL)'="" G QT:S="" W " ??? I DON'T UNDERSTAND - NOTHING CHANGED -",!,*7 G QT¹€ TÅZS°€8W *7," 2 DIGITS RESET $ZS IF IN 60 TO 99 RANGE ! ?",! Q±€ ÑT°€ K T,S,D Q±€ EZSÔ°€0W !,"WAS:",$ZR,$ZRD," ",$ZG,$ZGD," ",$ZL," ",$ZS±€0W !,"NOW:",$E(T,1,2)," ",$E(T,3,4)," ",$E(T,5),!²€LS $ZG=$E(T,3),$ZGD=$E(T,4),$ZRD=$E(T,2) X "S $ZL="""_$E(T,5)_""",$ZR="_$E(T)³€ QTÿT°€ %ZSTARTÁÄEMOALLÄOµ€ÍW !,YEL,"The first line of code uses the ",WHT1,"WRITE",YEL," command to display a heading.",!,"The ",WHT1,"$ORDER",YEL," function sets the local variable ",WHT1,"NAM",YEL," to the next subscript in order"¶€UW !,"after its current value (initally null). A null value is returned if no more",!ÿ´€·€ÄEMOEXPÄEMOEXP²€¶€±1€ÄEMOGLBÄEMOGLB±€³€¶€±0€±6€ÄEMOMORÄEMOMOR±€³€·€±0€ÄEMOPATÄEMOPAT³€µ€¸€ÁÄEMOALLÄO·€ÈW "data in the file ^PHONEBK follows '",WHT1,"NAM",YEL,"', and the output subroutine ",WHT1,"QUIT",YEL,"s. The",!,"last line outputs one name and phone number, then loops to label ",WHT1,"LP",YEL,"."¸€œQ:'$D(^PHONEBK) U 0:0 W /10:14:0,/CUP:25:1,?25,$C(174)," Press a key to try it! ",$C(175),/CUP:1:1 R A#1:180 W *8 W /10:14:0,/CUP:25:1,?79,/CUP:15:1 U 0:79¹€D OUT^DEMOPRG Q±0€ ÄEMOC°€ DEMOCÄEMOC°€';BDG,,,;2JUN87 6:35PM;OUTPUT DEMO TEXT;ÿ±€#W /10:12:1 U 0:0 W # D DOTS G PART2ÿÿnÁÄEMOCÄEMOC±€#W /10:12:1 U 0:0 W # D DOTS G PART2²€ DOTSÄISP°€;S Y=$T(MESSAGE+X),Y=$P(Y,";",2),SP=40-($L(Y)\2) W ?SP,Y,! Q±€ ÄOTS°€ S Y=1 F X=1:2:80 W /CUP:Y:X," "±€ S X=80 F Y=1:1:25 W /CUP:Y:X," "²€"S Y=25 F X=79:-2:1 W /CUP:Y:X," "³€ S X=1 F Y=25:-1:1 W /CUP:Y:X," "´€Qµ€ MESSAGEÍESSAGE°€$;-- MUMPS demo created by MGlobal --±€;²€(;supplier of low cost Standard MUMPS for³€;the IBM-PC and Macintosh.´€;µ€!;For more information contact: ÿ¶€;ÿ 0:0 W # D DOTS G PART2ÁÄEMOCÍESSAGE¶€;·€B;MGlobal MUMPS USER'S GROUP ¸€B;1601 Westheimer, Suite 201 4321 Hartwick Road, Suite 510¹€B;Houston, Texas 77006 College Park, MD 20740 ±0€B;(713) 529-4858) (301) 779-6555 ±1€;±2€ PART2ÐART2°€W /10:14:1,!!!!!±€F X=0:1:3 D DISP²€W !!!!!! F X=5:1:10 D DISP³€F BK=0:1:15 W /10:15:BK D DOTS´€D PAGE^DEMO W /10:0:0ÿEMO TEXT;²€#W /10:12:1 U 0:0 W # D DOTS G PART2ÁÄEMOCÐART2µ€7F X=41:1:80 F Y=1:1:25 W /CUP:Y:81-X," " W /CUP:Y:X," "¶€W /10:14:0 U 0:80 Q·€ DISPÿART2°€W /10:14:1,!!!!!±€F X=0:1:3 D DISP²€W !!!!!! F X=5:1:10 D DISPÿ MUMPS USER'S GROUP ÿ²7€DISPб€0²€1³€2´€3µ€4¶€5·€6¸€7¹€8±0€9±1€10±2€11±3€12±4€13±5€14±6€15±7€16±8€17±9€18²0€19²1€20²2€21²3€22²4€23²5€24²6€25²7€26Õ±€';BDG,,,;2JUN87 6:32PM;OUTPUT DEMO TEXT;²€#W /10:12:1 U 0:0 W # D DOTS G PART2ÁÄEMODBL°€ DEMODBLÄEMODBL°€5;AJM,,,@DEMOv4.43;1MAY87 6:35PM;THE DATABASE LANGUAGE±€DU 0:0 S BX6=$C(204),BX7=$C(185) W #!!,?22,RED1,UL1,$E(UL,1,30),UL2,!ÿµ€7F X=41:1:80 F Y=1:1:25 W /CUP:Y:81-X," " W /CUP:Y:X," "¶€W /10:14:0 U 0:80 Q·€ DISPÄEMODBL°€ DEMODBLÄEMODBL°€5;AJM,,,@DEMOv4.43;1MAY87 6:35PM;THE DATABASE LANGUAGE±€DU 0:0 S BX6=$C(204),BX7=$C(185) W #!!,?22,RED1,UL1,$E(UL,1,30),UL2,!ÿor pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMODBLÄEMODBL²€`W ?22,UL3,WHT1," MUMPS:",YEL," The Database Language ",RED1,UL3,!,?22,UL4,$E(UL,1,30),UL5,!,WHT1³€ªW !," MUMPS ",YEL,"is ideally suited for the design of fast, ",WHT1,"user-friendly",!," customized databases ",YEL,"with a minimum of programming effort."ÿÄL€Wƀ Ȁ= ÈI€ÈL€ÍÉL€EÅCHO-OFF€ U 0:("EC":1)ÅCHO-ON€ U 0:("EC":0)ÅRROR€$ZEÿDocumentation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMODBLÄEMODBL´€ÝW !," If you have been using inflexible database packages",!," you'll appreciate greater flexibility and ease of use,",!," with the power of a ",WHT1,"full-featured",YEL," ANSI computer language."µ€kW !!," Explore some reasons why ",WHT1,"MUMPS",YEL," should be your ",WHT1,"Database Language:",!,RED1¶€W !?15,BX1,$E(BX,1,45),BX2,!?15,BX3,WHT1," VARIABLE LENGTH STRINGS ",YEL,"-- Effortlessly ",RED1,BX3,!?15,BX6,$E(BX,1,45),BX7ÿimple mode of expressionÁÄEMODBLÄEMODBL·€hW !?15,BX3,WHT1," GLOBALS",YEL," -- Optimized B-Tree Structure ",RED1,BX3,!?15,BX6,$E(BX,1,45),BX7¸€jW !?15,BX3,WHT1," PATTERN MATCHING ",YEL,"-- Intelligent Interaction ",RED1,BX3,!?15,BX4,$E(BX,1,45),BX5 Q¹€ ÄEMOEXP°€ DEMOEXPÄEMOEXP°€-;AJM,,,@DEMOv4.43;5MAY87 10:40AM;WHAT CCSM IS±€»S REG=WHT,BOLD=CYN1,$P(UL,$C(196),80)="",UL1=$C(218),UL2=$C(191),UL3=$C(179),UL4=$C(192),UL5=$C(217),BX="",$P(BX,$C(205),80)="",BX1=$C(201),BX2=$C(187),BX3=$C(186),BX4=$C(200),BX5=$C(188)ÿÁÄEMOEXPÄEMOEXP²€W #!!,YEL1 U 0:79³€ÏW ?15,BX1,$E(BX,1,47),BX2,!?15,BX3,BOLD," MUMPS",WHT1," is the most productive language ",YEL1,BX3,!?15,BX3,WHT1,"available for interactive business applications",YEL1,BX3,!?15,BX4,$E(BX,1,47),BX5,!!´€`W BOLD," MUMPS",REG," was originally developed at ",BOLD,"M",REG,"assachusetts",!µ€sW " General Hospitals as a ",BOLD,"U",REG,"tility ",BOLD,"M",REG,"ulti-",BOLD,"P",REG,"rogramming",!ÿ³€µ€¸€±1€±3€ÁÄEMOEXPÄEMOEXP¶€XW " ",BOLD,"S",REG,"ystem, hence the name ",BOLD,"MUMPS.",REG,!!·€IW " The goal of the system was, and is still, to provide a",!¸€RW " simple yet ",BOLD,"powerful high-level",REG," language for",!¹€OW " interactive ",BOLD,"database",REG," manipulation.",!!±0€]W " Today, ",BOLD,"MUMPS",REG," is used by countless thousands in corporate America",!ÿÄEMOPATÄEMOPAT³€µ€¸€±1€±3€ÁÄEMOGLB°€ DEMOGLBÄEMOGLB°€';AJM,,,@DEMOv4.43;1MAY87 8:13PM;GLOBALSÿfiling systems.",!±2€BW " It is the most advanced system design for",!±3€@W " small machines on the market today.",!!±4€-W " ",YEL1,UL1,$E(UL,1,48),UL2,!±5€…W " ",UL3,BOLD," MUMPS is unmatched in programming productivity.",YEL1,UL3,!," ",UL4,$E(UL,1,48),UL5,!,BOLD±6€ ÄEMOGLB°€ DEMOGLBÄEMOGLB°€';AJM,,,@DEMOv4.43;1MAY87 8:13PM;GLOBALSÿpressionÁÄEMOGLBÄEMOGLB±€‚W #?17,WHT1,UL1,$E(UL,1,39),UL2,!?17,UL3," ",BLU1,"GLOBALS -- Optimized B-Tree Structure",WHT1," ",UL3,!?17,UL4,$E(UL,1,39),UL5,!!²€ÞW " ",BLU1,"MUMPS",CYN," stores data elements in an optimized binary tree,",!," with allocation, compaction, garbage collection, and",!," buffer pooling handled transparently by the system,",!ÿ"EC":0)ÅRROR€$ZEÿDocumentation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expression²¥ZSTART°€ %ZSTART¥ZSTART°€/;DBB,,,@UTILv4.21;1MAY87 8:22PM;SIGN ON PROGRAM±€@W #!!,?10," WELCOME TO CCSM v",$V(-2),".",$V(-3)," LINE #",$I,!!²€)U 0:(79:$ZIO\32*32+3) F I=1:1 R X:0 Q:'$T³€G ^DEMO´€ ÁÄEMO°€ DEMOÁ°€W /CUP:22:1,?79±€D ^DEMOEXP,PAGE,^DEMOADV,PAGE,^DEMODBL,PAGE,^DEMOSTR,PAGE,^DEMOGLB,PAGE,^DEMOPAT,PAGE,^DEMOALL,PAGE,^DEMOWDF,PAGE,^DEMOC G DEMO²€ ERRORÃOLOR°€;ÿntation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMOÃOLOR±€xF I=1:1:15 W !,/10:I:0,$P("blue,green,cyan,red,magenta,yellow,white,gray,blue,green,cyan,red,magenta,brown,white",",",I)²€Q³€ COLSETÃOLSET°€hF I=1:1:15 S @$P("BLU,GRN,CYN,RED,MAG,YEL,WHT,GRY,BLU1,GRN1,CYN1,RED1,MAG1,YEL1,WHT1",",",I)=$C(27,23,I)±€Q²€ KEYÄEMO°€;AJM,,,;1MAY87 7:57PM;;±€>S $ZE="ERROR^DEMO" D COLSET U 0:0 W # S BOLD=12,REG=7,T0=1 B 0²€ WHATÅRROR°€B 1 U 0:79 W !,$ZE,! Q±€ PAGEÿ: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMOËEY°€QW /CUP:1:1 U 0:("EC":1) R A:0,I#1:T0 S K=$T R A:0 U 0:("EC":0) H:I="Q"!(I="q") Q±€ ÐAGE°€tS T0=180 W /CUP:25:1,?18,WHT1,$C(174)," Press a key to continue, or Q to quit ",$C(175) D KEY W WHT1,/CUP:25:1,?79 Q±€ COLOR×HAT°€AF D1=1,2 W /10:BOLD:0,^DEMO(D1) D KEY G:K A W /10:REG:0,^DEMO(D1)±€!W /10:BOLD:0,^DEMO(3) D KEY G:K A²€FF D1=3:1:6 W /10:BOLD-8:0,^DEMO(D1),/10:BOLD:0,^DEMO(D1+1) D KEY G:K A³€7W /10:BOLD-8:0,^DEMO(7),/10:BOLD:0,^DEMO(8) D KEY G:K Aÿ a simple mode of expressionÁÄEMO×HAT´€YW /10:REG:0,^DEMO(8),/10:BOLD:0,/CUP:22:1,?25,$C(174)," Press a key to find out ",$C(175)µ€‹D KEY G:K A D KEY G:K A W /CUP:22:1,?78 S BOLD=$S(BOLD>14:10,1:BOLD+1) G WHAT ;S REG=$S(REG>6:(BOLD=10)+2,REG=6:BOLD<15*5+2,1:REG+1) G WHAT¶€ AÄEMOADV°€ DEMOADVÄEMOADV°€3;AJM,,,@DEMOv4.43;1MAY87 8:14PM;ADVANTAGES OF MUMPSÿÅCHO-OFF€ U 0:("EC":1)ÅCHO-ON€ U 0:("EC":0)ÅRROR€$ZEÿDocumentation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMOADVÄEMOADV±€ÃW #,YEL1," ADVANTAGES OF MUMPS",!!," * ANSI Standard => TRUE PORTABILITY",!," MUMPS",GRN," is both an ANSI standard and a FIPS language,",!²€ŸW " so you can write programs on a microcomputer and run them on",!," a minicomputer, Macintosh or mainframe ",YEL1,"without modification.",!ÿC":0)ÅRROR€$ZEÿDocumentation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expressionÁÄEMOADVÄEMOADV³€W " MUMPS",GRN," is the only ANSI language that extends standardization",!," to Input/Output device control."´€GW YEL1,!!," * EFFICIENCY OF PROGRAMMING",!,GRNµ€úW " You'll need about ",YEL1,"one-third the code",GRN," of Pascal, C, or BASIC",!," when you write the same program in ",YEL1,"MUMPS",GRN,"! This means faster",!," development time and easier software maintenance.",!!ÿ mode of expressionÁÄEMOADVÄEMOADV¶€åW " Since ",YEL1,"MUMPS",GRN," uses typeless variables, beginners can start writing",!," programs right away. Explicit memory allocation and",!," type declarations are never required.",!!·€¯W YEL1," MUMPS",GRN," incorporates a sophisticated ",YEL1,"B-Tree",GRN," file system.",!," Data files may grow to any size and will be efficiently accessed.",!!¸€ ÄEMOALL°€ DEMOALLÿ3 from Stanford and UCSF as a simple mode of expressionÁÄEMOALLÄEMOALL°€8;AJM,,,@DEMOv4.43;27SEP86 4:50PMv4.43;PHONE BOOK EXAMPLE±€U 0:79²€áW #,GRN,"A simple user-input subroutine for a ",YEL1,"MUMPS",GRN," phonebook database could repeatedly",!,"prompt for names and telephone numbers, perform validity checks, and store the",!,"data in the permanent global file "ÿÈL€ÍÉL€EÅCHO-OFF€ U 0:("EC":1)ÅCHO-ON€ U 0:("EC":0)ÅRROR€$ZEÿDocumentation for pilot±€T:²€M: PILOT emerged in 1973 from Stanford and UCSF as a simple mode of expression

  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : MUMPSDEM.ZIP
Filename : DEMOGLB.DAT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/