Home » Archimedes archive » Archimedes World » AW-1992-02 - Virus Removed.adf » February92 » !AWFeb92/Goodies/MicroDrive/!Micro_Drv/DEMO
!AWFeb92/Goodies/MicroDrive/!Micro_Drv/DEMO
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 » Archimedes World » AW-1992-02 - Virus Removed.adf » February92 |
| Filename: | !AWFeb92/Goodies/MicroDrive/!Micro_Drv/DEMO |
| Read OK: | ✔ |
| File size: | B818 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
@ ��@��@ ��0�0� P�� �� �BASIC -quit @00009000,000147C0
ķ 8 �G
9�ș"OS_IntOn":�("SET Micro$Dir :0.!Micro_Drv"):�dR@
(
CRS%=1
2*FX112,0
<*FX113,0
F �init
P ș46,303,SP%,"BAG2"
Z �j%=0�17
d ș46,303,SP%,"GFR2"+�(j%)
n' �j%<6�ș46,303,SP%,"XGFR2"+�(j%)
x �
� ș46,303,SP%,"GFR220"
� ș46,303,SP%,"GFR221"
� ș46,303,SP%,"GFR230"
� ș46,303,SP%,"GFR231"
� ș46,303,SP%,"GFR232"
� ș46,303,SP%,"XGFR220"
� ș46,303,SP%,"XGFR221"
�*SET Micro$Dir <Obey$Dir>
��whichcourse
�Z%=�("RAM:$.COURSE")
��inirnd
��RTN%��dR@
�DR%=�:hole%=SH%
DR%=�
�141
�drawplan
"devang=0:drw%=0
,(ș"OS_IntOff":�drawshot:ș"OS_IntOn"
6,X1=4:Y1=200+yds%*2:�XY10:HT2=�Ght(X0,Y0)
@-X1=-4:Y1=200+yds%*2:�XY10:HT1=�Ght(X0,Y0)
J*X1=4:Y1=200+yds%:�XY10:ht2=�Ght(X0,Y0)
T+X1=-4:Y1=200+yds%:�XY10:ht1=�Ght(X0,Y0)
^)SLP%=(HT2*2+ht2-HT1*2-ht1)*(20+�(20))
h�inputshot
r�animate
|笤allinhole ��TbA
��scorecard
�3�(goon%)�hole%<2��sorthonor:hole%=hole%+1:�TNA
��#0
��("RAM:CLOSE")
� �dR@
�
�
���cmenu
��c%,x%,y%,g%,b%,k%,r%
��15
��5
��23;8202;0;0;0;
�
�0,42 Ȝ0
ȓȐ0,0,1280,1100
�c%=1�NC%
* �("SLOAD <Micro$Dir>.CLOAD."+CF$(c%))
& *SCHOOSE MENU
0 �8,0
:0 �&ED,((c%-1)�3)*364+20,1016-((c%+2 )�3)*328
D�
N-�0,52 Ȝ0:�410,300:�"M i c r o D r i v e"
X,�0,3 Ȝ0:�410,220:�"(D e m o M o d e)"
b�0,63 Ȝ192
lx%=1104:y%=944:g%=44
v�x%,y%:�"Use left"
��x%,y%-g%:�"mouse"
��x%,y%-g%*2:�"button"
��x%,y%-g%*3:�"to select"
��x%,y%-g%*4:�"course"
��x%,y%-g%*7:�"Use right"
��x%,y%-g%*8:�"mouse"
��x%,y%-g%*9:�"button"
��x%,y%-g%*10:�"for course"
��x%,y%-g%*11:�"overview"
��0,47 Ȝ192
��x%,y%-g%*14:�"Or press"
��x%,y%-g%*15:�"SPACEBAR"
��x%,y%-g%*16:�"after"
�x%,y%-g%*17:�"loading"
�x%,y%-g%*18:�"new course"
�x%,y%-g%*19:�"diskette"
�x%,y%-g%*20:�"in Drive 0"
*ȗȓ20,32,1068,964
4&OC%=CRS%-1:�(OC%=0)�OC%>NC%OC%=NC%
>SX%=�CX(OC%):SY%=�CY(OC%)
HEX%=�CX(CRS%):EY%=�CY(CRS%)
Rȗ�SX%,SY%:ȗ�:�wt(2)
\
�V%=1�100
f; ȗ�(SX%*(100-V%)+EX%*V%)�100,(SY%*(100-V%)+EY%*V%)�100
p
�wt(.01)
z�
�$CC%=CRS%:CRS%+=1:�CRS%>NC%CRS%=1
�csprite$=CF$(CC%):ȗ�
��
�
�
�!ݤCX(Ck%)=((Ck%-1)�3)*360+200
�!ݤCY(Ck%)=860-((Ck%-1)�3)*360
�
���playersin
��h%,s$,h$,i%,x%,y%,b%,p%,s$
�#�("SLOAD <Micro$Dir>.ISPRITES")
��15:�4,23;8202;0;0;0;
�
�0,56 Ȝ0
ȓȐ870,164,410,856
�184 Ȝ0
�63 Ȝ192
$%�56,1)"Hole Yards Par Stroke";
.�63 Ȝ0
8�h%=1�18
B# h$=" "+�(h%):h$=�h$,�(h$)-1,2)
L s$=" "+�(stroke%(h%))
V s$=�s$,�(s$)-1,2)
`E �57,-(h%>9)*2+2+h%)h$" "; len%(h%)" ";par%(h%)" "s$;
j�
t�63 Ȝ64
~)�57,12)"Out ";outdist%" ";outpar%
�'�57,23)"In ";indist%" ";inpar%
�
�63 Ȝ128
�9�56,25)"Total ";outdist%+indist%" ";outpar%+inpar%
��5
�SH%=1:RTN%=�:p%=�
�!�0,25 Ȝ128:ȓȐ0,164,850,856
�O�0,25 Ȝ64:�850,1020:�834,1004:�85,850,164:�85,834,180:�85,0,164:�85,16,180
�O�0,25 Ȝ192:�850,1020:�834,1004:�85,0,1020:�85,16,1004:�85,0,164:�85,16,180
��0,14 Ȝ128
�$�810-�(course$)*16,976:�course$;
��0,63 Ȝ192
�ȗ �
�96,976:�"Select Course"
*SCHOOSE LEFT
�&ED,34,940
�678,236:�"Play";
(*SCHOOSE RIGHT
2�&ED,766,200
<�320,898:�"Players";
F*SCHOOSE UP
P�&ED,448,860:�&ED,448,280
Z*SCHOOSE DOWN
d�&ED,546,860:�&ED,562,280
n@�4:�63 Ȝ192:�153 Ȝ128:�16,7)"Name Style Skill";
x�17,22)"Start hole";
��4:�52 Ȝ128
�*noP%=2:name$(1)="Rob":name$(2)="Peter"
�LH%(2)=�
�ȗȓ18,182,814,821
�ȗ�470,880
��plprint
�
�wt(2)
��s=0�1�.001
�' ȗ�800*s+470*(1-s),220*s+880*(1-s)
��
�*�("SLOAD <Micro$Dir>.CBACK."+csprite$)
�ȗ�
��
��inputshot
"Q�mx%,px%,x%,y%,b%,c%,og%,ox%,lx%,x,y,hx%,rs%,l%,f,tm%,n%,m%,s%,st%,hl%,h%,ob%
,�___SELECT CLUB
6og%=�ongreen
@#�(istshot%)�((��ontee)��obds%)�
J- �640-SC%*44,268:�640+SC%*44,268+ SC%*66
T ș46,270,SP%,"BHDGFR",0
^A �(bhdbl%<24)�bhdbl%>25 � ș 46,290,SP%,"BALL1",640,276
h- �640-SC%*44,268:�640+SC%*44,268+ SC%*66
r ș46,270,SP%,"BHDGFB",0
|) ș46,290,SP%,"BHDGFR",640-SC%*44,268
��
�) ș46,290,SP%,"BHDGFR",640-SC%*44,268
��
�bhdbt2%=Ȝ(640,276):obds%=�
�7�(bhdbl%<24)�bhdbl%>25 ș46,290,SP%,"BALL1",640,276
��SC%=3x$="X"�x$=""
��og%�club%=14:�TtH
��5:�d`F
��aro12(0):�aro34(1)
�>�0,42 Ȝ0:�596,200:�"Aim";:�0,13 Ȝ128:�548,152:�"Select";
��LH%(pu%)�
�5 ș46,290,SP%,x$+"BAG"+�(pu%),640- SC%*26,272,8
�9 ș46,290,SP%,x$+"GFR"+�(pu%)+"0", 640+SC%*10,272,8
�
5 ș46,290,SP%,x$+"BAG"+�(pu%),640+ SC%*10,272,8
9 ș46,290,SP%,x$+"GFR"+�(pu%)+"0", 640-SC%*26,272,8
&�
0ȗ �1,1
:G�(ballx=TEX%(0))�bally=TEY%(0)�ȗȓ0,0,1280,1399 �ȗȓ0,0,1280,1299
DEC2%=�club(yds%-WY%*.38+(�Ght(flagx%,flagy%)-�Ght(ballx,bally))/3)
NA�(bhdbl2%=Bcol%)�(bhdbl%=24)�(bhdbl%=25)C2%=�max(C2%,�(3)+10)
X)YY1%=1499-club%*100:YY2%=1499-C2%*100
b
�wt(1)
l�(5)=1��showplan
vȗ�x%,y%
��s=0�1�.001
� y%=YY1%*(1-s)+YY2%*s
� �b%=1��showplan:ȗ�x%,y%
�" c%=�max(1,�min(13,14-y%�100))
� �c%<>club% �
� �1,-9,120,0
�) �0,42Ȝ64:�548,112:�club$( club%);
�: �club%<14��532,80:�; clubdist%(club%)" Yds";
� club%=c%
� �0,50 Ȝ64
� �548,112:�club$(club%);
�> �club%<14��0,42 Ȝ0:�532, 80:�;clubdist%(club%)" Yds";
� �
�
(ș46,290,SP%,"BHDGFR",640-SC%*44,268
�___aim
>�0,13 Ȝ128:�596,200:�"Aim";:�0,42 Ȝ0:�548,152:�"Select";
*�aro12(1):�aro34(0)
42�club%=14�clubw%=12�clubw%=((13-club%)�3)*4+20
>D�LH%(pu%)�mx%=640-2*SC%+clubw%*SC%/2�mx%=640-18*SC%-clubw%*SC%/2
H.ș46,290,SP%,x$+"GFR"+�(pu%)+"1",mx%,272,8
R+�640,276:�640,276:ș46,270,SP%,"BHDB",0
\ș46,270,SP%,"BHDS",0
f7�(bhdbl%<24)�bhdbl%>25 ș46,290,SP%,"BALL1",640,276
p�0,21 Ȝ64
zy�LH%(pu%)hx%=640+2*SC%+clubw%*SC%/2:�644,276:�5,hx%,268+SC%*22 �hx%=640-2*SC%-clubw%*SC%/2:�636,276:�5,hx%,268+SC%*22
� rs%=�
��:�wt(.2):ȗx%,y%,b%:�b%=0
�ȗȓ0,0,1236,0
�0x%=620:ș46,290,SP%,"SIGHTS",x%,280+SC%*70,3
��club%=14�
� XX2%=x%+SLP%
��
� �yds%>65�
� XX2%=x%-WX%*3.25
� �
� �yds%>30�
� XX2%=x%-WX%*3.25*yds%/65
� �
4 XX2%=x%-WX%*3.25*yds%/65+SLP%*(.5+Gspeed%/10)
�
�
$�
.ȗ �x%,0
8�wt(.5)
B�s=0�1�.001
L ox%=x%
V x%=s*XX2%+(1-s)*x%
` �x%�4<>ox%�4�
j Ȗ
t, ș46,290,SP%,"SIGHTS",ox%,280+SC%*70,3
~+ ș46,290,SP%,"SIGHTS",x%,280+SC%*70,3
� �
� lx%=x%
��
�E�:�wt(.2):ȗx%,y%,b%:�b%=0:ș46,290,SP%,"SIGHTS",lx%,280+SC%*70,3
� �Y21(440):�X21(lx%+22):�XY10
�x=X0-ballx:y=Y0-bally
��x=0�y>0sang=PI90:�dvI
��x=0�y<0sang=PI270:�dvI
��y=0�x<0sang=�:�dvI
��y=0�x>0sang=0:�dvI
�=sang=�(y/x):�(y<0)�x<0�sang=sang+� ��(y>0)�x<0sang=sang-�
�n%=0
�___back swing
l%=LH%(pu%)*2+1
f=clubw%/12
�club%<14�m%=4�m%=10
(tm%=-1:SC=SC%/2
2��yds%>100YY2%=yds%-WY%*.38+(�Ght(flagx%,flagy%)-�Ght(ballx,bally))/2�YY2%=�max(1,yds%-WY%*.38*yds%/150+(�Ght(flagx%,flagy%)-�Ght(ballx,bally))/3)
<8�(bhdbl%=24)�(bhdbl%=25)�bhdbl2%=Bcol%�YY2%=YY2%*1.3
F�club%<14�
P= �(YY2%>100)�ST%=159+�(12)�ST%=(YY2%+3)^.7/24*(149+�(20))
Z�
d@ Ffeet%=feet%*(1+(�Ght(flagx%,flagy%)-�Ght(ballx,bally))/16)
n4 ST%=�min(200,1.4*(Ffeet%+1.8)^.6*(8-Gspeed%/5))
x�
��
� n%=n%+1
� s%=(n%-1)�5+1
� �0,21 Ȝ64
�% x%=((CHX%(n%)+HNX%(n%))*l%*f)*SC
� Ȗ
�) ș46,290,SP%,"BHDGFB",640-SC%*44,268
�3 ș46,290,SP%,x$+"GFR"+�(pu%)+�( s%),mx%,272,8
�. �hx%-HNX%(n%)*l%*SC,268+(44+HNY%(n%) )*SC
�6 �5,hx%-HNX%(n%)*l%*SC+x%,268+(44+ CHY%(n%))*SC
� �tm%=-1tm%=�
�
st%=0
� �
st%=�-tm%
�(�-tm%)>n%*m%
�(st%>=ST%)�((n%=25)�SC%=3)
"�st%=0st%=�-tm%
,�club%=14 �
6 power=st%/201
@�
J power=st%/165
T �power>1 �
^ power=1+(power-1)/2
h$ power=power-(�(1)*(power-1)*3)
r �
|�
��wt(.3)
�ss%=(s%<6):hl%=n%:n%=n%+1
�h%=0
�.�club%=14�C%=2��R%�C%=6��club%<3�C%=1�C%=5
�S%=�
��__DOWNswing
� ob%=0
��
�
tm%=�
� n%=n%-1
�( �ss%�s%=(n%-1)�5+1 �s%=17-(n%- 1)�5
� �0,21 Ȝ64
�# x%=(CHX%(n%)+HNX%(n%))*l%*f*SC
9 �S%�(n%<6)�C%<>2��C%,-6- �min(power*10,9),0,0:S%=�
Ȗ
) ș46,290,SP%,"BHDGFB",640-SC%*44,268
&3 ș46,290,SP%,x$+"GFR"+�(pu%)+�( s%),mx%,272,8
0. �hx%-HNX%(n%)*l%*SC,268+(44+HNY%(n%) )*SC
:6 �5,hx%-HNX%(n%)*l%*SC+x%,268+(44+ CHY%(n%))*SC
D �
N ob%=b%
X �(�-tm%)>m%/4
b �n%=0
lhook=�(1)*.3-.15
v"�C%=2�2,-9-�min(power*7,6),0,0
�
manx%=mx%
��
�
�
���continue
���0,42 Ȝ64:�468,44:�816,44:�85,468,208:�85,816,208:�0,48 Ȝ0:�468,188:�"Continuing?";:ș46,290,SP%,"MOUSE",608,60,8:�wt(1):holeout%=(�(2)=1)
��
�
�
���showplan
��x%,y%,b%,t%,c%,bx,by
�*FX113,1
�*FX112,1
bx=ballx(pu%):by=bally(pu%)
c%=�bx,by):t%=Ȝ(bx,by)
�0,63Ȝ192:Ȓbx,by
�wt(4)
*�0,c%Ȝt%:Ȓbx,by
4*FX113,0
>*FX112,0
H�
R
\
f��scorecard
p�i%,c$,s%,l%,p%,s$,h$
z �n$()
�
�n$(noP%)
��12:�23;8202;0;0;0;
��0,16*5, 16*7, 16*5
��1,16*12,16*15,16*12
��2,16*13,16*10,16*7
��3,16*13,16*8, 16*4
��4,16*14,16*11,16*1
��5,16*15,16*15,16*2
��6,16*15,16*15,16*15
��7,16*11,16*11,16*15
��8,16*6, 16*10,16*6
��9,16*12,16*15,16*11
��0,8
)�0,944:�5,1280,944:�0,720:�5,1280,720
)�0,400:�5,1280,400:�0,200:�5,1280,200
+�642,944:�5,642,200:�640,944:�5,640,200
$-�1014,944:�5,1014,200:�356,944:�5,356,200
.�640,270:�5,1280,270
8#parsofar%=parsofar%+par%(hole%)
B/�i%=1��(course$):c$=c$+�course$,i%,1)+" ":�
L�1:�'�40-�(c$)�2)c$
V�i%=1�noP%
`< n$(i%)=" "+name$(i%):n$(i%)=�n$(i%),�(n$(i%))-5,6)
j�
t�4
~�l%=1�6
� �p%=1�noP%
�# �p%*4+21,l%+2)�n$(p%),l%,1);
�# �p%*4+62,l%+2)�n$(p%),l%,1);
� �
��
��(2)
�#�1,8) "Hole Yards Par Str.";
�#�42,8)"Hole Yards Par Str.";
��3
��h%=1�18
�# h$=" "+�(h%):h$=�h$,�(h$)-1,2)
�, s$=" "+�(stroke%(h%)):s$=�s$,�(s$)-1,2)
�h%<10��31,2,h%+9��31,43,h%
. �h$" ";len%(h%)" ";par%(h%)" "s$;
�
*�1,20)"Out ";outdist%" ";outpar%;
((�43,20)"In ";indist%" ";inpar%;
2+�42,22)"Out ";outdist%" ";outpar%;
<;�41,24)"Total ";outdist%+indist%" ";outpar%+inpar%;
F�i%=1�noP%
P3 totscore%(i%)=totscore%(i%)+score%(i%, hole%)
Z* �hole%=9�outscore%(i%)=totscore%(i% )
d�
n�h%=1�hole%
x �p%=1�noP%
� s%=score%(p%,h%)
�" �s%>0�s$=" "+�(s%)�s$=" "
� s$=�s$,�(s$)-2,3)
�- �h%<10 �31,p%*4+19,h%+9 ��31,p%*4+60,h%
�& �s%>par%(h%)�5��s%=par%(h%)�6��7
�
�s$;
� �
��
��(hole%>8)�SH%=1�
� �p%=1�noP%
� s%=outscore%(p%)
�% s$=" "+�(s%):s$=�s$,�(s$)-2,3)
�$ �s%>outpar%�5��s%=outpar%�6��7
- �31,p%*4+20,20:�s$;:�31,p%*4+60,22:�s$;
�
�
"�(hole%=18)�SH%=1�
, �p%=1�noP%
6D s%=totscore%(p%)-outscore%(p%):s$=" "+�(s%):s$=�s$,�(s$)-2,3)
@" �s%>inpar%�5��s%=inpar%�6��7
J �31,p%*4+60,20:�s$;
T �
^�
h�p%=1�noP%
r s%=totscore%(p%)
|( �s%>parsofar%�5��s%=parsofar% �6��7
� �(hole%=18)�SH%=1�
� s$=" "+�(s%)
� �
� s%=s%-parsofar%
�? �s%=0s$=" E"��s%<0s$=" -"+�(�(s%))�s$=" +"+�(�(s%) )
� �
�* s$=�s$,�(s$)-2,3):�31,p%*4+60,24:�s$;
��
��9
�|�hole%<18��12,29)"Click ANY mouse key to continue, ALL mouse keys to quit" ��24,29)"Press ALL mouse keys to continue"
�goon%=�:�hole%=18�goon%=�
�
�wt(5)
��
��inirnd
&
�i%,j%,s$
0�#Z%,course$
:�#Z%,LINKS%
D�#Z%,fc1%,ft1%,fc2%,ft2%
N�#Z%,FC1%,FC2%
X�#Z%,Bdepth,Bcol%
b�#Z%,Gspeed%
l�#Z%,rough%
v�#Z%,avwind%
�windang=�(1)*PI360
�wind%=�(1)*(18+avwind%)
�(�#Z%,outpar%,inpar%,outdist%,indist%
���#Z%,s$:��s$,1)="@"
��i%=1�18
�' �#Z%,len%(i%),par%(i%),stroke%(i%)
��
��i%=1�4:OLH%(i%)=LH%(i%):�
��playersin
��i%=1�4
� teeorder%(i%)=i%
�$ totscore%(i%)=0:outscore%(i%)=0
� �j%=1�18:score%(i%,j%)=0:�
�
parsofar%=0
�
*
4�******
>
H
��init
R�i%,len%
\�SP% &56900:!SP%=&56900
f6ș "OS_File",5,"<Micro$Dir>.Compress" � i%,,,,len%
p*� i% <>1 � � 1,"Compress File Missing"
zi%=SP%+&56900-len%-&40
�(�("LOAD <Micro$Dir>.Compress "+�~i%)
�� pass=0 � 2 � 2
�P%=i%+len%
�
[OPT pass
� .code
�
ADR R0,to
�LDR R2,[R0],#4
�LDR R3,[R0],#4
�LDR R4,[R0],#0
�.unpack
�LDRB R0,[R3],#1
�LDRB R1,[R3],#1
� .loop
STRB R0,[R2],#1
SUBS R1,R1,#1
BNE loop
$
CMP R3,R4
.BNE unpack
8MOV PC,R14 ;return
B.to
LEQUD SP%
V .from
`EQUD i%
j.finish
t
EQUD code
~]
��
�
� code
�(CC%=1:PI90=�/2:PI270=3*�/2:PI360=2*�
�� SCALE% 16
�S%=�(-�*�(��$,23,2)))
� �X%(21),Y%(21),C%(21),H%(21)
�0�GH%(5),GX%(5),GY%(5),GRX%(5),GRY%(5),exp(5)
�,�GNC%(40),GNO%(40),GNX%(40,7),GNY%(40,7)
��CF$(20)
�#�T$(24),TW%(24),TH%(24),TL%(24)
�$�TEX%(6),TEY%(6),TEX2(6),TEY2(6)
��OBX%(25),OBY%(25)
�SBX1(3),SBY1(3),SBP%(3)
3�Bco%(12),Bx%(12,28),By%(12,28),Bx2(28),By2(28)
#�Wco%(30),Wx%(30,12),Wy%(30,12)
P�treex%(100),treey%(100),treetyp%(100),Otyp%(160),OX1(160),OY1(160),SO%(160)
((�HNX%(45),HNY%(45),CHX%(45),CHY%(45)
2T�len%(18),par%(18),stroke%(18),clubvelx(13),clubvelz(13),clubdist%(13),club$(14)
<|�score%(4,18),totscore%(4),outscore%(4),name$(4),teeorder%(4),ballx(4),bally(4),bhdbl%(4),holed%(4),OLH%(4),LH%(4),SK(4)
F�BRX%(20),BRY%(20)
P�i%=1�13
Z7 �clubvelx(i%),clubvelz(i%),clubdist%(i%),club$(i%)
d�
nclub$(14)="Putter"
x�i%=0�45:�HNX%(i%):�
��i%=0�45:�HNY%(i%):�
��i%=0�45:�CHX%(i%):�
��i%=0�45:�CHY%(i%):�
�TSC=1.4
��i%=1�24
�$ �T$(i%),TW%(i%),TH%(i%),TL%(i%)
� TW%(i%)=TW%(i%)*TSC
� TH%(i%)=TH%(i%)*TSC
� TL%(i%)=TL%(i%)*TSC
��
�
noP%=1
�+�i%=1�4:OLH%(i%)=�:LH%(i%)=�:SK(i%)=1:�
��
��whichcourse
"�a%
,(*ENUMDIR <Micro$Dir>.CDATA RAM:CLIST
6CF$()=""
@Y%=�("RAM:CLIST")
J NC%=0
T�
^ a%=�#Y%
h NC%=NC%+1
r �
| CF$(NC%)=CF$(NC%)+�(a%)
�
a%=�#Y%
� �(a%=10)��#Y%
� ��#Y%
��("RAM:CLOSE")
�
�cmenu
�
�I%��d~U
��
�c�� �15:�"INVALID COURSE DISK - Load correct disk in DRIVE 0 and press SPACEBAR":���(-99):�dVU
�"*SET Micro$Dir :0.$.!Micro_Drv
�(*ENUMDIR <Micro$Dir>.CDATA RAM:CLIST
�� �
� �TvU
�@�("COPY <Micro$Dir>.CDATA."+csprite$+" RAM:$.COURSE F ~C~V")
�
&��cscenario(c%)
0$�a$,w$,l%,i%,i,d%,p%,c$,x%,y%,b%
:�ȗx%,y%,b%:�b%=0
D&Z%=�("<Micro$Dir>.CDATA."+CF$(c%))
N�#Z%,c$
X�i%=1�12:�#Z%,i:�
b�#Z%,p%:�#Z%,i:p%=p%+i
l�#Z%,d%:�#Z%,i:d%=d%+i
v�0,40Ȝ64:ȗ �
�ȓȐ0,0,1280,1100
�)�("SLOAD <Micro$Dir>.CLOAD."+CF$(c%))
�*SCHOOSE MENU
��8,0
��&ED,460,620
��0,18Ȝ0
�#�480,980:�;d%" Yards Par ";p%
�x%=80:y%=580:�0,48Ȝ0
��
� �#Z%,s$:w$=""
� �i%=1��(s$)
� a$=�s$,i%,1):�a$="#"a$=","
�! �(a$<>" ")�a$<>"@"�w$=w$+a$
�(i%=�(s$))�a$=" "�
l%=�(w$)*16+16
! �x%+l%>1200�x%=80:y%=y%-36
�x%,y%:�;w$;:x%=x%+l%
* w$=""
4 �
> �
H��s$,1)="@"
R�#Z%
\�ȗx%,y%,b%:�b%<>0
f�
p
z
�
��plprint
�
�s$,i%
�
�153Ȝ128
�$s$=" "+�(SH%):s$=�s$,�(s$)-1,2)
��32,22)s$;
��32,4)�(noP%);
�
�191Ȝ192
��i%=1�noP%
� s$=�name$(i%)+" ",6)
� �15,7+i%*3)s$;
�0 �LH%(i%)s$="Left-handed "�s$="Right-handed"
� �23,7+i%*3)s$;
�< �SK(i%)=1s$=" Hard "��SK(i%)=1.5s$="Medium"�s$=" Easy "
�37,7+i%*3)s$;
�0,0
�("SCHOOSE G"+�(i%))
$ �&ED,120,768-i%*96
. �0,63Ȝ192
8$ �240,800-i%*96:�5,334,800-i%*96
B$ �368,800-i%*96:�5,558,800-i%*96
L$ �592,800-i%*96:�5,686,800-i%*96
V �0,0Ȝ0
`5 �236,804-i%*96:�5,336,804-i%*96:�5,336,764-i%*96
j& �5,236,764-i%*96:�5,236,804-i%*96
t$ �238,804-i%*96:�5,238,764-i%*96
~$ �338,804-i%*96:�5,338,764-i%*96
�$ �364,804-i%*96:�5,562,804-i%*96
�7 �5,562,764-i%*96:�5,364,764-i%*96:�5,364,804-i%*96
�$ �366,804-i%*96:�5,366,764-i%*96
�$ �564,804-i%*96:�5,564,764-i%*96
�$ �590,804-i%*96:�5,692,804-i%*96
�7 �5,692,764-i%*96:�5,590,764-i%*96:�5,590,804-i%*96
�$ �588,804-i%*96:�5,588,764-i%*96
�$ �690,804-i%*96:�5,690,764-i%*96
��
��
�
�
��drawplan
B�x%,y%,xs%,ys%,i%,j%,s%,ms,s,c%,lx%,ly%,ux%,uy%,s$,l%,w$,a$,p%
*FX112,1
istshot%=�:pu%=0
(:�hole%<10fcol%=fc1%:ftint%=ft1%�fcol%=fc2%:ftint%=ft2%
2holeout%=�:obds%=�
<9�DR%��:�0,24Ȝ0:�8,8:�5,8,376:�85,1268,8:�85,1268,376
FC�#Z%,x%,y%:�x%*2,y%*2:�#Z%,x%,y%:�x%*2,y%*2:�0,4Ȝ64:�#Z%,x%,y%
P�
Z �DR%��85,x%*2,y%*2
d �#Z%,x%,y%
n
�x%=-1
x?�#Z%,x%,y%:�x%*2,y%*2:�#Z%,x%,y%:�x%*2,y%*2:�0,8:�#Z%,x%,y%
��
� �DR%��85,x%*2,y%*2
� �#Z%,x%,y%
�
�x%=-1
�$�i%=0�6:�#Z%,TEX%(i%),TEY%(i%):�
��0,28Ȝ0
�R�DR%��TEX%(1),TEY%(1):�TEX%(2),TEY%(2):�85,TEX%(3),TEY%(3):�85,TEX%(4),TEY%(4)
��#Z%,holeang,teeang
� �0,12
�
�#Z%,GNS%
��s%=1�GNS%
� �#Z%,GNC%(s%),GNO%(s%)
� �c%=1�GNC%(s%)
" �#Z%,GNX%(s%,c%),GNY%(s%,c%)
�DR%�
A �c%<3��GNX%(s%,c%),GNY%(s%,c%)��85,GNX%(s%,c%),GNY%(s%,c%)
" �
, �
6�
@�#Z%,lx%,ly%,ux%,uy%
J�i%=1�5
T3 �#Z%,GH%(i%),GX%(i%),GY%(i%),GRX%(i%),GRY%(i%)
^�
h�DR%��t^[
r�
| flagx%=lx%+�(ux%-lx%)
� flagy%=ly%+�(uy%-ly%)
�� p%=((�flagx%,flagy%)=12)�(�flagx%+10,flagy%)=12)�(� flagx%,flagy%+10)=12)�(�flagx%-10,flagy%)=12)�(�flagx%, flagy%-10)=12))
� �p%��d~Z
� ms=0
� �xs%=-2�2�2
� �ys%=-2�2�2
�" x%=flagx%+xs%:y%=flagy%+ys%
�8 s=�Rht(x%,y%):s=�slopex(x%,y%)^2+�slopey(x%,y%)^2
� �s>ms ms=s
� �ms>.0096 xs%=3:ys%=3
� �
� �
��(ms<.0096)�p%
��0,0
�Ȓflagx%,flagy%
�
�3,1Ȝ128
�"trees%=0:i%=1:�#Z%,treetyp%(1)
�ȕtreetyp%(i%)<>-1
� trees%=trees%+1
� �#Z%,treex%(i%),treey%(i%)
�= �DR%��treex%(i%),treey%(i%):� &99,TW%(treetyp%(i%))/15,0
� i%+=1:�#Z%,treetyp%(i%)
��
��0,10Ȝ192
��#Z%,Bnks%
��Bnks%=0��tX\
�i%=1�Bnks%
�#Z%,Bco%(i%)
�j%=0�Bco%(i%)
�#Z%,Bx%(i%,j%),By%(i%,j%)
* �
4 �DR%��Df\
>' �Bx%(i%,Bco%(i%)),By%(i%,Bco%(i%))
H �j%=1�Bco%(i%)
R4 �Bx%(i%,0),By%(i%,0):�85,Bx%(i%,j%),By%(i%,j%)
\ �
f�
p
�#Z%,BRP%
z�i%=1�BRP%
� �#Z%,BRX%(i%),BRY%(i%)
��
��0,36Ȝ192
��#Z%,Wa%:�Wa%=0��Td]
�
�i%=1�Wa%
� �#Z%,Wco%(i%)
� x%=0:y%=0
� �j%=1�Wco%(i%)
� �#Z%,Wx%(i%,j%),Wy%(i%,j%)
�' x%=x%+Wx%(i%,j%):y%=y%+Wy%(i%,j%)
� �DR%�
�= �j%<3��Wx%(i%,j%),Wy%(i%,j%)��85,Wx%(i%,j%),Wy%(i%,j%)
� �
�
0 Wx%(i%,0)=x%�Wco%(i%):Wy%(i%,0)=y%�Wco%(i%)
�
$�#Z%,OBC%:�OBC%=0��D~]
. �3,15
8�#Z%,OBX%(0),OBY%(0)
B%�OBX%(0),OBY%(0):�OBX%(0),OBY%(0)
L�i%=1�OBC%
V �#Z%,OBX%(i%),OBY%(i%)
`3 �DR%��85,OBX%(i%),OBY%(i%):�85,OBX%(0),OBY%(0)
j�
t�DR%��tp]
~e�0,18:�0,0:�5,0,384:�5,1276,384:�5,1276,0:�5,0,0:�0,19:�4,4:�5,4,380:�5,1272,380:�5,1272,4:�5,4,4
�6�0,61Ȝ0:�0,388:�0,1024:�85,1280,388:�85,1280,1024
��5:�0,3Ȝ0
�^�32,982:�"Hole ";hole%": ";len%(hole%)" yards par ";par%(hole%)", stroke ";stroke%(hole%)
�x%=32:y%=916:�0,36Ȝ128
��
� �#Z%,s$:w$=""
� �DR%��Tr^
� �i%=1��(s$)
� a$=�s$,i%,1)
�! �(a$<>" ")�a$<>"@"�w$=w$+a$
� �(i%=�(s$))�a$=" "�
� l%=�(w$)*32+32
! �x%+l%>1248�x%=32:y%=y%-44
�x%,y%:�;w$;:x%=x%+l%
w$=""
�
( �
2��s$,1)="@"
<*FX112,0
F�i%=1�noP%
P score%(i%,hole%)=0
Z( ballx(i%)=TEX%(0):bally(i%)=TEY%(0)
d holed%(i%)=�:bhdbl%(i%)=28
n�
x�
�
�
���drawshot
���da,YS%,XS%,YS2%,XS2%,s%,ps%,x,y,bz2a%,bz2b%,bz2c%,bz2d%,i%,x2,y2,p1x%,p1y%,p1c%,p1h%,p2x%,p2y%,p2c%,p2h%,p3x%,p3y%,p3c%,p3h%,p4x%,p4y%,p4c%,p4h%,pmc%,cury%,curobj%,OY1,CY1,OY11,y2YS%,y2YS2%,p12h%,p34h%,p13D2%,p24D2%,p12D2%,p34D2%,p1234D4%
��23;8202;0;0;0;
�drw%+=1
�(YS%=12:XS%=256:YS2%=YS%�2:XS2%=XS%�2
�@windang=�ang(windang+�(1)*.2-.1):wang0=�ang(windang-holeang)
�'wind%=�max(0,�min(35,wind%+�(3)-2))
��holeout%�pu%=�next
�0SL=SK(pu%):ballx=ballx(pu%):bally=bally(pu%)
�5feet%=�dist:yds%=feet%/3:�drw%=1club%=�club(yds%)
�I�(yds%>25)���ongreen SC%=2�SC%=3:YS%=32:XS%=320:YS2%=YS%�2:XS2%=XS%�2
SC7%=SC%*735391
1�ballx=TEX%(0)�bally=TEY%(0)�ang=teeang:�D|_
!x=flagx%-ballx:y=flagy%-bally
"�(x)<.00001�
, �y>0ang=PI90 �ang=PI270
6�
@ �(y)<.00001�
J �x<0ang=� �ang=0
T �
^: ang=�(y/x):�(y<0)�x<0�ang=ang+� ��(y>0)�x<0ang=ang-�
h �
r�
|.ang=ang+devang:cosang=�(ang):sinang=�(ang)
��(ang-PI90)<.00001�
�) �ang<PI90 tanang=10000�tanang=-10000
��
� �(ang-PI270)<.00001�
�+ �ang<PI270 tanang=10000�tanang=-10000
� �
� tanang=�(ang)
� �
��
�'AN=PI90-ang:sinAN=�(AN):cosAN=�(AN)
�.wang2=�ang(wang0-ang):da=�ang(ang+holeang)
��da<0da=da+PI360
��ontee �istshot%��tbf
�obds%��tbf
�XY01(flagx%,flagy%):fy1%=Y1
�i%=1�trees%
& Otyp%(i%)=treetyp%(i%)
07 �XY01(treex%(i%),treey%(i%)):OX1(i%)=X1:OY1(i%)=Y1
:�
D�i%=1�GNS%
N Otyp%(i%+trees%)=100+i%
XE �XY01(GNX%(i%,1),GNY%(i%,1)):OX1(i%+trees%)=X1:OY1(i%+trees%)=Y1
b�
lobjs%=trees%+GNS%
v�Bnks%=0��t|`
��i%=1�Bnks%
� Otyp%(i%+objs%)=200+i%
�A �XY01(Bx%(i%,0),By%(i%,0)):OX1(i%+objs%)=X1:OY1(i%+objs%)=Y1
��
�objs%=objs%+Bnks%
��Wa%=0��dn`
�
�i%=1�Wa%
� Otyp%(i%+objs%)=400+i%
�A �XY01(Wx%(i%,0),Wy%(i%,0)):OX1(i%+objs%)=X1:OY1(i%+objs%)=Y1
��
�objs%=objs%+Wa%
��OBC%=0��T`a
��i%=1�OBC%
! Otyp%(i%+objs%)=500+i%
!? �XY01(OBX%(i%),OBY%(i%)):OX1(i%+objs%)=X1:OY1(i%+objs%)=Y1
!�
! objs%=objs%+OBC%+1
!*GOtyp%(objs%)=301:�XY01(TEX%(0),TEY%(0)):OX1(objs%)=X1:OY1(objs%)=Y1
!4curobj%=1:�sortobjs
!>/�0,0Ȝ0:�0,0:�1280,0:�85,0,250:�85,1280,250
!H SB%=0
!R�(��ontee)�noP%>1�
!\ �whose
!f �i%=1�noP%
!p �(i%<>pu%)��holed%(i%)�
!z( �(bhdbl%(i%)<>24)�bhdbl%(i%)<>25�
!�" �XY01(ballx(i%),bally(i%))
!� �Y1>160�
!� SB%=SB%+1
!�" SBX1(SB%)=X1:SBY1(SB%)=Y1
!� SBP%(SB%)=�
!� �
!� �
!� �
!� �
!��
!�ballz=�Ght(ballx,bally)
!�H�0,56Ȝ192:�0,1024:�0,SC%*150+500:�85,1280,1024:�85,1280,SC%*150+500
!�K�0,8-LINKS%Ȝ64:�0,SC%*150+500:�0,260:�85,1280,SC%*150+500:�85,1280,260
"x%=da/PI360*12800
"�0,0
"�("SCHOOSE "+csprite$)
"$ �x%<1280��&ED,x%,500+SC%*150
".�&ED,x%-12800,500+150*SC%
"8�Y12(OY1(SO%(1))+40)
"B'y2=�min(Y2+40,260*SC%+278):�Y21(y2)
"L
OY1=Y1
"Vbz2c%=�ht2(ballz,Y1)
"`�x2=0�1280�XS%
"j i%=x2 �XS%+1
"t
�X21(x2)
"~
�XY10
"� X%(i%)=X0:Y%(i%)=Y0
"� C%(i%)=�planpt(X0,Y0)
"� H%(i%)=�ht2(�Ght(X0,Y0),Y1)
"��
"�
y2=y2-YS%
"��
"� YS2%=YS%�2
"�0 p3x%=X%(1):p3y%=Y%(1):p3c%=C%(1):p3h%=H%(1)
"� �Y21(y2):CY1=Y1
"� �OY1<180��tPd
"� �X21(0):�XY10
"�B p4x%=X0:p4y%=Y0:p4c%=�planpt(X0,Y0):p4h%=�ht2(�Ght(X0,Y0),Y1)
# ; bz2a%=bz2c%:bz2c%=�ht2(ballz,Y1):bz2b%=(bz2a%+bz2c%)�2
#
0 X%(1)=p4x%:Y%(1)=p4y%:C%(1)=p4c%:H%(1)=p4h%
# �x2=XS%�1280�XS%
# i%=x2 �XS%+1
#(- p1x%=p3x%:p1y%=p3y%:p1c%=p3c%:p1h%=p3h%
#2- p2x%=p4x%:p2y%=p4y%:p2c%=p4c%:p2h%=p4h%
#<5 p3x%=X%(i%):p3y%=Y%(i%):p3c%=C%(i%):p3h%=H%(i%)
#F �X21(x2):�XY10
#PC p4x%=X0:p4y%=Y0:p4c%=�planpt(X0,Y0):p4h%=�ht2(�Ght(X0,Y0),Y1)
#Z5 X%(i%)=p4x%:Y%(i%)=p4y%:C%(i%)=p4c%:H%(i%)=p4h%
#d- OY11=OY1-Y1:x2XS%=x2-XS%:x2XS2%=x2-XS2%
#n! y2YS%=y2+YS%:y2YS2%=y2+YS2%
#x% p12h%=p1h%+p2h%:p34h%=p3h%+p4h%
#�/ p13D2%=(p1h%+p3h%)�2:p24D2%=(p2h%+p4h%)�2
#�# p12D2%=p12h%�2:p34D2%=p34h%�2
#� p1234D4%=(p12h%+p34h%)�4
#�( sm%=(p2h%+p4h%-p1h%-p3h%)*100/OY11
#�9 s12%=(p2h%-p1h%)*200/OY11:s34%=(p4h%-p3h%)*200/OY11
#�C pmc%=�planpt((p1x%+p2x%+p3x%+p4x%)�4,(p1y%+p2y%+p3y%+p4y%)�4)
#� �gcolr(p1c%,s12%)
#�& �x2XS%,�DH(y2YS%+p1h%-bz2a%,OY1)
#�) �x2XS%,�DH(y2YS2%+p12D2%-bz2b%,OY1)
#�, �85,x2XS2%,�DH(y2YS%+p13D2%-bz2a%,OY1)
#� �gcolr(pmc%,sm%)
#�/ �85,x2XS2%,�DH(y2YS2%+p1234D4%-bz2b%,OY1)
#�) �85,x2,�DH(y2YS2%+p34D2%-bz2b%,OY1)
$ �gcolr(p3c%,s34%)
$) �x2XS2%,�DH(y2YS%+p13D2%-bz2a%,OY1)
$& �85,x2,�DH(y2YS%+p3h%-bz2a%,OY1)
$" �gcolr(p2c%,s12%)
$," �x2XS%,�DH(y2+p2h%-bz2c%,Y1)
$6) �x2XS%,�DH(y2YS2%+p12D2%-bz2b%,OY1)
$@( �85,x2XS2%,�DH(y2+p24D2%-bz2c%,Y1)
$J �gcolr(pmc%,sm%)
$T/ �85,x2XS2%,�DH(y2YS2%+p1234D4%-bz2b%,OY1)
$^) �85,x2,�DH(y2YS2%+p34D2%-bz2b%,OY1)
$h �gcolr(p4c%,s34%)
$r% �x2XS2%,�DH(y2+p24D2%-bz2c%,Y1)
$|" �85,x2,�DH(y2+p4h%-bz2c%,Y1)
$� �
$�
cury%=Y1
$�3 ȕ(OY1(SO%(curobj%))>cury%+40)�curobj%<objs%+1
$� �Otyp%(SO%(curobj%))<100�
$�y �drawtree(treetyp%(SO%(curobj%)),OX1(SO%(curobj%)),OY1(SO%(curobj%)) ,treex%(SO%(curobj%)),treey%(SO%(curobj%)))
$� �
$� �Otyp%(SO%(curobj%))<200�
$�2 �drawgrn(Otyp%(SO%(curobj%))-100):ps%=ps%+1
$� �
$� �Otyp%(SO%(curobj%))<300�
$�) �drawtrap(Otyp%(SO%(curobj%))-200)
$� �
$� �Otyp%(SO%(curobj%))<400�
% �drawtee
% �
% �Otyp%(SO%(curobj%))<500�
%&& �water(Otyp%(SO%(curobj%))-400)
%0 �
%: �Otyp%(SO%(curobj%))<600�
%D% �post(Otyp%(SO%(curobj%))-500)
%N �
%X �
%b �
%l �
%v �
%� �
%� curobj%+=1
%� �
%� �ps%<900�
%�9 �(ps%=GNS%)�(fy1%>CY1+60)�CY1<100��drawflag:ps%=999
%� �
%� �SB%>0�
%� �i%=1�SB%
%� �SBP%(i%)�
%�E �(SBY1(i%)>CY1+80)�CY1<100�opbl(SBX1(i%),SBY1(i%)):SBP%(i%)=�
%� �
%� �
%� �
&' �(SC%=3)�CY1<720YS%=�min(YS%+4,99)
& y2=y2-YS%:OY1=CY1
&�CY1<100
& �640,276)=36�
&* y%=0
&4 �
&>
y%=y%+4
&H' p%=�640,276-y%):t%=Ȝ(640,276-y%)
&R
�p%=36�
&\( p%=�640,276+y%):t%=Ȝ(640,276+y%)
&f �
&p �(p%<>36)�y%>24
&z �610,280+y%:�670,280+y%
&� �0,p%Ȝt%
&�" �85,610,272-y%:�85,670,272-y%
&��
&�6bhdbl%=bhdbl%(pu%):bhdbl2%=�640,276):ong%=�ongreen
&��drawin
&��
&�
&�
&���inborder
&�]�0,42Ȝ0:�0,0:�5,1276,0:�5,1276,256:�4,4:�5,1272,4:�5,1272,252:�8,8:�5,1268,8:�5,1268,248
&�\�0,42Ȝ128:�0,0:�5,0,256:�5,1276,256:�4,4:�5,4,252:�5,1272,252:�8,8:�5,8,248:�5,1268,248
&��
&�
'
'��drawin
'
�w%,c%,i%
'$
�inborder
'. �0,42Ȝ64:ȓȐ12,12,1252,232
'8&�0,37Ȝ192:�1160,148:�&9D,1200,200
'BZ�0,42Ȝ128:�1160,148:�1120,96:�&A5,1200,200:�0,42Ȝ 0:�1160,148:�1200,200:�&A5,1120,96
'L"�5:�0,63Ȝ192:�1096,64:�"Wind"
'V*�0,37Ȝ128:ȏ1160,148,20:ȏ1160,148,40
'`H�0,37Ȝ0:w%=wind%*1.73:�1160,148:�5,1160-�(wang2)*w%,148+�(wang2)*w%
'j$WX%=-�(wang2)*w%:WY%=�(wang2)*w%
't'�0,15Ȝ128:�844,200:�"Hole ";hole%;
'~!�844,160:�;len%(hole%)" yds";
'�!�844,120:�"Par ";par%(hole%);
'�-�0,15Ȝ0:�844,72:�"Str. ";stroke%(hole%);
'�*�0,42Ȝ0:�820,212:�5,464,212:�5,464,40
'��0,42Ȝ128
'��5,820,40:�5,820,212
'�笤ongreen �
'� �0,42Ȝ0:�596,200:�"Aim";
'�7 �0,13Ȝ128:�548,152:�"Select";:�aro34(1):�aro12(0)
'��
'� �0,13Ȝ128:�596,200:�"Aim";
'�! �548,152:�" Putt";:�aro12(1)
'��
( 笤ongreen �
(
& �0,50Ȝ64:�548,112:�club$(club%);
(0 �0,42Ȝ0:�532,80:�;clubdist%(club%)" Yds" ;
(�
((-�pu%=1c%=3 ��pu%=2c%=16��pu%=3c%=20�c%=31
(2,�0,c%Ȝ128:�16,216:�name$(pu%)" to play"
(<B�16,176:�;score%(pu%,hole%)+1;�TH(score%(pu%,hole%)+1)" shot";
(FR%=�
(P笤ongreen �
(Z �" from";:�16,136
(d �bhdbl2%=Bcol%�
(n R%=�:�"bunker"
(x �
(� �(bhdbl%=24)�bhdbl%=25�
(� R%=�:�"heavy rough"
(� �
(�& �(bhdbl%=4)�(bhdbl%=5)�bhdbl%=10�
(� R%=�:�"light rough"
(� �
(� �(bhdbl%=28)�
(� �"tee"
(� �
(� �"fairway"
(� �
(� �
(� �
) �
)�
)�0,55Ȝ0:�16,96
)"笤ongreen �
), �;yds%" yds to pin"
)6�
)@ �feet%>1�
)J �;feet%" feet away"
)T �
)^2 i%=�max(3,(�dist*12)�3*3):�;i%" inches away"
)h �
)r�
)|�0,63Ȝ0:�16,56:�"Score:";
)��totscore%(pu%)=parsofar% �
)� �"Even"
)��
)�& �;�(totscore%(pu%)-parsofar%)" ";
)�. �totscore%(pu%)>parsofar%�"over"��"under"
)��
)��
)�
)�
)���aro34(b%)
)��b%=1��0,13Ȝ128 ��0,42Ȝ64
)�|�508,156:�492,140:�85,524,140:�500,140:�516,140:�85,500,100:�85,516,100:�0,42Ȝ0:�508,156:�5,488,136:�500,136:�5,500,100
)�W�0,42Ȝ128:�508,156:�5,528,136:�5,516,136:�5,516,100:�5,500,100:�492,136:�5,500,136
*�b%=1��0,13Ȝ128 ��0,42Ȝ64
*��780,100:�760,120:�85,800,120:�772,120:�788,120:�85,772,156:�85,788,156:�0,42Ȝ0:�788,156:�5,772,156:�5,772,120:�5,760,120:�5,780,100:�788,120:�5,800,120
*A�0,42Ȝ128:�788,156:�5,788,120:�800,120:�5,780,100:�5,764,116
*&�
*0
*:
*D��aro12(b%)
*N�b%=1 �0,13Ȝ128 ��0,42Ȝ64
*X|�512,184:�532,204:�85,532,164:�532,192:�532,176:�85,568,192:�85,568,176:�0,42Ȝ0:�512,184:�5,532,204:�532,192:�5,568,192
*bW�0,42Ȝ128:�516,180:�5,532,164:�5,532,176:�5,568,176:�5,568,192:�532,204:�5,532,192
*l�b%=1 �0,13Ȝ128 ��0,42Ȝ64
*v��768,184:�748,204:�85,748,164:�748,192:�748,176:�85,712,192:�85,712,176:�0,42Ȝ0:�748,204:�5,748,192:�5,712,192:�5,712,176:�748,176:�5,748,164
*�A�0,42Ȝ128:�748,204:�5,768,184:�5,748,164:�748,176:�5,712,176
*��
*�
*�
*�
��animate
*��flight
*�8ballx(pu%)=ballx:bally(pu%)=bally:bhdbl%(pu%)=bhdbl%
*�)score%(pu%,hole%)=score%(pu%,hole%)+1
*�istshot%=�:holeout%=�
*�8�(�holed%(pu%))�(ong%)�(noP%>1)��next<>pu%��continue
*��
*�
*�
+��flight
+��oy1,ox2,oby2,osy2,bx,by,bz,bsv,wx,wy,vx,vy,vz,ovel,ox2,oby2,osy2,bh%,bhy%,bs%,bb%,gh,we,he,vxo,bzh,es%,gs%,tt%,TS%,LS%,hf%,hk
+$�ss%�gs%=20:es%=21�gs%=30:es%=32
+ #ht%=-1:tt%=�:TS%=�:LS%=�:bp%=-1
+*$bx=ballx:by=bally:bz=ballz:hf%=�
+4-iw%=�:wx=wind%*�(wang0):wy=wind%*�(wang0)
+>�club%<14�
+H1 power=power*(1.006-power*(�(hook-.1)^1.4)/9)
+R bsv=power*.02
+\% vx=power*clubvelx(club%)*�(sang)
+f% vy=power*clubvelx(club%)*�(sang)
+p vz=power*clubvelz(club%)
+z ovel=power*clubvelx(club%)
+� 笤ontee �
+� fa=�Rht(bx,by)
+�2 fa=(4+vx*�slopex(bx,by)+vy*�slopey(bx,by))/4
+�? vz=vz*fa:vx=vx*2/(1+fa):vy=vy*2/(1+fa):ovel=ovel*2/(1+fa)
+� �
+��
+� bh%=�
+�ox2=640:oby2=276:osy2=276
+�$�____bckspn/effect of rough etc.
+�'bsx=-(power^2)*(ovel+2)*�(sang)*.08
+�'bsy=-(power^2)*(ovel+2)*�(sang)*.08
+�笤ongreen �
+� �(bhdbl2%=Bcol%)�
,- f=1+�(1)*�(1-power):bsx=bsx*f:bsy=bsy*f
, c%=Bdepth*2.5+4.7
, f=1-(16-club%)/16
,$, �club%<c%�f=f*�(1)*�(1)�f=�(1)*(1-f)+f
,. vx=vx*f:vy=vy*f:vz=vz*f
,8 �
,B& �(bhdbl%=4)�(bhdbl%=5)�bhdbl%=10�
,L bsx=bsx*.62:bsy=bsy*.62
,V- f=1-(13-club%+rough%)/60:f=�(1)*(1-f)+f
,` vx=vx*f:vy=vy*f:vz=vz*f
,j �
,t �(bhdbl%=24)�bhdbl%=25�
,~ bsx=bsx/3:bsy=bsy/3
,�? f=�(1-(15-club%)/16):f=f*6/(6+rough%):f=�(1)*�(1)*(1-f)+f
,� vx=vx*f:vy=vy*f:vz=vz*f
,� �
,� �
,� �
,��
,�A%=0
,��club%=14�
,�" �bhdbl2%=Bcol%f=�(1)*�(1)�f=1
,� s%=1
,� vx=f*power^1.3*�(sang)*2.8
,� vy=f*power^1.3*�(sang)*2.8
-
�Tvs
-
�
-hk=hook*(ovel^.8)/25500
-�f%=1�3
-( ivz=vz:TI%=�
-2 �
-<
A%=A%+1
-F9 we=(bz-gh*.3-ballz*.7+2.5*vx*vx+2.5*vy*vy+5)/340000
-P he=�(bz-ballz+50)*hk
-Z vxo=vx*.995+wx*we-he*vy
-d vy=vy*.995+wy*we+he*vxo
-n vx=vxo
-x obx=bx:oby=by
-�3 bx=bx+vx+wx*we:by=by+vy+wy*we:bz+=vz:*FX112,1
-� bhdbl%=�bx,by)
-� *FX112,0
-�! vz=vz-.0193+bsv:bsv=bsv*.98
-�" gh=�Ght(bx,by):�bz<gh �bz=gh
-� �(�hf%)�(bz-gh)<7�
-�( �(flagx%-bx)^2+(flagy%-by)^2<.05�
-� �___hit flag
-�9 vx=vx*(.3-�(1)*.6):vy=vy*(.3-�(1)*.6):bsx=0:bsy=0
-�- vz=vz*�(1):�4,-15+yds%�40,170,1:hf%=�
-� �
-� �
-�3 �(bhdbl%=9)�(bhdbl%=5)�(bhdbl%=22)�bhdbl%=25�
. �__check for tree
. �ht%=-1�ht%=�tree(bx,by)
.$ �Tdist<TW%(treetyp%(ht%))/14�
."& �bz-gh<TH%(treetyp%(ht%))/4.8�
.,' �XY01(treex%(ht%),treey%(ht%))
.6 �Y1>=200�
.@ tt%=�
.J �TL%(treetyp%(ht%))=0�
.T �__hit bush
.^' vx=vx/4:vy=vy/4:vz=vz-�(1)/7
.h0 �LS%LS%=�:�4,-�min(15,9+1300/Y1),0,0
.r �
.|) �bz-gh>TL%(treetyp%(ht%))/2.7�
.� �___hit tree
.�+ vx=vx*(.988-�(1)^4)+(�(1)-.5)/8
.�+ vy=vy*(.988-�(1)^4)+(�(1)-.5)/8
.� vz=vz-�(5)/60
.�1 �LS%LS%=�:�4,-�min(15,9+1300/Y1),0,0
.� �
.�$ �(bb%=1)�(bb%=6)�bb%=63�
.�= tx%=treex%(ht%):ty%=treey%(ht%):v=�(vx*vx+vy*vy)
.� �i%=1�8
.�$ x=(obx*(8-i%)+bx*i%)/8
.�$ y=(oby*(8-i%)+by*i%)/8
.�+ d=�(((x-tx%)^2+(y-ty%)^2))+.1
.� �(d<2)��TS%�
/ �__hit trunk
/ bx=x:by=y
/% vx=(x-tx%)/d*v*.5*�(1)
/&% vy=(y-ty%)/d*v*.5*�(1)
/0 vz=vz-�(1)/5
/:4 i%=9:TS%=�:�3,-�min(15,9+1300/Y1),0,0
/D �
/N �
/X
�
/b �
/l �
/v
�
/� �
/� �
/� ht%=-1:LS%=�:TS%=�
/� �
/� �
/� �XY01(bx,by):�XY12(X1,Y1)
/�? bzh=�ht2(ballz,Y1):bz2=�ht2(bz,Y1)-bzh:sh=�ht2(gh,Y1)-bzh
/� s%=�min(4,(Y1-200)�140+1)
/� �(�bh%)�oy1+.16<Y1 �
/�# �osy2>Y2+sh bh%=�:bhy%=Y2+sh
/� �
/� �bh%�Y2+sh>bhy% bh%=�
/� �
0 oy1=Y1
0 �(A%�4=0) �
0 �(club%<14)�A%<17 �
0 , ș46,290,SP%,"BHDGFR",640-SC%*44,268
0*7 ș46,290,SP%,x$+"GFR"+�(pu%)+�(gs%),manx%,272,8
04 �gs%<es%gs%=gs%+1
0> �
0H �
0R? ș46,290,SP%,"BHDS",ox2,osy2:ș46,290,SP%,"BHDB",ox2,oby2
0\/ �X2,Y2+sh:�X2,Y2+sh:ș46,270,SP%,"BHDS",0
0f@ bs%=�X2,Y2+sh):�X2,Y2+bz2:�X2,Y2+bz2:ș46,270,SP%,"BHDB",0
0p bb%=�X2,Y2+bz2)
0z �(�bh%)�bz>gh �
0�> �bs%<>Bcol%�笤bhdobj(bs%)�ș46,290,SP%,"SHDO",X2,Y2+sh
0� �
0� �((�bh%)�Y2+bz2>bhy%)�
0�+ �((gh=bz)�((bhdbl%=24)�bhdbl%=25))�
0�- �(�bhdobj(bb%)�((vz<0)�(f%>1)�tt%))�
0�, ș46,290,SP%,"BALL"+�(s%),X2,Y2+bz2
0� �
0� �
0� �
0�# ox2=X2:oby2=Y2+bz2:osy2=Y2+sh
0� �-TI%<3�Ȗ
0� TI%=�
0� �gh=bz
1 �____bounce
1 h=�Rht(bx,by)
1' �(flagx%-bx)^2+(flagy%-by)^2<.076�
1$ �(5)=1�
1.$ ș46,290,SP%,"BHDS",X2,Y2+bz2
18 holed%(pu%)=�:�holed:f%=3
1B �
1L �
1V vx=vx-�slopex(bx,by)/4.5
1` vy=vy-�slopey(bx,by)/4.5
1j vz=vz*.04+ivz*(.4+�(1)/13)
1t- fa=1-.46*(power^.5)/f%:vx=vx*fa:vy=vy*fa
1~ �(bhdbl%=4)�(bhdbl%=5)�
1�# vx=vx*.71:vy=vy*.71:vz=vz*.71
1� �
1�0 �(bhdbl%=24)�(bhdbl%=25)��outofbnds(bx,by)�
1� vx=vx*.5:vy=vy*.5:vz=vz*.5
1� �
1� �(bhdbl%=12)�(bhdbl%=0)�
1� vx=vx+bsx:vy=vy+bsy
1� �
1� �(bhdbl%=10)�
1� vx=vx/8:vy=vy/8:vz=vz/8
1�
m%=9999
1� �i%=1�BRP%
2 ? d%=�((bx-BRX%(i%))^2+(by-BRY%(i%))^2):�d%<m%m%=d%:bp%=i%
2
�
2/ vx=vx+(BRX%(bp%)-bx)*(m%+80)*Bdepth/11000
2/ vy=vy+(BRY%(bp%)-by)*(m%+80)*Bdepth/11000
2( �
22 �(bhdbl%=8)�bhdbl%=9�
2<# vx=vx*.79:vy=vy*.79:vz=vz*.79
2F �
2P �(bhdbl%=36)�
2Z+ score%(pu%,hole%)=score%(pu%,hole%)+1
2d2 ș46,290,SP%,"BHDS",X2,Y2+bz2:�inwater:iw%=�
2n Q%=0:R%=16:*FX112,1
2x �cwxy(bx,by)
2� �
2� bx=cwx+�(1)*R%-R%�2
2� by=cwy+�(1)*R%-R%�2
2� Q%=Q%+1:�(Q%�50)=1R%=R%+8
2�l �(�bx,by)<>36)�(�bx+4,by+4)<>36)�(�bx-4,by+4)<>36 )�(�bx-4,by-4)<>36)�(�bx+4,by-4)<>36)�(�bx,by)<>10)
2� *FX112,0
2�
f%=4
2� �
2� �
2� �
2� �
2� �
2� �
3 bsx=bsx*.3:bsy=bsy*.3
3�
3�holed%(pu%)��
3"
�iw%��dVx
3,vx=vx*1.4:vy=vy*1.4
36
�____roll
3@eos%=�:st%=0:rt%=�:hf%=�
3JB%=0:TI%=�
3T�
3^ A%=A%+1:obx=bx:oby=by
3h vx=vx*(.951+Gspeed%/500)
3r vy=vy*(.951+Gspeed%/500)
3|8 bx=bx+vx:by=by+vy:gh=�Rht(bx,by):vxy=�(vx*vx+vy*vy)
3� vx=vx-�slopex(bx,by)/64
3� vy=vy-�slopey(bx,by)/64
3�
*FX112,1
3� bhdbl%=�bx,by)
3�
*FX112,0
3� �rt%�
3�' �(bhdbl%=9)�(bhdbl%=5)�bhdbl%=25�
3� �__check for tree
3� �ht%=-1�ht%=�tree(bx,by)
3�$ �Tdist<TW%(treetyp%(ht%))/14�
3� p%=�X2,Y2+sh+4)
3� �(p%=1)�(p%=6)�p%=63�
3�( tx%=treex%(ht%):ty%=treey%(ht%)
4 v=�(vx*vx+vy*vy)
4( d=�(((bx-tx%)^2+(by-ty%)^2))+.1
4 �(d<5)��TS%�
4& �__hit trunk
40! vx=(bx-tx%)/d*v*�(1)*.8
4:! vy=(by-ty%)/d*v*�(1)*.8
4D rt%=�:TS%=�:�3,-6,0,0
4N
�
4X �
4b �
4l ht%=-1
4v �
4� �
4� �
4� �(bhdbl%=8)�(bhdbl%=9)�
4�+ f=.96+�(1)/40:vx=vx*f:vy=vy*f:vz=vz*f
4� �
4� �(bhdbl%=4)�(bhdbl%=5)�
4�+ f=.93+�(1)/50:vx=vx*f:vy=vy*f:vz=vz*f
4� �
4�0 �(bhdbl%=24)�(bhdbl%=25)��outofbnds(bx,by)�
4�+ f=.89+�(1)/50:vx=vx*f:vy=vy*f:vz=vz*f
4� �
4� �bhdbl%=10�
4� vx=vx*.7:vy=vy*.7
5 �bp%=-1�
5 m%=9999
5 �i%=1�BRP%
5 @ d%=�((bx-BRX%(i%))^2+(by-BRY%(i%))^2):�d%<m%m%=d%:bp%=i%
5* �
54 a%=80:b%=11000
5> �
5H a%=40:b%=80000
5R �
5\, vx=vx+(BRX%(bp%)-bx)*(m%+a%)*Bdepth/b%
5f, vy=vy+(BRY%(bp%)-by)*(m%+a%)*Bdepth/b%
5p �
5z �
5� �
5� �
5� �XY01(bx,by):�XY12(X1,Y1)
5�* bzh=�ht2(ballz,Y1):sh=�ht2(gh,Y1)-bzh
5� �(�bh%)�oy1+.16<Y1 �
5�" �osy2>Y2+sh bh%=�:bhy%=Y2+sh
5� �
5� �bh%�Y2+sh>bhy% bh%=�
5� �
5� oy1=Y1
5� �(A%�4=0)�A%<21 �
5� �gs%<es%+1 �
5�# ș46,290,SP%,"BHDS",ox2,osy2
6+ ș46,290,SP%,"BHDGFR",640-SC%*44,268
66 ș46,290,SP%,x$+"GFR"+�(pu%)+�(gs%),manx%,272,8
6 �ox2,osy2:�ox2,osy2
6$ ș46,270,SP%,"BHDS",0
6._ �bh%�:�((bhdbl%=24)�bhdbl%=25)��(�bhdobj(bb%))� ș46,290,SP%,"BALL"+�(s%),ox2,osy2
68 gs%=gs%+1
6B �
6L �
6V9 PX%=X2:PY%=Y2+sh:BOB%=�bhdobj(bb%):�PX%,PY%:�PX%,PY%
6`: Ȗ:ș46,290,SP%,"BHDS",ox2,osy2:ș46,270,SP%,"BHDS",0
6j bb%=�PX%,PY%)
6tO �bh%��((bhdbl%=24)�bhdbl%=25)��BOB%�ș46,290,SP%, "BALL"+�(s%),PX%,PY%
6~ ox2=X2:osy2=Y2+sh
6� �vxy<.05�
6� st%+=1
6� �st%>40eos%=�
6� �
6� st%=0
6� �
6�& hd=�((flagx%-bx)^2+(flagy%-by)^2)
6� �hd<.076*SL �
6� �vxy<.24*SL �
6�& Ȗ:ș46,290,SP%,"BHDS",X2,Y2+sh
6� �gs%>es%gs%=es%
6�+ ș46,290,SP%,"BHDGFR",640-44*SC%,268
7 6 ș46,290,SP%,x$+"GFR"+�(pu%)+�(gs%),manx%,272,8
7
" �holed:eos%=�:holed%(pu%)=�
7 �
7 vx=vx*.75:vy=vy*.75
7( �
72 �hd<.12*SL �
7< �___rim cup
7F vx=vx+.026*(flagx%-bx)/hd
7P vy=vy+.026*(flagy%-by)/hd
7Z vx=vx*.75:vy=vy*.75
7d �
7n
�hd<1�
7x �(�ong%)��hf%�
7� �i%=1�10
7�" x=(obx*(10-i%)+bx*i%)/10
7�" y=(oby*(10-i%)+by*i%)/10
7�* d=�(((x-flagx%)^2+(y-flagy%)^2))
7� �d<.06�
7� �__hit flag
7� bx=x:by=y:i%=11
7� vx=vxy*(�(1)-.5)
7� vy=vxy*(�(1)-.5)
7�% hf%=�:�4,-15+yds%�40,170,1
7� �
7�
�
7� �
8 �
8 �
8 �
8" �(bhdbl%=36)�
8, 笤outofbnds(bx,by)�
86 score%(pu%,hole%)+=1
8@# ș46,290,SP%,"BHDS",X2,Y2+sh
8J# �inwater:Q%=0:R%=16:*FX112,1
8T �cwxy(bx,by)
8^ �
8h bx=cwx+�(1)*R%-R%�2
8r by=cwy+�(1)*R%-R%�2
8|! Q%=Q%+1:�(Q%�50)=1R%=R%+8
8�r �(�bx,by)<>36)�(�bx+4,by+4)<>36)�(�bx-4,by+4)<> 36)�(�bx-4,by-4)<>36)�(�bx+4,by-4)<>36)�(�bx,by)<> 10)
8� *FX112,0
8�
eos%=�
8� �
8� �
8� �-TI%<5���-TI%=5
8�
TI%=�
8� �eos%
8�D�outofbnds(bx,by) score%(pu%,hole%)+=1:�outb �ballx=bx:bally=by
8�*FX112,1
8�bhdbl%=�ballx,bally)
8�*FX112,0
8��
9
9
9��whose
9&*�inborder:�0,42Ȝ64:ȓȐ12,12,1252,232
90.�0,63Ȝ128:�450,124:�name$(pu%)" to play";
9:�
9D
9N
9X��cwxy(x,y)
9b
�zx,zy
9lzx=6*(x-flagx%)/�(x-flagx%)
9vzy=6*(y-flagy%)/�(y-flagy%)
9�/cwx=x:cwy=y:�cwx+=zx:cwy+=zy:��cwx,cwy)<>36
9��
9�
9�
9�
��inwater
9���8,-15+�max(0,(Y1-250)�80),0,0:�0,42Ȝ64:�468,44:�816,44:�85,468,208:�85,816,208:�0,3Ȝ0:�500,188:�"In water";:�500,140:�"1 stroke";:�500,92:�"Penalty";:�wt(4)
9��
9�
9�
9�
��outb
9�obds%=�:�0,42Ȝ64:�468,44:�816,44:�85,468,208:�85,816,208:�0,3Ȝ0:�468,188:�"Out of bnds";:�468,140:�"Stroke &";:�468,92:�"Distance";:�wt(4)
9��
9�
:
:��holed
:
�s%,p%
: ��7,-15+yds%�40,0,0:s%=score%(pu%,hole%)+1:p%=par%(hole%):�0,42Ȝ64:�468,44:�816,44:�85,468,208:�85,816,208:�0,48Ȝ0:�468,188:�"Holed in ";s%:�468,140
:*��p%-s%=3�"for an":�468,92:�"albatross"��p%-s%=2�"for eagle"��p%-s%=1�"for birdie"��p%-s%=0�"for par"��p%-s%=-1�"for bogey"��p%-s%=-2�"for double":�468,92:�"bogey"��;s%-p%" over par"
:4
�wt(4)
:>�
:H
:R
:\ݤtree(x,y)
:f�d,m%,tw,i%,xd,yd
:pd=9999:m%=1
:z�i%=1�trees%
:� xd=�(x-treex%(i%))
:� �xd>12��d@z
:� yd=�(y-treey%(i%))
:� �yd>12��d@z
:� tw=xd*xd+yd*yd
:� �tw<d �d=tw:m%=i%
:��
:�Tdist=�(d)
:�=m%
:�
:�
:�Sݤbhdobj(c%)=�((c%=12)�(c%=56)�(c%=8)�(c%=9)�(c%=Bcol%)�(c%=0)�(c%=36)�(c%=57))
:�
;
;#��wt(s):�t%:t%=�:���-t%>s*100:�
;
;$
;.��sorthonor
;8
�i%,j%
;B�i%=1�noP%-1
;L �j%=1�noP%-1
;VA �score%(teeorder%(j%),hole%)>score%(teeorder%(j%+1),hole%)�
;`' Ȕ teeorder%(j%),teeorder%(j%+1)
;j �
;t �
;~�
;��
;�
;�
;�
ݤnext
;�
�i%,t%,n%
;��noP%=1�=1
;�笤ontee �=�furthest
;��n%=1�noP%
;� �teeorder%(n%)=pu%�i%=n%
;��
;��
;� i%+=1:�i%>noP%i%=1
<