Trailing-Edge
-
PDP-10 Archives
-
decus_20tap4_198111
-
decus/20-0113/cmod12.bas
There are 2 other files named cmod12.bas in the archive. Click here to see a list.
00020 DIM X(1000) ,S(12)
00030 DIM D(50) ,O(6)
00031MARGIN#4,100
00040REM ********************* CMOD12 ********************
00050REM****DATA ENTRY*****
00060 N1$="12345"
00070Z0=0
00080 FILES RFILE1,RFILE2,RFILE3,RF4,RF5,RF6,RF7,RF8,RF9
00120RESTORE#1
00121 INPUT# 1,I1,I2,I3
00130SCRATCH#1
00131 PRINT # 1,43,I2,I3
00140IF I2 <> 1 THEN 160
00150GOTO 6240
00160GOSUB 6300
00170IF G6 <> 0 THEN 270
00180F5=0
00190N0=S(1)
00200J6=1
00210GOTO 270
00220N0=0
00230FOR J=1 TO G6
00240N0=N0+S(J)
00250NEXT J
00260RETURN
00270V1=1
00280N=N0
00290V5=0
00300D4=0
00310X8=0
00320 IF MID$(V$,1,6-(1)+1) <> "VAR-1 " THEN 380
00330 IF MID$(V$,7,12-(7)+1) <> "VAR-2 " THEN 380
00340 IF MID$(V$,13,18-(13)+1) <> "VAR-3 " THEN 380
00350 IF MID$(V$,19,24-(19)+1) <> "VAR-4 " THEN 380
00360 IF MID$(V$,25,30-(25)+1) <> "VAR-5 " THEN 380
00370V5=1
00380N1=1
00390X0=0
00400X1=0
00410X2=0
00420X3=0
00430GOTO 1800
00440PRINT
00450IF X3=1 THEN 500
00460X3=1
00470PRINT "YOU CAN ASSIGN VARIABLE NAMES OR LET THE MODULE ASSIGN THE"
00480PRINT "NAMES VAR-1, VAR-2, ETC."
00490PRINT
00500PRINT "LET MODULE ASSIGN VARIABLE NAMES=1 YOU ASSIGN=2 ";
00510GOSUB 9000
00520V5=O1
00530IF O1=1 THEN 590
00540IF O1=2 THEN 640
00550GOSUB 570
00560GOTO 510
00570PRINT "REENTER. INPUT MUST BE NUMBER OF OPTION."
00580RETURN
00590FOR I=V1 TO V0
00600S$=MID$(V$,1,I*6-5)
00601R$=MID$(V$,I*6+1,LEN(V$)-(I*6+1)+1)
00603V$=S$+"VAR- "+R$
00610S$=MID$(V$,1,I*6-1)
00611R$=MID$(V$,I*6+1,LEN(V$)-(I*6+1)+1)
00612V$=S$+MID$(N1$,I,1)+R$
00620NEXT I
00630GOTO 730
00640PRINT L$
00650IF X3=1 THEN 680
00660PRINT "INPUT THE VARIABLE NAMES. (MAXIMUM LENGTH=6 CHARACTERS)"
00670PRINT
00680FOR I=V1 TO V0
00690:"NAME FOR VAARIABLE ## :"
00691SCRATCH#9
00700PRINT#9USING690,I
00701RESTORE#9
00702INPUT#9,Z$
00703PRINTZ$;
00710INPUTZ$
00711V$=V$+RIGHT$(" "+Z$,6)
00720NEXT I
00730RETURN
00740N2=N0
00750FOR J=N1 TO N2 STEP 10
00760PRINT L$
00770IF G6=0 THEN 800
00780PRINT " GROUP = ";J6
00790PRINT
00800PRINT "INPUT THE VARIABLE VALUES FOR THIS SET OF OBSERVATIONS."
00810IF X0=1 THEN 840
00820PRINT "SEPARATE THE VALUES BY COMMAS"
00830X0=1
00840PRINT
00850I5=J+9
00860IF I5 <= N2 THEN 900
00870I5=N2
00880:OBSERVATIONS ### - ###
00890REM OLD IMAGE
00900PRINT USING 880,J,I5
00910PRINT"VARIABLES "
00920FOR I9=V1 TO V0
00930:"'CCCCC "
00940SCRATCH#9
00941PRINT#9USING930,MID$(V$,I9*6-5,I9*6-(I9*6-5)+1)
00942RESTORE#9
00943INPUT#9,Z$
00944IFI=V0THEN948
00945PRINTZ$;
00946GOTO950
00948PRINTZ$
00950NEXT I9
00960PRINT
00970PRINT "--------------------------------------------------------"
00980V2=V0
00990V0=V0-V1+1
01000FOR I=J TO I5
01010:"OBS ### "
01020SCRATCH#9
01021PRINT#9USING1010,I
01022RESTORE#9
01023INPUT#9,Z$
01024PRINTZ$;
01030 ONV0 GOTO 1040,1060,1080,1100,1120,1140
01040INPUT O(1)
01050GOTO 1150
01060INPUT O(1),O(2)
01070GOTO 1150
01080INPUT O(1),O(2),O(3)
01090GOTO 1150
01100INPUT O(1),O(2),O(3),O(4)
01110GOTO 1150
01120INPUT O(1),O(2),O(3),O(4),O(5)
01130GOTO 1150
01140INPUT O(1),O(2),O(3),O(4),O(5),O(6)
01150IF O8=2 THEN 1200
01160FOR I2=V1 TO V2
01170X(F5+I+S(J6)*(I2-1))=O(I2-V1+1)
01180NEXT I2
01190GOTO 1490
01200IF G6=0 THEN 1400
01210F6=0
01220FOR I2=1 TO J6
01230F6=F6+S(I2)
01240NEXT I2
01250F7=F6
01260FOR I2=J6+1 TO G6
01270F7=F7+S(I2)
01280NEXT I2
01290F7=F7*V0
01300F6=F6*V0+1
01310REM SHIFT GRPS > J6 ACCMMDT NU OBS
01320FOR I2=F7 TO F6 STEP -1
01330X(I2+V0)=X(I2)
01340NEXT I2
01350GOSUB 1420
01360S(J6)=S(J6)+1
01370N0=I
01380GOTO 1490
01390REM-------- NON-GROUPED DATA
01400GOSUB 1420
01410GOTO 1360
01420FOR I1=V0 TO 1 STEP -1
01430FOR I2=I-1 TO 1 STEP -1
01440X(F5+I2+(I-1)*(I1-1)+I1-1)=X(F5+I2+(I-1)*(I1-1))
01450NEXT I2
01460X(F5+I+(I-1)*(I1-1)+I1-1)=O(I1)
01470NEXT I1
01480RETURN
01490NEXT I
01500V0=V2
01510PRINT "--------------------------------------------------------"
01520IF X1=1 THEN 1640
01530X1=1
01540PRINT "IF YOU WANT TO CONTINUE INPUT TYPE '1'."
01550PRINT "IF YOU WANT TO EDIT THIS SET OF OBSERVATIONS TYPE '2'."
01560IF O8=3 THEN 1650
01570PRINT "IF YOU WANT TO STOP INPUT TYPE '3'."
01580PRINT
01590PRINT "CONTINUE INPUT=1 CONTINUE BUT EDIT=2 STOP INPUT=3 ";
01600GOSUB 9000
01610 ONO1 GOTO 1710,1740,1730
01620GOSUB 570
01630GOTO 1600
01640IF O8=2 THEN 1580
01650PRINT
01660PRINT "CONTINUE INPUT=1 CONTINUE BUT EDIT=2 ";
01670GOSUB 9000
01680 ONO1 GOTO 1710,1740
01690GOSUB 570
01700GOTO 1670
01710PRINT L$
01720NEXT J
01730RETURN
01740K4=J
01750K3=I5
01760GOSUB 3670
01770GOSUB 5920
01780GOSUB 3800
01790GOTO 1720
01800PRINT L$
01810V7=0
01820N=N0
01830IF X8>2 THEN 1940
01840X8=X8+1
01850PRINT " DATA EDITTING"
01860PRINT
01870PRINT " 1. DISPLAY AND EDIT OBSERVATIONS"
01880PRINT " 2. ADD OBSERVATIONS"
01890PRINT " 3. ADD VARIABLES"
01900PRINT " 4. DELETE VARIABLES"
01910PRINT " 5. CHANGE VARIABLE NAMES"
01920PRINT " 6. EXIT"
01930PRINT
01940PRINT "D/EDIT=1 ADD-O=2 ADD-V=3 DEL-V=4 CHGNM=5 EXIT=6 ";
01950GOSUB 9000
01960O8=O1
01970 ONO1 GOTO 5040,2000,2320,3040,3450,6470
01980GOSUB 570
01990GOTO 1950
02000PRINT L$
02010IF G6=0 THEN 2080
02020N0=0
02030FOR I2=1 TO G6
02040N0=N0+S(I2)
02050NEXT I2
02060GOSUB 5090
02070PRINT
02080PRINT "NUMBER OF OBSERVATIONS YOU WANT TO ADD (NONE=0).";
02090GOSUB 9000
02100IF O1=0 THEN 2140
02110IF O1>0 THEN 2180
02120PRINT "REENTER. NUMBER TO BE ADDED MUST BE POSITIVE."
02130GOTO 2090
02140IF D4=0 THEN 2160
02150GOSUB 4390
02160IF G6=0 THEN 1800
02170GOTO 2020
02180IF (N0+O1)*V0 <= 1000 THEN 2210
02190PRINT "REENTER. TOTAL NUMBER OF ENTRIES MUST NOT EXCEED 1000."
02200GOTO 2090
02210V1=1
02220N1=N0+1
02230IF G6=0 THEN 2250
02240N1=S(J6)+1
02250N0=N1+O1-1
02260GOSUB 740
02270GOTO 2310
02280N1=N0+1
02290N0=N0+O1
02300GOSUB 740
02310GOTO 2000
02320PRINT L$
02330IF G6=0 THEN 2370
02340PRINT
02350PRINT "YOU MUST ADD THE VARIABLES TO ALL OF THE GROUPS."
02360PRINT
02370:YOU ARE NOW USING## OF THE AVAILABLE 5 VARIABLES
02380PRINT USING 2370,V0
02390PRINT
02400IF V0=5 THEN 2460
02410IF V0<5 THEN 2500
02420PRINT
02430:REENTER. YOU CAN ADD AT MOST ## VARIABLES.
02440PRINT USING 2430,5-V0
02450GOTO 2510
02460PRINT "YOU CAN NOT ADD ANY VARIABLES BECAUSE YOU ARE ALREADY USING"
02470PRINT "THE MAXIMUM ALLOWED WHICH IS 5."
02480PRINT
02490GOTO 1810
02500PRINT "INPUT THE NUMBER OF VARIABLES YOU WANT TO ADD (NONE=0).";
02510GOSUB 9000
02520IF O1 >= 1 THEN 2540
02530GOTO 1800
02540V1=V0+1
02550V3=V0
02560IF V0+O1>5 THEN 2440
02570IF G6=0 THEN 2630
02580REM TOT GRPD DATA
02590N0=N0
02600FOR I2=1 TO G6
02610N0=N0+S(I2)
02620NEXT I2
02630IF N0*(V0+O1) <= 1000 THEN 2670
02640PRINT "REENTER. MAXIMUM NUMBER OF ENTRIES MUST NOT EXCEED 1000."
02650PRINT "THERE ARE ";N0;" OBSERVATIONS IN YOUR DATA SET."
02660GOTO 2510
02670V0=V0+O1
02680N1=1
02690V7=5
02700GOSUB 440
02710IF G6=0 THEN 3000
02720REM---------- GROUPED DATA
02730FOR I4=1 TO G6
02740REM-------- ENTRIES IN GROUPS < J6
02750J6=I4
02760F5=0
02770J6=I4
02780FOR J=1 TO J6-1
02790F5=F5+S(J)*V0
02800NEXT J
02810REM--------- ENTRIES IN GROUPS >= J6
02820F7=0
02830FOR J=J6 TO G6
02840F7=F7+S(J)*V3
02850NEXT J
02860F7=F7+F5
02870REM----------- SHIFT ENTIRES IN GROUPS > J6 TO MAKE ROOM FOR
02880REM----------- FOR ADDITIONS IN GROUP J6
02890FOR J=F7 TO F5+S(I4)*V3 STEP -1
02900X(J+S(I4)*(V0-V3))=X(J)
02910NEXT J
02920REM ----------- GOSUB TO GET NEW ENTRIES
02930N1=1
02940N0=S(I4)
02950GOSUB 740
02960IF D4=0 THEN 2980
02970GOSUB 4390
02980NEXT I4
02990GOTO 1800
03000GOSUB 740
03010IF D4=0 THEN 1800
03020GOSUB 4390
03030GOTO 1800
03040PRINT L$
03050PRINT "HERE ARE THE VARIABLES OF YOUR DATA SET."
03060FOR J=1 TO V0
03070:##. 'CCCCC
03080 PRINT USING 3070,J,MID$(V$,6*J-5,6*J-(6*J-5)+1)
03090NEXT J
03100PRINT
03110PRINT "INPUT NUMBER OF VARIABLE TO BE DELETED (NONE=0).";
03120GOSUB 9000
03130IF O1=0 THEN 1800
03140IF INT(O1)>V0 THEN 3160
03150IF INT(O1) >= 1 THEN 3180
03160PRINT "REENTER. INPUT MUST BE NUMBER OF VARIABLE."
03170GOTO 3110
03180IF G6=0 THEN 3340
03190K1=1
03200K0=1
03210FOR I=1 TO G6
03220FOR I1=1 TO V0
03230IF I1 <> O1 THEN 3260
03240K1=K1+S(I)
03250GOTO 3310
03260FOR I2=1 TO S(I)
03270X(K0)=X(K1)
03280K1=K1+1
03290K0=K0+1
03300NEXT I2
03310NEXT I1
03320NEXT I
03330GOTO 3380
03340IF O1=V0 THEN 3420
03350FOR I2=O1*N0+1 TO N0*V0
03360X(I2-N0)=X(I2)
03370NEXT I2
03380 IF O1=1 THEN 3384
03381 S$=LEFT$(V$,O1*6-6)
03384 IF O1=V0 THEN 3394
03385 V$=S$+MID$(V$,O1*6+1,6*(V0-O1))
03390 GOTO 3410
03394 V$=S$
03410PRINT
03420V0=V0-1
03430GOTO 3040
03440REM
03450PRINT L$
03460PRINT "HERE ARE THE NAMES YOU ARE PRESENTLY USING."
03470PRINT
03480FOR K5=1 TO V0
03490:VARIABLE ## = 'CCCCC
03500 PRINT USING 3490,K5,MID$(V$,6*K5-5,6*K5-(6*K5-5)+1)
03510NEXT K5
03520PRINT
03530PRINT "INPUT THE NUMBER OF THE VARIABLE TO BE CHANGED (NONE=0).";
03540GOSUB 9000
03550IF O1=0 THEN 1800
03560IF O1>V0 THEN 3620
03570IF O1<1 THEN 3620
03575 PRINT "INPUT THE NEW NAME.";
03577 INPUT Z$
03578 IF LEFT$(Z$+" ",5)="-9999" THEN 3640
03582IFO1<>1THEN3591
03583Z$=RIGHT$(" "+Z$,6)
03584 V$=Z$+MID$(V$,7,LEN(V$)-6)
03585GOTO3600
03591 IF O1<>V0 THEN 3595
03592 V$=LEFT$(V$,V0*6-6)+LEFT$(Z$+" ",6)
03593 GOTO 3520
03595 V$=LEFT$(V$,O1*6-6)+LEFT$(Z$+" ",6)+MID$(V$,O1*6+1,LEN(V$))
03600 GOTO 3520
03620PRINT "REENTER. MUST BE NUMBER OF VARIABLE OR 0."
03630GOTO 3520
03640CHAIN "RSTRT"
03650REM
03660REM ROUTINE TO PRINT HEADING
03670PRINT L$
03680IF G6=0 THEN 3710
03690 PRINT "DATA SET=";M$;" GROUP=";MID$(G$,J6*6-5,J6*6-(J6*6-5)+1)
03700GOTO 3720
03710PRINT "DATA SET=";M$
03720PRINT " VARIABLES"
03730REM OLD IMAGE
03740PRINT" OBS. ";
03750:" ##='CCCCC"
03760FOR J3=1 TO V0
03770SCRATCH#9
03771PRINT#9USING3750,J3,MID$(V$,J3*6-5,J3*6-(J3*6-5)+1)
03772RESTORE#9
03773INPUT#9,Z$
03774IFJ3=V0THEN3777
03775PRINTZ$;
03776GOTO3780
03777PRINTZ$
03780NEXT J3
03790RETURN
03800PRINT "-------------------------------------------------------------"
03810IF X2=1 THEN 3890
03820PRINT "IF YOU WANT TO CONTINUE WITHOUT EDITTING TYPE '1'."
03830PRINT "IF YOU WANT TO DELETE AN OBSERVATION TYPE '2'."
03840PRINT "IF YOU WANT TO CHANGE AN OBSERVATION TYPE '3'."
03850PRINT "IF YOU WANT TO REDISPLAY THE OBSERVATIONS TYPE '4'."
03860 PRINT "IF YOU WANT TO REINSTATE A DELETED OBSERVATION TYPE '5'."
03870PRINT "IF YOU WANT TO STOP DISPLAY AND EDIT TYPE '6'."
03880X2=1
03890PRINT "CONT=1 DEL=2 CHG=3 DISPLAY=4 REINT=5 STOP=6";
03900GOSUB 9000
03910 ONO1 GOTO 4970,4260,4160,4360,3940,4930
03920GOSUB 570
03930GOTO 3900
03940REM
03950PRINT "INPUT OBS# (NONE=0) ";
03960GOSUB 9000
03970IF O1=0 THEN 3890
03980IF INT(O1)>K3 THEN 4120
03990IF INT(O1)<K4 THEN 4120
04000IF D4=0 THEN 4120
04010D5=0
04020FOR D=1 TO D4
04030IF D(D)=O1 THEN 4060
04040D(D-D5)=D(D)
04050GOTO 4070
04060D5=1
04070NEXT D
04080IF D5=1 THEN 4100
04090GOTO 4120
04100D4=0
04110GOTO 3890
04120PRINT "REENTER. ONLY DISPLAYED OBSERVATIONS THAT HAVE BEEN"
04130PRINT "PREVIOUSLY DELETED CAN BE REINSTATED."
04140GOTO 3950
04150REM
04160PRINT "INPUT OBS#, VAR#, NEW VALUE ";
04170GOSUB 9100
04180IF INT(O1)>K3 THEN 4220
04190IF INT(O1)<K4 THEN 4220
04200IF INT(O2)>V0 THEN 4220
04210IF INT(O2) >= 1 THEN 4240
04220PRINT "REENTER. CHECK YOUR OBSERVATION AND VARIABLE NUMBERS."
04230GOTO 4150
04240X(F5+O1+O2*N0-N0)=O3
04250GOTO 3890
04260PRINT "INPUT OBS# (NONE=0) ";
04270GOSUB 9000
04280IF O1=0 THEN 3890
04290IF INT(O1)>K3 THEN 4310
04300IF INT(O1) >= K4 THEN 4330
04310PRINT "REENTER. INPUT MUST BE NUMBER OF DISPLAYED OBSERVATION."
04320GOTO 4260
04330D4=D4+1
04340D(D4)=O1
04350GOTO 3890
04360GOSUB 3670
04370GOSUB 5990
04380GOTO 3800
04390PRINT L$
04400IF Z0=3 THEN 4500
04410Z0=Z0+1
04420PRINT "THE OBSERVATIONS YOU HAVE DELETED ARE STILL IN WORKING"
04430PRINT "STORAGE AND CAN BE REINSTATED IF YOU WANT. IF YOU DO NOT"
04440PRINT "REINSTATE THEM AT THIS TIME THEY WILL BE PERMANENTLY"
04450PRINT "DELETED FROM WORKING STORAGE."
04460PRINT
04470 PRINT "IF YOU WANT TO REINSTATE THE OBSERVATIONS TYPE '1'."
04480PRINT "IF YOU WANT TO PERMANENTLY DELETE THEM TYPE '2'."
04490GOTO 4510
04500PRINT "DELETED OBSERVATIONS."
04510PRINT
04520PRINT "REINSTATE=1 PERMANENTLY DELETE=2 ";
04530GOSUB 9000
04540IF O1=2 THEN 4590
04550IF O1 <> 1 THEN 4570
04560GOTO 4890
04570PRINT "REENTER. INPUT MUST BE NUMBER OF OPTION."
04580GOTO 4530
04590IF G6=0 THEN 4690
04600N0=S(J6)
04610F5=0
04620F7=0
04630FOR I=1 TO J6-1
04640F5=F5+S(I)*V0
04650NEXT I
04660FOR I=J6+1 TO G6
04670F7=F7+V3*S(I)
04680NEXT I
04690FOR D5=1 TO D4
04700O1=D(D5)-D5+1
04710D3=0
04720FOR K5=1 TO V0
04730FOR K6=1 TO N0
04740IF K6=O1 THEN 4770
04750X(F5+K6+K5*N0-N0-D3)=X(F5+K6+K5*N0-N0)
04760GOTO 4780
04770D3=D3+1
04780NEXT K6
04790NEXT K5
04800IF G6=0 THEN 4860
04810F6=F5+S(J6)*V0
04820F8=F7+F6
04830FOR I=F6+1 TO F8
04840X(I-V0)=X(I)
04850NEXT I
04860S(J6)=S(J6)-1
04870N0=N0-1
04880NEXT D5
04890D4=0
04900IF G6=0 THEN 4920
04910PRINT L$
04920RETURN
04930RETURN
04940IF G6=0 THEN 5810
04950IF D4=0 THEN 4930
04960GOSUB 4390
04970RETURN
04980REM
04990REM
05000S8=0
05010GOSUB 3670
05020GOTO 5600
05030REM OPTION 1: DISPLAY AND EDIT OBSERVATIONS
05040PRINT
05050V3=V0
05060IF G6=0 THEN 5340
05070GOSUB 5090
05080GOTO 5320
05090PRINT L$
05100PRINT "DATA SET NAME = ";M$
05110PRINT
05120PRINT "GROUPS: NAME SIZE"
05130FOR I2=1 TO G6
05140: ## = 'CCCCC ####
05150 PRINT USING 5140,I2,MID$(G$,I2*6-5,I2*6-(I2*6-5)+1),S(I2)
05160NEXT I2
05170F5=0
05180PRINT
05190PRINT "INPUT THE NUMBER OF THE GROUP YOU WANT (NONE=0).";
05200GOSUB 9000
05210IF O1=0 THEN 1800
05220IF O1 >= 1 THEN 5250
05230PRINT "REENTER. INPUT MUST BE 0 OR NUMBER OF GROUP."
05240GOTO 5200
05250IF O1>G6 THEN 5230
05260J6=O1
05270FOR I2=1 TO J6-1
05280F5=F5+S(I2)
05290NEXT I2
05300F5=F5*V0
05310RETURN
05320PRINT
05330N0=S(J6)
05340GOSUB 5370
05350PRINT L$
05360GOTO 5060
05370IF G6=0 THEN 5400
05380PRINT "FIRST AND LAST OBSERVATIONS TO BE DISPLAYED (NONE=0,0).";
05390GOTO 5440
05400PRINT L$
05410PRINT "THERE ARE ";N0;" OBSERVATIONS."
05420PRINT
05430PRINT "FIRST AND LAST OBSERVATIONS TO BE DISPLAYED (NONE=0,0).";
05440GOSUB 9050
05450IF O1 <> 0 THEN 5490
05460IF O2=0 THEN 5850
05470PRINT "REENTER. INPUT MUST BE OBSERVATION NUMBERS."
05480GOTO 5440
05490IF O1 >= 1 THEN 5530
05500:REENTER. THERE ARE #### OBSERVATIONS.
05510PRINT USING 5500,N0
05520GOTO 5440
05530IF O1>N0 THEN 5500
05540IF O2<O1 THEN 5500
05550IF O2>N0 THEN 5500
05560K1=O1
05570N2=O2
05580FOR K7=K1 TO N2 STEP 10
05590GOSUB 3670
05600K4=K7
05610K3=K7+9
05620IF N2>K3 THEN 5640
05630K3=N2
05640GOSUB 5990
05650GOSUB 3800
05660IF O1=6 THEN 5810
05670NEXT K7
05680IF V7 <> 5 THEN 5810
05690IF K3=N0 THEN 5810
05700PRINT "IF YOU STOP INPUT NOW THE DATA YOU HAVE ENTERED FOR THIS"
05710PRINT "VARIABLE WILL BE DELETED."
05720PRINT
05730PRINT "IF YOU WANT STOP INPUT TYPE '1'."
05740PRINT "IF YOU WANT TO CONTINUE INPUT TYPE '2'."
05750GOSUB 9000
05760IF O1=1 THEN 5800
05770IF O1=2 THEN 4930
05780PRINT "REENTER. INPUT MUST BE 0 OR 1."
05790GOTO 5750
05800V0=V0-1
05810IF O8=1 THEN 5370
05820IF D4=0 THEN 4900
05830GOSUB 4390
05840GOTO 1800
05850IF D4=0 THEN 1800
05860GOTO 5830
05870REM
05880GOSUB 3670
05890GOSUB 5990
05900GOTO 3800
05910RETURN
05920REM OLD IMAGE
05930GOTO 5990
05940PRINT" VARIABLE";
05950FOR K5=K4 TO K3
05960:" ###"
05970SCRATCH#9
05971PRINT#9USING5960,K5
05972RESTORE#9
05973INPUT#9,Z$
05974PRINTZ$;
05980NEXT K5
05990PRINT "-------------------------------------------------------------"
06000FOR K5=K4 TO K3
06010FOR D=1 TO D4
06020IF D(D)=K5 THEN 6070
06030NEXT D
06040GOTO 6100
06050IF D(K5) <> -1 THEN 6100
06060REM OLD IMAGE
06070PRINT"DELETED ";
06080GOTO 6110
06090:"### "
06100SCRATCH#9
06101PRINT#9USING6090,K5
06102RESTORE#9
06103INPUT#9,Z$
06104PRINTZ$;
06110FOR K6=1 TO V0
06120IF ABS(X(F5+K5+K6*N0-N0))<1.E+06 THEN 6190
06130GOTO 6160
06140IF ABS(X(F5+K5+K6*N0-N0))>1 THEN 6190
06150:"#####^^^^"
06160SCRATCH#9
06161PRINT#9USING6150,X(F5+K5+K6*N0-N0)
06162RESTORE#9
06163INPUT#9,Z$
06164PRINTZ$;
06170GOTO 6200
06180:"#######.##"
06190SCRATCH#9
06191PRINT#9USING6180,X(F5+K5+K6*N0-N0)
06192RESTORE#9
06193INPUT#9,Z$
06194PRINTZ$;
06200NEXT K6
06210PRINT
06220NEXT K5
06230RETURN
06240PRINT L$
06250PRINT " DATA EDITTING"
06260SCRATCH#1
06261 PRINT # 1,I1,2,I3
06270CHAIN "CMOD30"
06280REM EXIT CHAIN
06290REM RD TEMPY FILE
06300RESTORE#4
06301INPUT#4,M$
06302INPUT#4,G6
06303INPUT#4,V0
06304INPUT#4,G$
06305INPUT#4,V$
06310FORI=1TO12
06311INPUT#4,S(I)
06312NEXTI
06320IF G6 <> 0 THEN 6350
06330N0=S(1)
06340GOTO 6420
06350GOSUB 6370
06360GOTO 6420
06370N0=0
06380FOR J=1 TO G6
06390N0=N0+S(J)
06400NEXT J
06410RETURN
06420FOR J=1 TO N0*V0
06430 INPUT#4,X(J)
06440NEXT J
06450RETURN
06460REMPRT TMP FILE
06470GOSUB 6560
06480SCRATCH#4
06481PRINT#4,M$
06482PRINT#4,G6
06483PRINT#4,V0
06484PRINT#4,CHR$(34);G$;CHR$(34)
06485PRINT#4,CHR$(34);V$;CHR$(34)
06490FORI=1TO12
06491PRINT#4,S(I)
06492NEXTI
06500IF G6=0 THEN 6520
06510GOSUB 6370
06520FOR J=1 TO N0*V0
06530PRINT#4,X(J)
06540NEXT J
06550CHAIN "CMOD10"
06560PRINT L$
06570PRINT "HERE IS A DESCRIPTION OF THE DATA SET."
06580PRINT
06590PRINT "NAME=";M$
06600PRINT
06610PRINT "VARIABLES"
06620FOR K=1 TO V0
06630:## 'CCCCC
06640 PRINT USING 6630,K,MID$(V$,K*6-5,K*6-(K*6-5)+1)
06650NEXT K
06660PRINT
06670IF G6=0 THEN 6720
06680FOR J=1 TO G6
06690 PRINT "GROUP ";J;" NAME=";MID$(G$,J*6-5,J*6-(J*6-5)+1);" SIZE=";S(J)
06700NEXT J
06710GOTO 6730
06720PRINT "NUMBER OBSERVATIONS=";N0
06730PRINT
06740PRINT "WHEN YOU ARE READY TO CONTINUE TYPE '1'.";
06750GOSUB 9000
06760RETURN
09000REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED.
09005INPUT O1
09015IF O1=-9999 THEN 9025
09020RETURN
09025CHAIN "RSTRT"
09035REM*************END ROUTINE
09050REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 2 INPUTS
09055INPUT O1,O2
09065IF O1=-9999 THEN 9080
09070IF O2=-9999 THEN 9080
09075RETURN
09080CHAIN "RSTRT"
09090REM*************END ROUTINE
09100REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 3 INPUTS
09105INPUT O1,O2,O3
09115IF O1=-9999 THEN 9135
09120IF O2=-9999 THEN 9135
09125IF O3=-9999 THEN 9135
09130RETURN
09135CHAIN "RSTRT"
09145REM*************END ROUTINE
09999END