Home » Archimedes archive » Acorn User » AU 1998-10.adf » Regulars » StarInfo/Wareham/!Tunnel/!RunImage
StarInfo/Wareham/!Tunnel/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1998-10.adf » Regulars |
Filename: | StarInfo/Wareham/!Tunnel/!RunImage |
Read OK: | ✔ |
File size: | 13CE bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM>ADFS::Richard.$.Develop4.Tunnel.!Tunnel.!RunImage squished by MH's BASIC cruncher v1.30 16/9/89 On 26 Apr 1998 2PROCc:aa%=(H%-n%)>>1:R%=(z%-(f%-16))>>1:R%+=8:ba%=aa%+(H%*R%):S%=(H%-n%)<<(h%-1):T%=(z%-f%)<<(e%-1):CLS:MOUSESTEP(1<<h%):MOUSERECTANGLE0,0,63<<(3+h%),1<<e%:GCOL0TINT0:a%=0:t%=0:v%=0:L%=FALSE:CLS:U%=1:V%=2:PROCa:CLS:PROCa:REPEAT:t%+=(v%>>2):IFt%>63t%-=64 230IFt%<0t%+=64 240MOUSEM%,y%,b%:IFb%=4v%+=1 260IFb%=1v%-=1 270IFb%=2REPEAT:MOUSEi%,j%,k%:UNTILk%=0:L%=NOTL% 280IFv%<-50v%=-50 290IFv%>50v%=50 300IFL%M%=((31*SIN(RAD(a%)))+32)<<(3+h%) 320a%+=10:PRINTTAB(0,0);"Velocity = ";v%;" m/s ":PRINTTAB(0,1);"Roll = ";(90*M%)>>(9+h%);"� ":GCOL63TINT255:IFN%SYS46,34+256,w%,"back",S%,T% 380IFNOTN%RECTANGLEFILLS%,T%,(n%<<h%)-1,(f%<<e%)-1 390A%=W%:B%=E%+(t%<<6)+(M%>>(3+h%)):C%=ba%:CALLca%:IFO%THEN 420PROCd(J%):A%=J%:CALLda%:A%=J%:B%=E%:C%=X%:CALLea%:A%=E%:CALLfa% 500ENDIF 500IFINKEY$(0)="*"THEN*bc 510WAIT:PROCa:UNTIL0:END 540 560DEFPROCe:DIMga% 4048:x%=8:y%=9:F%=10:Y%=11:Z%=12:FORI%=0TO2STEP2:P%=ga%:[OPT I%:.ca%:STMFD13!,{0-12,14}:MOV Y%,0:MOV Z%,1:ADR0,ha%:ADR1,ia%:SWI "OS_ReadVduVariables":LDR F%,[1]:ADD F%,F%,2:MOV y%,#0:MOV5,#0:MOV6,#0:MOV1,#H%:.ja%:MOV x%,#0:.ka%:MOV2,#0: ] 900FORla%=0TO3:s%=la%*8:[OPT I%:LDR4,[Y%,5,ASL#2]:LDRB3,[Z%,4]:ORR2,2,3,LSL#s%:ADD5,5,#1: ]:NEXT:[OPT I%:LDR4,[F%,6]:AND2,2,4:STR2,[F%,6]:ADD6,6,#4:ADD x%,x%,#4:CMP x%,#(n%):BLT ka%:ADD y%,y%,#1:MUL 6,y%,1:CMP y%,#(f%):BLT ja%:LDMFD13!,{0-12,pc} 1150.fa%:STMFD13!,{0-12,14}:MOV1,0:MOV0,#0:ADD2,1,#o%*o%:.ma%:LDMIA1!,{3-10}:STMIA2!,{3-10}:ADD0,0,#8*4:CMP0,#o%*o%:BLT ma%:LDMFD13!,{0-12,pc}:.da%:STMFD13!,{0-12,14}:MOV1,#o%*o%:.na%:MOV2,#0:.oa%:LDRB3,[0,1]:SUB4,1,#o%+1:LDRB5,[0,4] 1450ADD3,3,5:ADD4,4,#1:LDRB5,[0,4]:ADD3,3,5:ADD4,4,#1:LDRB5,[0,4]:ADD3,3,5:MOV3,3,LSR#2:CMP3,#1:SUBGE3,3,#1:STRB3,[0,1]:SUB1,1,#1:ADD2,2,#1:CMP2,#o%:BLT oa%:CMP1,#0:BGT na%:LDMFD13!,{0-12,pc}:.ea%:STMFD13!,{0-12,14}:MOV3,#0:.pa%:LDRB4,[0,3] 1770LDRB5,[2,4]:STRB5,[1,3]:ADD3,3,#1:CMP3,#o%*o%:BLT pa%:LDMFD13!,{0-12,pc}:.ha%:EQUD148:EQUD-1:.ia%:EQUD0:EQUD0: ]:NEXT:ENDPROC 1920 1940DEFPROCf:DIMW% n%*f%*4:v%=0:FORy%=-(f%>>1)TO(f%>>1)-1:u%=0:FORx%=-(n%>>1)TO(n%>>1)-1:_%=FALSE:IFy%=0y%=1:_%=TRUE 2010r%=Q%-SQR((x%*x%)+(y%*y%)):a%=((DEG(ATN(x%/y%))+180)*256)/360:IF_%y%=0 2040q%=FNa(r%):K%=(a%):PROCg(x%+(n%>>1),y%+(f%>>1),K%AND63,q%AND63):W%!((u%+(v%*n%))<<2)=(K%AND63)OR((q%AND63)<<6):u%+=1:NEXT:v%+=1:NEXT:ENDPROC 2130 2150DEFFNf(x%,q%):=(q%*x%*qa%)>>10 2180DEFFNa(y%):LOCALt%,d%:d%=Q%-y%:t%=(y%*`%)/d%:=t% 2240DEFPROCc:ONERRORMODE0:REPORT:PRINT" : ";ERL:END 2260PRINT"Tunnel program (small version)":PRINT"by Richard Wareham 1998":PRINT:PRINT"Do you want depth cueing?":PRINT"WARNING:This can slow the display down by half":PRINT"(Y/N) : ";:REPEAT:G$=GET$:UNTILG$="Y"ORG$="y"ORG$="N"ORG$="n":PRINTG$:IFG$="Y"ORG$="y"THENN%=TRUEELSEN%=FALSE 2380PRINT:PRINT"Do you want to set the walls on fire":PRINT"WARNING:This makes the screen _very_ hot":PRINT"(Y/N) : ";:REPEAT:G$=GET$:UNTILG$="Y"ORG$="y"ORG$="N"ORG$="n":PRINTG$:IFG$="Y"ORG$="y"THENO%=TRUEELSEO%=FALSE 2470PRINT"Size:":PRINT" 1 - Small, 2 - Large":REPEAT:G$=GET$:UNTILG$="1"ORG$="2":IFG$="1"THENm=1.5ELSEm=3.5 2550n%=64*m:f%=64*m:h%=2:e%=2:H%=320:z%=240:G%=13:ra%=9:MODEra%:OFF:Q%=f%:a=1:sa%=60:`%=(Q%>>4)/TAN(RAD(90-sa%)):qa%=((1<<10))/(`%*a):o%=64:PRINT"Assembling... ";:PROCe:PRINT"Done":FORc%=0TO15:COLOURc%,c%<<4,c%<<4,c%<<4:NEXT:IFO%THEN 2920PRINT"Which fire palette:":PRINT" 1) Standard":PRINT" 2) Predator":PRINT" 3) Yellow & Blue":PRINT" 4) Predator 2":REPEAT:G$=GET$:UNTILG$="1"ORG$="2"ORG$="3"ORG$="4":IFG$="1"p%=2 3000IFG$="2"p%=1 3010IFG$="3"p%=3 3020IFG$="4"p%=4 3021DIMX% 256:FORi%=0TO255:IFp%=1SYS"ColourTrans_ReturnColourNumberForMode",FNb(i%),G%TOc% 3050IFp%=2SYS"ColourTrans_ReturnColourNumberForMode",FNc(i%),G%TOc% 3060IFp%=3SYS"ColourTrans_ReturnColourNumberForMode",FNd(i%),G%TOc% 3070IFp%=4SYS"ColourTrans_ReturnColourNumberForMode",FNe(i%),G%TOc% 3071X%?i%=c%:NEXT 3100ENDIF 3100PRINT"Generating map...":PROCf:MODEG%:OFF 3160*screenload <Tunnel$Dir>.texture 3160PRINT"Generating texture(s)... ";:GCOL63TINT255:DIME% 256*512:DIMJ% 256*512+256:FORy%=0TO64:FORx%=0TO64:c%=POINT(x%<<h%,y%<<e%)<<2:c%+=TINT(x%<<h%,y%<<e%)>>6:SYS"ColourTrans_GCOLToColourNumber",c%TOc%:E%?(x%+(y%<<6))=c%:J%?(x%+(y%<<6))=0:NEXT 3280LINE0,y%<<e%,64<<h%,y%<<e%:NEXT:FORx%=64*64TO64*128-1STEP4:E%!x%=E%!(x%-64*64):NEXT:PRINT"Done":CLS:PRINT"Generating depth cueing... ";:PROCb(255,255,255):x%=n%<<h%:y%=f%<<e%:RECTANGLEFILL0,(z%<<e%)-y%,x%,y%:FORr%=f%/3TO0STEP-2:s%=(r%<<8)/(f%/3):s%=(s%*3)/4:s%+=63 3460PROCb(s%,s%,s%):CIRCLEFILLx%>>1,(z%<<e%)-(y%>>1),r%<<e%:NEXT:ta%=n%*f%*4:DIMw% ta%:!w%=ta%:w%!4=0:w%!8=16:w%!12=16:SYS"OS_SpriteOp",9+256,w%:MOVE0,(z%<<e%)-y%:MOVEx%-1,(z%<<e%)-1:SYS"OS_SpriteOp",14+256,w%,"back":PRINTTAB(0,1);"Press space":ENDPROC 3630 3650DEFPROCd(t%):LOCALx%:FORx%=0TOo%-1:t%?x%=RND(256)-1:NEXT:ENDPROC 3700 3720DEFFNb(i%):LOCALr%,g%,b%,l%,m%:LOCALua%,va%,wa%:IFi%<128i%=(i%<<1)ELSEi%=255 3750r%=i%:b%=255-i%:IFi%<128g%=i%<<1ELSEg%=(255-i%)<<1 3780=(r%<<8)+(g%<<16)+(b%<<24) 3810DEFFNc(i%):LOCALr%,g%,b%:IFi%<128i%=(i%<<1)ELSEi%=255 3840IFi%<128ANDi%>0r%=(i%<<1)ELSEIFi%>0r%=255ELSEr%=0 3850IFi%>0g%=((i%)<<0)ELSEg%=0 3860b%=0:=(r%<<8)+(g%<<16)+(b%<<24) 3910DEFFNd(i%):LOCALr%,g%,b%:IFi%<128i%=(i%<<1)ELSEi%=255 3940IFi%<128r%=i%<<1ELSEr%=(255-i%)<<1 3950IFi%>128b%=i%<<1ELSEb%=(255-i%)<<1 3960g%=255:=(r%<<8)+(g%<<16)+(b%<<24) 4010DEFFNe(i%):LOCALr%,g%,b%,D%:IFi%<128i%=(i%<<1)ELSEi%=255 4040IFi%<128r%=i%<<1ELSEr%=(255-i%)<<1 4050IFi%>128b%=i%<<1ELSEb%=(255-i%)<<1 4060D%=(i%<<1)AND255:IFD%<128g%=D%<<1ELSEg%=(255-D%)<<1 4071=(r%<<8)+(g%<<16)+(b%<<24) 4110DEFPROCa:SWAPU%,V%:SYS6,112,U%:SYS6,113,V%:ENDPROC 4150 4170DEFPROCb(r%,g%,b%):SYS"ColourTrans_SetGCOL",(r%<<8)+(g%<<16)+(b%<<24),,,(1<<8):ENDPROC 4190 4210DEFPROCg(x%,y%,K%,q%):c%=(K%+q%)<<1:GCOLc%>>4:POINTx%<<h%,y%<<e%:ENDPROC 4270 4290DEFPROCh(y%,q%):GCOLq%>>4:LINE0,y%<<e%,n%<<h%,y%<<e%:ENDPROC
t�>ADFS::Richard.$.Develop4.Tunnel.!Tunnel.!RunImage squished by MH's BASIC cruncher v1.30 16/9/89 On 26 Apr 1998 ��c:aa%=(H%-n%)>>1:R%=(z%-(f%-16))>>1:R%+=8:ba%=aa%+(H%*R%):S%=(H%-n%)<<(h%-1):T%=(z%-f%)<<(e%-1):�:ȗ�(1<<h%):ȗȓ0,0,63<<(3+h%),1<<e%:�0Ȝ0:a%=0:t%=0:v%=0:L%=�:�:U%=1:V%=2:�a:�:�a:�:t%+=(v%>>2):�t%>63t%-=64 ��t%<0t%+=64 �ȗM%,y%,b%:�b%=4v%+=1 �b%=1v%-=1 "�b%=2�:ȗi%,j%,k%:�k%=0:L%=�L% �v%<-50v%=-50 "�v%>50v%=50 ,$�L%M%=((31*�(�(a%)))+32)<<(3+h%) @�a%+=10:�0,0);"Velocity = ";v%;" m/s ":�0,1);"Roll = ";(90*M%)>>(9+h%);"� ":�63Ȝ255:�N%ș46,34+256,w%,"back",S%,T% |'�N%ȓȐS%,T%,(n%<<h%)-1,(f%<<e%)-1 �5A%=W%:B%=E%+(t%<<6)+(M%>>(3+h%)):C%=ba%:�ca%:�O%� �7�d(J%):A%=J%:�da%:A%=J%:B%=E%:C%=X%:�ea%:A%=E%:�fa% �� ��(0)="*"�*bc �Ȗ:�a:�0:� 0���e:�ga% 4048:x%=8:y%=9:F%=10:Y%=11:Z%=12:�I%=0�2�2:P%=ga%:[OPT I%:.ca%:STMFD13!,{0-12,14}:MOV Y%,0:MOV Z%,1:ADR0,ha%:ADR1,ia%:SWI "OS_ReadVduVariables":LDR F%,[1]:ADD F%,F%,2:MOV y%,#0:MOV5,#0:MOV6,#0:MOV1,#H%:.ja%:MOV x%,#0:.ka%:MOV2,#0: ] ���la%=0�3:s%=la%*8:[OPT I%:LDR4,[Y%,5,ASL#2]:LDRB3,[Z%,4]:�R2,2,3,LSL#s%:ADD5,5,#1: ]:�:[OPT I%:LDR4,[F%,6]:�2,2,4:STR2,[F%,6]:ADD6,6,#4:ADD x%,x%,#4:CMP x%,#(n%):BLT ka%:ADD y%,y%,#1:MUL 6,y%,1:CMP y%,#(f%):BLT ja%:LDMFD13!,{0-12,pc} ~�.fa%:STMFD13!,{0-12,14}:MOV1,0:MOV0,#0:ADD2,1,#o%*o%:.ma%:LDMIA1!,{3-10}:STMIA2!,{3-10}:ADD0,0,#8*4:CMP0,#o%*o%:BLT ma%:LDMFD13!,{0-12,pc}:.da%:STMFD13!,{0-12,14}:MOV1,#o%*o%:.na%:MOV2,#0:.oa%:LDRB3,[0,1]:SUB4,1,#o%+1:LDRB5,[0,4] ��ADD3,3,5:ADD4,4,#1:LDRB5,[0,4]:ADD3,3,5:ADD4,4,#1:LDRB5,[0,4]:ADD3,3,5:MOV3,3,LSR#2:CMP3,#1:SUBGE3,3,#1:STRB3,[0,1]:SUB1,1,#1:ADD2,2,#1:CMP2,#o%:BLT oa%:CMP1,#0:BGT na%:LDMFD13!,{0-12,pc}:.ea%:STMFD13!,{0-12,14}:MOV3,#0:.pa%:LDRB4,[0,3] �xLDRB5,[2,4]:STRB5,[1,3]:ADD3,3,#1:CMP3,#o%*o%:BLT pa%:LDMFD13!,{0-12,pc}:.ha%:EQUD148:EQUD-1:.ia%:EQUD0:EQUD0: ]:�:� � �_��f:�W% n%*f%*4:v%=0:�y%=-(f%>>1)�(f%>>1)-1:u%=0:�x%=-(n%>>1)�(n%>>1)-1:_%=�:�y%=0y%=1:_%=� �Cr%=Q%-�((x%*x%)+(y%*y%)):a%=((�(�(x%/y%))+180)*256)/360:�_%y%=0 �wq%=�a(r%):K%=(a%):�g(x%+(n%>>1),y%+(f%>>1),K%�63,q%�63):W%!((u%+(v%*n%))<<2)=(K%�63)�((q%�63)<<6):u%+=1:�:v%+=1:�:� R fݤf(x%,q%):=(q%*x%*qa%)>>10 �-ݤa(y%):�t%,d%:d%=Q%-y%:t%=(y%*`%)/d%:=t% ���c:��0:�:�" : ";�:� ���"Tunnel program (small version)":�"by Richard Wareham 1998":�:�"Do you want depth cueing?":�"WARNING:This can slow the display down by half":�"(Y/N) : ";:�:G$=�:�G$="Y"�G$="y"�G$="N"�G$="n":�G$:�G$="Y"�G$="y"�N%=��N%=� L��:�"Do you want to set the walls on fire":�"WARNING:This makes the screen _very_ hot":�"(Y/N) : ";:�:G$=�:�G$="Y"�G$="y"�G$="N"�G$="n":�G$:�G$="Y"�G$="y"�O%=��O%=� �O�"Size:":�" 1 - Small, 2 - Large":�:G$=�:�G$="1"�G$="2":�G$="1"�m=1.5�m=3.5 ��n%=64*m:f%=64*m:h%=2:e%=2:H%=320:z%=240:G%=13:ra%=9:�ra%:�:Q%=f%:a=1:sa%=60:`%=(Q%>>4)/�(�(90-sa%)):qa%=((1<<10))/(`%*a):o%=64:�"Assembling... ";:�e:�"Done":�c%=0�15:�c%,c%<<4,c%<<4,c%<<4:�:�O%� h��"Which fire palette:":�" 1) Standard":�" 2) Predator":�" 3) Yellow & Blue":�" 4) Predator 2":�:G$=�:�G$="1"�G$="2"�G$="3"�G$="4":�G$="1"p%=2 ��G$="2"p%=1 ��G$="3"p%=3 ��G$="4"p%=4 �Q�X% 256:�i%=0�255:�p%=1ș"ColourTrans_ReturnColourNumberForMode",�b(i%),G%�c% �?�p%=2ș"ColourTrans_ReturnColourNumberForMode",�c(i%),G%�c% �?�p%=3ș"ColourTrans_ReturnColourNumberForMode",�d(i%),G%�c% �?�p%=4ș"ColourTrans_ReturnColourNumberForMode",�e(i%),G%�c% �X%?i%=c%:� � !�"Generating map...":�f:�G%:� X$*screenload <Tunnel$Dir>.texture X��"Generating texture(s)... ";:�63Ȝ255:�E% 256*512:�J% 256*512+256:�y%=0�64:�x%=0�64:c%=�x%<<h%,y%<<e%)<<2:c%+=Ȝ(x%<<h%,y%<<e%)>>6:ș"ColourTrans_GCOLToColourNumber",c%�c%:E%?(x%+(y%<<6))=c%:J%?(x%+(y%<<6))=0:� ��0,y%<<e%,64<<h%,y%<<e%:�:�x%=64*64�64*128-1�4:E%!x%=E%!(x%-64*64):�:�"Done":�:�"Generating depth cueing... ";:�b(255,255,255):x%=n%<<h%:y%=f%<<e%:ȓȐ0,(z%<<e%)-y%,x%,y%:�r%=f%/3�0�-2:s%=(r%<<8)/(f%/3):s%=(s%*3)/4:s%+=63 ���b(s%,s%,s%):ȏȐx%>>1,(z%<<e%)-(y%>>1),r%<<e%:�:ta%=n%*f%*4:�w% ta%:!w%=ta%:w%!4=0:w%!8=16:w%!12=16:ș"OS_SpriteOp",9+256,w%:�0,(z%<<e%)-y%:�x%-1,(z%<<e%)-1:ș"OS_SpriteOp",14+256,w%,"back":�0,1);"Press space":� . B-��d(t%):�x%:�x%=0�o%-1:t%?x%=�(256)-1:�:� t �Aݤb(i%):�r%,g%,b%,l%,m%:�ua%,va%,wa%:�i%<128i%=(i%<<1)�i%=255 �2r%=i%:b%=255-i%:�i%<128g%=i%<<1�g%=(255-i%)<<1 �=(r%<<8)+(g%<<16)+(b%<<24) �.ݤc(i%):�r%,g%,b%:�i%<128i%=(i%<<1)�i%=255 +�i%<128�i%>0r%=(i%<<1)��i%>0r%=255�r%=0 �i%>0g%=((i%)<<0)�g%=0 #b%=0:=(r%<<8)+(g%<<16)+(b%<<24) F.ݤd(i%):�r%,g%,b%:�i%<128i%=(i%<<1)�i%=255 d"�i%<128r%=i%<<1�r%=(255-i%)<<1 n"�i%>128b%=i%<<1�b%=(255-i%)<<1 x%g%=255:=(r%<<8)+(g%<<16)+(b%<<24) �1ݤe(i%):�r%,g%,b%,D%:�i%<128i%=(i%<<1)�i%=255 �"�i%<128r%=i%<<1�r%=(255-i%)<<1 �"�i%>128b%=i%<<1�b%=(255-i%)<<1 �1D%=(i%<<1)�255:�D%<128g%=D%<<1�g%=(255-D%)<<1 �=(r%<<8)+(g%<<16)+(b%<<24) '��a:ȔU%,V%:ș6,112,U%:ș6,113,V%:� 6 JN��b(r%,g%,b%):ș"ColourTrans_SetGCOL",(r%<<8)+(g%<<16)+(b%<<24),,,(1<<8):� ^ r;��g(x%,y%,K%,q%):c%=(K%+q%)<<1:�c%>>4:Ȓx%<<h%,y%<<e%:� � �/��h(y%,q%):�q%>>4:�0,y%<<e%,n%<<h%,y%<<e%:� �
00000000 0d 00 01 74 f4 3e 41 44 46 53 3a 3a 52 69 63 68 |...t.>ADFS::Rich| 00000010 61 72 64 2e 24 2e 44 65 76 65 6c 6f 70 34 2e 54 |ard.$.Develop4.T| 00000020 75 6e 6e 65 6c 2e 21 54 75 6e 6e 65 6c 2e 21 52 |unnel.!Tunnel.!R| 00000030 75 6e 49 6d 61 67 65 20 73 71 75 69 73 68 65 64 |unImage squished| 00000040 20 62 79 20 4d 48 27 73 20 42 41 53 49 43 20 63 | by MH's BASIC c| 00000050 72 75 6e 63 68 65 72 20 76 31 2e 33 30 20 31 36 |runcher v1.30 16| 00000060 2f 39 2f 38 39 20 4f 6e 20 32 36 20 41 70 72 20 |/9/89 On 26 Apr | 00000070 31 39 39 38 0d 00 02 d3 f2 63 3a 61 61 25 3d 28 |1998.....c:aa%=(| 00000080 48 25 2d 6e 25 29 3e 3e 31 3a 52 25 3d 28 7a 25 |H%-n%)>>1:R%=(z%| 00000090 2d 28 66 25 2d 31 36 29 29 3e 3e 31 3a 52 25 2b |-(f%-16))>>1:R%+| 000000a0 3d 38 3a 62 61 25 3d 61 61 25 2b 28 48 25 2a 52 |=8:ba%=aa%+(H%*R| 000000b0 25 29 3a 53 25 3d 28 48 25 2d 6e 25 29 3c 3c 28 |%):S%=(H%-n%)<<(| 000000c0 68 25 2d 31 29 3a 54 25 3d 28 7a 25 2d 66 25 29 |h%-1):T%=(z%-f%)| 000000d0 3c 3c 28 65 25 2d 31 29 3a db 3a c8 97 88 28 31 |<<(e%-1):.:...(1| 000000e0 3c 3c 68 25 29 3a c8 97 c8 93 30 2c 30 2c 36 33 |<<h%):....0,0,63| 000000f0 3c 3c 28 33 2b 68 25 29 2c 31 3c 3c 65 25 3a e6 |<<(3+h%),1<<e%:.| 00000100 30 c8 9c 30 3a 61 25 3d 30 3a 74 25 3d 30 3a 76 |0..0:a%=0:t%=0:v| 00000110 25 3d 30 3a 4c 25 3d a3 3a db 3a 55 25 3d 31 3a |%=0:L%=.:.:U%=1:| 00000120 56 25 3d 32 3a f2 61 3a db 3a f2 61 3a f5 3a 74 |V%=2:.a:.:.a:.:t| 00000130 25 2b 3d 28 76 25 3e 3e 32 29 3a e7 74 25 3e 36 |%+=(v%>>2):.t%>6| 00000140 33 74 25 2d 3d 36 34 0d 00 e6 0f e7 74 25 3c 30 |3t%-=64.....t%<0| 00000150 74 25 2b 3d 36 34 0d 00 f0 19 c8 97 4d 25 2c 79 |t%+=64......M%,y| 00000160 25 2c 62 25 3a e7 62 25 3d 34 76 25 2b 3d 31 0d |%,b%:.b%=4v%+=1.| 00000170 01 04 0e e7 62 25 3d 31 76 25 2d 3d 31 0d 01 0e |....b%=1v%-=1...| 00000180 22 e7 62 25 3d 32 f5 3a c8 97 69 25 2c 6a 25 2c |".b%=2.:..i%,j%,| 00000190 6b 25 3a fd 6b 25 3d 30 3a 4c 25 3d ac 4c 25 0d |k%:.k%=0:L%=.L%.| 000001a0 01 18 11 e7 76 25 3c 2d 35 30 76 25 3d 2d 35 30 |....v%<-50v%=-50| 000001b0 0d 01 22 0f e7 76 25 3e 35 30 76 25 3d 35 30 0d |.."..v%>50v%=50.| 000001c0 01 2c 24 e7 4c 25 4d 25 3d 28 28 33 31 2a b5 28 |.,$.L%M%=((31*.(| 000001d0 b2 28 61 25 29 29 29 2b 33 32 29 3c 3c 28 33 2b |.(a%)))+32)<<(3+| 000001e0 68 25 29 0d 01 40 83 61 25 2b 3d 31 30 3a f1 8a |h%)..@.a%+=10:..| 000001f0 30 2c 30 29 3b 22 56 65 6c 6f 63 69 74 79 20 3d |0,0);"Velocity =| 00000200 20 22 3b 76 25 3b 22 20 6d 2f 73 20 20 20 20 20 | ";v%;" m/s | 00000210 22 3a f1 8a 30 2c 31 29 3b 22 52 6f 6c 6c 20 20 |":..0,1);"Roll | 00000220 20 20 20 3d 20 22 3b 28 39 30 2a 4d 25 29 3e 3e | = ";(90*M%)>>| 00000230 28 39 2b 68 25 29 3b 22 b0 20 20 20 20 22 3a e6 |(9+h%);". ":.| 00000240 36 33 c8 9c 32 35 35 3a e7 4e 25 c8 99 34 36 2c |63..255:.N%..46,| 00000250 33 34 2b 32 35 36 2c 77 25 2c 22 62 61 63 6b 22 |34+256,w%,"back"| 00000260 2c 53 25 2c 54 25 0d 01 7c 27 e7 ac 4e 25 c8 93 |,S%,T%..|'..N%..| 00000270 c8 90 53 25 2c 54 25 2c 28 6e 25 3c 3c 68 25 29 |..S%,T%,(n%<<h%)| 00000280 2d 31 2c 28 66 25 3c 3c 65 25 29 2d 31 0d 01 86 |-1,(f%<<e%)-1...| 00000290 35 41 25 3d 57 25 3a 42 25 3d 45 25 2b 28 74 25 |5A%=W%:B%=E%+(t%| 000002a0 3c 3c 36 29 2b 28 4d 25 3e 3e 28 33 2b 68 25 29 |<<6)+(M%>>(3+h%)| 000002b0 29 3a 43 25 3d 62 61 25 3a d6 63 61 25 3a e7 4f |):C%=ba%:.ca%:.O| 000002c0 25 8c 0d 01 a4 37 f2 64 28 4a 25 29 3a 41 25 3d |%....7.d(J%):A%=| 000002d0 4a 25 3a d6 64 61 25 3a 41 25 3d 4a 25 3a 42 25 |J%:.da%:A%=J%:B%| 000002e0 3d 45 25 3a 43 25 3d 58 25 3a d6 65 61 25 3a 41 |=E%:C%=X%:.ea%:A| 000002f0 25 3d 45 25 3a d6 66 61 25 0d 01 f4 05 cd 0d 01 |%=E%:.fa%.......| 00000300 f4 11 e7 bf 28 30 29 3d 22 2a 22 8c 2a 62 63 0d |....(0)="*".*bc.| 00000310 01 fe 0e c8 96 3a f2 61 3a fd 30 3a e0 0d 02 1c |.....:.a:.0:....| 00000320 04 0d 02 30 f5 dd f2 65 3a de 67 61 25 20 34 30 |...0...e:.ga% 40| 00000330 34 38 3a 78 25 3d 38 3a 79 25 3d 39 3a 46 25 3d |48:x%=8:y%=9:F%=| 00000340 31 30 3a 59 25 3d 31 31 3a 5a 25 3d 31 32 3a e3 |10:Y%=11:Z%=12:.| 00000350 49 25 3d 30 b8 32 88 32 3a 50 25 3d 67 61 25 3a |I%=0.2.2:P%=ga%:| 00000360 5b 4f 50 54 20 49 25 3a 2e 63 61 25 3a 53 54 4d |[OPT I%:.ca%:STM| 00000370 46 44 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d 3a |FD13!,{0-12,14}:| 00000380 4d 4f 56 20 59 25 2c 30 3a 4d 4f 56 20 5a 25 2c |MOV Y%,0:MOV Z%,| 00000390 31 3a 41 44 52 30 2c 68 61 25 3a 41 44 52 31 2c |1:ADR0,ha%:ADR1,| 000003a0 69 61 25 3a 53 57 49 20 22 4f 53 5f 52 65 61 64 |ia%:SWI "OS_Read| 000003b0 56 64 75 56 61 72 69 61 62 6c 65 73 22 3a 4c 44 |VduVariables":LD| 000003c0 52 20 46 25 2c 5b 31 5d 3a 41 44 44 20 46 25 2c |R F%,[1]:ADD F%,| 000003d0 46 25 2c 32 3a 4d 4f 56 20 79 25 2c 23 30 3a 4d |F%,2:MOV y%,#0:M| 000003e0 4f 56 35 2c 23 30 3a 4d 4f 56 36 2c 23 30 3a 4d |OV5,#0:MOV6,#0:M| 000003f0 4f 56 31 2c 23 48 25 3a 2e 6a 61 25 3a 4d 4f 56 |OV1,#H%:.ja%:MOV| 00000400 20 78 25 2c 23 30 3a 2e 6b 61 25 3a 4d 4f 56 32 | x%,#0:.ka%:MOV2| 00000410 2c 23 30 3a 20 5d 0d 03 84 ed e3 6c 61 25 3d 30 |,#0: ].....la%=0| 00000420 b8 33 3a 73 25 3d 6c 61 25 2a 38 3a 5b 4f 50 54 |.3:s%=la%*8:[OPT| 00000430 20 49 25 3a 4c 44 52 34 2c 5b 59 25 2c 35 2c 41 | I%:LDR4,[Y%,5,A| 00000440 53 4c 23 32 5d 3a 4c 44 52 42 33 2c 5b 5a 25 2c |SL#2]:LDRB3,[Z%,| 00000450 34 5d 3a 84 52 32 2c 32 2c 33 2c 4c 53 4c 23 73 |4]:.R2,2,3,LSL#s| 00000460 25 3a 41 44 44 35 2c 35 2c 23 31 3a 20 5d 3a ed |%:ADD5,5,#1: ]:.| 00000470 3a 5b 4f 50 54 20 49 25 3a 4c 44 52 34 2c 5b 46 |:[OPT I%:LDR4,[F| 00000480 25 2c 36 5d 3a 80 32 2c 32 2c 34 3a 53 54 52 32 |%,6]:.2,2,4:STR2| 00000490 2c 5b 46 25 2c 36 5d 3a 41 44 44 36 2c 36 2c 23 |,[F%,6]:ADD6,6,#| 000004a0 34 3a 41 44 44 20 78 25 2c 78 25 2c 23 34 3a 43 |4:ADD x%,x%,#4:C| 000004b0 4d 50 20 78 25 2c 23 28 6e 25 29 3a 42 4c 54 20 |MP x%,#(n%):BLT | 000004c0 6b 61 25 3a 41 44 44 20 79 25 2c 79 25 2c 23 31 |ka%:ADD y%,y%,#1| 000004d0 3a 4d 55 4c 20 36 2c 79 25 2c 31 3a 43 4d 50 20 |:MUL 6,y%,1:CMP | 000004e0 79 25 2c 23 28 66 25 29 3a 42 4c 54 20 6a 61 25 |y%,#(f%):BLT ja%| 000004f0 3a 4c 44 4d 46 44 31 33 21 2c 7b 30 2d 31 32 2c |:LDMFD13!,{0-12,| 00000500 70 63 7d 0d 04 7e e9 2e 66 61 25 3a 53 54 4d 46 |pc}..~..fa%:STMF| 00000510 44 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d 3a 4d |D13!,{0-12,14}:M| 00000520 4f 56 31 2c 30 3a 4d 4f 56 30 2c 23 30 3a 41 44 |OV1,0:MOV0,#0:AD| 00000530 44 32 2c 31 2c 23 6f 25 2a 6f 25 3a 2e 6d 61 25 |D2,1,#o%*o%:.ma%| 00000540 3a 4c 44 4d 49 41 31 21 2c 7b 33 2d 31 30 7d 3a |:LDMIA1!,{3-10}:| 00000550 53 54 4d 49 41 32 21 2c 7b 33 2d 31 30 7d 3a 41 |STMIA2!,{3-10}:A| 00000560 44 44 30 2c 30 2c 23 38 2a 34 3a 43 4d 50 30 2c |DD0,0,#8*4:CMP0,| 00000570 23 6f 25 2a 6f 25 3a 42 4c 54 20 6d 61 25 3a 4c |#o%*o%:BLT ma%:L| 00000580 44 4d 46 44 31 33 21 2c 7b 30 2d 31 32 2c 70 63 |DMFD13!,{0-12,pc| 00000590 7d 3a 2e 64 61 25 3a 53 54 4d 46 44 31 33 21 2c |}:.da%:STMFD13!,| 000005a0 7b 30 2d 31 32 2c 31 34 7d 3a 4d 4f 56 31 2c 23 |{0-12,14}:MOV1,#| 000005b0 6f 25 2a 6f 25 3a 2e 6e 61 25 3a 4d 4f 56 32 2c |o%*o%:.na%:MOV2,| 000005c0 23 30 3a 2e 6f 61 25 3a 4c 44 52 42 33 2c 5b 30 |#0:.oa%:LDRB3,[0| 000005d0 2c 31 5d 3a 53 55 42 34 2c 31 2c 23 6f 25 2b 31 |,1]:SUB4,1,#o%+1| 000005e0 3a 4c 44 52 42 35 2c 5b 30 2c 34 5d 0d 05 aa f0 |:LDRB5,[0,4]....| 000005f0 41 44 44 33 2c 33 2c 35 3a 41 44 44 34 2c 34 2c |ADD3,3,5:ADD4,4,| 00000600 23 31 3a 4c 44 52 42 35 2c 5b 30 2c 34 5d 3a 41 |#1:LDRB5,[0,4]:A| 00000610 44 44 33 2c 33 2c 35 3a 41 44 44 34 2c 34 2c 23 |DD3,3,5:ADD4,4,#| 00000620 31 3a 4c 44 52 42 35 2c 5b 30 2c 34 5d 3a 41 44 |1:LDRB5,[0,4]:AD| 00000630 44 33 2c 33 2c 35 3a 4d 4f 56 33 2c 33 2c 4c 53 |D3,3,5:MOV3,3,LS| 00000640 52 23 32 3a 43 4d 50 33 2c 23 31 3a 53 55 42 47 |R#2:CMP3,#1:SUBG| 00000650 45 33 2c 33 2c 23 31 3a 53 54 52 42 33 2c 5b 30 |E3,3,#1:STRB3,[0| 00000660 2c 31 5d 3a 53 55 42 31 2c 31 2c 23 31 3a 41 44 |,1]:SUB1,1,#1:AD| 00000670 44 32 2c 32 2c 23 31 3a 43 4d 50 32 2c 23 6f 25 |D2,2,#1:CMP2,#o%| 00000680 3a 42 4c 54 20 6f 61 25 3a 43 4d 50 31 2c 23 30 |:BLT oa%:CMP1,#0| 00000690 3a 42 47 54 20 6e 61 25 3a 4c 44 4d 46 44 31 33 |:BGT na%:LDMFD13| 000006a0 21 2c 7b 30 2d 31 32 2c 70 63 7d 3a 2e 65 61 25 |!,{0-12,pc}:.ea%| 000006b0 3a 53 54 4d 46 44 31 33 21 2c 7b 30 2d 31 32 2c |:STMFD13!,{0-12,| 000006c0 31 34 7d 3a 4d 4f 56 33 2c 23 30 3a 2e 70 61 25 |14}:MOV3,#0:.pa%| 000006d0 3a 4c 44 52 42 34 2c 5b 30 2c 33 5d 0d 06 ea 78 |:LDRB4,[0,3]...x| 000006e0 4c 44 52 42 35 2c 5b 32 2c 34 5d 3a 53 54 52 42 |LDRB5,[2,4]:STRB| 000006f0 35 2c 5b 31 2c 33 5d 3a 41 44 44 33 2c 33 2c 23 |5,[1,3]:ADD3,3,#| 00000700 31 3a 43 4d 50 33 2c 23 6f 25 2a 6f 25 3a 42 4c |1:CMP3,#o%*o%:BL| 00000710 54 20 70 61 25 3a 4c 44 4d 46 44 31 33 21 2c 7b |T pa%:LDMFD13!,{| 00000720 30 2d 31 32 2c 70 63 7d 3a 2e 68 61 25 3a 45 51 |0-12,pc}:.ha%:EQ| 00000730 55 44 31 34 38 3a 45 51 55 44 2d 31 3a 2e 69 61 |UD148:EQUD-1:.ia| 00000740 25 3a 45 51 55 44 30 3a 45 51 55 44 30 3a 20 5d |%:EQUD0:EQUD0: ]| 00000750 3a ed 3a e1 0d 07 80 04 0d 07 94 5f dd f2 66 3a |:.:........_..f:| 00000760 de 57 25 20 6e 25 2a 66 25 2a 34 3a 76 25 3d 30 |.W% n%*f%*4:v%=0| 00000770 3a e3 79 25 3d 2d 28 66 25 3e 3e 31 29 b8 28 66 |:.y%=-(f%>>1).(f| 00000780 25 3e 3e 31 29 2d 31 3a 75 25 3d 30 3a e3 78 25 |%>>1)-1:u%=0:.x%| 00000790 3d 2d 28 6e 25 3e 3e 31 29 b8 28 6e 25 3e 3e 31 |=-(n%>>1).(n%>>1| 000007a0 29 2d 31 3a 5f 25 3d a3 3a e7 79 25 3d 30 79 25 |)-1:_%=.:.y%=0y%| 000007b0 3d 31 3a 5f 25 3d b9 0d 07 da 43 72 25 3d 51 25 |=1:_%=....Cr%=Q%| 000007c0 2d b6 28 28 78 25 2a 78 25 29 2b 28 79 25 2a 79 |-.((x%*x%)+(y%*y| 000007d0 25 29 29 3a 61 25 3d 28 28 9d 28 99 28 78 25 2f |%)):a%=((.(.(x%/| 000007e0 79 25 29 29 2b 31 38 30 29 2a 32 35 36 29 2f 33 |y%))+180)*256)/3| 000007f0 36 30 3a e7 5f 25 79 25 3d 30 0d 07 f8 77 71 25 |60:._%y%=0...wq%| 00000800 3d a4 61 28 72 25 29 3a 4b 25 3d 28 61 25 29 3a |=.a(r%):K%=(a%):| 00000810 f2 67 28 78 25 2b 28 6e 25 3e 3e 31 29 2c 79 25 |.g(x%+(n%>>1),y%| 00000820 2b 28 66 25 3e 3e 31 29 2c 4b 25 80 36 33 2c 71 |+(f%>>1),K%.63,q| 00000830 25 80 36 33 29 3a 57 25 21 28 28 75 25 2b 28 76 |%.63):W%!((u%+(v| 00000840 25 2a 6e 25 29 29 3c 3c 32 29 3d 28 4b 25 80 36 |%*n%))<<2)=(K%.6| 00000850 33 29 84 28 28 71 25 80 36 33 29 3c 3c 36 29 3a |3).((q%.63)<<6):| 00000860 75 25 2b 3d 31 3a ed 3a 76 25 2b 3d 31 3a ed 3a |u%+=1:.:v%+=1:.:| 00000870 e1 0d 08 52 04 0d 08 66 1f dd a4 66 28 78 25 2c |...R...f...f(x%,| 00000880 71 25 29 3a 3d 28 71 25 2a 78 25 2a 71 61 25 29 |q%):=(q%*x%*qa%)| 00000890 3e 3e 31 30 0d 08 84 2d dd a4 61 28 79 25 29 3a |>>10...-..a(y%):| 000008a0 ea 74 25 2c 64 25 3a 64 25 3d 51 25 2d 79 25 3a |.t%,d%:d%=Q%-y%:| 000008b0 74 25 3d 28 79 25 2a 60 25 29 2f 64 25 3a 3d 74 |t%=(y%*`%)/d%:=t| 000008c0 25 0d 08 c0 19 dd f2 63 3a ee 85 eb 30 3a f6 3a |%......c:...0:.:| 000008d0 f1 22 20 3a 20 22 3b 9e 3a e0 0d 08 d4 df f1 22 |." : ";.:......"| 000008e0 54 75 6e 6e 65 6c 20 70 72 6f 67 72 61 6d 20 28 |Tunnel program (| 000008f0 73 6d 61 6c 6c 20 76 65 72 73 69 6f 6e 29 22 3a |small version)":| 00000900 f1 22 62 79 20 52 69 63 68 61 72 64 20 57 61 72 |."by Richard War| 00000910 65 68 61 6d 20 31 39 39 38 22 3a f1 3a f1 22 44 |eham 1998":.:."D| 00000920 6f 20 79 6f 75 20 77 61 6e 74 20 64 65 70 74 68 |o you want depth| 00000930 20 63 75 65 69 6e 67 3f 22 3a f1 22 57 41 52 4e | cueing?":."WARN| 00000940 49 4e 47 3a 54 68 69 73 20 63 61 6e 20 73 6c 6f |ING:This can slo| 00000950 77 20 74 68 65 20 64 69 73 70 6c 61 79 20 64 6f |w the display do| 00000960 77 6e 20 62 79 20 68 61 6c 66 22 3a f1 22 28 59 |wn by half":."(Y| 00000970 2f 4e 29 20 3a 20 22 3b 3a f5 3a 47 24 3d be 3a |/N) : ";:.:G$=.:| 00000980 fd 47 24 3d 22 59 22 84 47 24 3d 22 79 22 84 47 |.G$="Y".G$="y".G| 00000990 24 3d 22 4e 22 84 47 24 3d 22 6e 22 3a f1 47 24 |$="N".G$="n":.G$| 000009a0 3a e7 47 24 3d 22 59 22 84 47 24 3d 22 79 22 8c |:.G$="Y".G$="y".| 000009b0 4e 25 3d b9 8b 4e 25 3d a3 0d 09 4c a7 f1 3a f1 |N%=..N%=...L..:.| 000009c0 22 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 |"Do you want to | 000009d0 73 65 74 20 74 68 65 20 77 61 6c 6c 73 20 6f 6e |set the walls on| 000009e0 20 66 69 72 65 22 3a f1 22 57 41 52 4e 49 4e 47 | fire":."WARNING| 000009f0 3a 54 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 |:This makes the | 00000a00 73 63 72 65 65 6e 20 5f 76 65 72 79 5f 20 68 6f |screen _very_ ho| 00000a10 74 22 3a f1 22 28 59 2f 4e 29 20 3a 20 22 3b 3a |t":."(Y/N) : ";:| 00000a20 f5 3a 47 24 3d be 3a fd 47 24 3d 22 59 22 84 47 |.:G$=.:.G$="Y".G| 00000a30 24 3d 22 79 22 84 47 24 3d 22 4e 22 84 47 24 3d |$="y".G$="N".G$=| 00000a40 22 6e 22 3a f1 47 24 3a e7 47 24 3d 22 59 22 84 |"n":.G$:.G$="Y".| 00000a50 47 24 3d 22 79 22 8c 4f 25 3d b9 8b 4f 25 3d a3 |G$="y".O%=..O%=.| 00000a60 0d 09 a6 4f f1 22 53 69 7a 65 3a 22 3a f1 22 20 |...O."Size:":." | 00000a70 31 20 2d 20 53 6d 61 6c 6c 2c 20 32 20 2d 20 4c |1 - Small, 2 - L| 00000a80 61 72 67 65 22 3a f5 3a 47 24 3d be 3a fd 47 24 |arge":.:G$=.:.G$| 00000a90 3d 22 31 22 84 47 24 3d 22 32 22 3a e7 47 24 3d |="1".G$="2":.G$=| 00000aa0 22 31 22 8c 6d 3d 31 2e 35 8b 6d 3d 33 2e 35 0d |"1".m=1.5.m=3.5.| 00000ab0 09 f6 c6 6e 25 3d 36 34 2a 6d 3a 66 25 3d 36 34 |...n%=64*m:f%=64| 00000ac0 2a 6d 3a 68 25 3d 32 3a 65 25 3d 32 3a 48 25 3d |*m:h%=2:e%=2:H%=| 00000ad0 33 32 30 3a 7a 25 3d 32 34 30 3a 47 25 3d 31 33 |320:z%=240:G%=13| 00000ae0 3a 72 61 25 3d 39 3a eb 72 61 25 3a 87 3a 51 25 |:ra%=9:.ra%:.:Q%| 00000af0 3d 66 25 3a 61 3d 31 3a 73 61 25 3d 36 30 3a 60 |=f%:a=1:sa%=60:`| 00000b00 25 3d 28 51 25 3e 3e 34 29 2f b7 28 b2 28 39 30 |%=(Q%>>4)/.(.(90| 00000b10 2d 73 61 25 29 29 3a 71 61 25 3d 28 28 31 3c 3c |-sa%)):qa%=((1<<| 00000b20 31 30 29 29 2f 28 60 25 2a 61 29 3a 6f 25 3d 36 |10))/(`%*a):o%=6| 00000b30 34 3a f1 22 41 73 73 65 6d 62 6c 69 6e 67 2e 2e |4:."Assembling..| 00000b40 2e 20 22 3b 3a f2 65 3a f1 22 44 6f 6e 65 22 3a |. ";:.e:."Done":| 00000b50 e3 63 25 3d 30 b8 31 35 3a fb 63 25 2c 63 25 3c |.c%=0.15:.c%,c%<| 00000b60 3c 34 2c 63 25 3c 3c 34 2c 63 25 3c 3c 34 3a ed |<4,c%<<4,c%<<4:.| 00000b70 3a e7 4f 25 8c 0d 0b 68 91 f1 22 57 68 69 63 68 |:.O%...h.."Which| 00000b80 20 66 69 72 65 20 70 61 6c 65 74 74 65 3a 22 3a | fire palette:":| 00000b90 f1 22 20 31 29 20 53 74 61 6e 64 61 72 64 22 3a |." 1) Standard":| 00000ba0 f1 22 20 32 29 20 50 72 65 64 61 74 6f 72 22 3a |." 2) Predator":| 00000bb0 f1 22 20 33 29 20 59 65 6c 6c 6f 77 20 26 20 42 |." 3) Yellow & B| 00000bc0 6c 75 65 22 3a f1 22 20 34 29 20 50 72 65 64 61 |lue":." 4) Preda| 00000bd0 74 6f 72 20 32 22 3a f5 3a 47 24 3d be 3a fd 47 |tor 2":.:G$=.:.G| 00000be0 24 3d 22 31 22 84 47 24 3d 22 32 22 84 47 24 3d |$="1".G$="2".G$=| 00000bf0 22 33 22 84 47 24 3d 22 34 22 3a e7 47 24 3d 22 |"3".G$="4":.G$="| 00000c00 31 22 70 25 3d 32 0d 0b b8 0f e7 47 24 3d 22 32 |1"p%=2.....G$="2| 00000c10 22 70 25 3d 31 0d 0b c2 0f e7 47 24 3d 22 33 22 |"p%=1.....G$="3"| 00000c20 70 25 3d 33 0d 0b cc 0f e7 47 24 3d 22 34 22 70 |p%=3.....G$="4"p| 00000c30 25 3d 34 0d 0b cd 51 de 58 25 20 32 35 36 3a e3 |%=4...Q.X% 256:.| 00000c40 69 25 3d 30 b8 32 35 35 3a e7 70 25 3d 31 c8 99 |i%=0.255:.p%=1..| 00000c50 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 |"ColourTrans_Ret| 00000c60 75 72 6e 43 6f 6c 6f 75 72 4e 75 6d 62 65 72 46 |urnColourNumberF| 00000c70 6f 72 4d 6f 64 65 22 2c a4 62 28 69 25 29 2c 47 |orMode",.b(i%),G| 00000c80 25 b8 63 25 0d 0b ea 3f e7 70 25 3d 32 c8 99 22 |%.c%...?.p%=2.."| 00000c90 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 75 |ColourTrans_Retu| 00000ca0 72 6e 43 6f 6c 6f 75 72 4e 75 6d 62 65 72 46 6f |rnColourNumberFo| 00000cb0 72 4d 6f 64 65 22 2c a4 63 28 69 25 29 2c 47 25 |rMode",.c(i%),G%| 00000cc0 b8 63 25 0d 0b f4 3f e7 70 25 3d 33 c8 99 22 43 |.c%...?.p%=3.."C| 00000cd0 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 75 72 |olourTrans_Retur| 00000ce0 6e 43 6f 6c 6f 75 72 4e 75 6d 62 65 72 46 6f 72 |nColourNumberFor| 00000cf0 4d 6f 64 65 22 2c a4 64 28 69 25 29 2c 47 25 b8 |Mode",.d(i%),G%.| 00000d00 63 25 0d 0b fe 3f e7 70 25 3d 34 c8 99 22 43 6f |c%...?.p%=4.."Co| 00000d10 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 75 72 6e |lourTrans_Return| 00000d20 43 6f 6c 6f 75 72 4e 75 6d 62 65 72 46 6f 72 4d |ColourNumberForM| 00000d30 6f 64 65 22 2c a4 65 28 69 25 29 2c 47 25 b8 63 |ode",.e(i%),G%.c| 00000d40 25 0d 0b ff 0e 58 25 3f 69 25 3d 63 25 3a ed 0d |%....X%?i%=c%:..| 00000d50 0c 1c 05 cd 0d 0c 1c 21 f1 22 47 65 6e 65 72 61 |.......!."Genera| 00000d60 74 69 6e 67 20 6d 61 70 2e 2e 2e 22 3a f2 66 3a |ting map...":.f:| 00000d70 eb 47 25 3a 87 0d 0c 58 24 2a 73 63 72 65 65 6e |.G%:...X$*screen| 00000d80 6c 6f 61 64 20 3c 54 75 6e 6e 65 6c 24 44 69 72 |load <Tunnel$Dir| 00000d90 3e 2e 74 65 78 74 75 72 65 0d 0c 58 d7 f1 22 47 |>.texture..X.."G| 00000da0 65 6e 65 72 61 74 69 6e 67 20 74 65 78 74 75 72 |enerating textur| 00000db0 65 28 73 29 2e 2e 2e 20 22 3b 3a e6 36 33 c8 9c |e(s)... ";:.63..| 00000dc0 32 35 35 3a de 45 25 20 32 35 36 2a 35 31 32 3a |255:.E% 256*512:| 00000dd0 de 4a 25 20 32 35 36 2a 35 31 32 2b 32 35 36 3a |.J% 256*512+256:| 00000de0 e3 79 25 3d 30 b8 36 34 3a e3 78 25 3d 30 b8 36 |.y%=0.64:.x%=0.6| 00000df0 34 3a 63 25 3d b0 78 25 3c 3c 68 25 2c 79 25 3c |4:c%=.x%<<h%,y%<| 00000e00 3c 65 25 29 3c 3c 32 3a 63 25 2b 3d c8 9c 28 78 |<e%)<<2:c%+=..(x| 00000e10 25 3c 3c 68 25 2c 79 25 3c 3c 65 25 29 3e 3e 36 |%<<h%,y%<<e%)>>6| 00000e20 3a c8 99 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f |:.."ColourTrans_| 00000e30 47 43 4f 4c 54 6f 43 6f 6c 6f 75 72 4e 75 6d 62 |GCOLToColourNumb| 00000e40 65 72 22 2c 63 25 b8 63 25 3a 45 25 3f 28 78 25 |er",c%.c%:E%?(x%| 00000e50 2b 28 79 25 3c 3c 36 29 29 3d 63 25 3a 4a 25 3f |+(y%<<6))=c%:J%?| 00000e60 28 78 25 2b 28 79 25 3c 3c 36 29 29 3d 30 3a ed |(x%+(y%<<6))=0:.| 00000e70 0d 0c d0 e1 86 30 2c 79 25 3c 3c 65 25 2c 36 34 |.....0,y%<<e%,64| 00000e80 3c 3c 68 25 2c 79 25 3c 3c 65 25 3a ed 3a e3 78 |<<h%,y%<<e%:.:.x| 00000e90 25 3d 36 34 2a 36 34 b8 36 34 2a 31 32 38 2d 31 |%=64*64.64*128-1| 00000ea0 88 34 3a 45 25 21 78 25 3d 45 25 21 28 78 25 2d |.4:E%!x%=E%!(x%-| 00000eb0 36 34 2a 36 34 29 3a ed 3a f1 22 44 6f 6e 65 22 |64*64):.:."Done"| 00000ec0 3a db 3a f1 22 47 65 6e 65 72 61 74 69 6e 67 20 |:.:."Generating | 00000ed0 64 65 70 74 68 20 63 75 65 69 6e 67 2e 2e 2e 20 |depth cueing... | 00000ee0 22 3b 3a f2 62 28 32 35 35 2c 32 35 35 2c 32 35 |";:.b(255,255,25| 00000ef0 35 29 3a 78 25 3d 6e 25 3c 3c 68 25 3a 79 25 3d |5):x%=n%<<h%:y%=| 00000f00 66 25 3c 3c 65 25 3a c8 93 c8 90 30 2c 28 7a 25 |f%<<e%:....0,(z%| 00000f10 3c 3c 65 25 29 2d 79 25 2c 78 25 2c 79 25 3a e3 |<<e%)-y%,x%,y%:.| 00000f20 72 25 3d 66 25 2f 33 b8 30 88 2d 32 3a 73 25 3d |r%=f%/3.0.-2:s%=| 00000f30 28 72 25 3c 3c 38 29 2f 28 66 25 2f 33 29 3a 73 |(r%<<8)/(f%/3):s| 00000f40 25 3d 28 73 25 2a 33 29 2f 34 3a 73 25 2b 3d 36 |%=(s%*3)/4:s%+=6| 00000f50 33 0d 0d 84 d9 f2 62 28 73 25 2c 73 25 2c 73 25 |3.....b(s%,s%,s%| 00000f60 29 3a c8 8f c8 90 78 25 3e 3e 31 2c 28 7a 25 3c |):....x%>>1,(z%<| 00000f70 3c 65 25 29 2d 28 79 25 3e 3e 31 29 2c 72 25 3c |<e%)-(y%>>1),r%<| 00000f80 3c 65 25 3a ed 3a 74 61 25 3d 6e 25 2a 66 25 2a |<e%:.:ta%=n%*f%*| 00000f90 34 3a de 77 25 20 74 61 25 3a 21 77 25 3d 74 61 |4:.w% ta%:!w%=ta| 00000fa0 25 3a 77 25 21 34 3d 30 3a 77 25 21 38 3d 31 36 |%:w%!4=0:w%!8=16| 00000fb0 3a 77 25 21 31 32 3d 31 36 3a c8 99 22 4f 53 5f |:w%!12=16:.."OS_| 00000fc0 53 70 72 69 74 65 4f 70 22 2c 39 2b 32 35 36 2c |SpriteOp",9+256,| 00000fd0 77 25 3a ec 30 2c 28 7a 25 3c 3c 65 25 29 2d 79 |w%:.0,(z%<<e%)-y| 00000fe0 25 3a ec 78 25 2d 31 2c 28 7a 25 3c 3c 65 25 29 |%:.x%-1,(z%<<e%)| 00000ff0 2d 31 3a c8 99 22 4f 53 5f 53 70 72 69 74 65 4f |-1:.."OS_SpriteO| 00001000 70 22 2c 31 34 2b 32 35 36 2c 77 25 2c 22 62 61 |p",14+256,w%,"ba| 00001010 63 6b 22 3a f1 8a 30 2c 31 29 3b 22 50 72 65 73 |ck":..0,1);"Pres| 00001020 73 20 73 70 61 63 65 22 3a e1 0d 0e 2e 04 0d 0e |s space":.......| 00001030 42 2d dd f2 64 28 74 25 29 3a ea 78 25 3a e3 78 |B-..d(t%):.x%:.x| 00001040 25 3d 30 b8 6f 25 2d 31 3a 74 25 3f 78 25 3d b3 |%=0.o%-1:t%?x%=.| 00001050 28 32 35 36 29 2d 31 3a ed 3a e1 0d 0e 74 04 0d |(256)-1:.:...t..| 00001060 0e 88 41 dd a4 62 28 69 25 29 3a ea 72 25 2c 67 |..A..b(i%):.r%,g| 00001070 25 2c 62 25 2c 6c 25 2c 6d 25 3a ea 75 61 25 2c |%,b%,l%,m%:.ua%,| 00001080 76 61 25 2c 77 61 25 3a e7 69 25 3c 31 32 38 69 |va%,wa%:.i%<128i| 00001090 25 3d 28 69 25 3c 3c 31 29 8b 69 25 3d 32 35 35 |%=(i%<<1).i%=255| 000010a0 0d 0e a6 32 72 25 3d 69 25 3a 62 25 3d 32 35 35 |...2r%=i%:b%=255| 000010b0 2d 69 25 3a e7 69 25 3c 31 32 38 67 25 3d 69 25 |-i%:.i%<128g%=i%| 000010c0 3c 3c 31 8b 67 25 3d 28 32 35 35 2d 69 25 29 3c |<<1.g%=(255-i%)<| 000010d0 3c 31 0d 0e c4 1e 3d 28 72 25 3c 3c 38 29 2b 28 |<1....=(r%<<8)+(| 000010e0 67 25 3c 3c 31 36 29 2b 28 62 25 3c 3c 32 34 29 |g%<<16)+(b%<<24)| 000010f0 0d 0e e2 2e dd a4 63 28 69 25 29 3a ea 72 25 2c |......c(i%):.r%,| 00001100 67 25 2c 62 25 3a e7 69 25 3c 31 32 38 69 25 3d |g%,b%:.i%<128i%=| 00001110 28 69 25 3c 3c 31 29 8b 69 25 3d 32 35 35 0d 0f |(i%<<1).i%=255..| 00001120 00 2b e7 69 25 3c 31 32 38 80 69 25 3e 30 72 25 |.+.i%<128.i%>0r%| 00001130 3d 28 69 25 3c 3c 31 29 8b e7 69 25 3e 30 72 25 |=(i%<<1)..i%>0r%| 00001140 3d 32 35 35 8b 72 25 3d 30 0d 0f 0a 1a e7 69 25 |=255.r%=0.....i%| 00001150 3e 30 67 25 3d 28 28 69 25 29 3c 3c 30 29 8b 67 |>0g%=((i%)<<0).g| 00001160 25 3d 30 0d 0f 14 23 62 25 3d 30 3a 3d 28 72 25 |%=0...#b%=0:=(r%| 00001170 3c 3c 38 29 2b 28 67 25 3c 3c 31 36 29 2b 28 62 |<<8)+(g%<<16)+(b| 00001180 25 3c 3c 32 34 29 0d 0f 46 2e dd a4 64 28 69 25 |%<<24)..F...d(i%| 00001190 29 3a ea 72 25 2c 67 25 2c 62 25 3a e7 69 25 3c |):.r%,g%,b%:.i%<| 000011a0 31 32 38 69 25 3d 28 69 25 3c 3c 31 29 8b 69 25 |128i%=(i%<<1).i%| 000011b0 3d 32 35 35 0d 0f 64 22 e7 69 25 3c 31 32 38 72 |=255..d".i%<128r| 000011c0 25 3d 69 25 3c 3c 31 8b 72 25 3d 28 32 35 35 2d |%=i%<<1.r%=(255-| 000011d0 69 25 29 3c 3c 31 0d 0f 6e 22 e7 69 25 3e 31 32 |i%)<<1..n".i%>12| 000011e0 38 62 25 3d 69 25 3c 3c 31 8b 62 25 3d 28 32 35 |8b%=i%<<1.b%=(25| 000011f0 35 2d 69 25 29 3c 3c 31 0d 0f 78 25 67 25 3d 32 |5-i%)<<1..x%g%=2| 00001200 35 35 3a 3d 28 72 25 3c 3c 38 29 2b 28 67 25 3c |55:=(r%<<8)+(g%<| 00001210 3c 31 36 29 2b 28 62 25 3c 3c 32 34 29 0d 0f aa |<16)+(b%<<24)...| 00001220 31 dd a4 65 28 69 25 29 3a ea 72 25 2c 67 25 2c |1..e(i%):.r%,g%,| 00001230 62 25 2c 44 25 3a e7 69 25 3c 31 32 38 69 25 3d |b%,D%:.i%<128i%=| 00001240 28 69 25 3c 3c 31 29 8b 69 25 3d 32 35 35 0d 0f |(i%<<1).i%=255..| 00001250 c8 22 e7 69 25 3c 31 32 38 72 25 3d 69 25 3c 3c |.".i%<128r%=i%<<| 00001260 31 8b 72 25 3d 28 32 35 35 2d 69 25 29 3c 3c 31 |1.r%=(255-i%)<<1| 00001270 0d 0f d2 22 e7 69 25 3e 31 32 38 62 25 3d 69 25 |...".i%>128b%=i%| 00001280 3c 3c 31 8b 62 25 3d 28 32 35 35 2d 69 25 29 3c |<<1.b%=(255-i%)<| 00001290 3c 31 0d 0f dc 31 44 25 3d 28 69 25 3c 3c 31 29 |<1...1D%=(i%<<1)| 000012a0 80 32 35 35 3a e7 44 25 3c 31 32 38 67 25 3d 44 |.255:.D%<128g%=D| 000012b0 25 3c 3c 31 8b 67 25 3d 28 32 35 35 2d 44 25 29 |%<<1.g%=(255-D%)| 000012c0 3c 3c 31 0d 0f e7 1e 3d 28 72 25 3c 3c 38 29 2b |<<1....=(r%<<8)+| 000012d0 28 67 25 3c 3c 31 36 29 2b 28 62 25 3c 3c 32 34 |(g%<<16)+(b%<<24| 000012e0 29 0d 10 0e 27 dd f2 61 3a c8 94 55 25 2c 56 25 |)...'..a:..U%,V%| 000012f0 3a c8 99 36 2c 31 31 32 2c 55 25 3a c8 99 36 2c |:..6,112,U%:..6,| 00001300 31 31 33 2c 56 25 3a e1 0d 10 36 04 0d 10 4a 4e |113,V%:...6...JN| 00001310 dd f2 62 28 72 25 2c 67 25 2c 62 25 29 3a c8 99 |..b(r%,g%,b%):..| 00001320 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 00001330 47 43 4f 4c 22 2c 28 72 25 3c 3c 38 29 2b 28 67 |GCOL",(r%<<8)+(g| 00001340 25 3c 3c 31 36 29 2b 28 62 25 3c 3c 32 34 29 2c |%<<16)+(b%<<24),| 00001350 2c 2c 28 31 3c 3c 38 29 3a e1 0d 10 5e 04 0d 10 |,,(1<<8):...^...| 00001360 72 3b dd f2 67 28 78 25 2c 79 25 2c 4b 25 2c 71 |r;..g(x%,y%,K%,q| 00001370 25 29 3a 63 25 3d 28 4b 25 2b 71 25 29 3c 3c 31 |%):c%=(K%+q%)<<1| 00001380 3a e6 63 25 3e 3e 34 3a c8 92 78 25 3c 3c 68 25 |:.c%>>4:..x%<<h%| 00001390 2c 79 25 3c 3c 65 25 3a e1 0d 10 ae 04 0d 10 c2 |,y%<<e%:........| 000013a0 2f dd f2 68 28 79 25 2c 71 25 29 3a e6 71 25 3e |/..h(y%,q%):.q%>| 000013b0 3e 34 3a 86 30 2c 79 25 3c 3c 65 25 2c 6e 25 3c |>4:.0,y%<<e%,n%<| 000013c0 3c 68 25 2c 79 25 3c 3c 65 25 3a e1 0d ff |<h%,y%<<e%:...| 000013ce