home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / SCIENG1 / MMBIOTUT.ZIP / MMRENAME.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-09-16  |  6.0 KB  |  147 lines

  1. 1000  ON ERROR GOTO 3500
  2. 1001  COMMON UMSEG%()
  3. 1005  COLOR 0,0,0:DEFINT A-Z:KEY OFF:FOR I=1 TO 10:KEY I,"":NEXT
  4. 1010  OPTION BASE 1
  5. 1015  DIM LESSON$(45),REST$(45)
  6. 1080  OPEN "MMHOME.dir" AS #1 LEN = 95
  7. 1090  FIELD #1, 8 AS F1$,87 AS F2$
  8. 1170  FOR I=1 TO 45
  9. 1180    GET #1,I:LESSON$(I)=F1$:REST$(I)=F2$
  10. 1200  NEXT
  11. 1230  COLOR 0,0,0:CLS:WIDTH 80:COLOR 0,15,0:LOCATE ,,0
  12. 1250  LOCATE 1,6:PRINT SPACE$(25)+"M A T C H M A K E R"+SPACE$(26)
  13. 1260  LOCATE 2,6:PRINT "     "+STRING$(19,205)+"  LESSON  DIRECTORY  "+STRING$(19,205)+SPACE$(6)
  14. 1270  LOCATE 3,6:PRINT SPACE$(70)
  15. 1280  FOR I=1 TO 15
  16. 1290    LOCATE I+3,6:PRINT USING "     ##.  ";I;:PRINT USING "\      \";LESSON$(I);
  17. 1300    PRINT SPACE$(10);:PRINT USING "##.  ";I+15;:PRINT USING "\      \";LESSON$(I+15);
  18. 1310    PRINT SPACE$(10);:PRINT USING "##.  ";I+30;:PRINT USING "\      \";LESSON$(I+30);
  19. 1320    PRINT SPACE$(6)
  20. 1330  NEXT
  21. 1350  IK$=INKEY$:IF IK$<>"" GOTO 1350
  22. 1360  LOCATE 20,6:COLOR 15,0:PRINT "CHOOSE A LESSON NUMBER THEN ";
  23. 1380  COLOR 7:PRINT "Press ";:COLOR 15:PRINT CHR$(17)+STRING$(2,196)+CHR$(217)+" :"
  24. 1385  LOCATE 22,6:PRINT "(I WILL ";:COLOR 0,15:PRINT " RENAME ";:COLOR 15,0:PRINT " THE LESSON YOU SELECT)"
  25. 1390  FDLEN=2:TYPERR=1:XPOSMAX=49:XPOSMIN=48:XPOS=48:YPOS=20
  26. 1400  FDINBUF$=SPACE$(FDLEN):COLOR 6,0:LOCATE YPOS,XPOS,0:PRINT FDINBUF$
  27. 1410  COLOR 0,6:LOCATE YPOS,XPOS,1,0,7
  28. 1420  IK$=INKEY$:IF IK$="" THEN GOTO 1420
  29. 1425  IF IK$=CHR$(27) THEN CLOSE:CHAIN "MMEDITOR",1000
  30. 1430  L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
  31. 1440  IF L=2 THEN IF IK$="K" THEN GOSUB 1490:GOTO 1410 ELSE IF IK$="M" THEN GOSUB 1530:GOTO 1410
  32. 1460  IF IK$=CHR$(13) THEN IF FDINBUF$<>"  " GOTO 1620 ELSE GOTO 3300
  33. 1470  COLOR 0,0:LOCATE 23,6:PRINT SPACE$(50):COLOR 0,7:GOSUB 1580:IF XPOS < XPOSMAX THEN XPOS=XPOS+1
  34. 1480  GOTO 1410
  35. 1490  REM ===================================================  CURSOR LEFT KEY
  36. 1500  IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
  37. 1501  IF XPOS >= XPOSMIN THEN LOCATE YPOS,XPOS+1:PRINT " ":FDINBUF$=LEFT$(FDINBUF$,1)+" "
  38. 1510  IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
  39. 1520  RETURN
  40. 1530  REM ===================================================  CURSOR RIGHT KEY
  41. 1540  IF XPOS <= XPOSMAX THEN XPOS=XPOS+1
  42. 1550  IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1
  43. 1560  RETURN
  44. 1570  REM =======================================  VALIDATE ENTERED DATA AND ECHO
  45. 1580  LOCATE YPOS,XPOS,0
  46. 1590  IF (IK$ < "0" OR IK$ > "9") THEN GOTO 1610 ELSE GOTO 1600
  47. 1600  MID$(FDINBUF$,XPOS-XPOSMIN+1)=IK$:COLOR 14,0:PRINT IK$;:TYPERR=0:RETURN
  48. 1610  BEEP:XPOS=XPOS-1:TYPERR=1:RETURN
  49. 1620  LESN=VAL(FDINBUF$)
  50. 1630  IF LESN>45 OR LESN<1 THEN BEEP:TYPERR=1:XPOS=XPOSMIN:GOTO 1400
  51. 1640  IF LEFT$(LESSON$(LESN),1)="-" THEN GOSUB 1700:XPOS=XPOSMIN:GOTO 1400:ELSE GOTO 2000
  52. 1700  BEEP:COLOR 12,0:LOCATE 23,6,0:PRINT "LESSON ";LESN;" IS EMPTY, PLEASE RE-ENTER!":COLOR 0,7:RETURN
  53. 2000  CLS:COLOR 0,0,0:SCREEN 0,1:WIDTH 40:COLOR 11,0,0
  54. 2010  LOCATE 1,2,0:PRINT "****  MATCHMAKER EDITOR - RENAME  ****"
  55. 2020  COLOR 15,1:LOCATE 4,8:PRINT "OLD NAME:":LOCATE 4,25:PRINT "NEW NAME:"
  56. 2025  COLOR 7,0:LOCATE 6,8:PRINT LESSON$(LESN):LOCATE 7,25:PRINT "--------"
  57. 2030  COLOR 14,1:LOCATE 12,5:PRINT "RULES FOR LESSON NAME:"
  58. 2040  COLOR 14,0:LOCATE 14,5:PRINT "1.";:COLOR 6,0:PRINT " NO longer than ";:COLOR 14:PRINT "8";:COLOR 6:PRINT " characters"
  59. 2050  COLOR 14,0:LOCATE 15,5:PRINT "2.";:COLOR 6,0:PRINT " MUST ";:COLOR 14:PRINT "BEGIN";:COLOR 6:PRINT " with a letter"
  60. 2060  COLOR 14,0:LOCATE 16,5:PRINT "3.";:COLOR 6,0:PRINT " MAY NOT include spaces or":LOCATE 17,8:PRINT "punctuations"
  61. 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"
  62. 2100  LOCATE 22,2:COLOR 7,0:PRINT "PRESS ";:COLOR 15:PRINT CHR$(17)+STRING$(2,196)+CHR$(217);:COLOR 7:PRINT " AFTER ENTRY"
  63. 2110  LOCATE 23,2:COLOR 7,0:PRINT "PRESS ";:COLOR 15:PRINT "ESC";:COLOR 7:PRINT " TO RETURN TO MENU"
  64. 2400  IK$=INKEY$:IF IK$<>"" THEN GOTO 2400
  65. 2410  COLOR 15,0:FDLEN=8:TYPERR=0:XPOSMAX=32:XPOSMIN=25:XPOS=25:YPOS=6
  66. 2420  FDINBUF$=SPACE$(FDLEN):LOCATE YPOS,XPOS,0:PRINT FDINBUF$
  67. 2430  LOCATE YPOS,XPOS,1,0,7
  68. 2440  IK$=INKEY$:IF IK$="" THEN GOTO 2440
  69. 2445  IF IK$=CHR$(27) GOTO 3300
  70. 2450  L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
  71. 2455  IF IK$=CHR$(8) THEN GOSUB 2520:GOTO 2430
  72. 2460  IF L=2 THEN IF IK$="K" THEN GOSUB 2510:GOTO 2430 ELSE IF IK$="M" THEN GOSUB 2550:GOTO 2430
  73. 2470  IF L=2 THEN IF IK$="S" THEN GOSUB 2590:GOTO 2430 ELSE IF IK$="R" THEN GOSUB 2650:GOTO 2430
  74. 2480  IF IK$=CHR$(13) THEN GOTO 2800
  75. 2490  GOSUB 2760:IF XPOS < XPOSMAX THEN XPOS=XPOS+1
  76. 2500  GOTO 2430
  77. 2510  REM ---------------------------------------------------  CURSOR LEFT KEY
  78. 2511  IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
  79. 2513  IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
  80. 2514  RETURN
  81. 2519  REM -------------------------------------------  CURSOR LEFT KEY + DELETE
  82. 2520  IF XPOS-XPOSMIN+1 > 0 THEN XPOS=XPOS-1
  83. 2525  IF XPOS>=XPOSMIN THEN LOCATE YPOS,XPOS+1,0:PRINT " ":MID$(FDINBUF$,XPOS-XPOSMIN+2,1)=" "
  84. 2530  IF XPOS-XPOSMIN+1 < 1 THEN BEEP:XPOS=XPOS+1
  85. 2540  RETURN
  86. 2550  REM ---------------------------------------------------  CURSOR RIGHT KEY
  87. 2560  IF XPOS <= XPOSMAX THEN XPOS=XPOS+1
  88. 2570  IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1
  89. 2580  RETURN
  90. 2590  REM ---------------------------------------  DELETE A CHARACTER -- DEL KEY
  91. 2600  PTR=XPOS-XPOSMIN+1:RESTBUF$=MID$(FDINBUF$,PTR+1)+SPACE$(1)
  92. 2610  LOCATE ,,0
  93. 2620  PRINT RESTBUF$;:FDINBUF$=LEFT$(FDINBUF$,PTR-1)+RESTBUF$
  94. 2630  TYPERR=0
  95. 2640  RETURN
  96. 2650  REM ---------------------------------------  INSERT A CHARACTER -- INS KEY
  97. 2660  LOCATE YPOS,XPOS,1,4,7:IK$=INKEY$:IF IK$="" THEN GOTO 2660
  98. 2670  L=LEN(IK$):IF L=2 THEN IK$=RIGHT$(IK$,1)
  99. 2675  IF IK$=CHR$(8) THEN GOTO 2455
  100. 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
  101. 2690  IF IK$=CHR$(13) THEN GOTO 2480
  102. 2700  PTR=XPOS-XPOSMIN+1:RESTBUF$=MID$(FDINBUF$,PTR,FDLEN-PTR)
  103. 2710  GOSUB 2750:LOCATE ,,0:PRINT RESTBUF$;:XPOS=XPOS+1
  104. 2720  IF XPOS > XPOSMAX THEN BEEP:XPOS=XPOS-1:RETURN
  105. 2730  FDINBUF$=LEFT$(FDINBUF$,PTR)+RESTBUF$
  106. 2740  GOTO 2660
  107. 2750  REM ---------------------------------------  VALIDATE ENTERED DATA AND ECHO
  108. 2760  LOCATE ,,0
  109. 2770  IF (IK$<"0") OR (IK$>"9" AND IK$<"A") OR (IK$>"Z" AND IK$<"a") OR (IK$>"z") GOTO 2790
  110. 2780  MID$(FDINBUF$,XPOS-XPOSMIN+1)=IK$:PRINT IK$;:RETURN
  111. 2790  BEEP:FOR I=0 TO 500:COLOR 22,1:LOCATE 16,5,0:PRINT "3":NEXT
  112. 2791  COLOR 14,0:LOCATE 16,5:PRINT "3":COLOR 15,0:XPOS=XPOS-1:RETURN
  113. 2800  N$=LEFT$(FDINBUF$,1):IF N$<"A" OR (N$>"Z" AND N$<"a") OR N$>"z" GOTO 2805 ELSE GOTO 2810
  114. 2805  BEEP:FOR I=0 TO 500:COLOR 22,1:LOCATE 15,5,0:PRINT "2":NEXT
  115. 2806  COLOR 14,0:LOCATE 15,5:PRINT "2":GOTO 2400
  116. 2810  N$=FDINBUF$:L=LEN(N$)
  117. 2811  FOR I=1 TO L
  118. 2812    C$=MID$(N$,I,1):IF C$>="a" AND C$<="z" THEN MID$(N$,I,1)=CHR$(ASC(C$)-32)
  119. 2813  NEXT
  120. 2814  FOR I=1 TO 45
  121. 2815    N1$=LESSON$(I):L=LEN(N1$)
  122. 2816    FOR J=1 TO L
  123. 2817      C$=MID$(N1$,J,1):IF C$>="a" AND C$<="z" THEN MID$(N1$,J,1)=CHR$(ASC(C$)-32)
  124. 2818    NEXT J
  125. 2819    IF N$=N1$ GOTO 2825
  126. 2820  NEXT I
  127. 2821  GOTO 2850
  128. 2825  BEEP:FOR J=0 TO 500:COLOR 22,1:LOCATE 18,5,0:PRINT "4":NEXT
  129. 2830  COLOR 14,0:LOCATE 18,5:PRINT "4":GOTO 2400
  130. 2850  L=LEN(FDINBUF$):IF RIGHT$(FDINBUF$,1)=" " THEN FDINBUF$=LEFT$(FDINBUF$,L-1):GOTO 2850
  131. 3000  COLOR 0,0:LOCATE 23,1,0:PRINT SPACE$(30)
  132. 3005  COLOR 12,0:LOCATE 8,5,0:PRINT "ARE YOU SURE ? (Y/N)"+SPACE$(10)
  133. 3010  COLOR 0,14:LOCATE 8,26,0:PRINT " N "
  134. 3015  COLOR 12,0:LOCATE 9,5,0:PRINT "THIS WILL RENAME LESSON: "+LESSON$(LESN)
  135. 3020  IK$=INKEY$:IF IK$<>"" GOTO 3020
  136. 3025  COLOR 0,14:LOCATE 8,27,1,7,0
  137. 3026  K$=INKEY$:IF K$="" GOTO 3026
  138. 3027  LOCATE 8,27,0:PRINT K$
  139. 3030  IF K$="N" OR K$="n" OR K$=CHR$(13) GOTO 1230
  140. 3040  IF K$="y" OR K$="Y" GOTO 3050 ELSE BEEP:GOTO 3010
  141. 3050  NAME LESSON$(LESN)+".LES" AS FDINBUF$+".LES":LESSON$(LESN)=FDINBUF$+SPACE$(8-LEN(FDINBUF$))
  142. 3150  LSET F1$=LESSON$(LESN):LSET F2$=REST$(LESN):PUT #1,LESN
  143. 3160  GOTO 1230
  144. 3300  CLOSE:CHAIN "MMEDITOR.BAS",1000
  145. 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)
  146. 3510  CLOSE:RESUME 1080
  147.