home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-09-16 | 6.0 KB | 147 lines |
- 1000 ON ERROR GOTO 3500
- 1001 COMMON UMSEG%()
- 1005 COLOR 0,0,0:DEFINT A-Z:KEY OFF:FOR I=1 TO 10:KEY I,"":NEXT
- 1010 OPTION BASE 1
- 1015 DIM LESSON$(45),REST$(45)
- 1080 OPEN "MMHOME.dir" AS #1 LEN = 95
- 1090 FIELD #1, 8 AS F1$,87 AS F2$
- 1170 FOR I=1 TO 45
- 1180 GET #1,I:LESSON$(I)=F1$:REST$(I)=F2$
- 1200 NEXT
- 1230 COLOR 0,0,0:CLS:WIDTH 80:COLOR 0,15,0:LOCATE ,,0
- 1250 LOCATE 1,6:PRINT SPACE$(25)+"M A T C H M A K E R"+SPACE$(26)
- 1260 LOCATE 2,6:PRINT " "+STRING$(19,205)+" LESSON DIRECTORY "+STRING$(19,205)+SPACE$(6)
- 1270 LOCATE 3,6:PRINT SPACE$(70)
- 1280 FOR I=1 TO 15
- 1290 LOCATE I+3,6:PRINT USING " ##. ";I;:PRINT USING "\ \";LESSON$(I);
- 1300 PRINT SPACE$(10);:PRINT USING "##. ";I+15;:PRINT USING "\ \";LESSON$(I+15);
- 1310 PRINT SPACE$(10);:PRINT USING "##. ";I+30;:PRINT USING "\ \";LESSON$(I+30);
- 1320 PRINT SPACE$(6)
- 1330 NEXT
- 1350 IK$=INKEY$:IF IK$<>"" GOTO 1350
- 1360 LOCATE 20,6:COLOR 15,0:PRINT "CHOOSE A LESSON NUMBER THEN ";
- 1380 COLOR 7:PRINT "Press ";:COLOR 15:PRINT CHR$(17)+STRING$(2,196)+CHR$(217)+" :"
- 1385 LOCATE 22,6:PRINT "(I WILL ";:COLOR 0,15:PRINT " RENAME ";:COLOR 15,0:PRINT " THE LESSON YOU SELECT)"
- 1390 FDLEN=2:TYPERR=1:XPOSMAX=49:XPOSMIN=48:XPOS=48:YPOS=20
- 1400 FDINBUF$=SPACE$(FDLEN):COLOR 6,0:LOCATE YPOS,XPOS,0:PRINT FDINBUF$
- 1410 COLOR 0,6:LOCATE YPOS,XPOS,1,0,7
- 1420 IK$=INKEY$:IF IK$="" THEN GOTO 1420
- 1425 IF IK$=CHR$(27) THEN CLOSE:CHAIN "MMEDITOR",1000
- 1430 L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
- 1440 IF L=2 THEN IF IK$="K" THEN GOSUB 1490:GOTO 1410 ELSE IF IK$="M" THEN GOSUB 1530:GOTO 1410
- 1460 IF IK$=CHR$(13) THEN IF FDINBUF$<>" " GOTO 1620 ELSE GOTO 3300
- 1470 COLOR 0,0:LOCATE 23,6:PRINT SPACE$(50):COLOR 0,7:GOSUB 1580:IF XPOS < XPOSMAX THEN XPOS=XPOS+1
- 1480 GOTO 1410
- 1490 REM =================================================== CURSOR LEFT KEY
- 1500 IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
- 1501 IF XPOS >= XPOSMIN THEN LOCATE YPOS,XPOS+1:PRINT " ":FDINBUF$=LEFT$(FDINBUF$,1)+" "
- 1510 IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
- 1520 RETURN
- 1530 REM =================================================== CURSOR RIGHT KEY
- 1540 IF XPOS <= XPOSMAX THEN XPOS=XPOS+1
- 1550 IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1
- 1560 RETURN
- 1570 REM ======================================= VALIDATE ENTERED DATA AND ECHO
- 1580 LOCATE YPOS,XPOS,0
- 1590 IF (IK$ < "0" OR IK$ > "9") THEN GOTO 1610 ELSE GOTO 1600
- 1600 MID$(FDINBUF$,XPOS-XPOSMIN+1)=IK$:COLOR 14,0:PRINT IK$;:TYPERR=0:RETURN
- 1610 BEEP:XPOS=XPOS-1:TYPERR=1:RETURN
- 1620 LESN=VAL(FDINBUF$)
- 1630 IF LESN>45 OR LESN<1 THEN BEEP:TYPERR=1:XPOS=XPOSMIN:GOTO 1400
- 1640 IF LEFT$(LESSON$(LESN),1)="-" THEN GOSUB 1700:XPOS=XPOSMIN:GOTO 1400:ELSE GOTO 2000
- 1700 BEEP:COLOR 12,0:LOCATE 23,6,0:PRINT "LESSON ";LESN;" IS EMPTY, PLEASE RE-ENTER!":COLOR 0,7:RETURN
- 2000 CLS:COLOR 0,0,0:SCREEN 0,1:WIDTH 40:COLOR 11,0,0
- 2010 LOCATE 1,2,0:PRINT "**** MATCHMAKER EDITOR - RENAME ****"
- 2020 COLOR 15,1:LOCATE 4,8:PRINT "OLD NAME:":LOCATE 4,25:PRINT "NEW NAME:"
- 2025 COLOR 7,0:LOCATE 6,8:PRINT LESSON$(LESN):LOCATE 7,25:PRINT "--------"
- 2030 COLOR 14,1:LOCATE 12,5:PRINT "RULES FOR LESSON NAME:"
- 2040 COLOR 14,0:LOCATE 14,5:PRINT "1.";:COLOR 6,0:PRINT " NO longer than ";:COLOR 14:PRINT "8";:COLOR 6:PRINT " characters"
- 2050 COLOR 14,0:LOCATE 15,5:PRINT "2.";:COLOR 6,0:PRINT " MUST ";:COLOR 14:PRINT "BEGIN";:COLOR 6:PRINT " with a letter"
- 2060 COLOR 14,0:LOCATE 16,5:PRINT "3.";:COLOR 6,0:PRINT " MAY NOT include spaces or":LOCATE 17,8:PRINT "punctuations"
- 2070 COLOR 14,0:LOCATE 18,5:PRINT "4.";:COLOR 6,0:PRINT " MAY NOT be the same as a name":LOCATE 19,8:PRINT "already in the directory"
- 2100 LOCATE 22,2:COLOR 7,0:PRINT "PRESS ";:COLOR 15:PRINT CHR$(17)+STRING$(2,196)+CHR$(217);:COLOR 7:PRINT " AFTER ENTRY"
- 2110 LOCATE 23,2:COLOR 7,0:PRINT "PRESS ";:COLOR 15:PRINT "ESC";:COLOR 7:PRINT " TO RETURN TO MENU"
- 2400 IK$=INKEY$:IF IK$<>"" THEN GOTO 2400
- 2410 COLOR 15,0:FDLEN=8:TYPERR=0:XPOSMAX=32:XPOSMIN=25:XPOS=25:YPOS=6
- 2420 FDINBUF$=SPACE$(FDLEN):LOCATE YPOS,XPOS,0:PRINT FDINBUF$
- 2430 LOCATE YPOS,XPOS,1,0,7
- 2440 IK$=INKEY$:IF IK$="" THEN GOTO 2440
- 2445 IF IK$=CHR$(27) GOTO 3300
- 2450 L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
- 2455 IF IK$=CHR$(8) THEN GOSUB 2520:GOTO 2430
- 2460 IF L=2 THEN IF IK$="K" THEN GOSUB 2510:GOTO 2430 ELSE IF IK$="M" THEN GOSUB 2550:GOTO 2430
- 2470 IF L=2 THEN IF IK$="S" THEN GOSUB 2590:GOTO 2430 ELSE IF IK$="R" THEN GOSUB 2650:GOTO 2430
- 2480 IF IK$=CHR$(13) THEN GOTO 2800
- 2490 GOSUB 2760:IF XPOS < XPOSMAX THEN XPOS=XPOS+1
- 2500 GOTO 2430
- 2510 REM --------------------------------------------------- CURSOR LEFT KEY
- 2511 IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
- 2513 IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
- 2514 RETURN
- 2519 REM ------------------------------------------- CURSOR LEFT KEY + DELETE
- 2520 IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
- 2525 IF XPOS>=XPOSMIN THEN LOCATE YPOS,XPOS+1,0:PRINT " ":MID$(FDINBUF$,XPOS-XPOSMIN+2,1)=" "
- 2530 IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
- 2540 RETURN
- 2550 REM --------------------------------------------------- CURSOR RIGHT KEY
- 2560 IF XPOS <= XPOSMAX THEN XPOS=XPOS+1
- 2570 IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1
- 2580 RETURN
- 2590 REM --------------------------------------- DELETE A CHARACTER -- DEL KEY
- 2600 PTR=XPOS-XPOSMIN+1:RESTBUF$=MID$(FDINBUF$,PTR+1)+SPACE$(1)
- 2610 LOCATE ,,0
- 2620 PRINT RESTBUF$;:FDINBUF$=LEFT$(FDINBUF$,PTR-1)+RESTBUF$
- 2630 TYPERR=0
- 2640 RETURN
- 2650 REM --------------------------------------- INSERT A CHARACTER -- INS KEY
- 2660 LOCATE YPOS,XPOS,1,4,7:IK$=INKEY$:IF IK$="" THEN GOTO 2660
- 2670 L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
- 2675 IF IK$=CHR$(8) THEN GOTO 2455
- 2680 IF L=2 THEN IF IK$="K" OR IK$="M" THEN GOTO 2460 ELSE IF IK$="S" THEN GOTO 2470 ELSE IF IK$="R" THEN RETURN
- 2690 IF IK$=CHR$(13) THEN GOTO 2480
- 2700 PTR=XPOS-XPOSMIN+1:RESTBUF$=MID$(FDINBUF$,PTR,FDLEN-PTR)
- 2710 GOSUB 2750:LOCATE ,,0:PRINT RESTBUF$;:XPOS=XPOS+1
- 2720 IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1:RETURN
- 2730 FDINBUF$=LEFT$(FDINBUF$,PTR)+RESTBUF$
- 2740 GOTO 2660
- 2750 REM --------------------------------------- VALIDATE ENTERED DATA AND ECHO
- 2760 LOCATE ,,0
- 2770 IF (IK$<"0") OR (IK$>"9" AND IK$<"A") OR (IK$>"Z" AND IK$<"a") OR (IK$>"z") GOTO 2790
- 2780 MID$(FDINBUF$,XPOS-XPOSMIN+1)=IK$:PRINT IK$;:RETURN
- 2790 BEEP:FOR I=0 TO 500:COLOR 22,1:LOCATE 16,5,0:PRINT "3":NEXT
- 2791 COLOR 14,0:LOCATE 16,5:PRINT "3":COLOR 15,0:XPOS=XPOS-1:RETURN
- 2800 N$=LEFT$(FDINBUF$,1):IF N$<"A" OR (N$>"Z" AND N$<"a") OR N$>"z" GOTO 2805 ELSE GOTO 2810
- 2805 BEEP:FOR I=0 TO 500:COLOR 22,1:LOCATE 15,5,0:PRINT "2":NEXT
- 2806 COLOR 14,0:LOCATE 15,5:PRINT "2":GOTO 2400
- 2810 N$=FDINBUF$:L=LEN(N$)
- 2811 FOR I=1 TO L
- 2812 C$=MID$(N$,I,1):IF C$>="a" AND C$<="z" THEN MID$(N$,I,1)=CHR$(ASC(C$)-32)
- 2813 NEXT
- 2814 FOR I=1 TO 45
- 2815 N1$=LESSON$(I):L=LEN(N1$)
- 2816 FOR J=1 TO L
- 2817 C$=MID$(N1$,J,1):IF C$>="a" AND C$<="z" THEN MID$(N1$,J,1)=CHR$(ASC(C$)-32)
- 2818 NEXT J
- 2819 IF N$=N1$ GOTO 2825
- 2820 NEXT I
- 2821 GOTO 2850
- 2825 BEEP:FOR J=0 TO 500:COLOR 22,1:LOCATE 18,5,0:PRINT "4":NEXT
- 2830 COLOR 14,0:LOCATE 18,5:PRINT "4":GOTO 2400
- 2850 L=LEN(FDINBUF$):IF RIGHT$(FDINBUF$,1)=" " THEN FDINBUF$=LEFT$(FDINBUF$,L-1):GOTO 2850
- 3000 COLOR 0,0:LOCATE 23,1,0:PRINT SPACE$(30)
- 3005 COLOR 12,0:LOCATE 8,5,0:PRINT "ARE YOU SURE ? (Y/N)"+SPACE$(10)
- 3010 COLOR 0,14:LOCATE 8,26,0:PRINT " N "
- 3015 COLOR 12,0:LOCATE 9,5,0:PRINT "THIS WILL RENAME LESSON: "+LESSON$(LESN)
- 3020 IK$=INKEY$:IF IK$<>"" GOTO 3020
- 3025 COLOR 0,14:LOCATE 8,27,1,7,0
- 3026 K$=INKEY$:IF K$="" GOTO 3026
- 3027 LOCATE 8,27,0:PRINT K$
- 3030 IF K$="N" OR K$="n" OR K$=CHR$(13) GOTO 1230
- 3040 IF K$="y" OR K$="Y" GOTO 3050 ELSE BEEP:GOTO 3010
- 3050 NAME LESSON$(LESN)+".LES" AS FDINBUF$+".LES":LESSON$(LESN)=FDINBUF$+SPACE$(8-LEN(FDINBUF$))
- 3150 LSET F1$=LESSON$(LESN):LSET F2$=REST$(LESN):PUT #1,LESN
- 3160 GOTO 1230
- 3300 CLOSE:CHAIN "MMEDITOR.BAS",1000
- 3500 COLOR 12,0:BEEP:COLOR 12,0:FOR B=1 TO 30:LOCATE 23,3:PRINT "ERROR DETECTED! ("+MID$(STR$(ERR),2)+") ":NEXT B:LOCATE 23,2:PRINT SPACE$(38)
- 3510 CLOSE:RESUME 1080
-