home *** CD-ROM | disk | FTP | other *** search
- 10 REM ********7.11.85*********
- 20 REM * NAVIGATOR.1 *
- 30 REM * BY LEE SWOBODA *
- 40 REM * COPYRIGHT (C) 1985 *
- 50 REM * BY MICROSPARC, INC *
- 60 REM * CONCORD, MA. 01742 *
- 70 REM ************************
- 80 REM
- 90 REM
- 100 BLANK$ = " ": REM 39 SPACES
- 110 Q$ = CHR$(34)
- 120 D$ = CHR$(4)
- 130 REM ----------------------
- 140 REM READ FORMAT PARAMETERS
- 150 REM ----------------------
- 160 EF = 1: ONERR GOTO 2460
- 170 PRINT D$"OPEN NAVIGATOR.TXT"
- 180 PRINT D$"READ NAVIGATOR.TXT"
- 190 INPUT NAME$,AUTH$,DT$,SELECT,COMMENTS,LMARGIN,RMARGIN,LPAGE,BMARGIN,D1,D2,SLOT
- 200 PRINT D$"CLOSE"
- 210 POKE 216,0
- 220 IF LPAGE = 0 THEN LPAGE = 66
- 230 IF RMARGIN = 0 THEN RMARGIN = 79
- 240 IF D1 = 0 THEN D1 = 1
- 250 IF D2 = 0 THEN D2 = 2
- 260 IF SLOT = 0 THEN SLOT = 1
- 270 REM -----------------
- 280 REM PROGRAM DATA MENU
- 290 REM -----------------
- 300 HEADER$ = "PROGRAM DATA"
- 310 GOSUB 2000
- 320 FOOTER$ = ""
- 330 GOSUB 2170
- 340 REM ENTER PROGRAM NAME
- 350 VTAB 10
- 360 PRINT "PROGRAM NAME (1 OR 2 FOR CATALOG)"
- 370 VTAB 11: CALL -868: INPUT ": ";NAME$
- 380 NF$ = LEFT$(NAME$,1)
- 390 EF = 4: ONERR GOTO 2460
- 400 IF NF$ = "1" OR NF$ = "2" THEN HOME : PRINT D$"CATALOGD";(NF$ = "2") +1: GET Z$: PRINT Z$: GOTO 300
- 410 POKE 216,0
- 420 IF NAME$ = "" OR NF$ <"A" OR NF$ >"Z" GOTO 350
- 430 REM ENTER AUTHOR'S NAME
- 440 VTAB 12
- 450 INPUT "AUTHOR = ";AUTH$
- 460 IF AUTH$ = "" GOTO 440
- 470 REM CONVERT TO LOWER CASE
- 480 I$ = LEFT$(AUTH$,1)
- 490 IF LEN(AUTH$) <2 GOTO 560
- 500 FOR I = 2 TO LEN(AUTH$)
- 510 J = ASC( MID$ (AUTH$,I,1))
- 520 IF MID$ (AUTH$,I -1,1) < >" " AND J >64 AND J <91 THEN J = J +32
- 530 I$ = I$ + CHR$(J)
- 540 NEXT I
- 550 AUTH$ = I$
- 560 REM ENTER DATE
- 570 VTAB 14
- 580 CALL -868
- 590 INPUT "DATE (9 CHARS):";IN$
- 600 IF LEN(IN$) >9 THEN 570
- 610 PRINT IN$: INPUT "OK? ";Y$: IF Y$ < >"Y" GOTO 570
- 620 DT$ = IN$
- 630 REM ----------------
- 640 REM DATA FORMAT MENU
- 650 REM ----------------
- 660 HEADER$ = "FORMAT DATA"
- 670 GOSUB 2000
- 680 FOOTER$ = "NUMBER TO CHANGE OR N"
- 690 GOSUB 2170
- 700 VTAB 10
- 710 PRINT "1) LEFT MARGIN = "LMARGIN
- 720 PRINT "2) RIGHT MARGIN = "RMARGIN
- 730 PRINT "3) LINES PER PAGE = "LPAGE
- 740 PRINT "4) BOTTOM MARGIN = "BMARGIN
- 750 PRINT "5) PRINT REMARKS? = ";
- 760 IF COMMENTS = 0 THEN PRINT "N"
- 770 IF COMMENTS = 1 THEN PRINT "Y"
- 780 PRINT "6) NAVIGATOR IN DRIVE "D1
- 790 PRINT "7) PROGRAM IN DRIVE "D2
- 800 PRINT "8) PRINTER IN SLOT "SLOT
- 810 VTAB 21: HTAB 25
- 820 PRINT "?";
- 830 GET A$
- 840 PRINT
- 850 IF A$ = "N" GOTO 1170
- 860 REM ---------
- 870 REM EDIT DATA
- 880 REM ---------
- 890 A = VAL(A$)
- 900 IF A <1 OR A >8 GOTO 810
- 910 PRINT
- 920 FOOTER$ = ""
- 930 GOSUB 2170
- 940 VTAB 9 +A: HTAB 23
- 950 CALL -868
- 960 INPUT "";A$
- 970 B = VAL(A$)
- 980 ON A GOTO 990,1010,1030,1050,1070,1110,1130,1150
- 990 IF B <1 OR B >20 GOTO 940
- 1000 LMARGIN = B: GOTO 660
- 1010 IF B <60 OR B >79 GOTO 940
- 1020 RMARGIN = B: GOTO 660
- 1030 IF B <50 OR B >88 GOTO 940
- 1040 LPAGE = B: GOTO 660
- 1050 IF B <1 OR B >10 GOTO 940
- 1060 BMARGIN = B: GOTO 660
- 1070 IF A$ < >"Y" AND A$ < >"N" GOTO 940
- 1080 COMMENTS = 0
- 1090 IF A$ = "Y" THEN COMMENTS = 1
- 1100 GOTO 660
- 1110 IF B <1 OR B >2 GOTO 940
- 1120 D1 = B: GOTO 660
- 1130 IF B <1 OR B >2 GOTO 940
- 1140 D2 = B: GOTO 660
- 1150 IF B <1 OR B >7 GOTO 940
- 1160 SLOT = B: GOTO 660
- 1170 REM --------------
- 1180 REM SELECTION MENU
- 1190 REM --------------
- 1200 HEADER$ = "LISTINGS"
- 1210 GOSUB 2000
- 1220 FOOTER$ = "SELECT"
- 1230 GOSUB 2170
- 1240 VTAB 10
- 1250 PRINT "1) LISTING ONLY"
- 1260 VTAB 12
- 1270 PRINT "2) FLOW CHART ONLY"
- 1280 VTAB 14
- 1290 PRINT "3) LISTING & FLOW CHART"
- 1300 VTAB 21: HTAB 10
- 1310 PRINT "?";
- 1320 GET A$
- 1330 A = VAL(A$)
- 1340 IF A <1 OR A >3 GOTO 1300
- 1350 SELECT = A
- 1360 NR = 2
- 1370 IF SELECT = 2 THEN NR = 3
- 1380 PRINT
- 1390 HOME
- 1400 GOSUB 1420
- 1410 GOTO 1670
- 1420 REM ----------------
- 1430 REM SAVE FORMAT DATA
- 1440 REM ----------------
- 1450 EF = 2: ONERR GOTO 2460
- 1460 PRINT D$"OPEN NAVIGATOR.TXT,D"D1
- 1470 PRINT D$"WRITE NAVIGATOR.TXT"
- 1480 PRINT NAME$
- 1490 PRINT AUTH$
- 1500 PRINT DT$
- 1510 PRINT SELECT
- 1520 PRINT COMMENTS
- 1530 PRINT LMARGIN
- 1540 PRINT RMARGIN
- 1550 PRINT LPAGE
- 1560 PRINT BMARGIN
- 1570 PRINT D1
- 1580 PRINT D2
- 1590 PRINT SLOT
- 1600 PRINT D$"CLOSE": PRINT D$"OPEN EXX": PRINT D$"CLOSE EXX": PRINT D$"DELETE EXX"
- 1610 POKE 216,0
- 1620 RETURN
- 1630 EF = 3: ONERR GOTO 2460
- 1640 PRINT D$"VERIFY"NAME$",D"D2
- 1650 POKE 216,0
- 1660 RETURN
- 1670 IF D1 = D2 GOTO 2290
- 1680 REM --------------
- 1690 REM FORM TEXT FILE
- 1700 REM --------------
- 1710 HOME
- 1720 VTAB 10: POKE -16368,0
- 1730 PRINT "PLACE NAVIGATOR DISK IN DRIVE #"D1
- 1740 PRINT
- 1750 PRINT "PLACE THE DISK CONTAINING"
- 1760 PRINT "'"NAME$"'"
- 1770 PRINT "IN DRIVE #"D2","
- 1780 PRINT : PRINT "BE SURE PRINTER IS ON LINE,": PRINT : PRINT "AND PRESS ANY KEY";
- 1790 CALL -756
- 1800 HOME
- 1810 VTAB 12: HTAB 13
- 1820 PRINT "THE NAVIGATOR"
- 1830 D$ = CHR$(4)
- 1840 Q$ = CHR$(34)
- 1850 GOSUB 1630
- 1860 PRINT D$"OPEN EXE,D"D1
- 1870 PRINT D$"WRITE EXE"
- 1880 PRINT "NEW"
- 1890 PRINT "LOAD "NAME$",D"D2
- 1900 F$ = "RUN NAVIGATOR." + STR$(NR) +",D" + STR$(D1)
- 1910 PRINT "0 D$=CHR$(4):?D$"Q$"OPENEXX,D"(D1)Q$":?D$"Q$"WRITEEXX"Q$":LIST1-:?D$"Q$"CLOSE"Q$":?D$"Q$F$Q$
- 1920 PRINT "RUN"
- 1930 PRINT D$"CLOSE"
- 1940 PRINT D$"EXEC EXE,D"D1
- 1950 END
- 1960 REM ===========
- 1970 REM SUBROUTINES
- 1980 REM ===========
- 1990 REM
- 2000 REM -----------
- 2010 REM MENU HEADER
- 2020 REM -----------
- 2030 HOME
- 2040 PRINT
- 2050 PRINT TAB( 12)"THE NAVIGATOR"
- 2060 PRINT
- 2070 PRINT TAB( 9)"BASIC LISTING UTILITY"
- 2080 PRINT TAB( 8)"AND FLOW CHART FORMATTER"
- 2090 PRINT
- 2100 INVERSE
- 2110 PRINT BLANK$
- 2120 VTAB 7
- 2130 PRINT " "HEADER$
- 2140 NORMAL
- 2150 VTAB 10
- 2160 RETURN
- 2170 REM -----------
- 2180 REM MENU FOOTER
- 2190 REM -----------
- 2200 VTAB 21
- 2210 INVERSE
- 2220 PRINT BLANK$
- 2230 VTAB 21
- 2240 PRINT " "FOOTER$" "
- 2250 NORMAL
- 2260 VTAB 23
- 2270 PRINT TAB( 4)"COPYRIGHT 1985 MICROSPARC, INC."
- 2280 RETURN
- 2290 REM ---------
- 2300 REM ONE-DRIVE
- 2310 REM ---------
- 2320 HOME
- 2330 VTAB 12: POKE -16368,0
- 2340 PRINT "BE SURE PRINTER IS ON LINE,": PRINT : PRINT "AND PRESS ANY KEY";
- 2350 GET A$: PRINT
- 2360 GOSUB 1630: REM VERIFY EXISTENCE OF PROGRAM
- 2370 PRINT D$"OPEN EX1,D"D1
- 2380 PRINT D$"WRITE EX1"
- 2390 PRINT "LOAD"NAME$
- 2400 F$ = "RUN NAVIGATOR." + STR$(NR) +",D" + STR$(D1)
- 2410 PRINT "0HOME:D$=CHR$(4):?D$"Q$"OPENEXX,D"(D1)Q$":?D$"Q$"WRITEEXX"Q$":LIST1-:?D$"Q$"CLOSE"Q$":?D$"Q$F$Q$
- 2420 PRINT "RUN"
- 2430 PRINT D$"CLOSE"
- 2440 PRINT D$"EXEC EX1,D"D1
- 2450 END
- 2460 E = PEEK(222):EL = PEEK(218) +256 * PEEK(219): POKE 216,0
- 2470 IF EF = 1 AND E = 5 THEN PRINT D$"CLOSE": PRINT D$"DELETE NAVIGATOR.TXT": GOTO 220
- 2480 IF EF = 3 AND E = 10 THEN ON (D1 = D2) +1 GOTO 2320,1710
- 2490 IF EF = 3 THEN EF = 3 +2 *(D1 = D2)
- 2500 IF E = 4 THEN HOME : VTAB 12: PRINT "DISK WRITE PROTECTED": GOTO 2530
- 2510 IF E = 6 THEN HOME : VTAB 12: PRINT "FILE NOT FOUND":EF = EF +(EF = 3): ON (D1 = D2) +1 GOTO 2530,2540
- 2520 HOME : VTAB 12: PRINT "ERROR #";E" IN LINE "EL"."
- 2530 PRINT : PRINT "PRESS ANY KEY TO CONTINUE";: GET Z$: PRINT : ON EF GOTO 160,1400,1850,300,2360
- 2540 PRINT : PRINT "YOUR PROGRAM AND NAVIGATOR MUST BE": PRINT " ON THE SAME DISK!": END