Home » Archimedes archive » Acorn User » AU 1996-08.adf » Regulars » StarInfo/Lowe/!Map/Map

StarInfo/Lowe/!Map/Map

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 1996-08.adf » Regulars
Filename: StarInfo/Lowe/!Map/Map
Read OK:
File size: 0EF9 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM PSEUDO TEXTURE MAPPING
   20REM BY ALAN LOWE
   30
   40PROCinitialise
   50PROCmake_texture
   60PROCcalculations
   70PROCtexturemap
   80
   90END
  100
  110REM PROCinitialise initialises screen, variables and arrays
  120DEF PROCinitialise
  130:
  140SYS "OS_CheckModeValid",28 TO ;f%
  150IF (f% AND 2) = 2 THEN MODE 15 ELSE MODE 28
  160
  170PRINT" Pseudo texture mapping program"
  180PRINT" By Alan Lowe 1996 "
  190PRINT" =============================="
  200
  210INPUT" Please enter the spritefile name (include file path)";spritely$
  220IF spritely$="" spritely$="<map$dir>.image"
  230INPUT" Please enter the sprite name e.g. screendump";sprite$
  240IF sprite$="" sprite$="screendump"
  250INPUT" Apply random tint (Y/N)";tint$
  260PRINT
  270PRINT" Move the polygon around using the mouse and press SELECT"
  280PRINT" to map the texture onto the surface."
  290CLS
  300
  310OFF
  320
  330Xone=600
  340Xtwo=800
  350Yone=600
  360Ytwo=200
  370height1=200
  380height2=300
  390height3=500
  400height4=800
  410width1=200
  420width2=300
  430width3=900
  440width4=1000
  450Xone=width3-width2
  460Xtwo=width4-width1
  470Yone=height4-height1
  480Ytwo=height3-height2
  490bank1=1
  500bank2=2
  510intervals=100
  520counter=0
  530
  540O$="OS_SpriteOp"
  550REM Load in the Spritefile
  560sprites$=spritely$
  570file%=OPENIN(sprites$)
  580size%=EXT#file%+64
  590CLOSE#file%
  600DIM area% size%
  610area%!0=size%
  620SYS O$,256+9,area%
  630SYS O$,256+10,area%,sprites$
  640DIM texture(11000)
  650DIM text(10100,2)
  660:
  670ENDPROC
  680
  690REM PROCmake_texture creates a texture to be applied to the
  700REM surface - by scanning a sprite
  710DEF PROCmake_texture
  720:
  730SYS O$,256+34,area%,sprite$,0,0,0
  740FOR X=0 TO 1600 STEP 16
  750    FOR Y=0 TO 1600 STEP 16
  760        texture(counter)=POINT(X/4,Y/4)
  770        counter=counter+1
  780        GCOL 0,texture(counter-1)
  790        PLOT 69,600+X/4,600+Y/4
  800    NEXT Y
  810NEXT X
  820:
  830ENDPROC
  840
  850REM PROCcalculations calculates some variables for plotting
  860DEF PROCcalculations
  870REPEAT
  880MOUSE X,Y,Z
  890width3=X
  900height2=Y
  910height3=1023-Y
  920width2=1279-X
  930Xone=width3-width2
  940Xtwo=width4-width1
  950Yone=height4-height1
  960Ytwo=height3-height2
  970
  980:
  990Xintervalone=Xone/intervals
 1000Xintervaltwo=Xtwo/intervals
 1010Yintervalone=Yone/intervals
 1020Yintervaltwo=Ytwo/intervals
 1030upstepone=   (height2-height1)/intervals
 1040upsteptwo=   (height4-height3)/intervals
 1050upstepthree= (width2-width1)/intervals
 1060upstepfour=  (width4-width3)/intervals
 1070
 1080GCOL 0,63 TINT 255
 1090
 1100LINE width2,height2,width3,height1
 1110LINE width3,height1,width4,height4
 1120LINE width4,height4,width1,height3
 1130LINE width1,height3,width2,height2
 1140
 1150IF Z=4 PROCtexturemap
 1160
 1170WAIT
 1180SYS 6,113,bank1
 1190SYS 6,112,bank2
 1200SWAP bank1,bank2
 1210CLS
 1220UNTIL FALSE
 1230:
 1240ENDPROC
 1250
 1260DEF PROCtexturemap
 1270:
 1280counter=0
 1290FOR X=1 TO intervals
 1300PROCmap
 1310NEXT X
 1320PROCmapit
 1330
 1340:
 1350ENDPROC
 1360
 1370DEF PROCmap
 1380:
 1390PROCtexturecalc
 1400FOR count=1 TO intervals
 1410PLOT 69,xstart,ystart
 1420    text(counter,1)=xstart
 1430    text(counter,2)=ystart
 1440
 1450    ystep=xstep*gradient
 1460    ystart=ystart+ystep
 1470    xstart=xstart+xstep
 1480counter=counter+1
 1490
 1500NEXT count
 1510ENDPROC
 1520
 1530DEF PROCmapit
 1540SYS 6,113,1
 1550SYS 6,112,1
 1560FOR counter=0 TO 10000-22
 1570PRINTTAB(0,0) "Calculating.. ";(counter/10000)*100;"% done     "
 1580IF tint$="Y" OR tint$="y" THEN x=RND(255) ELSE x=255
 1590GCOL 0,texture(counter+(counter/100)) TINT x
 1600
 1610IF text(counter,2)>text(counter+101,2) THEN GOTO 1640
 1620MOVE text(counter,1),text(counter,2): DRAW text(counter+1,1),text(counter+1,2): DRAW text(counter+101,1),text(counter+101,2)
 1630PLOT 85,text(counter,1),text(counter,2):PLOT 85,text(counter+100,1),text(counter+100,2)
 1640NEXT counter
 1650INPUT "Save (Y/N):";save$
 1660IF save$="Y" OR save$="y" THEN PROCsave ELSE ENDPROC
 1670ENDPROC
 1680
 1690DEF PROCtexturecalc
 1700REM Calculate gradient
 1710xstart=width2+(X*Xintervalone)
 1720xfinal=width1+(X*Xintervaltwo)
 1730
 1740ystart=height2-(X*upstepone)
 1750yfinal=height3+(X*upsteptwo)
 1760IF (xfinal-xstart)=0 THEN dx=1 ELSE dx=(xfinal-xstart)
 1770gradient=((yfinal-ystart)/dx)
 1780
 1790
 1800xstep=(xfinal-xstart)/intervals
 1810ENDPROC
 1820
 1830DEF PROCsave
 1840*SCREENSAVE "Texture"
 1850ENDPROC
 1860

� PSEUDO TEXTURE MAPPING
� BY ALAN LOWE

(�initialise
2�make_texture
<�calculations
F�texturemap
P
Z�
d
n=� PROCinitialise initialises screen, variables and arrays
x� �initialise
�:
�#ș "OS_CheckModeValid",28 � ;f%
� � (f% � 2) = 2 � � 15 � � 28
�
�&�" Pseudo texture mapping program"
��" By Alan Lowe 1996 "
�&�" =============================="
�
�F�" Please enter the spritefile name (include file path)";spritely$
�.� spritely$="" spritely$="<map$dir>.image"
�<�" Please enter the sprite name e.g. screendump";sprite$
�%� sprite$="" sprite$="screendump"
�%�" Apply random tint (Y/N)";tint$
�
@�" Move the polygon around using the mouse and press SELECT"
,�" to map the texture onto the surface."
"�
,
6�
@
JXone=600
TXtwo=800
^Yone=600
hYtwo=200
rheight1=200
|height2=300
�height3=500
�height4=800
�width1=200
�width2=300
�width3=900
�width4=1000
�Xone=width3-width2
�Xtwo=width4-width1
�Yone=height4-height1
�Ytwo=height3-height2
�bank1=1
�bank2=2
�intervals=100

counter=0

O$="OS_SpriteOp"
&� Load in the Spritefile
0sprites$=spritely$
:file%=�(sprites$)
Dsize%=�#file%+64
N�#file%
X� area% size%
barea%!0=size%
lș O$,256+9,area%
vș O$,256+10,area%,sprites$
�� texture(11000)
�� text(10100,2)
�:
��
�
�=� PROCmake_texture creates a texture to be applied to the
�$� surface - by scanning a sprite
�� �make_texture
�:
�$ș O$,256+34,area%,sprite$,0,0,0
�� X=0 � 1600 � 16
�    � Y=0 � 1600 � 16
�&        texture(counter)=�X/4,Y/4)
        counter=counter+1
"        � 0,texture(counter-1)
         � 69,600+X/4,600+Y/4
     � Y
*� X
4:
>�
H
R=� PROCcalculations calculates some variables for plotting
\� �calculations
f�
pȗ X,Y,Z
zwidth3=X
�
height2=Y
�height3=1023-Y
�width2=1279-X
�Xone=width3-width2
�Xtwo=width4-width1
�Yone=height4-height1
�Ytwo=height3-height2
�
�:
�Xintervalone=Xone/intervals
�Xintervaltwo=Xtwo/intervals
�Yintervalone=Yone/intervals
�Yintervaltwo=Ytwo/intervals
,upstepone=   (height2-height1)/intervals
,upsteptwo=   (height4-height3)/intervals
*upstepthree= (width2-width1)/intervals
$*upstepfour=  (width4-width3)/intervals
.
8� 0,63 Ȝ 255
B
L#� width2,height2,width3,height1
V#� width3,height1,width4,height4
`#� width4,height4,width1,height3
j#� width1,height3,width2,height2
t
~� Z=4 �texturemap
�
�Ȗ
�ș 6,113,bank1
�ș 6,112,bank2
�Ȕ bank1,bank2
��
�� �
�:
��
�
�� �texturemap
�:

counter=0

� X=1 � intervals
�map
� X
(
�mapit
2
<:
F�
P
Z
� �map
d:
n�texturecalc
x� count=1 � intervals
�� 69,xstart,ystart
�    text(counter,1)=xstart
�    text(counter,2)=ystart
�
�    ystep=xstep*gradient
�    ystart=ystart+ystep
�    xstart=xstart+xstep
�counter=counter+1
�
�� count
��
�
�� �mapit
ș 6,113,1
ș 6,112,1
� counter=0 � 10000-22
"=�0,0) "Calculating.. ";(counter/10000)*100;"% done     "
,.� tint$="Y" � tint$="y" � x=�(255) � x=255
6+� 0,texture(counter+(counter/100)) Ȝ x
@
J2� text(counter,2)>text(counter+101,2) � � �DhF
Tw� text(counter,1),text(counter,2): � text(counter+1,1),text(counter+1,2): � text(counter+101,1),text(counter+101,2)
^U� 85,text(counter,1),text(counter,2):� 85,text(counter+100,1),text(counter+100,2)
h
� counter
r� "Save (Y/N):";save$
|'� save$="Y" � save$="y" � �save � �
��
�
�� �texturecalc
�� Calculate gradient
�"xstart=width2+(X*Xintervalone)
�"xfinal=width1+(X*Xintervaltwo)
�
� ystart=height2-(X*upstepone)
� yfinal=height3+(X*upsteptwo)
�3� (xfinal-xstart)=0 � dx=1 � dx=(xfinal-xstart)
�!gradient=((yfinal-ystart)/dx)
�
�
#xstep=(xfinal-xstart)/intervals
�

&� �save
0*SCREENSAVE "Texture"
:�
D
�
00000000  0d 00 0a 1c f4 20 50 53  45 55 44 4f 20 54 45 58  |..... PSEUDO TEX|
00000010  54 55 52 45 20 4d 41 50  50 49 4e 47 0d 00 14 12  |TURE MAPPING....|
00000020  f4 20 42 59 20 41 4c 41  4e 20 4c 4f 57 45 0d 00  |. BY ALAN LOWE..|
00000030  1e 04 0d 00 28 0f f2 69  6e 69 74 69 61 6c 69 73  |....(..initialis|
00000040  65 0d 00 32 11 f2 6d 61  6b 65 5f 74 65 78 74 75  |e..2..make_textu|
00000050  72 65 0d 00 3c 11 f2 63  61 6c 63 75 6c 61 74 69  |re..<..calculati|
00000060  6f 6e 73 0d 00 46 0f f2  74 65 78 74 75 72 65 6d  |ons..F..texturem|
00000070  61 70 0d 00 50 04 0d 00  5a 05 e0 0d 00 64 04 0d  |ap..P...Z....d..|
00000080  00 6e 3d f4 20 50 52 4f  43 69 6e 69 74 69 61 6c  |.n=. PROCinitial|
00000090  69 73 65 20 69 6e 69 74  69 61 6c 69 73 65 73 20  |ise initialises |
000000a0  73 63 72 65 65 6e 2c 20  76 61 72 69 61 62 6c 65  |screen, variable|
000000b0  73 20 61 6e 64 20 61 72  72 61 79 73 0d 00 78 11  |s and arrays..x.|
000000c0  dd 20 f2 69 6e 69 74 69  61 6c 69 73 65 0d 00 82  |. .initialise...|
000000d0  05 3a 0d 00 8c 23 c8 99  20 22 4f 53 5f 43 68 65  |.:...#.. "OS_Che|
000000e0  63 6b 4d 6f 64 65 56 61  6c 69 64 22 2c 32 38 20  |ckModeValid",28 |
000000f0  b8 20 3b 66 25 0d 00 96  20 e7 20 28 66 25 20 80  |. ;f%... . (f% .|
00000100  20 32 29 20 3d 20 32 20  8c 20 eb 20 31 35 20 8b  | 2) = 2 . . 15 .|
00000110  20 eb 20 32 38 0d 00 a0  04 0d 00 aa 26 f1 22 20  | . 28.......&." |
00000120  50 73 65 75 64 6f 20 74  65 78 74 75 72 65 20 6d  |Pseudo texture m|
00000130  61 70 70 69 6e 67 20 70  72 6f 67 72 61 6d 22 0d  |apping program".|
00000140  00 b4 1a f1 22 20 42 79  20 41 6c 61 6e 20 4c 6f  |...." By Alan Lo|
00000150  77 65 20 31 39 39 36 20  22 0d 00 be 26 f1 22 20  |we 1996 "...&." |
00000160  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000170  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 22 0d  |==============".|
00000180  00 c8 04 0d 00 d2 46 e8  22 20 50 6c 65 61 73 65  |......F." Please|
00000190  20 65 6e 74 65 72 20 74  68 65 20 73 70 72 69 74  | enter the sprit|
000001a0  65 66 69 6c 65 20 6e 61  6d 65 20 28 69 6e 63 6c  |efile name (incl|
000001b0  75 64 65 20 66 69 6c 65  20 70 61 74 68 29 22 3b  |ude file path)";|
000001c0  73 70 72 69 74 65 6c 79  24 0d 00 dc 2e e7 20 73  |spritely$..... s|
000001d0  70 72 69 74 65 6c 79 24  3d 22 22 20 73 70 72 69  |pritely$="" spri|
000001e0  74 65 6c 79 24 3d 22 3c  6d 61 70 24 64 69 72 3e  |tely$="<map$dir>|
000001f0  2e 69 6d 61 67 65 22 0d  00 e6 3c e8 22 20 50 6c  |.image"...<." Pl|
00000200  65 61 73 65 20 65 6e 74  65 72 20 74 68 65 20 73  |ease enter the s|
00000210  70 72 69 74 65 20 6e 61  6d 65 20 65 2e 67 2e 20  |prite name e.g. |
00000220  73 63 72 65 65 6e 64 75  6d 70 22 3b 73 70 72 69  |screendump";spri|
00000230  74 65 24 0d 00 f0 25 e7  20 73 70 72 69 74 65 24  |te$...%. sprite$|
00000240  3d 22 22 20 73 70 72 69  74 65 24 3d 22 73 63 72  |="" sprite$="scr|
00000250  65 65 6e 64 75 6d 70 22  0d 00 fa 25 e8 22 20 41  |eendump"...%." A|
00000260  70 70 6c 79 20 72 61 6e  64 6f 6d 20 74 69 6e 74  |pply random tint|
00000270  20 28 59 2f 4e 29 22 3b  74 69 6e 74 24 0d 01 04  | (Y/N)";tint$...|
00000280  05 f1 0d 01 0e 40 f1 22  20 4d 6f 76 65 20 74 68  |.....@." Move th|
00000290  65 20 70 6f 6c 79 67 6f  6e 20 61 72 6f 75 6e 64  |e polygon around|
000002a0  20 75 73 69 6e 67 20 74  68 65 20 6d 6f 75 73 65  | using the mouse|
000002b0  20 61 6e 64 20 70 72 65  73 73 20 53 45 4c 45 43  | and press SELEC|
000002c0  54 22 0d 01 18 2c f1 22  20 74 6f 20 6d 61 70 20  |T"...,." to map |
000002d0  74 68 65 20 74 65 78 74  75 72 65 20 6f 6e 74 6f  |the texture onto|
000002e0  20 74 68 65 20 73 75 72  66 61 63 65 2e 22 0d 01  | the surface."..|
000002f0  22 05 db 0d 01 2c 04 0d  01 36 05 87 0d 01 40 04  |"....,...6....@.|
00000300  0d 01 4a 0c 58 6f 6e 65  3d 36 30 30 0d 01 54 0c  |..J.Xone=600..T.|
00000310  58 74 77 6f 3d 38 30 30  0d 01 5e 0c 59 6f 6e 65  |Xtwo=800..^.Yone|
00000320  3d 36 30 30 0d 01 68 0c  59 74 77 6f 3d 32 30 30  |=600..h.Ytwo=200|
00000330  0d 01 72 0f 68 65 69 67  68 74 31 3d 32 30 30 0d  |..r.height1=200.|
00000340  01 7c 0f 68 65 69 67 68  74 32 3d 33 30 30 0d 01  |.|.height2=300..|
00000350  86 0f 68 65 69 67 68 74  33 3d 35 30 30 0d 01 90  |..height3=500...|
00000360  0f 68 65 69 67 68 74 34  3d 38 30 30 0d 01 9a 0e  |.height4=800....|
00000370  77 69 64 74 68 31 3d 32  30 30 0d 01 a4 0e 77 69  |width1=200....wi|
00000380  64 74 68 32 3d 33 30 30  0d 01 ae 0e 77 69 64 74  |dth2=300....widt|
00000390  68 33 3d 39 30 30 0d 01  b8 0f 77 69 64 74 68 34  |h3=900....width4|
000003a0  3d 31 30 30 30 0d 01 c2  16 58 6f 6e 65 3d 77 69  |=1000....Xone=wi|
000003b0  64 74 68 33 2d 77 69 64  74 68 32 0d 01 cc 16 58  |dth3-width2....X|
000003c0  74 77 6f 3d 77 69 64 74  68 34 2d 77 69 64 74 68  |two=width4-width|
000003d0  31 0d 01 d6 18 59 6f 6e  65 3d 68 65 69 67 68 74  |1....Yone=height|
000003e0  34 2d 68 65 69 67 68 74  31 0d 01 e0 18 59 74 77  |4-height1....Ytw|
000003f0  6f 3d 68 65 69 67 68 74  33 2d 68 65 69 67 68 74  |o=height3-height|
00000400  32 0d 01 ea 0b 62 61 6e  6b 31 3d 31 0d 01 f4 0b  |2....bank1=1....|
00000410  62 61 6e 6b 32 3d 32 0d  01 fe 11 69 6e 74 65 72  |bank2=2....inter|
00000420  76 61 6c 73 3d 31 30 30  0d 02 08 0d 63 6f 75 6e  |vals=100....coun|
00000430  74 65 72 3d 30 0d 02 12  04 0d 02 1c 14 4f 24 3d  |ter=0........O$=|
00000440  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 0d 02 26  |"OS_SpriteOp"..&|
00000450  1c f4 20 4c 6f 61 64 20  69 6e 20 74 68 65 20 53  |.. Load in the S|
00000460  70 72 69 74 65 66 69 6c  65 0d 02 30 16 73 70 72  |pritefile..0.spr|
00000470  69 74 65 73 24 3d 73 70  72 69 74 65 6c 79 24 0d  |ites$=spritely$.|
00000480  02 3a 15 66 69 6c 65 25  3d 8e 28 73 70 72 69 74  |.:.file%=.(sprit|
00000490  65 73 24 29 0d 02 44 14  73 69 7a 65 25 3d a2 23  |es$)..D.size%=.#|
000004a0  66 69 6c 65 25 2b 36 34  0d 02 4e 0b d9 23 66 69  |file%+64..N..#fi|
000004b0  6c 65 25 0d 02 58 11 de  20 61 72 65 61 25 20 73  |le%..X.. area% s|
000004c0  69 7a 65 25 0d 02 62 11  61 72 65 61 25 21 30 3d  |ize%..b.area%!0=|
000004d0  73 69 7a 65 25 0d 02 6c  15 c8 99 20 4f 24 2c 32  |size%..l... O$,2|
000004e0  35 36 2b 39 2c 61 72 65  61 25 0d 02 76 1f c8 99  |56+9,area%..v...|
000004f0  20 4f 24 2c 32 35 36 2b  31 30 2c 61 72 65 61 25  | O$,256+10,area%|
00000500  2c 73 70 72 69 74 65 73  24 0d 02 80 14 de 20 74  |,sprites$..... t|
00000510  65 78 74 75 72 65 28 31  31 30 30 30 29 0d 02 8a  |exture(11000)...|
00000520  13 de 20 74 65 78 74 28  31 30 31 30 30 2c 32 29  |.. text(10100,2)|
00000530  0d 02 94 05 3a 0d 02 9e  05 e1 0d 02 a8 04 0d 02  |....:...........|
00000540  b2 3d f4 20 50 52 4f 43  6d 61 6b 65 5f 74 65 78  |.=. PROCmake_tex|
00000550  74 75 72 65 20 63 72 65  61 74 65 73 20 61 20 74  |ture creates a t|
00000560  65 78 74 75 72 65 20 74  6f 20 62 65 20 61 70 70  |exture to be app|
00000570  6c 69 65 64 20 74 6f 20  74 68 65 0d 02 bc 24 f4  |lied to the...$.|
00000580  20 73 75 72 66 61 63 65  20 2d 20 62 79 20 73 63  | surface - by sc|
00000590  61 6e 6e 69 6e 67 20 61  20 73 70 72 69 74 65 0d  |anning a sprite.|
000005a0  02 c6 13 dd 20 f2 6d 61  6b 65 5f 74 65 78 74 75  |.... .make_textu|
000005b0  72 65 0d 02 d0 05 3a 0d  02 da 24 c8 99 20 4f 24  |re....:...$.. O$|
000005c0  2c 32 35 36 2b 33 34 2c  61 72 65 61 25 2c 73 70  |,256+34,area%,sp|
000005d0  72 69 74 65 24 2c 30 2c  30 2c 30 0d 02 e4 15 e3  |rite$,0,0,0.....|
000005e0  20 58 3d 30 20 b8 20 31  36 30 30 20 88 20 31 36  | X=0 . 1600 . 16|
000005f0  0d 02 ee 19 20 20 20 20  e3 20 59 3d 30 20 b8 20  |....    . Y=0 . |
00000600  31 36 30 30 20 88 20 31  36 0d 02 f8 26 20 20 20  |1600 . 16...&   |
00000610  20 20 20 20 20 74 65 78  74 75 72 65 28 63 6f 75  |     texture(cou|
00000620  6e 74 65 72 29 3d b0 58  2f 34 2c 59 2f 34 29 0d  |nter)=.X/4,Y/4).|
00000630  03 02 1d 20 20 20 20 20  20 20 20 63 6f 75 6e 74  |...        count|
00000640  65 72 3d 63 6f 75 6e 74  65 72 2b 31 0d 03 0c 22  |er=counter+1..."|
00000650  20 20 20 20 20 20 20 20  e6 20 30 2c 74 65 78 74  |        . 0,text|
00000660  75 72 65 28 63 6f 75 6e  74 65 72 2d 31 29 0d 03  |ure(counter-1)..|
00000670  16 20 20 20 20 20 20 20  20 20 f0 20 36 39 2c 36  |.         . 69,6|
00000680  30 30 2b 58 2f 34 2c 36  30 30 2b 59 2f 34 0d 03  |00+X/4,600+Y/4..|
00000690  20 0b 20 20 20 20 ed 20  59 0d 03 2a 07 ed 20 58  | .    . Y..*.. X|
000006a0  0d 03 34 05 3a 0d 03 3e  05 e1 0d 03 48 04 0d 03  |..4.:..>....H...|
000006b0  52 3d f4 20 50 52 4f 43  63 61 6c 63 75 6c 61 74  |R=. PROCcalculat|
000006c0  69 6f 6e 73 20 63 61 6c  63 75 6c 61 74 65 73 20  |ions calculates |
000006d0  73 6f 6d 65 20 76 61 72  69 61 62 6c 65 73 20 66  |some variables f|
000006e0  6f 72 20 70 6c 6f 74 74  69 6e 67 0d 03 5c 13 dd  |or plotting..\..|
000006f0  20 f2 63 61 6c 63 75 6c  61 74 69 6f 6e 73 0d 03  | .calculations..|
00000700  66 05 f5 0d 03 70 0c c8  97 20 58 2c 59 2c 5a 0d  |f....p... X,Y,Z.|
00000710  03 7a 0c 77 69 64 74 68  33 3d 58 0d 03 84 0d 68  |.z.width3=X....h|
00000720  65 69 67 68 74 32 3d 59  0d 03 8e 12 68 65 69 67  |eight2=Y....heig|
00000730  68 74 33 3d 31 30 32 33  2d 59 0d 03 98 11 77 69  |ht3=1023-Y....wi|
00000740  64 74 68 32 3d 31 32 37  39 2d 58 0d 03 a2 16 58  |dth2=1279-X....X|
00000750  6f 6e 65 3d 77 69 64 74  68 33 2d 77 69 64 74 68  |one=width3-width|
00000760  32 0d 03 ac 16 58 74 77  6f 3d 77 69 64 74 68 34  |2....Xtwo=width4|
00000770  2d 77 69 64 74 68 31 0d  03 b6 18 59 6f 6e 65 3d  |-width1....Yone=|
00000780  68 65 69 67 68 74 34 2d  68 65 69 67 68 74 31 0d  |height4-height1.|
00000790  03 c0 18 59 74 77 6f 3d  68 65 69 67 68 74 33 2d  |...Ytwo=height3-|
000007a0  68 65 69 67 68 74 32 0d  03 ca 04 0d 03 d4 05 3a  |height2........:|
000007b0  0d 03 de 1f 58 69 6e 74  65 72 76 61 6c 6f 6e 65  |....Xintervalone|
000007c0  3d 58 6f 6e 65 2f 69 6e  74 65 72 76 61 6c 73 0d  |=Xone/intervals.|
000007d0  03 e8 1f 58 69 6e 74 65  72 76 61 6c 74 77 6f 3d  |...Xintervaltwo=|
000007e0  58 74 77 6f 2f 69 6e 74  65 72 76 61 6c 73 0d 03  |Xtwo/intervals..|
000007f0  f2 1f 59 69 6e 74 65 72  76 61 6c 6f 6e 65 3d 59  |..Yintervalone=Y|
00000800  6f 6e 65 2f 69 6e 74 65  72 76 61 6c 73 0d 03 fc  |one/intervals...|
00000810  1f 59 69 6e 74 65 72 76  61 6c 74 77 6f 3d 59 74  |.Yintervaltwo=Yt|
00000820  77 6f 2f 69 6e 74 65 72  76 61 6c 73 0d 04 06 2c  |wo/intervals...,|
00000830  75 70 73 74 65 70 6f 6e  65 3d 20 20 20 28 68 65  |upstepone=   (he|
00000840  69 67 68 74 32 2d 68 65  69 67 68 74 31 29 2f 69  |ight2-height1)/i|
00000850  6e 74 65 72 76 61 6c 73  0d 04 10 2c 75 70 73 74  |ntervals...,upst|
00000860  65 70 74 77 6f 3d 20 20  20 28 68 65 69 67 68 74  |eptwo=   (height|
00000870  34 2d 68 65 69 67 68 74  33 29 2f 69 6e 74 65 72  |4-height3)/inter|
00000880  76 61 6c 73 0d 04 1a 2a  75 70 73 74 65 70 74 68  |vals...*upstepth|
00000890  72 65 65 3d 20 28 77 69  64 74 68 32 2d 77 69 64  |ree= (width2-wid|
000008a0  74 68 31 29 2f 69 6e 74  65 72 76 61 6c 73 0d 04  |th1)/intervals..|
000008b0  24 2a 75 70 73 74 65 70  66 6f 75 72 3d 20 20 28  |$*upstepfour=  (|
000008c0  77 69 64 74 68 34 2d 77  69 64 74 68 33 29 2f 69  |width4-width3)/i|
000008d0  6e 74 65 72 76 61 6c 73  0d 04 2e 04 0d 04 38 11  |ntervals......8.|
000008e0  e6 20 30 2c 36 33 20 c8  9c 20 32 35 35 0d 04 42  |. 0,63 .. 255..B|
000008f0  04 0d 04 4c 23 86 20 77  69 64 74 68 32 2c 68 65  |...L#. width2,he|
00000900  69 67 68 74 32 2c 77 69  64 74 68 33 2c 68 65 69  |ight2,width3,hei|
00000910  67 68 74 31 0d 04 56 23  86 20 77 69 64 74 68 33  |ght1..V#. width3|
00000920  2c 68 65 69 67 68 74 31  2c 77 69 64 74 68 34 2c  |,height1,width4,|
00000930  68 65 69 67 68 74 34 0d  04 60 23 86 20 77 69 64  |height4..`#. wid|
00000940  74 68 34 2c 68 65 69 67  68 74 34 2c 77 69 64 74  |th4,height4,widt|
00000950  68 31 2c 68 65 69 67 68  74 33 0d 04 6a 23 86 20  |h1,height3..j#. |
00000960  77 69 64 74 68 31 2c 68  65 69 67 68 74 33 2c 77  |width1,height3,w|
00000970  69 64 74 68 32 2c 68 65  69 67 68 74 32 0d 04 74  |idth2,height2..t|
00000980  04 0d 04 7e 15 e7 20 5a  3d 34 20 f2 74 65 78 74  |...~.. Z=4 .text|
00000990  75 72 65 6d 61 70 0d 04  88 04 0d 04 92 06 c8 96  |uremap..........|
000009a0  0d 04 9c 12 c8 99 20 36  2c 31 31 33 2c 62 61 6e  |...... 6,113,ban|
000009b0  6b 31 0d 04 a6 12 c8 99  20 36 2c 31 31 32 2c 62  |k1...... 6,112,b|
000009c0  61 6e 6b 32 0d 04 b0 12  c8 94 20 62 61 6e 6b 31  |ank2...... bank1|
000009d0  2c 62 61 6e 6b 32 0d 04  ba 05 db 0d 04 c4 07 fd  |,bank2..........|
000009e0  20 a3 0d 04 ce 05 3a 0d  04 d8 05 e1 0d 04 e2 04  | .....:.........|
000009f0  0d 04 ec 11 dd 20 f2 74  65 78 74 75 72 65 6d 61  |..... .texturema|
00000a00  70 0d 04 f6 05 3a 0d 05  00 0d 63 6f 75 6e 74 65  |p....:....counte|
00000a10  72 3d 30 0d 05 0a 15 e3  20 58 3d 31 20 b8 20 69  |r=0..... X=1 . i|
00000a20  6e 74 65 72 76 61 6c 73  0d 05 14 08 f2 6d 61 70  |ntervals.....map|
00000a30  0d 05 1e 07 ed 20 58 0d  05 28 0a f2 6d 61 70 69  |..... X..(..mapi|
00000a40  74 0d 05 32 04 0d 05 3c  05 3a 0d 05 46 05 e1 0d  |t..2...<.:..F...|
00000a50  05 50 04 0d 05 5a 0a dd  20 f2 6d 61 70 0d 05 64  |.P...Z.. .map..d|
00000a60  05 3a 0d 05 6e 10 f2 74  65 78 74 75 72 65 63 61  |.:..n..textureca|
00000a70  6c 63 0d 05 78 19 e3 20  63 6f 75 6e 74 3d 31 20  |lc..x.. count=1 |
00000a80  b8 20 69 6e 74 65 72 76  61 6c 73 0d 05 82 16 f0  |. intervals.....|
00000a90  20 36 39 2c 78 73 74 61  72 74 2c 79 73 74 61 72  | 69,xstart,ystar|
00000aa0  74 0d 05 8c 1e 20 20 20  20 74 65 78 74 28 63 6f  |t....    text(co|
00000ab0  75 6e 74 65 72 2c 31 29  3d 78 73 74 61 72 74 0d  |unter,1)=xstart.|
00000ac0  05 96 1e 20 20 20 20 74  65 78 74 28 63 6f 75 6e  |...    text(coun|
00000ad0  74 65 72 2c 32 29 3d 79  73 74 61 72 74 0d 05 a0  |ter,2)=ystart...|
00000ae0  04 0d 05 aa 1c 20 20 20  20 79 73 74 65 70 3d 78  |.....    ystep=x|
00000af0  73 74 65 70 2a 67 72 61  64 69 65 6e 74 0d 05 b4  |step*gradient...|
00000b00  1b 20 20 20 20 79 73 74  61 72 74 3d 79 73 74 61  |.    ystart=ysta|
00000b10  72 74 2b 79 73 74 65 70  0d 05 be 1b 20 20 20 20  |rt+ystep....    |
00000b20  78 73 74 61 72 74 3d 78  73 74 61 72 74 2b 78 73  |xstart=xstart+xs|
00000b30  74 65 70 0d 05 c8 15 63  6f 75 6e 74 65 72 3d 63  |tep....counter=c|
00000b40  6f 75 6e 74 65 72 2b 31  0d 05 d2 04 0d 05 dc 0b  |ounter+1........|
00000b50  ed 20 63 6f 75 6e 74 0d  05 e6 05 e1 0d 05 f0 04  |. count.........|
00000b60  0d 05 fa 0c dd 20 f2 6d  61 70 69 74 0d 06 04 0e  |..... .mapit....|
00000b70  c8 99 20 36 2c 31 31 33  2c 31 0d 06 0e 0e c8 99  |.. 6,113,1......|
00000b80  20 36 2c 31 31 32 2c 31  0d 06 18 1a e3 20 63 6f  | 6,112,1..... co|
00000b90  75 6e 74 65 72 3d 30 20  b8 20 31 30 30 30 30 2d  |unter=0 . 10000-|
00000ba0  32 32 0d 06 22 3d f1 8a  30 2c 30 29 20 22 43 61  |22.."=..0,0) "Ca|
00000bb0  6c 63 75 6c 61 74 69 6e  67 2e 2e 20 22 3b 28 63  |lculating.. ";(c|
00000bc0  6f 75 6e 74 65 72 2f 31  30 30 30 30 29 2a 31 30  |ounter/10000)*10|
00000bd0  30 3b 22 25 20 64 6f 6e  65 20 20 20 20 20 22 0d  |0;"% done     ".|
00000be0  06 2c 2e e7 20 74 69 6e  74 24 3d 22 59 22 20 84  |.,.. tint$="Y" .|
00000bf0  20 74 69 6e 74 24 3d 22  79 22 20 8c 20 78 3d b3  | tint$="y" . x=.|
00000c00  28 32 35 35 29 20 8b 20  78 3d 32 35 35 0d 06 36  |(255) . x=255..6|
00000c10  2b e6 20 30 2c 74 65 78  74 75 72 65 28 63 6f 75  |+. 0,texture(cou|
00000c20  6e 74 65 72 2b 28 63 6f  75 6e 74 65 72 2f 31 30  |nter+(counter/10|
00000c30  30 29 29 20 c8 9c 20 78  0d 06 40 04 0d 06 4a 32  |0)) .. x..@...J2|
00000c40  e7 20 74 65 78 74 28 63  6f 75 6e 74 65 72 2c 32  |. text(counter,2|
00000c50  29 3e 74 65 78 74 28 63  6f 75 6e 74 65 72 2b 31  |)>text(counter+1|
00000c60  30 31 2c 32 29 20 8c 20  e5 20 8d 44 68 46 0d 06  |01,2) . . .DhF..|
00000c70  54 77 ec 20 74 65 78 74  28 63 6f 75 6e 74 65 72  |Tw. text(counter|
00000c80  2c 31 29 2c 74 65 78 74  28 63 6f 75 6e 74 65 72  |,1),text(counter|
00000c90  2c 32 29 3a 20 df 20 74  65 78 74 28 63 6f 75 6e  |,2): . text(coun|
00000ca0  74 65 72 2b 31 2c 31 29  2c 74 65 78 74 28 63 6f  |ter+1,1),text(co|
00000cb0  75 6e 74 65 72 2b 31 2c  32 29 3a 20 df 20 74 65  |unter+1,2): . te|
00000cc0  78 74 28 63 6f 75 6e 74  65 72 2b 31 30 31 2c 31  |xt(counter+101,1|
00000cd0  29 2c 74 65 78 74 28 63  6f 75 6e 74 65 72 2b 31  |),text(counter+1|
00000ce0  30 31 2c 32 29 0d 06 5e  55 f0 20 38 35 2c 74 65  |01,2)..^U. 85,te|
00000cf0  78 74 28 63 6f 75 6e 74  65 72 2c 31 29 2c 74 65  |xt(counter,1),te|
00000d00  78 74 28 63 6f 75 6e 74  65 72 2c 32 29 3a f0 20  |xt(counter,2):. |
00000d10  38 35 2c 74 65 78 74 28  63 6f 75 6e 74 65 72 2b  |85,text(counter+|
00000d20  31 30 30 2c 31 29 2c 74  65 78 74 28 63 6f 75 6e  |100,1),text(coun|
00000d30  74 65 72 2b 31 30 30 2c  32 29 0d 06 68 0d ed 20  |ter+100,2)..h.. |
00000d40  63 6f 75 6e 74 65 72 0d  06 72 19 e8 20 22 53 61  |counter..r.. "Sa|
00000d50  76 65 20 28 59 2f 4e 29  3a 22 3b 73 61 76 65 24  |ve (Y/N):";save$|
00000d60  0d 06 7c 27 e7 20 73 61  76 65 24 3d 22 59 22 20  |..|'. save$="Y" |
00000d70  84 20 73 61 76 65 24 3d  22 79 22 20 8c 20 f2 73  |. save$="y" . .s|
00000d80  61 76 65 20 8b 20 e1 0d  06 86 05 e1 0d 06 90 04  |ave . ..........|
00000d90  0d 06 9a 12 dd 20 f2 74  65 78 74 75 72 65 63 61  |..... .textureca|
00000da0  6c 63 0d 06 a4 18 f4 20  43 61 6c 63 75 6c 61 74  |lc..... Calculat|
00000db0  65 20 67 72 61 64 69 65  6e 74 0d 06 ae 22 78 73  |e gradient..."xs|
00000dc0  74 61 72 74 3d 77 69 64  74 68 32 2b 28 58 2a 58  |tart=width2+(X*X|
00000dd0  69 6e 74 65 72 76 61 6c  6f 6e 65 29 0d 06 b8 22  |intervalone)..."|
00000de0  78 66 69 6e 61 6c 3d 77  69 64 74 68 31 2b 28 58  |xfinal=width1+(X|
00000df0  2a 58 69 6e 74 65 72 76  61 6c 74 77 6f 29 0d 06  |*Xintervaltwo)..|
00000e00  c2 04 0d 06 cc 20 79 73  74 61 72 74 3d 68 65 69  |..... ystart=hei|
00000e10  67 68 74 32 2d 28 58 2a  75 70 73 74 65 70 6f 6e  |ght2-(X*upstepon|
00000e20  65 29 0d 06 d6 20 79 66  69 6e 61 6c 3d 68 65 69  |e)... yfinal=hei|
00000e30  67 68 74 33 2b 28 58 2a  75 70 73 74 65 70 74 77  |ght3+(X*upsteptw|
00000e40  6f 29 0d 06 e0 33 e7 20  28 78 66 69 6e 61 6c 2d  |o)...3. (xfinal-|
00000e50  78 73 74 61 72 74 29 3d  30 20 8c 20 64 78 3d 31  |xstart)=0 . dx=1|
00000e60  20 8b 20 64 78 3d 28 78  66 69 6e 61 6c 2d 78 73  | . dx=(xfinal-xs|
00000e70  74 61 72 74 29 0d 06 ea  21 67 72 61 64 69 65 6e  |tart)...!gradien|
00000e80  74 3d 28 28 79 66 69 6e  61 6c 2d 79 73 74 61 72  |t=((yfinal-ystar|
00000e90  74 29 2f 64 78 29 0d 06  f4 04 0d 06 fe 04 0d 07  |t)/dx)..........|
00000ea0  08 23 78 73 74 65 70 3d  28 78 66 69 6e 61 6c 2d  |.#xstep=(xfinal-|
00000eb0  78 73 74 61 72 74 29 2f  69 6e 74 65 72 76 61 6c  |xstart)/interval|
00000ec0  73 0d 07 12 05 e1 0d 07  1c 04 0d 07 26 0b dd 20  |s...........&.. |
00000ed0  f2 73 61 76 65 0d 07 30  19 2a 53 43 52 45 45 4e  |.save..0.*SCREEN|
00000ee0  53 41 56 45 20 22 54 65  78 74 75 72 65 22 0d 07  |SAVE "Texture"..|
00000ef0  3a 05 e1 0d 07 44 04 0d  ff                       |:....D...|
00000ef9