40END
50 DEFPR0Cvariables
60 scale=0.6
70 xstart=300
80 ystart--200
90 xdoor=360
100 xdist=900
110 ydoor=500
120 ydist=300
130 xbump=300*scale
140 bump_rad=50*scale
150 xchim=100*scale
160 ychim=200*scale
170 chimstart=60*scale
180 xdoorstart=xstart+(xdist*scale)
190 xwind=xdoorstart-30*scale
200 ywind=ystart+(ydist-30)*scale
210 xwinddist=300*scale
220 ywinddist=200*scale
230 wheel_dist=130*scale
240 wheel_rad=100*scale
250 ENDPROC
260 DEFPROCengine
270 PROCrectangle(xstart,ystart,xdist*scale,ydist*scale,1)
280 PROCrectangle(xdoorstart ,ystart,-xdoor*scale ,ydoor*scale,1)
290 PROCrectangle(xwind,ywind,-xwinddist,ywinddist,6)
300 PROCrectangle(xstart+chimstart ,ystart+(ydist*scale) ,xchim,ychim,1)
310 PROCcirc(xstart+wheeldist,ystart,wheel_rad,4)
320 PROCcirc(xdoorstart-wheel_dist,ystart,wheel_rad,4)
330 PROCcirc(xstart+xbump ,ystart+(ydist*scale) ,bump_rad,1)
340 ENDPROC
350 DEFPROCrectangle(x,y,xmove,ymove,col)
360 GCOL 0,col
370 MOVE x,y
380 PLOT 97,xmove,ymove
390 ENDPROC
400 DEFPR0Ccirc(x,y,rad,col)
410 GCOL 0,col
420 MOVE x,y
430 PLOT 153,rad,0
440ENDPROC
The procedures to draw the engine use relative MOVE and DRAW commands.
PROCvariables sets the values of the variables used throughout the rest of the
C 32