Home » Archimedes archive » Archimedes World » AW-1994-04-Disc1.adf » Disk1Apr94 » !AWApr94/Goodies/Hex/!Hex/Library/LibInit

!AWApr94/Goodies/Hex/!Hex/Library/LibInit

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-04-Disc1.adf » Disk1Apr94
Filename: !AWApr94/Goodies/Hex/!Hex/Library/LibInit
Read OK:
File size: 36CE bytes
Load address: 0000
Exec address: 0000
File contents
   10REM HEX library: LibInit: Section 2, initialisation.
   20DEFPROCdefine_arrays
   30LOCAL blk_size%
   40blk_size%=&1600
   50DIM blk% blk_size%
   60DIM temp_blk% blk_size%
   70DIM errorblk% &100
   80DIM workstart% &400
   90workfree%=workstart%
  100workend%=workstart%+&400
  110PROCmore_arrays
  120ENDPROC
  130DEFPROCmore_arrays
  140DIM board_status%(10,10)
  150DIM check_win%(10,10,1)
  160DIM computer%(10,10,1)
  170DIM winning_moves%(121,1)
  180DIM hex%(10,10)
  190ENDPROC
  200DEFPROCdefine_variables
  210app_sprite$   ="!Hex"
  220app_name$      ="HEX"
  230app_purpose$   ="A Two Player Board Game"
  240app_copyright$ ="Archimedes World  1994"
  250app_author$    ="Jan Jarvis"
  260app_version$   ="Version 1.00, 1st Jan 1994"
  270app_dir$=FNsystem_variable("Obey$Dir")
  280errorcount%=0
  290menufile%=0
  300icon_bar%=-2
  310select_click%=4
  320adjust_click%=1
  330menu_click%=2
  340white%  =  0
  350l_grey% =  1
  360grey%   =  3
  370red%    = 11
  380blue%   = 15
  390poll_mask%=&81930
  400poll_time%=0
  410quit%=FALSE
  420PROCload_options
  430PROCmore_variables
  440ENDPROC
  450DEFPROCload_options
  460level%         = 2
  470human_player1% = FALSE
  480human_player2% = TRUE
  490load% = OPENIN (app_dir$+".!Config")
  500IF load% THENINPUT#load%, level%, human_player1%, human_player2%
  510CLOSE#load%
  520ENDPROC
  530DEFPROCmore_variables
  540max_level% = 5
  550starter% = 2
  560human_player1_temp% = human_player1%
  570human_player2_temp% = human_player2%
  580level_temp%         = level%
  590on_off%    = 0
  600red_wins%  = 0
  610blue_wins% = 0
  620during_game%   = FALSE
  630resign%        = FALSE
  640win%           = FALSE
  650calcs_done% = FALSE
  660comp_count% = 0
  670ENDPROC
  680DEFPROCinstall_icon
  690icon_bar_handle%=FNput_icon_on_bar(app_sprite$,"RIGHT")
  700ENDPROC
  710DEFPROCload_sprites
  720sprites%=FNload_sprites(app_dir$+".Sprites")
  730ENDPROC
  740DEFPROCcreate_windows
  750options_window%=FNcreate_window("HEX Options",&FD000002,500,742,698,500,158,784)
  760PROCoptions_window_icons
  770info%=FNcreate_info_window
  780hex_window%=FNcreate_window("HEX",&FF000002,1155,784,45,1155,196,784)
  790PROChex_window_icons
  800score_window%=FNcreate_window("Scores",&87000012,240,166,65,240,138,784)
  810PROCscore_window_icons
  820ENDPROC
  830DEFPROCoptions_window_icons
  840opt_block1% = FNadd_icon_block(options_window%,30,-30,460,-200,l_grey%)
  850PROCborder_icon(options_window%,opt_block1%)
  860opt_block2% = FNadd_icon_block(options_window%,30,-230,460,-400,l_grey%)
  870PROCborder_icon(options_window%,opt_block2%)
  880opt_block3% = FNadd_icon_block(options_window%,30,-430,460,-600,l_grey%)
  890PROCborder_icon(options_window%,opt_block3%)
  900opt_label1% =FNadd_icon("label","Blue player",options_window%,60,-40,0,0,0)
  910opt_blue_h% =FNadd_icon("radio","Human",   options_window%,90, -90,0,1,0)
  920opt_blue_c% =FNadd_icon("radio","Computer",options_window%,90,-140,0,1,0)
  930opt_label2% =FNadd_icon("label","Red player",options_window%,60,-240,0,0,0)
  940opt_red_h% =FNadd_icon("radio","Human",   options_window%,90, -290,0,2,0)
  950opt_red_c% =FNadd_icon("radio","Computer",options_window%,90,-340,0,2,0)
  960opt_label4% =FNadd_icon("label","Computer level",options_window%,60,-440,0,0,0)
  970opt_comp_1% =FNadd_icon("radio","1",options_window%, 40,-510,0,4,0)
  980opt_comp_2% =FNadd_icon("radio","2",options_window%,125,-510,0,4,0)
  990opt_comp_3% =FNadd_icon("radio","3",options_window%,210,-510,0,4,0)
 1000opt_comp_4% =FNadd_icon("radio","4",options_window%,295,-510,0,4,0)
 1010opt_comp_5% =FNadd_icon("radio","5",options_window%,380,-510,0,4,0)
 1020opt_cancel% = FNadd_icon("action","Cancel",options_window%,40,-640,0,0,1)
 1030opt_ok% = FNadd_icon("action","  OK  ",options_window%,340,-640,0,0,1)
 1040PROCshade_icon(options_window%,opt_comp_5%,max_level%<5)
 1050PROCshade_icon(options_window%,opt_comp_4%,max_level%<4)
 1060PROCshade_icon(options_window%,opt_comp_3%,max_level%<3)
 1070PROCshade_icon(options_window%,opt_comp_2%,max_level%<2)
 1080PROCupdate_options_icons
 1090ENDPROC
 1100DEFPROChex_window_icons
 1110board_sprite%=FNadd_icon("sprite","board",hex_window%,0,0,0,sprites%,0)
 1120LOCAL row%,col%,window_x%,window_y%
 1130FOR row% = 0 TO 10
 1140window_y%= -((10-row%)*52)-105
 1150FOR col% = 0 TO 10
 1160window_x%=(col%*72)+(row%*36)+10
 1170hex%(col%,row%)=FNadd_icon("sprite","blank",hex_window%,window_x%,window_y%,0,sprites%,0)
 1180NEXT col%
 1190NEXT row%
 1200report_blue%=FNadd_icon("report","         ", hex_window%,700,-20,0,0,1)
 1210report_red% =FNadd_icon("report","         ",hex_window%,966,-500,0,0,1)
 1220PROCset_hex_window_icons
 1230ENDPROC
 1240DEFPROCscore_window_icons
 1250score_block1%=FNadd_icon_block(score_window%,10,-10,230,-76,grey%)
 1260PROCborder_icon(score_window%,score_block1%)
 1270blue_sprite%=FNadd_icon("sprite","blue",score_window%,30,-24,0,sprites%,0)
 1280blue_score%=FNadd_icon("report","     ",score_window%,120,-20,0,0,0)
 1290score_block2%=FNadd_icon_block(score_window%,10,-90,230,-156,grey%)
 1300PROCborder_icon(score_window%,score_block2%)
 1310red_sprite%=FNadd_icon("sprite","red",score_window%,30,-104,0,sprites%,0)
 1320red_score%=FNadd_icon("report","     ",score_window%,120,-100,0,0,0)
 1330PROCupdate_scores
 1340ENDPROC
 1350DEFPROCinfo
 1360PROCput_info_text(info%,app_name$,app_purpose$,app_copyright$,app_author$,app_version$)
 1370ENDPROC
 1380DEFPROCmenus
 1390PROCload_menus(app_dir$+".menus")
 1400ENDPROC
 1410DEFFNfile_size(file$)
 1420LOCAL size%,found%
 1430SYS"OS_File",17,file$ TO found%,,,,size%
 1440IF found%<>1 THENERROR 203,"File '"+FNleaf(file$)+"' not found!"
 1450=size%
 1460DEFFNadd_icon_block(window_handle%,minx%,miny%,maxx%,maxy%,colour%)
 1470LOCAL icon%
 1480temp_blk%!0=window_handle%
 1490IF minx%>maxx% SWAP minx%,maxx%
 1500IF miny%>maxy% SWAP miny%,maxy%
 1510IF minx%=maxx% maxx%+=1
 1520IF miny%=maxy% maxy%+=1
 1530temp_blk%!4=minx%
 1540temp_blk%!8=miny%
 1550temp_blk%!12=maxx%
 1560temp_blk%!16=maxy%
 1570temp_blk%!20=32+(colour%<<28)
 1580SYS "Wimp_CreateIcon",,temp_blk% TO icon%
 1590=icon%
 1600DEFPROCborder_icon(window_handle%,icon_handle%)
 1610LOCAL icon%,minx%,miny%,maxx%,maxy%,flag%,tl%,br%
 1620temp_blk%!0=window_handle%
 1630temp_blk%!4=icon_handle%
 1640SYS"Wimp_GetIconState",,temp_blk%
 1650minx%=temp_blk%!8
 1660miny%=temp_blk%!12
 1670maxx%=temp_blk%!16
 1680maxy%=temp_blk%!20
 1690flag%=temp_blk%!24
 1700tl%=0
 1710br%=4
 1720IF (flag% AND 4)=4 minx%-=4:maxx%+=4:miny%-=4:maxy%+=4:tl%=4:br%=0
 1730icon%=FNadd_icon_block(window_handle%,maxx%,miny%-4,maxx%+4,maxy%+4,br%)
 1740icon%=FNadd_icon_block(window_handle%,minx%-4,maxy%,maxx%+2,maxy%+4,tl%)
 1750icon%=FNadd_icon_block(window_handle%,minx%-4,miny%-4,minx%,maxy%,tl%)
 1760icon%=FNadd_icon_block(window_handle%,minx%-2,miny%-4,maxx%+2,miny%,br%)
 1770ENDPROC
 1780IF colour%<0 OR colour%>15 ENDPROC
 1790temp_blk%!0=window_handle%
 1800temp_blk%!4=icon_handle%
 1810SYS"Wimp_GetIconState",,temp_blk%
 1820IF (temp_blk%!24 AND 1<<6) THENENDPROC
 1830temp_blk%!12=&F0000000
 1840temp_blk%!8=colour%<<28:SYS"Wimp_SetIconState",,temp_blk%
 1850ENDPROC
 1860DEFFNput_icon_on_bar(sprite_name$,side$)
 1870LOCAL handle%
 1880IF side$="RIGHT" !temp_blk%=-1 ELSE!temp_blk%=-2
 1890temp_blk%!4=0
 1900temp_blk%!8=0
 1910temp_blk%!12=68
 1920temp_blk%!16=68
 1930temp_blk%!20=&1700202A
 1940$(temp_blk%+24)=sprite_name$
 1950SYS "Wimp_CreateIcon",,temp_blk% TO handle%
 1960=handle%
 1970DEFPROCput_info_text(window_handle%,name$,purpose$,copyright$,author$,version$)
 1980PROCput_icon_text(window_handle%,1,name$)
 1990PROCput_icon_text(window_handle%,2,purpose$)
 2000PROCput_icon_text(window_handle%,3,copyright$)
 2010PROCput_icon_text(window_handle%,4,author$)
 2020PROCput_icon_text(window_handle%,5,version$)
 2030ENDPROC
 2040DEF FNtask_initialise(title$)
 2050LOCAL version%
 2060version%=200
 2070SYS "Wimp_Initialise",version%,&4B534154,title$ TO version%,this_task%
 2080=this_task%
 2090DEFPROCadd_menu_item(line$)
 2100LOCAL menuflag%,iconflag%,param$,sub%,itemtext$,writable%,maxlength%
 2110iconflag%=&7000021:sub%=-1:writable%=FALSE
 2120itemtext$=FNmenu_item_text(line$):maxlength%=LENitemtext$
 2130REPEAT
 2140param$=FNmenu_item_param(line$)
 2150CASE LEFT$(param$,4) OF
 2160WHEN"tick":menuflag%=menuflag%OR1
 2170WHEN"line":menuflag%=menuflag%OR2
 2180WHEN"shad":iconflag%=iconflag%OR&400000
 2190WHEN"subm":sub%=FNmenu_submenu(FNmenuvar(param$))
 2200WHEN"wind":sub%=FNmenu_window(FNmenuvar(param$))
 2210WHEN"icon":iconflag%=FNmenu_iconflag(FNmenuvar(param$))
 2220WHEN"writ":PROCmenu_writable(FNmenuvar(param$))
 2230ENDCASE
 2240UNTIL param$=""
 2250pointer%!0=menuflag%
 2260pointer%!4=sub%
 2270IF LEN(itemtext$)>12 OR writable% THEN
 2280pointer%!8=iconflag% OR &100
 2290PROCindirected_item(pointer%,writable%,maxlength%)
 2300ELSE
 2310pointer%!8=iconflag%
 2320$(pointer%+12)=LEFT$(itemtext$+CHR$(0),12)
 2330ENDIF
 2340pointer%+=24
 2350ENDPROC
 2360DEFFNbeginmenu(line$)
 2370IF LEFT$(line$,9)="beginmenu" =TRUE
 2380=FALSE
 2390DEFPROCdim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
 2400DIM menustart% (menucount%*28)+(itemcount%*24)
 2410DIM menuwidth%(menucount%)
 2420DIM menu%(menucount%)
 2430DIM writable_item%(writecount%)
 2440DIM writable_len%(writecount%)
 2450ENDPROC
 2460DEFPROCgoto_beginmenu
 2470LOCAL temp%,line$
 2480PTR#menufile%=0
 2490REPEAT
 2500temp%=PTR#menufile%
 2510line$=GET$#menufile%
 2520UNTIL FNbeginmenu(line$) OR EOF#menufile%
 2530IFEOF#menufile% ERROR 200,"No 'beginmenu' found in menu file"
 2540PTR#menufile%=temp%
 2550ENDPROC
 2560DEFPROCindirected_item(menu_ptr%,writable%,length%)
 2570LOCAL indir_ptr%
 2580IF writable% THEN
 2590DIM indir_ptr% length%+1
 2600ELSE
 2610DIM indir_ptr% 1+LENitemtext$
 2620ENDIF
 2630menu_ptr%!12=indir_ptr%
 2640$indir_ptr%=itemtext$+CHR$(0)
 2650IF writable% THEN
 2660writable_item%(writable%)=indir_ptr%
 2670writable_len%(writable%)=length%
 2680indir_ptr%+=length%+1
 2690menu_ptr%!20=length%+1
 2700ELSE
 2710indir_ptr%+=1+LENitemtext$
 2720menu_ptr%!20=1+LENitemtext$
 2730ENDIF
 2740?indir_ptr%=0
 2750menu_ptr%!16=indir_ptr%
 2760ENDPROC
 2770DEFPROCload_menus(menufile$)
 2780LOCAL menucount%,header%,line$,pointer%,menustart%
 2790PROCsize_menu_arrays(menufile$)
 2800menufile%=OPENINmenufile$
 2810PROCset_menu_arrays
 2820PROCgoto_beginmenu
 2830menucount%=0:header%=FALSE
 2840REPEAT
 2850line$=GET$#menufile%
 2860IF FNbeginmenu(line$) THEN
 2870IFheader% ERROR 200,"Bad menu file, no items in menu "+STR$(menucount%)
 2880IFmenucount% PROCmark_menu_end(pointer%)
 2890menucount%+=1
 2900line$=GET$#menufile%
 2910PROCmake_menu_header(pointer%,line$,menuwidth%(menucount%)):header%=TRUE
 2920ELSE
 2930PROCadd_menu_item(line$):header%=FALSE
 2940ENDIF
 2950UNTIL EOF#menufile%
 2960PROCmark_menu_end(pointer%)
 2970SYS"XOS_Find",0,menufile%:menufile%=0
 2980IFheader% ERROR 200,"Bad menu file, no items in menu "+STR$(menucount%)
 2990ENDPROC
 3000DEFPROCmake_menu_header(RETURN pointer%,title$,width%)
 3010$pointer%=LEFT$(title$,12)+CHR$(0)
 3020pointer%?12=7
 3030pointer%?13=2
 3040pointer%?14=7
 3050pointer%?15=0
 3060pointer%!16=width%
 3070pointer%!20=44
 3080pointer%!24=0
 3090pointer%+=28
 3100ENDPROC
 3110DEFPROCmark_menu_end(pointer%)
 3120!(pointer%-24)=!(pointer%-24) OR &80
 3130ENDPROC
 3140DEFFNmenu_iconflag(var$)
 3150IFvar$="" ERROR 200,"Menu icon flag value missing!"
 3160=EVAL(var$)
 3170DEFFNmenu_item_param(RETURN item$)
 3180LOCAL param$
 3190IF INSTR(item$,",") THEN
 3200item$=MID$(item$,INSTR(item$,",")+1)
 3210param$=LEFT$(item$,INSTR(item$,",")-1)
 3220ELSE
 3230param$=""
 3240ENDIF
 3250=param$
 3260DEFFNmenu_item_text(item$)
 3270IF INSTR(item$,",") item$=LEFT$(item$,INSTR(item$,",")-1)
 3280=item$
 3290DEFFNmenu_submenu(var$)
 3300IF VAL(var$)<1 OR VAL(var$)>DIM(menu%(),1) THEN
 3310ERROR 200,"Can't find menu "+var$+", as referred to in:- "+param$
 3320ENDIF
 3330IF VAL(var$)=menucount% THEN
 3340ERROR 200,"An item in menu "+var$+" cannot have menu "+var$+" as a submenu!"
 3350ENDIF
 3360=menu%(VAL(var$))
 3370DEFFNmenuvar(var$)
 3380var$=MID$(var$,INSTR(var$,"(")+1)
 3390var$=LEFT$(var$,INSTR(var$,")")-1)
 3400=var$
 3410DEFFNmenu_window(var$)
 3420LOCAL handle%
 3430LOCAL ERROR
 3440ONERROR ERROR EXT 0,"Menu file error. Window variable "+var$+" not found."
 3450handle%=EVAL(var$)
 3460IF handle%<1 THEN
 3470SYS"XOS_Find",0,menufile%
 3480ERROR
 3490ENDIF
 3500=handle%
 3510DEFPROCmenu_writable(var$)
 3520maxlength%=0
 3530IF INSTR(var$,":") THEN
 3540maxlength%=VAL(MID$(var$,INSTR(var$,":")+1))
 3550IFLEN(itemtext$)>maxlength% maxlength%=LENitemtext$
 3560ELSE
 3570maxlength%=LENitemtext$
 3580ENDIF
 3590menuflag%=menuflag%OR4:writable%=VAL(var$)
 3600ENDPROC
 3610DEFPROCset_menu_arrays
 3620LOCAL itemcount%,line$,width%
 3630menucount%=0:pointer%=menustart%
 3640PROCgoto_beginmenu
 3650REPEAT
 3660line$=GET$#menufile%
 3670IF FNbeginmenu(line$) THEN
 3680menu%(menucount%+1)=menustart%+(menucount%*28)+(itemcount%*24)
 3690line$=GET$#menufile%
 3700menucount%+=1
 3710line$=LEFT$(line$,12)
 3720menuwidth%(menucount%)=12+16*LENline$
 3730ELSE
 3740itemcount%+=1
 3750IF INSTR(line$,",") THEN
 3760width%=12+16*LEN(LEFT$(line$,INSTR(line$,",")-1))
 3770ELSE
 3780width%=12+16*LENline$
 3790ENDIF
 3800IF width%>menuwidth%(menucount%) menuwidth%(menucount%)=width%
 3810ENDIF
 3820UNTIL EOF#menufile%
 3830ENDPROC
 3840DEFPROCsize_menu_arrays(menufile$)
 3850LOCAL menucount%,itemcount%,writecount%,windowcount%,line$
 3860menufile%=OPENINmenufile$
 3870REPEAT
 3880line$=GET$#menufile%
 3890IF FNbeginmenu(line$) THEN
 3900menucount%+=1:line$=GET$#menufile%
 3910ELSE
 3920IF INSTR(line$,",writ") writecount%+=1
 3930IF INSTR(line$,",wind") windowcount%+=1
 3940itemcount%+=1
 3950ENDIF
 3960UNTIL EOF#menufile%
 3970SYS"XOS_Find",0,menufile%:menufile%=0
 3980PROCdim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
 3990ENDPROC
 4000DEFFNsystem_variable(sys_var$)
 4010LOCAL length%
 4020SYS"XOS_ReadVarVal",sys_var$+CHR$(0),temp_blk%,-1 TO ,,length%
 4030IF length%=0 ERROR EXT 0,"System variable '"+sys_var$+"' not found!"
 4040SYS"XOS_ReadVarVal",sys_var$+CHR$(0),temp_blk%,255,,3 TO ,,length%
 4050?(temp_blk%+length%)=13
 4060=$temp_blk%
 4070DEFFNload_sprites(file$)
 4080LOCAL sprites%,size%
 4090size%=FNfile_size(file$)+16
 4100DIM sprites% size%
 4110sprites%!0=size%
 4120sprites%!8=16
 4130SYS"OS_SpriteOp",&10A,sprites%,file$
 4140=sprites%
 4150DEFFNcreate_info_window
 4160LOCAL icon%
 4170info%=FNcreate_window("About this program",&84000012,660,264,0,660,999,999)
 4180icon%=  FNadd_icon("label","   Name:",info%,8,-4,0,0,0)
 4190icon%=  FNadd_icon("report",STRING$(30," "),info%,156,-4,0,0,0)
 4200icon%=  FNadd_icon("report",STRING$(30," "),info%,156,-56,0,0,0)
 4210icon%=  FNadd_icon("report",STRING$(30," "),info%,156,-108,0,0,0)
 4220icon%=  FNadd_icon("report",STRING$(30," "),info%,156,-160,0,0,0)
 4230icon%=  FNadd_icon("report",STRING$(30," "),info%,156,-212,0,0,0)
 4240icon%=  FNadd_icon("label","Purpose:",info%,8,-56,0,0,0)
 4250icon%=  FNadd_icon("label","      �:",info%,8,-108,0,0,0)
 4260icon%=  FNadd_icon("label"," Author:",info%,8,-160,0,0,0)
 4270icon%=  FNadd_icon("label","Version:",info%,8,-212,0,0,0)
 4280=info%
 4290DEFFNcreate_window(title$,wf%,x_size%,y_size%,left%,width%,bottom%,height%)
 4300LOCAL title_space%,handle%
 4310DIM title_space% (1+LENtitle$)
 4320temp_blk%!0=left%
 4330temp_blk%!4=bottom%
 4340temp_blk%!8=left%+width%
 4350temp_blk%!12=bottom%+height%
 4360temp_blk%!16=0
 4370temp_blk%!20=0
 4380temp_blk%!24=-1
 4390IF wf%=0 wf%=&FF000012
 4400temp_blk%!28=wf%
 4410temp_blk%?32=7
 4420temp_blk%?33=2
 4430temp_blk%?34=7
 4440temp_blk%?35=1
 4450temp_blk%?36=3
 4460temp_blk%?37=1
 4470temp_blk%?38=12
 4480temp_blk%?39=0
 4490temp_blk%!40=0
 4500temp_blk%!44=-y_size%
 4510temp_blk%!48=x_size%
 4520temp_blk%!52=0
 4530temp_blk%!56=&119
 4540temp_blk%!60=&6000
 4550temp_blk%!64=1
 4560temp_blk%?68=0
 4570temp_blk%?69=0
 4580temp_blk%?70=0
 4590temp_blk%?71=0
 4600$title_space%=title$
 4610temp_blk%!72=title_space%
 4620temp_blk%!76=-1
 4630temp_blk%!80=LEN(title$)+1
 4640temp_blk%!84=0
 4650SYS"Wimp_CreateWindow",,temp_blk% TO handle%
 4660=handle%

6� HEX library: LibInit: Section 2, initialisation.
��define_arrays
� blk_size%
(blk_size%=&1600
2� blk% blk_size%
<� temp_blk% blk_size%
F� errorblk% &100
P� workstart% &400
Zworkfree%=workstart%
dworkend%=workstart%+&400
n�more_arrays
x�
���more_arrays
�� board_status%(10,10)
�� check_win%(10,10,1)
�� computer%(10,10,1)
�� winning_moves%(121,1)
�� hex%(10,10)
��
���define_variables
�app_sprite$   ="!Hex"
�app_name$      ="HEX"
�-app_purpose$   ="A Two Player Board Game"
�,app_copyright$ ="Archimedes World  1994"
� app_author$    ="Jan Jarvis"
0app_version$   ="Version 1.00, 1st Jan 1994"
)app_dir$=�system_variable("Obey$Dir")
errorcount%=0
"menufile%=0
,icon_bar%=-2
6select_click%=4
@adjust_click%=1
Jmenu_click%=2
Twhite%  =  0
^l_grey% =  1
hgrey%   =  3
rred%    = 11
|blue%   = 15
�poll_mask%=&81930
�poll_time%=0
�quit%=�
��load_options
��more_variables
��
���load_options
�level%         = 2
�human_player1% = �
�human_player2% = �
�#load% = � (app_dir$+".!Config")
�<� load% ��#load%, level%, human_player1%, human_player2%
��#load%
�
��more_variables
max_level% = 5
&starter% = 2
0(human_player1_temp% = human_player1%
:(human_player2_temp% = human_player2%
D level_temp%         = level%
Non_off%    = 0
Xred_wins%  = 0
bblue_wins% = 0
lduring_game%   = �
vresign%        = �
�win%           = �
�calcs_done% = �
�comp_count% = 0
��
���install_icon
�:icon_bar_handle%=�put_icon_on_bar(app_sprite$,"RIGHT")
��
���load_sprites
�/sprites%=�load_sprites(app_dir$+".Sprites")
��
���create_windows
�Soptions_window%=�create_window("HEX Options",&FD000002,500,742,698,500,158,784)
��options_window_icons
info%=�create_info_window
Hhex_window%=�create_window("HEX",&FF000002,1155,784,45,1155,196,784)
�hex_window_icons
 Kscore_window%=�create_window("Scores",&87000012,240,166,65,240,138,784)
*�score_window_icons
4�
>��options_window_icons
HJopt_block1% = �add_icon_block(options_window%,30,-30,460,-200,l_grey%)
R-�border_icon(options_window%,opt_block1%)
\Kopt_block2% = �add_icon_block(options_window%,30,-230,460,-400,l_grey%)
f-�border_icon(options_window%,opt_block2%)
pKopt_block3% = �add_icon_block(options_window%,30,-430,460,-600,l_grey%)
z-�border_icon(options_window%,opt_block3%)
�Nopt_label1% =�add_icon("label","Blue player",options_window%,60,-40,0,0,0)
�Lopt_blue_h% =�add_icon("radio","Human",   options_window%,90, -90,0,1,0)
�Lopt_blue_c% =�add_icon("radio","Computer",options_window%,90,-140,0,1,0)
�Nopt_label2% =�add_icon("label","Red player",options_window%,60,-240,0,0,0)
�Lopt_red_h% =�add_icon("radio","Human",   options_window%,90, -290,0,2,0)
�Kopt_red_c% =�add_icon("radio","Computer",options_window%,90,-340,0,2,0)
�Ropt_label4% =�add_icon("label","Computer level",options_window%,60,-440,0,0,0)
�Fopt_comp_1% =�add_icon("radio","1",options_window%, 40,-510,0,4,0)
�Fopt_comp_2% =�add_icon("radio","2",options_window%,125,-510,0,4,0)
�Fopt_comp_3% =�add_icon("radio","3",options_window%,210,-510,0,4,0)
�Fopt_comp_4% =�add_icon("radio","4",options_window%,295,-510,0,4,0)
�Fopt_comp_5% =�add_icon("radio","5",options_window%,380,-510,0,4,0)
�Lopt_cancel% = �add_icon("action","Cancel",options_window%,40,-640,0,0,1)
Iopt_ok% = �add_icon("action","  OK  ",options_window%,340,-640,0,0,1)
9�shade_icon(options_window%,opt_comp_5%,max_level%<5)
9�shade_icon(options_window%,opt_comp_4%,max_level%<4)
$9�shade_icon(options_window%,opt_comp_3%,max_level%<3)
.9�shade_icon(options_window%,opt_comp_2%,max_level%<2)
8�update_options_icons
B�
L��hex_window_icons
VJboard_sprite%=�add_icon("sprite","board",hex_window%,0,0,0,sprites%,0)
`#� row%,col%,window_x%,window_y%
j� row% = 0 � 10
t"window_y%= -((10-row%)*52)-105
~� col% = 0 � 10
�$window_x%=(col%*72)+(row%*36)+10
�\hex%(col%,row%)=�add_icon("sprite","blank",hex_window%,window_x%,window_y%,0,sprites%,0)
�
� col%
�
� row%
�Kreport_blue%=�add_icon("report","         ", hex_window%,700,-20,0,0,1)
�Kreport_red% =�add_icon("report","         ",hex_window%,966,-500,0,0,1)
��set_hex_window_icons
��
���score_window_icons
�Escore_block1%=�add_icon_block(score_window%,10,-10,230,-76,grey%)
�-�border_icon(score_window%,score_block1%)
�Mblue_sprite%=�add_icon("sprite","blue",score_window%,30,-24,0,sprites%,0)
Gblue_score%=�add_icon("report","     ",score_window%,120,-20,0,0,0)

Fscore_block2%=�add_icon_block(score_window%,10,-90,230,-156,grey%)
-�border_icon(score_window%,score_block2%)
Lred_sprite%=�add_icon("sprite","red",score_window%,30,-104,0,sprites%,0)
(Gred_score%=�add_icon("report","     ",score_window%,120,-100,0,0,0)
2�update_scores
<�
F
��info
PX�put_info_text(info%,app_name$,app_purpose$,app_copyright$,app_author$,app_version$)
Z�
d��menus
n"�load_menus(app_dir$+".menus")
x�
�ݤfile_size(file$)
�� size%,found%
�*ș"OS_File",17,file$ � found%,,,,size%
�;� found%<>1 �� 203,"File '"+�leaf(file$)+"' not found!"
�
=size%
�Dݤadd_icon_block(window_handle%,minx%,miny%,maxx%,maxy%,colour%)
�� icon%
�temp_blk%!0=window_handle%
� � minx%>maxx% Ȕ minx%,maxx%
� � miny%>maxy% Ȕ miny%,maxy%
�� minx%=maxx% maxx%+=1
�� miny%=maxy% maxy%+=1
�temp_blk%!4=minx%
temp_blk%!8=miny%
temp_blk%!12=maxx%
temp_blk%!16=maxy%
"!temp_blk%!20=32+(colour%<<28)
,+ș "Wimp_CreateIcon",,temp_blk% � icon%
6
=icon%
@.��border_icon(window_handle%,icon_handle%)
J1� icon%,minx%,miny%,maxx%,maxy%,flag%,tl%,br%
Ttemp_blk%!0=window_handle%
^temp_blk%!4=icon_handle%
h$ș"Wimp_GetIconState",,temp_blk%
rminx%=temp_blk%!8
|miny%=temp_blk%!12
�maxx%=temp_blk%!16
�maxy%=temp_blk%!20
�flag%=temp_blk%!24
�	tl%=0
�	br%=4
�C� (flag% � 4)=4 minx%-=4:maxx%+=4:miny%-=4:maxy%+=4:tl%=4:br%=0
�Kicon%=�add_icon_block(window_handle%,maxx%,miny%-4,maxx%+4,maxy%+4,br%)
�Kicon%=�add_icon_block(window_handle%,minx%-4,maxy%,maxx%+2,maxy%+4,tl%)
�Iicon%=�add_icon_block(window_handle%,minx%-4,miny%-4,minx%,maxy%,tl%)
�Kicon%=�add_icon_block(window_handle%,minx%-2,miny%-4,maxx%+2,miny%,br%)
��
�� colour%<0 � colour%>15 �
�temp_blk%!0=window_handle%
temp_blk%!4=icon_handle%
$ș"Wimp_GetIconState",,temp_blk%
� (temp_blk%!24 � 1<<6) ��
&temp_blk%!12=&F0000000
0<temp_blk%!8=colour%<<28:ș"Wimp_SetIconState",,temp_blk%
:�
D)ݤput_icon_on_bar(sprite_name$,side$)
N
� handle%
X0� side$="RIGHT" !temp_blk%=-1 �!temp_blk%=-2
btemp_blk%!4=0
ltemp_blk%!8=0
vtemp_blk%!12=68
�temp_blk%!16=68
�temp_blk%!20=&1700202A
� $(temp_blk%+24)=sprite_name$
�-ș "Wimp_CreateIcon",,temp_blk% � handle%
�=handle%
�N��put_info_text(window_handle%,name$,purpose$,copyright$,author$,version$)
�*�put_icon_text(window_handle%,1,name$)
�-�put_icon_text(window_handle%,2,purpose$)
�/�put_icon_text(window_handle%,3,copyright$)
�,�put_icon_text(window_handle%,4,author$)
�-�put_icon_text(window_handle%,5,version$)
��
�� �task_initialise(title$)
� version%
version%=200
Hș "Wimp_Initialise",version%,&4B534154,title$ � version%,this_task%
 =this_task%
*��add_menu_item(line$)
4D� menuflag%,iconflag%,param$,sub%,itemtext$,writable%,maxlength%
>*iconflag%=&7000021:sub%=-1:writable%=�
H:itemtext$=�menu_item_text(line$):maxlength%=�itemtext$
R�
\"param$=�menu_item_param(line$)
fȎ �param$,4) �
p!�"tick":menuflag%=menuflag%�1
z!�"line":menuflag%=menuflag%�2
�'�"shad":iconflag%=iconflag%�&400000
�0�"subm":sub%=�menu_submenu(�menuvar(param$))
�/�"wind":sub%=�menu_window(�menuvar(param$))
�6�"icon":iconflag%=�menu_iconflag(�menuvar(param$))
�,�"writ":�menu_writable(�menuvar(param$))
��
�� param$=""
�pointer%!0=menuflag%
�pointer%!4=sub%
�#� �(itemtext$)>12 � writable% �
�pointer%!8=iconflag% � &100
�3�indirected_item(pointer%,writable%,maxlength%)
��
	pointer%!8=iconflag%
	&$(pointer%+12)=�itemtext$+�(0),12)
	�
	$pointer%+=24
	.�
	8ݤbeginmenu(line$)
	B� �line$,9)="beginmenu" =�
	L=�
	VE��dim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
	`0� menustart% (menucount%*28)+(itemcount%*24)
	j� menuwidth%(menucount%)
	t� menu%(menucount%)
	~!� writable_item%(writecount%)
	� � writable_len%(writecount%)
	��
	���goto_beginmenu
	�� temp%,line$
	��#menufile%=0
	��
	�temp%=�#menufile%
	�line$=�#menufile%
	�%� �beginmenu(line$) � �#menufile%
	�:��#menufile% � 200,"No 'beginmenu' found in menu file"
	��#menufile%=temp%
	��
2��indirected_item(menu_ptr%,writable%,length%)

� indir_ptr%
� writable% �
� indir_ptr% length%+1
(�
2� indir_ptr% 1+�itemtext$
<�
Fmenu_ptr%!12=indir_ptr%
P$indir_ptr%=itemtext$+�(0)
Z� writable% �
d(writable_item%(writable%)=indir_ptr%
n$writable_len%(writable%)=length%
xindir_ptr%+=length%+1
�menu_ptr%!20=length%+1
��
�indir_ptr%+=1+�itemtext$
�menu_ptr%!20=1+�itemtext$
��
�?indir_ptr%=0
�menu_ptr%!16=indir_ptr%
��
���load_menus(menufile$)
�2� menucount%,header%,line$,pointer%,menustart%
� �size_menu_arrays(menufile$)
�menufile%=�menufile$
��set_menu_arrays
�goto_beginmenu
menucount%=0:header%=�
�
"line$=�#menufile%
,� �beginmenu(line$) �
6C�header% � 200,"Bad menu file, no items in menu "+�(menucount%)
@(�menucount% �mark_menu_end(pointer%)
Jmenucount%+=1
Tline$=�#menufile%
^F�make_menu_header(pointer%,line$,menuwidth%(menucount%)):header%=�
h�
r#�add_menu_item(line$):header%=�
|�
�� �#menufile%
��mark_menu_end(pointer%)
�(ș"XOS_Find",0,menufile%:menufile%=0
�C�header% � 200,"Bad menu file, no items in menu "+�(menucount%)
��
�0��make_menu_header(� pointer%,title$,width%)
�$pointer%=�title$,12)+�(0)
�pointer%?12=7
�pointer%?13=2
�pointer%?14=7
�pointer%?15=0
�pointer%!16=width%
�pointer%!20=44
pointer%!24=0
pointer%+=28
�
&��mark_menu_end(pointer%)
0'!(pointer%-24)=!(pointer%-24) � &80
:�
Dݤmenu_iconflag(var$)
N2�var$="" � 200,"Menu icon flag value missing!"
X=�(var$)
bݤmenu_item_param(� item$)
l� param$
v� �item$,",") �
�item$=�item$,�item$,",")+1)
� param$=�item$,�item$,",")-1)
��
�
param$=""
��
�=param$
�ݤmenu_item_text(item$)
�-� �item$,",") item$=�item$,�item$,",")-1)
�
=item$
�ݤmenu_submenu(var$)
�(� �(var$)<1 � �(var$)>�(menu%(),1) �
�A� 200,"Can't find menu "+var$+", as referred to in:- "+param$
��

� �(var$)=menucount% �

L� 200,"An item in menu "+var$+" cannot have menu "+var$+" as a submenu!"

�

 =menu%(�(var$))

*ݤmenuvar(var$)

4var$=�var$,�var$,"(")+1)

>var$=�var$,�var$,")")-1)

H	=var$

Rݤmenu_window(var$)

\
� handle%

f� �

pC� � � 0,"Menu file error. Window variable "+var$+" not found."

zhandle%=�(var$)

�� handle%<1 �

�ș"XOS_Find",0,menufile%

��

��

�=handle%

���menu_writable(var$)

�maxlength%=0

�� �var$,":") �

�%maxlength%=�(�var$,�var$,":")+1))

�2�(itemtext$)>maxlength% maxlength%=�itemtext$

��

�maxlength%=�itemtext$

��
+menuflag%=menuflag%�4:writable%=�(var$)
�
��set_menu_arrays
$� itemcount%,line$,width%
.$menucount%=0:pointer%=menustart%
8�goto_beginmenu
B�
Lline$=�#menufile%
V� �beginmenu(line$) �
`Bmenu%(menucount%+1)=menustart%+(menucount%*28)+(itemcount%*24)
jline$=�#menufile%
tmenucount%+=1
~line$=�line$,12)
�'menuwidth%(menucount%)=12+16*�line$
��
�itemcount%+=1
�� �line$,",") �
�)width%=12+16*�(�line$,�line$,",")-1))
��
�width%=12+16*�line$
��
�A� width%>menuwidth%(menucount%) menuwidth%(menucount%)=width%
��
�� �#menufile%
��
!��size_menu_arrays(menufile$)

:� menucount%,itemcount%,writecount%,windowcount%,line$
menufile%=�menufile$
�
(line$=�#menufile%
2� �beginmenu(line$) �
<#menucount%+=1:line$=�#menufile%
F�
P$� �line$,",writ") writecount%+=1
Z%� �line$,",wind") windowcount%+=1
ditemcount%+=1
n�
x� �#menufile%
�(ș"XOS_Find",0,menufile%:menufile%=0
�D�dim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
��
�ݤsystem_variable(sys_var$)
�
� length%
�=ș"XOS_ReadVarVal",sys_var$+�(0),temp_blk%,-1 � ,,length%
�A� length%=0 � � 0,"System variable '"+sys_var$+"' not found!"
�Aș"XOS_ReadVarVal",sys_var$+�(0),temp_blk%,255,,3 � ,,length%
�?(temp_blk%+length%)=13
�=$temp_blk%
�ݤload_sprites(file$)
�� sprites%,size%
�size%=�file_size(file$)+16
� sprites% size%
sprites%!0=size%
sprites%!8=16
"'ș"OS_SpriteOp",&10A,sprites%,file$
,
=sprites%
6ݤcreate_info_window
@� icon%
JNinfo%=�create_window("About this program",&84000012,660,264,0,660,999,999)
T:icon%=  �add_icon("label","   Name:",info%,8,-4,0,0,0)
^;icon%=  �add_icon("report",�30," "),info%,156,-4,0,0,0)
h<icon%=  �add_icon("report",�30," "),info%,156,-56,0,0,0)
r=icon%=  �add_icon("report",�30," "),info%,156,-108,0,0,0)
|=icon%=  �add_icon("report",�30," "),info%,156,-160,0,0,0)
�=icon%=  �add_icon("report",�30," "),info%,156,-212,0,0,0)
�;icon%=  �add_icon("label","Purpose:",info%,8,-56,0,0,0)
�<icon%=  �add_icon("label","      �:",info%,8,-108,0,0,0)
�<icon%=  �add_icon("label"," Author:",info%,8,-160,0,0,0)
�<icon%=  �add_icon("label","Version:",info%,8,-212,0,0,0)
�
=info%
�Lݤcreate_window(title$,wf%,x_size%,y_size%,left%,width%,bottom%,height%)
�� title_space%,handle%
�� title_space% (1+�title$)
�temp_blk%!0=left%
�temp_blk%!4=bottom%
�temp_blk%!8=left%+width%
� temp_blk%!12=bottom%+height%
temp_blk%!16=0
temp_blk%!20=0
temp_blk%!24=-1
&� wf%=0 wf%=&FF000012
0temp_blk%!28=wf%
:temp_blk%?32=7
Dtemp_blk%?33=2
Ntemp_blk%?34=7
Xtemp_blk%?35=1
btemp_blk%?36=3
ltemp_blk%?37=1
vtemp_blk%?38=12
�temp_blk%?39=0
�temp_blk%!40=0
�temp_blk%!44=-y_size%
�temp_blk%!48=x_size%
�temp_blk%!52=0
�temp_blk%!56=&119
�temp_blk%!60=&6000
�temp_blk%!64=1
�temp_blk%?68=0
�temp_blk%?69=0
�temp_blk%?70=0
�temp_blk%?71=0
�$title_space%=title$
temp_blk%!72=title_space%
temp_blk%!76=-1
temp_blk%!80=�(title$)+1
 temp_blk%!84=0
*.ș"Wimp_CreateWindow",,temp_blk% � handle%
4=handle%
�
00000000  0d 00 0a 36 f4 20 48 45  58 20 6c 69 62 72 61 72  |...6. HEX librar|
00000010  79 3a 20 4c 69 62 49 6e  69 74 3a 20 53 65 63 74  |y: LibInit: Sect|
00000020  69 6f 6e 20 32 2c 20 69  6e 69 74 69 61 6c 69 73  |ion 2, initialis|
00000030  61 74 69 6f 6e 2e 0d 00  14 13 dd f2 64 65 66 69  |ation.......defi|
00000040  6e 65 5f 61 72 72 61 79  73 0d 00 1e 0f ea 20 62  |ne_arrays..... b|
00000050  6c 6b 5f 73 69 7a 65 25  0d 00 28 13 62 6c 6b 5f  |lk_size%..(.blk_|
00000060  73 69 7a 65 25 3d 26 31  36 30 30 0d 00 32 14 de  |size%=&1600..2..|
00000070  20 62 6c 6b 25 20 62 6c  6b 5f 73 69 7a 65 25 0d  | blk% blk_size%.|
00000080  00 3c 19 de 20 74 65 6d  70 5f 62 6c 6b 25 20 62  |.<.. temp_blk% b|
00000090  6c 6b 5f 73 69 7a 65 25  0d 00 46 14 de 20 65 72  |lk_size%..F.. er|
000000a0  72 6f 72 62 6c 6b 25 20  26 31 30 30 0d 00 50 15  |rorblk% &100..P.|
000000b0  de 20 77 6f 72 6b 73 74  61 72 74 25 20 26 34 30  |. workstart% &40|
000000c0  30 0d 00 5a 18 77 6f 72  6b 66 72 65 65 25 3d 77  |0..Z.workfree%=w|
000000d0  6f 72 6b 73 74 61 72 74  25 0d 00 64 1c 77 6f 72  |orkstart%..d.wor|
000000e0  6b 65 6e 64 25 3d 77 6f  72 6b 73 74 61 72 74 25  |kend%=workstart%|
000000f0  2b 26 34 30 30 0d 00 6e  10 f2 6d 6f 72 65 5f 61  |+&400..n..more_a|
00000100  72 72 61 79 73 0d 00 78  05 e1 0d 00 82 11 dd f2  |rrays..x........|
00000110  6d 6f 72 65 5f 61 72 72  61 79 73 0d 00 8c 1a de  |more_arrays.....|
00000120  20 62 6f 61 72 64 5f 73  74 61 74 75 73 25 28 31  | board_status%(1|
00000130  30 2c 31 30 29 0d 00 96  19 de 20 63 68 65 63 6b  |0,10)..... check|
00000140  5f 77 69 6e 25 28 31 30  2c 31 30 2c 31 29 0d 00  |_win%(10,10,1)..|
00000150  a0 18 de 20 63 6f 6d 70  75 74 65 72 25 28 31 30  |... computer%(10|
00000160  2c 31 30 2c 31 29 0d 00  aa 1b de 20 77 69 6e 6e  |,10,1)..... winn|
00000170  69 6e 67 5f 6d 6f 76 65  73 25 28 31 32 31 2c 31  |ing_moves%(121,1|
00000180  29 0d 00 b4 11 de 20 68  65 78 25 28 31 30 2c 31  |)..... hex%(10,1|
00000190  30 29 0d 00 be 05 e1 0d  00 c8 16 dd f2 64 65 66  |0)...........def|
000001a0  69 6e 65 5f 76 61 72 69  61 62 6c 65 73 0d 00 d2  |ine_variables...|
000001b0  19 61 70 70 5f 73 70 72  69 74 65 24 20 20 20 3d  |.app_sprite$   =|
000001c0  22 21 48 65 78 22 0d 00  dc 19 61 70 70 5f 6e 61  |"!Hex"....app_na|
000001d0  6d 65 24 20 20 20 20 20  20 3d 22 48 45 58 22 0d  |me$      ="HEX".|
000001e0  00 e6 2d 61 70 70 5f 70  75 72 70 6f 73 65 24 20  |..-app_purpose$ |
000001f0  20 20 3d 22 41 20 54 77  6f 20 50 6c 61 79 65 72  |  ="A Two Player|
00000200  20 42 6f 61 72 64 20 47  61 6d 65 22 0d 00 f0 2c  | Board Game"...,|
00000210  61 70 70 5f 63 6f 70 79  72 69 67 68 74 24 20 3d  |app_copyright$ =|
00000220  22 41 72 63 68 69 6d 65  64 65 73 20 57 6f 72 6c  |"Archimedes Worl|
00000230  64 20 20 31 39 39 34 22  0d 00 fa 20 61 70 70 5f  |d  1994"... app_|
00000240  61 75 74 68 6f 72 24 20  20 20 20 3d 22 4a 61 6e  |author$    ="Jan|
00000250  20 4a 61 72 76 69 73 22  0d 01 04 30 61 70 70 5f  | Jarvis"...0app_|
00000260  76 65 72 73 69 6f 6e 24  20 20 20 3d 22 56 65 72  |version$   ="Ver|
00000270  73 69 6f 6e 20 31 2e 30  30 2c 20 31 73 74 20 4a  |sion 1.00, 1st J|
00000280  61 6e 20 31 39 39 34 22  0d 01 0e 29 61 70 70 5f  |an 1994"...)app_|
00000290  64 69 72 24 3d a4 73 79  73 74 65 6d 5f 76 61 72  |dir$=.system_var|
000002a0  69 61 62 6c 65 28 22 4f  62 65 79 24 44 69 72 22  |iable("Obey$Dir"|
000002b0  29 0d 01 18 11 65 72 72  6f 72 63 6f 75 6e 74 25  |)....errorcount%|
000002c0  3d 30 0d 01 22 0f 6d 65  6e 75 66 69 6c 65 25 3d  |=0..".menufile%=|
000002d0  30 0d 01 2c 10 69 63 6f  6e 5f 62 61 72 25 3d 2d  |0..,.icon_bar%=-|
000002e0  32 0d 01 36 13 73 65 6c  65 63 74 5f 63 6c 69 63  |2..6.select_clic|
000002f0  6b 25 3d 34 0d 01 40 13  61 64 6a 75 73 74 5f 63  |k%=4..@.adjust_c|
00000300  6c 69 63 6b 25 3d 31 0d  01 4a 11 6d 65 6e 75 5f  |lick%=1..J.menu_|
00000310  63 6c 69 63 6b 25 3d 32  0d 01 54 10 77 68 69 74  |click%=2..T.whit|
00000320  65 25 20 20 3d 20 20 30  0d 01 5e 10 6c 5f 67 72  |e%  =  0..^.l_gr|
00000330  65 79 25 20 3d 20 20 31  0d 01 68 10 67 72 65 79  |ey% =  1..h.grey|
00000340  25 20 20 20 3d 20 20 33  0d 01 72 10 72 65 64 25  |%   =  3..r.red%|
00000350  20 20 20 20 3d 20 31 31  0d 01 7c 10 62 6c 75 65  |    = 11..|.blue|
00000360  25 20 20 20 3d 20 31 35  0d 01 86 15 70 6f 6c 6c  |%   = 15....poll|
00000370  5f 6d 61 73 6b 25 3d 26  38 31 39 33 30 0d 01 90  |_mask%=&81930...|
00000380  10 70 6f 6c 6c 5f 74 69  6d 65 25 3d 30 0d 01 9a  |.poll_time%=0...|
00000390  0b 71 75 69 74 25 3d a3  0d 01 a4 11 f2 6c 6f 61  |.quit%=......loa|
000003a0  64 5f 6f 70 74 69 6f 6e  73 0d 01 ae 13 f2 6d 6f  |d_options.....mo|
000003b0  72 65 5f 76 61 72 69 61  62 6c 65 73 0d 01 b8 05  |re_variables....|
000003c0  e1 0d 01 c2 12 dd f2 6c  6f 61 64 5f 6f 70 74 69  |.......load_opti|
000003d0  6f 6e 73 0d 01 cc 16 6c  65 76 65 6c 25 20 20 20  |ons....level%   |
000003e0  20 20 20 20 20 20 3d 20  32 0d 01 d6 16 68 75 6d  |      = 2....hum|
000003f0  61 6e 5f 70 6c 61 79 65  72 31 25 20 3d 20 a3 0d  |an_player1% = ..|
00000400  01 e0 16 68 75 6d 61 6e  5f 70 6c 61 79 65 72 32  |...human_player2|
00000410  25 20 3d 20 b9 0d 01 ea  23 6c 6f 61 64 25 20 3d  |% = ....#load% =|
00000420  20 8e 20 28 61 70 70 5f  64 69 72 24 2b 22 2e 21  | . (app_dir$+".!|
00000430  43 6f 6e 66 69 67 22 29  0d 01 f4 3c e7 20 6c 6f  |Config")...<. lo|
00000440  61 64 25 20 8c e8 23 6c  6f 61 64 25 2c 20 6c 65  |ad% ..#load%, le|
00000450  76 65 6c 25 2c 20 68 75  6d 61 6e 5f 70 6c 61 79  |vel%, human_play|
00000460  65 72 31 25 2c 20 68 75  6d 61 6e 5f 70 6c 61 79  |er1%, human_play|
00000470  65 72 32 25 0d 01 fe 0b  d9 23 6c 6f 61 64 25 0d  |er2%.....#load%.|
00000480  02 08 05 e1 0d 02 12 14  dd f2 6d 6f 72 65 5f 76  |..........more_v|
00000490  61 72 69 61 62 6c 65 73  0d 02 1c 12 6d 61 78 5f  |ariables....max_|
000004a0  6c 65 76 65 6c 25 20 3d  20 35 0d 02 26 10 73 74  |level% = 5..&.st|
000004b0  61 72 74 65 72 25 20 3d  20 32 0d 02 30 28 68 75  |arter% = 2..0(hu|
000004c0  6d 61 6e 5f 70 6c 61 79  65 72 31 5f 74 65 6d 70  |man_player1_temp|
000004d0  25 20 3d 20 68 75 6d 61  6e 5f 70 6c 61 79 65 72  |% = human_player|
000004e0  31 25 0d 02 3a 28 68 75  6d 61 6e 5f 70 6c 61 79  |1%..:(human_play|
000004f0  65 72 32 5f 74 65 6d 70  25 20 3d 20 68 75 6d 61  |er2_temp% = huma|
00000500  6e 5f 70 6c 61 79 65 72  32 25 0d 02 44 20 6c 65  |n_player2%..D le|
00000510  76 65 6c 5f 74 65 6d 70  25 20 20 20 20 20 20 20  |vel_temp%       |
00000520  20 20 3d 20 6c 65 76 65  6c 25 0d 02 4e 12 6f 6e  |  = level%..N.on|
00000530  5f 6f 66 66 25 20 20 20  20 3d 20 30 0d 02 58 12  |_off%    = 0..X.|
00000540  72 65 64 5f 77 69 6e 73  25 20 20 3d 20 30 0d 02  |red_wins%  = 0..|
00000550  62 12 62 6c 75 65 5f 77  69 6e 73 25 20 3d 20 30  |b.blue_wins% = 0|
00000560  0d 02 6c 16 64 75 72 69  6e 67 5f 67 61 6d 65 25  |..l.during_game%|
00000570  20 20 20 3d 20 a3 0d 02  76 16 72 65 73 69 67 6e  |   = ...v.resign|
00000580  25 20 20 20 20 20 20 20  20 3d 20 a3 0d 02 80 16  |%        = .....|
00000590  77 69 6e 25 20 20 20 20  20 20 20 20 20 20 20 3d  |win%           =|
000005a0  20 a3 0d 02 8a 13 63 61  6c 63 73 5f 64 6f 6e 65  | .....calcs_done|
000005b0  25 20 3d 20 a3 0d 02 94  13 63 6f 6d 70 5f 63 6f  |% = .....comp_co|
000005c0  75 6e 74 25 20 3d 20 30  0d 02 9e 05 e1 0d 02 a8  |unt% = 0........|
000005d0  12 dd f2 69 6e 73 74 61  6c 6c 5f 69 63 6f 6e 0d  |...install_icon.|
000005e0  02 b2 3a 69 63 6f 6e 5f  62 61 72 5f 68 61 6e 64  |..:icon_bar_hand|
000005f0  6c 65 25 3d a4 70 75 74  5f 69 63 6f 6e 5f 6f 6e  |le%=.put_icon_on|
00000600  5f 62 61 72 28 61 70 70  5f 73 70 72 69 74 65 24  |_bar(app_sprite$|
00000610  2c 22 52 49 47 48 54 22  29 0d 02 bc 05 e1 0d 02  |,"RIGHT").......|
00000620  c6 12 dd f2 6c 6f 61 64  5f 73 70 72 69 74 65 73  |....load_sprites|
00000630  0d 02 d0 2f 73 70 72 69  74 65 73 25 3d a4 6c 6f  |.../sprites%=.lo|
00000640  61 64 5f 73 70 72 69 74  65 73 28 61 70 70 5f 64  |ad_sprites(app_d|
00000650  69 72 24 2b 22 2e 53 70  72 69 74 65 73 22 29 0d  |ir$+".Sprites").|
00000660  02 da 05 e1 0d 02 e4 14  dd f2 63 72 65 61 74 65  |..........create|
00000670  5f 77 69 6e 64 6f 77 73  0d 02 ee 53 6f 70 74 69  |_windows...Sopti|
00000680  6f 6e 73 5f 77 69 6e 64  6f 77 25 3d a4 63 72 65  |ons_window%=.cre|
00000690  61 74 65 5f 77 69 6e 64  6f 77 28 22 48 45 58 20  |ate_window("HEX |
000006a0  4f 70 74 69 6f 6e 73 22  2c 26 46 44 30 30 30 30  |Options",&FD0000|
000006b0  30 32 2c 35 30 30 2c 37  34 32 2c 36 39 38 2c 35  |02,500,742,698,5|
000006c0  30 30 2c 31 35 38 2c 37  38 34 29 0d 02 f8 19 f2  |00,158,784).....|
000006d0  6f 70 74 69 6f 6e 73 5f  77 69 6e 64 6f 77 5f 69  |options_window_i|
000006e0  63 6f 6e 73 0d 03 02 1d  69 6e 66 6f 25 3d a4 63  |cons....info%=.c|
000006f0  72 65 61 74 65 5f 69 6e  66 6f 5f 77 69 6e 64 6f  |reate_info_windo|
00000700  77 0d 03 0c 48 68 65 78  5f 77 69 6e 64 6f 77 25  |w...Hhex_window%|
00000710  3d a4 63 72 65 61 74 65  5f 77 69 6e 64 6f 77 28  |=.create_window(|
00000720  22 48 45 58 22 2c 26 46  46 30 30 30 30 30 32 2c  |"HEX",&FF000002,|
00000730  31 31 35 35 2c 37 38 34  2c 34 35 2c 31 31 35 35  |1155,784,45,1155|
00000740  2c 31 39 36 2c 37 38 34  29 0d 03 16 15 f2 68 65  |,196,784).....he|
00000750  78 5f 77 69 6e 64 6f 77  5f 69 63 6f 6e 73 0d 03  |x_window_icons..|
00000760  20 4b 73 63 6f 72 65 5f  77 69 6e 64 6f 77 25 3d  | Kscore_window%=|
00000770  a4 63 72 65 61 74 65 5f  77 69 6e 64 6f 77 28 22  |.create_window("|
00000780  53 63 6f 72 65 73 22 2c  26 38 37 30 30 30 30 31  |Scores",&8700001|
00000790  32 2c 32 34 30 2c 31 36  36 2c 36 35 2c 32 34 30  |2,240,166,65,240|
000007a0  2c 31 33 38 2c 37 38 34  29 0d 03 2a 17 f2 73 63  |,138,784)..*..sc|
000007b0  6f 72 65 5f 77 69 6e 64  6f 77 5f 69 63 6f 6e 73  |ore_window_icons|
000007c0  0d 03 34 05 e1 0d 03 3e  1a dd f2 6f 70 74 69 6f  |..4....>...optio|
000007d0  6e 73 5f 77 69 6e 64 6f  77 5f 69 63 6f 6e 73 0d  |ns_window_icons.|
000007e0  03 48 4a 6f 70 74 5f 62  6c 6f 63 6b 31 25 20 3d  |.HJopt_block1% =|
000007f0  20 a4 61 64 64 5f 69 63  6f 6e 5f 62 6c 6f 63 6b  | .add_icon_block|
00000800  28 6f 70 74 69 6f 6e 73  5f 77 69 6e 64 6f 77 25  |(options_window%|
00000810  2c 33 30 2c 2d 33 30 2c  34 36 30 2c 2d 32 30 30  |,30,-30,460,-200|
00000820  2c 6c 5f 67 72 65 79 25  29 0d 03 52 2d f2 62 6f  |,l_grey%)..R-.bo|
00000830  72 64 65 72 5f 69 63 6f  6e 28 6f 70 74 69 6f 6e  |rder_icon(option|
00000840  73 5f 77 69 6e 64 6f 77  25 2c 6f 70 74 5f 62 6c  |s_window%,opt_bl|
00000850  6f 63 6b 31 25 29 0d 03  5c 4b 6f 70 74 5f 62 6c  |ock1%)..\Kopt_bl|
00000860  6f 63 6b 32 25 20 3d 20  a4 61 64 64 5f 69 63 6f  |ock2% = .add_ico|
00000870  6e 5f 62 6c 6f 63 6b 28  6f 70 74 69 6f 6e 73 5f  |n_block(options_|
00000880  77 69 6e 64 6f 77 25 2c  33 30 2c 2d 32 33 30 2c  |window%,30,-230,|
00000890  34 36 30 2c 2d 34 30 30  2c 6c 5f 67 72 65 79 25  |460,-400,l_grey%|
000008a0  29 0d 03 66 2d f2 62 6f  72 64 65 72 5f 69 63 6f  |)..f-.border_ico|
000008b0  6e 28 6f 70 74 69 6f 6e  73 5f 77 69 6e 64 6f 77  |n(options_window|
000008c0  25 2c 6f 70 74 5f 62 6c  6f 63 6b 32 25 29 0d 03  |%,opt_block2%)..|
000008d0  70 4b 6f 70 74 5f 62 6c  6f 63 6b 33 25 20 3d 20  |pKopt_block3% = |
000008e0  a4 61 64 64 5f 69 63 6f  6e 5f 62 6c 6f 63 6b 28  |.add_icon_block(|
000008f0  6f 70 74 69 6f 6e 73 5f  77 69 6e 64 6f 77 25 2c  |options_window%,|
00000900  33 30 2c 2d 34 33 30 2c  34 36 30 2c 2d 36 30 30  |30,-430,460,-600|
00000910  2c 6c 5f 67 72 65 79 25  29 0d 03 7a 2d f2 62 6f  |,l_grey%)..z-.bo|
00000920  72 64 65 72 5f 69 63 6f  6e 28 6f 70 74 69 6f 6e  |rder_icon(option|
00000930  73 5f 77 69 6e 64 6f 77  25 2c 6f 70 74 5f 62 6c  |s_window%,opt_bl|
00000940  6f 63 6b 33 25 29 0d 03  84 4e 6f 70 74 5f 6c 61  |ock3%)...Nopt_la|
00000950  62 65 6c 31 25 20 3d a4  61 64 64 5f 69 63 6f 6e  |bel1% =.add_icon|
00000960  28 22 6c 61 62 65 6c 22  2c 22 42 6c 75 65 20 70  |("label","Blue p|
00000970  6c 61 79 65 72 22 2c 6f  70 74 69 6f 6e 73 5f 77  |layer",options_w|
00000980  69 6e 64 6f 77 25 2c 36  30 2c 2d 34 30 2c 30 2c  |indow%,60,-40,0,|
00000990  30 2c 30 29 0d 03 8e 4c  6f 70 74 5f 62 6c 75 65  |0,0)...Lopt_blue|
000009a0  5f 68 25 20 3d a4 61 64  64 5f 69 63 6f 6e 28 22  |_h% =.add_icon("|
000009b0  72 61 64 69 6f 22 2c 22  48 75 6d 61 6e 22 2c 20  |radio","Human", |
000009c0  20 20 6f 70 74 69 6f 6e  73 5f 77 69 6e 64 6f 77  |  options_window|
000009d0  25 2c 39 30 2c 20 2d 39  30 2c 30 2c 31 2c 30 29  |%,90, -90,0,1,0)|
000009e0  0d 03 98 4c 6f 70 74 5f  62 6c 75 65 5f 63 25 20  |...Lopt_blue_c% |
000009f0  3d a4 61 64 64 5f 69 63  6f 6e 28 22 72 61 64 69  |=.add_icon("radi|
00000a00  6f 22 2c 22 43 6f 6d 70  75 74 65 72 22 2c 6f 70  |o","Computer",op|
00000a10  74 69 6f 6e 73 5f 77 69  6e 64 6f 77 25 2c 39 30  |tions_window%,90|
00000a20  2c 2d 31 34 30 2c 30 2c  31 2c 30 29 0d 03 a2 4e  |,-140,0,1,0)...N|
00000a30  6f 70 74 5f 6c 61 62 65  6c 32 25 20 3d a4 61 64  |opt_label2% =.ad|
00000a40  64 5f 69 63 6f 6e 28 22  6c 61 62 65 6c 22 2c 22  |d_icon("label","|
00000a50  52 65 64 20 70 6c 61 79  65 72 22 2c 6f 70 74 69  |Red player",opti|
00000a60  6f 6e 73 5f 77 69 6e 64  6f 77 25 2c 36 30 2c 2d  |ons_window%,60,-|
00000a70  32 34 30 2c 30 2c 30 2c  30 29 0d 03 ac 4c 6f 70  |240,0,0,0)...Lop|
00000a80  74 5f 72 65 64 5f 68 25  20 3d a4 61 64 64 5f 69  |t_red_h% =.add_i|
00000a90  63 6f 6e 28 22 72 61 64  69 6f 22 2c 22 48 75 6d  |con("radio","Hum|
00000aa0  61 6e 22 2c 20 20 20 6f  70 74 69 6f 6e 73 5f 77  |an",   options_w|
00000ab0  69 6e 64 6f 77 25 2c 39  30 2c 20 2d 32 39 30 2c  |indow%,90, -290,|
00000ac0  30 2c 32 2c 30 29 0d 03  b6 4b 6f 70 74 5f 72 65  |0,2,0)...Kopt_re|
00000ad0  64 5f 63 25 20 3d a4 61  64 64 5f 69 63 6f 6e 28  |d_c% =.add_icon(|
00000ae0  22 72 61 64 69 6f 22 2c  22 43 6f 6d 70 75 74 65  |"radio","Compute|
00000af0  72 22 2c 6f 70 74 69 6f  6e 73 5f 77 69 6e 64 6f  |r",options_windo|
00000b00  77 25 2c 39 30 2c 2d 33  34 30 2c 30 2c 32 2c 30  |w%,90,-340,0,2,0|
00000b10  29 0d 03 c0 52 6f 70 74  5f 6c 61 62 65 6c 34 25  |)...Ropt_label4%|
00000b20  20 3d a4 61 64 64 5f 69  63 6f 6e 28 22 6c 61 62  | =.add_icon("lab|
00000b30  65 6c 22 2c 22 43 6f 6d  70 75 74 65 72 20 6c 65  |el","Computer le|
00000b40  76 65 6c 22 2c 6f 70 74  69 6f 6e 73 5f 77 69 6e  |vel",options_win|
00000b50  64 6f 77 25 2c 36 30 2c  2d 34 34 30 2c 30 2c 30  |dow%,60,-440,0,0|
00000b60  2c 30 29 0d 03 ca 46 6f  70 74 5f 63 6f 6d 70 5f  |,0)...Fopt_comp_|
00000b70  31 25 20 3d a4 61 64 64  5f 69 63 6f 6e 28 22 72  |1% =.add_icon("r|
00000b80  61 64 69 6f 22 2c 22 31  22 2c 6f 70 74 69 6f 6e  |adio","1",option|
00000b90  73 5f 77 69 6e 64 6f 77  25 2c 20 34 30 2c 2d 35  |s_window%, 40,-5|
00000ba0  31 30 2c 30 2c 34 2c 30  29 0d 03 d4 46 6f 70 74  |10,0,4,0)...Fopt|
00000bb0  5f 63 6f 6d 70 5f 32 25  20 3d a4 61 64 64 5f 69  |_comp_2% =.add_i|
00000bc0  63 6f 6e 28 22 72 61 64  69 6f 22 2c 22 32 22 2c  |con("radio","2",|
00000bd0  6f 70 74 69 6f 6e 73 5f  77 69 6e 64 6f 77 25 2c  |options_window%,|
00000be0  31 32 35 2c 2d 35 31 30  2c 30 2c 34 2c 30 29 0d  |125,-510,0,4,0).|
00000bf0  03 de 46 6f 70 74 5f 63  6f 6d 70 5f 33 25 20 3d  |..Fopt_comp_3% =|
00000c00  a4 61 64 64 5f 69 63 6f  6e 28 22 72 61 64 69 6f  |.add_icon("radio|
00000c10  22 2c 22 33 22 2c 6f 70  74 69 6f 6e 73 5f 77 69  |","3",options_wi|
00000c20  6e 64 6f 77 25 2c 32 31  30 2c 2d 35 31 30 2c 30  |ndow%,210,-510,0|
00000c30  2c 34 2c 30 29 0d 03 e8  46 6f 70 74 5f 63 6f 6d  |,4,0)...Fopt_com|
00000c40  70 5f 34 25 20 3d a4 61  64 64 5f 69 63 6f 6e 28  |p_4% =.add_icon(|
00000c50  22 72 61 64 69 6f 22 2c  22 34 22 2c 6f 70 74 69  |"radio","4",opti|
00000c60  6f 6e 73 5f 77 69 6e 64  6f 77 25 2c 32 39 35 2c  |ons_window%,295,|
00000c70  2d 35 31 30 2c 30 2c 34  2c 30 29 0d 03 f2 46 6f  |-510,0,4,0)...Fo|
00000c80  70 74 5f 63 6f 6d 70 5f  35 25 20 3d a4 61 64 64  |pt_comp_5% =.add|
00000c90  5f 69 63 6f 6e 28 22 72  61 64 69 6f 22 2c 22 35  |_icon("radio","5|
00000ca0  22 2c 6f 70 74 69 6f 6e  73 5f 77 69 6e 64 6f 77  |",options_window|
00000cb0  25 2c 33 38 30 2c 2d 35  31 30 2c 30 2c 34 2c 30  |%,380,-510,0,4,0|
00000cc0  29 0d 03 fc 4c 6f 70 74  5f 63 61 6e 63 65 6c 25  |)...Lopt_cancel%|
00000cd0  20 3d 20 a4 61 64 64 5f  69 63 6f 6e 28 22 61 63  | = .add_icon("ac|
00000ce0  74 69 6f 6e 22 2c 22 43  61 6e 63 65 6c 22 2c 6f  |tion","Cancel",o|
00000cf0  70 74 69 6f 6e 73 5f 77  69 6e 64 6f 77 25 2c 34  |ptions_window%,4|
00000d00  30 2c 2d 36 34 30 2c 30  2c 30 2c 31 29 0d 04 06  |0,-640,0,0,1)...|
00000d10  49 6f 70 74 5f 6f 6b 25  20 3d 20 a4 61 64 64 5f  |Iopt_ok% = .add_|
00000d20  69 63 6f 6e 28 22 61 63  74 69 6f 6e 22 2c 22 20  |icon("action"," |
00000d30  20 4f 4b 20 20 22 2c 6f  70 74 69 6f 6e 73 5f 77  | OK  ",options_w|
00000d40  69 6e 64 6f 77 25 2c 33  34 30 2c 2d 36 34 30 2c  |indow%,340,-640,|
00000d50  30 2c 30 2c 31 29 0d 04  10 39 f2 73 68 61 64 65  |0,0,1)...9.shade|
00000d60  5f 69 63 6f 6e 28 6f 70  74 69 6f 6e 73 5f 77 69  |_icon(options_wi|
00000d70  6e 64 6f 77 25 2c 6f 70  74 5f 63 6f 6d 70 5f 35  |ndow%,opt_comp_5|
00000d80  25 2c 6d 61 78 5f 6c 65  76 65 6c 25 3c 35 29 0d  |%,max_level%<5).|
00000d90  04 1a 39 f2 73 68 61 64  65 5f 69 63 6f 6e 28 6f  |..9.shade_icon(o|
00000da0  70 74 69 6f 6e 73 5f 77  69 6e 64 6f 77 25 2c 6f  |ptions_window%,o|
00000db0  70 74 5f 63 6f 6d 70 5f  34 25 2c 6d 61 78 5f 6c  |pt_comp_4%,max_l|
00000dc0  65 76 65 6c 25 3c 34 29  0d 04 24 39 f2 73 68 61  |evel%<4)..$9.sha|
00000dd0  64 65 5f 69 63 6f 6e 28  6f 70 74 69 6f 6e 73 5f  |de_icon(options_|
00000de0  77 69 6e 64 6f 77 25 2c  6f 70 74 5f 63 6f 6d 70  |window%,opt_comp|
00000df0  5f 33 25 2c 6d 61 78 5f  6c 65 76 65 6c 25 3c 33  |_3%,max_level%<3|
00000e00  29 0d 04 2e 39 f2 73 68  61 64 65 5f 69 63 6f 6e  |)...9.shade_icon|
00000e10  28 6f 70 74 69 6f 6e 73  5f 77 69 6e 64 6f 77 25  |(options_window%|
00000e20  2c 6f 70 74 5f 63 6f 6d  70 5f 32 25 2c 6d 61 78  |,opt_comp_2%,max|
00000e30  5f 6c 65 76 65 6c 25 3c  32 29 0d 04 38 19 f2 75  |_level%<2)..8..u|
00000e40  70 64 61 74 65 5f 6f 70  74 69 6f 6e 73 5f 69 63  |pdate_options_ic|
00000e50  6f 6e 73 0d 04 42 05 e1  0d 04 4c 16 dd f2 68 65  |ons..B....L...he|
00000e60  78 5f 77 69 6e 64 6f 77  5f 69 63 6f 6e 73 0d 04  |x_window_icons..|
00000e70  56 4a 62 6f 61 72 64 5f  73 70 72 69 74 65 25 3d  |VJboard_sprite%=|
00000e80  a4 61 64 64 5f 69 63 6f  6e 28 22 73 70 72 69 74  |.add_icon("sprit|
00000e90  65 22 2c 22 62 6f 61 72  64 22 2c 68 65 78 5f 77  |e","board",hex_w|
00000ea0  69 6e 64 6f 77 25 2c 30  2c 30 2c 30 2c 73 70 72  |indow%,0,0,0,spr|
00000eb0  69 74 65 73 25 2c 30 29  0d 04 60 23 ea 20 72 6f  |ites%,0)..`#. ro|
00000ec0  77 25 2c 63 6f 6c 25 2c  77 69 6e 64 6f 77 5f 78  |w%,col%,window_x|
00000ed0  25 2c 77 69 6e 64 6f 77  5f 79 25 0d 04 6a 13 e3  |%,window_y%..j..|
00000ee0  20 72 6f 77 25 20 3d 20  30 20 b8 20 31 30 0d 04  | row% = 0 . 10..|
00000ef0  74 22 77 69 6e 64 6f 77  5f 79 25 3d 20 2d 28 28  |t"window_y%= -((|
00000f00  31 30 2d 72 6f 77 25 29  2a 35 32 29 2d 31 30 35  |10-row%)*52)-105|
00000f10  0d 04 7e 13 e3 20 63 6f  6c 25 20 3d 20 30 20 b8  |..~.. col% = 0 .|
00000f20  20 31 30 0d 04 88 24 77  69 6e 64 6f 77 5f 78 25  | 10...$window_x%|
00000f30  3d 28 63 6f 6c 25 2a 37  32 29 2b 28 72 6f 77 25  |=(col%*72)+(row%|
00000f40  2a 33 36 29 2b 31 30 0d  04 92 5c 68 65 78 25 28  |*36)+10...\hex%(|
00000f50  63 6f 6c 25 2c 72 6f 77  25 29 3d a4 61 64 64 5f  |col%,row%)=.add_|
00000f60  69 63 6f 6e 28 22 73 70  72 69 74 65 22 2c 22 62  |icon("sprite","b|
00000f70  6c 61 6e 6b 22 2c 68 65  78 5f 77 69 6e 64 6f 77  |lank",hex_window|
00000f80  25 2c 77 69 6e 64 6f 77  5f 78 25 2c 77 69 6e 64  |%,window_x%,wind|
00000f90  6f 77 5f 79 25 2c 30 2c  73 70 72 69 74 65 73 25  |ow_y%,0,sprites%|
00000fa0  2c 30 29 0d 04 9c 0a ed  20 63 6f 6c 25 0d 04 a6  |,0)..... col%...|
00000fb0  0a ed 20 72 6f 77 25 0d  04 b0 4b 72 65 70 6f 72  |.. row%...Krepor|
00000fc0  74 5f 62 6c 75 65 25 3d  a4 61 64 64 5f 69 63 6f  |t_blue%=.add_ico|
00000fd0  6e 28 22 72 65 70 6f 72  74 22 2c 22 20 20 20 20  |n("report","    |
00000fe0  20 20 20 20 20 22 2c 20  68 65 78 5f 77 69 6e 64  |     ", hex_wind|
00000ff0  6f 77 25 2c 37 30 30 2c  2d 32 30 2c 30 2c 30 2c  |ow%,700,-20,0,0,|
00001000  31 29 0d 04 ba 4b 72 65  70 6f 72 74 5f 72 65 64  |1)...Kreport_red|
00001010  25 20 3d a4 61 64 64 5f  69 63 6f 6e 28 22 72 65  |% =.add_icon("re|
00001020  70 6f 72 74 22 2c 22 20  20 20 20 20 20 20 20 20  |port","         |
00001030  22 2c 68 65 78 5f 77 69  6e 64 6f 77 25 2c 39 36  |",hex_window%,96|
00001040  36 2c 2d 35 30 30 2c 30  2c 30 2c 31 29 0d 04 c4  |6,-500,0,0,1)...|
00001050  19 f2 73 65 74 5f 68 65  78 5f 77 69 6e 64 6f 77  |..set_hex_window|
00001060  5f 69 63 6f 6e 73 0d 04  ce 05 e1 0d 04 d8 18 dd  |_icons..........|
00001070  f2 73 63 6f 72 65 5f 77  69 6e 64 6f 77 5f 69 63  |.score_window_ic|
00001080  6f 6e 73 0d 04 e2 45 73  63 6f 72 65 5f 62 6c 6f  |ons...Escore_blo|
00001090  63 6b 31 25 3d a4 61 64  64 5f 69 63 6f 6e 5f 62  |ck1%=.add_icon_b|
000010a0  6c 6f 63 6b 28 73 63 6f  72 65 5f 77 69 6e 64 6f  |lock(score_windo|
000010b0  77 25 2c 31 30 2c 2d 31  30 2c 32 33 30 2c 2d 37  |w%,10,-10,230,-7|
000010c0  36 2c 67 72 65 79 25 29  0d 04 ec 2d f2 62 6f 72  |6,grey%)...-.bor|
000010d0  64 65 72 5f 69 63 6f 6e  28 73 63 6f 72 65 5f 77  |der_icon(score_w|
000010e0  69 6e 64 6f 77 25 2c 73  63 6f 72 65 5f 62 6c 6f  |indow%,score_blo|
000010f0  63 6b 31 25 29 0d 04 f6  4d 62 6c 75 65 5f 73 70  |ck1%)...Mblue_sp|
00001100  72 69 74 65 25 3d a4 61  64 64 5f 69 63 6f 6e 28  |rite%=.add_icon(|
00001110  22 73 70 72 69 74 65 22  2c 22 62 6c 75 65 22 2c  |"sprite","blue",|
00001120  73 63 6f 72 65 5f 77 69  6e 64 6f 77 25 2c 33 30  |score_window%,30|
00001130  2c 2d 32 34 2c 30 2c 73  70 72 69 74 65 73 25 2c  |,-24,0,sprites%,|
00001140  30 29 0d 05 00 47 62 6c  75 65 5f 73 63 6f 72 65  |0)...Gblue_score|
00001150  25 3d a4 61 64 64 5f 69  63 6f 6e 28 22 72 65 70  |%=.add_icon("rep|
00001160  6f 72 74 22 2c 22 20 20  20 20 20 22 2c 73 63 6f  |ort","     ",sco|
00001170  72 65 5f 77 69 6e 64 6f  77 25 2c 31 32 30 2c 2d  |re_window%,120,-|
00001180  32 30 2c 30 2c 30 2c 30  29 0d 05 0a 46 73 63 6f  |20,0,0,0)...Fsco|
00001190  72 65 5f 62 6c 6f 63 6b  32 25 3d a4 61 64 64 5f  |re_block2%=.add_|
000011a0  69 63 6f 6e 5f 62 6c 6f  63 6b 28 73 63 6f 72 65  |icon_block(score|
000011b0  5f 77 69 6e 64 6f 77 25  2c 31 30 2c 2d 39 30 2c  |_window%,10,-90,|
000011c0  32 33 30 2c 2d 31 35 36  2c 67 72 65 79 25 29 0d  |230,-156,grey%).|
000011d0  05 14 2d f2 62 6f 72 64  65 72 5f 69 63 6f 6e 28  |..-.border_icon(|
000011e0  73 63 6f 72 65 5f 77 69  6e 64 6f 77 25 2c 73 63  |score_window%,sc|
000011f0  6f 72 65 5f 62 6c 6f 63  6b 32 25 29 0d 05 1e 4c  |ore_block2%)...L|
00001200  72 65 64 5f 73 70 72 69  74 65 25 3d a4 61 64 64  |red_sprite%=.add|
00001210  5f 69 63 6f 6e 28 22 73  70 72 69 74 65 22 2c 22  |_icon("sprite","|
00001220  72 65 64 22 2c 73 63 6f  72 65 5f 77 69 6e 64 6f  |red",score_windo|
00001230  77 25 2c 33 30 2c 2d 31  30 34 2c 30 2c 73 70 72  |w%,30,-104,0,spr|
00001240  69 74 65 73 25 2c 30 29  0d 05 28 47 72 65 64 5f  |ites%,0)..(Gred_|
00001250  73 63 6f 72 65 25 3d a4  61 64 64 5f 69 63 6f 6e  |score%=.add_icon|
00001260  28 22 72 65 70 6f 72 74  22 2c 22 20 20 20 20 20  |("report","     |
00001270  22 2c 73 63 6f 72 65 5f  77 69 6e 64 6f 77 25 2c  |",score_window%,|
00001280  31 32 30 2c 2d 31 30 30  2c 30 2c 30 2c 30 29 0d  |120,-100,0,0,0).|
00001290  05 32 12 f2 75 70 64 61  74 65 5f 73 63 6f 72 65  |.2..update_score|
000012a0  73 0d 05 3c 05 e1 0d 05  46 0a dd f2 69 6e 66 6f  |s..<....F...info|
000012b0  0d 05 50 58 f2 70 75 74  5f 69 6e 66 6f 5f 74 65  |..PX.put_info_te|
000012c0  78 74 28 69 6e 66 6f 25  2c 61 70 70 5f 6e 61 6d  |xt(info%,app_nam|
000012d0  65 24 2c 61 70 70 5f 70  75 72 70 6f 73 65 24 2c  |e$,app_purpose$,|
000012e0  61 70 70 5f 63 6f 70 79  72 69 67 68 74 24 2c 61  |app_copyright$,a|
000012f0  70 70 5f 61 75 74 68 6f  72 24 2c 61 70 70 5f 76  |pp_author$,app_v|
00001300  65 72 73 69 6f 6e 24 29  0d 05 5a 05 e1 0d 05 64  |ersion$)..Z....d|
00001310  0b dd f2 6d 65 6e 75 73  0d 05 6e 22 f2 6c 6f 61  |...menus..n".loa|
00001320  64 5f 6d 65 6e 75 73 28  61 70 70 5f 64 69 72 24  |d_menus(app_dir$|
00001330  2b 22 2e 6d 65 6e 75 73  22 29 0d 05 78 05 e1 0d  |+".menus")..x...|
00001340  05 82 16 dd a4 66 69 6c  65 5f 73 69 7a 65 28 66  |.....file_size(f|
00001350  69 6c 65 24 29 0d 05 8c  12 ea 20 73 69 7a 65 25  |ile$)..... size%|
00001360  2c 66 6f 75 6e 64 25 0d  05 96 2a c8 99 22 4f 53  |,found%...*.."OS|
00001370  5f 46 69 6c 65 22 2c 31  37 2c 66 69 6c 65 24 20  |_File",17,file$ |
00001380  b8 20 66 6f 75 6e 64 25  2c 2c 2c 2c 73 69 7a 65  |. found%,,,,size|
00001390  25 0d 05 a0 3b e7 20 66  6f 75 6e 64 25 3c 3e 31  |%...;. found%<>1|
000013a0  20 8c 85 20 32 30 33 2c  22 46 69 6c 65 20 27 22  | .. 203,"File '"|
000013b0  2b a4 6c 65 61 66 28 66  69 6c 65 24 29 2b 22 27  |+.leaf(file$)+"'|
000013c0  20 6e 6f 74 20 66 6f 75  6e 64 21 22 0d 05 aa 0a  | not found!"....|
000013d0  3d 73 69 7a 65 25 0d 05  b4 44 dd a4 61 64 64 5f  |=size%...D..add_|
000013e0  69 63 6f 6e 5f 62 6c 6f  63 6b 28 77 69 6e 64 6f  |icon_block(windo|
000013f0  77 5f 68 61 6e 64 6c 65  25 2c 6d 69 6e 78 25 2c  |w_handle%,minx%,|
00001400  6d 69 6e 79 25 2c 6d 61  78 78 25 2c 6d 61 78 79  |miny%,maxx%,maxy|
00001410  25 2c 63 6f 6c 6f 75 72  25 29 0d 05 be 0b ea 20  |%,colour%)..... |
00001420  69 63 6f 6e 25 0d 05 c8  1e 74 65 6d 70 5f 62 6c  |icon%....temp_bl|
00001430  6b 25 21 30 3d 77 69 6e  64 6f 77 5f 68 61 6e 64  |k%!0=window_hand|
00001440  6c 65 25 0d 05 d2 20 e7  20 6d 69 6e 78 25 3e 6d  |le%... . minx%>m|
00001450  61 78 78 25 20 c8 94 20  6d 69 6e 78 25 2c 6d 61  |axx% .. minx%,ma|
00001460  78 78 25 0d 05 dc 20 e7  20 6d 69 6e 79 25 3e 6d  |xx%... . miny%>m|
00001470  61 78 79 25 20 c8 94 20  6d 69 6e 79 25 2c 6d 61  |axy% .. miny%,ma|
00001480  78 79 25 0d 05 e6 1a e7  20 6d 69 6e 78 25 3d 6d  |xy%..... minx%=m|
00001490  61 78 78 25 20 6d 61 78  78 25 2b 3d 31 0d 05 f0  |axx% maxx%+=1...|
000014a0  1a e7 20 6d 69 6e 79 25  3d 6d 61 78 79 25 20 6d  |.. miny%=maxy% m|
000014b0  61 78 79 25 2b 3d 31 0d  05 fa 15 74 65 6d 70 5f  |axy%+=1....temp_|
000014c0  62 6c 6b 25 21 34 3d 6d  69 6e 78 25 0d 06 04 15  |blk%!4=minx%....|
000014d0  74 65 6d 70 5f 62 6c 6b  25 21 38 3d 6d 69 6e 79  |temp_blk%!8=miny|
000014e0  25 0d 06 0e 16 74 65 6d  70 5f 62 6c 6b 25 21 31  |%....temp_blk%!1|
000014f0  32 3d 6d 61 78 78 25 0d  06 18 16 74 65 6d 70 5f  |2=maxx%....temp_|
00001500  62 6c 6b 25 21 31 36 3d  6d 61 78 79 25 0d 06 22  |blk%!16=maxy%.."|
00001510  21 74 65 6d 70 5f 62 6c  6b 25 21 32 30 3d 33 32  |!temp_blk%!20=32|
00001520  2b 28 63 6f 6c 6f 75 72  25 3c 3c 32 38 29 0d 06  |+(colour%<<28)..|
00001530  2c 2b c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |,+.. "Wimp_Creat|
00001540  65 49 63 6f 6e 22 2c 2c  74 65 6d 70 5f 62 6c 6b  |eIcon",,temp_blk|
00001550  25 20 b8 20 69 63 6f 6e  25 0d 06 36 0a 3d 69 63  |% . icon%..6.=ic|
00001560  6f 6e 25 0d 06 40 2e dd  f2 62 6f 72 64 65 72 5f  |on%..@...border_|
00001570  69 63 6f 6e 28 77 69 6e  64 6f 77 5f 68 61 6e 64  |icon(window_hand|
00001580  6c 65 25 2c 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |le%,icon_handle%|
00001590  29 0d 06 4a 31 ea 20 69  63 6f 6e 25 2c 6d 69 6e  |)..J1. icon%,min|
000015a0  78 25 2c 6d 69 6e 79 25  2c 6d 61 78 78 25 2c 6d  |x%,miny%,maxx%,m|
000015b0  61 78 79 25 2c 66 6c 61  67 25 2c 74 6c 25 2c 62  |axy%,flag%,tl%,b|
000015c0  72 25 0d 06 54 1e 74 65  6d 70 5f 62 6c 6b 25 21  |r%..T.temp_blk%!|
000015d0  30 3d 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |0=window_handle%|
000015e0  0d 06 5e 1c 74 65 6d 70  5f 62 6c 6b 25 21 34 3d  |..^.temp_blk%!4=|
000015f0  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 0d 06 68 24  |icon_handle%..h$|
00001600  c8 99 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |.."Wimp_GetIconS|
00001610  74 61 74 65 22 2c 2c 74  65 6d 70 5f 62 6c 6b 25  |tate",,temp_blk%|
00001620  0d 06 72 15 6d 69 6e 78  25 3d 74 65 6d 70 5f 62  |..r.minx%=temp_b|
00001630  6c 6b 25 21 38 0d 06 7c  16 6d 69 6e 79 25 3d 74  |lk%!8..|.miny%=t|
00001640  65 6d 70 5f 62 6c 6b 25  21 31 32 0d 06 86 16 6d  |emp_blk%!12....m|
00001650  61 78 78 25 3d 74 65 6d  70 5f 62 6c 6b 25 21 31  |axx%=temp_blk%!1|
00001660  36 0d 06 90 16 6d 61 78  79 25 3d 74 65 6d 70 5f  |6....maxy%=temp_|
00001670  62 6c 6b 25 21 32 30 0d  06 9a 16 66 6c 61 67 25  |blk%!20....flag%|
00001680  3d 74 65 6d 70 5f 62 6c  6b 25 21 32 34 0d 06 a4  |=temp_blk%!24...|
00001690  09 74 6c 25 3d 30 0d 06  ae 09 62 72 25 3d 34 0d  |.tl%=0....br%=4.|
000016a0  06 b8 43 e7 20 28 66 6c  61 67 25 20 80 20 34 29  |..C. (flag% . 4)|
000016b0  3d 34 20 6d 69 6e 78 25  2d 3d 34 3a 6d 61 78 78  |=4 minx%-=4:maxx|
000016c0  25 2b 3d 34 3a 6d 69 6e  79 25 2d 3d 34 3a 6d 61  |%+=4:miny%-=4:ma|
000016d0  78 79 25 2b 3d 34 3a 74  6c 25 3d 34 3a 62 72 25  |xy%+=4:tl%=4:br%|
000016e0  3d 30 0d 06 c2 4b 69 63  6f 6e 25 3d a4 61 64 64  |=0...Kicon%=.add|
000016f0  5f 69 63 6f 6e 5f 62 6c  6f 63 6b 28 77 69 6e 64  |_icon_block(wind|
00001700  6f 77 5f 68 61 6e 64 6c  65 25 2c 6d 61 78 78 25  |ow_handle%,maxx%|
00001710  2c 6d 69 6e 79 25 2d 34  2c 6d 61 78 78 25 2b 34  |,miny%-4,maxx%+4|
00001720  2c 6d 61 78 79 25 2b 34  2c 62 72 25 29 0d 06 cc  |,maxy%+4,br%)...|
00001730  4b 69 63 6f 6e 25 3d a4  61 64 64 5f 69 63 6f 6e  |Kicon%=.add_icon|
00001740  5f 62 6c 6f 63 6b 28 77  69 6e 64 6f 77 5f 68 61  |_block(window_ha|
00001750  6e 64 6c 65 25 2c 6d 69  6e 78 25 2d 34 2c 6d 61  |ndle%,minx%-4,ma|
00001760  78 79 25 2c 6d 61 78 78  25 2b 32 2c 6d 61 78 79  |xy%,maxx%+2,maxy|
00001770  25 2b 34 2c 74 6c 25 29  0d 06 d6 49 69 63 6f 6e  |%+4,tl%)...Iicon|
00001780  25 3d a4 61 64 64 5f 69  63 6f 6e 5f 62 6c 6f 63  |%=.add_icon_bloc|
00001790  6b 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |k(window_handle%|
000017a0  2c 6d 69 6e 78 25 2d 34  2c 6d 69 6e 79 25 2d 34  |,minx%-4,miny%-4|
000017b0  2c 6d 69 6e 78 25 2c 6d  61 78 79 25 2c 74 6c 25  |,minx%,maxy%,tl%|
000017c0  29 0d 06 e0 4b 69 63 6f  6e 25 3d a4 61 64 64 5f  |)...Kicon%=.add_|
000017d0  69 63 6f 6e 5f 62 6c 6f  63 6b 28 77 69 6e 64 6f  |icon_block(windo|
000017e0  77 5f 68 61 6e 64 6c 65  25 2c 6d 69 6e 78 25 2d  |w_handle%,minx%-|
000017f0  32 2c 6d 69 6e 79 25 2d  34 2c 6d 61 78 78 25 2b  |2,miny%-4,maxx%+|
00001800  32 2c 6d 69 6e 79 25 2c  62 72 25 29 0d 06 ea 05  |2,miny%,br%)....|
00001810  e1 0d 06 f4 1e e7 20 63  6f 6c 6f 75 72 25 3c 30  |...... colour%<0|
00001820  20 84 20 63 6f 6c 6f 75  72 25 3e 31 35 20 e1 0d  | . colour%>15 ..|
00001830  06 fe 1e 74 65 6d 70 5f  62 6c 6b 25 21 30 3d 77  |...temp_blk%!0=w|
00001840  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 0d 07 08  |indow_handle%...|
00001850  1c 74 65 6d 70 5f 62 6c  6b 25 21 34 3d 69 63 6f  |.temp_blk%!4=ico|
00001860  6e 5f 68 61 6e 64 6c 65  25 0d 07 12 24 c8 99 22  |n_handle%...$.."|
00001870  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
00001880  65 22 2c 2c 74 65 6d 70  5f 62 6c 6b 25 0d 07 1c  |e",,temp_blk%...|
00001890  1e e7 20 28 74 65 6d 70  5f 62 6c 6b 25 21 32 34  |.. (temp_blk%!24|
000018a0  20 80 20 31 3c 3c 36 29  20 8c e1 0d 07 26 1a 74  | . 1<<6) ....&.t|
000018b0  65 6d 70 5f 62 6c 6b 25  21 31 32 3d 26 46 30 30  |emp_blk%!12=&F00|
000018c0  30 30 30 30 30 0d 07 30  3c 74 65 6d 70 5f 62 6c  |00000..0<temp_bl|
000018d0  6b 25 21 38 3d 63 6f 6c  6f 75 72 25 3c 3c 32 38  |k%!8=colour%<<28|
000018e0  3a c8 99 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |:.."Wimp_SetIcon|
000018f0  53 74 61 74 65 22 2c 2c  74 65 6d 70 5f 62 6c 6b  |State",,temp_blk|
00001900  25 0d 07 3a 05 e1 0d 07  44 29 dd a4 70 75 74 5f  |%..:....D)..put_|
00001910  69 63 6f 6e 5f 6f 6e 5f  62 61 72 28 73 70 72 69  |icon_on_bar(spri|
00001920  74 65 5f 6e 61 6d 65 24  2c 73 69 64 65 24 29 0d  |te_name$,side$).|
00001930  07 4e 0d ea 20 68 61 6e  64 6c 65 25 0d 07 58 30  |.N.. handle%..X0|
00001940  e7 20 73 69 64 65 24 3d  22 52 49 47 48 54 22 20  |. side$="RIGHT" |
00001950  21 74 65 6d 70 5f 62 6c  6b 25 3d 2d 31 20 8b 21  |!temp_blk%=-1 .!|
00001960  74 65 6d 70 5f 62 6c 6b  25 3d 2d 32 0d 07 62 11  |temp_blk%=-2..b.|
00001970  74 65 6d 70 5f 62 6c 6b  25 21 34 3d 30 0d 07 6c  |temp_blk%!4=0..l|
00001980  11 74 65 6d 70 5f 62 6c  6b 25 21 38 3d 30 0d 07  |.temp_blk%!8=0..|
00001990  76 13 74 65 6d 70 5f 62  6c 6b 25 21 31 32 3d 36  |v.temp_blk%!12=6|
000019a0  38 0d 07 80 13 74 65 6d  70 5f 62 6c 6b 25 21 31  |8....temp_blk%!1|
000019b0  36 3d 36 38 0d 07 8a 1a  74 65 6d 70 5f 62 6c 6b  |6=68....temp_blk|
000019c0  25 21 32 30 3d 26 31 37  30 30 32 30 32 41 0d 07  |%!20=&1700202A..|
000019d0  94 20 24 28 74 65 6d 70  5f 62 6c 6b 25 2b 32 34  |. $(temp_blk%+24|
000019e0  29 3d 73 70 72 69 74 65  5f 6e 61 6d 65 24 0d 07  |)=sprite_name$..|
000019f0  9e 2d c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |.-.. "Wimp_Creat|
00001a00  65 49 63 6f 6e 22 2c 2c  74 65 6d 70 5f 62 6c 6b  |eIcon",,temp_blk|
00001a10  25 20 b8 20 68 61 6e 64  6c 65 25 0d 07 a8 0c 3d  |% . handle%....=|
00001a20  68 61 6e 64 6c 65 25 0d  07 b2 4e dd f2 70 75 74  |handle%...N..put|
00001a30  5f 69 6e 66 6f 5f 74 65  78 74 28 77 69 6e 64 6f  |_info_text(windo|
00001a40  77 5f 68 61 6e 64 6c 65  25 2c 6e 61 6d 65 24 2c  |w_handle%,name$,|
00001a50  70 75 72 70 6f 73 65 24  2c 63 6f 70 79 72 69 67  |purpose$,copyrig|
00001a60  68 74 24 2c 61 75 74 68  6f 72 24 2c 76 65 72 73  |ht$,author$,vers|
00001a70  69 6f 6e 24 29 0d 07 bc  2a f2 70 75 74 5f 69 63  |ion$)...*.put_ic|
00001a80  6f 6e 5f 74 65 78 74 28  77 69 6e 64 6f 77 5f 68  |on_text(window_h|
00001a90  61 6e 64 6c 65 25 2c 31  2c 6e 61 6d 65 24 29 0d  |andle%,1,name$).|
00001aa0  07 c6 2d f2 70 75 74 5f  69 63 6f 6e 5f 74 65 78  |..-.put_icon_tex|
00001ab0  74 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |t(window_handle%|
00001ac0  2c 32 2c 70 75 72 70 6f  73 65 24 29 0d 07 d0 2f  |,2,purpose$).../|
00001ad0  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 77  |.put_icon_text(w|
00001ae0  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 2c 33 2c  |indow_handle%,3,|
00001af0  63 6f 70 79 72 69 67 68  74 24 29 0d 07 da 2c f2  |copyright$)...,.|
00001b00  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 77 69  |put_icon_text(wi|
00001b10  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 2c 34 2c 61  |ndow_handle%,4,a|
00001b20  75 74 68 6f 72 24 29 0d  07 e4 2d f2 70 75 74 5f  |uthor$)...-.put_|
00001b30  69 63 6f 6e 5f 74 65 78  74 28 77 69 6e 64 6f 77  |icon_text(window|
00001b40  5f 68 61 6e 64 6c 65 25  2c 35 2c 76 65 72 73 69  |_handle%,5,versi|
00001b50  6f 6e 24 29 0d 07 ee 05  e1 0d 07 f8 1e dd 20 a4  |on$).......... .|
00001b60  74 61 73 6b 5f 69 6e 69  74 69 61 6c 69 73 65 28  |task_initialise(|
00001b70  74 69 74 6c 65 24 29 0d  08 02 0e ea 20 76 65 72  |title$)..... ver|
00001b80  73 69 6f 6e 25 0d 08 0c  10 76 65 72 73 69 6f 6e  |sion%....version|
00001b90  25 3d 32 30 30 0d 08 16  48 c8 99 20 22 57 69 6d  |%=200...H.. "Wim|
00001ba0  70 5f 49 6e 69 74 69 61  6c 69 73 65 22 2c 76 65  |p_Initialise",ve|
00001bb0  72 73 69 6f 6e 25 2c 26  34 42 35 33 34 31 35 34  |rsion%,&4B534154|
00001bc0  2c 74 69 74 6c 65 24 20  b8 20 76 65 72 73 69 6f  |,title$ . versio|
00001bd0  6e 25 2c 74 68 69 73 5f  74 61 73 6b 25 0d 08 20  |n%,this_task%.. |
00001be0  0f 3d 74 68 69 73 5f 74  61 73 6b 25 0d 08 2a 1a  |.=this_task%..*.|
00001bf0  dd f2 61 64 64 5f 6d 65  6e 75 5f 69 74 65 6d 28  |..add_menu_item(|
00001c00  6c 69 6e 65 24 29 0d 08  34 44 ea 20 6d 65 6e 75  |line$)..4D. menu|
00001c10  66 6c 61 67 25 2c 69 63  6f 6e 66 6c 61 67 25 2c  |flag%,iconflag%,|
00001c20  70 61 72 61 6d 24 2c 73  75 62 25 2c 69 74 65 6d  |param$,sub%,item|
00001c30  74 65 78 74 24 2c 77 72  69 74 61 62 6c 65 25 2c  |text$,writable%,|
00001c40  6d 61 78 6c 65 6e 67 74  68 25 0d 08 3e 2a 69 63  |maxlength%..>*ic|
00001c50  6f 6e 66 6c 61 67 25 3d  26 37 30 30 30 30 32 31  |onflag%=&7000021|
00001c60  3a 73 75 62 25 3d 2d 31  3a 77 72 69 74 61 62 6c  |:sub%=-1:writabl|
00001c70  65 25 3d a3 0d 08 48 3a  69 74 65 6d 74 65 78 74  |e%=...H:itemtext|
00001c80  24 3d a4 6d 65 6e 75 5f  69 74 65 6d 5f 74 65 78  |$=.menu_item_tex|
00001c90  74 28 6c 69 6e 65 24 29  3a 6d 61 78 6c 65 6e 67  |t(line$):maxleng|
00001ca0  74 68 25 3d a9 69 74 65  6d 74 65 78 74 24 0d 08  |th%=.itemtext$..|
00001cb0  52 05 f5 0d 08 5c 22 70  61 72 61 6d 24 3d a4 6d  |R....\"param$=.m|
00001cc0  65 6e 75 5f 69 74 65 6d  5f 70 61 72 61 6d 28 6c  |enu_item_param(l|
00001cd0  69 6e 65 24 29 0d 08 66  13 c8 8e 20 c0 70 61 72  |ine$)..f... .par|
00001ce0  61 6d 24 2c 34 29 20 ca  0d 08 70 21 c9 22 74 69  |am$,4) ...p!."ti|
00001cf0  63 6b 22 3a 6d 65 6e 75  66 6c 61 67 25 3d 6d 65  |ck":menuflag%=me|
00001d00  6e 75 66 6c 61 67 25 84  31 0d 08 7a 21 c9 22 6c  |nuflag%.1..z!."l|
00001d10  69 6e 65 22 3a 6d 65 6e  75 66 6c 61 67 25 3d 6d  |ine":menuflag%=m|
00001d20  65 6e 75 66 6c 61 67 25  84 32 0d 08 84 27 c9 22  |enuflag%.2...'."|
00001d30  73 68 61 64 22 3a 69 63  6f 6e 66 6c 61 67 25 3d  |shad":iconflag%=|
00001d40  69 63 6f 6e 66 6c 61 67  25 84 26 34 30 30 30 30  |iconflag%.&40000|
00001d50  30 0d 08 8e 30 c9 22 73  75 62 6d 22 3a 73 75 62  |0...0."subm":sub|
00001d60  25 3d a4 6d 65 6e 75 5f  73 75 62 6d 65 6e 75 28  |%=.menu_submenu(|
00001d70  a4 6d 65 6e 75 76 61 72  28 70 61 72 61 6d 24 29  |.menuvar(param$)|
00001d80  29 0d 08 98 2f c9 22 77  69 6e 64 22 3a 73 75 62  |).../."wind":sub|
00001d90  25 3d a4 6d 65 6e 75 5f  77 69 6e 64 6f 77 28 a4  |%=.menu_window(.|
00001da0  6d 65 6e 75 76 61 72 28  70 61 72 61 6d 24 29 29  |menuvar(param$))|
00001db0  0d 08 a2 36 c9 22 69 63  6f 6e 22 3a 69 63 6f 6e  |...6."icon":icon|
00001dc0  66 6c 61 67 25 3d a4 6d  65 6e 75 5f 69 63 6f 6e  |flag%=.menu_icon|
00001dd0  66 6c 61 67 28 a4 6d 65  6e 75 76 61 72 28 70 61  |flag(.menuvar(pa|
00001de0  72 61 6d 24 29 29 0d 08  ac 2c c9 22 77 72 69 74  |ram$))...,."writ|
00001df0  22 3a f2 6d 65 6e 75 5f  77 72 69 74 61 62 6c 65  |":.menu_writable|
00001e00  28 a4 6d 65 6e 75 76 61  72 28 70 61 72 61 6d 24  |(.menuvar(param$|
00001e10  29 29 0d 08 b6 05 cb 0d  08 c0 0f fd 20 70 61 72  |)).......... par|
00001e20  61 6d 24 3d 22 22 0d 08  ca 18 70 6f 69 6e 74 65  |am$=""....pointe|
00001e30  72 25 21 30 3d 6d 65 6e  75 66 6c 61 67 25 0d 08  |r%!0=menuflag%..|
00001e40  d4 13 70 6f 69 6e 74 65  72 25 21 34 3d 73 75 62  |..pointer%!4=sub|
00001e50  25 0d 08 de 23 e7 20 a9  28 69 74 65 6d 74 65 78  |%...#. .(itemtex|
00001e60  74 24 29 3e 31 32 20 84  20 77 72 69 74 61 62 6c  |t$)>12 . writabl|
00001e70  65 25 20 8c 0d 08 e8 1f  70 6f 69 6e 74 65 72 25  |e% .....pointer%|
00001e80  21 38 3d 69 63 6f 6e 66  6c 61 67 25 20 84 20 26  |!8=iconflag% . &|
00001e90  31 30 30 0d 08 f2 33 f2  69 6e 64 69 72 65 63 74  |100...3.indirect|
00001ea0  65 64 5f 69 74 65 6d 28  70 6f 69 6e 74 65 72 25  |ed_item(pointer%|
00001eb0  2c 77 72 69 74 61 62 6c  65 25 2c 6d 61 78 6c 65  |,writable%,maxle|
00001ec0  6e 67 74 68 25 29 0d 08  fc 05 cc 0d 09 06 18 70  |ngth%).........p|
00001ed0  6f 69 6e 74 65 72 25 21  38 3d 69 63 6f 6e 66 6c  |ointer%!8=iconfl|
00001ee0  61 67 25 0d 09 10 26 24  28 70 6f 69 6e 74 65 72  |ag%...&$(pointer|
00001ef0  25 2b 31 32 29 3d c0 69  74 65 6d 74 65 78 74 24  |%+12)=.itemtext$|
00001f00  2b bd 28 30 29 2c 31 32  29 0d 09 1a 05 cd 0d 09  |+.(0),12).......|
00001f10  24 10 70 6f 69 6e 74 65  72 25 2b 3d 32 34 0d 09  |$.pointer%+=24..|
00001f20  2e 05 e1 0d 09 38 16 dd  a4 62 65 67 69 6e 6d 65  |.....8...beginme|
00001f30  6e 75 28 6c 69 6e 65 24  29 0d 09 42 1e e7 20 c0  |nu(line$)..B.. .|
00001f40  6c 69 6e 65 24 2c 39 29  3d 22 62 65 67 69 6e 6d  |line$,9)="beginm|
00001f50  65 6e 75 22 20 3d b9 0d  09 4c 06 3d a3 0d 09 56  |enu" =...L.=...V|
00001f60  45 dd f2 64 69 6d 5f 6d  65 6e 75 5f 61 72 72 61  |E..dim_menu_arra|
00001f70  79 73 28 6d 65 6e 75 63  6f 75 6e 74 25 2c 69 74  |ys(menucount%,it|
00001f80  65 6d 63 6f 75 6e 74 25  2c 77 72 69 74 65 63 6f  |emcount%,writeco|
00001f90  75 6e 74 25 2c 77 69 6e  64 6f 77 63 6f 75 6e 74  |unt%,windowcount|
00001fa0  25 29 0d 09 60 30 de 20  6d 65 6e 75 73 74 61 72  |%)..`0. menustar|
00001fb0  74 25 20 28 6d 65 6e 75  63 6f 75 6e 74 25 2a 32  |t% (menucount%*2|
00001fc0  38 29 2b 28 69 74 65 6d  63 6f 75 6e 74 25 2a 32  |8)+(itemcount%*2|
00001fd0  34 29 0d 09 6a 1c de 20  6d 65 6e 75 77 69 64 74  |4)..j.. menuwidt|
00001fe0  68 25 28 6d 65 6e 75 63  6f 75 6e 74 25 29 0d 09  |h%(menucount%)..|
00001ff0  74 17 de 20 6d 65 6e 75  25 28 6d 65 6e 75 63 6f  |t.. menu%(menuco|
00002000  75 6e 74 25 29 0d 09 7e  21 de 20 77 72 69 74 61  |unt%)..~!. writa|
00002010  62 6c 65 5f 69 74 65 6d  25 28 77 72 69 74 65 63  |ble_item%(writec|
00002020  6f 75 6e 74 25 29 0d 09  88 20 de 20 77 72 69 74  |ount%)... . writ|
00002030  61 62 6c 65 5f 6c 65 6e  25 28 77 72 69 74 65 63  |able_len%(writec|
00002040  6f 75 6e 74 25 29 0d 09  92 05 e1 0d 09 9c 14 dd  |ount%)..........|
00002050  f2 67 6f 74 6f 5f 62 65  67 69 6e 6d 65 6e 75 0d  |.goto_beginmenu.|
00002060  09 a6 11 ea 20 74 65 6d  70 25 2c 6c 69 6e 65 24  |.... temp%,line$|
00002070  0d 09 b0 11 cf 23 6d 65  6e 75 66 69 6c 65 25 3d  |.....#menufile%=|
00002080  30 0d 09 ba 05 f5 0d 09  c4 15 74 65 6d 70 25 3d  |0.........temp%=|
00002090  8f 23 6d 65 6e 75 66 69  6c 65 25 0d 09 ce 15 6c  |.#menufile%....l|
000020a0  69 6e 65 24 3d be 23 6d  65 6e 75 66 69 6c 65 25  |ine$=.#menufile%|
000020b0  0d 09 d8 25 fd 20 a4 62  65 67 69 6e 6d 65 6e 75  |...%. .beginmenu|
000020c0  28 6c 69 6e 65 24 29 20  84 20 c5 23 6d 65 6e 75  |(line$) . .#menu|
000020d0  66 69 6c 65 25 0d 09 e2  3a e7 c5 23 6d 65 6e 75  |file%...:..#menu|
000020e0  66 69 6c 65 25 20 85 20  32 30 30 2c 22 4e 6f 20  |file% . 200,"No |
000020f0  27 62 65 67 69 6e 6d 65  6e 75 27 20 66 6f 75 6e  |'beginmenu' foun|
00002100  64 20 69 6e 20 6d 65 6e  75 20 66 69 6c 65 22 0d  |d in menu file".|
00002110  09 ec 15 cf 23 6d 65 6e  75 66 69 6c 65 25 3d 74  |....#menufile%=t|
00002120  65 6d 70 25 0d 09 f6 05  e1 0d 0a 00 32 dd f2 69  |emp%........2..i|
00002130  6e 64 69 72 65 63 74 65  64 5f 69 74 65 6d 28 6d  |ndirected_item(m|
00002140  65 6e 75 5f 70 74 72 25  2c 77 72 69 74 61 62 6c  |enu_ptr%,writabl|
00002150  65 25 2c 6c 65 6e 67 74  68 25 29 0d 0a 0a 10 ea  |e%,length%).....|
00002160  20 69 6e 64 69 72 5f 70  74 72 25 0d 0a 14 11 e7  | indir_ptr%.....|
00002170  20 77 72 69 74 61 62 6c  65 25 20 8c 0d 0a 1e 1a  | writable% .....|
00002180  de 20 69 6e 64 69 72 5f  70 74 72 25 20 6c 65 6e  |. indir_ptr% len|
00002190  67 74 68 25 2b 31 0d 0a  28 05 cc 0d 0a 32 1d de  |gth%+1..(....2..|
000021a0  20 69 6e 64 69 72 5f 70  74 72 25 20 31 2b a9 69  | indir_ptr% 1+.i|
000021b0  74 65 6d 74 65 78 74 24  0d 0a 3c 05 cd 0d 0a 46  |temtext$..<....F|
000021c0  1b 6d 65 6e 75 5f 70 74  72 25 21 31 32 3d 69 6e  |.menu_ptr%!12=in|
000021d0  64 69 72 5f 70 74 72 25  0d 0a 50 1e 24 69 6e 64  |dir_ptr%..P.$ind|
000021e0  69 72 5f 70 74 72 25 3d  69 74 65 6d 74 65 78 74  |ir_ptr%=itemtext|
000021f0  24 2b bd 28 30 29 0d 0a  5a 11 e7 20 77 72 69 74  |$+.(0)..Z.. writ|
00002200  61 62 6c 65 25 20 8c 0d  0a 64 28 77 72 69 74 61  |able% ...d(writa|
00002210  62 6c 65 5f 69 74 65 6d  25 28 77 72 69 74 61 62  |ble_item%(writab|
00002220  6c 65 25 29 3d 69 6e 64  69 72 5f 70 74 72 25 0d  |le%)=indir_ptr%.|
00002230  0a 6e 24 77 72 69 74 61  62 6c 65 5f 6c 65 6e 25  |.n$writable_len%|
00002240  28 77 72 69 74 61 62 6c  65 25 29 3d 6c 65 6e 67  |(writable%)=leng|
00002250  74 68 25 0d 0a 78 19 69  6e 64 69 72 5f 70 74 72  |th%..x.indir_ptr|
00002260  25 2b 3d 6c 65 6e 67 74  68 25 2b 31 0d 0a 82 1a  |%+=length%+1....|
00002270  6d 65 6e 75 5f 70 74 72  25 21 32 30 3d 6c 65 6e  |menu_ptr%!20=len|
00002280  67 74 68 25 2b 31 0d 0a  8c 05 cc 0d 0a 96 1c 69  |gth%+1.........i|
00002290  6e 64 69 72 5f 70 74 72  25 2b 3d 31 2b a9 69 74  |ndir_ptr%+=1+.it|
000022a0  65 6d 74 65 78 74 24 0d  0a a0 1d 6d 65 6e 75 5f  |emtext$....menu_|
000022b0  70 74 72 25 21 32 30 3d  31 2b a9 69 74 65 6d 74  |ptr%!20=1+.itemt|
000022c0  65 78 74 24 0d 0a aa 05  cd 0d 0a b4 11 3f 69 6e  |ext$.........?in|
000022d0  64 69 72 5f 70 74 72 25  3d 30 0d 0a be 1b 6d 65  |dir_ptr%=0....me|
000022e0  6e 75 5f 70 74 72 25 21  31 36 3d 69 6e 64 69 72  |nu_ptr%!16=indir|
000022f0  5f 70 74 72 25 0d 0a c8  05 e1 0d 0a d2 1b dd f2  |_ptr%...........|
00002300  6c 6f 61 64 5f 6d 65 6e  75 73 28 6d 65 6e 75 66  |load_menus(menuf|
00002310  69 6c 65 24 29 0d 0a dc  32 ea 20 6d 65 6e 75 63  |ile$)...2. menuc|
00002320  6f 75 6e 74 25 2c 68 65  61 64 65 72 25 2c 6c 69  |ount%,header%,li|
00002330  6e 65 24 2c 70 6f 69 6e  74 65 72 25 2c 6d 65 6e  |ne$,pointer%,men|
00002340  75 73 74 61 72 74 25 0d  0a e6 20 f2 73 69 7a 65  |ustart%... .size|
00002350  5f 6d 65 6e 75 5f 61 72  72 61 79 73 28 6d 65 6e  |_menu_arrays(men|
00002360  75 66 69 6c 65 24 29 0d  0a f0 18 6d 65 6e 75 66  |ufile$)....menuf|
00002370  69 6c 65 25 3d 8e 6d 65  6e 75 66 69 6c 65 24 0d  |ile%=.menufile$.|
00002380  0a fa 14 f2 73 65 74 5f  6d 65 6e 75 5f 61 72 72  |....set_menu_arr|
00002390  61 79 73 0d 0b 04 13 f2  67 6f 74 6f 5f 62 65 67  |ays.....goto_beg|
000023a0  69 6e 6d 65 6e 75 0d 0b  0e 1a 6d 65 6e 75 63 6f  |inmenu....menuco|
000023b0  75 6e 74 25 3d 30 3a 68  65 61 64 65 72 25 3d a3  |unt%=0:header%=.|
000023c0  0d 0b 18 05 f5 0d 0b 22  15 6c 69 6e 65 24 3d be  |.......".line$=.|
000023d0  23 6d 65 6e 75 66 69 6c  65 25 0d 0b 2c 19 e7 20  |#menufile%..,.. |
000023e0  a4 62 65 67 69 6e 6d 65  6e 75 28 6c 69 6e 65 24  |.beginmenu(line$|
000023f0  29 20 8c 0d 0b 36 43 e7  68 65 61 64 65 72 25 20  |) ...6C.header% |
00002400  85 20 32 30 30 2c 22 42  61 64 20 6d 65 6e 75 20  |. 200,"Bad menu |
00002410  66 69 6c 65 2c 20 6e 6f  20 69 74 65 6d 73 20 69  |file, no items i|
00002420  6e 20 6d 65 6e 75 20 22  2b c3 28 6d 65 6e 75 63  |n menu "+.(menuc|
00002430  6f 75 6e 74 25 29 0d 0b  40 28 e7 6d 65 6e 75 63  |ount%)..@(.menuc|
00002440  6f 75 6e 74 25 20 f2 6d  61 72 6b 5f 6d 65 6e 75  |ount% .mark_menu|
00002450  5f 65 6e 64 28 70 6f 69  6e 74 65 72 25 29 0d 0b  |_end(pointer%)..|
00002460  4a 11 6d 65 6e 75 63 6f  75 6e 74 25 2b 3d 31 0d  |J.menucount%+=1.|
00002470  0b 54 15 6c 69 6e 65 24  3d be 23 6d 65 6e 75 66  |.T.line$=.#menuf|
00002480  69 6c 65 25 0d 0b 5e 46  f2 6d 61 6b 65 5f 6d 65  |ile%..^F.make_me|
00002490  6e 75 5f 68 65 61 64 65  72 28 70 6f 69 6e 74 65  |nu_header(pointe|
000024a0  72 25 2c 6c 69 6e 65 24  2c 6d 65 6e 75 77 69 64  |r%,line$,menuwid|
000024b0  74 68 25 28 6d 65 6e 75  63 6f 75 6e 74 25 29 29  |th%(menucount%))|
000024c0  3a 68 65 61 64 65 72 25  3d b9 0d 0b 68 05 cc 0d  |:header%=...h...|
000024d0  0b 72 23 f2 61 64 64 5f  6d 65 6e 75 5f 69 74 65  |.r#.add_menu_ite|
000024e0  6d 28 6c 69 6e 65 24 29  3a 68 65 61 64 65 72 25  |m(line$):header%|
000024f0  3d a3 0d 0b 7c 05 cd 0d  0b 86 11 fd 20 c5 23 6d  |=...|....... .#m|
00002500  65 6e 75 66 69 6c 65 25  0d 0b 90 1c f2 6d 61 72  |enufile%.....mar|
00002510  6b 5f 6d 65 6e 75 5f 65  6e 64 28 70 6f 69 6e 74  |k_menu_end(point|
00002520  65 72 25 29 0d 0b 9a 28  c8 99 22 58 4f 53 5f 46  |er%)...(.."XOS_F|
00002530  69 6e 64 22 2c 30 2c 6d  65 6e 75 66 69 6c 65 25  |ind",0,menufile%|
00002540  3a 6d 65 6e 75 66 69 6c  65 25 3d 30 0d 0b a4 43  |:menufile%=0...C|
00002550  e7 68 65 61 64 65 72 25  20 85 20 32 30 30 2c 22  |.header% . 200,"|
00002560  42 61 64 20 6d 65 6e 75  20 66 69 6c 65 2c 20 6e  |Bad menu file, n|
00002570  6f 20 69 74 65 6d 73 20  69 6e 20 6d 65 6e 75 20  |o items in menu |
00002580  22 2b c3 28 6d 65 6e 75  63 6f 75 6e 74 25 29 0d  |"+.(menucount%).|
00002590  0b ae 05 e1 0d 0b b8 30  dd f2 6d 61 6b 65 5f 6d  |.......0..make_m|
000025a0  65 6e 75 5f 68 65 61 64  65 72 28 f8 20 70 6f 69  |enu_header(. poi|
000025b0  6e 74 65 72 25 2c 74 69  74 6c 65 24 2c 77 69 64  |nter%,title$,wid|
000025c0  74 68 25 29 0d 0b c2 1e  24 70 6f 69 6e 74 65 72  |th%)....$pointer|
000025d0  25 3d c0 74 69 74 6c 65  24 2c 31 32 29 2b bd 28  |%=.title$,12)+.(|
000025e0  30 29 0d 0b cc 11 70 6f  69 6e 74 65 72 25 3f 31  |0)....pointer%?1|
000025f0  32 3d 37 0d 0b d6 11 70  6f 69 6e 74 65 72 25 3f  |2=7....pointer%?|
00002600  31 33 3d 32 0d 0b e0 11  70 6f 69 6e 74 65 72 25  |13=2....pointer%|
00002610  3f 31 34 3d 37 0d 0b ea  11 70 6f 69 6e 74 65 72  |?14=7....pointer|
00002620  25 3f 31 35 3d 30 0d 0b  f4 16 70 6f 69 6e 74 65  |%?15=0....pointe|
00002630  72 25 21 31 36 3d 77 69  64 74 68 25 0d 0b fe 12  |r%!16=width%....|
00002640  70 6f 69 6e 74 65 72 25  21 32 30 3d 34 34 0d 0c  |pointer%!20=44..|
00002650  08 11 70 6f 69 6e 74 65  72 25 21 32 34 3d 30 0d  |..pointer%!24=0.|
00002660  0c 12 10 70 6f 69 6e 74  65 72 25 2b 3d 32 38 0d  |...pointer%+=28.|
00002670  0c 1c 05 e1 0d 0c 26 1d  dd f2 6d 61 72 6b 5f 6d  |......&...mark_m|
00002680  65 6e 75 5f 65 6e 64 28  70 6f 69 6e 74 65 72 25  |enu_end(pointer%|
00002690  29 0d 0c 30 27 21 28 70  6f 69 6e 74 65 72 25 2d  |)..0'!(pointer%-|
000026a0  32 34 29 3d 21 28 70 6f  69 6e 74 65 72 25 2d 32  |24)=!(pointer%-2|
000026b0  34 29 20 84 20 26 38 30  0d 0c 3a 05 e1 0d 0c 44  |4) . &80..:....D|
000026c0  19 dd a4 6d 65 6e 75 5f  69 63 6f 6e 66 6c 61 67  |...menu_iconflag|
000026d0  28 76 61 72 24 29 0d 0c  4e 32 e7 76 61 72 24 3d  |(var$)..N2.var$=|
000026e0  22 22 20 85 20 32 30 30  2c 22 4d 65 6e 75 20 69  |"" . 200,"Menu i|
000026f0  63 6f 6e 20 66 6c 61 67  20 76 61 6c 75 65 20 6d  |con flag value m|
00002700  69 73 73 69 6e 67 21 22  0d 0c 58 0c 3d a0 28 76  |issing!"..X.=.(v|
00002710  61 72 24 29 0d 0c 62 1e  dd a4 6d 65 6e 75 5f 69  |ar$)..b...menu_i|
00002720  74 65 6d 5f 70 61 72 61  6d 28 f8 20 69 74 65 6d  |tem_param(. item|
00002730  24 29 0d 0c 6c 0c ea 20  70 61 72 61 6d 24 0d 0c  |$)..l.. param$..|
00002740  76 13 e7 20 a7 69 74 65  6d 24 2c 22 2c 22 29 20  |v.. .item$,",") |
00002750  8c 0d 0c 80 1f 69 74 65  6d 24 3d c1 69 74 65 6d  |.....item$=.item|
00002760  24 2c a7 69 74 65 6d 24  2c 22 2c 22 29 2b 31 29  |$,.item$,",")+1)|
00002770  0d 0c 8a 20 70 61 72 61  6d 24 3d c0 69 74 65 6d  |... param$=.item|
00002780  24 2c a7 69 74 65 6d 24  2c 22 2c 22 29 2d 31 29  |$,.item$,",")-1)|
00002790  0d 0c 94 05 cc 0d 0c 9e  0d 70 61 72 61 6d 24 3d  |.........param$=|
000027a0  22 22 0d 0c a8 05 cd 0d  0c b2 0b 3d 70 61 72 61  |"".........=para|
000027b0  6d 24 0d 0c bc 1b dd a4  6d 65 6e 75 5f 69 74 65  |m$......menu_ite|
000027c0  6d 5f 74 65 78 74 28 69  74 65 6d 24 29 0d 0c c6  |m_text(item$)...|
000027d0  2d e7 20 a7 69 74 65 6d  24 2c 22 2c 22 29 20 69  |-. .item$,",") i|
000027e0  74 65 6d 24 3d c0 69 74  65 6d 24 2c a7 69 74 65  |tem$=.item$,.ite|
000027f0  6d 24 2c 22 2c 22 29 2d  31 29 0d 0c d0 0a 3d 69  |m$,",")-1)....=i|
00002800  74 65 6d 24 0d 0c da 18  dd a4 6d 65 6e 75 5f 73  |tem$......menu_s|
00002810  75 62 6d 65 6e 75 28 76  61 72 24 29 0d 0c e4 28  |ubmenu(var$)...(|
00002820  e7 20 bb 28 76 61 72 24  29 3c 31 20 84 20 bb 28  |. .(var$)<1 . .(|
00002830  76 61 72 24 29 3e de 28  6d 65 6e 75 25 28 29 2c  |var$)>.(menu%(),|
00002840  31 29 20 8c 0d 0c ee 41  85 20 32 30 30 2c 22 43  |1) ....A. 200,"C|
00002850  61 6e 27 74 20 66 69 6e  64 20 6d 65 6e 75 20 22  |an't find menu "|
00002860  2b 76 61 72 24 2b 22 2c  20 61 73 20 72 65 66 65  |+var$+", as refe|
00002870  72 72 65 64 20 74 6f 20  69 6e 3a 2d 20 22 2b 70  |rred to in:- "+p|
00002880  61 72 61 6d 24 0d 0c f8  05 cd 0d 0d 02 1a e7 20  |aram$.......... |
00002890  bb 28 76 61 72 24 29 3d  6d 65 6e 75 63 6f 75 6e  |.(var$)=menucoun|
000028a0  74 25 20 8c 0d 0d 0c 4c  85 20 32 30 30 2c 22 41  |t% ....L. 200,"A|
000028b0  6e 20 69 74 65 6d 20 69  6e 20 6d 65 6e 75 20 22  |n item in menu "|
000028c0  2b 76 61 72 24 2b 22 20  63 61 6e 6e 6f 74 20 68  |+var$+" cannot h|
000028d0  61 76 65 20 6d 65 6e 75  20 22 2b 76 61 72 24 2b  |ave menu "+var$+|
000028e0  22 20 61 73 20 61 20 73  75 62 6d 65 6e 75 21 22  |" as a submenu!"|
000028f0  0d 0d 16 05 cd 0d 0d 20  13 3d 6d 65 6e 75 25 28  |....... .=menu%(|
00002900  bb 28 76 61 72 24 29 29  0d 0d 2a 13 dd a4 6d 65  |.(var$))..*...me|
00002910  6e 75 76 61 72 28 76 61  72 24 29 0d 0d 34 1c 76  |nuvar(var$)..4.v|
00002920  61 72 24 3d c1 76 61 72  24 2c a7 76 61 72 24 2c  |ar$=.var$,.var$,|
00002930  22 28 22 29 2b 31 29 0d  0d 3e 1c 76 61 72 24 3d  |"(")+1)..>.var$=|
00002940  c0 76 61 72 24 2c a7 76  61 72 24 2c 22 29 22 29  |.var$,.var$,")")|
00002950  2d 31 29 0d 0d 48 09 3d  76 61 72 24 0d 0d 52 17  |-1)..H.=var$..R.|
00002960  dd a4 6d 65 6e 75 5f 77  69 6e 64 6f 77 28 76 61  |..menu_window(va|
00002970  72 24 29 0d 0d 5c 0d ea  20 68 61 6e 64 6c 65 25  |r$)..\.. handle%|
00002980  0d 0d 66 07 ea 20 85 0d  0d 70 43 ee 85 20 85 20  |..f.. ...pC.. . |
00002990  a2 20 30 2c 22 4d 65 6e  75 20 66 69 6c 65 20 65  |. 0,"Menu file e|
000029a0  72 72 6f 72 2e 20 57 69  6e 64 6f 77 20 76 61 72  |rror. Window var|
000029b0  69 61 62 6c 65 20 22 2b  76 61 72 24 2b 22 20 6e  |iable "+var$+" n|
000029c0  6f 74 20 66 6f 75 6e 64  2e 22 0d 0d 7a 13 68 61  |ot found."..z.ha|
000029d0  6e 64 6c 65 25 3d a0 28  76 61 72 24 29 0d 0d 84  |ndle%=.(var$)...|
000029e0  11 e7 20 68 61 6e 64 6c  65 25 3c 31 20 8c 0d 0d  |.. handle%<1 ...|
000029f0  8e 1c c8 99 22 58 4f 53  5f 46 69 6e 64 22 2c 30  |...."XOS_Find",0|
00002a00  2c 6d 65 6e 75 66 69 6c  65 25 0d 0d 98 05 85 0d  |,menufile%......|
00002a10  0d a2 05 cd 0d 0d ac 0c  3d 68 61 6e 64 6c 65 25  |........=handle%|
00002a20  0d 0d b6 19 dd f2 6d 65  6e 75 5f 77 72 69 74 61  |......menu_writa|
00002a30  62 6c 65 28 76 61 72 24  29 0d 0d c0 10 6d 61 78  |ble(var$)....max|
00002a40  6c 65 6e 67 74 68 25 3d  30 0d 0d ca 12 e7 20 a7  |length%=0..... .|
00002a50  76 61 72 24 2c 22 3a 22  29 20 8c 0d 0d d4 25 6d  |var$,":") ....%m|
00002a60  61 78 6c 65 6e 67 74 68  25 3d bb 28 c1 76 61 72  |axlength%=.(.var|
00002a70  24 2c a7 76 61 72 24 2c  22 3a 22 29 2b 31 29 29  |$,.var$,":")+1))|
00002a80  0d 0d de 32 e7 a9 28 69  74 65 6d 74 65 78 74 24  |...2..(itemtext$|
00002a90  29 3e 6d 61 78 6c 65 6e  67 74 68 25 20 6d 61 78  |)>maxlength% max|
00002aa0  6c 65 6e 67 74 68 25 3d  a9 69 74 65 6d 74 65 78  |length%=.itemtex|
00002ab0  74 24 0d 0d e8 05 cc 0d  0d f2 19 6d 61 78 6c 65  |t$.........maxle|
00002ac0  6e 67 74 68 25 3d a9 69  74 65 6d 74 65 78 74 24  |ngth%=.itemtext$|
00002ad0  0d 0d fc 05 cd 0d 0e 06  2b 6d 65 6e 75 66 6c 61  |........+menufla|
00002ae0  67 25 3d 6d 65 6e 75 66  6c 61 67 25 84 34 3a 77  |g%=menuflag%.4:w|
00002af0  72 69 74 61 62 6c 65 25  3d bb 28 76 61 72 24 29  |ritable%=.(var$)|
00002b00  0d 0e 10 05 e1 0d 0e 1a  15 dd f2 73 65 74 5f 6d  |...........set_m|
00002b10  65 6e 75 5f 61 72 72 61  79 73 0d 0e 24 1d ea 20  |enu_arrays..$.. |
00002b20  69 74 65 6d 63 6f 75 6e  74 25 2c 6c 69 6e 65 24  |itemcount%,line$|
00002b30  2c 77 69 64 74 68 25 0d  0e 2e 24 6d 65 6e 75 63  |,width%...$menuc|
00002b40  6f 75 6e 74 25 3d 30 3a  70 6f 69 6e 74 65 72 25  |ount%=0:pointer%|
00002b50  3d 6d 65 6e 75 73 74 61  72 74 25 0d 0e 38 13 f2  |=menustart%..8..|
00002b60  67 6f 74 6f 5f 62 65 67  69 6e 6d 65 6e 75 0d 0e  |goto_beginmenu..|
00002b70  42 05 f5 0d 0e 4c 15 6c  69 6e 65 24 3d be 23 6d  |B....L.line$=.#m|
00002b80  65 6e 75 66 69 6c 65 25  0d 0e 56 19 e7 20 a4 62  |enufile%..V.. .b|
00002b90  65 67 69 6e 6d 65 6e 75  28 6c 69 6e 65 24 29 20  |eginmenu(line$) |
00002ba0  8c 0d 0e 60 42 6d 65 6e  75 25 28 6d 65 6e 75 63  |...`Bmenu%(menuc|
00002bb0  6f 75 6e 74 25 2b 31 29  3d 6d 65 6e 75 73 74 61  |ount%+1)=menusta|
00002bc0  72 74 25 2b 28 6d 65 6e  75 63 6f 75 6e 74 25 2a  |rt%+(menucount%*|
00002bd0  32 38 29 2b 28 69 74 65  6d 63 6f 75 6e 74 25 2a  |28)+(itemcount%*|
00002be0  32 34 29 0d 0e 6a 15 6c  69 6e 65 24 3d be 23 6d  |24)..j.line$=.#m|
00002bf0  65 6e 75 66 69 6c 65 25  0d 0e 74 11 6d 65 6e 75  |enufile%..t.menu|
00002c00  63 6f 75 6e 74 25 2b 3d  31 0d 0e 7e 14 6c 69 6e  |count%+=1..~.lin|
00002c10  65 24 3d c0 6c 69 6e 65  24 2c 31 32 29 0d 0e 88  |e$=.line$,12)...|
00002c20  27 6d 65 6e 75 77 69 64  74 68 25 28 6d 65 6e 75  |'menuwidth%(menu|
00002c30  63 6f 75 6e 74 25 29 3d  31 32 2b 31 36 2a a9 6c  |count%)=12+16*.l|
00002c40  69 6e 65 24 0d 0e 92 05  cc 0d 0e 9c 11 69 74 65  |ine$.........ite|
00002c50  6d 63 6f 75 6e 74 25 2b  3d 31 0d 0e a6 13 e7 20  |mcount%+=1..... |
00002c60  a7 6c 69 6e 65 24 2c 22  2c 22 29 20 8c 0d 0e b0  |.line$,",") ....|
00002c70  29 77 69 64 74 68 25 3d  31 32 2b 31 36 2a a9 28  |)width%=12+16*.(|
00002c80  c0 6c 69 6e 65 24 2c a7  6c 69 6e 65 24 2c 22 2c  |.line$,.line$,",|
00002c90  22 29 2d 31 29 29 0d 0e  ba 05 cc 0d 0e c4 17 77  |")-1)).........w|
00002ca0  69 64 74 68 25 3d 31 32  2b 31 36 2a a9 6c 69 6e  |idth%=12+16*.lin|
00002cb0  65 24 0d 0e ce 05 cd 0d  0e d8 41 e7 20 77 69 64  |e$........A. wid|
00002cc0  74 68 25 3e 6d 65 6e 75  77 69 64 74 68 25 28 6d  |th%>menuwidth%(m|
00002cd0  65 6e 75 63 6f 75 6e 74  25 29 20 6d 65 6e 75 77  |enucount%) menuw|
00002ce0  69 64 74 68 25 28 6d 65  6e 75 63 6f 75 6e 74 25  |idth%(menucount%|
00002cf0  29 3d 77 69 64 74 68 25  0d 0e e2 05 cd 0d 0e ec  |)=width%........|
00002d00  11 fd 20 c5 23 6d 65 6e  75 66 69 6c 65 25 0d 0e  |.. .#menufile%..|
00002d10  f6 05 e1 0d 0f 00 21 dd  f2 73 69 7a 65 5f 6d 65  |......!..size_me|
00002d20  6e 75 5f 61 72 72 61 79  73 28 6d 65 6e 75 66 69  |nu_arrays(menufi|
00002d30  6c 65 24 29 0d 0f 0a 3a  ea 20 6d 65 6e 75 63 6f  |le$)...:. menuco|
00002d40  75 6e 74 25 2c 69 74 65  6d 63 6f 75 6e 74 25 2c  |unt%,itemcount%,|
00002d50  77 72 69 74 65 63 6f 75  6e 74 25 2c 77 69 6e 64  |writecount%,wind|
00002d60  6f 77 63 6f 75 6e 74 25  2c 6c 69 6e 65 24 0d 0f  |owcount%,line$..|
00002d70  14 18 6d 65 6e 75 66 69  6c 65 25 3d 8e 6d 65 6e  |..menufile%=.men|
00002d80  75 66 69 6c 65 24 0d 0f  1e 05 f5 0d 0f 28 15 6c  |ufile$.......(.l|
00002d90  69 6e 65 24 3d be 23 6d  65 6e 75 66 69 6c 65 25  |ine$=.#menufile%|
00002da0  0d 0f 32 19 e7 20 a4 62  65 67 69 6e 6d 65 6e 75  |..2.. .beginmenu|
00002db0  28 6c 69 6e 65 24 29 20  8c 0d 0f 3c 23 6d 65 6e  |(line$) ...<#men|
00002dc0  75 63 6f 75 6e 74 25 2b  3d 31 3a 6c 69 6e 65 24  |ucount%+=1:line$|
00002dd0  3d be 23 6d 65 6e 75 66  69 6c 65 25 0d 0f 46 05  |=.#menufile%..F.|
00002de0  cc 0d 0f 50 24 e7 20 a7  6c 69 6e 65 24 2c 22 2c  |...P$. .line$,",|
00002df0  77 72 69 74 22 29 20 77  72 69 74 65 63 6f 75 6e  |writ") writecoun|
00002e00  74 25 2b 3d 31 0d 0f 5a  25 e7 20 a7 6c 69 6e 65  |t%+=1..Z%. .line|
00002e10  24 2c 22 2c 77 69 6e 64  22 29 20 77 69 6e 64 6f  |$,",wind") windo|
00002e20  77 63 6f 75 6e 74 25 2b  3d 31 0d 0f 64 11 69 74  |wcount%+=1..d.it|
00002e30  65 6d 63 6f 75 6e 74 25  2b 3d 31 0d 0f 6e 05 cd  |emcount%+=1..n..|
00002e40  0d 0f 78 11 fd 20 c5 23  6d 65 6e 75 66 69 6c 65  |..x.. .#menufile|
00002e50  25 0d 0f 82 28 c8 99 22  58 4f 53 5f 46 69 6e 64  |%...(.."XOS_Find|
00002e60  22 2c 30 2c 6d 65 6e 75  66 69 6c 65 25 3a 6d 65  |",0,menufile%:me|
00002e70  6e 75 66 69 6c 65 25 3d  30 0d 0f 8c 44 f2 64 69  |nufile%=0...D.di|
00002e80  6d 5f 6d 65 6e 75 5f 61  72 72 61 79 73 28 6d 65  |m_menu_arrays(me|
00002e90  6e 75 63 6f 75 6e 74 25  2c 69 74 65 6d 63 6f 75  |nucount%,itemcou|
00002ea0  6e 74 25 2c 77 72 69 74  65 63 6f 75 6e 74 25 2c  |nt%,writecount%,|
00002eb0  77 69 6e 64 6f 77 63 6f  75 6e 74 25 29 0d 0f 96  |windowcount%)...|
00002ec0  05 e1 0d 0f a0 1f dd a4  73 79 73 74 65 6d 5f 76  |........system_v|
00002ed0  61 72 69 61 62 6c 65 28  73 79 73 5f 76 61 72 24  |ariable(sys_var$|
00002ee0  29 0d 0f aa 0d ea 20 6c  65 6e 67 74 68 25 0d 0f  |)..... length%..|
00002ef0  b4 3d c8 99 22 58 4f 53  5f 52 65 61 64 56 61 72  |.=.."XOS_ReadVar|
00002f00  56 61 6c 22 2c 73 79 73  5f 76 61 72 24 2b bd 28  |Val",sys_var$+.(|
00002f10  30 29 2c 74 65 6d 70 5f  62 6c 6b 25 2c 2d 31 20  |0),temp_blk%,-1 |
00002f20  b8 20 2c 2c 6c 65 6e 67  74 68 25 0d 0f be 41 e7  |. ,,length%...A.|
00002f30  20 6c 65 6e 67 74 68 25  3d 30 20 85 20 a2 20 30  | length%=0 . . 0|
00002f40  2c 22 53 79 73 74 65 6d  20 76 61 72 69 61 62 6c  |,"System variabl|
00002f50  65 20 27 22 2b 73 79 73  5f 76 61 72 24 2b 22 27  |e '"+sys_var$+"'|
00002f60  20 6e 6f 74 20 66 6f 75  6e 64 21 22 0d 0f c8 41  | not found!"...A|
00002f70  c8 99 22 58 4f 53 5f 52  65 61 64 56 61 72 56 61  |.."XOS_ReadVarVa|
00002f80  6c 22 2c 73 79 73 5f 76  61 72 24 2b bd 28 30 29  |l",sys_var$+.(0)|
00002f90  2c 74 65 6d 70 5f 62 6c  6b 25 2c 32 35 35 2c 2c  |,temp_blk%,255,,|
00002fa0  33 20 b8 20 2c 2c 6c 65  6e 67 74 68 25 0d 0f d2  |3 . ,,length%...|
00002fb0  1b 3f 28 74 65 6d 70 5f  62 6c 6b 25 2b 6c 65 6e  |.?(temp_blk%+len|
00002fc0  67 74 68 25 29 3d 31 33  0d 0f dc 0f 3d 24 74 65  |gth%)=13....=$te|
00002fd0  6d 70 5f 62 6c 6b 25 0d  0f e6 19 dd a4 6c 6f 61  |mp_blk%......loa|
00002fe0  64 5f 73 70 72 69 74 65  73 28 66 69 6c 65 24 29  |d_sprites(file$)|
00002ff0  0d 0f f0 14 ea 20 73 70  72 69 74 65 73 25 2c 73  |..... sprites%,s|
00003000  69 7a 65 25 0d 0f fa 1e  73 69 7a 65 25 3d a4 66  |ize%....size%=.f|
00003010  69 6c 65 5f 73 69 7a 65  28 66 69 6c 65 24 29 2b  |ile_size(file$)+|
00003020  31 36 0d 10 04 14 de 20  73 70 72 69 74 65 73 25  |16..... sprites%|
00003030  20 73 69 7a 65 25 0d 10  0e 14 73 70 72 69 74 65  | size%....sprite|
00003040  73 25 21 30 3d 73 69 7a  65 25 0d 10 18 11 73 70  |s%!0=size%....sp|
00003050  72 69 74 65 73 25 21 38  3d 31 36 0d 10 22 27 c8  |rites%!8=16.."'.|
00003060  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  |."OS_SpriteOp",&|
00003070  31 30 41 2c 73 70 72 69  74 65 73 25 2c 66 69 6c  |10A,sprites%,fil|
00003080  65 24 0d 10 2c 0d 3d 73  70 72 69 74 65 73 25 0d  |e$..,.=sprites%.|
00003090  10 36 18 dd a4 63 72 65  61 74 65 5f 69 6e 66 6f  |.6...create_info|
000030a0  5f 77 69 6e 64 6f 77 0d  10 40 0b ea 20 69 63 6f  |_window..@.. ico|
000030b0  6e 25 0d 10 4a 4e 69 6e  66 6f 25 3d a4 63 72 65  |n%..JNinfo%=.cre|
000030c0  61 74 65 5f 77 69 6e 64  6f 77 28 22 41 62 6f 75  |ate_window("Abou|
000030d0  74 20 74 68 69 73 20 70  72 6f 67 72 61 6d 22 2c  |t this program",|
000030e0  26 38 34 30 30 30 30 31  32 2c 36 36 30 2c 32 36  |&84000012,660,26|
000030f0  34 2c 30 2c 36 36 30 2c  39 39 39 2c 39 39 39 29  |4,0,660,999,999)|
00003100  0d 10 54 3a 69 63 6f 6e  25 3d 20 20 a4 61 64 64  |..T:icon%=  .add|
00003110  5f 69 63 6f 6e 28 22 6c  61 62 65 6c 22 2c 22 20  |_icon("label"," |
00003120  20 20 4e 61 6d 65 3a 22  2c 69 6e 66 6f 25 2c 38  |  Name:",info%,8|
00003130  2c 2d 34 2c 30 2c 30 2c  30 29 0d 10 5e 3b 69 63  |,-4,0,0,0)..^;ic|
00003140  6f 6e 25 3d 20 20 a4 61  64 64 5f 69 63 6f 6e 28  |on%=  .add_icon(|
00003150  22 72 65 70 6f 72 74 22  2c c4 33 30 2c 22 20 22  |"report",.30," "|
00003160  29 2c 69 6e 66 6f 25 2c  31 35 36 2c 2d 34 2c 30  |),info%,156,-4,0|
00003170  2c 30 2c 30 29 0d 10 68  3c 69 63 6f 6e 25 3d 20  |,0,0)..h<icon%= |
00003180  20 a4 61 64 64 5f 69 63  6f 6e 28 22 72 65 70 6f  | .add_icon("repo|
00003190  72 74 22 2c c4 33 30 2c  22 20 22 29 2c 69 6e 66  |rt",.30," "),inf|
000031a0  6f 25 2c 31 35 36 2c 2d  35 36 2c 30 2c 30 2c 30  |o%,156,-56,0,0,0|
000031b0  29 0d 10 72 3d 69 63 6f  6e 25 3d 20 20 a4 61 64  |)..r=icon%=  .ad|
000031c0  64 5f 69 63 6f 6e 28 22  72 65 70 6f 72 74 22 2c  |d_icon("report",|
000031d0  c4 33 30 2c 22 20 22 29  2c 69 6e 66 6f 25 2c 31  |.30," "),info%,1|
000031e0  35 36 2c 2d 31 30 38 2c  30 2c 30 2c 30 29 0d 10  |56,-108,0,0,0)..|
000031f0  7c 3d 69 63 6f 6e 25 3d  20 20 a4 61 64 64 5f 69  ||=icon%=  .add_i|
00003200  63 6f 6e 28 22 72 65 70  6f 72 74 22 2c c4 33 30  |con("report",.30|
00003210  2c 22 20 22 29 2c 69 6e  66 6f 25 2c 31 35 36 2c  |," "),info%,156,|
00003220  2d 31 36 30 2c 30 2c 30  2c 30 29 0d 10 86 3d 69  |-160,0,0,0)...=i|
00003230  63 6f 6e 25 3d 20 20 a4  61 64 64 5f 69 63 6f 6e  |con%=  .add_icon|
00003240  28 22 72 65 70 6f 72 74  22 2c c4 33 30 2c 22 20  |("report",.30," |
00003250  22 29 2c 69 6e 66 6f 25  2c 31 35 36 2c 2d 32 31  |"),info%,156,-21|
00003260  32 2c 30 2c 30 2c 30 29  0d 10 90 3b 69 63 6f 6e  |2,0,0,0)...;icon|
00003270  25 3d 20 20 a4 61 64 64  5f 69 63 6f 6e 28 22 6c  |%=  .add_icon("l|
00003280  61 62 65 6c 22 2c 22 50  75 72 70 6f 73 65 3a 22  |abel","Purpose:"|
00003290  2c 69 6e 66 6f 25 2c 38  2c 2d 35 36 2c 30 2c 30  |,info%,8,-56,0,0|
000032a0  2c 30 29 0d 10 9a 3c 69  63 6f 6e 25 3d 20 20 a4  |,0)...<icon%=  .|
000032b0  61 64 64 5f 69 63 6f 6e  28 22 6c 61 62 65 6c 22  |add_icon("label"|
000032c0  2c 22 20 20 20 20 20 20  a9 3a 22 2c 69 6e 66 6f  |,"      .:",info|
000032d0  25 2c 38 2c 2d 31 30 38  2c 30 2c 30 2c 30 29 0d  |%,8,-108,0,0,0).|
000032e0  10 a4 3c 69 63 6f 6e 25  3d 20 20 a4 61 64 64 5f  |..<icon%=  .add_|
000032f0  69 63 6f 6e 28 22 6c 61  62 65 6c 22 2c 22 20 41  |icon("label"," A|
00003300  75 74 68 6f 72 3a 22 2c  69 6e 66 6f 25 2c 38 2c  |uthor:",info%,8,|
00003310  2d 31 36 30 2c 30 2c 30  2c 30 29 0d 10 ae 3c 69  |-160,0,0,0)...<i|
00003320  63 6f 6e 25 3d 20 20 a4  61 64 64 5f 69 63 6f 6e  |con%=  .add_icon|
00003330  28 22 6c 61 62 65 6c 22  2c 22 56 65 72 73 69 6f  |("label","Versio|
00003340  6e 3a 22 2c 69 6e 66 6f  25 2c 38 2c 2d 32 31 32  |n:",info%,8,-212|
00003350  2c 30 2c 30 2c 30 29 0d  10 b8 0a 3d 69 6e 66 6f  |,0,0,0)....=info|
00003360  25 0d 10 c2 4c dd a4 63  72 65 61 74 65 5f 77 69  |%...L..create_wi|
00003370  6e 64 6f 77 28 74 69 74  6c 65 24 2c 77 66 25 2c  |ndow(title$,wf%,|
00003380  78 5f 73 69 7a 65 25 2c  79 5f 73 69 7a 65 25 2c  |x_size%,y_size%,|
00003390  6c 65 66 74 25 2c 77 69  64 74 68 25 2c 62 6f 74  |left%,width%,bot|
000033a0  74 6f 6d 25 2c 68 65 69  67 68 74 25 29 0d 10 cc  |tom%,height%)...|
000033b0  1a ea 20 74 69 74 6c 65  5f 73 70 61 63 65 25 2c  |.. title_space%,|
000033c0  68 61 6e 64 6c 65 25 0d  10 d6 1e de 20 74 69 74  |handle%..... tit|
000033d0  6c 65 5f 73 70 61 63 65  25 20 28 31 2b a9 74 69  |le_space% (1+.ti|
000033e0  74 6c 65 24 29 0d 10 e0  15 74 65 6d 70 5f 62 6c  |tle$)....temp_bl|
000033f0  6b 25 21 30 3d 6c 65 66  74 25 0d 10 ea 17 74 65  |k%!0=left%....te|
00003400  6d 70 5f 62 6c 6b 25 21  34 3d 62 6f 74 74 6f 6d  |mp_blk%!4=bottom|
00003410  25 0d 10 f4 1c 74 65 6d  70 5f 62 6c 6b 25 21 38  |%....temp_blk%!8|
00003420  3d 6c 65 66 74 25 2b 77  69 64 74 68 25 0d 10 fe  |=left%+width%...|
00003430  20 74 65 6d 70 5f 62 6c  6b 25 21 31 32 3d 62 6f  | temp_blk%!12=bo|
00003440  74 74 6f 6d 25 2b 68 65  69 67 68 74 25 0d 11 08  |ttom%+height%...|
00003450  12 74 65 6d 70 5f 62 6c  6b 25 21 31 36 3d 30 0d  |.temp_blk%!16=0.|
00003460  11 12 12 74 65 6d 70 5f  62 6c 6b 25 21 32 30 3d  |...temp_blk%!20=|
00003470  30 0d 11 1c 13 74 65 6d  70 5f 62 6c 6b 25 21 32  |0....temp_blk%!2|
00003480  34 3d 2d 31 0d 11 26 19  e7 20 77 66 25 3d 30 20  |4=-1..&.. wf%=0 |
00003490  77 66 25 3d 26 46 46 30  30 30 30 31 32 0d 11 30  |wf%=&FF000012..0|
000034a0  14 74 65 6d 70 5f 62 6c  6b 25 21 32 38 3d 77 66  |.temp_blk%!28=wf|
000034b0  25 0d 11 3a 12 74 65 6d  70 5f 62 6c 6b 25 3f 33  |%..:.temp_blk%?3|
000034c0  32 3d 37 0d 11 44 12 74  65 6d 70 5f 62 6c 6b 25  |2=7..D.temp_blk%|
000034d0  3f 33 33 3d 32 0d 11 4e  12 74 65 6d 70 5f 62 6c  |?33=2..N.temp_bl|
000034e0  6b 25 3f 33 34 3d 37 0d  11 58 12 74 65 6d 70 5f  |k%?34=7..X.temp_|
000034f0  62 6c 6b 25 3f 33 35 3d  31 0d 11 62 12 74 65 6d  |blk%?35=1..b.tem|
00003500  70 5f 62 6c 6b 25 3f 33  36 3d 33 0d 11 6c 12 74  |p_blk%?36=3..l.t|
00003510  65 6d 70 5f 62 6c 6b 25  3f 33 37 3d 31 0d 11 76  |emp_blk%?37=1..v|
00003520  13 74 65 6d 70 5f 62 6c  6b 25 3f 33 38 3d 31 32  |.temp_blk%?38=12|
00003530  0d 11 80 12 74 65 6d 70  5f 62 6c 6b 25 3f 33 39  |....temp_blk%?39|
00003540  3d 30 0d 11 8a 12 74 65  6d 70 5f 62 6c 6b 25 21  |=0....temp_blk%!|
00003550  34 30 3d 30 0d 11 94 19  74 65 6d 70 5f 62 6c 6b  |40=0....temp_blk|
00003560  25 21 34 34 3d 2d 79 5f  73 69 7a 65 25 0d 11 9e  |%!44=-y_size%...|
00003570  18 74 65 6d 70 5f 62 6c  6b 25 21 34 38 3d 78 5f  |.temp_blk%!48=x_|
00003580  73 69 7a 65 25 0d 11 a8  12 74 65 6d 70 5f 62 6c  |size%....temp_bl|
00003590  6b 25 21 35 32 3d 30 0d  11 b2 15 74 65 6d 70 5f  |k%!52=0....temp_|
000035a0  62 6c 6b 25 21 35 36 3d  26 31 31 39 0d 11 bc 16  |blk%!56=&119....|
000035b0  74 65 6d 70 5f 62 6c 6b  25 21 36 30 3d 26 36 30  |temp_blk%!60=&60|
000035c0  30 30 0d 11 c6 12 74 65  6d 70 5f 62 6c 6b 25 21  |00....temp_blk%!|
000035d0  36 34 3d 31 0d 11 d0 12  74 65 6d 70 5f 62 6c 6b  |64=1....temp_blk|
000035e0  25 3f 36 38 3d 30 0d 11  da 12 74 65 6d 70 5f 62  |%?68=0....temp_b|
000035f0  6c 6b 25 3f 36 39 3d 30  0d 11 e4 12 74 65 6d 70  |lk%?69=0....temp|
00003600  5f 62 6c 6b 25 3f 37 30  3d 30 0d 11 ee 12 74 65  |_blk%?70=0....te|
00003610  6d 70 5f 62 6c 6b 25 3f  37 31 3d 30 0d 11 f8 18  |mp_blk%?71=0....|
00003620  24 74 69 74 6c 65 5f 73  70 61 63 65 25 3d 74 69  |$title_space%=ti|
00003630  74 6c 65 24 0d 12 02 1d  74 65 6d 70 5f 62 6c 6b  |tle$....temp_blk|
00003640  25 21 37 32 3d 74 69 74  6c 65 5f 73 70 61 63 65  |%!72=title_space|
00003650  25 0d 12 0c 13 74 65 6d  70 5f 62 6c 6b 25 21 37  |%....temp_blk%!7|
00003660  36 3d 2d 31 0d 12 16 1c  74 65 6d 70 5f 62 6c 6b  |6=-1....temp_blk|
00003670  25 21 38 30 3d a9 28 74  69 74 6c 65 24 29 2b 31  |%!80=.(title$)+1|
00003680  0d 12 20 12 74 65 6d 70  5f 62 6c 6b 25 21 38 34  |.. .temp_blk%!84|
00003690  3d 30 0d 12 2a 2e c8 99  22 57 69 6d 70 5f 43 72  |=0..*..."Wimp_Cr|
000036a0  65 61 74 65 57 69 6e 64  6f 77 22 2c 2c 74 65 6d  |eateWindow",,tem|
000036b0  70 5f 62 6c 6b 25 20 b8  20 68 61 6e 64 6c 65 25  |p_blk% . handle%|
000036c0  0d 12 34 0c 3d 68 61 6e  64 6c 65 25 0d ff        |..4.=handle%..|
000036ce