PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #459)

[PCjs Machine "ibm5150"]

Waiting for machine "ibm5150" to load....

Information about “ASSORTED AGRICULTURE”

More tools for today's farmer!

The Department of Agriculture at the University of Minnesota has
prepared this wide-ranging collection of BASICA decision aids for farm
management.

Several conversion programs and calculators help the busy farmer with
yield analysis, gestation dates, harvest and storage costs, probable
feed requirements, maximum bid price for farmland, and more. Applicable
information for small to large-sized farms help you through the
intricacies of farm management problems and opportunities.
File Descriptions:

AUTOEXEC BAT  Automatic instructions to read this file.
ACRSCALC BAS  Analysis of federal depreciation computations.
FARMBID  BAS  Determines the maximum bid price for land or a farm.
DRYSTORE BAS  Analysis of harvest and storage cost & alternatives.
DATECALC BAS  Computes future (gestation) dates & calendars.
BESTCROP BAS  Price & yield analysis of crop choices (equal-margin).
FEEDPIGS BAS  Should I feed out a batch of feeder pigs?
MENU     BAS  Menu program for BASIC pgms on this disk.
FEEDVALU BAS  Given corn & SBM values, what's a feed worth?
FEEDSILO BAS  Calculates likely dairy feed in a silo given feed rate.
STEERBID BAS  Calculates equivalent FOB prices for fat steers at farm.
SOWINDEX BAS  Determines a sow index, relative to the group.
SDIR     COM  2 column directory.
SCROLLCK COM  Scroll lock - control with shift keys.
RUN      BAT  Batch file requests date, loads BASICA & starts MINNAIDS.
README   DOC  Documentation file.
READ     BAT  Batch file to provide instructions for SCROLLCK.COM.
PEARSON  BAS  Balances 1 ration nutrient from 2 feed sources.
USERDOCS BAS  Explains how to make hardcopy documentation of MINNAIDS.
ULOGO    BAS  University of Minnesota logo -- START HERE.
TIMEC    COM  Help program.

ACRSCALC.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF ACRSCALC 03/11/84 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
24 REM
25 REM
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35 REM  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70  DIM R(5,16),R1(6,12),R2(12),QQ$(7),B(16),C(16),E(16),F(16),LQ$(13)
80  DEF  FN R(X) =  INT (X + 0.5)
82  REM
83  REM    15 YR REAL ESTATE CLASS LIFE
90  GOSUB 2100
110  GOSUB 47300: GOSUB 46000: PRINT : GOSUB 38
120  REM
130  PRINT
132  GOSUB 140
135  GOTO 158
140  LQ$(1) = "PROPERTY CLASS LIVES OF 3 TO 15 YEARS ARE ALLOWED IN THIS MINN-AID"
142  LQ$(2) = "LONGER CLASS LIVES ARE NEVER ECONOMIC EVEN WITH OUT CURRENT TAX LIABILITIES."
144  LQ$(3) = " " : LQ$(4) = "   FINANCIAL LOGIC SAYS TO PICK THE HIGHEST PRESENT VALUED TAX OPTION."
146  LQ$(5) = "IF EARLY DISPOSAL IS PLANNED, ANY TAX COSTS SHOULD ALSO BE CONSIDERED."
147  LQ$(6) = " "
148  LQ$(7) = "THIS VERSION IS CONSISTENT WITH THE LAW AS OF 1983.  CARE IS NEEDED TO INSURE"
149  LQ$(8)="CURRENCY IN LATER YEARS AS THE TAX CODE IS CHANGED."
150  FOR I = 1 TO 8
152 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 154
153 PRINT LQ$(I) : IF PR$ ="Y" THEN LPRINT LQ$(I)
154 NEXT I
155 IF PQ$ = "Y" THEN RETURN
156 GOSUB 49000 : RETURN
158 REM
160  IF S9 = 5 THEN  GOSUB 4000
170  IF S9 = 4 THEN  GOSUB 5000
180  GOSUB 38
190  REM     A1 = TAX YEAR OF CALCULATIONS MODIFY AS THE YEARS GO BY. ALSO NOTE THAT THE CALCULATIONS MUST REDUCE BASIS BY 50
200 A1 = 1984
202 A3 = AI: REM    AI = ENTERED BASIS; A3 = AS USED.
204 CR = 0.08: IF A4 = 3 THEN CR = 0.04: REM   UNADJUSTED BASIS - ITC
206  IF A4 > 12 THEN  GOSUB 1300
210  REM    DEFAULT SECTION 1245 1/2 YR PRORATION.
220 A5 = 0.5
225  GOSUB 500
230  IF S9 = 4 THEN 336
240  PRINT
245  IF A3 <  > AI THEN 390
250  GOSUB 41: PRINT "'0' = QUIT; '1' = ANALYZE NEW DATA; '2' = DISCOUNT TAX SAVINGS; WHICH";
260  INPUT A9
270 REM S9 = 5
280  PRINT : GOSUB 38
290  IF A9 = 1 GOTO 130
300  IF A9 <  = 0 THEN  GOTO 42900
310  IF A9 > 2 THEN 250
320  IF S9 = 4 THEN 336
330  GOSUB 7000
332  GOTO 350
336  GOSUB 8000
340  REM    DISCOUNTS BEGIN IN 2ND YEAR..ASSUMES THAT TAX SAVINGS ARE AVAILABLE AT THE TIME THE TAX SCHEDULE OPTIONS ARE MADE
350  GOSUB 38
360 TR = T1 * 0.01
370 TN = T3 * 0.01
380 DR = D2 * 0.01
390  GOSUB 2700
400  GOSUB 2500
402 IF FLAG = 5 THEN FLAG = 0 : GOSUB 49000 :GOTO 110
405  IF A3 <  > AI THEN 250
410 CR = 0.09999999: IF A4 = 3 THEN CR = 0.06
415  GOSUB 49010
420 A3 = AI - (0.5 * CR * AI)
425  PRINT SPC(20)"ASSUMING A REDUCED BASIS & FULL I.T.C.,":PRINT
430  GOTO 225
480  REM   END MAIN CONTROLING PROGRAM PROCEDURE ------
490  REM  ----------------------------------------
500  REM   BEGIN ACRS CALC & DISPLAY RESULTS PROCEDURAL SUB -----
510 A6 = A3 / A4
520  REM    10 YEAR CLASS LIFE IS BASICLY REAL ESTATE
525  IF A4 < 15 THEN 580
530  REM     SET A5 = PRORATION FACTOR FOR REAL ESTATE OPTIONS
540 A5 = (13 - A2) / 12
550  REM    A6 = FULL YEAR STRAIGHT LINE ACCRS
580 Y = 0
590  REM    STRAIGHT LINE CARRYOVER
610  FOR J = 1 TO A4 + 1
620 B(J) = A3 * R(IK,J) * 0.01
630 C(J) = A6 * A5 + Y
640  IF J = A4 + 1 THEN C(J) = Y
650 Y = A6 * (1 - A5)
660  NEXT J
670  REM
710  IF A4 = 12 THEN  GOTO 920
720  PRINT SPC(20)"FOR A ";L$;" WITH A $";A3;" BASIS"
730  PRINT
740  PRINT SPC(20)"TAX YEAR  REGULAR ACRS   YEAR END"
750  PRINT SPC(20)"             AMOUNT     BOOK VALUE"
760  PRINT
770 F1 =  FN R(B(1))
780 F2 = A3 - F1
790 E(1) = F2
800 B(1) = F1
810  PRINT  SPC(22);A1;TAB(35); F1;TAB(48);F2
820 A7 = 0
830  IF A4 = 15 AND A2 > 2 THEN A7 = 1
840  FOR J = 2 TO A4 + A7
850  IF J = A4 + A7 THEN 880
860 F1 =  FN R(B(J))
870 F2 = F2 - F1: GOTO 885
880 F1 = F2:F2 = 0
885 B(J) = F1:E(J) = F2
890  PRINT  SPC(22);A1 + J - 1; TAB(35); F1; TAB(48); F2
900  NEXT J
910  IF A4 > 5 THEN  GOSUB 49010
920  GOSUB 1710
930  GOSUB 49010
932  RETURN
935  REM   END ACRS CALCULATING PROCEDURE
936  REM   ---------------------------------------
1300  REM    SUBROUTINE TO COMP ER(5,J) ARRAY FOR 15 YR OPTION
1305 T = 0
1310 J = A2
1315  FOR I1 = 1 TO 6
1320 R(5,I1) = R1(I1,J)
1325 T = T + R1(I1,J)
1330  NEXT I1
1332 R(5,16) = R2(J)
1334 T = T + R2(J)
1335 T = 55 - T
1340  REM    TAX YR. ANNUAL % FOR INTERMEDIATE YEARS
1345  FOR J = 7 TO 7 + T
1350 R(5,J) = 6
1355  NEXT J
1357  IF 7 + T = 15 THEN  RETURN
1360  FOR J = 8 + T TO 15
1365 R(5,J) = 5
1370  NEXT J
1387  RETURN
1390  REM    ENDSUB TO PLACE DATA IN R(5,J) LOCATIONS....
1395  REM   ---------------------------------------
1700  REM   BEGIN STRAIGHT LINE CALCULATING PROCEDURE SUB
1710  IF A4 < 10 THEN 1760
1720  PRINT : PRINT "PRESS THE 'RETURN' KEY TO SEE THE       STRAIGHT LINE TABLE. ";
1730 GOSUB 40610
1740  PRINT
1750  PRINT SPC(20)"FOR A ";L$
1760  PRINT
1770  PRINT SPC(20)"TAX YEAR    STRAIGHT     YEAR END"
1780  PRINT SPC(20)"              LINE      BOOK VALUE"
1790  PRINT
1800 F1 =  FN R(C(1))
1810 X = A3 - F1
1820 F3 = A3 - F1
1830 F4 = A3 - F2
1832 C(1) = F1:F(1) = X
1840  PRINT  SPC(22);A1;TAB(35);F1;TAB(48); X
1850  FOR J = 2 TO A4 + 1
1860  IF J = A4 + 1 THEN 1910
1870 F1 =  FN R(C(J))
1880 X = X - F1
1890  IF X > 0 THEN 1925
1900 F1 = F1 - X:X = 0: GOTO 1925
1910 F1 = X:X = 0
1920  IF X < 0 THEN X = 0
1925 C(J) = F1:F(J) = X
1930  PRINT  SPC(22);A1 + J - 1;TAB(35); F1;TAB(48); X
1940  IF X <  = 0 THEN  RETURN
1950  NEXT J
1960  IF PR$ = "Y" GOSUB 3000
1970  RETURN
1980  REM   END STRAIGHT LINE CALCULATING PROCEDURE ---
1990  REM  ----------------------------------------
2000  REM   BEGIN INITIAL MESSAGE PROCEDURAL SUB ------
2010  LQ$(1) = " ": LQ$(2) = "            ACRS CALC...             "
2020  LQ$(3)= " " : LQ$(4) = "  ACCELERATED COST RECOVERY SYSTEM"
2030  LQ$(5) = " CALCULATIONS AS SPECIFIED IN THE TAX"
2040  LQ$(6) = " RECOVERY ACT OF 1981.  THE PROGRAM  "
2050  LQ$(7) = " CONTAINS A DISCOUNT TO PRESENT VALUE"
2060  LQ$(8) = " AT THE TIME THE TAX CHOICE IS MADE."
2070  LQ$(9) = " HAS 1983 BASIS & INVESTMENT OPTIONS."
2072  LQ$(10) = " "
2074  LQ$(11) = "FIGURES TAX SCHEDULE VALUES & IF ASKED "
2076  LQ$(12)= "DISCOUNTS THEM TO THEIR PRESENT VALUES"
2078  LQ$(13)= "IN ORDER TO HELP PICK THE BEST OPTION."
2080  FOR I = 1 TO 13
2082 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 2086
2084 PRINT SPC(20);LQ$(I)  : IF PR$ = "Y" THEN LPRINT LQ$(I)
2086 NEXT I
2088 IF PQ$ = "Y" THEN RETURN
2089 GOSUB 49000 : RETURN
2090  REM   END INITIAL SCREEN PROCEDURE
2095  REM   ---------------------------------------
2100 QQ$(1) = "DESCRIBE THE ASSET/ASSET CLASS... "
2110 QQ$(2) = "ENTER ACRS ORGINAL TAX BASIS ($). "
2120 QQ$(3) = "ACRS PROPERTY CLASS LIFE IN YEARS "
2130 QQ$(4) = "ENTER MONTH OF 1ST USE IN TAX YR. "
2140  REM     ACRS CALC...ACCELERATED COST RECOVRY SYSTEM CALCULATIONS AS SPECIFIED IN THE TAX RECOVRY ACT OF 1981.
2150 QQ$(5) = "CURRENT MARGINAL INC. TAX RATE(%) "
2160 QQ$(6) = "TAX RATE FOR LATER YEARS......(%) "
2170 QQ$(7) = "INTEREST RATE TO DISCOUNT BY..(%) "
2180 IF PQ$ = "Y" THEN GOSUB 49100:RETURN
2200  FOR I = 1 TO 3: READ R(1,I): NEXT I
2210  REM    3 YR CLASS LIFE DATA
2220  DATA    25,38,37
2230  FOR I = 1 TO 5: READ R(2,I): NEXT I
2240  REM    5 YR CLASS LIFE DATA
2250  DATA    15,22,21,21,21
2260  FOR I = 1 TO 10: READ R(3,I): NEXT I
2270  REM    10 YR CLASS LIFE DATA
2280  DATA    8,14,12,10,10,10,9,9,9,9
2300  REM    READ R1(6 YEAR & 12 MO.) TABLE FOR 15 YEAR REAL ESTATE OPTION
2310  DATA    12,11,10,9,8,7,6,5,4,3,2,1
2320  DATA    10,10,11,11,11,11,11,11,11,11,11,12
2330  DATA    9,9,9,9,10,10,10,10,10,10,10,10
2340  DATA    8,8,8,8,8,8,9,9,9,9,9,9
2350  DATA    7,7,7,7,7,7,8,8,8,8,8,8
2360  DATA    6,6,6,6,7,7,7,7,7,7,7,7
2370  FOR I = 1 TO 6
2380  FOR J = 1 TO 12
2390  READ R1(I,J)
2400  NEXT J
2405 NEXT I
2410  REM   END 15 YEAR ACRS BASIC DATA SUB--------
2420  FOR J = 1 TO 12
2430  READ R2(J)
2440  DATA    0,0,1,1,2,2,3,3,4,4,4,5
2450  REM
2460  NEXT J
2470  RETURN
2480  REM   END INITIAL DATA SUB PROCEDURE---------
2485  REM   ---------------------------------------
2490  REM   BEGIN DISCOUNT ANALYSIS DISPLAY SUB----
2500 PRINT "   PRESENT VALUE ANALYSIS OF THE COST RECOVERY ALTERNATIVES"
2502 PRINT
2504  PRINT USING "\                           \ WITH A $$####### BASIS,";L$;A3
2506  PRINT : PRINT USING "#### TAX RATE = ###%";A1;TN * 100;
2510  PRINT USING " - LATER YEARS = ###%";TR * 100
2520  PRINT USING "DISCOUNT TO PRESENT VALUE RATE = ###.#% FOR A ## YEAR CLASS LIFE";DR*100;A4
2530 PRINT
2540  PRINT "PRESENT VALUE OF ACCELERATED COST RECOVERY SCHEDULE (1981-19?? RULES)"
2550  PRINT : PRINT "       REGULAR ACRS:       STRAIGHT LINE OPTION:"
2560  PRINT USING "         $$######              $$######";B2;C2
2562 PRINT
2565 B1 = 0
2570  IF A4 > 12 THEN 2620
2580  PRINT USING "ADD ##.# ";CR * 100;:PRINT "% INVESTMENT CREDIT AND THE IMPACT WOULD BE"
2590  IF A4 < 5 GOTO 2630
2600 B1 = FNR(CR * AI)
2610  REM    10% ITC FOR 5+ YRS CLASS LIFE
2615  PRINT USING "         $$######              $$######";B1;B1
2620  PRINT : PRINT "PRESENT VALUE OF TAX SAVINGS FOR COST RECOVERY OPTION SELECTION PURPOSES"
2625  PRINT USING "TOTAL PV $$######              $$######";B2;B1+C2
2630  PRINT
2635 V1 =  FN R((B1 + B2) / (1 + DR))
2640 V2 =  FN R((B1 + C2) / (1 + DR))
2645  PRINT "- FOR PRE-PURCHASE INVESTMENT ANALYSIS  PURPOSES THE PRESENT VALUE IS ;"
2650  PRINT USING "         $$######              $$######";V1;V2
2652 IF PR$ ="Y" THEN GOSUB 3500
2655 IF S9 = 4 THEN FLAG = FLAG +1
2656 IF FLAG > 1.5 THEN FLAG = 5
2670  RETURN
2680 REM -------------------------------------------------
2690  REM   ---------------------------------------
2700  REM   BEGIN PROCEDURAL SUB TO DISCOUNT TO PRESENT VALUE ----
2710 B2 = B(1) * TN
2720 C2 = C(1) * TN
2730 B2 = B2 + B(2) * TR / (1 + DR)
2740 C2 = C2 + C(2) * TR / (1 + DR)
2750  FOR I = 3 TO A4 + 1
2760 B2 = B2 + B(I) * TR * (1 / (1 + DR)) ^ (I - 1)
2770 C2 = C2 + C(I) * TR * (1 / (1 + DR)) ^ (I - 1)
2780  NEXT I
2790  IF A4 = 12 THEN B2 = 0
2800  IF PR$ = "Y" THEN  GOSUB 3000
2810  RETURN
2820  REM   END DISCOUNT CALCULATION PROCEDURE
2830  REM   ---------------------------------------
3000  REM   BEGIN PRINTED RESULTS PROCEDURAL SUB---
3010  GOSUB 39410
3020 LPRINT : LPRINT
3022  PRINT : PRINT
3025 LPRINT " FOR A ";L$;" WITH A ";A1;" TAX BASIS OF $";A3: PRINT
3030 LPRINT "       REGULAR ACRS OPTION   STRAIGHT LINE OPTION"
3040 LPRINT "TAX   AMOUNT   END OR YEAR   AMOUNT   END OF YEAR"
3050 LPRINT "YEAR  ALLOWED  BOOK VALUE    ALLOWED  BOOK VALUE"
3060  FOR J = 1 TO A4 + 1
3070 LPRINT USING "####";A1+J-1;
3080  IF J < A1 - 1 THEN 3110
3090 LPRINT  SPC( 20);
3100  GOTO 3120
3110 LPRINT USING " #######  ##########";B(J);E(J);
3120 LPRINT USING " ######### ##########";C(J);F(J)
3130  NEXT J
3140 LPRINT
3150 RETURN
3160  REM   END PRINTED RESULT PROCEDURE
3170  REM   ----------------------------------------
3490  REM   BEGIN DISCOUNT ANALYSIS PRINTER SUB----
3500 LPRINT "   PRESENT VALUE ANALYSIS OF THE COST RECOVERY ALTERNATIVES"
3502 LPRINT
3504 LPRINT USING "\                           \ WITH A $$####### BASIS,";L$;A3
3506 LPRINT : PRINT USING "#### TAX RATE = ###%";A1;TN * 100;
3510 LPRINT USING " - LATER YEARS = ###%";TR * 100
3520 LPRINT USING "DISCOUNT TO PRESENT VALUE RATE = ###.#% FOR A ## YEAR CLASS LIFE";DR*100;A4
3530 LPRINT
3540 LPRINT "PRESENT VALUE OF ACCELERATED COST RECOVERY SCHEDULE (1981-19?? RULES)"
3550 LPRINT : PRINT "       REGULAR ACRS:       STRAIGHT LINE OPTION:"
3560 LPRINT USING "         $$######              $$######";B2;C2
3562 LPRINT
3565 B1 = 0
3570  IF A4 > 12 THEN 3620
3580 LPRINT USING "ADD ##.# ";CR * 100;:PRINT "% INVESTMENT CREDIT AND THE IMPACT WOULD BE"
3590  IF A4 < 5 GOTO 3630
3600 B1 = FNR(CR * AI)
3610  REM    10% ITC FOR 5+ YRS CLASS LIFE
3615 LPRINT USING "         $$######              $$######";B1;B1
3620 LPRINT : PRINT "PRESENT VALUE OF TAX SAVINGS FOR COST RECOVERY OPTION SELECTION PURPOSES"
3625 LPRINT USING "TOTAL PV $$######              $$######";B2;B1+C2
3630 LPRINT
3635 V1 =  FN R((B1 + B2) / (1 + DR))
3640 V2 =  FN R((B1 + C2) / (1 + DR))
3645 LPRINT "- FOR PRE-PURCHASE INVESTMENT ANALYSIS  PURPOSES THE PRESENT VALUE IS ;"
3650  PRINT USING "         $$######              $$######";V1;V2
3660 RETURN
3670 REM ------END PRINTED PV ANALYSIS SUB --------------
4000  REM   BEGIN REGULAR INPUT PROCEDURE OPTION
4020 CH = 36
4080  IF PQ$ = "Y" THEN  GOSUB 49110: RETURN
4090  REM   GOSUB 49100 TO PRINT A INPUT FORM ON PAPER.  (K2 = NO. OF QUESTIONS)
4100  GOSUB 38: GOSUB 51
4110  PRINT "<RETURN>=USE LAST KEY-IN TO QUESTION"
4120  GOSUB 50
4130  GOSUB 39
4140  PRINT
4150  PRINT QQ$(1);L$
4160  PRINT
4170  PRINT QQ$(2);AI
4180  PRINT
4190  GOSUB 5310
4200  PRINT QQ$(3);A4
4210  PRINT
4220  PRINT QQ$(4);A2
4230  IF K2$ = "N" THEN  GOTO 4480
4240  GOSUB 41: GOSUB 49910
4250  GOSUB 40210
4260 LQ = 1:LN = 2: GOSUB 40
4270  GOSUB 40230: IF ZN$ <  > "" THEN L$ = ZN$
4280  GOSUB 40210
4290 LQ = 2:LN = 4: GOSUB 40
4300  GOSUB 40000: IF ZN$ <  > "" THEN AI = ZN
4310  GOSUB 40210
4320 LQ =3:LN = 13: GOSUB 40
4330  GOSUB 40000: IF ZN$ <  > "" THEN A4 = ZN
4340 LO = 3:HI = 15
4350  IF A4 < LO OR A4 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 4320
4360  GOSUB 40210
4370 IK = 0
4380  IF A4 = 3 THEN IK = 1
4390  IF A4 = 5 THEN IK = 2
4400  IF A4 = 10 THEN IK = 3
4410  IF A4 = 12 THEN IK = 4
4420  IF A4 = 15 THEN IK = 5
4430  IF IK > 0 THEN 4460
4440  GOSUB 41: PRINT  CHR$ (7): GOSUB 51: PRINT "ENTERED CLASS LIFE IS NOT ALLOWED.";: GOSUB 50
4450  Z$ = INPUT$(1) :GOTO 4310
4460  IF A4 < 12 GOTO 4530
4470  IF Z$ = "N" THEN CX = 1:CY = 20: GOSUB 42: LOCATE 16,1:GOTO 4220
4480 LQ = 4:LN = 15: GOSUB 40
4490  GOSUB 40000: IF ZN$ <  > "" THEN A2 = ZN
4500 LO = 1:HI = 12
4510  IF A2 < LO OR A2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 4480
4520  GOTO 4535
4530 LN = 20:CX = 1:CY = CV + LN: GOSUB 42
4532  PRINT "(A 1/2 YEAR CONVENTION RULE  APPLIES.)"
4535  GOSUB 40210:GOSUB 41
4540  GOSUB 51
4550  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N OR <CNTL-Q> = QUIT ENTIRE ANALYSIS";
4570  GOSUB 50
4580 GOSUB 40610
4600  IF Z$ = QE$ THEN 42900
4610  IF Z$ = "N" THEN CX = 1:CY = CY: GOSUB 42: GOSUB 45: GOTO 4250
4620  IF Z$ <  > "Y" THEN 4535
4625 LOCATE ,,0:GOSUB 48700
4630  RETURN
4640  REM   END DATA INPUT PROCEDURE -------
4650  REM  ---------------------------------
5000  REM   BEGIN 1ST 4 DATA ITEMS AUTO ENTRY (S9 = 4-OPTION)----
5010  GOSUB 38: GOSUB 51
5020 L$ = " PLOW"
5030 AI = 10000
5040 A4 = 5
5050 A2 = 7
5060 IK = 2
5070  PRINT "<RETURN>=USE LAST KEY-IN TO QUESTION"
5080  GOSUB 50
5090  GOSUB 39
5100  PRINT
5110  PRINT QQ$(1);L$
5120  PRINT
5130  PRINT QQ$(2);AI
5140  PRINT
5150  GOSUB 5310
5160  PRINT QQ$(3);A4
5170  PRINT
5180  PRINT QQ$(4);"(NOT USED)"
5190  GOSUB 49000
5200  RETURN
5210  REM   END AUTO DATTA ENTRY PROCEDURE---------
5220  REM   ---------------------------------------
5300  REM   BEGIN SPECIAL SCREEN MESSAGE PROCEDURAL SUB -----
5310  LQ$(1) = "AUTOS, TRUCKS & SWINE HAVE A 3 YEAR; FARM MACHINERY, CATTLE, SHEEP & SINGLE"
5320  LQ$(2) =  "PURPOSE AGRICULTURAL STRUCTURES A 5 YR. (12 YR. OPTIONAL) CLASS LIFE."
5325  LQ$(3) = " "
5330  LQ$(4) = "GENERAL PURPOSE REAL ESTATE A 15 YEAR LIFE (10 YEARS FOR MOBILE HOMES.)"
5340  LQ$(5) = " "  : LQ$(6)= "THERE ARE 25, 35,AND 45 YR. OPTIONS BUT THESE ARE UNECONOMIC OPTIONS."
5350  LQ$(7) = " "
5354  FOR I = 1 TO 7
5356 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 5360
5358 PRINT LQ$(I)
5360 NEXT I : IF S9 = 1 THEN GOSUB 49000
5365 RETURN
5370  REM   END SPECIAL SCREEN PRINT PROCEDURE------
5380  REM   ---------------------------------------
7000  REM   BEGIN 2ND SCREEN INPUT PROCEDURE ------
7040 CH = 54
7140  IF PQ$ = "Y" THEN  GOSUB 49110: RETURN
7160  REM   GOSUB 49100 TO PRINT A INPUT FORM ON PAPER.  (K2 = NO. OF QUESTIONS)
7180  GOSUB 38: GOSUB 51
7200  LOCATE 1,20 : PRINT "<RETURN>=USE LAST KEY-IN TO QUESTION"
7220  GOSUB 50
7240  GOSUB 39
7260  PRINT
7280  PRINT TAB(20);:PRINT QQ$(5);T3
7300  PRINT
7320  PRINT TAB(20);:PRINT QQ$(6);T1
7340  PRINT
7360  PRINT TAB(20);:PRINT QQ$(7);D2
7370 IF S9 = 4 THEN GOSUB 49000 : GOTO 7900
7380  GOSUB 41: GOSUB 49910
7385  GOSUB 40210
7400 LQ = 5:LN = 2: GOSUB 40
7420  GOSUB 40000: IF ZN$ <  > "" THEN T3 = ZN
7440 LO = 0:HI = 100
7460  IF T3 < LO OR T3 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 7400
7480  GOSUB 40210
7500 LQ = 6:LN = 4: GOSUB 40
7520  GOSUB 40000: IF ZN$ <  > "" THEN T1 = ZN
7540 LO = 0:HI = 100
7560  IF T1 < LO OR T1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 7500
7580  GOSUB 40210
7600 LQ = 7:LN = 6: GOSUB 40
7620  GOSUB 40000: IF ZN$ <  > "" THEN D2 = ZN
7640 LO = 0:HI = 100
7660  IF D2 < LO OR D2 > HI THEN O TO  GOSUB 40150: GOSUB 40: GOTO 7600
7680  REM
7700  GOSUB 40210:GOSUB 41
7720  GOSUB 51
7740  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N OR <CNTL-Q> = QUIT ENTIRE ANALYSIS) ";
7780  GOSUB 50
7800 GOSUB 40610
7840  IF Z$ = QE$ THEN 42900
7860  IF Z$ = "N" THEN GOSUB 41: GOSUB 45: GOTO 7385
7880  IF Z$ <  > "Y" THEN 7700
7890 GOSUB 48700 : LOCATE ,,0
7900  RETURN
7910  REM   END 2ND INPUT SCREEN PROCEDURE
7920  REM   ---------------------------------------
7990  REM   BEGIN AUTO INPUT FOR S9 = 4 PROCEDURAL SUB -------
8000  GOSUB 38: GOSUB 51
8001 T1 = 42
8002 D2 = 15
8003 T3 = 37
8010  LOCATE ,20 : PRINT "<RETURN>=USE LAST KEY-IN TO QUESTION"
8020  GOSUB 50
8030  GOSUB 39
8040  PRINT
8045 LOCATE 3,20
8050  PRINT QQ$(5);T3
8060  PRINT
8065 LOCATE 5,20
8070  PRINT QQ$(6);T1
8080  PRINT
8085 LOCATE 7,20
8090  PRINT QQ$(7);D2
8093  GOSUB 49000
8095  RETURN
8096  REM   END 2ND AUTO INPUT PROCEDURE
8097  REM   ---------------------------------------
38900 REM
38999 REM
39400  REM   SUBS TO TOGGLE PRINTER
39410  IF PR$ <  > "Y" THEN  RETURN
39420  LOCATE 20,20 :PRINT "TURN PRINTER ON & PRESS ANY KEY ";: Z$ = INPUT$(1) : IF Z$ < > "" THEN RETURN
39425  GOTO 39420
39440 PRINT "THE PRINTER IS NOT BEING USED ?" : RETURN
39450  REM   ---------------------------------------
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39485 RETURN
39490  REM  ----------------------------------------
39510  PRINT "WILL YOU USE A PRINTER (Y OR N) ";
39520  INPUT PR$: IF PR$ = ES$ THEN 38900
39530 PR$ =  LEFT$ (PR$,1)
39540  RETURN
39550  REM  ----------------------------------------
39560  REM   END PROCEDURE TO USE ? PRINTER
39570  REM
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$) : RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE (";ZN") SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40400  REM   PROCEDURE TO PRINT LENGTH OF DATA PROMPT (REQUIRED OR MAXIMUM
40405  REM   PROPER USE REQUIRES POST GENBASIC CODING OF WL & FL'S
40410  PRINT  LEFT$ (SQ$,WL);
40420  IF FL > 0 THEN  PRINT "."; LEFT$ (SQ$,FL);
40430 CX = CH:CY = CV + LN: GOSUB 42
40440  RETURN
40450  REM   END PROCEDURAL SUB
40460  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 110
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN GOTO 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45540 EL = ERL: EC = ERR
45550 CLS:LOCATE 12,12:GOSUB 51:PRINT CHR$(7):PRINT CHR$(7): PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45560 PRINT "  REFER TO YOUR USER'S MANUAL":GOSUB 50
45565 PRINT : PRINT"DO NOT PANIC":PRINT "It is possible to recover from certain errors without losing any data.": PRINT "DO NOT EXIT FROM THIS PROGRAM.  Continue on for instructions."
45570 PRINT
45580 IF EC <53 OR EC > 72 THEN 45615
45590 IF EC > 63 THEN 45610
45600 SS = EC - 52 : ON SS GOTO 45620,45615,45615,45615,45630,45615,45615,45615,45640,45615,45615
45610 SS = EC - 63 : ON SS GOTO 45615,45615,45615,45655,45615,45615,45650,45660,45665
45615 EM$ = "SEE BASIC MANUAL PAGES A3 TO A11" : RM$ = "NO RECOVERY POSSIBLE. RERUN FROM BEGINNING." : FLAG = 23 : GOTO 45670
45620 EM$ = "FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45630 EM$ = "DEVICE I/O ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45640 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45650 EM$ = "DISK WRITE PROTECT" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45655 EM$ = "TOO MANY FILES" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45660 EM$ = "DISK NOT READY" : RM$ = "DRIVE DOOR OPEN,NO DISK IN DRIVE?":GOTO 45670
45665 EM$ = "DISK MEDIA ERROR":RM$ = "USE A DIFFERENT DISK."
45670 LOCATE 5,5 :PRINT"ERROR #";EC;"  ";EM$
45675 LOCATE 7,5: PRINT"REMEDY/SUGGESTION:  ";RM$
45677 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 LOCATE 10,5 : PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": ZZ$ = INPUT$(1)
45685 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 2000
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 2000
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   12/10/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47092  PRINT SPC(20)"!           PROJECT 14-036            !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   12/10/83              IBM - PC    !"
47350  PRINT SPC(20)"!           ACRS CALC...              !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!      ACCELERATED COST RECOVERY      !"
47380  PRINT SPC(20)"! SYSTEM CALCULATIONS AS SPECIFIED IN !"
47390  PRINT SPC(20)"!    THE TAX RECOVERY ACT OF 1981     !"
47397  PRINT SPC(20)"!   AND THE TAX EQUITY ACT OF 1982    !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
48030  LPRINT "!   12/10/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   12/10/83              (IBM - PC)  !"
48310  LPRINT "!              ACRS CALC              !"
48320  LPRINT "!      ACCELERATED COST RECOVERY      !"
48330  LPRINT "! SYSTEM CALCULATIONS AS SPECIFIED IN !"
48340  LPRINT "!    THE TAX RECOVERY ACT OF 1982     !"
48350  LPRINT "!   AND THE TAX EQUITY ACT OF 1982    !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48750 REM*** CONVERTS INPUT OF LOWER CASE TO UPPER CASE
48755 IF K2$ = "" THEN RETURN
48760 I% = ASC(K2$)
48770 IF I% > 96 AND I% < 123 THEN K2$ = CHR$(I%-32)
48775 Z$ = K2$
48780 RETURN
48790 IF Z$ = "" THEN RETURN
48793 K2$ = Z$
48795 I% = ASC(Z$) : GOTO 48770
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50:GOSUB 49007:RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005 REM IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "?????? PUT A TITLE HERE"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149 K2 = 7
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105 REM
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50170
50108  GOTO 50300
50110  LQ$ = "Describe the asset or asset class in words in less than 20 letters"
50119  GOTO 50300
50120  LQ$ = "Enter the adjusted basis for the asset to be cost recovered."
50129  GOTO 50300
50130  LQ$ = "Enter the appropriate ACRS asset class life in years (3,5,10, or 15)."
50139  GOTO 50300
50140  LQ$ = "Enter the month the real asset was put in service (1 =Jan...12=Dec. etc."
50149  GOTO 50300
50150  LQ$ = "Current marginal income tax rate (%) = federal + S.S. or S.E. + adl.state rate"
50159  GOTO 50300
50160  LQ$ = "Projected marginal tax rate (typical) for the remainder of the tax life (%)"
50169  GOTO 50300
50170  LQ$ = "Rate by which to discount future tax savings to calculate present value (%)"
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : GOSUB 40610 : RETURN
50320  REM ----------------------------------------
53025 REM ------------------------------------------

BESTCROP.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF BESTCROP 03/11/84 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70 DIM QQ$(10) : DIM LQ$(21)
72 DIM F(5),G(5),L(5),R(5),E(5)
74 K2 = 10:CH = 64 : S = 1
80 GOSUB 1500
90  GOSUB 47300
100  GOSUB 46000
110 REM
120  GOSUB 1557
130  IF C1 + C <  = 0 THEN  GOSUB 1780
131  IF C > 0! THEN 135
132 C = (B * B1 - E1 + E2) / C1
133 C =  INT (C * 100 + 0.005000001) / 100
135  IF C1 > 0! THEN 139
137 C1 = (B * B1 - E1 + E2) / C
138 C1 =  INT (C1 * 100 + 0.005000001) / 100
139  REM      END OF INPUT
140  GOSUB 38
150 REM ??????? LN = 12 : IF PR$ = "Y" THEN LN = 9
160 IF PR$ <> "Y"  THEN 166
162 LPRINT "A TABLE OF BREAK-EVEN PRICES & YIELDS FOR THE TWO CROPS IN THE ANALYSIS"
163 LPRINT
164 LPRINT B$;: LPRINT SPC(16);C$;" PRICE ($)/";W$
165 LPRINT USING "YIELD = ####.##"; B;
166  PRINT "A TABLE OF BREAK-EVEN PRICES & YIELDS FOR THE TWO CROPS IN THE ANALYSIS"
167 PRINT
170 PRINT B$;:PRINT SPC(16);C$;" PRICE ($)/";W$
175 M = 0!
177 PRINT USING "YIELD = ####.##"; B;
179 LOCATE 5,14
180  FOR J = 1 TO 5
185 F(J) = C1 + C1 * (M - 0.2) + 0!
190 M = M + 0.1
202 IF PR$ = "Y" THEN LPRINT USING "###.##         ";F(J);
203 IF J= 3 THEN GOSUB 51:PRINT USING "###.## ";F(J);:GOSUB 50:PRINT "        ";:GOTO 206
204 PRINT USING "###.##         ";F(J);
206  NEXT J : PRINT
210 PRINT "PRICE ($)"
220  PRINT " PER";U$; SPC( 8)" EQUAL-RETURN ";C$;" YIELD/ACRE"
222 IF PR$ <> "Y" THEN 230
224 LPRINT : LPRINT "PRICE ($)"
226 LPRINT " PER";U$; SPC( 8)" EQUAL-RETURN ";C$;" YIELD/ACRE"
230 M = 0!
235 LOCATE  10,1
240  FOR I = 1 TO 5
250 D(I) = B1 + B1 * (M - 0.2)
260 M = M + 0.1
262 IF PR$ = "Y" THEN LPRINT USING "###.##       ";D(I);
263 IF I= 3 THEN GOSUB 51:PRINT USING "###.##";D(I);:GOSUB 50:PRINT "       ";:GOTO 270
264 PRINT USING "###.##       ";D(I);
270  FOR J = 1 TO 5
280 G(J) = (B * D(I) - E1 + E2) / F(J)
282 IF PR$ = "Y" THEN LPRINT USING "####.##        ";G(J);
283 IF J= 3 AND I = 3 THEN GOSUB 51:PRINT USING "####.##";G(J);:GOSUB 50:PRINT "        ";:GOTO 290
284 PRINT USING "####.##        ";G(J);
290  NEXT J
300  PRINT
302 IF PR$ = "Y" THEN LPRINT  : LPRINT
310  NEXT I
332 IF PR$ = "Y" THEN LPRINT  : LPRINT
334  PRINT
335  GOSUB 49007
337  GOSUB 38
340  PRINT
350 IF PR$ <> "Y" THEN 370
353 LPRINT  : LPRINT : LPRINT
354 LPRINT B$;: LPRINT SPC(16);C$;" YIELD PER ACRE"
356 LPRINT USING "PRICE = $###.##";B1
370  PRINT B$;:PRINT SPC(16);C$;" YIELD PER ACRE"
374  PRINT USING "PRICE = $###.##";B1
380 M = 0!
385 LOCATE 5,14
390  FOR J = 1 TO 5
400 L(J) = C + C * (M - 0.2)
402 IF PR$ = "Y" THEN LPRINT USING "###.##       ";L(J);
403 IF J= 3 THEN GOSUB 51:PRINT USING "###.## ";L(J);:GOSUB 50:PRINT "     ";:GOTO 410
404  PRINT USING "###.##       ";L(J);
410 M = M + 0.1
420  NEXT J : PRINT
430  IF PR$ <> "Y" THEN 440
432 LPRINT  : LPRINT " YIELD"
434 LPRINT "PER ACRE       EQUAL-RETURN ";C$;" $/"W$""
436 LPRINT
440 PRINT  : PRINT " YIELD"
450  PRINT "PER ACRE       EQUAL-RETURN ";C$;" $/"W$""
455 PRINT
460 M = 0!
465 LOCATE 10,1
470  FOR I = 1 TO 5
480 E(I) = B + B * (M - 0.2)
490 M = M + 0.1
492 IF PR$ = "Y" THEN LPRINT USING "####.##      ";E(I);
493 IF I= 3 THEN :GOSUB 51:PRINT USING "####.## ";E(I);:GOSUB 50:PRINT "     ";:GOTO 510
494 PRINT USING "####.##      ";E(I);
510  FOR J = 1 TO 5
520 G(J) = (E(I) * B1 - E1 + E2) / L(J)
522 IF PR$ = "Y" THEN LPRINT USING "###.##       ";G(J);
523 IF J= 3 AND I = 3 THEN PRINT " ";:GOSUB 51:PRINT USING "##.## ";G(J);:GOSUB 50:PRINT "      ";:GOTO 530
524  PRINT USING "###.##       ";G(J);
530  NEXT J : PRINT
532 IF PR$ = "Y" THEN LPRINT  : LPRINT
540  PRINT
542  NEXT I
543  PRINT
544 IF PR$ = "Y" THEN LPRINT  : LPRINT
546  PRINT
547  GOSUB 49007
548  GOSUB 38
585  PRINT
589 IF S9 = 4 THEN 42900
590  PRINT "0 = STOP, 1 = NEW BASE CROP, OR 2 = NEW COMPETING CROP ;"
600  INPUT S
610  IF S < 0 OR S > 2 THEN 585
615  GOSUB 38
617 IF S = 0 THEN 42900
620  IF S <  > 2 THEN  I1 = 18 : GOSUB 2072
640 GOTO 120
1000 REM
1500 GOSUB 38
1505  REM   DEFAULT DATA VALUES FOR THIS INPUT SECTION
1510 B$ = " CORN":QQ$(1) = "ENTER NAME OF BASE (OR DEFENDER) CROP..... "
1515 U$ = " BU. ":QQ$(2) = "ENTER UNIT OF YIELD FOR BASE CROP......... "
1520 B = 100:QQ$(3) = "ENTER EXPECTED BASE CROP YIELD / ACRE..... "
1525 B1 = 2.5:QQ$(4) = "ENTER EXPECTED BASE CROP PRICE ...($/UNIT) "
1529 QB$ =  "ENTER CASH FLOW EXPENSE / ACRE TO GROW "
1530 E1 = 150:QQ$(5) = "......(LESS SECONDARY CROP VALUE ?)......$ "
1535 C$ = " BEAN":QQ$(6) = "ENTER NAME OF COMPETING (ALTERNATE)CROP... "
1540 W$ = " BU. ":QQ$(7) = "ENTER UNIT OF YIELD FOR COMPETING CROP.... "
1545 C = 33:QQ$(8) = "ENTER EXPECTED YIELD FOR COMPETING CROP... "
1550 C1 = 0! : QQ$(9) = "ENTER EXPECTED PRICE FOR COMPETING CROP..$ "
1555 E2 = 80:QQ$(10) = "......(LESS SECONDARY CROP VALUE ?)......$ "
1556 RETURN : REM END DATA SETUP SUB ---ENTRY BELOW--------------------
1557  GOSUB 38 : IF S9 = 4 THEN 1570
1558 PRINT TAB(21); : GOSUB 51
1560   PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
1562  GOSUB 50 : PRINT
1570  GOSUB 39
1571 CV = CV - 1
1580  PRINT SPC(20);QQ$(1);B$
1585  PRINT
1590  PRINT SPC(20);QQ$(2);U$
1595  PRINT
1600  PRINT SPC(20);QQ$(3);B
1605  PRINT
1610  PRINT SPC(20);QQ$(4);B1
1615 PRINT SPC(20);QB$
1620  PRINT SPC(20);QQ$(5);E1
1622  REM   START DEFENDER SCREEN INPUT PRINT
1625  PRINT
1630  PRINT SPC(20);QQ$(6);C$
1635  PRINT
1640  PRINT SPC(20);QQ$(7);W$
1645 IF S9 = 5 THEN PRINT  ELSE GOSUB 1955
1650  PRINT SPC(20);QQ$(8);C
1655  PRINT
1660  PRINT SPC(20);QQ$(9);C1
1665 PRINT SPC(20);QB$
1667 PRINT SPC(20)QQ$(10);E2
1670  IF S8 =  - 1 THEN S8 = 0: RETURN
1671  IF S9 < 5 THEN LN = 20: GOTO 1891
1672  IF S = 2 THEN 1780
1675  GOSUB 41: GOSUB 49910 : GOSUB 40210
1680 GOSUB 41:GOSUB 40210 : LQ = 1:LN = 2: GOSUB 40
1685  GOSUB 40230: IF ZN$ <  > "" THEN B$ = ZN$
1690  GOSUB 41: GOSUB 40210
1695 LQ = 2:LN = 4: GOSUB 40
1700  GOSUB 40230: IF ZN$ <  > "" THEN U$ = ZN$
1705  GOSUB 41: GOSUB 40210
1710 LQ = 3:LN = 6: GOSUB 40
1715  GOSUB 40000: IF ZN$ <  > "" THEN B = ZN
1720 LO = 0:HI = 10000
1725  IF B < LO OR B > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1710
1730  GOSUB 41: GOSUB 40210
1735 LQ = 4:LN = 8: GOSUB 40
1740  GOSUB 40000: IF ZN$ <  > "" THEN B1 = ZN
1745 LO = 0:HI = 200
1750  IF B1 < LO OR B1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1735
1755  GOSUB 41: GOSUB 40210
1760 LQ = 5:LN = 10: GOSUB 40
1765  GOSUB 40000: IF ZN$ <  > "" THEN E1 = ZN
1770 LO = 0:HI = 3000
1775  IF E1 < LO OR E1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1760
1778  REM   START DEFENDER CROP INPUT
1780  GOSUB 41: GOSUB 40210
1785 LQ = 6:LN = 12: GOSUB 40
1790  GOSUB 40230: IF ZN$ <  > "" THEN C$ = ZN$
1795  GOSUB 41: GOSUB 40210
1800 LQ = 7:LN = 14: GOSUB 40
1805  GOSUB 40230: IF ZN$ <  > "" THEN W$ = ZN$
1810  GOSUB 41: GOSUB 40210
1812 LN = 14 : GOSUB 40 : GOSUB 1955
1815 LQ = 8:LN = 16: GOSUB 40
1820  GOSUB 40000: IF ZN$ <  > "" THEN C = ZN
1825 LO = 0:HI = 10000
1830  IF C < LO OR C > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1815
1835  GOSUB 41: GOSUB 40210
1840 LQ = 9:LN = 18: GOSUB 40
1845  GOSUB 40000: IF ZN$ <  > "" THEN C1 = ZN
1850 LO = 0:HI = 200
1855  IF C1 < LO OR C1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1840
1860  GOSUB 41: GOSUB 40210
1865 LQ = 10:LN = 20: GOSUB 40
1870  GOSUB 40000: IF ZN$ <  > "" THEN E2 = ZN
1875 LO = 0:HI = 3000
1880  IF E2 < LO OR E2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1865
1885  REM
1890  GOSUB 40210 : GOSUB 41:CX = 1:CY = CV + LN : GOSUB 42
1891  IF S9 = 4 THEN  PRINT : GOSUB 49000: RETURN
1892  GOSUB 41 : GOSUB 51
1893 LOCATE 23,1
1895  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N OR <CNTL-Q> = QUIT ENTIRE ANALYSIS ";
1902  GOSUB 50
1905  GOSUB 40610
1915  IF Z$ = QE$ THEN 38900
1920  IF Z$ = "N" THEN ON S GOTO 1680,1780
1925  IF Z$ < > "Y"  THEN BL$ : GOTO 1885
1930  GOSUB 38
1933 GOSUB 48700
1935  RETURN
1940  REM  ----------------------------------------
1950 REM special data entry note sub ------------------------
1955 GOSUB 51 :PRINT "A `0' entry for either centers the break even price or yield in the analysis." :GOSUB 50 : RETURN
1960 REM ------------------------------------------
2000  REM   ON-LINE INSTRUCTIONS PROCEDURE
2002  GOSUB 38 : I1 = 1
2005  LQ$(1) = "   "
2010  LQ$(2) = "    BEST CROP PROVIDES A SENSIVITY ANALYSIS OF VARIATION IN PRICES AND YIELDS"
2015  LQ$(3) ="FOR A BASE (OR DEFENDER) CROP AS COMPARED TO ONE OR MORE ALTERNATIVE (OR CHAL-"
2020  LQ$(4)= "LENGER) CROP WHICH COULD BE GROWN ON THE SAME LAND WITH AVAILABLE MACHINERY AND"
2025  LQ$(5) = "LABOR.   TO DO SO IT CALCULATES THE BREAKEVEN PRICE OR YIELD WHICH OFFERS THE "
2030  LQ$(6) = "SAME GROSS MARGIN I.E. THE SAME CONTRIBUTION TO OVERHEAD, RISKS AND PROFITS."
2032 LQ$(7) = "    "
2035  LQ$(8) = "    THE USER SHOULD THEN CONSIDER THE ODDS OF GETTING THESE PRICES AND YIELDS."
2040  LQ$(9) = "GROWING EXPENSES ARE ASSUMED TO BE CONSTANT REGARDLESS OF YIELD OR PRICE."
2042  LQ$(10) = "    "
2045  LQ$(11) = "    THE BASIC FORMULA USED IS: (BCP = BASE CROP PRICE ETC.)"
2050  LQ$(12) = "(BCP * BCY) -BCEXP = (CCP * CCY) -CCEXP"
2055  LQ$ (13) = "WHICH IS SOLVED FOR EITHER CCP OR CCY WHEN THE OTHER IS GIVEN AS IS VARIOUS "
2060  LQ$(14) = "LEVELS OF BCP AND BCY."
2061  PRINT : IF S9 = 4 THEN 2072
2063  LQ$(15) = "    "
2065  LQ$(16) = "    A TRIAL RUN WILL ILLUSTRATE THE APPROACH. A LISTING OF THE INPUT FORM WILL"
2070  LQ$(17) =  "PROVIDE FURTHER INPUT INSTRUCTIONS."
2072  LQ$(18) = "    "
2075  LQ$(19) = "THE USER SHOULD ALSO NOTE THAT EACH BASE CROP ANALYSIS ENDS WITH A NOTE:"
2080  LQ$(20) = "THIS ANALYSIS ASSUMES ENOUGH MACHINERY & TIME TO GROW EITHER CROP "
2085  LQ$(21) = "WITHOUT ADVERSE EFFECTS DUE TO MONO-CULTURE, ROTATION, PESTS, ETC."
2100 FOR I = I1 TO 21
2110 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 2140
2120 PRINT LQ$(I) : IF PR$ = "Y" THEN LPRINT LQ(I)
2140 NEXT I
2200 PRINT : GOSUB 49007 : GOSUB 38
2290  RETURN
2295  REM  ----------------------------------------
2400  REM      INPUT 8 SPECIAL MESSAGE PROCEDURE-SUB
2440  REM    END SUB
2500  REM   PROCEDURE TO REMIND USER OF BASIC ASSUMPTIONS
2507  REM
2530  IF PQ$ <  > "Y" THEN  GOSUB 39440
2535  RETURN
2540  REM  ---------------------------------
4568 O REM LOCATE 10,5
39400  REM   SUBS TO TOGGLE PRINTER
39410  IF PR$ <  > "Y" THEN  RETURN
39420  LOCATE 20,20 :PRINT "TURN PRINTER ON & PRESS ANY KEY ";: Z$ = INPUT$(1) : IF Z$ < > "" THEN RETURN
39425  GOTO 39420
39440 REM PRINT "THE PRINTER IS NOT BEING USED ?" : RETURN
39450  REM   ---------------------------------------
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39485 RETURN
39490  REM  ----------------------------------------
39560  REM   END PROCEDURE TO USE ? PRINTER
39570  REM
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN GOTO 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": GOSUB 46010
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 2002
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 2002
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46148  GOTO 46010
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   11/10/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   11/10/83              IBM - PC    !"
47350  PRINT SPC(20)"!      BEST CROP; A GROSS MARGIN      !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!   SENSITIVITY ANALYSIS TO VARIOUS   !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"!     POSSIBLE PRICES AND YIELDS      !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   11/10/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   11/10/83              IBM - PC    !"
48310  LPRINT "!      BEST CROP; A GROSS MARGIN      !"
48320  LPRINT "!                                     !"
48330  LPRINT "!   SENSITIVITY ANALYSIS TO VARIOUS   !"
48340  LPRINT "!                                     !"
48350  LPRINT "!     POSSIBLE PRICES AND YIELDS      !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50:GOSUB 49007:RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "BEST CROP TO GROW SELECTION BASED UPON COMPARATIVE GROSS MARGINS."
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149  REM   K2 = NO OF QUESTIONS
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);"  __________    ___________    ___________"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 9 GOTO 50200
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50120,50180,50140,50200
50108  GOTO 50300
50110  LQ$ = "Selected base or defender crop name (corn in the cornbelt?)."
50119  GOTO 50300
50120  LQ$ = "Bushel, ton, pound, cwt. bale, etc. (spell the unit of yield out)."
50129  GOTO 50300
50130  LQ$ = "The expected base crop yield in terms of units of yield / acre."
50139  GOTO 50300
50140  LQ$ = "The projected or planning (at harvest?) crop value as $ /unit of crop yield"
50149  GOTO 50300
50150  LQ$ = "the cash expense to grow an acre of the base crop - escaped if not grown."
50159  GOTO 50300
50160  LQ$ = "The name of the competing or challenger crop to be compared with the base crop"
50169  GOTO 50300
50180  LQ$ = "The estimated (expected) crop yield in terms of units of yield /acre."
50189  GOTO 50300
50200  LQ$ = "Exclude any overhead costs like land rent not affected by the crops grown."
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN

DATECALC.BAS

34000  REM  DEC 28/1983
34010  CLS : PRINT "PROJECTED CALENDAR DATES & CALENDARS"
34020  PRINT : PRINT " 0 = RETURN TO THE DISK MAIN MENU"
34030  PRINT " 1 = PROJECT A DATE GIVEN NO. OF DAYS"
34040  PRINT " 2 = PRINT OR LIST A MONTHLY CALENDAR"
34050  PRINT " WHICH OPTION ";: INPUT K2
34060  IF K2 = 0 THEN  CHAIN "MENU"
34070  IF K2 = 1 THEN 37000 : IF K2 = 2 THEN 35000
34071  IF K2 > 2 THEN COLOR 0,7
34072  PRINT : PRINT
34075  IF K2>2 THEN PRINT "OPTION NUMBER SHOULD BE A (0,1, OR 2)":COLOR 7,0:PRINT:PRINT:IF K2>2 THEN 34020
35000  REM
35010  CLS
35030  CLEAR : PRINT
35040  DIM A(12),R$(12)
35050 K = 0
35060  FOR I = 1 TO 12: READ A(I): NEXT I
35070  FOR I = 1 TO 12: READ R$(I): NEXT I
35080  LOCATE 4,1
35090  INPUT "HOW MANY MONTHS WOULD YOU LIKE LISTED";N
35100  IF N = 1 THEN  PRINT "TYPE THE MONTH NUMBER"
35105  IF N > 1 THEN  PRINT "TYPE THE NUMBER OF THE MONTH TO START WITH."
35110 GOTO 35112
35112 INPUT "(1 = JANUARY.....6 = JUNE .....12 = DECEMBER ETC.)";M
35115 IF M>12 THEN 35117: IF M<1 THEN 35117
35116 GOTO 35119
35117 COLOR 0,7:PRINT:PRINT"THE NUMBER OF THE MONTH MUST BE (1 TO 12) PLEASE RE-ENTER":COLOR 7,0
35119 PRINT:IF M>12 THEN 35105: IF M<1 THEN 35105
35120 PRINT "ENTER YEAR...(IF YEAR IS IN THE 1900'S, THEN ENTERRING THE LAST TWO DIGITS WILL SUFFICE.)";
35121 INPUT Y: IF Y < 100 THEN Y = 1900 + Y
35130 PRINT:PRINT"WOULD YOU LIKE OUTPUT ON THE SCREEN OR THE PRINTER (S/P)";:INPUT S$ : K2$ = S$ : GOSUB 60400 : S$ = K2$
35132 IF S$ ="P" THEN SW = 1:LPRINT: GOTO 35170
35140  IF S$ <  > "S" THEN 35130
35150 SW = 0
35160  CLS : LOCATE 4,1
35170 MZ = M - 2:YZ = Y
35180  IF SW = 1 THEN 35210
35190 K = K + 1: IF K > 13 THEN K = 2
35200  IF K = 3 OR K = 5 OR K = 7 OR K = 9 OR K = 11 OR K = 13 THEN  PRINT :LOCATE 21,30: PRINT "HIT ANY KEY TO CONTINUE":X$=INPUT$(1):CLS:LOCATE 4,30
35210  IF M = 1 THEN MZ = 11:YZ = Y - 1
35220  IF M = 2 THEN MZ = 12:YZ = Y - 1
35230  REM ...FIND STARTING DAY-OF-WEEK
35240 CZ =  INT (YZ / 100 + 0.005):YZ = YZ - 100 * CZ:DM = 1
35250 D1 =  INT (2.6 * MZ) + DM + YZ
35257 IF MZ=10 THEN D1 = D1 -1
35258 IF MZ=5 THEN D1 = D1 -1
35260 D1 = D1 +  INT (YZ / 4 + 0.1) +  INT (CZ / 4 + 0.1) - 2 * CZ
35270 DW = D1 - 7 *  INT (D1 / 7 + 0.01) + 1
35280  IF SW = 0 THEN LOCATE  ,30 : GOTO 35420
35290 M = M + 1: IF M > 12.5 THEN M = 1:Y = Y + 1
35300 N = N - 1
35310 MZ = M - 2:YZ = Y
35320  IF M = 1 THEN MZ = 11:YZ = Y - 1
35330  IF M = 2 THEN MZ = 12:YZ = Y - 1
35340 K = K + 1:CZ =  INT (YZ / 100 + 0.005):YZ = YZ - 100 * CZ:DM = 1
35350 D2 =  INT (2.6 * MZ) + DM + YZ
35357  IF MZ=10 THEN D2 = D2 -1
35358  IF MZ=5 THEN D2 = D2 -1
35360 D2 = D2 +  INT (YZ / 4 + 0.1) +  INT (CZ / 4 + 0.1) - 2 * CZ
35370 DX = D2 - 7 *  INT (D2 / 7 + 0.01) + 1
35380  REM ...PRINT HEADER
35390 M2 = M: IF M2 = 1 THEN M2 = 13
35400 Y2 = Y: IF M2 > M THEN Y2 = Y - 1
35403  LPRINT R$(M2 - 1);: LPRINT " ";: LPRINT Y2;: LPRINT " ";: LPRINT "***",: LOCATE ,30
35405  LPRINT R$(M);: LPRINT " ";Y;" ***"
35407  LPRINT " S  M  T  W  T  F  S ",
35408  LOCATE ,30: LPRINT " S  M  T  W  T  F  S "
35409  GOTO 35450
35410  PRINT R$(M2 - 1);: PRINT " ";: PRINT Y2;: PRINT " ";: PRINT "***";: LOCATE ,24
35420  PRINT R$(M);: PRINT " ";Y;" ***"
35425 IF S$="S" THEN LOCATE ,30
35430  PRINT " S  M  T  W  T  F  S ";: IF SW = 0 THEN  PRINT : GOTO 35460
35440  LOCATE ,24: REM PRINT " S  M  T  W  T  F  S "
35450  REM ...BUILD FIRST DATE-LINE & PRINT
35460 L$ = "":D1 = DW - 0.5: IF SW = 0 THEN 35480
35470 L2$ = "":D2 = DX - 0.5
35480  FOR I = 1 TO 7
35490 DT = I - DW + 1
35500  IF I < D1 THEN L$ = L$ + "  "
35510  IF I > D1 THEN L$ = L$ + " " +  CHR$ (48 + DT)
35520  IF I < 6.5 THEN L$ = L$ + " "
35530  NEXT I
35540  IF SW = 0 THEN 35605
35550  FOR I = 1 TO 7
35560 DU = I - DX + 1
35570  IF I < D2 THEN L2$ = L2$ + "  "
35580  IF I > D2 THEN L2$ = L2$ + " " +  CHR$ (48 + DU)
35590  IF I < 6.5 THEN L2$ = L2$ + " "
35600  NEXT I
35601  LPRINT L$,
35602  LOCATE ,30: LPRINT L2$
35603  GOTO 35630
35605  IF S$="S" THEN LOCATE ,30
35610  PRINT L$;: IF SW = 0 THEN  PRINT : GOTO 35630
35620  LOCATE ,24: PRINT L2$
35630  REM ...CHECK FOR LEAP-YEAR
35640 C =  INT (Y / 100 + 0.005):YC = Y - 100 * C
35650 A(2) = 28
35660  IF YC = 4 *  INT (YC / 4 + 0.1) THEN A(2) = 29
35670  IF YC < 0.5 THEN A(2) = 28
35680  IF YC < 0.5 AND C = 4 *  INT (C / 4 + 0.1) THEN A(2) = 29
35690  REM ...BUILD REMAINING DATE-LINES AND PRINT
35700 EN = 0
35710 EO = 0
35720 L$ = "":L2$ = ""
35730  FOR I = 1 TO 7
35740 DT = DT + 1: IF SW = 0 THEN 35770
35745 A(0) = 31
35750  IF DT > A(M - 1) + 0.5 THEN EN = 1: GOTO 35862
35760  IF SW = 1 THEN 35780
35770  IF DT > A(M) + 0.5 THEN EN = 1: GOTO 35945
35780 D1 =  INT (DT / 10 + 0.05):D2 = DT - 10 * D1
35790  IF D1 < 0.5 THEN L$ = L$ + " "
35800  IF D1 > 0.5 THEN L$ = L$ +  CHR$ (48 + D1)
35810 L$ = L$ +  CHR$ (48 + D2)
35820  IF I < 6.5 THEN L$ = L$ + " "
35830  NEXT I
35840  IF SW = 0 THEN 35945
35850 L2$ = ""
35860  IF EN > 0.5 THEN L$ = ""
35862 IF LEN(L$) = 20 THEN 35870
35864 FOR I = LEN(L$) TO 19
35866 L$ = L$ + " "
35868 NEXT I
35870  FOR I = 1 TO 7
35880 DU = DU + 1: IF DU > A(M) + 0.5 THEN EO = 1: GOTO 35945]
35890 D2 =  INT (DU / 10 + 0.05):D4 = DU - 10 * D2
35900  IF D2 < 0.5 THEN L2$ = L2$ + " "
35910  IF D2 > 0.5 THEN L2$ = L2$ +  CHR$ (48 + D2)
35920 L2$ = L2$ +  CHR$ (48 + D4)
35930  IF I < 6.5 THEN L2$ = L2$ + " "
35940  NEXT I
35941  LPRINT L$;SPC(8);L2$
35942  REM LPRINT L2$
35943  GOTO 35970
35945 IF S$="S" THEN LOCATE ,30
35947 IF SW = 1 THEN 35941
35950  PRINT L$;: IF SW = 0 THEN  PRINT : GOTO 35970
35960  LOCATE ,24: PRINT L2$
35970  IF EN < 0.5 THEN 35720
35980  IF SW = 0 THEN 36000
35990  IF EO < 0.5 THEN 35850
36000  PRINT " "
36010  REM ...DO IT AGAIN FOR NEXT MONTH
36020 M = M + 1: IF M > 12.5 THEN M = 1:Y = Y + 1
36030 N = N - 1: IF N > 0.5 THEN 35170
36032 IF S$<>"S" THEN 36040
36033 PRINT: LOCATE ,30
36035 PRINT "HIT ANY KEY TO CONTINUE";:X$=INPUT$(1)
36040  LOCATE 22,1: GOTO 34010
36050  DATA  31,28,31,30,31,30,31,31,30,31,30,31
36060  DATA    "*** JANUARY","** FEBRUARY","***** MARCH","***** APRIL"
36070  DATA  "******  MAY","****** JUNE"            ,****** JULY
36080  DATA   "**** AUGUST","* SEPTEMBER","*** OCTOBER","** NOVEMBER","** DECEMBER"
36100  GOTO 34010
37000  REM  START  DATE CALCULATOR PROCEDURE
37100  CLS
37110  GOSUB 38450
37120  REM
37130  CLEAR
37135  DIM W$(7),M$(12)
37140 M$(1) = "JANUARY"
37150 M$(2) = "FEBUARY"
37160 M$(3) = "MARCH"
37170 M$(4) = "APRIL"
37180 M$(5) = "MAY"
37190 M$(6) = "JUNE"
37200 M$(7) = "JULY"
37210 M$(8) = "AUGUST"
37220 M$(9) = "SEPEMBER"
37230 M$(10) = "OCTOBER"
37240 M$(11) = "NOVEMBER"
37250 M$(12) = "DECEMBER"
37260  GOTO 37420
37270  REM   ---------------------------------
37280  REM    PROCEDURE TO CALCULATE DATE FROM NO OF DAYS.
37290  IF FLAG < 0 THEN 37330
37300  GOSUB 38300
37310  IF Y < 100 THEN Y = 1900 + Y
37320  GOTO 37350
37330 M = FM:D = FD:Y = FY
37340  REM
37350 A = Y - (M < 3)
37360 MD = Y -  INT (Y / 58)
37370 N = MD * 365 - Y / 58 * 82 + A / 4 - A / 400 + M * 31 - M / 12 - M / 7 - M / 5 - 3 * (M > 2) + D
37380  IF N < 0 THEN N = N + 21252
37390  RETURN
37400  REM   END PROCEDURE SUB --------------
37410  REM
37420  REM
37430 W$(1) = "SUNDAY"
37440 W$(2) = "MONDAY"
37450 W$(3) = "TUESDAY"
37460 W$(4) = "WEDNESDAY"
37470 W$(5) = "THURSDAY"
37480 W$(6) = "FRIDAY"
37490 W$(7) = "SATURDAY"
37500  REM
37510  PRINT : PRINT "CALENDAR"
37520 FLAG = 1
37530  PRINT N$: PRINT "TYPE START DATE AS 'MM/DD/YY'";
37540  GOSUB 37290: PRINT
37550  REM
37560 BN = N:BD = D:BM = M:BY = Y
37570  REM    ..??WHY SWAP VALUES???
37580 N = BN:D = BD:M = BM:Y = BY: PRINT "STARTING DATE ";M;"/";D;"/";Y;: PRINT :N1 = N
37590  PRINT : PRINT "DAY OF THE WEEK; SUNDAY = 1..MONDAY = 2...SATURDAY = 7...WHICH";: INPUT WD
37600  IF WD < 1 OR WD > 7 THEN 37590
37610 WD = WD - 1: IF WD < 1 THEN WD = 7
37620  PRINT : PRINT "NO. OF DAYS TO TARGET TIME ";
37630  INPUT DP
37640 INC = 1: REM  INC IMPLIES DAILY RESULTS
37650 WK =  INT (DP / 7)
37660 WT = DP - (WK * 7) + WD
37670  IF WT > 7 THEN WT = WT - 7
37680 MOS =  INT (DP / 30)
37690 SP = (WK - 1) * 7
37700 N = DP:DP = DP + 7
37710  REM
37715 CLS
37720  PRINT "CALENDAR DATES PROJECTED ";SP;" TO ";DP;" DAYS"
37730  PRINT
37740  PRINT : PRINT "STARTING ON A ";W$(WD)
37750  FOR Z = 1 TO DP STEP INC
37760  FOR Z = 1 TO DP STEP INC
37770  IF D < CD + 1 THEN 37850
37780 D = D - CD:M = M + 1: IF M < 13 THEN 37800
37790 M = 1
37800  GOSUB 38060
37810  IF M = 1 THEN Y = Y + 1:MFLAG = 1
37820  IF (MOS * 30) > Z THEN 37850
37830  PRINT : PRINT M$(M);" OF ";Y
37840  PRINT
37850  IF Z < SP THEN 37900
37860  PRINT " ";D;: IF D < 10 THEN  PRINT " ";
37870  IF N <  > Z THEN 37900
37880 COLOR 0,7: PRINT : PRINT : PRINT W$(WT);", ";M$(M);" ";D;" ";Y;" IS THE TARGET DATE; THE ";N;" TH DAY.":COLOR 7,0
37890  PRINT
37900 D = D + INC: NEXT Z : NEXT Z: PRINT
37910  PRINT:LOCATE 23,1
37920  PRINT "TRY AGAIN ? (Y OR N OR HELP) ";: INPUT B$ : B$ = LEFT$(B$,1) :K2$ = B$ : GOSUB 60400 : B$ = K2$
37930  IF  LEN (B$) = 0 THEN 37920
37940  IF  LEFT$ (B$,1) = "H" THEN  GOSUB 38450
37950  IF  LEFT$ (B$,1) = "N" THEN 37980
37960  REM
37970  GOTO 37510
37980  GOTO 34010
37990  REM   ADVANCE TO NEXT MONTH
38000 FY = Y:FM = M:FD = 1
38010 M = M + 1: IF M < 13 THEN 38040
38020 M = 1:Y = Y + 1
38030  REM
38040 FLAG = 1: GOTO 37580
38050  REM    PROCEDURE TO ADJUST FOR DAYS IN MONTH * *
38060 CD = 31
38070  IF M = 2 GOTO 38100
38080  IF (M = 4) OR (M = 6) OR (M = 9) OR (M = 11) THEN CD = 30
38090  GOTO 38130
38100 CD = 28
38110  IF (M / 100) = ( INT (M / 100)) THEN 38130
38120  IF (M / 4) = ( INT (M / 4)) THEN CD = 29
38130  RETURN
38140  GOTO 37420
38150  REM  ---------------------------------
38160  REM    CALC STRING VALUES PROCEDURE SUB
38170 NUM = 0:SIGN = 0: IF  LEN (IN$) = 0 THEN  RETURN
38180 SIGN = 1:L$ = "":C$ = ""
38190 L$ = L$ + C$
38200 C$ =  LEFT$ (IN$,1)
38210  IF  ASC (C$) < 48 OR  ASC (C$) > 57 THEN 38260
38220 C$ = L$ + C$
38230 NUM =  VAL (C$)
38240 IN$ =  MID$ (IN$,2,( LEN (IN$) - 1))
38250  GOTO 38190
38260 IN$ =  MID$ (IN$,2,( LEN (IN$) - 1))
38270  RETURN
38280  REM  ---------------------------------
38290  REM     DATE INPUT PROCEDURE SUB
38300 REM
38310  GOTO 38330
38320  PRINT " DATA NOT UNDERSTOOD MO =?";M;" DAY =? ";D;" YEAR =? ";Y;" ...RE-ENTER.."
38330  REM
38333 M=0:D=0
38334 INPUT IN$
38335 IF LEN(IN$)=0 THEN 38320
38340 IN$ =  LEFT$ (IN$,10) + "QUIT"
38350  GOSUB 38160: IF SIGN < 1 THEN 38320
38360 M = NUM
38370  IF M < 1 OR M > 12 THEN 38320
38380  GOSUB 38160: IF SIGN < 1 THEN 38320
38390 D = NUM
38400  IF D < 1 THEN 38320
38410  GOSUB 38160: IF SIGN < 1 THEN 38320
38415  IF NUM > 3000 THEN NUM = NUM - ( INT (NUM / 10000) * 10000)
38420 Y = NUM
38430  IF (Y > 0 AND Y < 100) OR (Y > 1899 AND Y < 2999) THEN 38440: GOTO 38320
38440  GOSUB 38060: IF D > CD THEN 38320: RETURN
38450  REM   PROCEDURE TO PRINT EXPECTED         GESTATION PERIODS
38455 CLS
38460  PRINT
38470  PRINT "EXPECTED GESTATION INTERVAL BY SPECIES"
38480  PRINT "BREEDING TO BIRTH    ESTRUS CYCLE"
38490  PRINT "--------------------------------------"
38500  PRINT
38510  PRINT "CATTLE....283 DAYS"
38520  REM
38530  PRINT "HORSES....340 DAYS"
38540  REM
38550  PRINT "SHEEP.....148 DAYS"
38560  REM
38570  PRINT "SWINE.....114 DAYS"
38580  REM
38590  RETURN
38600  REM   TABLE PROCEDURAL SUB ENDS
38610  REM  END DATE PROJECTION PROCEDURE
42903 K2$ = Z$ : GOSUB 60400 : Z$ = K2$
60400 I% = ASC(K2$)
60410 IF I% > 96 AND I% < 123 THEN K2$ = CHR$(I%-32)
60420 RETURN
60500 LOCATE 13,1
60510 GOSUB 51: PRINT"   FOR A HARDCOPY OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc *'.  FOR A HARDCOPY OF EVERYTHING WHICH APPEARS ON THE SCREEN PRESS 'Ctrl' AND 'PrtSc *'.":GOSUB 50:GOSUB 49000:RETURN

DRYSTORE.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF COMBINED GRAIN DRYSTORE STORECOSTS 03/16/84. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70 DIM QQ$(20),LQ$(10),A(4),E(12,4),F(12,4)
80  GOSUB 1000
90  GOSUB 47300
100  GOSUB 46000
200 GOSUB 1240
210 GOSUB 38
300 S1 = S2*0.01 : D1 = D2 * 0.01 : R1 = 2 * 0.01
480  IF O4 > C4 GOTO 495
490 C3 = O4
492  GOTO 500
495 C3 = C4
500 A2 = (O4 - C3) * O7
510  IF A2 > 0 GOTO 530
520 A2 = 0
530 A1 = O6 + A2 + O8 * (C3 - O5)
535 B2 = (O4 - O5) * I2 * 0.01
540 B1 = B2 * O1
550 C1 = O1 * O2 / 1200 * O3
560 C6 = O3 - 3
570  IF C6 > 0 GOTO 590
580 C6 = 0
590 D1 = I0 + I1 * C6
600  REM   E1=A1+B1+C1+D1
605  REM   E2=E1+O1
610 E = O1 * (O4 - O5) * O9 * 0.01
620  REM   A=A1+B1-E/(1-(B1/O1))
622 G1 = A1 + B1
623 G = O1 - G1
625 F = O1 - E
630  REM   B=I3-E1
632 A3 = (O5 - I8) * O8
636 B4 = (O5 - I8) * I2 * 0.01 + D1 + S1*O3
638 B3 = B4 * O1
642 H2 = A3 + B3 + C1
644 H1 = G1 + H2
645 B = I3 - H1
646 C = I4 - H1
647 E1 = G + D1
648 E2 = G + H1 + D1
649  PRINT
650 D = I5 - I6 - I7 - H1
655 GOSUB 38
660  IF E <  = 0! THEN 680
665  PRINT "MOISTURE DISCOUNT IF SOLD WET.....................$/BU", INT (E * 1000) / 1000
670  PRINT "NET PRICE FROM SELLING WET AT HARVEST.............$/BU", INT (F * 1000) / 1000
675  PRINT
680  IF A1 <  = 0! THEN 705
685  PRINT "DRYING COST TO DRY TO MARKET REQUIREMENTS ........$/BU", INT (A1 * 1000) / 1000
690  PRINT "SHRINKAGE COST DUE TO DRYING FOR HARVEST SALE ....$/BU", INT (B1 * 1000) / 1000
695 A$ = "(HARVEST TO MARKET MOISTURE SHRINKAGE = "
700  PRINT A$;B4 * 100;" PERCENT)"
705  PRINT USING "NET PRICE SOLD @ HARVEST @ ##.#% MOISTURE ........$/BU ###.###";O5;G
710  PRINT
715  IF A3 <  = 0! THEN 740
720  PRINT "ADDED DRYING COST DUE TO STORAGE & DRY SALE ......$/BU", INT (A3 * 1000) / 1000
725  PRINT "SHRINKAGE COST DUE TO STORAGE & HANDLING .........$/BU", INT (B3 * 1000) / 1000
730 A$ = "(POST HARVEST STORAGE SHRINKAGE = "
735  PRINT A$;B4 * 100;" PERCENT)"
740  PRINT "OPPORTUNITY INTEREST COST IF STORED...............$/BU", INT (C1 * 1000) / 1000
745  PRINT USING "TOTAL DRYING + SHRINK + INTEREST TO STORE ## MOS..$/BU ###.###";O3;H2
750  PRINT
755  PRINT "NET PRICE FROM STORING & LATER PRICING CASH.......$/BU", INT (B * 1000) / 1000
760  PRINT "NET PRICE FROM STORING & CONTRACTING..............$/BU", INT (C * 1000) / 1000
765  PRINT "NET PRICE FROM STORING & HEDGING ON FUTURES.......$/BU", INT (D * 1000) / 1000
770  PRINT
775  PRINT "STORAGE COST IF STORED COMERCIALLY................$/BU", INT (D1 * 1000) / 1000
780  PRINT "HARVEST PRICE + TOTAL COM'L STORAGE COSTS.........$/BU", INT (E1 * 1000) / 1000
785  PRINT
790 GOSUB 49007
792 PRINT
794 GOSUB 4010
796 IF PR$ = "Y" THEN GOSUB 860
800  GOTO 100
860 REM ----------BEGIN PRINTED RESULTS SUB ------------------
865 LPRINT "MOISTURE DISCOUNT IF SOLD WET.....................$/BU", INT (E * 1000) / 1000
870 LPRINT "NET PRICE FROM SELLING WET AT HARVEST.............$/BU", INT (F * 1000) / 1000
875 LPRINT
880  IF A1 <  = 0! THEN 905
885 LPRINT "DRYING COST TO DRY TO MARKET REQUIREMENTS ........$/BU", INT (A1 * 1000) / 1000
890 LPRINT "SHRINKAGE COST DUE TO DRYING FOR HARVEST SALE ....$/BU", INT (B1 * 1000) / 1000
895 A$ = "(HARVEST TO MARKET MOISTURE SHRINKAGE = "
900 LPRINT A$;B4 * 100;" PERCENT)"
905 LPRINT USING "NET PRICE SOLD @ HARVEST @ ##.#% MOISTURE ........$/BU ###.###";O5;G
910 LPRINT
915  IF A3 <  = 0! THEN 940
920 LPRINT "ADDED DRYING COST DUE TO STORAGE & DRY SALE ......$/BU", INT (A3 * 1000) / 1000
925 LPRINT "SHRINKAGE COST DUE TO STORAGE & HANDLING .........$/BU", INT (B3 * 1000) / 1000
930 A$ = "(POST HARVEST STORAGE SHRINKAGE = "
935 LPRINT A$;B4 * 100;" " PERCENT)"
940 LPRINT "OPPORTUNITY INTEREST COST IF STORED...............$/BU", INT (C1 * 1000) / 1000
945 LPRINT USING "TOTAL DRYING + SHRINK + INTEREST TO STORE ## MOS..$/BU ###.###";O3;H2
950 LPRINT
955 LPRINT "NET PRICE FROM STORING & LATER PRICING CASH.......$/BU", INT (B * 1000) / 1000
960 LPRINT "NET PRICE FROM STORING & CONTRACTING..............$/BU", INT (C * 1000) / 1000
965 LPRINT "NET PRICE FROM STORING & HEDGING ON FUTURES.......$/BU", INT (D * 1000) / 1000
970 LPRINT
975 LPRINT "STORAGE COST IF STORED COMERCIALLY................$/BU", INT (D1 * 1000) / 1000
980 LPRINT "HARVEST PRICE + TOTAL COM'L STORAGE COSTS.........$/BU", INT (E1 * 1000) / 1000
985 LPRINT
990 RETURN
995 REM ------------- END PRINTED RESULTS SUB -----------------
1000  REM
1010  REM  TO AVOID RE-DIMENSIONING ERRORS, DIM DECLARATIONS SHOULD BE MOVED TO THE 'TOP' OF THE PROGRAM
1020 K2 = 18:CH = 64
1030  REM  DEFAULT DATA VALUES FOR THIS INPUT SECTION
1040 O1 =2.6 :QQ$(1) = "NET AT FARM FOB PRICE FOR HARVEST DELIVERY $ / BU... "
1050 I2 = 0.5  :QQ$(2) = "PERCENT SHRINK IN BUSHELS PER POINT MOISTURE REMOVED "
1060 O4 = 23  :QQ$(3) = "AVERAGE GRAIN MOISTURE CONTENT AT HARVEST TIME... %. "
1070 O5 = 15.5:QQ$(4) = "MOISTURE CONTENT ALLOWED BY TERMS OF SALE ........%. "
1080 O9 = 2   :QQ$(5) = "DISCOUNT / POINT MOISTURE OVER XX.X% CONTENT (CENTS) "
1090 O6 = 0.06: QQ$(6) = "BASE DRYING CHARGE COMMERICALLY ................$/BU "
1100 O7 = 0.015:QQ$(7) = "DRYING CHARGE RATE / POINT OVER 25% .........$/BU/PT "
1110 O8 = 0.01: QQ$(8) = "DRYING CHARGE RATE / POINT FOR UNDER 25% ..$/BU./PT. "
1120 O3 = 8.08:QQ$(9) = "IF STORED, THE NO. OF MONTHS GRAIN WILL BE STORED .. "
1130 IO = 0.015:QQ$(10)= "COMMERCIAL BASE STORAGE CHARGE FOR 1ST 3 MO'S..$/BU. "
1140 I1 = 0.015:QQ$(11)= "COMMERCIAL STORAGE CHARGE AFTER 3 MOS / BU / MONTH $ "
1150 I8 = 13.5:QQ$(12)= "MAXIMUM MOISTURE CONTENT FOR SAFE STORAGE .........% "
1160 O2 = 15 :QQ$(13) = "ALTERNATIVE USE OF FUNDS OPPORTUNITY INTEREST RATE % "
1170 I3 = 2.43:QQ$(14)= "ESTIMATED CASH MARKET PRICE IF CROP IS STORED  $/BU. "
1180 I4 = 2.4:QQ$(15) = "CURRENT CONTRACT PRICE QUOTATION ..............$/BU. "
1185 I5 = 2.65:QQ$(16)= "CURRENT COMPARABLE FUTURES PRICE QUOTE ........$/BU. "
1190 I6 = 0.3: QQ$(17) = "ESTIMATED BASIS WHEN HEDGE IS TO BE LIFTED ....$/BU. "
1195 I7 = 0.02:QQ$(18) = "PRORATED FUTURES TRANSACTION CHARGES ..........$/BU. "
1200 D2 = 1.5:QQ$(19) = "PERCENT GRAIN DAMAGE (LOSS) IN & OUT OF STORAGE .(%) "
1210 S2 = 0.001:QQ$(20) = "PERCENT STORAGE LOSS / MONTH KEPT IN STORAGE ....(%) "
1215  RETURN
1220 REM ----END INPUT SETUP & BEGIN DATA ENTRY SUBS ----------------------
1230  REM  GOSUB 49100 TO PRINT A INPUT FORM ON PAPER.  (K2 = NO. OF QUESTIONS)
1240 GOSUB 38
1250  LOCATE,21:GOSUB 51:PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
1260  GOSUB 50
1270  GOSUB 39
1280  PRINT SPC(10);QQ$(1);O1
1290  PRINT SPC(10);QQ$(2);I2
1300  PRINT SPC(10);QQ$(3);O4
1310  PRINT SPC(10);QQ$(4);O5
1320  PRINT SPC(10);QQ$(5);O9;
1325 IF S9 <> 4 THEN PRINT ELSE LOCATE ,42 : PRINT USING "##.#% CONTENT (CENTS) ";O5
1330  PRINT SPC(10);QQ$(6);O6
1340  PRINT SPC(10);QQ$(7);O7
1350  PRINT SPC(10);QQ$(8);O8
1360  PRINT SPC(10);QQ$(9);O3
1370  PRINT SPC(10);QQ$(10);IO
1380  PRINT SPC(10);QQ$(11);I1
1390  PRINT SPC(10);QQ$(12);I8
1400  PRINT SPC(10);QQ$(13);O2
1410  PRINT SPC(10);QQ$(14);I3
1420  PRINT SPC(10);QQ$(15);I4
1430  PRINT SPC(10);QQ$(16);I5
1440  PRINT SPC(10);QQ$(17);I6
1450  PRINT SPC(10);QQ$(18);I7
1452  PRINT SPC(10);QQ$(19);D2
1454  PRINT SPC(10);QQ$(20);S2
1455  IF S9 = 4 THEN  GOSUB 49000 : RETURN
1460  GOSUB 41: GOSUB 49910
1468  GOSUB 40210
1470 LQ = 1:LN = 1: GOSUB 40
1480  GOSUB 40000: IF ZN$ <  > "" THEN O1 = ZN
1490 LO = 1:HI = 10
1500  IF O1 < LO OR O1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1470
1510  GOSUB 40210
1520 LQ = 2:LN = 2: GOSUB 40
1530  GOSUB 40000: IF ZN$ <  > "" THEN I2 = ZN
1540 LO = 0.05:HI = 0.5
1550  IF I2 < LO OR I2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1520
1560  GOSUB 40210
1570 LQ = 3:LN = 3: GOSUB 40
1580  GOSUB 40000: IF ZN$ <  > "" THEN O4 = ZN
1590 LO = 8:HI = 32
1600  IF O4 < LO OR O4 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1570
1610  GOSUB 40210
1620 LQ = 4:LN = 4: GOSUB 40
1630  GOSUB 40000: IF ZN$ <  > "" THEN O5 = ZN
1640 LO = 8:HI = 16
1650  IF O5 < LO OR O5 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1620
1660  GOSUB 40210
1670 LQ = 5:LN = 5: GOSUB 40
1675 LOCATE ,42 : PRINT USING "##.#% CONTENT (CENTS) ";O5;
1680  GOSUB 40000: IF ZN$ <  > "" THEN O9 = ZN
1690 LO = 0.5:HI = 3
1700  IF O9 < LO OR O9 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1670
1710  GOSUB 40210
1720 LQ = 6:LN = 6: GOSUB 40
1730  GOSUB 40000: IF ZN$ <  > "" THEN O6 = ZN
1740 LO = 0.02:HI = 0.09999999
1750  IF O6 < LO OR O6 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1720
1760  GOSUB 40210
1770 LQ = 7:LN = 7: GOSUB 40
1780  GOSUB 40000: IF ZN$ <  > "" THEN O7 = ZN
1790 LO = 0.005000001:HI = 0.05
1800  IF O7 < LO OR O7 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1770
1810  GOSUB 40210
1820 LQ = 8:LN = 8: GOSUB 40
1830  GOSUB 40000: IF ZN$ <  > "" THEN O8 = ZN
1840 LO = 0.005000001:HI = 0.05
1850  IF O8 < LO OR O8 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1820
1860  GOSUB 40210
1870 LQ = 9:LN = 9: GOSUB 40
1880  GOSUB 40000: IF ZN$ <  > "" THEN O3 = ZN
1890 LO = 4:HI = 36
1900  IF O3 < LO OR O3 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1870
1910  GOSUB 40210
1920 LQ = 10:LN = 10: GOSUB 40
1930  GOSUB 40000: IF ZN$ <  > "" THEN IO = ZN
1940 LO = 0.005000001:HI = 0.5
1950  IF IO < LO OR IO > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1920
1960  GOSUB 40210
1970 LQ = 11:LN = 11: GOSUB 40
1980  GOSUB 40000: IF ZN$ <  > "" THEN I1 = ZN
1990 LO = 0.005000001:HI = 0.05
2000  IF I1 < LO OR I1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1970
2010  GOSUB 40210
2020 LQ = 12:LN = 12: GOSUB 40
2030  GOSUB 40000: IF ZN$ <  > "" THEN I8 = ZN
2040 LO = 8:HI = 16
2050  IF I8 < LO OR I8 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2020
2060  GOSUB 40210
2070 LQ = 13:LN = 13: GOSUB 40
2080  GOSUB 40000: IF ZN$ <  > "" THEN O2 = ZN
2090 LO = 5:HI = 18
2100  IF O2 < LO OR O2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2070
2110  GOSUB 40210
2120 LQ = 14:LN = 14: GOSUB 40
2130  GOSUB 40000: IF ZN$ <  > "" THEN I3 = ZN
2140 LO = 1!:HI = 10
2150  IF I3 < LO OR I3 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2120
2160  GOSUB 40210
2170 LQ = 15:LN = 15: GOSUB 40
2180  GOSUB 40000: IF ZN$ <  > "" THEN I4 = ZN
2190 LO = 1!:HI = 10
2200  IF I4 < LO OR I4 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2170
2210  GOSUB 40210
2220 LQ = 16:LN = 16: GOSUB 40
2230  GOSUB 40000: IF ZN$ <  > "" THEN I5 = ZN
2240 LO = 1!:HI = 10
2250  IF I5 < LO OR I5 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2220
2260  GOSUB 40210
2270 LQ = 17:LN = 17: GOSUB 40
2275  GOSUB 40000: IF ZN$ <  > "" THEN I6 = ZN
2280 LO = 0!:HI = 0.75
2285  IF 16 < LO OR I6 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2270
2290  GOSUB 40210
2295 LQ = 18:LN = 18: GOSUB 40
2300  GOSUB 40000: IF ZN$ <  > "" THEN I7 = ZN
2305 LO = 0.01:HI = 0.05
2310  IF I7 < LO OR I7 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2295
2315 LQ = 19:LN = 19: GOSUB 40
2320  GOSUB 40000: IF ZN$ <  > "" THEN D2 = ZN
2325 LO = 0.05  :HI = 5
2330  IF D2 < LO OR D2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2315
2335  GOSUB 40210
2340 LQ = 20:LN = 20: GOSUB 40
2345  GOSUB 40000: IF ZN$ <  > "" THEN S2 = ZN
2350 LO = 0.01:HI = 2!
2355  IF S2 < LO OR S2 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 2340
2360  REM
2370  GOSUB 40210:CX = 1:CY = CV + LN + 2: GOSUB 42
2380  GOSUB 41 : GOSUB 51
2390  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR CTRL-Q = QUIT ENTIRE ANALYSIS";
2410  GOSUB 50 : PRINT " ";
2420 GOSUB 40610
2430 REM
2440  IF  Z$ = QE$ THEN 42900
2450  IF Z$ = "N" THEN CX = 1:CY = CY: GOSUB 42: GOSUB 45: GOTO 1468
2460  IF Z$ <  > "Y" THEN PRINT BL$ : GOTO 2370
2470  GOSUB 48700
2480 RETURN
2490 REM -----------------END DATA ENTRY --------------------
3000 REM -----INITIAL DESCRIPTION SUB ----------------------
3010 LQ$(1) = "    GRAINDRY evaluates the drying, pricing & storage profits potential"
3020 LQ$(2) = "of four marketing alternatives compared to delivering the crop wet at harvest."
3025 LQ$(3) = " "
3030 LQ$(4) = "The alternatives are (1) DELIVER (SELL) DRY AT HARVEST,"
3040 LQ$(5) = "                     (2) STORE AND PRICE LATER ON THE CASH MARKET,"
3050 LQ$(6) = "                     (3) STORE AND PRICE (HEDGE) BY CONTRACT AND"
3055 LQ$(7) = "                     (4) STORE AND HEDGE ON THE FUTURES MARKET."
3060 LQ$(8) = " "
3062 LQ$(9) = "   In addition it calculates a comparable grain storage cost table to"
3064 LQ$(10) = "assist in re-evaluating the initial assumptions of the proper time to store."
3066 GOSUB 38
3070 FOR I = 1 TO 10
3080 IF PQ$ = "Y" THEN LPRINT LQ$(I):GOTO 3100
3090 PRINT LQ$(I) : IF PR$ = "Y" THEN LPRINT LQ$(I)
3100 NEXT I
3110  PRINT : GOSUB 49000
3120 RETURN
3130 REM -----------END DESCRIPTION SUB --------------------------
4000 REM -----STORAGE COST TABLE CALC & SCREEN SUB -------------------
4010 REM
4020 REM
4030 REM
4040 A(2) = O1
4050 B = 0.25
4060 A(1) = A(2) - B
4070 A(3) = A(2) + B
4080 A(4) = A(2) + B * 2
4090 FOR I = 1 TO 10
4100 FOR J = 1 TO 4
4110 F(I,J) = D1 + S1 * I * A(J) * 100! + ((1+ R1) ^ I-1) * (A(J) * 100!)
4115 E(I,J) = A(J) + F(I,J)/100
4120 NEXT J
4130 NEXT I
4140 GOSUB 38
4150 PRINT "Expected Grain Value per Bushel at Storage Decision Time"
4160 PRINT
4170 PRINT"Handling + Storage Loss + Time Related Interest Costs Due to Holding The Grain"
4180 PRINT
4190 PRINT "        Value per Bushel in Dollars"
4200 PRINT USING "$/Bu.   ###.##    ###.##    ###.##    ###.##";A(1);A(2);A(3);A(4)
4210 PRINT
4220 PRINT "   On Farm Storage Cost By Months (in Cents / Bushel)"
4230 PRINT "Mo."
4240 FOR I = 1 TO 10
4250 PRINT USING "##      ###.##    ###.##    ###.##    ###.##";I;F(I,1);F(I,2);F(I,3);F(I,4)
4260 NEXT I
4270 PRINT
4280 GOSUB 49007
4290 PRINT
4300 PRINT "Required or Necessary Market Price by Months in Storage or by"
4310 PRINT "a Narrowing of the Basis in Order to Break Even by Storeing"
4320 PRINT
4330 PRINT "        Value per Bushel at the Time the Grain is Put Into Storage"
4340 PRINT USING "Mo.     ###.##    ###.##    ###.##    ###.##";A(1);A(2);A(3);A(4)
4350 PRINT
4360 FOR I = 1 TO 10
4400 PRINT USING "##      ###.##    ###.##    ###.##    ###.##";I;E(I,1);E(I,2);E(I,3);E(I,4)
4430 NEXT I
4440 PRINT
4450 PRINT " This Table assumes ";O2;"% Interest, Grain Damage of ";D2;" + ";S2;"% / Mo."
4460 GOSUB 49007
4470 IF PR$ = "Y" THEN GOSUB 4510
4480 RETURN
4490 REM ------------end grain storage cost screen sub -----------------
4500 REM ------------------
4510 REM --------BEGIN SUB TO PRINT STORAGE COST TABLE ----------
4550 LPRINT "Expected Grain Value per Bushel at Storage Decision Time"
4560 LPRINT
4570 LPRINT"Handling + Storage Loss + Time Related Interest Costs Due to Holding The Grain"
4580 LPRINT
4590 LPRINT "        Value per Bushel in Dollars"
4600 LPRINT USING "$/Bu.   ###.##    ###.##    ###.##    ###.##";A(1);A(2);A(3);A(4)
4610 LPRINT
4620 LPRINT "   On Farm Storage Cost By Months (in Cents / Bushel)"
4630 LPRINT "Mo."
4640 FOR I = 1 TO 10
4650 LPRINT USING "##      ###.##    ###.##    ###.##    ###.##";I;F(I,1);F(I,2);F(I,3);F(I,4)
4660 NEXT I
4670 LPRINT
4690 LPRINT
4700 LPRINT "Required or Necessary Market Price by Months in Storage or by"
4710 LPRINT "a Narrowing of the Basis in Order to Break Even by Storeing"
4720 LPRINT
4730 LPRINT "        Value per Bushel at the Time the Grain is Put Into Storage
4740 LPRINT USING "Mo.     ###.##    ###.##    ###.##    ###.##";A(1);A(2);A(3);A(4)
4750 LPRINT
4760 FOR I = 1 TO 10
4800 LPRINT USING "##      ###.##    ###.##    ###.##    ###.##";I;E(I,1);E(I,2);E(I,3);E(I,4)
4830 NEXT I
4840 LPRINT
4850 LPRINT " This Table assumes ";O2;"% Interest, Grain Damage of ";D2;" + ";S2;"% / Mo."
4860 RETURN
4870 REM -----END PRINT TABLE SUB ----------------
39450  REM   ---------------------------------------
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39485 RETURN
39490  REM  ----------------------------------------
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40400  REM   PROCEDURE TO PRINT LENGTH OF DATA PROMPT (REQUIRED OR MAXIMUM
40405  REM   PROPER USE REQUIRES POST GENBASIC CODING OF WL & FL'S
40410  PRINT  LEFT$ (SQ$,WL);
40420  IF FL > 0 THEN  PRINT "."; LEFT$ (SQ$,FL);
40430 CX = CH:CY = CV + LN: GOSUB 42
40440  RETURN
40450  REM   END PROCEDURAL SUB
40460  REM  ----------------------------------------
40500  REM    PROCEDURE TO VERIFY THE PROPER LENGTH OF CODED INPUT (ENTRY) * *
40510  IF  LEN (ZN$) = WL THEN  RETURN
40520  PRINT  CHR$ (7); CHR$ (7);
40530  GOSUB 41
40535  GOSUB 51
40537  PRINT "ENTRY IS CODED & MUST BE ";WL;" DIGITS LONG..RE-ENTER THE PROPER VALUE..."
40540  GOSUB 50
40541 CX = CH:CY = CV
40542  GOSUB 42: GOSUB 43
40550  GOSUB 40400
40560  GOSUB 40100
40570  GOTO 40010
40580  REM   END PROCEDURE
40590  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
41000 REM PROCEDURE TO COPY OVER A SEQUENTIAL FILE BEFORE ADDING DATA TO IT.
41010 ON ERROR GOTO 41900
41020 OPEN"I",#1,K$
41030 REM IF FILE EXISTS ,WRITE IT TI K1$
41040 OPEN "O",#2,K1$
41050 IF EOF(1) THEN 41090
41060 LINE INPUT #1,Z$
41070 PRINT #2,Z$
41080 GOTO 41050
41090 CLOSE#1
41100 REM WHEN TO KILL K$..BACKUP?
41110 RETURN
41200 REM ADD DATA TO #2
41300 REM CLOSE#2
41400 REM NAME K1$ AS K$ ?? HERE OR BEFORE CLOSE??
41900 REM CAPTURE NO FILE FOUND & START ONE AT THAT POINT
41910 IF ERR = 53 AND ERL =20 THEN OPEN"0",#2,K1$ : RESUME 41120
41920 ON ERROR GOTO 0
41930 REM----END FIE COPY PROCEDURE
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45565 PRINT : PRINT"DO NOT PANIC":PRINT "It is possible to recover from certain errors without losing any data.": PRINT "DO NOT EXIT FROM THIS PROGRAM.  Continue on for instructions."
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45675 LOCATE 7,5: PRINT"REMEDY/SUGGESTION:  ";RM$
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45677 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": GOSUB 46010
45684 RESUME 100
45685 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 3000
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 3000
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   10/22/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!  10/22/83                 IBM-PC    !"
47350  PRINT SPC(20)"!          GRAIN DRYSTORE             !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!  GRAIN DRYING AND STORAGE ANALYSIS  !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"! USING ALL UP TO DATE & CURRENT DATA !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   10/22/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   10/22/83              (IBM - PC)  !"
48310  LPRINT "!           GRAIN DRYSTORE            !"
48320  LPRINT "!                                     !"
48330  LPRINT "!  GRAIN DRYING AND STORAGE ANALYSIS  !"
48340  LPRINT "!                                     !"
48350  LPRINT "! USING ALL UP-TO-DATE & CURRENT DATA !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48750 REM*** CONVERTS INPUT OF LOWER CASE TO UPPER CASE
48755 IF K2$ = "" THEN RETURN
48760 I% = ASC(K2$)
48770 IF I% > 96 AND I% < 123 THEN K2$ = CHR$(I%-32)
48780 RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50:GOSUB 49007:RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$ = INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020 REM
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "?????? PUT A TITLE HERE"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149  K2 = 18
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 20 THEN 50300
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50170,50180,50190,50200,50210,50220,50230,50240,50250,50260,50270,50280,50290,50295
50108  GOTO 50300
50110  LQ$ = "The price, wet from the field at harvest time.  Recognizing hauling & delays?."
50119  GOTO 50300
50120  LQ$ = "Grain shrinks from .05% (wheat?) to .5% or more (corn?) per point H2O removed "
50129  GOTO 50300
50130  LQ$ = "Harvest usually does not start until 32%.  Some years it averages as low as 22%"
50139  GOTO 50300
50140  LQ$ = "12 to 13 % are common for small grains; 15.5% is standard for corn."
50149  GOTO 50300
50150  LQ$ = "Delivery point deduction per point moisture over that for the quoted price."
50159  GOTO 50300
50160  LQ$ = "A charge for handling & perhaps to cover overheads & profits?"
50169  GOTO 50300
50170  LQ$ = "More energy is involved in removing higher levels of moisture content in grain."
50179  GOTO 50300
50180  LQ$ = "The base energy etc drying charge for lower levels of moisture content."
50189  GOTO 50300
50190  LQ$ = "A marketing decision in itself.  Depends on outlook, odds, basis changes etc."
50199  GOTO 50300
50200  LQ$ = "Many elevators divide their charges this way to help cover handling & O.H.'s"
50209  GOTO 50300
50210  LQ$ = "The commerical charges which are related to time use of their facilities."
50219  GOTO 50300
50220  LQ$ = "If the grain is stored at a higher moisture it may go out of condition."
50229  GOTO 50300
50230  LQ$ = "If on had cash instead of grain, what interest (rate) could be saved or earned?"
50239  GOTO 50300
50240  LQ$ = "The outlook analysis or likely price for grain at the end of storage period."
50249  GOTO 50300
50250  LQ$ = "Call around to various elevators or other grain merchants to get a quote."
50259  GOTO 50300
50260  LQ$ = "From the day's close or from broker quotations."
50269  GOTO 50300
50270  LQ$ = "Use basis charts or better yet keep your own!"
50279  GOTO 50300
50280  LQ$ = "Total of 2 transactions costs + estimated interest on the margin account funds."
50289  GOTO 50300
50290  LQ$ = "Usually ranges from 0.2% to 0.5% for small grains & 1.0% to 3.0% for corn."
50294  GOTO 50300
50295  LQ$ = "Usually ranges from 0.05% to 0.1% for small grains & 0.3% to 1.0% for corn/mo."
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50302 REM
50304 REM
50310 PRINT LQ$; : GOSUB 50 : GOSUB 40610 : RETURN
53025 REM ------------------------------------------

FARMBID.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF FARMBID 03/19/84 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 SM$ = CHR$(15) : BG$ = CHR$(18)
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70 DIM QQ$(20) , LQ$(11)
80 GOSUB 5000
90  GOSUB 47300
100  GOSUB 46000
110 PRINT
120 PRINT "        There Are Two Major Input and Use Options:"
130 PRINT "         1 = Do a Bare Land Analysis (On a per acre or whole farm basis),"
140 PRINT "         2 = Do a Whole Operating Farm Unit Analysis (With livestock ? )."
150 PRINT "        Which Option ( 1 or 2 ) "; : INPUT K9
160 IF K9 < 1 OR K9 > 2 THEN 150
170  REM
180  REM   ARTICLE NOMENS ARE: GNI,CC,ANI,MTR,INF,P,T*,DP,IR,N,T
190  REM   FOLLOWS JIM KELLY MINNESOTA TI VERSION OF OHIO STATE
200  REM   WORK OF LEE & RASK. ALSO SEE ROY BLACK MICH STATE UNIV
210  REM   TELCAL 08 FOR TI 59-VERSION MATERIALS.
220  REM   MINN-AID DEVELOPMENT BY EARL FULLER U/MINN MAR 1979
230  REM   A APPLEII (APPLESOFT) VERSION  AND A
240  REM   FIRST CUT AT VALUE OF A WHOLE FARM VERSION
250  REM   DEVELOPED ADDITIONAL WHOLE FARM OPTION MARCH 1980
260  REM   A DECAID VERSION WAS DEVELOPED IN THE SUMMER 1979
270  REM   BY BOB CRAVENS WITH ADDED SENSIVITY ANALYSIS.
280  REM   AN AG EXP. STAT. PROJ. 14-36 & AG EXT SERVICE OFFERING
290  REM   COMPUTER TIME FOR DEVELOPMENT PROVIDED BY A UCS GRANT
300  REM   SENSIVITY ANALYSIS OF INFLATION & GROWTH RATES VERSION
310 K2 = 0
320 S3 = 0.1
460  GOSUB 5300
510  REM IF K9 = 1 THEN 870
1250  REM
1320  IF X1 < 1 GOTO 1340
1330 X1 = X1 * 0.01
1340  IF X2 < 1 GOTO 1360
1350 X2 = X2 * 0.01
1360  IF X4 < 1 GOTO 1380
1370 X4 = X4 * 0.01
1380  IF X5 < 1 GOTO 1400
1390 X5 = X5 * 0.01
1400  IF X7 < 1 GOTO 1420
1410 X7 = X7 * 0.01
1420  IF X8 < 0 GOTO 1440
1430 X8 = X8 * 0.01
1440  IF X9 > 0 GOTO 1460
1450 X9 = 0.01
1460  IF X9 < 1 GOTO 1480
1470 X9 = X9 * 0.01
1480 REM
1555  GOSUB 38
1590  IF K9 = 1 THEN 1713
1600  REM   CALCULATE  BARE LAND MARGIN EQUIVALENT VALUE (=X3 = ITEM 1)
1610 C3 = W1 + W2 + W6 - W3 - W4 - W5 + W6 - W9
1620 C7 = W7 - W8
1630  REM   DEDUCT BEFORE TAX EQUIVALENT OF  CAP. GAINS
1640  IF X4 < = 0! THEN 1670
1650 C7 = ( - W8 / (1 - X4)) + X7 * W7 + ((1 - X7) * W7) / (1 - X4)
1660  REM   END INPUT & START ANALYSIS SUBROUTINE
1670 X3 = C3 + C7
1680  PRINT
1682  PRINT SPC(20)"THE CALCULATED BEFORE TAX EQUIVALENT"
1684  PRINT SPC(20);A$
1686  PRINT SPC(20)"IS COMPUTED TO BE $"; INT (0.5 + X3)
1688 IF PR$ <> "Y" THEN 1713
1689 LPRINT
1690 LPRINT SPC(20)"THE CALCULATED BEFORE TAX EQUIVALENT"
1700 LPRINT SPC(20);A$
1710 LPRINT SPC(20)"IS COMPUTED TO BE $"; INT (0.5 + X3)
1713 REM
1714 K2 = 0
1715 S1 = 0:S2 = 0
1720 Y1 = 1 + X1
1730 Y2 = 1 + X2
1740 Z2 = Y2 ^ I2
1750 Y5 = 1 + X5
1760 Y8 = 1 - X8
1770 Y9 = 1 + X9
1780 Z9 = Y9 ^ I2
1790  REM
1800 A2 = ((Y5 / Y2) ^ I1) * (X6 * (1 - X7))
1810  REM
1820 B2 = (Z2 - 1) / (X2 * Z2)
1830 B3 = (X9 * Z9) / (Z9 - 1)
1840 B4 = Y8 * X4 * X9
1850 C2 = X7 / Y2 ^ I1
1860  FOR I = 1 TO I1
1870 S1 = S1 + (Y1 / Y2) ^ I
1880  NEXT I
1890  FOR I = 1 TO I2
1900 T1 = I2 - I + 1
1910 S2 = S2 + (1 / Y2 ^ I) * ((Y9 ^ T1) - 1) / (X9 * (Y9 ^ T1))
1920  NEXT I
1930 D1 = X8 + (Y8 * B2 * B3) - (B4 * B3 * S2) - C2
1940 Y3 = X3
1950  IF K2 = 2 THEN 1970
1955 K2 = 0
1960 Y3 = X3 - X3 * S3
1962 Y4 = 0
1964 Y$ = " ( 10% LESS THAN "
1966 Z$ = "ORGINALLY ASSUMED) "
1967 REM
1970 S4 = S1 * Y3 * (1 - X4)
1980 V = (S4 + A2) / D1
1990  IF K2 = 2 THEN RETURN
2000  REM RETURN
2010 REM
2020 R = X9 * (1 - X4)
2030 P = Y3 * (1 - X4)
2040 P = P * ((1 + R) ^ I2 - 1) / ((1 + R) ^ I2 * R)
2050 PRINT
2052  PRINT SPC(20)"A CURRENT NET MARGIN OF $ "; INT (0.5 + Y3)
2054  PRINT SPC(20);Y$;: PRINT Z$
2056  PRINT SPC(20)" COVERS A $ "; INT (0.5 + P);" LOAN"
2058  PRINT SPC(20)"THE MAXIMUM BID PRICE WOULD BE $"; INT (0.5 + V)
2060  IF PR$ <> "Y" THEN 2100
2062  LPRINT
2070  LPRINT SPC(20)"A CURRENT NET MARGIN OF $ "; INT (0.5 + Y3)
2072  LPRINT SPC(20);Y$;: PRINT Z$
2074  LPRINT SPC(20)" COVERS A $ "; INT (0.5 + P);" LOAN"
2080  REM   THE MAXIMUM BID PRICE PER UNIT WOULD BE $#######.##.
2090  LPRINT SPC(20)"THE MAXIMUM BID PRICE WOULD BE $"; INT (0.5 + V)
2100 Y3 = Y3 + X3 * S3
2102 Y$ = " ( AS "
2104 Y4 = Y4 + 1
2106  IF Y4 > 1 THEN Y$ = " ( 10% MORE THAN "
2110  IF Y3 <  = X3 * (1 + S3) + 1 GOTO 1970
2120  PRINT
2130 S1 = 0
2140 S2 = 0
2155   PRINT : GOSUB 51
2160  PRINT "0 = QUIT ; 1 = REVISE DATA ; 2 = DO A SENSITIVITY ANALYSIS TO GROWTH RATES";
2170  GOSUB 50
2190  INPUT K2
2200  IF K2 = 0 THEN  GOTO 100
2210  IF K2 = 1 THEN 460
2215  GOSUB 38
2220 B$ = "          EFFECT OF VARIATION IN THE ANTICIPATED RATES OF LAND INFLATION"
2230 C$ = "          AND FUTURE GROWTH IN NET INCOME ON THE MAXIMUM BID PRICE / UNIT."
2240 H$ = "                           ASSUMED LAND VALUE INFLATION RATES"
2245 E$ = "          WHEN GIVEN A CURRENT NET RETURN TO PAY FOR THE LAND OF $ "
2250 Z1 = X1
2260 Z5 = X5
2262 X5 = Z5 - 0.04
2264  IF X5 >  = 0.01 GOTO 2268
2266 X5 = 0.01
2268  REM   GROWTH   ###### #
2270  PRINT H$
2280  PRINT : PRINT
2282  PRINT B$
2284  PRINT C$
2286  PRINT E$; INT (X3 + 0.5)
2288  PRINT
2290  PRINT H$
2292  PRINT USING "INCOME       ## %";X5*100;
2294 IF PR$ <> "Y" THEN 2420
2300 LPRINT  : LPRINT
2310 LPRINT B$
2320 LPRINT C$
2340 LPRINT E$; INT (X3 + 0.5)
2350 LPRINT
2360 LPRINT H$
2410 LPRINT USING "INCOME       ## %";X5*100;
2420  FOR J9 = 2 TO 5
2430 X5 = X5 + 0.02
2450  PRINT USING "         ## %";X5*100;
2455 IF PR$ = "Y" THEN PRINT USING "         ## %";X5*100;
2460  NEXT J9
2465 PRINT : PRINT "GROWTH"
2470  PRINT " RATES"; TAB( 28);"MAXIMUM BID PRICE; $/UNIT"
2475 IF PR$ <> "Y" THEN 2490
2480 LPRINT : LPRINT "GROWTH"
2485  LPRINT " RATES"; TAB( 28);"MAXIMUM BID PRICE; $/UNIT"
2490 X1 = Z1 - 0.04
2500  IF X1 >  = 0.01 GOTO 2520
2510 X1 = 0.01
2520  FOR I9 = 1 TO 5
2530 X5 = Z5 - 0.04
2540  IF X5 >  = 0.01 GOTO 2560
2550 X5 = 0.01
2560  PRINT : PRINT USING "## %" ;X1*100;
2565  IF PR$ = "Y" THEN LPRINT : LPRINT USING "## %" ;X1*100;
2590  FOR J9 = 1 TO 5
2600 S1 = 0
2610 S2 = 0
2620  GOSUB 1720
2630 PRINT USING "   ##########";V;
2635 IF PR$ = "Y" THEN LPRINT USING "   ##########";V;
2640 X5 = X5 + 0.02
2650  NEXT J9
2660  PRINT
2665 IF PR$ = "Y" THEN LPRINT
2670 X1 = X1 + 0.02
2680  NEXT I9
2690  PRINT
2695 IF PR$ = "Y" THEN LPRINT
2700 S1 = 0
2710 S2 = 0
2720 X1 = Z1
2730 X5 = Z5
2740 GOSUB 49007
2750 GOTO 100
2760 REM --------------END MAIN PROCEDURE AND RESULTS -------------
2770  REM  ? DEF FNM(Y,Z)
5000  REM ---------------------------------------------------------------
5010 K2 = 20:CH = 47
5015  REM  DEFAULT DATA VALUES FOR THIS INPUT SECTION
5020 W1 = 1200 : QQ$(1) = "NET TAX AMTOUNT OF LIVESTOCK FOR RESALE .($) "
5025 W2 = 52000!:QQ$(2) = "ORDINARY TAXABLE FARM SALES/INCOME.......($) "
5030 W3 = 1500 : QQ$(3) = "FARM INTEREST EXCEPT MORTGAGE/CONTRACT ..($) "
5035 W4 = 26000 :QQ$(4) = "ORDINARY FARM EXPENSE EXCEPT INTEREST ...($) "
5040 W5 = 3000 : QQ$(5) = "PROJECTED FARM DEPRECIATION/REPLACEMENT .($) "
5045 W6 = 1000 : QQ$(6) = "ENTER PROJECTED ANNUAL NON-FARM INCOME ..($) "
5050 W7 = 1300 : QQ$(7) = "ENTER TYPICAL YEARLY CAP. GAINS INCOME...($) "
5055 W8 = 6000 : QQ$(8) = "OTHER ANNUAL CAPITAL REPAYMENTS..........($) "
5060 W9 = 11000 :QQ$(9) = "ANNUAL FAMILY LIVING + INCOME TAXES......($) "
5065 X3 = 6846 :QQ$(10) = "ANNUAL NET MARGIN/UNIT TO PAY FOR LAND ..($) "
5070 X1 = 5 :   QQ$(11) = "ENTER PROJECTED GROWTH IN NET INCOME.....(%) "
5075 X5 = 5 :   QQ$(12) = "ENTER PROJECTED INFLATION IN LAND VALUES.(%) "
5080 X8 = 25 :  QQ$(13) = "DOWN PAYMENT AS PCT. OF PURCHASE PRICE ..(%) "
5085 X9 = 10 :  QQ$(14) = "INTEREST RATE ON BORROWED FUNDS TO BUY ..(%) "
5090 I2 = 25 :  QQ$(15) = "LOAN AMORTIZATION PERIOD IN .........(YEARS) "
5095 I1 = 25 :  QQ$(16) = "ENTER YEARS OF PLANNED OWNERSHIP (SPAN?).... "
5100 X4 = 30 :  QQ$(17) = "PROJECTED TYPICAL MARGINAL TAX RATE IN ..(%) "
5105 X7 = 25:QQ$(18) = "ENTER CAPITAL GAINS TAX RATE IN (%)......... "
5110 X2 = 10:QQ$(19) = "ENTER MIN. AFTER TAX OPPORT. RETURN RATE (%) "
5115 X6 = 12500:QQ$(20) = "ENTER AREA COMPARABLE UNIT LAND PRICE....... "
5120 A$ = " ANNUAL NET MARGIN/UNIT TO PAY FOR LAND"
5125 RETURN
5130 P$ = " PCT "
5135 REM -------END DEFAULT DATA & INPUT SETUP SUB
5140 REM ----------------------------------------------------------------
5300  REM --------BEGIN DATA ENTRY ---------------------------
5320  GOSUB 38: GOSUB 51
5340  PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
5360  GOSUB 50
5380  GOSUB 39
5390  IF K9 = 1 THEN 5760
5400  PRINT
5420  PRINT QQ$(1);W1
5440  PRINT
5460  PRINT QQ$(2);W2
5480  PRINT
5500  PRINT QQ$(3);W3
5520  PRINT
5540  PRINT QQ$(4);W4
5560  PRINT
5580  PRINT QQ$(5);W5
5600  PRINT
5620  PRINT QQ$(6);W6
5640  PRINT
5660  PRINT QQ$(7);W7
5680  PRINT
5700  PRINT QQ$(8);W8
5720  PRINT
5740  PRINT QQ$(9);W9
5742  IF S9 = 4 THEN  GOSUB 49007 : GOTO 6620
5750  IF K9 = 2 THEN 5800
5760  PRINT
5780  PRINT QQ$(10);X3
5782  IF S9 = 4 THEN  GOSUB 49000: GOTO 6620
5800  GOSUB 41: GOSUB 49910
5802  IF S9 = 4 THEN  GOSUB 49000: GOTO 6620
5810  GOSUB 40210
5815  IF K9 = 1 THEN LN = 0: GOTO 6360
5820 LQ = 1:LN = 2: GOSUB 40
5840  GOSUB 40000: IF ZN$ <  > "" THEN W1 = ZN
5860  GOSUB 40210
5880 LQ = 2:LN = 4: GOSUB 40
5900  GOSUB 40000: IF ZN$ <  > "" THEN W2 = ZN
5920  GOSUB 40210
5940 LQ = 3:LN = 6: GOSUB 40
5960  GOSUB 40000: IF ZN$ <  > "" THEN W3 = ZN
5980  GOSUB 40210
6000 LQ = 4:LN = 8: GOSUB 40
6020  GOSUB 40000: IF ZN$ <  > "" THEN W4 = ZN
6040  GOSUB 40210
6060 LQ = 5:LN = 10: GOSUB 40
6080  GOSUB 40000: IF ZN$ <  > "" THEN W5 = ZN
6100  GOSUB 40210
6120 LQ = 6:LN = 12: GOSUB 40
6140  GOSUB 40000: IF ZN$ <  > "" THEN W6 = ZN
6160  GOSUB 40210
6180 LQ = 7:LN = 14: GOSUB 40
6200  GOSUB 40000: IF ZN$ <  > "" THEN W7 = ZN
6220  GOSUB 40210
6240 LQ = 8:LN = 16: GOSUB 40
6260  GOSUB 40000: IF ZN$ <  > "" THEN W8 = ZN
6280  GOSUB 40210
6300 LQ = 9:LN = 18: GOSUB 40
6320  GOSUB 40000: IF ZN$ <  > "" THEN W9 = ZN
6330  IF K9 = 2 THEN 6400
6340  GOSUB 40210
6360 LQ = 10:LN = LN + 2: GOSUB 40
6380  GOSUB 40000: IF ZN$ <  > "" THEN X3 = ZN
6400  REM
6420  GOSUB 40210:GOSUB 41
6440  GOSUB 51
6460  PRINT "DATA OK? WANT TO GO AHEAD (Y OR N OR <CNTL-Q> = QUIT ENTIRE ANALYSIS)";
6500  GOSUB 50
6520 GOSUB 40610
6560  IF Z$ = QE$ THEN 42900
6580  IF Z$ = "N" THEN CX = 1: GOSUB 42: GOSUB 45: GOTO 5810
6600  IF Z$ <  > "Y" THEN 6420
6620  REM  END THIS INPUT SECTION
7300  REM --- BEGIN 2ND SCREEN OF INPUT ---------------------
7320  GOSUB 38: GOSUB 51
7340  PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
7360  GOSUB 50
7380  GOSUB 39
7400  PRINT
7420  PRINT QQ$(11);X1
7440  PRINT
7460  PRINT QQ$(12);X5
7480  PRINT
7500  PRINT QQ$(13);X8
7520  PRINT
7540  PRINT QQ$(14);X9
7560  PRINT
7580  PRINT QQ$(15);I2
7600  PRINT
7620  PRINT QQ$(16);I1
7640  PRINT
7660  PRINT QQ$(17);X4
7680  PRINT
7700  PRINT QQ$(18);X7
7720  PRINT
7740  PRINT QQ$(19);X2
7760  PRINT
7780  PRINT QQ$(20);X6
7782  IF S9 = 4 THEN  GOSUB 49007: GOTO 8630
7800  GOSUB 41: GOSUB 49910
7810  GOSUB 40210
7820 LQ = 11:LN = 2: GOSUB 40
7840  GOSUB 40000: IF ZN$ <  > "" THEN X1 = ZN: GOSUB 43
7845 LO = -50 : HI = 50
7850 IF X1 < LO OR X1 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 7820
7860  GOSUB 40210
7880 LQ = 12:LN = 4: GOSUB 40
7900  GOSUB 40000: IF ZN$ <  > "" THEN X5 = ZN: GOSUB 43
7905 LO = -50 : HI = 50
7910 IF X5 < LO OR X5 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 7880
7920  GOSUB 40210
7940 LQ = 13:LN = 6: GOSUB 40
7960  GOSUB 40000: IF ZN$ <  > "" THEN X8 = ZN: GOSUB 43
7965 LO = 0   : HI = 100
7970 IF X8 < LO OR X8 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 7940
7980  GOSUB 40210
8000 LQ = 14:LN = 8: GOSUB 40
8020  GOSUB 40000: IF ZN$ <  > "" THEN X9 = ZN: GOSUB 43
8025 LO = 0   : HI = 35
8030 IF X9 < LO OR X9 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 8000
8040  GOSUB 40210
8060 LQ = 15:LN = 10: GOSUB 40
8080  GOSUB 40000: IF ZN$ <  > "" THEN I2 = ZN: GOSUB 43
8085 LO = 0   : HI = 40
8090 IF I2 < LO OR I2 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 8060
8100  GOSUB 40210
8120 LQ = 16:LN = 12: GOSUB 40
8140  GOSUB 40000: IF ZN$ <  > "" THEN I1 = ZN: GOSUB 43
8145 LO = 0   : HI = 40
8150 IF I1 < LO OR I1 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 8120
8160  GOSUB 40210
8180 LQ = 17:LN = 14: GOSUB 40
8200  GOSUB 40000: IF ZN$ <  > "" THEN X4 = ZN: GOSUB 43
8205 LO = 0   : HI = 70
8210 IF X4 < LO OR X4 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 8180
8220  GOSUB 40210
8240 LQ = 18:LN = 16: GOSUB 40
8260  GOSUB 40000: IF ZN$ <  > "" THEN X7 = ZN: GOSUB 43
8265  IF X7 < 0.4 * X4 THEN  GOSUB 41: GOSUB 51: PRINT  CHR$ (7);: PRINT "MUST BE AT LEAST 40% OF TOTAL MARGINAL  TAX RATE": GOSUB 50:GOTO 8240
8280  GOSUB 40210
8300 LQ = 19:LN = 18: GOSUB 40
8320  GOSUB 40000: IF ZN$ <  > "" THEN X2 = ZN: GOSUB 43
8325 LO = 3   : HI = 50
8330 IF X2 < LO OR X2 > HI THEN GOSUB 40150 : GOSUB 40 : GOTO 8300
8340  GOSUB 40210
8360 LQ = 20:LN = 20: GOSUB 40
8380  GOSUB 40000: IF ZN$ <  > "" THEN X6 = ZN: GOSUB 43
8400  REM
8420  GOSUB 40210:GOSUB 41
8440  GOSUB 51
8460  PRINT "DATA OK? WANT TO GO AHEAD (Y OR N OR <CNTL-Q> = QUIT ENTIRE ANALYSIS)";
8500  GOSUB 50
8520 GOSUB 40610
8560  IF Z$ = QE$ THEN 42900
8580  IF Z$ = "N" THEN 7810
8600  IF Z$ <  > "Y" THEN 8420
8630  GOSUB 48700
8640  RETURN
8645 REM -------------END DATA ENTRY SUB --------------------
8650 REM --------------------------------------------------------
9000 REM ----------begin initial screen sub ---------------------
9010 GOSUB 38
9020 LQ$(1)="   FARMBID estimates the the maximum price you can bid for either (a) bare land"
9030 LQ$(2) = "or (b) a complete farm unit including, if appropriate, livestock facilities."
9040 LQ$(3) = "It considers inflation, the gross margin generated from crops & livestock,"
9045 LQ$(4) = "cost of funds, sources of funds, income taxes, credit arrangements and"
9050 LQ$(5) = "planning span or expected ownership period.
9060 LQ$(6) = " "
9070 LQ$(7) = "   The approach is the same as is used in the DECAID LANDBUY and other"
9080 LQ$(8) = "simular models that follow the work of Lee & Rask, Ohio State University."
9090 LQ$(9) ="A first time user should list out the questionaire and study the questions"
9100 LQ$(10)= "and their footnotes (on-line helps) before trying to process actual data."
9110 LQ$(11)= "A run through of the sample data in option 2 will also help."
9120 FOR I = 1 TO 11
9130 IF PQ$ = "Y" THEN LPRINT LQ$(I) :LPRINT : GOTO 9150
9140 IF PR$ <> "Y" THEN PRINT LQ$(I) ELSE LPRINT LQ$(I)
9145  IF I <> 6 THEN PRINT
9150 NEXT I
9160 GOSUB 49007
9180 RETURN
9190 REM ---------------end initial screen sub -------------------
39450  REM   ---------------------------------------
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39482 REM
39485 RETURN
39490  REM  ----------------------------------------
39560  REM   END PROCEDURE TO USE ? PRINTER
39570  REM
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN GOTO 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": Z$ = INPUT$(1)
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 9010
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 9010
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
46160 REM
46170 REM
46180 REM
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   12/10/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49007
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   12/10/83              IBM - PC    !"
47344  PRINT SPC(20)"!                                     !"
47350  PRINT SPC(20)"!             FARM-BID                !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"! DECISION AID TO HELP DETERMINE THE  !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"! MAXIMIUM BID PRICE $/UNIT FOR LAND  !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   12/10/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   12/10/83              (IBM - PC)  !"
48310  LPRINT "!              FARM-BID               !"
48320  LPRINT "!                                     !"
48330  LPRINT "!  DECISION AID TO HELP DETERMINE THE !"
48340  LPRINT "!                                     !"
48350  LPRINT "!  MAXIMUM BID PRICE $/UNIT FOR LAND  !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50 : GOSUB 49007 : RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "FARM-BID  A calculator of the maximum affordable price for farm land."
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149 K2 = 20
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 20 GOTO 50200
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50170,50180,50190,50200,50210,50220,50230,50240,50250,50260,50270,50280,50290,50295
50108  GOTO 50300
50110  LQ$ = "livestock purchased for resale sales (1040F) is source."
50119  GOTO 50300
50120  LQ$ = "1040F source of all ordinary farm income (cash sales)."
50129  GOTO 50300
50130  LQ$ = "1040F interest except for the land payment interest - note next question."
50139  GOTO 50300
50140  LQ$ = "1040F all other ordinary farm expenses except interest - see last question."
50149  GOTO 50300
50150  LQ$ = "Either 1040F tax deprediation or a normal asset replacement allowance."
50159  GOTO 50300
50160  LQ$ = "Non-farm income available to make land payments and/or pay other expenses."
50169  GOTO 50300
50170  LQ$ = "On livestock farms capital gain sales are often big enough to effect tax costs"
50179  GOTO 50300
50180  LQ$ = "Other than land capital repayments - a demand on cash."
50189  GOTO 50300
50190  LQ$ = "Family living ($11000-22000 are common) + income taxes require cash."
50199  GOTO 50300
50200  LQ$ = "Gross margin after crop expense or its equivelant on a livestock farm."
50205  GOTO 50300
50210  LQ$ = "A critical value to the analysis as it influences the maximum bid price a lot."
50215  GOTO 50300
50220  LQ$ = "A critical value to the analysis as it influences the maximum bid price a lot."
50225  GOTO 50300
50230  LQ$ = "Even if a set dollar amount is involved , a percentage must still be entered."
50235  GOTO 50300
50240  LQ$ = "If no certain try an average rate for a even payment schedule."
50245  GOTO 50300
50250  LQ$ = "Needed to compute loan payments & interest plus their tax effects."
50255  GOTO 50300
50260  LQ$ = "Needed to discount eventual sale value, taxes, interest, & gross margin."
50265  GOTO 50300
50270  LQ$ = "Sum of the federal rate + social security + (1-fed taxs rate) * state rate"
50275  GOTO 50300
50280  LQ$ = "Currently running 40% of the marginal tax rate, but laws do change."
50285  GOTO 50300
50290  LQ$ = "Next best opportunity cost of equity put in this land consider risk etc."
50292  GOTO 50300
50295  LQ$ = "Value of a unit of the same productivity in the same land market area."
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50302 REM
50304 REM
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN
53025 REM ------------------------------------------

FEEDPIGS.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF FEEDPIGS 03/18/84 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
24 REM
25 REM
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
67  GOSUB 47300: GOSUB 38: PRINT : PRINT
69 DIM A(15),B(15),C(12,2),D(20),E(9),S(12,2),T(5,5)
70 DIM QQ$(19),RR(19),L$(39),R$(10),RR$(5),LQ$(19)
80  GOSUB 5000
90 GOSUB 47300
100 REM
110 GOSUB 46000
120 GOSUB 6020
130 REM
140 GOSUB 6965
315 PRINTE(I);I;
350  PRINT
360  PRINT
370 W1 = 1
380 S1 = 0
385 K1 = 0
387 REM GOTO 5000
445  REM
587 E6 = E(6) + (E(4) - A(6)) * E(8)
588 E7 = E(7) + (E(4) - A(6)) * E(9)
589 A6 = A(6)
590  IF A(1) = 180 THEN 650
600 I =  INT ((A(1) - 171) / 10)
610 W2 = A(1) - (I * 10 + 170)
620 A(7) = E6 + C(I,1) + W2 * C(I,2)
630 A(9) = E7 + S(I,1) + W2 * S(I,2)
640  GOTO 670
650 A(7) = E6
660 A(9) = E7
670 A(8) = A(7) / 56
680 A(10) = A(9) / 100
690 W3 = (A(7) + A(9)) / (A(1) - A6)
700 W3 =  INT ((W3 + 0.005000001) * 100) / 100
710 W4 =  INT ((A(8) + 0.005000001) * 100) / 100
720 W5 =  INT ((A(9) + 0.005000001) * 100) / 100
730 A(11) =  INT ((((A(1) - A6) / 180) * E(1) + 0.005000001) * 100) / 100
740 A(12) =  INT ((((A(1) - A6) / 180) * E(2) + 0.005000001) * 100) / 100
750 A(13) = E(3)
760 IF FLAG = 5 THEN RETURN
890  IF  LEFT$ (R$(5),1) = "Y" THEN 999
895  IF K1 > 0 GOTO 1052
912 A(7) = A(8) * 56
950 A(10) = A(9) / 100
999  REM
1030 REM??????
1051 REM
1052 REM ????
1080 B(1) = A(1) * A(3) / 100
1090 B(2) = (A(14) / 100) * A(2)
1100 B(1) =  INT ((B(1) + 0.005000001) * 100) / 100
1110 B(2) =  INT ((B(2) + 0.005000001) * 100) / 100
1120 B(3) = B(1) - B(2)
1130 B(4) =  INT ((A(8) * A(4) + 0.005000001) * 100) / 100
1140 B(5) =  INT ((A(10) * A(5) + 0.005000001) * 100) / 100
1150 B(6) =  INT ((A(11) + 0.005000001) * 100) / 100
1160 B(7) = B(4) + B(5) + B(6)
1170 B(8) = A(2)
1190 B(10) =  INT ((A(12) + 0.005000001) * 100) / 100
1210 B(12) =  INT ((A(13) + 0.005000001) * 100) / 100
1220 B3 = B(8) + B(7) + B(10)
1222 B(11) =  INT (((B(8) * (E(5) / 365) * A(15) * 0.01) + 0.005000001) * 100) / 100
1224 B(13) = B3 + B(11)
1226 B(9) = B(13) + B(12)
1230 B(14) = B(3) - B(9)
1235 B(14) =  INT ((B(14) + 0.005000001) * 100) / 100
1240 B(15) = B(14) + B(12)
1250  REM   READY TO RUN REPORT (S)
1260  PRINT : GOSUB 38
1270  PRINT SPC(20)"***RESULTS FOR THE RUN FOLLOWS***"
1280  PRINT:PRINT:PRINT
1285  IF  LEFT$ (R$(1),1) = "N" THEN 2010
1300  PRINT L$(1);" "A(1);" POUNDS"
1310  PRINT
1320  PRINT L$(2)
1330  PRINT " ";A(1);" ";L$(3);A(3);L$(4); TAB(61) ;"$";B(1)
1350  PRINT L$(5);A(14);L$(6); TAB(63) ;B(2)
1380  PRINT L$(7); TAB(62);B(3)
1390  PRINT
1400  PRINT L$(8)
1410 W4 =  INT ((A(8) + 0.005000001) * 100) / 100
1420 W5 =  INT ((A(9) + 0.005000001) * 100) / 100
1430 W6 =  INT ((A(7) + 0.005000001) * 100) / 100
1440  PRINT " ";W6;L$(9);A(4);L$(11); TAB(62);B(4)
1450  PRINT "     (";W4;"BUSHELS OF CORN )"
1460  PRINT " ";W5;L$(12);A(5);L$(4); TAB(63);B(5)
1480  PRINT L$(13); TAB(63);B(6)
1510  PRINT L$(14); TAB(62);B(7)
1520  PRINT:PRINT:PRINT
1521 LOCATE ,23 :GOSUB 51:PRINT  " TABLE ONE CONTINUES ON NEXT SCREEN ":GOSUB 50
1525  GOSUB 49007 : GOSUB 38
1530  PRINT L$(15)
1570  PRINT L$(16);A(6);" LB.FEEDER PIG"; TAB(61);"$";B(8)
1580  PRINT L$(17); TAB(62);B(7)
1590  PRINT L$(18); TAB(63);B(10)
1600  PRINT L$(19);B(8);L$(20);;A(15);L$(21);E(5);" DAYS"; TAB(63);B(11)
1605  PRINT "    TOTAL FEED, CASH EXPENSE & PURCHASE COST"; TAB(62);B(13)
1610  PRINT L$(22); TAB(63);B(12)
1620  PRINT L$(23); TAB(62);B(9)
1630  PRINT
1640  PRINT L$(24)
1650  PRINT L$(25); TAB(62);B(14)
1660  PRINT L$(26);TAB(62);B(15)
1670  PRINT L$(27)
1690  REM   DATA STRING L$ FOR REPORTS
1970  REM   COMPUTE TABLE 2 DATA IF REQUESTED
2010  IF  LEFT$ (R$(2),1) = "N" THEN 2670
2015  GOSUB 49007 : GOSUB 38
2060  REM   NON-CORN COSTS TO BE COVERED IN TABLE 2
2070  IF D(1) = 1 THEN 2120
2080  IF D(1) = 2 THEN 2140
2090  IF D(1) = 3 THEN 2160
2100  PRINT "YOUR COST OPTION MUST BE 1, 2, OR 3"
2110  GOTO 1030
2120 D(2) = B(9) - B(8) - B(4)
2130  GOTO 2190
2140 D(2) = B(9) - B(8) - B(4) - B(12)
2150  GOTO 2190
2160 D(2) = B(9) - B(8) - B(4) - B(11) - B(12)
2170  REM   SET UP ROW-COLUMN HEADINGS FOR TABLE 2
2180  IF S1 = 1 THEN 2680
2190  FOR I = 1 TO 5
2200 D(I + 2) = A(4) - 0.45 + I * 0.15
2210 D(I + 7) = A(3) + (I - 3) * 2
2220  NEXT I
2230  REM   COMPUTE TABLE 2
2240  FOR J = 1 TO 5
2250  FOR I = 1 TO 5
2260 T(I,J) = (A(1) / 100) * D(I + 7)
2270 T(I,J) = T(I,J) - D(2) - A(8) * D(J + 2)
2280 T(I,J) = T(I,J) / (1! + (A(14) / 100))
2300  NEXT I
2310  NEXT J
2320  PRINT : PRINT
2410  PRINT L$(32)
2420 I = D(1) + 27
2430  PRINT L$(38);L$(I);")"
2440  PRINT
2450  PRINT L$(33);L$(34)
2460  PRINT L$(35);
2470  GOSUB 3200
2480  PRINT L$(36)
2490  LOCATE ,25 :GOSUB 51 : PRINT  L$(37);A(6);"-LB. FEEDER ":GOSUB 50
2495 PRINT
2500  FOR J = 1 TO 5
2505 IF J = 3 THEN PRINT "     ";:GOSUB 51:PRINT USING "###";D(J+7);:GOSUB 50 :PRINT "  :  "; : GOTO 2520
2510  PRINT  USING "     ###  :  ";D(J + 7);
2520  FOR I = 1 TO 5
2545 IF J = 3 AND I = 3 THEN PRINT "      ";:GOSUB 51:PRINT USING "###.##";T(J,I); : GOSUB 50 :GOTO 2560
2550  PRINT USING "      ###.##";T(J,I);
2560  NEXT I
2570  PRINT
2580  NEXT J
2620  PRINT
2630  IF S1 = 9 THEN 3050
2660  REM   READY FOR TABLE 3
2670  IF  LEFT$ (R$(3),1) = "N" THEN 3050
2675  IF PR$ = "N" THEN  GOSUB 49000
2680  REM   SET UP ROW-COL HEADINGS
2690  FOR I = 1 TO 5
2700 D(I + 2) = A(4) - 0.45 + I * 0.15
2710 D(I + 12) = A(2) + (I - 3) * 3
2720  NEXT I
2730  REM   BASE COSTS FOR TABLE 3
2740  IF D(1) = 1 THEN 2780
2750  IF D(1) = 2 THEN 2800
2760 D(2) = B(9) - B(8) - B(4) - B(11) - B(12)
2770  GOTO 2810
2780 D(2) = B(9) - B(8) - B(4)
2790  GOTO 2810
2800 D(2) = B(9) - B(8) - B(4) - B(12)
2810  REM   COMPUTE BREAK-EVEN MARKET PRICES
2820  FOR J = 1 TO 5
2830  FOR I = 1 TO 5
2840 T(I,J) = D(2) + D(J + 12) + W4 * D(I + 2)
2850 T(I,J) = (T(I,J) + A(2) * (A(14) / 100)) / (A(1) / 100)
2870  NEXT I
2880  NEXT J
2890  REM   PRINT TABLE 3
2900  PRINT
2909  GOSUB 38
2910  PRINT "TABLE 3.  BREAK-EVEN MARKET PRICES FOR A";A(1);"POUND HOG"
2920 I = D(1) + 27
2930  PRINT L$(38);L$(I);")"
2940  PRINT
2950  PRINT "WHEN THE PURCH.";L$(34)
2960  PRINT "COST OF ";A(6);"LB.";
2970  GOSUB 3200
2980  PRINT " FEEDERS ($) IS"
2990  PRINT TAB(25); :GOSUB 51:PRINT" THE BREAK-EVEN SALE PRICE $/HEAD IS ":GOSUB 50
2994 PRINT
3000 S1 = 9
3010  FOR I = 8 TO 12
3020 D(I) = D(I + 5)
3030  NEXT I
3040  GOTO 2500
3050 S1 = 0
3052  ON D(1) GOTO 3053,3060,3065
3053 D1 =  INT ((B(12) * 100 / A(1) + 0.005000001) * 100) / 100
3054  PRINT "  (SUBTRACT $ ";D1;" FROM EACH PRICE ABOVE TO COVER"
3055  PRINT  TAB( 2);"JUST ";L$(29)
3057  GOTO 3068
3060 D1 =  INT ((B(12) * 100 / A(1) + 0.005000001) * 100) / 100
3061  PRINT "  (ADD $ ";D1;" TO EACH PRICE ABOVE TO COVER"
3062  PRINT  TAB( 3);L$(28)
3063  PRINT
3064  GOTO 3068
3065 D1 =  INT (((B(11) + B(12)) * 100 / A(1) + 0.005000001) * 100) / 100
3066  GOTO 3061
3068  IF PR$ = "Y" THEN  GOSUB 39440
3069  PRINT : PRINT : PRINT "***END OF RUN -- DO YOU WANT ANOTHER (Y OR N)";
3070  INPUT R$(10) : K2$ = R$(10) : GOSUB 60400 : R$(10) = K2$
3080  PRINT
3090  IF  LEFT$ (R$(10),1) = "N" THEN 42902
3100 W1 = W1 + 1
3110  REM   READY FOR RE-RUN
3190 GOTO 1
3195  REM   END
3200  REM   SUB TO PRINT COL HEADS
3205 Z = POS(0):Z = Z-1:LOCATE ,Z
3210  FOR I = 3 TO 7
3213 IF I = 5 THEN PRINT "        "; : GOSUB 51 : PRINT USING "#.##";D(I); : GOSUB 50 : GOTO 3220
3215  PRINT  USING "        #.##";D(I);
3220  NEXT I: PRINT : RETURN
5000 RR$(1) = "N"
5005 RR$(2) = "N"
5010 RR$(3) = "Y"
5015 RR$(4) = "Y"
5020 RR$(5) = "Y"
5050 RR(1) = 220 : QQ$(1) = "ENTER THE PLANNED MARKET WEIGHT OF A HOG IN ........ POUNDS "
5060 RR(2) = 40 :  QQ$(2) = "ENTER THE PURCHASE WEIGHT OF A FEEDER PIG IN ....... POUNDS "
5070 RR(3) = 35 :  QQ$(3) = "ENTER THE PURCHASE PRICE PER FEEDER PIG IN ......... $/HEAD "
5080 RR(4) = 45 :  QQ$(4) = "ENTER THE PROJECTED MARKET PRICE OF HOGS IN ........ $/CWT. "
5090 RR(5) = 2.65 :QQ$(5) = "ENTER THE PRICE PER BUSHEL OF CORN; ON FARM VALUE ......($) "
5100 RR(6) = 13.5 :QQ$(6) = "ENTER THE PRICE FOR SOYBEAN MEAL HOG SUPPLEMENT/CWT.....($) "
5110 RR(7) = 15 :  QQ$(7) = "ENTER THE INTEREST RATE ON THE FEEDER PIGS IN ..... PERCENT "
5120 RR(8) = 3 :   QQ$(8) = "ENTER THE EXPECTED DEATH LOSS OF PIGS IN ...........PERCENT "
5130 QQ$(9) = "DO YOU WANT TO SEE THE FEED 'STANDARDS' USED (Y OR N)....... "
5140 QQ$(10) = "DO YOU WANT TO USE THE DEFAULT AMOUNT OF FEED FED/HOG (Y/N). "
5160 RR(11) = 10.3:QQ$(11)= "ENTER AMOUNT OF CORN TO REACH MARKET WEIGHT ....BUSHEL/HEAD "
5170 RR(12) = 90 :QQ$(12) = "ENTER AMT. OF SBM SUPPLEMENT TO REACH MARKET WEIGHTLBS/HEAD "
5180 RR(13) = 1.5:QQ$(13) = "ENTER COST PER HOG OF MINERALS AND ANTIBIOTICS ... $ / HEAD "
5190 RR(14) = 9! :QQ$(14) = "ENTER MISC. CASH OPERATING EXPENSE ................$ / HEAD "
5192 RR(15) =10! :QQ$(15) = "ENTER THE DESIRED RETURNS TO LABOR AND FACILITIES IN $/HEAD "
5194 RR(19) = 1! :QQ$(19) = "ENTER (1,2, OR 3) FOR THE DESIRED COST TO BE COVERED...(NO. "
5195 REM ---------------------------
5200 DATA   0,30,60.4375,91.25,122.4375,154.0625,185.8125
5205 REM   C = CORN NEEDS OVER 180 LBS.;S=SBM;A=INPUT;B=OUTPUT
5210 DATA   217.5265,249.4375,281.6875,316.125,350.1875
5220 DATA   3,3.04375,3.08125,3.11875,3.1625,3.175
5230 DATA   3.175,3.1875,3.225,3.44375,3.40625,3.3
5240 FOR J = 1 TO 2
5250 FOR I = 1 TO 12
5260 READ C(I,J)
5270 NEXT I
5280 NEXT J
5290 DATA   0,8,16.0625,24.25,32.5625,40.9375
5300 DATA   49.375,57.8125,66.3125,74.875,80.75,86.5
5310 DATA   .8,.80625,.81875,.83125,.8375,.84375
5320 DATA   .84375,.85,.85625,.5875,.575,.5625
5330 FOR J = 1 TO 2
5340 FOR I = 1 TO 12
5350 READ S(I,J)
5360 NEXT I
5370 NEXT J
5380 FOR I = 1 TO 9
5390 READ E(I)
5400 NEXT I
5410 DATA   1.50,8.00,8.00,40,122,437.562,57.437,1.45,0.55
5420 FOR I = 1 TO 39
5430 READ L$(I)
5440 NEXT I
5450 RETURN
5460 REM REMAINING DATA STATEMENTS ARE AT SCREEN PRINT LOCATIONS -----
5500  DATA   "TABLE 1.  BUDGET FOR A FEEDER PIG FED TO"
5510  DATA   "RECEIPTS:"
5520  DATA   "POUNDS AT $"
5530  DATA  " PER CWT."
5540  DATA  "  LESS "
5550  DATA  " PERCENT DEATH LOSS (VALUE) "
5560  DATA   "   GROSS RECEIPTS"
5570  DATA   "FEED REQUIREMENTS:"
5580  DATA  " LBS. OF CORN AT $"
5590  DATA   "BUSHELS) AT $"
5600  DATA  " PER BUSHEL"
5610  DATA  " LBS. OF SBM SUPPLEMENT AT $"
5620  DATA  "  MINERALS AND ANTIBIOTICS "
5630  DATA   "    TOTAL FEED VALUE PER HOG "
5640  DATA   "FEED & EXPENSE SUMMARY:"
5650  DATA   "  PURCHASE PRICE/HEAD FOR A "
5660  DATA   "  TOTAL FEED VALUE (FROM ABOVE)"
5670  DATA   "  ASSOCIATED CASH OPERATING EXPENSE"
5680  DATA   "  INTEREST ON $ "
5690  DATA   " AT "
5700  DATA   "% INTEREST FOR "
5710  DATA   "  DESIRED RETURNS TO LABOR & FACILITIES"
5720  DATA  "    ALL COSTS; INCLUDES DESIRED RETURNS (OVERHEADS)"
5730  DATA   "NET RETURN SUMMARY:"
5740  DATA   "  RETURN ABOVE FEED, EXPENSE & DESIRED RETURNS"
5750  DATA   "  GROSS MARGIN; RETURNS OVER DIRECT FEED + EXPENSE"
5760  DATA   "    (EXCLUDING DESIRED RETURNS)"
5770  DATA   "ALL EXPENSES & DESIRED RETURNS"
5780  DATA   "FEED & DIRECT CASH & INTEREST EXPENSE"
5790  DATA   "FEED & DIRECT CASH EXPENSES ONLY"
5800  DATA   "(WITHOUT OVERHEAD & DESIRED RETURNS)"
5830  DATA   "TABLE 2.  BREAK-EVEN FEEDER PIG PRICES PER HEAD"
5840  DATA   "WHEN THE SALE"
5850  DATA   "            AND WITH THE $/BUSHEL CORN PRICE AT"
5860  DATA   "PRICE IN $ PER "
5870  DATA   " CWT. IS"
5880  DATA   " YOU CAN PAY THIS $ PRICE PER "
5890  DATA   "          (TO COVER "
5900  DATA   "*********"
5990 REM --------END INITIALIZING SUB ------------------------
6000  REM
6010  REM  TO AVOID RE-DIMENSIONING ERRORS, DIM DECLARATIONS SHOULD BE MOVED TO THE 'TOP' OF THE PROGRAM
6020 I = 1:K2 = 19:CH = 62
6150  IF PQ$ = "Y" THEN  GOSUB 49110: RETURN
6160  REM  GOSUB 49100 TO PRINT A INPUT FORM ON PAPER.  (K2 = NO. OF QUESTIONS)
6170  GOSUB 38: GOSUB 51
6180  PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
6190  GOSUB 50
6200  GOSUB 39
6210  PRINT
6215 IF FLAG = 5 THEN RETURN
6220  PRINT QQ$(1);RR(1)
6230  PRINT
6240  PRINT QQ$(2);RR(2)
6250  PRINT
6260  PRINT QQ$(3);RR(3)
6270  PRINT
6280  PRINT QQ$(4);RR(4)
6290  PRINT
6300  PRINT QQ$(5);RR(5)
6310  PRINT
6320  PRINT QQ$(6);RR(6)
6330  PRINT
6340  PRINT QQ$(7);RR(7)
6350  PRINT
6360  PRINT QQ$(8);RR(8)
6405  IF S9 = 4 THEN  GOSUB 49007: GOTO 6840
6410  GOSUB 41: GOSUB 49910
6415  GOSUB 40210
6420 LQ = 1:LN = 2: GOSUB 40
6430  GOSUB 40000: IF ZN$ <  > "" THEN RR(1) = ZN
6440 LO = 180:HI = 300
6450  IF RR(1) < LO OR RR(1) > HI THEN  GOSUB 40150: GOSUB 40: GOTO 6420
6460  GOSUB 40210
6470 LQ = 2:LN = 4: GOSUB 40
6480  GOSUB 40000: IF ZN$ <  > "" THEN RR(2) = ZN
6490  GOSUB 40210
6500 LQ = 3:LN = 6: GOSUB 40
6510  GOSUB 40000: IF ZN$ <  > "" THEN RR(3) = ZN
6520  GOSUB 40210
6530 LQ = 4:LN = 8: GOSUB 40
6540  GOSUB 40000: IF ZN$ <  > "" THEN RR(4) = ZN
6550  GOSUB 40210
6560 LQ = 5:LN = 10: GOSUB 40
6570  GOSUB 40000: IF ZN$ <  > "" THEN RR(5) = ZN
6580  GOSUB 40210
6590 LQ = 6:LN = 12: GOSUB 40
6600  GOSUB 40000: IF ZN$ <  > "" THEN RR(6) = ZN
6610  GOSUB 40210
6620 LQ = 7:LN = 14: GOSUB 40
6630  GOSUB 40000: IF ZN$ <  > "" THEN RR(7) = ZN
6640  GOSUB 40210
6650 LQ = 8:LN = 16: GOSUB 40
6660  GOSUB 40000: IF ZN$ <  > "" THEN RR(8) = ZN
6730  REM
6740  GOSUB 40210: GOSUB 41
6750  GOSUB 51
6760  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR Q = QUIT ENTIRE ANALYSIS ";
6780  GOSUB 50
6790 GOSUB 40610
6810  IF Z$ = "Q" THEN 42900
6820  IF Z$ = "N" + CHR$(13) THEN 6415
6830  IF Z$ < > "Y" THEN 6740
6840  GOSUB 9000
6850  REM  DEFAULT DATA VALUES FOR THIS INPUT SECTION
6965 IF LEFT$(RR$(2),1) = "Y" THEN RR(11) = W4 : RR(12) = W5
6970  GOSUB 38: GOSUB 51
6980  PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
6990  GOSUB 50
7000  GOSUB 39
7010  PRINT
7020  PRINT QQ$(11);RR(11)
7030  PRINT
7040  PRINT QQ$(12);RR(12)
7050  PRINT
7060  PRINT QQ$(13);RR(13)
7070  PRINT
7080  PRINT QQ$(14);RR(14)
7090  PRINT
7100  PRINT QQ$(15);RR(15)
7110  PRINT
7180  PRINT QQ$(19);RR(19)
7183  IF S9 = 4 THEN  GOSUB 49007 : GOTO 8000
7185  GOSUB 41: GOSUB 49910
7190  GOSUB 40210
7193  IF  LEFT$ (RR$(2),1) = "Y" THEN 7260
7200 LQ = 11:LN = 2: GOSUB 40
7210  GOSUB 40000: IF ZN$ <  > "" THEN RR(11) = ZN
7220  GOSUB 40210
7230 LQ = 12:LN = 4: GOSUB 40
7240  GOSUB 40000: IF ZN$ <  > "" THEN RR(12) = ZN
7250  GOSUB 40210
7260 LQ = 13:LN = 6: GOSUB 40
7270  GOSUB 40000: IF ZN$ <  > "" THEN RR(13) = ZN
7280  GOSUB 40210
7290 LQ = 14:LN = 8: GOSUB 40
7300  GOSUB 40000: IF ZN$ <  > "" THEN RR(14) = ZN
7310  GOSUB 40210
7320 LQ = 15:LN = 10: GOSUB 40
7330  GOSUB 40000: IF ZN$ <  > "" THEN RR(15) = ZN
7340  GOSUB 40210
7345 GOTO 7440
7350 LQ = 16:LN = 12: GOSUB 40
7440 LQ = 19:LN = 12: GOSUB 40
7450  GOSUB 40000: IF ZN$ <  > "" THEN RR(19) = ZN
7460  REM
7470  GOSUB 40210: GOSUB 41
7480  GOSUB 51
7490  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR Q = QUIT ENTIRE ANALYSIS ";
7510  GOSUB 50
7520  GOSUB 40610
7540  IF Z$ = "Q" THEN 42900
7545  IF  LEFT$ (RR$(2),1) <  > "Y" THEN 7550: IF Z$ = "N" THEN 7290
7550  IF Z$ = "N" THEN 7190
7560  IF Z$ <  > "Y" THEN 7470
7570 GOSUB 48700
8000 A(1) = RR(1):A(6) = RR(2):A(2) = RR(3):A(3) = RR(4):A(4) = RR(5):A(5) = RR(6):A(15) = RR(7):A(14) = RR(8):R$(4) = RR$(1):R$(5) = RR$(2):A(8) = RR(11)
8010 A(9) = RR(12):A(11) = RR(13):A(12) = RR(14):A(13) = RR(15):R$(1) = RR$(3):R$(2) = RR$(4):R$(3) = RR$(5):D(1) = RR(19)
8020 REM
8030 RETURN
8999 REM ---------------------------------
9000 FLAG = 5 : GOSUB 6170
9005 A(1) = RR(1) : A(6) = RR(2) : GOSUB 445 : FLAG = 0
9010 PRINT
9015 PRINT "THE ""STANDARD"" FEED AND MISC. EXPENSE GUIDES PER HOG FED"
9020 PRINT "  TO ";A(1);"POUNDS ARE"
9025 PRINT "  BUSHELS CORN --";W4
9030 PRINT "  LBS. SBM SUPPLEMENT --";W5
9035 PRINT "    (NOTE FEED CONVERSION AT THIS WEIGHT IS ";W3;")"
9040 PRINT "  MINERALS AND ANTIBIOTICS -- $";A(11)
9045 PRINT "  MISC. ASSOCIATED CASH EXPENSE -- $";A(12)
9050 PRINT "  DESIRED RETURNS TO LABOR & FACILITIES -- $";A(13)
9100 PRINT
9110  PRINT QQ$(10);RR$(2)
9115 IF S9 = 4 THEN GOSUB 49007 : RETURN
9120 GOSUB 41 : GOSUB 49910
9125 GOSUB 40210
9130 LQ = 10:LN = 12: GOSUB 40
9140  GOSUB 40230: IF ZN$ <  > "" THEN RR$(2) = ZN$
9150  GOSUB 40210: GOSUB 41
9155  GOSUB 51
9160  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR Q = QUIT ENTIRE ANALYSIS ";
9165  GOSUB 50
9170  GOSUB 40610
9175  IF Z$ = "Q" THEN 42900
9180  IF Z$ = "N" THEN 9125
9185  IF Z$ < > "Y" THEN 9150
9200 RETURN
9210 REM ------------------------
9500 REM ------BEGIN INSTRUCTIONAL SUB -------------------
9510 GOSUB 38 : PRINT : PRINT
9520 LQ$(1)="FEEDPIGS ANALYZES THE PARTIAL BUDGETING QUESTION:  'GIVEN SUFFICENT LABOR"
9530 LQ$(2) = "& FACILITIES TO DO SO, THE PRICES OF FEEDERS, CORN & OTHER CASH EXPENSE,"
9540 LQ$(3) = "SHOULD I FEED HOGS? '"
9550 LQ$(4) ="   "
9560 LQ$(5) = "THE ANALYSIS CALCULATES A GROSS MARGIN FOR DOING SO AND COMPARES IT WITH A"
9570 LQ$(6) = "DESIRED RETURN TO LABOR AND FACILITIES (INCLUDING RISK AND MANAGEMENT).":LQ$(7) ="   "
9580 LQ$(8) = "A PLANNED VERSION WILL, LIKE PIGFIN, ALSO DEAL WITH THE APPROPRIATE MARKET"
9590 LQ$(9) = "WEIGHT QUESTION GIVEN THE RELATIONSHIP BETWEEN FEED CONVERSION AND WEIGHT"
9600 LQ$(10) = "OF THE HOG.  THIS VERSION DOES NOT." :LQ$(11) = "   "
9610 LQ$(12 )="    FEEDPIGS CONTAINS A DEFAULT STANDARD FEED AND MISCELLANEOUS"
9620 LQ$(13) ="    EXPENSE GUIDE PER HOG FED BUT THE USER MAY OVER-RIDE THEM."
9630 LQ$(14) = "  ":LQ$(15) = "    THERE ARE THREE TABLES INVOLVED:  THE FIRST IS A BUDGET FOR A"
9640 LQ$(16) ="    FEEDER PIG FED TO 220 POUNDS; TABLE 2 SHOWS BREAK-EVEN FEEDER"
9650 LQ$(17) ="    PIG PRICES PER HEAD (TO COVER ALL EXPENSES & DESIRED RETURN);"
9660 LQ$(18) ="    TABLE 3 IS THE BREAK-EVEN MARKET PRICES FOR A 220 POUND HOG"
9670 LQ$(19) ="    (TO COVER ALL EXPENSES & DESIRED RETURNS)."
9680 FOR I = 1 TO 19
9690 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 102
9700 PRINT LQ$(I)
9710 NEXT I
9720 GOSUB 49000:RETURN
9730 REM -----END INSTRUCTIONAL SUB ------------------
39450  REM   ---------------------------------------
39452 REM
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39456 REM
39457 REM
39458 REM
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39482 REM
39485 RETURN
39490  REM  ----------------------------------------
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39910 PRINT: PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES" :PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45565 PRINT : PRINT"DO NOT PANIC":PRINT "It is possible to recover from certain errors without losing any data.": PRINT "DO NOT EXIT FROM THIS PROGRAM.  Continue on for instructions."
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45675 LOCATE 7,5: PRINT"REMEDY/SUGGESTION:  ";RM$
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45677 IF FLAG = 23 THEN GOSUB 49000 : FLAG = 0 : GOTO 42900
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": GOSUB 46010
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 9510
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 9510
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46148 REM
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   10/22/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47205 GOSUB 39910
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   10/22/83          IBM-PC VERSION  !"
47350  PRINT SPC(20)"!            FEED PIGS                !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!  A STANDARD FEED AND MICELLANEOUS   !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"!EXPENSE GUIDE FOR HOGS FED TO 220 LBS!"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   10/22/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   10/22/83              (IBM - PC)  !"
48310  LPRINT "!             FEED PIGS?              !"
48320  LPRINT "!                                     !"
48330  LPRINT "!  A STANDARD FEED AND MISCELLANEOUS  !"
48340  LPRINT "!                                     !"
48350  LPRINT "!EXPENSE GUIDE FOR HOGS FED TO 220 LBS!"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50:GOSUB 49007:RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "Economics of Feeding Out a Lot of Feeder Pigs"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149  K2 = 19
49150  FOR I = 1 TO K2
49155 IF I = 16 OR I = 17 OR I = 18 THEN 49172
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ >19 GOTO 50200
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50170,50180,50190,50200,50210,50220,50230,50240,50250,50269,50279,50289,50290
50108  GOTO 50300
50110  LQ$ = "Expected weight after finishing - used to calculate interest & feed needs."
50119  GOTO 50300
50120  LQ$ = "40 lbs is typical though 30 to 75 lbs occur -used in feed & interest figures"
50129  GOTO 50300
50130  LQ$ = "Varies with the current market hog price & feeder pig supplies."
50139  GOTO 50300
50140  LQ$ = "Use outlook analysis & contract or futures prices to develop a target price."
50149  GOTO 50300
50150  LQ$ = "Feeding pigs is a way to price corn -when you fill the lot it's priced!"
50159  GOTO 50300
50160  LQ$ = "Laid-in price delivered to your facilities for the hog supplement you will use."
50169  GOTO 50300
50170  LQ$ = "Actual loan rate (annual) for loan or the alternative use % for your funds."
50179  GOTO 50300
50180  LQ$ = "Some pigs are die - 1 to 5% ? typical = 3% treated as a cash cost."
50189  GOTO 50300
50190  LQ$ = "Indicate `Yes" TO SEE THE DEFAULT DATA in this minn-aid."
50199  GOTO 50300
50200  LQ$ = "The MINN-AID contains default feed requirement data a "Y" responseshows it"
50209  GOTO 50300
50210  LQ$ = "Weather, facilities, & health etc. affect feed use (9 to 14 bushel!)."
50219  GOTO 50300
50220  LQ$ = "Weight, pasture, health etc. affect soymeal needs (60-120 lbs.)."
50229  GOTO 50300
50230  LQ$ = "Multiply amount / hog by the price."
50239  GOTO 50300
50240  LQ$ = "Electricitcy, use repairs, fuel, vet., etc. averaged / hog fed."
50249  GOTO 50300
50250  LQ$ = "Reservation value for risk, mgt., operator & family labor & facilities."
50259  GOTO 50300
50260  LQ$ = "`Y' = see table one results"
50269  GOTO 50300
50270  LQ$ = "`Y' = see the table of break-even pig & hog prices."
50279  GOTO 50300
50280  LQ$ = "`Y' = see the table of break-even feed & pig prices."
50289  GOTO 50300
50290  LQ$ = "What costs should the break-even tables cover ?   Don't forget the desired return question."
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN
53024 0!,2000,24,40,0.71,0.5
53025 REM ------------------------------------------

FEEDSILO.BAS

5 KEY OFF
7 CLS
10  PRINT : PRINT SPC(15)"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$": PRINT : PRINT
15  PRINT : PRINT SPC(13)"     FORAGE SILO INVENTORY EVALUATION": PRINT : PRINT
20  PRINT SPC(12)"        UNIVERSITY OF WISCONSIN-EXT."
22  PRINT : PRINT : PRINT SPC(14)"               WRITTEN BY": PRINT : PRINT
24  PRINT SPC(15)"        W.T. HOWARD, NOV. 1980"
30  PRINT : PRINT : PRINT
150  PRINT SPC(15)"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$": PRINT : PRINT
152  LOCATE 23,16: PRINT "* * PAUSE HIT ANY KEY TO CONTINUE * *":Z$ = INPUT$(1)
153 CLS
160  PRINT "ENTER THE DIAMETER OF SILO (FEET) ";: INPUT A
171  PRINT : PRINT "ENTER DEPTH OF SILAGE WHEN SILO IS FILLED ";:INPUT B
173  PRINT : PRINT "ENTER REMAINING DEPTH OF SILAGE "
174  PRINT " ( REMAIN. FEET CANNOT BE MORE THAN WHEN FULL) ";: INPUT C
175  PRINT : PRINT "ENTER NUMBER OF COWS ";:INPUT D
177  PRINT : PRINT "ENTER NUMBER OF HEIFERS ";:INPUT E
179  PRINT : PRINT "ENTER NUMBER OF DAYS IN FEEDING PERIOD ";:INPUT F
181  PRINT : PRINT "ENTER DESIRED DRY MATTER TO BE FED FROM SILO, IN LBS/COW/DAY ";:INPUT G
190  PRINT
230  PRINT
270 Z = A ^ 2
290 X = B ^ 1.43
310 Y = (B - C) ^ 1.43
330 YY = (X - Y) * 2.28 * Z
350 YY = YY / 2000
355  CLS  : PRINT "======================================"
358 NUMBER = YY: GOSUB 4000
390  PRINT
430  PRINT "TONS OF DRY MATTER IN THE SILO "; SPC( 21 -  LEN (NUMBER$));NUMBER$
450  PRINT
470  PRINT
570 CE = D + (E * 0.5)
665 NUMBER = CE: GOSUB 4000
670  PRINT "NUMBER OF COW EQUIVALENTS"; SPC( 27 -  LEN (NUMBER$));NUMBER$
690  PRINT
710  PRINT
730 FD = YY * 2000 / CE / F
750 K = FD
795 NUMBER = FD: GOSUB 4000
800  PRINT "LBS OF DRY MATTER AVAILABLE/COW/DAY "; SPC( 16 -  LEN (NUMBER$));NUMBER$
830  PRINT : PRINT
850 TF = G * CE * F / 2000
860 NUMBER = TF: GOSUB 4000
870  PRINT "TONS FED AT ";G;" LBS OF DRY MATTER/COW/DAY "; SPC( 9 -  LEN (NUMBER$));NUMBER$
890 TR = YY - TF
895  PRINT : PRINT :NUMBER = TR: GOSUB 4000
910  PRINT "TONS OF FORAGE DRY MATTER REMAINING "; SPC( 16 -  LEN (NUMBER$));NUMBER$
920  PRINT : PRINT "======================================"
930 LOCATE 20,1
950  PRINT "DO YOU WANT A SILAGE REMOVAL SCHEDULE (Y/N) ";:INPUT Z$
955 IF Z$ = "N" THEN 1990
960 IF Z$ = "Y" THEN 1010
970 IF Z$ < > "Y" OR Z$ < > "N" THEN 930
1010  CLS
1030 S1 = YY * 2000
1050  PRINT "ENTER # FEET PER LAYER REMOVED ";
1070  INPUT FI
1080  CLS
1090 S2 = (A ^ 2) * ((B ^ 1.43) - ((B - C) + FI) ^ 1.43) * 2.28
1110 S3 = S1 - S2
1130 S4 = S3 / (FI * 12)
1195 NUMBER = S4: GOSUB 4000
1200  PRINT "LBS OF DRY MATTER PER INCH IN THE NEXT ";FI;" FEET"; SPC( 15 -  LEN (NUMBER$));NUMBER$
1230  PRINT : PRINT
1250  PRINT "DO YOU WANT TO CHANGE THE DRY MATTER FED/COW/DAY ? "
1270  PRINT
1290  PRINT "YOU SET THE DRY MATTER FED/DAY AT ";G;" LBS PER COW"
1310  PRINT
1330  PRINT "ENTER NEW FEEDING RATE IN LBS OR 0 FOR NO CHANGE ";
1350  INPUT FC
1370  CLS
1380  PRINT : PRINT "************************************************"
1390  IF FC = 0 THEN  GOTO 1430
1410 G = FC
1430 DF = G * CE
1450 ID = DF / S4
1470  PRINT : PRINT
1490 NUMBER = ID: GOSUB 4000
1550  PRINT "INCHES PER DAY TO FEED ";G;" LBS PER COW"; SPC( 19 -  LEN (NUMBER$));NUMBER$
1570 DI = (FI * 12) / ID
1610  PRINT
1620 NUMBER = DI: GOSUB 4000
1630  PRINT "NUMBER OF DAYS TO FEED THE NEXT ";FI;" FEET"; SPC( 18 -  LEN (NUMBER$));NUMBER$
1650  PRINT
1670 DL = F - DI
1690 NUMBER = DL: GOSUB 4000
1750  PRINT "NUMBER OF DAYS LEFT IN THE FEEDING PERIOD"; SPC( 17 -  LEN (NUMBER$));NUMBER$
1760 F = F - DI
1770  PRINT
1780  PRINT : PRINT "************************************************"
1785  LOCATE 16,1
1790  PRINT "DO YOU WANT TO LOOK AT THE NEXT LAYER (Y/N) ";:INPUT C$
1800  IF C$ = "Y" THEN 1830
1810  IF C$ = "N" THEN 1970
1815  IF C <= FI THEN 1785
1820  IF C$ < > "Y" OR C$ < > "N" THEN 1785
1830 CLS
1870 C = C - FI
1890 Z = (A ^ 2) * ((B ^ 1.43) - ((B - C) + FI) ^ 1.43) * 2.28
1910 S1 = S2
1930 S2 = Z
1950  GOTO 1110
1970  PRINT "THE SILO IS EMPTY !!"
1990  PRINT
2010  PRINT "DO YOU WANT ANOTHER FEEDING SCHEDULE (Y/N) ";:INPUT F$
2020 IF F$ = "Y" THEN 7
2030 IF F$ = "N" THEN 4040
2040 IF F$ < > "Y" OR IF F$ < > "N" THEN 2010
2070  CLS : GOTO 150
2170  CLS
2190  REM
2210  END
2230  PRINT
2250  PRINT
2270  PRINT
4000 NUMBER =  INT ((NUMBER + 0.05) * 10) / 10
4010  IF NUMBER =  INT (NUMBER) THEN NUMBER$ =  STR$ (NUMBER) + ".0": RETURN
4020 NUMBER$ =  STR$ (NUMBER)
4030  RETURN
4040 PRINT : PRINT "WOULD YOU LIKE TO GO BACK TO THE MENU (Y/N) ";:INPUT I$
4050 IF I$ = "Y" THEN 5000
4060 IF I$ = "N" THEN 2210
4070 IF I$ < > "Y" OR I$ < > "N" THEN 4040

FEEDVALU.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
19 ON ERROR GOTO 45530
20 REM IBM PC VERSION OF SKELETON 01/01/83 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
24 KD$ ="A:" : REM DEFAULT DISK DRIVE
25  REM   K$ = DISK DATA FILE NAME
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70 DIM QQ$(6)
75 GOSUB 1520
80  GOSUB 47300
90 REM
100 GOSUB 46000
110 GOSUB 1620
200  REM
1000  REM   A MINN-AID DEVELOPMENT REFERENCES FM560 FEB 1980. PLUS EARL FULLER AND DALE NORDQUIST.
1130 REM
1190 V1 = ((1.1236 * S1) - (1.7836 * C1)) / 0.4055
1200 V2 = (C1 / 0.4536) - (0.1099 * V1)
1205 T2 = T1 * W1 / 100
1210 P2 = P1 * W1 / 100
1220 V3 = V2 * T2 / 100
1230 V4 = V1 * P2 / 100
1240 V5 = V3 + V4
1250 V6 = C1 / (0.81 * 56)
1260 V7 = V6 * T2
1270  GOSUB 38
1280  PRINT "VALUE OF ";: GOSUB 51: PRINT F$; : GOSUB 50: PRINT " WITH PROTEIN NOT VALUED  $ "; INT (V7 * 100) / 100;" PER BUSHEL"
1290  PRINT : PRINT "VALUE OF ";: GOSUB 51: PRINT F$; : GOSUB 50: PRINT " WITH PROTEIN ALSO VALUED $ "; INT (V5 * 100) / 100;" PER BUSHEL"
1292  PRINT : PRINT
1350  PRINT "WITH CORN (81% TDN AND 8.9 % CP) AT     $ ";C1;" PER BUSHEL"
1355  PRINT : PRINT
1360  PRINT "AND SOYBEAN MEAL (72% TDN & 44% CP) AT  $";S1;" PER CWT"
1363  PRINT
1365  PRINT : GOSUB 51: PRINT F$;: GOSUB 50: PRINT "(";T1;"% TDN AND ";P1;"% CP) IS WORTH  $"; INT (V5 * 100) / 100;" / ";W1;"LB"
1370  PRINT "(ASSUMING PROTEIN IS VALUED)"
1380  PRINT : PRINT : PRINT "IF PROTEIN IS NOT VALUED, ";
1385  GOSUB 51
1390  PRINT F$;: GOSUB 50: PRINT " IS WORTH  $"; INT (V7 * 100) / 100;" / ";W1;"LB"
1400  PRINT : PRINT : GOSUB 49010
1410 GOTO 100
1500  REM
1505  IF C1 < 0 OR C1 > 5 THEN  GOSUB 38
1507  IF C1 < 0 OR C1 > 5 THEN 1130
1510  REM  TO AVOID RE-DIMENSIONING ERRORS, DIM DECLARATIONS SHOULD BE MOVED TO THE 'TOP' OF THE PROGRAM
1520 I = 1  :CH = 53
1530  REM  DEFAULT DATA VALUES FOR THIS INPUT SECTION
1540 C1 =2.75 : QQ$(1) = "PRICE IN $/BU OF 86% D.M. CORN.."
1550 S1 =12 : QQ$(2) = "PRICE IN $/CWT OF 89% D.M. MEAL."
1560 F$ = "WHEAT" : QQ$(3) = "NAME OF FEED STUFF.............. "
1570 T1 =80.5 : QQ$(4) = "PERCENT TDN AS FED.............."
1580 P1 =14 : QQ$(5) = "PERCENT CRUDE PROTEIN AS FED...."
1590 W1 =60 : QQ$(6) = "POUNDS PER UNIT OF FEED........."
1600   RETURN
1610  REM ----------------------------
1620  GOSUB 38
1630  PRINT SPC(20); : GOSUB 51 : PRINT "<RETURN>=USE LAST KEY-IN TO QUESTION"
1640  GOSUB 50
1650  GOSUB 39
1660  PRINT
1670  PRINT SPC(20);QQ$(1);C1
1680  PRINT
1690  PRINT SPC(20);QQ$(2);S1
1700  PRINT
1710  PRINT SPC(20);QQ$(3);F$
1720  PRINT
1730  PRINT SPC(20);QQ$(4);T1
1740  PRINT
1750  PRINT SPC(20);QQ$(5);P1
1760  PRINT
1770  PRINT SPC(20);QQ$(6);W1
1775 IF S9 = 4 THEN GOSUB 49000 : GOTO 1190
1780  GOSUB 41: GOSUB 49910
1790 LQ = 1:LN = 2: GOSUB 40
1800  GOSUB 40000: IF ZN$ <  > "" THEN C1 = ZN
1810 LO = 0:HI = 5
1820  IF C1 < LO OR C1 > HI THEN  GOSUB 40150: GOSUB 40
1830  GOSUB 40210
1840 LQ = 2:LN = 4: GOSUB 40
1850  GOSUB 40000: IF ZN$ <  > "" THEN S1 = ZN
1860  GOSUB 40210
1870 LQ = 3:LN = 6: GOSUB 40
1880  GOSUB 40230: IF ZN$ <  > "" THEN F$ = ZN$
1890  GOSUB 40210
1900 LQ = 4:LN = 8: GOSUB 40
1910  GOSUB 40000: IF ZN$ <  > "" THEN T1 = ZN
1920 LO = 0:HI = 100
1930  IF T1 < LO OR T1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1900
1940  GOSUB 40210
1950 LQ = 5:LN = 10: GOSUB 40
1960  GOSUB 40000: IF ZN$ <  > "" THEN P1 = ZN
1970 LO = 0:HI = 100
1980  IF P1 < LO OR P1 > HI THEN  GOSUB 40150: GOSUB 40: GOTO 1950
1990  GOSUB 40210
2000 LQ = 6:LN = 12: GOSUB 40
2010  GOSUB 40000: IF ZN$ <  > "" THEN W1 = ZN
2020  REM
2030  GOSUB 40210:GOSUB 41
2040  GOSUB 51
2050  PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N);";
2060  PRINT "(OR <CNTL-Q> = QUIT ENTIRE ANALYSIS) ";
2070  GOSUB 50
2080 GOSUB 40610
2090 IF Z$ = QE$ THEN 42900
2100 IF Z$ = "N" THEN 1790
2110 IF Z$ <> "Y" THEN 2030
2115 GOSUB 48700
2120 RETURN
2130  REM  END THIS INPUT SECTION
2140 RETURN
2150 REM -------------------------------------------------
3000 REM ----------------------------------------------------------------------
3010 LQ$(1) = "  The MINN-AID FEEDVALUE estimates a feedstuff's in use economic value"
3015 LQ$(2) = "as an alternative to the purchase of corn grain and or soybean meal."
3020 LQ$(3) = "It assumes that animal performance will not be effected given the total ration."
3030 LQ$(4) = "Corn is assumed to contain 8.9% crude protein and 81% T.D.N."
3040 LQ$(5) = "Soybean meal contains 44% crude protein and 72% total digestable nutrients."
3050 LQ$(6) = "Both are handled on an as-fed-basis.   Calculations consider protein short"
3060 LQ$(7) = "and sufficient protein from other source situations.  In use value of a feed"
3070 LQ$(8) = "may or may not be reflected in the observed market price on any day."
3080 GOSUB 38
3090 FOR I = 1 TO 8
3100 PRINT : PRINT LQ$(I)
3110 IF PR$ = "Y" THEN LPRINT :LPRINT LQ$(I)
3120 NEXT I
3140 GOSUB 49007
3150 RETURN
3160 REM ---------------------------------------
11410  PRINT "WANT ANOTHER FEED STUFF (Y OR N)";
38900 REM
38999 REM
39400  REM   SUBS TO TOGGLE PRINTER
39410  IF PR$ <  > "Y" THEN  RETURN
39420  LOCATE 20,20 :PRINT "TURN PRINTER ON & PRESS ANY KEY ";: Z$ = INPUT$(1) : IF Z$ < > "" THEN RETURN
39425  GOTO 39420
39440 PRINT "THE PRINTER IS NOT BEING USED ?" : RETURN
39450  REM   ---------------------------------------
39452 REM
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39456 REM
39457 REM
39458 REM
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39482 REM
39485 RETURN
39490  REM  ----------------------------------------
39500  REM   PROCEDURE SUB TO TEST PRINTER USE
39510  PRINT "WILL YOU USE A PRINTER (Y OR N) ";
39520  INPUT PR$: IF PR$ = ES$ THEN 38900
39530 PR$ =  LEFT$ (PR$,1)
39540  RETURN
39550  REM  ----------------------------------------
39560  REM   END PROCEDURE TO USE ? PRINTER
39570  REM
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40400  REM   PROCEDURE TO PRINT LENGTH OF DATA PROMPT (REQUIRED OR MAXIMUM
40405  REM   PROPER USE REQUIRES POST GENBASIC CODING OF WL & FL'S
40410  PRINT  LEFT$ (SQ$,WL);
40420  IF FL > 0 THEN  PRINT "."; LEFT$ (SQ$,FL);
40430 CX = CH:CY = CV + LN: GOSUB 42
40440  RETURN
40450  REM   END PROCEDURAL SUB
40460  REM  ----------------------------------------
40500  REM    PROCEDURE TO VERIFY THE PROPER LENGTH OF CODED INPUT (ENTRY) * *
40510  IF  LEN (ZN$) = WL THEN  RETURN
40520  PRINT  CHR$ (7); CHR$ (7);
40530  GOSUB 41
40535  GOSUB 51
40537  PRINT "ENTRY IS CODED & MUST BE ";WL;" DIGITS LONG..RE-ENTER THE PROPER VALUE..."
40540  GOSUB 50
40541 CX = CH:CY = CV
40542  GOSUB 42: GOSUB 43
40550  GOSUB 40400
40560  GOSUB 40100
40570  GOTO 40010
40580  REM   END PROCEDURE
40590  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
41000 REM PROCEDURE TO COPY OVER A SEQUENTIAL FILE BEFORE ADDING DATA TO IT.
41010 ON ERROR GOTO 41900
41020 OPEN"I",#1,K$
41030 REM IF FILE EXISTS ,WRITE IT TI K1$
41040 OPEN "O",#2,K1$
41050 IF EOF(1) THEN 41090
41060 LINE INPUT #1,Z$
41070 PRINT #2,Z$
41080 GOTO 41050
41090 CLOSE#1
41100 REM WHEN TO KILL K$..BACKUP?
41110 RETURN
41200 REM ADD DATA TO #2
41300 REM CLOSE#2
41400 REM NAME K1$ AS K$ ?? HERE OR BEFORE CLOSE??
41900 REM CAPTURE NO FILE FOUND & START ONE AT THAT POINT
41910 IF ERR = 53 AND ERL =20 THEN OPEN"0",#2,K1$ : RESUME 41120
41920 ON ERROR GOTO 0
41930 REM----END FIE COPY PROCEDURE
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN GOTO 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": Z$ = INPUT$(1)
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 3010
46115 GOSUB 49100
46120 GOSUB 48020
46121  GOSUB 38
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 3010
46139  IF S9 > 3 THEN 46150
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   10/22/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   10/22/83              IBM - PC    !"
47350  PRINT SPC(20)"!            FEED VALUE               !"
47360  PRINT SPC(20);"!                                     !"
47370  PRINT SPC(20);"! COMPARES CRUDE PROTEIN & TDN VALUES !"
47380  PRINT SPC(20);"!                                     !"
47390  PRINT SPC(20);"!  OF CORN & S.B.MEAL (AS FED BASIS)  !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   10/22/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   10/22/83              (IBM - PC)  !"
48310  LPRINT "!             FEED VALUE              !"
48320  LPRINT "!                                     !"
48330  LPRINT "! COMPARES CRUDE PROTEIN & TDN VALUES !"
48340  LPRINT "!                                     !"
48350  LPRINT "!  OF CORN & S.B.MEAL (AS FED BASIS)  !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48750 REM*** CONVERTS INPUT OF LOWER CASE TO UPPER CASE
48755 IF K2$ = "" THEN RETURN
48760 I% = ASC(K2$)
48770 IF I% > 96 AND I% < 123 THEN K2$ = CHR$(I%-32)
48780 RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50 : GOSUB 49007 : RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "?????? PUT A TITLE HERE"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149  REM   K2 = NO OF QUESTIONS
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 6 THEN 50200
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160
50108  GOTO 50300
50110  LQ$ = "The laid-in if purchased, the net market price if sold for corn as an alternative feed."
50119  GOTO 50300
50120  LQ$ = "The laid-in price per cwt. of 44% protein soybean meal as an alternative feed."
50129  GOTO 50300
50130  LQ$ = "Such as wheat, barley, corn silage, ear corn, or mixed hay."
50139  GOTO 50300
50140  LQ$ = "The as fed total digestible nutrient content as a percent."
50149  GOTO 50300
50150  LQ$ = "The as fed crude nutrient content as a percent"
50159  GOTO 50300
50160  LQ$ = "The pounds of feedstuff per unit of feed as the price will bequoted."
50169  GOTO 50300
50170 IF PQ$ = "Y" THEN LPRINT LQ$
50200  REM    ON LO-10 GOTO 50210 ETC. FOR MORE HELPS
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN

FILES459.TXT

--------------------------------------------------------------------------
Disk No 459   Assorted agricultural programs                         v1.1
--------------------------------------------------------------------------

   MINNAIDS 4/11/84 U. OF MINNESOTA

This seems to be a useful collection of decision aids for Farm Management.
Type "RUN" and then type the RETURN key to start this set of tools.
Basica is required.

ACRSCALC BAS  Analysis of Federal Depreciation Computations (1983 law)
AUTOEXEC BAT  Automatic instructions to read this file
BESTCROP BAS  Price & Yield Analysis of Crop Choices (Equal-margin)
DATECALC BAS  Computes Future (Gestation) Dates & Calendars
DRYSTORE BAS  Analysis of Harvest and Storage Cost & Alternatives
FARMBID  BAS  Determines the Maximum Bid Price for Land or a Farm.
FEEDPIGS BAS  Should I Feed Out a Batch of Feeder Pigs ?
FEEDSILO BAS  Calculates Likely Dairy Feed in a Silo Given Feed Rate
FEEDVALU BAS  Given Corn & SBM Values, What's a Feed Worth ?
MENU     BAS  Menu program for BASIC pgms on this disk
PEARSON  BAS  Balances 1 Ration Nutrient from 2 Feed Sources
READ     BAT  Batch file to provide instructions for SCROLLCK.COM
README   DOC  Author supplied documentation file
RUN      BAT  Batch file requests date, loads Basica & starts MINN - AIDS
SCROLLCK COM  Scroll lock - control with shift keys (U/M - no info on it)
SDIR     COM  Sorted directory with other good features
SDIR     DOC  Documentation for SDIR, outlining options and features
SOWINDEX BAS  Determines a Sow Index, Relative to the Group
STEERBID BAS  Calculates Equivalent FOB prices for Fat Steers at Farm
TIMEC    COM  Some kind of time display program ???  (U/M - no info on it)
ULOGO    BAS  University of Minnesota Logo - START HERE - or at MENU
USERDOCS BAS  Explains How to Make Hardcopy Documentation of MINNAIDS

PC-SIG
1030D E Duane Avenue
Sunnyvale Ca. 94086
(408) 730-9291
(c) Copyright 1987 PC-SIG
8 DATA "ACRSCALC.BAS","Analysis of Federal Depreciation Computations"
10 DATA "BESTCROP.BAS","Price & Yield Analysis of Crop Choices (Equal-margin)"
12 DATA "DATECALC.BAS","Computes Future (Gestation) Dates & Calendars"
14 DATA "DRYSTORE.BAS","Analysis of Harvest and Storage Cost & Alternatives"
16 DATA "FARMBID .BAS","Determines the Maximum Bid Price for Land or a Farm."
24 DATA "FEEDPIGS.BAS","Should I Feed Out a Batch of Feeder Pigs ?"
26 DATA "FEEDSILO.BAS","Calculates Likely Dairy Feed in a Silo Given Feed Rate"
28 DATA "FEEDVALU.BAS","Given Corn & SBM Values, What's a Feed Worth ?"
34 DATA "NECGAIN .BAS","Calculates Expected Feedlot Gain for Cattle"
36 DATA "PEARSON .BAS","Balances 1 Ration Nutrient from 2 Feed Sources"
38 DATA "SOWINDEX.BAS","Determines a Sow Index, Relative to the Group; Files them."
40 DATA "STEERBID.BAS","Calculates Equivalent FOB prices for Fat Steers at Farm"
80 DATA "USERDOCS.BAS","Explains How to Make Hardcopy Documentation of MINNAIDS"
95 DATA "END OF FILES","END OF FILES"
100 DIM A$(30),B$(30)
105 CLS
110 KD$ = "A:"
112 ON ERROR GOTO 45530
115 GOSUB 48710 : GOSUB 48600
120 PRINT "03/11/1984                                                 MICRO-SOFT BASIC"
125 PRINT  TAB( 30)"M I N N - A I D S"
130 PRINT
135 PRINT  TAB( 28)"COMPUTER DECISION AIDS"
140 PRINT  TAB( 37)"for"
145 PRINT  TAB( 31)"Farm Management"
150 PRINT
155 PRINT  TAB( 20)"Minnesota Agricultural Experiment Station"
160 PRINT  TAB( 25)"Projects 14-026 and 14-036"
165 PRINT
170 PRINT  TAB( 36)"also"
175 PRINT  TAB( 19)"The Minnesota Agricultural Extension Service"
180 PRINT  TAB( 19)"USDA, the State and the counties cooperating"
185 PRINT
190 PRINT  TAB( 33)"through the"
195 PRINT  TAB( 28)"University of Minnesota,"
200 PRINT  TAB( 17)"Department of Agricultural and Applied Economics"
205 PRINT
210 PRINT  TAB( 34)"249 COB"
215 PRINT  TAB( 25)"Institute of Agriculture"
220 PRINT  TAB( 25)"Saint Paul Minnesota 55108"
225 PRINT
230  GOSUB 49000
300 I = 1
310 READ A$(I),B$(I) : IF A$(I) = "END OF FILES" THEN 330
320 I = I + 1 : GOTO 310
330 K = I-1
340 CLS : PRINT"Run    File              MINN-AIDS   Computer Decision Aids"
350 PRINT"No.    Name         Select and Run one to see more detail about what it does"
360 PRINT
370 FOR I = 1 TO K
380 PRINT USING "##  \          \ - \                                                         \";I;A$(I);B$(I)
385 IF K < 9 THEN PRINT
390 NEXT I
400 PRINT
410 PRINT"Type the `Run No.' & then Press <RETURN> to get & run any selection"
420 PRINT"Alternatively `Q ' will exit to BASIC, & `F' will display the file list"
430 PRINT"Enter a `Run No.' 1 through ";K;" or a `F' or a `Q' & a <RETURN> ";
440 CV = CSRLIN
450 INPUT Z$
460 I = VAL(Z$)
462 IF I < 1 THEN 480 ELSE 464
464 IF I > K THEN 580 ELSE 466
466 CLS :LOCATE 10,20 : COLOR 0,7 : PRINT"RUNNING ";A$(I); :COLOR 7,0
470 CHAIN A$(I)
480 GOSUB 40630
485 IF Z$ <> "F" OR Z$ = "?" THEN GOTO 500
490 LOCATE 23,1,0 : FILES KD$+"*.*" : GOSUB 49000: GOTO 340
500 IF Z$ <> "Q" THEN GOTO 510  ELSE 590
510 REM
580 PRINT"SORRY I DON'T UNDERSTAND PLEASE RE-ENTER " : LOCATE CV,65,0
585 GOTO 450
590 PRINT : PRINT"Returning to BASIC as instructed  " TIME$ "  " DATE$ : END
595 GOTO 450
610 KD$ = "a:"
620 PRINT"What Disk Drive has the MINN-AID file of interest ? (A or B etc...<RETURN>=A";
630  GOSUB 39 : GOSUB 40610 : IF Z$>="A" AND Z$<="C" THEN 650
640 Z$=KD$ : GOTO 660
650 Z$ = Z$+":"
660 REM ABOVE LINES NOT USED HERE
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40625 IF Z$ =" " THEN Z$ ="N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
43002 KD$="MENU.BAS"
43003 CHAIN KD$
45530 REM ERROR TRAPPING ROUTINE ------------------------------
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": Z$ = INPUT$(1)
45684 RESUME 105
45690                                                                           RUN
45900 REM -----------------------------------------------
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
49000 PRINT : PRINT TAB(20)"Pause..Press Any Key to Start.."; : Z$ = INPUT$(1) : PRINT : RETURN

PEARSON.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF PEARSON SQUARE 03/18/84 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
70  DIM Y$(19),QQ$(11),Y(14),LQ$(12)
80  GOSUB 1410
90  GOSUB 47300
100 GOSUB 46000
110 REM
170 REM
175  GOSUB 1670
180 GOSUB 3500
300  REM    ALL INPUT IS AS DECIMAL FRACTIONS?
310 O0 = O0 * 0.01
320 O1 = O1 * 0.01
330 O2 = O2 * 0.01
340 O3 = O3 * 0.01
350 O4 = O4 * 0.01
360 O5 = O5 * 0.01
370 O6 = O6 * 0.01
380 O7 = O7 * 0.01
390 O8 = O8 * 0.01
400 O9 = O9 * 0.01
410 I0 = I0 * 0.01
420 I1 = I1 * 0.01
430 I2 = I2 * 0.01
440 I3 = I3 * 0.01
450 A0 = O0 - O7 * O8
460 A1 = 1 - O7 - I1
470 A2 = A0 / A1
480  IF O1 >  = A2 GOTO 510
490  IF A2 < O4 GOTO 580
500  GOTO 520
510  IF A2 >  = O4 GOTO 580
520 GOSUB 38: PRINT BL$;BL$;
522 LOCATE 2,30 :COLOR 16,7:PRINT " MIX IS NOT FEASIBLE "
524 GOSUB 50 : PRINT : PRINT "    INGREDIENT PERCENTS MUST BOUND THE REQUIRED RATION INGREDIENT PERCENT"
526 LOCATE 6,34: COLOR 25,0
530 PRINT"THEY DO NOT" : GOSUB 50  : PRINT
540 ZD = O1*100:GOSUB 45000 :PRINT "    THE PERCENT OF THE NUTRIENT, ";N$;" CONTAINED IN ";F$; " IS "; ZD$;"%."
550 ZD = O4*100:GOSUB 45000 :PRINT "    THE PERCENT OF THE NUTRIENT, ";N$;" CONTAINED IN ";G$; " IS "; ZD$;"%."
560 ZD = A2*100:GOSUB 45000 :PRINT "    WHILE THE SPECIFIED MIX PERCENTAGE OF ";N$;" IS ";ZD$;"%."
570 PRINT:PRINT:GOTO 940
580 A3 =  ABS (A2 - O1)
590 A4 =  ABS (A2 - O4)
600 A5 = A3 + A4
610 I6 = A3 / A5 * A1
620 B = I6 * 100
630 I7 = A4 / A5 * A1
640 A = I7 * 100
650 I8 = I7 * O2 + I6 * O5 + I1 * I2 + O7 * O9
660 C = I8 * 100
670 I9 = I7 * O3 + I6 * O6 + I1 * I3 + O7 * I0
680 D = I9 * 100
682 REM PRINT "O0;01;O2;O3;O4;O5;O6;O7;O8;O9;I0;I1;I2;I3;A0;A1;A2;A3;A4;A4;I6;B;I7;A;IB;C;I9;D"
684 REM PRINT O0;1;O2;O3;O4;O5;O6;O7;O8;O9;I0;I1;I2;I3;A0;A1;A2;A3;A4;A4;I6;B;I7;A;IB;C;I9;D
685 PRINT : PRINT :PRINT" WHAT UNIT OF WEIGHT IS TO BE USED IN MIXING A BATCH :"
687 PRINT
690  PRINT "1 = TOTAL BATCH WEIGHTS IS IN POUNDS"
691  PRINT "2 = WEIGHT IS MEASURED IN CWTS..WHICH ";
695  INPUT K1
710 K$ = "CWT."
720  IF K1 = 2 GOTO 731
730 K$ = "POUNDS"
731 PRINT
732  PRINT " WHAT IS THE SIZE OF BATCH TO BE MIXED AS MEASURED IN ";K$;" ";
735  INPUT W1: PRINT
740  PRINT : PRINT : GOSUB 38
742  PRINT : PRINT SPC(11)"NECESSARY BATCH AMOUNTS FOR A "; :GOSUB 51: PRINT O0 * 100;"% ";N$;" "; :GOSUB 50: PRINT" MIX"
746  PRINT SPC(20)"BATCH SIZE OF "; :GOSUB 51: PRINT W1;K$;" ";  :GOSUB 50
748  PRINT  : PRINT
750  PRINT"   INGREDIENT              PROPORTIONS       BATCH AMTS."
752  PRINT"   ----------              -----------       -----------"
754  PRINT
760  PRINT USING "\                   \   ####.##  PERCENT";F$;A;
762  PRINT  USING "    ####.##  \   \";A*0.01* W1
778  PRINT
780  PRINT USING "\                   \   ####.##  PERCENT";G$;B;
782  PRINT  USING "    ####.##  \   \";B*0.01* W1
798  PRINT : IF H$ = "" THEN 820
800  PRINT USING "\                   \   ####.##  PERCENT";H$;O7 * 100;
802  PRINT  USING "    ####.##  \   \";O7 * W1
818  PRINT
820  PRINT USING "\                   \   ####.##  PERCENT";I$;I1 * 100;
822  PRINT  USING "    ####.##  \   \";I1 * W1
840   PRINT :  PRINT
850  PRINT USING "        PERCENT CALCIUM IN MIX...  ####.##";C
870  PRINT USING "        PERCENT PHOSPHROUS IN MIX  ####.##";D
873  PRINT
875  PRINT : GOSUB 49007
877 IF PR$ ="Y" THEN 8740
895  PRINT
900  PRINT "ANOTHER MIX ? 0 = NO, 1 = YES, 2 = NEW NUTRIENT LEVEL ";
910  INPUT K1
920  IF K1 = 1 THEN  GOSUB 38: S9 = 5 :IF K1 = 1 THEN 100
930  IF K1 <  > 2 GOTO 42900
935  PRINT
940  PRINT "ENTER NEW NUTRIENT PCT LEVEL FOR THE COMPLETED MIX ";
950  INPUT O0
960 O0 = O0 * 0.01
970  GOTO 450
1410 Y$(1) = "PROTEIN"
1415 Y$(2) = "12.00"
1420 Y$(3) = "SHELLED CORN"
1425 Y$(4) = "8.9"
1430 Y$(5) = ".01"
1435 Y$(6) = ".25"
1440 Y$(7) = "SOYBEAN MEAL"
1445 Y$(8) = "44.0"
1450 Y$(9) = ".25"
1455 Y$(10) = ".6"
1460 Y$(11) = "ALFALFA MEAL"
1465 Y$(12) = "17.0"
1470 Y$(13) = "1.3"
1475 Y$(14) = ".23"
1480 Y$(15) = "5"
1485 Y$(16) = "DICALCIUM PHOS"
1490 Y$(17) = "4.25"
1493 Y$(18) = "22.7"
1497 Y$(19) = "9.25"
1510  REM  TO AVOID RE-DIMENSIONING ERRORS, DIM DECLARATIONS SHOULD BE MOVED TO THE 'TOP' OF THE PROGRAM
1520 K2 = 11:CH = 65
1540  REM  DEFAULT DATA VALUES FOR THIS INPUT SECTION
1550 QQ$(1) = "ENTER NAME OF THE NUTRIENT TO BALANCED IN THE RATION........... "
1560 QQ$(2) = "ENTER THE REQUIRED PERCENT OF THE NUTRIENT IN THE RATION....(%) "
1570 QQ$(3) = "NAME OF FEEDSTUFF.............................................. "
1580 QQ$(4) = "ENTER PERCENT OF THE NUTRIENT IN THIS FEEDSTUFF.............(%) "
1590 QQ$(5) = "ENTER PERCENT OF CALCIUM IN THIS FEEDSTUFF..................(%) "
1600 QQ$(6) = "ENTER PERCENT OF PHOSPHOROUS IN THIS FEEDSTUFF..............(%) "
1610 QQ$(7) = "ENTER PERCENT OF THE 3RD FEEDSTUFF TO BE PUT IN THE RATION..(%) "
1620 QQ$(8) = "ENTER THE NAME OF THE MINERAL SOURCE IN THE RATION............. "
1630 QQ$(9) = "ENTER PERCENT OF THE MINERAL SOURCE ITSELF IN THE RATION....(%) "
1640 QQ$(10)= "ENTER PERCENT OF CALCIUM IN THE MINERAL SOURCE..............(%) "
1643 QQ$(11)= "ENTER PERCENT OF PHOSPHOROUS IN THE MINERAL SOURCE..........(%) "
1650 RETURN
1660 REM -------------END SETUP & BEGIN DATA ENTRY SUBS ------------
1670  GOSUB 38
1680  LOCATE ,25: GOSUB 51 :PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
1690  GOSUB 50
1700  GOSUB 39
1710 YY = 1:H = 0:J = 1
1715  REM
1720 H = H + 1: IF H = 3 THEN J = 11
1725  IF H = 2 THEN J = 7
1727  FOR I = YY TO 6
1728 IF H = 3 AND I = 4 THEN GOSUB 51 : PRINT " DO NOT WANT THIRD FEED? ENTER '0' OR 'NONE' ": GOSUB 50 : GOTO 1740
1730  PRINT
1740  IF I = 3 THEN  GOSUB 50010: GOTO 1760
1750  PRINT QQ$(I);Y$(J)
1755 IF H = 3 AND I = 6 THEN PRINT : PRINT QQ$(7);Y$(15)
1760 J = J + 1
1770  NEXT I
1772 IF FLAG = 5 THEN RETURN
1775 IF S9 = 4 THEN GOSUB 49000:IF H < > 3 THEN YY = 3 : GOTO 1715
1776 IF S9 = 4 THEN 1800
1780  GOTO 1910
1800  FOR I = 8 TO 11
1810 J = I + 8
1820  PRINT
1825 IF Y$(11) = "0" AND I = 7 THEN PRINT : GOTO 1840
1826 IF Y$(11) = "NONE" AND I = 7 THEN PRINT : GOTO 1840
1830  PRINT QQ$(I);Y$(J)
1840  NEXT I
1845 IF S9 = 4 THEN GOSUB 49000:GOTO 3000
1850  GOSUB 41: GOSUB 49910:GOSUB 40210
1860  RETURN
1910  GOSUB 41: GOSUB 49910:GOSUB 40210
1911 J = 1
1915  IF H > 1 THEN 1977
1918 GOSUB 40210
1920 LQ = 1:LN = 2: GOSUB 40
1930  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
1940  GOSUB 40210
1945 J = J + 1
1950 LQ = 2:LN = 4: GOSUB 40
1960  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
1970  GOSUB 40210
1975 J = J + 1
1977  IF H = 3 THEN LQ = 10 :J = 11 : IF Y$(11) = "0" OR Y$(11)= "NONE" THEN FLAG = 5
1978  IF H = 2 THEN LQ = 6 : J = 7
1979 GOSUB 40210
1980 LQ = LQ + 1:LN = 6: GOSUB 40
1990  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
1992 IF H = 3 THEN DDD = 3 :IF Y$(11) = "0" OR Y$(11) = "NONE" THEN LOCATE ,,0: FOR I = 1 TO 10 : PRINT SPC(79) : NEXT I : LOCATE ,,1 : GOTO 2084
1995 IF FLAG = 5 THEN YY = 4 : J = 12 :GOSUB 1727
1997 FLAG = 0
2000  GOSUB 40210
2005 J = J + 1
2010 LQ = LQ + 1:LN = 8: GOSUB 40
2020  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
2030  GOSUB 40210
2035 J = J + 1
2040 LQ = LQ + 1:LN = 10: GOSUB 40
2050  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
2060  GOSUB 40210
2065 J = J + 1
2070 LQ = LQ + 1:LN = 12: GOSUB 40
2080  GOSUB 40230: IF ZN$ <  > "" THEN Y$(J) = ZN$
2081 J = J + 1
2082 IF H = 3 THEN GOSUB 2100
2084  GOSUB 6000
2085  IF H = 3 THEN 2095
2086 CX = 1:CY = CY - 2: GOSUB 42: GOSUB 45
2087 YY = 3:CX = 1:CY = 6: GOSUB 42: LOCATE ,,0
2088 FOR I = 1 TO 10 : PRINT SPC(79) : NEXT I : CX = 1 : CY = 6 : GOSUB 42 : LOCATE ,,1 : GOTO 1715
2095  GOSUB 2370
2097  J = 8 :GOSUB 1800
2098  GOTO 2125
2100 LQ = 15:LN =14: GOSUB 40
2110  GOSUB 40230: IF ZN$ <  > "" THEN Y$(15) = ZN$
2120  GOSUB 40210:RETURN
2125 GOSUB 40210
2130 LQ = 16:LN = 2: GOSUB 40
2140  GOSUB 40230: IF ZN$ <  > "" THEN Y$(16) = ZN$
2150  GOSUB 40210
2160 LQ = 17:LN = 4: GOSUB 40
2170  GOSUB 40230: IF ZN$ <  > "" THEN Y$(17) = ZN$
2180  GOSUB 40210
2190 LQ = 18:LN = 6: GOSUB 40
2200  GOSUB 40230: IF ZN$ <  > "" THEN Y$(18) = ZN$
2205  GOSUB 40210
2207 LQ = 19:LN = 8: GOSUB 40
2210  GOSUB 40230: IF ZN$ <  > "" THEN Y$(19) = ZN$
2215  GOTO 2460
2370  GOSUB 38
2380  LOCATE ,25: GOSUB 51:PRINT "<RETURN> = ACCEPT THE DEFAULT VALUE(S) "
2390  GOSUB 50
2400  GOSUB 39
2405  RETURN
2460  REM
2470  GOSUB 40210:CX = 1:CY = CV + LN + 2: GOSUB 42
2480  GOSUB 51
2490  GOSUB 41:PRINT:PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR Q = QUIT ENTIRE ANALYSIS ";
2510  GOSUB 50
2520 GOSUB 40610
2540  IF Z$ = "Q" THEN 42900
2550  IF Z$ = "N" THEN 2098
2560  IF Z$ < > "Y" THEN 2470
2570 GOSUB 48700
3000 N$ = Y$(1):F$ = Y$(3):G$ = Y$(7):H$ = Y$(11):I$ = Y$(16)
3010 IF Y$(11) = "0" OR Y$(11) = "NONE" THEN H$ = "" : FOR I = 12 TO 15 : Y$(I) = "0" : NEXT I
3100 J = 0
3110  FOR I = 1 TO 19
3120  IF I = 1 OR I = 3 OR I = 7 OR I = 11 OR I = 16 THEN 3200
3130 J = J + 1
3140 Y(J) =  VAL (Y$(I))
3200  NEXT I
3350 RETURN
3499 REM ---------------------CHANGE VARIABLE NAMES  SUB ----------
3500 O0 = Y(1):O1 = Y(2):O2 = Y(3):O3 = Y(4):O4 = Y(5):O5 = Y(6):O6 = Y(7)
3510 O7 = Y(11):O8 = Y(8):O9 = Y(9):I0 = Y(10):I1 = Y(12):I2 = Y(13):I3 = Y(14)
3550 RETURN
3560 REM ------------------------------------------------------------
4000 REM -----begin explaination screen
4010  GOSUB 38
4020  LQ$(1) ="PEARSON SQUARE uses a simple ratio calculation procedure"
4025  LQ$(2) ="to determine how much of two feed stuffs is required to"
4030  LQ$(3) ="satisfy a user specified nutrient requirement level."
4035  LQ$(4) ="The user may select any nutrient of interest such as"
4040  LQ$(5) ="crude protein or ENE or total digestable nutrients."
4042  LQ$(6) =" "
4045  LQ$(7) ="This particular MINN-AID also allows the user to include"
4050  LQ$(8) ="a third feed stuff at a specified level as part of the"
4055  LQ$(9) ="ration.   It also requires data on the mineral content of"
4060  LQ$(10) ="all the feed stuffs plus a added mineral supplement.   It"
4065  LQ$(11) ="uses these data to calculate the calcium & phosphorous"
4070  LQ$(12) ="content of the resulting mixed ration."
4075  FOR I = 1 TO 12: IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 4090
4080  PRINT SPC(15);LQ$(I) : IF I <> 6 THEN PRINT
4090  NEXT I : GOSUB 49000 : RETURN
4095 REM ---end explaination sub --------------------
6000  REM
6010  GOSUB 40210:CX = 1:CY = CV + LN + 2: GOSUB 42
6020  GOSUB 51
6030  GOSUB 41:PRINT:PRINT "DATA OK?..WANT TO GO AHEAD (Y OR N) OR Q = QUIT ENTIRE ANALYIS ";
6050  GOSUB 50
6060 GOSUB 40610
6080  IF Z$ = "Q" THEN 42900
6085  IF H = 1 THEN 6090
6087  IF Z$ = "N" THEN 1977
6090  IF Z$ = "N" THEN 1918
7000  IF Z$ < > "Y" THEN 6010
7010  REM   END THIS INPUT SECTION
7020  RETURN
8700 REM-------------PRINTED RESULTS SUB START -------------
8740 LPRINT :LPRINT
8742  LPRINT : LPRINT SPC(11)"NECESSARY BATCH AMOUNTS FOR A "; O0 * 100;"% ";N$;"  MIX"
8746 LPRINT SPC(20)"BATCH SIZE OF "; W1;K$
8748 LPRINT  :LPRINT
8750 LPRINT"   INGREDIENT              PROPORTIONS       BATCH AMTS."
8752 LPRINT"   ----------              -----------       -----------"
8754 LPRINT
8760 LPRINT USING "\                   \   ####.##  PERCENT";F$;A;
8762 LPRINT  USING "    ####.##  \   \";A*0.01* W1
8778 LPRINT
8780 LPRINT USING "\                   \   ####.##  PERCENT";G$;B;
8782 LPRINT  USING "    ####.##  \   \";B*0.01* W1
8798 LPRINT : IF H$ = "" THEN 8820
8800 LPRINT USING "\                   \   ####.##  PERCENT";H$;O7 * 100;
8802 LPRINT  USING "    ####.##  \   \";O7 * W1
8818 LPRINT
8820 LPRINT USING "\                   \   ####.##  PERCENT";I$;I1 * 100;
8822 LPRINT  USING "    ####.##  \   \";I1 * W1
8840 LPRINT : LPRINT
8850 LPRINT USING "        PERCENT CALCIUM IN MIX...  ####.##";C
8860 LPRINT "            PCT PHOSPHROUS IN MIX  ####.##";D
8870 LPRINT USING "        PERCENT PHOSPHROUS IN MIX  ####.##";D
8880 RETURN
8890 REM ------------END PRINTED RESULTS SUB ---------------
10000  GOTO 300
33485  PRINT  SPC( 5 -  LEN (ZD$));ZD$
38900 REM
39450  REM   ---------------------------------------
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39485 RETURN
39490  REM  ----------------------------------------
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45565 PRINT : PRINT"DO NOT PANIC":PRINT "It is possible to recover from certain errors without losing any data.": PRINT "DO NOT EXIT FROM THIS PROGRAM.  Continue on for instructions."
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45675 LOCATE 7,5: PRINT"REMEDY/SUGGESTION:  ";RM$
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45677 IF FLAG = 23 THEN GOSUB 49000 : FLAG = 0 : GOTO 42900
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": ZZ$ = INPUT$(1)
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 4000
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 4000
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   10/22/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   10/22/83               IBM - PC   !"
47350  PRINT SPC(20)"!            PEARSON SQUARE           !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!  CALCULATES NECESSARY BATCH AMOUNTS !"
47380  PRINT SPC(20)"!    FOR A FIXED AMOUNT OF PROTEIN    !"
47390  PRINT SPC(20)"!   ALSO CALCULATES NEW NUTRIENT %'S  !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   10/22/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   10/22/83              (IBM - PC)  !"
48310  LPRINT "!           PEARSON SQUARE            !"
48320  LPRINT "!                                     !"
48330  LPRINT "!  CALCULATES NECESSARY BATCH AMOUNTS !"
48340  LPRINT "!    FOR A FIXED AMOUNT OF PROTEIN    !"
48350  LPRINT "!   ALSO CALCULATES NEW NUTRIENT %'S  !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50:GOSUB 49007:RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "Pearson Square Feed Mix Ratio Calculations for a Given Nutrient Level"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149 K2 = 11
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50000  PRINT K;" ";
50010  IF H = 3 THEN RR$ = "RD ": GOSUB 50090: GOTO 50060
50020 IF H = 2 THEN RR$ = "ND " : GOSUB 50090:GOTO 50060
50030 RR$ = "ST ": GOSUB 50090
50060  IF PQ$ <  > "Y" THEN 50080
50070  PRINT "          ";Y$(K)
50073  IF H = 1 THEN  RETURN
50075  RETURN
50080  PRINT Y$(J)
50085  RETURN
50090  PRINT "ENTER THE NAME OF THE "; : GOSUB 51 : PRINT H; RR$; :GOSUB 50 : PRINT " FEEDSTUFF TO BE USED.............. ";
50095  RETURN
50100  REM     LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41: GOSUB 45
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 19 GOTO 50300
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50150,50170,50140,50150,50150,50210,50140,50150,50150,50250,50260,50267,50150,50150
50110  LQ$ = "Name of the nutrient of (critical?) interest such as protein, ENE or TDN"
50119  GOTO 50300
50120  LQ$ = "Based upon nutritional considerations, the percentage the ration should have."
50129  GOTO 50300
50130  LQ$ = "The 1st feed stuff to be varied but used in the ration mix."
50139  GOTO 50300
50140  LQ$ = "The percent nutrient content on `AS IS' or `Dry Matter Basis' BE consistent"
50149  GOTO 50300
50150  LQ$ = "Again be consistent between feed stuffs in using either `AS IS' or `DMB'"
50159  GOTO 50300
50170  LQ$ = "The 2nd feed stuff to be varied but used in the ration mix."
50179  GOTO 50300
50180  LQ$ = "The percent nutrient content on `AS IS' or `Dry Matter Basis' BE consistent"
50189  GOTO 50300
50210  LQ$ = "The 3rd. feedstuff is not part of the ratio; it's use level is user given."
50219  GOTO 50300
50250  LQ$ = "The 3rd. feed stuff's level is user set & is not part of the ratio calculation"
50259  GOTO 50300
50260  LQ$ = "Simply describe the mineral supplement to be put in the mix."
50265  GOTO 50300
50267  LQ$ = "The mineral source will be in the mix at the percentage level you specify."
50269  GOTO 50300
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN
53024 0!,2000,24,40,0.71,0.5
53025 REM ------------------------------------------

README.DOC

		MINNAIDS 4/11/84 U. OF MINNESOTA
MENU     BAS     6016  Menu program for BASIC pgms on this disk
ACRSCALC BAS    30976  Analysis of Federal Depreciation Computations
BESTCROP BAS    24448  Price & Yield Analysis of Crop Choices (Equal-margin)
DRYSTORE BAS    32000  Analysis of Harvest and Storage Cost & Alternatives
DATECALC BAS     9600  Computes Future (Gestation) Dates & Calendars
FEEDSILO BAS     3968  Calculates Likely Dairy Feed in a Silo Given Feed Rate
PEARSON  BAS    27008  Balances 1 Ration Nutrient from 2 Feed Sources
STEERBID BAS     7808  Calculates Equivalent FOB prices for Fat Steers at Farm
FEEDPIGS BAS    32512  Should I Feed Out a Batch of Feeder Pigs ?
AUTOEXEC BAT      128  Automatic instructions to read this file
USERDOCS BAS     3712  Explains How to Make Hardcopy Documentation of MINNAIDS
ULOGO    BAS     1251  University of Minnesota Logo - START HERE - or at MENU
TIMEC    COM     1183  ???  No info at (U/M)
SDIR     COM     1072  Sorted directory with other good features
SDIR     DOC           SDIR feature documentation
FEEDVALU BAS    21632  Given Corn & SBM Values, What's a Feed Worth ?
FARMBID  BAS    29568  Determines the Maximum Bid Price for Land or a Farm.
SOWINDEX BAS    28672  Computes a Sow Index, Relative to the Group; files them
READ     BAT      256  Batch file to provide instructions for SCROLLCK.COM
SCROLLCK COM      512  Scroll lock - control with shift keys - no info @ (U/M)
README   DOC     1536  This file
CROLLCK.COM
SCROLLCK COM      512  Sc

SOWINDEX.BAS

5 CLEAR ,&HFFFF :GOSUB 48510
20 REM IBM PC VERSION OF SKELETON 01/01/83 E.I.F. AGR. ECON., AGR. EXP. STATION & AGR. EXT. SERVICE UNIV/MINN.
22 REM GOSUB 48700 : REM KEYOFF-RETURN ?????
24 KD$ ="A:" : REM DEFAULT DISK DRIVE
25  REM   K$ = DISK DATA FILE NAME
27  REM   N1 - N2 - M1 - M2 - I - T ARE SOMETIMES USED TO COUNT LINES ETC.
28  REM   K2 - K3 USED TO COUNT NO OF INPUT OR OUTPUT QUESTIONS OR LINES
30 REM WL = 6: REM   DEFAULT WHOLE NO. PART OF DATA ENTRY (CHANGE INTERNALLY AS REQUIRED)
31  REM   PR$ = (Y OR N) ;PRINTED RESULTS?
32  REM   PQ$ = (Y OR N) ;LIST QUESTIONAIRE?
33  REM    Z$ = (Y OR N) ; SWITCH FOR GENERAL USE
34  REM   ZN - ZN$ - ZD - ZD$ - CH$ ARE TEMPORARY INPUT & OUTPUT DATA VARIABLES (REUSED).
35  ON ERROR GOTO 45530
36  GOTO 54
37  REM  NEXT 20-30 LINES CONTAIN CURSOR CONTROL COMMANDS TO BE CHANGED FOR OTHER DIALECTS
38  CLS : RETURN
39 CV =  CSRLIN-1 : RETURN : REM   LOCATE CURSOR VERTICALLY
40 CX = CH : CY = CV + LN : GOTO 42
41 CX = 1: CY=ZM
42  LOCATE CY,CX,1,1,10:RETURN
43 CX=POS(0):LOCATE CY,CX,0:PRINT SPC(79-CX); : LOCATE ,CX,1:RETURN : REM   CLEAR TO END OF LINE
44 CH =  POS(0):CV =  CSRLIN + 1: RETURN : REM LOCATE CURSOR  POSITION
45 GOSUB 40210 : REM CLEAR REST OF SCREEN (BELOW LINE ZM ANYWAY)
46  IF CV < 1 THEN CV = 1: REM   BOUND CURSOR MOVEMENT TO SCREEN AREA
47  IF CV > ZM THEN CV = ZM
48 CX = CV + 1: LOCATE CX,,1: GOSUB 43: RETURN
49  LOCATE ,CH + 1 +  LEN (ZN$): GOSUB 43: RETURN
50 COLOR 7,0 : RETURN : REM SET NORMAL SCREEN
51 COLOR 0,7 : RETURN : REM SET INVERSE SCREEN
52  REM  50-52 TO TRIGGER REVERSE SCREEN BRIGHTNESS
53  REM   ER$ - EL - EC = ERROR PROCEDURE VALUES AT 45540-50
54 ZM = 22: REM   ERROR MESSAGE ON SCREEN LOCATION.
55 ZS = 2: REM    START TO SCROLL IF NEAR ERROR MESSAGE SPACE.
56  REM   LQ = INPUT QUESTION NUMBER FOR HELPS PROCEDURE AT 50100
57  REM   IDO = 1,2 - A DOUBLE SPACE SWITCH
58 ES$ =  CHR$(27) : REM   ESCAPE TO RETURN TO MAIN MENU AT 100?
59 QE$ =  CHR$(17): QU$ = "QUIT":REM    CNTL Q = Q(UIT)-RETURN
60 BL$ = CHR$(7)
61 BS$ =  CHR$ (8): REM    LEFT ARROW
62 CR$ = CHR$(13)
63 NAK$ =  CHR$ (21): REM    RIGHT ARROW
64  REM    ABOVE 4 CHARACTERS FOR SUB AT 40300
65 PR$ = "N":PP$="OFF":CC$="N"
66 REM  GOSUB 38:LOCATE,,0,1,10: REM GOSUB 48700 : REM TURNS KEY OFF @ 22 ????
67  DIM ID$(100),Y$(100),DA(100),NS(100),WD(100),NB(100),WX(100),NX(100)
68  DIM QQ$(6),LQ$(26)
70  REM    END DIMENSION SPACE
75 GOSUB 1000
80  GOSUB 47300
90 REM
100  GOSUB 46000
105  IF S9 = 4 THEN 200
110  IF S9 = 5 THEN  GOSUB 38: PRINT : PRINT "DO YOU WANT TO ADD NEW SOWS TO AN EXISTING FILE (Y/N) ";
120  GOSUB 40610 : IF Z$ = "Y" THEN S9 = 8: GOTO 5162
130  IF Z$ <  > "N" THEN 120
200  GOSUB 1125
400  IF S9 = 5 THEN  GOSUB 2000
410  GOSUB 38: PRINT : PRINT "WANT TO STORE THIS DATA TO FILE ";
420  GOSUB 40610 :IF  LEFT$ (Z$,1) = "Y" THEN  GOSUB 5020
430  GOSUB 38: GOTO 100
490 REM ------------------BEGIN INITIAL SCREEN SUB -------------------
500  GOSUB 38
505 LQ$(1) = "                    SOW PRODUCTIVITY INDEX"
510 LQ$(2) = " "
520 LQ$(3) = "  This program evaluates sow productivity on an individual and"
530 LQ$(4) = "herd comparison basis.  It adjusts for gilt versus sows, num-"
540 LQ$(5) = "ber born alive, number nursed and pig gain (milking ability)."
550 LQ$(6) = "It offers an comparative ranking of the group." : LQ$(7) = " "
575  LQ$(8) =  "(1) 21 DAY WEIGHT IS = WT * (27/AGE+6)"
580  LQ$(9) =  "(2) IF LESS THAN 10 PIGS ARE NURSED THEN:"
585  LQ$(10) =  "   A) FOR GILTS 9 POUNDS ARE ADDED"
590  LQ$(11) = "   B) FOR SOWS 10 POUNDS ARE ADDED"
595  LQ$(12) =  "   C) TO THE 21 DAY WEIGHT FOR EACH PIG UNDER 10 NURSED."
600  LQ$(13) = "(3) 17 POUNDS ARE ADDED TO THE 21 DAY WT. TO EQUIVALENT GILTS TO SOW INDEX BASE."
610  LQ$(14) = "(4) 1.3 PIGS ARE ALSO ADDED TO GILTS TO ADJUST TO THE SOW INDEX BASE,"
615  LQ$(15) = "(5) FOR THE NUMBER FARROWED ALIVE (NFA)."
620  LQ$(16) = "(6) THE SOW PRODUCTIVITY INDEX IS THEN,"
625  LQ$(17) = "(7) SPI =(6.5*NFA)+21 DAY LITTER WEIGHT."
627  LQ$(18) = " " : LQ$(19) = "USE OF MENU OPTION 4 ALLOWS YOU TO:"
628  LQ$(20) = "  1. run an example set of sow data,"
629  LQ$(21) = "  2. view data previously stored on a file, or"
630  LQ$(22) = "  3. make changes in the previously stored data including deleting sows from a file entirely."
631  LQ$(23) = " " : LQ$(24) = "USE OF MENU OPTION 5 ALLOWS YOU TO:"
632  LQ$(25)= "  1. create entirely new files of sows, or"
633  LQ$(26) = "  2. insert new sows into an existing data file."
640 FOR I = 1 TO 26
642 IF PQ$ = "Y" THEN LPRINT LQ$(I) : GOTO 648
644 IF PR$ = "Y" THEN  LPRINT LQ$(I) ELSE PRINT LQ$(I)
646 IF I = 17 THEN GOSUB 49007 : GOSUB 38
648 NEXT I
650 IF PQ$ = "Y" THEN RETURN
652 GOSUB 49007 : RETURN
660 REM --------------------END INITIAL SCREEN SUB -------------------
1000 K2 = 6:CH = 42
1005  IF S9 = 4 THEN 1050
1010  GOSUB 38:CH = 42
1020  GOSUB 51
1030  PRINT "TYPE A  0 AT ITEM 1 TO QUIT DATA ENTRY"
1035  PRINT
1037  PRINT "ENTER DATA ON SPECIFIC SOW OR GILT"
1040  GOSUB 50: IF S9 = 4 THEN  RETURN
1050 QQ$(1) = "SOW ID NUMBER OR NAME (UP TO 10 CHRS.).. "
1060 QQ$(2) = "PARITY;(ENTER G = GILT & S = SOW)....... "
1070 QQ$(3) = "AGE IN DAYS OF LITTER AT WEIGHING......."
1080 QQ$(4) = "NUMBER OF PIGS NURSED TO WEIGH DATE....."
1090 QQ$(5) = "WEIGHT OF ENTIRE LITTER ON WEIGH DATE..."
1100 QQ$(6) = "NUMBER OF PIGS BORN ALIVE..............."
1105 RETURN
1110 REM ------------END INPUT SETUP ---BEGIN INPUT SUB --------------
1115  IF S9 = 4 THEN 6000
1125  PRINT
1127  GOSUB 39:CV = CV + 1
1130  PRINT "SOW/GILT POSITION IN THE FILE...........  ";I
1134  PRINT
1140  PRINT QQ$(1);"       "
1150  PRINT
1160  PRINT QQ$(2);"       "
1170  PRINT
1180  PRINT QQ$(3);"       "
1190  PRINT
1200  PRINT QQ$(4);"       "
1210  PRINT
1220  PRINT QQ$(5);"       "
1230  PRINT
1240  PRINT QQ$(6);"       "
1245  GOSUB 49910
1250  GOSUB 40210
1260 LQ = 1:LN = 2:CX = CH:CY = CV + LN: GOSUB 42
1270  GOSUB 40230: IF ZN$ <  > "" THEN ID$(I) = ZN$
1274  IF ID$(I) = "" GOTO 1260
1280  IF ID$(I) = "0" THEN T = I - 1: GOTO 1600
1290  GOSUB 40210
1300 LQ = 2:LN = 4:CX = CH:CY = CV + LN: GOSUB 42
1310  GOSUB 40230: IF ZN$ <  > "" THEN Y$(I) = ZN$
1312  IF Y$(I) = "G" OR Y$(I) = "S" THEN 1320
1313  GOSUB 51
1314  GOSUB 40210: PRINT  CHR$ (7);: PRINT "YOU MUST RESPOND WITH A 'G' OR A 'S',RE-DO";: GOSUB 50
1315  GOTO 1300
1320  GOSUB 40210
1330 LQ = 3:LN = 6:CX = CH:CY = CV + LN: GOSUB 42
1340  GOSUB 40000: IF ZN$ <  > "" THEN DA(I) = ZN
1350 LO = 14:HI = 29
1360  IF DA(I) < LO OR DA(I) > HI THEN  GOSUB 40150:CX = CH:CY = CV + LN: GOSUB 42: GOTO 1330
1370  GOSUB 40210
1380 LQ = 4:LN = 8:CX = CH:CY = CV + LN: GOSUB 42
1390  GOSUB 40000: IF ZN$ <  > "" THEN NS(I) = ZN
1400 LO = 1:HI = 16:CX = CH:CY = CV + LN: GOSUB 42
1410  IF NS(I) < LO OR NS(I) > HI THEN  GOSUB 40150:CX = CH:CY = CV + LN: GOSUB 42: GOTO 1380
1420  GOSUB 40210
1430 LQ = 5:LN = 10:CX = CH:CY = CV + LN: GOSUB 42
1440  GOSUB 40000: IF ZN$ <  > "" THEN WD(I) = ZN
1450 LO = 20:HI = 500
1460  IF WD(I) < LO OR WD(I) > HI THEN  GOSUB 40150:CX = CH:CY = CV + LN: GOSUB 42: GOTO 1430
1470  GOSUB 40210
1480 LQ = 6:LN = 12:CX = CH:CY = CV + LN: GOSUB 42
1490  GOSUB 40000: IF ZN$ <  > "" THEN NB(I) = ZN
1500 LO = NS(I):HI = 20
1510  IF NB(I) < LO OR NB(I) > HI THEN  GOSUB 40150:CX = CH:CY = CV + LN: GOSUB 42: GOTO 1480
1530 GOSUB 40210 : GOSUB 41
1542  GOSUB 51
1544  PRINT "DATA OK?..(Y OR N), CNTL-E = QUIT DATA ENTRY, ";
1547  IF S9 = 6 THEN 1551
1549  PRINT "CNTL-Q = RETURN TO MENU ";: GOTO 1555
1550  PRINT "DATA OK?..(Y OR N), CNTL-E = QUIT DATA ENTRY, ";
1551  PRINT "CNTL-Q = RETURN TO MENU ";
1552  IF S9 = 6 THEN  PRINT "CNTL-D = DELETE SOW FROM FILE ";
1555  GOSUB 50
1560  GOSUB 40610
1562  IF Z$ =  CHR$ (4) THEN D = I + 1: GOSUB 8000:I = D - 2: GOTO 1574
1565  IF  Z$ = QE$ THEN 38900
1567  IF  Z$ =  CHR$ (5) THEN T = I: RETURN
1570  IF  Z$ = "N" THEN GOSUB 40210 : GOTO 1260
1573  IF  Z$ <  > "Y" THEN 1530
1574  IF S9 = 6 THEN  RETURN
1575 T = I
1580  IF I = 100 GOTO 1574
1590 I = I + 1: GOSUB 40210 :CH = 1 : CV = CV-1 : LN = 0 : GOSUB 40 : GOTO 1130
1600  RETURN
1610  REM
2000 AB = 0:AN = 0:AA = 0:AI = 0
2005 JP = 0
2890  IF T < 1 THEN GOSUB 38 : GOTO 100
2900  FOR I = 1 TO T
2905  GOSUB 4000
2910 AB = AB + NX(I)
2920 AN = AN + NS(I)
2930 AA = AA + WX(I)
2940 AI = AI + SX(I)
2946 ID$(I) =  LEFT$ (ID$(I),7)
2950  NEXT I
2960 AB = AB / T
2970 AN = AN / T
2980 AA = AA / T
2990 AI = AI / T
3000 REM -----------------------------------------------------------
3010  REM   BEGIN  TABLE STUBS SECTION
3020 SB$(1) = "21 DAY ADJUSTED ENTIRE LITTER WEIGHT LB."
3030 SB$(2) = "SOW'S PRODUCTIVITY INDEX NUMBER........."
3040 SB$(3) = "SOW'S ID NUMBER OR NAME................."
3050 SB$(4) = "NUMBER OF SOWS IN THIS GROUP............"
3055 C(4) = T
3060 SB$(5) = "AVERAGE NUMBER OF PIGS BORN ALIVE......."
3065 C(5) = AB
3070 SB$(6) = "AVERAGE 21 DAY ADJUSTED LITTER WEIGHT..."
3075 C(6) = AA
3080 SB$(7) = "AVERAGE NUMBER NURSED TO WEIGH DATE....."
3085 C(7) = AN
3090 SB$(8) = "AVERAGE PRODUCTIVITY NUMBER THIS GROUP.."
3095 C(8) = AI
3097 GOSUB 48700
3100  REM   START  TABLE COL. HEADERS
3110  GOSUB 38
3155  PRINT "    CALCULATED SOW PRODUCTIVITY INDEXES"
3160  PRINT
3165  PRINT ".. FOR THE AVERAGE OF THIS SOW GROUP.."
3170  PRINT
3172 IF PR$ <> "Y" THEN 3195
3175 LPRINT "    CALCULATED SOW PRODUCTIVITY INDEXES"
3180 LPRINT
3185  LPRINT ".. FOR THE AVERAGE OF THIS SOW GROUP.."
3190  LPRINT
3195 M1 = 4:M2 = 8
3200  FOR I = M1 TO M2
3220  PRINT SB$(I);
3230 PRINT USING "#####.##"; C(I)
3240 PRINT
3245 IF PR$ <> "Y" THEN 3280
3250 LPRINT SB$(I);
3260 LPRINT USING "#####.##"; C(I)
3270 LPRINT
3280  NEXT I
3282  REM IF JP > 0 THEN 3285
3285  IF JP > 0 THEN  RETURN
3290  REM   BEGIN EACH SOW LIST
3300 M1 = 1:M2 = 2
3302  PRINT : PRINT "..FOR EACH SOW IN THE GROUP...."
3303  IF PR$ <  > "Y" THEN  PRINT : GOSUB 49000: GOSUB 38
3304  PRINT
3305  PRINT : PRINT "..FOR EACH SOW IN THE GROUP...."
3306  IF PR$ <  > "Y" THEN  3310
3308 LPRINT : LPRINT "..FOR EACH SOW IN THE GROUP...."
3309 LPRINT
3310  FOR J = 1 TO T
3320 C(1) = WD(J)
3330 C(2) = SX(J)
3335  PRINT "SOW'S NUMERIC POSITION IN THE FILE....    ";J
3337  PRINT
3340  PRINT SB$(3);"  ";ID$(J)
3350  GOSUB 3190
3355  REM
3356  PRINT : PRINT
3357  GOSUB 49007: GOSUB 38
3360  IF PR$ <  > "Y" THEN  3390
3365 LPRINT "SOW'S NUMERIC POSITION IN THE FILE....    ";J
3370 LPRINT
3375 LPRINT SB$(3);"  ";ID$(J)
3380 LPRINT
3390  NEXT J
3400  REM IF PR$ = "Y" THEN  GOSUB 39430:PR$ = "N"
3500  RETURN
3999  REM   PROCEDURE FOR CALCULATING INDIVIDUAL SOW INDEXES (BEGIN)
4000 WX(I) = WD(I) * (27 / (DA(I) + 6))
4008  IF Y$(I) = "S" THEN 4060
4010 WX(I) = WX(I) + 17
4020  IF NS(I) > 9 THEN 4040
4030 WX(I) = WX(I) + 9 * NS(I)
4040 NX(I) = NB(I) + 1.3
4050  GOTO 4080
4060  IF NS(I) > 9 THEN 4075
4070 WX(I) = WX(I) + 10 * NS(I)
4075 NX(I) = NB(I)
4080 SX(I) = (6.5 * NX(I)) + WX(I)
4090  RETURN : REM -------- END INDEX CALC PROCEDURE ------
4100 REM -----------------------------------------------------------
5000  REM  SAVE INPUT DATA TO SEQUENTIAL FILE CM$ = ","
5010  PRINT
5015 EP = 5
5020  PRINT "FILE NAME TO SAVE DATA UNDER <CR> = SKIP IT ";
5030  INPUT K$
5040  IF  LEFT$ (K$,1) = " " THEN  RETURN
5050  GOSUB 39000
5060  ON ERROR  GOTO 45500
5070  GOSUB 39217
5075  REM  APPEND K$
5080  REM  WRITE NEW DATA TO FILE;
5085 Z$ =  STR$ (T)
5086  PRINT#1,Z$
5090  FOR I = 1 TO T
5100 Z$ = ID$(I) + CM$ + Y$(I) + CM$ +  STR$ (DA(I)) + CM$ +  STR$ (NS(I))
5105 Z$ = Z$ + CM$ +  STR$ (WD(I)) + CM$ +  STR$ (NB(I)) + CM$ +  STR$ (SX(I))
5110  PRINT#1,Z$
5120  NEXT I
5130  GOSUB 39310
5133 EP = 0
5134 IF EC > 0 THEN GOTO 42900
5135  PRINT
5140  PRINT "WANT TO ANALYZE ANY OF THE PREVIOUSLY STORED DATA Y OR N ";
5150  GOSUB 40610
5160  IF Z$ <  > "Y" THEN  RETURN
5161 S9 = 6
5162  PRINT
5165  PRINT "NAME OF FILE TO ANALYZE ";: INPUT K$
5166  PRINT
5167  GOSUB 39000
5168  PRINT
5170 EP = 3
5195 I1 = 1
5220  GOSUB 39100
5225  REM  POSITIONK$,I1
5226  INPUT#1,T
5230  FOR I = I1 TO T
5240  INPUT#1,ID$(I),Y$(I),DA(I),NS(I),WD(I),NB(I),SX(I)
5245  NEXT I
5246 EP = 0
5247  GOSUB 39310
5248  IF S9 = 8 THEN I = T + 1:S9 = 5: GOSUB 1010: GOTO 400
5250  IF EC = 5 THEN 1050
5251 GOSUB 38 : PRINT : PRINT"FILE "; : GOSUB 51 : PRINT K$; : GOSUB 50 : PRINT " CONTAINS DATA ON "; : GOSUB 51 : PRINT T; : GOSUB 50 : PRINT " SOWS." : PRINT
5253  PRINT : PRINT "SOW TO START ANALYSIS WITH...": PRINT "(ENTER NUMERIC POSITION OF SOW IN FILE) ";: INPUT BS1
5254  PRINT : PRINT "SOW TO END ANALYSIS WITH..": PRINT "(ENTER NUMERIC POSITION OF SOW IN FILE) ";: INPUT ES2
5255 IF ES2 > T THEN PRINT CHR$(7) : PRINT : GOSUB 51 : PRINT " THERE ARE ONLY ";T;" SOWS IN THIS FILE.  PLEASE TRY AGAIN." : GOSUB 50 : GOTO 5254
5265  GOSUB 6010
5270  RETURN
5280 REM ----------------------------------------------------------
6000  GOSUB 7000: IF Z = 2 THEN 410
6001  GOSUB 38: GOSUB 1010
6002 ID$(1) = "GH34":ID$(2) = "GH56":ID$(3) = "QW324":Y$(1) = "S":Y$(2) = "G":Y$(3) = "S":DA(1) = 16:DA(2) = 22:DA(3) = 21:NS(1) = 10 : NS(2) = 8
6003 NS(3) = 9:WD(1) = 250:WD(2) = 210:WD(3) = 230:NB(1) = 11:NB(2) = 10:NB(3) = 9
6005 I = 1: GOTO 6050
6010  FOR I = BS1 TO ES2
6015  GOSUB 38
6020  GOSUB 51
6030  PRINT "TYPE A  0 AT ITEM 1 TO QUIT DATA ENTRY"
6035  PRINT
6037  PRINT "ENTER DATA ON SPECIFIC SOW OR GILT"
6040  GOSUB 50
6050  PRINT
6055  GOSUB 39:CV = CV + 1
6060  PRINT "SOW/GILT POSITION IN THE FILE...........  ";I
6065  PRINT
6070  PRINT QQ$(1);"  ";ID$(I)
6075  PRINT
6080  PRINT QQ$(2);"  ";Y$(I)
6085  PRINT
6090  PRINT QQ$(3);"  ";DA(I)
6095  PRINT
6100  PRINT QQ$(4);"  ";NS(I)
6105  PRINT
6110  PRINT QQ$(5);"  ";WD(I)
6115  PRINT
6120  PRINT QQ$(6);"  ";NB(I)
6121  IF S9 = 6 THEN  PRINT :ZD = SX(I): GOSUB 45000: PRINT SB$(2);"  ";ZD$:CH = 44:JP = 0: GOSUB 1245: IF I = ES2 THEN S9 = 5 : GOTO 400
6125  IF S9 = 6 THEN  NEXT I:S9 = 5: GOTO 400
6130  PRINT : PRINT
6200  GOSUB 49000:I = I + 1: IF I = 4 THEN T = 3: GOTO 2000
6210  GOTO 6015
6220 REM ----------------------------------------------------------
7000  GOSUB 38
7010  PRINT "DO YOU WISH TO RUN THE EXAMPLE DATA OR  DO YOU WANT TO ANALYZE PREVIOUSLY STOREDDATA (1 = EXAMPLE, 2 = STORED DATA) ";
7020  INPUT Z
7030  IF Z = 2 THEN  GOSUB 5161: RETURN
7040  IF Z = 1 THEN  RETURN
7050  GOTO 7020
7060 REM ----------------------------------------------------------
8000  REM
8010  FOR I = D TO T
8020 ID$(I - 1) = ID$(I):Y$(I - 1) = Y$(I):DA(I - 1) = DA(I):NS(I - 1) = NS(I):WD(I - 1) = WD(I):NB(I - 1) = NB(I):SX(I - 1) = SX(I)
8030  NEXT I
8040 T = T - 1:ES2 = ES2 - 1
8050  RETURN
8100 GOSUB 38 : LOCATE 2,1 : PRINT "WHEN THE ERROR OCCURRED WERE YOU TRYING TO SAVE DATA TO A DISK (Y OR N)";:INPUT J$
8110 IF J$ < > "y" AND J$ < > "Y" THEN 8119
8115 GOTO 5010
8119 GOTO 5135
8200 REM ----------------------------------------------------------
39000 REM PROCEDURAL SUB TO DEFINE DISK DRIVES
39005 PRINT
39010 PRINT " THE DEFAULT DISK DRIVE IS CURRENTLY: ";KD$
39030 PRINT : PRINT "DO YOU WANT TO CHANGE THE DEFAULT DRIVE (Y OR N)";
39040 INPUT Z$ : GOSUB 48790
39050 IF Z$ = "N" THEN RETURN
39060 PRINT : PRINT "DEFAULT DRIVE SHOULD BE (A OR B)";
39070 INPUT KD$ : K2$ = KD$ :GOSUB 48750:KD$ = K2$
39075 IF KD$ < > "A" AND KD$ < > "B" THEN PRINT CHR$(7) : GOTO 39060
39080 RETURN
39090 REM**********
39100 REM SUB TO OPEN DISK FILE FOR INPUT TO PROGRAM
39110 ON ERROR GOTO 45500
39120 FILE$ = KD$ + ":" + K$ + ".DAT"
39130 OPEN "I",1,FILE$
39140 RETURN
39150 REM*********
39200 REM SUB TO OPEN DISK FILE FOR OUTPUT FROM PROGRAM
39217 ON ERROR GOTO 45500
39220 FILE$ = KD$ + ":" + K$ + ".DAT"
39230 OPEN "O",1,FILE$
39240 RETURN
39250 REM*********
39300 REM SUB TO CLOSE FILES
39310 CLOSE
39320 RETURN
39330 REM********
39450  REM   ---------------------------------------
39452 REM
39455 REM      REVERSE PRINTER SWITCH PROCEDURE
39456 REM
39457 REM
39458 REM
39460 IF PR$ ="Y" THEN PR$ = "N" :PP$ = "OFF" : GOTO 39470
39465 PR$ = "Y" : PP$ = "ON"
39470 PRINT TAB(26); : GOSUB 51
39480 PRINT "(PRINTING OPTION IS NOW SWITCHED ";PP$;")" : GOSUB 50
39482 REM
39485 RETURN
39490  REM  ----------------------------------------
39900  REM  PROCEDURE TO PRINT FREE SPACE----------
39905  PRINT
39910  PRINT "FREE MEMORY AVAILABLE NOW = "; FRE (0);" BYTES"
39915  PRINT
39920  RETURN
39930  REM ----------------------------------------
40000  REM    BEGIN DATA ENTRY PROCEDURAL SUBS -----
40007 PRINT "?"; : GOSUB 40300
40008  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40009  IF ZN$ = "" THEN 40090
40010 IF LEFT$(ZN$,4) = "MENU" THEN GOSUB 42900
40011  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40012  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN  GOSUB 50100
40013  IF  LEFT$ (ZN$,4) = "HELP" THEN  GOSUB 50100
40014  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40015  IF ZN$ = "HELP" THEN ZN$ = "0": GOTO 40037
40017  IF  VAL (ZN$) = 0 AND  LEFT$ (ZN$,1) <  > "0" THEN 40030
40019  GOTO 40090
40030 GOSUB 40210
40031 GOSUB 45
40035  PRINT  CHR$ (7);: GOSUB 51: PRINT "  THAT IS NOT A NUMBER - TRY AGAIN!   "; : GOSUB 50
40037  GOSUB 40100
40038  GOTO 40007
40060  REM     ZM MUST BE SET TO MESSAGE IN WINDOW LOCATION. & CLEAR REST OF SCREEN.
40061  GOSUB 43
40065  GOSUB 41
40070 GOSUB 40210
40080  IF  LEN (ZN$) <  > WL AND FL = 0 GOTO 40500
40090 ZN =  VAL (ZN$): RETURN
40095  REM  ----------------------------------------
40100  GOSUB 40 : RETURN
40110  REM   END PROCEDURE TO CONTROL DATA INPUT
40120 REM----------------------------------------
40150  REM   SUB TO CAUTION DATA OUTSIDE LIMITS
40160 GOSUB 40210
40165 ZN$ = ""
40170  PRINT  CHR$ (7);: GOSUB 51: PRINT "INPUT VALUE SHOULD BE BETWEEN ";
40172  PRINT LO;" AND ";HI;" RE - ENTER IT."; : GOSUB 50
40174  GOSUB 50
40180  RETURN
40190  REM  ----------------------------------------
40200  REM   CLEAR MESSAGE LOCUS ONLY
40210 LOCATE ZM,1,0: FOR I% =ZM TO 23 :PRINT SPC(79):NEXT I%
40212  PRINT SPC(80); : RETURN
40220  REM  ----------------------------------------
40230  REM   --PROCEDURE TO ADD HELPS TO ALPHA INPUT
40235  GOSUB 40300
40236  IF ZN$ = "B" AND  LEN (ZN$) = 1 AND K3 = 9 THEN  RETURN
40237 IF ZN$ = "" THEN RETURN
40238  IF  LEFT$ (ZN$,4) = "QUIT" OR  LEFT$ (ZN$,1) = QE$ THEN 42900
40240  IF ZN$ = "H" AND  LEN (ZN$) = 1 THEN 40255
40241  IF ZN$ = HE$ THEN 40255
40242  IF ZN$ = "?" AND  LEN (ZN$) = 1 THEN 40255
40245  IF  LEFT$ (ZN$,4) = "HELP" THEN 40255
40250  RETURN : REM   BACK TO INPUT PROCEDURE
40255  GOSUB 50100
40256 ZN$ = ""
40257  GOSUB 40100
40260  GOTO 40235
40265  REM  ---END PROCEDURAL SUB----------------
40300  REM  ...SUB ACCEPTS RETURN (ENTER) AS DEFAULT DATA INPUT.  SEE GOSUB 40000
40302 ZN$ = ""
40304 CH$ = INPUT$(1)
40306  IF CH$ = ES$ THEN 100
40308 I% =  ASC (CH$)
40310  IF I% > 96 AND I% < 123 THEN CH$ =  CHR$ (I% - 32): REM   CONVERT ALL ALPHA INPUT TO UPPER CASE?
40311  IF CH$ = CR$ THEN 40340
40312  IF CH$ = QE$ THEN 42900
40313  IF CH$ <> BS$ THEN 40321
40314  IF CH$ <  > NAK$ THEN 40316
40315 IF LEN(ZN$)=0 THEN PRINT " "; : LOCATE,POS(0)-1 : GOTO 40304
40316  PRINT CH$;
40317 ZN$ = LEFT$(ZN$,LEN(ZN$)-1)
40318  GOTO 40304
40319 LOCATE ,POS(0)-1 : PRINT " "; : LOCATE ,POS(0)-1
40320 GOTO 40304
40321 ZN$ = ZN$ + CH$
40322  PRINT CH$;
40323 REM
40325 GOTO 40304
40330  PRINT CH$;: GOSUB 43:ZN$ =  LEFT$ (ZN$, LEN (ZN$) - 1): GOTO 40304
40340  IF CH$ = CR$ AND  LEN (ZN$) = 0 THEN  RETURN
40350  IF CH$ = CR$ THEN  GOSUB 43: RETURN
40370  PRINT "WARNING LINE READ SUB FELL THROUGH ALL  TESTS.??": RETURN
40380  REM  ----------------------------------------
40400  REM   PROCEDURE TO PRINT LENGTH OF DATA PROMPT (REQUIRED OR MAXIMUM
40405  REM   PROPER USE REQUIRES POST GENBASIC CODING OF WL & FL'S
40410  PRINT  LEFT$ (SQ$,WL);
40420  IF FL > 0 THEN  PRINT "."; LEFT$ (SQ$,FL);
40430 CX = CH:CY = CV + LN: GOSUB 42
40440  RETURN
40450  REM   END PROCEDURAL SUB
40460  REM  ----------------------------------------
40500  REM    PROCEDURE TO VERIFY THE PROPER LENGTH OF CODED INPUT (ENTRY) * *
40510  IF  LEN (ZN$) = WL THEN  RETURN
40520  PRINT  CHR$ (7); CHR$ (7);
40530  GOSUB 41
40535  GOSUB 51
40537  PRINT "ENTRY IS CODED & MUST BE ";WL;" DIGITS LONG..RE-ENTER THE PROPER VALUE..."
40540  GOSUB 50
40541 CX = CH:CY = CV
40542  GOSUB 42: GOSUB 43
40550  GOSUB 40400
40560  GOSUB 40100
40570  GOTO 40010
40580  REM   END PROCEDURE
40590  REM  ----------------------------------------
40600 REM UNIVERSAL READER OF Y/N RESPONSES TO UPPERCASE Y & N
40610 LOCATE ,,1 : Z$ =INPUT$(1) :PRINT Z$; : IF Z$ = CR$ THEN Z$ = "N" : RETURN
40615 X$ = INPUT$(1)
40620 Z$=Z$+"N"
40630 I%=ASC( Z$)
40640 IF I% > 96 AND I% < 123 THEN Z$ = CHR$(I%-32) : RETURN
40650 Z$ = CHR$(I%) : RETURN
40660 REM END Y/N & LOWER CASE TO UPPER RESPONSE READER PROCEDURE -----
40700 REM SETUP DRIVE & FILE NAMES PROCEDURES ?
40990 REM----------------------------------------
41000 REM PROCEDURE TO COPY OVER A SEQUENTIAL FILE BEFORE ADDING DATA TO IT.
41010 ON ERROR GOTO 41900
41020 OPEN"I",#1,K$
41030 REM IF FILE EXISTS ,WRITE IT TI K1$
41040 OPEN "O",#2,K1$
41050 IF EOF(1) THEN 41090
41060 LINE INPUT #1,Z$
41070 PRINT #2,Z$
41080 GOTO 41050
41090 CLOSE#1
41100 REM WHEN TO KILL K$..BACKUP?
41110 RETURN
41200 REM ADD DATA TO #2
41300 REM CLOSE#2
41400 REM NAME K1$ AS K$ ?? HERE OR BEFORE CLOSE??
41900 REM CAPTURE NO FILE FOUND & START ONE AT THAT POINT
41910 IF ERR = 53 AND ERL =20 THEN OPEN"0",#2,K1$ : RESUME 41120
41920 ON ERROR GOTO 0
41930 REM----END FIE COPY PROCEDURE
42900  REM    EXIT & RE-RUN OPTIONS
42901  GOSUB 40210: GOSUB 41:PRINT
42902  LOCATE ,7: GOSUB 51:PRINT " WANT TO RE-RUN PROGRAM (Y OR N = RETURN TO MENU) ";:GOSUB 50
42903  GOSUB 40610
42904  IF  Z$ = "Y" THEN  GOSUB 38  : GOSUB 48700 :GOTO 90
42906  IF Z$ = "N" THEN 43000
42907 IF Z$ = "" THEN GOTO 43000
42998  IF Z$ = CR$ THEN END
42999  REM  ----------------------------------------
43000  REM    ...RETURN TO MENUSUB...PROCEDURE * *
43001  GOSUB 47000:GOSUB 48600
43002 KD$="MENU.BAS"
43003 CHAIN KD$
43004  REM  ----------------------------------------
45000 ZD = ZD* 100
45003 ZD = ZD+0.5
45005 ZD = INT(ZD)
45007 ZD = ZD/100
45009 ZD$ = STR$(ZD)
45010 RETURN
45110  REM  ----------------------------------------
45500 REM*******
45530 REM ERROR TRAPPING ROUTINE*******************
45532 EL = ERL: EC = ERR
45534 REM CLS:LOCATE 12,12
45536 GOSUB 51:PRINT CHR$(7):PRINT CHR$(7)
45538 PRINT "ERROR # ";EC;" HAS OCCURRED AT LINE ";EL;
45540 PRINT " SEE APPENDIX PAGES A3 - A11 OF THE BASIC MANUAL FOR MORE DETAILS."
45542 PRINT : PRINT TAB(20) : GOSUB 50 : PRINT"DON'T PANIC!"
45544 PRINT "It's possible to recover from most printer & disk errors without losing any data."
45546 PRINT "BUT DON'T EXIT FROM THIS PROGRAM.  Continue on for instructions."
45548 PRINT
45550 IF EC >52 THEN 45580
45552 IF EC <24 OR EC > 27 OR EC = 26 THEN 45655
45554 IF EC > 24 THEN 45540
45556 EM$="DEVICE TIMEOUT ERROR":RM$="PRINTER NOT CONNECTED OR SWITCHED ON ?"
45558 GOTO 45670
45560 IF EC > 25 THEN 45566
45562 EM$="DEVICE (PRINTER?) FAULT":RM$="LOOK FOR MECHANICAL-ELECTRICAL PRINTER PROBLEMS ?"
45564 GOTO 45670
45565 PRINT : PRINT"DO NOT PANIC (at least not yet)" : PRINT "It is possible to recover from certain errors without losing any data.": PRINT "DO NOT EXIT FROM THIS PROGRAM.  Continue on for instructions."
45566 EM$="PRINTER OUT OF PAPER":RM$="LOAD OR OTHERWISE FIX PAPER FLOW ?
45568 GOTO 45670
45570 REM ----END PRINTER ERRORS---BEGIN DISK ERRORS -------------
45580 IF EC <> 53 THEN 45590
45585 EM$ = "DISK OR DATA FILE NOT FOUND" : RM$ = "DID YOU USE THE CORRECT DISK,DRIVE,OR FILENAME ETC.?":GOTO 45670
45590 IF EC <> 54 THEN 45600
45595 EM$ = "DEVICE (DISK?) INPUT/OUTPUT ERROR":RM$ = "IS DISK BAD..UN-FORMATTED..ETC? TRY AGAIN.":GOTO 45670
45600 IF EC <> 57 THEN 45610
45605 EM$ = "DISK FULL" : RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45610 IF EC <> 61 THEN 45620
45615 EM$ = "DISK IS WRITE PROTECTED" : RM$ = "REMOVE THE WRITE PROTECT TAB OR USE A DIFFERENT DISK.":GOTO 45670
45620 IF EC <> 67 THEN 45630
45625 EM$ = "TOO MANY FILES ON THIS DISK" :RM$ = "USE A DIFFERENT DISK." : GOTO 45670
45630 IF EC <> 71 THEN 45640
45635 EM$ = "DISK IS NOT READY TO READ/WRITE" : RM$ = "DRIVE DOOR OPEN --NO DISK IN DRIVE ?":GOTO 45670
45640 IF EC <> 72 THEN 45655
45645 EM$ = "DISK MEDIA ERROR":RM$ = "DISK IS `BAD' ? -- USE A DIFFERENT DISK ?
45650 GOTO 45670
45655 PRINT "SEE BASIC MANUAL PAGES A3 TO A11" : PRINT "CAN'T RECOVER AS SUCH--WANT TO CONTINUE FOR MORE CLUES ?"
45660 PRINT"ENTER `Y' TO CONTINUE -- `N' TO START OVER OR QUIT "; : GOSUB 40610
45665 IF Z$ = "Y" THEN RESUME ELSE FLAG = 23 : GOTO 45670
45670 REM LOCATE 5,5
45672 PRINT"ERROR #";EC;"  ";EM$
45674 REM LOCATE 7,5
45675 LOCATE 7,5: PRINT"REMEDY/SUGGESTION:  ";RM$
45676 PRINT"REMEDY/SUGGESTION:  ";RM$
45677 IF FLAG = 23 THEN GOSUB 49000 : FLAG = 0 : GOTO 42900
45678 IF FLAG = 23 THEN GOSUB 49007 : FLAG = 0 : GOTO 42900
45680 REM LOCATE 10,5
45682 PRINT"AFTER ERROR HAS BEEN CORRECTED, PRESS ANY KEY TO TRY AGAIN. GOOD LUCK.": Z$ = INPUT$(1)
45684 RESUME 100
45690 REM ?? IF FLAG = 2 THEN RESUME 20050 ELSE IF FLAG = 1 THEN RESUME 100 ELSE RESUME 21780
45900 REM
46000  REM   STANDARD DECAIDS MAIN MENU OPTIONS-
46005 GOSUB 38
46010  PRINT : PRINT SPC(20)"KEY-NO     OPTION OR ACTION DESCRIPTION"
46015  PRINT : PRINT SPC(20)" 0   END THE RUN - RETURN TO MENU,"
46020  PRINT : PRINT SPC(20)" 1   PROCEED TO ENTER DATA & DO A RUN,"
46025  PRINT : PRINT SPC(20)" 2   DISPLAY AN EXAMPLE DATA ANALYSIS,"
46030  PRINT : PRINT SPC(20)" 3   SEE FURTHER RUN-TIME INSTRUCTIONS,"
46035  PRINT : PRINT SPC(20)" 4   PRINT USER GUIDE & QUESTIONNAIRE,"
46040 PRINT : PRINT SPC(20)" 5   PRINTED RESULTS WANTED/NOT WANTED."
46045 GOSUB 39470
46050  PRINT : PRINT SPC(20)"KEY-IN THE SELECTED OPTION (0-5) ";
46055  INPUT S9: IF S9 < 0 OR S9 > 5 THEN 46005
46060  IF S9 = 0 THEN 42900
46065  IF S9 > 2 THEN 46085
46070  IF S9 = 2 THEN K9 = 0 : S9 = 4 : RETURN
46075  S9 = 5 : RETURN
46080 REM NOTE S9 = 4 & 5 ABOVE IS TO BE CONSISTENT WITH SCREENIN SWITCH SETTINGS ( COULD CHANGE)
46085  IF S9 <>5 THEN 46100
46090 PRINT :PRINT : GOSUB 39460
46092 IF PR$="Y" THEN PRINT :  PRINT TAB(20)"BE SURE THAT THE PRINTER IS TURNED ON" : GOSUB 49007
46095  GOTO 46005
46100  IF S9<> 4 THEN 46135
46105 PQ$ = "Y": GOSUB 48280
46110 GOSUB 500
46115 GOSUB 49100
46120 GOSUB 48020
46125 PQ$ = "N"
46130  GOTO 46005
46135  GOSUB 500
46140  GOTO 46005
46145  REM  END MAIN MENU SELECTION PROCEDURE
46150  REM ----------------------------------------
47000  REM BEGIN CREDITS PROCEDURAL SUB * *
47005 RETURN
47010  GOSUB 38
47020 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I: PRINT
47030  PRINT SPC(20)"!   12/10/83         IBM-PC  VERSION  !"
47040  PRINT SPC(20)"!                                     !"
47050  PRINT SPC(20)"!    MINN-AID SOFTWARE A PRODUCT OF   !"
47060  PRINT SPC(20)"!                THE                  !"
47070  PRINT SPC(20)"!       UNIVERSITY OF MINNESOTA       !"
47080  PRINT SPC(20)"!                                     !"
47090  PRINT SPC(20)"!   AGRICULTURAL EXPERIMENT STATION   !"
47095  PRINT SPC(20)"!          PROJECT 14-036             !"
47100  PRINT SPC(20)"!                 &                   !"
47110  PRINT SPC(20)"!   AGRICULTURAL EXTENSION SERVICE    !"
47120  PRINT SPC(20)"!                THE                  !"
47130  PRINT SPC(20)"! DEPT. OF AGRICULTURAL & APPLD. ECON.!"
47135  PRINT SPC(20)"!                                     !"
47140  PRINT SPC(20)"!       DESIGNED/DEVELOPED BY         !"
47150  PRINT SPC(20)"!          EARL I. FULLER             !"
47155  PRINT SPC(20)"!                                     !"
47160  PRINT SPC(20)"!      PROGRAMMER(S)/CONTACT(S)       !"
47170  PRINT SPC(20)"!                                     !"
47180  PRINT SPC(20)"!   A FARM MANAGEMENT DECISION AID    !"
47190  PRINT SPC(20)"---------------------------------------"
47200  PRINT
47210  GOSUB 49000
47220  RETURN
47230  REM   END CREDITS PROCEDURE SUB
47300  REM    INITIAL SCREEN PROCEDURE SUB
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   12/10/83              IBM - PC    !"
47344  PRINT SPC(20)"!                                     !"
47350  PRINT SPC(20)"!      SOWINDEX EVALUATES SOW         !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!    PRODUCTIVITY ON AN INDIVIDUAL    !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"!     AND HERD CAMPARISON BASES       !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"
47490 REM
47491 PRINT:PRINT
47492 PRINT SPC(10);"This is Test Version 4.0.   Comments on it's features and suggestions"
47493 PRINT SPC(10);"for improvements in it are welcome."
47494 REM
47496  GOSUB 48900
47497 RETURN
47498  REM  ---------------------------------
48000  REM BEGIN CREDITS PROCEDURAL SUB * *"
48010  GOSUB 38
48020 REM
48030  LPRINT "!   12/10/83        IBM - PC VERSION  !"
48040  LPRINT "!                                     !"
48050  LPRINT "!    MINN-AID SOFTWARE A PRODUCT OF   !"
48060  LPRINT "!                THE                  !"
48070  LPRINT "!       UNIVERSITY OF MINNESOTA       !"
48080  LPRINT "!                                     !"
48090  LPRINT "!   AGRICULTURAL EXPERIMENT STATION   !"
48095  LPRINT "!          PROJECT 14-036             !"
48100  LPRINT "!                 &                   !"
48110  LPRINT "!   AGRICULTURAL EXTENSION SERVICE    !"
48120  LPRINT "!                THE                  !"
48130  LPRINT "! DEPT. OF AGRICULTURAL & APPLD. ECON.!
48140  LPRINT "!                                     !"
48150  LPRINT "!       DESIGNED/DEVELOPED BY         !"
48160  LPRINT "!          EARL I. FULLER             !"
48170  LPRINT "!                                     !"
48180  LPRINT "!      PROGRAMMER(S)/CONTACT(S)       !"
48190  LPRINT "!                                     !"
48200  LPRINT "!   A FARM MANAGEMENT DECISION AID    !"
48210  LPRINT "---------------------------------------"
48220 LPRINT
48230  GOSUB 49007
48240  RETURN
48250  REM   END CREDITS PROCEDURE SUB
48260  REM   INITIAL SCREEN PROCEDURE SUB
48270  GOSUB 38
48280  FOR I = 1 TO 39: LPRINT  CHR$ (45);: NEXT I: LPRINT
48290  LPRINT "!                                     !"
48300  LPRINT "!   12/10/83              (IBM - PC)  !"
48310  LPRINT "!      SOWINDEX EVALUATES SOW         !"
48320  LPRINT "!                                     !"
48330  LPRINT "!    PRODUCTIVITY ON AN INDIVIDUAL    !"
48340  LPRINT "!                                     !"
48350  LPRINT "!     AND HERD CAMPARISON BASES       !"
48360  LPRINT "!                                     !"
48370  LPRINT "---------------------------------------"
48380 LPRINT : LPRINT
48390  RETURN
48500 REM***   RESETS SOFTKEYS TO SPECIAL USES AND DISABLES THE REST
48510 LOCATE ,,0 : KEY 1,"HELP"
48520 KEY 3,"MENU"
48530 KEY 5,"QUIT"
48540 KEY 2,"":KEY 9,"":KEY 4,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 10,""
48550 RETURN
48600 REM***   RESETS SOFTKEYS TO DEFAULT BASIC USES
48610 KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13)
48620 KEY 6,CHR$(44)+"LPT1:"+CHR$(13):KEY 7, "TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9, "KEY":KEY 10, "SCREEN 0,0,0"+CHR$(13)
48630 LOCATE ,,1,12,13 : RETURN
48690 REM***   TOGGLES DISPLAY OF SOFTKEYS
48700 KEY OFF:RETURN
48710 KEY ON:RETURN
48890 REM*** PRINTS OUT BEGINNING MESSAGE CONCERNING HARD COPY
48900 LOCATE 19,1
48910 LOCATE ,9:GOSUB 51:PRINT"  FOR A PRINTOUT OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc*'.  ":GOSUB 50 : GOSUB 49007 : RETURN
49000  REM     SUB PROCEDURE TO PAUSE ON SCREEN * *
49005  IF PR$ = "Y" THEN  RETURN
49007  LOCATE 24,1
49010  PRINT SPC(20)"* * PAUSE..PRESS ANY KEY TO CONTINUE *";: Z$=INPUT$(1)
49015  IF Z$ = ES$ THEN 100
49020  IF Z$ = "" THEN 49010
49030 GOSUB 38  : RETURN
49040  REM   END PAUSE PROCEDURE
49050  REM   ---------------------------------------
49100  REM      PROCEDURE TO PRINT OUT QUESTIONARE AS QQ$(I) * *
49110  REM    BESURE TO MAKE A HEADER AND STORE AS VARIABLE QA$ (STRING ) SOURCE,TITLE ETC.
49114 WIDTH "LPT1:",132
49116 LPRINT SM$;
49120 QA$ = "?????? PUT A TITLE HERE"
49130  REM   TOGGLE PRINTER? GOSUB 39400
49135  LPRINT : LPRINT "INPUT DATA QUESTIONAIRE FOR :"
49140  LPRINT : LPRINT QA$
49148 IDO = 2: REM   DOUBLE SPACE PRINT
49149  REM    K2 = NO OF QUESTIONS
49150  FOR I = 1 TO K2
49160  IF IDO > 1 THEN  LPRINT
49170  LPRINT I;" ";QQ$(I);" -----------    -----------"
49172  NEXT I
49174  LPRINT : LPRINT
49176  FOR LQ = 1 TO K2
49178  IF IDO > 1 THEN  LPRINT
49182  GOSUB 50105
49184  NEXT LQ
49186  LPRINT : LPRINT
49188  REM GOSUB 39440
49189 LPRINT BG$;:PQ$="N"
49190  RETURN
49199  REM    END PROCEDURAL SUB...* *
49200  REM  ----------------------------------------
49900  REM     ADDED INPUT INSTRUCTIONS PROCEDURE AT SCREEN ERROR LOCATION
49910 GOSUB 41
49920  GOSUB 51:PRINT
49930 PRINT"SPECIAL INPUT KEYS; F1 = HELP, F5 = GOTO MENU, F9 = QUIT = STOP RUN,":PRINT"<CR> = RETURN = GOTO NEXT PROMPT";
49940  GOSUB 50:LOCATE ,,1,0,11
49945 GOSUB 48500:GOSUB 48710 : LOCATE ,,1
49950  Z$ = INPUT$(1)
49955  IF Z$ = ES$ THEN 100
49957  IF Z$ = QE$ THEN 42900
49960  RETURN
49990  REM   --------------------------------
50100  REM    LOCUS OF HELP SUBS TO ADD ENTRY COMMENTS
50102  GOSUB 41
50103  GOSUB 51
50104  IF LQ < 1 THEN 50110
50105  IF LQ > 9 GOTO 50200
50106  ON LQ GOTO 50110,50120,50130,50140,50150,50160,50170,50180,50190,50200
50108  GOTO 50300
50110  LQ$ = "MAY BE EARTAG/NOTCH/8 CHARACTER NAME OR ANY ID NUMBER"
50119  GOTO 50300
50120  LQ$ = "MUST BE A 'G' IN THE 1ST SPACE TO BE CONSIDERED AS A GILT"
50129  GOTO 50300
50130  LQ$ = "INDEX IS ONLY CONSIDERED VALID FOR THE RANGE SPECIFIED"
50139  GOTO 50300
50140  LQ$ = "MEASURES MILKING ABILITY DON'T USE AVERAGE PER DAY NO.?"
50149  GOTO 50300
50150  LQ$ = "TOTAL FOR LITTER IN POUNDS ON THE WEIGHING DAY"
50159  GOTO 50300
50160  LQ$ = "EXCLUDE MUMMIES ETC. MEASURES PROFUNDITY OF FEMALE + BOARS(S)"
50300 IF PQ$="Y" THEN LPRINT LQ;"/ ";LQ$:RETURN
50310 PRINT LQ$; : GOSUB 50 : Z$=INPUT$(1) : RETURN
53025 REM ------------------------------------------

STEERBID.BAS

1 KEY OFF : DIM LQ$(13) : DIM LL$(7,5) : DIM D(13)
5 REM IBM-PC VERSION ENHANCED BY JOEL KUNZE
100  GOSUB 200 : CLS:PRINT:PRINT "PROGRAM TO CALCULATE FED STEERS MARKETING DECISION ALTERNATIVES"
110  PRINT"BASED ON LIVEWEIGHT SHRINK AND HOT CARCASS WEIGHT DUE TO"
120  PRINT"FEEDING CONDITIONS, SCALE WEIGHTING ARRANGEMENTS & THEIR INTERACT-"
130  PRINT"IONS, DAILY RATE OF GAIN DURING LAST 30 DAYS, ESTIMATED FEEDLOT"
140  PRINT"WEIGHT, CARCASS QUALITY GRADE SCORE, CARCASS YIELD GRADE SCORE,"
150  PRINT"AND HAULING DISTANCE TO MARKETS."
155 PRINT: PRINT"HIT ANY KEY TO CONTINUE" : Z$ = INPUT$(1) : GOTO 300
160  REM  SOURCE : RONALD RAIKES,ET.AL., IA.S.U. AG.EX.ST. SP-82 05/79
170  REM  PROGRAMMER : TJEPPY D. SOEDJANA. DEPARTMENT OF AGRICULTURAL AND
180  REM  APPLIED ECONOMICS, UNIVERSITY OF MINNESOTA, SAINT PAUL, FEB -81.
190  REM   INHANCED BY EARL FULLER JULY 81
200  CLS
201 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
202  PRINT SPC(20)"!                                     !"
203  PRINT SPC(20)"!    1/04/84              IBM - PC    !"
204  PRINT SPC(20)"!              STEERBID               !"
205  PRINT SPC(20)"!                                     !"
206  PRINT SPC(20)"!        CALCULATES FED STEERS        !"
207  PRINT SPC(20)"!                                     !"
208  PRINT SPC(20)"!        MARKETING ALTERNATIVES       !"
209  PRINT SPC(20)"!                                     !"
210  PRINT SPC(20)"---------------------------------------"
215 PRINT : PRINT : LOCATE ,7: COLOR 0,7 :PRINT"TO OBTAIN HARDCOPY OF ANY SCREEN PRESS 'SHIFT' AND 'PrtSc *'AT THE SAME TIME." : COLOR 7,0
260 PRINT : PRINT : PRINT :PRINT : PRINT SPC(27)"HIT ANY KEY TO CONTINUE" : Z$ = INPUT$(1) : RETURN
300 CLS
350  LQ$(1)= "1. DESCRIBE CATTLE OR MARKET CHOICES "
390  LQ$(2)="2. DISTANCE TO LIVE WEIGHT MARKET (MILES) "
460  LQ$(3)= "3. FEED LOT CONDITIONS ARE :"
480  LL$(3,1)="1 = UNSHELTERED HOUSING"
490  LL$(3,2)="2 = PARTLY SHELTERED HOUSING"
500  LL$(3,3)="3 = CONFINEMENT BUILDING"
520  LL$(3,4)="THE BEST DESCRIPTION IS : "
590  LQ$(4)="4. OVERNIGHT & SCALE CODES ARE : "
610  LL$(4,1)= "1 = HOLD AT FARM WITHOUT FEED AND WATER"
620  LL$(4,2)="2 = HOLD AT FARM WITHOUT FEED"
630  LL$(4,3)="3 = HOLD AT PLANT WITHOUT FEED AND WATER"
640  LL$(4,4)="4 = SOLD TO TERMINAL WITH NO RESTRICTION"
660  LL$(4,5)="WHICH CODE IS MOST CORRECT : "
690  LQ$(5)= "5. AVERAGE FINISHED FEEDLOT WEIGHT (LBS.) "
720  LQ$(6)= "6. DAILY RATE OF GAIN DURING LAST 30 DAYS (LBS.) "
750  LQ$(7)= "7. ENTER CARCASS QUALITY GRADE  (0=LOW TO 12 = HIGH)"
752  LL$(7,1)= "1=LOW STANDARD...4=LOW GOOD...7=LOW CHOICE...10=LOW PRIME..."
780  LQ$(8)= "8. CARCASS YIELD GRADE SCORE (1=HIGH TO 5.9=LOW) "
810  LQ$(9)= "9. PENCIL SHRINK USED IN LIVE-WEIGHT BID (%) "
840  LQ$(10)= "10. TRANSPORTATION COST TO LIVE-WEIGHT  MARKET ($/CWT.) "
870  LQ$(11)= "11. TRANSPORTATION COST TO HOT-CARCASS MARKET ($/CWT.) "
880  LQ$(12)= "12. ENTER LIVE-WEIGHT PRICE BID ($/CWT) "
890  LQ$(13)= "13. ENTER HOT-CARCASS PRICE BID ($/CWT) "
900 K2 = 3 : J = 0 : GOSUB 2500
910 K2 = 6 : GOSUB 2500
920 K2 = 4 : GOSUB 2500
925 CLS
930 D1 = D(2) : H = D(3) : M = D(4) : F = D(5) : G = D(6) : Q = D(7)
940 Y = D(8) : P =D(9) : T1 = D(10) : T2 = D(11) : P1 = D(12) : P2= D(13)
950 REM START CALCULATIONS
960 I = (F * 0.63) + (G * ( - 2.99)) + (Q * 0.84) + (Y * 6.52)
970 G1 = G * 0.15
980  GOSUB 1820
990  GOSUB 1940
992 S =  INT (S * 100 + 0.5) / 100
993 C =  INT (C * 100 + 0.5) / 100
995 F1 = F * (0.01 * (P + S))
996 F1 =  INT ((F - F1) * 100 + 0.5) / 100
1000 L = P1 * (1 - 0.01 * (P + S)) - T1
1001 L =  INT (L * 100 + 0.5) / 100
1003 T3 = T2 - T1
1005 E1 = ((F1 * (P1 + T3)) / C1)
1006 E1 =  INT (E1 * 100 + 0.5) / 100
1010 C = P2 * (C1 / F) - T2
1011 C =  INT (C * 100 + 0.5) / 100
1015 E2 = ((C1 * P2) / F1) - T3
1016 E2 =  INT (E2 * 100 + 0.5) / 100
1020  PRINT
1030 REM
1040  PRINT "DESCRIPTION OF CATTLE OR ALTERNATIVES     : ";N$
1042  PRINT "FINISHING AT ";F;" LBS.": PRINT "GAINING ";G;" LBS PER DAY-LAST 30 DAYS"
1044  PRINT "QUALITY GRADE SCORE = ";Q
1046  PRINT "QUALITY GRADE SCORE = ";Y
1050  PRINT
1060  PRINT "PREDICTED PERCENTAGE LIVEWEIGHT SHRINK    : "S;" PERCENT "
1062  PRINT "( ";D1;" MILES TO LIVE MARKET)"
1065  PRINT "PREDICTED  LIVE-SALE-WEIGHT               : "F1;" LBS "
1070  PRINT "PREDICTED HOT-CARCASS WEIGHT              : "C1;" LBS "
1071  PRINT : PRINT "QUOTED HOT-CARCASS PRICE                  : $"P2
1072  PRINT "QUOTED LIVE-WEIGHT BID PRICE              : $"P1
1074  PRINT
1076  PRINT "HIT ANY KEY TO CONTINUE ": QQ$=INPUT$(1)
1080 CLS
1090  PRINT "COMPARABLE FARM-GATE LIVEWEIGHT PRICE IS  : $";L
1100  PRINT "COMPARABLE LIVEWEIGHT FARM-GATE TO THE"
1105  PRINT "   QUOTED HOT-CARCASS PRICE WOULD BE      : $";C
1110  PRINT "REQUIRED HOT-CARCASS PRICE TO MATCH TO THE"
1115  PRINT "   LIVEWEIGHT QUOTED PRICE IS             : $";E1
1117  PRINT
1120  PRINT "LIVEWEIGHT MARKET PRICE THAT MATCHES"
1121  PRINT "   THE HOT-CARCASS QUOTED PRICE IS        : $";E2
1122  PRINT
1140  IF L < C GOTO 1180
1150  PRINT
1160  PRINT "SELLING LIVEWEIGHT YIELDS GREATER RETURNS"
1165  PRINT : PRINT : PRINT
1170 GOTO 1814
1180  PRINT ,"SELLING HOT-CARCASS IS MORE PROFITABLE"
1190  PRINT : PRINT : PRINT
1814 PRINT :PRINT"HIT ANY KEY TO CONTINUE" : Z$ = INPUT$(1) : GOTO 2650
1820  REM  CALCULATION OF DISTANCE'S IMPACT ESTIMATOR
1830  IF D1 >  = 40 GOTO 1880
1840  IF D1 >  = 80 GOTO 1900
1850  IF D1 >  = 120 GOTO 1920
1860 D =  - 0.46
1870  GOTO 1930
1880 D = D1 * 0.0145 - 1.04
1890  GOTO 1930
1900 D = D1 * 0.0055 - 0.32
1910  GOTO 1930
1920 D = 0.34
1930  RETURN
1940  REM  CALCULATION OF MARKETING IMPACT ESTIMATORS
1950  IF H = 1 GOTO 1980
1960  IF H = 2 GOTO 2150
1970  IF H = 3 GOTO 2320
1980  REM  UNDER UNSHELTERED HOUSING CONDITION
1990  ON M GOTO 2000,2030,2060,2090,2120
2000 S = 3.38 + G1 + D
2010 C1 =  - 47.7 + I
2020  GOTO 2140
2030 S = 3.18 + G1 + D
2040 C1 =  - 38.23 + I
2050  GOTO 2140
2060 S = 4.2 + G1 + D
2070 C1 =  - 50.83 + I
2080  GOTO 2140
2090 S = 3.68 + G1 + D
2100 C1 =  - 49.62 + I
2110  GOTO 2140
2120 S = 2.3 + G1 + D
2130 C1 =  - 48.48 + I
2140  RETURN
2150  REM  UNDER PARTLY SHELTERED HOUSING CONDITION
2160  ON M GOTO 2170,2200,2230,2260,2290
2170 S = 3.6 + G1 + D
2180 C1 =  - 48.85 + I
2190  GOTO 2310
2200 S = 3.9 + G1 + D
2210 C1 =  - 39.34 + I
2220  GOTO 2310
2230 S = 4.19 + G1 + D
2240 C1 =  - 51.94 + I
2250  GOTO 2310
2260 S = 3.29 + G1 + D
2270 C1 =  - 50.73 + I
2280  GOTO 2310
2290 S = 2.1 + G1 + D
2300 C1 =  - 49.59 + I
2310  RETURN
2320  REM  UNDER CONFINEMENT BUILDING CONDITION
2330  ON M GOTO 2340,2370,2400,2430,2460
2340 S = 2.98 + G1 + D
2350 C1 =  - 37.06 + I
2360  GOTO 2480
2370 S = 1.67 + G1 + D
2380 C1 =  - 27.55 + I
2390  GOTO 2480
2400 S = 3.58 + G1 + D
2410 C1 =  - 40.15 + I
2420  GOTO 2480
2430 S = 2.31 + G1 + D
2440 C1 =  - 38.94 + I
2450  GOTO 2480
2460 S = 2.36 + G1 + D
2470 C1 =  - 37.8 + I
2480  RETURN
2490 CHAIN "MENU.BAS"
2500 REM INPUT SUBROUTINE :FLAG = 0
2505 CLS : PRINT
2506 IF K2 = 3 THEN J = 0
2507 IF K2 = 6 THEN J = 3
2508 IF K2 = 4 THEN J = 9
2510 FOR I = 1 TO K2
2515 J = J+1
2520 PRINT : PRINT LQ$(J);
2525 IF J = 3 THEN K3 = 4 :GOSUB 2600
2530 IF J = 4 THEN K3 = 5 : GOSUB 2600
2535 IF J = 7 THEN K3 = 1 : GOSUB 2600
2540 IF J = 1 THEN GOSUB 2575 : GOTO 2555
2545 IF FLAG = 1 THEN PRINT D(J);:CX = POS(0) :CX = CX-LEN(STR$(D(J))): LOCATE ,CX-2,1
2550 INPUT WW : IF FLAG < > 1 THEN D(J)= WW
2555 NEXT I
2557 FLAG = 0
2560 PRINT : COLOR 0,7 : PRINT "DATA OK? (Y/N) Q =QUIT ENTIRE ANALYSIS";:COLOR 7,0 : INPUT Z$
2563 Z$ = LEFT$(Z$,1)
2565 IF Z$ = "N" OR Z$= "n" THEN FLAG = 1 : GOTO 2505
2567 IF Z$ = "q" OR Z$ = "Q" THEN GOTO 2650
2570 RETURN
2575 REM INPUT FOR FIRST QUESTION
2580 IF FLAG <>1 THEN 2590
2585 PRINT " "; :PRINT N$;:CX = POS(0) : CX=CX-LEN(N$) :LOCATE , CX-2,1
2590 INPUT WW$ : IF FLAG < > 1 THEN N$ = WW$
2595 RETURN
2600 REM
2605 PRINT " ": FOR K = 1 TO K3
2610 PRINT LL$(J,K);
2615 IF K < > K3 THEN PRINT " "
2620 NEXT K
2625 RETURN
2650 REM EXIT SUBROUTINE
2655 CLS : PRINT : PRINT : INPUT"DO YOU WISH TO RE-RUN THIS PROGRAM (Y OR N = BACK TO MENU)";Z$
2657 Z$ = LEFT$(Z$,1)
2660 IF Z$ = "n" OR Z$ = "N" THEN CHAIN "MENU.BAS"
2670 GOTO 100
3000 END
47310  GOSUB 38
47320 PRINT TAB(21): FOR I = 1 TO 39: PRINT  CHR$ (45);: NEXT I:PRINT
47340  PRINT SPC(20)"!                                     !"
47342  PRINT SPC(20)"!   12/10/83              IBM - PC    !"
47350  PRINT SPC(20)"!              SKELETON               !"
47360  PRINT SPC(20)"!                                     !"
47370  PRINT SPC(20)"!            FOR USE WITH             !"
47380  PRINT SPC(20)"!                                     !"
47390  PRINT SPC(20)"!        GENBASIC APPLICATIONS        !"
47470  PRINT SPC(20)"!                                     !"
47480  PRINT SPC(20)"---------------------------------------"

ULOGO.BAS

100 REM************************************************************************
110 REM***  UNIVERSITY OF MINNESOTA LOGO PROGRAM  2-9-84   JOEL P. KUNZE    ***
120 REM************************************************************************
130 KEY OFF: COLOR 0,7: CLS:D$="":E$="":F$=""
140 FOR I = 1 TO 8
150 IF I > 6 THEN 190
160 IF I > 5 THEN 180
170 F$ = F$ + CHR$(219)
180 E$ = E$ + CHR$(219)
190 D$ = D$ + CHR$(219)
200 NEXT I:COLOR 7,0
210 LOCATE 2,2,0:PRINT SPC(78)
220 COLOR 0,7:FOR I = 3 TO 23 :LOCATE I,2:PRINT E$+CHR$(219): NEXT I
230 FOR I = 3 TO 23:LOCATE I,73:PRINT E$+CHR$(219): NEXT I
240 COLOR 7,0:FOR I = 23 TO 24 :LOCATE I,2:PRINT SPC(78);:NEXT I
250 COLOR 0,7:LOCATE 19,9:PRINT CHR$(220):LOCATE 20,9:PRINT CHR$(219)+CHR$(220):LOCATE 21,9:PRINT CHR$(219)+CHR$(219)+CHR$(220):LOCATE 22,9:PRINT F$+CHR$(220)+CHR$(220)
260 COLOR 0,7:FOR I = 3 TO 18
270 LOCATE I,17:IF I > 14 THEN PRINT D$+D$ ELSE PRINT D$
280 NEXT I:COLOR 0,7:LOCATE 11,39:PRINT CHR$(223)+CHR$(219):LOCATE 7,47:PRINT CHR$(220):LOCATE 8,47:PRINT CHR$(219)+CHR$(221):LOCATE 11,55:PRINT CHR$(223)+CHR$(219)
290 COLOR 0,7:FOR I = 7 TO 22
300 IF I < 9 THEN LOCATE I,33:PRINT D$+E$:GOTO 330
310 IF I < 11 THEN LOCATE I,33:PRINT D$+D$:GOTO 330
320 LOCATE I,41:PRINT D$
330 NEXT I
340 FOR I = 7 TO 22
350 IF I<11 THEN LOCATE I,51:PRINT D$+E$:GOTO 370
360 LOCATE I,57:PRINT D$
370 NEXT I
380 COLOR 0,7:LOCATE 3,66:PRINT CHR$(223)+CHR$(223)+F$
390 LOCATE 4,70:PRINT CHR$(223)+CHR$(219)+CHR$(219)
400 LOCATE 5,71:PRINT CHR$(223)+CHR$(219)
410 LOCATE 6,72:PRINT CHR$(223)
415 LOCATE 24,26:PRINT" UNIVERSITY OF MINNESOTA ";
420 Z$ = INPUT$(1):COLOR 7,0:CLS : CHAIN "MENU.BAS"

USERDOCS.BAS

38000 PRINT TAB(20)"USER DOCUMENTATION of MINN-AIDS"
38005 PRINT TAB(17)"(Microsoft BASIC CP/M & MSDOS versions)"
38010 PRINT  TAB( 4)"Most of the MINN-AIDS programs contain internal documentation.  Hard "
38015 PRINT "copies of it may be obtained by actually running the program.   Once in "
38020 PRINT "printed form appropriate paging, with possibly some cutting and pasting,"
38025 PRINT "provides copy suitable for 3-hole punching.  Filing in a user's notebook"
38030 PRINT "makes a useful reference.  Such a notebook gives new users a printed"
38035 PRINT "explaination of what it does, what data is required and how to enter data."
38040 PRINT ""
38045 PRINT "    First run the program and select the printed input questionaire option."
38050 PRINT "This provides a copy of the introduction screen, the basic description screen,"
38065 PRINT "the input questions themselves and a set of explainatory footnotes (actually"
38070 PRINT "on line HELPS during data entry).   A reference page completes this option."
38075 PRINT ""
38080 PRINT  TAB( 4)"Then run either or both of the regular and sample run options.   Screens"
38085 PRINT "may be printed verbatium by use of your systems special instructions to do so."
38090 PRINT "Output will usually be printed automatically.   Notes on the margins may also "
38095 PRINT "help a new user.  So might selected reference material filed in the user "
38100 PRINT "notebook.   In as much as inhancements continue on most of these programs, the"
38105 PRINT "developers would appreciate hearing from you concerning errors, improvements,"
38110 PRINT "and suggestions for added clarity in the screens and printed results.   Our "
38115 PRINT "phone is (612) 373-1145.  Address is Dept of Agricultural & Applied Economics"
38120 PRINT "249 COB, Univ. of Minn., St. Paul Mn., 55108."
38130 PRINT "............Want a printed copy of this set of suggestions (Y or N) ";
38135 INPUT Z$ :Z$ =LEFT$(Z$,1) : IF Z$ <> "Y" AND Z$ <> "y" THEN CHAIN"MENU.basOk
38140 REM REPEATED MESSAGE FOR PRINTER (DELETE 'GOSUBS' 49000)
38145 LPRINT TAB(20)"USER DOCUMENTATION of MINN-AIDS"
38150 LPRINT TAB(17)"(Microsoft BASIC CP/M & MSDOS versions)"
38155 LPRINT "    Most of the MINN-AIDS programs contain internal documentation.  Hard "
38160 LPRINT "copies of it may be obtained by actually running the program.   Once in "
38165 LPRINT "printed form appropriate paging, with possibly some cutting and pasting,"
38170 LPRINT "provides copy suitable for 3-hole punching.  Filing in a user's notebook"
38175 LPRINT "makes a useful reference.  Such a notebook gives new users a printed"
38180 LPRINT "explaination of what it does, what data is required and how to enter data."
38185 LPRINT ""
38190 LPRINT "    First run the program and select the printed input questionaire option."
38195 LPRINT "This provides a copy of the introduction screen, the basic description screen,"
38210 LPRINT "the input questions themselves and a set of explainatory footnotes (actually"
38215 LPRINT "on line HELPS during data entry).   A reference page completes this option."
38220 LPRINT ""
38225 LPRINT "    Then run either or both of the regular and sample run options.   Screens"
38230 LPRINT "may be printed verbatium by use of your systems special instructions to do so."
38235 LPRINT "Output will usually be printed automatically.   Notes on the margins may also "
38240 LPRINT "help a new user.  So might selected reference material filed in the user "
38245 LPRINT "notebook."
38247 LPRINT : LPRINT "   In as much as inhancements continue on most of these programs, the"
38250 LPRINT "developers would appreciate hearing from you concerning errors, improvements,"
38255 LPRINT "and suggestions for added clarity in the screens and printed results.   Our "
38260 LPRINT "phone is (612) 373-1145.  Address is Dept of Agricultural & Applied Economics"
38265 LPRINT "249 COB, Univ. of Minn., St. Paul Mn., 55108."
38270 LPRINT ""
38275 CHAIN"MENU.BAS

Directory of PC-SIG Library Disk #0459

 Volume in drive A has no label
 Directory of A:\

ACRSCALC BAS     30976   1-01-80   1:16a
AUTOEXEC BAT       128  11-10-84  12:01a
BESTCROP BAS     24448   1-01-80   7:16a
DATECALC BAS      9600   3-12-84   6:13p
DRYSTORE BAS     32000   1-01-80   1:23a
FARMBID  BAS     29568   1-01-80   1:28a
FEEDPIGS BAS     32512   1-01-80   1:24a
FEEDSILO BAS      3968   3-12-84   6:15p
FEEDVALU BAS     21632   1-01-80   7:08a
FILES459 TXT      1981   1-31-87   3:17p
MENU     BAS      6016   1-01-80  12:02a
PEARSON  BAS     27008   1-01-80   1:24a
READ     BAT       256  11-10-84  12:02a
README   DOC      1536   1-17-87   5:14p
RUN      BAT       128  11-12-84   1:22a
SCROLLCK COM       512   1-01-80  12:03a
SDIR     COM      2304  12-11-83   4:23a
SDIR     DOC      1536  12-11-83   4:22a
SOWINDEX BAS     28672   3-21-84   6:17a
STEERBID BAS      7808   3-12-84   6:16p
TIMEC    COM      1183   1-16-83   3:02p
ULOGO    BAS      1251   2-11-84  10:37a
USERDOCS BAS      3712   1-28-84   1:22p
       23 file(s)     268735 bytes
                       41984 bytes free