&J  @@K@^00030 LBACKGRND$(24)*80,DP$(150)*6,SDP$(150),FLDTYPE$(150)*25,ATTR$(150)*6,SEQUENCE(150)K@N00040 =SEQ(150),OLDSPEC$(150)*35,SPEC$(150)*35,SORTWRK(150),BKGRSPC$(24)K@X00050 FX$*80,COMPANY$*40,MENU$(40)*40,PROGRAM$(40)*30,PASSWORD$(40)*4,MENUSPEC$(3)K@P00060 =SCRNFILE$*30,FL$*80,ROW$(150)*4,COL$(150)*4,LENGTH(150),SDPX$(150))K@N00070 <a@70t@?70 t@@?.o?$B?P?$B?$B?$Bo@<<o@^@IPC@<>o@ ^@I?.oGo@?P@ADo@8##BA #A #<Co@^@FZZIIFZZIIC Ao@#<Fo@ ^@I C! A@Ca@CD:CE;o7F A@ 77 A@5o@C@ !a@Ga@x@ IHS@ KJS@%KL0Oo@x@Mq@ NTo@00N4Po@ #a@ 0#a@ O#a@Pq@ QZo@Q.oo@Q/oao@Q/oao@ R/a@Zo@3Q/oQ0tQ0t@00N t@9Q/oQ0 tQ0 t@Q/oQet@^@Q0P@o@C@ !a@ zoSf@ UT[@!Ta@WTVS@YTXS@[TZS@]T\S@_T^S@aT`S@cTbS@eTdS@gTfS@iThS@kTjS@mTlS@g@ S SA@P@o/!0nS@ qpS@7r~o@TP@"s:7.;o"o@@C@ 2$#B@2$B2$tB@ 2$uB@@ 2$B@#.oo@12o#s Ao@B@@7/oo@7/oho@vq@ Y@ w: x;o"o@2$#B2$#B@@70t@.70 t@^@I7et@ !a@ /7 A@o@@70t@^@P?70 t@?.oo@ ?$B@?P@@?o@+#OO!dyo#.@A@+#zz!dyo#{.@A@@ o@?$ p?$B@?o@## s A@## # A@ o@@C@ !a@  S@@o@| A#B@}}?o@|" oo@%||!d~o|| Ao@!|"f A|"f A@10::;;o A A A@ "f A@:||!do}#|!d A| Ao@.:.;oo@!}#|!d A| A@ }o@@@ !&A@ o@ #!&A@@"soho@#".:";oo@" o@o@S SA!ATPk@@o@!#"f Aoo@oa@@ o@#"f A@".oooo@##A#A@&# !PA@D o##Ao@##A#A@&# !PA@a@ o@a@@o@!##!"!` A@!##!"!` A@!##$!"!` A@!##!"!` A@ o@a@@@ " 1o@ ## A@ o@ " #@ A@ " " Aa@@@ " o@# # A@ o@## A@ " " Aa@@@. " o " # "  # A@ " " Aa@@@  " A@##!!! A@#" 0 4 A@#.@!PA@ " " Aa@@  A@o@+#! " Ao A@+#!!" Ao A@ o@:;oa@ 0 4 A.oa@o@F.o##A#@2!P# !d A@ o@ " " Aa@@@C@ | A@ ?. A@ 2$B@ !&A@ . A@o@!00!Q A@S@#"f A@.:.;o A@.oo@#@"f A@.o A@1# !do Ao@ ?? A@/?# A?#!0 A?# A@?#y!0 A@1?#?#{ "`"a!0!` A@#@ !PA@  A@&o#"f Ao@  o@o!0S@C@?.oo@ ?$B@ ?$B@ !&A@ S@,":"0;o A#o@@C@ ?$B@ !&A@)o@ S@)o@9":"0;o A " " A)o@@?8o@#"f.o3o@#OO@#!0A@+#"fo#AA#A@8o@#"f A@#"f A@#"f A@#"f A@J.o## A##" !0 A@ .o@ ?$B@ S@C@ . A@ ?$B@ !&A@ S@.o# A@,":"0;o A?o@?Fo@#" Eo@I#!d"f.o# A## A?o@ Co@ Bo@@C@ ?$B@ !&A@ S@"oOo@<? " 1Mo ## AMo@ " " AKo@"0oRo@< " ?Po# # APo@ " " AKo@ ?$ B@  p@?Yo@ #  A@+# #y#y# A@)##o#y#A@m# y##!` A#!d"fo##!d"f A#tA@ To@!&A#B@ 0bo@,"o^o " A" A@=?1]o# # A]o[o@,"0o`o " A" A@=?_o# # A_o[o@"Oo@  " A@!0T\@!Ta@TS@#B@$|#"f A|.omo@A#"f A.:|;o  A  A| A@)##| !d A|| A@'##" s!1A0 A@#s!1|"f A@Ao##| !d A A| Ajo@. ##|#"  !d mo@TS@"0to@_s " "a A # A0"poo  #@ A## Aoo@ A A@+  !d@1"f A A@Z:"p;o#  !d A Aqo#  !d A@ " " Amo@/h@9## A##o~o#A@#!do~o@+01xo##oyo@ wo@E0yo###s!1 Ayo@ ##0"a# A@K#z"fo  A#"f A#A  A@3# "f# 1"fo!&Amo@##  A@ " A@TP@[o@/h@@ #!&A@ # A@?o@4##o~ o# o@ o@ 2$B@2$B?$B@=o##@!` Ao@70t@?70 4o@o@!&A[o@@C@"?o # A@& y"f A  !d"! A@/ y "f A  !d"! A@ { !do@"| "f A#| A@5# | !d A|| A## A@m@'| y "f A @ "f A@B|.:.;o "  A.o| A A@|.o| "  A@- "f A#  !d A@so#  !d A#  !d"! A## A# | !d"! A@/h@# |!d A@@'###!PA@ o@a@@@ #!&A@##oo@# A@0# A@O# A@?07 t@*?.o#B#B@?P@Ao@# 0 #!d A@!A # 0 #!d A@ o@ !a@7!0S@#S@ S@ S@ S@ S@ S@@###S@o@"zoo@&.:;oo A@# ##S@# ##S@o@@Ao@0 ## A@0 #A # A@ o@70t@.70 t@!o@@of@"0oo@<? " 1o ## Ao@o@< " ?o# # Ao@g@   (lg2<FniPZ l d n  x  H*3 &:~mho H>,N|($" 6,@F6hV@ J (!TH@"^HK#hX$ra%|(g&zp'y()*+(,&-2.D/@X0h1|234((5l>6&708:(79D"L:N,Fa;X(<b=l(>v<?,R@tA B( C DD \ dE(j qF GH H I J K  L@ M > NR O @l P*Hx Q4 R>( SH $TRH( *U\(T 3Vf(l >Wp WXz dY qZH ~[(& \,> ],Z ^,~ _ ` al b(N c, *d, de,f<g Nh@^i$j. k8lBmL nVHo`pjqt&r~l s/t>uNMv\wkxDzyz{|}~h>f ,(2 <J Fh- Px/ Z,: d Q nH x , ,2 V ~ ,  (  B& (R. v@ M  W ^ h` u " ~ ,,. 6` @~ J T  ^  h  rZ0 | z2 ?  W n    6 D T      8  V ,r , 4 & V 0f :, D, N XL4 b@B" l@R$ vb& h1 @ K ,M ,d (,  r H @   ,  0FLV r-,B e*4 J>HR @\L* Df< QpH UzLX Wp n  0! p!~!!@!  ! !& "<"I0"\ P"m @`"o ~"q$ ". "8 "B "L #V @#` <#j ~#t #~ @# # #%  $@ N$\ x$u @$ $ $ $ 4% t% % %) %J %a H&( V&2 v&< &F @&P &Z & d & n ' x 2'  H'  `' '. '= 'T l(r 8( b( l( ( ( :) r)< )n ) ,*" LT*, b*6 *@ ,* J +!T .+"^ H+#h Hp+$r ,+)%| +V& +X'  ,\( *,g) @P,r* `,z+ ,, ,,- ,. -/ ,-0 t-1 -2 -J3 H.Q4 2.f5 \.{6& .70 .8: L*/9D 8/:N R/;X t/<b /=l /!>v /,? H/7@ 0BA ,>0\B 0C 0D ,0E *1 F 81G F1#H V1%I z1)J 14K H1?L ,1JM 2aN (l2O l2P* 2Q4 (3R> H,3SH J3%TR n3/U\ 3FVf 3TWp 3Xz $4Y 4Z 4%[ h57\ ,B5M] ,5z^ l5_ ,6` L\6#a t65b H6Cc 7[d "7le R7{f,j7g 7h7i$*8j.Hd8=k8,8YlB(8mLH9nV ~9o` 9pj:KqtH,:]r~,b:s(:t:u,;v,T;7w,~;Wx ;yL;z<{ :<|,<C}=w~H(=@=  T=h=v=(=2=< =F,=P 6> ZD> d^>( n >< x(>z ( ?  J? hZ? ? @?  ? @ F@! @C!@`!@! A!4A! nA! A+"AH"" Bv",B"6B"@B #JB #T ,C3#^:C@#hFCD#r@VCF#|CH#,CS#Cj#Cy#D#H>D# bD# D#D#E $ HE/$VE<$jEI$E[$Ej$Eu$(F$&NF$0tF$:F$DHF$NhF$X,G$b,(G$l`G$vG% G9%@G@% HB%&HY%PHs% ~H%(H%H% H%I% I%,4I% VI% I9& LI@&DI}&MAT BACKGRND$Q PMAT DP$QMAT SDP$QMAT FLDTYPE$Q MAT ATTR$Q MAT SEQUENCE MAT SEQMAT OLDSPEC$Q #MAT SPEC$Q #MAT SORTWRK MAT BKGRSPC$Q X$PCOMPANY$P(MAT MENU$Q ((MAT PROGRAM$Q (MAT PASSWORD$Q (MAT MENUSPEC$Q SCRNFILE$P FL$PPMAT ROW$QMAT COL$QMAT LENGTH MAT SDPX$Q MAT XX$QVOLID$PFFLDHELP$PMAT FH$QMAT FX$Q( MAT HSPEC$Q #X9@?8@@,1,C 80@config userlevel 3@Enter path name@@\@NAME=@ screens,SHR@AScreen file not found. Enter 'NEW' to create, or ENTER to retry.D$@@new@NEW@Enter system name:SYSNAME$@payroll @SCREENS,NEW,RECL=1920SCRLIMIT$@@b@@B 1. Add/ Change: Screen, Decimal Positions, and Prompt Sequence @ 2. Print Screens on File@ 3. Copy Screen From Another@ 4. StopS@@MENU@BPress the key Q after printing has started to stop printing after@ current screen has printed.@Enter starting screen number:o@@ ================= SCREEN @ =================NBRFLDS4@@ 4@3@K$@@Q@qi@@ COPY SCREEN@ 12,1,C 78@"Enter Name of Screen Source File: @ 12,35,V 15SCRN2$@@,SHR@Enter source screen number: SS@@!Enter destination screen number: DS@last screen used isFNHELPj"@@'srow=2,scol=6,erow=15,ecol=72,border=sn@ 1,20,CC 40@SCREEN COMMAND SUMMARY@3,3,C 75@)F1 - Insert a line above the current line@4,3,C 75@F2 Delete Current Line@5,3,C 75@1F3 Replace special characters with control codes:@6,3,C 75@! Highlight = ^ (shift 6)@7,3,C 75@# Underline = \ (next to Z)@8,3,C 75@' Reverse = ~ (next to Enter)@9,3,C 75@) Normal = | (shift-next to Z)@ 10,3,C 75@)F4 Duplicate current line from line above@ 11,3,C 75@?F5 Makes a box using @ as the upper left and lower right corner@ 12,3,C 75@F6 - Center current line only@ 13,3,C 75@ F7 - Center Screen left to right@ 19,3,C 50@last screen number used is @ 21,3,C 40@Enter screen number, or F10:@ 21,32,N 2,U$@@G@U@Add a new screen (y/*n)?@Y@y@,@@Pu@A5@@X@;XX@:XX$@;Y&@@&@ F10 to quit&@@@X1Y1@@@Z&@@@@@^@E4@|@E0@E1@~@E87@T@L9@R@scaningMSGROW?ROW$@24@,1,c 1@*SP@_@T@@,GU 4,U@GU 4@GU 9@@,2,C,R@1 F1 - shift fields down F2 - shift fields up @Enter decimal posnsFNMOVE@Enter field type@%G*C*N*V*CU*CC*CR*CL*VU*VL*GU*GL*NZ*GZ@ 01234567890@.LBSGN@#MINUS@-SMLZ@zCAPZ@Z@PIC(@)@G @Enter field attributesZ$@@IUBHRNGACEPT/:@CH@Enter field sequence>@@P@NL@F3 - add field help@R@9srow=12,scol=40,erow=22,ecol=79,border=sn,caption=FIELD# @ (F2-reformat right margin) @1,1,C@ Control spec:i@P2@G1,15,VU 4;2,1,V;3,1,V;4,1,V;5,1,V;6,1,V;7,1,V;8,1,V;9,1,V;10,1,V;11,1,VYYC@@@Both : and ; not allowed@ COMBINED HELP TEXT TOO LONGSX @ROW6@COLUMNA@PXX@@ 5,20,C 40,U,N@ 7,20,V 30,U,N@ 9,20,V 4,U,ND@D@@ 1,20,C 40@MENU MAINTENANCE SCREEN @2,2,C 80@ 3,10,C 20@Enter Selection#@ 5,02,C 20@ DESCRIPTION@ 7,02,C 20@PROGRAM@ 9,02,C 20@PASSWORD@ 11,23,C 40@Press F10 to exit.@ 3,28,N 2,UE,NSELMAT A$Q  ,Lp<`z .;Mm/Qjv2KS[z8Wy'3Rp|'@Ilx)DQ * R _   T b  $ 0 6 < Y _ e k w    * 0 6 = I O U [ a h n u |    ' 3 < D P [ !,8BNXdjsy ^'Dgv &3AVdt00010! REPLACE SCREENGL00020?! DP$=DECIMAL POSITIONS SDP$=DEC POS ARRAY INPUT SCREEN SPEC00090"X=1 )24*00100BKGRSPC$(X)=STR$(X)&",1,C 80"00110#X"001206"config userlevel 3" 00130NEWPAGE 00140"Enter path name";;00150VOLID$DX00160(2VOLID$<>"" && VOLID$(LEN(VOLID$):LEN(VOLID$))<>"\" ,VOLID$=VOLID$&"\""00170! D>00180#1: "NAME="&VOLID$&"screens,SHR",,,9210R00190,30000200! 0R00210C"Screen file not found. Enter 'NEW' to create, or ENTER to retry.";;00220D$D.00230(D$><"new" AND D$><"NEW" ,,140"00240"Enter system name:";00250SYSNAME$$>00260#)1: "NAME="&VOLID$&"SCREENS,NEW,RECL=1920",,P200270#1,320: 0,SYSNAME$,MAT BKGRSPC$00280#1: 00290,18000300! 0B00310#1,320,41,: SCRLIMIT,SYSNAME$,MAT BKGRSPC$00320N 2,V 18,24*V 12"00330( REC(2)><-1 ,#2: 00340 OLDSPEC$(150)00350NEWPAGE00360SYSNAME$$ 003707R00380D" 1. Add/ Change: Screen, Decimal Positions, and Prompt Sequence ""*00390" 2. Print Screens on File"",00400" 3. Copy Screen From Another"00410 " 4. Stop" 00420200430S$00440)S ,1050,480,770m 00450.500460#1: 004701"MENU""00480! M00490"MENU""R00500D"Press the key Q after printing has started to stop printing after"",00510" current screen has printed."".00520"Enter starting screen number:";;00530S !350B00540( S>SCRLIMIT ,# 255: NEWPAGE : #255: : ,350T00550 OLDSPEC$(150)V00560#D255: SYSNAME$;" ================= SCREEN ";STR$(S);" =================""200570#1,1560,4S*2:  MAT BACKGRND$$00580#1,4S*2+1: NBRFLDS00590( NBRFLDS<>0 ,SPEC$(NBRFLDS): #1: NBRFLDS,MAT SPEC$ !: FLDTYPE$(NBRFLDS):  DP$(NBRFLDS): ATTR$(NBRFLDS):  4010B*00600#255,610:  MAT BACKGRND$00610 C 80,SKIP 00620#255,630: " "00630 C ,SKIP 8"00640( NBRFLDS><0 ,,7202600650#1:  NBRFLDS,MAT PROGRAM$,MAT PASSWORD$$00660"X=1 )20^00670#255,680: ;X-1,PROGRAM$(X),PASSWORD$(X),X+19,PROGRAM$(X+20),PASSWORD$(X+20))<00680.PIC(ZZ),X 2,C 31,C 7,PIC(ZZ),X 2,C 31,C 7,SKIP00690#X 00700#255,710: """00710 C 1,SKIP 1300720 K$=KSTAT$00730K$$,00740(K$="Q" OR K$="q" ,S=99999900750S=S+100760,540(00770------ COPY SCREEN --------00780NEWPAGE00790 "COPY SCREEN" 008000J00810;"12,1,C 78": "Enter Name of Screen Source File: "&SCRNFILE$$00820"12,35,V 15": SCRN2$$600830#2: "NAME="&SCRN2$&",SHR",,,9800 008404,00850"Enter source screen number: ";00860SS !8505:00870#2,1560,42*SS:  MAT BACKGRND$ ;81000880 BACKGRND$(1))00890 BACKGRND$(2))00900 BACKGRND$(3))200910#"Enter destination screen number: ";;00920DS !910100930(DS=0 ,,3101$00940( DS<=SCRLIMIT ,,9808$00950( DS-1=SCRLIMIT ,,980,00960"last screen used is";SCRLIMITT00970,910p00980( DS>SCRLIMIT ,#1,1560,4DS*2: MAT BACKGRND$ -#1,1560,4DS*2:  MAT BACKGRND$400990#2,1560,42*SS+1:  MAT BACKGRND$t01000( DS>SCRLIMIT ,#1,1560,4DS*2+1: MAT BACKGRND$ -#1,1560,4DS*2+1:  MAT BACKGRND$601010( DS>SCRLIMIT ,#1,1020,41: DS01020N 201030#2: 01040,310*01050------ MODIFY SCREENS ------I01060NEWPAGE01070&FNHELPGB01080#,9: "srow=2,scol=6,erow=15,ecol=72,border=sn",,01090# 9: NEWPAGE>01100#9, &"1,20,CC 40": "SCREEN COMMAND SUMMARY""N01110#9,7"3,3,C 75": "F1 - Insert a line above the current line"":01120#9,$"4,3,C 75": "F2 Delete Current Line"V01130#9,?"5,3,C 75": "F3 Replace special characters with control codes:""F01140#9,/"6,3,C 75": " Highlight = ^ (shift 6)""H01150#9,1"7,3,C 75": " Underline = \ (next to Z)""L01160#9,5"8,3,C 75": " Reverse = ~ (next to Enter)""N01170#9, 7"9,3,C 75": " Normal = | (shift-next to Z)"P01180#9, 8"10,3,C 75": "F4 Duplicate current line from line above""d01190#9,N"11,3,C 75": "F5 Makes a box using @ as the upper left and lower right corner"B01200#9,,"12,3,C 75": "F6 - Center current line only"F01210#9,/"13,3,C 75": "F7 - Center Screen left to right"" 01220'201230FNHELPI01240#1: 1H012509"19,3,C 50": "last screen number used is "&STR$(SCRLIMIT):01260+"21,3,C 40": "Enter screen number, or F10:"(01270"21,32,N 2,U": S !1270(01280#9: ! restore help window(01290(CMDKEY=10 OR S=0 ,,350501300! E:01310-Set default values and redimension all arrays01320 DP$(150)=("")001330 SDP$(150) : FLDTYPE$(150)=("G")01340ATTR$(150)=("U")L01350! R01360 SEQUENCE(150) 01370(SEQ(1)>0 ,,1390201380"X=1 )150 :  SEQ(X)=X*10 : #X01390 SEQUENCE=SEQL01400! U$01410( S<=SCRLIMIT ,,15505$01420( S-1>SCRLIMIT ,,1050(01430"Add a new screen (y/*n)?";01440X$$*01450(X$><"Y" AND X$><"y" ,,350601460OLDSPEC$(150)=("") : SPEC$(150)=("")r(01470#1,1490,4S*2: " "",01480#1,4S*2+1:  0,MAT OLDSPEC$$01490C 1$01500#1,1020,41: S:01510NEWPAGE01520 SCRLIMIT=S01530,192001540! 2201550#1,1560,4S*2:  MAT BACKGRND$0156024*C 80$01570#1,4S*2+1: NBRFLDS201580( NBRFLDS=0 ,,1900  ! MENU SCREEN01590OLDSPEC$(NBRFLDS)001600#1: NBRFLDS,MAT OLDSPEC$,FLDHELP$01610! #01620"X=1 )NBRFLDS@01630(OLDSPEC$(X)(3:3)<>"," ,OLDSPEC$(X)(1:0)=" "@01640(OLDSPEC$(X)(6:6)<>"," ,OLDSPEC$(X)(4:0)=" " 01650! PRINT OLDSPEC$(X)01660#XB01670 SORTWRK(NBRFLDS)=AIDX(OLDSPEC$) : SPEC$(NBRFLDS)01680"X=1 )NBRFLDS&01690SEQUENCE(X)=SORTWRK(X)*10*01700SPEC$(X)=OLDSPEC$(SORTWRK(X))01710#X01720! D017306EXtract field types, attributes, and decimal positions$01740NEWPAGE*01750MAT BKGRSPC$: MAT BACKGRND$01760! IR01770 4010 =! Put underscores into MAT BACKGRND$, & extract oldspec$ infon01780P=1: FH$=("")01790"A=1 )NBRFLDS*01800(P>LEN(FLDHELP$) ,,18900801810(FLDHELP$(P:P)="X" ,P=P+1 : ,18800F01820X = POS(FLDHELP$,";",P) : XX = POS(FLDHELP$,":",P)dL01830(NOT X OR (XX AND XX1 ,%BACKGRND$(CURFLD)=BACKGRND$(CURFLD-1)) 02410CURFLD(CURFLD) : !02420! F(02430! F6 - center current lineC02440X=CURFLD 402450'BACKGRND$(X)=LTRM$(RTRM$(BACKGRND$(X))).02460!Y=INT((80-LEN(BACKGRND$(X))+1)/2)*02470BACKGRND$(X)(1:0)=RPT$(" ",Y) 02480CURFLD(CURFLD) : !002490"! F7 - center screen left to right02500L=R=80e02510"X=1 )24@02520Y=80-LEN(LTRM$(BACKGRND$(X))) : (Y0 ,BACKGRND$(X)(1:Y)="" -.BACKGRND$(X)=RPT$(" ",-Y)&BACKGRND$(X)(1:80+Y)02590#X 02600CURFLD(CURFLD) : !02610! F02620! FB026305----------- GENERATE POSITION PARAMETERS ------------02640P=102650 NBRFLDS=002660 SPEC$(150)02670MSG$("scaning")02680MSGROW=0n02690"L=1 )24$02700ROW$=LPAD$(STR$(L),2)$02710ROW$&",1,c 1": "*""*02720SP=POS (BACKGRND$(L),"_",1)H02730(SP=0 AND MSGROW=0 , MSGROW=L ! no fields o this row02740(SP=0 ,,2850*02750X=POS (BACKGRND$(L)," ",SP)02760(X=0 ,X=81@02770(BACKGRND$(L)(X-1:X-1)<>"_" ,X=X-1 : ,2770 02780NBRFLDS=NBRFLDS+1Z02790ROW$(NBRFLDS)=ROW$ : COL$(NBRFLDS)=STR$(SP) : LENGTH(NBRFLDS)=X-SP$802800)SDP$(NBRFLDS)=ROW$&","&STR$(SP)&",GU 4,U"Z02810JSDPX$(NBRFLDS)=SREP$(SDP$(NBRFLDS),"GU 4","GU "&STR$(MAX(4,MIN(25,X-SP))))202820#BACKGRND$(L)(SP:X-1)=RPT$(" ",X-SP)02830SP=XNB02840(SP<81 ,SP=POS(BACKGRND$(L),"_",SP) : ,2740002850#Lf02860(MSGROW ,JSTR$(MSGROW)&",2,C,R": " F1 - shift fields down F2 - shift fields up "*02870---- INPUT DECIMAL POSNS ----"02880( NBRFLDS=0 ,,4210102890 DP$(NBRFLDS) 02900 SDP$(NBRFLDS)(02910MSG$("Enter decimal posns") 02920MAT SDP$: MAT DP$B02930(CMDKEY=1 OR CMDKEY=2 ,FNMOVE(MAT DP$) : ,292002940! E*02950---- CHANGE FIELD TYPES ----F02960FLDTYPE$(NBRFLDS)&02970MSG$("Enter field type")-02980) 8O&02990MAT SDPX$: MAT FLDTYPE$03000) 7T\03010(CMDKEY=1 OR CMDKEY=2 ,FNMOVE(MAT FLDTYPE$) : CURFLD(CURFLD) : ,298003020! E03030"X=1 )NBRFLDSV03040(0 ,#FLDTYPE$(X)="PIC("&FLDTYPE$(X)&")" -'FLDTYPE$(X)="G "&STR$(LEN(FLDTYPE$(X))))03130#X03140 XX$(NBRFLDS)M"03150MAT SDPX$: MAT XX$$.03160!---- CHANGE FIELD ATTRIBUTES ----03170X=003180ATTR$(NBRFLDS)L,03190MSG$("Enter field attributes")-"03200MAT SDP$: MAT ATTR$"03210(X<>0 , SDP$(X)=Z$D03220(CMDKEY=1 OR CMDKEY=2 ,FNMOVE(MAT ATTR$) : ,320003230"X=1 )NBRFLDS"03240"Y=1 ) LEN(ATTR$(X))j03250('POS("IUBHRNGACEPT/:",ATTR$(X)(Y:Y),1)=0 , Z$=SDP$(X): SDP$(X)=SDP$(X)&"CH" : ,320003260#Y03270#X03280! $03290--- GEN FIELD SEQUENCER03300SEQUENCE(NBRFLDS)*03310MSG$("Enter field sequence")Y403320MAT SDP$: MAT SEQUENCE  ! CONV 26700"03330( CMDKEY<>1 ,,33606T03340" X=NBRFLDS-1 )CURFLD *-1 : SEQUENCE(X+1)=SEQUENCE(X) : #X(03350CURFLD(CURFLD) : ,3320"03360( CMDKEY<>2 ,,33909N03370"X=CURFLD ) NBRFLDS-1 : SEQUENCE(X)=SEQUENCE(X+1) : #XN(03380CURFLD(CURFLD) : ,332003390SORTWRK(NBRFLDS) $03400SORTWRK=AIDX(SEQUENCE)303410"X=1 )NBRFLDS03420Y = SORTWRK(X)>03430/SPEC$(X)=X$=ROW$(Y)&","&COL$(Y)&","&FLDTYPE$(Y)>03440( ATTR$(Y)<>"" ,SPEC$(X)(30:30)=","&ATTR$(Y)03450(HSPEC$(X)=X$&","&SREP$(ATTR$(Y),"P","") : (POS("NL",FLDTYPE$(Y)(1:1)) ,!Y=POS(SPEC$(X),FLDTYPE$(Y)(1:1)) : HSPEC$(X)(Y:Y)="G"03460#X803470MSG$("F3 - add field help") : XX$=("")I@03480  MAT HSPEC$,"R",#MAT FH$: MAT XX$ (3550 @03490( CMDKEY<>1 ,,3510 - X=CURFLD :  CURFLD(X)P03500" Y=NBRFLDS )X+1 *-1 : FH$(Y)=FH$(Y-1) : #Y : ,3480@03510( CMDKEY<>2 ,,3530 - X=CURFLD :  CURFLD(X)J03520"Y=X ) NBRFLDS-1 : FH$(Y)=FH$(Y+1) : #Y : ,3480T03530(CMDKEY=3 ,03540X=CURFLDN|03550#e9: "srow=12,scol=40,erow=22,ecol=79,border=sn,caption=FIELD# "&STR$(X)&" (F2-reformat right margin) ",,I03560# 9: NEWPAGE003570#9, "1,1,C": "Control spec:""03580FX$=("")L603590P=POS(FH$(X),";") : (P=0 ,,36606Z03600XX=POS(FH$(X),":") : ( XX=0 OR XX>P ,X$=";" -X$=":" : P=XXP003610FX$(1)=FH$(X)(1:P-1) : P=P+1X:03620!FH$(X)(LEN(FH$(X)):200)=CHR$(10) : Y=2E(03630P2=POS(FH$(X),CHR$(10),P)R03640(P2 ,FX$(Y)=FH$(X)(P:P2-1) : Y=Y+1 : P=P2+1 : ,36303803650 FX$(Y+1)=FH$(X)(P:LEN(FH$(X))-1) (3660h03660#9,R"1,15,VU 4;2,1,V;3,1,V;4,1,V;5,1,V;6,1,V;7,1,V;8,1,V;9,1,V;10,1,V;11,1,V": MAT FX$03670(CMDKEY=2 ,x03680XX=MAX(10,CURCOL) : X$="" : "YY=2 ) UDIM(FX$) : X$=X$&FX$(YY)&" " :  FX$(YY)="" : #YYY03690Y=1 : Z=1603700YY=POS(X$(Z:Z+XX+1)," ",-1) : Y=Y+1l03710(YY AND Y<>UDIM(FX$) ,FX$(Y)=X$(Z:Z+YY-1) : Z=Z+YY : ,3700 -FX$(Y)=X$(Z:Z+39)(03720CURFLD(CURFLD) : ,366003730/(N03740FH$(X)=FX$(1) : ( FH$(X)="" ,,3830 -FH$(X)(5:5)=";")*03750(FH$(X)(1:1)="&" ,,38303<03760"Y=11 )2 *-1 : ( FX$(Y)<>"" ,,378003770#YF03780"Z=2 )Y-1 : FH$(X)=FH$(X)&FX$(Z)&CHR$(10) : #Z*03790FH$(X)=FH$(X)&FX$(MAX(2,Y))l03800(POS(FH$(X),";",6) ,X$=":" : XX=POS(FH$(X),";") : FH$(X)(XX:XX)=":" -X$=";"=b03810(!POS(FH$(X),X$)<>POS(FH$(X),X$,-1) ,!MSG$("Both : and ; not allowed") : ,3660 03820FH$(X)=FH$(X)&X$S03830 CURFLD(X)03840#9: 03850,348003860/(03870! 03880MSG$("")03890 FLDHELP$=""03900"X=1 )NBRFLDSf03910( FH$(X)="" ,FLDHELP$=FLDHELP$&"X"  3990 -FLDHELP$=FLDHELP$&FH$(X)  3990O03920#X03930 SEQUENCE(150)*03940 DP$(150) : SPEC$(NBRFLDS)P03950"X=1 )24 : +BACKGRND$(X)=SREP$(BACKGRND$(X),1,"_"," ") : #X203960#1,1560,4S*2:  MAT BACKGRND$N@03970#1,4S*2+1: NBRFLDS,MAT SPEC$,FLDHELP$ 9399003980,310<03990%MSG$(" COMBINED HELP TEXT TOO LONG") : ,348004000! $:04010-Put underscore characters into the background.04020"X=1 )NBRFLDS :  X$=SPEC$(X)804030SX=POS(X$,",") : ROW=VAL(X$(1:SX-1))n@04040Y=POS(X$,",",SX+1) : COLUMN=VAL(X$(SX+1:Y-1))$04050(X$(Y+1:Y+4)="PIC(" ,404060P=POS(X$,")") : LENGTH(X)=P-(Y+5)B04070FLDTYPE$(X)=X$(Y+5:P-1) : P=P+1 :  DP$(X)=""04080-8:04090P=POS(X$,",",Y+1) : SX=POS(X$," ",Y+1)PN04100( P=0 AND SX=0 , L=LEN(X$)+1 -(SX=0 ,L=P -L=SX $04110(P=0 , P=LEN(X$)+1>04120PX=POS(X$,".",L) : FLDTYPE$(X)=X$(Y+1:L-1)H04130(PX ,DP$(X)=X$(PX+1:PX+1) : LENGTH(X)=VAL(X$(L+1:PX-1)) - DP$(X)="" : LENGTH(X)=VAL(X$(L+1:P-1))-04140/("04150ATTR$(X)=X$(P+1:99)04160! TL04170=BACKGRND$(ROW)(COLUMN:COLUMN+LENGTH(X)-1)=RPT$("_",LENGTH(X))04180#X 04190!904200! .04210 ! ========= MENU MAINT =========G04220MSG$("")E(04230(MENUSPEC$(1)><"" ,,4270*04240MENUSPEC$(1)="5,20,C 40,U,N"0*04250MENUSPEC$(2)="7,20,V 30,U,N" (04260MENUSPEC$(3)="9,20,V 4,U,N"$04270#1,42*S+1: NBRFLDSv04280( NBRFLDS>0 ,PROGRAM$=("") : PASSWORD$=("") !: -#1:  NBRFLDS,MAT PROGRAM$,MAT PASSWORD$04290"X=1 )20*04300MENU$(X)=BACKGRND$(X+2)(1:40).04310!MENU$(X+20)=BACKGRND$(X+2)(41:80)04320#X04330NEWPAGE>04340/"1,20,C 40": "MENU MAINTENANCE SCREEN "&STR$(S)(04350"2,2,C 80": BACKGRND$(1)).04360"3,10,C 20": "Enter Selection#"*04370"5,02,C 20": "DESCRIPTION""&04380"7,02,C 20": "PROGRAM""&04390"9,02,C 20": "PASSWORD"204400""11,23,C 40": "Press F10 to exit.""04410! I&04420MAT MENUSPEC$: "","","",04430"3,28,N 2,UE,N": SEL !4430 04440(CMDKEY>6 ,,4490804450(SEL<0 OR SEL>39 ,,4430 - SEL=SEL+1SF044604MAT MENUSPEC$: MENU$(SEL),PROGRAM$(SEL),PASSWORD$(SEL))F044704MAT MENUSPEC$: MENU$(SEL),PROGRAM$(SEL),PASSWORD$(SEL))04480,442004490! 204500"X=1 )20*04510BACKGRND$(X+2)(1:40)=MENU$(X).04520!BACKGRND$(X+2)(41:80)=MENU$(X+20)04530#X204540#1,1560,4S*2:  MAT BACKGRND$N:04550#1,4S*2+1: 0,MAT PROGRAM$,MAT PASSWORD$$04560,34004570! 004580&FNMOVE(MAT A$)1"04590(CMDKEY=2 ,,4620L04600" XX=NBRFLDS-1 )CURFLD *-1 : A$(XX+1)=A$(XX) : #XX04610,4630FF04620" XX=CURFLD ) NBRFLDS-1 : A$(XX)=A$(XX+1) : #XXE 04630'3