@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u20000 REM *** PLAYER/MISSILE SETUP ***20010 REM DEFINE PMMODE & GRMODE BEFORE CALLING THIS ROUTINE20020 REM PMMODE=1 FOR SIT}NGLE-RES P/M20030 REM PMMODE=2 FOR DOUBLE-RES P/M20040 REM GRMODE=GRAPHICS MODE20050 DIM PAGCLR$(48),PMMOVE$(202):PAGCLR=AU}DR(PAGCLR$):PMMOVE=ADR(PMMOVE$)20060 MT=0:RESTORE 20170:FOR X=1 TO 48:READ A:PAGCLR$(X)=CHR$(A)20065 MT=MT+A:NEXT X:IF MT=7V}484 THEN MT=0:GOTO 2007020066 PRINT "ERROR IN DATA... LINES 20170-20240":STOP 20070 FOR X=1 TO 202:READ A:PMMOVE$(X)=CHR$(AW}):MT=MT+A:NEXT X20075 IF MT<>23367 THEN PRINT "ERROR IN DATA... LINES 20260-20590":STOP 20080 IF PMMODE=1 THEN PAGES=8:DMA=X}62:GOTO 2011020090 IF PMMODE=2 THEN PAGES=4:DMA=46:GOTO 2011020100 RETURN 20110 POKE 54279,PEEK(106)-PAGES:POKE 106,PEEK(1Y}06)-PAGES:POKE 207,PMMODE20120 GRAPHICS GRMODE20130 PMBASE=PEEK(106)*256:POKE 559,DMA:POKE 53277,3:X=USR(PAGCLR,PMBASE,PAGEZ}S)20140 POKE 704,68:POKE 705,68:POKE 706,88:POKE 707,98:REM P/M COLORS20150 RETURN 20160 REM PAGCLR ML DATA20170 DATA 104[},201,2,240,16,13320180 DATA 206,162,0,228,206,20820190 DATA 1,96,104,104,232,16920200 DATA 0,240,244,104,133,20420210 DAT\}A 104,133,203,104,104,13320220 DATA 205,169,0,168,170,14520230 DATA 203,200,208,251,230,20420240 DATA 232,228,205,208,244,]}9620250 REM PMMOVE DATA20260 DATA 104,201,5,240,18,14120270 DATA 0,4,162,0,236,020280 DATA 4,208,1,96,104,10420290 DATA ^}232,169,0,240,243,10420300 DATA 104,201,9,144,9,10420310 DATA 104,104,104,104,104,10420320 DATA 104,96,24,201,0,24020330 _}DATA 242,141,4,4,104,13320340 DATA 206,104,133,205,104,10420350 DATA 141,5,4,104,104,14120360 DATA 2,4,104,104,141,320370`} DATA 4,174,4,4,173,220380 DATA 4,157,255,207,224,520390 DATA 176,2,144,5,169,020400 DATA 141,4,4,165,207,20120410 DATA 2a},240,28,165,106,2420420 DATA 105,3,109,4,4,13320430 DATA 204,169,0,133,203,16820440 DATA 145,203,200,208,251,17320450 DATb}A 3,4,133,203,24,14420460 DATA 65,165,106,24,105,120470 DATA 133,204,169,128,133,20320480 DATA 173,4,4,240,21,16220490 DAc}TA 0,165,203,24,105,12820500 DATA 133,203,165,204,105,020510 DATA 133,204,232,236,4,420520 DATA 208,237,160,0,152,1452053d}0 DATA 203,200,192,127,208,24920540 DATA 173,3,4,201,128,14420550 DATA 1,96,101,203,133,20320560 DATA 165,204,105,0,133,20e}420570 DATA 160,0,204,5,4,24020580 DATA 8,177,205,145,203,20020590 DATA 24,144,243,96Y10 PMMODE=1:GRMODE=0:GOSUB 2005020 DIM SHAPE$(11):SHAPE=ADR(SHAPE$):SIZE=11:RESTORE 40:FOR X=1 TO 11:READ A:SHAPE$(X)=CHR$(A g}):NEXT X30 A=USR(PMMOVE,1,SHAPE,SIZE,127,127)40 DATA 24,60,126,90,219,255,219,195,102,60,2450 END 20000 REM *** PLAYER/MI h}SSILE SETUP ***20010 REM DEFINE PMMODE & GRMODE BEFORE CALLING THIS ROUTINE20020 REM PMMODE=1 FOR SINGLE-RES P/M20030 REM i}PMMODE=2 FOR DOUBLE-RES P/M20040 REM GRMODE=GRAPHICS MODE20050 DIM PAGCLR$(48),PMMOVE$(202):PAGCLR=ADR(PAGCLR$):PMMOVE=ADR( j}PMMOVE$)20060 MT=0:RESTORE 20170:FOR X=1 TO 48:READ A:PAGCLR$(X)=CHR$(A)20065 MT=MT+A:NEXT X:IF MT=7484 THEN MT=0:GOTO 2007 k}020066 PRINT "ERROR IN DATA... LINES 20170-20240":STOP 20070 FOR X=1 TO 202:READ A:PMMOVE$(X)=CHR$(A):MT=MT+A:NEXT X20075 l}IF MT<>23367 THEN PRINT "ERROR IN DATA... LINES 20260-20590":STOP 20080 IF PMMODE=1 THEN PAGES=8:DMA=62:GOTO 2011020090 IF m}PMMODE=2 THEN PAGES=4:DMA=46:GOTO 2011020100 RETURN 20110 POKE 54279,PEEK(106)-PAGES:POKE 106,PEEK(106)-PAGES:POKE 207,PMMO n}DE20120 GRAPHICS GRMODE20130 PMBASE=PEEK(106)*256:POKE 559,DMA:POKE 53277,3:X=USR(PAGCLR,PMBASE,PAGES)20140 POKE 704,68:PO o}KE 705,68:POKE 706,88:POKE 707,98:REM P/M COLORS20150 RETURN 20160 REM PAGCLR ML DATA20170 DATA 104,201,2,240,16,13320180 p} DATA 206,162,0,228,206,20820190 DATA 1,96,104,104,232,16920200 DATA 0,240,244,104,133,20420210 DATA 104,133,203,104,104,1 q}3320220 DATA 205,169,0,168,170,14520230 DATA 203,200,208,251,230,20420240 DATA 232,228,205,208,244,9620250 REM PMMOVE DAT r}A20260 DATA 104,201,5,240,18,14120270 DATA 0,4,162,0,236,020280 DATA 4,208,1,96,104,10420290 DATA 232,169,0,240,243,1042 s}0300 DATA 104,201,9,144,9,10420310 DATA 104,104,104,104,104,10420320 DATA 104,96,24,201,0,24020330 DATA 242,141,4,4,104,13 t}320340 DATA 206,104,133,205,104,10420350 DATA 141,5,4,104,104,14120360 DATA 2,4,104,104,141,320370 DATA 4,174,4,4,173,22 u}0380 DATA 4,157,255,207,224,520390 DATA 176,2,144,5,169,020400 DATA 141,4,4,165,207,20120410 DATA 2,240,28,165,106,242042 v}0 DATA 105,3,109,4,4,13320430 DATA 204,169,0,133,203,16820440 DATA 145,203,200,208,251,17320450 DATA 3,4,133,203,24,14420 w}460 DATA 65,165,106,24,105,120470 DATA 133,204,169,128,133,20320480 DATA 173,4,4,240,21,16220490 DATA 0,165,203,24,105,128 x}20500 DATA 133,203,165,204,105,020510 DATA 133,204,232,236,4,420520 DATA 208,237,160,0,152,14520530 DATA 203,200,192,127, y}208,24920540 DATA 173,3,4,201,128,14420550 DATA 1,96,101,203,133,20320560 DATA 165,204,105,0,133,20420570 DATA 160,0,204, z}5,4,24020580 DATA 8,177,205,145,203,20020590 DATA 24,144,243,96 B10 PMMODE=2:GRMODE=0:GOSUB 2005020 SETCOLOR 2,0,0:POKE 704,7230 DIM BOOM$(64):BOOM=ADR(BOOM$):RESTORE 90:FOR X=1 TO 64:READ|} A:BOOM$(X)=CHR$(A):NEXT X40 FOR VOLUME=14 TO 0 STEP -250 SOUND 0,90,0,VOLUME:SOUND 1,100,4,VOLUME60 A=USR(PMMOVE,1,BOOM,8}},127,64):BOOM=BOOM+870 FOR DELAY=1 TO 35:NEXT DELAY80 NEXT VOLUME90 DATA 0,0,8,28,28,8,0,0100 DATA 0,8,34,92,20,34,8,011~}0 DATA 8,65,4,168,20,1,64,8120 DATA 148,1,20,160,1,20,1,136130 DATA 145,74,32,130,65,2,84,137140 DATA 72,1,64,0,130,1,8,82}150 DATA 129,0,0,0,0,128,1,66160 DATA 0,0,0,0,0,0,0,0170 END 20000 REM *** PLAYER/MISSILE SETUP ***20010 REM DEFINE PMMO}DE & GRMODE BEFORE CALLING THIS ROUTINE20020 REM PMMODE=1 FOR SINGLE-RES P/M20030 REM PMMODE=2 FOR DOUBLE-RES P/M20040 REM} GRMODE=GRAPHICS MODE20050 DIM PAGCLR$(48),PMMOVE$(202):PAGCLR=ADR(PAGCLR$):PMMOVE=ADR(PMMOVE$)20060 MT=0:RESTORE 20170:FOR} X=1 TO 48:READ A:PAGCLR$(X)=CHR$(A)20065 MT=MT+A:NEXT X:IF MT=7484 THEN MT=0:GOTO 2007020066 PRINT "ERROR IN DATA... LINES} 20170-20240":STOP 20070 FOR X=1 TO 202:READ A:PMMOVE$(X)=CHR$(A):MT=MT+A:NEXT X20075 IF MT<>23367 THEN PRINT "ERROR IN DAT}A... LINES 20260-20590":STOP 20080 IF PMMODE=1 THEN PAGES=8:DMA=62:GOTO 2011020090 IF PMMODE=2 THEN PAGES=4:DMA=46:GOTO 201}1020100 RETURN 20110 POKE 54279,PEEK(106)-PAGES:POKE 106,PEEK(106)-PAGES:POKE 207,PMMODE20120 GRAPHICS GRMODE20130 PMBASE}=PEEK(106)*256:POKE 559,DMA:POKE 53277,3:X=USR(PAGCLR,PMBASE,PAGES)20140 POKE 704,68:POKE 705,68:POKE 706,88:POKE 707,98:REM} P/M COLORS20150 RETURN 20160 REM PAGCLR ML DATA20170 DATA 104,201,2,240,16,13320180 DATA 206,162,0,228,206,20820190 DAT}A 1,96,104,104,232,16920200 DATA 0,240,244,104,133,20420210 DATA 104,133,203,104,104,13320220 DATA 205,169,0,168,170,1452}0230 DATA 203,200,208,251,230,20420240 DATA 232,228,205,208,244,9620250 REM PMMOVE DATA20260 DATA 104,201,5,240,18,141202}70 DATA 0,4,162,0,236,020280 DATA 4,208,1,96,104,10420290 DATA 232,169,0,240,243,10420300 DATA 104,201,9,144,9,10420310 D}ATA 104,104,104,104,104,10420320 DATA 104,96,24,201,0,24020330 DATA 242,141,4,4,104,13320340 DATA 206,104,133,205,104,104}20350 DATA 141,5,4,104,104,14120360 DATA 2,4,104,104,141,320370 DATA 4,174,4,4,173,220380 DATA 4,157,255,207,224,520390 D}ATA 176,2,144,5,169,020400 DATA 141,4,4,165,207,20120410 DATA 2,240,28,165,106,2420420 DATA 105,3,109,4,4,13320430 DATA 2}04,169,0,133,203,16820440 DATA 145,203,200,208,251,17320450 DATA 3,4,133,203,24,14420460 DATA 65,165,106,24,105,120470 DA}TA 133,204,169,128,133,20320480 DATA 173,4,4,240,21,16220490 DATA 0,165,203,24,105,12820500 DATA 133,203,165,204,105,0205}10 DATA 133,204,232,236,4,420520 DATA 208,237,160,0,152,14520530 DATA 203,200,192,127,208,24920540 DATA 173,3,4,201,128,14}420550 DATA 1,96,101,203,133,20320560 DATA 165,204,105,0,133,20420570 DATA 160,0,204,5,4,24020580 DATA 8,177,205,145,203,}20020590 DATA 24,144,243,9610 PMMODE=2:GRMODE=0:GOSUB 2005020 DIM SHAPE$(64):SIZE=8:RESTORE 210:FOR X=1 TO 64:READ A:SHAPE$(X)=CHR$(A):NEXT X25 DIM MI}SSILE$(1):MISSILE$(1)=CHR$(3)30 DIR=1:X=127:Y=64:SOUND 0,180,6,340 S=STICK(0):IF S=11 THEN DIR=DIR-150 IF S=7 THEN DIR=DIR}+160 IF DIR<1 THEN DIR=870 IF DIR>8 THEN DIR=180 A=USR(PMMOVE,1,ADR(SHAPE$(DIR*8-7)),SIZE,X,Y)85 IF STRIG(0)=0 THEN GOSUB} 100090 IF S=14 THEN SOUND 1,120,6,6:ON DIR GOTO 120,130,140,150,160,170,180,190100 IF S=15 THEN SOUND 1,180,6,3:GOTO 4011}0 GOTO 40120 Y=Y-1:GOTO 40130 X=X+1:Y=Y-1:GOTO 40140 X=X+1:GOTO 40150 X=X+1:Y=Y+1:GOTO 40160 Y=Y+1:GOTO 40170 X=X-1:Y=Y}+1:GOTO 40180 X=X-1:GOTO 40190 X=X-1:Y=Y-1:GOTO 40200 REM *** TANK SHAPES (CLOCKWISE N-NE-E-SE-S-SW-W-NW) ***210 DATA 8,8},42,62,62,62,62,34220 DATA 9,26,60,127,254,60,24,16230 DATA 0,252,120,127,120,252,0,0240 DATA 16,24,60,254,127,60,26,9250} DATA 34,62,62,62,62,42,8,8260 DATA 8,24,60,127,254,60,88,144270 DATA 0,63,30,254,30,63,0,0280 DATA 144,88,60,254,127,60,2}4,81000 ON DIR GOTO 1010,1020,1030,1040,1050,1060,1070,10801010 DX=0:DY=-2:GOTO 10901020 DX=2:DY=-2:GOTO 10901030 DX=2:DY}=0:GOTO 10901040 DX=2:DY=2:GOTO 10901050 DX=0:DY=2:GOTO 10901060 DX=-2:DY=2:GOTO 10901070 DX=-2:DY=0:GOTO 10901080 DX=-2}:DY=-21090 MX=X:MY=Y:FOR SHOOT=1 TO 151100 A=USR(PMMOVE,5,ADR(MISSILE$),1,MX,MY):MX=MX+DX:MY=MY+DY:NEXT SHOOT1110 A=USR(PM}MOVE,5,ADR(MISSILE$),1,0,0):RETURN 20000 REM *** PLAYER/MISSILE SETUP ***20010 REM DEFINE PMMODE & GRMODE BEFORE CALLING TH}IS ROUTINE20020 REM PMMODE=1 FOR SINGLE-RES P/M20030 REM PMMODE=2 FOR DOUBLE-RES P/M20040 REM GRMODE=GRAPHICS MODE20050 D}IM PAGCLR$(48),PMMOVE$(202):PAGCLR=ADR(PAGCLR$):PMMOVE=ADR(PMMOVE$)20060 MT=0:RESTORE 20170:FOR X=1 TO 48:READ A:PAGCLR$(X)=}CHR$(A)20065 MT=MT+A:NEXT X:IF MT=7484 THEN MT=0:GOTO 2007020066 PRINT "ERROR IN DATA... LINES 20170-20240":STOP 20070 FOR} X=1 TO 202:READ A:PMMOVE$(X)=CHR$(A):MT=MT+A:NEXT X20075 IF MT<>23367 THEN PRINT "ERROR IN DATA... LINES 20260-20590":STOP }20080 IF PMMODE=1 THEN PAGES=8:DMA=62:GOTO 2011020090 IF PMMODE=2 THEN PAGES=4:DMA=46:GOTO 2011020100 RETURN 20110 POKE 5}4279,PEEK(106)-PAGES:POKE 106,PEEK(106)-PAGES:POKE 207,PMMODE20120 GRAPHICS GRMODE20130 PMBASE=PEEK(106)*256:POKE 559,DMA:P}OKE 53277,3:X=USR(PAGCLR,PMBASE,PAGES)20140 POKE 704,68:POKE 705,68:POKE 706,88:POKE 707,98:REM P/M COLORS20150 RETURN 201}60 REM PAGCLR ML DATA20170 DATA 104,201,2,240,16,13320180 DATA 206,162,0,228,206,20820190 DATA 1,96,104,104,232,16920200 }DATA 0,240,244,104,133,20420210 DATA 104,133,203,104,104,13320220 DATA 205,169,0,168,170,14520230 DATA 203,200,208,251,230},20420240 DATA 232,228,205,208,244,9620250 REM PMMOVE DATA20260 DATA 104,201,5,240,18,14120270 DATA 0,4,162,0,236,020280} DATA 4,208,1,96,104,10420290 DATA 232,169,0,240,243,10420300 DATA 104,201,9,144,9,10420310 DATA 104,104,104,104,104,1042}0320 DATA 104,96,24,201,0,24020330 DATA 242,141,4,4,104,13320340 DATA 206,104,133,205,104,10420350 DATA 141,5,4,104,104,14}120360 DATA 2,4,104,104,141,320370 DATA 4,174,4,4,173,220380 DATA 4,157,255,207,224,520390 DATA 176,2,144,5,169,020400 D}ATA 141,4,4,165,207,20120410 DATA 2,240,28,165,106,2420420 DATA 105,3,109,4,4,13320430 DATA 204,169,0,133,203,16820440 DA}TA 145,203,200,208,251,17320450 DATA 3,4,133,203,24,14420460 DATA 65,165,106,24,105,120470 DATA 133,204,169,128,133,20320}480 DATA 173,4,4,240,21,16220490 DATA 0,165,203,24,105,12820500 DATA 133,203,165,204,105,020510 DATA 133,204,232,236,4,42}0520 DATA 208,237,160,0,152,14520530 DATA 203,200,192,127,208,24920540 DATA 173,3,4,201,128,14420550 DATA 1,96,101,203,133},20320560 DATA 165,204,105,0,133,20420570 DATA 160,0,204,5,4,24020580 DATA 8,177,205,145,203,20020590 DATA 24,144,243,96}10 PMMODE=2:GRMODE=0:GOSUB 2005020 DIM SHAPE$(64):SIZE=8:RESTORE 210:FOR X=1 TO 64:READ A:SHAPE$(X)=CHR$(A):NEXT X25 DIM MI}SSILE$(1):MISSILE$(1)=CHR$(3)30 DI=1:X=127:Y=64:SOUND 0,180,6,340 S=STICK(0):IF S=11 THEN DI=DI-150 IF S=7 THEN DI=DI+160} IF DI<1 THEN DI=870 IF DI>8 THEN DI=180 A=USR(PMMOVE,1,ADR(SHAPE$(DI*8-7)),SIZE,X,Y)85 IF STRIG(0)=0 THEN GOSUB 100090 I}F S=14 THEN SOUND 1,120,6,6:ON DI GOTO 120,130,140,150,160,170,180,190100 IF S=15 THEN SOUND 1,180,6,3:GOTO 40110 GOTO 401}20 Y=Y-1:GOTO 40130 X=X+1:Y=Y-1:GOTO 40140 X=X+1:GOTO 40150 X=X+1:Y=Y+1:GOTO 40160 Y=Y+1:GOTO 40170 X=X-1:Y=Y+1:GOTO 40}180 X=X-1:GOTO 40190 X=X-1:Y=Y-1:GOTO 40200 REM *** TANK SHAPES (CLOCKWISE N-NE-E-SE-S-SW-W-NW) ***210 DATA 8,8,42,62,62,6}2,62,34220 DATA 9,26,60,127,254,60,24,16230 DATA 0,252,120,127,120,252,0,0240 DATA 16,24,60,254,127,60,26,9250 DATA 34,62},62,62,62,42,8,8260 DATA 8,24,60,127,254,60,88,144270 DATA 0,63,30,254,30,63,0,0280 DATA 144,88,60,254,127,60,24,81000 ON} DI GOTO 1010,1020,1030,1040,1050,1060,1070,10801010 DX=0:DY=-2:GOTO 10901020 DX=2:DY=-2:GOTO 10901030 DX=2:DY=0:GOTO 1090}1040 DX=2:DY=2:GOTO 10901050 DX=0:DY=2:GOTO 10901060 DX=-2:DY=2:GOTO 10901070 DX=-2:DY=0:GOTO 10901080 DX=-2:DY=-21090 }MX=X:MY=Y:FOR SHOOT=1 TO 151100 A=USR(PMMOVE,5,ADR(MISSILE$),1,MX,MY):MX=MX+DX:MY=MY+DY:NEXT SHOOT1110 A=USR(PMMOVE,5,ADR}(MISSILE$),1,0,0):RETURN 20000 REM *** PLAYER/MISSILE SETUP ***20010 REM DEFINE PMMODE & GRMODE BEFORE CALLING THIS ROUTINE}20020 REM PMMODE=1 FOR SINGLE-RES P/M20030 REM PMMODE=2 FOR DOUBLE-RES P/M20040 REM GRMODE=GRAPHICS MODE20050 DIM PAGCLR$}(48),PMMOVE$(202):PAGCLR=ADR(PAGCLR$):PMMOVE=ADR(PMMOVE$)20060 MT=0:RESTORE 20170:FOR X=1 TO 48:READ A:PAGCLR$(X)=CHR$(A)20}065 MT=MT+A:NEXT X:IF MT=7484 THEN MT=0:GOTO 2007020066 PRINT "ERROR IN DATA... LINES 20170-20240":STOP 20070 FOR X=1 TO }202:READ A:PMMOVE$(X)=CHR$(A):MT=MT+A:NEXT X20075 IF MT<>23367 THEN PRINT "ERROR IN DATA... LINES 20260-20590":STOP 20080 I}F PMMODE=1 THEN PAGES=8:DMA=62:GOTO 2011020090 IF PMMODE=2 THEN PAGES=4:DMA=46:GOTO 2011020100 RETURN 20110 POKE 54279,PEE}K(106)-PAGES:POKE 106,PEEK(106)-PAGES:POKE 207,PMMODE20120 GRAPHICS GRMODE20130 PMBASE=PEEK(106)*256:POKE 559,DMA:POKE 5327}7,3:X=USR(PAGCLR,PMBASE,PAGES)20140 POKE 704,68:POKE 705,68:POKE 706,88:POKE 707,98:REM P/M COLORS20150 RETURN 20160 REM P}AGCLR ML DATA20170 DATA 104,201,2,240,16,13320180 DATA 206,162,0,228,206,20820190 DATA 1,96,104,104,232,16920200 DATA 0,2}40,244,104,133,20420210 DATA 104,133,203,104,104,13320220 DATA 205,169,0,168,170,14520230 DATA 203,200,208,251,230,204202}40 DATA 232,228,205,208,244,9620250 REM PMMOVE DATA20260 DATA 104,201,5,240,18,14120270 DATA 0,4,162,0,236,020280 DATA 4,}208,1,96,104,10420290 DATA 232,169,0,240,243,10420300 DATA 104,201,9,144,9,10420310 DATA 104,104,104,104,104,10420320 DAT}A 104,96,24,201,0,24020330 DATA 242,141,4,4,104,13320340 DATA 206,104,133,205,104,10420350 DATA 141,5,4,104,104,14120360 }DATA 2,4,104,104,141,320370 DATA 4,174,4,4,173,220380 DATA 4,157,255,207,224,520390 DATA 176,2,144,5,169,020400 DATA 141,}4,4,165,207,20120410 DATA 2,240,28,165,106,2420420 DATA 105,3,109,4,4,13320430 DATA 204,169,0,133,203,16820440 DATA 145,2}03,200,208,251,17320450 DATA 3,4,133,203,24,14420460 DATA 65,165,106,24,105,120470 DATA 133,204,169,128,133,20320480 DATA} 173,4,4,240,21,16220490 DATA 0,165,203,24,105,12820500 DATA 133,203,165,204,105,020510 DATA 133,204,232,236,4,420520 DAT}A 208,237,160,0,152,14520530 DATA 203,200,192,127,208,24920540 DATA 173,3,4,201,128,14420550 DATA 1,96,101,203,133,203205}60 DATA 165,204,105,0,133,20420570 DATA 160,0,204,5,4,24020580 DATA 8,177,205,145,203,20020590 DATA 24,144,243,96u10 GRAPHICS 2:SETCOLOR 2,0,0:POKE 752,1:POSITION 3,2:? #6;"P/M SHAPEMAKER"20 ? " SINGLE RESOLUTION":? " DOUBLE RESOLUTION"}30 OPEN #1,4,0,"K:":? "PRESS OR ";40 GET #1,A:IF A=49 THEN PMMODE=1:GOTO 7050 IF A=50 THEN PMMODE=2:GOTO 7060 GOTO 40}70 ? " PLEASE WAIT...":GRMODE=0:GOSUB 2005080 DIM CURSOR$(2),OLD$(2),BIT(8),BYTE$(24):CURSOR$(1,2)="":OLD$(1,2)="."90 }RESTORE 100:FOR N=1 TO 8:READ A:BIT(N)=A:NEXT N100 DATA 128,64,32,16,8,4,2,1110 POKE 752,1:SETCOLOR 2,0,0:FOR N=1 TO 24:? "}........ 0":BYTE$(N)=CHR$(0):NEXT N:CX=2:CY=0120 A=USR(PMMOVE,2,ADR(BYTE$),24,170,128/PMMODE)130 POSITION 24,20:? "RASE PL}AYER"140 LOCATE CX,CY,A:OLD$(1)=CHR$(A):POSITION CX,CY:? CURSOR$;150 S=STICK(0):FOR N=1 TO 25:NEXT N:IF S=14 THEN 220160 I}F S=7 THEN 240170 IF S=13 THEN 260180 IF S=11 THEN 280190 IF STRIG(0)=0 THEN 300200 IF PEEK(764)=42 THEN POKE 764,255:? C}HR$(125):GOTO 110210 GOTO 150220 IF CY=0 THEN 150230 ? OLD$;:CY=CY-1:GOTO 140240 IF CX=9 THEN 150250 ? OLD$;:CX=CX+1:GOT}O 140260 IF CY=22 THEN 150270 ? OLD$;:CY=CY+1:GOTO 140280 IF CX=2 THEN 150290 ? OLD$;:CX=CX-1:GOTO 140300 IF OLD$(1)=""} THEN OLD$(1)=".":BYTE$(CY+1,CY+1)=CHR$(ASC(BYTE$(CY+1))-BIT(CX-1)):GOTO 320310 OLD$(1)="":BYTE$(CY+1,CY+1)=CHR$(ASC(BYTE$(}CY+1))+BIT(CX-1))320 POSITION 11,CY:? " ":POSITION 11,CY:? ASC(BYTE$(CY+1)):POSITION CX,CY330 A=USR(PMMOVE,2,ADR(BYTE$),}24,170,128/PMMODE)340 IF STRIG(0)=0 THEN 340350 GOTO 15020000 REM *** PLAYER/MISSILE SETUP ***20010 REM DEFINE PMMODE & G}RMODE BEFORE CALLING THIS ROUTINE20020 REM PMMODE=1 FOR SINGLE-RES P/M20030 REM PMMODE=2 FOR DOUBLE-RES P/M20040 REM GRMOD}E=GRAPHICS MODE20050 DIM PAGCLR$(48),PMMOVE$(202):PAGCLR=ADR(PAGCLR$):PMMOVE=ADR(PMMOVE$)20060 MT=0:RESTORE 20170:FOR X=1 T}O 48:READ A:PAGCLR$(X)=CHR$(A)20065 MT=MT+A:NEXT X:IF MT=7484 THEN MT=0:GOTO 2007020066 PRINT "ERROR IN DATA... LINES 20170}-20240":STOP 20070 FOR X=1 TO 202:READ A:PMMOVE$(X)=CHR$(A):MT=MT+A:NEXT X20075 IF MT<>23367 THEN PRINT "ERROR IN DATA... L}INES 20260-20590":STOP 20080 IF PMMODE=1 THEN PAGES=8:DMA=62:GOTO 2011020090 IF PMMODE=2 THEN PAGES=4:DMA=46:GOTO 20110201}00 RETURN 20110 POKE 54279,PEEK(106)-PAGES:POKE 106,PEEK(106)-PAGES:POKE 207,PMMODE20120 GRAPHICS GRMODE20130 PMBASE=PEEK(}106)*256:POKE 559,DMA:POKE 53277,3:X=USR(PAGCLR,PMBASE,PAGES)20140 POKE 704,68:POKE 705,68:POKE 706,88:POKE 707,98:REM P/M C}OLORS20150 RETURN 20160 REM PAGCLR ML DATA20170 DATA 104,201,2,240,16,13320180 DATA 206,162,0,228,206,20820190 DATA 1,96},104,104,232,16920200 DATA 0,240,244,104,133,20420210 DATA 104,133,203,104,104,13320220 DATA 205,169,0,168,170,14520230 D}ATA 203,200,208,251,230,20420240 DATA 232,228,205,208,244,9620250 REM PMMOVE DATA20260 DATA 104,201,5,240,18,14120270 DAT}A 0,4,162,0,236,020280 DATA 4,208,1,96,104,10420290 DATA 232,169,0,240,243,10420300 DATA 104,201,9,144,9,10420310 DATA 10}4,104,104,104,104,10420320 DATA 104,96,24,201,0,24020330 DATA 242,141,4,4,104,13320340 DATA 206,104,133,205,104,10420350 }DATA 141,5,4,104,104,14120360 DATA 2,4,104,104,141,320370 DATA 4,174,4,4,173,220380 DATA 4,157,255,207,224,520390 DATA 17}6,2,144,5,169,020400 DATA 141,4,4,165,207,20120410 DATA 2,240,28,165,106,2420420 DATA 105,3,109,4,4,13320430 DATA 204,169},0,133,203,16820440 DATA 145,203,200,208,251,17320450 DATA 3,4,133,203,24,14420460 DATA 65,165,106,24,105,120470 DATA 133},204,169,128,133,20320480 DATA 173,4,4,240,21,16220490 DATA 0,165,203,24,105,12820500 DATA 133,203,165,204,105,020510 DAT}A 133,204,232,236,4,420520 DATA 208,237,160,0,152,14520530 DATA 203,200,192,127,208,24920540 DATA 173,3,4,201,128,1442055}0 DATA 1,96,101,203,133,20320560 DATA 165,204,105,0,133,20420570 DATA 160,0,204,5,4,24020580 DATA 8,177,205,145,203,20020}590 DATA 24,144,243,96B%DOS SYSB*)DUP SYSBSPMTOOLKTLSTBfDEMOSHAPLSTB{DEMOANIMLSTBDEMOTANKLSTBDEMOTANKTBLBSHAPMAKELST/