Home » Archimedes archive » Archimedes World » AW-1994-02-Disc1.adf » Disk1Feb94 » !AWFeb94/Goodies/Aztec/!AZTECS/azteclib
!AWFeb94/Goodies/Aztec/!AZTECS/azteclib
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-1994-02-Disc1.adf » Disk1Feb94 |
Filename: | !AWFeb94/Goodies/Aztec/!AZTECS/azteclib |
Read OK: | ✔ |
File size: | 5288 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
0REMOSCLISCSI::SCSIDisc4.$.CoverDisks.!AZTECS.azteclib 1REM >azteclib contains PROCS - 2 3DEFPROCpull_variables 4fonts%=!(H%+&00) 5letters%=!(H%+&04) 6sp_on_vga%=!(H%+&08) 7put_sp%=!(H%+&0C) 8sp_name%=!(H%+&10) 9drawit%=!(H%+&14) 10copyscr%=!(H%+&18) 11crunchsp%=!(H%+&1C) 12expandsp%=!(H%+&20) 13cspname%=!(H%+&24) 14nspname%=!(H%+&28) 15blowupscr%=!(H%+&2C) 16sp_on_cga%=!(H%+&30) 17scrolldn%=!(H%+&34) 18scrollup%=!(H%+&38) 19copirow%=!(H%+&3C) 20 21AREA%=H%+4*1024:REM 4K mc 22ENDPROC 23 24DEFPROCput_sp(A%,B%,C%,D%,E%,F%,G%,sp_name$,wleft%,wbottom%,wright%,wtop%,orient%) 25REM A%=screen,(B%,C%)=(x,y),D%=mask col,E%F%G%=behind cols.wl,wb,wr,wt=window for sp.orient%=00normal,&01mirror,&10upsdiedn,&11both 26!(H%+&CC)=orient%>>>4:!(H%+&D0)=orient%AND&0F 27FORlett%=1TOLEN(sp_name$):?(sp_name%+(lett%-1))=ASC(MID$(sp_name$,lett%,1)):NEXT 28IFLEN(sp_name$)<12:FORlett%=LEN(sp_name$)+1TO12:?(sp_name%+(lett%-1))=&00:NEXT 29SYS "OS_SpriteOp",&128,AREA%,sp_name$ TO ,,,sp_wide%,sp_hite% 30sp_hite%=sp_hite%-1:sp_wide%=(sp_wide%/2)-1 31y_row%=INT(C%/4):x_byte%=INT(B%/4) 32sp_visible%=0 33IF (y_row%>INT(wtop% / 4)) OR ((y_row%+sp_hite%)<INT(wbottom% / 4)) OR ((x_byte%+sp_wide%)<INT(wleft% / 4)) OR (x_byte%>INT(wright% / 4)) THEN 34 sp_visible%=1 35ELSE 36 PROCcalc_E0 : REM !(H%+&E0) = start row in sprite image 37 PROCcalc_E4 : REM !(H%+&E4) = no.rows-1 of sprite to display 38 PROCcalc_E8 : REM !(H%+&E8) = starting byte no. in each sprite row 39 PROCcalc_EC : REM !(H%+&EC) = no.bytes-1 to display in each row 40ENDIF 41IFsp_visible%=0:CALL put_sp% 42ENDPROC 43 44DEFPROCcalc_E0 45 IF (y_row%+sp_hite%) <= INT(wtop% / 4) THEN 46 IF (orient%>>>4)=0 THEN 47 !(H%+&E0)=0 48 ELSE 49 !(H%+&E0)=sp_hite% 50 ENDIF 51 !(H%+&D4)=0 52 ELSE 53 IF (orient%>>>4)=0 THEN 54 !(H%+&E0)=sp_hite%-(INT(wtop% / 4)-y_row%) 55 ELSE 56 !(H%+&E0)=INT(wtop% / 4)-y_row% 57 ENDIF 58 !(H%+&D4)=sp_hite%-(INT(wtop% / 4)-y_row%) 59 ENDIF 60ENDPROC 61 62DEFPROCcalc_E4 63 IF INT(wbottom% / 4) <= y_row% THEN 64 IF (orient%>>>4)=0 THEN 65 !(H%+&E4)=sp_hite%-!(H%+&E0) 66 ELSE 67 !(H%+&E4)=!(H%+&E0) 68 ENDIF 69 ELSE 70 IF (orient%>>>4)=0 THEN 71 !(H%+&E4)=sp_hite%-(INT(wbottom% / 4)-y_row%)-!(H%+&E0) 72 ELSE 73 !(H%+&E4)=y_row%+!(H%+&E0)-INT(wbottom% / 4) 74 ENDIF 75 ENDIF 76ENDPROC 77 78DEFPROCcalc_E8 79 IF x_byte% >= INT(wleft% / 4) THEN 80 IF (orient%AND&0F)=0 THEN 81 !(H%+&E8)=0 82 ELSE 83 !(H%+&E8)=sp_wide% 84 ENDIF 85 !(H%+&D8)=0 86 ELSE 87 IF (orient%AND&0F)=0 THEN 88 !(H%+&E8)=INT(wleft% / 4)-x_byte% 89 ELSE 90 !(H%+&E8)=sp_wide%-(INT(wleft% / 4)-x_byte%) 91 ENDIF 92 !(H%+&D8)=INT(wleft% / 4)-x_byte% 93 ENDIF 94ENDPROC 95 96DEFPROCcalc_EC 97 IF (x_byte% + sp_wide%) <= INT(wright% / 4) THEN 98 IF (orient%AND&0F)=0 THEN 99 !(H%+&EC)=sp_wide%-!(H%+&E8) 100 ELSE 101 !(H%+&EC)=!(H%+&E8) 102 ENDIF 103 ELSE 104 IF (orient%AND&0F)=0 THEN 105 !(H%+&EC)=INT(wright% / 4)-x_byte%-!(H%+&E8) 106 ELSE 107 !(H%+&EC)=!(H%+&E8)-(x_byte%+sp_wide%-INT(wright% / 4)) 108 ENDIF 109 ENDIF 110ENDPROC 111 112DEFPROCpalette 113RESTORE +0 114DATA 255,255,255,170,170,170,102,102,102,0,0,0,0,0,153,0,51,255,0,204,255,255,136,0,221,0,0,255,255,0,136,17,0,255,204,153,0,119,34,0,187,0,0,255,34,187,85,0 115FOR i%=0 TO 15:READ r%, g%, b%:VDU 19,i%,16,r%,g%,b%:NEXT 116ENDPROC 117 118DEFPROCwait(delay%) 119a%=TIME:REPEATUNTILTIME>=a%+delay% 120ENDPROC 121 122DEFPROCwords(A%,B%,big%,words$) 123E%=3:IFbig%:C%=320:D%=360:ELSE:C%=240:D%=270 124FORlett%=1TOLEN(words$):?(letters%+(lett%-1))=ASC(MID$(words$,lett%,1)):NEXT 125?(letters%+LEN(words$))=&0D 126CALL fonts% 127ENDPROC 128 129DEFPROCjpwords(A%,B%,big%,words$) 130E%=5:IFbig%:C%=320:D%=360:ELSE:C%=240:D%=270 131FORlett%=1TOLEN(words$):?(letters%+(lett%-1))=ASC(MID$(words$,lett%,1)):NEXT 132?(letters%+LEN(words$))=&0D 133CALL fonts% 134ENDPROC 135 136DEFPROCscrcopy21 137SYS "OS_Byte",113,2:A%=2:B%=1 138CALL copyscr% 139WAIT:SYS "OS_Byte",113,1:SYS "OS_Byte",112,1:VDU 26 140ENDPROC 141 142DEFPROCscrcopy21exp(A%,B%,C%,D%,E%,F%) 143CALL blowupscr% 144ENDPROC 145 146DEFPROCexplode(xpos%,ypos%,auto%) 147REM C%=right speed:D%=down speed:E%=left speed:F%=up speed 148A%=INT(xpos%/4):B%=240-INT(ypos%/4):IFB%>177:B%=177 149IFauto%THEN 150C%=319-A%:D%=179-B%:E%=A%:F%=B%:fact%=C% 151IFD%<fact%:fact%=D% 152IFE%<fact%:fact%=E% 153IFF%<fact%:fact%=F% 154C%=INT(C%/fact%):D%=INT(D%/fact%):E%=INT(E%/fact%):F%=INT(F%/fact%) 155IFC%>6:C%=6 156IFD%>6:D%=6 157IFE%>6:E%=6 158IFF%>6:F%=6 159ENDIF 160B%=(H%!&F0)*B%:D%=(H%!&F0)*D%:F%=(H%!&F0)*F% 161PROCscrcopy21exp(A%,B%,C%,D%,E%,F%) 162ENDPROC 163 164DEFPROClib_initialise 165REMONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:x=GET:PROCdesk_top 166ONERROR:PROCdesk_top 167PROCpull_variables:PROCpalette 168DIM SCALE% 16:!(SCALE%+0)=16:!(SCALE%+4)=16*(H%!&F0):!(SCALE%+8)=16:!(SCALE%+12)=16 169SYS "OS_SpriteOp",&10A,AREA%,"<AZTEC$chaindir>.buttons_c" 170left%=12:low%=256:right%=1267:high%=947 171VDU 23,17,4,1,0,0,0,0,0,0 : REM RISC OS interleaving ECFs 172DIM input_disk_name% 256 173DIM pdrect% 16,pdrect2% 16,pdtrans% 16,pdplot% 8 174DIM scale% 16,ctrans% 256,paltab% 64 175maxbut%=13 176DIM coords%(maxbut%,1),width%(maxbut%),height%(maxbut%),ec_width%(maxbut%),ec_height%(maxbut%),buttype%(maxbut%),labels$(maxbut%),lab_offs%(maxbut%,1) 177DIM but$(2,3),box%(4,1) 178but$(0,0)="button_off":but$(1,0)="button_over":but$(2,0)="button_on" 179but$(0,1)="but_off":but$(1,1)="but_over":but$(2,1)="but_on" 180but$(0,2)="bu_off":but$(1,2)="bu_over":but$(2,2)="bu_on" 181but$(0,3)="butt_off":but$(1,3)="butt_over":but$(2,3)="butt_on" 182PROCexpandbuts 183PROCinit_buts(1000,20,18,16,24,24,1) 184maxsounds%=20 185DIM soundmods$(maxsounds%) 186RESTORE +0 187DATA dig,lightn,grunt,grind,click,turk,yap 188DATA snore,hiccup,swallow,flareup,step,stab,Marked4 189DATA sootthr,MARKED3,engine,goal,steam,rasplg,raspsh 190FORk%=0TOmaxsounds%:READ soundmods$(k%):NEXT 191ENDPROC 192 193DEFPROCexpandbuts 194FORk%=0TO2:FORl%=0TO3:PROCexpand(but$(k%,l%)):NEXT:NEXT 195PROCexpand("mouse") 196ENDPROC 197 198DEFPROCinit_buts(xco%,yco%,wid%,hei%,xoff%,yoff%,butt%) 199FOR b%=0 TO maxbut% 200coords%(b%,0)=xco%:coords%(b%,1)=yco% 201width%(b%)=wid%:height%(b%)=hei% 202lab_offs%(b%,0)=xoff%:lab_offs%(b%,1)=yoff% 203buttype%(b%)=butt% 204NEXT 205ENDPROC 206 207DEFPROCdesk_top 208CLEAR:DIMbuf% 4:FORi%=1TO16:WAIT:FORc%=0TO16:IFc%<16v%=16 ELSE v%=24 209SYS"OS_ReadPalette",c%,v% TO ,,d%:!buf%=d%:FORb%=1TO3:IFbuf%?b%>0buf%?b%-=16:NEXT:ELSE:NEXT 210VDU19,c%,v%,buf%?1,buf%?2,buf%?3:NEXT, 211*FX15 212*FX225,1 213*KEY0 PAGE=&8F00|MOLD|MRUN|M 214*FX138,0,128 215*BASIC 216STOP 217 218DEFPROCadd_sp(scr%,spr$,C%,D%,G%) 219IFscr%=1:A%=H%!&C0:ELSE:A%=H%!&C4 220SYS "OS_SpriteOp",&118,AREA%,spr$ TO ,,B%:B%+=B%!32 221IF(H%!&F0)=2THEN 222D%=2*D% 223CALL sp_on_vga% 224ELSE 225CALL sp_on_cga% 226ENDIF 227ENDPROC 228 229DEFPROCgo_on 230coords%(0,1)=20 231labels$(0)=" Go on" 232PROCchoose_but(1,1,2,0) 233ENDPROC 234 235DEFPROCjpgo_on 236coords%(0,1)=24 237labels$(0)=" Go on" 238PROCchoose_but(1,1,2,18) 239PROCjpcleartext 240ENDPROC 241 242DEFPROCjpinfo 243SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.ONE.jpinfo_c" 244REMIF(L%>2000)AND(L%<3000):SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.TWO.jpinfo_c" 245REMIFL%>3000:SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.THREE.jpinfo_c" 246PROCinit_buts(900,40,24,16,26,24,1) 247labels$(0)=" Jet-pac info" 248PROCchoose_but(1,1,2,16) 249VDU18,0,5 250FORk%=2TO1STEP-1 251SYS"OS_Byte",112,k% 252VDU25,4,12;12;:VDU25,101,1266;18;:VDU25,101,1260;low%-22;:VDU25,101,12;low%-28;:VDU25,101,18;12; 253NEXT 254PROCadd_sp(1,"jpinfo",102,178,6):PROCadd_sp(2,"jpinfo",102,178,6) 255PROCinit_buts(1000,20,18,16,24,24,1) 256ENDPROC 257 258DEFPROCjpend 259PROCdelete("jpinfo"):PROCdelete("jpscan") 260PROCinit_buts(1000,24,22,16,26,24,1) 261labels$(0)=" Jet-pac off" 262PROCchoose_but(1,1,2,16) 263PROCjpedges:SYS"OS_Byte",112,2:PROCjpedges:SYS"OS_Byte",112,1 264VDU26 265PROCinit_buts(1000,20,18,16,24,24,1) 266ENDPROC 267 268DEFPROCjpedges 269VDU18,0,2:VDU25,4,0;244;:VDU25,101,1278;246; 270VDU18,0,0:VDU25,4,8;240;:VDU25,101,1268;242; 271VDU18,0,3:VDU25,4,8;236;:VDU25,101,1268;238; 272VDU18,0,0:VDU25,4,12;232;:VDU25,101,1266;234;:VDU25,101,1264;12; 273VDU18,0,2:VDU25,4,12;230;:VDU25,101,14;12;:VDU25,101,1262;14; 274VDU18,0,1:VDU25,4,16;16;:VDU25,101,1262;230; 275ENDPROC 276 277DEFPROCyesno 278PROCinit_buts(1020,40,16,16,28,24,1) 279coords%(0,0)=820:labels$(0)=" No":labels$(1)=" Yes" 280PROCchoose_but(1,2,2,0) 281PROCinit_buts(1000,20,18,16,24,24,1) 282ENDPROC 283 284DEFPROCposbuttons(nobuts%) 285totwi%=0 286FORk%=0TOnobuts%-1 287IF(buttype%(k%)=0)OR(buttype%(k%)=1):totwi%+=176*(width%(k%)/16) 288IFbuttype%(k%)=3:totwi%+=352*(width%(k%)/16) 289NEXT 290gap%=(1280-24-totwi%)/(nobuts%+1):totwi%=gap%+12:butcnt%=0 291REPEAT 292coords%(butcnt%,0)=totwi% 293IF(buttype%(butcnt%)=0)OR(buttype%(butcnt%)=1):totwi%+=gap%+(176*(width%(butcnt%)/16)) 294IFbuttype%(butcnt%)=3:totwi%+=gap%+(352*(width%(butcnt%)/16)) 295butcnt%+=1 296UNTILbutcnt%=nobuts% 297ENDPROC 298 299DEFPROCchoose_but(scr%,but_no%,lab_yn%,control%) 300REM scr%=screen number, but_no%=number of buttons to plot, lab_yn%=1 if label sprite else words 301REM control% defines various options dependent on bit settings - unset (ie. 0) set (ie 1) 302REM bit 0 loop in PROC until chosen single pass thru PROC 303REM 1 clear text area after choice don't clear text 304REM NB bits 2 and 3 of control% are now ignored XXX 2 MOUSE to right of last box see bit 3 305REM XXX 3 MOUSE to below choice MOUSE to right of choice (if bit 2 set) 306REM 4 use PROCwords (black words) use PROCjpwords (coloured words) 307 IF(control%AND1)=1:oneloop%=TRUE:ELSE:oneloop%=FALSE 308 IF(control%AND2)=0:cleartext%=TRUE:ELSE:cleartext%=FALSE 309 IF(control%AND16)=16:injetpac%=TRUE:ELSE:injetpac%=FALSE 310REMIF(control%AND4)=0:mouseright%=TRUE:ELSE:mouseright%=FALSE 311REMIFNOTmouseright%THEN:IF(control%AND8)=0:mousedown%=TRUE:ELSE:mousedown%=FALSE 312 IF oneloop% THEN 313 IF firstloop%=TRUE : PROCsetup_buts(scr%) : chosen%=20 : last_pos%=20 : firstloop%=FALSE 314 ELSE 315 PROCsetup_buts(scr%) 316 SYS"OS_Byte",21,9 317 MOUSE ON 318 PROCmouse_text 319 last_pos%=20 320 chosen%=20 321 ENDIF 322 *FX15 323 REPEAT 324 IF NOToneloop% : MOUSE m_x%,m_y%,m_but% 325 FOR k%=0 TO but_no%-1 326 PROCscale(k%) 327 IF (m_x%<=coords%(k%,0)+ec_width%(k%)) AND (m_x%>=coords%(k%,0)) AND (m_y%<=coords%(k%,1)+ec_height%(k%)) AND (m_y%>=coords%(k%,1)) THEN 328 IF last_pos%<>k% THEN 329 IF last_pos%<>20 THEN 330 PROCscale(last_pos%) 331 SYS "OS_SpriteOp",&134,AREA%,but$(0,buttype%(last_pos%)),coords%(last_pos%,0),coords%(last_pos%,1),0,SCALE%,0 332 PROCadd_labels(last_pos%,0) 333 ENDIF 334 PROCscale(k%) 335 SYS "OS_SpriteOp",&134,AREA%,but$(1,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 336 PROCadd_labels(k%,1) 337 ENDIF 338 IF m_but%=4 THEN 339 SYS "OS_SpriteOp",&134,AREA%,but$(2,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 340 PROCadd_labels(k%,1) 341 chosen%=k% 342 ENDIF 343 last_pos%=k% 344 ELSE 345 IF last_pos%=k% THEN 346 SYS "OS_SpriteOp",&134,AREA%,but$(0,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 347 PROCadd_labels(k%,0) 348 last_pos%=20 349 ENDIF 350 ENDIF 351 NEXT 352 UNTIL ((chosen%<>20) AND (m_but%=0)) OR oneloop% 353 IF NOToneloop% THEN 354 PROCwait(20) 355REM IFmouseright%THEN 356REM MOUSE TO coords%(but_no%-1,0)+ec_width%(but_no%-1)+24,coords%(but_no%-1,1)+(ec_height%(but_no%-1)/2) 357REM ELSE 358REM IFmousedown%THEN 359REM MOUSE TO coords%(chosen%,0)+(ec_width%(chosen%)/2),coords%(chosen%,1)-24 360REM ELSE 361REM MOUSE TO coords%(chosen%,0)+ec_width%(chosen%)+24,coords%(chosen%,1)+(ec_height%(chosen%)/2) 362REM ENDIF 363REM ENDIF 364 MOUSE OFF 365 IFcleartext%:PROCcleartext 366 ENDIF 367 !(SCALE%+0)=16 : !(SCALE%+4)=16*(H%!&F0) 368ENDPROC 369 370DEFPROCsetup_buts(scr%) 371FOR k%=0 TO but_no%-1 372 IF(buttype%(k%)=0)OR(buttype%(k%)=1):ec_width%(k%)=176*(width%(k%)/16) 373 IFbuttype%(k%)=2:ec_width%(k%)=80*(width%(k%)/16) 374 IFbuttype%(k%)=3:ec_width%(k%)=352*(width%(k%)/16) 375 IF buttype%(k%)=0 THEN 376 ec_height%(k%)=160 * (height%(k%) / 16) 377 ELSE 378 ec_height%(k%)=80 * (height%(k%) / 16) 379 ENDIF 380NEXT 381SYS "OS_Byte",112,scr% 382FOR k%=0 TO but_no%-1 383 PROCscale(k%) 384 SYS "OS_SpriteOp",&134,AREA%,but$(0,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 385 PROCadd_labels(k%,0) 386 REM reducing button height loses bottom line (unless) special short button) so add separately 387 IF height%(k%)<16 AND buttype%(k%)=0 THEN 388 GCOL 3 389 VDU 25,4,coords%(k%,0);coords%(k%,1)-4; 390 VDU 25,5,coords%(k%,0)+ec_width%-2;coords%(k%,1)-4; 391 ENDIF 392NEXT 393ENDPROC 394 395DEFPROCscale(which%) 396 !(SCALE%+0)=width%(which%) : !(SCALE%+4)=height%(which%)*(H%!&F0) 397ENDPROC 398 399DEFPROCadd_labels(which%,drop%) 400IF lab_yn%=1 THEN 401 PROCput_sp(scr%,coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),2,16,16,16,labels$(which%),0,0,1276,1020,&00) 402ELSE 403 IFinjetpac%THEN 404 PROCjpwords(coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),0,labels$(which%)) 405 ELSE 406 PROCwords(coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),0,labels$(which%)) 407 ENDIF 408ENDIF 409ENDPROC 410 411DEFPROCmounts(scr%,m1$,m2$,m3$,mxpos%,mypos%) 412PROCput_sp(scr%,mxpos%,mypos%,15,16,16,16,m1$,left%,low%,right%,high%,&00) 413PROCput_sp(scr%,mxpos%+480,mypos%,15,16,16,16,m2$,left%,low%,right%,high%,&00) 414PROCput_sp(scr%,mxpos%+960,mypos%,15,16,16,16,m3$,left%,low%,right%,high%,&00) 415ENDPROC 416 417 418DEFPROCchoose_box(scr%,box_no%,cl%) 419SYS "OS_Byte",112,scr% 420PROCshow_box 421MOUSE ON 422PROCmouse_graphics 423got_box%=10 424REPEAT 425 MOUSE m_x%,m_y%,m_but% 426 FOR k%=0 TO box_no%-1 427 IF (ABS(m_x%-(box%(k%,0)+32))<32) AND (ABS(m_y%-(box%(k%,1)+32))<32) THEN 428 IF m_but%=4 THEN 429 got_box%=k% 430 ENDIF 431 ENDIF 432 NEXT 433UNTIL (got_box%<>10) AND (m_but%=0) 434MOUSE TO 1184,60 435MOUSE OFF 436IFcl%:PROCcleartext 437PROCshow_box 438ENDPROC 439 440DEFPROCjpchoose_box(scr%,box_no%) 441PROCchoose_box(scr%,box_no%,0) 442PROCjpcleartext 443ENDPROC 444 445DEFPROCjpscan(box_no%) 446PROCjpwords(350,128,-1,".... jet-pac scan in progress ....") 447PROCexpand("jpscan") 448SCALE%!0=16:SCALE%!4=16*(H%!&F0) 449VDU25,4,12;912;:VDU25,98,1254;38; 450FORj%=916TO260STEP-4 451WAIT:SYS"OS_SpriteOp",&134,AREA%,"jpscan",580,j%,&0C,SCALE%,0 452IFj%<916:SYS"OS_SpriteOp",&134,AREA%,"jpscan",580,j%+4,&0C,SCALE%,0 453IFbox_no%>0THEN 454 FORk%=0TObox_no%-1 455 IF((j%+36)>=box%(k%,1))AND((j%+36)<=box%(k%,1)+60):PROCjpscanbox(k%) 456 NEXT 457ENDIF 458IFj%>260:WAIT:VDU25,4,12;j%-8;:VDU25,98,1254;38; 459VDU25,4,12;j%-4;:VDU25,98,1254;38; 460NEXT 461SYS"OS_SpriteOp",&134,AREA%,"jpscan",580,260,&0C,SCALE%,0 462PROCcompact("jpscan") 463PROCjpcleartext 464PROCjpwords(440,128,-1,".... scan complete ....") 465ENDPROC 466 467DEFPROCjpscanbox(k%) 468IF(j%+36)=box%(k%,1)+60:VDU25,4,box%(k%,0);box%(k%,1)+60;:VDU25,98,62;2; 469IF((j%+36)>box%(k%,1))AND((j%+36)<box%(k%,1)+60):VDU25,4,box%(k%,0);j%+36;:VDU25,98,2;2;:VDU25,4,box%(k%,0)+60;j%+36;:VDU25,98,2;2; 470IF(j%+36)=box%(k%,1):VDU25,4,box%(k%,0);box%(k%,1);:VDU25,98,62;2; 471ENDPROC 472 473DEFPROCshow_box 474FOR k%=0 TO box_no%-1 475 VDU 25,4,box%(k%,0);box%(k%,1);:VDU 25,98,62;62; 476 VDU 25,4,box%(k%,0)+4;box%(k%,1)+4;:VDU 25,98,54;54; 477NEXT 478ENDPROC 479 480DEFPROCborders(bleft%,blow%,bright%,bhigh%) 481VDU 24,bleft%;blow%;bright%;bhigh%; 482VDU 18,0,130 : CLG 483VDU 24,bleft%+4;blow%+4;bright%;bhigh%; 484VDU 18,0,129 : CLG 485VDU 24,bleft%+8;blow%+8;bright%-4;bhigh%-4; 486VDU 18,0,128 : CLG 487VDU 24,bleft%+8;blow%+8;bright%-8;bhigh%-8; 488VDU 18,0,131 : CLG 489VDU 24,bleft%+12;blow%+12;bright%-12;bhigh%-12; 490VDU 18,0,128 : CLG 491VDU 24,bleft%+12;blow%+12;bright%-16;bhigh%-16; 492VDU 18,0,130 : CLG 493PROCborder_centre(bleft%,blow%,bright%,bhigh%) 494ENDPROC 495 496DEFPROCborder_centre(bleft%,blow%,bright%,bhigh%) 497VDU 24,bleft%+16;blow%+16;bright%-16;bhigh%-16; 498VDU 18,0,129 : CLG 499VDU 26 500ENDPROC 501 502DEFPROCcleartext 503VDU 24,16;16;1263;low%-25; 504REM VDU 23,12,0,1,1,0,0,1,1,0 : REM define text backgrd ECF 505REM VDU 18,16,128 : CLG 506VDU 18,0,129 : CLG 507VDU 26 508ENDPROC 509 510DEFPROCjpcleartext 511VDU18,0,129:VDU24,20;20;1258;204;:CLG:VDU26 512ENDPROC 513 514DEFPROCcleargraphics(bcol%) 515VDU 24,left%;low%;right%;high%; 516VDU 18,0,128+bcol% : CLG 517VDU 26 518ENDPROC 519 520DEFPROCmouse_text 521MOUSE RECTANGLE 16,16,1263,low%-25 522ENDPROC 523 524DEFPROCmouse_graphics 525MOUSE RECTANGLE left%,low%,right%,high% 526ENDPROC 527 528DEFPROCmouse_full 529MOUSE RECTANGLE 0,0,1279,high%+12 530ENDPROC 531 532DEFPROCsave_bgrd(scr%,x_pos%,y_pos%,x_siz%,y_siz%,sp_name$) 533SYS "OS_SpriteOp",&110,AREA%,sp_name$,0,x_pos%,y_pos%,x_pos%+x_siz%,y_pos%+y_siz% 534ENDPROC 535 536DEFPROCenlarge_box(scr%,many%,box_left%,box_low%,big_left%,big_low%,big_right%,big_high%,drawname$) 537chg_left%=(big_left%-box_left%)/many% 538chg_low%=(big_low%-box_low%)/many% 539chg_right%=(big_right%-(box_left%+64))/many% 540chg_high%=(big_high%-(box_low%+64))/many% 541FOR m%=1 TO 4 542 FOR l%=0 TO many% 543 VDU 25,4,box_left%+(l%*chg_left%);box_low%+(l%*chg_low%); 544 VDU 25,2,64+(l%*ABS(chg_left%-chg_right%));0; 545 VDU 25,2,0;64+(l%*ABS(chg_low%-chg_high%)); 546 VDU 25,2,-(64+(l%*ABS(chg_left%-chg_right%)));0; 547 VDU 25,2,0;-(64+(l%*ABS(chg_low%-chg_high%))); 548 PROCwait(10) 549 NEXT 550NEXT 551VDU 24,big_left%;big_low%;big_right%;big_high%; 552VDU 18,0,131 : CLG 553VDU 26 554IF drawname$<>"" THEN 555 PROCaddbox(big_left%,big_low%,big_right%,big_high%) 556ENDIF 557ENDPROC 558 559DEFPROCaddbox(big_left%,big_low%,big_right%,big_high%) 560SYS "OS_Byte",112,2 561VDU 24,big_left%;big_low%;big_right%;big_high%; 562VDU 18,0,131 : CLG 563PROCborders(big_left%+4,big_low%+4,big_right%-4,big_high%-4) 564VDU 24,big_left%+16;big_low%+16;big_right%-16;big_high%-16; 565VDU 18,0,128 : CLG 566ENDPROC 567 568DEFPROCexplore 569 PROCwords(728,50,0,"explore picture") 570 PROCput_sp(1,1000,20,5,16,16,16,"mouse",0,0,right%,high%,&00) 571ENDPROC 572 573DEFPROCjpexplore 574 PROCjpwords(800,50,0,"explore ...") 575 PROCput_sp(1,1000,24,5,16,16,16,"mouse",0,0,right%,high%,&00) 576ENDPROC 577 578DEFPROCexpand(spn$) 579LOCAL G% 580REM create sprite "j" size 5 bytes to store the size of the compacted sprite & mask byte 581SYS"OS_SpriteOp",&10F,AREA%,spn$+"j",0,10,1,12 582SYS"OS_SpriteOp",&118,AREA%,spn$+"j" TO ,,image% 583image%+=image%!32 584SYS"OS_SpriteOp",&118,AREA%,spn$ TO ,,cspimage% 585!image%=((cspimage%!16)+1)*8 : REM size in pixels 586cspimage%+=cspimage%!32 587image%?4=cspimage%?8 : REM store mask byte 588REM create sprite "q" (temporarily) to expand into 589SYS"OS_SpriteOp",&10F,AREA%,spn$+"q",0,!cspimage%*2,cspimage%!4,12 590IF((cspimage%?8)AND&10)<>0:SYS"OS_SpriteOp",&11D,AREA%,spn$+"q" 591FORlett%=1TOLEN(spn$):?(cspname%+(lett%-1))=ASC(MID$(spn$,lett%,1)):?(nspname%+(lett%-1))=ASC(MID$(spn$,lett%,1)):NEXT 592IFLEN(spn$)<11:FORlett%=LEN(spn$)+1TO12:?(cspname%+(lett%-1))=&00:NEXT 593?(nspname%+LEN(spn$))=&71 594IFLEN(spn$)<10:FORlett%=LEN(spn$)+2TO12:?(nspname%+(lett%-1))=&00:NEXT 595G%=AREA% 596CALL expandsp% 597REM delete original (compacted) sprite, rename "q" sprite to orig. 598SYS"OS_SpriteOp",&119,AREA%,spn$ 599SYS"OS_SpriteOp",&11A,AREA%,spn$+"q",spn$ 600ENDPROC 601 602DEFPROCcompact(spn$) 603LOCAL G% 604REM create sprite "q" (temporary) to be compacted into (size details stored in sprite "j") 605SYS"OS_SpriteOp",&118,AREA%,spn$+"j" TO ,,image% 606image%+=image%!32:mask%=image%?4 607SYS"OS_SpriteOp",&10F,AREA%,spn$+"q",0,!image%,1,12 608SYS"OS_SpriteOp",&118,AREA%,spn$+"q" TO ,,image% 609image%+=image%!32 610SYS"OS_SpriteOp",&128,AREA%,spn$ TO ,,,!image%,image%!4 611!image%=!image%/2:image%?8=mask% 612FORlett%=1TOLEN(spn$):?(nspname%+(lett%-1))=ASC(MID$(spn$,lett%,1)):?(cspname%+(lett%-1))=ASC(MID$(spn$,lett%,1)):NEXT 613IFLEN(spn$)<11:FORlett%=LEN(spn$)+1TO12:?(nspname%+(lett%-1))=&00:NEXT 614?(cspname%+LEN(spn$))=&71 615IFLEN(spn$)<10:FORlett%=LEN(spn$)+2TO12:?(cspname%+(lett%-1))=&00:NEXT 616G%=AREA% 617CALL crunchsp% 618REM delete original (normal) sprite and "j" sprite, rename "q" sprite to orig. 619SYS"OS_SpriteOp",&119,AREA%,spn$:SYS"OS_SpriteOp",&119,AREA%,spn$+"j" 620SYS"OS_SpriteOp",&11A,AREA%,spn$+"q",spn$ 621ENDPROC 622 623DEFPROCdelete(spn$) 624SYS "OS_SpriteOp",&119,AREA%,spn$ 625ENDPROC 626 627DEFPROCloadsoundmod(sdir$,smod$) 628PROCkilloldmod 629FORk%=0TOmaxsounds% 630IFsmod$=soundmods$(k%):R%=k% 631NEXT 632OSCLI"RMEnsure <AZTEC$chaindir>."+sdir$+"."+smod$+" RMLoad <AZTEC$chaindir>."+sdir$+"."+smod$ 633ENDPROC 634 635DEFPROCkilloldmod 636LOCAL ERROR 637ONERRORLOCAL:RESTORE ERROR:ENDPROC 638 OSCLI"RMKill "+soundmods$(R%) 639RESTORE ERROR 640ENDPROC 641 642DEFPROCconch(con%,goon%) 643SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.ONE.conch_c" 644OSCLI"ChannelVoice 1 conch2" 645OSCLI"ChannelVoice 2 conch2" 646PROCaddbox(312,268,958,928) 647VDU 18,0,134:CLG:VDU26:PROCadd_sp(2,"conchman",82,11,6) 648PROCexpand("smconch"):PROCexpand("conch") 649FORk%=0TOcon%-1:PROCput_sp(2,332+(k%*68),288,6,16,16,16,"smconch",left%,low%,right%,high%,&00):NEXT 650IFgoon%:SYS"OS_Byte",112,1:PROCgo_on 651C%=1:D%=1:E%=1:F%=1:PROCexplode(640,636,0):PROCscrcopy21 652PROCsave_bgrd(1,540,356,400,440,"bgrd"):tog%=1:firsttime%=TRUE:alldone%=FALSE:REPEAT:PROCanim_conch(con%):UNTILalldone% 653PROCscrcopy21 654PROCdelete("conchman"):PROCdelete("bgrd") 655PROCcompact("smconch"):PROCcompact("conch") 656PROCdelete("conch"):PROCdelete("smconch") 657ENDPROC 658 659DEFPROCanim_conch(con%) 660IFfirsttime%THEN:firsttime%=FALSE:lasttime%=TIME-4 661SYS "OS_Byte",112,1+(tog%MOD2) 662SYS "OS_SpriteOp",&122,AREA%,"bgrd",540,356,0 663IFtog%>21:PROCput_sp(1+(tog%MOD2),540,316,6,16,16,16,"conch",left%,356,right%,high%,&00):ELSE:PROCput_sp(1+(tog%MOD2),540,(tog%*20)-104,6,16,16,16,"conch",left%,356,right%,high%,&00) 664IF(tog%=30)OR(tog%=31):PROCput_sp(1+(tog%MOD2),332+(con%*68),288,6,16,16,16,"smconch",left%,low%,right%,high%,&00) 665REPEAT:UNTIL TIME>=lasttime%+4 666WAIT:SYS "OS_Byte",113,1+(tog%MOD2) 667IFtog%=23:SOUND1,&17F,&1800,10 668IFtog%=38:SOUND2,&17F,&1800,10 669tog%+=1:lasttime%=TIME:IFtog%>=40:alldone%=TRUE 670ENDPROC 671 672DEFPROCscrolldown(A%,B%) 673CALL scrolldn% 674ENDPROC 675 676DEFPROCscrollup(A%,B%) 677CALL scrollup% 678ENDPROC 679 680DEFPROCchain(file$) 681IFY%=0:test%=0:REPEAT:PROCfloppy_disk("AZTEC DEMO","$.!Aztecs."+file$,"$.!Aztecs"):UNTILerror%=0 682file$="<Aztec$chaindir>."+file$ 683CHAINfile$ 684STOP 685 686DEFPROCdummy 687REM 'cos last PROC gets chopped 688ENDPROC 689 690 691 692 693 694 695
3�SCSI::SCSIDisc4.$.CoverDisks.!AZTECS.azteclib � >azteclib contains PROCS - ��pull_variables fonts%=!(H%+&00) letters%=!(H%+&04) sp_on_vga%=!(H%+&08) put_sp%=!(H%+&0C) sp_name%=!(H%+&10) drawit%=!(H%+&14) copyscr%=!(H%+&18) crunchsp%=!(H%+&1C) expandsp%=!(H%+&20) cspname%=!(H%+&24) nspname%=!(H%+&28) blowupscr%=!(H%+&2C) sp_on_cga%=!(H%+&30) scrolldn%=!(H%+&34) scrollup%=!(H%+&38) copirow%=!(H%+&3C) AREA%=H%+4*1024:� 4K mc � Q��put_sp(A%,B%,C%,D%,E%,F%,G%,sp_name$,wleft%,wbottom%,wright%,wtop%,orient%) �� A%=screen,(B%,C%)=(x,y),D%=mask col,E%F%G%=behind cols.wl,wb,wr,wt=window for sp.orient%=00normal,&01mirror,&10upsdiedn,&11both /!(H%+&CC)=orient%>>>4:!(H%+&D0)=orient%�&0F F�lett%=1��(sp_name$):?(sp_name%+(lett%-1))=�(�sp_name$,lett%,1)):� G�(sp_name$)<12:�lett%=�(sp_name$)+1�12:?(sp_name%+(lett%-1))=&00:� ?ș "OS_SpriteOp",&128,AREA%,sp_name$ � ,,,sp_wide%,sp_hite% /sp_hite%=sp_hite%-1:sp_wide%=(sp_wide%/2)-1 "y_row%=�(C%/4):x_byte%=�(B%/4) sp_visible%=0 !�� (y_row%>�(wtop% / 4)) � ((y_row%+sp_hite%)<�(wbottom% / 4)) � ((x_byte%+sp_wide%)<�(wleft% / 4)) � (x_byte%>�(wright% / 4)) � " sp_visible%=1 #� $7 �calc_E0 : � !(H%+&E0) = start row in sprite image %< �calc_E4 : � !(H%+&E4) = no.rows-1 of sprite to display &B �calc_E8 : � !(H%+&E8) = starting byte no. in each sprite row '? �calc_EC : � !(H%+&EC) = no.bytes-1 to display in each row (� )�sp_visible%=0:� put_sp% *� + , ��calc_E0 -+ � (y_row%+sp_hite%) <= �(wtop% / 4) � . � (orient%>>>4)=0 � / !(H%+&E0)=0 0 � 1 !(H%+&E0)=sp_hite% 2 � 3 !(H%+&D4)=0 4 � 5 � (orient%>>>4)=0 � 62 !(H%+&E0)=sp_hite%-(�(wtop% / 4)-y_row%) 7 � 8' !(H%+&E0)=�(wtop% / 4)-y_row% 9 � :0 !(H%+&D4)=sp_hite%-(�(wtop% / 4)-y_row%) ; � <� = > ��calc_E4 ?# � �(wbottom% / 4) <= y_row% � @ � (orient%>>>4)=0 � A& !(H%+&E4)=sp_hite%-!(H%+&E0) B � C !(H%+&E4)=!(H%+&E0) D � E � F � (orient%>>>4)=0 � G? !(H%+&E4)=sp_hite%-(�(wbottom% / 4)-y_row%)-!(H%+&E0) H � I4 !(H%+&E4)=y_row%+!(H%+&E0)-�(wbottom% / 4) J � K � L� M N ��calc_E8 O" � x_byte% >= �(wleft% / 4) � P � (orient%�&0F)=0 � Q !(H%+&E8)=0 R � S !(H%+&E8)=sp_wide% T � U !(H%+&D8)=0 V � W � (orient%�&0F)=0 � X) !(H%+&E8)=�(wleft% / 4)-x_byte% Y � Z4 !(H%+&E8)=sp_wide%-(�(wleft% / 4)-x_byte%) [ � \' !(H%+&D8)=�(wleft% / 4)-x_byte% ] � ^� _ ` ��calc_EC a0 � (x_byte% + sp_wide%) <= �(wright% / 4) � b � (orient%�&0F)=0 � c& !(H%+&EC)=sp_wide%-!(H%+&E8) d � e !(H%+&EC)=!(H%+&E8) f � g � h � (orient%�&0F)=0 � i4 !(H%+&EC)=�(wright% / 4)-x_byte%-!(H%+&E8) j � k? !(H%+&EC)=!(H%+&E8)-(x_byte%+sp_wide%-�(wright% / 4)) l � m � n� o p ��palette q� +0 r�� 255,255,255,170,170,170,102,102,102,0,0,0,0,0,153,0,51,255,0,204,255,255,136,0,221,0,0,255,255,0,136,17,0,255,204,153,0,119,34,0,187,0,0,255,34,187,85,0 s2� i%=0 � 15:� r%, g%, b%:� 19,i%,16,r%,g%,b%:� t� u v��wait(delay%) wa%=�:���>=a%+delay% x� y z��words(A%,B%,big%,words$) {,E%=3:�big%:C%=320:D%=360:�:C%=240:D%=270 |B�lett%=1��(words$):?(letters%+(lett%-1))=�(�words$,lett%,1)):� }?(letters%+�(words$))=&0D ~� fonts% � � � ��jpwords(A%,B%,big%,words$) �,E%=5:�big%:C%=320:D%=360:�:C%=240:D%=270 �B�lett%=1��(words$):?(letters%+(lett%-1))=�(�words$,lett%,1)):� �?(letters%+�(words$))=&0D �� fonts% �� � ���scrcopy21 � ș "OS_Byte",113,2:A%=2:B%=1 �� copyscr% �1Ȗ:ș "OS_Byte",113,1:ș "OS_Byte",112,1:� 26 �� � �%��scrcopy21exp(A%,B%,C%,D%,E%,F%) �� blowupscr% �� � � ��explode(xpos%,ypos%,auto%) �<� C%=right speed:D%=down speed:E%=left speed:F%=up speed �2A%=�(xpos%/4):B%=240-�(ypos%/4):�B%>177:B%=177 ��auto%� �,C%=319-A%:D%=179-B%:E%=A%:F%=B%:fact%=C% ��D%<fact%:fact%=D% ��E%<fact%:fact%=E% ��F%<fact%:fact%=F% �?C%=�(C%/fact%):D%=�(D%/fact%):E%=�(E%/fact%):F%=�(F%/fact%) ��C%>6:C%=6 ��D%>6:D%=6 ��E%>6:E%=6 ��F%>6:F%=6 �� �0B%=(H%!&F0)*B%:D%=(H%!&F0)*D%:F%=(H%!&F0)*F% �$�scrcopy21exp(A%,B%,C%,D%,E%,F%) �� � ���lib_initialise ���ONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:x=GET:PROCdesk_top ��:�desk_top ��pull_variables:�palette �U� SCALE% 16:!(SCALE%+0)=16:!(SCALE%+4)=16*(H%!&F0):!(SCALE%+8)=16:!(SCALE%+12)=16 �<ș "OS_SpriteOp",&10A,AREA%,"<AZTEC$chaindir>.buttons_c" �+left%=12:low%=256:right%=1267:high%=947 �9� 23,17,4,1,0,0,0,0,0,0 : � RISC OS interleaving ECFs �� input_disk_name% 256 �2� pdrect% 16,pdrect2% 16,pdtrans% 16,pdplot% 8 �&� scale% 16,ctrans% 256,paltab% 64 �maxbut%=13 ��� coords%(maxbut%,1),width%(maxbut%),height%(maxbut%),ec_width%(maxbut%),ec_height%(maxbut%),buttype%(maxbut%),labels$(maxbut%),lab_offs%(maxbut%,1) �� but$(2,3),box%(4,1) �Hbut$(0,0)="button_off":but$(1,0)="button_over":but$(2,0)="button_on" �?but$(0,1)="but_off":but$(1,1)="but_over":but$(2,1)="but_on" �<but$(0,2)="bu_off":but$(1,2)="bu_over":but$(2,2)="bu_on" �Bbut$(0,3)="butt_off":but$(1,3)="butt_over":but$(2,3)="butt_on" ��expandbuts �%�init_buts(1000,20,18,16,24,24,1) �maxsounds%=20 �� soundmods$(maxsounds%) �� +0 �+� dig,lightn,grunt,grind,click,turk,yap �4� snore,hiccup,swallow,flareup,step,stab,Marked4 �5� sootthr,MARKED3,engine,goal,steam,rasplg,raspsh �'�k%=0�maxsounds%:� soundmods$(k%):� �� � ���expandbuts �,�k%=0�2:�l%=0�3:�expand(but$(k%,l%)):�:� ��expand("mouse") �� � �6��init_buts(xco%,yco%,wid%,hei%,xoff%,yoff%,butt%) �� b%=0 � maxbut% �)coords%(b%,0)=xco%:coords%(b%,1)=yco% �$width%(b%)=wid%:height%(b%)=hei% �/lab_offs%(b%,0)=xoff%:lab_offs%(b%,1)=yoff% �buttype%(b%)=butt% �� �� � ���desk_top �6�:�buf% 4:�i%=1�16:Ȗ:�c%=0�16:�c%<16v%=16 � v%=24 �Pș"OS_ReadPalette",c%,v% � ,,d%:!buf%=d%:�b%=1�3:�buf%?b%>0buf%?b%-=16:�:�:� �%�19,c%,v%,buf%?1,buf%?2,buf%?3:�, � *FX15 �*FX225,1 � *KEY0 PAGE=&8F00|MOLD|MRUN|M �*FX138,0,128 � *BASIC �� � � ��add_sp(scr%,spr$,C%,D%,G%) �!�scr%=1:A%=H%!&C0:�:A%=H%!&C4 �5ș "OS_SpriteOp",&118,AREA%,spr$ � ,,B%:B%+=B%!32 ��(H%!&F0)=2� �D%=2*D% �� sp_on_vga% �� �� sp_on_cga% �� �� � ���go_on �coords%(0,1)=20 �labels$(0)=" Go on" ��choose_but(1,1,2,0) �� � � ��jpgo_on �coords%(0,1)=24 �labels$(0)=" Go on" ��choose_but(1,1,2,18) ��jpcleartext �� � ���jpinfo �?ș "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.ONE.jpinfo_c" �Y�IF(L%>2000)AND(L%<3000):SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.TWO.jpinfo_c" �M�IFL%>3000:SYS "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.THREE.jpinfo_c" �$�init_buts(900,40,24,16,26,24,1) �labels$(0)=" Jet-pac info" ��choose_but(1,1,2,16) ��18,0,5 ��k%=2�1�-1 �ș"OS_Byte",112,k% �Z�25,4,12;12;:�25,101,1266;18;:�25,101,1260;low%-22;:�25,101,12;low%-28;:�25,101,18;12; �� �?�add_sp(1,"jpinfo",102,178,6):�add_sp(2,"jpinfo",102,178,6) �%�init_buts(1000,20,18,16,24,24,1) � ��jpend '�delete("jpinfo"):�delete("jpscan") %�init_buts(1000,24,22,16,26,24,1) labels$(0)=" Jet-pac off" �choose_but(1,1,2,16) 9�jpedges:ș"OS_Byte",112,2:�jpedges:ș"OS_Byte",112,1 �26 %�init_buts(1000,20,18,16,24,24,1) � ��jpedges *�18,0,2:�25,4,0;244;:�25,101,1278;246; *�18,0,0:�25,4,8;240;:�25,101,1268;242; *�18,0,3:�25,4,8;236;:�25,101,1268;238; <�18,0,0:�25,4,12;232;:�25,101,1266;234;:�25,101,1264;12; 9�18,0,2:�25,4,12;230;:�25,101,14;12;:�25,101,1262;14; *�18,0,1:�25,4,16;16;:�25,101,1262;230; � ��yesno %�init_buts(1020,40,16,16,28,24,1) <coords%(0,0)=820:labels$(0)=" No":labels$(1)=" Yes" �choose_but(1,2,2,0) %�init_buts(1000,20,18,16,24,24,1) � ��posbuttons(nobuts%) totwi%=0 �k%=0�nobuts%-1 B�(buttype%(k%)=0)�(buttype%(k%)=1):totwi%+=176*(width%(k%)/16) /�buttype%(k%)=3:totwi%+=352*(width%(k%)/16) !� ">gap%=(1280-24-totwi%)/(nobuts%+1):totwi%=gap%+12:butcnt%=0 #� $coords%(butcnt%,0)=totwi% %X�(buttype%(butcnt%)=0)�(buttype%(butcnt%)=1):totwi%+=gap%+(176*(width%(butcnt%)/16)) &@�buttype%(butcnt%)=3:totwi%+=gap%+(352*(width%(butcnt%)/16)) 'butcnt%+=1 (�butcnt%=nobuts% )� * +/��choose_but(scr%,but_no%,lab_yn%,control%) ,a� scr%=screen number, but_no%=number of buttons to plot, lab_yn%=1 if label sprite else words -k� control% defines various options dependent on bit settings - unset (ie. 0) set (ie 1) .v� bit 0 loop in PROC until chosen single pass thru PROC /q� 1 clear text area after choice don't clear text 0j� NB bits 2 and 3 of control% are now ignored XXX 2 MOUSE to right of last box see bit 3 1�� XXX 3 MOUSE to below choice MOUSE to right of choice (if bit 2 set) 2�� 4 use PROCwords (black words) use PROCjpwords (coloured words) 3- �(control%�1)=1:oneloop%=�:�:oneloop%=� 41 �(control%�2)=0:cleartext%=�:�:cleartext%=� 51 �(control%�16)=16:injetpac%=�:�:injetpac%=� 6?�IF(control%AND4)=0:mouseright%=TRUE:ELSE:mouseright%=FALSE 7R�IFNOTmouseright%THEN:IF(control%AND8)=0:mousedown%=TRUE:ELSE:mousedown%=FALSE 8 � oneloop% � 9U � firstloop%=� : �setup_buts(scr%) : chosen%=20 : last_pos%=20 : firstloop%=� : � ; �setup_buts(scr%) < ș"OS_Byte",21,9 = ȗ � > �mouse_text ? last_pos%=20 @ chosen%=20 A � B *FX15 C � D) � �oneloop% : ȗ m_x%,m_y%,m_but% E � k%=0 � but_no%-1 F �scale(k%) G� � (m_x%<=coords%(k%,0)+ec_width%(k%)) � (m_x%>=coords%(k%,0)) � (m_y%<=coords%(k%,1)+ec_height%(k%)) � (m_y%>=coords%(k%,1)) � H � last_pos%<>k% � I � last_pos%<>20 � J! �scale(last_pos%) K| ș "OS_SpriteOp",&134,AREA%,but$(0,buttype%(last_pos%)),coords%(last_pos%,0),coords%(last_pos%,1),0,SCALE%,0 L( �add_labels(last_pos%,0) M � N �scale(k%) Oe ș "OS_SpriteOp",&134,AREA%,but$(1,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 P �add_labels(k%,1) Q � R � m_but%=4 � Se ș "OS_SpriteOp",&134,AREA%,but$(2,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 T �add_labels(k%,1) U chosen%=k% V � W last_pos%=k% X � Y � last_pos%=k% � Ze ș "OS_SpriteOp",&134,AREA%,but$(0,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 [ �add_labels(k%,0) \ last_pos%=20 ] � ^ � _ � `/ � ((chosen%<>20) � (m_but%=0)) � oneloop% a � �oneloop% � b �wait(20) c� IFmouseright%THEN dm� MOUSE TO coords%(but_no%-1,0)+ec_width%(but_no%-1)+24,coords%(but_no%-1,1)+(ec_height%(but_no%-1)/2) e� ELSE f� IFmousedown%THEN gR� MOUSE TO coords%(chosen%,0)+(ec_width%(chosen%)/2),coords%(chosen%,1)-24 h � ELSE if� MOUSE TO coords%(chosen%,0)+ec_width%(chosen%)+24,coords%(chosen%,1)+(ec_height%(chosen%)/2) j� ENDIF k � ENDIF l ȗ � m �cleartext%:�cleartext n � o. !(SCALE%+0)=16 : !(SCALE%+4)=16*(H%!&F0) p� q r��setup_buts(scr%) s� k%=0 � but_no%-1 tI �(buttype%(k%)=0)�(buttype%(k%)=1):ec_width%(k%)=176*(width%(k%)/16) u5 �buttype%(k%)=2:ec_width%(k%)=80*(width%(k%)/16) v6 �buttype%(k%)=3:ec_width%(k%)=352*(width%(k%)/16) w � buttype%(k%)=0 � x- ec_height%(k%)=160 * (height%(k%) / 16) y � z, ec_height%(k%)=80 * (height%(k%) / 16) { � |� }ș "OS_Byte",112,scr% ~� k%=0 � but_no%-1 �scale(k%) �\ ș "OS_SpriteOp",&134,AREA%,but$(0,buttype%(k%)),coords%(k%,0),coords%(k%,1),0,SCALE%,0 � �add_labels(k%,0) �` � reducing button height loses bottom line (unless) special short button) so add separately �( � height%(k%)<16 � buttype%(k%)=0 � � � 3 �+ � 25,4,coords%(k%,0);coords%(k%,1)-4; �7 � 25,5,coords%(k%,0)+ec_width%-2;coords%(k%,1)-4; � � �� �� � ���scale(which%) �F !(SCALE%+0)=width%(which%) : !(SCALE%+4)=height%(which%)*(H%!&F0) �� � ���add_labels(which%,drop%) �� lab_yn%=1 � �� �put_sp(scr%,coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),2,16,16,16,labels$(which%),0,0,1276,1020,&00) �� � �injetpac%� �w �jpwords(coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),0,labels$(which%)) � � �u �words(coords%(which%,0)+lab_offs%(which%,0),coords%(which%,1)+lab_offs%(which%,1)-(4*drop%),0,labels$(which%)) � � �� �� � �,��mounts(scr%,m1$,m2$,m3$,mxpos%,mypos%) �K�put_sp(scr%,mxpos%,mypos%,15,16,16,16,m1$,left%,low%,right%,high%,&00) �O�put_sp(scr%,mxpos%+480,mypos%,15,16,16,16,m2$,left%,low%,right%,high%,&00) �O�put_sp(scr%,mxpos%+960,mypos%,15,16,16,16,m3$,left%,low%,right%,high%,&00) �� � � �"��choose_box(scr%,box_no%,cl%) �ș "OS_Byte",112,scr% � �show_box �ȗ � ��mouse_graphics �got_box%=10 �� � ȗ m_x%,m_y%,m_but% � � k%=0 � box_no%-1 �E � (�(m_x%-(box%(k%,0)+32))<32) � (�(m_y%-(box%(k%,1)+32))<32) � � � m_but%=4 � � got_box%=k% � � � � � � �!� (got_box%<>10) � (m_but%=0) �ȗ � 1184,60 �ȗ � ��cl%:�cleartext � �show_box �� � � ��jpchoose_box(scr%,box_no%) ��choose_box(scr%,box_no%,0) ��jpcleartext �� � ���jpscan(box_no%) �=�jpwords(350,128,-1,".... jet-pac scan in progress ....") ��expand("jpscan") �$SCALE%!0=16:SCALE%!4=16*(H%!&F0) �!�25,4,12;912;:�25,98,1254;38; ��j%=916�260�-4 �>Ȗ:ș"OS_SpriteOp",&134,AREA%,"jpscan",580,j%,&0C,SCALE%,0 �E�j%<916:ș"OS_SpriteOp",&134,AREA%,"jpscan",580,j%+4,&0C,SCALE%,0 ��box_no%>0� � �k%=0�box_no%-1 �D �((j%+36)>=box%(k%,1))�((j%+36)<=box%(k%,1)+60):�jpscanbox(k%) � � �� �-�j%>260:Ȗ:�25,4,12;j%-8;:�25,98,1254;38; �"�25,4,12;j%-4;:�25,98,1254;38; �� �<ș"OS_SpriteOp",&134,AREA%,"jpscan",580,260,&0C,SCALE%,0 ��compact("jpscan") ��jpcleartext �2�jpwords(440,128,-1,".... scan complete ....") �� � ���jpscanbox(k%) �G�(j%+36)=box%(k%,1)+60:�25,4,box%(k%,0);box%(k%,1)+60;:�25,98,62;2; �|�((j%+36)>box%(k%,1))�((j%+36)<box%(k%,1)+60):�25,4,box%(k%,0);j%+36;:�25,98,2;2;:�25,4,box%(k%,0)+60;j%+36;:�25,98,2;2; �A�(j%+36)=box%(k%,1):�25,4,box%(k%,0);box%(k%,1);:�25,98,62;2; �� � ���show_box �� k%=0 � box_no%-1 �1 � 25,4,box%(k%,0);box%(k%,1);:� 25,98,62;62; �5 � 25,4,box%(k%,0)+4;box%(k%,1)+4;:� 25,98,54;54; �� �� � �*��borders(bleft%,blow%,bright%,bhigh%) �%� 24,bleft%;blow%;bright%;bhigh%; �� 18,0,130 : � �)� 24,bleft%+4;blow%+4;bright%;bhigh%; �� 18,0,129 : � �-� 24,bleft%+8;blow%+8;bright%-4;bhigh%-4; �� 18,0,128 : � �-� 24,bleft%+8;blow%+8;bright%-8;bhigh%-8; �� 18,0,131 : � �1� 24,bleft%+12;blow%+12;bright%-12;bhigh%-12; �� 18,0,128 : � �1� 24,bleft%+12;blow%+12;bright%-16;bhigh%-16; �� 18,0,130 : � �/�border_centre(bleft%,blow%,bright%,bhigh%) �� � �0��border_centre(bleft%,blow%,bright%,bhigh%) �1� 24,bleft%+16;blow%+16;bright%-16;bhigh%-16; �� 18,0,129 : � �� 26 �� � ���cleartext �� 24,16;16;1263;low%-25; �=� VDU 23,12,0,1,1,0,0,1,1,0 : REM define text backgrd ECF �� VDU 18,16,128 : CLG �� 18,0,129 : � �� 26 �� � ���jpcleartext �'�18,0,129:�24,20;20;1258;204;:�:�26 � ��cleargraphics(bcol%) !� 24,left%;low%;right%;high%; � 18,0,128+bcol% : � � 26 � ��mouse_text ȗ ȓ 16,16,1263,low%-25 � ��mouse_graphics !ȗ ȓ left%,low%,right%,high% � ��mouse_full ȗ ȓ 0,0,1279,high%+12 � :��save_bgrd(scr%,x_pos%,y_pos%,x_siz%,y_siz%,sp_name$) Tș "OS_SpriteOp",&110,AREA%,sp_name$,0,x_pos%,y_pos%,x_pos%+x_siz%,y_pos%+y_siz% � b��enlarge_box(scr%,many%,box_left%,box_low%,big_left%,big_low%,big_right%,big_high%,drawname$) )chg_left%=(big_left%-box_left%)/many% &chg_low%=(big_low%-box_low%)/many% 0chg_right%=(big_right%-(box_left%+64))/many% -chg_high%=(big_high%-(box_low%+64))/many% � m%=1 � 4 � l%=0 � many% = � 25,4,box_left%+(l%*chg_left%);box_low%+(l%*chg_low%); / � 25,2,64+(l%*�(chg_left%-chg_right%));0; !- � 25,2,0;64+(l%*�(chg_low%-chg_high%)); "2 � 25,2,-(64+(l%*�(chg_left%-chg_right%)));0; #0 � 25,2,0;-(64+(l%*�(chg_low%-chg_high%))); $ �wait(10) % � &� '1� 24,big_left%;big_low%;big_right%;big_high%; (� 18,0,131 : � )� 26 *� drawname$<>"" � +5 �addbox(big_left%,big_low%,big_right%,big_high%) ,� -� . /5��addbox(big_left%,big_low%,big_right%,big_high%) 0ș "OS_Byte",112,2 11� 24,big_left%;big_low%;big_right%;big_high%; 2� 18,0,131 : � 3=�borders(big_left%+4,big_low%+4,big_right%-4,big_high%-4) 4=� 24,big_left%+16;big_low%+16;big_right%-16;big_high%-16; 5� 18,0,128 : � 6� 7 8 ��explore 9' �words(728,50,0,"explore picture") :? �put_sp(1,1000,20,5,16,16,16,"mouse",0,0,right%,high%,&00) ;� < =��jpexplore >% �jpwords(800,50,0,"explore ...") ?? �put_sp(1,1000,24,5,16,16,16,"mouse",0,0,right%,high%,&00) @� A B��expand(spn$) C� G% DZ� create sprite "j" size 5 bytes to store the size of the compacted sprite & mask byte E1ș"OS_SpriteOp",&10F,AREA%,spn$+"j",0,10,1,12 F2ș"OS_SpriteOp",&118,AREA%,spn$+"j" � ,,image% Gimage%+=image%!32 H1ș"OS_SpriteOp",&118,AREA%,spn$ � ,,cspimage% I3!image%=((cspimage%!16)+1)*8 : � size in pixels Jcspimage%+=cspimage%!32 K,image%?4=cspimage%?8 : � store mask byte L4� create sprite "q" (temporarily) to expand into MEș"OS_SpriteOp",&10F,AREA%,spn$+"q",0,!cspimage%*2,cspimage%!4,12 N?�((cspimage%?8)�&10)<>0:ș"OS_SpriteOp",&11D,AREA%,spn$+"q" Of�lett%=1��(spn$):?(cspname%+(lett%-1))=�(�spn$,lett%,1)):?(nspname%+(lett%-1))=�(�spn$,lett%,1)):� P?�(spn$)<11:�lett%=�(spn$)+1�12:?(cspname%+(lett%-1))=&00:� Q?(nspname%+�(spn$))=&71 R?�(spn$)<10:�lett%=�(spn$)+2�12:?(nspname%+(lett%-1))=&00:� SG%=AREA% T� expandsp% UD� delete original (compacted) sprite, rename "q" sprite to orig. V#ș"OS_SpriteOp",&119,AREA%,spn$ W,ș"OS_SpriteOp",&11A,AREA%,spn$+"q",spn$ X� Y Z��compact(spn$) [� G% \\� create sprite "q" (temporary) to be compacted into (size details stored in sprite "j") ]2ș"OS_SpriteOp",&118,AREA%,spn$+"j" � ,,image% ^$image%+=image%!32:mask%=image%?4 _6ș"OS_SpriteOp",&10F,AREA%,spn$+"q",0,!image%,1,12 `2ș"OS_SpriteOp",&118,AREA%,spn$+"q" � ,,image% aimage%+=image%!32 b9ș"OS_SpriteOp",&128,AREA%,spn$ � ,,,!image%,image%!4 c$!image%=!image%/2:image%?8=mask% df�lett%=1��(spn$):?(nspname%+(lett%-1))=�(�spn$,lett%,1)):?(cspname%+(lett%-1))=�(�spn$,lett%,1)):� e?�(spn$)<11:�lett%=�(spn$)+1�12:?(nspname%+(lett%-1))=&00:� f?(cspname%+�(spn$))=&71 g?�(spn$)<10:�lett%=�(spn$)+2�12:?(cspname%+(lett%-1))=&00:� hG%=AREA% i� crunchsp% jP� delete original (normal) sprite and "j" sprite, rename "q" sprite to orig. kGș"OS_SpriteOp",&119,AREA%,spn$:ș"OS_SpriteOp",&119,AREA%,spn$+"j" l,ș"OS_SpriteOp",&11A,AREA%,spn$+"q",spn$ m� n o��delete(spn$) p$ș "OS_SpriteOp",&119,AREA%,spn$ q� r s��loadsoundmod(sdir$,smod$) t�killoldmod u�k%=0�maxsounds% v�smod$=soundmods$(k%):R%=k% w� x]�"RMEnsure <AZTEC$chaindir>."+sdir$+"."+smod$+" RMLoad <AZTEC$chaindir>."+sdir$+"."+smod$ y� z {��killoldmod |� � } ��:� �:� ~ �"RMKill "+soundmods$(R%) � � �� � ���conch(con%,goon%) �>ș "OS_SpriteOp",&10B,AREA%,"<AZTEC$chaindir>.ONE.conch_c" ��"ChannelVoice 1 conch2" ��"ChannelVoice 2 conch2" ��addbox(312,268,958,928) �2� 18,0,134:�:�26:�add_sp(2,"conchman",82,11,6) �'�expand("smconch"):�expand("conch") �^�k%=0�con%-1:�put_sp(2,332+(k%*68),288,6,16,16,16,"smconch",left%,low%,right%,high%,&00):� �#�goon%:ș"OS_Byte",112,1:�go_on �6C%=1:D%=1:E%=1:F%=1:�explode(640,636,0):�scrcopy21 �e�save_bgrd(1,540,356,400,440,"bgrd"):tog%=1:firsttime%=�:alldone%=�:�:�anim_conch(con%):�alldone% ��scrcopy21 �'�delete("conchman"):�delete("bgrd") �)�compact("smconch"):�compact("conch") �'�delete("conch"):�delete("smconch") �� � ���anim_conch(con%) �+�firsttime%�:firsttime%=�:lasttime%=�-4 �ș "OS_Byte",112,1+(tog%�2) �0ș "OS_SpriteOp",&122,AREA%,"bgrd",540,356,0 ���tog%>21:�put_sp(1+(tog%�2),540,316,6,16,16,16,"conch",left%,356,right%,high%,&00):�:�put_sp(1+(tog%�2),540,(tog%*20)-104,6,16,16,16,"conch",left%,356,right%,high%,&00) �o�(tog%=30)�(tog%=31):�put_sp(1+(tog%�2),332+(con%*68),288,6,16,16,16,"smconch",left%,low%,right%,high%,&00) ��:� �>=lasttime%+4 �"Ȗ:ș "OS_Byte",113,1+(tog%�2) ��tog%=23:�1,&17F,&1800,10 ��tog%=38:�2,&17F,&1800,10 �,tog%+=1:lasttime%=�:�tog%>=40:alldone%=� �� � ���scrolldown(A%,B%) �� scrolldn% �� � ���scrollup(A%,B%) �� scrollup% �� � ���chain(file$) �W�Y%=0:test%=0:�:�floppy_disk("AZTEC DEMO","$.!Aztecs."+file$,"$.!Aztecs"):�error%=0 �#file$="<Aztec$chaindir>."+file$ � �file$ �� � ���dummy �!� 'cos last PROC gets chopped �� � � � � � � � �
00000000 0d 00 00 33 f4 ff 53 43 53 49 3a 3a 53 43 53 49 |...3..SCSI::SCSI| 00000010 44 69 73 63 34 2e 24 2e 43 6f 76 65 72 44 69 73 |Disc4.$.CoverDis| 00000020 6b 73 2e 21 41 5a 54 45 43 53 2e 61 7a 74 65 63 |ks.!AZTECS.aztec| 00000030 6c 69 62 0d 00 01 20 f4 20 3e 61 7a 74 65 63 6c |lib... . >aztecl| 00000040 69 62 20 63 6f 6e 74 61 69 6e 73 20 50 52 4f 43 |ib contains PROC| 00000050 53 20 2d 0d 00 02 04 0d 00 03 14 dd f2 70 75 6c |S -..........pul| 00000060 6c 5f 76 61 72 69 61 62 6c 65 73 0d 00 04 14 66 |l_variables....f| 00000070 6f 6e 74 73 25 3d 21 28 48 25 2b 26 30 30 29 0d |onts%=!(H%+&00).| 00000080 00 05 16 6c 65 74 74 65 72 73 25 3d 21 28 48 25 |...letters%=!(H%| 00000090 2b 26 30 34 29 0d 00 06 18 73 70 5f 6f 6e 5f 76 |+&04)....sp_on_v| 000000a0 67 61 25 3d 21 28 48 25 2b 26 30 38 29 0d 00 07 |ga%=!(H%+&08)...| 000000b0 15 70 75 74 5f 73 70 25 3d 21 28 48 25 2b 26 30 |.put_sp%=!(H%+&0| 000000c0 43 29 0d 00 08 16 73 70 5f 6e 61 6d 65 25 3d 21 |C)....sp_name%=!| 000000d0 28 48 25 2b 26 31 30 29 0d 00 09 15 64 72 61 77 |(H%+&10)....draw| 000000e0 69 74 25 3d 21 28 48 25 2b 26 31 34 29 0d 00 0a |it%=!(H%+&14)...| 000000f0 16 63 6f 70 79 73 63 72 25 3d 21 28 48 25 2b 26 |.copyscr%=!(H%+&| 00000100 31 38 29 0d 00 0b 17 63 72 75 6e 63 68 73 70 25 |18)....crunchsp%| 00000110 3d 21 28 48 25 2b 26 31 43 29 0d 00 0c 17 65 78 |=!(H%+&1C)....ex| 00000120 70 61 6e 64 73 70 25 3d 21 28 48 25 2b 26 32 30 |pandsp%=!(H%+&20| 00000130 29 0d 00 0d 16 63 73 70 6e 61 6d 65 25 3d 21 28 |)....cspname%=!(| 00000140 48 25 2b 26 32 34 29 0d 00 0e 16 6e 73 70 6e 61 |H%+&24)....nspna| 00000150 6d 65 25 3d 21 28 48 25 2b 26 32 38 29 0d 00 0f |me%=!(H%+&28)...| 00000160 18 62 6c 6f 77 75 70 73 63 72 25 3d 21 28 48 25 |.blowupscr%=!(H%| 00000170 2b 26 32 43 29 0d 00 10 18 73 70 5f 6f 6e 5f 63 |+&2C)....sp_on_c| 00000180 67 61 25 3d 21 28 48 25 2b 26 33 30 29 0d 00 11 |ga%=!(H%+&30)...| 00000190 17 73 63 72 6f 6c 6c 64 6e 25 3d 21 28 48 25 2b |.scrolldn%=!(H%+| 000001a0 26 33 34 29 0d 00 12 17 73 63 72 6f 6c 6c 75 70 |&34)....scrollup| 000001b0 25 3d 21 28 48 25 2b 26 33 38 29 0d 00 13 16 63 |%=!(H%+&38)....c| 000001c0 6f 70 69 72 6f 77 25 3d 21 28 48 25 2b 26 33 43 |opirow%=!(H%+&3C| 000001d0 29 0d 00 14 04 0d 00 15 1b 41 52 45 41 25 3d 48 |)........AREA%=H| 000001e0 25 2b 34 2a 31 30 32 34 3a f4 20 34 4b 20 6d 63 |%+4*1024:. 4K mc| 000001f0 0d 00 16 05 e1 0d 00 17 04 0d 00 18 51 dd f2 70 |............Q..p| 00000200 75 74 5f 73 70 28 41 25 2c 42 25 2c 43 25 2c 44 |ut_sp(A%,B%,C%,D| 00000210 25 2c 45 25 2c 46 25 2c 47 25 2c 73 70 5f 6e 61 |%,E%,F%,G%,sp_na| 00000220 6d 65 24 2c 77 6c 65 66 74 25 2c 77 62 6f 74 74 |me$,wleft%,wbott| 00000230 6f 6d 25 2c 77 72 69 67 68 74 25 2c 77 74 6f 70 |om%,wright%,wtop| 00000240 25 2c 6f 72 69 65 6e 74 25 29 0d 00 19 85 f4 20 |%,orient%)..... | 00000250 41 25 3d 73 63 72 65 65 6e 2c 28 42 25 2c 43 25 |A%=screen,(B%,C%| 00000260 29 3d 28 78 2c 79 29 2c 44 25 3d 6d 61 73 6b 20 |)=(x,y),D%=mask | 00000270 63 6f 6c 2c 45 25 46 25 47 25 3d 62 65 68 69 6e |col,E%F%G%=behin| 00000280 64 20 63 6f 6c 73 2e 77 6c 2c 77 62 2c 77 72 2c |d cols.wl,wb,wr,| 00000290 77 74 3d 77 69 6e 64 6f 77 20 66 6f 72 20 73 70 |wt=window for sp| 000002a0 2e 6f 72 69 65 6e 74 25 3d 30 30 6e 6f 72 6d 61 |.orient%=00norma| 000002b0 6c 2c 26 30 31 6d 69 72 72 6f 72 2c 26 31 30 75 |l,&01mirror,&10u| 000002c0 70 73 64 69 65 64 6e 2c 26 31 31 62 6f 74 68 0d |psdiedn,&11both.| 000002d0 00 1a 2f 21 28 48 25 2b 26 43 43 29 3d 6f 72 69 |../!(H%+&CC)=ori| 000002e0 65 6e 74 25 3e 3e 3e 34 3a 21 28 48 25 2b 26 44 |ent%>>>4:!(H%+&D| 000002f0 30 29 3d 6f 72 69 65 6e 74 25 80 26 30 46 0d 00 |0)=orient%.&0F..| 00000300 1b 46 e3 6c 65 74 74 25 3d 31 b8 a9 28 73 70 5f |.F.lett%=1..(sp_| 00000310 6e 61 6d 65 24 29 3a 3f 28 73 70 5f 6e 61 6d 65 |name$):?(sp_name| 00000320 25 2b 28 6c 65 74 74 25 2d 31 29 29 3d 97 28 c1 |%+(lett%-1))=.(.| 00000330 73 70 5f 6e 61 6d 65 24 2c 6c 65 74 74 25 2c 31 |sp_name$,lett%,1| 00000340 29 29 3a ed 0d 00 1c 47 e7 a9 28 73 70 5f 6e 61 |)):....G..(sp_na| 00000350 6d 65 24 29 3c 31 32 3a e3 6c 65 74 74 25 3d a9 |me$)<12:.lett%=.| 00000360 28 73 70 5f 6e 61 6d 65 24 29 2b 31 b8 31 32 3a |(sp_name$)+1.12:| 00000370 3f 28 73 70 5f 6e 61 6d 65 25 2b 28 6c 65 74 74 |?(sp_name%+(lett| 00000380 25 2d 31 29 29 3d 26 30 30 3a ed 0d 00 1d 3f c8 |%-1))=&00:....?.| 00000390 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |. "OS_SpriteOp",| 000003a0 26 31 32 38 2c 41 52 45 41 25 2c 73 70 5f 6e 61 |&128,AREA%,sp_na| 000003b0 6d 65 24 20 b8 20 2c 2c 2c 73 70 5f 77 69 64 65 |me$ . ,,,sp_wide| 000003c0 25 2c 73 70 5f 68 69 74 65 25 0d 00 1e 2f 73 70 |%,sp_hite%.../sp| 000003d0 5f 68 69 74 65 25 3d 73 70 5f 68 69 74 65 25 2d |_hite%=sp_hite%-| 000003e0 31 3a 73 70 5f 77 69 64 65 25 3d 28 73 70 5f 77 |1:sp_wide%=(sp_w| 000003f0 69 64 65 25 2f 32 29 2d 31 0d 00 1f 22 79 5f 72 |ide%/2)-1..."y_r| 00000400 6f 77 25 3d a8 28 43 25 2f 34 29 3a 78 5f 62 79 |ow%=.(C%/4):x_by| 00000410 74 65 25 3d a8 28 42 25 2f 34 29 0d 00 20 11 73 |te%=.(B%/4).. .s| 00000420 70 5f 76 69 73 69 62 6c 65 25 3d 30 0d 00 21 83 |p_visible%=0..!.| 00000430 e7 20 28 79 5f 72 6f 77 25 3e a8 28 77 74 6f 70 |. (y_row%>.(wtop| 00000440 25 20 2f 20 34 29 29 20 84 20 28 28 79 5f 72 6f |% / 4)) . ((y_ro| 00000450 77 25 2b 73 70 5f 68 69 74 65 25 29 3c a8 28 77 |w%+sp_hite%)<.(w| 00000460 62 6f 74 74 6f 6d 25 20 2f 20 34 29 29 20 84 20 |bottom% / 4)) . | 00000470 28 28 78 5f 62 79 74 65 25 2b 73 70 5f 77 69 64 |((x_byte%+sp_wid| 00000480 65 25 29 3c a8 28 77 6c 65 66 74 25 20 2f 20 34 |e%)<.(wleft% / 4| 00000490 29 29 20 84 20 28 78 5f 62 79 74 65 25 3e a8 28 |)) . (x_byte%>.(| 000004a0 77 72 69 67 68 74 25 20 2f 20 34 29 29 20 8c 0d |wright% / 4)) ..| 000004b0 00 22 12 20 73 70 5f 76 69 73 69 62 6c 65 25 3d |.". sp_visible%=| 000004c0 31 0d 00 23 05 cc 0d 00 24 37 20 f2 63 61 6c 63 |1..#....$7 .calc| 000004d0 5f 45 30 20 3a 20 f4 20 21 28 48 25 2b 26 45 30 |_E0 : . !(H%+&E0| 000004e0 29 20 3d 20 73 74 61 72 74 20 72 6f 77 20 69 6e |) = start row in| 000004f0 20 73 70 72 69 74 65 20 69 6d 61 67 65 0d 00 25 | sprite image..%| 00000500 3c 20 f2 63 61 6c 63 5f 45 34 20 3a 20 f4 20 21 |< .calc_E4 : . !| 00000510 28 48 25 2b 26 45 34 29 20 3d 20 6e 6f 2e 72 6f |(H%+&E4) = no.ro| 00000520 77 73 2d 31 20 6f 66 20 73 70 72 69 74 65 20 74 |ws-1 of sprite t| 00000530 6f 20 64 69 73 70 6c 61 79 0d 00 26 42 20 f2 63 |o display..&B .c| 00000540 61 6c 63 5f 45 38 20 3a 20 f4 20 21 28 48 25 2b |alc_E8 : . !(H%+| 00000550 26 45 38 29 20 3d 20 73 74 61 72 74 69 6e 67 20 |&E8) = starting | 00000560 62 79 74 65 20 6e 6f 2e 20 69 6e 20 65 61 63 68 |byte no. in each| 00000570 20 73 70 72 69 74 65 20 72 6f 77 0d 00 27 3f 20 | sprite row..'? | 00000580 f2 63 61 6c 63 5f 45 43 20 3a 20 f4 20 21 28 48 |.calc_EC : . !(H| 00000590 25 2b 26 45 43 29 20 3d 20 6e 6f 2e 62 79 74 65 |%+&EC) = no.byte| 000005a0 73 2d 31 20 74 6f 20 64 69 73 70 6c 61 79 20 69 |s-1 to display i| 000005b0 6e 20 65 61 63 68 20 72 6f 77 0d 00 28 05 cd 0d |n each row..(...| 000005c0 00 29 1c e7 73 70 5f 76 69 73 69 62 6c 65 25 3d |.)..sp_visible%=| 000005d0 30 3a d6 20 70 75 74 5f 73 70 25 0d 00 2a 05 e1 |0:. put_sp%..*..| 000005e0 0d 00 2b 04 0d 00 2c 0d dd f2 63 61 6c 63 5f 45 |..+...,...calc_E| 000005f0 30 0d 00 2d 2b 20 20 e7 20 28 79 5f 72 6f 77 25 |0..-+ . (y_row%| 00000600 2b 73 70 5f 68 69 74 65 25 29 20 3c 3d 20 a8 28 |+sp_hite%) <= .(| 00000610 77 74 6f 70 25 20 2f 20 34 29 20 8c 0d 00 2e 1b |wtop% / 4) .....| 00000620 20 20 20 20 e7 20 28 6f 72 69 65 6e 74 25 3e 3e | . (orient%>>| 00000630 3e 34 29 3d 30 20 8c 0d 00 2f 15 20 20 20 20 20 |>4)=0 .../. | 00000640 20 21 28 48 25 2b 26 45 30 29 3d 30 0d 00 30 09 | !(H%+&E0)=0..0.| 00000650 20 20 20 20 cc 0d 00 31 1c 20 20 20 20 20 20 21 | ...1. !| 00000660 28 48 25 2b 26 45 30 29 3d 73 70 5f 68 69 74 65 |(H%+&E0)=sp_hite| 00000670 25 0d 00 32 09 20 20 20 20 cd 0d 00 33 13 20 20 |%..2. ...3. | 00000680 20 20 21 28 48 25 2b 26 44 34 29 3d 30 0d 00 34 | !(H%+&D4)=0..4| 00000690 07 20 20 cc 0d 00 35 1b 20 20 20 20 e7 20 28 6f |. ...5. . (o| 000006a0 72 69 65 6e 74 25 3e 3e 3e 34 29 3d 30 20 8c 0d |rient%>>>4)=0 ..| 000006b0 00 36 32 20 20 20 20 20 20 21 28 48 25 2b 26 45 |.62 !(H%+&E| 000006c0 30 29 3d 73 70 5f 68 69 74 65 25 2d 28 a8 28 77 |0)=sp_hite%-(.(w| 000006d0 74 6f 70 25 20 2f 20 34 29 2d 79 5f 72 6f 77 25 |top% / 4)-y_row%| 000006e0 29 0d 00 37 09 20 20 20 20 cc 0d 00 38 27 20 20 |)..7. ...8' | 000006f0 20 20 20 20 21 28 48 25 2b 26 45 30 29 3d a8 28 | !(H%+&E0)=.(| 00000700 77 74 6f 70 25 20 2f 20 34 29 2d 79 5f 72 6f 77 |wtop% / 4)-y_row| 00000710 25 0d 00 39 09 20 20 20 20 cd 0d 00 3a 30 20 20 |%..9. ...:0 | 00000720 20 20 21 28 48 25 2b 26 44 34 29 3d 73 70 5f 68 | !(H%+&D4)=sp_h| 00000730 69 74 65 25 2d 28 a8 28 77 74 6f 70 25 20 2f 20 |ite%-(.(wtop% / | 00000740 34 29 2d 79 5f 72 6f 77 25 29 0d 00 3b 07 20 20 |4)-y_row%)..;. | 00000750 cd 0d 00 3c 05 e1 0d 00 3d 04 0d 00 3e 0d dd f2 |...<....=...>...| 00000760 63 61 6c 63 5f 45 34 0d 00 3f 23 20 20 e7 20 a8 |calc_E4..?# . .| 00000770 28 77 62 6f 74 74 6f 6d 25 20 2f 20 34 29 20 3c |(wbottom% / 4) <| 00000780 3d 20 79 5f 72 6f 77 25 20 8c 0d 00 40 1b 20 20 |= y_row% ...@. | 00000790 20 20 e7 20 28 6f 72 69 65 6e 74 25 3e 3e 3e 34 | . (orient%>>>4| 000007a0 29 3d 30 20 8c 0d 00 41 26 20 20 20 20 20 20 21 |)=0 ...A& !| 000007b0 28 48 25 2b 26 45 34 29 3d 73 70 5f 68 69 74 65 |(H%+&E4)=sp_hite| 000007c0 25 2d 21 28 48 25 2b 26 45 30 29 0d 00 42 09 20 |%-!(H%+&E0)..B. | 000007d0 20 20 20 cc 0d 00 43 1d 20 20 20 20 20 20 21 28 | ...C. !(| 000007e0 48 25 2b 26 45 34 29 3d 21 28 48 25 2b 26 45 30 |H%+&E4)=!(H%+&E0| 000007f0 29 0d 00 44 09 20 20 20 20 cd 0d 00 45 07 20 20 |)..D. ...E. | 00000800 cc 0d 00 46 1b 20 20 20 20 e7 20 28 6f 72 69 65 |...F. . (orie| 00000810 6e 74 25 3e 3e 3e 34 29 3d 30 20 8c 0d 00 47 3f |nt%>>>4)=0 ...G?| 00000820 20 20 20 20 20 20 21 28 48 25 2b 26 45 34 29 3d | !(H%+&E4)=| 00000830 73 70 5f 68 69 74 65 25 2d 28 a8 28 77 62 6f 74 |sp_hite%-(.(wbot| 00000840 74 6f 6d 25 20 2f 20 34 29 2d 79 5f 72 6f 77 25 |tom% / 4)-y_row%| 00000850 29 2d 21 28 48 25 2b 26 45 30 29 0d 00 48 09 20 |)-!(H%+&E0)..H. | 00000860 20 20 20 cc 0d 00 49 34 20 20 20 20 20 20 21 28 | ...I4 !(| 00000870 48 25 2b 26 45 34 29 3d 79 5f 72 6f 77 25 2b 21 |H%+&E4)=y_row%+!| 00000880 28 48 25 2b 26 45 30 29 2d a8 28 77 62 6f 74 74 |(H%+&E0)-.(wbott| 00000890 6f 6d 25 20 2f 20 34 29 0d 00 4a 09 20 20 20 20 |om% / 4)..J. | 000008a0 cd 0d 00 4b 07 20 20 cd 0d 00 4c 05 e1 0d 00 4d |...K. ...L....M| 000008b0 04 0d 00 4e 0d dd f2 63 61 6c 63 5f 45 38 0d 00 |...N...calc_E8..| 000008c0 4f 22 20 20 e7 20 78 5f 62 79 74 65 25 20 3e 3d |O" . x_byte% >=| 000008d0 20 a8 28 77 6c 65 66 74 25 20 2f 20 34 29 20 8c | .(wleft% / 4) .| 000008e0 0d 00 50 1b 20 20 20 20 e7 20 28 6f 72 69 65 6e |..P. . (orien| 000008f0 74 25 80 26 30 46 29 3d 30 20 8c 0d 00 51 15 20 |t%.&0F)=0 ...Q. | 00000900 20 20 20 20 20 21 28 48 25 2b 26 45 38 29 3d 30 | !(H%+&E8)=0| 00000910 0d 00 52 09 20 20 20 20 cc 0d 00 53 1c 20 20 20 |..R. ...S. | 00000920 20 20 20 21 28 48 25 2b 26 45 38 29 3d 73 70 5f | !(H%+&E8)=sp_| 00000930 77 69 64 65 25 0d 00 54 09 20 20 20 20 cd 0d 00 |wide%..T. ...| 00000940 55 13 20 20 20 20 21 28 48 25 2b 26 44 38 29 3d |U. !(H%+&D8)=| 00000950 30 0d 00 56 07 20 20 cc 0d 00 57 1b 20 20 20 20 |0..V. ...W. | 00000960 e7 20 28 6f 72 69 65 6e 74 25 80 26 30 46 29 3d |. (orient%.&0F)=| 00000970 30 20 8c 0d 00 58 29 20 20 20 20 20 20 21 28 48 |0 ...X) !(H| 00000980 25 2b 26 45 38 29 3d a8 28 77 6c 65 66 74 25 20 |%+&E8)=.(wleft% | 00000990 2f 20 34 29 2d 78 5f 62 79 74 65 25 0d 00 59 09 |/ 4)-x_byte%..Y.| 000009a0 20 20 20 20 cc 0d 00 5a 34 20 20 20 20 20 20 21 | ...Z4 !| 000009b0 28 48 25 2b 26 45 38 29 3d 73 70 5f 77 69 64 65 |(H%+&E8)=sp_wide| 000009c0 25 2d 28 a8 28 77 6c 65 66 74 25 20 2f 20 34 29 |%-(.(wleft% / 4)| 000009d0 2d 78 5f 62 79 74 65 25 29 0d 00 5b 09 20 20 20 |-x_byte%)..[. | 000009e0 20 cd 0d 00 5c 27 20 20 20 20 21 28 48 25 2b 26 | ...\' !(H%+&| 000009f0 44 38 29 3d a8 28 77 6c 65 66 74 25 20 2f 20 34 |D8)=.(wleft% / 4| 00000a00 29 2d 78 5f 62 79 74 65 25 0d 00 5d 07 20 20 cd |)-x_byte%..]. .| 00000a10 0d 00 5e 05 e1 0d 00 5f 04 0d 00 60 0d dd f2 63 |..^...._...`...c| 00000a20 61 6c 63 5f 45 43 0d 00 61 30 20 20 e7 20 28 78 |alc_EC..a0 . (x| 00000a30 5f 62 79 74 65 25 20 2b 20 73 70 5f 77 69 64 65 |_byte% + sp_wide| 00000a40 25 29 20 3c 3d 20 a8 28 77 72 69 67 68 74 25 20 |%) <= .(wright% | 00000a50 2f 20 34 29 20 8c 0d 00 62 1b 20 20 20 20 e7 20 |/ 4) ...b. . | 00000a60 28 6f 72 69 65 6e 74 25 80 26 30 46 29 3d 30 20 |(orient%.&0F)=0 | 00000a70 8c 0d 00 63 26 20 20 20 20 20 20 21 28 48 25 2b |...c& !(H%+| 00000a80 26 45 43 29 3d 73 70 5f 77 69 64 65 25 2d 21 28 |&EC)=sp_wide%-!(| 00000a90 48 25 2b 26 45 38 29 0d 00 64 09 20 20 20 20 cc |H%+&E8)..d. .| 00000aa0 0d 00 65 1d 20 20 20 20 20 20 21 28 48 25 2b 26 |..e. !(H%+&| 00000ab0 45 43 29 3d 21 28 48 25 2b 26 45 38 29 0d 00 66 |EC)=!(H%+&E8)..f| 00000ac0 09 20 20 20 20 cd 0d 00 67 07 20 20 cc 0d 00 68 |. ...g. ...h| 00000ad0 1b 20 20 20 20 e7 20 28 6f 72 69 65 6e 74 25 80 |. . (orient%.| 00000ae0 26 30 46 29 3d 30 20 8c 0d 00 69 34 20 20 20 20 |&0F)=0 ...i4 | 00000af0 20 20 21 28 48 25 2b 26 45 43 29 3d a8 28 77 72 | !(H%+&EC)=.(wr| 00000b00 69 67 68 74 25 20 2f 20 34 29 2d 78 5f 62 79 74 |ight% / 4)-x_byt| 00000b10 65 25 2d 21 28 48 25 2b 26 45 38 29 0d 00 6a 09 |e%-!(H%+&E8)..j.| 00000b20 20 20 20 20 cc 0d 00 6b 3f 20 20 20 20 20 20 21 | ...k? !| 00000b30 28 48 25 2b 26 45 43 29 3d 21 28 48 25 2b 26 45 |(H%+&EC)=!(H%+&E| 00000b40 38 29 2d 28 78 5f 62 79 74 65 25 2b 73 70 5f 77 |8)-(x_byte%+sp_w| 00000b50 69 64 65 25 2d a8 28 77 72 69 67 68 74 25 20 2f |ide%-.(wright% /| 00000b60 20 34 29 29 0d 00 6c 09 20 20 20 20 cd 0d 00 6d | 4))..l. ...m| 00000b70 07 20 20 cd 0d 00 6e 05 e1 0d 00 6f 04 0d 00 70 |. ...n....o...p| 00000b80 0d dd f2 70 61 6c 65 74 74 65 0d 00 71 08 f7 20 |...palette..q.. | 00000b90 2b 30 0d 00 72 9e dc 20 32 35 35 2c 32 35 35 2c |+0..r.. 255,255,| 00000ba0 32 35 35 2c 31 37 30 2c 31 37 30 2c 31 37 30 2c |255,170,170,170,| 00000bb0 31 30 32 2c 31 30 32 2c 31 30 32 2c 30 2c 30 2c |102,102,102,0,0,| 00000bc0 30 2c 30 2c 30 2c 31 35 33 2c 30 2c 35 31 2c 32 |0,0,0,153,0,51,2| 00000bd0 35 35 2c 30 2c 32 30 34 2c 32 35 35 2c 32 35 35 |55,0,204,255,255| 00000be0 2c 31 33 36 2c 30 2c 32 32 31 2c 30 2c 30 2c 32 |,136,0,221,0,0,2| 00000bf0 35 35 2c 32 35 35 2c 30 2c 31 33 36 2c 31 37 2c |55,255,0,136,17,| 00000c00 30 2c 32 35 35 2c 32 30 34 2c 31 35 33 2c 30 2c |0,255,204,153,0,| 00000c10 31 31 39 2c 33 34 2c 30 2c 31 38 37 2c 30 2c 30 |119,34,0,187,0,0| 00000c20 2c 32 35 35 2c 33 34 2c 31 38 37 2c 38 35 2c 30 |,255,34,187,85,0| 00000c30 0d 00 73 32 e3 20 69 25 3d 30 20 b8 20 31 35 3a |..s2. i%=0 . 15:| 00000c40 f3 20 72 25 2c 20 67 25 2c 20 62 25 3a ef 20 31 |. r%, g%, b%:. 1| 00000c50 39 2c 69 25 2c 31 36 2c 72 25 2c 67 25 2c 62 25 |9,i%,16,r%,g%,b%| 00000c60 3a ed 0d 00 74 05 e1 0d 00 75 04 0d 00 76 12 dd |:...t....u...v..| 00000c70 f2 77 61 69 74 28 64 65 6c 61 79 25 29 0d 00 77 |.wait(delay%)..w| 00000c80 17 61 25 3d 91 3a f5 fd 91 3e 3d 61 25 2b 64 65 |.a%=.:...>=a%+de| 00000c90 6c 61 79 25 0d 00 78 05 e1 0d 00 79 04 0d 00 7a |lay%..x....y...z| 00000ca0 1e dd f2 77 6f 72 64 73 28 41 25 2c 42 25 2c 62 |...words(A%,B%,b| 00000cb0 69 67 25 2c 77 6f 72 64 73 24 29 0d 00 7b 2c 45 |ig%,words$)..{,E| 00000cc0 25 3d 33 3a e7 62 69 67 25 3a 43 25 3d 33 32 30 |%=3:.big%:C%=320| 00000cd0 3a 44 25 3d 33 36 30 3a 8b 3a 43 25 3d 32 34 30 |:D%=360:.:C%=240| 00000ce0 3a 44 25 3d 32 37 30 0d 00 7c 42 e3 6c 65 74 74 |:D%=270..|B.lett| 00000cf0 25 3d 31 b8 a9 28 77 6f 72 64 73 24 29 3a 3f 28 |%=1..(words$):?(| 00000d00 6c 65 74 74 65 72 73 25 2b 28 6c 65 74 74 25 2d |letters%+(lett%-| 00000d10 31 29 29 3d 97 28 c1 77 6f 72 64 73 24 2c 6c 65 |1))=.(.words$,le| 00000d20 74 74 25 2c 31 29 29 3a ed 0d 00 7d 1d 3f 28 6c |tt%,1)):...}.?(l| 00000d30 65 74 74 65 72 73 25 2b a9 28 77 6f 72 64 73 24 |etters%+.(words$| 00000d40 29 29 3d 26 30 44 0d 00 7e 0c d6 20 66 6f 6e 74 |))=&0D..~.. font| 00000d50 73 25 0d 00 7f 05 e1 0d 00 80 04 0d 00 81 20 dd |s%............ .| 00000d60 f2 6a 70 77 6f 72 64 73 28 41 25 2c 42 25 2c 62 |.jpwords(A%,B%,b| 00000d70 69 67 25 2c 77 6f 72 64 73 24 29 0d 00 82 2c 45 |ig%,words$)...,E| 00000d80 25 3d 35 3a e7 62 69 67 25 3a 43 25 3d 33 32 30 |%=5:.big%:C%=320| 00000d90 3a 44 25 3d 33 36 30 3a 8b 3a 43 25 3d 32 34 30 |:D%=360:.:C%=240| 00000da0 3a 44 25 3d 32 37 30 0d 00 83 42 e3 6c 65 74 74 |:D%=270...B.lett| 00000db0 25 3d 31 b8 a9 28 77 6f 72 64 73 24 29 3a 3f 28 |%=1..(words$):?(| 00000dc0 6c 65 74 74 65 72 73 25 2b 28 6c 65 74 74 25 2d |letters%+(lett%-| 00000dd0 31 29 29 3d 97 28 c1 77 6f 72 64 73 24 2c 6c 65 |1))=.(.words$,le| 00000de0 74 74 25 2c 31 29 29 3a ed 0d 00 84 1d 3f 28 6c |tt%,1)):.....?(l| 00000df0 65 74 74 65 72 73 25 2b a9 28 77 6f 72 64 73 24 |etters%+.(words$| 00000e00 29 29 3d 26 30 44 0d 00 85 0c d6 20 66 6f 6e 74 |))=&0D..... font| 00000e10 73 25 0d 00 86 05 e1 0d 00 87 04 0d 00 88 0f dd |s%..............| 00000e20 f2 73 63 72 63 6f 70 79 32 31 0d 00 89 20 c8 99 |.scrcopy21... ..| 00000e30 20 22 4f 53 5f 42 79 74 65 22 2c 31 31 33 2c 32 | "OS_Byte",113,2| 00000e40 3a 41 25 3d 32 3a 42 25 3d 31 0d 00 8a 0e d6 20 |:A%=2:B%=1..... | 00000e50 63 6f 70 79 73 63 72 25 0d 00 8b 31 c8 96 3a c8 |copyscr%...1..:.| 00000e60 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 31 33 2c |. "OS_Byte",113,| 00000e70 31 3a c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 |1:.. "OS_Byte",1| 00000e80 31 32 2c 31 3a ef 20 32 36 0d 00 8c 05 e1 0d 00 |12,1:. 26.......| 00000e90 8d 04 0d 00 8e 25 dd f2 73 63 72 63 6f 70 79 32 |.....%..scrcopy2| 00000ea0 31 65 78 70 28 41 25 2c 42 25 2c 43 25 2c 44 25 |1exp(A%,B%,C%,D%| 00000eb0 2c 45 25 2c 46 25 29 0d 00 8f 10 d6 20 62 6c 6f |,E%,F%)..... blo| 00000ec0 77 75 70 73 63 72 25 0d 00 90 05 e1 0d 00 91 04 |wupscr%.........| 00000ed0 0d 00 92 20 dd f2 65 78 70 6c 6f 64 65 28 78 70 |... ..explode(xp| 00000ee0 6f 73 25 2c 79 70 6f 73 25 2c 61 75 74 6f 25 29 |os%,ypos%,auto%)| 00000ef0 0d 00 93 3c f4 20 43 25 3d 72 69 67 68 74 20 73 |...<. C%=right s| 00000f00 70 65 65 64 3a 44 25 3d 64 6f 77 6e 20 73 70 65 |peed:D%=down spe| 00000f10 65 64 3a 45 25 3d 6c 65 66 74 20 73 70 65 65 64 |ed:E%=left speed| 00000f20 3a 46 25 3d 75 70 20 73 70 65 65 64 0d 00 94 32 |:F%=up speed...2| 00000f30 41 25 3d a8 28 78 70 6f 73 25 2f 34 29 3a 42 25 |A%=.(xpos%/4):B%| 00000f40 3d 32 34 30 2d a8 28 79 70 6f 73 25 2f 34 29 3a |=240-.(ypos%/4):| 00000f50 e7 42 25 3e 31 37 37 3a 42 25 3d 31 37 37 0d 00 |.B%>177:B%=177..| 00000f60 95 0b e7 61 75 74 6f 25 8c 0d 00 96 2c 43 25 3d |...auto%....,C%=| 00000f70 33 31 39 2d 41 25 3a 44 25 3d 31 37 39 2d 42 25 |319-A%:D%=179-B%| 00000f80 3a 45 25 3d 41 25 3a 46 25 3d 42 25 3a 66 61 63 |:E%=A%:F%=B%:fac| 00000f90 74 25 3d 43 25 0d 00 97 16 e7 44 25 3c 66 61 63 |t%=C%.....D%<fac| 00000fa0 74 25 3a 66 61 63 74 25 3d 44 25 0d 00 98 16 e7 |t%:fact%=D%.....| 00000fb0 45 25 3c 66 61 63 74 25 3a 66 61 63 74 25 3d 45 |E%<fact%:fact%=E| 00000fc0 25 0d 00 99 16 e7 46 25 3c 66 61 63 74 25 3a 66 |%.....F%<fact%:f| 00000fd0 61 63 74 25 3d 46 25 0d 00 9a 3f 43 25 3d a8 28 |act%=F%...?C%=.(| 00000fe0 43 25 2f 66 61 63 74 25 29 3a 44 25 3d a8 28 44 |C%/fact%):D%=.(D| 00000ff0 25 2f 66 61 63 74 25 29 3a 45 25 3d a8 28 45 25 |%/fact%):E%=.(E%| 00001000 2f 66 61 63 74 25 29 3a 46 25 3d a8 28 46 25 2f |/fact%):F%=.(F%/| 00001010 66 61 63 74 25 29 0d 00 9b 0e e7 43 25 3e 36 3a |fact%).....C%>6:| 00001020 43 25 3d 36 0d 00 9c 0e e7 44 25 3e 36 3a 44 25 |C%=6.....D%>6:D%| 00001030 3d 36 0d 00 9d 0e e7 45 25 3e 36 3a 45 25 3d 36 |=6.....E%>6:E%=6| 00001040 0d 00 9e 0e e7 46 25 3e 36 3a 46 25 3d 36 0d 00 |.....F%>6:F%=6..| 00001050 9f 05 cd 0d 00 a0 30 42 25 3d 28 48 25 21 26 46 |......0B%=(H%!&F| 00001060 30 29 2a 42 25 3a 44 25 3d 28 48 25 21 26 46 30 |0)*B%:D%=(H%!&F0| 00001070 29 2a 44 25 3a 46 25 3d 28 48 25 21 26 46 30 29 |)*D%:F%=(H%!&F0)| 00001080 2a 46 25 0d 00 a1 24 f2 73 63 72 63 6f 70 79 32 |*F%...$.scrcopy2| 00001090 31 65 78 70 28 41 25 2c 42 25 2c 43 25 2c 44 25 |1exp(A%,B%,C%,D%| 000010a0 2c 45 25 2c 46 25 29 0d 00 a2 05 e1 0d 00 a3 04 |,E%,F%).........| 000010b0 0d 00 a4 14 dd f2 6c 69 62 5f 69 6e 69 74 69 61 |......lib_initia| 000010c0 6c 69 73 65 0d 00 a5 8e f4 4f 4e 45 52 52 4f 52 |lise.....ONERROR| 000010d0 20 53 59 53 22 4f 53 5f 42 79 74 65 22 2c 32 35 | SYS"OS_Byte",25| 000010e0 30 2c 30 2c 32 35 35 20 54 4f 20 2c 73 63 72 25 |0,0,255 TO ,scr%| 000010f0 3a 53 59 53 22 4f 53 5f 42 79 74 65 22 2c 31 31 |:SYS"OS_Byte",11| 00001100 33 2c 73 63 72 25 3a 50 52 49 4e 54 20 52 45 50 |3,scr%:PRINT REP| 00001110 4f 52 54 24 2b 22 20 28 49 6e 74 65 72 6e 61 6c |ORT$+" (Internal| 00001120 20 65 72 72 6f 72 20 63 6f 64 65 20 22 2b 53 54 | error code "+ST| 00001130 52 24 45 52 4c 2b 22 29 22 2b 43 48 52 24 30 3a |R$ERL+")"+CHR$0:| 00001140 78 3d 47 45 54 3a 50 52 4f 43 64 65 73 6b 5f 74 |x=GET:PROCdesk_t| 00001150 6f 70 0d 00 a6 10 ee 85 3a f2 64 65 73 6b 5f 74 |op......:.desk_t| 00001160 6f 70 0d 00 a7 1c f2 70 75 6c 6c 5f 76 61 72 69 |op.....pull_vari| 00001170 61 62 6c 65 73 3a f2 70 61 6c 65 74 74 65 0d 00 |ables:.palette..| 00001180 a8 55 de 20 53 43 41 4c 45 25 20 31 36 3a 21 28 |.U. SCALE% 16:!(| 00001190 53 43 41 4c 45 25 2b 30 29 3d 31 36 3a 21 28 53 |SCALE%+0)=16:!(S| 000011a0 43 41 4c 45 25 2b 34 29 3d 31 36 2a 28 48 25 21 |CALE%+4)=16*(H%!| 000011b0 26 46 30 29 3a 21 28 53 43 41 4c 45 25 2b 38 29 |&F0):!(SCALE%+8)| 000011c0 3d 31 36 3a 21 28 53 43 41 4c 45 25 2b 31 32 29 |=16:!(SCALE%+12)| 000011d0 3d 31 36 0d 00 a9 3c c8 99 20 22 4f 53 5f 53 70 |=16...<.. "OS_Sp| 000011e0 72 69 74 65 4f 70 22 2c 26 31 30 41 2c 41 52 45 |riteOp",&10A,ARE| 000011f0 41 25 2c 22 3c 41 5a 54 45 43 24 63 68 61 69 6e |A%,"<AZTEC$chain| 00001200 64 69 72 3e 2e 62 75 74 74 6f 6e 73 5f 63 22 0d |dir>.buttons_c".| 00001210 00 aa 2b 6c 65 66 74 25 3d 31 32 3a 6c 6f 77 25 |..+left%=12:low%| 00001220 3d 32 35 36 3a 72 69 67 68 74 25 3d 31 32 36 37 |=256:right%=1267| 00001230 3a 68 69 67 68 25 3d 39 34 37 0d 00 ab 39 ef 20 |:high%=947...9. | 00001240 32 33 2c 31 37 2c 34 2c 31 2c 30 2c 30 2c 30 2c |23,17,4,1,0,0,0,| 00001250 30 2c 30 2c 30 20 3a 20 f4 20 52 49 53 43 20 4f |0,0,0 : . RISC O| 00001260 53 20 69 6e 74 65 72 6c 65 61 76 69 6e 67 20 45 |S interleaving E| 00001270 43 46 73 0d 00 ac 1a de 20 69 6e 70 75 74 5f 64 |CFs..... input_d| 00001280 69 73 6b 5f 6e 61 6d 65 25 20 32 35 36 0d 00 ad |isk_name% 256...| 00001290 32 de 20 70 64 72 65 63 74 25 20 31 36 2c 70 64 |2. pdrect% 16,pd| 000012a0 72 65 63 74 32 25 20 31 36 2c 70 64 74 72 61 6e |rect2% 16,pdtran| 000012b0 73 25 20 31 36 2c 70 64 70 6c 6f 74 25 20 38 0d |s% 16,pdplot% 8.| 000012c0 00 ae 26 de 20 73 63 61 6c 65 25 20 31 36 2c 63 |..&. scale% 16,c| 000012d0 74 72 61 6e 73 25 20 32 35 36 2c 70 61 6c 74 61 |trans% 256,palta| 000012e0 62 25 20 36 34 0d 00 af 0e 6d 61 78 62 75 74 25 |b% 64....maxbut%| 000012f0 3d 31 33 0d 00 b0 98 de 20 63 6f 6f 72 64 73 25 |=13..... coords%| 00001300 28 6d 61 78 62 75 74 25 2c 31 29 2c 77 69 64 74 |(maxbut%,1),widt| 00001310 68 25 28 6d 61 78 62 75 74 25 29 2c 68 65 69 67 |h%(maxbut%),heig| 00001320 68 74 25 28 6d 61 78 62 75 74 25 29 2c 65 63 5f |ht%(maxbut%),ec_| 00001330 77 69 64 74 68 25 28 6d 61 78 62 75 74 25 29 2c |width%(maxbut%),| 00001340 65 63 5f 68 65 69 67 68 74 25 28 6d 61 78 62 75 |ec_height%(maxbu| 00001350 74 25 29 2c 62 75 74 74 79 70 65 25 28 6d 61 78 |t%),buttype%(max| 00001360 62 75 74 25 29 2c 6c 61 62 65 6c 73 24 28 6d 61 |but%),labels$(ma| 00001370 78 62 75 74 25 29 2c 6c 61 62 5f 6f 66 66 73 25 |xbut%),lab_offs%| 00001380 28 6d 61 78 62 75 74 25 2c 31 29 0d 00 b1 19 de |(maxbut%,1).....| 00001390 20 62 75 74 24 28 32 2c 33 29 2c 62 6f 78 25 28 | but$(2,3),box%(| 000013a0 34 2c 31 29 0d 00 b2 48 62 75 74 24 28 30 2c 30 |4,1)...Hbut$(0,0| 000013b0 29 3d 22 62 75 74 74 6f 6e 5f 6f 66 66 22 3a 62 |)="button_off":b| 000013c0 75 74 24 28 31 2c 30 29 3d 22 62 75 74 74 6f 6e |ut$(1,0)="button| 000013d0 5f 6f 76 65 72 22 3a 62 75 74 24 28 32 2c 30 29 |_over":but$(2,0)| 000013e0 3d 22 62 75 74 74 6f 6e 5f 6f 6e 22 0d 00 b3 3f |="button_on"...?| 000013f0 62 75 74 24 28 30 2c 31 29 3d 22 62 75 74 5f 6f |but$(0,1)="but_o| 00001400 66 66 22 3a 62 75 74 24 28 31 2c 31 29 3d 22 62 |ff":but$(1,1)="b| 00001410 75 74 5f 6f 76 65 72 22 3a 62 75 74 24 28 32 2c |ut_over":but$(2,| 00001420 31 29 3d 22 62 75 74 5f 6f 6e 22 0d 00 b4 3c 62 |1)="but_on"...<b| 00001430 75 74 24 28 30 2c 32 29 3d 22 62 75 5f 6f 66 66 |ut$(0,2)="bu_off| 00001440 22 3a 62 75 74 24 28 31 2c 32 29 3d 22 62 75 5f |":but$(1,2)="bu_| 00001450 6f 76 65 72 22 3a 62 75 74 24 28 32 2c 32 29 3d |over":but$(2,2)=| 00001460 22 62 75 5f 6f 6e 22 0d 00 b5 42 62 75 74 24 28 |"bu_on"...Bbut$(| 00001470 30 2c 33 29 3d 22 62 75 74 74 5f 6f 66 66 22 3a |0,3)="butt_off":| 00001480 62 75 74 24 28 31 2c 33 29 3d 22 62 75 74 74 5f |but$(1,3)="butt_| 00001490 6f 76 65 72 22 3a 62 75 74 24 28 32 2c 33 29 3d |over":but$(2,3)=| 000014a0 22 62 75 74 74 5f 6f 6e 22 0d 00 b6 0f f2 65 78 |"butt_on".....ex| 000014b0 70 61 6e 64 62 75 74 73 0d 00 b7 25 f2 69 6e 69 |pandbuts...%.ini| 000014c0 74 5f 62 75 74 73 28 31 30 30 30 2c 32 30 2c 31 |t_buts(1000,20,1| 000014d0 38 2c 31 36 2c 32 34 2c 32 34 2c 31 29 0d 00 b8 |8,16,24,24,1)...| 000014e0 11 6d 61 78 73 6f 75 6e 64 73 25 3d 32 30 0d 00 |.maxsounds%=20..| 000014f0 b9 1c de 20 73 6f 75 6e 64 6d 6f 64 73 24 28 6d |... soundmods$(m| 00001500 61 78 73 6f 75 6e 64 73 25 29 0d 00 ba 08 f7 20 |axsounds%)..... | 00001510 2b 30 0d 00 bb 2b dc 20 64 69 67 2c 6c 69 67 68 |+0...+. dig,ligh| 00001520 74 6e 2c 67 72 75 6e 74 2c 67 72 69 6e 64 2c 63 |tn,grunt,grind,c| 00001530 6c 69 63 6b 2c 74 75 72 6b 2c 79 61 70 0d 00 bc |lick,turk,yap...| 00001540 34 dc 20 73 6e 6f 72 65 2c 68 69 63 63 75 70 2c |4. snore,hiccup,| 00001550 73 77 61 6c 6c 6f 77 2c 66 6c 61 72 65 75 70 2c |swallow,flareup,| 00001560 73 74 65 70 2c 73 74 61 62 2c 4d 61 72 6b 65 64 |step,stab,Marked| 00001570 34 0d 00 bd 35 dc 20 73 6f 6f 74 74 68 72 2c 4d |4...5. sootthr,M| 00001580 41 52 4b 45 44 33 2c 65 6e 67 69 6e 65 2c 67 6f |ARKED3,engine,go| 00001590 61 6c 2c 73 74 65 61 6d 2c 72 61 73 70 6c 67 2c |al,steam,rasplg,| 000015a0 72 61 73 70 73 68 0d 00 be 27 e3 6b 25 3d 30 b8 |raspsh...'.k%=0.| 000015b0 6d 61 78 73 6f 75 6e 64 73 25 3a f3 20 73 6f 75 |maxsounds%:. sou| 000015c0 6e 64 6d 6f 64 73 24 28 6b 25 29 3a ed 0d 00 bf |ndmods$(k%):....| 000015d0 05 e1 0d 00 c0 04 0d 00 c1 10 dd f2 65 78 70 61 |............expa| 000015e0 6e 64 62 75 74 73 0d 00 c2 2c e3 6b 25 3d 30 b8 |ndbuts...,.k%=0.| 000015f0 32 3a e3 6c 25 3d 30 b8 33 3a f2 65 78 70 61 6e |2:.l%=0.3:.expan| 00001600 64 28 62 75 74 24 28 6b 25 2c 6c 25 29 29 3a ed |d(but$(k%,l%)):.| 00001610 3a ed 0d 00 c3 14 f2 65 78 70 61 6e 64 28 22 6d |:......expand("m| 00001620 6f 75 73 65 22 29 0d 00 c4 05 e1 0d 00 c5 04 0d |ouse")..........| 00001630 00 c6 36 dd f2 69 6e 69 74 5f 62 75 74 73 28 78 |..6..init_buts(x| 00001640 63 6f 25 2c 79 63 6f 25 2c 77 69 64 25 2c 68 65 |co%,yco%,wid%,he| 00001650 69 25 2c 78 6f 66 66 25 2c 79 6f 66 66 25 2c 62 |i%,xoff%,yoff%,b| 00001660 75 74 74 25 29 0d 00 c7 14 e3 20 62 25 3d 30 20 |utt%)..... b%=0 | 00001670 b8 20 6d 61 78 62 75 74 25 0d 00 c8 29 63 6f 6f |. maxbut%...)coo| 00001680 72 64 73 25 28 62 25 2c 30 29 3d 78 63 6f 25 3a |rds%(b%,0)=xco%:| 00001690 63 6f 6f 72 64 73 25 28 62 25 2c 31 29 3d 79 63 |coords%(b%,1)=yc| 000016a0 6f 25 0d 00 c9 24 77 69 64 74 68 25 28 62 25 29 |o%...$width%(b%)| 000016b0 3d 77 69 64 25 3a 68 65 69 67 68 74 25 28 62 25 |=wid%:height%(b%| 000016c0 29 3d 68 65 69 25 0d 00 ca 2f 6c 61 62 5f 6f 66 |)=hei%.../lab_of| 000016d0 66 73 25 28 62 25 2c 30 29 3d 78 6f 66 66 25 3a |fs%(b%,0)=xoff%:| 000016e0 6c 61 62 5f 6f 66 66 73 25 28 62 25 2c 31 29 3d |lab_offs%(b%,1)=| 000016f0 79 6f 66 66 25 0d 00 cb 16 62 75 74 74 79 70 65 |yoff%....buttype| 00001700 25 28 62 25 29 3d 62 75 74 74 25 0d 00 cc 05 ed |%(b%)=butt%.....| 00001710 0d 00 cd 05 e1 0d 00 ce 04 0d 00 cf 0e dd f2 64 |...............d| 00001720 65 73 6b 5f 74 6f 70 0d 00 d0 36 d8 3a de 62 75 |esk_top...6.:.bu| 00001730 66 25 20 34 3a e3 69 25 3d 31 b8 31 36 3a c8 96 |f% 4:.i%=1.16:..| 00001740 3a e3 63 25 3d 30 b8 31 36 3a e7 63 25 3c 31 36 |:.c%=0.16:.c%<16| 00001750 76 25 3d 31 36 20 8b 20 76 25 3d 32 34 0d 00 d1 |v%=16 . v%=24...| 00001760 50 c8 99 22 4f 53 5f 52 65 61 64 50 61 6c 65 74 |P.."OS_ReadPalet| 00001770 74 65 22 2c 63 25 2c 76 25 20 b8 20 2c 2c 64 25 |te",c%,v% . ,,d%| 00001780 3a 21 62 75 66 25 3d 64 25 3a e3 62 25 3d 31 b8 |:!buf%=d%:.b%=1.| 00001790 33 3a e7 62 75 66 25 3f 62 25 3e 30 62 75 66 25 |3:.buf%?b%>0buf%| 000017a0 3f 62 25 2d 3d 31 36 3a ed 3a 8b 3a ed 0d 00 d2 |?b%-=16:.:.:....| 000017b0 25 ef 31 39 2c 63 25 2c 76 25 2c 62 75 66 25 3f |%.19,c%,v%,buf%?| 000017c0 31 2c 62 75 66 25 3f 32 2c 62 75 66 25 3f 33 3a |1,buf%?2,buf%?3:| 000017d0 ed 2c 0d 00 d3 09 2a 46 58 31 35 0d 00 d4 0c 2a |.,....*FX15....*| 000017e0 46 58 32 32 35 2c 31 0d 00 d5 20 2a 4b 45 59 30 |FX225,1... *KEY0| 000017f0 20 50 41 47 45 3d 26 38 46 30 30 7c 4d 4f 4c 44 | PAGE=&8F00|MOLD| 00001800 7c 4d 52 55 4e 7c 4d 0d 00 d6 10 2a 46 58 31 33 ||MRUN|M....*FX13| 00001810 38 2c 30 2c 31 32 38 0d 00 d7 0a 2a 42 41 53 49 |8,0,128....*BASI| 00001820 43 0d 00 d8 05 fa 0d 00 d9 04 0d 00 da 20 dd f2 |C............ ..| 00001830 61 64 64 5f 73 70 28 73 63 72 25 2c 73 70 72 24 |add_sp(scr%,spr$| 00001840 2c 43 25 2c 44 25 2c 47 25 29 0d 00 db 21 e7 73 |,C%,D%,G%)...!.s| 00001850 63 72 25 3d 31 3a 41 25 3d 48 25 21 26 43 30 3a |cr%=1:A%=H%!&C0:| 00001860 8b 3a 41 25 3d 48 25 21 26 43 34 0d 00 dc 35 c8 |.:A%=H%!&C4...5.| 00001870 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |. "OS_SpriteOp",| 00001880 26 31 31 38 2c 41 52 45 41 25 2c 73 70 72 24 20 |&118,AREA%,spr$ | 00001890 b8 20 2c 2c 42 25 3a 42 25 2b 3d 42 25 21 33 32 |. ,,B%:B%+=B%!32| 000018a0 0d 00 dd 10 e7 28 48 25 21 26 46 30 29 3d 32 8c |.....(H%!&F0)=2.| 000018b0 0d 00 de 0b 44 25 3d 32 2a 44 25 0d 00 df 10 d6 |....D%=2*D%.....| 000018c0 20 73 70 5f 6f 6e 5f 76 67 61 25 0d 00 e0 05 cc | sp_on_vga%.....| 000018d0 0d 00 e1 10 d6 20 73 70 5f 6f 6e 5f 63 67 61 25 |..... sp_on_cga%| 000018e0 0d 00 e2 05 cd 0d 00 e3 05 e1 0d 00 e4 04 0d 00 |................| 000018f0 e5 0b dd f2 67 6f 5f 6f 6e 0d 00 e6 13 63 6f 6f |....go_on....coo| 00001900 72 64 73 25 28 30 2c 31 29 3d 32 30 0d 00 e7 19 |rds%(0,1)=20....| 00001910 6c 61 62 65 6c 73 24 28 30 29 3d 22 20 20 47 6f |labels$(0)=" Go| 00001920 20 20 6f 6e 22 0d 00 e8 18 f2 63 68 6f 6f 73 65 | on".....choose| 00001930 5f 62 75 74 28 31 2c 31 2c 32 2c 30 29 0d 00 e9 |_but(1,1,2,0)...| 00001940 05 e1 0d 00 ea 04 0d 00 eb 0d dd f2 6a 70 67 6f |............jpgo| 00001950 5f 6f 6e 0d 00 ec 13 63 6f 6f 72 64 73 25 28 30 |_on....coords%(0| 00001960 2c 31 29 3d 32 34 0d 00 ed 19 6c 61 62 65 6c 73 |,1)=24....labels| 00001970 24 28 30 29 3d 22 20 20 47 6f 20 20 6f 6e 22 0d |$(0)=" Go on".| 00001980 00 ee 19 f2 63 68 6f 6f 73 65 5f 62 75 74 28 31 |....choose_but(1| 00001990 2c 31 2c 32 2c 31 38 29 0d 00 ef 10 f2 6a 70 63 |,1,2,18).....jpc| 000019a0 6c 65 61 72 74 65 78 74 0d 00 f0 05 e1 0d 00 f1 |leartext........| 000019b0 04 0d 00 f2 0c dd f2 6a 70 69 6e 66 6f 0d 00 f3 |.......jpinfo...| 000019c0 3f c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 |?.. "OS_SpriteOp| 000019d0 22 2c 26 31 30 42 2c 41 52 45 41 25 2c 22 3c 41 |",&10B,AREA%,"<A| 000019e0 5a 54 45 43 24 63 68 61 69 6e 64 69 72 3e 2e 4f |ZTEC$chaindir>.O| 000019f0 4e 45 2e 6a 70 69 6e 66 6f 5f 63 22 0d 00 f4 59 |NE.jpinfo_c"...Y| 00001a00 f4 49 46 28 4c 25 3e 32 30 30 30 29 41 4e 44 28 |.IF(L%>2000)AND(| 00001a10 4c 25 3c 33 30 30 30 29 3a 53 59 53 20 22 4f 53 |L%<3000):SYS "OS| 00001a20 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 30 42 2c |_SpriteOp",&10B,| 00001a30 41 52 45 41 25 2c 22 3c 41 5a 54 45 43 24 63 68 |AREA%,"<AZTEC$ch| 00001a40 61 69 6e 64 69 72 3e 2e 54 57 4f 2e 6a 70 69 6e |aindir>.TWO.jpin| 00001a50 66 6f 5f 63 22 0d 00 f5 4d f4 49 46 4c 25 3e 33 |fo_c"...M.IFL%>3| 00001a60 30 30 30 3a 53 59 53 20 22 4f 53 5f 53 70 72 69 |000:SYS "OS_Spri| 00001a70 74 65 4f 70 22 2c 26 31 30 42 2c 41 52 45 41 25 |teOp",&10B,AREA%| 00001a80 2c 22 3c 41 5a 54 45 43 24 63 68 61 69 6e 64 69 |,"<AZTEC$chaindi| 00001a90 72 3e 2e 54 48 52 45 45 2e 6a 70 69 6e 66 6f 5f |r>.THREE.jpinfo_| 00001aa0 63 22 0d 00 f6 24 f2 69 6e 69 74 5f 62 75 74 73 |c"...$.init_buts| 00001ab0 28 39 30 30 2c 34 30 2c 32 34 2c 31 36 2c 32 36 |(900,40,24,16,26| 00001ac0 2c 32 34 2c 31 29 0d 00 f7 1e 6c 61 62 65 6c 73 |,24,1)....labels| 00001ad0 24 28 30 29 3d 22 20 4a 65 74 2d 70 61 63 20 69 |$(0)=" Jet-pac i| 00001ae0 6e 66 6f 22 0d 00 f8 19 f2 63 68 6f 6f 73 65 5f |nfo".....choose_| 00001af0 62 75 74 28 31 2c 31 2c 32 2c 31 36 29 0d 00 f9 |but(1,1,2,16)...| 00001b00 0b ef 31 38 2c 30 2c 35 0d 00 fa 0e e3 6b 25 3d |..18,0,5.....k%=| 00001b10 32 b8 31 88 2d 31 0d 00 fb 16 c8 99 22 4f 53 5f |2.1.-1......"OS_| 00001b20 42 79 74 65 22 2c 31 31 32 2c 6b 25 0d 00 fc 5a |Byte",112,k%...Z| 00001b30 ef 32 35 2c 34 2c 31 32 3b 31 32 3b 3a ef 32 35 |.25,4,12;12;:.25| 00001b40 2c 31 30 31 2c 31 32 36 36 3b 31 38 3b 3a ef 32 |,101,1266;18;:.2| 00001b50 35 2c 31 30 31 2c 31 32 36 30 3b 6c 6f 77 25 2d |5,101,1260;low%-| 00001b60 32 32 3b 3a ef 32 35 2c 31 30 31 2c 31 32 3b 6c |22;:.25,101,12;l| 00001b70 6f 77 25 2d 32 38 3b 3a ef 32 35 2c 31 30 31 2c |ow%-28;:.25,101,| 00001b80 31 38 3b 31 32 3b 0d 00 fd 05 ed 0d 00 fe 3f f2 |18;12;........?.| 00001b90 61 64 64 5f 73 70 28 31 2c 22 6a 70 69 6e 66 6f |add_sp(1,"jpinfo| 00001ba0 22 2c 31 30 32 2c 31 37 38 2c 36 29 3a f2 61 64 |",102,178,6):.ad| 00001bb0 64 5f 73 70 28 32 2c 22 6a 70 69 6e 66 6f 22 2c |d_sp(2,"jpinfo",| 00001bc0 31 30 32 2c 31 37 38 2c 36 29 0d 00 ff 25 f2 69 |102,178,6)...%.i| 00001bd0 6e 69 74 5f 62 75 74 73 28 31 30 30 30 2c 32 30 |nit_buts(1000,20| 00001be0 2c 31 38 2c 31 36 2c 32 34 2c 32 34 2c 31 29 0d |,18,16,24,24,1).| 00001bf0 01 00 05 e1 0d 01 01 04 0d 01 02 0b dd f2 6a 70 |..............jp| 00001c00 65 6e 64 0d 01 03 27 f2 64 65 6c 65 74 65 28 22 |end...'.delete("| 00001c10 6a 70 69 6e 66 6f 22 29 3a f2 64 65 6c 65 74 65 |jpinfo"):.delete| 00001c20 28 22 6a 70 73 63 61 6e 22 29 0d 01 04 25 f2 69 |("jpscan")...%.i| 00001c30 6e 69 74 5f 62 75 74 73 28 31 30 30 30 2c 32 34 |nit_buts(1000,24| 00001c40 2c 32 32 2c 31 36 2c 32 36 2c 32 34 2c 31 29 0d |,22,16,26,24,1).| 00001c50 01 05 1d 6c 61 62 65 6c 73 24 28 30 29 3d 22 20 |...labels$(0)=" | 00001c60 4a 65 74 2d 70 61 63 20 6f 66 66 22 0d 01 06 19 |Jet-pac off"....| 00001c70 f2 63 68 6f 6f 73 65 5f 62 75 74 28 31 2c 31 2c |.choose_but(1,1,| 00001c80 32 2c 31 36 29 0d 01 07 39 f2 6a 70 65 64 67 65 |2,16)...9.jpedge| 00001c90 73 3a c8 99 22 4f 53 5f 42 79 74 65 22 2c 31 31 |s:.."OS_Byte",11| 00001ca0 32 2c 32 3a f2 6a 70 65 64 67 65 73 3a c8 99 22 |2,2:.jpedges:.."| 00001cb0 4f 53 5f 42 79 74 65 22 2c 31 31 32 2c 31 0d 01 |OS_Byte",112,1..| 00001cc0 08 07 ef 32 36 0d 01 09 25 f2 69 6e 69 74 5f 62 |...26...%.init_b| 00001cd0 75 74 73 28 31 30 30 30 2c 32 30 2c 31 38 2c 31 |uts(1000,20,18,1| 00001ce0 36 2c 32 34 2c 32 34 2c 31 29 0d 01 0a 05 e1 0d |6,24,24,1)......| 00001cf0 01 0b 04 0d 01 0c 0d dd f2 6a 70 65 64 67 65 73 |.........jpedges| 00001d00 0d 01 0d 2a ef 31 38 2c 30 2c 32 3a ef 32 35 2c |...*.18,0,2:.25,| 00001d10 34 2c 30 3b 32 34 34 3b 3a ef 32 35 2c 31 30 31 |4,0;244;:.25,101| 00001d20 2c 31 32 37 38 3b 32 34 36 3b 0d 01 0e 2a ef 31 |,1278;246;...*.1| 00001d30 38 2c 30 2c 30 3a ef 32 35 2c 34 2c 38 3b 32 34 |8,0,0:.25,4,8;24| 00001d40 30 3b 3a ef 32 35 2c 31 30 31 2c 31 32 36 38 3b |0;:.25,101,1268;| 00001d50 32 34 32 3b 0d 01 0f 2a ef 31 38 2c 30 2c 33 3a |242;...*.18,0,3:| 00001d60 ef 32 35 2c 34 2c 38 3b 32 33 36 3b 3a ef 32 35 |.25,4,8;236;:.25| 00001d70 2c 31 30 31 2c 31 32 36 38 3b 32 33 38 3b 0d 01 |,101,1268;238;..| 00001d80 10 3c ef 31 38 2c 30 2c 30 3a ef 32 35 2c 34 2c |.<.18,0,0:.25,4,| 00001d90 31 32 3b 32 33 32 3b 3a ef 32 35 2c 31 30 31 2c |12;232;:.25,101,| 00001da0 31 32 36 36 3b 32 33 34 3b 3a ef 32 35 2c 31 30 |1266;234;:.25,10| 00001db0 31 2c 31 32 36 34 3b 31 32 3b 0d 01 11 39 ef 31 |1,1264;12;...9.1| 00001dc0 38 2c 30 2c 32 3a ef 32 35 2c 34 2c 31 32 3b 32 |8,0,2:.25,4,12;2| 00001dd0 33 30 3b 3a ef 32 35 2c 31 30 31 2c 31 34 3b 31 |30;:.25,101,14;1| 00001de0 32 3b 3a ef 32 35 2c 31 30 31 2c 31 32 36 32 3b |2;:.25,101,1262;| 00001df0 31 34 3b 0d 01 12 2a ef 31 38 2c 30 2c 31 3a ef |14;...*.18,0,1:.| 00001e00 32 35 2c 34 2c 31 36 3b 31 36 3b 3a ef 32 35 2c |25,4,16;16;:.25,| 00001e10 31 30 31 2c 31 32 36 32 3b 32 33 30 3b 0d 01 13 |101,1262;230;...| 00001e20 05 e1 0d 01 14 04 0d 01 15 0b dd f2 79 65 73 6e |............yesn| 00001e30 6f 0d 01 16 25 f2 69 6e 69 74 5f 62 75 74 73 28 |o...%.init_buts(| 00001e40 31 30 32 30 2c 34 30 2c 31 36 2c 31 36 2c 32 38 |1020,40,16,16,28| 00001e50 2c 32 34 2c 31 29 0d 01 17 3c 63 6f 6f 72 64 73 |,24,1)...<coords| 00001e60 25 28 30 2c 30 29 3d 38 32 30 3a 6c 61 62 65 6c |%(0,0)=820:label| 00001e70 73 24 28 30 29 3d 22 20 20 20 20 4e 6f 22 3a 6c |s$(0)=" No":l| 00001e80 61 62 65 6c 73 24 28 31 29 3d 22 20 20 20 59 65 |abels$(1)=" Ye| 00001e90 73 22 0d 01 18 18 f2 63 68 6f 6f 73 65 5f 62 75 |s".....choose_bu| 00001ea0 74 28 31 2c 32 2c 32 2c 30 29 0d 01 19 25 f2 69 |t(1,2,2,0)...%.i| 00001eb0 6e 69 74 5f 62 75 74 73 28 31 30 30 30 2c 32 30 |nit_buts(1000,20| 00001ec0 2c 31 38 2c 31 36 2c 32 34 2c 32 34 2c 31 29 0d |,18,16,24,24,1).| 00001ed0 01 1a 05 e1 0d 01 1b 04 0d 01 1c 19 dd f2 70 6f |..............po| 00001ee0 73 62 75 74 74 6f 6e 73 28 6e 6f 62 75 74 73 25 |sbuttons(nobuts%| 00001ef0 29 0d 01 1d 0c 74 6f 74 77 69 25 3d 30 0d 01 1e |)....totwi%=0...| 00001f00 13 e3 6b 25 3d 30 b8 6e 6f 62 75 74 73 25 2d 31 |..k%=0.nobuts%-1| 00001f10 0d 01 1f 42 e7 28 62 75 74 74 79 70 65 25 28 6b |...B.(buttype%(k| 00001f20 25 29 3d 30 29 84 28 62 75 74 74 79 70 65 25 28 |%)=0).(buttype%(| 00001f30 6b 25 29 3d 31 29 3a 74 6f 74 77 69 25 2b 3d 31 |k%)=1):totwi%+=1| 00001f40 37 36 2a 28 77 69 64 74 68 25 28 6b 25 29 2f 31 |76*(width%(k%)/1| 00001f50 36 29 0d 01 20 2f e7 62 75 74 74 79 70 65 25 28 |6).. /.buttype%(| 00001f60 6b 25 29 3d 33 3a 74 6f 74 77 69 25 2b 3d 33 35 |k%)=3:totwi%+=35| 00001f70 32 2a 28 77 69 64 74 68 25 28 6b 25 29 2f 31 36 |2*(width%(k%)/16| 00001f80 29 0d 01 21 05 ed 0d 01 22 3e 67 61 70 25 3d 28 |)..!....">gap%=(| 00001f90 31 32 38 30 2d 32 34 2d 74 6f 74 77 69 25 29 2f |1280-24-totwi%)/| 00001fa0 28 6e 6f 62 75 74 73 25 2b 31 29 3a 74 6f 74 77 |(nobuts%+1):totw| 00001fb0 69 25 3d 67 61 70 25 2b 31 32 3a 62 75 74 63 6e |i%=gap%+12:butcn| 00001fc0 74 25 3d 30 0d 01 23 05 f5 0d 01 24 1d 63 6f 6f |t%=0..#....$.coo| 00001fd0 72 64 73 25 28 62 75 74 63 6e 74 25 2c 30 29 3d |rds%(butcnt%,0)=| 00001fe0 74 6f 74 77 69 25 0d 01 25 58 e7 28 62 75 74 74 |totwi%..%X.(butt| 00001ff0 79 70 65 25 28 62 75 74 63 6e 74 25 29 3d 30 29 |ype%(butcnt%)=0)| 00002000 84 28 62 75 74 74 79 70 65 25 28 62 75 74 63 6e |.(buttype%(butcn| 00002010 74 25 29 3d 31 29 3a 74 6f 74 77 69 25 2b 3d 67 |t%)=1):totwi%+=g| 00002020 61 70 25 2b 28 31 37 36 2a 28 77 69 64 74 68 25 |ap%+(176*(width%| 00002030 28 62 75 74 63 6e 74 25 29 2f 31 36 29 29 0d 01 |(butcnt%)/16))..| 00002040 26 40 e7 62 75 74 74 79 70 65 25 28 62 75 74 63 |&@.buttype%(butc| 00002050 6e 74 25 29 3d 33 3a 74 6f 74 77 69 25 2b 3d 67 |nt%)=3:totwi%+=g| 00002060 61 70 25 2b 28 33 35 32 2a 28 77 69 64 74 68 25 |ap%+(352*(width%| 00002070 28 62 75 74 63 6e 74 25 29 2f 31 36 29 29 0d 01 |(butcnt%)/16))..| 00002080 27 0e 62 75 74 63 6e 74 25 2b 3d 31 0d 01 28 14 |'.butcnt%+=1..(.| 00002090 fd 62 75 74 63 6e 74 25 3d 6e 6f 62 75 74 73 25 |.butcnt%=nobuts%| 000020a0 0d 01 29 05 e1 0d 01 2a 04 0d 01 2b 2f dd f2 63 |..)....*...+/..c| 000020b0 68 6f 6f 73 65 5f 62 75 74 28 73 63 72 25 2c 62 |hoose_but(scr%,b| 000020c0 75 74 5f 6e 6f 25 2c 6c 61 62 5f 79 6e 25 2c 63 |ut_no%,lab_yn%,c| 000020d0 6f 6e 74 72 6f 6c 25 29 0d 01 2c 61 f4 20 73 63 |ontrol%)..,a. sc| 000020e0 72 25 3d 73 63 72 65 65 6e 20 6e 75 6d 62 65 72 |r%=screen number| 000020f0 2c 20 62 75 74 5f 6e 6f 25 3d 6e 75 6d 62 65 72 |, but_no%=number| 00002100 20 6f 66 20 62 75 74 74 6f 6e 73 20 74 6f 20 70 | of buttons to p| 00002110 6c 6f 74 2c 20 6c 61 62 5f 79 6e 25 3d 31 20 69 |lot, lab_yn%=1 i| 00002120 66 20 6c 61 62 65 6c 20 73 70 72 69 74 65 20 65 |f label sprite e| 00002130 6c 73 65 20 77 6f 72 64 73 0d 01 2d 6b f4 20 63 |lse words..-k. c| 00002140 6f 6e 74 72 6f 6c 25 20 64 65 66 69 6e 65 73 20 |ontrol% defines | 00002150 76 61 72 69 6f 75 73 20 6f 70 74 69 6f 6e 73 20 |various options | 00002160 64 65 70 65 6e 64 65 6e 74 20 6f 6e 20 62 69 74 |dependent on bit| 00002170 20 73 65 74 74 69 6e 67 73 20 2d 20 75 6e 73 65 | settings - unse| 00002180 74 20 28 69 65 2e 20 30 29 20 20 20 20 20 20 20 |t (ie. 0) | 00002190 20 20 20 20 20 20 20 20 20 20 73 65 74 20 28 69 | set (i| 000021a0 65 20 31 29 0d 01 2e 76 f4 20 20 20 20 20 20 20 |e 1)...v. | 000021b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000021d0 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 20 | bit | 000021e0 20 20 30 20 20 20 20 6c 6f 6f 70 20 69 6e 20 50 | 0 loop in P| 000021f0 52 4f 43 20 75 6e 74 69 6c 20 63 68 6f 73 65 6e |ROC until chosen| 00002200 20 20 20 20 20 73 69 6e 67 6c 65 20 70 61 73 73 | single pass| 00002210 20 74 68 72 75 20 50 52 4f 43 0d 01 2f 71 f4 20 | thru PROC../q. | 00002220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002250 20 20 20 20 20 20 20 20 31 20 20 20 20 63 6c 65 | 1 cle| 00002260 61 72 20 74 65 78 74 20 61 72 65 61 20 61 66 74 |ar text area aft| 00002270 65 72 20 63 68 6f 69 63 65 20 20 64 6f 6e 27 74 |er choice don't| 00002280 20 63 6c 65 61 72 20 74 65 78 74 0d 01 30 6a f4 | clear text..0j.| 00002290 20 20 20 20 4e 42 20 62 69 74 73 20 32 20 61 6e | NB bits 2 an| 000022a0 64 20 33 20 6f 66 20 63 6f 6e 74 72 6f 6c 25 20 |d 3 of control% | 000022b0 61 72 65 20 6e 6f 77 20 69 67 6e 6f 72 65 64 20 |are now ignored | 000022c0 20 20 20 58 58 58 20 20 20 32 20 20 20 20 4d 4f | XXX 2 MO| 000022d0 55 53 45 20 74 6f 20 72 69 67 68 74 20 6f 66 20 |USE to right of | 000022e0 6c 61 73 74 20 62 6f 78 20 20 20 20 73 65 65 20 |last box see | 000022f0 62 69 74 20 33 0d 01 31 88 f4 20 20 20 20 20 20 |bit 3..1.. | 00002300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002320 20 20 20 20 20 20 20 20 20 20 20 20 20 58 58 58 | XXX| 00002330 20 20 20 33 20 20 20 20 4d 4f 55 53 45 20 74 6f | 3 MOUSE to| 00002340 20 62 65 6c 6f 77 20 63 68 6f 69 63 65 20 20 20 | below choice | 00002350 20 20 20 20 20 20 4d 4f 55 53 45 20 74 6f 20 72 | MOUSE to r| 00002360 69 67 68 74 20 6f 66 20 63 68 6f 69 63 65 20 28 |ight of choice (| 00002370 69 66 20 62 69 74 20 32 20 73 65 74 29 0d 01 32 |if bit 2 set)..2| 00002380 81 f4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 00002390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000023b0 20 20 20 20 20 20 20 20 20 20 20 34 20 20 20 20 | 4 | 000023c0 75 73 65 20 50 52 4f 43 77 6f 72 64 73 20 28 62 |use PROCwords (b| 000023d0 6c 61 63 6b 20 77 6f 72 64 73 29 20 20 20 75 73 |lack words) us| 000023e0 65 20 50 52 4f 43 6a 70 77 6f 72 64 73 20 28 63 |e PROCjpwords (c| 000023f0 6f 6c 6f 75 72 65 64 20 77 6f 72 64 73 29 0d 01 |oloured words)..| 00002400 33 2d 20 20 e7 28 63 6f 6e 74 72 6f 6c 25 80 31 |3- .(control%.1| 00002410 29 3d 31 3a 6f 6e 65 6c 6f 6f 70 25 3d b9 3a 8b |)=1:oneloop%=.:.| 00002420 3a 6f 6e 65 6c 6f 6f 70 25 3d a3 0d 01 34 31 20 |:oneloop%=...41 | 00002430 20 e7 28 63 6f 6e 74 72 6f 6c 25 80 32 29 3d 30 | .(control%.2)=0| 00002440 3a 63 6c 65 61 72 74 65 78 74 25 3d b9 3a 8b 3a |:cleartext%=.:.:| 00002450 63 6c 65 61 72 74 65 78 74 25 3d a3 0d 01 35 31 |cleartext%=...51| 00002460 20 20 e7 28 63 6f 6e 74 72 6f 6c 25 80 31 36 29 | .(control%.16)| 00002470 3d 31 36 3a 69 6e 6a 65 74 70 61 63 25 3d b9 3a |=16:injetpac%=.:| 00002480 8b 3a 69 6e 6a 65 74 70 61 63 25 3d a3 0d 01 36 |.:injetpac%=...6| 00002490 3f f4 49 46 28 63 6f 6e 74 72 6f 6c 25 41 4e 44 |?.IF(control%AND| 000024a0 34 29 3d 30 3a 6d 6f 75 73 65 72 69 67 68 74 25 |4)=0:mouseright%| 000024b0 3d 54 52 55 45 3a 45 4c 53 45 3a 6d 6f 75 73 65 |=TRUE:ELSE:mouse| 000024c0 72 69 67 68 74 25 3d 46 41 4c 53 45 0d 01 37 52 |right%=FALSE..7R| 000024d0 f4 49 46 4e 4f 54 6d 6f 75 73 65 72 69 67 68 74 |.IFNOTmouseright| 000024e0 25 54 48 45 4e 3a 49 46 28 63 6f 6e 74 72 6f 6c |%THEN:IF(control| 000024f0 25 41 4e 44 38 29 3d 30 3a 6d 6f 75 73 65 64 6f |%AND8)=0:mousedo| 00002500 77 6e 25 3d 54 52 55 45 3a 45 4c 53 45 3a 6d 6f |wn%=TRUE:ELSE:mo| 00002510 75 73 65 64 6f 77 6e 25 3d 46 41 4c 53 45 0d 01 |usedown%=FALSE..| 00002520 38 12 20 20 e7 20 6f 6e 65 6c 6f 6f 70 25 20 8c |8. . oneloop% .| 00002530 0d 01 39 55 20 20 20 20 e7 20 66 69 72 73 74 6c |..9U . firstl| 00002540 6f 6f 70 25 3d b9 20 3a 20 f2 73 65 74 75 70 5f |oop%=. : .setup_| 00002550 62 75 74 73 28 73 63 72 25 29 20 3a 20 63 68 6f |buts(scr%) : cho| 00002560 73 65 6e 25 3d 32 30 20 3a 20 6c 61 73 74 5f 70 |sen%=20 : last_p| 00002570 6f 73 25 3d 32 30 20 3a 20 66 69 72 73 74 6c 6f |os%=20 : firstlo| 00002580 6f 70 25 3d a3 0d 01 3a 07 20 20 cc 0d 01 3b 19 |op%=...:. ...;.| 00002590 20 20 20 20 f2 73 65 74 75 70 5f 62 75 74 73 28 | .setup_buts(| 000025a0 73 63 72 25 29 0d 01 3c 18 20 20 20 20 c8 99 22 |scr%)..<. .."| 000025b0 4f 53 5f 42 79 74 65 22 2c 32 31 2c 39 0d 01 3d |OS_Byte",21,9..=| 000025c0 0c 20 20 20 20 c8 97 20 ee 0d 01 3e 13 20 20 20 |. .. ...>. | 000025d0 20 f2 6d 6f 75 73 65 5f 74 65 78 74 0d 01 3f 14 | .mouse_text..?.| 000025e0 20 20 20 20 6c 61 73 74 5f 70 6f 73 25 3d 32 30 | last_pos%=20| 000025f0 0d 01 40 12 20 20 20 20 63 68 6f 73 65 6e 25 3d |..@. chosen%=| 00002600 32 30 0d 01 41 07 20 20 cd 0d 01 42 0b 20 20 2a |20..A. ...B. *| 00002610 46 58 31 35 0d 01 43 07 20 20 f5 0d 01 44 29 20 |FX15..C. ...D) | 00002620 20 20 20 e7 20 ac 6f 6e 65 6c 6f 6f 70 25 20 3a | . .oneloop% :| 00002630 20 c8 97 20 6d 5f 78 25 2c 6d 5f 79 25 2c 6d 5f | .. m_x%,m_y%,m_| 00002640 62 75 74 25 0d 01 45 1a 20 20 20 20 e3 20 6b 25 |but%..E. . k%| 00002650 3d 30 20 b8 20 62 75 74 5f 6e 6f 25 2d 31 0d 01 |=0 . but_no%-1..| 00002660 46 14 20 20 20 20 20 20 f2 73 63 61 6c 65 28 6b |F. .scale(k| 00002670 25 29 0d 01 47 88 20 20 20 20 20 20 e7 20 28 6d |%)..G. . (m| 00002680 5f 78 25 3c 3d 63 6f 6f 72 64 73 25 28 6b 25 2c |_x%<=coords%(k%,| 00002690 30 29 2b 65 63 5f 77 69 64 74 68 25 28 6b 25 29 |0)+ec_width%(k%)| 000026a0 29 20 80 20 28 6d 5f 78 25 3e 3d 63 6f 6f 72 64 |) . (m_x%>=coord| 000026b0 73 25 28 6b 25 2c 30 29 29 20 80 20 28 6d 5f 79 |s%(k%,0)) . (m_y| 000026c0 25 3c 3d 63 6f 6f 72 64 73 25 28 6b 25 2c 31 29 |%<=coords%(k%,1)| 000026d0 2b 65 63 5f 68 65 69 67 68 74 25 28 6b 25 29 29 |+ec_height%(k%))| 000026e0 20 80 20 28 6d 5f 79 25 3e 3d 63 6f 6f 72 64 73 | . (m_y%>=coords| 000026f0 25 28 6b 25 2c 31 29 29 20 8c 0d 01 48 1d 20 20 |%(k%,1)) ...H. | 00002700 20 20 20 20 20 20 e7 20 6c 61 73 74 5f 70 6f 73 | . last_pos| 00002710 25 3c 3e 6b 25 20 8c 0d 01 49 1f 20 20 20 20 20 |%<>k% ...I. | 00002720 20 20 20 20 20 e7 20 6c 61 73 74 5f 70 6f 73 25 | . last_pos%| 00002730 3c 3e 32 30 20 8c 0d 01 4a 21 20 20 20 20 20 20 |<>20 ...J! | 00002740 20 20 20 20 20 20 f2 73 63 61 6c 65 28 6c 61 73 | .scale(las| 00002750 74 5f 70 6f 73 25 29 0d 01 4b 7c 20 20 20 20 20 |t_pos%)..K| | 00002760 20 20 20 20 20 20 20 c8 99 20 22 4f 53 5f 53 70 | .. "OS_Sp| 00002770 72 69 74 65 4f 70 22 2c 26 31 33 34 2c 41 52 45 |riteOp",&134,ARE| 00002780 41 25 2c 62 75 74 24 28 30 2c 62 75 74 74 79 70 |A%,but$(0,buttyp| 00002790 65 25 28 6c 61 73 74 5f 70 6f 73 25 29 29 2c 63 |e%(last_pos%)),c| 000027a0 6f 6f 72 64 73 25 28 6c 61 73 74 5f 70 6f 73 25 |oords%(last_pos%| 000027b0 2c 30 29 2c 63 6f 6f 72 64 73 25 28 6c 61 73 74 |,0),coords%(last| 000027c0 5f 70 6f 73 25 2c 31 29 2c 30 2c 53 43 41 4c 45 |_pos%,1),0,SCALE| 000027d0 25 2c 30 0d 01 4c 28 20 20 20 20 20 20 20 20 20 |%,0..L( | 000027e0 20 20 20 f2 61 64 64 5f 6c 61 62 65 6c 73 28 6c | .add_labels(l| 000027f0 61 73 74 5f 70 6f 73 25 2c 30 29 0d 01 4d 0f 20 |ast_pos%,0)..M. | 00002800 20 20 20 20 20 20 20 20 20 cd 0d 01 4e 18 20 20 | ...N. | 00002810 20 20 20 20 20 20 20 20 f2 73 63 61 6c 65 28 6b | .scale(k| 00002820 25 29 0d 01 4f 65 20 20 20 20 20 20 20 20 20 20 |%)..Oe | 00002830 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |.. "OS_SpriteOp"| 00002840 2c 26 31 33 34 2c 41 52 45 41 25 2c 62 75 74 24 |,&134,AREA%,but$| 00002850 28 31 2c 62 75 74 74 79 70 65 25 28 6b 25 29 29 |(1,buttype%(k%))| 00002860 2c 63 6f 6f 72 64 73 25 28 6b 25 2c 30 29 2c 63 |,coords%(k%,0),c| 00002870 6f 6f 72 64 73 25 28 6b 25 2c 31 29 2c 30 2c 53 |oords%(k%,1),0,S| 00002880 43 41 4c 45 25 2c 30 0d 01 50 1f 20 20 20 20 20 |CALE%,0..P. | 00002890 20 20 20 20 20 f2 61 64 64 5f 6c 61 62 65 6c 73 | .add_labels| 000028a0 28 6b 25 2c 31 29 0d 01 51 0d 20 20 20 20 20 20 |(k%,1)..Q. | 000028b0 20 20 cd 0d 01 52 18 20 20 20 20 20 20 20 20 e7 | ...R. .| 000028c0 20 6d 5f 62 75 74 25 3d 34 20 8c 0d 01 53 65 20 | m_but%=4 ...Se | 000028d0 20 20 20 20 20 20 20 20 20 c8 99 20 22 4f 53 5f | .. "OS_| 000028e0 53 70 72 69 74 65 4f 70 22 2c 26 31 33 34 2c 41 |SpriteOp",&134,A| 000028f0 52 45 41 25 2c 62 75 74 24 28 32 2c 62 75 74 74 |REA%,but$(2,butt| 00002900 79 70 65 25 28 6b 25 29 29 2c 63 6f 6f 72 64 73 |ype%(k%)),coords| 00002910 25 28 6b 25 2c 30 29 2c 63 6f 6f 72 64 73 25 28 |%(k%,0),coords%(| 00002920 6b 25 2c 31 29 2c 30 2c 53 43 41 4c 45 25 2c 30 |k%,1),0,SCALE%,0| 00002930 0d 01 54 1f 20 20 20 20 20 20 20 20 20 20 f2 61 |..T. .a| 00002940 64 64 5f 6c 61 62 65 6c 73 28 6b 25 2c 31 29 0d |dd_labels(k%,1).| 00002950 01 55 18 20 20 20 20 20 20 20 20 20 20 63 68 6f |.U. cho| 00002960 73 65 6e 25 3d 6b 25 0d 01 56 0d 20 20 20 20 20 |sen%=k%..V. | 00002970 20 20 20 cd 0d 01 57 18 20 20 20 20 20 20 20 20 | ...W. | 00002980 6c 61 73 74 5f 70 6f 73 25 3d 6b 25 0d 01 58 0b |last_pos%=k%..X.| 00002990 20 20 20 20 20 20 cc 0d 01 59 1c 20 20 20 20 20 | ...Y. | 000029a0 20 20 20 e7 20 6c 61 73 74 5f 70 6f 73 25 3d 6b | . last_pos%=k| 000029b0 25 20 8c 0d 01 5a 65 20 20 20 20 20 20 20 20 20 |% ...Ze | 000029c0 20 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 | .. "OS_SpriteOp| 000029d0 22 2c 26 31 33 34 2c 41 52 45 41 25 2c 62 75 74 |",&134,AREA%,but| 000029e0 24 28 30 2c 62 75 74 74 79 70 65 25 28 6b 25 29 |$(0,buttype%(k%)| 000029f0 29 2c 63 6f 6f 72 64 73 25 28 6b 25 2c 30 29 2c |),coords%(k%,0),| 00002a00 63 6f 6f 72 64 73 25 28 6b 25 2c 31 29 2c 30 2c |coords%(k%,1),0,| 00002a10 53 43 41 4c 45 25 2c 30 0d 01 5b 1f 20 20 20 20 |SCALE%,0..[. | 00002a20 20 20 20 20 20 20 f2 61 64 64 5f 6c 61 62 65 6c | .add_label| 00002a30 73 28 6b 25 2c 30 29 0d 01 5c 1a 20 20 20 20 20 |s(k%,0)..\. | 00002a40 20 20 20 20 20 6c 61 73 74 5f 70 6f 73 25 3d 32 | last_pos%=2| 00002a50 30 0d 01 5d 0d 20 20 20 20 20 20 20 20 cd 0d 01 |0..]. ...| 00002a60 5e 0b 20 20 20 20 20 20 cd 0d 01 5f 09 20 20 20 |^. ..._. | 00002a70 20 ed 0d 01 60 2f 20 20 fd 20 28 28 63 68 6f 73 | ...`/ . ((chos| 00002a80 65 6e 25 3c 3e 32 30 29 20 80 20 28 6d 5f 62 75 |en%<>20) . (m_bu| 00002a90 74 25 3d 30 29 29 20 84 20 6f 6e 65 6c 6f 6f 70 |t%=0)) . oneloop| 00002aa0 25 0d 01 61 13 20 20 e7 20 ac 6f 6e 65 6c 6f 6f |%..a. . .oneloo| 00002ab0 70 25 20 8c 0d 01 62 10 20 20 20 f2 77 61 69 74 |p% ...b. .wait| 00002ac0 28 32 30 29 0d 01 63 19 f4 20 20 20 49 46 6d 6f |(20)..c.. IFmo| 00002ad0 75 73 65 72 69 67 68 74 25 54 48 45 4e 0d 01 64 |useright%THEN..d| 00002ae0 6d f4 20 20 20 20 4d 4f 55 53 45 20 54 4f 20 63 |m. MOUSE TO c| 00002af0 6f 6f 72 64 73 25 28 62 75 74 5f 6e 6f 25 2d 31 |oords%(but_no%-1| 00002b00 2c 30 29 2b 65 63 5f 77 69 64 74 68 25 28 62 75 |,0)+ec_width%(bu| 00002b10 74 5f 6e 6f 25 2d 31 29 2b 32 34 2c 63 6f 6f 72 |t_no%-1)+24,coor| 00002b20 64 73 25 28 62 75 74 5f 6e 6f 25 2d 31 2c 31 29 |ds%(but_no%-1,1)| 00002b30 2b 28 65 63 5f 68 65 69 67 68 74 25 28 62 75 74 |+(ec_height%(but| 00002b40 5f 6e 6f 25 2d 31 29 2f 32 29 0d 01 65 0c f4 20 |_no%-1)/2)..e.. | 00002b50 20 20 45 4c 53 45 0d 01 66 19 f4 20 20 20 20 49 | ELSE..f.. I| 00002b60 46 6d 6f 75 73 65 64 6f 77 6e 25 54 48 45 4e 0d |Fmousedown%THEN.| 00002b70 01 67 52 f4 20 20 20 20 20 4d 4f 55 53 45 20 54 |.gR. MOUSE T| 00002b80 4f 20 63 6f 6f 72 64 73 25 28 63 68 6f 73 65 6e |O coords%(chosen| 00002b90 25 2c 30 29 2b 28 65 63 5f 77 69 64 74 68 25 28 |%,0)+(ec_width%(| 00002ba0 63 68 6f 73 65 6e 25 29 2f 32 29 2c 63 6f 6f 72 |chosen%)/2),coor| 00002bb0 64 73 25 28 63 68 6f 73 65 6e 25 2c 31 29 2d 32 |ds%(chosen%,1)-2| 00002bc0 34 0d 01 68 0d f4 20 20 20 20 45 4c 53 45 0d 01 |4..h.. ELSE..| 00002bd0 69 66 f4 20 20 20 20 20 4d 4f 55 53 45 20 54 4f |if. MOUSE TO| 00002be0 20 63 6f 6f 72 64 73 25 28 63 68 6f 73 65 6e 25 | coords%(chosen%| 00002bf0 2c 30 29 2b 65 63 5f 77 69 64 74 68 25 28 63 68 |,0)+ec_width%(ch| 00002c00 6f 73 65 6e 25 29 2b 32 34 2c 63 6f 6f 72 64 73 |osen%)+24,coords| 00002c10 25 28 63 68 6f 73 65 6e 25 2c 31 29 2b 28 65 63 |%(chosen%,1)+(ec| 00002c20 5f 68 65 69 67 68 74 25 28 63 68 6f 73 65 6e 25 |_height%(chosen%| 00002c30 29 2f 32 29 0d 01 6a 0e f4 20 20 20 20 45 4e 44 |)/2)..j.. END| 00002c40 49 46 0d 01 6b 0d f4 20 20 20 45 4e 44 49 46 0d |IF..k.. ENDIF.| 00002c50 01 6c 0b 20 20 20 c8 97 20 87 0d 01 6d 1d 20 20 |.l. .. ...m. | 00002c60 20 e7 63 6c 65 61 72 74 65 78 74 25 3a f2 63 6c | .cleartext%:.cl| 00002c70 65 61 72 74 65 78 74 0d 01 6e 07 20 20 cd 0d 01 |eartext..n. ...| 00002c80 6f 2e 20 20 21 28 53 43 41 4c 45 25 2b 30 29 3d |o. !(SCALE%+0)=| 00002c90 31 36 20 3a 20 21 28 53 43 41 4c 45 25 2b 34 29 |16 : !(SCALE%+4)| 00002ca0 3d 31 36 2a 28 48 25 21 26 46 30 29 0d 01 70 05 |=16*(H%!&F0)..p.| 00002cb0 e1 0d 01 71 04 0d 01 72 16 dd f2 73 65 74 75 70 |...q...r...setup| 00002cc0 5f 62 75 74 73 28 73 63 72 25 29 0d 01 73 16 e3 |_buts(scr%)..s..| 00002cd0 20 6b 25 3d 30 20 b8 20 62 75 74 5f 6e 6f 25 2d | k%=0 . but_no%-| 00002ce0 31 0d 01 74 49 20 e7 28 62 75 74 74 79 70 65 25 |1..tI .(buttype%| 00002cf0 28 6b 25 29 3d 30 29 84 28 62 75 74 74 79 70 65 |(k%)=0).(buttype| 00002d00 25 28 6b 25 29 3d 31 29 3a 65 63 5f 77 69 64 74 |%(k%)=1):ec_widt| 00002d10 68 25 28 6b 25 29 3d 31 37 36 2a 28 77 69 64 74 |h%(k%)=176*(widt| 00002d20 68 25 28 6b 25 29 2f 31 36 29 0d 01 75 35 20 e7 |h%(k%)/16)..u5 .| 00002d30 62 75 74 74 79 70 65 25 28 6b 25 29 3d 32 3a 65 |buttype%(k%)=2:e| 00002d40 63 5f 77 69 64 74 68 25 28 6b 25 29 3d 38 30 2a |c_width%(k%)=80*| 00002d50 28 77 69 64 74 68 25 28 6b 25 29 2f 31 36 29 0d |(width%(k%)/16).| 00002d60 01 76 36 20 e7 62 75 74 74 79 70 65 25 28 6b 25 |.v6 .buttype%(k%| 00002d70 29 3d 33 3a 65 63 5f 77 69 64 74 68 25 28 6b 25 |)=3:ec_width%(k%| 00002d80 29 3d 33 35 32 2a 28 77 69 64 74 68 25 28 6b 25 |)=352*(width%(k%| 00002d90 29 2f 31 36 29 0d 01 77 17 20 e7 20 62 75 74 74 |)/16)..w. . butt| 00002da0 79 70 65 25 28 6b 25 29 3d 30 20 8c 0d 01 78 2d |ype%(k%)=0 ...x-| 00002db0 20 20 65 63 5f 68 65 69 67 68 74 25 28 6b 25 29 | ec_height%(k%)| 00002dc0 3d 31 36 30 20 2a 20 28 68 65 69 67 68 74 25 28 |=160 * (height%(| 00002dd0 6b 25 29 20 2f 20 31 36 29 0d 01 79 06 20 cc 0d |k%) / 16)..y. ..| 00002de0 01 7a 2c 20 20 65 63 5f 68 65 69 67 68 74 25 28 |.z, ec_height%(| 00002df0 6b 25 29 3d 38 30 20 2a 20 28 68 65 69 67 68 74 |k%)=80 * (height| 00002e00 25 28 6b 25 29 20 2f 20 31 36 29 0d 01 7b 06 20 |%(k%) / 16)..{. | 00002e10 cd 0d 01 7c 05 ed 0d 01 7d 19 c8 99 20 22 4f 53 |...|....}... "OS| 00002e20 5f 42 79 74 65 22 2c 31 31 32 2c 73 63 72 25 0d |_Byte",112,scr%.| 00002e30 01 7e 16 e3 20 6b 25 3d 30 20 b8 20 62 75 74 5f |.~.. k%=0 . but_| 00002e40 6e 6f 25 2d 31 0d 01 7f 0f 20 f2 73 63 61 6c 65 |no%-1.... .scale| 00002e50 28 6b 25 29 0d 01 80 5c 20 c8 99 20 22 4f 53 5f |(k%)...\ .. "OS_| 00002e60 53 70 72 69 74 65 4f 70 22 2c 26 31 33 34 2c 41 |SpriteOp",&134,A| 00002e70 52 45 41 25 2c 62 75 74 24 28 30 2c 62 75 74 74 |REA%,but$(0,butt| 00002e80 79 70 65 25 28 6b 25 29 29 2c 63 6f 6f 72 64 73 |ype%(k%)),coords| 00002e90 25 28 6b 25 2c 30 29 2c 63 6f 6f 72 64 73 25 28 |%(k%,0),coords%(| 00002ea0 6b 25 2c 31 29 2c 30 2c 53 43 41 4c 45 25 2c 30 |k%,1),0,SCALE%,0| 00002eb0 0d 01 81 16 20 f2 61 64 64 5f 6c 61 62 65 6c 73 |.... .add_labels| 00002ec0 28 6b 25 2c 30 29 0d 01 82 60 20 f4 20 72 65 64 |(k%,0)...` . red| 00002ed0 75 63 69 6e 67 20 62 75 74 74 6f 6e 20 68 65 69 |ucing button hei| 00002ee0 67 68 74 20 6c 6f 73 65 73 20 62 6f 74 74 6f 6d |ght loses bottom| 00002ef0 20 6c 69 6e 65 20 28 75 6e 6c 65 73 73 29 20 73 | line (unless) s| 00002f00 70 65 63 69 61 6c 20 73 68 6f 72 74 20 62 75 74 |pecial short but| 00002f10 74 6f 6e 29 20 73 6f 20 61 64 64 20 73 65 70 61 |ton) so add sepa| 00002f20 72 61 74 65 6c 79 0d 01 83 28 20 e7 20 68 65 69 |rately...( . hei| 00002f30 67 68 74 25 28 6b 25 29 3c 31 36 20 80 20 62 75 |ght%(k%)<16 . bu| 00002f40 74 74 79 70 65 25 28 6b 25 29 3d 30 20 8c 0d 01 |ttype%(k%)=0 ...| 00002f50 84 09 20 20 e6 20 33 0d 01 85 2b 20 20 ef 20 32 |.. . 3...+ . 2| 00002f60 35 2c 34 2c 63 6f 6f 72 64 73 25 28 6b 25 2c 30 |5,4,coords%(k%,0| 00002f70 29 3b 63 6f 6f 72 64 73 25 28 6b 25 2c 31 29 2d |);coords%(k%,1)-| 00002f80 34 3b 0d 01 86 37 20 20 ef 20 32 35 2c 35 2c 63 |4;...7 . 25,5,c| 00002f90 6f 6f 72 64 73 25 28 6b 25 2c 30 29 2b 65 63 5f |oords%(k%,0)+ec_| 00002fa0 77 69 64 74 68 25 2d 32 3b 63 6f 6f 72 64 73 25 |width%-2;coords%| 00002fb0 28 6b 25 2c 31 29 2d 34 3b 0d 01 87 06 20 cd 0d |(k%,1)-4;.... ..| 00002fc0 01 88 05 ed 0d 01 89 05 e1 0d 01 8a 04 0d 01 8b |................| 00002fd0 13 dd f2 73 63 61 6c 65 28 77 68 69 63 68 25 29 |...scale(which%)| 00002fe0 0d 01 8c 46 20 21 28 53 43 41 4c 45 25 2b 30 29 |...F !(SCALE%+0)| 00002ff0 3d 77 69 64 74 68 25 28 77 68 69 63 68 25 29 20 |=width%(which%) | 00003000 3a 20 21 28 53 43 41 4c 45 25 2b 34 29 3d 68 65 |: !(SCALE%+4)=he| 00003010 69 67 68 74 25 28 77 68 69 63 68 25 29 2a 28 48 |ight%(which%)*(H| 00003020 25 21 26 46 30 29 0d 01 8d 05 e1 0d 01 8e 04 0d |%!&F0)..........| 00003030 01 8f 1e dd f2 61 64 64 5f 6c 61 62 65 6c 73 28 |.....add_labels(| 00003040 77 68 69 63 68 25 2c 64 72 6f 70 25 29 0d 01 90 |which%,drop%)...| 00003050 11 e7 20 6c 61 62 5f 79 6e 25 3d 31 20 8c 0d 01 |.. lab_yn%=1 ...| 00003060 91 95 20 f2 70 75 74 5f 73 70 28 73 63 72 25 2c |.. .put_sp(scr%,| 00003070 63 6f 6f 72 64 73 25 28 77 68 69 63 68 25 2c 30 |coords%(which%,0| 00003080 29 2b 6c 61 62 5f 6f 66 66 73 25 28 77 68 69 63 |)+lab_offs%(whic| 00003090 68 25 2c 30 29 2c 63 6f 6f 72 64 73 25 28 77 68 |h%,0),coords%(wh| 000030a0 69 63 68 25 2c 31 29 2b 6c 61 62 5f 6f 66 66 73 |ich%,1)+lab_offs| 000030b0 25 28 77 68 69 63 68 25 2c 31 29 2d 28 34 2a 64 |%(which%,1)-(4*d| 000030c0 72 6f 70 25 29 2c 32 2c 31 36 2c 31 36 2c 31 36 |rop%),2,16,16,16| 000030d0 2c 6c 61 62 65 6c 73 24 28 77 68 69 63 68 25 29 |,labels$(which%)| 000030e0 2c 30 2c 30 2c 31 32 37 36 2c 31 30 32 30 2c 26 |,0,0,1276,1020,&| 000030f0 30 30 29 0d 01 92 05 cc 0d 01 93 10 20 e7 69 6e |00)......... .in| 00003100 6a 65 74 70 61 63 25 8c 0d 01 94 77 20 20 f2 6a |jetpac%....w .j| 00003110 70 77 6f 72 64 73 28 63 6f 6f 72 64 73 25 28 77 |pwords(coords%(w| 00003120 68 69 63 68 25 2c 30 29 2b 6c 61 62 5f 6f 66 66 |hich%,0)+lab_off| 00003130 73 25 28 77 68 69 63 68 25 2c 30 29 2c 63 6f 6f |s%(which%,0),coo| 00003140 72 64 73 25 28 77 68 69 63 68 25 2c 31 29 2b 6c |rds%(which%,1)+l| 00003150 61 62 5f 6f 66 66 73 25 28 77 68 69 63 68 25 2c |ab_offs%(which%,| 00003160 31 29 2d 28 34 2a 64 72 6f 70 25 29 2c 30 2c 6c |1)-(4*drop%),0,l| 00003170 61 62 65 6c 73 24 28 77 68 69 63 68 25 29 29 0d |abels$(which%)).| 00003180 01 95 06 20 cc 0d 01 96 75 20 20 f2 77 6f 72 64 |... ....u .word| 00003190 73 28 63 6f 6f 72 64 73 25 28 77 68 69 63 68 25 |s(coords%(which%| 000031a0 2c 30 29 2b 6c 61 62 5f 6f 66 66 73 25 28 77 68 |,0)+lab_offs%(wh| 000031b0 69 63 68 25 2c 30 29 2c 63 6f 6f 72 64 73 25 28 |ich%,0),coords%(| 000031c0 77 68 69 63 68 25 2c 31 29 2b 6c 61 62 5f 6f 66 |which%,1)+lab_of| 000031d0 66 73 25 28 77 68 69 63 68 25 2c 31 29 2d 28 34 |fs%(which%,1)-(4| 000031e0 2a 64 72 6f 70 25 29 2c 30 2c 6c 61 62 65 6c 73 |*drop%),0,labels| 000031f0 24 28 77 68 69 63 68 25 29 29 0d 01 97 06 20 cd |$(which%)).... .| 00003200 0d 01 98 05 cd 0d 01 99 05 e1 0d 01 9a 04 0d 01 |................| 00003210 9b 2c dd f2 6d 6f 75 6e 74 73 28 73 63 72 25 2c |.,..mounts(scr%,| 00003220 6d 31 24 2c 6d 32 24 2c 6d 33 24 2c 6d 78 70 6f |m1$,m2$,m3$,mxpo| 00003230 73 25 2c 6d 79 70 6f 73 25 29 0d 01 9c 4b f2 70 |s%,mypos%)...K.p| 00003240 75 74 5f 73 70 28 73 63 72 25 2c 6d 78 70 6f 73 |ut_sp(scr%,mxpos| 00003250 25 2c 6d 79 70 6f 73 25 2c 31 35 2c 31 36 2c 31 |%,mypos%,15,16,1| 00003260 36 2c 31 36 2c 6d 31 24 2c 6c 65 66 74 25 2c 6c |6,16,m1$,left%,l| 00003270 6f 77 25 2c 72 69 67 68 74 25 2c 68 69 67 68 25 |ow%,right%,high%| 00003280 2c 26 30 30 29 0d 01 9d 4f f2 70 75 74 5f 73 70 |,&00)...O.put_sp| 00003290 28 73 63 72 25 2c 6d 78 70 6f 73 25 2b 34 38 30 |(scr%,mxpos%+480| 000032a0 2c 6d 79 70 6f 73 25 2c 31 35 2c 31 36 2c 31 36 |,mypos%,15,16,16| 000032b0 2c 31 36 2c 6d 32 24 2c 6c 65 66 74 25 2c 6c 6f |,16,m2$,left%,lo| 000032c0 77 25 2c 72 69 67 68 74 25 2c 68 69 67 68 25 2c |w%,right%,high%,| 000032d0 26 30 30 29 0d 01 9e 4f f2 70 75 74 5f 73 70 28 |&00)...O.put_sp(| 000032e0 73 63 72 25 2c 6d 78 70 6f 73 25 2b 39 36 30 2c |scr%,mxpos%+960,| 000032f0 6d 79 70 6f 73 25 2c 31 35 2c 31 36 2c 31 36 2c |mypos%,15,16,16,| 00003300 31 36 2c 6d 33 24 2c 6c 65 66 74 25 2c 6c 6f 77 |16,m3$,left%,low| 00003310 25 2c 72 69 67 68 74 25 2c 68 69 67 68 25 2c 26 |%,right%,high%,&| 00003320 30 30 29 0d 01 9f 05 e1 0d 01 a0 04 0d 01 a1 04 |00).............| 00003330 0d 01 a2 22 dd f2 63 68 6f 6f 73 65 5f 62 6f 78 |..."..choose_box| 00003340 28 73 63 72 25 2c 62 6f 78 5f 6e 6f 25 2c 63 6c |(scr%,box_no%,cl| 00003350 25 29 0d 01 a3 19 c8 99 20 22 4f 53 5f 42 79 74 |%)...... "OS_Byt| 00003360 65 22 2c 31 31 32 2c 73 63 72 25 0d 01 a4 0d f2 |e",112,scr%.....| 00003370 73 68 6f 77 5f 62 6f 78 0d 01 a5 08 c8 97 20 ee |show_box...... .| 00003380 0d 01 a6 13 f2 6d 6f 75 73 65 5f 67 72 61 70 68 |.....mouse_graph| 00003390 69 63 73 0d 01 a7 0f 67 6f 74 5f 62 6f 78 25 3d |ics....got_box%=| 000033a0 31 30 0d 01 a8 05 f5 0d 01 a9 18 20 c8 97 20 6d |10......... .. m| 000033b0 5f 78 25 2c 6d 5f 79 25 2c 6d 5f 62 75 74 25 0d |_x%,m_y%,m_but%.| 000033c0 01 aa 17 20 e3 20 6b 25 3d 30 20 b8 20 62 6f 78 |... . k%=0 . box| 000033d0 5f 6e 6f 25 2d 31 0d 01 ab 45 20 20 e7 20 28 94 |_no%-1...E . (.| 000033e0 28 6d 5f 78 25 2d 28 62 6f 78 25 28 6b 25 2c 30 |(m_x%-(box%(k%,0| 000033f0 29 2b 33 32 29 29 3c 33 32 29 20 80 20 28 94 28 |)+32))<32) . (.(| 00003400 6d 5f 79 25 2d 28 62 6f 78 25 28 6b 25 2c 31 29 |m_y%-(box%(k%,1)| 00003410 2b 33 32 29 29 3c 33 32 29 20 8c 0d 01 ac 13 20 |+32))<32) ..... | 00003420 20 20 e7 20 6d 5f 62 75 74 25 3d 34 20 8c 0d 01 | . m_but%=4 ...| 00003430 ad 13 20 20 20 20 67 6f 74 5f 62 6f 78 25 3d 6b |.. got_box%=k| 00003440 25 0d 01 ae 08 20 20 20 cd 0d 01 af 07 20 20 cd |%.... ..... .| 00003450 0d 01 b0 06 20 ed 0d 01 b1 21 fd 20 28 67 6f 74 |.... ....!. (got| 00003460 5f 62 6f 78 25 3c 3e 31 30 29 20 80 20 28 6d 5f |_box%<>10) . (m_| 00003470 62 75 74 25 3d 30 29 0d 01 b2 10 c8 97 20 b8 20 |but%=0)...... . | 00003480 31 31 38 34 2c 36 30 0d 01 b3 08 c8 97 20 87 0d |1184,60...... ..| 00003490 01 b4 13 e7 63 6c 25 3a f2 63 6c 65 61 72 74 65 |....cl%:.clearte| 000034a0 78 74 0d 01 b5 0d f2 73 68 6f 77 5f 62 6f 78 0d |xt.....show_box.| 000034b0 01 b6 05 e1 0d 01 b7 04 0d 01 b8 20 dd f2 6a 70 |........... ..jp| 000034c0 63 68 6f 6f 73 65 5f 62 6f 78 28 73 63 72 25 2c |choose_box(scr%,| 000034d0 62 6f 78 5f 6e 6f 25 29 0d 01 b9 1f f2 63 68 6f |box_no%).....cho| 000034e0 6f 73 65 5f 62 6f 78 28 73 63 72 25 2c 62 6f 78 |ose_box(scr%,box| 000034f0 5f 6e 6f 25 2c 30 29 0d 01 ba 10 f2 6a 70 63 6c |_no%,0).....jpcl| 00003500 65 61 72 74 65 78 74 0d 01 bb 05 e1 0d 01 bc 04 |eartext.........| 00003510 0d 01 bd 15 dd f2 6a 70 73 63 61 6e 28 62 6f 78 |......jpscan(box| 00003520 5f 6e 6f 25 29 0d 01 be 3d f2 6a 70 77 6f 72 64 |_no%)...=.jpword| 00003530 73 28 33 35 30 2c 31 32 38 2c 2d 31 2c 22 2e 2e |s(350,128,-1,"..| 00003540 2e 2e 20 6a 65 74 2d 70 61 63 20 73 63 61 6e 20 |.. jet-pac scan | 00003550 69 6e 20 70 72 6f 67 72 65 73 73 20 2e 2e 2e 2e |in progress ....| 00003560 22 29 0d 01 bf 15 f2 65 78 70 61 6e 64 28 22 6a |").....expand("j| 00003570 70 73 63 61 6e 22 29 0d 01 c0 24 53 43 41 4c 45 |pscan")...$SCALE| 00003580 25 21 30 3d 31 36 3a 53 43 41 4c 45 25 21 34 3d |%!0=16:SCALE%!4=| 00003590 31 36 2a 28 48 25 21 26 46 30 29 0d 01 c1 21 ef |16*(H%!&F0)...!.| 000035a0 32 35 2c 34 2c 31 32 3b 39 31 32 3b 3a ef 32 35 |25,4,12;912;:.25| 000035b0 2c 39 38 2c 31 32 35 34 3b 33 38 3b 0d 01 c2 12 |,98,1254;38;....| 000035c0 e3 6a 25 3d 39 31 36 b8 32 36 30 88 2d 34 0d 01 |.j%=916.260.-4..| 000035d0 c3 3e c8 96 3a c8 99 22 4f 53 5f 53 70 72 69 74 |.>..:.."OS_Sprit| 000035e0 65 4f 70 22 2c 26 31 33 34 2c 41 52 45 41 25 2c |eOp",&134,AREA%,| 000035f0 22 6a 70 73 63 61 6e 22 2c 35 38 30 2c 6a 25 2c |"jpscan",580,j%,| 00003600 26 30 43 2c 53 43 41 4c 45 25 2c 30 0d 01 c4 45 |&0C,SCALE%,0...E| 00003610 e7 6a 25 3c 39 31 36 3a c8 99 22 4f 53 5f 53 70 |.j%<916:.."OS_Sp| 00003620 72 69 74 65 4f 70 22 2c 26 31 33 34 2c 41 52 45 |riteOp",&134,ARE| 00003630 41 25 2c 22 6a 70 73 63 61 6e 22 2c 35 38 30 2c |A%,"jpscan",580,| 00003640 6a 25 2b 34 2c 26 30 43 2c 53 43 41 4c 45 25 2c |j%+4,&0C,SCALE%,| 00003650 30 0d 01 c5 0f e7 62 6f 78 5f 6e 6f 25 3e 30 8c |0.....box_no%>0.| 00003660 0d 01 c6 14 20 e3 6b 25 3d 30 b8 62 6f 78 5f 6e |.... .k%=0.box_n| 00003670 6f 25 2d 31 0d 01 c7 44 20 20 e7 28 28 6a 25 2b |o%-1...D .((j%+| 00003680 33 36 29 3e 3d 62 6f 78 25 28 6b 25 2c 31 29 29 |36)>=box%(k%,1))| 00003690 80 28 28 6a 25 2b 33 36 29 3c 3d 62 6f 78 25 28 |.((j%+36)<=box%(| 000036a0 6b 25 2c 31 29 2b 36 30 29 3a f2 6a 70 73 63 61 |k%,1)+60):.jpsca| 000036b0 6e 62 6f 78 28 6b 25 29 0d 01 c8 06 20 ed 0d 01 |nbox(k%).... ...| 000036c0 c9 05 cd 0d 01 ca 2d e7 6a 25 3e 32 36 30 3a c8 |......-.j%>260:.| 000036d0 96 3a ef 32 35 2c 34 2c 31 32 3b 6a 25 2d 38 3b |.:.25,4,12;j%-8;| 000036e0 3a ef 32 35 2c 39 38 2c 31 32 35 34 3b 33 38 3b |:.25,98,1254;38;| 000036f0 0d 01 cb 22 ef 32 35 2c 34 2c 31 32 3b 6a 25 2d |...".25,4,12;j%-| 00003700 34 3b 3a ef 32 35 2c 39 38 2c 31 32 35 34 3b 33 |4;:.25,98,1254;3| 00003710 38 3b 0d 01 cc 05 ed 0d 01 cd 3c c8 99 22 4f 53 |8;........<.."OS| 00003720 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 33 34 2c |_SpriteOp",&134,| 00003730 41 52 45 41 25 2c 22 6a 70 73 63 61 6e 22 2c 35 |AREA%,"jpscan",5| 00003740 38 30 2c 32 36 30 2c 26 30 43 2c 53 43 41 4c 45 |80,260,&0C,SCALE| 00003750 25 2c 30 0d 01 ce 16 f2 63 6f 6d 70 61 63 74 28 |%,0.....compact(| 00003760 22 6a 70 73 63 61 6e 22 29 0d 01 cf 10 f2 6a 70 |"jpscan").....jp| 00003770 63 6c 65 61 72 74 65 78 74 0d 01 d0 32 f2 6a 70 |cleartext...2.jp| 00003780 77 6f 72 64 73 28 34 34 30 2c 31 32 38 2c 2d 31 |words(440,128,-1| 00003790 2c 22 2e 2e 2e 2e 20 73 63 61 6e 20 63 6f 6d 70 |,".... scan comp| 000037a0 6c 65 74 65 20 2e 2e 2e 2e 22 29 0d 01 d1 05 e1 |lete ....").....| 000037b0 0d 01 d2 04 0d 01 d3 13 dd f2 6a 70 73 63 61 6e |..........jpscan| 000037c0 62 6f 78 28 6b 25 29 0d 01 d4 47 e7 28 6a 25 2b |box(k%)...G.(j%+| 000037d0 33 36 29 3d 62 6f 78 25 28 6b 25 2c 31 29 2b 36 |36)=box%(k%,1)+6| 000037e0 30 3a ef 32 35 2c 34 2c 62 6f 78 25 28 6b 25 2c |0:.25,4,box%(k%,| 000037f0 30 29 3b 62 6f 78 25 28 6b 25 2c 31 29 2b 36 30 |0);box%(k%,1)+60| 00003800 3b 3a ef 32 35 2c 39 38 2c 36 32 3b 32 3b 0d 01 |;:.25,98,62;2;..| 00003810 d5 7c e7 28 28 6a 25 2b 33 36 29 3e 62 6f 78 25 |.|.((j%+36)>box%| 00003820 28 6b 25 2c 31 29 29 80 28 28 6a 25 2b 33 36 29 |(k%,1)).((j%+36)| 00003830 3c 62 6f 78 25 28 6b 25 2c 31 29 2b 36 30 29 3a |<box%(k%,1)+60):| 00003840 ef 32 35 2c 34 2c 62 6f 78 25 28 6b 25 2c 30 29 |.25,4,box%(k%,0)| 00003850 3b 6a 25 2b 33 36 3b 3a ef 32 35 2c 39 38 2c 32 |;j%+36;:.25,98,2| 00003860 3b 32 3b 3a ef 32 35 2c 34 2c 62 6f 78 25 28 6b |;2;:.25,4,box%(k| 00003870 25 2c 30 29 2b 36 30 3b 6a 25 2b 33 36 3b 3a ef |%,0)+60;j%+36;:.| 00003880 32 35 2c 39 38 2c 32 3b 32 3b 0d 01 d6 41 e7 28 |25,98,2;2;...A.(| 00003890 6a 25 2b 33 36 29 3d 62 6f 78 25 28 6b 25 2c 31 |j%+36)=box%(k%,1| 000038a0 29 3a ef 32 35 2c 34 2c 62 6f 78 25 28 6b 25 2c |):.25,4,box%(k%,| 000038b0 30 29 3b 62 6f 78 25 28 6b 25 2c 31 29 3b 3a ef |0);box%(k%,1);:.| 000038c0 32 35 2c 39 38 2c 36 32 3b 32 3b 0d 01 d7 05 e1 |25,98,62;2;.....| 000038d0 0d 01 d8 04 0d 01 d9 0e dd f2 73 68 6f 77 5f 62 |..........show_b| 000038e0 6f 78 0d 01 da 16 e3 20 6b 25 3d 30 20 b8 20 62 |ox..... k%=0 . b| 000038f0 6f 78 5f 6e 6f 25 2d 31 0d 01 db 31 20 ef 20 32 |ox_no%-1...1 . 2| 00003900 35 2c 34 2c 62 6f 78 25 28 6b 25 2c 30 29 3b 62 |5,4,box%(k%,0);b| 00003910 6f 78 25 28 6b 25 2c 31 29 3b 3a ef 20 32 35 2c |ox%(k%,1);:. 25,| 00003920 39 38 2c 36 32 3b 36 32 3b 0d 01 dc 35 20 ef 20 |98,62;62;...5 . | 00003930 32 35 2c 34 2c 62 6f 78 25 28 6b 25 2c 30 29 2b |25,4,box%(k%,0)+| 00003940 34 3b 62 6f 78 25 28 6b 25 2c 31 29 2b 34 3b 3a |4;box%(k%,1)+4;:| 00003950 ef 20 32 35 2c 39 38 2c 35 34 3b 35 34 3b 0d 01 |. 25,98,54;54;..| 00003960 dd 05 ed 0d 01 de 05 e1 0d 01 df 04 0d 01 e0 2a |...............*| 00003970 dd f2 62 6f 72 64 65 72 73 28 62 6c 65 66 74 25 |..borders(bleft%| 00003980 2c 62 6c 6f 77 25 2c 62 72 69 67 68 74 25 2c 62 |,blow%,bright%,b| 00003990 68 69 67 68 25 29 0d 01 e1 25 ef 20 32 34 2c 62 |high%)...%. 24,b| 000039a0 6c 65 66 74 25 3b 62 6c 6f 77 25 3b 62 72 69 67 |left%;blow%;brig| 000039b0 68 74 25 3b 62 68 69 67 68 25 3b 0d 01 e2 12 ef |ht%;bhigh%;.....| 000039c0 20 31 38 2c 30 2c 31 33 30 20 3a 20 da 0d 01 e3 | 18,0,130 : ....| 000039d0 29 ef 20 32 34 2c 62 6c 65 66 74 25 2b 34 3b 62 |). 24,bleft%+4;b| 000039e0 6c 6f 77 25 2b 34 3b 62 72 69 67 68 74 25 3b 62 |low%+4;bright%;b| 000039f0 68 69 67 68 25 3b 0d 01 e4 12 ef 20 31 38 2c 30 |high%;..... 18,0| 00003a00 2c 31 32 39 20 3a 20 da 0d 01 e5 2d ef 20 32 34 |,129 : ....-. 24| 00003a10 2c 62 6c 65 66 74 25 2b 38 3b 62 6c 6f 77 25 2b |,bleft%+8;blow%+| 00003a20 38 3b 62 72 69 67 68 74 25 2d 34 3b 62 68 69 67 |8;bright%-4;bhig| 00003a30 68 25 2d 34 3b 0d 01 e6 12 ef 20 31 38 2c 30 2c |h%-4;..... 18,0,| 00003a40 31 32 38 20 3a 20 da 0d 01 e7 2d ef 20 32 34 2c |128 : ....-. 24,| 00003a50 62 6c 65 66 74 25 2b 38 3b 62 6c 6f 77 25 2b 38 |bleft%+8;blow%+8| 00003a60 3b 62 72 69 67 68 74 25 2d 38 3b 62 68 69 67 68 |;bright%-8;bhigh| 00003a70 25 2d 38 3b 0d 01 e8 12 ef 20 31 38 2c 30 2c 31 |%-8;..... 18,0,1| 00003a80 33 31 20 3a 20 da 0d 01 e9 31 ef 20 32 34 2c 62 |31 : ....1. 24,b| 00003a90 6c 65 66 74 25 2b 31 32 3b 62 6c 6f 77 25 2b 31 |left%+12;blow%+1| 00003aa0 32 3b 62 72 69 67 68 74 25 2d 31 32 3b 62 68 69 |2;bright%-12;bhi| 00003ab0 67 68 25 2d 31 32 3b 0d 01 ea 12 ef 20 31 38 2c |gh%-12;..... 18,| 00003ac0 30 2c 31 32 38 20 3a 20 da 0d 01 eb 31 ef 20 32 |0,128 : ....1. 2| 00003ad0 34 2c 62 6c 65 66 74 25 2b 31 32 3b 62 6c 6f 77 |4,bleft%+12;blow| 00003ae0 25 2b 31 32 3b 62 72 69 67 68 74 25 2d 31 36 3b |%+12;bright%-16;| 00003af0 62 68 69 67 68 25 2d 31 36 3b 0d 01 ec 12 ef 20 |bhigh%-16;..... | 00003b00 31 38 2c 30 2c 31 33 30 20 3a 20 da 0d 01 ed 2f |18,0,130 : ..../| 00003b10 f2 62 6f 72 64 65 72 5f 63 65 6e 74 72 65 28 62 |.border_centre(b| 00003b20 6c 65 66 74 25 2c 62 6c 6f 77 25 2c 62 72 69 67 |left%,blow%,brig| 00003b30 68 74 25 2c 62 68 69 67 68 25 29 0d 01 ee 05 e1 |ht%,bhigh%).....| 00003b40 0d 01 ef 04 0d 01 f0 30 dd f2 62 6f 72 64 65 72 |.......0..border| 00003b50 5f 63 65 6e 74 72 65 28 62 6c 65 66 74 25 2c 62 |_centre(bleft%,b| 00003b60 6c 6f 77 25 2c 62 72 69 67 68 74 25 2c 62 68 69 |low%,bright%,bhi| 00003b70 67 68 25 29 0d 01 f1 31 ef 20 32 34 2c 62 6c 65 |gh%)...1. 24,ble| 00003b80 66 74 25 2b 31 36 3b 62 6c 6f 77 25 2b 31 36 3b |ft%+16;blow%+16;| 00003b90 62 72 69 67 68 74 25 2d 31 36 3b 62 68 69 67 68 |bright%-16;bhigh| 00003ba0 25 2d 31 36 3b 0d 01 f2 12 ef 20 31 38 2c 30 2c |%-16;..... 18,0,| 00003bb0 31 32 39 20 3a 20 da 0d 01 f3 08 ef 20 32 36 0d |129 : ...... 26.| 00003bc0 01 f4 05 e1 0d 01 f5 04 0d 01 f6 0f dd f2 63 6c |..............cl| 00003bd0 65 61 72 74 65 78 74 0d 01 f7 1c ef 20 32 34 2c |eartext..... 24,| 00003be0 31 36 3b 31 36 3b 31 32 36 33 3b 6c 6f 77 25 2d |16;16;1263;low%-| 00003bf0 32 35 3b 0d 01 f8 3d f4 20 56 44 55 20 32 33 2c |25;...=. VDU 23,| 00003c00 31 32 2c 30 2c 31 2c 31 2c 30 2c 30 2c 31 2c 31 |12,0,1,1,0,0,1,1| 00003c10 2c 30 20 3a 20 52 45 4d 20 64 65 66 69 6e 65 20 |,0 : REM define | 00003c20 74 65 78 74 20 62 61 63 6b 67 72 64 20 45 43 46 |text backgrd ECF| 00003c30 0d 01 f9 19 f4 20 56 44 55 20 31 38 2c 31 36 2c |..... VDU 18,16,| 00003c40 31 32 38 20 3a 20 43 4c 47 0d 01 fa 12 ef 20 31 |128 : CLG..... 1| 00003c50 38 2c 30 2c 31 32 39 20 3a 20 da 0d 01 fb 08 ef |8,0,129 : ......| 00003c60 20 32 36 0d 01 fc 05 e1 0d 01 fd 04 0d 01 fe 11 | 26.............| 00003c70 dd f2 6a 70 63 6c 65 61 72 74 65 78 74 0d 01 ff |..jpcleartext...| 00003c80 27 ef 31 38 2c 30 2c 31 32 39 3a ef 32 34 2c 32 |'.18,0,129:.24,2| 00003c90 30 3b 32 30 3b 31 32 35 38 3b 32 30 34 3b 3a da |0;20;1258;204;:.| 00003ca0 3a ef 32 36 0d 02 00 05 e1 0d 02 01 04 0d 02 02 |:.26............| 00003cb0 1a dd f2 63 6c 65 61 72 67 72 61 70 68 69 63 73 |...cleargraphics| 00003cc0 28 62 63 6f 6c 25 29 0d 02 03 21 ef 20 32 34 2c |(bcol%)...!. 24,| 00003cd0 6c 65 66 74 25 3b 6c 6f 77 25 3b 72 69 67 68 74 |left%;low%;right| 00003ce0 25 3b 68 69 67 68 25 3b 0d 02 04 18 ef 20 31 38 |%;high%;..... 18| 00003cf0 2c 30 2c 31 32 38 2b 62 63 6f 6c 25 20 3a 20 da |,0,128+bcol% : .| 00003d00 0d 02 05 08 ef 20 32 36 0d 02 06 05 e1 0d 02 07 |..... 26........| 00003d10 04 0d 02 08 10 dd f2 6d 6f 75 73 65 5f 74 65 78 |.......mouse_tex| 00003d20 74 0d 02 09 1c c8 97 20 c8 93 20 31 36 2c 31 36 |t...... .. 16,16| 00003d30 2c 31 32 36 33 2c 6c 6f 77 25 2d 32 35 0d 02 0a |,1263,low%-25...| 00003d40 05 e1 0d 02 0b 04 0d 02 0c 14 dd f2 6d 6f 75 73 |............mous| 00003d50 65 5f 67 72 61 70 68 69 63 73 0d 02 0d 21 c8 97 |e_graphics...!..| 00003d60 20 c8 93 20 6c 65 66 74 25 2c 6c 6f 77 25 2c 72 | .. left%,low%,r| 00003d70 69 67 68 74 25 2c 68 69 67 68 25 0d 02 0e 05 e1 |ight%,high%.....| 00003d80 0d 02 0f 04 0d 02 10 10 dd f2 6d 6f 75 73 65 5f |..........mouse_| 00003d90 66 75 6c 6c 0d 02 11 1b c8 97 20 c8 93 20 30 2c |full...... .. 0,| 00003da0 30 2c 31 32 37 39 2c 68 69 67 68 25 2b 31 32 0d |0,1279,high%+12.| 00003db0 02 12 05 e1 0d 02 13 04 0d 02 14 3a dd f2 73 61 |...........:..sa| 00003dc0 76 65 5f 62 67 72 64 28 73 63 72 25 2c 78 5f 70 |ve_bgrd(scr%,x_p| 00003dd0 6f 73 25 2c 79 5f 70 6f 73 25 2c 78 5f 73 69 7a |os%,y_pos%,x_siz| 00003de0 25 2c 79 5f 73 69 7a 25 2c 73 70 5f 6e 61 6d 65 |%,y_siz%,sp_name| 00003df0 24 29 0d 02 15 54 c8 99 20 22 4f 53 5f 53 70 72 |$)...T.. "OS_Spr| 00003e00 69 74 65 4f 70 22 2c 26 31 31 30 2c 41 52 45 41 |iteOp",&110,AREA| 00003e10 25 2c 73 70 5f 6e 61 6d 65 24 2c 30 2c 78 5f 70 |%,sp_name$,0,x_p| 00003e20 6f 73 25 2c 79 5f 70 6f 73 25 2c 78 5f 70 6f 73 |os%,y_pos%,x_pos| 00003e30 25 2b 78 5f 73 69 7a 25 2c 79 5f 70 6f 73 25 2b |%+x_siz%,y_pos%+| 00003e40 79 5f 73 69 7a 25 0d 02 16 05 e1 0d 02 17 04 0d |y_siz%..........| 00003e50 02 18 62 dd f2 65 6e 6c 61 72 67 65 5f 62 6f 78 |..b..enlarge_box| 00003e60 28 73 63 72 25 2c 6d 61 6e 79 25 2c 62 6f 78 5f |(scr%,many%,box_| 00003e70 6c 65 66 74 25 2c 62 6f 78 5f 6c 6f 77 25 2c 62 |left%,box_low%,b| 00003e80 69 67 5f 6c 65 66 74 25 2c 62 69 67 5f 6c 6f 77 |ig_left%,big_low| 00003e90 25 2c 62 69 67 5f 72 69 67 68 74 25 2c 62 69 67 |%,big_right%,big| 00003ea0 5f 68 69 67 68 25 2c 64 72 61 77 6e 61 6d 65 24 |_high%,drawname$| 00003eb0 29 0d 02 19 29 63 68 67 5f 6c 65 66 74 25 3d 28 |)...)chg_left%=(| 00003ec0 62 69 67 5f 6c 65 66 74 25 2d 62 6f 78 5f 6c 65 |big_left%-box_le| 00003ed0 66 74 25 29 2f 6d 61 6e 79 25 0d 02 1a 26 63 68 |ft%)/many%...&ch| 00003ee0 67 5f 6c 6f 77 25 3d 28 62 69 67 5f 6c 6f 77 25 |g_low%=(big_low%| 00003ef0 2d 62 6f 78 5f 6c 6f 77 25 29 2f 6d 61 6e 79 25 |-box_low%)/many%| 00003f00 0d 02 1b 30 63 68 67 5f 72 69 67 68 74 25 3d 28 |...0chg_right%=(| 00003f10 62 69 67 5f 72 69 67 68 74 25 2d 28 62 6f 78 5f |big_right%-(box_| 00003f20 6c 65 66 74 25 2b 36 34 29 29 2f 6d 61 6e 79 25 |left%+64))/many%| 00003f30 0d 02 1c 2d 63 68 67 5f 68 69 67 68 25 3d 28 62 |...-chg_high%=(b| 00003f40 69 67 5f 68 69 67 68 25 2d 28 62 6f 78 5f 6c 6f |ig_high%-(box_lo| 00003f50 77 25 2b 36 34 29 29 2f 6d 61 6e 79 25 0d 02 1d |w%+64))/many%...| 00003f60 0e e3 20 6d 25 3d 31 20 b8 20 34 0d 02 1e 13 20 |.. m%=1 . 4.... | 00003f70 e3 20 6c 25 3d 30 20 b8 20 6d 61 6e 79 25 0d 02 |. l%=0 . many%..| 00003f80 1f 3d 20 20 ef 20 32 35 2c 34 2c 62 6f 78 5f 6c |.= . 25,4,box_l| 00003f90 65 66 74 25 2b 28 6c 25 2a 63 68 67 5f 6c 65 66 |eft%+(l%*chg_lef| 00003fa0 74 25 29 3b 62 6f 78 5f 6c 6f 77 25 2b 28 6c 25 |t%);box_low%+(l%| 00003fb0 2a 63 68 67 5f 6c 6f 77 25 29 3b 0d 02 20 2f 20 |*chg_low%);.. / | 00003fc0 20 ef 20 32 35 2c 32 2c 36 34 2b 28 6c 25 2a 94 | . 25,2,64+(l%*.| 00003fd0 28 63 68 67 5f 6c 65 66 74 25 2d 63 68 67 5f 72 |(chg_left%-chg_r| 00003fe0 69 67 68 74 25 29 29 3b 30 3b 0d 02 21 2d 20 20 |ight%));0;..!- | 00003ff0 ef 20 32 35 2c 32 2c 30 3b 36 34 2b 28 6c 25 2a |. 25,2,0;64+(l%*| 00004000 94 28 63 68 67 5f 6c 6f 77 25 2d 63 68 67 5f 68 |.(chg_low%-chg_h| 00004010 69 67 68 25 29 29 3b 0d 02 22 32 20 20 ef 20 32 |igh%));.."2 . 2| 00004020 35 2c 32 2c 2d 28 36 34 2b 28 6c 25 2a 94 28 63 |5,2,-(64+(l%*.(c| 00004030 68 67 5f 6c 65 66 74 25 2d 63 68 67 5f 72 69 67 |hg_left%-chg_rig| 00004040 68 74 25 29 29 29 3b 30 3b 0d 02 23 30 20 20 ef |ht%)));0;..#0 .| 00004050 20 32 35 2c 32 2c 30 3b 2d 28 36 34 2b 28 6c 25 | 25,2,0;-(64+(l%| 00004060 2a 94 28 63 68 67 5f 6c 6f 77 25 2d 63 68 67 5f |*.(chg_low%-chg_| 00004070 68 69 67 68 25 29 29 29 3b 0d 02 24 0f 20 20 f2 |high%)));..$. .| 00004080 77 61 69 74 28 31 30 29 0d 02 25 06 20 ed 0d 02 |wait(10)..%. ...| 00004090 26 05 ed 0d 02 27 31 ef 20 32 34 2c 62 69 67 5f |&....'1. 24,big_| 000040a0 6c 65 66 74 25 3b 62 69 67 5f 6c 6f 77 25 3b 62 |left%;big_low%;b| 000040b0 69 67 5f 72 69 67 68 74 25 3b 62 69 67 5f 68 69 |ig_right%;big_hi| 000040c0 67 68 25 3b 0d 02 28 12 ef 20 31 38 2c 30 2c 31 |gh%;..(.. 18,0,1| 000040d0 33 31 20 3a 20 da 0d 02 29 08 ef 20 32 36 0d 02 |31 : ...).. 26..| 000040e0 2a 15 e7 20 64 72 61 77 6e 61 6d 65 24 3c 3e 22 |*.. drawname$<>"| 000040f0 22 20 8c 0d 02 2b 35 20 f2 61 64 64 62 6f 78 28 |" ...+5 .addbox(| 00004100 62 69 67 5f 6c 65 66 74 25 2c 62 69 67 5f 6c 6f |big_left%,big_lo| 00004110 77 25 2c 62 69 67 5f 72 69 67 68 74 25 2c 62 69 |w%,big_right%,bi| 00004120 67 5f 68 69 67 68 25 29 0d 02 2c 05 cd 0d 02 2d |g_high%)..,....-| 00004130 05 e1 0d 02 2e 04 0d 02 2f 35 dd f2 61 64 64 62 |......../5..addb| 00004140 6f 78 28 62 69 67 5f 6c 65 66 74 25 2c 62 69 67 |ox(big_left%,big| 00004150 5f 6c 6f 77 25 2c 62 69 67 5f 72 69 67 68 74 25 |_low%,big_right%| 00004160 2c 62 69 67 5f 68 69 67 68 25 29 0d 02 30 16 c8 |,big_high%)..0..| 00004170 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 31 32 2c |. "OS_Byte",112,| 00004180 32 0d 02 31 31 ef 20 32 34 2c 62 69 67 5f 6c 65 |2..11. 24,big_le| 00004190 66 74 25 3b 62 69 67 5f 6c 6f 77 25 3b 62 69 67 |ft%;big_low%;big| 000041a0 5f 72 69 67 68 74 25 3b 62 69 67 5f 68 69 67 68 |_right%;big_high| 000041b0 25 3b 0d 02 32 12 ef 20 31 38 2c 30 2c 31 33 31 |%;..2.. 18,0,131| 000041c0 20 3a 20 da 0d 02 33 3d f2 62 6f 72 64 65 72 73 | : ...3=.borders| 000041d0 28 62 69 67 5f 6c 65 66 74 25 2b 34 2c 62 69 67 |(big_left%+4,big| 000041e0 5f 6c 6f 77 25 2b 34 2c 62 69 67 5f 72 69 67 68 |_low%+4,big_righ| 000041f0 74 25 2d 34 2c 62 69 67 5f 68 69 67 68 25 2d 34 |t%-4,big_high%-4| 00004200 29 0d 02 34 3d ef 20 32 34 2c 62 69 67 5f 6c 65 |)..4=. 24,big_le| 00004210 66 74 25 2b 31 36 3b 62 69 67 5f 6c 6f 77 25 2b |ft%+16;big_low%+| 00004220 31 36 3b 62 69 67 5f 72 69 67 68 74 25 2d 31 36 |16;big_right%-16| 00004230 3b 62 69 67 5f 68 69 67 68 25 2d 31 36 3b 0d 02 |;big_high%-16;..| 00004240 35 12 ef 20 31 38 2c 30 2c 31 32 38 20 3a 20 da |5.. 18,0,128 : .| 00004250 0d 02 36 05 e1 0d 02 37 04 0d 02 38 0d dd f2 65 |..6....7...8...e| 00004260 78 70 6c 6f 72 65 0d 02 39 27 20 f2 77 6f 72 64 |xplore..9' .word| 00004270 73 28 37 32 38 2c 35 30 2c 30 2c 22 65 78 70 6c |s(728,50,0,"expl| 00004280 6f 72 65 20 70 69 63 74 75 72 65 22 29 0d 02 3a |ore picture")..:| 00004290 3f 20 f2 70 75 74 5f 73 70 28 31 2c 31 30 30 30 |? .put_sp(1,1000| 000042a0 2c 32 30 2c 35 2c 31 36 2c 31 36 2c 31 36 2c 22 |,20,5,16,16,16,"| 000042b0 6d 6f 75 73 65 22 2c 30 2c 30 2c 72 69 67 68 74 |mouse",0,0,right| 000042c0 25 2c 68 69 67 68 25 2c 26 30 30 29 0d 02 3b 05 |%,high%,&00)..;.| 000042d0 e1 0d 02 3c 04 0d 02 3d 0f dd f2 6a 70 65 78 70 |...<...=...jpexp| 000042e0 6c 6f 72 65 0d 02 3e 25 20 f2 6a 70 77 6f 72 64 |lore..>% .jpword| 000042f0 73 28 38 30 30 2c 35 30 2c 30 2c 22 65 78 70 6c |s(800,50,0,"expl| 00004300 6f 72 65 20 2e 2e 2e 22 29 0d 02 3f 3f 20 f2 70 |ore ...")..?? .p| 00004310 75 74 5f 73 70 28 31 2c 31 30 30 30 2c 32 34 2c |ut_sp(1,1000,24,| 00004320 35 2c 31 36 2c 31 36 2c 31 36 2c 22 6d 6f 75 73 |5,16,16,16,"mous| 00004330 65 22 2c 30 2c 30 2c 72 69 67 68 74 25 2c 68 69 |e",0,0,right%,hi| 00004340 67 68 25 2c 26 30 30 29 0d 02 40 05 e1 0d 02 41 |gh%,&00)..@....A| 00004350 04 0d 02 42 12 dd f2 65 78 70 61 6e 64 28 73 70 |...B...expand(sp| 00004360 6e 24 29 0d 02 43 08 ea 20 47 25 0d 02 44 5a f4 |n$)..C.. G%..DZ.| 00004370 20 63 72 65 61 74 65 20 73 70 72 69 74 65 20 22 | create sprite "| 00004380 6a 22 20 73 69 7a 65 20 35 20 62 79 74 65 73 20 |j" size 5 bytes | 00004390 74 6f 20 73 74 6f 72 65 20 74 68 65 20 73 69 7a |to store the siz| 000043a0 65 20 6f 66 20 74 68 65 20 63 6f 6d 70 61 63 74 |e of the compact| 000043b0 65 64 20 73 70 72 69 74 65 20 26 20 6d 61 73 6b |ed sprite & mask| 000043c0 20 62 79 74 65 0d 02 45 31 c8 99 22 4f 53 5f 53 | byte..E1.."OS_S| 000043d0 70 72 69 74 65 4f 70 22 2c 26 31 30 46 2c 41 52 |priteOp",&10F,AR| 000043e0 45 41 25 2c 73 70 6e 24 2b 22 6a 22 2c 30 2c 31 |EA%,spn$+"j",0,1| 000043f0 30 2c 31 2c 31 32 0d 02 46 32 c8 99 22 4f 53 5f |0,1,12..F2.."OS_| 00004400 53 70 72 69 74 65 4f 70 22 2c 26 31 31 38 2c 41 |SpriteOp",&118,A| 00004410 52 45 41 25 2c 73 70 6e 24 2b 22 6a 22 20 b8 20 |REA%,spn$+"j" . | 00004420 2c 2c 69 6d 61 67 65 25 0d 02 47 15 69 6d 61 67 |,,image%..G.imag| 00004430 65 25 2b 3d 69 6d 61 67 65 25 21 33 32 0d 02 48 |e%+=image%!32..H| 00004440 31 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |1.."OS_SpriteOp"| 00004450 2c 26 31 31 38 2c 41 52 45 41 25 2c 73 70 6e 24 |,&118,AREA%,spn$| 00004460 20 b8 20 2c 2c 63 73 70 69 6d 61 67 65 25 0d 02 | . ,,cspimage%..| 00004470 49 33 21 69 6d 61 67 65 25 3d 28 28 63 73 70 69 |I3!image%=((cspi| 00004480 6d 61 67 65 25 21 31 36 29 2b 31 29 2a 38 20 3a |mage%!16)+1)*8 :| 00004490 20 f4 20 73 69 7a 65 20 69 6e 20 70 69 78 65 6c | . size in pixel| 000044a0 73 0d 02 4a 1b 63 73 70 69 6d 61 67 65 25 2b 3d |s..J.cspimage%+=| 000044b0 63 73 70 69 6d 61 67 65 25 21 33 32 0d 02 4b 2c |cspimage%!32..K,| 000044c0 69 6d 61 67 65 25 3f 34 3d 63 73 70 69 6d 61 67 |image%?4=cspimag| 000044d0 65 25 3f 38 20 3a 20 f4 20 73 74 6f 72 65 20 6d |e%?8 : . store m| 000044e0 61 73 6b 20 62 79 74 65 0d 02 4c 34 f4 20 63 72 |ask byte..L4. cr| 000044f0 65 61 74 65 20 73 70 72 69 74 65 20 22 71 22 20 |eate sprite "q" | 00004500 28 74 65 6d 70 6f 72 61 72 69 6c 79 29 20 74 6f |(temporarily) to| 00004510 20 65 78 70 61 6e 64 20 69 6e 74 6f 0d 02 4d 45 | expand into..ME| 00004520 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |.."OS_SpriteOp",| 00004530 26 31 30 46 2c 41 52 45 41 25 2c 73 70 6e 24 2b |&10F,AREA%,spn$+| 00004540 22 71 22 2c 30 2c 21 63 73 70 69 6d 61 67 65 25 |"q",0,!cspimage%| 00004550 2a 32 2c 63 73 70 69 6d 61 67 65 25 21 34 2c 31 |*2,cspimage%!4,1| 00004560 32 0d 02 4e 3f e7 28 28 63 73 70 69 6d 61 67 65 |2..N?.((cspimage| 00004570 25 3f 38 29 80 26 31 30 29 3c 3e 30 3a c8 99 22 |%?8).&10)<>0:.."| 00004580 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 31 |OS_SpriteOp",&11| 00004590 44 2c 41 52 45 41 25 2c 73 70 6e 24 2b 22 71 22 |D,AREA%,spn$+"q"| 000045a0 0d 02 4f 66 e3 6c 65 74 74 25 3d 31 b8 a9 28 73 |..Of.lett%=1..(s| 000045b0 70 6e 24 29 3a 3f 28 63 73 70 6e 61 6d 65 25 2b |pn$):?(cspname%+| 000045c0 28 6c 65 74 74 25 2d 31 29 29 3d 97 28 c1 73 70 |(lett%-1))=.(.sp| 000045d0 6e 24 2c 6c 65 74 74 25 2c 31 29 29 3a 3f 28 6e |n$,lett%,1)):?(n| 000045e0 73 70 6e 61 6d 65 25 2b 28 6c 65 74 74 25 2d 31 |spname%+(lett%-1| 000045f0 29 29 3d 97 28 c1 73 70 6e 24 2c 6c 65 74 74 25 |))=.(.spn$,lett%| 00004600 2c 31 29 29 3a ed 0d 02 50 3f e7 a9 28 73 70 6e |,1)):...P?..(spn| 00004610 24 29 3c 31 31 3a e3 6c 65 74 74 25 3d a9 28 73 |$)<11:.lett%=.(s| 00004620 70 6e 24 29 2b 31 b8 31 32 3a 3f 28 63 73 70 6e |pn$)+1.12:?(cspn| 00004630 61 6d 65 25 2b 28 6c 65 74 74 25 2d 31 29 29 3d |ame%+(lett%-1))=| 00004640 26 30 30 3a ed 0d 02 51 1b 3f 28 6e 73 70 6e 61 |&00:...Q.?(nspna| 00004650 6d 65 25 2b a9 28 73 70 6e 24 29 29 3d 26 37 31 |me%+.(spn$))=&71| 00004660 0d 02 52 3f e7 a9 28 73 70 6e 24 29 3c 31 30 3a |..R?..(spn$)<10:| 00004670 e3 6c 65 74 74 25 3d a9 28 73 70 6e 24 29 2b 32 |.lett%=.(spn$)+2| 00004680 b8 31 32 3a 3f 28 6e 73 70 6e 61 6d 65 25 2b 28 |.12:?(nspname%+(| 00004690 6c 65 74 74 25 2d 31 29 29 3d 26 30 30 3a ed 0d |lett%-1))=&00:..| 000046a0 02 53 0c 47 25 3d 41 52 45 41 25 0d 02 54 0f d6 |.S.G%=AREA%..T..| 000046b0 20 65 78 70 61 6e 64 73 70 25 0d 02 55 44 f4 20 | expandsp%..UD. | 000046c0 64 65 6c 65 74 65 20 6f 72 69 67 69 6e 61 6c 20 |delete original | 000046d0 28 63 6f 6d 70 61 63 74 65 64 29 20 73 70 72 69 |(compacted) spri| 000046e0 74 65 2c 20 72 65 6e 61 6d 65 20 22 71 22 20 73 |te, rename "q" s| 000046f0 70 72 69 74 65 20 74 6f 20 6f 72 69 67 2e 0d 02 |prite to orig...| 00004700 56 23 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 |V#.."OS_SpriteOp| 00004710 22 2c 26 31 31 39 2c 41 52 45 41 25 2c 73 70 6e |",&119,AREA%,spn| 00004720 24 0d 02 57 2c c8 99 22 4f 53 5f 53 70 72 69 74 |$..W,.."OS_Sprit| 00004730 65 4f 70 22 2c 26 31 31 41 2c 41 52 45 41 25 2c |eOp",&11A,AREA%,| 00004740 73 70 6e 24 2b 22 71 22 2c 73 70 6e 24 0d 02 58 |spn$+"q",spn$..X| 00004750 05 e1 0d 02 59 04 0d 02 5a 13 dd f2 63 6f 6d 70 |....Y...Z...comp| 00004760 61 63 74 28 73 70 6e 24 29 0d 02 5b 08 ea 20 47 |act(spn$)..[.. G| 00004770 25 0d 02 5c 5c f4 20 63 72 65 61 74 65 20 73 70 |%..\\. create sp| 00004780 72 69 74 65 20 22 71 22 20 28 74 65 6d 70 6f 72 |rite "q" (tempor| 00004790 61 72 79 29 20 74 6f 20 62 65 20 63 6f 6d 70 61 |ary) to be compa| 000047a0 63 74 65 64 20 69 6e 74 6f 20 28 73 69 7a 65 20 |cted into (size | 000047b0 64 65 74 61 69 6c 73 20 73 74 6f 72 65 64 20 69 |details stored i| 000047c0 6e 20 73 70 72 69 74 65 20 22 6a 22 29 0d 02 5d |n sprite "j")..]| 000047d0 32 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |2.."OS_SpriteOp"| 000047e0 2c 26 31 31 38 2c 41 52 45 41 25 2c 73 70 6e 24 |,&118,AREA%,spn$| 000047f0 2b 22 6a 22 20 b8 20 2c 2c 69 6d 61 67 65 25 0d |+"j" . ,,image%.| 00004800 02 5e 24 69 6d 61 67 65 25 2b 3d 69 6d 61 67 65 |.^$image%+=image| 00004810 25 21 33 32 3a 6d 61 73 6b 25 3d 69 6d 61 67 65 |%!32:mask%=image| 00004820 25 3f 34 0d 02 5f 36 c8 99 22 4f 53 5f 53 70 72 |%?4.._6.."OS_Spr| 00004830 69 74 65 4f 70 22 2c 26 31 30 46 2c 41 52 45 41 |iteOp",&10F,AREA| 00004840 25 2c 73 70 6e 24 2b 22 71 22 2c 30 2c 21 69 6d |%,spn$+"q",0,!im| 00004850 61 67 65 25 2c 31 2c 31 32 0d 02 60 32 c8 99 22 |age%,1,12..`2.."| 00004860 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 31 |OS_SpriteOp",&11| 00004870 38 2c 41 52 45 41 25 2c 73 70 6e 24 2b 22 71 22 |8,AREA%,spn$+"q"| 00004880 20 b8 20 2c 2c 69 6d 61 67 65 25 0d 02 61 15 69 | . ,,image%..a.i| 00004890 6d 61 67 65 25 2b 3d 69 6d 61 67 65 25 21 33 32 |mage%+=image%!32| 000048a0 0d 02 62 39 c8 99 22 4f 53 5f 53 70 72 69 74 65 |..b9.."OS_Sprite| 000048b0 4f 70 22 2c 26 31 32 38 2c 41 52 45 41 25 2c 73 |Op",&128,AREA%,s| 000048c0 70 6e 24 20 b8 20 2c 2c 2c 21 69 6d 61 67 65 25 |pn$ . ,,,!image%| 000048d0 2c 69 6d 61 67 65 25 21 34 0d 02 63 24 21 69 6d |,image%!4..c$!im| 000048e0 61 67 65 25 3d 21 69 6d 61 67 65 25 2f 32 3a 69 |age%=!image%/2:i| 000048f0 6d 61 67 65 25 3f 38 3d 6d 61 73 6b 25 0d 02 64 |mage%?8=mask%..d| 00004900 66 e3 6c 65 74 74 25 3d 31 b8 a9 28 73 70 6e 24 |f.lett%=1..(spn$| 00004910 29 3a 3f 28 6e 73 70 6e 61 6d 65 25 2b 28 6c 65 |):?(nspname%+(le| 00004920 74 74 25 2d 31 29 29 3d 97 28 c1 73 70 6e 24 2c |tt%-1))=.(.spn$,| 00004930 6c 65 74 74 25 2c 31 29 29 3a 3f 28 63 73 70 6e |lett%,1)):?(cspn| 00004940 61 6d 65 25 2b 28 6c 65 74 74 25 2d 31 29 29 3d |ame%+(lett%-1))=| 00004950 97 28 c1 73 70 6e 24 2c 6c 65 74 74 25 2c 31 29 |.(.spn$,lett%,1)| 00004960 29 3a ed 0d 02 65 3f e7 a9 28 73 70 6e 24 29 3c |):...e?..(spn$)<| 00004970 31 31 3a e3 6c 65 74 74 25 3d a9 28 73 70 6e 24 |11:.lett%=.(spn$| 00004980 29 2b 31 b8 31 32 3a 3f 28 6e 73 70 6e 61 6d 65 |)+1.12:?(nspname| 00004990 25 2b 28 6c 65 74 74 25 2d 31 29 29 3d 26 30 30 |%+(lett%-1))=&00| 000049a0 3a ed 0d 02 66 1b 3f 28 63 73 70 6e 61 6d 65 25 |:...f.?(cspname%| 000049b0 2b a9 28 73 70 6e 24 29 29 3d 26 37 31 0d 02 67 |+.(spn$))=&71..g| 000049c0 3f e7 a9 28 73 70 6e 24 29 3c 31 30 3a e3 6c 65 |?..(spn$)<10:.le| 000049d0 74 74 25 3d a9 28 73 70 6e 24 29 2b 32 b8 31 32 |tt%=.(spn$)+2.12| 000049e0 3a 3f 28 63 73 70 6e 61 6d 65 25 2b 28 6c 65 74 |:?(cspname%+(let| 000049f0 74 25 2d 31 29 29 3d 26 30 30 3a ed 0d 02 68 0c |t%-1))=&00:...h.| 00004a00 47 25 3d 41 52 45 41 25 0d 02 69 0f d6 20 63 72 |G%=AREA%..i.. cr| 00004a10 75 6e 63 68 73 70 25 0d 02 6a 50 f4 20 64 65 6c |unchsp%..jP. del| 00004a20 65 74 65 20 6f 72 69 67 69 6e 61 6c 20 28 6e 6f |ete original (no| 00004a30 72 6d 61 6c 29 20 73 70 72 69 74 65 20 61 6e 64 |rmal) sprite and| 00004a40 20 22 6a 22 20 73 70 72 69 74 65 2c 20 72 65 6e | "j" sprite, ren| 00004a50 61 6d 65 20 22 71 22 20 73 70 72 69 74 65 20 74 |ame "q" sprite t| 00004a60 6f 20 6f 72 69 67 2e 0d 02 6b 47 c8 99 22 4f 53 |o orig...kG.."OS| 00004a70 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 31 39 2c |_SpriteOp",&119,| 00004a80 41 52 45 41 25 2c 73 70 6e 24 3a c8 99 22 4f 53 |AREA%,spn$:.."OS| 00004a90 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 31 39 2c |_SpriteOp",&119,| 00004aa0 41 52 45 41 25 2c 73 70 6e 24 2b 22 6a 22 0d 02 |AREA%,spn$+"j"..| 00004ab0 6c 2c c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 |l,.."OS_SpriteOp| 00004ac0 22 2c 26 31 31 41 2c 41 52 45 41 25 2c 73 70 6e |",&11A,AREA%,spn| 00004ad0 24 2b 22 71 22 2c 73 70 6e 24 0d 02 6d 05 e1 0d |$+"q",spn$..m...| 00004ae0 02 6e 04 0d 02 6f 12 dd f2 64 65 6c 65 74 65 28 |.n...o...delete(| 00004af0 73 70 6e 24 29 0d 02 70 24 c8 99 20 22 4f 53 5f |spn$)..p$.. "OS_| 00004b00 53 70 72 69 74 65 4f 70 22 2c 26 31 31 39 2c 41 |SpriteOp",&119,A| 00004b10 52 45 41 25 2c 73 70 6e 24 0d 02 71 05 e1 0d 02 |REA%,spn$..q....| 00004b20 72 04 0d 02 73 1f dd f2 6c 6f 61 64 73 6f 75 6e |r...s...loadsoun| 00004b30 64 6d 6f 64 28 73 64 69 72 24 2c 73 6d 6f 64 24 |dmod(sdir$,smod$| 00004b40 29 0d 02 74 0f f2 6b 69 6c 6c 6f 6c 64 6d 6f 64 |)..t..killoldmod| 00004b50 0d 02 75 14 e3 6b 25 3d 30 b8 6d 61 78 73 6f 75 |..u..k%=0.maxsou| 00004b60 6e 64 73 25 0d 02 76 1f e7 73 6d 6f 64 24 3d 73 |nds%..v..smod$=s| 00004b70 6f 75 6e 64 6d 6f 64 73 24 28 6b 25 29 3a 52 25 |oundmods$(k%):R%| 00004b80 3d 6b 25 0d 02 77 05 ed 0d 02 78 5d ff 22 52 4d |=k%..w....x]."RM| 00004b90 45 6e 73 75 72 65 20 3c 41 5a 54 45 43 24 63 68 |Ensure <AZTEC$ch| 00004ba0 61 69 6e 64 69 72 3e 2e 22 2b 73 64 69 72 24 2b |aindir>."+sdir$+| 00004bb0 22 2e 22 2b 73 6d 6f 64 24 2b 22 20 52 4d 4c 6f |"."+smod$+" RMLo| 00004bc0 61 64 20 3c 41 5a 54 45 43 24 63 68 61 69 6e 64 |ad <AZTEC$chaind| 00004bd0 69 72 3e 2e 22 2b 73 64 69 72 24 2b 22 2e 22 2b |ir>."+sdir$+"."+| 00004be0 73 6d 6f 64 24 0d 02 79 05 e1 0d 02 7a 04 0d 02 |smod$..y....z...| 00004bf0 7b 10 dd f2 6b 69 6c 6c 6f 6c 64 6d 6f 64 0d 02 |{...killoldmod..| 00004c00 7c 07 ea 20 85 0d 02 7d 0d ee 85 ea 3a f7 20 85 ||.. ...}....:. .| 00004c10 3a e1 0d 02 7e 1e 20 ff 22 52 4d 4b 69 6c 6c 20 |:...~. ."RMKill | 00004c20 22 2b 73 6f 75 6e 64 6d 6f 64 73 24 28 52 25 29 |"+soundmods$(R%)| 00004c30 0d 02 7f 07 f7 20 85 0d 02 80 05 e1 0d 02 81 04 |..... ..........| 00004c40 0d 02 82 17 dd f2 63 6f 6e 63 68 28 63 6f 6e 25 |......conch(con%| 00004c50 2c 67 6f 6f 6e 25 29 0d 02 83 3e c8 99 20 22 4f |,goon%)...>.. "O| 00004c60 53 5f 53 70 72 69 74 65 4f 70 22 2c 26 31 30 42 |S_SpriteOp",&10B| 00004c70 2c 41 52 45 41 25 2c 22 3c 41 5a 54 45 43 24 63 |,AREA%,"<AZTEC$c| 00004c80 68 61 69 6e 64 69 72 3e 2e 4f 4e 45 2e 63 6f 6e |haindir>.ONE.con| 00004c90 63 68 5f 63 22 0d 02 84 1c ff 22 43 68 61 6e 6e |ch_c"....."Chann| 00004ca0 65 6c 56 6f 69 63 65 20 31 20 63 6f 6e 63 68 32 |elVoice 1 conch2| 00004cb0 22 0d 02 85 1c ff 22 43 68 61 6e 6e 65 6c 56 6f |"....."ChannelVo| 00004cc0 69 63 65 20 32 20 63 6f 6e 63 68 32 22 0d 02 86 |ice 2 conch2"...| 00004cd0 1c f2 61 64 64 62 6f 78 28 33 31 32 2c 32 36 38 |..addbox(312,268| 00004ce0 2c 39 35 38 2c 39 32 38 29 0d 02 87 32 ef 20 31 |,958,928)...2. 1| 00004cf0 38 2c 30 2c 31 33 34 3a da 3a ef 32 36 3a f2 61 |8,0,134:.:.26:.a| 00004d00 64 64 5f 73 70 28 32 2c 22 63 6f 6e 63 68 6d 61 |dd_sp(2,"conchma| 00004d10 6e 22 2c 38 32 2c 31 31 2c 36 29 0d 02 88 27 f2 |n",82,11,6)...'.| 00004d20 65 78 70 61 6e 64 28 22 73 6d 63 6f 6e 63 68 22 |expand("smconch"| 00004d30 29 3a f2 65 78 70 61 6e 64 28 22 63 6f 6e 63 68 |):.expand("conch| 00004d40 22 29 0d 02 89 5e e3 6b 25 3d 30 b8 63 6f 6e 25 |")...^.k%=0.con%| 00004d50 2d 31 3a f2 70 75 74 5f 73 70 28 32 2c 33 33 32 |-1:.put_sp(2,332| 00004d60 2b 28 6b 25 2a 36 38 29 2c 32 38 38 2c 36 2c 31 |+(k%*68),288,6,1| 00004d70 36 2c 31 36 2c 31 36 2c 22 73 6d 63 6f 6e 63 68 |6,16,16,"smconch| 00004d80 22 2c 6c 65 66 74 25 2c 6c 6f 77 25 2c 72 69 67 |",left%,low%,rig| 00004d90 68 74 25 2c 68 69 67 68 25 2c 26 30 30 29 3a ed |ht%,high%,&00):.| 00004da0 0d 02 8a 23 e7 67 6f 6f 6e 25 3a c8 99 22 4f 53 |...#.goon%:.."OS| 00004db0 5f 42 79 74 65 22 2c 31 31 32 2c 31 3a f2 67 6f |_Byte",112,1:.go| 00004dc0 5f 6f 6e 0d 02 8b 36 43 25 3d 31 3a 44 25 3d 31 |_on...6C%=1:D%=1| 00004dd0 3a 45 25 3d 31 3a 46 25 3d 31 3a f2 65 78 70 6c |:E%=1:F%=1:.expl| 00004de0 6f 64 65 28 36 34 30 2c 36 33 36 2c 30 29 3a f2 |ode(640,636,0):.| 00004df0 73 63 72 63 6f 70 79 32 31 0d 02 8c 65 f2 73 61 |scrcopy21...e.sa| 00004e00 76 65 5f 62 67 72 64 28 31 2c 35 34 30 2c 33 35 |ve_bgrd(1,540,35| 00004e10 36 2c 34 30 30 2c 34 34 30 2c 22 62 67 72 64 22 |6,400,440,"bgrd"| 00004e20 29 3a 74 6f 67 25 3d 31 3a 66 69 72 73 74 74 69 |):tog%=1:firstti| 00004e30 6d 65 25 3d b9 3a 61 6c 6c 64 6f 6e 65 25 3d a3 |me%=.:alldone%=.| 00004e40 3a f5 3a f2 61 6e 69 6d 5f 63 6f 6e 63 68 28 63 |:.:.anim_conch(c| 00004e50 6f 6e 25 29 3a fd 61 6c 6c 64 6f 6e 65 25 0d 02 |on%):.alldone%..| 00004e60 8d 0e f2 73 63 72 63 6f 70 79 32 31 0d 02 8e 27 |...scrcopy21...'| 00004e70 f2 64 65 6c 65 74 65 28 22 63 6f 6e 63 68 6d 61 |.delete("conchma| 00004e80 6e 22 29 3a f2 64 65 6c 65 74 65 28 22 62 67 72 |n"):.delete("bgr| 00004e90 64 22 29 0d 02 8f 29 f2 63 6f 6d 70 61 63 74 28 |d")...).compact(| 00004ea0 22 73 6d 63 6f 6e 63 68 22 29 3a f2 63 6f 6d 70 |"smconch"):.comp| 00004eb0 61 63 74 28 22 63 6f 6e 63 68 22 29 0d 02 90 27 |act("conch")...'| 00004ec0 f2 64 65 6c 65 74 65 28 22 63 6f 6e 63 68 22 29 |.delete("conch")| 00004ed0 3a f2 64 65 6c 65 74 65 28 22 73 6d 63 6f 6e 63 |:.delete("smconc| 00004ee0 68 22 29 0d 02 91 05 e1 0d 02 92 04 0d 02 93 16 |h").............| 00004ef0 dd f2 61 6e 69 6d 5f 63 6f 6e 63 68 28 63 6f 6e |..anim_conch(con| 00004f00 25 29 0d 02 94 2b e7 66 69 72 73 74 74 69 6d 65 |%)...+.firsttime| 00004f10 25 8c 3a 66 69 72 73 74 74 69 6d 65 25 3d a3 3a |%.:firsttime%=.:| 00004f20 6c 61 73 74 74 69 6d 65 25 3d 91 2d 34 0d 02 95 |lasttime%=.-4...| 00004f30 1f c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 31 |... "OS_Byte",11| 00004f40 32 2c 31 2b 28 74 6f 67 25 83 32 29 0d 02 96 30 |2,1+(tog%.2)...0| 00004f50 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |.. "OS_SpriteOp"| 00004f60 2c 26 31 32 32 2c 41 52 45 41 25 2c 22 62 67 72 |,&122,AREA%,"bgr| 00004f70 64 22 2c 35 34 30 2c 33 35 36 2c 30 0d 02 97 ac |d",540,356,0....| 00004f80 e7 74 6f 67 25 3e 32 31 3a f2 70 75 74 5f 73 70 |.tog%>21:.put_sp| 00004f90 28 31 2b 28 74 6f 67 25 83 32 29 2c 35 34 30 2c |(1+(tog%.2),540,| 00004fa0 33 31 36 2c 36 2c 31 36 2c 31 36 2c 31 36 2c 22 |316,6,16,16,16,"| 00004fb0 63 6f 6e 63 68 22 2c 6c 65 66 74 25 2c 33 35 36 |conch",left%,356| 00004fc0 2c 72 69 67 68 74 25 2c 68 69 67 68 25 2c 26 30 |,right%,high%,&0| 00004fd0 30 29 3a 8b 3a f2 70 75 74 5f 73 70 28 31 2b 28 |0):.:.put_sp(1+(| 00004fe0 74 6f 67 25 83 32 29 2c 35 34 30 2c 28 74 6f 67 |tog%.2),540,(tog| 00004ff0 25 2a 32 30 29 2d 31 30 34 2c 36 2c 31 36 2c 31 |%*20)-104,6,16,1| 00005000 36 2c 31 36 2c 22 63 6f 6e 63 68 22 2c 6c 65 66 |6,16,"conch",lef| 00005010 74 25 2c 33 35 36 2c 72 69 67 68 74 25 2c 68 69 |t%,356,right%,hi| 00005020 67 68 25 2c 26 30 30 29 0d 02 98 6f e7 28 74 6f |gh%,&00)...o.(to| 00005030 67 25 3d 33 30 29 84 28 74 6f 67 25 3d 33 31 29 |g%=30).(tog%=31)| 00005040 3a f2 70 75 74 5f 73 70 28 31 2b 28 74 6f 67 25 |:.put_sp(1+(tog%| 00005050 83 32 29 2c 33 33 32 2b 28 63 6f 6e 25 2a 36 38 |.2),332+(con%*68| 00005060 29 2c 32 38 38 2c 36 2c 31 36 2c 31 36 2c 31 36 |),288,6,16,16,16| 00005070 2c 22 73 6d 63 6f 6e 63 68 22 2c 6c 65 66 74 25 |,"smconch",left%| 00005080 2c 6c 6f 77 25 2c 72 69 67 68 74 25 2c 68 69 67 |,low%,right%,hig| 00005090 68 25 2c 26 30 30 29 0d 02 99 16 f5 3a fd 20 91 |h%,&00).....:. .| 000050a0 3e 3d 6c 61 73 74 74 69 6d 65 25 2b 34 0d 02 9a |>=lasttime%+4...| 000050b0 22 c8 96 3a c8 99 20 22 4f 53 5f 42 79 74 65 22 |"..:.. "OS_Byte"| 000050c0 2c 31 31 33 2c 31 2b 28 74 6f 67 25 83 32 29 0d |,113,1+(tog%.2).| 000050d0 02 9b 1d e7 74 6f 67 25 3d 32 33 3a d4 31 2c 26 |....tog%=23:.1,&| 000050e0 31 37 46 2c 26 31 38 30 30 2c 31 30 0d 02 9c 1d |17F,&1800,10....| 000050f0 e7 74 6f 67 25 3d 33 38 3a d4 32 2c 26 31 37 46 |.tog%=38:.2,&17F| 00005100 2c 26 31 38 30 30 2c 31 30 0d 02 9d 2c 74 6f 67 |,&1800,10...,tog| 00005110 25 2b 3d 31 3a 6c 61 73 74 74 69 6d 65 25 3d 91 |%+=1:lasttime%=.| 00005120 3a e7 74 6f 67 25 3e 3d 34 30 3a 61 6c 6c 64 6f |:.tog%>=40:alldo| 00005130 6e 65 25 3d b9 0d 02 9e 05 e1 0d 02 9f 04 0d 02 |ne%=............| 00005140 a0 17 dd f2 73 63 72 6f 6c 6c 64 6f 77 6e 28 41 |....scrolldown(A| 00005150 25 2c 42 25 29 0d 02 a1 0f d6 20 73 63 72 6f 6c |%,B%)..... scrol| 00005160 6c 64 6e 25 0d 02 a2 05 e1 0d 02 a3 04 0d 02 a4 |ldn%............| 00005170 15 dd f2 73 63 72 6f 6c 6c 75 70 28 41 25 2c 42 |...scrollup(A%,B| 00005180 25 29 0d 02 a5 0f d6 20 73 63 72 6f 6c 6c 75 70 |%)..... scrollup| 00005190 25 0d 02 a6 05 e1 0d 02 a7 04 0d 02 a8 12 dd f2 |%...............| 000051a0 63 68 61 69 6e 28 66 69 6c 65 24 29 0d 02 a9 57 |chain(file$)...W| 000051b0 e7 59 25 3d 30 3a 74 65 73 74 25 3d 30 3a f5 3a |.Y%=0:test%=0:.:| 000051c0 f2 66 6c 6f 70 70 79 5f 64 69 73 6b 28 22 41 5a |.floppy_disk("AZ| 000051d0 54 45 43 20 44 45 4d 4f 22 2c 22 24 2e 21 41 7a |TEC DEMO","$.!Az| 000051e0 74 65 63 73 2e 22 2b 66 69 6c 65 24 2c 22 24 2e |tecs."+file$,"$.| 000051f0 21 41 7a 74 65 63 73 22 29 3a fd 65 72 72 6f 72 |!Aztecs"):.error| 00005200 25 3d 30 0d 02 aa 23 66 69 6c 65 24 3d 22 3c 41 |%=0...#file$="<A| 00005210 7a 74 65 63 24 63 68 61 69 6e 64 69 72 3e 2e 22 |ztec$chaindir>."| 00005220 2b 66 69 6c 65 24 0d 02 ab 0a d7 66 69 6c 65 24 |+file$.....file$| 00005230 0d 02 ac 05 fa 0d 02 ad 04 0d 02 ae 0b dd f2 64 |...............d| 00005240 75 6d 6d 79 0d 02 af 21 f4 20 27 63 6f 73 20 6c |ummy...!. 'cos l| 00005250 61 73 74 20 50 52 4f 43 20 67 65 74 73 20 63 68 |ast PROC gets ch| 00005260 6f 70 70 65 64 0d 02 b0 05 e1 0d 02 b1 04 0d 02 |opped...........| 00005270 b2 04 0d 02 b3 04 0d 02 b4 04 0d 02 b5 04 0d 02 |................| 00005280 b6 04 0d 02 b7 04 0d ff |........| 00005288