Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars » StarInfo/Mellor/!BBC1/Unsquished
StarInfo/Mellor/!BBC1/Unsquished
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars |
Filename: | StarInfo/Mellor/!BBC1/Unsquished |
Read OK: | ✔ |
File size: | 31DB bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM BBC1 Balloon 20REM By Philip Mellor 30REM ... "Bother", said Pooh, as his LAN manager went crackers 40: 50SYS "Wimp_Initialise",200,&4B534154,"BBC Balloon" TO ,task% 60ON ERROR SYS "Hourglass_Smash":VDU4,26:REPORT:PRINT" - ";ERL:END 70 80PROCload_sprites 90PROCinit 100PROCget_screen_size 110PROCload_message 120scroll_mess%=FALSE 130scroll_mess$=STRING$(31," ") 140dummy=RND(-TIME) 150menuopen%=FALSE 160random%=TRUE 170bounce%=TRUE 180rotate%=TRUE 190scroll%=TRUE 200speed%=0:pollc%=0 210DIM speed$(4),speedf%(4) 220speed$()="Fastest","Fast","Medium","Slow","Slowest" 230speedf%()=0,10,20,30,40 240wx%=0:wy%=256 250dx%=4:dy%=4 260 270ON ERROR IF FNerror PROCclose:END 280REPEAT 290PROCpoll 300UNTIL quit% 310PROCclose 320: 330END 340: 350DEFPROCload_message 360file=OPENIN("<Balloon$Dir>.Messages") 370scr_len=EXT#file 380DIM message% scr_len+1024 390scr_pos=1 400FOR I=1 TO scr_len 410message%!I=(BGET#file) EOR 255 420NEXT 430CLOSE#file 440scroll_count=1 450PROCset_icon_string(info%,4,"Philip Mellor") 460ENDPROC 470: 480DEFPROCload_sprites 490SYS "Wimp_BaseOfSprites" TO ,wimpsprite% 500 510SYS &2E,256+40,wimpsprite%,"!bbc1" TO ,,,width%,height%,mask%,mode% 520IF mode%=12 THEN mode$="" ELSE mode$="22" 530 540SYS "OS_GetEnv" TO env$ 550IF INSTR(env$,"-load ")>0 THEN 560filename$=RIGHT$(env$,LEN(env$)-INSTR(env$,"-load ")-5) 570ELSE 580filename$="<Balloon$Dir>.Balloons.BBCone" 590ENDIF 600 610dir$=filename$+mode$ 620file%=OPENIN(dir$) 630size%=1024*16 640CLOSE#file% 650DIM sprite% size% 660sprite%!0=size% 670SYS "OS_SpriteOp",256+9,sprite% 680SYS "OS_SpriteOp",256+10,sprite%,dir$ 690 700SYS &2E,&118,sprite%,"mask" TO ,,mask% 710SYS &2E,&118,sprite%,"canvas" TO ,,canvas% 720SYS &2E,&118,sprite%,"balloon" TO ,,balloon% 730 740r0=0:r1=0:r2=0:r3=0 750no_mask%=0:with_mask%=8 760DIM scale% 20 770ENDPROC 780: 790DEFPROCdraw_balloon 800 810PROCswitch_to_sprite(canvas%) 820RECTANGLE 284,0,4,288 TO 0,0 830RECTANGLE 0,0,288,288 TO 2,0 840PROCswitch_off 850 860PROCswitch_to_sprite(mask%) 870FOR Y=0 TO 120 STEP 4 880VDU 24,0;Y+24;116;Y+28; 890w%=SQR(3600-(60-Y)^2) 900PROCscale(canvas%, 60-(w%),0, w%*2,1, 120, 1) 910NEXT 920VDU26 930PROCplot(balloon%,0,0,with_mask%) 940PROCswitch_off 950ENDPROC 960: 970DEF PROCclose 980SYS "Wimp_CloseDown",task%,&4B534154 990ENDPROC 1000: 1010DEF PROCcreateicon 1020!b%=-1:b%!4=0:b%!8=0:b%!12=68:b%!16=68:b%!20=&301A 1030$(b%+24)="!bbc1":SYS "Wimp_CreateIcon",,b% TO iconbaricon% 1040ENDPROC 1050: 1060DEFPROCscroll_mess 1070IF scroll_count=1 THEN 1080scroll_mess$=RIGHT$(scroll_mess$,30)+CHR$(message%!scr_pos) 1090PROCset_icon_string(info%,4,scroll_mess$) 1100scr_pos+=1 1110IF scr_pos>scr_len THEN 1120scroll_mess%=FALSE 1130PROCset_icon_string(info%,4,"Philip Mellor") 1140ENDIF 1150PROCupdate_icon(info%,4) 1160ENDIF 1170scroll_count+=1:IF scroll_count>4 scroll_count=1 ELSE WAIT 1180ENDPROC 1190: 1200DEF PROCpoll 1210IF scroll_mess%=TRUE PROCscroll_mess 1220SYS "Wimp_Poll",,b% TO r% 1230CASE r% OF 1240 WHEN 0:IF scroll_mess%=TRUE THEN 1250 PROCscroll_mess 1260 ELSE 1270 pollc%+=1:IF pollc%>speedf%(speed%) pollc%=0:PROCballoon:scroll%=TRUE 1280 ENDIF 1290 WHEN 2:IF (b%!0)=balloon_win% THEN 1300 scroll%=FALSE 1310 IF b%!8<160 b%!8=160:b%!16=160+144 1320 IF b%!16>Y2 b%!16=Y2:b%!8=Y2-144 1330 IF bounce%=TRUE : IF b%!4<0 b%!4=0:b%!12=160+120:wx%=0 1340 IF bounce%=TRUE : IF b%!12>X2 b%!12=X2:b%!4=X2-120:wx%=X2-120 1350 ENDIF 1360 CASE (b%!0) OF 1370 WHEN shadow%:PROCopen_shadow 1380 WHEN opts%:SYS "Wimp_OpenWindow",,b%:PROCopen_shadow 1390 OTHERWISE: SYS "Wimp_OpenWindow",,b% 1400 ENDCASE 1410 WHEN 3:SYS "Wimp_CloseWindow",,b% 1420 WHEN 4:IF (b%!0)=opts% AND menuopen%=FALSE THEN SYS "Wimp_CloseWindow",,b%:PROCclose_window(shadow%) 1430 WHEN 6:PROCmouseclick 1440 WHEN 9:PROCmenuclick 1450 WHEN 17,18,19:PROCrecieve 1460ENDCASE 1470ENDPROC 1480: 1490DEFPROCballoon 1500IF rotate%=TRUE THEN PROCdraw_balloon 1510 1520!b%=balloon_win% 1530SYS "Wimp_GetWindowState",,b% 1540wx%=b%!4:wy%=b%!8 1550IF scroll%=TRUE THEN wx%+=dx%:wy%+=dy% 1560IF wy%<160 THEN dy%=ABSdy%:REMIF random%=TRUE THEN dx%=FNrandom 1570IF wy%>Y2-144 THEN dy%=-(ABSdy%):REMIF random%=TRUE THEN dx%=FNrandom 1580 1590IF bounce%=TRUE THEN 1600REMIF dx%<0 AND 1610IF wx%<0 THEN dx%=ABS(dx%):REMIF random%=TRUE THEN dy%=FNrandom 1620IF dx%>0 AND wx%>X2-120 THEN dx%=-ABS(dx%):REMIF random%=TRUE THEN dy%=FNrandom 1630ELSE 1640IF dx%<0 AND wx%<-120 THEN wx%=X2+400+RND(200):wy%=RND(Y2-144-192)+192:dx%=-ABS(dx%) 1650IF dx%>0 AND wx%>X2 THEN dx%=ABS(dx%):wx%=-400-RND(200):wy%=RND(Y2-144-192)+192 1660ENDIF 1670 1680IF random%=TRUE THEN 1690IF RND(500)=1 THEN 1700PROCmove(FNrandom, FNrandom) 1710ENDIF 1720ENDIF 1730 1740!b%=balloon_win% 1750b%!4=wx%:b%!8=wy% 1760b%!12=wx%+120:b%!16=wy%+144 1770b%!20=0:b%!24=0 1780b%!28=-2 1790SYS "Wimp_OpenWindow",,b% 1800PROCupdate_icon(balloon_win%,0) 1810ENDPROC 1820: 1830DEF FNrandom 1840LOCAL b 1850CASE RND(3) OF 1860WHEN 1:b=-4 1870WHEN 2:b=0 1880WHEN 3:b=4 1890ENDCASE 1900=b 1910 1920DEF PROCupdate_icon(window%,icon%) 1930b%!0=window% 1940 b%!4=icon% 1950 b%!8=0 1960 b%!12=0 1970 SYS "Wimp_SetIconState",,b% 1980ENDPROC 1990: 2000DEF FNstring_addr(window%,icon%) 2010!chappy%=window% 2020chappy%!4=icon% 2030SYS "Wimp_GetIconState",,chappy% 2040=chappy%!28 2050: 2060DEF FNicon_string(window%,icon%) 2070PROCterm(FNstring_addr(window%,icon%)) 2080=$FNstring_addr(window%,icon%) 2090ENDPROC 2100: 2110DEF PROCset_icon_string(window%,icon%,a$) 2120$FNstring_addr(window%,icon%)=a$ 2130ENDPROC 2140: 2150DEF PROCmouseclick 2160button%=b%!8 2170icon%=b%!16 2180window%=b%!12 2190mx%=b%!0 2200my%=b%!4 2210 2220CASE window% OF 2230 2240 WHEN balloon_win% 2250 CASE button% OF 2260 WHEN 4:!b%=opts% 2270 SYS "Wimp_GetWindowState",,b% 2280 b%!4=mx%-280:b%!12=mx%+280 2290 b%!12=my%-124:b%!16=my%+124 2300 b%!28=-1 2310 SYS "Wimp_OpenWindow",,b% 2320 PROCopen_shadow 2330 WHEN 1:!b%=balloon_win%:b%!4=1:SYS "Wimp_DragBox",,b% 2340 WHEN 2:PROCset_icon_string(info%,4,"Philip Mellor"):PROCshowmenu(mainmenu%,!b%-64,b%!4) 2350 2360 ENDCASE 2370 2380 WHEN info% 2390 CASE icon% OF 2400 WHEN 8:IF scroll_mess%=FALSE THEN 2410 scroll_mess%=TRUE:scroll_count=1:scr_pos=1 2420 scroll_mess$=STRING$(31," ") 2430 ELSE 2440 scroll_mess%=FALSE:PROCset_icon_string(info%,4,"Philip Mellor") 2450 PROCupdate_icon(info%,4) 2460 ENDIF 2470 ENDCASE 2480 2490 WHEN opts% 2500 CASE icon% OF 2510 WHEN 0:!b%=opts%:b%!4=1:SYS "Wimp_DragBox",,b% 2520 WHEN 4:PROCmove(0,4) 2530 WHEN 5:PROCmove(0,-4) 2540 WHEN 6:PROCmove(-4,0) 2550 WHEN 7:PROCmove(4,0) 2560 WHEN 8:PROCmove(-4,4) 2570 WHEN 10:PROCmove(4,4) 2580 WHEN 9:PROCmove(-4,-4) 2590 WHEN 11:PROCmove(4,-4) 2600 WHEN 15:PROCmove(0,0) 2610 WHEN 14:random%=FNicon_state(window%,icon%) 2620 WHEN 2:bounce%=FNicon_state(window%,icon%) 2630 WHEN 16:rotate%=FNicon_state(window%,icon%) 2640 WHEN 17,18:PROCshowmenu(speedmenu%,mx%,my%) 2650 ENDCASE 2660 2670ENDCASE 2680 2690ENDPROC 2700: 2710DEFPROCmove(mx%,my%) 2720dx%=mx%:dy%=my% 2730ENDPROC 2740: 2750DEF FNicon_state(window%,icon%) 2760LOCAL c% 2770c%=b%+900 2780!c%=window% 2790c%!4=icon% 2800SYS "Wimp_GetIconState",,c% 2810=((c%!24) AND (1<<21))<>0 2820: 2830DEF PROCinit 2840DIM b% 2000, ws% 4000, menspc% 4000, chappy% 64 2850wsend%=ws%+4000 2860quit%=FALSE 2870PROCload_templates 2880PROCmain_menu 2890PROCspeed_menu 2900PROCattach(mainmenu%,0,info%) 2910ENDPROC 2920: 2930DEF PROCload_templates 2940SYS "Wimp_OpenTemplate",,"<Balloon$Dir>.Templates" 2950SYS "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"info",0 TO ,,ws% 2960SYS "Wimp_CreateWindow",,b% TO info% 2970SYS "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"opts",0 TO ,,ws% 2980SYS "Wimp_CreateWindow",,b% TO opts% 2990SYS "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"shadow",0 TO ,,ws% 3000SYS "Wimp_CreateWindow",,b% TO shadow% 3010SYS "Wimp_CloseTemplate" 3020 3030b%!0=48:b%!4=160 3040b%!8=48+120:b%!16=160+144 3050b%!16=0:b%!20=0 3060b%!24=-2 3070b%!28=&80000852 3080b%!32=&FF:b%?33=4 3090b%?34=4:b%?35=4 3100b%?36=4:b%?37=4 3110b%?38=4:b%?39=0 3120b%!40=0:b%!44=-144 3130b%!48=120:b%!52=0 3140b%!56=%10000000000000000000000000000000 3150b%!60=6:b%!64=sprite% 3160b%!68=0 3170$(b%+72)="win" 3180b%!84=0 3190SYS "Wimp_CreateWindow",,b% TO balloon_win% 3200 3210b%!0=balloon_win% 3220b%!4=0:b%!8=-144 3230b%!12=120:b%!16=0 3240b%!20=&4000601A 3250$(b%+24)="mask" 3260SYS "Wimp_CreateIcon",,b% TO icon_h% 3270ENDPROC 3280: 3290DEF PROCattach(menu%,item%,sub%) 3300!(menu%+28+item%*24+4)=sub% 3310ENDPROC 3320: 3330DEF PROCmain_menu 3340RESTORE +1 3350DATA Balloon,Info,Quit,* 3360mainmenu%=FNmake_menu 3370ENDPROC 3380 3390DEFPROCspeed_menu 3400RESTORE +1 3410DATA "Speed","Fastest","Fast","Medium","Slow","Slowest",* 3420speedmenu%=FNmake_menu 3430ENDPROC 3440 3450: 3460DEF FNmake_menu 3470start%=menspc% 3480READ title$ 3490$(start%)=title$ 3500start%?12=7 3510start%?13=2 3520start%?14=7 3530start%?15=0 3540start%!20=44 3550start%!24=0 3560REM start%!16=160 3570width%=LEN(title$)-3 3580menspc%+=28 3590REPEAT 3600READ item$ 3610IF item$<>"*" THEN 3620!menspc%=0 3630writeable%=FALSE 3640ul%=INSTR(item$,"_") 3650IF ul% THEN 3660tail$=RIGHT$(item$,LEN(item$)-ul%) 3670IF INSTR(tail$,"T") !menspc%=!menspc% OR 1:REM tick 3680IF INSTR(tail$,"D") !menspc%=!menspc% OR 2:REM dotted line 3690IF INSTR(tail$,"W") !menspc%=!menspc% OR 4:writeable%=TRUE:READ buffer%:READ buflen%:REM writable icon 3700IF INSTR(tail$,"M") !menspc%=!menspc% OR 8:REM generate message 3710item$=LEFT$(item$,ul%-1) 3720ENDIF 3730IF LEN item$>width% width%=LEN item$ 3740menspc%!4=-1 3750IF writeable% THEN 3760menspc%!8=&0700F121:menspc%!12=buffer%:menspc%!16=-1:menspc%!20=buflen%:$buffer%=item$ 3770ELSE 3780IF LEN item$<12 THEN 3790menspc%!8=&07000021:$(menspc%+12)=item$ 3800ELSE 3810menspc%!8=&07000121:menspc%!12=ws%:menspc%!16=-1:menspc%!20=LEN item$+1 3820$ws%=item$:ws%+=LEN item$+1 3830ENDIF 3840ENDIF 3850menspc%+=24 3860ENDIF 3870UNTIL item$="*" 3880start%!16=width%*16+32 3890!(menspc%-24)=!(menspc%-24) OR &80 3900mptr%=menspc% 3910=start% 3920: 3930DEF PROCshowmenu(menu%,x%,y%) 3940topmenu%=menu%:topx%=x%:topy%=y% 3950SYS "Wimp_CreateMenu",,menu%,x%,y% 3960menuopen%=TRUE 3970ENDPROC 3980: 3990DEF PROCmenuclick 4000LOCAL c% 4010c%=b%+900 4020SYS "Wimp_GetPointerInfo",,c% 4030adj%=(c%!8 AND 1) 4040SYS "Wimp_DecodeMenu",,topmenu%,b%,c% 4050oldspeed%=speed% 4060CASE $c% OF 4070WHEN "Quit":quit%=TRUE 4080WHEN "Fastest":speed%=0 4090WHEN "Fast":speed%=1 4100WHEN "Medium":speed%=2 4110WHEN "Slow":speed%=3 4120WHEN "Slowest":speed%=4 4130ENDCASE 4140IF speed%<>oldspeed% PROCset_icon_string(opts%,17,speed$(speed%)):PROCupdate_icon(opts%,17) 4150menuopen%=FALSE 4160IF adj% PROCshowmenu(topmenu%,topx%,topy%) 4170ENDPROC 4180: 4190DEF PROCrecieve 4200CASE b%!16 OF 4210 WHEN 0:quit%=TRUE 4220 WHEN &400C1:PROCget_screen_size 4230 WHEN &400C9:menuopen%=FALSE:scroll_mess%=FALSE 4240 WHEN &502:PROChelpme 4250ENDCASE 4260ENDPROC 4270: 4280DEF PROCterm(a%) 4290LOCAL n% 4300WHILE a%?n%>31 4310n%+=1 4320ENDWHILE 4330a%?n%=13 4340ENDPROC 4350: 4360DEF FNerror 4370!b%=ERR 4380CASE !b% OF 4390WHEN 1<<30:err_str$="":box%=1 4400OTHERWISE:err_str$="(internal code "+STR$ERL+")":box%=2 4410ENDCASE 4420$(b%+4)=REPORT$+err_str$+CHR$0 4430SYS "Wimp_ReportError",b%,box%,"The BBC Balloon" TO ,response% 4440=(response%=2) 4450: 4460DEFPROCclose_window(win%) 4470!b%=win% 4480SYS "Wimp_GetWindowState",,b% 4490SYS "Wimp_CloseWindow",,b% 4500ENDPROC 4510: 4520DEFPROCopen_window(win%) 4530!b%=win% 4540SYS "Wimp_GetWindowState",,b% 4550SYS "Wimp_OpenWindow",,b% 4560ENDPROC 4570: 4580DEFPROCopen_shadow 4590!b%=opts% 4600SYS "Wimp_GetWindowState",,b% 4610!b%=shadow% 4620b%!4=(b%!4)+12 4630b%!8=(b%!8)-12 4640b%!12=(b%!12)+12 4650b%!16=(b%!16)-12 4660b%!28=opts% 4670SYS "Wimp_OpenWindow",,b% 4680ENDPROC 4690 4700DEFPROCplot(sprite_spr%, x%, y%, plot_action%) 4710SYS &2E,512+34,sprite%,sprite_spr%,x%,y%,plot_action% 4720ENDPROC 4730 4740DEFPROCscale(sprite_spr%,x%,y%,x1%,y1%,x2%,y2%) 4750!scale%=x1% 4760!(scale%+4)=y1% 4770!(scale%+8)=x2% 4780!(scale%+12)=y2% 4790SYS &2E,512+52,sprite%,sprite_spr%,x%,y%,0,scale%,0 4800ENDPROC 4810: 4820DEFPROCget_screen_size 4830SYS"OS_ReadModeVariable",-1,4 TO ,,Xfact% 4840SYS"OS_ReadModeVariable",-1,5 TO ,,Yfact% 4850SYS"OS_ReadModeVariable",-1,11 TO ,,XLim% 4860SYS"OS_ReadModeVariable",-1,12 TO ,,YLim% 4870X2=XLim%<<Xfact% 4880Y2=YLim%<<Yfact% 4890ENDPROC 4900: 4910 4920DEFPROCswitch_to_sprite(sprite_spr%) 4930SYS &2E,&23C,sprite%,sprite_spr%,0 TO r0,r1,r2,r3 4940OFF 4950ENDPROC 4960 4970DEFPROCswitch_to_mask(mask_spr%) 4980SYS &2E,&23D,sprite%,mask_spr%,0 TO r0,r1,r2,r3 4990OFF 5000ENDPROC 5010 5020DEFPROCswitch_off 5030SYS &2E,&23C,r1,r2,r3 TO r0,r1,r2,r3 5040OFF 5050ENDPROC 5060: 5070DEFPROChelpme 5080window%=b%!32 5090icon%=b%!36 5100help$="You're watching BBC 1." 5110 5120CASE window% OF 5130 5140 WHEN info% 5150 help$="This shows information about the program." 5160 CASE icon% OF 5170 WHEN 0,1:help$="This is the name of the program." 5180 WHEN 2,3:help$="This is the purpose of the program." 5190 WHEN 4,5:help$="This is the author of the program." 5200 IF scroll_mess%=TRUE THEN help$="Hmmm. This looks like a scrolling message.|M"+scroll_mess$ 5210 WHEN 6,7:help$="This is the version number of the program." 5220 WHEN 8:help$="Hmmm. I wonder what happens if I click this.... ?" 5230 ENDCASE 5240 5250 WHEN balloon_win% 5260 help$="You're watching BBC 1.|MClick SELECT to open the control panel.|MDrag ADJUST to move the balloon.|MClick MENU for the main menu." 5270 5280 WHEN opts% 5290 help$="This is the balloon control panel." 5300 CASE icon% OF 5310 WHEN 0:help$+="|MDrag SELECT or ADJUST to move." 5320 WHEN 0:help$+="|M" 5330 WHEN 2:help$+="|MWhen selected, the balloon can bounce off the left and right edges of the screen. When unselected, the balloon can drift off one edge of the screen to the other." 5340 WHEN 14:help$+="|MWhen selected, the balloon can change direction from time to time. When unselected, it won't." 5350 WHEN 16:help$+="|MWhen selected, the balloon rotates - it can slow the desktop down slightly so you may wish to turn this option off." 5360 WHEN 17:help$+="|MThis shows the speed of the program. You can change it by clicking SELECT." 5370 WHEN 18:help$+="|MClick SELECT to change the speed of the program." 5380 WHEN 15:help$+="|MClick SELECT to stop the balloon from moving." 5390 WHEN 4,5,6,7,8,9,10,11:help$+="|MClick SELECT to move the balloon in this direction." 5400 ENDCASE 5410 5420ENDCASE 5430: 5440b%!00 = 256 5450b%!12 = b%!8 5460b%!16 = &0503 5470$(b%+20)= help$ 5480SYS "Wimp_SendMessage",17,b%,b%!4 5490ENDPROC
� BBC1 Balloon � By Philip Mellor ?� ... "Bother", said Pooh, as his LAN manager went crackers (: 2=ș "Wimp_Initialise",200,&4B534154,"BBC Balloon" � ,task% </� � ș "Hourglass_Smash":�4,26:�:�" - ";�:� F P�load_sprites Z �init d�get_screen_size n�load_message xscroll_mess%=� �scroll_mess$=�31," ") �dummy=�(-�) �menuopen%=� � random%=� � bounce%=� � rotate%=� � scroll%=� �speed%=0:pollc%=0 �� speed$(4),speedf%(4) �7speed$()="Fastest","Fast","Medium","Slow","Slowest" �speedf%()=0,10,20,30,40 �wx%=0:wy%=256 �dx%=4:dy%=4 � � � �error �close:� � " �poll ,� quit% 6 �close @: J� T: ^��load_message h$file=�("<Balloon$Dir>.Messages") rscr_len=�#file |� message% scr_len+1024 � scr_pos=1 �� I=1 � scr_len �message%!I=(�#file) � 255 �� � �#file �scroll_count=1 �-�set_icon_string(info%,4,"Philip Mellor") �� �: ���load_sprites �*ș "Wimp_BaseOfSprites" � ,wimpsprite% � �Eș &2E,256+40,wimpsprite%,"!bbc1" � ,,,width%,height%,mask%,mode% &� mode%=12 � mode$="" � mode$="22" ș "OS_GetEnv" � env$ &� �env$,"-load ")>0 � 0.filename$=�env$,�(env$)-�env$,"-load ")-5) :� D-filename$="<Balloon$Dir>.Balloons.BBCone" N� X bdir$=filename$+mode$ lfile%=�(dir$) vsize%=1024*16 ��#file% �� sprite% size% �sprite%!0=size% �"ș "OS_SpriteOp",256+9,sprite% �(ș "OS_SpriteOp",256+10,sprite%,dir$ � �+ș &2E,&118,sprite%,"mask" � ,,mask% �-ș &2E,&118,sprite%,"canvas" � ,,canvas% �.ș &2E,&118,sprite%,"balloon" � ,,balloon% � �r0=0:r1=0:r2=0:r3=0 �no_mask%=0:with_mask%=8 �� scale% 20 � : ��draw_balloon *�switch_to_sprite(canvas%) 4ȓ 284,0,4,288 � 0,0 >ȓ 0,0,288,288 � 2,0 H�switch_off R \�switch_to_sprite(mask%) f� Y=0 � 120 � 4 p� 24,0;Y+24;116;Y+28; zw%=�(3600-(60-Y)^2) �/�scale(canvas%, 60-(w%),0, w%*2,1, 120, 1) �� ��26 �"�plot(balloon%,0,0,with_mask%) ��switch_off �� �: �� �close �'ș "Wimp_CloseDown",task%,&4B534154 �� �: �� �createicon �6!b%=-1:b%!4=0:b%!8=0:b%!12=68:b%!16=68:b%!20=&301A <$(b%+24)="!bbc1":ș "Wimp_CreateIcon",,b% � iconbaricon% � : $��scroll_mess .� scroll_count=1 � 86scroll_mess$=�scroll_mess$,30)+�(message%!scr_pos) B*�set_icon_string(info%,4,scroll_mess$) Lscr_pos+=1 V� scr_pos>scr_len � `scroll_mess%=� j-�set_icon_string(info%,4,"Philip Mellor") t� ~�update_icon(info%,4) �� �8scroll_count+=1:� scroll_count>4 scroll_count=1 � Ȗ �� �: �� �poll �!� scroll_mess%=� �scroll_mess �ș "Wimp_Poll",,b% � r% �Ȏ r% � � � 0:� scroll_mess%=� � � �scroll_mess � � �K pollc%+=1:� pollc%>speedf%(speed%) pollc%=0:�balloon:scroll%=� � � 2:� (b%!0)=balloon_win% � scroll%=� - � b%!8<160 b%!8=160:b%!16=160+144 (+ � b%!16>Y2 b%!16=Y2:b%!8=Y2-144 2= � bounce%=� : � b%!4<0 b%!4=0:b%!12=160+120:wx%=0 <D � bounce%=� : � b%!12>X2 b%!12=X2:b%!4=X2-120:wx%=X2-120 F � P Ȏ (b%!0) � Z# � shadow%:�open_shadow d: � opts%:ș "Wimp_OpenWindow",,b%:�open_shadow n' : ș "Wimp_OpenWindow",,b% x � �" � 3:ș "Wimp_CloseWindow",,b% �X � 4:� (b%!0)=opts% � menuopen%=� � ș "Wimp_CloseWindow",,b%:�close_window(shadow%) � � 6:�mouseclick � � 9:�menuclick � � 17,18,19:�recieve �� �� �: � ��balloon �� rotate%=� � �draw_balloon � �!b%=balloon_win% � ș "Wimp_GetWindowState",,b% wx%=b%!4:wy%=b%!8 #� scroll%=� � wx%+=dx%:wy%+=dy% ;� wy%<160 � dy%=�dy%:�IF random%=TRUE THEN dx%=FNrandom "A� wy%>Y2-144 � dy%=-(�dy%):�IF random%=TRUE THEN dx%=FNrandom , 6� bounce%=� � @�IF dx%<0 AND J;� wx%<0 � dx%=�(dx%):�IF random%=TRUE THEN dy%=FNrandom TI� dx%>0 � wx%>X2-120 � dx%=-�(dx%):�IF random%=TRUE THEN dy%=FNrandom ^� hL� dx%<0 � wx%<-120 � wx%=X2+400+�(200):wy%=�(Y2-144-192)+192:dx%=-�(dx%) rG� dx%>0 � wx%>X2 � dx%=�(dx%):wx%=-400-�(200):wy%=�(Y2-144-192)+192 |� � �� random%=� � �� �(500)=1 � ��move(�random, �random) �� �� � �!b%=balloon_win% �b%!4=wx%:b%!8=wy% �b%!12=wx%+120:b%!16=wy%+144 �b%!20=0:b%!24=0 �b%!28=-2 �ș "Wimp_OpenWindow",,b% �update_icon(balloon_win%,0) � : & � �random 0� b : Ȏ �(3) � D� 1:b=-4 N� 2:b=0 X� 3:b=4 b� l=b v �!� �update_icon(window%,icon%) �b%!0=window% � b%!4=icon% � b%!8=0 � b%!12=0 �! ș "Wimp_SetIconState",,b% �� �: �!� �string_addr(window%,icon%) �!chappy%=window% �chappy%!4=icon% �#ș "Wimp_GetIconState",,chappy% �=chappy%!28 : !� �icon_string(window%,icon%) &�term(�string_addr(window%,icon%)) !=$�string_addr(window%,icon%) *� 4: >(� �set_icon_string(window%,icon%,a$) H#$�string_addr(window%,icon%)=a$ R� \: f� �mouseclick pbutton%=b%!8 zicon%=b%!16 �window%=b%!12 �mx%=b%!0 �my%=b%!4 � �Ȏ window% � � � � balloon_win% � Ȏ button% � � � 4:!b%=opts% �# ș "Wimp_GetWindowState",,b% �! b%!4=mx%-280:b%!12=mx%+280 �" b%!12=my%-124:b%!16=my%+124 � b%!28=-1 ș "Wimp_OpenWindow",,b% �open_shadow 8 � 1:!b%=balloon_win%:b%!4=1:ș "Wimp_DragBox",,b% $U � 2:�set_icon_string(info%,4,"Philip Mellor"):�showmenu(mainmenu%,!b%-64,b%!4) . 8 � B L � info% V Ȏ icon% � ` � 8:� scroll_mess%=� � j6 scroll_mess%=�:scroll_count=1:scr_pos=1 t$ scroll_mess$=�31," ") ~ � �G scroll_mess%=�:�set_icon_string(info%,4,"Philip Mellor") �$ �update_icon(info%,4) � � � � � � � opts% � Ȏ icon% � �1 � 0:!b%=opts%:b%!4=1:ș "Wimp_DragBox",,b% � � 4:�move(0,4) � � 5:�move(0,-4) � � 6:�move(-4,0) � � 7:�move(4,0) � 8:�move(-4,4) � 10:�move(4,4) � 9:�move(-4,-4) � 11:�move(4,-4) ( � 15:�move(0,0) 2. � 14:random%=�icon_state(window%,icon%) <. � 2:bounce%=�icon_state(window%,icon%) F. � 16:rotate%=�icon_state(window%,icon%) P, � 17,18:�showmenu(speedmenu%,mx%,my%) Z � d n� x �� �: ���move(mx%,my%) �dx%=mx%:dy%=my% �� �: � � �icon_state(window%,icon%) �� c% � c%=b%+900 �!c%=window% �c%!4=icon% �ș "Wimp_GetIconState",,c% �=((c%!24) � (1<<21))<>0 : � �init 1� b% 2000, ws% 4000, menspc% 4000, chappy% 64 "wsend%=ws%+4000 ,quit%=� 6�load_templates @�main_menu J�speed_menu T�attach(mainmenu%,0,info%) ^� h: r� �load_templates |5ș "Wimp_OpenTemplate",,"<Balloon$Dir>.Templates" �=ș "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"info",0 � ,,ws% �&ș "Wimp_CreateWindow",,b% � info% �=ș "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"opts",0 � ,,ws% �&ș "Wimp_CreateWindow",,b% � opts% �?ș "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"shadow",0 � ,,ws% �(ș "Wimp_CreateWindow",,b% � shadow% �ș "Wimp_CloseTemplate" � �b%!0=48:b%!4=160 �b%!8=48+120:b%!16=160+144 �b%!16=0:b%!20=0 �b%!24=-2 �b%!28=&80000852 b%!32=&FF:b%?33=4 b%?34=4:b%?35=4 b%?36=4:b%?37=4 &b%?38=4:b%?39=0 0b%!40=0:b%!44=-144 :b%!48=120:b%!52=0 D+b%!56=%10000000000000000000000000000000 Nb%!60=6:b%!64=sprite% Xb%!68=0 b$(b%+72)="win" lb%!84=0 v-ș "Wimp_CreateWindow",,b% � balloon_win% � �b%!0=balloon_win% �b%!4=0:b%!8=-144 �b%!12=120:b%!16=0 �b%!20=&4000601A �$(b%+24)="mask" �&ș "Wimp_CreateIcon",,b% � icon_h% �� �: �� �attach(menu%,item%,sub%) �!(menu%+28+item%*24+4)=sub% �� �: � �main_menu � +1 � Balloon,Info,Quit,* mainmenu%=�make_menu *� 4 >��speed_menu H� +1 R:� "Speed","Fastest","Fast","Medium","Slow","Slowest",* \speedmenu%=�make_menu f� p z: �� �make_menu �start%=menspc% �� title$ �$(start%)=title$ �start%?12=7 �start%?13=2 �start%?14=7 �start%?15=0 �start%!20=44 �start%!24=0 �� start%!16=160 �width%=�(title$)-3 �menspc%+=28 � � item$ � item$<>"*" � $!menspc%=0 .writeable%=� 8ul%=�item$,"_") B� ul% � Ltail$=�item$,�(item$)-ul%) V.� �tail$,"T") !menspc%=!menspc% � 1:� tick `5� �tail$,"D") !menspc%=!menspc% � 2:� dotted line jX� �tail$,"W") !menspc%=!menspc% � 4:writeable%=�:� buffer%:� buflen%:� writable icon t:� �tail$,"M") !menspc%=!menspc% � 8:� generate message ~item$=�item$,ul%-1) �� �#� � item$>width% width%=� item$ �menspc%!4=-1 �� writeable% � �Zmenspc%!8=&0700F121:menspc%!12=buffer%:menspc%!16=-1:menspc%!20=buflen%:$buffer%=item$ �� �� � item$<12 � �+menspc%!8=&07000021:$(menspc%+12)=item$ �� �Imenspc%!8=&07000121:menspc%!12=ws%:menspc%!16=-1:menspc%!20=� item$+1 �$ws%=item$:ws%+=� item$+1 �� � menspc%+=24 � � item$="*" (start%!16=width%*16+32 2%!(menspc%-24)=!(menspc%-24) � &80 <mptr%=menspc% F=start% P: Z� �showmenu(menu%,x%,y%) d$topmenu%=menu%:topx%=x%:topy%=y% n%ș "Wimp_CreateMenu",,menu%,x%,y% xmenuopen%=� �� �: �� �menuclick �� c% � c%=b%+900 � ș "Wimp_GetPointerInfo",,c% �adj%=(c%!8 � 1) �(ș "Wimp_DecodeMenu",,topmenu%,b%,c% �oldspeed%=speed% �Ȏ $c% � �� "Quit":quit%=� �� "Fastest":speed%=0 �� "Fast":speed%=1 � "Medium":speed%=2 � "Slow":speed%=3 � "Slowest":speed%=4 "� ,X� speed%<>oldspeed% �set_icon_string(opts%,17,speed$(speed%)):�update_icon(opts%,17) 6menuopen%=� @*� adj% �showmenu(topmenu%,topx%,topy%) J� T: ^� �recieve hȎ b%!16 � r � 0:quit%=� | � &400C1:�get_screen_size �( � &400C9:menuopen%=�:scroll_mess%=� � � &502:�helpme �� �� �: �� �term(a%) �� n% �ȕ a%?n%>31 � n%+=1 �� �a%?n%=13 �� �: � �error !b%=� Ȏ !b% � &� 1<<30:err_str$="":box%=1 0.:err_str$="(internal code "+Þ+")":box%=2 :� D$(b%+4)=�$+err_str$+�0 N@ș "Wimp_ReportError",b%,box%,"The BBC Balloon" � ,response% X=(response%=2) b: l��close_window(win%) v!b%=win% � ș "Wimp_GetWindowState",,b% �ș "Wimp_CloseWindow",,b% �� �: ���open_window(win%) �!b%=win% � ș "Wimp_GetWindowState",,b% �ș "Wimp_OpenWindow",,b% �� �: ���open_shadow � !b%=opts% � ș "Wimp_GetWindowState",,b% !b%=shadow% b%!4=(b%!4)+12 b%!8=(b%!8)-12 b%!12=(b%!12)+12 *b%!16=(b%!16)-12 4b%!28=opts% >ș "Wimp_OpenWindow",,b% H� R \-��plot(sprite_spr%, x%, y%, plot_action%) f8ș &2E,512+34,sprite%,sprite_spr%,x%,y%,plot_action% p� z �.��scale(sprite_spr%,x%,y%,x1%,y1%,x2%,y2%) �!scale%=x1% �!(scale%+4)=y1% �!(scale%+8)=x2% �!(scale%+12)=y2% �6ș &2E,512+52,sprite%,sprite_spr%,x%,y%,0,scale%,0 �� �: ���get_screen_size �+ș"OS_ReadModeVariable",-1,4 � ,,Xfact% �+ș"OS_ReadModeVariable",-1,5 � ,,Yfact% �+ș"OS_ReadModeVariable",-1,11 � ,,XLim% �+ș"OS_ReadModeVariable",-1,12 � ,,YLim% X2=XLim%<<Xfact% Y2=YLim%<<Yfact% � $: . 8#��switch_to_sprite(sprite_spr%) B3ș &2E,&23C,sprite%,sprite_spr%,0 � r0,r1,r2,r3 L� V� ` j��switch_to_mask(mask_spr%) t1ș &2E,&23D,sprite%,mask_spr%,0 � r0,r1,r2,r3 ~� �� � ���switch_off �&ș &2E,&23C,r1,r2,r3 � r0,r1,r2,r3 �� �� �: ���helpme �window%=b%!32 �icon%=b%!36 �"help$="You're watching BBC 1." � Ȏ window% � � info% 7 help$="This shows information about the program." ( Ȏ icon% � 25 � 0,1:help$="This is the name of the program." <8 � 2,3:help$="This is the purpose of the program." F7 � 4,5:help$="This is the author of the program." Pd � scroll_mess%=� � help$="Hmmm. This looks like a scrolling message.|M"+scroll_mess$ Z? � 6,7:help$="This is the version number of the program." dD � 8:help$="Hmmm. I wonder what happens if I click this.... ?" n � x � � balloon_win% �� help$="You're watching BBC 1.|MClick SELECT to open the control panel.|MDrag ADJUST to move the balloon.|MClick MENU for the main menu." � � � opts% �0 help$="This is the balloon control panel." � Ȏ icon% � �4 � 0:help$+="|MDrag SELECT or ADJUST to move." � � 0:help$+="|M" ҷ � 2:help$+="|MWhen selected, the balloon can bounce off the left and right edges of the screen. When unselected, the balloon can drift off one edge of the screen to the other." �t � 14:help$+="|MWhen selected, the balloon can change direction from time to time. When unselected, it won't." � � 16:help$+="|MWhen selected, the balloon rotates - it can slow the desktop down slightly so you may wish to turn this option off." �a � 17:help$+="|MThis shows the speed of the program. You can change it by clicking SELECT." �G � 18:help$+="|MClick SELECT to change the speed of the program." D � 15:help$+="|MClick SELECT to stop the balloon from moving." Y � 4,5,6,7,8,9,10,11:help$+="|MClick SELECT to move the balloon in this direction." � " ,� 6: @b%!00 = 256 Jb%!12 = b%!8 Tb%!16 = &0503 ^$(b%+20)= help$ h$ș "Wimp_SendMessage",17,b%,b%!4 r� �
00000000 0d 00 0a 12 f4 20 42 42 43 31 20 42 61 6c 6c 6f |..... BBC1 Ballo| 00000010 6f 6e 0d 00 14 16 f4 20 42 79 20 50 68 69 6c 69 |on..... By Phili| 00000020 70 20 4d 65 6c 6c 6f 72 0d 00 1e 3f f4 20 2e 2e |p Mellor...?. ..| 00000030 2e 20 22 42 6f 74 68 65 72 22 2c 20 73 61 69 64 |. "Bother", said| 00000040 20 50 6f 6f 68 2c 20 61 73 20 68 69 73 20 4c 41 | Pooh, as his LA| 00000050 4e 20 6d 61 6e 61 67 65 72 20 77 65 6e 74 20 63 |N manager went c| 00000060 72 61 63 6b 65 72 73 0d 00 28 05 3a 0d 00 32 3d |rackers..(.:..2=| 00000070 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c |.. "Wimp_Initial| 00000080 69 73 65 22 2c 32 30 30 2c 26 34 42 35 33 34 31 |ise",200,&4B5341| 00000090 35 34 2c 22 42 42 43 20 42 61 6c 6c 6f 6f 6e 22 |54,"BBC Balloon"| 000000a0 20 b8 20 2c 74 61 73 6b 25 0d 00 3c 2f ee 20 85 | . ,task%..</. .| 000000b0 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 53 | .. "Hourglass_S| 000000c0 6d 61 73 68 22 3a ef 34 2c 32 36 3a f6 3a f1 22 |mash":.4,26:.:."| 000000d0 20 2d 20 22 3b 9e 3a e0 0d 00 46 04 0d 00 50 11 | - ";.:...F...P.| 000000e0 f2 6c 6f 61 64 5f 73 70 72 69 74 65 73 0d 00 5a |.load_sprites..Z| 000000f0 09 f2 69 6e 69 74 0d 00 64 14 f2 67 65 74 5f 73 |..init..d..get_s| 00000100 63 72 65 65 6e 5f 73 69 7a 65 0d 00 6e 11 f2 6c |creen_size..n..l| 00000110 6f 61 64 5f 6d 65 73 73 61 67 65 0d 00 78 12 73 |oad_message..x.s| 00000120 63 72 6f 6c 6c 5f 6d 65 73 73 25 3d a3 0d 00 82 |croll_mess%=....| 00000130 19 73 63 72 6f 6c 6c 5f 6d 65 73 73 24 3d c4 33 |.scroll_mess$=.3| 00000140 31 2c 22 20 22 29 0d 00 8c 0f 64 75 6d 6d 79 3d |1," ")....dummy=| 00000150 b3 28 2d 91 29 0d 00 96 0f 6d 65 6e 75 6f 70 65 |.(-.)....menuope| 00000160 6e 25 3d a3 0d 00 a0 0d 72 61 6e 64 6f 6d 25 3d |n%=.....random%=| 00000170 b9 0d 00 aa 0d 62 6f 75 6e 63 65 25 3d b9 0d 00 |.....bounce%=...| 00000180 b4 0d 72 6f 74 61 74 65 25 3d b9 0d 00 be 0d 73 |..rotate%=.....s| 00000190 63 72 6f 6c 6c 25 3d b9 0d 00 c8 15 73 70 65 65 |croll%=.....spee| 000001a0 64 25 3d 30 3a 70 6f 6c 6c 63 25 3d 30 0d 00 d2 |d%=0:pollc%=0...| 000001b0 1a de 20 73 70 65 65 64 24 28 34 29 2c 73 70 65 |.. speed$(4),spe| 000001c0 65 64 66 25 28 34 29 0d 00 dc 37 73 70 65 65 64 |edf%(4)...7speed| 000001d0 24 28 29 3d 22 46 61 73 74 65 73 74 22 2c 22 46 |$()="Fastest","F| 000001e0 61 73 74 22 2c 22 4d 65 64 69 75 6d 22 2c 22 53 |ast","Medium","S| 000001f0 6c 6f 77 22 2c 22 53 6c 6f 77 65 73 74 22 0d 00 |low","Slowest"..| 00000200 e6 1b 73 70 65 65 64 66 25 28 29 3d 30 2c 31 30 |..speedf%()=0,10| 00000210 2c 32 30 2c 33 30 2c 34 30 0d 00 f0 11 77 78 25 |,20,30,40....wx%| 00000220 3d 30 3a 77 79 25 3d 32 35 36 0d 00 fa 0f 64 78 |=0:wy%=256....dx| 00000230 25 3d 34 3a 64 79 25 3d 34 0d 01 04 04 0d 01 0e |%=4:dy%=4.......| 00000240 19 ee 20 85 20 e7 20 a4 65 72 72 6f 72 20 f2 63 |.. . . .error .c| 00000250 6c 6f 73 65 3a e0 0d 01 18 05 f5 0d 01 22 09 f2 |lose:........"..| 00000260 70 6f 6c 6c 0d 01 2c 0b fd 20 71 75 69 74 25 0d |poll..,.. quit%.| 00000270 01 36 0a f2 63 6c 6f 73 65 0d 01 40 05 3a 0d 01 |.6..close..@.:..| 00000280 4a 05 e0 0d 01 54 05 3a 0d 01 5e 12 dd f2 6c 6f |J....T.:..^...lo| 00000290 61 64 5f 6d 65 73 73 61 67 65 0d 01 68 24 66 69 |ad_message..h$fi| 000002a0 6c 65 3d 8e 28 22 3c 42 61 6c 6c 6f 6f 6e 24 44 |le=.("<Balloon$D| 000002b0 69 72 3e 2e 4d 65 73 73 61 67 65 73 22 29 0d 01 |ir>.Messages")..| 000002c0 72 12 73 63 72 5f 6c 65 6e 3d a2 23 66 69 6c 65 |r.scr_len=.#file| 000002d0 0d 01 7c 1b de 20 6d 65 73 73 61 67 65 25 20 73 |..|.. message% s| 000002e0 63 72 5f 6c 65 6e 2b 31 30 32 34 0d 01 86 0d 73 |cr_len+1024....s| 000002f0 63 72 5f 70 6f 73 3d 31 0d 01 90 13 e3 20 49 3d |cr_pos=1..... I=| 00000300 31 20 b8 20 73 63 72 5f 6c 65 6e 0d 01 9a 1d 6d |1 . scr_len....m| 00000310 65 73 73 61 67 65 25 21 49 3d 28 9a 23 66 69 6c |essage%!I=(.#fil| 00000320 65 29 20 82 20 32 35 35 0d 01 a4 05 ed 0d 01 ae |e) . 255........| 00000330 0a d9 23 66 69 6c 65 0d 01 b8 12 73 63 72 6f 6c |..#file....scrol| 00000340 6c 5f 63 6f 75 6e 74 3d 31 0d 01 c2 2d f2 73 65 |l_count=1...-.se| 00000350 74 5f 69 63 6f 6e 5f 73 74 72 69 6e 67 28 69 6e |t_icon_string(in| 00000360 66 6f 25 2c 34 2c 22 50 68 69 6c 69 70 20 4d 65 |fo%,4,"Philip Me| 00000370 6c 6c 6f 72 22 29 0d 01 cc 05 e1 0d 01 d6 05 3a |llor").........:| 00000380 0d 01 e0 12 dd f2 6c 6f 61 64 5f 73 70 72 69 74 |......load_sprit| 00000390 65 73 0d 01 ea 2a c8 99 20 22 57 69 6d 70 5f 42 |es...*.. "Wimp_B| 000003a0 61 73 65 4f 66 53 70 72 69 74 65 73 22 20 b8 20 |aseOfSprites" . | 000003b0 2c 77 69 6d 70 73 70 72 69 74 65 25 0d 01 f4 04 |,wimpsprite%....| 000003c0 0d 01 fe 45 c8 99 20 26 32 45 2c 32 35 36 2b 34 |...E.. &2E,256+4| 000003d0 30 2c 77 69 6d 70 73 70 72 69 74 65 25 2c 22 21 |0,wimpsprite%,"!| 000003e0 62 62 63 31 22 20 b8 20 2c 2c 2c 77 69 64 74 68 |bbc1" . ,,,width| 000003f0 25 2c 68 65 69 67 68 74 25 2c 6d 61 73 6b 25 2c |%,height%,mask%,| 00000400 6d 6f 64 65 25 0d 02 08 26 e7 20 6d 6f 64 65 25 |mode%...&. mode%| 00000410 3d 31 32 20 8c 20 6d 6f 64 65 24 3d 22 22 20 8b |=12 . mode$="" .| 00000420 20 6d 6f 64 65 24 3d 22 32 32 22 0d 02 12 04 0d | mode$="22".....| 00000430 02 1c 19 c8 99 20 22 4f 53 5f 47 65 74 45 6e 76 |..... "OS_GetEnv| 00000440 22 20 b8 20 65 6e 76 24 0d 02 26 19 e7 20 a7 65 |" . env$..&.. .e| 00000450 6e 76 24 2c 22 2d 6c 6f 61 64 20 22 29 3e 30 20 |nv$,"-load ")>0 | 00000460 8c 0d 02 30 2e 66 69 6c 65 6e 61 6d 65 24 3d c2 |...0.filename$=.| 00000470 65 6e 76 24 2c a9 28 65 6e 76 24 29 2d a7 65 6e |env$,.(env$)-.en| 00000480 76 24 2c 22 2d 6c 6f 61 64 20 22 29 2d 35 29 0d |v$,"-load ")-5).| 00000490 02 3a 05 cc 0d 02 44 2d 66 69 6c 65 6e 61 6d 65 |.:....D-filename| 000004a0 24 3d 22 3c 42 61 6c 6c 6f 6f 6e 24 44 69 72 3e |$="<Balloon$Dir>| 000004b0 2e 42 61 6c 6c 6f 6f 6e 73 2e 42 42 43 6f 6e 65 |.Balloons.BBCone| 000004c0 22 0d 02 4e 05 cd 0d 02 58 04 0d 02 62 18 64 69 |"..N....X...b.di| 000004d0 72 24 3d 66 69 6c 65 6e 61 6d 65 24 2b 6d 6f 64 |r$=filename$+mod| 000004e0 65 24 0d 02 6c 11 66 69 6c 65 25 3d 8e 28 64 69 |e$..l.file%=.(di| 000004f0 72 24 29 0d 02 76 11 73 69 7a 65 25 3d 31 30 32 |r$)..v.size%=102| 00000500 34 2a 31 36 0d 02 80 0b d9 23 66 69 6c 65 25 0d |4*16.....#file%.| 00000510 02 8a 13 de 20 73 70 72 69 74 65 25 20 73 69 7a |.... sprite% siz| 00000520 65 25 0d 02 94 13 73 70 72 69 74 65 25 21 30 3d |e%....sprite%!0=| 00000530 73 69 7a 65 25 0d 02 9e 22 c8 99 20 22 4f 53 5f |size%...".. "OS_| 00000540 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 39 2c |SpriteOp",256+9,| 00000550 73 70 72 69 74 65 25 0d 02 a8 28 c8 99 20 22 4f |sprite%...(.. "O| 00000560 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00000570 31 30 2c 73 70 72 69 74 65 25 2c 64 69 72 24 0d |10,sprite%,dir$.| 00000580 02 b2 04 0d 02 bc 2b c8 99 20 26 32 45 2c 26 31 |......+.. &2E,&1| 00000590 31 38 2c 73 70 72 69 74 65 25 2c 22 6d 61 73 6b |18,sprite%,"mask| 000005a0 22 20 20 20 20 b8 20 2c 2c 6d 61 73 6b 25 0d 02 |" . ,,mask%..| 000005b0 c6 2d c8 99 20 26 32 45 2c 26 31 31 38 2c 73 70 |.-.. &2E,&118,sp| 000005c0 72 69 74 65 25 2c 22 63 61 6e 76 61 73 22 20 20 |rite%,"canvas" | 000005d0 b8 20 2c 2c 63 61 6e 76 61 73 25 0d 02 d0 2e c8 |. ,,canvas%.....| 000005e0 99 20 26 32 45 2c 26 31 31 38 2c 73 70 72 69 74 |. &2E,&118,sprit| 000005f0 65 25 2c 22 62 61 6c 6c 6f 6f 6e 22 20 b8 20 2c |e%,"balloon" . ,| 00000600 2c 62 61 6c 6c 6f 6f 6e 25 0d 02 da 04 0d 02 e4 |,balloon%.......| 00000610 17 72 30 3d 30 3a 72 31 3d 30 3a 72 32 3d 30 3a |.r0=0:r1=0:r2=0:| 00000620 72 33 3d 30 0d 02 ee 1b 6e 6f 5f 6d 61 73 6b 25 |r3=0....no_mask%| 00000630 3d 30 3a 77 69 74 68 5f 6d 61 73 6b 25 3d 38 0d |=0:with_mask%=8.| 00000640 02 f8 0f de 20 73 63 61 6c 65 25 20 32 30 0d 03 |.... scale% 20..| 00000650 02 05 e1 0d 03 0c 05 3a 0d 03 16 12 dd f2 64 72 |.......:......dr| 00000660 61 77 5f 62 61 6c 6c 6f 6f 6e 0d 03 20 04 0d 03 |aw_balloon.. ...| 00000670 2a 1e f2 73 77 69 74 63 68 5f 74 6f 5f 73 70 72 |*..switch_to_spr| 00000680 69 74 65 28 63 61 6e 76 61 73 25 29 0d 03 34 18 |ite(canvas%)..4.| 00000690 c8 93 20 32 38 34 2c 30 2c 34 2c 32 38 38 20 b8 |.. 284,0,4,288 .| 000006a0 20 30 2c 30 0d 03 3e 18 c8 93 20 30 2c 30 2c 32 | 0,0..>... 0,0,2| 000006b0 38 38 2c 32 38 38 20 b8 20 32 2c 30 0d 03 48 0f |88,288 . 2,0..H.| 000006c0 f2 73 77 69 74 63 68 5f 6f 66 66 0d 03 52 04 0d |.switch_off..R..| 000006d0 03 5c 1c f2 73 77 69 74 63 68 5f 74 6f 5f 73 70 |.\..switch_to_sp| 000006e0 72 69 74 65 28 6d 61 73 6b 25 29 0d 03 66 13 e3 |rite(mask%)..f..| 000006f0 20 59 3d 30 20 b8 20 31 32 30 20 88 20 34 0d 03 | Y=0 . 120 . 4..| 00000700 70 19 ef 20 32 34 2c 30 3b 59 2b 32 34 3b 31 31 |p.. 24,0;Y+24;11| 00000710 36 3b 59 2b 32 38 3b 0d 03 7a 17 77 25 3d b6 28 |6;Y+28;..z.w%=.(| 00000720 33 36 30 30 2d 28 36 30 2d 59 29 5e 32 29 0d 03 |3600-(60-Y)^2)..| 00000730 84 2f f2 73 63 61 6c 65 28 63 61 6e 76 61 73 25 |./.scale(canvas%| 00000740 2c 20 36 30 2d 28 77 25 29 2c 30 2c 20 77 25 2a |, 60-(w%),0, w%*| 00000750 32 2c 31 2c 20 20 31 32 30 2c 20 31 29 0d 03 8e |2,1, 120, 1)...| 00000760 05 ed 0d 03 98 07 ef 32 36 0d 03 a2 22 f2 70 6c |.......26...".pl| 00000770 6f 74 28 62 61 6c 6c 6f 6f 6e 25 2c 30 2c 30 2c |ot(balloon%,0,0,| 00000780 77 69 74 68 5f 6d 61 73 6b 25 29 0d 03 ac 0f f2 |with_mask%).....| 00000790 73 77 69 74 63 68 5f 6f 66 66 0d 03 b6 05 e1 0d |switch_off......| 000007a0 03 c0 05 3a 0d 03 ca 0c dd 20 f2 63 6c 6f 73 65 |...:..... .close| 000007b0 0d 03 d4 27 c8 99 20 22 57 69 6d 70 5f 43 6c 6f |...'.. "Wimp_Clo| 000007c0 73 65 44 6f 77 6e 22 2c 74 61 73 6b 25 2c 26 34 |seDown",task%,&4| 000007d0 42 35 33 34 31 35 34 0d 03 de 05 e1 0d 03 e8 05 |B534154.........| 000007e0 3a 0d 03 f2 11 dd 20 f2 63 72 65 61 74 65 69 63 |:..... .createic| 000007f0 6f 6e 0d 03 fc 36 21 62 25 3d 2d 31 3a 62 25 21 |on...6!b%=-1:b%!| 00000800 34 3d 30 3a 62 25 21 38 3d 30 3a 62 25 21 31 32 |4=0:b%!8=0:b%!12| 00000810 3d 36 38 3a 62 25 21 31 36 3d 36 38 3a 62 25 21 |=68:b%!16=68:b%!| 00000820 32 30 3d 26 33 30 31 41 0d 04 06 3c 24 28 62 25 |20=&301A...<$(b%| 00000830 2b 32 34 29 3d 22 21 62 62 63 31 22 3a c8 99 20 |+24)="!bbc1":.. | 00000840 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e |"Wimp_CreateIcon| 00000850 22 2c 2c 62 25 20 b8 20 69 63 6f 6e 62 61 72 69 |",,b% . iconbari| 00000860 63 6f 6e 25 0d 04 10 05 e1 0d 04 1a 05 3a 0d 04 |con%.........:..| 00000870 24 11 dd f2 73 63 72 6f 6c 6c 5f 6d 65 73 73 0d |$...scroll_mess.| 00000880 04 2e 16 e7 20 73 63 72 6f 6c 6c 5f 63 6f 75 6e |.... scroll_coun| 00000890 74 3d 31 20 8c 0d 04 38 36 73 63 72 6f 6c 6c 5f |t=1 ...86scroll_| 000008a0 6d 65 73 73 24 3d c2 73 63 72 6f 6c 6c 5f 6d 65 |mess$=.scroll_me| 000008b0 73 73 24 2c 33 30 29 2b bd 28 6d 65 73 73 61 67 |ss$,30)+.(messag| 000008c0 65 25 21 73 63 72 5f 70 6f 73 29 0d 04 42 2a f2 |e%!scr_pos)..B*.| 000008d0 73 65 74 5f 69 63 6f 6e 5f 73 74 72 69 6e 67 28 |set_icon_string(| 000008e0 69 6e 66 6f 25 2c 34 2c 73 63 72 6f 6c 6c 5f 6d |info%,4,scroll_m| 000008f0 65 73 73 24 29 0d 04 4c 0e 73 63 72 5f 70 6f 73 |ess$)..L.scr_pos| 00000900 2b 3d 31 0d 04 56 17 e7 20 73 63 72 5f 70 6f 73 |+=1..V.. scr_pos| 00000910 3e 73 63 72 5f 6c 65 6e 20 8c 0d 04 60 12 73 63 |>scr_len ...`.sc| 00000920 72 6f 6c 6c 5f 6d 65 73 73 25 3d a3 0d 04 6a 2d |roll_mess%=...j-| 00000930 f2 73 65 74 5f 69 63 6f 6e 5f 73 74 72 69 6e 67 |.set_icon_string| 00000940 28 69 6e 66 6f 25 2c 34 2c 22 50 68 69 6c 69 70 |(info%,4,"Philip| 00000950 20 4d 65 6c 6c 6f 72 22 29 0d 04 74 05 cd 0d 04 | Mellor")..t....| 00000960 7e 19 f2 75 70 64 61 74 65 5f 69 63 6f 6e 28 69 |~..update_icon(i| 00000970 6e 66 6f 25 2c 34 29 0d 04 88 05 cd 0d 04 92 38 |nfo%,4)........8| 00000980 73 63 72 6f 6c 6c 5f 63 6f 75 6e 74 2b 3d 31 3a |scroll_count+=1:| 00000990 e7 20 73 63 72 6f 6c 6c 5f 63 6f 75 6e 74 3e 34 |. scroll_count>4| 000009a0 20 73 63 72 6f 6c 6c 5f 63 6f 75 6e 74 3d 31 20 | scroll_count=1 | 000009b0 8b 20 c8 96 0d 04 9c 05 e1 0d 04 a6 05 3a 0d 04 |. ...........:..| 000009c0 b0 0b dd 20 f2 70 6f 6c 6c 0d 04 ba 21 e7 20 73 |... .poll...!. s| 000009d0 63 72 6f 6c 6c 5f 6d 65 73 73 25 3d b9 20 f2 73 |croll_mess%=. .s| 000009e0 63 72 6f 6c 6c 5f 6d 65 73 73 0d 04 c4 1b c8 99 |croll_mess......| 000009f0 20 22 57 69 6d 70 5f 50 6f 6c 6c 22 2c 2c 62 25 | "Wimp_Poll",,b%| 00000a00 20 b8 20 72 25 0d 04 ce 0b c8 8e 20 72 25 20 ca | . r%...... r% .| 00000a10 0d 04 d8 1b 20 c9 20 30 3a e7 20 73 63 72 6f 6c |.... . 0:. scrol| 00000a20 6c 5f 6d 65 73 73 25 3d b9 20 8c 0d 04 e2 19 20 |l_mess%=. ..... | 00000a30 20 20 20 20 20 20 20 20 f2 73 63 72 6f 6c 6c 5f | .scroll_| 00000a40 6d 65 73 73 0d 04 ec 0d 20 20 20 20 20 20 20 20 |mess.... | 00000a50 cc 0d 04 f6 4b 20 20 20 20 20 20 20 20 20 70 6f |....K po| 00000a60 6c 6c 63 25 2b 3d 31 3a e7 20 70 6f 6c 6c 63 25 |llc%+=1:. pollc%| 00000a70 3e 73 70 65 65 64 66 25 28 73 70 65 65 64 25 29 |>speedf%(speed%)| 00000a80 20 70 6f 6c 6c 63 25 3d 30 3a f2 62 61 6c 6c 6f | pollc%=0:.ballo| 00000a90 6f 6e 3a 73 63 72 6f 6c 6c 25 3d b9 0d 05 00 0d |on:scroll%=.....| 00000aa0 20 20 20 20 20 20 20 20 cd 0d 05 0a 20 20 c9 20 | .... . | 00000ab0 32 3a e7 20 28 62 25 21 30 29 3d 62 61 6c 6c 6f |2:. (b%!0)=ballo| 00000ac0 6f 6e 5f 77 69 6e 25 20 8c 0d 05 14 15 20 20 20 |on_win% ..... | 00000ad0 20 20 20 20 20 73 63 72 6f 6c 6c 25 3d a3 0d 05 | scroll%=...| 00000ae0 1e 2d 20 20 20 20 20 20 20 20 e7 20 62 25 21 38 |.- . b%!8| 00000af0 3c 31 36 30 20 62 25 21 38 3d 31 36 30 3a 62 25 |<160 b%!8=160:b%| 00000b00 21 31 36 3d 31 36 30 2b 31 34 34 0d 05 28 2b 20 |!16=160+144..(+ | 00000b10 20 20 20 20 20 20 20 e7 20 62 25 21 31 36 3e 59 | . b%!16>Y| 00000b20 32 20 62 25 21 31 36 3d 59 32 3a 62 25 21 38 3d |2 b%!16=Y2:b%!8=| 00000b30 59 32 2d 31 34 34 0d 05 32 3d 20 20 20 20 20 20 |Y2-144..2= | 00000b40 20 20 e7 20 62 6f 75 6e 63 65 25 3d b9 20 3a 20 | . bounce%=. : | 00000b50 e7 20 62 25 21 34 3c 30 20 62 25 21 34 3d 30 3a |. b%!4<0 b%!4=0:| 00000b60 62 25 21 31 32 3d 31 36 30 2b 31 32 30 3a 77 78 |b%!12=160+120:wx| 00000b70 25 3d 30 0d 05 3c 44 20 20 20 20 20 20 20 20 e7 |%=0..<D .| 00000b80 20 62 6f 75 6e 63 65 25 3d b9 20 3a 20 e7 20 62 | bounce%=. : . b| 00000b90 25 21 31 32 3e 58 32 20 62 25 21 31 32 3d 58 32 |%!12>X2 b%!12=X2| 00000ba0 3a 62 25 21 34 3d 58 32 2d 31 32 30 3a 77 78 25 |:b%!4=X2-120:wx%| 00000bb0 3d 58 32 2d 31 32 30 0d 05 46 0d 20 20 20 20 20 |=X2-120..F. | 00000bc0 20 20 20 cd 0d 05 50 17 20 20 20 20 20 20 20 20 | ...P. | 00000bd0 c8 8e 20 28 62 25 21 30 29 20 ca 0d 05 5a 23 20 |.. (b%!0) ...Z# | 00000be0 20 20 20 20 20 20 20 20 c9 20 73 68 61 64 6f 77 | . shadow| 00000bf0 25 3a f2 6f 70 65 6e 5f 73 68 61 64 6f 77 0d 05 |%:.open_shadow..| 00000c00 64 3a 20 20 20 20 20 20 20 20 20 c9 20 6f 70 74 |d: . opt| 00000c10 73 25 3a c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e |s%:.. "Wimp_Open| 00000c20 57 69 6e 64 6f 77 22 2c 2c 62 25 3a f2 6f 70 65 |Window",,b%:.ope| 00000c30 6e 5f 73 68 61 64 6f 77 0d 05 6e 27 20 20 20 20 |n_shadow..n' | 00000c40 20 20 20 20 7f 3a 20 c8 99 20 22 57 69 6d 70 5f | .: .. "Wimp_| 00000c50 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 62 25 0d |OpenWindow",,b%.| 00000c60 05 78 0d 20 20 20 20 20 20 20 20 cb 0d 05 82 22 |.x. ...."| 00000c70 20 c9 20 33 3a c8 99 20 22 57 69 6d 70 5f 43 6c | . 3:.. "Wimp_Cl| 00000c80 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 25 0d 05 |oseWindow",,b%..| 00000c90 8c 58 20 c9 20 34 3a e7 20 28 62 25 21 30 29 3d |.X . 4:. (b%!0)=| 00000ca0 6f 70 74 73 25 20 80 20 6d 65 6e 75 6f 70 65 6e |opts% . menuopen| 00000cb0 25 3d a3 20 8c 20 c8 99 20 22 57 69 6d 70 5f 43 |%=. . .. "Wimp_C| 00000cc0 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 25 3a |loseWindow",,b%:| 00000cd0 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 73 68 |.close_window(sh| 00000ce0 61 64 6f 77 25 29 0d 05 96 14 20 c9 20 36 3a f2 |adow%).... . 6:.| 00000cf0 6d 6f 75 73 65 63 6c 69 63 6b 0d 05 a0 13 20 c9 |mouseclick.... .| 00000d00 20 39 3a f2 6d 65 6e 75 63 6c 69 63 6b 0d 05 aa | 9:.menuclick...| 00000d10 18 20 c9 20 31 37 2c 31 38 2c 31 39 3a f2 72 65 |. . 17,18,19:.re| 00000d20 63 69 65 76 65 0d 05 b4 05 cb 0d 05 be 05 e1 0d |cieve...........| 00000d30 05 c8 05 3a 0d 05 d2 0d dd f2 62 61 6c 6c 6f 6f |...:......balloo| 00000d40 6e 0d 05 dc 1f e7 20 72 6f 74 61 74 65 25 3d b9 |n..... rotate%=.| 00000d50 20 8c 20 f2 64 72 61 77 5f 62 61 6c 6c 6f 6f 6e | . .draw_balloon| 00000d60 0d 05 e6 04 0d 05 f0 14 21 62 25 3d 62 61 6c 6c |........!b%=ball| 00000d70 6f 6f 6e 5f 77 69 6e 25 0d 05 fa 20 c8 99 20 22 |oon_win%... .. "| 00000d80 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 |Wimp_GetWindowSt| 00000d90 61 74 65 22 2c 2c 62 25 0d 06 04 15 77 78 25 3d |ate",,b%....wx%=| 00000da0 62 25 21 34 3a 77 79 25 3d 62 25 21 38 0d 06 0e |b%!4:wy%=b%!8...| 00000db0 23 e7 20 73 63 72 6f 6c 6c 25 3d b9 20 8c 20 77 |#. scroll%=. . w| 00000dc0 78 25 2b 3d 64 78 25 3a 77 79 25 2b 3d 64 79 25 |x%+=dx%:wy%+=dy%| 00000dd0 0d 06 18 3b e7 20 77 79 25 3c 31 36 30 20 8c 20 |...;. wy%<160 . | 00000de0 64 79 25 3d 94 64 79 25 3a f4 49 46 20 72 61 6e |dy%=.dy%:.IF ran| 00000df0 64 6f 6d 25 3d 54 52 55 45 20 54 48 45 4e 20 64 |dom%=TRUE THEN d| 00000e00 78 25 3d 46 4e 72 61 6e 64 6f 6d 0d 06 22 41 e7 |x%=FNrandom.."A.| 00000e10 20 77 79 25 3e 59 32 2d 31 34 34 20 8c 20 64 79 | wy%>Y2-144 . dy| 00000e20 25 3d 2d 28 94 64 79 25 29 3a f4 49 46 20 72 61 |%=-(.dy%):.IF ra| 00000e30 6e 64 6f 6d 25 3d 54 52 55 45 20 54 48 45 4e 20 |ndom%=TRUE THEN | 00000e40 64 78 25 3d 46 4e 72 61 6e 64 6f 6d 0d 06 2c 04 |dx%=FNrandom..,.| 00000e50 0d 06 36 11 e7 20 62 6f 75 6e 63 65 25 3d b9 20 |..6.. bounce%=. | 00000e60 8c 0d 06 40 11 f4 49 46 20 64 78 25 3c 30 20 41 |...@..IF dx%<0 A| 00000e70 4e 44 0d 06 4a 3b e7 20 77 78 25 3c 30 20 8c 20 |ND..J;. wx%<0 . | 00000e80 64 78 25 3d 94 28 64 78 25 29 3a f4 49 46 20 72 |dx%=.(dx%):.IF r| 00000e90 61 6e 64 6f 6d 25 3d 54 52 55 45 20 54 48 45 4e |andom%=TRUE THEN| 00000ea0 20 64 79 25 3d 46 4e 72 61 6e 64 6f 6d 0d 06 54 | dy%=FNrandom..T| 00000eb0 49 e7 20 64 78 25 3e 30 20 80 20 77 78 25 3e 58 |I. dx%>0 . wx%>X| 00000ec0 32 2d 31 32 30 20 8c 20 64 78 25 3d 2d 94 28 64 |2-120 . dx%=-.(d| 00000ed0 78 25 29 3a f4 49 46 20 72 61 6e 64 6f 6d 25 3d |x%):.IF random%=| 00000ee0 54 52 55 45 20 54 48 45 4e 20 64 79 25 3d 46 4e |TRUE THEN dy%=FN| 00000ef0 72 61 6e 64 6f 6d 0d 06 5e 05 cc 0d 06 68 4c e7 |random..^....hL.| 00000f00 20 64 78 25 3c 30 20 80 20 77 78 25 3c 2d 31 32 | dx%<0 . wx%<-12| 00000f10 30 20 8c 20 77 78 25 3d 58 32 2b 34 30 30 2b b3 |0 . wx%=X2+400+.| 00000f20 28 32 30 30 29 3a 77 79 25 3d b3 28 59 32 2d 31 |(200):wy%=.(Y2-1| 00000f30 34 34 2d 31 39 32 29 2b 31 39 32 3a 64 78 25 3d |44-192)+192:dx%=| 00000f40 2d 94 28 64 78 25 29 0d 06 72 47 e7 20 64 78 25 |-.(dx%)..rG. dx%| 00000f50 3e 30 20 80 20 77 78 25 3e 58 32 20 8c 20 64 78 |>0 . wx%>X2 . dx| 00000f60 25 3d 94 28 64 78 25 29 3a 77 78 25 3d 2d 34 30 |%=.(dx%):wx%=-40| 00000f70 30 2d b3 28 32 30 30 29 3a 77 79 25 3d b3 28 59 |0-.(200):wy%=.(Y| 00000f80 32 2d 31 34 34 2d 31 39 32 29 2b 31 39 32 0d 06 |2-144-192)+192..| 00000f90 7c 05 cd 0d 06 86 04 0d 06 90 11 e7 20 72 61 6e ||........... ran| 00000fa0 64 6f 6d 25 3d b9 20 8c 0d 06 9a 10 e7 20 b3 28 |dom%=. ...... .(| 00000fb0 35 30 30 29 3d 31 20 8c 0d 06 a4 1b f2 6d 6f 76 |500)=1 ......mov| 00000fc0 65 28 a4 72 61 6e 64 6f 6d 2c 20 a4 72 61 6e 64 |e(.random, .rand| 00000fd0 6f 6d 29 0d 06 ae 05 cd 0d 06 b8 05 cd 0d 06 c2 |om).............| 00000fe0 04 0d 06 cc 14 21 62 25 3d 62 61 6c 6c 6f 6f 6e |.....!b%=balloon| 00000ff0 5f 77 69 6e 25 0d 06 d6 15 62 25 21 34 3d 77 78 |_win%....b%!4=wx| 00001000 25 3a 62 25 21 38 3d 77 79 25 0d 06 e0 1f 62 25 |%:b%!8=wy%....b%| 00001010 21 31 32 3d 77 78 25 2b 31 32 30 3a 62 25 21 31 |!12=wx%+120:b%!1| 00001020 36 3d 77 79 25 2b 31 34 34 0d 06 ea 13 62 25 21 |6=wy%+144....b%!| 00001030 32 30 3d 30 3a 62 25 21 32 34 3d 30 0d 06 f4 0c |20=0:b%!24=0....| 00001040 62 25 21 32 38 3d 2d 32 0d 06 fe 1c c8 99 20 22 |b%!28=-2...... "| 00001050 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 |Wimp_OpenWindow"| 00001060 2c 2c 62 25 0d 07 08 20 f2 75 70 64 61 74 65 5f |,,b%... .update_| 00001070 69 63 6f 6e 28 62 61 6c 6c 6f 6f 6e 5f 77 69 6e |icon(balloon_win| 00001080 25 2c 30 29 0d 07 12 05 e1 0d 07 1c 05 3a 0d 07 |%,0).........:..| 00001090 26 0d dd 20 a4 72 61 6e 64 6f 6d 0d 07 30 07 ea |&.. .random..0..| 000010a0 20 62 0d 07 3a 0d c8 8e 20 b3 28 33 29 20 ca 0d | b..:... .(3) ..| 000010b0 07 44 0c c9 20 31 3a 62 3d 2d 34 0d 07 4e 0b c9 |.D.. 1:b=-4..N..| 000010c0 20 32 3a 62 3d 30 0d 07 58 0b c9 20 33 3a 62 3d | 2:b=0..X.. 3:b=| 000010d0 34 0d 07 62 05 cb 0d 07 6c 06 3d 62 0d 07 76 04 |4..b....l.=b..v.| 000010e0 0d 07 80 21 dd 20 f2 75 70 64 61 74 65 5f 69 63 |...!. .update_ic| 000010f0 6f 6e 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |on(window%,icon%| 00001100 29 0d 07 8a 10 62 25 21 30 3d 77 69 6e 64 6f 77 |)....b%!0=window| 00001110 25 0d 07 94 11 20 20 20 62 25 21 34 3d 69 63 6f |%.... b%!4=ico| 00001120 6e 25 0d 07 9e 0d 20 20 20 62 25 21 38 3d 30 0d |n%.... b%!8=0.| 00001130 07 a8 0e 20 20 20 62 25 21 31 32 3d 30 0d 07 b2 |... b%!12=0...| 00001140 21 20 20 20 c8 99 20 22 57 69 6d 70 5f 53 65 74 |! .. "Wimp_Set| 00001150 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 25 0d 07 |IconState",,b%..| 00001160 bc 05 e1 0d 07 c6 05 3a 0d 07 d0 21 dd 20 a4 73 |.......:...!. .s| 00001170 74 72 69 6e 67 5f 61 64 64 72 28 77 69 6e 64 6f |tring_addr(windo| 00001180 77 25 2c 69 63 6f 6e 25 29 0d 07 da 14 21 63 68 |w%,icon%)....!ch| 00001190 61 70 70 79 25 3d 77 69 6e 64 6f 77 25 0d 07 e4 |appy%=window%...| 000011a0 13 63 68 61 70 70 79 25 21 34 3d 69 63 6f 6e 25 |.chappy%!4=icon%| 000011b0 0d 07 ee 23 c8 99 20 22 57 69 6d 70 5f 47 65 74 |...#.. "Wimp_Get| 000011c0 49 63 6f 6e 53 74 61 74 65 22 2c 2c 63 68 61 70 |IconState",,chap| 000011d0 70 79 25 0d 07 f8 0f 3d 63 68 61 70 70 79 25 21 |py%....=chappy%!| 000011e0 32 38 0d 08 02 05 3a 0d 08 0c 21 dd 20 a4 69 63 |28....:...!. .ic| 000011f0 6f 6e 5f 73 74 72 69 6e 67 28 77 69 6e 64 6f 77 |on_string(window| 00001200 25 2c 69 63 6f 6e 25 29 0d 08 16 26 f2 74 65 72 |%,icon%)...&.ter| 00001210 6d 28 a4 73 74 72 69 6e 67 5f 61 64 64 72 28 77 |m(.string_addr(w| 00001220 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 29 0d 08 |indow%,icon%))..| 00001230 20 21 3d 24 a4 73 74 72 69 6e 67 5f 61 64 64 72 | !=$.string_addr| 00001240 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |(window%,icon%).| 00001250 08 2a 05 e1 0d 08 34 05 3a 0d 08 3e 28 dd 20 f2 |.*....4.:..>(. .| 00001260 73 65 74 5f 69 63 6f 6e 5f 73 74 72 69 6e 67 28 |set_icon_string(| 00001270 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 61 24 |window%,icon%,a$| 00001280 29 0d 08 48 23 24 a4 73 74 72 69 6e 67 5f 61 64 |)..H#$.string_ad| 00001290 64 72 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |dr(window%,icon%| 000012a0 29 3d 61 24 0d 08 52 05 e1 0d 08 5c 05 3a 0d 08 |)=a$..R....\.:..| 000012b0 66 11 dd 20 f2 6d 6f 75 73 65 63 6c 69 63 6b 0d |f.. .mouseclick.| 000012c0 08 70 10 62 75 74 74 6f 6e 25 3d 62 25 21 38 0d |.p.button%=b%!8.| 000012d0 08 7a 0f 69 63 6f 6e 25 3d 62 25 21 31 36 0d 08 |.z.icon%=b%!16..| 000012e0 84 11 77 69 6e 64 6f 77 25 3d 62 25 21 31 32 0d |..window%=b%!12.| 000012f0 08 8e 0c 6d 78 25 3d 62 25 21 30 0d 08 98 0c 6d |...mx%=b%!0....m| 00001300 79 25 3d 62 25 21 34 0d 08 a2 04 0d 08 ac 10 c8 |y%=b%!4.........| 00001310 8e 20 77 69 6e 64 6f 77 25 20 ca 0d 08 b6 04 0d |. window% ......| 00001320 08 c0 13 20 c9 20 62 61 6c 6c 6f 6f 6e 5f 77 69 |... . balloon_wi| 00001330 6e 25 0d 08 ca 12 20 20 c8 8e 20 62 75 74 74 6f |n%.... .. butto| 00001340 6e 25 20 ca 0d 08 d4 14 20 20 20 c9 20 34 3a 21 |n% ..... . 4:!| 00001350 62 25 3d 6f 70 74 73 25 0d 08 de 23 20 20 20 c8 |b%=opts%...# .| 00001360 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 00001370 77 53 74 61 74 65 22 2c 2c 62 25 0d 08 e8 21 20 |wState",,b%...! | 00001380 20 20 62 25 21 34 3d 6d 78 25 2d 32 38 30 3a 62 | b%!4=mx%-280:b| 00001390 25 21 31 32 3d 6d 78 25 2b 32 38 30 0d 08 f2 22 |%!12=mx%+280..."| 000013a0 20 20 20 62 25 21 31 32 3d 6d 79 25 2d 31 32 34 | b%!12=my%-124| 000013b0 3a 62 25 21 31 36 3d 6d 79 25 2b 31 32 34 0d 08 |:b%!16=my%+124..| 000013c0 fc 0f 20 20 20 62 25 21 32 38 3d 2d 31 0d 09 06 |.. b%!28=-1...| 000013d0 1f 20 20 20 c8 99 20 22 57 69 6d 70 5f 4f 70 65 |. .. "Wimp_Ope| 000013e0 6e 57 69 6e 64 6f 77 22 2c 2c 62 25 0d 09 10 13 |nWindow",,b%....| 000013f0 20 20 20 f2 6f 70 65 6e 5f 73 68 61 64 6f 77 0d | .open_shadow.| 00001400 09 1a 38 20 20 20 c9 20 31 3a 21 62 25 3d 62 61 |..8 . 1:!b%=ba| 00001410 6c 6c 6f 6f 6e 5f 77 69 6e 25 3a 62 25 21 34 3d |lloon_win%:b%!4=| 00001420 31 3a c8 99 20 22 57 69 6d 70 5f 44 72 61 67 42 |1:.. "Wimp_DragB| 00001430 6f 78 22 2c 2c 62 25 0d 09 24 55 20 20 20 c9 20 |ox",,b%..$U . | 00001440 32 3a f2 73 65 74 5f 69 63 6f 6e 5f 73 74 72 69 |2:.set_icon_stri| 00001450 6e 67 28 69 6e 66 6f 25 2c 34 2c 22 50 68 69 6c |ng(info%,4,"Phil| 00001460 69 70 20 4d 65 6c 6c 6f 72 22 29 3a f2 73 68 6f |ip Mellor"):.sho| 00001470 77 6d 65 6e 75 28 6d 61 69 6e 6d 65 6e 75 25 2c |wmenu(mainmenu%,| 00001480 21 62 25 2d 36 34 2c 62 25 21 34 29 0d 09 2e 04 |!b%-64,b%!4)....| 00001490 0d 09 38 07 20 20 cb 0d 09 42 04 0d 09 4c 0c 20 |..8. ...B...L. | 000014a0 c9 20 69 6e 66 6f 25 0d 09 56 10 20 20 c8 8e 20 |. info%..V. .. | 000014b0 69 63 6f 6e 25 20 ca 0d 09 60 1d 20 20 20 c9 20 |icon% ...`. . | 000014c0 38 3a e7 20 73 63 72 6f 6c 6c 5f 6d 65 73 73 25 |8:. scroll_mess%| 000014d0 3d a3 20 8c 0d 09 6a 36 20 20 20 20 20 20 20 20 |=. ...j6 | 000014e0 20 20 20 73 63 72 6f 6c 6c 5f 6d 65 73 73 25 3d | scroll_mess%=| 000014f0 b9 3a 73 63 72 6f 6c 6c 5f 63 6f 75 6e 74 3d 31 |.:scroll_count=1| 00001500 3a 73 63 72 5f 70 6f 73 3d 31 0d 09 74 24 20 20 |:scr_pos=1..t$ | 00001510 20 20 20 20 20 20 20 20 20 73 63 72 6f 6c 6c 5f | scroll_| 00001520 6d 65 73 73 24 3d c4 33 31 2c 22 20 22 29 0d 09 |mess$=.31," ")..| 00001530 7e 0f 20 20 20 20 20 20 20 20 20 20 cc 0d 09 88 |~. ....| 00001540 47 20 20 20 20 20 20 20 20 20 20 20 73 63 72 6f |G scro| 00001550 6c 6c 5f 6d 65 73 73 25 3d a3 3a f2 73 65 74 5f |ll_mess%=.:.set_| 00001560 69 63 6f 6e 5f 73 74 72 69 6e 67 28 69 6e 66 6f |icon_string(info| 00001570 25 2c 34 2c 22 50 68 69 6c 69 70 20 4d 65 6c 6c |%,4,"Philip Mell| 00001580 6f 72 22 29 0d 09 92 24 20 20 20 20 20 20 20 20 |or")...$ | 00001590 20 20 20 f2 75 70 64 61 74 65 5f 69 63 6f 6e 28 | .update_icon(| 000015a0 69 6e 66 6f 25 2c 34 29 0d 09 9c 0f 20 20 20 20 |info%,4).... | 000015b0 20 20 20 20 20 20 cd 0d 09 a6 07 20 20 cb 0d 09 | ..... ...| 000015c0 b0 04 0d 09 ba 0c 20 c9 20 6f 70 74 73 25 0d 09 |...... . opts%..| 000015d0 c4 10 20 20 c8 8e 20 69 63 6f 6e 25 20 ca 0d 09 |.. .. icon% ...| 000015e0 ce 31 20 20 20 c9 20 30 3a 21 62 25 3d 6f 70 74 |.1 . 0:!b%=opt| 000015f0 73 25 3a 62 25 21 34 3d 31 3a c8 99 20 22 57 69 |s%:b%!4=1:.. "Wi| 00001600 6d 70 5f 44 72 61 67 42 6f 78 22 2c 2c 62 25 0d |mp_DragBox",,b%.| 00001610 09 d8 15 20 20 20 c9 20 34 3a f2 6d 6f 76 65 28 |... . 4:.move(| 00001620 30 2c 34 29 0d 09 e2 16 20 20 20 c9 20 35 3a f2 |0,4).... . 5:.| 00001630 6d 6f 76 65 28 30 2c 2d 34 29 0d 09 ec 16 20 20 |move(0,-4).... | 00001640 20 c9 20 36 3a f2 6d 6f 76 65 28 2d 34 2c 30 29 | . 6:.move(-4,0)| 00001650 0d 09 f6 15 20 20 20 c9 20 37 3a f2 6d 6f 76 65 |.... . 7:.move| 00001660 28 34 2c 30 29 0d 0a 00 16 20 20 20 c9 20 38 3a |(4,0).... . 8:| 00001670 f2 6d 6f 76 65 28 2d 34 2c 34 29 0d 0a 0a 16 20 |.move(-4,4).... | 00001680 20 20 c9 20 31 30 3a f2 6d 6f 76 65 28 34 2c 34 | . 10:.move(4,4| 00001690 29 0d 0a 14 17 20 20 20 c9 20 39 3a f2 6d 6f 76 |).... . 9:.mov| 000016a0 65 28 2d 34 2c 2d 34 29 0d 0a 1e 17 20 20 20 c9 |e(-4,-4).... .| 000016b0 20 31 31 3a f2 6d 6f 76 65 28 34 2c 2d 34 29 0d | 11:.move(4,-4).| 000016c0 0a 28 16 20 20 20 c9 20 31 35 3a f2 6d 6f 76 65 |.(. . 15:.move| 000016d0 28 30 2c 30 29 0d 0a 32 2e 20 20 20 c9 20 31 34 |(0,0)..2. . 14| 000016e0 3a 72 61 6e 64 6f 6d 25 3d a4 69 63 6f 6e 5f 73 |:random%=.icon_s| 000016f0 74 61 74 65 28 77 69 6e 64 6f 77 25 2c 69 63 6f |tate(window%,ico| 00001700 6e 25 29 0d 0a 3c 2e 20 20 20 c9 20 20 32 3a 62 |n%)..<. . 2:b| 00001710 6f 75 6e 63 65 25 3d a4 69 63 6f 6e 5f 73 74 61 |ounce%=.icon_sta| 00001720 74 65 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 |te(window%,icon%| 00001730 29 0d 0a 46 2e 20 20 20 c9 20 31 36 3a 72 6f 74 |)..F. . 16:rot| 00001740 61 74 65 25 3d a4 69 63 6f 6e 5f 73 74 61 74 65 |ate%=.icon_state| 00001750 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d |(window%,icon%).| 00001760 0a 50 2c 20 20 20 c9 20 31 37 2c 31 38 3a f2 73 |.P, . 17,18:.s| 00001770 68 6f 77 6d 65 6e 75 28 73 70 65 65 64 6d 65 6e |howmenu(speedmen| 00001780 75 25 2c 6d 78 25 2c 6d 79 25 29 0d 0a 5a 07 20 |u%,mx%,my%)..Z. | 00001790 20 cb 0d 0a 64 04 0d 0a 6e 05 cb 0d 0a 78 04 0d | ...d...n....x..| 000017a0 0a 82 05 e1 0d 0a 8c 05 3a 0d 0a 96 13 dd f2 6d |........:......m| 000017b0 6f 76 65 28 6d 78 25 2c 6d 79 25 29 0d 0a a0 13 |ove(mx%,my%)....| 000017c0 64 78 25 3d 6d 78 25 3a 64 79 25 3d 6d 79 25 0d |dx%=mx%:dy%=my%.| 000017d0 0a aa 05 e1 0d 0a b4 05 3a 0d 0a be 20 dd 20 a4 |........:... . .| 000017e0 69 63 6f 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f |icon_state(windo| 000017f0 77 25 2c 69 63 6f 6e 25 29 0d 0a c8 08 ea 20 63 |w%,icon%)..... c| 00001800 25 0d 0a d2 0d 63 25 3d 62 25 2b 39 30 30 0d 0a |%....c%=b%+900..| 00001810 dc 0f 21 63 25 3d 77 69 6e 64 6f 77 25 0d 0a e6 |..!c%=window%...| 00001820 0e 63 25 21 34 3d 69 63 6f 6e 25 0d 0a f0 1e c8 |.c%!4=icon%.....| 00001830 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 |. "Wimp_GetIconS| 00001840 74 61 74 65 22 2c 2c 63 25 0d 0a fa 1b 3d 28 28 |tate",,c%....=((| 00001850 63 25 21 32 34 29 20 80 20 28 31 3c 3c 32 31 29 |c%!24) . (1<<21)| 00001860 29 3c 3e 30 0d 0b 04 05 3a 0d 0b 0e 0b dd 20 f2 |)<>0....:..... .| 00001870 69 6e 69 74 0d 0b 18 31 de 20 62 25 20 32 30 30 |init...1. b% 200| 00001880 30 2c 20 77 73 25 20 34 30 30 30 2c 20 6d 65 6e |0, ws% 4000, men| 00001890 73 70 63 25 20 34 30 30 30 2c 20 63 68 61 70 70 |spc% 4000, chapp| 000018a0 79 25 20 36 34 0d 0b 22 13 77 73 65 6e 64 25 3d |y% 64..".wsend%=| 000018b0 77 73 25 2b 34 30 30 30 0d 0b 2c 0b 71 75 69 74 |ws%+4000..,.quit| 000018c0 25 3d a3 0d 0b 36 13 f2 6c 6f 61 64 5f 74 65 6d |%=...6..load_tem| 000018d0 70 6c 61 74 65 73 0d 0b 40 0e f2 6d 61 69 6e 5f |plates..@..main_| 000018e0 6d 65 6e 75 0d 0b 4a 0f f2 73 70 65 65 64 5f 6d |menu..J..speed_m| 000018f0 65 6e 75 0d 0b 54 1e f2 61 74 74 61 63 68 28 6d |enu..T..attach(m| 00001900 61 69 6e 6d 65 6e 75 25 2c 30 2c 69 6e 66 6f 25 |ainmenu%,0,info%| 00001910 29 0d 0b 5e 05 e1 0d 0b 68 05 3a 0d 0b 72 15 dd |)..^....h.:..r..| 00001920 20 f2 6c 6f 61 64 5f 74 65 6d 70 6c 61 74 65 73 | .load_templates| 00001930 0d 0b 7c 35 c8 99 20 22 57 69 6d 70 5f 4f 70 65 |..|5.. "Wimp_Ope| 00001940 6e 54 65 6d 70 6c 61 74 65 22 2c 2c 22 3c 42 61 |nTemplate",,"<Ba| 00001950 6c 6c 6f 6f 6e 24 44 69 72 3e 2e 54 65 6d 70 6c |lloon$Dir>.Templ| 00001960 61 74 65 73 22 0d 0b 86 3d c8 99 20 22 57 69 6d |ates"...=.. "Wim| 00001970 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 22 2c |p_LoadTemplate",| 00001980 2c 62 25 2c 77 73 25 2c 77 73 65 6e 64 25 2c 2d |,b%,ws%,wsend%,-| 00001990 31 2c 22 69 6e 66 6f 22 2c 30 20 b8 20 2c 2c 77 |1,"info",0 . ,,w| 000019a0 73 25 0d 0b 90 26 c8 99 20 22 57 69 6d 70 5f 43 |s%...&.. "Wimp_C| 000019b0 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c 62 25 |reateWindow",,b%| 000019c0 20 b8 20 69 6e 66 6f 25 0d 0b 9a 3d c8 99 20 22 | . info%...=.. "| 000019d0 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 |Wimp_LoadTemplat| 000019e0 65 22 2c 2c 62 25 2c 77 73 25 2c 77 73 65 6e 64 |e",,b%,ws%,wsend| 000019f0 25 2c 2d 31 2c 22 6f 70 74 73 22 2c 30 20 b8 20 |%,-1,"opts",0 . | 00001a00 2c 2c 77 73 25 0d 0b a4 26 c8 99 20 22 57 69 6d |,,ws%...&.. "Wim| 00001a10 70 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 2c |p_CreateWindow",| 00001a20 2c 62 25 20 b8 20 6f 70 74 73 25 0d 0b ae 3f c8 |,b% . opts%...?.| 00001a30 99 20 22 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 |. "Wimp_LoadTemp| 00001a40 6c 61 74 65 22 2c 2c 62 25 2c 77 73 25 2c 77 73 |late",,b%,ws%,ws| 00001a50 65 6e 64 25 2c 2d 31 2c 22 73 68 61 64 6f 77 22 |end%,-1,"shadow"| 00001a60 2c 30 20 b8 20 2c 2c 77 73 25 0d 0b b8 28 c8 99 |,0 . ,,ws%...(..| 00001a70 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 6e | "Wimp_CreateWin| 00001a80 64 6f 77 22 2c 2c 62 25 20 b8 20 73 68 61 64 6f |dow",,b% . shado| 00001a90 77 25 0d 0b c2 1b c8 99 20 22 57 69 6d 70 5f 43 |w%...... "Wimp_C| 00001aa0 6c 6f 73 65 54 65 6d 70 6c 61 74 65 22 0d 0b cc |loseTemplate"...| 00001ab0 04 0d 0b d6 14 62 25 21 30 3d 34 38 3a 62 25 21 |.....b%!0=48:b%!| 00001ac0 34 3d 31 36 30 0d 0b e0 1d 62 25 21 38 3d 34 38 |4=160....b%!8=48| 00001ad0 2b 31 32 30 3a 62 25 21 31 36 3d 31 36 30 2b 31 |+120:b%!16=160+1| 00001ae0 34 34 0d 0b ea 13 62 25 21 31 36 3d 30 3a 62 25 |44....b%!16=0:b%| 00001af0 21 32 30 3d 30 0d 0b f4 0c 62 25 21 32 34 3d 2d |!20=0....b%!24=-| 00001b00 32 0d 0b fe 13 62 25 21 32 38 3d 26 38 30 30 30 |2....b%!28=&8000| 00001b10 30 38 35 32 0d 0c 08 15 62 25 21 33 32 3d 26 46 |0852....b%!32=&F| 00001b20 46 3a 62 25 3f 33 33 3d 34 0d 0c 12 13 62 25 3f |F:b%?33=4....b%?| 00001b30 33 34 3d 34 3a 62 25 3f 33 35 3d 34 0d 0c 1c 13 |34=4:b%?35=4....| 00001b40 62 25 3f 33 36 3d 34 3a 62 25 3f 33 37 3d 34 0d |b%?36=4:b%?37=4.| 00001b50 0c 26 13 62 25 3f 33 38 3d 34 3a 62 25 3f 33 39 |.&.b%?38=4:b%?39| 00001b60 3d 30 0d 0c 30 16 62 25 21 34 30 3d 30 3a 62 25 |=0..0.b%!40=0:b%| 00001b70 21 34 34 3d 2d 31 34 34 0d 0c 3a 15 62 25 21 34 |!44=-144..:.b%!4| 00001b80 38 3d 31 32 30 3a 62 25 21 35 32 3d 30 0d 0c 44 |8=120:b%!52=0..D| 00001b90 2b 62 25 21 35 36 3d 25 31 30 30 30 30 30 30 30 |+b%!56=%10000000| 00001ba0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000| 00001bb0 30 30 30 30 30 30 30 30 0d 0c 4e 19 62 25 21 36 |00000000..N.b%!6| 00001bc0 30 3d 36 3a 62 25 21 36 34 3d 73 70 72 69 74 65 |0=6:b%!64=sprite| 00001bd0 25 0d 0c 58 0b 62 25 21 36 38 3d 30 0d 0c 62 12 |%..X.b%!68=0..b.| 00001be0 24 28 62 25 2b 37 32 29 3d 22 77 69 6e 22 0d 0c |$(b%+72)="win"..| 00001bf0 6c 0b 62 25 21 38 34 3d 30 0d 0c 76 2d c8 99 20 |l.b%!84=0..v-.. | 00001c00 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 6e 64 |"Wimp_CreateWind| 00001c10 6f 77 22 2c 2c 62 25 20 b8 20 62 61 6c 6c 6f 6f |ow",,b% . balloo| 00001c20 6e 5f 77 69 6e 25 0d 0c 80 04 0d 0c 8a 15 62 25 |n_win%........b%| 00001c30 21 30 3d 62 61 6c 6c 6f 6f 6e 5f 77 69 6e 25 0d |!0=balloon_win%.| 00001c40 0c 94 14 62 25 21 34 3d 30 3a 62 25 21 38 3d 2d |...b%!4=0:b%!8=-| 00001c50 31 34 34 0d 0c 9e 15 62 25 21 31 32 3d 31 32 30 |144....b%!12=120| 00001c60 3a 62 25 21 31 36 3d 30 0d 0c a8 13 62 25 21 32 |:b%!16=0....b%!2| 00001c70 30 3d 26 34 30 30 30 36 30 31 41 0d 0c b2 13 24 |0=&4000601A....$| 00001c80 28 62 25 2b 32 34 29 3d 22 6d 61 73 6b 22 0d 0c |(b%+24)="mask"..| 00001c90 bc 26 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 |.&.. "Wimp_Creat| 00001ca0 65 49 63 6f 6e 22 2c 2c 62 25 20 b8 20 69 63 6f |eIcon",,b% . ico| 00001cb0 6e 5f 68 25 0d 0c c6 05 e1 0d 0c d0 05 3a 0d 0c |n_h%.........:..| 00001cc0 da 1f dd 20 f2 61 74 74 61 63 68 28 6d 65 6e 75 |... .attach(menu| 00001cd0 25 2c 69 74 65 6d 25 2c 73 75 62 25 29 0d 0c e4 |%,item%,sub%)...| 00001ce0 1f 21 28 6d 65 6e 75 25 2b 32 38 2b 69 74 65 6d |.!(menu%+28+item| 00001cf0 25 2a 32 34 2b 34 29 3d 73 75 62 25 0d 0c ee 05 |%*24+4)=sub%....| 00001d00 e1 0d 0c f8 05 3a 0d 0d 02 10 dd 20 f2 6d 61 69 |.....:..... .mai| 00001d10 6e 5f 6d 65 6e 75 0d 0d 0c 08 f7 20 2b 31 0d 0d |n_menu..... +1..| 00001d20 16 19 dc 20 42 61 6c 6c 6f 6f 6e 2c 49 6e 66 6f |... Balloon,Info| 00001d30 2c 51 75 69 74 2c 2a 0d 0d 20 18 6d 61 69 6e 6d |,Quit,*.. .mainm| 00001d40 65 6e 75 25 3d a4 6d 61 6b 65 5f 6d 65 6e 75 0d |enu%=.make_menu.| 00001d50 0d 2a 05 e1 0d 0d 34 04 0d 0d 3e 10 dd f2 73 70 |.*....4...>...sp| 00001d60 65 65 64 5f 6d 65 6e 75 0d 0d 48 08 f7 20 2b 31 |eed_menu..H.. +1| 00001d70 0d 0d 52 3a dc 20 22 53 70 65 65 64 22 2c 22 46 |..R:. "Speed","F| 00001d80 61 73 74 65 73 74 22 2c 22 46 61 73 74 22 2c 22 |astest","Fast","| 00001d90 4d 65 64 69 75 6d 22 2c 22 53 6c 6f 77 22 2c 22 |Medium","Slow","| 00001da0 53 6c 6f 77 65 73 74 22 2c 2a 0d 0d 5c 19 73 70 |Slowest",*..\.sp| 00001db0 65 65 64 6d 65 6e 75 25 3d a4 6d 61 6b 65 5f 6d |eedmenu%=.make_m| 00001dc0 65 6e 75 0d 0d 66 05 e1 0d 0d 70 04 0d 0d 7a 05 |enu..f....p...z.| 00001dd0 3a 0d 0d 84 10 dd 20 a4 6d 61 6b 65 5f 6d 65 6e |:..... .make_men| 00001de0 75 0d 0d 8e 12 73 74 61 72 74 25 3d 6d 65 6e 73 |u....start%=mens| 00001df0 70 63 25 0d 0d 98 0c f3 20 74 69 74 6c 65 24 0d |pc%..... title$.| 00001e00 0d a2 14 24 28 73 74 61 72 74 25 29 3d 74 69 74 |...$(start%)=tit| 00001e10 6c 65 24 0d 0d ac 0f 73 74 61 72 74 25 3f 31 32 |le$....start%?12| 00001e20 3d 37 0d 0d b6 0f 73 74 61 72 74 25 3f 31 33 3d |=7....start%?13=| 00001e30 32 0d 0d c0 0f 73 74 61 72 74 25 3f 31 34 3d 37 |2....start%?14=7| 00001e40 0d 0d ca 0f 73 74 61 72 74 25 3f 31 35 3d 30 0d |....start%?15=0.| 00001e50 0d d4 10 73 74 61 72 74 25 21 32 30 3d 34 34 0d |...start%!20=44.| 00001e60 0d de 0f 73 74 61 72 74 25 21 32 34 3d 30 0d 0d |...start%!24=0..| 00001e70 e8 13 f4 20 73 74 61 72 74 25 21 31 36 3d 31 36 |... start%!16=16| 00001e80 30 0d 0d f2 16 77 69 64 74 68 25 3d a9 28 74 69 |0....width%=.(ti| 00001e90 74 6c 65 24 29 2d 33 0d 0d fc 0f 6d 65 6e 73 70 |tle$)-3....mensp| 00001ea0 63 25 2b 3d 32 38 0d 0e 06 05 f5 0d 0e 10 0b f3 |c%+=28..........| 00001eb0 20 69 74 65 6d 24 0d 0e 1a 12 e7 20 69 74 65 6d | item$..... item| 00001ec0 24 3c 3e 22 2a 22 20 8c 0d 0e 24 0e 21 6d 65 6e |$<>"*" ...$.!men| 00001ed0 73 70 63 25 3d 30 0d 0e 2e 10 77 72 69 74 65 61 |spc%=0....writea| 00001ee0 62 6c 65 25 3d a3 0d 0e 38 13 75 6c 25 3d a7 69 |ble%=...8.ul%=.i| 00001ef0 74 65 6d 24 2c 22 5f 22 29 0d 0e 42 0b e7 20 75 |tem$,"_")..B.. u| 00001f00 6c 25 20 8c 0d 0e 4c 1e 74 61 69 6c 24 3d c2 69 |l% ...L.tail$=.i| 00001f10 74 65 6d 24 2c a9 28 69 74 65 6d 24 29 2d 75 6c |tem$,.(item$)-ul| 00001f20 25 29 0d 0e 56 2e e7 20 a7 74 61 69 6c 24 2c 22 |%)..V.. .tail$,"| 00001f30 54 22 29 20 21 6d 65 6e 73 70 63 25 3d 21 6d 65 |T") !menspc%=!me| 00001f40 6e 73 70 63 25 20 84 20 31 3a f4 20 74 69 63 6b |nspc% . 1:. tick| 00001f50 0d 0e 60 35 e7 20 a7 74 61 69 6c 24 2c 22 44 22 |..`5. .tail$,"D"| 00001f60 29 20 21 6d 65 6e 73 70 63 25 3d 21 6d 65 6e 73 |) !menspc%=!mens| 00001f70 70 63 25 20 84 20 32 3a f4 20 64 6f 74 74 65 64 |pc% . 2:. dotted| 00001f80 20 6c 69 6e 65 0d 0e 6a 58 e7 20 a7 74 61 69 6c | line..jX. .tail| 00001f90 24 2c 22 57 22 29 20 21 6d 65 6e 73 70 63 25 3d |$,"W") !menspc%=| 00001fa0 21 6d 65 6e 73 70 63 25 20 84 20 34 3a 77 72 69 |!menspc% . 4:wri| 00001fb0 74 65 61 62 6c 65 25 3d b9 3a f3 20 62 75 66 66 |teable%=.:. buff| 00001fc0 65 72 25 3a f3 20 62 75 66 6c 65 6e 25 3a f4 20 |er%:. buflen%:. | 00001fd0 77 72 69 74 61 62 6c 65 20 69 63 6f 6e 0d 0e 74 |writable icon..t| 00001fe0 3a e7 20 a7 74 61 69 6c 24 2c 22 4d 22 29 20 21 |:. .tail$,"M") !| 00001ff0 6d 65 6e 73 70 63 25 3d 21 6d 65 6e 73 70 63 25 |menspc%=!menspc%| 00002000 20 84 20 38 3a f4 20 67 65 6e 65 72 61 74 65 20 | . 8:. generate | 00002010 6d 65 73 73 61 67 65 0d 0e 7e 17 69 74 65 6d 24 |message..~.item$| 00002020 3d c0 69 74 65 6d 24 2c 75 6c 25 2d 31 29 0d 0e |=.item$,ul%-1)..| 00002030 88 05 cd 0d 0e 92 23 e7 20 a9 20 69 74 65 6d 24 |......#. . item$| 00002040 3e 77 69 64 74 68 25 20 77 69 64 74 68 25 3d a9 |>width% width%=.| 00002050 20 69 74 65 6d 24 0d 0e 9c 10 6d 65 6e 73 70 63 | item$....menspc| 00002060 25 21 34 3d 2d 31 0d 0e a6 12 e7 20 77 72 69 74 |%!4=-1..... writ| 00002070 65 61 62 6c 65 25 20 8c 0d 0e b0 5a 6d 65 6e 73 |eable% ....Zmens| 00002080 70 63 25 21 38 3d 26 30 37 30 30 46 31 32 31 3a |pc%!8=&0700F121:| 00002090 6d 65 6e 73 70 63 25 21 31 32 3d 62 75 66 66 65 |menspc%!12=buffe| 000020a0 72 25 3a 6d 65 6e 73 70 63 25 21 31 36 3d 2d 31 |r%:menspc%!16=-1| 000020b0 3a 6d 65 6e 73 70 63 25 21 32 30 3d 62 75 66 6c |:menspc%!20=bufl| 000020c0 65 6e 25 3a 24 62 75 66 66 65 72 25 3d 69 74 65 |en%:$buffer%=ite| 000020d0 6d 24 0d 0e ba 05 cc 0d 0e c4 12 e7 20 a9 20 69 |m$.......... . i| 000020e0 74 65 6d 24 3c 31 32 20 8c 0d 0e ce 2b 6d 65 6e |tem$<12 ....+men| 000020f0 73 70 63 25 21 38 3d 26 30 37 30 30 30 30 32 31 |spc%!8=&07000021| 00002100 3a 24 28 6d 65 6e 73 70 63 25 2b 31 32 29 3d 69 |:$(menspc%+12)=i| 00002110 74 65 6d 24 0d 0e d8 05 cc 0d 0e e2 49 6d 65 6e |tem$........Imen| 00002120 73 70 63 25 21 38 3d 26 30 37 30 30 30 31 32 31 |spc%!8=&07000121| 00002130 3a 6d 65 6e 73 70 63 25 21 31 32 3d 77 73 25 3a |:menspc%!12=ws%:| 00002140 6d 65 6e 73 70 63 25 21 31 36 3d 2d 31 3a 6d 65 |menspc%!16=-1:me| 00002150 6e 73 70 63 25 21 32 30 3d a9 20 69 74 65 6d 24 |nspc%!20=. item$| 00002160 2b 31 0d 0e ec 1d 24 77 73 25 3d 69 74 65 6d 24 |+1....$ws%=item$| 00002170 3a 77 73 25 2b 3d a9 20 69 74 65 6d 24 2b 31 0d |:ws%+=. item$+1.| 00002180 0e f6 05 cd 0d 0f 00 05 cd 0d 0f 0a 0f 6d 65 6e |.............men| 00002190 73 70 63 25 2b 3d 32 34 0d 0f 14 05 cd 0d 0f 1e |spc%+=24........| 000021a0 0f fd 20 69 74 65 6d 24 3d 22 2a 22 0d 0f 28 1a |.. item$="*"..(.| 000021b0 73 74 61 72 74 25 21 31 36 3d 77 69 64 74 68 25 |start%!16=width%| 000021c0 2a 31 36 2b 33 32 0d 0f 32 25 21 28 6d 65 6e 73 |*16+32..2%!(mens| 000021d0 70 63 25 2d 32 34 29 3d 21 28 6d 65 6e 73 70 63 |pc%-24)=!(menspc| 000021e0 25 2d 32 34 29 20 84 20 26 38 30 0d 0f 3c 11 6d |%-24) . &80..<.m| 000021f0 70 74 72 25 3d 6d 65 6e 73 70 63 25 0d 0f 46 0b |ptr%=menspc%..F.| 00002200 3d 73 74 61 72 74 25 0d 0f 50 05 3a 0d 0f 5a 1c |=start%..P.:..Z.| 00002210 dd 20 f2 73 68 6f 77 6d 65 6e 75 28 6d 65 6e 75 |. .showmenu(menu| 00002220 25 2c 78 25 2c 79 25 29 0d 0f 64 24 74 6f 70 6d |%,x%,y%)..d$topm| 00002230 65 6e 75 25 3d 6d 65 6e 75 25 3a 74 6f 70 78 25 |enu%=menu%:topx%| 00002240 3d 78 25 3a 74 6f 70 79 25 3d 79 25 0d 0f 6e 25 |=x%:topy%=y%..n%| 00002250 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 4d |.. "Wimp_CreateM| 00002260 65 6e 75 22 2c 2c 6d 65 6e 75 25 2c 78 25 2c 79 |enu",,menu%,x%,y| 00002270 25 0d 0f 78 0f 6d 65 6e 75 6f 70 65 6e 25 3d b9 |%..x.menuopen%=.| 00002280 0d 0f 82 05 e1 0d 0f 8c 05 3a 0d 0f 96 10 dd 20 |.........:..... | 00002290 f2 6d 65 6e 75 63 6c 69 63 6b 0d 0f a0 08 ea 20 |.menuclick..... | 000022a0 63 25 0d 0f aa 0d 63 25 3d 62 25 2b 39 30 30 0d |c%....c%=b%+900.| 000022b0 0f b4 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 |.. .. "Wimp_GetP| 000022c0 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 63 25 0d |ointerInfo",,c%.| 000022d0 0f be 13 61 64 6a 25 3d 28 63 25 21 38 20 80 20 |...adj%=(c%!8 . | 000022e0 31 29 0d 0f c8 28 c8 99 20 22 57 69 6d 70 5f 44 |1)...(.. "Wimp_D| 000022f0 65 63 6f 64 65 4d 65 6e 75 22 2c 2c 74 6f 70 6d |ecodeMenu",,topm| 00002300 65 6e 75 25 2c 62 25 2c 63 25 0d 0f d2 14 6f 6c |enu%,b%,c%....ol| 00002310 64 73 70 65 65 64 25 3d 73 70 65 65 64 25 0d 0f |dspeed%=speed%..| 00002320 dc 0c c8 8e 20 24 63 25 20 ca 0d 0f e6 14 c9 20 |.... $c% ...... | 00002330 22 51 75 69 74 22 3a 71 75 69 74 25 3d b9 0d 0f |"Quit":quit%=...| 00002340 f0 18 c9 20 22 46 61 73 74 65 73 74 22 3a 73 70 |... "Fastest":sp| 00002350 65 65 64 25 3d 30 0d 0f fa 15 c9 20 22 46 61 73 |eed%=0..... "Fas| 00002360 74 22 3a 73 70 65 65 64 25 3d 31 0d 10 04 17 c9 |t":speed%=1.....| 00002370 20 22 4d 65 64 69 75 6d 22 3a 73 70 65 65 64 25 | "Medium":speed%| 00002380 3d 32 0d 10 0e 15 c9 20 22 53 6c 6f 77 22 3a 73 |=2..... "Slow":s| 00002390 70 65 65 64 25 3d 33 0d 10 18 18 c9 20 22 53 6c |peed%=3..... "Sl| 000023a0 6f 77 65 73 74 22 3a 73 70 65 65 64 25 3d 34 0d |owest":speed%=4.| 000023b0 10 22 05 cb 0d 10 2c 58 e7 20 73 70 65 65 64 25 |."....,X. speed%| 000023c0 3c 3e 6f 6c 64 73 70 65 65 64 25 20 f2 73 65 74 |<>oldspeed% .set| 000023d0 5f 69 63 6f 6e 5f 73 74 72 69 6e 67 28 6f 70 74 |_icon_string(opt| 000023e0 73 25 2c 31 37 2c 73 70 65 65 64 24 28 73 70 65 |s%,17,speed$(spe| 000023f0 65 64 25 29 29 3a f2 75 70 64 61 74 65 5f 69 63 |ed%)):.update_ic| 00002400 6f 6e 28 6f 70 74 73 25 2c 31 37 29 0d 10 36 0f |on(opts%,17)..6.| 00002410 6d 65 6e 75 6f 70 65 6e 25 3d a3 0d 10 40 2a e7 |menuopen%=...@*.| 00002420 20 61 64 6a 25 20 f2 73 68 6f 77 6d 65 6e 75 28 | adj% .showmenu(| 00002430 74 6f 70 6d 65 6e 75 25 2c 74 6f 70 78 25 2c 74 |topmenu%,topx%,t| 00002440 6f 70 79 25 29 0d 10 4a 05 e1 0d 10 54 05 3a 0d |opy%)..J....T.:.| 00002450 10 5e 0e dd 20 f2 72 65 63 69 65 76 65 0d 10 68 |.^.. .recieve..h| 00002460 0e c8 8e 20 62 25 21 31 36 20 ca 0d 10 72 10 20 |... b%!16 ...r. | 00002470 c9 20 30 3a 71 75 69 74 25 3d b9 0d 10 7c 1e 20 |. 0:quit%=...|. | 00002480 c9 20 26 34 30 30 43 31 3a f2 67 65 74 5f 73 63 |. &400C1:.get_sc| 00002490 72 65 65 6e 5f 73 69 7a 65 0d 10 86 28 20 c9 20 |reen_size...( . | 000024a0 26 34 30 30 43 39 3a 6d 65 6e 75 6f 70 65 6e 25 |&400C9:menuopen%| 000024b0 3d a3 3a 73 63 72 6f 6c 6c 5f 6d 65 73 73 25 3d |=.:scroll_mess%=| 000024c0 a3 0d 10 90 13 20 c9 20 26 35 30 32 3a f2 68 65 |..... . &502:.he| 000024d0 6c 70 6d 65 0d 10 9a 05 cb 0d 10 a4 05 e1 0d 10 |lpme............| 000024e0 ae 05 3a 0d 10 b8 0f dd 20 f2 74 65 72 6d 28 61 |..:..... .term(a| 000024f0 25 29 0d 10 c2 08 ea 20 6e 25 0d 10 cc 0f c8 95 |%)..... n%......| 00002500 20 61 25 3f 6e 25 3e 33 31 0d 10 d6 09 6e 25 2b | a%?n%>31....n%+| 00002510 3d 31 0d 10 e0 05 ce 0d 10 ea 0c 61 25 3f 6e 25 |=1.........a%?n%| 00002520 3d 31 33 0d 10 f4 05 e1 0d 10 fe 05 3a 0d 11 08 |=13.........:...| 00002530 0c dd 20 a4 65 72 72 6f 72 0d 11 12 09 21 62 25 |.. .error....!b%| 00002540 3d 9f 0d 11 1c 0c c8 8e 20 21 62 25 20 ca 0d 11 |=....... !b% ...| 00002550 26 1e c9 20 31 3c 3c 33 30 3a 65 72 72 5f 73 74 |&.. 1<<30:err_st| 00002560 72 24 3d 22 22 3a 62 6f 78 25 3d 31 0d 11 30 2e |r$="":box%=1..0.| 00002570 7f 3a 65 72 72 5f 73 74 72 24 3d 22 28 69 6e 74 |.:err_str$="(int| 00002580 65 72 6e 61 6c 20 63 6f 64 65 20 22 2b c3 9e 2b |ernal code "+..+| 00002590 22 29 22 3a 62 6f 78 25 3d 32 0d 11 3a 05 cb 0d |")":box%=2..:...| 000025a0 11 44 1a 24 28 62 25 2b 34 29 3d f6 24 2b 65 72 |.D.$(b%+4)=.$+er| 000025b0 72 5f 73 74 72 24 2b bd 30 0d 11 4e 40 c8 99 20 |r_str$+.0..N@.. | 000025c0 22 57 69 6d 70 5f 52 65 70 6f 72 74 45 72 72 6f |"Wimp_ReportErro| 000025d0 72 22 2c 62 25 2c 62 6f 78 25 2c 22 54 68 65 20 |r",b%,box%,"The | 000025e0 42 42 43 20 42 61 6c 6c 6f 6f 6e 22 20 b8 20 2c |BBC Balloon" . ,| 000025f0 72 65 73 70 6f 6e 73 65 25 0d 11 58 12 3d 28 72 |response%..X.=(r| 00002600 65 73 70 6f 6e 73 65 25 3d 32 29 0d 11 62 05 3a |esponse%=2)..b.:| 00002610 0d 11 6c 18 dd f2 63 6c 6f 73 65 5f 77 69 6e 64 |..l...close_wind| 00002620 6f 77 28 77 69 6e 25 29 0d 11 76 0c 21 62 25 3d |ow(win%)..v.!b%=| 00002630 77 69 6e 25 0d 11 80 20 c8 99 20 22 57 69 6d 70 |win%... .. "Wimp| 00002640 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 |_GetWindowState"| 00002650 2c 2c 62 25 0d 11 8a 1d c8 99 20 22 57 69 6d 70 |,,b%...... "Wimp| 00002660 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 |_CloseWindow",,b| 00002670 25 0d 11 94 05 e1 0d 11 9e 05 3a 0d 11 a8 17 dd |%.........:.....| 00002680 f2 6f 70 65 6e 5f 77 69 6e 64 6f 77 28 77 69 6e |.open_window(win| 00002690 25 29 0d 11 b2 0c 21 62 25 3d 77 69 6e 25 0d 11 |%)....!b%=win%..| 000026a0 bc 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 |. .. "Wimp_GetWi| 000026b0 6e 64 6f 77 53 74 61 74 65 22 2c 2c 62 25 0d 11 |ndowState",,b%..| 000026c0 c6 1c c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 |.... "Wimp_OpenW| 000026d0 69 6e 64 6f 77 22 2c 2c 62 25 0d 11 d0 05 e1 0d |indow",,b%......| 000026e0 11 da 05 3a 0d 11 e4 11 dd f2 6f 70 65 6e 5f 73 |...:......open_s| 000026f0 68 61 64 6f 77 0d 11 ee 0d 21 62 25 3d 6f 70 74 |hadow....!b%=opt| 00002700 73 25 0d 11 f8 20 c8 99 20 22 57 69 6d 70 5f 47 |s%... .. "Wimp_G| 00002710 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c |etWindowState",,| 00002720 62 25 0d 12 02 0f 21 62 25 3d 73 68 61 64 6f 77 |b%....!b%=shadow| 00002730 25 0d 12 0c 12 62 25 21 34 3d 28 62 25 21 34 29 |%....b%!4=(b%!4)| 00002740 2b 31 32 0d 12 16 12 62 25 21 38 3d 28 62 25 21 |+12....b%!8=(b%!| 00002750 38 29 2d 31 32 0d 12 20 14 62 25 21 31 32 3d 28 |8)-12.. .b%!12=(| 00002760 62 25 21 31 32 29 2b 31 32 0d 12 2a 14 62 25 21 |b%!12)+12..*.b%!| 00002770 31 36 3d 28 62 25 21 31 36 29 2d 31 32 0d 12 34 |16=(b%!16)-12..4| 00002780 0f 62 25 21 32 38 3d 6f 70 74 73 25 0d 12 3e 1c |.b%!28=opts%..>.| 00002790 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e |.. "Wimp_OpenWin| 000027a0 64 6f 77 22 2c 2c 62 25 0d 12 48 05 e1 0d 12 52 |dow",,b%..H....R| 000027b0 04 0d 12 5c 2d dd f2 70 6c 6f 74 28 73 70 72 69 |...\-..plot(spri| 000027c0 74 65 5f 73 70 72 25 2c 20 78 25 2c 20 79 25 2c |te_spr%, x%, y%,| 000027d0 20 70 6c 6f 74 5f 61 63 74 69 6f 6e 25 29 0d 12 | plot_action%)..| 000027e0 66 38 c8 99 20 26 32 45 2c 35 31 32 2b 33 34 2c |f8.. &2E,512+34,| 000027f0 73 70 72 69 74 65 25 2c 73 70 72 69 74 65 5f 73 |sprite%,sprite_s| 00002800 70 72 25 2c 78 25 2c 79 25 2c 70 6c 6f 74 5f 61 |pr%,x%,y%,plot_a| 00002810 63 74 69 6f 6e 25 0d 12 70 05 e1 0d 12 7a 04 0d |ction%..p....z..| 00002820 12 84 2e dd f2 73 63 61 6c 65 28 73 70 72 69 74 |.....scale(sprit| 00002830 65 5f 73 70 72 25 2c 78 25 2c 79 25 2c 78 31 25 |e_spr%,x%,y%,x1%| 00002840 2c 79 31 25 2c 78 32 25 2c 79 32 25 29 0d 12 8e |,y1%,x2%,y2%)...| 00002850 0f 21 73 63 61 6c 65 25 3d 78 31 25 0d 12 98 13 |.!scale%=x1%....| 00002860 21 28 73 63 61 6c 65 25 2b 34 29 3d 79 31 25 0d |!(scale%+4)=y1%.| 00002870 12 a2 13 21 28 73 63 61 6c 65 25 2b 38 29 3d 78 |...!(scale%+8)=x| 00002880 32 25 0d 12 ac 14 21 28 73 63 61 6c 65 25 2b 31 |2%....!(scale%+1| 00002890 32 29 3d 79 32 25 0d 12 b6 36 c8 99 20 26 32 45 |2)=y2%...6.. &2E| 000028a0 2c 35 31 32 2b 35 32 2c 73 70 72 69 74 65 25 2c |,512+52,sprite%,| 000028b0 73 70 72 69 74 65 5f 73 70 72 25 2c 78 25 2c 79 |sprite_spr%,x%,y| 000028c0 25 2c 30 2c 73 63 61 6c 65 25 2c 30 0d 12 c0 05 |%,0,scale%,0....| 000028d0 e1 0d 12 ca 05 3a 0d 12 d4 15 dd f2 67 65 74 5f |.....:......get_| 000028e0 73 63 72 65 65 6e 5f 73 69 7a 65 0d 12 de 2b c8 |screen_size...+.| 000028f0 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 |."OS_ReadModeVar| 00002900 69 61 62 6c 65 22 2c 2d 31 2c 34 20 b8 20 2c 2c |iable",-1,4 . ,,| 00002910 58 66 61 63 74 25 0d 12 e8 2b c8 99 22 4f 53 5f |Xfact%...+.."OS_| 00002920 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 00002930 22 2c 2d 31 2c 35 20 b8 20 2c 2c 59 66 61 63 74 |",-1,5 . ,,Yfact| 00002940 25 0d 12 f2 2b c8 99 22 4f 53 5f 52 65 61 64 4d |%...+.."OS_ReadM| 00002950 6f 64 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c |odeVariable",-1,| 00002960 31 31 20 b8 20 2c 2c 58 4c 69 6d 25 0d 12 fc 2b |11 . ,,XLim%...+| 00002970 c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 |.."OS_ReadModeVa| 00002980 72 69 61 62 6c 65 22 2c 2d 31 2c 31 32 20 b8 20 |riable",-1,12 . | 00002990 2c 2c 59 4c 69 6d 25 0d 13 06 14 58 32 3d 58 4c |,,YLim%....X2=XL| 000029a0 69 6d 25 3c 3c 58 66 61 63 74 25 0d 13 10 14 59 |im%<<Xfact%....Y| 000029b0 32 3d 59 4c 69 6d 25 3c 3c 59 66 61 63 74 25 0d |2=YLim%<<Yfact%.| 000029c0 13 1a 05 e1 0d 13 24 05 3a 0d 13 2e 04 0d 13 38 |......$.:......8| 000029d0 23 dd f2 73 77 69 74 63 68 5f 74 6f 5f 73 70 72 |#..switch_to_spr| 000029e0 69 74 65 28 73 70 72 69 74 65 5f 73 70 72 25 29 |ite(sprite_spr%)| 000029f0 0d 13 42 33 c8 99 20 26 32 45 2c 26 32 33 43 2c |..B3.. &2E,&23C,| 00002a00 73 70 72 69 74 65 25 2c 73 70 72 69 74 65 5f 73 |sprite%,sprite_s| 00002a10 70 72 25 2c 30 20 b8 20 72 30 2c 72 31 2c 72 32 |pr%,0 . r0,r1,r2| 00002a20 2c 72 33 0d 13 4c 05 87 0d 13 56 05 e1 0d 13 60 |,r3..L....V....`| 00002a30 04 0d 13 6a 1f dd f2 73 77 69 74 63 68 5f 74 6f |...j...switch_to| 00002a40 5f 6d 61 73 6b 28 6d 61 73 6b 5f 73 70 72 25 29 |_mask(mask_spr%)| 00002a50 0d 13 74 31 c8 99 20 26 32 45 2c 26 32 33 44 2c |..t1.. &2E,&23D,| 00002a60 73 70 72 69 74 65 25 2c 6d 61 73 6b 5f 73 70 72 |sprite%,mask_spr| 00002a70 25 2c 30 20 b8 20 72 30 2c 72 31 2c 72 32 2c 72 |%,0 . r0,r1,r2,r| 00002a80 33 0d 13 7e 05 87 0d 13 88 05 e1 0d 13 92 04 0d |3..~............| 00002a90 13 9c 10 dd f2 73 77 69 74 63 68 5f 6f 66 66 0d |.....switch_off.| 00002aa0 13 a6 26 c8 99 20 26 32 45 2c 26 32 33 43 2c 72 |..&.. &2E,&23C,r| 00002ab0 31 2c 72 32 2c 72 33 20 b8 20 72 30 2c 72 31 2c |1,r2,r3 . r0,r1,| 00002ac0 72 32 2c 72 33 0d 13 b0 05 87 0d 13 ba 05 e1 0d |r2,r3...........| 00002ad0 13 c4 05 3a 0d 13 ce 0c dd f2 68 65 6c 70 6d 65 |...:......helpme| 00002ae0 0d 13 d8 11 77 69 6e 64 6f 77 25 3d 62 25 21 33 |....window%=b%!3| 00002af0 32 0d 13 e2 0f 69 63 6f 6e 25 3d 62 25 21 33 36 |2....icon%=b%!36| 00002b00 0d 13 ec 22 68 65 6c 70 24 3d 22 59 6f 75 27 72 |..."help$="You'r| 00002b10 65 20 77 61 74 63 68 69 6e 67 20 42 42 43 20 31 |e watching BBC 1| 00002b20 2e 22 0d 13 f6 04 0d 14 00 10 c8 8e 20 77 69 6e |.".......... win| 00002b30 64 6f 77 25 20 ca 0d 14 0a 04 0d 14 14 0c 20 c9 |dow% ......... .| 00002b40 20 69 6e 66 6f 25 0d 14 1e 37 20 20 68 65 6c 70 | info%...7 help| 00002b50 24 3d 22 54 68 69 73 20 73 68 6f 77 73 20 69 6e |$="This shows in| 00002b60 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 |formation about | 00002b70 74 68 65 20 70 72 6f 67 72 61 6d 2e 22 0d 14 28 |the program."..(| 00002b80 10 20 20 c8 8e 20 69 63 6f 6e 25 20 ca 0d 14 32 |. .. icon% ...2| 00002b90 35 20 20 20 c9 20 30 2c 31 3a 68 65 6c 70 24 3d |5 . 0,1:help$=| 00002ba0 22 54 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d |"This is the nam| 00002bb0 65 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d |e of the program| 00002bc0 2e 22 0d 14 3c 38 20 20 20 c9 20 32 2c 33 3a 68 |."..<8 . 2,3:h| 00002bd0 65 6c 70 24 3d 22 54 68 69 73 20 69 73 20 74 68 |elp$="This is th| 00002be0 65 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 65 |e purpose of the| 00002bf0 20 70 72 6f 67 72 61 6d 2e 22 0d 14 46 37 20 20 | program."..F7 | 00002c00 20 c9 20 34 2c 35 3a 68 65 6c 70 24 3d 22 54 68 | . 4,5:help$="Th| 00002c10 69 73 20 69 73 20 74 68 65 20 61 75 74 68 6f 72 |is is the author| 00002c20 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 2e | of the program.| 00002c30 22 0d 14 50 64 20 20 20 20 20 20 20 20 20 20 20 |"..Pd | 00002c40 20 e7 20 73 63 72 6f 6c 6c 5f 6d 65 73 73 25 3d | . scroll_mess%=| 00002c50 b9 20 8c 20 68 65 6c 70 24 3d 22 48 6d 6d 6d 2e |. . help$="Hmmm.| 00002c60 20 54 68 69 73 20 6c 6f 6f 6b 73 20 6c 69 6b 65 | This looks like| 00002c70 20 61 20 73 63 72 6f 6c 6c 69 6e 67 20 6d 65 73 | a scrolling mes| 00002c80 73 61 67 65 2e 7c 4d 22 2b 73 63 72 6f 6c 6c 5f |sage.|M"+scroll_| 00002c90 6d 65 73 73 24 0d 14 5a 3f 20 20 20 c9 20 36 2c |mess$..Z? . 6,| 00002ca0 37 3a 68 65 6c 70 24 3d 22 54 68 69 73 20 69 73 |7:help$="This is| 00002cb0 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d | the version num| 00002cc0 62 65 72 20 6f 66 20 74 68 65 20 70 72 6f 67 72 |ber of the progr| 00002cd0 61 6d 2e 22 0d 14 64 44 20 20 20 c9 20 38 3a 68 |am."..dD . 8:h| 00002ce0 65 6c 70 24 3d 22 48 6d 6d 6d 2e 20 49 20 77 6f |elp$="Hmmm. I wo| 00002cf0 6e 64 65 72 20 77 68 61 74 20 68 61 70 70 65 6e |nder what happen| 00002d00 73 20 69 66 20 49 20 63 6c 69 63 6b 20 74 68 69 |s if I click thi| 00002d10 73 2e 2e 2e 2e 20 3f 22 0d 14 6e 07 20 20 cb 0d |s.... ?"..n. ..| 00002d20 14 78 04 0d 14 82 13 20 c9 20 62 61 6c 6c 6f 6f |.x..... . balloo| 00002d30 6e 5f 77 69 6e 25 0d 14 8c 8e 20 20 68 65 6c 70 |n_win%.... help| 00002d40 24 3d 22 59 6f 75 27 72 65 20 77 61 74 63 68 69 |$="You're watchi| 00002d50 6e 67 20 42 42 43 20 31 2e 7c 4d 43 6c 69 63 6b |ng BBC 1.|MClick| 00002d60 20 53 45 4c 45 43 54 20 74 6f 20 6f 70 65 6e 20 | SELECT to open | 00002d70 74 68 65 20 63 6f 6e 74 72 6f 6c 20 70 61 6e 65 |the control pane| 00002d80 6c 2e 7c 4d 44 72 61 67 20 41 44 4a 55 53 54 20 |l.|MDrag ADJUST | 00002d90 74 6f 20 6d 6f 76 65 20 74 68 65 20 62 61 6c 6c |to move the ball| 00002da0 6f 6f 6e 2e 7c 4d 43 6c 69 63 6b 20 4d 45 4e 55 |oon.|MClick MENU| 00002db0 20 66 6f 72 20 74 68 65 20 6d 61 69 6e 20 6d 65 | for the main me| 00002dc0 6e 75 2e 22 0d 14 96 04 0d 14 a0 0c 20 c9 20 6f |nu."........ . o| 00002dd0 70 74 73 25 0d 14 aa 30 20 20 68 65 6c 70 24 3d |pts%...0 help$=| 00002de0 22 54 68 69 73 20 69 73 20 74 68 65 20 62 61 6c |"This is the bal| 00002df0 6c 6f 6f 6e 20 63 6f 6e 74 72 6f 6c 20 70 61 6e |loon control pan| 00002e00 65 6c 2e 22 0d 14 b4 10 20 20 c8 8e 20 69 63 6f |el.".... .. ico| 00002e10 6e 25 20 ca 0d 14 be 34 20 20 20 c9 20 30 3a 68 |n% ....4 . 0:h| 00002e20 65 6c 70 24 2b 3d 22 7c 4d 44 72 61 67 20 53 45 |elp$+="|MDrag SE| 00002e30 4c 45 43 54 20 6f 72 20 41 44 4a 55 53 54 20 74 |LECT or ADJUST t| 00002e40 6f 20 6d 6f 76 65 2e 22 0d 14 c8 16 20 20 20 c9 |o move.".... .| 00002e50 20 30 3a 68 65 6c 70 24 2b 3d 22 7c 4d 22 0d 14 | 0:help$+="|M"..| 00002e60 d2 b7 20 20 20 c9 20 32 3a 68 65 6c 70 24 2b 3d |.. . 2:help$+=| 00002e70 22 7c 4d 57 68 65 6e 20 73 65 6c 65 63 74 65 64 |"|MWhen selected| 00002e80 2c 20 74 68 65 20 62 61 6c 6c 6f 6f 6e 20 63 61 |, the balloon ca| 00002e90 6e 20 62 6f 75 6e 63 65 20 6f 66 66 20 74 68 65 |n bounce off the| 00002ea0 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 | left and right | 00002eb0 65 64 67 65 73 20 6f 66 20 74 68 65 20 73 63 72 |edges of the scr| 00002ec0 65 65 6e 2e 20 57 68 65 6e 20 75 6e 73 65 6c 65 |een. When unsele| 00002ed0 63 74 65 64 2c 20 74 68 65 20 62 61 6c 6c 6f 6f |cted, the balloo| 00002ee0 6e 20 63 61 6e 20 64 72 69 66 74 20 6f 66 66 20 |n can drift off | 00002ef0 6f 6e 65 20 65 64 67 65 20 6f 66 20 74 68 65 20 |one edge of the | 00002f00 73 63 72 65 65 6e 20 74 6f 20 74 68 65 20 6f 74 |screen to the ot| 00002f10 68 65 72 2e 22 0d 14 dc 74 20 20 20 c9 20 31 34 |her."...t . 14| 00002f20 3a 68 65 6c 70 24 2b 3d 22 7c 4d 57 68 65 6e 20 |:help$+="|MWhen | 00002f30 73 65 6c 65 63 74 65 64 2c 20 74 68 65 20 62 61 |selected, the ba| 00002f40 6c 6c 6f 6f 6e 20 63 61 6e 20 63 68 61 6e 67 65 |lloon can change| 00002f50 20 64 69 72 65 63 74 69 6f 6e 20 66 72 6f 6d 20 | direction from | 00002f60 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 57 68 |time to time. Wh| 00002f70 65 6e 20 75 6e 73 65 6c 65 63 74 65 64 2c 20 69 |en unselected, i| 00002f80 74 20 77 6f 6e 27 74 2e 22 0d 14 e6 8a 20 20 20 |t won't.".... | 00002f90 c9 20 31 36 3a 68 65 6c 70 24 2b 3d 22 7c 4d 57 |. 16:help$+="|MW| 00002fa0 68 65 6e 20 73 65 6c 65 63 74 65 64 2c 20 74 68 |hen selected, th| 00002fb0 65 20 62 61 6c 6c 6f 6f 6e 20 72 6f 74 61 74 65 |e balloon rotate| 00002fc0 73 20 2d 20 69 74 20 63 61 6e 20 73 6c 6f 77 20 |s - it can slow | 00002fd0 74 68 65 20 64 65 73 6b 74 6f 70 20 64 6f 77 6e |the desktop down| 00002fe0 20 73 6c 69 67 68 74 6c 79 20 73 6f 20 79 6f 75 | slightly so you| 00002ff0 20 6d 61 79 20 77 69 73 68 20 74 6f 20 74 75 72 | may wish to tur| 00003000 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f 66 |n this option of| 00003010 66 2e 22 0d 14 f0 61 20 20 20 c9 20 31 37 3a 68 |f."...a . 17:h| 00003020 65 6c 70 24 2b 3d 22 7c 4d 54 68 69 73 20 73 68 |elp$+="|MThis sh| 00003030 6f 77 73 20 74 68 65 20 73 70 65 65 64 20 6f 66 |ows the speed of| 00003040 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 20 59 6f | the program. Yo| 00003050 75 20 63 61 6e 20 63 68 61 6e 67 65 20 69 74 20 |u can change it | 00003060 62 79 20 63 6c 69 63 6b 69 6e 67 20 53 45 4c 45 |by clicking SELE| 00003070 43 54 2e 22 0d 14 fa 47 20 20 20 c9 20 31 38 3a |CT."...G . 18:| 00003080 68 65 6c 70 24 2b 3d 22 7c 4d 43 6c 69 63 6b 20 |help$+="|MClick | 00003090 53 45 4c 45 43 54 20 74 6f 20 63 68 61 6e 67 65 |SELECT to change| 000030a0 20 74 68 65 20 73 70 65 65 64 20 6f 66 20 74 68 | the speed of th| 000030b0 65 20 70 72 6f 67 72 61 6d 2e 22 0d 15 04 44 20 |e program."...D | 000030c0 20 20 c9 20 31 35 3a 68 65 6c 70 24 2b 3d 22 7c | . 15:help$+="|| 000030d0 4d 43 6c 69 63 6b 20 53 45 4c 45 43 54 20 74 6f |MClick SELECT to| 000030e0 20 73 74 6f 70 20 74 68 65 20 62 61 6c 6c 6f 6f | stop the balloo| 000030f0 6e 20 66 72 6f 6d 20 6d 6f 76 69 6e 67 2e 22 0d |n from moving.".| 00003100 15 0e 59 20 20 20 c9 20 34 2c 35 2c 36 2c 37 2c |..Y . 4,5,6,7,| 00003110 38 2c 39 2c 31 30 2c 31 31 3a 68 65 6c 70 24 2b |8,9,10,11:help$+| 00003120 3d 22 7c 4d 43 6c 69 63 6b 20 53 45 4c 45 43 54 |="|MClick SELECT| 00003130 20 74 6f 20 6d 6f 76 65 20 74 68 65 20 62 61 6c | to move the bal| 00003140 6c 6f 6f 6e 20 69 6e 20 74 68 69 73 20 64 69 72 |loon in this dir| 00003150 65 63 74 69 6f 6e 2e 22 0d 15 18 07 20 20 cb 0d |ection.".... ..| 00003160 15 22 04 0d 15 2c 05 cb 0d 15 36 05 3a 0d 15 40 |."...,....6.:..@| 00003170 0f 62 25 21 30 30 20 3d 20 32 35 36 0d 15 4a 10 |.b%!00 = 256..J.| 00003180 62 25 21 31 32 20 3d 20 62 25 21 38 0d 15 54 11 |b%!12 = b%!8..T.| 00003190 62 25 21 31 36 20 3d 20 26 30 35 30 33 0d 15 5e |b%!16 = &0503..^| 000031a0 13 24 28 62 25 2b 32 30 29 3d 20 68 65 6c 70 24 |.$(b%+20)= help$| 000031b0 0d 15 68 24 c8 99 20 22 57 69 6d 70 5f 53 65 6e |..h$.. "Wimp_Sen| 000031c0 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 62 25 2c |dMessage",17,b%,| 000031d0 62 25 21 34 0d 15 72 05 e1 0d ff |b%!4..r....| 000031db