@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- 162ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8 uR} CDtqMDXYMNMNANF4WELRUDRLPFPSTIGDI@T}@ @U}@@@@ !"@#$V}%//MAZE... IN MAG. (APR. '83)PAGE #69.2 +@3A46-@57-W}7(@--------------------72-@@2 @3-d maze escape9%%(@--------------------<X}e-@@4(@select MAZE WIDTHF-@@e @ THEN PRESS startF F:B2y,"@Y}AK>F:B2y,"@&6-%@2!@5>6-@U+-@@+ @=ZR-@Z}@D2H:,$A@@H R @pd +@AR@fAnA&[}6-P:+@8&,'@,%@Jh}A6-P:+@8&,'@,xS @,#/%&@=/%&@%&@M/\}%&@S/ $ $  INTERSECTION RESET9A,9A,=6-=6-P:H:,$'@]},$@%%@116-P:H:,$'@,$@%%@ ,'1%@'"AP'^}1&@'"AP'1%@'"AP'1&@'"AP Ap_})%6-P:H:,$@,%AQ) &6-6@6-& A%6-6-@% A%6-`}@6-% A6-6-6@,31%$@%$@3!AP6' ,%%',%a}$@%$@@2%@@Jz6-%$@#6-%$@16-%@:68,-C68,-UAVb}@gAW@p  z A@rP 6-8,6-8,#6-&@5AV@GAW@5P  c}|"A A@U @#,%@%@;/%&@%@U/%&@%&@Ud} @#,%@%@;/%&@%@U/%&@%&@1/%@%&@1/%@%@e}AAV@'AW@A filling array . . .'@@'@;Af},6. ~~;@,;@,;@,;@,;@,;@,9@,9@,9@,9@g},;@,?6.>:,!6.>:@,06.>:@,?6.>:@,/%2/ A h}06-F:@,!6-F:@,06-F:@,'-&@%'-&@%G 1-67$@@%<$@@%,.i}>:,9%@G,%@@/ +2$@@@/ 6-%@P;;6-P:H:,$@%+j}&@,'@,%%@;;6-P:H:,$@%+&@,'@,%%@**7$@@%<$@@%,4Ak}`6-36-6@@6-@)6-6@3 A6-$@@%67<,.36-!ARl}@3@w6-R:,1"@6-&@' A P1 A1"@6-%@' m}A p1 A"@A0 A A6-%@B02H:,$A@@n}B@w6-%? T:,"@AP ! A A! A.6-$@@%6o}-%.7<,4A7<,4 AP.6-P:'@@,$6-&@@$. A!6-$@@%67<,.p}"6-%@& BN A/ +@/(@**you have escaped**(@ press fire|(q}@ to go on<(@********************](@or pull back on the|(@stick to see path"R:r},"@" AOT:,"@E2H:,$A@@O AS%: +@s}A1AR@:6-P:,7<,06-%@$ @,7-%@%&@7t}-%@%&@%%6-@:7%$@@<%$@@,,  ,/ +2$@@@/  % u}% press to return. . .56-%@7<,456-P:'@,$@6AV'AW@#6v}  SCORE 002H:,$A@@T:,"$$$'@P:'@,Aw}%"@6-@% A6-@  , A  +@AR@!70@@x}@70@@@"70@@@70@@%6-$@@%*6-@y} A 4 6-%@"@  $6''2$@ @@9% @,8,8,%/8,8,:z},8,8,/8,8,<7%<%,4 A >7%<%,4A@B5 @,8,8,5/8&@,%@{}8,C5,8,8,+/8&@,%@8,5 APH5 @,8,8,5/8&@,8&@,J+,8,8,|}+/8&@,8&@,R7%<%,4A`V5 @,8,8,5/8&@,&@8,W5,8,8,+/}}8&@,&@8,5 Ap\5 @,8,8,5/8&@,8&@,^+,8,8,+/8&@,8&@~},f7%<%,4Ash 6-% A i% @,8,8,%/8,8,j,8,8,/8,8,$}6-O:8,&8,,'@ @,8,%8,$8 @6-@i86-H:,$@%@5- ,/}%@-/&@%@[,&@%@/,%@%@E,%@%@[,%@%@}H,&@%@//&@%@E/%@%@H$9"6@@6-6@*6-6@@66-@@}9$8"6@6-@@)6-6@56-@8$7"@@6-@'6-@@46-6@@7$8"@}6-6@@(6-@56-6@8$  ERROR&"6@@6-@@& A T&"@6-6@}& A R&"@@6-6@@& A P&"6@6-@& A V A XO68,-6@}--@@K68,-8&@,%@&O P68,-@,-@@L68,-8&@,&+@}&,P a68,-6@--@@]68,-8&@,%+@&,$@&@a `68,}-AQ,-@@\68,-8&@,&+@ &,$@&@` C-@@+68,-8,%@?}68,-8,%@C $ N6.=:P:,,HN-@B:,RN)AV@)AW$@\N A:7<,,%B}fN pN'AV@'AW@4zN"6@6-@N"@6-N %B$O-}*(!| | -$O(   |   $O($O( }$O(   $O($O($O( | $O}($O($O(^||||$O(>$O(|}|||V$O(<$ D:MAZE3D.BASA; AMAZING ; BY DAVID PLOTKIN ; ANTIC MAGAZINE MODULE CARD SCRLOC=88,HIMEM=$2E5, PM_BASEADR,ADRES,AD }RESB,SCORE=[0] INT DIRX=[2],DIRY=[0],XDIR,YDIR INT ARRAY PXDR=[0 0 0 0], PYDR=[0 0 0 0] BYTE T=$DA,VCOU }NT=$D40B, PMHITCLR=$D01E,DMACTL=$22F, GRACTL=$D01D,PMBASE=$D407, PRIORITY=$26F,X0,Y0,COUNT=[0], LV=[5 }],FT=[150],CD=[20], PCLRM=711,COLR0=708,LOUD=[0], COLR1=709,COLR2=710,COLR4=712, FATE=53770,CURSH=752, } TXTROW=656,TXTCOL=657,LVL=[1], SND1=$D20F,SND2=$D208 BYTE ARRAY YLOCL(80), YLOCH(80),RSH2(16 }0), PMHPOS(8)=$D000, PX(4)=[0 0 0 0],PY(4)=[0 0 0 0], BEGX(4)=[0 52 52 196], BEGY(4)=[0 } 38 166 38], PM_WIDTH(5)=$D008,PLPTR, PM_MISMASK(4)=[$FC $F3 $CF $3F], PCOLR(4)=704,PMTOPF(8)=$D000, }PMTOP(8)=$D008,PFCOL(8),PCOL(8) BYTE ARRAY BM(0)=[$C0 $30 $C $3], CM(0)=[$0 $55 $AA $FF], CHMP1(0)=[0 0 129 } 129 66 66 36 36 24 24 24 24 36 36 66 66 129 129 0 0], CHMP2(0)=[0 0 129 129 66 66 60 36 36 36 36 36 36 60 66 66 12 }9 129 0 0], CRT(0)=[0 0 129 129 129 195 90 126 126 165 165 126 126 90 195 129 129 129 0 0], MSTATUS(0)=[0 0 0 0], }ESTAT(4), MX(0)=[0 0 0 0],MY(0)=[0 0 0 0], BLK(0)=['U'U'U'U'Z''Y'e'Z''Y'e'U 'U'U'U];WIDTH=2,HEIGHT=8 BYTE } ARRAY LINE,DUM BYTE LOW=LINE,HIGH=LINE+1 PROC DLAY(CARD WAIT) CARD COUNT FOR COUNT=0 TO WAIT DO OD RETURN PROC INIT }7() BYTE LOW1,HIGH1,I CARD SCREEN=LOW1 GRAPHICS(7) COLR0=44 COLR1=196 COLR2=106 COLR4=0 SCREEN=SCRLOC I=0 WHILE I<80 DO } YLOCL(I)=LOW1 YLOCH(I)=HIGH1 SCREEN=SCREEN+40 I=I+1 OD I=0 WHILE I<160 DO RSH2(I)=I RSH 2 I=I+1 OD RETURN INT FUN }C HSTICK(BYTE PORT) BYTE ARRAY PORTS(4)=$278 INT ARRAY VALUE(4)=[0 1 $FFFF 0] RETURN (VALUE((PORTS(PORT)&$C) RSH 2)) IN }T FUNC VSTICK(BYTE PORT) BYTE ARRAY PORTS(4)=$278 INT ARRAY VALUE(4)=[0 1 $FFFF 0] RETURN (VALUE(PORTS(PORT)&3)) PROC U }PDATE() TXTROW=1 TXTCOL=12 PRINTC(SCORE) RETURN PROC UPDATESHIP() BYTE LOOP5 TXTROW=1 FOR LOOP5=1 TO 5 DO TXTCOL=31+L }OOP5 IF LV>=LOOP5 THEN PRINT("") ELSE PRINT(" ") FI OD RETURN PROC DRAW7(BYTE X,Y,CLR) BYTE X1=$A0,Y1=$A1,CLR1=$A2 } LOW=YLOCL(Y1) HIGH=YLOCH(Y1) T=RSH2(X1) LINE(T)=(((BM(X1&3)!$FF)&LINE(T))% (BM(X1&3)&CM(CLR1))) RETURN PROC } FASTDRAW(BYTE ARRAY PICTURE BYTE WIDTH,HEIGHT,XX,YY) BYTE LCTR1,LCTR2 CARD LCTR3 FOR LCTR1=0 TO HEIGHT-1 DO LO }W=YLOCL(YY+LCTR1) HIGH=YLOCH(YY+LCTR1) LCTR2=XX+WIDTH LCTR3=(LCTR1+1)*WIDTH-1 DO LINE(LCTR2)=PICTURE(LCTR3) LCTR3= }=-1 LCTR2==-1 UNTIL LCTR2=XX OD OD RETURN PROC PMGRAPHICS() ZERO(PMHPOS,8) ZERO(PM_WIDTH,5) DMACTL=$3E PCOLR(0 })=52 PM_BASEADR=(HIMEM-$800)&$F800 PMBASE=PM_BASEADR RSH 8 HIMEM=PM_BASEADR+768 PRIORITY==&$C0%17 GRACTL=3 RETURN CAR }D FUNC PMADR(BYTE N) IF N>=4 THEN N=0 ELSE N==+1 FI RETURN(PM_BASEADR+768+(N*$100)) PROC PMCLEAR(BYTE N) CARD CTR BYTE } ARRAY PLAYADR PLAYADR=PMADR(N) IF N<4 THEN ZERO(PLAYADR,$100) ELSE N==-4 FOR CTR=0 TO $100-1 DO PLAYADR(CTR)==&PM_MISM }ASK(N) OD FI RETURN PROC WINDOW() BYTE LOOP5 TXTROW=0 TXTCOL=0 CURSH=1 PRINT (" }") FOR LOOP5=1 TO 2 DO TXTROW=LOOP5 TXTCOL=0 PRINT("|") TXTCOL=38 PRINT("|") OD TXTROW=3 TXTCOL=0 PRINT (" }") TXTROW=1 TXTCOL=3 PRINT("SCORE: ") UPDATE() TXTCOL=20 PRINT("MEN LEFT: ") UPDATES }HIP() RETURN PROC MOVEIT(BYTE ARRAY SHAPE BYTE WHICH,NUM,XX,YY) ADRES=PMADR(WHICH)+YY MOVEBLOCK(ADRES,SHAP }E,NUM) PMHPOS(WHICH)=XX RETURN PROC PUTMAN() BYTE LP FOR LP=0 TO 3 DO MSTATUS(LP)=0 ESTAT(LP)=0 OD X0=120 Y0=102 MOV }EIT(CHMP1,0,20,X0,Y0) FOR LP=1 TO 3 DO PX(LP)=BEGX(LP) PY(LP)=BEGY(LP) MOVEIT(CRT,LP,20,PX(LP),PY(LP)) OD RETURN PROC }BORDER() BYTE L1,L2 FOR L1=0 TO 159 DO FOR L2=0 TO 3 DO DRAW7(L1,L2,1) DRAW7(L1,L2+76,1) OD OD FOR L1=0 TO 79 DO } FOR L2=0 TO 3 DO DRAW7(L2,L1,1) DRAW7(L2+156,L1,1) OD OD RETURN PROC DOTS() BYTE L1,L2 FOR L2=8 TO 72 STEP 16 DO } FOR L1=8 TO 156 STEP 8 DO DRAW7(L1,L2,3) OD OD FOR L2=16 TO 72 STEP 16 DO FOR L1=8 TO 156 STEP 16 DO DRAW7(L1,L2,3) }OD OD RETURN PROC BOARDDRAW() BYTE L1,L2 BORDER() FOR L1=2 TO 36 STEP 4 DO FOR L2=12 TO 68 STEP 16 DO FASTDRAW(B }LK,2,8,L1,L2)OD OD DOTS() RETURN PROC TESTCOL() BYTE LL FOR LL=0 TO 7 DO PFCOL(LL)=0 PCOL(LL)=0 OD DO UNTIL VCOUNT&1 }28 OD FOR LL=0 TO 7 DO PFCOL(LL)=PMTOPF(LL) PCOL(LL)=PMTOP(LL) OD PMHITCLR=1 RETURN BYTE FUNC PMHIT(BYTE N,CNUM) }IF N<4 THEN N==+4 ELSE N==-4 FI IF CNUM<4 THEN RETURN((PCOL(N) RSH CNUM)&1) ELSE CNUM==&3 RETURN((PFCOL(N) RSH CNUM)& }1) FI RETURN(0) BYTE FUNC LLOC(BYTE XX,YY,CLR) BYTE X1=$A0,Y1=$A1,CLR1=$A2,L1,L2 LOW=YLOCL(Y1) HIGH=YLOCH(Y1) T=RSH2 }(X1) L1=X1&3 L2=LINE(T)&BM(L1) IF (L2&CM(CLR1))=(BM(L1)&CM(CLR1))THEN RETURN(1) FI;SOMETHING THERE RETURN(0) BYTE FUNC } LKAHD(INT XD,YD BYTE XX,YY) BYTE XA,YA,XB,YB,RS1,RS2 XA=XX-48 YA=(YY-32) RSH 1 IF XD>0 THEN XA==+7+XD XB=XA YA==+1 YB=Y }A+7 ELSEIF XD<0 THEN XA==+XD XB=XA YA==+1 YB=YA+7 ELSEIF YD>0 THEN XB=XA+7 YA==+9 YB=YA ELSEIF YD<0 THEN XB=XA+7 YB }=YA ELSE RETURN(0) FI RS1=LLOC(XA,YA,1) RS2=LLOC(XB,YB,1) IF RS1+RS2=0 THEN RETURN(1) ELSE RETURN(0);OK FI RETURN(0) };BLOCKED PROC NEWLEVEL() BYTE LL SNDRST() SCORE==+COUNT*LVL UPDATE() COUNT=0 LVL==+1 FOR LL=0 TO 7 DO PMCLEAR(LL) OD }DOTS() PUTMAN() DIRX=0 DIRY=0 IF LVL<11 THEN FT==-10 CD==+10 FI RETURN PROC MSLDROP(INT XD,YD) BYTE TRIG=644,XA,YA,LP },MASK,LD=[0],TT=[0] IF LD>1 THEN LD==-2 FI SOUND(1,LD LSH 3,10,LD) IF TRIG=1 THEN TT=0 FI IF TRIG=1 OR (XD=0 AND YD=0) OR } TT=1 THEN RETURN FI FOR LP=0 TO 3 DO IF MSTATUS(LP)=0 THEN MSTATUS(LP)=1 IF XD>0 THEN XA=X0 YA=Y0+9 ELSEIF XD<0 T }HEN XA=X0+7 YA=Y0+9 ELSEIF YD>0 THEN XA=X0+4 YA=Y0 ELSE XA=X0+4 YA=Y0+18 FI MASK=PM_MISMASK(LP)!$FF LD=12 TT=1 MY }(LP)=YA MX(LP)=XA PLPTR(MY(LP))==%MASK PLPTR(MY(LP)+1)==%MASK PMHPOS(LP+4)=MX(LP) EXIT FI OD RETURN PROC MSLGET() }BYTE LP,LD1=[0] IF LD1>1 THEN LD1==-2 FI SOUND(2,LD1 LSH 4,10,LD1) FOR LP=0 TO 3 DO IF PMHIT(LP+4,0)=1 THEN MSTATUS(LP)= }0 LD1=12 PLPTR(MY(LP))==&PM_MISMASK(LP) PLPTR(MY(LP)+1)==&PM_MISMASK(LP) PMHPOS(LP+4)=0 EXIT FI OD RETURN PROC GOTBUMPE }D() BYTE LQ,LD2=[0],LQ1 IF LD2>0 THEN LD2==-1 FI SOUND(3,LD2 LSH 3,8,LD2) FOR LQ=0 TO 3 DO FOR LQ1=1 TO 3 DO IF PMHIT(LQ }+4,LQ1)=1 THEN LD2=14 ESTAT(LQ1)=1 MSTATUS(LQ)=0 PLPTR(MY(LQ))==&PM_MISMASK(LQ) PLPTR(MY(LQ)+1)==&PM_MISMASK(LQ) PMHP }OS(LQ+4)=0 FI OD OD FOR LQ=1 TO 3 DO IF ESTAT(LQ)>0 THEN ESTAT(LQ)==+1 PCOLR(LQ)=FATE FI IF ESTAT(LQ)=FT THEN ESTAT( }LQ)=0 PMCLEAR(LQ) PCOLR(LQ)=(RAND(15) LSH 4)+6 PX(LQ)=BEGX(LQ) PY(LQ)=BEGY(LQ) MOVEIT(CRT,LQ,20,PX(LQ),PY(LQ)) FI OD } RETURN PROC MUNCH() BYTE TIME=20,X1,Y1 IF LOUD>1 THEN LOUD==-2 FI SOUND(0,8,LOUD LSH 3,LOUD) IF PMHIT(0,10)=0 THEN DL }AY(1) RETURN FI LOUD=12 X1=X0-48 Y1=(Y0-32) RSH 1 DRAW7(X1+3,Y1+4,0) DRAW7(X1+3,Y1+5,0) DRAW7(X1+4,Y1+4,0) DRAW7(X1+4,Y1+5 },0) COUNT==+1 IF COUNT=135 THEN NEWLEVEL() FI RETURN PROC CHANGEDIR(BYTE WH) BYTE F,LP IF FATE200 THEN LD }=200 FI LC==-2 IF LC<30 THEN LC=30 FI IF (LC=30 AND LD=200) THEN EXIT FI SOUND(0,LC,8,8) SOUND(1,LD,8,8) DUM(LC)=FATE DUM }(LD)=FATE DLAY(250) DLAY(250) DLAY(250) OD SNDRST() FOR LC=0 TO 7 DO PMCLEAR(LC) OD LV==-1 UPDATESHIP() IF LV=0 THEN E }NDGAME() ELSE PUTMAN() PMHITCLR=0 FI RETURN PROC CHASE() BYTE LP FOR LP=1 TO 3 DO SMARTS(LP) PX(LP)==+PXDR(LP) PY(LP) }==+PYDR(LP) IF ESTAT(LP)=0 THEN MOVEIT(CRT,LP,20,PX(LP),PY(LP)) FI OD RETURN PROC MOVEMAN() BYTE STCK=632,TIME=20 XDI }R=HSTICK(0) LSH 1 YDIR=VSTICK(0) LSH 1 IF XDIR<>0 AND YDIR<>0 THEN YDIR=0 FI IF STCK=15 THEN XDIR=DIRX YDIR=DIRY FI IF LK }AHD(XDIR,YDIR,X0,Y0)=1 THEN X0==+XDIR Y0==+YDIR DIRX=XDIR DIRY=YDIR ELSEIF LKAHD(DIRX,DIRY,X0,Y0)=1 THEN X0==+DIRX Y }0==+DIRY ELSE DIRX=0 DIRY=0 FI MOVEIT(CHMP1,0,20,X0,Y0) RETURN PROC MAIN() BYTE XX,COUNT,TIMER=20,ATRACT=$4D SND1=3 } SND2=0 INIT7() PMGRAPHICS() PCLRM=50 PLPTR=PMADR(4) DUM=PMADR(0) FOR XX=0 TO 7 DO PMCLEAR(XX) OD FOR XX=1 TO 3 DO } PCOLR(XX)=(RAND(15) LSH 4)+6 OD WINDOW() BOARDDRAW() PUTMAN() ENDGAME() DO TESTCOL() MUNCH() MOVEMAN() OUCH() } MSLGET() CHASE() MSLDROP(DIRX,DIRY) ATRACT=0 GOTBUMPED() OD RETURN H?F%DOS SYSF*)DUP SYSF;SMAZE3D BASFLAMAZE ACT