home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib30a.dsk / MARCH.1987 / AW.DATE.64.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  81 lines

  1. 10  REM  ************************
  2. 20  REM  * AW.DATE.64           *
  3. 30  REM  * BY FERNANDO SALAZAR  *
  4. 40  REM  * COPYRIGHT (C) 1987   *
  5. 50  REM  * BY MICROSPARC, INC.  *
  6. 60  REM  * CONCORD, MA  01742   *
  7. 70  REM  ************************
  8. 80  REM  ----------------------------------
  9. 90  REM  PRINT TITLE, CHECK DATA STATEMENTS
  10. 100  REM ----------------------------------
  11. 110  LOMEM: 25088:D$ =  CHR$(4): TEXT : HOME : VTAB 2: HTAB 8: PRINT "APPLEWRITER DATE-PATCHER": PRINT "  -----------------------------------": POKE 34,5: HOME : REM  2 SPACES, 35 DASHES
  12. 120  PRINT "CHECKING DATA STATEMENTS...":CSUM = 0: FOR I = 1 TO 247: READ A:CSUM = CSUM +A: NEXT I
  13. 130  IF CSUM < >25807  THEN  PRINT "-- DATA STATEMENTS INCORRECT!! --": PRINT : PRINT "  CHECK PROGRAM AND RE-TRY.": PRINT CSUM: GOTO 740
  14. 140  RESTORE : ONERR  GOTO 810
  15. 150  REM 
  16. 160  REM   -- VARIABLES--
  17. 170  REM 
  18. 180  REM  <APPLEWRITER ADDRESSES>
  19. 190  REM 
  20. 200  REM   TLOC = ADDRESS OF [Q]-H TEXT DESCRIPTION
  21. 210  REM   ALOC = ADDRESS OF [Q]-H RTS-TO ADDRESS
  22. 220  REM  MPLOC = ADDRESS OF MESSAGE PRINTER
  23. 230  REM  GKLOC = ADDRESS OF GETKEY
  24. 240  REM  LFLOC = ADDRESS OF LOFILE BYTE
  25. 250  REM 
  26. 260  REM  <PATCH ASSRESSES>
  27. 270  REM 
  28. 280  REM   PLOC = ORIGIN OF PATCH
  29. 290  REM  MVECT = MESSAGE VECTOR
  30. 300  REM  INVECT= GETKEY VECTOR
  31. 310  REM    F$ = FILENAME TO PATCH
  32. 320  REM 
  33. 330  REM  ------------------------------
  34. 340  REM  SELECT VERSION, INIT VARIABLES
  35. 350  REM  ------------------------------
  36. 360  HOME : PRINT "    SELECT VERSION TO PATCH:": PRINT : PRINT "  1) 80-COL 22K": PRINT "  2) 40-COL 22K": PRINT : PRINT "     WHICH? 1 OR 2 ?";: GET Z$: IF Z$ < >"1"  AND Z$ < >"2"  THEN  PRINT  CHR$(7);: GOTO 360
  37. 370  PRINT Z$: VTAB 7 + VAL(Z$): PRINT ">": VTAB 12: PRINT : PRINT "ARE YOU SURE? Y/N";: GET A$: IF A$ < >"Y"  AND A$ < >"y"  THEN 360
  38. 380  IF Z$ = "1"  THEN TLOC = 23579:ALOC = 23719:GKLOC = 8815:MPLOC = 20171:F$ = "AWC.SYS"
  39. 390  IF Z$ = "2"  THEN TLOC = 23537:ALOC = 23677:GKLOC = 8815:MPLOC = 20087:F$ = "AWB.SYS"
  40. 400 LFLOC = 8213:PLOC = 24320:MVECT = 24325:INVECT = 24330
  41. 410  REM  -----------------------------
  42. 420  REM  GET AWRITER DISK, VERIFY FILE
  43. 430  REM  -----------------------------
  44. 440  HOME : PRINT "INSERT A BACKUP COPY OF APPLEWRITER 2.0": PRINT "AND PRESS [RETURN]": GET Z$
  45. 450  PRINT D$"PREFIX /AW2MASTER": POKE 216,0
  46. 460  HOME : PRINT : HTAB 15: PRINT "WORKING...": PRINT D$"BLOAD ";F$;",A$2000,TSYS"
  47. 470 P$ = "H. Toggle Data Line Display":A$ = "": FOR I = 0 TO 26:A$ = A$ + CHR$( PEEK(TLOC +I)): NEXT 
  48. 480  IF P$ < >A$  THEN  PRINT  CHR$(7): HOME : PRINT "-- UNABLE TO VERIFY APPLEWRITER FILE --": GOTO 670
  49. 490  REM  -----------
  50. 500  REM  APPLY PATCH
  51. 510  REM  -----------
  52. 520  FOR I = PLOC TO PLOC +246: READ A: POKE I,A: NEXT 
  53. 530 P$ = "H. Set System Date         ": REM  27 CHARS TOTAL
  54. 540  FOR I = 1 TO 27:A =  ASC( MID$ (P$,I,1)): POKE TLOC -1 +I,A: NEXT 
  55. 550 PLOC = PLOC -1: POKE ALOC,(PLOC -256 * INT(PLOC/256)): POKE ALOC +1, INT(PLOC/256)
  56. 560  POKE INVECT,(GKLOC -256 * INT(GKLOC/256)): POKE INVECT +1, INT(GKLOC/256)
  57. 570  POKE MVECT,(MPLOC -256 * INT(MPLOC/256)): POKE MVECT +1, INT(MPLOC/256)
  58. 580  POKE LFLOC,95: REM  ALTER START OF TEXT FILE BUFFER
  59. 590  REM  --------------------
  60. 600  REM  SAVE PATCHED PROGRAM
  61. 610  REM  --------------------
  62. 620  PRINT D$"UNLOCK ";F$: PRINT D$"BSAVE ";F$;",A$2000,E$6116,TSYS": PRINT D$"LOCK ";F$: PRINT D$"PREFIX /"
  63. 630  HOME : PRINT : PRINT "  DATE-PATCH COMPLETE."
  64. 640  VTAB 20: POKE 34,0: END 
  65. 650  DATA  169,200,162,95,32,119,78,162,0,32,111,34,201,13,240,72,201,8,240,45
  66. 660  DATA  201,21,208,7,224,7,176,237,189,230,95,201,48,144,230,201,58,176,226,157
  67. 670  DATA  230,95,224,8,176,219,144,3,189,230,95,32,3,32,232,224,2,240,245,224
  68. 680  DATA  5,240,241,208,200,202,16,3,232,240,194,232,202,169,136,32,3,32,224,5
  69. 690  DATA  240,246,224,2,240,242,208,177,160,0,32,173,95,133,2,240,31,201,13,176
  70. 700  DATA  27,200,200,32,173,95,133,3,240,18,166,2,221,160,95,176,11,200,200,32
  71. 710  DATA  173,95,133,1,201,85,176,8,169,135,32,3,32,76,0,95,6,2,6,2
  72. 720  DATA  6,2,6,2,6,2,38,1,165,2,5,3,141,144,191,165,1,141,145,191
  73. 730  DATA  96,32,30,32,31,32,31,32,32,31,32,31,32,185,230,95,41,15,170,200
  74. 740  DATA  185,230,95,41,15,133,0,169,0,24,202,48,4,105,10,144,249,101,0,96
  75. 750  DATA  13,13,77,77,45,68,68,45,89,89,44,32,82,69,84,85,82,78,32,116
  76. 760  DATA  111,32,97,99,99,101,112,116,58,32,48,49,45,48,49,45,56,54,136,136
  77. 770  DATA  136,136,136,136,136,136,0
  78. 780  REM  -----------------
  79. 790  REM  DOS ERROR HANDLER
  80. 800  REM  -----------------
  81. 810  PRINT  CHR$(7): PRINT "-- NOT AN APPLEWRITER DISK! --": PRINT "PRESS [RETURN] TO RE-TRY.": GET Z$: GOTO 450