home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib31b.dsk / XRAY.MAKER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  10KB  |  125 lines

  1. 10  REM  ************************
  2. 20  REM  * XRAY.MAKER           *
  3. 30  REM  * BY BILL PARKER       *
  4. 40  REM  * COPYRIGHT (C) 1987   *
  5. 50  REM  * BY MICROSPARC, INC.  *
  6. 60  REM  * CONCORD, MA  01742   *
  7. 70  REM  ************************
  8. 80  TEXT : HOME : NORMAL 
  9. 90  PRINT "XRAY MAKER": PRINT "BY BILL PARKER": PRINT "COPYRIGHT 1987 BY MICROSPARC, INC."
  10. 100  VTAB 10: PRINT "CREATING XRAY COMMAND FILE, PLEASE WAIT."
  11. 110  PRINT  CHR$(4)"OPEN XRAY.COMMAND": PRINT  CHR$(4)"CLOSE"
  12. 120  PRINT  CHR$(4)"DELETE XRAY.COMMAND": PRINT  CHR$(4)"OPEN XRAY.COMMAND"
  13. 130  FOR X = 1 TO 103
  14. 140  READ X$:
  15. 150  PRINT  CHR$(4)"WRITE XRAY.COMMAND"
  16. 160  FOR Y = 1 TO  LEN(X$)
  17. 170  IF  MID$ (X$,Y,1) = "@"  THEN  PRINT  CHR$(34);: GOTO 190
  18. 180  PRINT  MID$ (X$,Y,1);
  19. 190  NEXT 
  20. 200  PRINT 
  21. 210  NEXT 
  22. 220  PRINT  CHR$(4)"CLOSE": HOME : VTAB 10: PRINT "XRAY.COMMAND IS NOW ON THE DISK.": END 
  23. 230  DATA  "NOMONICO
  24. 240  DATA  "POKE 757,PEEK(43634) : POKE 758,PEEK(43635) : POKE 759,PEEK(43616) :POKE 760,PEEK(43617)
  25. 250  DATA  "?CHR$(4)@BRUN XRAY.RAM@
  26. 260  DATA  "POKE 43634,PEEK(757) : POKE 43635,PEEK(758) : POKE 43616,PEEK(759) :POKE 43617,PEEK(760)
  27. 270  DATA  "POKE 761,169 : POKE 763,162 : POKE 765,76 : POKE 766,65 : POKE 767,249
  28. 280  DATA  "TEXT : HOME
  29. 290  DATA  "VTAB 1:?@APPLE XRAY BY BILL PARKER@
  30. 300  DATA  "VTAB 2 : ?@COPYR. 1987 BY MICROSPARC, INC.@
  31. 310  DATA  "VTAB 3 : ?@==========@
  32. 320  DATA  "
  33. 330  DATA  "VTAB 3 : IF PEEK(250) < 8 THEN INVERSE
  34. 340  DATA  "VTAB 4 : ?@ RAM CARD @; : NORMAL : ?@<-@;
  35. 350  DATA  "IF PEEK(250)=0 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE PROTECT/D BANK 2@
  36. 360  DATA  "IF PEEK(250)=1 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE PROTECT/D BANK 1@
  37. 370  DATA  "IF PEEK(250)=2 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE PROTECT/D BANK 2@
  38. 380  DATA  "IF PEEK(250)=3 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE PROTECT/D BANK 1@
  39. 390  DATA  "IF PEEK(250)=4 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE ENABLED/D BANK 2@
  40. 400  DATA  "IF PEEK(250)=5 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE ENABLED/D BANK 1@
  41. 410  DATA  "IF PEEK(250)=6 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE ENABLED/D BANK 2@
  42. 420  DATA  "IF PEEK(250)=7 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE ENABLED/D BANK 1@
  43. 430  DATA  "IF PEEK(250)=8 THEN VTAB 4 : HTAB 13 : ?@NO CARD@
  44. 440  DATA  "VTAB 5 : ?@----------@
  45. 450  DATA  "VTAB 5 : IF PEEK(978) <> 157 THEN INVERSE
  46. 460  DATA  "VTAB 6 : ?@   DOS    @; : NORMAL
  47. 470  DATA  "IF PEEK(978) = 157 THEN VTAB 6 : HTAB 11 : ?@<-@; : ?@NORMAL POSITION@
  48. 480  DATA  "IF PEEK(978)<>157 THEN VTAB 6 : HTAB 11 : ?@<-@; : INVERSE : ?@MOVED TO CARD@ : NORMAL
  49. 490  DATA  "VTAB 7 : ?@----------@;
  50. 500  DATA  "POKE 251,(PEEK(40192) + 256*PEEK(40193) = 40147)
  51. 510  DATA  "IF NOT PEEK(251) AND PEEK(978)=157 THEN VTAB 7 :HTAB 11 : ?@<-@; : INVERSE : ?@BUFFERS MOVED @40147-(PEEK(40192)+256*PEEK(40193))@ BYTES@
  52. 520  DATA  "IF NOT PEEK(251) THEN INVERSE
  53. 530  DATA  "VTAB 8 : ?@DOS BUFFRS@; : NORMAL : ?@<-@
  54. 540  DATA  "IF PEEK(978)<>157 THEN VTAB 8 :HTAB 13 : INVERSE : ?@MOVED TO CARD@
  55. 550  DATA  "IF PEEK(978)=157 THEN VTAB 8 : HTAB 13 : ?@$@; : POKE 762,(PEEK(40192)+256*PEEK(40193)-595*PEEK(43607)+38)/256 : POKE 764,PEEK(40192)+ 256*PEEK(40193)-595* PEEK(43607)+38-256*PEEK(762) : CALL 761
  56. 560  DATA  "IF PEEK(978)=157 THEN VTAB 8 : HTAB 18 : ?@.@; : POKE 762,(PEEK(40192)+256*PEEK(40193)+37)/256 : POKE 764,PEEK(40192)+256*PEEK(40193)+37-256*PEEK(762) : CALL 761
  57. 570  DATA  "IF PEEK(978)=157 THEN VTAB 8 : HTAB 24 : ?PEEK(40192)+256*PEEK(40193)- 595*PEEK(43607)+38
  58. 580  DATA  "IF PEEK(978)=157 THEN VTAB 8 : HTAB 29 : ?@.@; : ?PEEK(40192)+ 256*PEEK(40193)+37
  59. 590  DATA  "IF PEEK(978)=157 AND PEEK(43607)=3 THEN VTAB 8 : HTAB 38 : ?@(@;PEEK(43607)@)@
  60. 600  DATA  "IF PEEK(978)=157 AND PEEK(43607)<>3 THEN INVERSE : VTAB 8 : HTAB 38 :?@(@;PEEK(43607)@)@
  61. 610  DATA  "NORMAL : VTAB 9 : ?@==========@; : ?@<-@
  62. 620  DATA  "IF PEEK(115)+PEEK(116)*256 <> 38400 THEN INVERSE
  63. 630  DATA  "VTAB 9 : HTAB 13 : ?@$@; : POKE 762,(PEEK(115)+256*PEEK(116))/256 :POKE 764,PEEK(115)+256*PEEK(116)-256*PEEK(762) : CALL 761
  64. 640  DATA  "VTAB 9 : HTAB 18 : ?@/@;PEEK(115)+256*PEEK(116)
  65. 650  DATA  "IF PEEK(115)+PEEK(116)*256 <> 38400 THEN VTAB 9 : HTAB 24 :?@ (@38400-PEEK(115)-PEEK(116)*256@)@
  66. 660  DATA  "NORMAL : VTAB 9 : HTAB 33 : ?@HIMEM@
  67. 670  DATA  "VTAB 9 : IF PEEK(111) + 256*PEEK(112) <> PEEK(115) + 256*PEEK(116) THEN INVERSE
  68. 680  DATA  "VTAB 10 : ?@ STRINGS  @; : NORMAL : ?@<-@
  69. 690  DATA  "VTAB 10 : HTAB 13 : ?@$@; : POKE 762,(PEEK(111)+256*PEEK(112))/256 :POKE 764,PEEK(111)+256*PEEK(112)-256*PEEK(762) : CALL 761
  70. 700  DATA  "VTAB 10 : HTAB 18 : ?@.@; : POKE 762,(PEEK(115)+256*PEEK(116)-1*(PEEK(111)+256*PEEK(112)<>PEEK(115)+256*PEEK(116)))/256 : POKE 764,PEEK(115)+256*PEEK(116)-1*(PEEK(111)+256*PEEK(112)<>PEEK(115)+256*PEEK(116))-256*PEEK(762) : CALL 761
  71. 710  DATA  "VTAB 10 : HTAB 24 : ?PEEK(111)+256*PEEK(112)@.@; : ?PEEK(115)+256*PEEK(116)-1*(PEEK(111)+256*PEEK(112)<>PEEK(115)+256*PEEK(116));@ @PEEK(115)+256*PEEK(116)-PEEK(111)-256*PEEK(112)
  72. 720  DATA  "VTAB 11 : ?@----------@;
  73. 730  DATA  "VTAB 12 : ?@FREE SPACE<-@
  74. 740  DATA  "VTAB 12 : HTAB 13 : ?PEEK(111)+256*PEEK(112)-PEEK(109)-256*PEEK(110)@ BYTES@
  75. 750  DATA  "VTAB 13 : ?@----------@
  76. 760  DATA  "VTAB 13 : IF PEEK(107) + 256*PEEK(108) <> PEEK(109) + 256*PEEK(110) THENINVERSE
  77. 770  DATA  "VTAB 14 : ?@AR/ST TABL@; : NORMAL : ?@<-@
  78. 780  DATA  "VTAB 14 : HTAB 13 : ?@$@; : POKE 762,(PEEK(107)+256*PEEK(108))/256 :POKE 764,PEEK(107)+256*PEEK(108)-256*PEEK(762) : CALL 761
  79. 790  DATA  "VTAB 14 : HTAB 18 : ?@.@; : POKE 762,(PEEK(109)+256*PEEK(110)-1*(PEEK(107)+256*PEEK(108)<>PEEK(109)+256*PEEK(110)))/256 : POKE 764,PEEK(109)+256*PEEK(110)-1*(PEEK(107)+256*PEEK(108)<>PEEK(109)+256*PEEK(110))-256*PEEK(762) : CALL 761
  80. 800  DATA  "VTAB 14 : HTAB 24 : ?PEEK(107)+256*PEEK(108)@.@; : ?PEEK(109)+256*PEEK(110)-1*(PEEK(107)+256*PEEK(108)<>PEEK(109)+256*PEEK(110));@ @PEEK(109)+256*PEEK(110)-PEEK(107)-256*PEEK(108)
  81. 810  DATA  "VTAB 15 : ?@----------@
  82. 820  DATA  "VTAB 15 : IF PEEK(105) + 256*PEEK(106) <> PEEK(107) + 256*PEEK(108) THENINVERSE
  83. 830  DATA  "VTAB 16 : ?@S. VAR TBL@; : NORMAL : ?@<-@
  84. 840  DATA  "VTAB 16 : HTAB 13 : ?@$@; : POKE 762,(PEEK(105)+256*PEEK(106))/256 :POKE 764,PEEK(105)+256*PEEK(106)-256*PEEK(762) : CALL 761
  85. 850  DATA  "VTAB 16 : HTAB 18 : ?@.@; : POKE 762,(PEEK(107)+256*PEEK(108)-1*(PEEK(105)+256*PEEK(106)<>PEEK(107)+256*PEEK(108)))/256 : POKE 764,PEEK(107)+256*PEEK(108)-1*(PEEK(105)+256*PEEK(106)<>PEEK(107)+256*PEEK(108))-256*PEEK(762) : CALL 761
  86. 860  DATA  "VTAB 16 : HTAB 24 : ?PEEK(105)+256*PEEK(106)@.@; : ?PEEK(107)+256*PEEK(108)-1*(PEEK(105)+256*PEEK(106)<>PEEK(107)+256*PEEK(108));@ @PEEK(107)+256*PEEK(108)-PEEK(105)-256*PEEK(106)
  87. 870  DATA  "VTAB 17 : ?@----------<-@
  88. 880  DATA  "IF PEEK(105)+PEEK(106)*256 <> PEEK(175)+256*PEEK(176) THEN INVERSE
  89. 890  DATA  "VTAB 17 : HTAB 13 : ?@$@; : POKE 762,(PEEK(105)+256*PEEK(106))/256 :POKE 764,PEEK(105)+256*PEEK(106)-256*PEEK(762) : CALL 761
  90. 900  DATA  "VTAB 17 : HTAB 18 : ?@/@;PEEK(105)+256*PEEK(106)
  91. 910  DATA  "IF PEEK(105)+PEEK(106)*256 <> PEEK(175)+256*PEEK(176) THEN VTAB 17 :HTAB 24 : ?@ (@PEEK(105)+256*PEEK(106)-PEEK(175)-PEEK(176)*256@)@
  92. 920  DATA  "NORMAL : VTAB 17 : HTAB 33 : ?@LOMEM@
  93. 930  DATA  "VTAB 18 : IF (PEEK(175)+256*PEEK(176)) - (PEEK(103)+256*PEEK(104)) > 5THEN INVERSE
  94. 940  DATA  "VTAB 18 : ?@ PROGRAM  @; : NORMAL : ?@<-@;
  95. 950  DATA  "IF PEEK(103)+PEEK(104)*256> 2049 THEN INVERSE
  96. 960  DATA  "VTAB 18 : HTAB 13 : ?@$@; : POKE 762,(PEEK(103)+256*PEEK(104))/256 :POKE 764,PEEK(103)+256*PEEK(104)-256*PEEK(762) : CALL 761
  97. 970  DATA  "VTAB 18 : HTAB 18 : ?@.@; : POKE 762,(PEEK(175)+256*PEEK(176)-1)/256 :POKE 764,PEEK(175)+256*PEEK(176)-1-256*PEEK(762) : CALL 761
  98. 980  DATA  "VTAB 18 : HTAB 24 : ?PEEK(103)+256*PEEK(104)@.@; : ?PEEK(175)+256*PEEK(176)-1;@ @PEEK(175)+256*PEEK(176)-PEEK(103)-256*PEEK(104)
  99. 990  DATA  "VTAB 19 : ?@==========@;
  100. 1000  DATA  "VTAB 19 : HTAB 13 : ?@$@; : POKE 762,(PEEK(43634)+256*PEEK(43635))/256 : POKE 764,PEEK(43634)+256*PEEK(43635)-256*PEEK(762) : CALL 761
  101. 1010  DATA  "VTAB 19 : HTAB 18 : ?@/@;PEEK(43634)+256*PEEK(43635)
  102. 1020  DATA  "VTAB 19 : HTAB 24 : ?@ (@PEEK(43616)+256+PEEK(43617)@)@
  103. 1030  DATA  "VTAB 19 : HTAB 33 : ?@BLOAD@
  104. 1040  DATA  "VTAB 20 : ?@ @
  105. 1050  DATA  "VTAB 21 : ?@&  =@;
  106. 1060  DATA  "VTAB 21 : HTAB 5 : IF PEEK(1014)+256*PEEK(1015)<>65368 THEN INVERSE
  107. 1070  DATA  "VTAB 21 : HTAB 5 : ?@$@; : POKE 762,(PEEK(1014)+256*PEEK(1015))/256 : POKE 764,PEEK(1014)+256*PEEK(1015)-256*PEEK(762) : CALL 761
  108. 1080  DATA  "VTAB 21 : HTAB 10 : ?@/@; : ?PEEK(1014)+256*PEEK(1015); : NORMAL
  109. 1090  DATA  "VTAB 21 : HTAB 17 : ?@^Y   =@;
  110. 1100  DATA  "VTAB 21 : HTAB 23 : IF PEEK(1017)+256*PEEK(1018)<>65381 THEN INVERSE
  111. 1110  DATA  "VTAB 21 : HTAB 23 : ?@$@; : POKE 762,(PEEK(1017)+256*PEEK(1018))/256 :POKE 764,PEEK(1017)+256*PEEK(1018)-256*PEEK(762) : CALL 761
  112. 1120  DATA  "VTAB 21 : HTAB 28 : ?@/@; : ?PEEK(1017)+256*PEEK(1018); : NORMAL
  113. 1130  DATA  "VTAB 22 : ?@BRK=@; : VTAB 22
  114. 1140  DATA  "VTAB 22 : HTAB 5 : IF PEEK(1008)+256*PEEK(1009)<>64089 THEN INVERSE : VTAB 22
  115. 1150  DATA  "VTAB 22 : HTAB 5 : ?@$@; : POKE 762,(PEEK(1008)+256*PEEK(1009))/256 : POKE 764,PEEK(1008)+256*PEEK(1009)-256*PEEK(762) : CALL 761
  116. 1160  DATA  "VTAB 22 : HTAB 10 : ?@/@; : ?PEEK(1008)+256*PEEK(1009); : NORMAL
  117. 1170  DATA  "VTAB 22 : HTAB 17 : ?@RESET=@; : VTAB 22
  118. 1180  DATA  "VTAB 22 : HTAB 23 : IF PEEK(1010)+256*PEEK(1011)<>40383 THEN INVERSE :VTAB 22
  119. 1190  DATA  "VTAB 22 : HTAB 23 : ?@$@; : POKE 762,(PEEK(1010)+256*PEEK(1011))/256 :POKE 764,PEEK(1010)+256*PEEK(1011)-256*PEEK(762) : CALL 761
  120. 1200  DATA  "VTAB 22 : HTAB 28 : ?@/@; : ?PEEK(1010)+256*PEEK(1011); : NORMAL
  121. 1210  DATA  "VTAB 22 : HTAB 35 : IF PEEK(1012)<>56 THEN INVERSE
  122. 1220  DATA  "VTAB 22 : HTAB 35 : ?PEEK(1012); : NORMAL
  123. 1230  DATA  "VTAB 23 : ?@ Press P for screen dump; Q for quit : @; : POKE 1909,96 :WAIT -16384,128 : POKE -16368,0 : POKE 1909,160 : VTAB 22
  124. 1240  DATA  "VTAB 22 : IF PEEK(-16384) = ASC(@P@) THEN ?CHR$(4)@BLOAD XRAY.SDUMP@
  125. 1250  DATA  "VTAB 22 : IF PEEK(-16384) = ASC(@P@) THEN POKE 43634,PEEK(757) :POKE 43635,PEEK(758) : POKE 43616,PEEK(759) : POKE 43617,PEEK(760) :CALL 691