home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib34b.dsk / MATCHMAKER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  58 lines

  1. 10  REM  ************************
  2. 20  REM  * MATCHMAKER           *
  3. 30  REM  * BY ROBERT JORDAN     *
  4. 40  REM  * COPYRIGHT(C) 1988    *
  5. 50  REM  * MICROSPARC, INC.     *
  6. 60  REM  * CONCORD, MA 01742    *
  7. 70  REM  ************************
  8. 80 SL = 1: REM  PRINTER SLOT
  9. 90  HIMEM: 32767:FIX = 32775:ADR = 32768 -1:COMPARER = 32770:CBUF = 9 *4096
  10. 100 D$ =  CHR$(13) + CHR$(4):FALSE = 0:TRUE = 1:WARM = FALSE
  11. 110 DOS =  PEEK(992) + PEEK(993) *256 -14: IF  PEEK(DOS +12) +256 * PEEK(DOS +13) < >DOS  THEN  PRINT "NOT STANDARD 48K DOS 3.3": END 
  12. 120  PRINT  CHR$(4)"MAXFILES 3"
  13. 130 BF3 = DOS -3 *594 -10:TS3 = BF3 +256:FTYPE = BF3 +512 +37
  14. 140  REM MAIN PROCESS
  15. 150  TEXT : HOME 
  16. 160  PRINT "APPLESOFT MATCHMAKER": PRINT "FILE COMPARISON PROGRAM": PRINT "COPYRIGHT(C) 1988 MICROSPARC, INC."
  17. 170  PRINT : PRINT "ENTER THE FILE NAMES OF THE BASIC       PROGRAMS TO BE COMPARED. YOU MAY ALSO   RESPOND WITH CATALOG/CATALOGD1/CATALOGD2OR QUIT IN PLACE OF A FILE NAME. FILES  MAY BE ON THE SAME OR DIFFERENT DRIVES."
  18. 180  ONERR  GOTO 480
  19. 190  IF   NOT WARM  THEN  PRINT D$;"BLOADCOMPARER.OBJ0":WARM = TRUE
  20. 200  FOR I = 1 TO 2
  21. 210  PRINT : PRINT "NAME OF FILE ";I; SPC( 20): POKE 36,14: INPUT ": ";F$(I)
  22. 220  IF  LEFT$(F$(I),7) = "CATALOG"  THEN  PRINT D$;F$(I): GOTO 210
  23. 230  IF F$(I) = "QUIT"  THEN  END 
  24. 240  PRINT "DRIVE NUMBER (1 OR 2)   ";: CALL  -1008: CALL  -1008: GOSUB 560
  25. 250  REM CHECK FILE
  26. 260  ONERR  GOTO 280
  27. 270  GOTO 310
  28. 280  POKE 216,0: CALL FIX:ERR =  PEEK(222)
  29. 290  IF ERR = 6  OR ERR = 11  THEN  PRINT "NO SUCH FILE. PRESS RETURN TO CONTINUE";: GET A$: POKE 36,0: PRINT  SPC( 40);: VTAB  PEEK(37) -3: GOTO 210
  30. 300  RESUME 
  31. 310  PRINT D$;"VERIFY";F$(I);",D";D
  32. 320  POKE 216,0
  33. 330  IF  PEEK(FTYPE) < >2  AND  PEEK(FTYPE) < >130  THEN  PRINT "WRONG FILE TYPE"; CHR$(7): GOTO 210
  34. 340  REM CAPTURE T/S LIST
  35. 350  POKE ADR +I,D
  36. 360 Q = CBUF +(I -1) *256:P = TS3 -Q
  37. 370  FOR C = Q TO Q +255: POKE C, PEEK(C +P): NEXT 
  38. 380  NEXT I
  39. 390  REM COMPARE FILES
  40. 400  PRINT "PRINTER (P) OR SCREEN(S) ?";: GET P$:AA =  ASC(P$):AA = AA -32 *(AA >96  AND AA <123):P$ =  CHR$(AA): IF P$ < >"P"  AND P$ < >"S"  THEN  POKE 36,0: GOTO 400
  41. 410  PRINT : PRINT : PRINT "COMPARISON MAY BE TERMINATED AT ANY TIMEUSING CNTRL-C OR PAUSED USING CNTRL-S": PRINT 
  42. 420  IF P$ = "P"  THEN  PRINT D$;"PR#"; STR$(SL): PRINT  CHR$(9);"80N"; CHR$(12)
  43. 430  PRINT " PROGRAM COMPARISON OF                   *< ";F$(1);" >*  AND  *< ";F$(2);" >*"
  44. 440  CALL COMPARER
  45. 450  PRINT D$;"PR#0"
  46. 460  INPUT "PRESS RETURN TO CONTINUE";A$
  47. 470  GOTO 150
  48. 480 EN =  PEEK(222)
  49. 490 EL =  PEEK(219) *256 + PEEK(218)
  50. 500  IF EN < >6  THEN  PRINT : PRINT "ERROR #";EN;" OCCURRED.": PRINT  CHR$(7);: END 
  51. 510  PRINT : PRINT "FILE NOT FOUND."
  52. 520  IF EL = 190  THEN  PRINT "INSERT DISK WITH COMPARER.OBJ0": PRINT "AND PRESS RETURN";: GET A$
  53. 530  POKE 36,0: PRINT  SPC( 39): FOR I = 0 TO 2: VTAB  PEEK(37): POKE 36,0: PRINT  SPC( 39): NEXT : VTAB  PEEK(37): POKE 36,0: RESUME 
  54. 540  RESUME 
  55. 550  GOTO 200
  56. 560  GET DR$: IF DR$ < >"1"  AND DR$ < >"2"  AND DR$ < > CHR$(13)  THEN 560
  57. 570 D = 1: IF DR$ < > CHR$(13)  THEN D =  VAL(DR$)
  58. 580  PRINT D;: RETURN