home *** CD-ROM | disk | FTP | other *** search
Wrap
100 REM --- SHORTSUB --- 110 REM BY D.G. PATTERSON 115 REM PROGRAM J 120 REM 9/30/82 130 REM SHORT SUBROUTINES 300 DEFINT I-J 350 DIM DAT$(20) 400 KEY OFF:CLS:WIDTH 80:SCREEN 0,0,0:COLOR 6,4 410 LOCATE 1,25:PRINT " " 420 LOCATE 2,25:PRINT " SHORT SUBROUTINES " 430 LOCATE 3,25:PRINT " ----------------- " 440 DATA "(A) Return to menu" 450 DATA "(B) Yes or no at X1,Y1 location" 460 DATA "(C) Functions" 470 DATA "(D) Continue routine" 480 DATA "(E) Upperfy a string (in X$)" 490 DATA "(F) Printer error routines (80 COLS)" 500 DATA "(G) Printer error routines (40 COLS)" 510 DATA "(H) Load disk A and disk B" 520 DATA "(I) Sets output for screen or printer" 530 DATA "(J) Reset function keys" 540 DATA " " 550 DATA "(L)" 560 DATA "(M)" 570 DATA "(N)" 580 DATA "(O)" 590 DATA "(P)" 600 DATA "(Q)" 610 DATA "(R)" 630 FOR J=1 TO 18 632 READ DAT$(J) 634 IF DAT$(J)=" " GOTO 640 636 NEXT J 640 RESTORE:NR=J-1:CO=1:Y=4 645 FOR I=1 TO NR 650 CO=CO+1:IF CO>7 THEN CO=2 670 Y=Y+1 680 IF NR < 10 THEN Y = Y+1 690 COLOR CO,0:LOCATE Y,9:PRINT DAT$(I) 700 NEXT I 1000 COLOR 4,0:LOCATE 25,25:PRINT "Enter program desired >" ; 1010 Q$ = INKEY$:IF Q$="" THEN 1010 1012 IF Q$=CHR$(3) THEN COLOR 2,0,0:CLS:END 1013 IF Q$=CHR$(27) THEN COLOR 2,0,0:CLS:END 1015 PRINT Q$; 1020 Q=ASC(Q$) 1030 IF Q >96 AND Q < 97 + NR THEN Q=Q-96:GOTO 1050 1040 IF Q >64 AND Q < 65 + NR THEN Q=Q-64:GOTO 1050 1045 LOCATE 25,25:PRINT STRING$(35,32);:GOTO 1000 1050 COLOR 2,0:WIDTH 80:CLS 1055 KEY 7,"RUN 1990"+CHR$(13) 1060 ON Q GOTO 1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118 1101 KEY 7,"TRON"+CHR$(13):RUN "MENU":'A 1102 LIST 7999-8195,"SCRN:":'B 1103 LIST 8199-8395,"SCRN:":'C 1104 LIST 8399-8595,"SCRN:":'D 1105 LIST 8599-8795,"SCRN:":'E 1106 LIST 8799-8995,"SCRN:":'F 1107 LIST 8999-9195,"SCRN:":'G 1108 LIST 9199-9395,"SCRN:":'H 1109 LIST 9399-9595,"SCRN:":'I 1110 LIST 9599-9795,"SCRN:":'J 1111 LIST 9799-9995,"SCRN:":'K 1112 LIST 9999-10195,"SCRN:":'L 1113 LIST 10199-10395,"SCRN:":'M 1114 LIST 10399-10595,"SCRN:":'N 1115 LIST 10599-10795,"SCRN:":'O 1116 LIST 10799-10995,"SCRN:":'P 1117 LIST 10999-11195,"SCRN:":'Q 1118 LIST 11199-11395,"SCRN:":'R 1990 KEY 7,"TRON"+CHR$(13) 2000 COLOR 6,0,0 2010 Y1=25:X1=20 2020 LOCATE 25,1:PRINT STRING$(79,CHR$(32));:LOCATE Y1,X1 2030 PRINT "DO YOU WISH TO USE THIS SUBROUTINE > "; 2040 POKE 106,0 2050 A1$=INKEY$:IF A1$="" THEN 2050 2060 PRINT A1$; 2070 IF A1$=CHR$(3) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:END 2080 IF A1$=CHR$(27) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:RUN "MENU" 2090 IF A1$="y" OR A1$="Y" THEN LOCATE 25,1:PRINT STRING$(79,CHR$(32));:LOCATE Y1,10:COLOR 7:PRINT "CHANGE TO WORKING DISK AND ENTER SUBROUTINE LETTER > ";:GOTO 2102 2100 GOTO 300 2102 Q$=INKEY$:IF Q$="" THEN 2102 2104 IF Q$=CHR$(27) THEN COLOR 2,0,0:CLS:RUN "MENU 2106 PRINT Q$ 2108 Q=ASC(Q$) 2110 IF Q > 96 AND Q < 115 THEN Q=Q-96:GOTO 2116 2112 IF Q > 64 AND Q < 83 THEN Q=Q-64:GOTO 2116 2114 LOCATE 25,25:PRINT STRING$(35,32);:GOTO 2090 2116 COLOR 2,0:WIDTH 80:CLS 2120 COLOR 12,0,0:LOCATE 1,21:PRINT STRING$(79,32);:LOCATE Y1,21:PRINT "SUBROUTINE NOW SAVED IN FILE SUB-";Q$;:PRINT CHR$(11):COLOR 2,0,0 2130 ON Q GOTO 2140,2150,2160,2170,2180,2190,2200,2210,2220,2230,2240,2250,2260,2270,2280,2290,2300,2310 2140 RUN "MENU" 2150 LIST 7999-8190,"SUB-B" 2160 LIST 8199-8390,"SUB-C" 2170 LIST 8399-8590,"SUB-D" 2180 LIST 8599-8790,"SUB-E" 2190 LIST 8799-8990,"SUB-F" 2200 LIST 8999-9190,"SUB-G" 2210 LIST 9199-9390,"SUB-H" 2220 LIST 9399-9590,"SUB-I" 2230 LIST 9599-9790,"SUB-J" 2240 LIST 9799-9990,"SUB-K" 2250 LIST 9999-10190,"SUB-L" 2260 LIST 10199-10390,"SUB-M" 2270 LIST 10399-10590,"SUB-N" 2280 LIST 10599-10790,"SUB-O" 2290 LIST 10799-10990,"SUB-P" 2300 LIST 10999-11190,"SUB-Q" 2310 LIST 11199-11390,"SUB-R" 2320 END 7999 END 8000 REM ***** YES OR NO AT X1,Y1 LOCATION ***** 8001 ' 8010 Y1=10:X1=20 8020 LOCATE Y1,1:PRINT STRING$(79,CHR$(32)); 8030 LOCATE Y1,X1:COLOR 6,0,0:PRINT "ANSWER YES OR NO > "; 8050 B1$=INKEY$:IF B1$="" THEN 8050 8060 PRINT B1$; 8070 IF B1$=CHR$(3) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:END 8080 IF B1$=CHR$(27) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:RUN "MENU" 8090 IF B1$="y" OR B1$="Y" THEN RETURN 8100 IF B1$="n" OR B1$="N" THEN RETURN 8110 GOTO 8020 8193 ' 8194 ' 8195 ' SUBROUTINE IS SUB-B HIT F7 KEY 8199 END 8200 REM ***** FUNCTIONS ***** 8201 ' 8210 '-- TIME IN SECONDS -- 8220 DEF FNTIME=VAL(LEFT$(TIME$,2))*3600+VAL(MID$(TIME$,4,2))*60+VAL(RIGHT$(TIME$,2)) 8230 ' -- RETURNS UPERCASE FIRST LETTER OF A STRING -- 8240 DEF FNU$(A$)=CHR$(ASC(LEFT$(A$,1))+32*(LEFT$(A$,1)>"Z")) 8250 ' -- STRIPS LEADING SPACE FROM A NUMBER CONVERTED TO A STRING -- 8260 DEF FNS$(N$)=RIGHT$(N$,LEN(N$)-1) 8270 DEF SEG=&H40;POKE &H17,PEEK(&H17) OR 32:' TO SET NUMLOCK 8271 DEF SEG=&H40;POKE &H17,PEEK(&H17) AND 223 :' TO UNSET NUMLOCK 8272 DEF SEG=&H40;POKE &H17,PEEK(&H17) OR 64:' TO SET CAPSLOCK 8273 DEF SEG=&H40;POKE &H17,PEEK(&H17) AND 171 :' TO UNSET CAPSLOCK 8393 ' 8394 ' 8395 ' SUBROUTINE 1S SUB-C HIT F7 KEY 8399 END 8400 REM ***** CONTINUE ROUTINE ***** 8401 ' 8410 LOCATE 25,1:PRINT STRING$(79,32);:LOCATE 25,27 8420 COLOR 5,0,0:PRINT "Hit any key to continue";:COLOR 2,0,0 8440 B2$=INKEY$:IF B2$="" THEN 8440 8460 IF B2$=CHR$(3) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:END 8470 IF B2$=CHR$(27) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:RUN "MENU" 8480 CLS 8490 RETURN 8593 ' 8594 ' 8595 ' SUBROUTINE IS SUB-D HIT F7 KEY 8599 END 8600 ' ***** UPERFY A STRING ***** 8601 ' 8610 FOR XZ=1 TO LEN(X$) 8620 XC$=MID$(X$,XZ,1) 8630 IF "a" <= XC$ AND XC$ <= "z" THEN MID$(X$,XZ,1) = CHR$(ASC(XC$)-32) 8640 NEXT XZ 8650 RETURN 8793 ' 8794 ' 8795 ' SUBROUTINE IS SUB-E HIT F7 KEY 8799 END 8800 ' ***** PRINTER ERROR ROUTINES (80 COL) ***** 8801 ' 8805 IF ERR=24 THEN RESUME ELSE GOTO 8810 8810 LOCATE 25,1:PRINT SPACE$(79); 8820 IF ERR=25 THEN 8830 ELSE 8850 8830 COLOR 4,0,0:LOCATE 25,25:LINE INPUT ;"Turn printer on and (CR)";Z$ 8840 LOCATE 25,1:PRINT SPACE$(79);:COLOR 2,0,0:RESUME 8850 SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:ON ERROR GOTO 0 8993 ' 8994 ' 8995 ' SUBROUTINE IS SUB-F HIT F7 KEY 8999 END 9000 ' ***** PRINTER ERROR ROUTINES (40 COL) ***** 9001 ' 9005 IF ERR=24 THEN RESUME ELSE GOTO 9010 9010 LOCATE 25,1:PRINT SPACE$(39); 9020 IF ERR=25 THEN 9030 ELSE 9050 9030 COLOR 4:LOCATE 25,7:LINE INPUT ;"Turn printer on and (CR)";Z$ 9040 LOCATE 25,1:PRINT SPACE$(39);:COLOR 2,0,0:RESUME 9050 SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:ON ERROR GOTO 0 9193 ' 9194 ' 9195 ' SUBROUTINE IS SUB-G HIT F7 KEY 9199 END 9200 ' ***** Load disk A and disk B ***** 9210 ' 9220 DSK=1:DSK1$="DISK A":DSK2$="DISK B":CLS:WIDTH 40 9230 LOCATE 4,6:COLOR 12:PRINT "Hit ESC to abort" 9240 LOCATE 6,6:PRINT "Hit any key to load both disks" 9250 B3$=INKEY$:IF B3$="" THEN 9250 9260 IF B3$=CHR$(3) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:END 9270 IF B3$=CHR$(27) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:RUN "MENU" 9273 IF DSK > 2 GOTO 9390 9276 IF DSK=1 THEN LOCATE 10,6:COLOR 25,6:PRINT " LOADING ";:COLOR 9,6:PRINT DSK1$;" ":COLOR 2,0 9278 IF DSK=2 THEN LOCATE 10,6:COLOR 16,7:PRINT " LOADING ";:COLOR 0,7:PRINT DSK1$;" ":COLOR 2,0 9280 FILDAT$="NAME" :REM --------CHANGE TO REAL NAME------- 9290 IF DSK=1 THEN FILDAT$="A:"+FILDAT$ 9300 IF DSK=2 THEN FILDAT$="B:"+FILDAT$ 9310 REM -----ENTER INSTRUCTIONS HERE----- 9370 CLOSE #1 9375 BEEP:DSK=DSK+1:SWAP DSK1$,DSK2$ 9380 LOCATE 10,6:PRINT SPC(39):GOTO 9273 9390 WIDTH 80:COLOR 2,0,0:RUN "MENU" 9393 ' 9395 ' SUBROUTINE IS SUB-H HIT F7 KEY 9399 END 9400 ' ***** DIRECT OUTPUT TO PRINTER OR SCREEN ***** 9410 ' 9420 DEF FNU$(A$)=CHR$(ASC(LEFT$(A$,1))+32*(LEFT$(A$,1)>"Z")) 9430 DEV$="SCRN:" 9440 WIDTH 40:COLOR 14,1,9:CLS:LOCATE 12,3:PRINT "Do you wish output on the printer "; 9450 B2$=INKEY$:IF B2$="" THEN 9450 9460 PRINT FNU$(B2$):IF FNU$(B2$)="Y" THEN DEV$="LPT1:" 9470 IF B2$=CHR$(3) THEN SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:END 9480 IF B2$=CHR$(27) THEN SCREEN 0,0,0:COLOR 2,0,0:WIDTH 80:RUN "MENU" 9490 ON ERROR GOTO 9520 9500 OPEN "O",3,DEV$ 9510 SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80:RETURN 9520 WIDTH 40:COLOR 12,1,9:CLS:LOCATE 12,6 9530 IF ERR=24 THEN RESUME ELSE GOTO 9540 9540 IF ERR=25 THEN 9550 ELSE END 9550 LINE INPUT ;"Turn on the printer and (CR) ";Z$ 9560 SCREEN 0,0,0:CLS:COLOR 2,0,0:WIDTH 80 9570 RESUME 9593 ' 9594 ' 9595 ' SUBROUTINE IS SUB-I HIT F7 KEY 9599 END 9600 ' ***** RESET FUNCTION KEYS ***** 9601 ' 9610 FU$(1)=CHR$(12)+"LIST " 9620 FU$(2)=CHR$(12)+"RUN"+CHR$(13) 9630 FU$(3)=CHR$(12)+"LOAD"+CHR$(34) 9640 FU$(4)="SAVE"+CHR$(34) 9650 FU$(5)="RUN"+CHR$(34)+"MENU"+CHR$(13) 9660 FU$(6)=","+CHR$(34)+"LPT1:"+CHR$(34)+CHR$(13) 9670 FU$(7)="TRON"+CHR$(13) 9680 FU$(8)="WIDTH 80"+CHR$(13)+"CLS"+CHR$(13) 9690 FU$(9)="COLOR 2,0,0"+CHR$(13) 9700 FU$(10)="SCREEN 0,0,0"+CHR$(13) 9710 FOR X=1 TO 10:KEY X,FU$(X):NEXT X 9720 RETURN 9793 ' 9794 ' 9795 ' SUBROUTINE IS SUB-J HIT F7 KEY 9799 END