home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib31b.dsk
/
XRAY.MAKER.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
10KB
|
125 lines
10 REM ************************
20 REM * XRAY.MAKER *
30 REM * BY BILL PARKER *
40 REM * COPYRIGHT (C) 1987 *
50 REM * BY MICROSPARC, INC. *
60 REM * CONCORD, MA 01742 *
70 REM ************************
80 TEXT : HOME : NORMAL
90 PRINT "XRAY MAKER": PRINT "BY BILL PARKER": PRINT "COPYRIGHT 1987 BY MICROSPARC, INC."
100 VTAB 10: PRINT "CREATING XRAY COMMAND FILE, PLEASE WAIT."
110 PRINT CHR$(4)"OPEN XRAY.COMMAND": PRINT CHR$(4)"CLOSE"
120 PRINT CHR$(4)"DELETE XRAY.COMMAND": PRINT CHR$(4)"OPEN XRAY.COMMAND"
130 FOR X = 1 TO 103
140 READ X$:
150 PRINT CHR$(4)"WRITE XRAY.COMMAND"
160 FOR Y = 1 TO LEN(X$)
170 IF MID$ (X$,Y,1) = "@" THEN PRINT CHR$(34);: GOTO 190
180 PRINT MID$ (X$,Y,1);
190 NEXT
200 PRINT
210 NEXT
220 PRINT CHR$(4)"CLOSE": HOME : VTAB 10: PRINT "XRAY.COMMAND IS NOW ON THE DISK.": END
230 DATA "NOMONICO
240 DATA "POKE 757,PEEK(43634) : POKE 758,PEEK(43635) : POKE 759,PEEK(43616) :POKE 760,PEEK(43617)
250 DATA "?CHR$(4)@BRUN XRAY.RAM@
260 DATA "POKE 43634,PEEK(757) : POKE 43635,PEEK(758) : POKE 43616,PEEK(759) :POKE 43617,PEEK(760)
270 DATA "POKE 761,169 : POKE 763,162 : POKE 765,76 : POKE 766,65 : POKE 767,249
280 DATA "TEXT : HOME
290 DATA "VTAB 1:?@APPLE XRAY BY BILL PARKER@
300 DATA "VTAB 2 : ?@COPYR. 1987 BY MICROSPARC, INC.@
310 DATA "VTAB 3 : ?@==========@
320 DATA "
330 DATA "VTAB 3 : IF PEEK(250) < 8 THEN INVERSE
340 DATA "VTAB 4 : ?@ RAM CARD @; : NORMAL : ?@<-@;
350 DATA "IF PEEK(250)=0 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE PROTECT/D BANK 2@
360 DATA "IF PEEK(250)=1 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE PROTECT/D BANK 1@
370 DATA "IF PEEK(250)=2 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE PROTECT/D BANK 2@
380 DATA "IF PEEK(250)=3 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE PROTECT/D BANK 1@
390 DATA "IF PEEK(250)=4 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE ENABLED/D BANK 2@
400 DATA "IF PEEK(250)=5 THEN VTAB 4 : HTAB 13 : ?@OFF/WRITE ENABLED/D BANK 1@
410 DATA "IF PEEK(250)=6 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE ENABLED/D BANK 2@
420 DATA "IF PEEK(250)=7 THEN INVERSE : VTAB 4 : HTAB 13 : ?@ON@; : NORMAL : ?@/WRITE ENABLED/D BANK 1@
430 DATA "IF PEEK(250)=8 THEN VTAB 4 : HTAB 13 : ?@NO CARD@
440 DATA "VTAB 5 : ?@----------@
450 DATA "VTAB 5 : IF PEEK(978) <> 157 THEN INVERSE
460 DATA "VTAB 6 : ?@ DOS @; : NORMAL
470 DATA "IF PEEK(978) = 157 THEN VTAB 6 : HTAB 11 : ?@<-@; : ?@NORMAL POSITION@
480 DATA "IF PEEK(978)<>157 THEN VTAB 6 : HTAB 11 : ?@<-@; : INVERSE : ?@MOVED TO CARD@ : NORMAL
490 DATA "VTAB 7 : ?@----------@;
500 DATA "POKE 251,(PEEK(40192) + 256*PEEK(40193) = 40147)
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@
520 DATA "IF NOT PEEK(251) THEN INVERSE
530 DATA "VTAB 8 : ?@DOS BUFFRS@; : NORMAL : ?@<-@
540 DATA "IF PEEK(978)<>157 THEN VTAB 8 :HTAB 13 : INVERSE : ?@MOVED TO CARD@
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
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
570 DATA "IF PEEK(978)=157 THEN VTAB 8 : HTAB 24 : ?PEEK(40192)+256*PEEK(40193)- 595*PEEK(43607)+38
580 DATA "IF PEEK(978)=157 THEN VTAB 8 : HTAB 29 : ?@.@; : ?PEEK(40192)+ 256*PEEK(40193)+37
590 DATA "IF PEEK(978)=157 AND PEEK(43607)=3 THEN VTAB 8 : HTAB 38 : ?@(@;PEEK(43607)@)@
600 DATA "IF PEEK(978)=157 AND PEEK(43607)<>3 THEN INVERSE : VTAB 8 : HTAB 38 :?@(@;PEEK(43607)@)@
610 DATA "NORMAL : VTAB 9 : ?@==========@; : ?@<-@
620 DATA "IF PEEK(115)+PEEK(116)*256 <> 38400 THEN INVERSE
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
640 DATA "VTAB 9 : HTAB 18 : ?@/@;PEEK(115)+256*PEEK(116)
650 DATA "IF PEEK(115)+PEEK(116)*256 <> 38400 THEN VTAB 9 : HTAB 24 :?@ (@38400-PEEK(115)-PEEK(116)*256@)@
660 DATA "NORMAL : VTAB 9 : HTAB 33 : ?@HIMEM@
670 DATA "VTAB 9 : IF PEEK(111) + 256*PEEK(112) <> PEEK(115) + 256*PEEK(116) THEN INVERSE
680 DATA "VTAB 10 : ?@ STRINGS @; : NORMAL : ?@<-@
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
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
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)
720 DATA "VTAB 11 : ?@----------@;
730 DATA "VTAB 12 : ?@FREE SPACE<-@
740 DATA "VTAB 12 : HTAB 13 : ?PEEK(111)+256*PEEK(112)-PEEK(109)-256*PEEK(110)@ BYTES@
750 DATA "VTAB 13 : ?@----------@
760 DATA "VTAB 13 : IF PEEK(107) + 256*PEEK(108) <> PEEK(109) + 256*PEEK(110) THENINVERSE
770 DATA "VTAB 14 : ?@AR/ST TABL@; : NORMAL : ?@<-@
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
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
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)
810 DATA "VTAB 15 : ?@----------@
820 DATA "VTAB 15 : IF PEEK(105) + 256*PEEK(106) <> PEEK(107) + 256*PEEK(108) THENINVERSE
830 DATA "VTAB 16 : ?@S. VAR TBL@; : NORMAL : ?@<-@
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
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
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)
870 DATA "VTAB 17 : ?@----------<-@
880 DATA "IF PEEK(105)+PEEK(106)*256 <> PEEK(175)+256*PEEK(176) THEN INVERSE
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
900 DATA "VTAB 17 : HTAB 18 : ?@/@;PEEK(105)+256*PEEK(106)
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@)@
920 DATA "NORMAL : VTAB 17 : HTAB 33 : ?@LOMEM@
930 DATA "VTAB 18 : IF (PEEK(175)+256*PEEK(176)) - (PEEK(103)+256*PEEK(104)) > 5THEN INVERSE
940 DATA "VTAB 18 : ?@ PROGRAM @; : NORMAL : ?@<-@;
950 DATA "IF PEEK(103)+PEEK(104)*256> 2049 THEN INVERSE
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
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
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)
990 DATA "VTAB 19 : ?@==========@;
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
1010 DATA "VTAB 19 : HTAB 18 : ?@/@;PEEK(43634)+256*PEEK(43635)
1020 DATA "VTAB 19 : HTAB 24 : ?@ (@PEEK(43616)+256+PEEK(43617)@)@
1030 DATA "VTAB 19 : HTAB 33 : ?@BLOAD@
1040 DATA "VTAB 20 : ?@ @
1050 DATA "VTAB 21 : ?@& =@;
1060 DATA "VTAB 21 : HTAB 5 : IF PEEK(1014)+256*PEEK(1015)<>65368 THEN INVERSE
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
1080 DATA "VTAB 21 : HTAB 10 : ?@/@; : ?PEEK(1014)+256*PEEK(1015); : NORMAL
1090 DATA "VTAB 21 : HTAB 17 : ?@^Y =@;
1100 DATA "VTAB 21 : HTAB 23 : IF PEEK(1017)+256*PEEK(1018)<>65381 THEN INVERSE
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
1120 DATA "VTAB 21 : HTAB 28 : ?@/@; : ?PEEK(1017)+256*PEEK(1018); : NORMAL
1130 DATA "VTAB 22 : ?@BRK=@; : VTAB 22
1140 DATA "VTAB 22 : HTAB 5 : IF PEEK(1008)+256*PEEK(1009)<>64089 THEN INVERSE : VTAB 22
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
1160 DATA "VTAB 22 : HTAB 10 : ?@/@; : ?PEEK(1008)+256*PEEK(1009); : NORMAL
1170 DATA "VTAB 22 : HTAB 17 : ?@RESET=@; : VTAB 22
1180 DATA "VTAB 22 : HTAB 23 : IF PEEK(1010)+256*PEEK(1011)<>40383 THEN INVERSE :VTAB 22
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
1200 DATA "VTAB 22 : HTAB 28 : ?@/@; : ?PEEK(1010)+256*PEEK(1011); : NORMAL
1210 DATA "VTAB 22 : HTAB 35 : IF PEEK(1012)<>56 THEN INVERSE
1220 DATA "VTAB 22 : HTAB 35 : ?PEEK(1012); : NORMAL
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
1240 DATA "VTAB 22 : IF PEEK(-16384) = ASC(@P@) THEN ?CHR$(4)@BLOAD XRAY.SDUMP@
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