home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40a.dsk / MAY.1991 / PROFINDER.INST.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  61 lines

  1. 10  REM ***********************
  2. 20  REM * PROFINDER.INST      *
  3. 30  REM * BY PAUL L. ESSER    *
  4. 40  REM * COPYRIGHT(C) 1991   *
  5. 50  REM * MINDCRAFT PUB. CORP.*
  6. 60  REM * CONCORD, MA 01742   *
  7. 70  REM ***********************
  8. 80 D$ =  CHR$(4): NOTRACE : TEXT : NORMAL : PRINT  CHR$(21): HOME 
  9. 90  LIST  -70: VTAB 1: FOR I = 1 TO 9: PRINT "        ": NEXT : REM  8 SPACES
  10. 100  PRINT : PRINT "PLEASE INSERT DISK WITH 'PROFINDER'"
  11. 110  PRINT "AND 'PRODOS' INTO THE CURRENT DRIVE.": PRINT 
  12. 120  PRINT "PRESS <RETURN> WHEN READY, OR PRESS": PRINT "<ESC> TO CANCEL.": PRINT 
  13. 130  POKE 49168,0: GET X$: ON X$ < > CHR$(13)  AND X$ < > CHR$(27) GOTO 130: IF X$ =  CHR$(27)  THEN  PRINT "CANCELLED.": END 
  14. 140  PRINT "PLEASE WAIT.": POKE 48655,0: ONERR  GOTO 570
  15. 150 C$ = "BLOAD PRODOS": PRINT D$;C$;",TSYS,A$2000"
  16. 160  REM  
  17. 170  REM  DETERMINE PRODOS VERSION NUMBER
  18. 180  REM  
  19. 190  READ V$: IF V$ = "END"  THEN  PRINT : PRINT  CHR$(7);"UNKNOWN PRODOS VERSION": END 
  20. 200  READ A1,A2,A3,A4,A5,A6,A7:I = 1
  21. 210  IF  PEEK(A1 +I -1) < > ASC( MID$ (V$,I,1)) +128  THEN 190
  22. 220  IF I < LEN(V$)  THEN I = I +1: GOTO 210
  23. 230  IF  PEEK(A1 +I) < >160  THEN 190
  24. 240  READ X$: IF X$ < >"END"  THEN  READ X,X,X,X,X,X,X: GOTO 240
  25. 250  DATA "1.0",9358,8587,0,19423,0,8907,57
  26. 260  DATA "1.0.1",9377,8606,0,19441,0,8926,57
  27. 270  DATA "1.0.2",9377,8606,0,19453,0,8926,57
  28. 280  DATA "1.1.1",9458,8755,0,19463,0,8982,57
  29. 290  DATA "1.2",9740,8858,0,19912,8921,9261,56
  30. 300  DATA "1.3",9751,8858,0,19956,8921,9261,56
  31. 310  DATA "1.4",9751,8858,0,19956,8921,9261,56
  32. 320  DATA "1.5",9751,8855,0,19985,8918,9261,57
  33. 330  DATA "1.6",9751,8855,0,19985,8918,9261,57
  34. 340  DATA "1.7",9751,8855,0,19980,8918,9261,57
  35. 350  DATA "1.8",9762,8866,0,20235,8929,9272,57
  36. 360  DATA "1.9",9809,8887,8895,20235,8958,9301,68
  37. 370  DATA "END"
  38. 380  REM 
  39. 390  REM  PATCH PRODOS
  40. 400  REM 
  41. 410  POKE A2,15: POKE A4,15: IF A3 >0  THEN  POKE A3,15: POKE A3 +2, PEEK(A2 +2): REM  CHANGE LENGTH OF QUIT CODE FROM 3 TO 15 PAGES
  42. 420 P = 256 * PEEK(A2 +2):E = P +3839: REM  DETERMINE ADDRESS OF CURRENT QUIT CODE, WHERE INSTALLATION TAKES PLACE
  43. 430  IF A5 >0  THEN E = E +125:C =  PEEK(A5) *256: FOR I = 0 TO 124: POKE P +3840 +I, PEEK(C +I): NEXT I: POKE A5, INT((P +3840)/256): REM  MOVE IIGS CLOCK DRIVER OUT OF THE WAY
  44. 440  POKE A6,56: POKE A6 +1,176: POKE A6 +2,A7 -3: POKE A6 +3,234 *( PEEK(A6 +3) >0): POKE A6 +4,56: POKE A6 +5,176: POKE A6 +6,A7 +3: FOR I = 0 TO 29: READ X: POKE A6 +A7 +I,X: NEXT I: REM  PATCH ".SYSTEM" LOADER
  45. 450  DATA 173,0,192,201,149,240,3,76,0,32
  46. 460  DATA 169,4,133,128,169,0,162,6,149,129,202,16,251,32,0,191,101,128,0,0
  47. 470  REM 
  48. 480  REM   INSTALL AND SAVE TO DISK
  49. 490  REM 
  50. 500 C$ = "BLOAD PROFINDER": PRINT D$;C$;",A";P
  51. 510 C$ = "UNLOCK PRODOS": PRINT D$;C$
  52. 520 C$ = "BSAVE PRODOS": PRINT D$;C$;",TSYS,A$2000,E";E
  53. 530  PRINT : PRINT "PRODOS 8 VERSION ";V$: PRINT "PROFINDER HAS BEEN INSTALLED.": END 
  54. 540  REM 
  55. 550  REM  ERROR HANDLER
  56. 560  REM 
  57. 570  POKE 216,0: IF  PEEK(222) = 255  THEN  PRINT  CHR$(7);"CTRL-C BREAK IN LINE "; PEEK(218) +256 * PEEK(219): END : REM  STOP ON CTRL-C
  58. 580  IF  PEEK(222) > = 2  AND  PEEK(222) < = 22  AND  PEEK(222) =  PEEK(48655)  THEN 600: REM  DETERMINE IF APPLESOFT OR PRODOS ERROR
  59. 590  POKE 750,166: POKE 751,222: POKE 752,76: POKE 753,18: POKE 754,212: POKE 117, PEEK(218): POKE 118, PEEK(219): POKE 216,0: CALL 750: REM  PRINT APPLESOFT ERROR MESSAGE AND HALT
  60. 600  POKE 750,165: POKE 751,222: POKE 752,76: POKE 753,12: POKE 754,190: CALL 750: REM  PRINT PRODOS ERROR MESSAGE
  61. 610  PRINT " --THIS ERROR OCCURRED WHILE TRYING": PRINT  SPC( 3);"TO "; CHR$(34);C$; CHR$(34): PRINT " --PLEASE FIX ERROR AND RE-RUN THIS": PRINT  SPC( 3);"PROGRAM.": END