image of READY prompt

Wang2200.org

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