Listing of file='FORMEDIT' on disk='vmedia/tbo_81.wvd.zip'
# Sector 84, program filename = 'FORMEDIT' 0010 REM FORMEDIT 06/07/76 0020 DIM O$(128)6,X$(128)1 : F0=128 0030 REM F0, O$( AND X$( ARE USED TO DESCRIBE RECORD LENGTH 0040 GOSUB 1850 : GOTO 1740 0050 DIM H$3,B$(4)62,A$(1)64,F$(30)6 0060 DIM C$1,Q7$64,Q8$17,Q9$64,V2$64,V1$64,A$64 0070 RETURN 0080 REM %PERIPHERAL DEVICES 0090 REM %0 /001 KEYBOARD, /005 CRT, #0 CASSETTE, #2 DISK 0100 REM %SPECIAL FUNCTIONS 0110 REM %0 '0 FORMAT MENU, '1-6 USER FORMATS 0120 REM %0 '11 REOPEN DISK, '12 OPEN DISK FILE 0130 REM %0 '13 MAKE TAPE FILE, '15 KEY PICTURE 0140 REM %0 '100 FIELD ENTRY, '103 FILL FIELD, '104 SET FIELD 0150 REM %0 '105 NEW FORM/CLEAR, '115 NEW FORM/FILLED 0160 REM %0 '106 SPECIAL EDIT, '200 GET FIELDS, '201 FIELD ENTRY 0170 REM %VARIABLE MEANINGS 0180 REM %0 A A, B B, C C, A$ A$64, B$ B$1, C$ C$1 0190 REM %0 A A, B CRT LINE, C START CHAR PTR, L FIELD SIZE 0200 REM %0 D DEVICE FLAG, E LAST RECORD FLAG 0210 REM %0 D8 FLD TBL PTR, D9 FIELD PTR 0220 REM %0 B$ K.B. CHAR, V CRT CURR. PTR, V9 CRT MAX.PTR 0230 REM %0 A$ DATA STRING, V1$ DATA W/A, V2$ RECALL DATA 0240 REM %0 A$( ENTRY ARRAY, X8 OUTPUT BUFF.PTR, E9 EDIT FLAG 0250 REM %0 B$( OUTPUT BUFFER, X$( INTERIM BUFFER 0260 REM %0 F$ FILE NAME, R1 OUTPUT BLOCK #, S9 # DISK SECTORS 0270 REM %0 F FORMAT NUMBER, F0 RECORD LENGTH, F1 F0-1 0280 REM %0 F9 PRIOR DATA PTR, F$( FIELD TABLE, H$ RECORD CONTROL 0290 REM %0 J2 TITLE POS., J4 EDIT TYPE, J5 OUTPUT POSITION 0300 REM %0 O$( PRIOR OUTPUT : REM /LAST OUTPUT OF EACH FORMAT 0310 REM %0 Q7$ FILL, Q8$ CRT LINE POS., Q9$ CRT CHAR POS. 0320 REM \D8^S.R. TO EDIT INPUT FIELDS 0330 REM A$=VARIABLE L=MAX.BYTES B=CRT LINE C=CRT CHAR 0340 DEFFN'201 : V9=C+L-1 : V2$=" " : STR(V2$,C)=A$ : A$=V2$ : V=C 0350 IF V9<65THEN 630 : PRINT "*****--CRT START CHAR + FIELD LENGTH SHOULD NOT EXCEED 64" : PRINT "START CHAR--";C,"FIELD LENGTH=";L,"EQUALS=";C+L : STOP " PARAMETER ERROR" 0360 V=C : REM % MAIN LOOP 0370 SELECT PRINT 005 : PRINT STR(Q8$,1,B);STR(Q9$,1,V); 0380 KEYIN C$,420,490 : GOTO 380 0390 REM % (EXEC) RETURN 0400 A$=STR(A$,C,L) : RETURN 0410 REM %LOWER KEYBOARD CHARACTER 0420 IF C$=HEX(08)THEN 580 : IF C$="^"THEN 70 : IF C$=HEX(A0)THEN 70 : IF C$=HEX(E5)THEN 450 : PRINT C$; : IF C$=HEX(0D)THEN 400 : STR(A$,V,1)=C$ : V=V+1 : IF V<=V9THEN 380 : PRINT HEX(08); : V=V9 : GOTO 370 0430 SELECT PRINT 005 : PRINT STR(Q8$,1,B);STR(Q9$,1,C);STR(A$,C);TAB(L) 0440 REM %LINE ERASE 0450 A$=" " : V=C : GOTO 630 0460 REM % S.F. PAD (UPPER KEYBOARD) 0470 REM .............HOM.ERA.DEL.INS.5>..1>..<1..<5..RECALL 0480 REM .............'7..'8..'9..'10.'11.'12.'13.'14.'15 0490 ON VAL(C$)-6GOTO 360,520,620,600,540,550,580,570,700 0500 IF C$=HEX(00)THEN 720 : GOTO 370 0510 REM %ERASE 0520 STR(A$,V)=" " : GOTO 630 0530 REM %CURSOR RIGHT 0540 V=V+4 0550 V=V+1 : IF V<V9THEN 370 : V=V9 : GOTO 370 0560 REM %CURSOR LEFT 0570 V=V-4 0580 V=V-1 : IF V>CTHEN 370 : V=C : GOTO 360 0590 REM %INSERT 0600 IF LEN(STR(A$,C))=LTHEN 370 : V1$=STR(A$,V) : STR(A$,V,1)=" " : STR(A$,V+1)=V1$ : GOTO 630 0610 REM %DELETE 0620 STR(A$,V)=STR(A$,V+1) 0630 SELECT PRINT 005 : PRINT STR(Q8$,1,B);STR(Q9$,1,C); 0640 A=LEN(A$)-C+1 : IF A<1THEN 680 : IF A<LTHEN 650 : A=L 0650 PRINT STR(A$,C,A); : REM /PRINT DATA STRING 0660 IF A>=LTHEN 370 : A=C+A : IF A>V9THEN 370 : PRINT STR(Q7$,A,V9-A+1) 0670 GOTO 370 0680 A=0 : GOTO 660 0690 REM %RECALL 0700 A$=V2$ : GOTO 630 0710 REM %'0 RETURN TO MENU 0720 RETURN CLEAR : GOTO 3080 0730 REM %^EDIT? OPTIONS : REM EDIT SPECIFIED IN GOSUB '104 0740 REM 1=ANY 2=DIGITS JUSTIFY LEFT 3=DIGITS JUSTIFY RIGHT 0750 REM 4=DIGITS FULL FIELD 5-9 UNASSIGNED 0760 C$=" " : IF J4>9THEN 860 : IF A$=" "THEN 70 : ON J4GOTO 70,800,820,840 : STOP "ILLEGAL EDIT TYPE" 0770 E$="DIGITS ONLY" 0780 C$="1" : PRINT HEX(0701),,,HEX(01);"*ERROR*= ";E$ : RETURN 0790 REM %DIGITS JUSTIFY LEFT 0800 A=LEN(A$) : IF POS(STR(A$,1,A)<30)+POS(STR(A$,1,A)>39)>0THEN 770 : RETURN 0810 REM %DIGITS JUSTIFY RIGHT 0820 A=POS(STR(A$,1,L)<>" ") : V1$=STR(A$,A) : A=LEN(V1$) : A$=" " : STR(A$,L-A+1)=V1$ : IF POS(STR(V1$,1,A)<30)+POS(STR(V1$,1,A)>39)>0THEN 770 : RETURN 0830 REM %DIGITS FULL FIELD 0840 IF POS(STR(A$,1,L)<30)+POS(STR(A$,1,L)>39)>0THEN 850 : RETURN 0850 E$="FULL FIELD DIGITS" : GOTO 780 0860 GOSUB '106 : RETURN 0870 REM %BORROW FIELD 0880 REM FROM FORMAT #, FROM CHAR, TO CHAR, LENGTH 0890 DEFFN'103(C,A,B,L) : MAT COPY O$()<C*F0-F1+A-1,L>TO X$()<B,L> : RETURN 0900 REM %SETUP FIELD & DISPLAY TITLE 0910 REM CRT LINE/CRT POS/TAG/LENGTH/EDIT TYPE/DATA POSITION 0920 DEFFN'104(B,J2,A$,L,J4,J5) 0930 D9=D9+1 : BIN(STR(F$(D9),1))=B : BIN(STR(F$(D9),2))=J2+LEN(A$) : BIN(STR(F$(D9),3))=L : BIN(STR(F$(D9),4))=J4 : BIN(STR(F$(D9),5))=J5 0940 INIT("-")Q7$ : IF J4=1THEN 950 : INIT(".")Q7$ 0950 PRINT STR(Q8$,1,B);STR(Q9$,1,J2);A$;STR(Q7$,1,L) 0960 IF E9=0THEN 70 : INIT(20)A$() : MAT COPY X$()<J5,L>TO A$() : A$=A$(1) : IF A$=" "THEN 70 0970 PRINT STR(Q8$,1,B);STR(Q9$,1,VAL(STR(F$(D9),2)));A$ : RETURN 0980 REM %^NEW DISPLAY 0990 DEFFN'115(A$) : E9=1 : GOTO 1010 1000 DEFFN'105(A$) : E9=0 1010 INIT(20)X$() : SELECT PRINT 005 : PRINT HEX(03),,,A$ 1020 D9=0 : INIT(00)F$() : D8=1 : F9=F*F0-F1 1030 PRINT STR(Q8$,1,14);"KEY (EXEC) TO ENTER A FIELD","^ TO MOVE CURSOR BACK ONE FIELD" : PRINT "...DENOTES NUMERIC FIELD","--- DENOTES ALPHA-NUMERIC FIELD" 1040 PRINT "KEY PRINT TO EXIT THE FORM","KEY S.F. '0 TO ERASE FORM";HEX(0C) : RETURN 1050 REM %^GET FIELDS 1060 DEFFN'200 : B$(1)=H$ : A=1 1070 FOR D8=ATO D9 1080 B=VAL(STR(F$(D8),1)) : REM /LINE 1090 C=VAL(STR(F$(D8),2)) : REM /CHARACTER 1100 L=VAL(STR(F$(D8),3)) : REM /LENGTH 1110 J4=VAL(STR(F$(D8),4)) : REM /EDIT? 1120 X8=VAL(STR(F$(D8),5)) : REM /DATA POSITION 1130 INIT("-")Q7$ : IF J4=1THEN 1140 : INIT(".")Q7$ 1140 MAT COPY X$()<X8,L>TO A$() : A$=A$(1) : PRINT HEX(01);TAB(32) 1150 GOSUB '201 1160 IF C$="^"THEN 1220 : IF C$=HEX(A0)THEN 1230 : GOSUB 760 : IF C$<>" "THEN 1150 1170 STR(A$(1),1)=A$ : MAT COPY A$()<1,L>TO X$()<X8,L> 1180 NEXT D8 1190 PRINT STR(Q8$,1,14);"IF O.K. KEY (EXEC) --EOF KEY '16 -- ERASE KEY S.F . '0";TAB(64) : PRINT TAB(64) : PRINT TAB(63);HEX(0C) 1200 KEYIN C$,1210,1240 : GOTO 1200 1210 IF C$=HEX(0D)THEN 1250 : IF C$<>"^"THEN 1200 : A=D9 : GOTO 1070 1220 D8=D8-1 : IF D8>1THEN 1080 : D8=1 : GOTO 1080 1230 D8=D9 : GOTO 1180 1240 IF C$=HEX(00)THEN 720 : IF C$<>HEX(10)THEN 1200 : E=1 1250 MAT COPY X$()<1,F0>TO B$()<4,F0> 1260 MAT COPY X$()<1,F0>TO O$()<(F*F0)-F1,F0> 1270 REM %^OUTPUT BLOCK 1280 R1=R1+1 1290 S9=S9-1 : PRINT STR(Q8$,1,14);"SAVING=";R1,"LEFT=";S9 1300 ON DGOTO 1370 1310 DATA SAVE #2,B$() : REM ^ERR 50 PROTECTED TAPE 1320 PRINT STR(Q8$,1,13);"SAVED " : IF E<1THEN 1350 1330 DATA SAVE #2,END 1340 PRINT HEX(03);STR(Q8$,1,15);"FILE ";F$;" CREATED" : IF E=2THEN 1360 : E=0 : GOTO 3100 1350 GOTO 3080 1360 STOP " END OF FILE FORCED--ASSIGNED DISK AREA TOO SMALL" 1370 IF S9<2THEN 1400 : IF E<1THEN 1390 1380 STR(B$(1),1,1)=HEX(F0) : DATA SAVE DC #2,B$() : DATA SAVE DC #2,END : R1=R1+1 : GOTO 1340 1390 DATA SAVE DC #2,B$() : PRINT STR(Q8$,1,14);"SAVED " : GOTO 1350 1400 E=2 : GOTO 1380 1410 REM %^ 1420 % #### BLOCKS FREE #### BLOCKS USED 1430 DEFFN'11 : REM %'11 OPEN OLD : PRINT HEX(03);"'11 OPEN AN EXISTING DISK FILE" : GOSUB 1530 1440 DATA LOAD DC OPEN T#2,F$ : REM ...^ERR 80 SHOWS NO FILE WITH THIS NAME...KEY S.F.'11 REOPEN FILE '12 OPEN NEW FILE 1450 GOSUB 1600 : E9=1 1460 DATA LOAD DC #2,B$() : REM .ERR 58 NOT A BISYNC DATA FILE 1470 GOTO 1650 1480 DEFFN'12 : REM %'12 OPEN NEW : PRINT HEX(03);"'12 OPEN A NEW DISK FILE" : E9=0 : GOSUB 1530 1490 INPUT "# OF SECTORS TO SAVE=",S9 : S9=S9+2 : IF S9<3THEN 1490 1500 DATA SAVE DC OPEN T$#2,S9,F$ : REM ...^ERR 79=A FILE ALREADY EXISTS WITH THIS NAME... S.F.'11 REOPEN FIL E '12 OPEN NEW FILE 1510 INIT(20)B$() : STR(B$(1),1,3)=HEX(F05450) : FOR A=1 TO S9-1 : DATA SAVE DC #2,B$() : PRINT "CLEARING BLOCK=";A;HEX(0C) : NEXT A 1520 GOSUB 1600 : E9=0 : GOTO 3080 : REM %ASSIGN DISK 1530 INPUT "DISK OUTPUT 1=(F)310 2=(R)B10 3=(F)320 4=(R)B20",A 1540 ON A GOTO 1550,1560,1570,1580 : GOTO 1530 1550 SELECT #2 310 : GOTO 1590 1560 SELECT #2 B10 : GOTO 1590 1570 SELECT #2 320 : GOTO 1590 1580 SELECT #2 B20 1590 PRINT "FILE NAME IS ";F$;" OR"; : INPUT F$ : IF F$=" "THEN 1590 : RETURN 1600 PRINT "FILE--";F$;"--OPENED" : FOR A=1 TO 100 : NEXT A : D=1 1610 PRINT HEX(03);TAB(42);"DISK FILE--";F$ 1620 LIMITS T#2,F$,X,A,S8 : S9=A-X 1630 DATA LOAD DC OPEN T #2,F$ : REM .^ERR 47 SAYS FILE NOT OPENED...S.F.'11 REOPEN FILE '12 OPEN NEW FI LE 1640 E,R,R1=0 : PRINT HEX(01); : PRINTUSING 1420,S9,R1 : RETURN : REM %POSITION TO LAST RECORD 1650 C$=STR(B$(1),1) : R2,R1=R1+1 : S9=S9-1 : PRINT HEX(01); : PRINTUSING 1420,S9,R1 1660 IF S9<1THEN 1720 1670 IF C$<>HEX(00)THEN 1710 : R=R+1 1680 DATA LOAD DC #2,B$() : REM .ERR 58 BISYNC FILE NOT PROPERLY ENDED 1690 IF END THEN 1720 1700 GOTO 1650 1710 R2=R2-1 : IF C$<>HEX(F0)THEN 1720 : STR(B$(1),1,1)=HEX(00) : DBACKSPACE #2,1 : GOSUB 1280 : GOTO 3080 1720 STOP "FILE NOT ENDED-KEY (CONTINUE)TO EDIT " : GOTO 3080 : REM %^ 1730 DEFFN'13 : REM %'13 TO TAPE : D=0 : PRINT HEX(03);TAB(42);"CASSETTE FILE" : SELECT #2 10A : S9=300 : GOSUB 1640 : GOTO 3080 1740 DEFFN'15 : REM %'15 MENU : SELECT PRINT 005(64) : PRINT HEX(03),,"SCREEN EDIT FUNCTIONS" 1750 PRINT " UTILITY TO MAKE DATA FILES FOR WANG T.C. EMULATORS" 1760 PRINT " PROGRAM IS FOR SCREEN ENTRY TO CASSETTE OR DISK" 1770 PRINT : PRINT " USE SPECIAL FUNCTION KEY TO SELECT OPERATION";TAB(64) : PRINT 1780 PRINT ," '0 FORMAT MENU";TAB(64) 1790 GOSUB 1800 : STOP " KEY APPROPRIATE SPECIAL FUNCTION" 1800 PRINT ,"'11 ADD TO AN EXISTING DISK FILE";TAB(64) 1810 PRINT ,"'12 OPEN A NEW DISK FILE";TAB(64) 1820 PRINT ,"'13 GENERATE CASSETTE FILE";TAB(64) 1830 PRINT ,"'15 DISPLAY MENU";TAB(64) : PRINT TAB(64) : RETURN 1840 REM %SETUP 1850 INIT(09)Q9$ : STR(Q9$,1,1)=HEX(00) : INIT(0A)Q8$ : STR(Q8$,1,1)=HEX(01) 1860 F1=F0-1 : REM /RECORD LENGTH 1870 INIT(00)H$ : BIN(STR(H$,2,1))=F0+4 : BIN(STR(H$,3,1))=F0 1880 RETURN 3000 REM %^DATA FOR PARTICULAR USER 3010 REM "2200 RECORD FORMAT" 3020 REM "BYTE 1 CTRL 00=NO END FILE F0=END FILE" 3030 REM "BYTE 2 BLOK BLOCK SIZE" 3040 REM "BYTE 3 LREC LOGICAL RECORD LENGTH (#TEXT BYTES)" 3050 REM "BYTES 4-N=TEXT MATERIAL" 3060 REM "REPEAT OF BYTES 3-N FOR EACH LOGICAL RECORD" 3070 REM % FORMAT MENU 3080 DEFFN'0 : SELECT PRINT 005 : PRINT HEX(03) 3090 SELECT PRINT 005 : PRINT HEX(01),,"FORMAT MENU" 3100 PRINT "S.F. '1 CLIENT" 3110 PRINT "S.F. '2 STATION" 3120 PRINT "S.F. '3 MARKET" 3130 PRINT "S.F. '4 AVAILABLE" 3140 PRINT "S.F. '5 CHOSEN 1" 3150 PRINT "S.F. '6 CHOSEN 2" 3160 PRINT "S.F. '0 FORMAT MENU" 3170 PRINT : RETURN 3180 REM % TYPICAL FORMAT SEQUENCE 3190 REM DEFFN 'X F=X INIT(20)X$() 3200 REM E9=0 NEW FIELDS E9=1 BORROWED FIELDS 3210 REM FOR EACH FIELD TAKEN FROM ANOTHER FORMAT 3220 REM GOSUB'103 (FROM FORMAT NO., FROM POS, TO POS, LENGTH) 3230 REM GOSUB'105 ("NAME") 3240 REM THEN FOR EACH FIELD 3250 REM GOSUB'104(ROW,COL,"FIELD NAME",LENGTH,EDIT?,DATA POS) 3260 REM 1=ANY 2=NUMERIC JUSTIFY LEFT 3=NUMERIC JUSTIFY RIGHT 3270 REM 4=NUMERIC FULL FIELD 3280 REM GOSUB'200 GETS DATA FOR FIELDS AND OUTPUTS RECORD 3290 REM %USER EDIT LOGIC 3300 REM J4=EDIT TYPE 10..+ A$=DATA L=MAX.FIELD LENGTH 3310 REM IF USER FINDS AN ERROR SET C$="1" THEN RETURN 3320 DEFFN'106 3330 ON J4-9GOSUB 3380,3400 : RETURN 3340 REM .TYPE =.10..11...ETC.. 3350 REM WHERE GOSUBS COVER USER EDITS FOR TYPE 10,11,12,ETC. 3360 REM %^USER EDIT 3370 REM %TIME HH MM 3380 IF A$=" "THEN 70 : IF POS(STR(A$,1,4)<30)+POS(STR(A$,1,4)>39)>0THEN 850 : IF STR(A$,1,4)>"2400"THEN 3420 : IF STR(A$,3,2)>"60"THEN 3420 : RETURN 3390 REM %DATE MO DA YR 3400 IF A$=" "THEN 70 : IF POS(STR(A$,1,6)<30)+POS(STR(A$,1,6)>39)>0THEN 850 : IF STR(A$,1,2)<"01"THEN 3430 : IF STR(A$,3,2)<"01"THEN 3430 3410 IF STR(A$,1,2)>"12"THEN 3430 : IF STR(A$,3,2)>"31"THEN 3430 : RETURN 3420 E$="HOUR MINUTE" : GOTO 780 3430 E$="MONTH DAY YEAR" : GOTO 780 4000 REM %^FORMATS 4010 DEFFN'1 : F=1 : GOSUB '105("CLIENT") : X$(1)="C" 4020 GOSUB '104(1,50,"A/C=",1,1,2) 4030 GOSUB '104(2,1,"CLIENT NO. =",5,2,4) 4040 GOSUB '104(3,2,"CLIENT NAME =",25,1,9) 4050 GOSUB '104(4,2,"STREET =",23,1,34) 4060 GOSUB '104(6,2,"CITY =",16,1,57) 4070 GOSUB '104(6,35,"STATE =",2,1,73) 4080 GOSUB '104(6,50,"ZIP =",5,4,75) 4090 GOSUB '104(7,2,"XTRA LINE =",20,1,85) 4100 GOSUB '104(9,2,"XTRA LINE =",20,1,105) 4110 GOSUB '200 4120 RETURN 4130 DEFFN'2 : F=2 : GOSUB '105("STATION") : X$(1)="V" 4140 GOSUB '104(1,50,"A/C=",1,1,2) 4150 GOSUB '104(2,1,"CALL LETTERS=",6,1,3) 4160 GOSUB '104(3,2,"STATION NAME =",25,1,9) 4170 GOSUB '104(4,2,"STREET =",23,1,34) 4180 GOSUB '104(6,2,"CITY =",16,1,57) 4190 GOSUB '104(6,35,"STATE =",2,1,73) 4200 GOSUB '104(6,50,"ZIP =",5,4,75) 4210 GOSUB '104(7,2,"CH. =",2,2,80) 4220 GOSUB '104(7,15,"AFFL.=",3,2,82) 4230 GOSUB '104(8,2,"XTRA LINE =",20,1,85) 4240 GOSUB '104(9,2,"XTRA LINE =",20,1,105) 4250 GOSUB '200 4260 RETURN 4270 DEFFN'3 : F=3 : GOSUB '105("MARKET") : X$(1)="A" 4280 GOSUB '104(2,1,"AGENT NO.=",5,2,2) 4290 GOSUB '104(2,20,"CLIENT NO. =",5,2,7) 4300 GOSUB '104(3,2,"TODAYS DATE =",6,11,12) 4310 GOSUB '104(3,25,"ARB NSI=",3,1,18) 4320 GOSUB '104(3,40,"SURV.=",3,1,21) 4330 GOSUB '104(3,50,"YEAR =",2,1,24) 4340 GOSUB '104(4,2,"EST.NO=",5,2,26) 4350 GOSUB '104(5,2,"MKT.NO=",3,1,31) 4360 GOSUB '104(5,15,"MARKET NAME=",30,1,34) 4370 GOSUB '104(6,2,"AS =",1,1,64) 4380 GOSUB '104(6,10,"DEMO=",1,1,65) 4390 GOSUB '104(6,20,"PTS=",2,2,66) 4400 GOSUB '104(6,30,"D1=",2,2,73) 4410 GOSUB '104(6,40,"D2=",2,2,80) 4420 GOSUB '104(6,50,"D3=",2,2,87) 4430 GOSUB '104(8,2,"BEGIN DATE=",6,11,94) 4440 GOSUB '104(8,25,"END DATE=",6,11,100) 4450 GOSUB '200 4460 RETURN 4470 DEFFN'4 : F=4 : GOSUB '115("AVAILABLE") : X$(1)="1" 4480 REM GET FIELDS FROM MARKET FORM 4490 GOSUB '103(3,7,2,5) : REM /CLIENT # 4500 GOSUB '103(3,26,26,5) : REM /EST 4510 GOSUB '103(3,66,66,2) : REM /PTS 4520 GOSUB '103(3,73,73,2) : REM /D1 4530 GOSUB '103(3,80,80,2) : REM /D2 4540 GOSUB '103(3,87,87,2) : REM /D3 4550 REM FIELDS FROM LAST AVAILABLE 4560 GOSUB '103(4,7,7,4) : REM /STAT 4570 GOSUB '103(4,11,11,2) : REM /LNGT 4580 GOSUB '103(4,13,13,4) : REM /FDAY TDAY 4590 GOSUB '103(4,15,15,4) : REM /FROM TIME 4600 GOSUB '104(2,1,"CLIENT NO. =",5,2,2) 4610 GOSUB '104(2,30,"STAT =",4,1,7) 4620 GOSUB '104(3,2,"LNGT =",2,2,11) 4630 GOSUB '104(3,15,"FDAY TDAY =",2,1,13) 4640 GOSUB '104(4,2,"FROM TIME=",4,10,15) 4650 GOSUB '104(4,20,"APNM =",1,1,19) 4660 GOSUB '104(4,30,"DAYP =",1,1,25) 4670 GOSUB '104(5,2,"TO TIME=",4,10,20) 4680 GOSUB '104(5,20,"APNM =",1,1,24) 4690 GOSUB '104(6,2,"EST. NO.=",5,1,26) 4700 GOSUB '104(7,2,"PROGRAM NAME =",21,1,31) 4710 GOSUB '104(7,45,"COST=",6,3,52) 4720 GOSUB '104(8,2,"EST=",1,1,59) 4730 GOSUB '104(8,10,"TYP=",1,1,60) 4740 GOSUB '104(9,2,"PTS=",2,2,66) 4750 GOSUB '104(9,10,"POINTS=",5,3,68) 4760 GOSUB '104(9,25,"D1=",2,2,73) 4770 GOSUB '104(9,35,"TARG 1=",5,3,75) 4780 GOSUB '104(10,25,"D2=",2,2,80) 4790 GOSUB '104(10,35,"DEM 2=",5,3,82) 4800 GOSUB '104(11,25,"D3=",2,2,87) 4810 GOSUB '104(11,35,"DEM 3=",5,2,89) 4820 GOSUB '200 4830 RETURN 4840 DEFFN'5 : F=5 : GOSUB '105("CHOSEN 1") : X$(1)="2" 4850 GOSUB '104(2,1,"EST. NO=",5,2,2) 4860 GOSUB '104(2,20,"ORD. NO. =",5,1,7) 4870 GOSUB '104(3,2,"START DATE =",6,11,12) 4880 GOSUB '104(4,2,"END DATE =",6,11,18) 4890 GOSUB '104(4,30,"SURV. =",3,1,24) 4900 GOSUB '104(5,2,"YR =",2,1,27) 4910 GOSUB '104(6,2,"MARKET NAME =",30,1,29) 4920 GOSUB '104(7,2,"PROMO =",15,1,59) 4930 GOSUB '104(8,2,"NSI ARB =",3,1,74) 4940 GOSUB '104(8,20,"MKT NO. =",3,1,77) 4950 GOSUB '200 4960 RETURN 4970 DEFFN'6 : F=6 : GOSUB '115("CHOSEN 2") : X$(1)="3" 4980 REM FIELDS FROM CHOSEN 1 4990 GOSUB '103(5,2,2,5) : REM /EST.NO. 5000 GOSUB '103(5,7,7,5) : REM /ORD.NO. 5010 GOSUB '104(2,1,"EST. NO=",5,2,2) 5020 GOSUB '104(2,20,"ORD. NO. =",5,2,7) 5030 GOSUB '104(2,40,"SPOT NO. =",3,2,12) 5040 GOSUB '104(5,02,"ALL=",2,2,15) 5050 GOSUB '104(5,12,"W1 =",2,2,17) 5060 GOSUB '104(5,22,"W2 =",2,2,19) 5070 GOSUB '104(5,32,"W3 =",2,2,21) 5080 GOSUB '104(5,42,"W4 =",2,2,23) 5090 GOSUB '104(5,52,"W5 =",2,2,25) 5100 GOSUB '104(6,02,"W6 =",2,2,27) 5110 GOSUB '104(6,12,"W7 =",2,2,29) 5120 GOSUB '104(6,22,"W8 =",2,2,31) 5130 GOSUB '104(6,32,"W9 =",2,2,33) 5140 GOSUB '104(6,42,"W10=",2,2,35) 5150 GOSUB '104(6,52,"W11=",2,2,37) 5160 GOSUB '104(7,02,"W12=",2,2,39) 5170 GOSUB '104(7,12,"W13=",2,2,41) 5180 GOSUB '104(8,02,"BILLING AMOUNT =",7,1,43) 5190 GOSUB '200 5200 RETURN