Home » Archimedes archive » Archimedes World » AW-1996-06-Disc 2.adf » !Tables_Tables » !Tables/!Runimage

!Tables/!Runimage

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-1996-06-Disc 2.adf » !Tables_Tables
Filename: !Tables/!Runimage
Read OK:
File size: 6733 bytes
Load address: 0000
Exec address: 0000
File contents
    0REMOSCLIADFS::HardDisc4.$.CURR_NEW.DEMOPROG.!Tables.!Runimage
    1oldhimem%=HIMEM:HIMEM=&12A00+(1024*5)
    2PROCsortmemory
    3PROCinitwimp
    4PROCinitvars
    5IF FNreadsysvar("TableA$EntryPt")="fromstartup" THEN
    6  IF NOT FNalreadyrunning THEN
    7    OSCLI"Set TableA$isrunning 1"
    8  ELSE
    9    PROCerror("Table Aliens is already running",0):SYS "Wimp_CloseDown",,&4B534154:END
   10  ENDIF
   11  PROCinitfromstartup
   12ELSE
   13  SYS "Wimp_SetMode",VALFNreadsysvar("TableA$Mode")
   14  REM PROCsetsound
   15  SYS "Sound_Volume",127
   16ENDIF
   17SYS"Hourglass_On"
   18PROCload_icons
   19PROCcreatewindows
   20PROCinitwindows
   21SYS"Hourglass_Off"
   22PROCcreatebaricon
   23PROCintiger_icns
   24ON ERROR PROCerror(REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0,ERR)
   25REPEAT PROCpollloop:UNTIL quit%
   26REM kill sound cache and module
   27SYS &46182,F%
   28SYS &46188,F%
   29*RMkill PackSound%talien
   30*RMkill PackSound
   31REM PROCsetsound
   32SYS "Wimp_CloseDown",,&4B534154
   33OSCLI"Set TableA$isrunning 0"
   34*QUIT
   35END
   36
   37DEFFNalreadyrunning
   38LOCAL A%
   39LOCAL ERROR
   40ONERRORLOCAL:RESTORE ERROR:=0
   41SYS "OS_ReadVarVal","TableA$isrunning",blk%,256,0,0 TO ,,a%
   42a$="":FORA%=0TOa%-1:a$+=CHR$(blk%?A%):NEXT
   43RESTORE ERROR
   44IFa$="1":=-1
   45=0
   46
   47DEFPROCinitfromstartup
   48quit%=FALSE
   49LOCAL j%
   50!userwimpsprs%=wimpsprsize%
   51userwimpsprs%!8=16
   52SYS "OS_SpriteOp",&109,userwimpsprs%
   53SYS "OS_SpriteOp",&10A,userwimpsprs%,"<TableA$Dir>.Sprites"
   54winctr%=1
   55SYS "Wimp_OpenTemplate",,"<TableA$Dir>.Templates"
   56PROCload_template("Setup")
   57PROCload_template("proginfo")
   58ic$=STR$~(icondefs%)
   59OSCLI"LOAD icondefs "+ic$
   60U%=%10000:W%=%11111111111:R%=2:Z%=2:O%=3:M%=1:X%=4370:P%=1
   61SYS &46189,"talien" TO F%
   62PROCsavesound
   63a$=FNconverttolower(FNreadsysvar("TableA$Dir"))
   64IFINSTR(a$,"startup.$.!tables")<>0:Y%=0:ELSE:Y%=1
   65ENDPROC
   66
   67DEFPROCload_icons
   68i_sswrite%=FNlookicon("SAVEGWRITE")
   69i_ssicon%=58
   70i_ssok%=FNlookicon("SAVEGOK")
   71i_sdwrite%=FNlookicon("SAVEAWRITE")
   72i_sddir%=23
   73i_sdok%=FNlookicon("SAVEAOK")
   74i_unavail%=129
   75i_sddrop%=87
   76i_fa%(0)=FNlookicon("A0")
   77i_fa%(1)=FNlookicon("A1")
   78i_fa%(2)=FNlookicon("A2")
   79i_fa%(3)=FNlookicon("A3")
   80i_fa%(4)=FNlookicon("A4")
   81i_fa%(5)=FNlookicon("A5")
   82i_fa%(6)=FNlookicon("A6")
   83i_fa%(7)=FNlookicon("A7")
   84i_fa%(8)=FNlookicon("A8")
   85i_fa%(9)=FNlookicon("A9")
   86i_fa%(10)=FNlookicon("A10")
   87i_fa%(11)=FNlookicon("A11")
   88i_fa%(12)=FNlookicon("A12")
   89i_fa%(13)=FNlookicon("TE1")
   90i_fa%(14)=FNlookicon("TE2")
   91i_fa%(15)=FNlookicon("TE3")
   92i_fb%(0)=FNlookicon("B0")
   93i_fb%(1)=FNlookicon("B1")
   94i_fb%(2)=FNlookicon("B2")
   95i_fb%(3)=FNlookicon("B3")
   96i_fb%(4)=FNlookicon("B4")
   97i_fb%(5)=FNlookicon("B5")
   98i_fb%(6)=FNlookicon("B6")
   99i_fb%(7)=FNlookicon("B7")
  100i_fb%(8)=FNlookicon("B8")
  101i_fb%(9)=FNlookicon("B9")
  102i_fb%(10)=FNlookicon("B10")
  103i_fb%(11)=FNlookicon("B11")
  104i_fb%(12)=FNlookicon("B12")
  105i_fb%(13)=FNlookicon("C1")
  106FORf%=1 TO 5
  107 i_ag%(f%)=FNlookicon("GL"+STR$(f%))
  108NEXT
  109FORf%=1 TO 55
  110 i_ag%(f%+10)=FNlookicon("AD"+STR$(f%))
  111NEXT
  112i_vga%=FNlookicon("VGA")
  113i_cga%=FNlookicon("CGA")
  114i_sound%(0)=FNlookicon("OFF")
  115i_sound%(1)=FNlookicon("QUIET")
  116i_sound%(2)=FNlookicon("NORMAL")
  117REM PROCicns_intiger
  118ENDPROC
  119
  120DEFFNlookicon(iconname$)
  121REM #define I_SETUP_SAVEGWRITE 4  ie ***set is 5 characters***
  122start_look%=icondefs%
  123REPEAT
  124   a$="":b$=""
  125   start_look%=start_look%+16
  126   REPEAT
  127     a$=a$+CHR$(?start_look%)
  128     start_look%=start_look%+1
  129   UNTIL ?start_look%=32
  130   start_look%=start_look%+1
  131   REPEAT
  132     b$=b$+CHR$(?start_look%)
  133     start_look%=start_look%+1
  134   UNTIL ?start_look%=10
  135   start_look%=start_look%+1
  136UNTIL a$=iconname$ OR start_look%>icondefs%+2358
  137=VAL(b$)
  138
  139DEFPROCsortmemory
  140indbase%=HIMEM:iptr%=indbase%
  141totindsize%=7000:totwinsize%=8140
  142REM totindsize%=4096:totwinsize%=6400
  143winbase%=indbase%+totindsize%:wptr%=winbase%
  144indstarts%=winbase%+totwinsize%:winstarts%=indstarts%+40:userwimpsprs%=winstarts%+40:wimpsprsize%=5*1024
  145mc%=&16F00+(10*1024):pdbs%=&40000
  146ENDPROC
  147
  148DEFPROCinitwimp
  149SYS "Wimp_Initialise",200,&4B534154,"TableA" TO ,taskhandl%
  150ONERROR PROCerror(REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0,ERR):SYS "Wimp_CloseDown",,&4B534154:END
  151ENDPROC
  152
  153DEFPROCinitvars
  154DIM blk% 256,errblk% 200,menu% 1024,blk2% 256,pdbbuff% 256,palcode% 900,baricn% 12,inb% 20,outb% 20
  155DIM icondefs% 2370,i_fa%(15),i_fb%(13),i_sound%(3),i_ag%(66)
  156DIM firstn%(12),secondn%(12)
  157A%=indbase%:B%=indbase%+1024:REM pauls
  158quit%=FALSE
  159!inb%=4:inb%!4=5:inb%!8=11:inb%!12=12:inb%!16=-1
  160sndmax%=15
  161start%=1
  162PROCgetscreensize
  163ENDPROC
  164
  165DEFPROCgetscreensize
  166SYS"OS_ReadVduVariables",inb%,outb%
  167xmaxec%=(((outb%!8)+1)<<(outb%!0))-1:ymaxec%=(((outb%!12)+1)<<(outb%!4))-1
  168ENDPROC
  169
  170DEFFNconverttolower(a$)
  171LOCAL l%,b$,ch%:b$=""
  172FORl%=1TOLENa$
  173ch%=ASC(MID$(a$,l%,1))
  174IF(ch%>&40)AND(ch%<&5B):ch%+=&20
  175b$+=CHR$ch%
  176NEXT
  177=b$
  178
  179DEFFNreadstring(p%)
  180LOCALa$:a$="":WHILE LENa$<255 AND ?p%>31 a$+=CHR$?p%:p%+=1:ENDWHILE
  181=a$
  182
  183DEFFNreadsysvar(a$)
  184LOCAL A%
  185SYS "OS_ReadVarVal",a$,blk%,256,0,0 TO ,,a%:a$="":FORA%=0TOa%-1:a$+=CHR$(blk%?A%):NEXT
  186=a$
  187
  188DEFFNreadvduvar(a%)
  189!blk%=a%:blk%!4=-1:SYS "OS_ReadVduVariables",blk%,blk%
  190=!blk%
  191
  192DEFPROCgeticonstate(w%,i%)
  193!blk%=w%:blk%!4=i%:SYS "Wimp_GetIconState",,blk%
  194ENDPROC
  195
  196DEFFNisselected(w%,i%)
  197PROCgeticonstate(w%,i%)
  198=((blk%!24)AND(1<<21))=(1<<21)
  199
  200DEFFNfiletype(a$)
  201SYS "XOS_File",5,a$ TO a%
  202=a%
  203
  204DEFFNleaf(f$) I%=LENf$:WHILEI%>1ANDMID$(f$,I%,1)<>"."I%-=1:ENDWHILE
  205IFMID$(f$,I%,1)="."I%+=1
  206=MID$(f$,I%)
  207
  208DEFPROCsetsavedir(dir$)
  209PROCputicnstring(setw%,i_sdwrite%,dir$)
  210SYS "Wimp_SetCaretPosition",-1
  211LOCAL ERROR
  212ONERRORLOCAL:RESTORE ERROR:ENDPROC
  213OSCLI"CDIR "+dir$
  214RESTORE ERROR
  215ENDPROC
  216
  217DEFPROCsetsavedirfromOK
  218SYS "Wimp_SetCaretPosition",-1
  219LOCAL ERROR
  220ONERRORLOCAL:RESTORE ERROR:PROCerror("Invalid path and/or directory name. Creation of new save directory aborted.",0):ENDPROC
  221OSCLI"CDIR "+FNgeticnstring(setw%,i_sdwrite%)
  222RESTORE ERROR
  223ENDPROC
  224
  225DEFFNiscgaonly
  226SYS"OS_CheckModeValid",27 TO reg0%;fla%
  227sc1%=(((fla%AND%10)=%10)AND(reg0%=-1))
  228IFsc1%=TRUE THEN
  229 =TRUE
  230ELSE
  231 =FALSE
  232ENDIF
  233
  234DEFFNisvga
  235IFFNisselected(setw%,i_vga%)THEN:=-1
  236=0
  237
  238DEFFNisopen(w%)
  239!blk%=w%:SYS "Wimp_GetWindowState",,blk%
  240=((blk%!32)AND(1<<16))=(1<<16)
  241
  242DEFPROCsavesound
  243LOCAL A%
  244SYS "Sound_ReadControlBlock",1,2 TO ,,voice%:voice%=voice%AND&FF:OSCLI"Set TableA$voice1 "+STR$voice%
  245SYS "Sound_Configure",0,0,0 TO A%,B%,C%:OSCLI"Set TableA$totchans "+STR$A%:OSCLI"Set TableA$sampsize "+STR$B%:OSCLI"Set TableA$sampper "+STR$C%
  246SYS "Sound_Volume",0 TO A%:OSCLI"Set TableA$vol "+STR$A%
  247ENDPROC
  248
  249DEFPROCsetsound
  250OSCLI"channelvoice 1 "+FNreadsysvar("TableA$voice1")
  251A%=VALFNreadsysvar("TableA$totchans"):B%=VALFNreadsysvar("TableA$sampsize"):C%=VALFNreadsysvar("TableA$sampper"):SYS "Sound_Configure",A%,B%,C%
  252SYS "Sound_Volume",VALFNreadsysvar("TableA$vol")
  253ENDPROC
  254
  255DEFPROCsetmode(mode%)
  256IFmode%=0 THEN
  257PROCselecticn(setw%,i_cga%,TRUE):PROCselecticn(setw%,i_vga%,FALSE)
  258ELSE
  259PROCselecticn(setw%,i_cga%,FALSE):PROCselecticn(setw%,i_vga%,TRUE)
  260ENDIF
  261ENDPROC
  262
  263DEFPROCload_template(winname$)
  264winstarts%!((winctr%-1)*4)=wptr%:indstarts%!((winctr%-1)*4)=iptr%
  265SYS "Wimp_LoadTemplate",,wptr%,iptr%,indbase%+totindsize%,-1,winname$,0 TO ,,iptr%
  266noicns%=wptr%!84
  267FORj%=0TO(noicns%-1)*32STEP32
  268 icnblk%=wptr%+88+j%:icnf%=(icnblk%!16)
  269 IF NOTFNindirected(icnf%)ANDNOTFNsprite(icnf%)ANDFNtext(icnf%) THEN:icnf%=icnf%AND&FFFF0FFF
  270 IF FNindirected(icnf%)ANDFNsprite(icnf%)ANDNOTFNtext(icnf%) THEN:icnblk%!24=userwimpsprs%
  271 IF NOTFNindirected(icnf%)ANDFNsprite(icnf%) THEN
  272  sprn$=FNreadstring(icnblk%+20)
  273  SYS "XWimp_SpriteOp",40,,sprn$ TO ,,,w%,h%
  274  IF(w%ORh%)=0:icnf%=icnf%OR256:$iptr%=sprn$:?(iptr%+(LENsprn$))=0:icnblk%!20=iptr%:icnblk%!24=userwimpsprs%:icnblk%!28=LENsprn$:iptr%+=LEN(sprn$)+1
  275 ENDIF
  276 icnblk%!16=icnf%
  277NEXT
  278wptr%+=88+((wptr%!84)*32):winctr%+=1
  279ENDPROC
  280
  281DEFFNindirected(f%)
  282=((f%AND256)=256)
  283
  284DEFFNsprite(f%)
  285=((f%AND2)=2)
  286
  287DEFFNtext(f%)
  288=((f%AND1)=1)
  289
  290DEFPROCcreatewindows
  291SYS "Wimp_CreateWindow",,winstarts%!0 TO setw%
  292SYS "Wimp_CreateWindow",,winstarts%!4 TO infow%
  293REM SYS "Wimp_CreateWindow",,winstarts%!8 TO messw%
  294SYS "Wimp_CloseTemplate"
  295ENDPROC
  296
  297DEFPROCinitwindows
  298LOCAL j%
  299PROCputicnstring(setw%,i_sswrite%,FNreadsysvar("TableA$SaveGamePath"))
  300volume%=VALFNreadsysvar("TableA$Volume"):PROCsetvolume(volume%)
  301ca%=TIME:FORcb%=0TO20000:NEXT:sp%=TIME-ca%
  302IFsp%>8 OSCLI"set TableA$Vga 0"
  303f%=VALFNreadsysvar("TableA$Vga"):PROCsetmode(f%)
  304IF FNiscgaonly THEN
  305  PROCselecticn(setw%,i_cga%,TRUE):PROCselecticn(setw%,i_vga%,FALSE)
  306  PROCshadeicn(setw%,i_cga%,TRUE):PROCshadeicn(setw%,i_vga%,TRUE)
  307ENDIF
  308REM DEMO
  309PROCshadeicn(setw%,i_ag%(12),TRUE)
  310PROCshadeicn(setw%,i_ag%(14),TRUE)
  311PROCshadeicn(setw%,i_ag%(17),TRUE)
  312PROCshadeicn(setw%,i_ag%(15),TRUE)
  313REM IFY%=0:PROChidesaveareabit:ELSE:PROChideicn(setupw%,36,TRUE):PROCcreatesavedir
  314IFY%=0:PROChidesaveareabit:ELSE:PROCcreatesavedir:PROChideicn(setw%,i_unavail%,TRUE)
  315prelink_flag%=VALFNreadsysvar("TableA$PreLink")
  316ENDPROC
  317
  318DEFPROCcreatesavedir
  319REM xxxxx need to change minus 7 below when know what applic is called (7=!TableA)
  320a$=FNreadsysvar("TableA$Dir")
  321IF (Y%=1)AND(FNfiletype(a$+".sa")=1) THEN
  322 SYS "XOS_File",6,a$+".sa"
  323 PROCsetsavedir(LEFT$(a$,LEN(a$)-7)+"TableASave")
  324ELSE
  325 IF FNreadsysvar("TableA$EntryPt")="fromstartup" THEN
  326  PROCputicnstring(setw%,i_sdwrite%,LEFT$(a$,LEN(a$)-7)+"TableASave")
  327 ELSE
  328  PROCputicnstring(setw%,i_sdwrite%,FNreadsysvar("TableA$Save"))
  329 ENDIF
  330ENDIF
  331ENDPROC
  332
  333DEFPROCicns_intiger
  334REM U% = a0,a1,a2,a3
  335REM W% = b0,b1,b2 b3 ......mixed(b13)
  336u%=0:v%=0:fact1%=0:fact2%=0:O%=0:Z%=0:R%=0:M%=0:
  337FORf%=0 TO 12
  338IF FNisselected(setw%,i_fa%(f%)) u%=u%+(1<<f%):fact1%=fact1%+1
  339IF FNisselected(setw%,i_fb%(f%)) v%=v%+(1<<f%):fact2%=fact2%+1
  340NEXT
  341IF FNisselected(setw%,i_fb%(13)) v%=v%+(1<<13)
  342IF FNisselected(setw%,i_fa%(13)) Z%=1
  343IF FNisselected(setw%,i_fa%(14)) Z%=2
  344IF FNisselected(setw%,i_fa%(15)) Z%=3
  345U%=u%:W%=v%
  346REM games level
  347FORf%=1 TO 5
  348  IF FNisselected(setw%,i_ag%(f%)):O%=f%
  349NEXT
  350REM introduction
  351IF FNisselected(setw%,i_ag%(11)) P%=1 ELSE P%=0
  352REM adventure type
  353FORf%=12 TO 15
  354  IF FNisselected(setw%,i_ag%(f%)) R%=f%-11
  355NEXT
  356REM adventure/activity button
  357  IF FNisselected(setw%,i_ag%(16)) M%=1:PROChide_activ
  358  IF FNisselected(setw%,i_ag%(17)) M%=2:PROChide_advent
  359REM activity list
  360X%=0
  361FORf%=18 TO 28
  362  IF FNisselected(setw%,i_ag%(f%)) X%=X%+(f%-17)
  363NEXT
  364  IF FNisselected(setw%,i_ag%(62)) X%=X%+(12)
  365FORf%=29 TO 39
  366  IF FNisselected(setw%,i_ag%(f%)) X%=X%+((f%-28)*16)
  367NEXT
  368  IF FNisselected(setw%,i_ag%(63)) X%=X%+((12)*16)
  369FORf%=40 TO 50
  370  IF FNisselected(setw%,i_ag%(f%)) X%=X%+((f%-39)*256)
  371NEXT
  372  IF FNisselected(setw%,i_ag%(64)) X%=X%+((12)*256)
  373FORf%=51 TO 61
  374  IF FNisselected(setw%,i_ag%(f%)) X%=X%+((f%-50)*4096)
  375NEXT
  376  IF FNisselected(setw%,i_ag%(65)) X%=X%+((12)*4096)
  377ENDPROC
  378
  379DEFPROCintiger_icns
  380REM U% = a0,a1,a2,a3
  381REM W% = b0,b1,b2 b3 ......mixed(b13)
  382FORf%=0 TO 12
  383  IF(U% AND (1<<f%))=(1<<f%) PROCselecticn(setw%,i_fa%(f%),TRUE) ELSE PROCselecticn(setw%,i_fa%(f%),FALSE)
  384NEXT
  385FORf%=0 TO 13
  386  IF(W% AND (1<<f%))=(1<<f%) PROCselecticn(setw%,i_fb%(f%),TRUE) ELSE PROCselecticn(setw%,i_fb%(f%),FALSE)
  387NEXT
  388IFZ%=1 PROCselecticn(setw%,i_fa%(13),TRUE):PROCselecticn(setw%,i_fa%(14),FALSE):PROCselecticn(setw%,i_fa%(15),FALSE)
  389IFZ%=2 PROCselecticn(setw%,i_fa%(13),FALSE):PROCselecticn(setw%,i_fa%(14),TRUE):PROCselecticn(setw%,i_fa%(15),FALSE)
  390IFZ%=3 PROCselecticn(setw%,i_fa%(13),FALSE):PROCselecticn(setw%,i_fa%(14),FALSE):PROCselecticn(setw%,i_fa%(15),TRUE)
  391REM games level
  392FORf%=1 TO 5
  393  IF O%=f% PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  394NEXT
  395REM introduction
  396  IF P%=1 PROCselecticn(setw%,i_ag%(11),TRUE) ELSE PROCselecticn(setw%,i_ag%(11),FALSE)
  397REM adventure type
  398FORf%=12 TO 15
  399  IF R%=f%-11 PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  400NEXT
  401REM adventure/activity button
  402  IF M%=1 PROCselecticn(setw%,i_ag%(16),TRUE):PROCselecticn(setw%,i_ag%(17),FALSE):PROChide_activ
  403  IF M%=2 PROCselecticn(setw%,i_ag%(16),FALSE):PROCselecticn(setw%,i_ag%(17),TRUE):PROChide_advent
  404REM activity list
  405FORf%=18 TO 28
  406  IF ((X% MOD 16)+17)=f% PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  407NEXT
  408  IF ((X% MOD 16))=12 PROCselecticn(setw%,i_ag%(62),TRUE) ELSE PROCselecticn(setw%,i_ag%(62),FALSE)
  409FORf%=29 TO 39
  410  IF (((X% DIV 16) MOD 16)+28)=f% PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  411NEXT
  412  IF ((X% DIV 16) MOD 16)=12 PROCselecticn(setw%,i_ag%(63),TRUE) ELSE PROCselecticn(setw%,i_ag%(63),FALSE)
  413FORf%=40 TO 50
  414  IF (((X% DIV 256) MOD 16)+39)=f% PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  415NEXT
  416  IF ((X% DIV 256) MOD 16)=12 PROCselecticn(setw%,i_ag%(64),TRUE) ELSE PROCselecticn(setw%,i_ag%(64),FALSE)
  417FORf%=51 TO 61
  418  IF (((X% DIV 4096) MOD 16)+50)=f% PROCselecticn(setw%,i_ag%(f%),TRUE) ELSE PROCselecticn(setw%,i_ag%(f%),FALSE)
  419NEXT
  420  IF ((X% DIV 4096) MOD 16)=12 PROCselecticn(setw%,i_ag%(65),TRUE) ELSE PROCselecticn(setw%,i_ag%(65),FALSE)
  421ENDPROC
  422
  423DEFPROChide_advent:ENDPROC
  424  FORh%=11 TO 15
  425    PROCshadeicn(setw%,i_ag%(h%),TRUE)
  426  NEXT
  427  FORh%=18 TO 65
  428    PROCshadeicn(setw%,i_ag%(h%),FALSE)
  429  NEXT
  430ENDPROC
  431
  432DEFPROChide_activ
  433  FORh%=11 TO 15
  434REM    PROCshadeicn(setw%,i_ag%(h%),FALSE)
  435  NEXT
  436  FORh%=18 TO 65
  437    PROCshadeicn(setw%,i_ag%(h%),TRUE)
  438  NEXT
  439ENDPROC
  440
  441DEFPROCsetvolume(vol%)
  442FORiv%=0TO2
  443IFiv%=vol%:PROCselecticn(setw%,i_sound%(iv%),TRUE):ELSE:PROCselecticn(setw%,i_sound%(iv%),FALSE)
  444NEXT
  445ENDPROC
  446
  447DEFPROCcheckarm3
  448H%!&DC=0
  449t1%=TIME
  450FORk%=0TO20000:NEXT
  451t2%=TIME
  452IF(t2%-t1%)<15:H%!&DC=1
  453ENDPROC
  454
  455DEFPROCputicnstring(w%,i%,a$)
  456!blk%=w%:blk%!4=i%:SYS "Wimp_GetIconState",,blk%
  457$(blk%!28)=a$:?((blk%!28)+LENa$)=0
  458blk%!8=0:blk%!12=0:SYS "Wimp_SetIconState",,blk%
  459ENDPROC
  460
  461DEFFNgeticnstring(w%,i%)
  462!blk%=w%:blk%!4=i%:SYS "Wimp_GetIconState",,blk%
  463=FNreadstring(blk%!28)
  464
  465DEFPROCselecticn(w%,i%,f%)
  466!blk%=w%:blk%!4=i%:blk%!12=(1<<21):IFf%=0 blk%!8=0:ELSE blk%!8=blk%!12
  467SYS "Wimp_SetIconState",,blk%
  468ENDPROC
  469
  470DEFPROCshadeicn(w%,i%,f%)
  471!blk%=w%:blk%!4=i%:blk%!12=1<<22
  472IFf% blk%!8=1<<22:ELSE:blk%!8=0
  473SYS "Wimp_SetIconState",,blk%
  474ENDPROC
  475
  476DEFPROCfadeicn(w%,i%,f%)
  477LOCAL j%
  478FOR j%=24TO27
  479 !blk%=w%:blk%!4=i%:blk%!12=1<<j%
  480 IFf% THEN
  481  IFj%<=25:blk%!8=1<<j%:ELSE:blk%!8=0
  482 ELSE
  483  IFj%<=26:blk%!8=1<<j%:ELSE:blk%!8=0
  484 ENDIF
  485 SYS "Wimp_SetIconState",,blk%
  486NEXT
  487ENDPROC
  488
  489DEFPROChideicn(w%,i%,f%)
  490!blk%=w%:blk%!4=i%:blk%!12=1<<23
  491IFf% blk%!8=1<<23:ELSE:blk%!8=0
  492SYS "Wimp_SetIconState",,blk%
  493ENDPROC
  494
  495DEFPROChidesaveareabit
  496PROChideicn(setw%,i_sdwrite%,TRUE)
  497PROChideicn(setw%,i_sddir%,TRUE)
  498PROChideicn(setw%,i_sdok%,TRUE)
  499PROChideicn(setw%,i_sddrop%,TRUE)
  500ENDPROC
  501
  502DEFPROCcreatebaricon
  503$baricn%="iconbar"
  504!blk%=-1:blk%!4=0:blk%!8=0:blk%!12=62:blk%!16=72
  505blk%!20=&1000313A:blk%!24=baricn%:blk%!28=userwimpsprs%:blk%!32=LEN$baricn%
  506SYS "Wimp_CreateIcon",,blk%
  507ENDPROC
  508
  509DEFPROCpollloop
  510SYS "Wimp_Poll",%110001,blk% TO event%
  511CASE event% OF
  512  WHEN 1: PROCredraw
  513  WHEN 2: PROCopenwind(blk%)
  514  WHEN 3: PROCclosewind(blk%)
  515  WHEN 6: PROCclick(blk%!8,blk%!12,blk%!16)
  516  WHEN 7: PROCsendsavedatamess
  517  WHEN 8: PROCkeyevent
  518  WHEN 9: PROCmenuclick
  519  WHEN 17,18: PROCreceive
  520ENDCASE
  521ENDPROC
  522
  523DEFPROCredraw
  524SYS "Wimp_RedrawWindow",,blk% TO more%
  525WHILE more%
  526  SYS "Wimp_GetRectangle",,blk% TO more%:
  527ENDWHILE
  528ENDPROC
  529
  530DEFPROCopenwind(b%)
  531SYS "Wimp_OpenWindow",,b%
  532ENDPROC
  533
  534DEFPROCclosewind(b%)
  535SYS "Wimp_CloseWindow",,b%
  536ENDPROC
  537
  538DEFPROCclick(but%,win%,icn%)
  539CASE win% OF
  540 WHEN -2:
  541  CASE but% OF
  542   WHEN 2:PROCmainmenu("TableA","Info,Setup...,7Quit,",!blk%,220)
  543   WHEN 4:PROCstartgame
  544  ENDCASE
  545 WHEN setw%:PROCsetupwclick(but%,icn%)
  546ENDCASE
  547ENDPROC
  548
  549DEFPROCmainmenu(title$,menuitems$,x%,y%)
  550PROCdefinemenu(title$,menuitems$)
  551PROClinksubmenu(1,infow%)
  552SYS "Wimp_CreateMenu",,menu%,x%-(menu%!16/2),y%
  553currmenu%=-1
  554ENDPROC
  555
  556DEFPROCdefinemenu(title$,menuitems$)
  557$menu%=title$
  558menu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0:menu%!20=40:menu%!24=0
  559item%=menu%+28:width%=LEN(title$)
  560REPEAT
  561 comma%=INSTR(menuitems$,",")
  562 item$=LEFT$(menuitems$,comma%-1):!item%=0
  563 REPEAT:morecodes%=FALSE
  564  IFLEFT$(item$,1)="0" !item%=(!item%)OR%0001:morecodes%=TRUE
  565  IFLEFT$(item$,1)="1" !item%=(!item%)OR%0010:morecodes%=TRUE
  566  IFLEFT$(item$,1)="2" !item%=(!item%)OR%0100:morecodes%=TRUE
  567  IFLEFT$(item$,1)="3" !item%=(!item%)OR%1000:morecodes%=TRUE
  568  IFLEFT$(item$,1)="7" !item%=(!item%)OR%10000000:morecodes%=TRUE
  569  IFLEFT$(item$,1)="8" item%!8=&07400021:item$=RIGHT$(item$,LEN(item$)-1):ELSE:item%!8=&07000021
  570  IF morecodes% item$=RIGHT$(item$,LEN(item$)-1)
  571 UNTIL NOT morecodes%
  572 $(item%+12)=item$
  573 IF(LEN(item$)+1)>width%:width%=LEN(item$)+1
  574 item%!4=-1
  575 menuitems$=MID$(menuitems$,comma%+1)
  576 item%=item%+24
  577UNTIL menuitems$=""
  578menu%!16=width%*16
  579ENDPROC
  580
  581DEFPROClinksubmenu(itemno%,w%)
  582item%=menu%+28+((itemno%-1)*24)
  583item%!4=w%
  584ENDPROC
  585
  586DEFPROCsetupwclick(b%,i%)
  587LOCAL j%
  588IFb%=2:ENDPROC
  589CASE i% OF
  590  WHEN i_ssicon%: IFb%=64 PROCstartdrag(setw%,i%,FNleaf(FNgeticnstring(setw%,i_sswrite%))):dragging%=1
  591  WHEN i_ssok%: PROCsavesetup(FNgeticnstring(setw%,i_sswrite%))
  592  WHEN i_sddrop%:PROCerror("Drop a directory icon here to change the 'saved screen' directory (alternatively drag out the directory icon given)",0)
  593  WHEN i_sddir%:IFb%=64:PROCstartdrag(setw%,i%,""):dragging%=2
  594REM  WHEN i_sddir%:IFb%=64 AND Y%=0:PROCerror("You can only set a save driectory from a hard disk.",1)
  595  WHEN i_sdok%:PROCsetsavedirfromOK
  596  WHEN i_vga%:PROCsetmode(1):OSCLI"Set TableA$vga 1"
  597  WHEN i_cga%:PROCsetmode(0):OSCLI"Set TableA$vga 0"
  598  WHEN i_sound%(0):PROCsetvolume(0):OSCLI"Set TableA$volume 0"
  599  WHEN i_sound%(1):PROCsetvolume(1):OSCLI"Set TableA$volume 1"
  600  WHEN i_sound%(2):PROCsetvolume(2):OSCLI"Set TableA$volume 2"
  601  WHEN i_ag%(16):PROCreset_ad_ac
  602  WHEN i_ag%(17):PROCreset_ad_ac
  603ENDCASE
  604ENDPROC
  605
  606DEFPROCreset_ad_ac
  607  IF FNisselected(setw%,i_ag%(17)) THEN
  608    M%=2:PROChide_advent
  609  ELSE
  610    M%=1:PROChide_activ
  611  ENDIF
  612  IF FNisselected(setw%,i_ag%(16)) THEN
  613    M%=1:PROChide_activ
  614  ELSE
  615    M%=2:PROChide_advent
  616  ENDIF
  617ENDPROC
  618
  619DEFPROCwintoscrn(b%)
  620!blk2%=!b%:SYS "Wimp_GetWindowState",,blk2%
  621b%!8+=(blk2%!4)-(blk2%!20)
  622b%!12+=(blk2%!16)-(blk2%!24)
  623b%!16+=(blk2%!4)-(blk2%!20)
  624b%!20+=(blk2%!16)-(blk2%!24)
  625ENDPROC
  626
  627DEFPROCstartdrag(w%,i%,n$)
  628proposedfname$=n$
  629!blk%=w%:blk%!4=i%:SYS "Wimp_GetIconState",,blk%
  630PROCwintoscrn(blk%):blk%!8-=4:blk%!12-=4:blk%!16+=4:blk%!20+=4
  631blk%!4=5:blk%!24=0:blk%!28=0:blk%!32=3000:blk%!36=3000:SYS "Wimp_DragBox",,blk%
  632ENDPROC
  633
  634DEFPROCerror(msg$,errno%)
  635REMCLOSE#0
  636!errblk%=99:$(errblk%+4)=msg$
  637SYS "Wimp_ReportError",errblk%,0,"TableA"
  638ENDPROC
  639
  640DEFPROCsendsavedatamess
  641SYS "Wimp_GetPointerInfo",,blk%:x%=!blk%:y%=blk%!4:w%=blk%!12:i%=blk%!16
  642!blk%=56:blk%!12=0:blk%!16=1:blk%!20=w%:blk%!24=i%:blk%!28=x%:blk%!32=y%:blk%!36=1200:blk%!40=&FFF:$(blk%+44)=proposedfname$+CHR$0
  643SYS "Wimp_SendMessage",17,blk%,w%:myref%=blk%!8
  644ENDPROC
  645
  646DEFPROCkeyevent
  647CASE (blk!24) OF
  648 WHEN 252:quit%=TRUE:SYS "Wimp_ProcessKey",blk%!24:ENDPROC
  649ENDCASE
  650IF!blk%<>setw%:SYS "Wimp_ProcessKey",blk%!24:ENDPROC
  651IF((blk%!24)=13)AND(((blk%!4)=i_sswrite%)OR((blk%!4)=i_sdwrite%)) THEN
  652 CASE blk%!4 OF
  653  WHEN i_sswrite%:PROCsavesetup(FNgeticnstring(setw%,i_sswrite%))
  654  WHEN i_sdwrite%:PROCsetsavedirfromOK
  655 ENDCASE
  656ELSE
  657 IF((blk%!4)>=57)AND((blk%!4)<=72) THEN
  658  CASE (blk%!24) OF
  659   WHEN &18F: IF(blk%!4)>=58:SYS "Wimp_SetCaretPosition",setupw%,(blk%!4)-1,0,0,-1,LEN(FNgeticnstring(setupw%,(blk%!4)-1)):ELSE:SYS "Wimp_ProcessKey",blk%!24
  660   WHEN &18E,13: IF(blk%!4)<=71:SYS "Wimp_SetCaretPosition",setupw%,(blk%!4)+1,0,0,-1,LEN(FNgeticnstring(setupw%,(blk%!4)+1)):ELSE:SYS "Wimp_ProcessKey",blk%!24
  661   OTHERWISE:SYS "Wimp_ProcessKey",blk%!24
  662  ENDCASE
  663 ELSE
  664  SYS "Wimp_ProcessKey",blk%!24
  665 ENDIF
  666ENDIF
  667ENDPROC
  668
  669DEFPROCmenuclick
  670SYS "Wimp_GetPointerInfo",,blk2%
  671currmenubut%=blk2%!8
  672CASE currmenu% OF
  673 WHEN -1:
  674  CASE !blk% OF
  675REM    WHEN 0: PROCcheckadjust
  676   WHEN 1: PROCopensetupw:PROCcheckadjust
  677   WHEN 2: quit%=TRUE
  678  ENDCASE
  679ENDCASE
  680ENDPROC
  681
  682DEFPROCcheckadjust
  683IFcurrmenubut%=1:SYS "Wimp_CreateMenu",,menu%,100,100
  684ENDPROC
  685
  686DEFPROCopensetupw
  687IFNOTFNisopen(setw%)THEN
  688 !blk%=setw%:SYS "Wimp_GetWindowState",,blk%
  689 IFxmaxec%>1272:blk%!4=INT((xmaxec%-1272)/2):ELSE:blk%!4=0
  690 IFymaxec%>916:blk%!8=INT((ymaxec%-916)/2):ELSE:blk%!8=0
  691 blk%!12=(blk%!4)+1272:blk%!16=(blk%!8)+916:blk%!20=0:blk%!24=0
  692 blk%!28=-1:PROCopenwind(blk%)
  693ENDIF
  694ENDPROC
  695
  696DEFPROCreceive
  697CASE blk%!16 OF
  698 WHEN 0: quit%=TRUE
  699 WHEN 2: IFdragging%=1:PROCsavesetup(FNreadstring(blk%+44))
  700  IFdragging%=2 THEN
  701   IFFNleaf(FNgeticnstring(setw%,i_sdwrite%))="":PROCerror("You must give this directory a name",1):ENDPROC
  702   PROCsetsavedir(FNreadstring(blk%+44)+FNleaf(FNgeticnstring(setw%,i_sdwrite%)))
  703  ENDIF
  704 WHEN 3: FORj%=0TO!blk%STEP4:blk2%!j%=blk%!j%:NEXT:a$=FNreadstring(blk%+44)
  705  IFblk%!24=i_sddrop% THEN
  706   IFFNfiletype(a$)<>2PROCerror("Only directories allowed here",1):ENDPROC
  707   PROCsetsavedir(a$)
  708  ELSE
  709   IFFNload_file(FNreadstring(blk%+44),blk%!40) THEN
  710    blk2%!12=1:blk2%!16=4:SYS "Wimp_SendMessage",19,blk2%,blk2%!20
  711   ENDIF
  712  ENDIF
  713ENDCASE
  714ENDPROC
  715
  716DEFPROCsavesetup(f$)
  717LOCAL j%
  718PROCicns_intiger
  719IF INSTR(f$,".")=0 PROCerror("To save, drag the icon to a directory viewer",0):ENDPROC
  720X=OPENOUT f$
  721LOCAL ERROR
  722ONERRORLOCAL:RESTORE ERROR:PROCerror(REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0,ERR):CLOSE#X:ENDPROC
  723BPUT#X,9:BPUT#X,9:BPUT#X,0:BPUT#X,0
  724BPUT#X,"TableA";:BPUT#X,0
  725PRINT#X,A%,B%,C%,D%,E%,G%,H%,I%,J%,K%,L%,M%,N%,O%,P%,Q%,R%,S%,T%,U%,V%,W%,X%,Z%
  726REM PRINT#X,start%
  727PRINT#X,FNfindvolume
  728REM PRINT#X,FNfindtaskdiff
  729PRINT#X,FNfindmode
  730RESTORE ERROR
  731CLOSE#X
  732OSCLI"SETTYPE "+f$+" ae8"
  733PROCputicnstring(setw%,i_sswrite%,f$):OSCLI"Set TableA$SaveGamePath "+f$
  734SYS "Wimp_SetCaretPosition",-1
  735ENDPROC
  736
  737DEFFNload_file(f$,t%)
  738IFt%<>&AE8 PROCerror("Not a saved-game file",0):=FALSE
  739SYS "Wimp_SetCaretPosition",-1
  740X=OPENIN f$
  741LOCAL ERROR
  742ONERRORLOCAL:RESTORE ERROR:PROCerror(REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0,ERR):CLOSE#X:=FALSE
  743id%=BGET#X+((BGET#X)<<8)+((BGET#X)<<16)+((BGET#X)<<24)
  744FORj%=0TO11:blk%?j%=BGET#X:NEXT:blk%?12=0:creator$=FNreadstring(blk%)
  745IFid%<>&909 PROCerror("I do not understand this file as it belongs to '"+creator$+"'."+STR$(id%),0):CLOSE#X:=FALSE
  746REM xxxxx value 13 needs changing dep. on applic name (13=4+TableA+1)
  747PTR#X=11
  748INPUT#X,A%,B%,C%,D%,E%,G%,H%,I%,J%,K%,L%,M%,N%,O%,P%,Q%,R%,S%,T%,U%,V%,W%,X%,Z%
  749REM INPUT#X,start%:PROCsetstart(0)
  750INPUT#X,volume%:PROCsetvolume(volume%)
  751REM INPUT#X,f%:PROCsettaskdiff(f%)
  752INPUT#X,f%:IF NOT FNiscgaonly:PROCsetmode(f%)
  753RESTORE ERROR
  754CLOSE#X
  755REM PROCputicnstring(setw%,i_sswrite%,f$):OSCLI"Set TableA$SaveGamePath "+f$
  756prelink_flag%=0:*Set TableA$PreLink 0
  757PROCintiger_icns
  758=TRUE
  759
  760DEFFNfindmode
  761IF FNiscgaonly THEN:=0
  762IFFNisselected(setw%,i_cga%):=0
  763=1
  764
  765DEFFNfindtaskdiff
  766IFFNisselected(setw%,13):=0
  767IFFNisselected(setw%,14):=1
  768=2
  769
  770DEFFNfindvolume
  771IFFNisselected(setw%,i_sound%(0)):=0
  772IFFNisselected(setw%,i_sound%(1)):=1
  773=2
  774
  775DEFFNfindcontcomm
  776IFFNisselected(setw%,39):=0
  777=1
  778
  779DEFFNcheckfont(a$,A%,B%)
  780LOCAL ERROR
  781ON ERROR LOCAL:=0
  782SYS "Font_FindFont",,a$,A%,B%,0,0 TO h%
  783SYS "Font_LoseFont",h%:RESTORE ERROR
  784=TRUE
  785
  786DEFPROCstartgame
  787PROCicns_intiger
  788IFM%=0:PROCerror("You must select activities or adventures.",0):ENDPROC
  789IFZ%=0:PROCerror("You must select the activity length.",0):ENDPROC
  790IFO%=0:PROCerror("You must select the games level.",0):ENDPROC
  791IFR%=0 AND M%=1:PROCerror("You must select an adventure.",0):ENDPROC
  792IF((X% AND 15)=0 OR (X% AND 240)=0 OR (X% AND 3840)=0 OR (X% AND 61440)=0) AND M%=2:PROCerror("You must select an activity or NO ACTIVITY in each column.",0):ENDPROC
  793REM intro                                  |
  794P%=P%
  795REM adventure type  1 - 20 - 40 - 60 etc
  796Q%=(R%-1)*20
  797IF R%=1 Q%=1
  798IF R%>6 Q%=R%+(201-7)
  799REM set activity list to 1st
  800X%=X%+65536
  801REM select which tables test
  802L%=RND(2):J%=RND(2)
  803REM set up main tables test numbers in N%
  804N%=0
  805FORf%=0 TO 12
  806  IF(U% AND (1<<f%))=(1<<f%) firstn%(f%)=1 ELSE firstn%(f%)=0
  807NEXT
  808FORf%=0 TO 12
  809  IF(W% AND (1<<f%))=(1<<f%) secondn%(f%)=1 ELSE secondn%(f%)=0
  810NEXT
  811secn%=0:firn%=0
  812FORf%=1TO12
  813  IFsecondn%(f%)=1:secn%+=1
  814NEXT
  815FORf%=1TO12
  816  IFfirstn%(f%)=1:firn%+=1
  817NEXT
  818IFfirn%>secn% main%=secn%:FORf%=0 TO 12:firstn%(f%)=secondn%(f%):NEXT ELSE main%=firn%
  819IFmain%>3 THEN
  820    N%=4<<24
  821ELSE
  822    N%=main%<<24
  823    loc%=0
  824    FORf%=1 TO 12
  825      IFfirstn%(f%)=1:N%=(N% OR (f%<<loc%)):loc%=loc%+8
  826    NEXT
  827ENDIF
  828G%=0
  829T%=0:I%=0
  830REM ***************************************|
  831IF (fact1%=1 AND firstn%(0)=1) OR (fact2%=1 AND secondn%(0)=1):PROCerror("You must have at least one number (Not Zero) selected from both factor columns.",0):ENDPROC
  832IF fact1%=0 OR fact2%=0 :PROCerror("You must have at least one number selected from both factor columns.",0):ENDPROC
  833IF fact1%+fact2%<4 :PROCerror("You must have at least four numbers selected from either factor columns.",0):ENDPROC
  834IF X%=69905 AND M%=2:PROCerror("You must have at least one activity selected.",0):ENDPROC
  835SYS "Font_ReadFontMax" TO fm%,fm1%,fm2%,fm3%,fm4%,fm5%
  836IFfm2%<57600 SYS "Font_SetFontMax",fm%,fm1%,57600,57600,fm4%,fm5%
  837SYS "OS_Byte",135 TO ,,a%:OSCLI"Set TableA$Mode "+STR$a%
  838OSCLI"Set TableA$Save "+FNgeticnstring(setw%,i_sdwrite%)
  839H%=mc%
  840K%=H%
  841V%=1
  842a$=FNreadsysvar("TableA$EntryPt")
  843h%=0
  844IFY%=0 THEN
  845  *ADFS
  846  *MOUNT 0
  847  SYS "XOS_Find",&40,"$.!Tables.Pt1.link" TO h%
  848  REM PROCerror(STR$(h%),0)
  849  IFh%>255 OR h%=0:PROCerror("Please place disk One in drive 0.",1):ENDPROC
  850  CLOSE#h%
  851ENDIF
  852IFFNcheckfont("Tabloid.medium",320,360)=FALSE PROCerror("Font:'Tabloid.Medium' not found",0):ENDPROC
  853IF FNiscgaonly THEN
  854  V%=0:SYS "Wimp_SetMode",15:IF(FNreadvduvar(150)/1024)<160 PROCerror("Not enough memory to change screen mode",1):ENDPROC
  855ELSE
  856 IF FNisvga THEN
  857  OSCLI"Set TableA$Vga 1"
  858  V%=1:SYS "Wimp_SetMode",28:IF(FNreadvduvar(150)/1024)<300 PROCerror("Not enough memory to change screen mode",1):ENDPROC
  859 ELSE
  860  OSCLI"Set TableA$Vga 0"
  861  V%=0:SYS "Wimp_SetMode",15:IF(FNreadvduvar(150)/1024)<160 PROCerror("Not enough memory to change screen mode",1):ENDPROC
  862 ENDIF
  863ENDIF
  864SYS "Wimp_CloseDown",,&4B534154
  865PROCsavesound
  866volume%=FNfindvolume
  867CASE volume% OF
  868 WHEN 0:SYS "Sound_Volume",1
  869 WHEN 1,2,3:SYS "Sound_Volume",127-(16*(3-volume%))
  870ENDCASE
  871HIMEM=oldhimem%
  872IF FNiscgaonly THEN
  873MODE12
  874ELSE
  875IFFNisvga:MODE27:ELSE:MODE12
  876ENDIF
  877DIM scale% 16,swap%(20,2),input_disk_name% 32
  878vga%=V%
  879intro$="no"
  880IFINSTR(a$,"fromstartup"):PROCget_fonts:PROCget_sounds:intro$="yes"
  881OSCLI"Set TableA$EntryPt fromprog"
  882memtop%=&7AF00
  883A%=memtop%:PAGE=A%
  884A%=1:CHAIN"<TableA$Dir>.Pt1.prelink"
  885END
  886
  887DEFPROCget_sounds
  888REM open a Packsound file
  889SYS &46181,F%,"<TableA$Dir>.SPackFile",230
  890REM Ensure sounds
  891SYS &46184,F%,"aliensnear"
  892SYS &46184,F%,"cart2"
  893SYS &46184,F%,"clang2"
  894SYS &46184,F%,"computer1"
  895SYS &46184,F%,"explode3"
  896SYS &46184,F%,"explode4"
  897SYS &46184,F%,"fire!"
  898SYS &46184,F%,"fire_bubb2"
  899SYS &46184,F%,"growl2"
  900SYS &46184,F%,"inside_ufo"
  901SYS &46184,F%,"invading2"
  902SYS &46184,F%,"laser_door"
  903SYS &46184,F%,"ok2"
  904SYS &46184,F%,"robots"
  905SYS &46184,F%,"saturn5"
  906SYS &46184,F%,"scifi3"
  907SYS &46184,F%,"wind"
  908SYS &46184,F%,"wrong2"
  909SYS &46184,F%,"arrr"
  910SYS &46184,F%,"plop"
  911SYS &46184,F%,"clang_lock"
  912SYS &46184,F%,"fire3"
  913SYS &46184,F%,"crack2"
  914SYS &46184,F%,"aaarh2"
  915ENDPROC
  916
  917DEFPROCget_fonts
  918*FX112,2
  919PROCpri(0,500,1,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.,'!?-:()+=")
  920*FX112,1
  921ENDPROC
  922
  923DEFPROCpri(x%,y%,si%,a$)
  924SYS"Font_FindFont",,"TABLOID.MEDIUM",320,360,0,0 TO han%
  925SYS"Font_SetFontColours",0,0,1,2
  926VDU0,0,0,0,0,0,0,0
  927SYS"Font_Paint",,a$,16,x%,y%
  928SYS"Font_LoseFont",han%
  929ENDPROC
  930
  931DEFPROCpalette
  932VDU19,1,24,136,136,136
  933LOCALp%,r%,g%,b%
  934RESTORE+7
  935FORp%=0TO15
  936READr%,g%,b%:COLOURp%,r%,g%,b%
  937NEXT
  938VDU19,1,24,0,0,0;0;
  939ENDPROC
  940
  941DATA 255,255,255,187,187,187,119,119,119,0,0,0
  942DATA 255,255,0,0,50,255,187,187,187,0,153,0
  943DATA 224,224,224,164,164,164,0,0,0,255,0,0
  944DATA 136,102,0,0,204,0,0,153,0,0,119,0
;�ADFS::HardDisc4.$.CURR_NEW.DEMOPROG.!Tables.!Runimage
!oldhimem%=�:�=&12A00+(1024*5)
�sortmemory

�initwimp

�initvars
3� �readsysvar("TableA$EntryPt")="fromstartup" �
  � � �alreadyrunning �
!    �"Set TableA$isrunning 1"
  �
	T    �error("Table Aliens is already running",0):ș "Wimp_CloseDown",,&4B534154:�

  �
  �initfromstartup
�

3  ș "Wimp_SetMode",��readsysvar("TableA$Mode")
  � PROCsetsound
  ș "Sound_Volume",127
�
ș"Hourglass_On"
�load_icons
�createwindows
�initwindows
ș"Hourglass_Off"
�createbaricon
�intiger_icns
7� � �error(�$+" (Internal error code "+Þ+")"+�0,�)
� �pollloop:� quit%
!� kill sound cache and module
ș &46182,F%
ș &46188,F%
*RMkill PackSound%talien
*RMkill PackSound
� PROCsetsound
 "ș "Wimp_CloseDown",,&4B534154
!�"Set TableA$isrunning 0"
"	*QUIT
#�
$
%ݤalreadyrunning
&� A%
'� �
(��:� �:=0
)=ș "OS_ReadVarVal","TableA$isrunning",blk%,256,0,0 � ,,a%
*%a$="":�A%=0�a%-1:a$+=�(blk%?A%):�
+� �
,�a$="1":=-1
-=0
.
/��initfromstartup
0quit%=�
1� j%
2!userwimpsprs%=wimpsprsize%
3userwimpsprs%!8=16
4'ș "OS_SpriteOp",&109,userwimpsprs%
5>ș "OS_SpriteOp",&10A,userwimpsprs%,"<TableA$Dir>.Sprites"
6
winctr%=1
74ș "Wimp_OpenTemplate",,"<TableA$Dir>.Templates"
8�load_template("Setup")
9�load_template("proginfo")
:ic$=�~(icondefs%)
;�"LOAD icondefs "+ic$
<>U%=%10000:W%=%11111111111:R%=2:Z%=2:O%=3:M%=1:X%=4370:P%=1
=ș &46189,"talien" � F%
>�savesound
?1a$=�converttolower(�readsysvar("TableA$Dir"))
@,�a$,"startup.$.!tables")<>0:Y%=0:�:Y%=1
A�
B
C��load_icons
D&i_sswrite%=�lookicon("SAVEGWRITE")
Ei_ssicon%=58
F i_ssok%=�lookicon("SAVEGOK")
G&i_sdwrite%=�lookicon("SAVEAWRITE")
Hi_sddir%=23
I i_sdok%=�lookicon("SAVEAOK")
Ji_unavail%=129
Ki_sddrop%=87
Li_fa%(0)=�lookicon("A0")
Mi_fa%(1)=�lookicon("A1")
Ni_fa%(2)=�lookicon("A2")
Oi_fa%(3)=�lookicon("A3")
Pi_fa%(4)=�lookicon("A4")
Qi_fa%(5)=�lookicon("A5")
Ri_fa%(6)=�lookicon("A6")
Si_fa%(7)=�lookicon("A7")
Ti_fa%(8)=�lookicon("A8")
Ui_fa%(9)=�lookicon("A9")
Vi_fa%(10)=�lookicon("A10")
Wi_fa%(11)=�lookicon("A11")
Xi_fa%(12)=�lookicon("A12")
Yi_fa%(13)=�lookicon("TE1")
Zi_fa%(14)=�lookicon("TE2")
[i_fa%(15)=�lookicon("TE3")
\i_fb%(0)=�lookicon("B0")
]i_fb%(1)=�lookicon("B1")
^i_fb%(2)=�lookicon("B2")
_i_fb%(3)=�lookicon("B3")
`i_fb%(4)=�lookicon("B4")
ai_fb%(5)=�lookicon("B5")
bi_fb%(6)=�lookicon("B6")
ci_fb%(7)=�lookicon("B7")
di_fb%(8)=�lookicon("B8")
ei_fb%(9)=�lookicon("B9")
fi_fb%(10)=�lookicon("B10")
gi_fb%(11)=�lookicon("B11")
hi_fb%(12)=�lookicon("B12")
ii_fb%(13)=�lookicon("C1")
j
�f%=1 � 5
k$ i_ag%(f%)=�lookicon("GL"+�(f%))
l�
m�f%=1 � 55
n' i_ag%(f%+10)=�lookicon("AD"+�(f%))
o�
pi_vga%=�lookicon("VGA")
qi_cga%=�lookicon("CGA")
r i_sound%(0)=�lookicon("OFF")
s"i_sound%(1)=�lookicon("QUIET")
t#i_sound%(2)=�lookicon("NORMAL")
u� PROCicns_intiger
v�
w
xݤlookicon(iconname$)
y@� #define I_SETUP_SAVEGWRITE 4  ie ***set is 5 characters***
zstart_look%=icondefs%
{�
|   a$="":b$=""
}!   start_look%=start_look%+16
~   �
     a$=a$+�(?start_look%)
�"     start_look%=start_look%+1
�   � ?start_look%=32
�    start_look%=start_look%+1
�   �
�     b$=b$+�(?start_look%)
�"     start_look%=start_look%+1
�   � ?start_look%=10
�    start_look%=start_look%+1
�/� a$=iconname$ � start_look%>icondefs%+2358
�
=�(b$)
�
���sortmemory
�indbase%=�:iptr%=indbase%
�%totindsize%=7000:totwinsize%=8140
�'� totindsize%=4096:totwinsize%=6400
�0winbase%=indbase%+totindsize%:wptr%=winbase%
�lindstarts%=winbase%+totwinsize%:winstarts%=indstarts%+40:userwimpsprs%=winstarts%+40:wimpsprsize%=5*1024
�%mc%=&16F00+(10*1024):pdbs%=&40000
��
�
���initwimp
�=ș "Wimp_Initialise",200,&4B534154,"TableA" � ,taskhandl%
�W� �error(�$+" (Internal error code "+Þ+")"+�0,�):ș "Wimp_CloseDown",,&4B534154:�
��
�
���initvars
�e� blk% 256,errblk% 200,menu% 1024,blk2% 256,pdbbuff% 256,palcode% 900,baricn% 12,inb% 20,outb% 20
�>� icondefs% 2370,i_fa%(15),i_fb%(13),i_sound%(3),i_ag%(66)
�� firstn%(12),secondn%(12)
�(A%=indbase%:B%=indbase%+1024:� pauls
�quit%=�
�4!inb%=4:inb%!4=5:inb%!8=11:inb%!12=12:inb%!16=-1
�sndmax%=15
�start%=1
��getscreensize
��
�
���getscreensize
�&ș"OS_ReadVduVariables",inb%,outb%
�Nxmaxec%=(((outb%!8)+1)<<(outb%!0))-1:ymaxec%=(((outb%!12)+1)<<(outb%!4))-1
��
�
�ݤconverttolower(a$)
�� l%,b$,ch%:b$=""
�
�l%=1��a$
�ch%=�(�a$,l%,1))
�!�(ch%>&40)�(ch%<&5B):ch%+=&20
�b$+=�ch%
��
�=b$
�
�ݤreadstring(p%)
�2�a$:a$="":ȕ �a$<255 � ?p%>31 a$+=�?p%:p%+=1:�
�=a$
�
�ݤreadsysvar(a$)
�� A%
�Oș "OS_ReadVarVal",a$,blk%,256,0,0 � ,,a%:a$="":�A%=0�a%-1:a$+=�(blk%?A%):�
�=a$
�
�ݤreadvduvar(a%)
�9!blk%=a%:blk%!4=-1:ș "OS_ReadVduVariables",blk%,blk%
�
=!blk%
�
���geticonstate(w%,i%)
�3!blk%=w%:blk%!4=i%:ș "Wimp_GetIconState",,blk%
��
�
�ݤisselected(w%,i%)
��geticonstate(w%,i%)
� =((blk%!24)�(1<<21))=(1<<21)
�
�ݤfiletype(a$)
�ș "XOS_File",5,a$ � a%
�=a%
�
�2ݤleaf(f$) I%=�f$:ȕI%>1��f$,I%,1)<>"."I%-=1:�
��f$,I%,1)="."I%+=1
�=�f$,I%)
�
���setsavedir(dir$)
�(�puticnstring(setw%,i_sdwrite%,dir$)
�!ș "Wimp_SetCaretPosition",-1
�� �
�
��:� �:�
��"CDIR "+dir$
�� �
��
�
���setsavedirfromOK
�!ș "Wimp_SetCaretPosition",-1
�� �
�e��:� �:�error("Invalid path and/or directory name. Creation of new save directory aborted.",0):�
�,�"CDIR "+�geticnstring(setw%,i_sdwrite%)
�� �
��
�
�ݤiscgaonly
�)ș"OS_CheckModeValid",27 � reg0%;fla%
�&sc1%=(((fla%�%10)=%10)�(reg0%=-1))
�
�sc1%=� �
� =�
��
� =�
��
�
�ݤisvga
�#�isselected(setw%,i_vga%)�:=-1
�=0
�
�ݤisopen(w%)
�+!blk%=w%:ș "Wimp_GetWindowState",,blk%
� =((blk%!32)�(1<<16))=(1<<16)
�
���savesound
�� A%
�^ș "Sound_ReadControlBlock",1,2 � ,,voice%:voice%=voice%�&FF:�"Set TableA$voice1 "+�voice%
�|ș "Sound_Configure",0,0,0 � A%,B%,C%:�"Set TableA$totchans "+�A%:�"Set TableA$sampsize "+�B%:�"Set TableA$sampper "+�C%
�3ș "Sound_Volume",0 � A%:�"Set TableA$vol "+�A%
��
�
���setsound
�3�"channelvoice 1 "+�readsysvar("TableA$voice1")
��A%=��readsysvar("TableA$totchans"):B%=��readsysvar("TableA$sampsize"):C%=��readsysvar("TableA$sampper"):ș "Sound_Configure",A%,B%,C%
�0ș "Sound_Volume",��readsysvar("TableA$vol")
��
�
���setmode(mode%)
�mode%=0 �
9�selecticn(setw%,i_cga%,�):�selecticn(setw%,i_vga%,�)
�
9�selecticn(setw%,i_cga%,�):�selecticn(setw%,i_vga%,�)
�
�

��load_template(winname$)
Ewinstarts%!((winctr%-1)*4)=wptr%:indstarts%!((winctr%-1)*4)=iptr%
	Tș "Wimp_LoadTemplate",,wptr%,iptr%,indbase%+totindsize%,-1,winname$,0 � ,,iptr%

noicns%=wptr%!84
�j%=0�(noicns%-1)*32�32
+ icnblk%=wptr%+88+j%:icnf%=(icnblk%!16)

O � ��indirected(icnf%)���sprite(icnf%)��text(icnf%) �:icnf%=icnf%�&FFFF0FFF
Q � �indirected(icnf%)��sprite(icnf%)���text(icnf%) �:icnblk%!24=userwimpsprs%
+ � ��indirected(icnf%)��sprite(icnf%) �
#  sprn$=�readstring(icnblk%+20)
.  ș "XWimp_SpriteOp",40,,sprn$ � ,,,w%,h%
�  �(w%�h%)=0:icnf%=icnf%�256:$iptr%=sprn$:?(iptr%+(�sprn$))=0:icnblk%!20=iptr%:icnblk%!24=userwimpsprs%:icnblk%!28=�sprn$:iptr%+=�(sprn$)+1
 �
 icnblk%!16=icnf%
�
(wptr%+=88+((wptr%!84)*32):winctr%+=1
�

ݤindirected(f%)
=((f%�256)=256)

ݤsprite(f%)
=((f%�2)=2)

ݤtext(f%)
 =((f%�1)=1)
!
"��createwindows
#0ș "Wimp_CreateWindow",,winstarts%!0 � setw%
$1ș "Wimp_CreateWindow",,winstarts%!4 � infow%
%5� SYS "Wimp_CreateWindow",,winstarts%!8 TO messw%
&ș "Wimp_CloseTemplate"
'�
(
)��initwindows
*� j%
+F�puticnstring(setw%,i_sswrite%,�readsysvar("TableA$SaveGamePath"))
,=volume%=��readsysvar("TableA$Volume"):�setvolume(volume%)
-"ca%=�:�cb%=0�20000:�:sp%=�-ca%
.�sp%>8 �"set TableA$Vga 0"
/.f%=��readsysvar("TableA$Vga"):�setmode(f%)
0� �iscgaonly �
1;  �selecticn(setw%,i_cga%,�):�selecticn(setw%,i_vga%,�)
29  �shadeicn(setw%,i_cga%,�):�shadeicn(setw%,i_vga%,�)
3�
4
� DEMO
5 �shadeicn(setw%,i_ag%(12),�)
6 �shadeicn(setw%,i_ag%(14),�)
7 �shadeicn(setw%,i_ag%(17),�)
8 �shadeicn(setw%,i_ag%(15),�)
9T� IFY%=0:PROChidesaveareabit:ELSE:PROChideicn(setupw%,36,TRUE):PROCcreatesavedir
:H�Y%=0:�hidesaveareabit:�:�createsavedir:�hideicn(setw%,i_unavail%,�)
;0prelink_flag%=��readsysvar("TableA$PreLink")
<�
=
>��createsavedir
?T� xxxxx need to change minus 7 below when know what applic is called (7=!TableA)
@ a$=�readsysvar("TableA$Dir")
A&� (Y%=1)�(�filetype(a$+".sa")=1) �
B ș "XOS_File",6,a$+".sa"
C+ �setsavedir(�a$,�(a$)-7)+"TableASave")
D�
E4 � �readsysvar("TableA$EntryPt")="fromstartup" �
F?  �puticnstring(setw%,i_sdwrite%,�a$,�(a$)-7)+"TableASave")
G �
H@  �puticnstring(setw%,i_sdwrite%,�readsysvar("TableA$Save"))
I �
J�
K�
L
M��icns_intiger
N� U% = a0,a1,a2,a3
O'� W% = b0,b1,b2 b3 ......mixed(b13)
P4u%=0:v%=0:fact1%=0:fact2%=0:O%=0:Z%=0:R%=0:M%=0:
Q�f%=0 � 12
R@� �isselected(setw%,i_fa%(f%)) u%=u%+(1<<f%):fact1%=fact1%+1
S@� �isselected(setw%,i_fb%(f%)) v%=v%+(1<<f%):fact2%=fact2%+1
T�
U0� �isselected(setw%,i_fb%(13)) v%=v%+(1<<13)
V'� �isselected(setw%,i_fa%(13)) Z%=1
W'� �isselected(setw%,i_fa%(14)) Z%=2
X'� �isselected(setw%,i_fa%(15)) Z%=3
YU%=u%:W%=v%
Z� games level
[
�f%=1 � 5
\*  � �isselected(setw%,i_ag%(f%)):O%=f%
]�
^� introduction
_.� �isselected(setw%,i_ag%(11)) P%=1 � P%=0
`� adventure type
a�f%=12 � 15
b-  � �isselected(setw%,i_ag%(f%)) R%=f%-11
c�
d� adventure/activity button
e5  � �isselected(setw%,i_ag%(16)) M%=1:�hide_activ
f6  � �isselected(setw%,i_ag%(17)) M%=2:�hide_advent
g� activity list
hX%=0
i�f%=18 � 28
j2  � �isselected(setw%,i_ag%(f%)) X%=X%+(f%-17)
k�
l/  � �isselected(setw%,i_ag%(62)) X%=X%+(12)
m�f%=29 � 39
n7  � �isselected(setw%,i_ag%(f%)) X%=X%+((f%-28)*16)
o�
p4  � �isselected(setw%,i_ag%(63)) X%=X%+((12)*16)
q�f%=40 � 50
r8  � �isselected(setw%,i_ag%(f%)) X%=X%+((f%-39)*256)
s�
t5  � �isselected(setw%,i_ag%(64)) X%=X%+((12)*256)
u�f%=51 � 61
v9  � �isselected(setw%,i_ag%(f%)) X%=X%+((f%-50)*4096)
w�
x6  � �isselected(setw%,i_ag%(65)) X%=X%+((12)*4096)
y�
z
{��intiger_icns
|� U% = a0,a1,a2,a3
}'� W% = b0,b1,b2 b3 ......mixed(b13)
~�f%=0 � 12
[  �(U% � (1<<f%))=(1<<f%) �selecticn(setw%,i_fa%(f%),�) � �selecticn(setw%,i_fa%(f%),�)
��
��f%=0 � 13
�[  �(W% � (1<<f%))=(1<<f%) �selecticn(setw%,i_fb%(f%),�) � �selecticn(setw%,i_fb%(f%),�)
��
�c�Z%=1 �selecticn(setw%,i_fa%(13),�):�selecticn(setw%,i_fa%(14),�):�selecticn(setw%,i_fa%(15),�)
�c�Z%=2 �selecticn(setw%,i_fa%(13),�):�selecticn(setw%,i_fa%(14),�):�selecticn(setw%,i_fa%(15),�)
�c�Z%=3 �selecticn(setw%,i_fa%(13),�):�selecticn(setw%,i_fa%(14),�):�selecticn(setw%,i_fa%(15),�)
�� games level
�
�f%=1 � 5
�K  � O%=f% �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�� introduction
�J  � P%=1 �selecticn(setw%,i_ag%(11),�) � �selecticn(setw%,i_ag%(11),�)
�� adventure type
��f%=12 � 15
�N  � R%=f%-11 �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�� adventure/activity button
�T  � M%=1 �selecticn(setw%,i_ag%(16),�):�selecticn(setw%,i_ag%(17),�):�hide_activ
�U  � M%=2 �selecticn(setw%,i_ag%(16),�):�selecticn(setw%,i_ag%(17),�):�hide_advent
�� activity list
��f%=18 � 28
�W  � ((X% � 16)+17)=f% �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�T  � ((X% � 16))=12 �selecticn(setw%,i_ag%(62),�) � �selecticn(setw%,i_ag%(62),�)
��f%=29 � 39
�^  � (((X% � 16) � 16)+28)=f% �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�Y  � ((X% � 16) � 16)=12 �selecticn(setw%,i_ag%(63),�) � �selecticn(setw%,i_ag%(63),�)
��f%=40 � 50
�_  � (((X% � 256) � 16)+39)=f% �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�Z  � ((X% � 256) � 16)=12 �selecticn(setw%,i_ag%(64),�) � �selecticn(setw%,i_ag%(64),�)
��f%=51 � 61
�`  � (((X% � 4096) � 16)+50)=f% �selecticn(setw%,i_ag%(f%),�) � �selecticn(setw%,i_ag%(f%),�)
��
�[  � ((X% � 4096) � 16)=12 �selecticn(setw%,i_ag%(65),�) � �selecticn(setw%,i_ag%(65),�)
��
�
���hide_advent:�
�  �h%=11 � 15
�$    �shadeicn(setw%,i_ag%(h%),�)
�  �
�  �h%=18 � 65
�$    �shadeicn(setw%,i_ag%(h%),�)
�  �
��
�
���hide_activ
�  �h%=11 � 15
�,�    PROCshadeicn(setw%,i_ag%(h%),FALSE)
�  �
�  �h%=18 � 65
�$    �shadeicn(setw%,i_ag%(h%),�)
�  �
��
�
���setvolume(vol%)
��iv%=0�2
�S�iv%=vol%:�selecticn(setw%,i_sound%(iv%),�):�:�selecticn(setw%,i_sound%(iv%),�)
��
��
�
���checkarm3
�H%!&DC=0
�	t1%=�
��k%=0�20000:�
�	t2%=�
��(t2%-t1%)<15:H%!&DC=1
��
�
���puticnstring(w%,i%,a$)
�3!blk%=w%:blk%!4=i%:ș "Wimp_GetIconState",,blk%
�$$(blk%!28)=a$:?((blk%!28)+�a$)=0
�3blk%!8=0:blk%!12=0:ș "Wimp_SetIconState",,blk%
��
�
�ݤgeticnstring(w%,i%)
�3!blk%=w%:blk%!4=i%:ș "Wimp_GetIconState",,blk%
�=�readstring(blk%!28)
�
���selecticn(w%,i%,f%)
�F!blk%=w%:blk%!4=i%:blk%!12=(1<<21):�f%=0 blk%!8=0:� blk%!8=blk%!12
� ș "Wimp_SetIconState",,blk%
��
�
���shadeicn(w%,i%,f%)
�$!blk%=w%:blk%!4=i%:blk%!12=1<<22
��f% blk%!8=1<<22:�:blk%!8=0
� ș "Wimp_SetIconState",,blk%
��
�
���fadeicn(w%,i%,f%)
�� j%
�� j%=24�27
�% !blk%=w%:blk%!4=i%:blk%!12=1<<j%
�
 �f% �
�%  �j%<=25:blk%!8=1<<j%:�:blk%!8=0
� �
�%  �j%<=26:blk%!8=1<<j%:�:blk%!8=0
� �
�! ș "Wimp_SetIconState",,blk%
��
��
�
���hideicn(w%,i%,f%)
�$!blk%=w%:blk%!4=i%:blk%!12=1<<23
��f% blk%!8=1<<23:�:blk%!8=0
� ș "Wimp_SetIconState",,blk%
��
�
���hidesaveareabit
� �hideicn(setw%,i_sdwrite%,�)
��hideicn(setw%,i_sddir%,�)
��hideicn(setw%,i_sdok%,�)
��hideicn(setw%,i_sddrop%,�)
��
�
���createbaricon
�$baricn%="iconbar"
�4!blk%=-1:blk%!4=0:blk%!8=0:blk%!12=62:blk%!16=72
�Mblk%!20=&1000313A:blk%!24=baricn%:blk%!28=userwimpsprs%:blk%!32=�$baricn%
�ș "Wimp_CreateIcon",,blk%
��
�
���pollloop
�(ș "Wimp_Poll",%110001,blk% � event%
�Ȏ event% �
  � 1: �redraw
  � 2: �openwind(blk%)
  � 3: �closewind(blk%)
)  � 6: �click(blk%!8,blk%!12,blk%!16)
  � 7: �sendsavedatamess
  � 8: �keyevent
  � 9: �menuclick
  � 17,18: �receive
�
	�


��redraw
(ș "Wimp_RedrawWindow",,blk% � more%

ȕ more%
+  ș "Wimp_GetRectangle",,blk% � more%:
�
�

��openwind(b%)
ș "Wimp_OpenWindow",,b%
�

��closewind(b%)
ș "Wimp_CloseWindow",,b%
�

��click(but%,win%,icn%)

Ȏ win% �

 � -2:
  Ȏ but% �
?   � 2:�mainmenu("TableA","Info,Setup...,7Quit,",!blk%,220)
   � 4:�startgame
   �
!$ � setw%:�setupwclick(but%,icn%)
"�
#�
$
%'��mainmenu(title$,menuitems$,x%,y%)
&"�definemenu(title$,menuitems$)
'�linksubmenu(1,infow%)
(2ș "Wimp_CreateMenu",,menu%,x%-(menu%!16/2),y%
)currmenu%=-1
*�
+
,#��definemenu(title$,menuitems$)
-$menu%=title$
.Fmenu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0:menu%!20=40:menu%!24=0
/#item%=menu%+28:width%=�(title$)
0�
1 comma%=�menuitems$,",")
2) item$=�menuitems$,comma%-1):!item%=0
3 �:morecodes%=�
47  �item$,1)="0" !item%=(!item%)�%0001:morecodes%=�
57  �item$,1)="1" !item%=(!item%)�%0010:morecodes%=�
67  �item$,1)="2" !item%=(!item%)�%0100:morecodes%=�
77  �item$,1)="3" !item%=(!item%)�%1000:morecodes%=�
8;  �item$,1)="7" !item%=(!item%)�%10000000:morecodes%=�
9S  �item$,1)="8" item%!8=&07400021:item$=�item$,�(item$)-1):�:item%!8=&07000021
:+  � morecodes% item$=�item$,�(item$)-1)
; � � morecodes%
< $(item%+12)=item$
=+ �(�(item$)+1)>width%:width%=�(item$)+1
> item%!4=-1
?% menuitems$=�menuitems$,comma%+1)
@ item%=item%+24
A� menuitems$=""
Bmenu%!16=width%*16
C�
D
E��linksubmenu(itemno%,w%)
F#item%=menu%+28+((itemno%-1)*24)
Gitem%!4=w%
H�
I
J��setupwclick(b%,i%)
K� j%
L�b%=2:�
MȎ i% �
Na  � i_ssicon%: �b%=64 �startdrag(setw%,i%,�leaf(�geticnstring(setw%,i_sswrite%))):dragging%=1
O<  � i_ssok%: �savesetup(�geticnstring(setw%,i_sswrite%))
P�  � i_sddrop%:�error("Drop a directory icon here to change the 'saved screen' directory (alternatively drag out the directory icon given)",0)
Q;  � i_sddir%:�b%=64:�startdrag(setw%,i%,""):dragging%=2
Rh�  WHEN i_sddir%:IFb%=64 AND Y%=0:PROCerror("You can only set a save driectory from a hard disk.",1)
S!  � i_sdok%:�setsavedirfromOK
T.  � i_vga%:�setmode(1):�"Set TableA$vga 1"
U.  � i_cga%:�setmode(0):�"Set TableA$vga 0"
V8  � i_sound%(0):�setvolume(0):�"Set TableA$volume 0"
W8  � i_sound%(1):�setvolume(1):�"Set TableA$volume 1"
X8  � i_sound%(2):�setvolume(2):�"Set TableA$volume 2"
Y  � i_ag%(16):�reset_ad_ac
Z  � i_ag%(17):�reset_ad_ac
[�
\�
]
^��reset_ad_ac
_&  � �isselected(setw%,i_ag%(17)) �
`    M%=2:�hide_advent
a  �
b    M%=1:�hide_activ
c  �
d&  � �isselected(setw%,i_ag%(16)) �
e    M%=1:�hide_activ
f  �
g    M%=2:�hide_advent
h  �
i�
j
k��wintoscrn(b%)
l.!blk2%=!b%:ș "Wimp_GetWindowState",,blk2%
mb%!8+=(blk2%!4)-(blk2%!20)
n b%!12+=(blk2%!16)-(blk2%!24)
ob%!16+=(blk2%!4)-(blk2%!20)
p b%!20+=(blk2%!16)-(blk2%!24)
q�
r
s��startdrag(w%,i%,n$)
tproposedfname$=n$
u3!blk%=w%:blk%!4=i%:ș "Wimp_GetIconState",,blk%
v?�wintoscrn(blk%):blk%!8-=4:blk%!12-=4:blk%!16+=4:blk%!20+=4
wRblk%!4=5:blk%!24=0:blk%!28=0:blk%!32=3000:blk%!36=3000:ș "Wimp_DragBox",,blk%
x�
y
z��error(msg$,errno%)
{�CLOSE#0
|!!errblk%=99:$(errblk%+4)=msg$
},ș "Wimp_ReportError",errblk%,0,"TableA"
~�

���sendsavedatamess
�Kș "Wimp_GetPointerInfo",,blk%:x%=!blk%:y%=blk%!4:w%=blk%!12:i%=blk%!16
��!blk%=56:blk%!12=0:blk%!16=1:blk%!20=w%:blk%!24=i%:blk%!28=x%:blk%!32=y%:blk%!36=1200:blk%!40=&FFF:$(blk%+44)=proposedfname$+�0
�2ș "Wimp_SendMessage",17,blk%,w%:myref%=blk%!8
��
�
���keyevent
�Ȏ (blk!24) �
�1 � 252:quit%=�:ș "Wimp_ProcessKey",blk%!24:�
��
�0�!blk%<>setw%:ș "Wimp_ProcessKey",blk%!24:�
�C�((blk%!24)=13)�(((blk%!4)=i_sswrite%)�((blk%!4)=i_sdwrite%)) �
� Ȏ blk%!4 �
�>  � i_sswrite%:�savesetup(�geticnstring(setw%,i_sswrite%))
�$  � i_sdwrite%:�setsavedirfromOK
� �
��
�% �((blk%!4)>=57)�((blk%!4)<=72) �
�  Ȏ (blk%!24) �
��   � &18F: �(blk%!4)>=58:ș "Wimp_SetCaretPosition",setupw%,(blk%!4)-1,0,0,-1,�(�geticnstring(setupw%,(blk%!4)-1)):�:ș "Wimp_ProcessKey",blk%!24
��   � &18E,13: �(blk%!4)<=71:ș "Wimp_SetCaretPosition",setupw%,(blk%!4)+1,0,0,-1,�(�geticnstring(setupw%,(blk%!4)+1)):�:ș "Wimp_ProcessKey",blk%!24
�%   :ș "Wimp_ProcessKey",blk%!24
�  �
� �
�"  ș "Wimp_ProcessKey",blk%!24
� �
��
��
�
���menuclick
�#ș "Wimp_GetPointerInfo",,blk2%
�currmenubut%=blk2%!8
�Ȏ currmenu% �
�
 � -1:
�  Ȏ !blk% �
� �    WHEN 0: PROCcheckadjust
�$   � 1: �opensetupw:�checkadjust
�   � 2: quit%=�
�  �
��
��
�
���checkadjust
�7�currmenubut%=1:ș "Wimp_CreateMenu",,menu%,100,100
��
�
���opensetupw
�笤isopen(setw%)�
�/ !blk%=setw%:ș "Wimp_GetWindowState",,blk%
�8 �xmaxec%>1272:blk%!4=�((xmaxec%-1272)/2):�:blk%!4=0
�6 �ymaxec%>916:blk%!8=�((ymaxec%-916)/2):�:blk%!8=0
�C blk%!12=(blk%!4)+1272:blk%!16=(blk%!8)+916:blk%!20=0:blk%!24=0
� blk%!28=-1:�openwind(blk%)
��
��
�
�
��receive
�Ȏ blk%!16 �
� � 0: quit%=�
�7 � 2: �dragging%=1:�savesetup(�readstring(blk%+44))
�  �dragging%=2 �
�c   �leaf(�geticnstring(setw%,i_sdwrite%))="":�error("You must give this directory a name",1):�
�O   �setsavedir(�readstring(blk%+44)+�leaf(�geticnstring(setw%,i_sdwrite%)))
�  �
�B � 3: �j%=0�!blk%�4:blk2%!j%=blk%!j%:�:a$=�readstring(blk%+44)
�  �blk%!24=i_sddrop% �
�C   �filetype(a$)<>2�error("Only directories allowed here",1):�
�   �setsavedir(a$)
�  �
�2   �load_file(�readstring(blk%+44),blk%!40) �
�E    blk2%!12=1:blk2%!16=4:ș "Wimp_SendMessage",19,blk2%,blk2%!20
�   �
�  �
��
��
�
���savesetup(f$)
�� j%
��icns_intiger
�K� �f$,".")=0 �error("To save, drag the icon to a directory viewer",0):�
�
X=� f$
�� �
�A��:� �:�error(�$+" (Internal error code "+Þ+")"+�0,�):�#X:�
��#X,9:�#X,9:�#X,0:�#X,0
��#X,"TableA";:�#X,0
�O�#X,A%,B%,C%,D%,E%,G%,H%,I%,J%,K%,L%,M%,N%,O%,P%,Q%,R%,S%,T%,U%,V%,W%,X%,Z%
�� PRINT#X,start%
��#X,�findvolume
�� PRINT#X,FNfindtaskdiff
��#X,�findmode
�� �
��#X
��"SETTYPE "+f$+" ae8"
�E�puticnstring(setw%,i_sswrite%,f$):�"Set TableA$SaveGamePath "+f$
�!ș "Wimp_SetCaretPosition",-1
��
�
�ݤload_file(f$,t%)
�2�t%<>&AE8 �error("Not a saved-game file",0):=�
�!ș "Wimp_SetCaretPosition",-1
�
X=� f$
�� �
�B��:� �:�error(�$+" (Internal error code "+Þ+")"+�0,�):�#X:=�
�.id%=�#X+((�#X)<<8)+((�#X)<<16)+((�#X)<<24)
�?�j%=0�11:blk%?j%=�#X:�:blk%?12=0:creator$=�readstring(blk%)
�g�id%<>&909 �error("I do not understand this file as it belongs to '"+creator$+"'."+�(id%),0):�#X:=�
�G� xxxxx value 13 needs changing dep. on applic name (13=4+TableA+1)
�
�#X=11
�O�#X,A%,B%,C%,D%,E%,G%,H%,I%,J%,K%,L%,M%,N%,O%,P%,Q%,R%,S%,T%,U%,V%,W%,X%,Z%
�$� INPUT#X,start%:PROCsetstart(0)
�#�#X,volume%:�setvolume(volume%)
�$� INPUT#X,f%:PROCsettaskdiff(f%)
�&�#X,f%:� � �iscgaonly:�setmode(f%)
�� �
��#X
�N� PROCputicnstring(setw%,i_sswrite%,f$):OSCLI"Set TableA$SaveGamePath "+f$
�)prelink_flag%=0:*Set TableA$PreLink 0
��intiger_icns
�=�
�
�ݤfindmode
�� �iscgaonly �:=0
�!�isselected(setw%,i_cga%):=0
�=1
�
�ݤfindtaskdiff
��isselected(setw%,13):=0
��isselected(setw%,14):=1
=2

ݤfindvolume
&�isselected(setw%,i_sound%(0)):=0
&�isselected(setw%,i_sound%(1)):=1
=2

ݤfindcontcomm
�isselected(setw%,39):=0
	=1


ݤcheckfont(a$,A%,B%)
� �

� � �:=0
)ș "Font_FindFont",,a$,A%,B%,0,0 � h%
ș "Font_LoseFont",h%:� �
=�

��startgame
�icns_intiger
A�M%=0:�error("You must select activities or adventures.",0):�
<�Z%=0:�error("You must select the activity length.",0):�
8�O%=0:�error("You must select the games level.",0):�
<�R%=0 � M%=1:�error("You must select an adventure.",0):�
��((X% � 15)=0 � (X% � 240)=0 � (X% � 3840)=0 � (X% � 61440)=0) � M%=2:�error("You must select an activity or NO ACTIVITY in each column.",0):�
.� intro                                  |
	P%=P%
*� adventure type  1 - 20 - 40 - 60 etc
Q%=(R%-1)*20
� R%=1 Q%=1
� R%>6 Q%=R%+(201-7)
� set activity list to 1st
 X%=X%+65536
!� select which tables test
"L%=�(2):J%=�(2)
#+� set up main tables test numbers in N%
$N%=0
%�f%=0 � 12
&;  �(U% � (1<<f%))=(1<<f%) firstn%(f%)=1 � firstn%(f%)=0
'�
(�f%=0 � 12
)=  �(W% � (1<<f%))=(1<<f%) secondn%(f%)=1 � secondn%(f%)=0
*�
+secn%=0:firn%=0
,�f%=1�12
-  �secondn%(f%)=1:secn%+=1
.�
/�f%=1�12
0  �firstn%(f%)=1:firn%+=1
1�
2P�firn%>secn% main%=secn%:�f%=0 � 12:firstn%(f%)=secondn%(f%):� � main%=firn%
3�main%>3 �
4    N%=4<<24
5�
6    N%=main%<<24
7    loc%=0
8    �f%=1 � 12
99      �firstn%(f%)=1:N%=(N% � (f%<<loc%)):loc%=loc%+8
:	    �
;�
<G%=0
=
T%=0:I%=0
>.� ***************************************|
?�� (fact1%=1 � firstn%(0)=1) � (fact2%=1 � secondn%(0)=1):�error("You must have at least one number (Not Zero) selected from both factor columns.",0):�
@m� fact1%=0 � fact2%=0 :�error("You must have at least one number selected from both factor columns.",0):�
Am� fact1%+fact2%<4 :�error("You must have at least four numbers selected from either factor columns.",0):�
BQ� X%=69905 � M%=2:�error("You must have at least one activity selected.",0):�
C8ș "Font_ReadFontMax" � fm%,fm1%,fm2%,fm3%,fm4%,fm5%
DC�fm2%<57600 ș "Font_SetFontMax",fm%,fm1%,57600,57600,fm4%,fm5%
E3ș "OS_Byte",135 � ,,a%:�"Set TableA$Mode "+�a%
F7�"Set TableA$Save "+�geticnstring(setw%,i_sdwrite%)
G
H%=mc%
H	K%=H%
IV%=1
J$a$=�readsysvar("TableA$EntryPt")
Kh%=0
L�Y%=0 �
M  *ADFS
N  *MOUNT 0
O1  ș "XOS_Find",&40,"$.!Tables.Pt1.link" � h%
P  � PROCerror(STR$(h%),0)
QD  �h%>255 � h%=0:�error("Please place disk One in drive 0.",1):�
R
  �#h%
S�
TY�checkfont("Tabloid.medium",320,360)=� �error("Font:'Tabloid.Medium' not found",0):�
U� �iscgaonly �
Vr  V%=0:ș "Wimp_SetMode",15:�(�readvduvar(150)/1024)<160 �error("Not enough memory to change screen mode",1):�
W�
X � �isvga �
Y  �"Set TableA$Vga 1"
Zr  V%=1:ș "Wimp_SetMode",28:�(�readvduvar(150)/1024)<300 �error("Not enough memory to change screen mode",1):�
[ �
\  �"Set TableA$Vga 0"
]r  V%=0:ș "Wimp_SetMode",15:�(�readvduvar(150)/1024)<160 �error("Not enough memory to change screen mode",1):�
^ �
_�
`"ș "Wimp_CloseDown",,&4B534154
a�savesound
bvolume%=�findvolume
cȎ volume% �
d � 0:ș "Sound_Volume",1
e3 � 1,2,3:ș "Sound_Volume",127-(16*(3-volume%))
f�
g�=oldhimem%
h� �iscgaonly �
i�12
j�
k�isvga:�27:�:�12
l�
m/� scale% 16,swap%(20,2),input_disk_name% 32
nvga%=V%
ointro$="no"
p;�a$,"fromstartup"):�get_fonts:�get_sounds:intro$="yes"
q"�"Set TableA$EntryPt fromprog"
rmemtop%=&7AF00
sA%=memtop%:�=A%
t$A%=1:�"<TableA$Dir>.Pt1.prelink"
u�
v
w��get_sounds
x� open a Packsound file
y-ș &46181,F%,"<TableA$Dir>.SPackFile",230
z� Ensure sounds
{ș &46184,F%,"aliensnear"
|ș &46184,F%,"cart2"
}ș &46184,F%,"clang2"
~ș &46184,F%,"computer1"
ș &46184,F%,"explode3"
�ș &46184,F%,"explode4"
�ș &46184,F%,"fire!"
�ș &46184,F%,"fire_bubb2"
�ș &46184,F%,"growl2"
�ș &46184,F%,"inside_ufo"
�ș &46184,F%,"invading2"
�ș &46184,F%,"laser_door"
�ș &46184,F%,"ok2"
�ș &46184,F%,"robots"
�ș &46184,F%,"saturn5"
�ș &46184,F%,"scifi3"
�ș &46184,F%,"wind"
�ș &46184,F%,"wrong2"
�ș &46184,F%,"arrr"
�ș &46184,F%,"plop"
�ș &46184,F%,"clang_lock"
�ș &46184,F%,"fire3"
�ș &46184,F%,"crack2"
�ș &46184,F%,"aaarh2"
��
�
���get_fonts
�*FX112,2
�S�pri(0,500,1,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.,'!?-:()+=")
�*FX112,1
��
�
���pri(x%,y%,si%,a$)
�:ș"Font_FindFont",,"TABLOID.MEDIUM",320,360,0,0 � han%
�#ș"Font_SetFontColours",0,0,1,2
��0,0,0,0,0,0,0,0
�ș"Font_Paint",,a$,16,x%,y%
�ș"Font_LoseFont",han%
��
�
�
��palette
��19,1,24,136,136,136
��p%,r%,g%,b%
��+7
��p%=0�15
��r%,g%,b%:�p%,r%,g%,b%
��
��19,1,24,0,0,0;0;
��
�
�/� 255,255,255,187,187,187,119,119,119,0,0,0
�,� 255,255,0,0,50,255,187,187,187,0,153,0
�+� 224,224,224,164,164,164,0,0,0,255,0,0
�'� 136,102,0,0,204,0,0,153,0,0,119,0
�
00000000  0d 00 00 3b f4 ff 41 44  46 53 3a 3a 48 61 72 64  |...;..ADFS::Hard|
00000010  44 69 73 63 34 2e 24 2e  43 55 52 52 5f 4e 45 57  |Disc4.$.CURR_NEW|
00000020  2e 44 45 4d 4f 50 52 4f  47 2e 21 54 61 62 6c 65  |.DEMOPROG.!Table|
00000030  73 2e 21 52 75 6e 69 6d  61 67 65 0d 00 01 21 6f  |s.!Runimage...!o|
00000040  6c 64 68 69 6d 65 6d 25  3d 93 3a d3 3d 26 31 32  |ldhimem%=.:.=&12|
00000050  41 30 30 2b 28 31 30 32  34 2a 35 29 0d 00 02 0f  |A00+(1024*5)....|
00000060  f2 73 6f 72 74 6d 65 6d  6f 72 79 0d 00 03 0d f2  |.sortmemory.....|
00000070  69 6e 69 74 77 69 6d 70  0d 00 04 0d f2 69 6e 69  |initwimp.....ini|
00000080  74 76 61 72 73 0d 00 05  33 e7 20 a4 72 65 61 64  |tvars...3. .read|
00000090  73 79 73 76 61 72 28 22  54 61 62 6c 65 41 24 45  |sysvar("TableA$E|
000000a0  6e 74 72 79 50 74 22 29  3d 22 66 72 6f 6d 73 74  |ntryPt")="fromst|
000000b0  61 72 74 75 70 22 20 8c  0d 00 06 1b 20 20 e7 20  |artup" .....  . |
000000c0  ac 20 a4 61 6c 72 65 61  64 79 72 75 6e 6e 69 6e  |. .alreadyrunnin|
000000d0  67 20 8c 0d 00 07 21 20  20 20 20 ff 22 53 65 74  |g ....!    ."Set|
000000e0  20 54 61 62 6c 65 41 24  69 73 72 75 6e 6e 69 6e  | TableA$isrunnin|
000000f0  67 20 31 22 0d 00 08 07  20 20 cc 0d 00 09 54 20  |g 1"....  ....T |
00000100  20 20 20 f2 65 72 72 6f  72 28 22 54 61 62 6c 65  |   .error("Table|
00000110  20 41 6c 69 65 6e 73 20  69 73 20 61 6c 72 65 61  | Aliens is alrea|
00000120  64 79 20 72 75 6e 6e 69  6e 67 22 2c 30 29 3a c8  |dy running",0):.|
00000130  99 20 22 57 69 6d 70 5f  43 6c 6f 73 65 44 6f 77  |. "Wimp_CloseDow|
00000140  6e 22 2c 2c 26 34 42 35  33 34 31 35 34 3a e0 0d  |n",,&4B534154:..|
00000150  00 0a 07 20 20 cd 0d 00  0b 16 20 20 f2 69 6e 69  |...  .....  .ini|
00000160  74 66 72 6f 6d 73 74 61  72 74 75 70 0d 00 0c 05  |tfromstartup....|
00000170  cc 0d 00 0d 33 20 20 c8  99 20 22 57 69 6d 70 5f  |....3  .. "Wimp_|
00000180  53 65 74 4d 6f 64 65 22  2c bb a4 72 65 61 64 73  |SetMode",..reads|
00000190  79 73 76 61 72 28 22 54  61 62 6c 65 41 24 4d 6f  |ysvar("TableA$Mo|
000001a0  64 65 22 29 0d 00 0e 14  20 20 f4 20 50 52 4f 43  |de")....  . PROC|
000001b0  73 65 74 73 6f 75 6e 64  0d 00 0f 1b 20 20 c8 99  |setsound....  ..|
000001c0  20 22 53 6f 75 6e 64 5f  56 6f 6c 75 6d 65 22 2c  | "Sound_Volume",|
000001d0  31 32 37 0d 00 10 05 cd  0d 00 11 14 c8 99 22 48  |127..........."H|
000001e0  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 0d 00 12 0f  |ourglass_On"....|
000001f0  f2 6c 6f 61 64 5f 69 63  6f 6e 73 0d 00 13 12 f2  |.load_icons.....|
00000200  63 72 65 61 74 65 77 69  6e 64 6f 77 73 0d 00 14  |createwindows...|
00000210  10 f2 69 6e 69 74 77 69  6e 64 6f 77 73 0d 00 15  |..initwindows...|
00000220  15 c8 99 22 48 6f 75 72  67 6c 61 73 73 5f 4f 66  |..."Hourglass_Of|
00000230  66 22 0d 00 16 12 f2 63  72 65 61 74 65 62 61 72  |f".....createbar|
00000240  69 63 6f 6e 0d 00 17 11  f2 69 6e 74 69 67 65 72  |icon.....intiger|
00000250  5f 69 63 6e 73 0d 00 18  37 ee 20 85 20 f2 65 72  |_icns...7. . .er|
00000260  72 6f 72 28 f6 24 2b 22  20 28 49 6e 74 65 72 6e  |ror(.$+" (Intern|
00000270  61 6c 20 65 72 72 6f 72  20 63 6f 64 65 20 22 2b  |al error code "+|
00000280  c3 9e 2b 22 29 22 2b bd  30 2c 9f 29 0d 00 19 17  |..+")"+.0,.)....|
00000290  f5 20 f2 70 6f 6c 6c 6c  6f 6f 70 3a fd 20 71 75  |. .pollloop:. qu|
000002a0  69 74 25 0d 00 1a 21 f4  20 6b 69 6c 6c 20 73 6f  |it%...!. kill so|
000002b0  75 6e 64 20 63 61 63 68  65 20 61 6e 64 20 6d 6f  |und cache and mo|
000002c0  64 75 6c 65 0d 00 1b 10  c8 99 20 26 34 36 31 38  |dule...... &4618|
000002d0  32 2c 46 25 0d 00 1c 10  c8 99 20 26 34 36 31 38  |2,F%...... &4618|
000002e0  38 2c 46 25 0d 00 1d 1c  2a 52 4d 6b 69 6c 6c 20  |8,F%....*RMkill |
000002f0  50 61 63 6b 53 6f 75 6e  64 25 74 61 6c 69 65 6e  |PackSound%talien|
00000300  0d 00 1e 15 2a 52 4d 6b  69 6c 6c 20 50 61 63 6b  |....*RMkill Pack|
00000310  53 6f 75 6e 64 0d 00 1f  12 f4 20 50 52 4f 43 73  |Sound..... PROCs|
00000320  65 74 73 6f 75 6e 64 0d  00 20 22 c8 99 20 22 57  |etsound.. ".. "W|
00000330  69 6d 70 5f 43 6c 6f 73  65 44 6f 77 6e 22 2c 2c  |imp_CloseDown",,|
00000340  26 34 42 35 33 34 31 35  34 0d 00 21 1d ff 22 53  |&4B534154..!.."S|
00000350  65 74 20 54 61 62 6c 65  41 24 69 73 72 75 6e 6e  |et TableA$isrunn|
00000360  69 6e 67 20 30 22 0d 00  22 09 2a 51 55 49 54 0d  |ing 0"..".*QUIT.|
00000370  00 23 05 e0 0d 00 24 04  0d 00 25 14 dd a4 61 6c  |.#....$...%...al|
00000380  72 65 61 64 79 72 75 6e  6e 69 6e 67 0d 00 26 08  |readyrunning..&.|
00000390  ea 20 41 25 0d 00 27 07  ea 20 85 0d 00 28 0e ee  |. A%..'.. ...(..|
000003a0  85 ea 3a f7 20 85 3a 3d  30 0d 00 29 3d c8 99 20  |..:. .:=0..)=.. |
000003b0  22 4f 53 5f 52 65 61 64  56 61 72 56 61 6c 22 2c  |"OS_ReadVarVal",|
000003c0  22 54 61 62 6c 65 41 24  69 73 72 75 6e 6e 69 6e  |"TableA$isrunnin|
000003d0  67 22 2c 62 6c 6b 25 2c  32 35 36 2c 30 2c 30 20  |g",blk%,256,0,0 |
000003e0  b8 20 2c 2c 61 25 0d 00  2a 25 61 24 3d 22 22 3a  |. ,,a%..*%a$="":|
000003f0  e3 41 25 3d 30 b8 61 25  2d 31 3a 61 24 2b 3d bd  |.A%=0.a%-1:a$+=.|
00000400  28 62 6c 6b 25 3f 41 25  29 3a ed 0d 00 2b 07 f7  |(blk%?A%):...+..|
00000410  20 85 0d 00 2c 0f e7 61  24 3d 22 31 22 3a 3d 2d  | ...,..a$="1":=-|
00000420  31 0d 00 2d 06 3d 30 0d  00 2e 04 0d 00 2f 15 dd  |1..-.=0....../..|
00000430  f2 69 6e 69 74 66 72 6f  6d 73 74 61 72 74 75 70  |.initfromstartup|
00000440  0d 00 30 0b 71 75 69 74  25 3d a3 0d 00 31 08 ea  |..0.quit%=...1..|
00000450  20 6a 25 0d 00 32 1f 21  75 73 65 72 77 69 6d 70  | j%..2.!userwimp|
00000460  73 70 72 73 25 3d 77 69  6d 70 73 70 72 73 69 7a  |sprs%=wimpsprsiz|
00000470  65 25 0d 00 33 16 75 73  65 72 77 69 6d 70 73 70  |e%..3.userwimpsp|
00000480  72 73 25 21 38 3d 31 36  0d 00 34 27 c8 99 20 22  |rs%!8=16..4'.. "|
00000490  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 30  |OS_SpriteOp",&10|
000004a0  39 2c 75 73 65 72 77 69  6d 70 73 70 72 73 25 0d  |9,userwimpsprs%.|
000004b0  00 35 3e c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |.5>.. "OS_Sprite|
000004c0  4f 70 22 2c 26 31 30 41  2c 75 73 65 72 77 69 6d  |Op",&10A,userwim|
000004d0  70 73 70 72 73 25 2c 22  3c 54 61 62 6c 65 41 24  |psprs%,"<TableA$|
000004e0  44 69 72 3e 2e 53 70 72  69 74 65 73 22 0d 00 36  |Dir>.Sprites"..6|
000004f0  0d 77 69 6e 63 74 72 25  3d 31 0d 00 37 34 c8 99  |.winctr%=1..74..|
00000500  20 22 57 69 6d 70 5f 4f  70 65 6e 54 65 6d 70 6c  | "Wimp_OpenTempl|
00000510  61 74 65 22 2c 2c 22 3c  54 61 62 6c 65 41 24 44  |ate",,"<TableA$D|
00000520  69 72 3e 2e 54 65 6d 70  6c 61 74 65 73 22 0d 00  |ir>.Templates"..|
00000530  38 1b f2 6c 6f 61 64 5f  74 65 6d 70 6c 61 74 65  |8..load_template|
00000540  28 22 53 65 74 75 70 22  29 0d 00 39 1e f2 6c 6f  |("Setup")..9..lo|
00000550  61 64 5f 74 65 6d 70 6c  61 74 65 28 22 70 72 6f  |ad_template("pro|
00000560  67 69 6e 66 6f 22 29 0d  00 3a 15 69 63 24 3d c3  |ginfo")..:.ic$=.|
00000570  7e 28 69 63 6f 6e 64 65  66 73 25 29 0d 00 3b 19  |~(icondefs%)..;.|
00000580  ff 22 4c 4f 41 44 20 69  63 6f 6e 64 65 66 73 20  |."LOAD icondefs |
00000590  22 2b 69 63 24 0d 00 3c  3e 55 25 3d 25 31 30 30  |"+ic$..<>U%=%100|
000005a0  30 30 3a 57 25 3d 25 31  31 31 31 31 31 31 31 31  |00:W%=%111111111|
000005b0  31 31 3a 52 25 3d 32 3a  5a 25 3d 32 3a 4f 25 3d  |11:R%=2:Z%=2:O%=|
000005c0  33 3a 4d 25 3d 31 3a 58  25 3d 34 33 37 30 3a 50  |3:M%=1:X%=4370:P|
000005d0  25 3d 31 0d 00 3d 1b c8  99 20 26 34 36 31 38 39  |%=1..=... &46189|
000005e0  2c 22 74 61 6c 69 65 6e  22 20 b8 20 46 25 0d 00  |,"talien" . F%..|
000005f0  3e 0e f2 73 61 76 65 73  6f 75 6e 64 0d 00 3f 31  |>..savesound..?1|
00000600  61 24 3d a4 63 6f 6e 76  65 72 74 74 6f 6c 6f 77  |a$=.converttolow|
00000610  65 72 28 a4 72 65 61 64  73 79 73 76 61 72 28 22  |er(.readsysvar("|
00000620  54 61 62 6c 65 41 24 44  69 72 22 29 29 0d 00 40  |TableA$Dir"))..@|
00000630  2c e7 a7 61 24 2c 22 73  74 61 72 74 75 70 2e 24  |,..a$,"startup.$|
00000640  2e 21 74 61 62 6c 65 73  22 29 3c 3e 30 3a 59 25  |.!tables")<>0:Y%|
00000650  3d 30 3a 8b 3a 59 25 3d  31 0d 00 41 05 e1 0d 00  |=0:.:Y%=1..A....|
00000660  42 04 0d 00 43 10 dd f2  6c 6f 61 64 5f 69 63 6f  |B...C...load_ico|
00000670  6e 73 0d 00 44 26 69 5f  73 73 77 72 69 74 65 25  |ns..D&i_sswrite%|
00000680  3d a4 6c 6f 6f 6b 69 63  6f 6e 28 22 53 41 56 45  |=.lookicon("SAVE|
00000690  47 57 52 49 54 45 22 29  0d 00 45 10 69 5f 73 73  |GWRITE")..E.i_ss|
000006a0  69 63 6f 6e 25 3d 35 38  0d 00 46 20 69 5f 73 73  |icon%=58..F i_ss|
000006b0  6f 6b 25 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 53  |ok%=.lookicon("S|
000006c0  41 56 45 47 4f 4b 22 29  0d 00 47 26 69 5f 73 64  |AVEGOK")..G&i_sd|
000006d0  77 72 69 74 65 25 3d a4  6c 6f 6f 6b 69 63 6f 6e  |write%=.lookicon|
000006e0  28 22 53 41 56 45 41 57  52 49 54 45 22 29 0d 00  |("SAVEAWRITE")..|
000006f0  48 0f 69 5f 73 64 64 69  72 25 3d 32 33 0d 00 49  |H.i_sddir%=23..I|
00000700  20 69 5f 73 64 6f 6b 25  3d a4 6c 6f 6f 6b 69 63  | i_sdok%=.lookic|
00000710  6f 6e 28 22 53 41 56 45  41 4f 4b 22 29 0d 00 4a  |on("SAVEAOK")..J|
00000720  12 69 5f 75 6e 61 76 61  69 6c 25 3d 31 32 39 0d  |.i_unavail%=129.|
00000730  00 4b 10 69 5f 73 64 64  72 6f 70 25 3d 38 37 0d  |.K.i_sddrop%=87.|
00000740  00 4c 1c 69 5f 66 61 25  28 30 29 3d a4 6c 6f 6f  |.L.i_fa%(0)=.loo|
00000750  6b 69 63 6f 6e 28 22 41  30 22 29 0d 00 4d 1c 69  |kicon("A0")..M.i|
00000760  5f 66 61 25 28 31 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fa%(1)=.lookico|
00000770  6e 28 22 41 31 22 29 0d  00 4e 1c 69 5f 66 61 25  |n("A1")..N.i_fa%|
00000780  28 32 29 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 41  |(2)=.lookicon("A|
00000790  32 22 29 0d 00 4f 1c 69  5f 66 61 25 28 33 29 3d  |2")..O.i_fa%(3)=|
000007a0  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 41 33 22 29 0d  |.lookicon("A3").|
000007b0  00 50 1c 69 5f 66 61 25  28 34 29 3d a4 6c 6f 6f  |.P.i_fa%(4)=.loo|
000007c0  6b 69 63 6f 6e 28 22 41  34 22 29 0d 00 51 1c 69  |kicon("A4")..Q.i|
000007d0  5f 66 61 25 28 35 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fa%(5)=.lookico|
000007e0  6e 28 22 41 35 22 29 0d  00 52 1c 69 5f 66 61 25  |n("A5")..R.i_fa%|
000007f0  28 36 29 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 41  |(6)=.lookicon("A|
00000800  36 22 29 0d 00 53 1c 69  5f 66 61 25 28 37 29 3d  |6")..S.i_fa%(7)=|
00000810  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 41 37 22 29 0d  |.lookicon("A7").|
00000820  00 54 1c 69 5f 66 61 25  28 38 29 3d a4 6c 6f 6f  |.T.i_fa%(8)=.loo|
00000830  6b 69 63 6f 6e 28 22 41  38 22 29 0d 00 55 1c 69  |kicon("A8")..U.i|
00000840  5f 66 61 25 28 39 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fa%(9)=.lookico|
00000850  6e 28 22 41 39 22 29 0d  00 56 1e 69 5f 66 61 25  |n("A9")..V.i_fa%|
00000860  28 31 30 29 3d a4 6c 6f  6f 6b 69 63 6f 6e 28 22  |(10)=.lookicon("|
00000870  41 31 30 22 29 0d 00 57  1e 69 5f 66 61 25 28 31  |A10")..W.i_fa%(1|
00000880  31 29 3d a4 6c 6f 6f 6b  69 63 6f 6e 28 22 41 31  |1)=.lookicon("A1|
00000890  31 22 29 0d 00 58 1e 69  5f 66 61 25 28 31 32 29  |1")..X.i_fa%(12)|
000008a0  3d a4 6c 6f 6f 6b 69 63  6f 6e 28 22 41 31 32 22  |=.lookicon("A12"|
000008b0  29 0d 00 59 1e 69 5f 66  61 25 28 31 33 29 3d a4  |)..Y.i_fa%(13)=.|
000008c0  6c 6f 6f 6b 69 63 6f 6e  28 22 54 45 31 22 29 0d  |lookicon("TE1").|
000008d0  00 5a 1e 69 5f 66 61 25  28 31 34 29 3d a4 6c 6f  |.Z.i_fa%(14)=.lo|
000008e0  6f 6b 69 63 6f 6e 28 22  54 45 32 22 29 0d 00 5b  |okicon("TE2")..[|
000008f0  1e 69 5f 66 61 25 28 31  35 29 3d a4 6c 6f 6f 6b  |.i_fa%(15)=.look|
00000900  69 63 6f 6e 28 22 54 45  33 22 29 0d 00 5c 1c 69  |icon("TE3")..\.i|
00000910  5f 66 62 25 28 30 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fb%(0)=.lookico|
00000920  6e 28 22 42 30 22 29 0d  00 5d 1c 69 5f 66 62 25  |n("B0")..].i_fb%|
00000930  28 31 29 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 42  |(1)=.lookicon("B|
00000940  31 22 29 0d 00 5e 1c 69  5f 66 62 25 28 32 29 3d  |1")..^.i_fb%(2)=|
00000950  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 42 32 22 29 0d  |.lookicon("B2").|
00000960  00 5f 1c 69 5f 66 62 25  28 33 29 3d a4 6c 6f 6f  |._.i_fb%(3)=.loo|
00000970  6b 69 63 6f 6e 28 22 42  33 22 29 0d 00 60 1c 69  |kicon("B3")..`.i|
00000980  5f 66 62 25 28 34 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fb%(4)=.lookico|
00000990  6e 28 22 42 34 22 29 0d  00 61 1c 69 5f 66 62 25  |n("B4")..a.i_fb%|
000009a0  28 35 29 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 42  |(5)=.lookicon("B|
000009b0  35 22 29 0d 00 62 1c 69  5f 66 62 25 28 36 29 3d  |5")..b.i_fb%(6)=|
000009c0  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 42 36 22 29 0d  |.lookicon("B6").|
000009d0  00 63 1c 69 5f 66 62 25  28 37 29 3d a4 6c 6f 6f  |.c.i_fb%(7)=.loo|
000009e0  6b 69 63 6f 6e 28 22 42  37 22 29 0d 00 64 1c 69  |kicon("B7")..d.i|
000009f0  5f 66 62 25 28 38 29 3d  a4 6c 6f 6f 6b 69 63 6f  |_fb%(8)=.lookico|
00000a00  6e 28 22 42 38 22 29 0d  00 65 1c 69 5f 66 62 25  |n("B8")..e.i_fb%|
00000a10  28 39 29 3d a4 6c 6f 6f  6b 69 63 6f 6e 28 22 42  |(9)=.lookicon("B|
00000a20  39 22 29 0d 00 66 1e 69  5f 66 62 25 28 31 30 29  |9")..f.i_fb%(10)|
00000a30  3d a4 6c 6f 6f 6b 69 63  6f 6e 28 22 42 31 30 22  |=.lookicon("B10"|
00000a40  29 0d 00 67 1e 69 5f 66  62 25 28 31 31 29 3d a4  |)..g.i_fb%(11)=.|
00000a50  6c 6f 6f 6b 69 63 6f 6e  28 22 42 31 31 22 29 0d  |lookicon("B11").|
00000a60  00 68 1e 69 5f 66 62 25  28 31 32 29 3d a4 6c 6f  |.h.i_fb%(12)=.lo|
00000a70  6f 6b 69 63 6f 6e 28 22  42 31 32 22 29 0d 00 69  |okicon("B12")..i|
00000a80  1d 69 5f 66 62 25 28 31  33 29 3d a4 6c 6f 6f 6b  |.i_fb%(13)=.look|
00000a90  69 63 6f 6e 28 22 43 31  22 29 0d 00 6a 0d e3 66  |icon("C1")..j..f|
00000aa0  25 3d 31 20 b8 20 35 0d  00 6b 24 20 69 5f 61 67  |%=1 . 5..k$ i_ag|
00000ab0  25 28 66 25 29 3d a4 6c  6f 6f 6b 69 63 6f 6e 28  |%(f%)=.lookicon(|
00000ac0  22 47 4c 22 2b c3 28 66  25 29 29 0d 00 6c 05 ed  |"GL"+.(f%))..l..|
00000ad0  0d 00 6d 0e e3 66 25 3d  31 20 b8 20 35 35 0d 00  |..m..f%=1 . 55..|
00000ae0  6e 27 20 69 5f 61 67 25  28 66 25 2b 31 30 29 3d  |n' i_ag%(f%+10)=|
00000af0  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 41 44 22 2b c3  |.lookicon("AD"+.|
00000b00  28 66 25 29 29 0d 00 6f  05 ed 0d 00 70 1b 69 5f  |(f%))..o....p.i_|
00000b10  76 67 61 25 3d a4 6c 6f  6f 6b 69 63 6f 6e 28 22  |vga%=.lookicon("|
00000b20  56 47 41 22 29 0d 00 71  1b 69 5f 63 67 61 25 3d  |VGA")..q.i_cga%=|
00000b30  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 43 47 41 22 29  |.lookicon("CGA")|
00000b40  0d 00 72 20 69 5f 73 6f  75 6e 64 25 28 30 29 3d  |..r i_sound%(0)=|
00000b50  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 4f 46 46 22 29  |.lookicon("OFF")|
00000b60  0d 00 73 22 69 5f 73 6f  75 6e 64 25 28 31 29 3d  |..s"i_sound%(1)=|
00000b70  a4 6c 6f 6f 6b 69 63 6f  6e 28 22 51 55 49 45 54  |.lookicon("QUIET|
00000b80  22 29 0d 00 74 23 69 5f  73 6f 75 6e 64 25 28 32  |")..t#i_sound%(2|
00000b90  29 3d a4 6c 6f 6f 6b 69  63 6f 6e 28 22 4e 4f 52  |)=.lookicon("NOR|
00000ba0  4d 41 4c 22 29 0d 00 75  16 f4 20 50 52 4f 43 69  |MAL")..u.. PROCi|
00000bb0  63 6e 73 5f 69 6e 74 69  67 65 72 0d 00 76 05 e1  |cns_intiger..v..|
00000bc0  0d 00 77 04 0d 00 78 19  dd a4 6c 6f 6f 6b 69 63  |..w...x...lookic|
00000bd0  6f 6e 28 69 63 6f 6e 6e  61 6d 65 24 29 0d 00 79  |on(iconname$)..y|
00000be0  40 f4 20 23 64 65 66 69  6e 65 20 49 5f 53 45 54  |@. #define I_SET|
00000bf0  55 50 5f 53 41 56 45 47  57 52 49 54 45 20 34 20  |UP_SAVEGWRITE 4 |
00000c00  20 69 65 20 2a 2a 2a 73  65 74 20 69 73 20 35 20  | ie ***set is 5 |
00000c10  63 68 61 72 61 63 74 65  72 73 2a 2a 2a 0d 00 7a  |characters***..z|
00000c20  19 73 74 61 72 74 5f 6c  6f 6f 6b 25 3d 69 63 6f  |.start_look%=ico|
00000c30  6e 64 65 66 73 25 0d 00  7b 05 f5 0d 00 7c 12 20  |ndefs%..{....|. |
00000c40  20 20 61 24 3d 22 22 3a  62 24 3d 22 22 0d 00 7d  |  a$="":b$=""..}|
00000c50  21 20 20 20 73 74 61 72  74 5f 6c 6f 6f 6b 25 3d  |!   start_look%=|
00000c60  73 74 61 72 74 5f 6c 6f  6f 6b 25 2b 31 36 0d 00  |start_look%+16..|
00000c70  7e 08 20 20 20 f5 0d 00  7f 1e 20 20 20 20 20 61  |~.   .....     a|
00000c80  24 3d 61 24 2b bd 28 3f  73 74 61 72 74 5f 6c 6f  |$=a$+.(?start_lo|
00000c90  6f 6b 25 29 0d 00 80 22  20 20 20 20 20 73 74 61  |ok%)..."     sta|
00000ca0  72 74 5f 6c 6f 6f 6b 25  3d 73 74 61 72 74 5f 6c  |rt_look%=start_l|
00000cb0  6f 6f 6b 25 2b 31 0d 00  81 18 20 20 20 fd 20 3f  |ook%+1....   . ?|
00000cc0  73 74 61 72 74 5f 6c 6f  6f 6b 25 3d 33 32 0d 00  |start_look%=32..|
00000cd0  82 20 20 20 20 73 74 61  72 74 5f 6c 6f 6f 6b 25  |.    start_look%|
00000ce0  3d 73 74 61 72 74 5f 6c  6f 6f 6b 25 2b 31 0d 00  |=start_look%+1..|
00000cf0  83 08 20 20 20 f5 0d 00  84 1e 20 20 20 20 20 62  |..   .....     b|
00000d00  24 3d 62 24 2b bd 28 3f  73 74 61 72 74 5f 6c 6f  |$=b$+.(?start_lo|
00000d10  6f 6b 25 29 0d 00 85 22  20 20 20 20 20 73 74 61  |ok%)..."     sta|
00000d20  72 74 5f 6c 6f 6f 6b 25  3d 73 74 61 72 74 5f 6c  |rt_look%=start_l|
00000d30  6f 6f 6b 25 2b 31 0d 00  86 18 20 20 20 fd 20 3f  |ook%+1....   . ?|
00000d40  73 74 61 72 74 5f 6c 6f  6f 6b 25 3d 31 30 0d 00  |start_look%=10..|
00000d50  87 20 20 20 20 73 74 61  72 74 5f 6c 6f 6f 6b 25  |.    start_look%|
00000d60  3d 73 74 61 72 74 5f 6c  6f 6f 6b 25 2b 31 0d 00  |=start_look%+1..|
00000d70  88 2f fd 20 61 24 3d 69  63 6f 6e 6e 61 6d 65 24  |./. a$=iconname$|
00000d80  20 84 20 73 74 61 72 74  5f 6c 6f 6f 6b 25 3e 69  | . start_look%>i|
00000d90  63 6f 6e 64 65 66 73 25  2b 32 33 35 38 0d 00 89  |condefs%+2358...|
00000da0  0a 3d bb 28 62 24 29 0d  00 8a 04 0d 00 8b 10 dd  |.=.(b$).........|
00000db0  f2 73 6f 72 74 6d 65 6d  6f 72 79 0d 00 8c 1d 69  |.sortmemory....i|
00000dc0  6e 64 62 61 73 65 25 3d  93 3a 69 70 74 72 25 3d  |ndbase%=.:iptr%=|
00000dd0  69 6e 64 62 61 73 65 25  0d 00 8d 25 74 6f 74 69  |indbase%...%toti|
00000de0  6e 64 73 69 7a 65 25 3d  37 30 30 30 3a 74 6f 74  |ndsize%=7000:tot|
00000df0  77 69 6e 73 69 7a 65 25  3d 38 31 34 30 0d 00 8e  |winsize%=8140...|
00000e00  27 f4 20 74 6f 74 69 6e  64 73 69 7a 65 25 3d 34  |'. totindsize%=4|
00000e10  30 39 36 3a 74 6f 74 77  69 6e 73 69 7a 65 25 3d  |096:totwinsize%=|
00000e20  36 34 30 30 0d 00 8f 30  77 69 6e 62 61 73 65 25  |6400...0winbase%|
00000e30  3d 69 6e 64 62 61 73 65  25 2b 74 6f 74 69 6e 64  |=indbase%+totind|
00000e40  73 69 7a 65 25 3a 77 70  74 72 25 3d 77 69 6e 62  |size%:wptr%=winb|
00000e50  61 73 65 25 0d 00 90 6c  69 6e 64 73 74 61 72 74  |ase%...lindstart|
00000e60  73 25 3d 77 69 6e 62 61  73 65 25 2b 74 6f 74 77  |s%=winbase%+totw|
00000e70  69 6e 73 69 7a 65 25 3a  77 69 6e 73 74 61 72 74  |insize%:winstart|
00000e80  73 25 3d 69 6e 64 73 74  61 72 74 73 25 2b 34 30  |s%=indstarts%+40|
00000e90  3a 75 73 65 72 77 69 6d  70 73 70 72 73 25 3d 77  |:userwimpsprs%=w|
00000ea0  69 6e 73 74 61 72 74 73  25 2b 34 30 3a 77 69 6d  |instarts%+40:wim|
00000eb0  70 73 70 72 73 69 7a 65  25 3d 35 2a 31 30 32 34  |psprsize%=5*1024|
00000ec0  0d 00 91 25 6d 63 25 3d  26 31 36 46 30 30 2b 28  |...%mc%=&16F00+(|
00000ed0  31 30 2a 31 30 32 34 29  3a 70 64 62 73 25 3d 26  |10*1024):pdbs%=&|
00000ee0  34 30 30 30 30 0d 00 92  05 e1 0d 00 93 04 0d 00  |40000...........|
00000ef0  94 0e dd f2 69 6e 69 74  77 69 6d 70 0d 00 95 3d  |....initwimp...=|
00000f00  c8 99 20 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |.. "Wimp_Initial|
00000f10  69 73 65 22 2c 32 30 30  2c 26 34 42 35 33 34 31  |ise",200,&4B5341|
00000f20  35 34 2c 22 54 61 62 6c  65 41 22 20 b8 20 2c 74  |54,"TableA" . ,t|
00000f30  61 73 6b 68 61 6e 64 6c  25 0d 00 96 57 ee 85 20  |askhandl%...W.. |
00000f40  f2 65 72 72 6f 72 28 f6  24 2b 22 20 28 49 6e 74  |.error(.$+" (Int|
00000f50  65 72 6e 61 6c 20 65 72  72 6f 72 20 63 6f 64 65  |ernal error code|
00000f60  20 22 2b c3 9e 2b 22 29  22 2b bd 30 2c 9f 29 3a  | "+..+")"+.0,.):|
00000f70  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |.. "Wimp_CloseDo|
00000f80  77 6e 22 2c 2c 26 34 42  35 33 34 31 35 34 3a e0  |wn",,&4B534154:.|
00000f90  0d 00 97 05 e1 0d 00 98  04 0d 00 99 0e dd f2 69  |...............i|
00000fa0  6e 69 74 76 61 72 73 0d  00 9a 65 de 20 62 6c 6b  |nitvars...e. blk|
00000fb0  25 20 32 35 36 2c 65 72  72 62 6c 6b 25 20 32 30  |% 256,errblk% 20|
00000fc0  30 2c 6d 65 6e 75 25 20  31 30 32 34 2c 62 6c 6b  |0,menu% 1024,blk|
00000fd0  32 25 20 32 35 36 2c 70  64 62 62 75 66 66 25 20  |2% 256,pdbbuff% |
00000fe0  32 35 36 2c 70 61 6c 63  6f 64 65 25 20 39 30 30  |256,palcode% 900|
00000ff0  2c 62 61 72 69 63 6e 25  20 31 32 2c 69 6e 62 25  |,baricn% 12,inb%|
00001000  20 32 30 2c 6f 75 74 62  25 20 32 30 0d 00 9b 3e  | 20,outb% 20...>|
00001010  de 20 69 63 6f 6e 64 65  66 73 25 20 32 33 37 30  |. icondefs% 2370|
00001020  2c 69 5f 66 61 25 28 31  35 29 2c 69 5f 66 62 25  |,i_fa%(15),i_fb%|
00001030  28 31 33 29 2c 69 5f 73  6f 75 6e 64 25 28 33 29  |(13),i_sound%(3)|
00001040  2c 69 5f 61 67 25 28 36  36 29 0d 00 9c 1e de 20  |,i_ag%(66)..... |
00001050  66 69 72 73 74 6e 25 28  31 32 29 2c 73 65 63 6f  |firstn%(12),seco|
00001060  6e 64 6e 25 28 31 32 29  0d 00 9d 28 41 25 3d 69  |ndn%(12)...(A%=i|
00001070  6e 64 62 61 73 65 25 3a  42 25 3d 69 6e 64 62 61  |ndbase%:B%=indba|
00001080  73 65 25 2b 31 30 32 34  3a f4 20 70 61 75 6c 73  |se%+1024:. pauls|
00001090  0d 00 9e 0b 71 75 69 74  25 3d a3 0d 00 9f 34 21  |....quit%=....4!|
000010a0  69 6e 62 25 3d 34 3a 69  6e 62 25 21 34 3d 35 3a  |inb%=4:inb%!4=5:|
000010b0  69 6e 62 25 21 38 3d 31  31 3a 69 6e 62 25 21 31  |inb%!8=11:inb%!1|
000010c0  32 3d 31 32 3a 69 6e 62  25 21 31 36 3d 2d 31 0d  |2=12:inb%!16=-1.|
000010d0  00 a0 0e 73 6e 64 6d 61  78 25 3d 31 35 0d 00 a1  |...sndmax%=15...|
000010e0  0c 73 74 61 72 74 25 3d  31 0d 00 a2 12 f2 67 65  |.start%=1.....ge|
000010f0  74 73 63 72 65 65 6e 73  69 7a 65 0d 00 a3 05 e1  |tscreensize.....|
00001100  0d 00 a4 04 0d 00 a5 13  dd f2 67 65 74 73 63 72  |..........getscr|
00001110  65 65 6e 73 69 7a 65 0d  00 a6 26 c8 99 22 4f 53  |eensize...&.."OS|
00001120  5f 52 65 61 64 56 64 75  56 61 72 69 61 62 6c 65  |_ReadVduVariable|
00001130  73 22 2c 69 6e 62 25 2c  6f 75 74 62 25 0d 00 a7  |s",inb%,outb%...|
00001140  4e 78 6d 61 78 65 63 25  3d 28 28 28 6f 75 74 62  |Nxmaxec%=(((outb|
00001150  25 21 38 29 2b 31 29 3c  3c 28 6f 75 74 62 25 21  |%!8)+1)<<(outb%!|
00001160  30 29 29 2d 31 3a 79 6d  61 78 65 63 25 3d 28 28  |0))-1:ymaxec%=((|
00001170  28 6f 75 74 62 25 21 31  32 29 2b 31 29 3c 3c 28  |(outb%!12)+1)<<(|
00001180  6f 75 74 62 25 21 34 29  29 2d 31 0d 00 a8 05 e1  |outb%!4))-1.....|
00001190  0d 00 a9 04 0d 00 aa 18  dd a4 63 6f 6e 76 65 72  |..........conver|
000011a0  74 74 6f 6c 6f 77 65 72  28 61 24 29 0d 00 ab 15  |ttolower(a$)....|
000011b0  ea 20 6c 25 2c 62 24 2c  63 68 25 3a 62 24 3d 22  |. l%,b$,ch%:b$="|
000011c0  22 0d 00 ac 0d e3 6c 25  3d 31 b8 a9 61 24 0d 00  |".....l%=1..a$..|
000011d0  ad 14 63 68 25 3d 97 28  c1 61 24 2c 6c 25 2c 31  |..ch%=.(.a$,l%,1|
000011e0  29 29 0d 00 ae 21 e7 28  63 68 25 3e 26 34 30 29  |))...!.(ch%>&40)|
000011f0  80 28 63 68 25 3c 26 35  42 29 3a 63 68 25 2b 3d  |.(ch%<&5B):ch%+=|
00001200  26 32 30 0d 00 af 0c 62  24 2b 3d bd 63 68 25 0d  |&20....b$+=.ch%.|
00001210  00 b0 05 ed 0d 00 b1 07  3d 62 24 0d 00 b2 04 0d  |........=b$.....|
00001220  00 b3 14 dd a4 72 65 61  64 73 74 72 69 6e 67 28  |.....readstring(|
00001230  70 25 29 0d 00 b4 32 ea  61 24 3a 61 24 3d 22 22  |p%)...2.a$:a$=""|
00001240  3a c8 95 20 a9 61 24 3c  32 35 35 20 80 20 3f 70  |:.. .a$<255 . ?p|
00001250  25 3e 33 31 20 61 24 2b  3d bd 3f 70 25 3a 70 25  |%>31 a$+=.?p%:p%|
00001260  2b 3d 31 3a ce 0d 00 b5  07 3d 61 24 0d 00 b6 04  |+=1:.....=a$....|
00001270  0d 00 b7 14 dd a4 72 65  61 64 73 79 73 76 61 72  |......readsysvar|
00001280  28 61 24 29 0d 00 b8 08  ea 20 41 25 0d 00 b9 4f  |(a$)..... A%...O|
00001290  c8 99 20 22 4f 53 5f 52  65 61 64 56 61 72 56 61  |.. "OS_ReadVarVa|
000012a0  6c 22 2c 61 24 2c 62 6c  6b 25 2c 32 35 36 2c 30  |l",a$,blk%,256,0|
000012b0  2c 30 20 b8 20 2c 2c 61  25 3a 61 24 3d 22 22 3a  |,0 . ,,a%:a$="":|
000012c0  e3 41 25 3d 30 b8 61 25  2d 31 3a 61 24 2b 3d bd  |.A%=0.a%-1:a$+=.|
000012d0  28 62 6c 6b 25 3f 41 25  29 3a ed 0d 00 ba 07 3d  |(blk%?A%):.....=|
000012e0  61 24 0d 00 bb 04 0d 00  bc 14 dd a4 72 65 61 64  |a$..........read|
000012f0  76 64 75 76 61 72 28 61  25 29 0d 00 bd 39 21 62  |vduvar(a%)...9!b|
00001300  6c 6b 25 3d 61 25 3a 62  6c 6b 25 21 34 3d 2d 31  |lk%=a%:blk%!4=-1|
00001310  3a c8 99 20 22 4f 53 5f  52 65 61 64 56 64 75 56  |:.. "OS_ReadVduV|
00001320  61 72 69 61 62 6c 65 73  22 2c 62 6c 6b 25 2c 62  |ariables",blk%,b|
00001330  6c 6b 25 0d 00 be 0a 3d  21 62 6c 6b 25 0d 00 bf  |lk%....=!blk%...|
00001340  04 0d 00 c0 19 dd f2 67  65 74 69 63 6f 6e 73 74  |.......geticonst|
00001350  61 74 65 28 77 25 2c 69  25 29 0d 00 c1 33 21 62  |ate(w%,i%)...3!b|
00001360  6c 6b 25 3d 77 25 3a 62  6c 6b 25 21 34 3d 69 25  |lk%=w%:blk%!4=i%|
00001370  3a c8 99 20 22 57 69 6d  70 5f 47 65 74 49 63 6f  |:.. "Wimp_GetIco|
00001380  6e 53 74 61 74 65 22 2c  2c 62 6c 6b 25 0d 00 c2  |nState",,blk%...|
00001390  05 e1 0d 00 c3 04 0d 00  c4 17 dd a4 69 73 73 65  |............isse|
000013a0  6c 65 63 74 65 64 28 77  25 2c 69 25 29 0d 00 c5  |lected(w%,i%)...|
000013b0  18 f2 67 65 74 69 63 6f  6e 73 74 61 74 65 28 77  |..geticonstate(w|
000013c0  25 2c 69 25 29 0d 00 c6  20 3d 28 28 62 6c 6b 25  |%,i%)... =((blk%|
000013d0  21 32 34 29 80 28 31 3c  3c 32 31 29 29 3d 28 31  |!24).(1<<21))=(1|
000013e0  3c 3c 32 31 29 0d 00 c7  04 0d 00 c8 12 dd a4 66  |<<21)..........f|
000013f0  69 6c 65 74 79 70 65 28  61 24 29 0d 00 c9 1b c8  |iletype(a$).....|
00001400  99 20 22 58 4f 53 5f 46  69 6c 65 22 2c 35 2c 61  |. "XOS_File",5,a|
00001410  24 20 b8 20 61 25 0d 00  ca 07 3d 61 25 0d 00 cb  |$ . a%....=a%...|
00001420  04 0d 00 cc 32 dd a4 6c  65 61 66 28 66 24 29 20  |....2..leaf(f$) |
00001430  49 25 3d a9 66 24 3a c8  95 49 25 3e 31 80 c1 66  |I%=.f$:..I%>1..f|
00001440  24 2c 49 25 2c 31 29 3c  3e 22 2e 22 49 25 2d 3d  |$,I%,1)<>"."I%-=|
00001450  31 3a ce 0d 00 cd 17 e7  c1 66 24 2c 49 25 2c 31  |1:.......f$,I%,1|
00001460  29 3d 22 2e 22 49 25 2b  3d 31 0d 00 ce 0c 3d c1  |)="."I%+=1....=.|
00001470  66 24 2c 49 25 29 0d 00  cf 04 0d 00 d0 16 dd f2  |f$,I%)..........|
00001480  73 65 74 73 61 76 65 64  69 72 28 64 69 72 24 29  |setsavedir(dir$)|
00001490  0d 00 d1 28 f2 70 75 74  69 63 6e 73 74 72 69 6e  |...(.puticnstrin|
000014a0  67 28 73 65 74 77 25 2c  69 5f 73 64 77 72 69 74  |g(setw%,i_sdwrit|
000014b0  65 25 2c 64 69 72 24 29  0d 00 d2 21 c8 99 20 22  |e%,dir$)...!.. "|
000014c0  57 69 6d 70 5f 53 65 74  43 61 72 65 74 50 6f 73  |Wimp_SetCaretPos|
000014d0  69 74 69 6f 6e 22 2c 2d  31 0d 00 d3 07 ea 20 85  |ition",-1..... .|
000014e0  0d 00 d4 0d ee 85 ea 3a  f7 20 85 3a e1 0d 00 d5  |.......:. .:....|
000014f0  11 ff 22 43 44 49 52 20  22 2b 64 69 72 24 0d 00  |.."CDIR "+dir$..|
00001500  d6 07 f7 20 85 0d 00 d7  05 e1 0d 00 d8 04 0d 00  |... ............|
00001510  d9 16 dd f2 73 65 74 73  61 76 65 64 69 72 66 72  |....setsavedirfr|
00001520  6f 6d 4f 4b 0d 00 da 21  c8 99 20 22 57 69 6d 70  |omOK...!.. "Wimp|
00001530  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
00001540  6e 22 2c 2d 31 0d 00 db  07 ea 20 85 0d 00 dc 65  |n",-1..... ....e|
00001550  ee 85 ea 3a f7 20 85 3a  f2 65 72 72 6f 72 28 22  |...:. .:.error("|
00001560  49 6e 76 61 6c 69 64 20  70 61 74 68 20 61 6e 64  |Invalid path and|
00001570  2f 6f 72 20 64 69 72 65  63 74 6f 72 79 20 6e 61  |/or directory na|
00001580  6d 65 2e 20 43 72 65 61  74 69 6f 6e 20 6f 66 20  |me. Creation of |
00001590  6e 65 77 20 73 61 76 65  20 64 69 72 65 63 74 6f  |new save directo|
000015a0  72 79 20 61 62 6f 72 74  65 64 2e 22 2c 30 29 3a  |ry aborted.",0):|
000015b0  e1 0d 00 dd 2c ff 22 43  44 49 52 20 22 2b a4 67  |....,."CDIR "+.g|
000015c0  65 74 69 63 6e 73 74 72  69 6e 67 28 73 65 74 77  |eticnstring(setw|
000015d0  25 2c 69 5f 73 64 77 72  69 74 65 25 29 0d 00 de  |%,i_sdwrite%)...|
000015e0  07 f7 20 85 0d 00 df 05  e1 0d 00 e0 04 0d 00 e1  |.. .............|
000015f0  0f dd a4 69 73 63 67 61  6f 6e 6c 79 0d 00 e2 29  |...iscgaonly...)|
00001600  c8 99 22 4f 53 5f 43 68  65 63 6b 4d 6f 64 65 56  |.."OS_CheckModeV|
00001610  61 6c 69 64 22 2c 32 37  20 b8 20 72 65 67 30 25  |alid",27 . reg0%|
00001620  3b 66 6c 61 25 0d 00 e3  26 73 63 31 25 3d 28 28  |;fla%...&sc1%=((|
00001630  28 66 6c 61 25 80 25 31  30 29 3d 25 31 30 29 80  |(fla%.%10)=%10).|
00001640  28 72 65 67 30 25 3d 2d  31 29 29 0d 00 e4 0d e7  |(reg0%=-1)).....|
00001650  73 63 31 25 3d b9 20 8c  0d 00 e5 07 20 3d b9 0d  |sc1%=. ..... =..|
00001660  00 e6 05 cc 0d 00 e7 07  20 3d a3 0d 00 e8 05 cd  |........ =......|
00001670  0d 00 e9 04 0d 00 ea 0b  dd a4 69 73 76 67 61 0d  |..........isvga.|
00001680  00 eb 23 e7 a4 69 73 73  65 6c 65 63 74 65 64 28  |..#..isselected(|
00001690  73 65 74 77 25 2c 69 5f  76 67 61 25 29 8c 3a 3d  |setw%,i_vga%).:=|
000016a0  2d 31 0d 00 ec 06 3d 30  0d 00 ed 04 0d 00 ee 10  |-1....=0........|
000016b0  dd a4 69 73 6f 70 65 6e  28 77 25 29 0d 00 ef 2b  |..isopen(w%)...+|
000016c0  21 62 6c 6b 25 3d 77 25  3a c8 99 20 22 57 69 6d  |!blk%=w%:.. "Wim|
000016d0  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
000016e0  22 2c 2c 62 6c 6b 25 0d  00 f0 20 3d 28 28 62 6c  |",,blk%... =((bl|
000016f0  6b 25 21 33 32 29 80 28  31 3c 3c 31 36 29 29 3d  |k%!32).(1<<16))=|
00001700  28 31 3c 3c 31 36 29 0d  00 f1 04 0d 00 f2 0f dd  |(1<<16).........|
00001710  f2 73 61 76 65 73 6f 75  6e 64 0d 00 f3 08 ea 20  |.savesound..... |
00001720  41 25 0d 00 f4 5e c8 99  20 22 53 6f 75 6e 64 5f  |A%...^.. "Sound_|
00001730  52 65 61 64 43 6f 6e 74  72 6f 6c 42 6c 6f 63 6b  |ReadControlBlock|
00001740  22 2c 31 2c 32 20 b8 20  2c 2c 76 6f 69 63 65 25  |",1,2 . ,,voice%|
00001750  3a 76 6f 69 63 65 25 3d  76 6f 69 63 65 25 80 26  |:voice%=voice%.&|
00001760  46 46 3a ff 22 53 65 74  20 54 61 62 6c 65 41 24  |FF:."Set TableA$|
00001770  76 6f 69 63 65 31 20 22  2b c3 76 6f 69 63 65 25  |voice1 "+.voice%|
00001780  0d 00 f5 7c c8 99 20 22  53 6f 75 6e 64 5f 43 6f  |...|.. "Sound_Co|
00001790  6e 66 69 67 75 72 65 22  2c 30 2c 30 2c 30 20 b8  |nfigure",0,0,0 .|
000017a0  20 41 25 2c 42 25 2c 43  25 3a ff 22 53 65 74 20  | A%,B%,C%:."Set |
000017b0  54 61 62 6c 65 41 24 74  6f 74 63 68 61 6e 73 20  |TableA$totchans |
000017c0  22 2b c3 41 25 3a ff 22  53 65 74 20 54 61 62 6c  |"+.A%:."Set Tabl|
000017d0  65 41 24 73 61 6d 70 73  69 7a 65 20 22 2b c3 42  |eA$sampsize "+.B|
000017e0  25 3a ff 22 53 65 74 20  54 61 62 6c 65 41 24 73  |%:."Set TableA$s|
000017f0  61 6d 70 70 65 72 20 22  2b c3 43 25 0d 00 f6 33  |ampper "+.C%...3|
00001800  c8 99 20 22 53 6f 75 6e  64 5f 56 6f 6c 75 6d 65  |.. "Sound_Volume|
00001810  22 2c 30 20 b8 20 41 25  3a ff 22 53 65 74 20 54  |",0 . A%:."Set T|
00001820  61 62 6c 65 41 24 76 6f  6c 20 22 2b c3 41 25 0d  |ableA$vol "+.A%.|
00001830  00 f7 05 e1 0d 00 f8 04  0d 00 f9 0e dd f2 73 65  |..............se|
00001840  74 73 6f 75 6e 64 0d 00  fa 33 ff 22 63 68 61 6e  |tsound...3."chan|
00001850  6e 65 6c 76 6f 69 63 65  20 31 20 22 2b a4 72 65  |nelvoice 1 "+.re|
00001860  61 64 73 79 73 76 61 72  28 22 54 61 62 6c 65 41  |adsysvar("TableA|
00001870  24 76 6f 69 63 65 31 22  29 0d 00 fb 89 41 25 3d  |$voice1")....A%=|
00001880  bb a4 72 65 61 64 73 79  73 76 61 72 28 22 54 61  |..readsysvar("Ta|
00001890  62 6c 65 41 24 74 6f 74  63 68 61 6e 73 22 29 3a  |bleA$totchans"):|
000018a0  42 25 3d bb a4 72 65 61  64 73 79 73 76 61 72 28  |B%=..readsysvar(|
000018b0  22 54 61 62 6c 65 41 24  73 61 6d 70 73 69 7a 65  |"TableA$sampsize|
000018c0  22 29 3a 43 25 3d bb a4  72 65 61 64 73 79 73 76  |"):C%=..readsysv|
000018d0  61 72 28 22 54 61 62 6c  65 41 24 73 61 6d 70 70  |ar("TableA$sampp|
000018e0  65 72 22 29 3a c8 99 20  22 53 6f 75 6e 64 5f 43  |er"):.. "Sound_C|
000018f0  6f 6e 66 69 67 75 72 65  22 2c 41 25 2c 42 25 2c  |onfigure",A%,B%,|
00001900  43 25 0d 00 fc 30 c8 99  20 22 53 6f 75 6e 64 5f  |C%...0.. "Sound_|
00001910  56 6f 6c 75 6d 65 22 2c  bb a4 72 65 61 64 73 79  |Volume",..readsy|
00001920  73 76 61 72 28 22 54 61  62 6c 65 41 24 76 6f 6c  |svar("TableA$vol|
00001930  22 29 0d 00 fd 05 e1 0d  00 fe 04 0d 00 ff 14 dd  |")..............|
00001940  f2 73 65 74 6d 6f 64 65  28 6d 6f 64 65 25 29 0d  |.setmode(mode%).|
00001950  01 00 0e e7 6d 6f 64 65  25 3d 30 20 8c 0d 01 01  |....mode%=0 ....|
00001960  39 f2 73 65 6c 65 63 74  69 63 6e 28 73 65 74 77  |9.selecticn(setw|
00001970  25 2c 69 5f 63 67 61 25  2c b9 29 3a f2 73 65 6c  |%,i_cga%,.):.sel|
00001980  65 63 74 69 63 6e 28 73  65 74 77 25 2c 69 5f 76  |ecticn(setw%,i_v|
00001990  67 61 25 2c a3 29 0d 01  02 05 cc 0d 01 03 39 f2  |ga%,.)........9.|
000019a0  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
000019b0  69 5f 63 67 61 25 2c a3  29 3a f2 73 65 6c 65 63  |i_cga%,.):.selec|
000019c0  74 69 63 6e 28 73 65 74  77 25 2c 69 5f 76 67 61  |ticn(setw%,i_vga|
000019d0  25 2c b9 29 0d 01 04 05  cd 0d 01 05 05 e1 0d 01  |%,.)............|
000019e0  06 04 0d 01 07 1d dd f2  6c 6f 61 64 5f 74 65 6d  |........load_tem|
000019f0  70 6c 61 74 65 28 77 69  6e 6e 61 6d 65 24 29 0d  |plate(winname$).|
00001a00  01 08 45 77 69 6e 73 74  61 72 74 73 25 21 28 28  |..Ewinstarts%!((|
00001a10  77 69 6e 63 74 72 25 2d  31 29 2a 34 29 3d 77 70  |winctr%-1)*4)=wp|
00001a20  74 72 25 3a 69 6e 64 73  74 61 72 74 73 25 21 28  |tr%:indstarts%!(|
00001a30  28 77 69 6e 63 74 72 25  2d 31 29 2a 34 29 3d 69  |(winctr%-1)*4)=i|
00001a40  70 74 72 25 0d 01 09 54  c8 99 20 22 57 69 6d 70  |ptr%...T.. "Wimp|
00001a50  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00001a60  77 70 74 72 25 2c 69 70  74 72 25 2c 69 6e 64 62  |wptr%,iptr%,indb|
00001a70  61 73 65 25 2b 74 6f 74  69 6e 64 73 69 7a 65 25  |ase%+totindsize%|
00001a80  2c 2d 31 2c 77 69 6e 6e  61 6d 65 24 2c 30 20 b8  |,-1,winname$,0 .|
00001a90  20 2c 2c 69 70 74 72 25  0d 01 0a 14 6e 6f 69 63  | ,,iptr%....noic|
00001aa0  6e 73 25 3d 77 70 74 72  25 21 38 34 0d 01 0b 1b  |ns%=wptr%!84....|
00001ab0  e3 6a 25 3d 30 b8 28 6e  6f 69 63 6e 73 25 2d 31  |.j%=0.(noicns%-1|
00001ac0  29 2a 33 32 88 33 32 0d  01 0c 2b 20 69 63 6e 62  |)*32.32...+ icnb|
00001ad0  6c 6b 25 3d 77 70 74 72  25 2b 38 38 2b 6a 25 3a  |lk%=wptr%+88+j%:|
00001ae0  69 63 6e 66 25 3d 28 69  63 6e 62 6c 6b 25 21 31  |icnf%=(icnblk%!1|
00001af0  36 29 0d 01 0d 4f 20 e7  20 ac a4 69 6e 64 69 72  |6)...O . ..indir|
00001b00  65 63 74 65 64 28 69 63  6e 66 25 29 80 ac a4 73  |ected(icnf%)...s|
00001b10  70 72 69 74 65 28 69 63  6e 66 25 29 80 a4 74 65  |prite(icnf%)..te|
00001b20  78 74 28 69 63 6e 66 25  29 20 8c 3a 69 63 6e 66  |xt(icnf%) .:icnf|
00001b30  25 3d 69 63 6e 66 25 80  26 46 46 46 46 30 46 46  |%=icnf%.&FFFF0FF|
00001b40  46 0d 01 0e 51 20 e7 20  a4 69 6e 64 69 72 65 63  |F...Q . .indirec|
00001b50  74 65 64 28 69 63 6e 66  25 29 80 a4 73 70 72 69  |ted(icnf%)..spri|
00001b60  74 65 28 69 63 6e 66 25  29 80 ac a4 74 65 78 74  |te(icnf%)...text|
00001b70  28 69 63 6e 66 25 29 20  8c 3a 69 63 6e 62 6c 6b  |(icnf%) .:icnblk|
00001b80  25 21 32 34 3d 75 73 65  72 77 69 6d 70 73 70 72  |%!24=userwimpspr|
00001b90  73 25 0d 01 0f 2b 20 e7  20 ac a4 69 6e 64 69 72  |s%...+ . ..indir|
00001ba0  65 63 74 65 64 28 69 63  6e 66 25 29 80 a4 73 70  |ected(icnf%)..sp|
00001bb0  72 69 74 65 28 69 63 6e  66 25 29 20 8c 0d 01 10  |rite(icnf%) ....|
00001bc0  23 20 20 73 70 72 6e 24  3d a4 72 65 61 64 73 74  |#  sprn$=.readst|
00001bd0  72 69 6e 67 28 69 63 6e  62 6c 6b 25 2b 32 30 29  |ring(icnblk%+20)|
00001be0  0d 01 11 2e 20 20 c8 99  20 22 58 57 69 6d 70 5f  |....  .. "XWimp_|
00001bf0  53 70 72 69 74 65 4f 70  22 2c 34 30 2c 2c 73 70  |SpriteOp",40,,sp|
00001c00  72 6e 24 20 b8 20 2c 2c  2c 77 25 2c 68 25 0d 01  |rn$ . ,,,w%,h%..|
00001c10  12 8f 20 20 e7 28 77 25  84 68 25 29 3d 30 3a 69  |..  .(w%.h%)=0:i|
00001c20  63 6e 66 25 3d 69 63 6e  66 25 84 32 35 36 3a 24  |cnf%=icnf%.256:$|
00001c30  69 70 74 72 25 3d 73 70  72 6e 24 3a 3f 28 69 70  |iptr%=sprn$:?(ip|
00001c40  74 72 25 2b 28 a9 73 70  72 6e 24 29 29 3d 30 3a  |tr%+(.sprn$))=0:|
00001c50  69 63 6e 62 6c 6b 25 21  32 30 3d 69 70 74 72 25  |icnblk%!20=iptr%|
00001c60  3a 69 63 6e 62 6c 6b 25  21 32 34 3d 75 73 65 72  |:icnblk%!24=user|
00001c70  77 69 6d 70 73 70 72 73  25 3a 69 63 6e 62 6c 6b  |wimpsprs%:icnblk|
00001c80  25 21 32 38 3d a9 73 70  72 6e 24 3a 69 70 74 72  |%!28=.sprn$:iptr|
00001c90  25 2b 3d a9 28 73 70 72  6e 24 29 2b 31 0d 01 13  |%+=.(sprn$)+1...|
00001ca0  06 20 cd 0d 01 14 15 20  69 63 6e 62 6c 6b 25 21  |. ..... icnblk%!|
00001cb0  31 36 3d 69 63 6e 66 25  0d 01 15 05 ed 0d 01 16  |16=icnf%........|
00001cc0  28 77 70 74 72 25 2b 3d  38 38 2b 28 28 77 70 74  |(wptr%+=88+((wpt|
00001cd0  72 25 21 38 34 29 2a 33  32 29 3a 77 69 6e 63 74  |r%!84)*32):winct|
00001ce0  72 25 2b 3d 31 0d 01 17  05 e1 0d 01 18 04 0d 01  |r%+=1...........|
00001cf0  19 14 dd a4 69 6e 64 69  72 65 63 74 65 64 28 66  |....indirected(f|
00001d00  25 29 0d 01 1a 13 3d 28  28 66 25 80 32 35 36 29  |%)....=((f%.256)|
00001d10  3d 32 35 36 29 0d 01 1b  04 0d 01 1c 10 dd a4 73  |=256)..........s|
00001d20  70 72 69 74 65 28 66 25  29 0d 01 1d 0f 3d 28 28  |prite(f%)....=((|
00001d30  66 25 80 32 29 3d 32 29  0d 01 1e 04 0d 01 1f 0e  |f%.2)=2)........|
00001d40  dd a4 74 65 78 74 28 66  25 29 0d 01 20 0f 3d 28  |..text(f%).. .=(|
00001d50  28 66 25 80 31 29 3d 31  29 0d 01 21 04 0d 01 22  |(f%.1)=1)..!..."|
00001d60  13 dd f2 63 72 65 61 74  65 77 69 6e 64 6f 77 73  |...createwindows|
00001d70  0d 01 23 30 c8 99 20 22  57 69 6d 70 5f 43 72 65  |..#0.. "Wimp_Cre|
00001d80  61 74 65 57 69 6e 64 6f  77 22 2c 2c 77 69 6e 73  |ateWindow",,wins|
00001d90  74 61 72 74 73 25 21 30  20 b8 20 73 65 74 77 25  |tarts%!0 . setw%|
00001da0  0d 01 24 31 c8 99 20 22  57 69 6d 70 5f 43 72 65  |..$1.. "Wimp_Cre|
00001db0  61 74 65 57 69 6e 64 6f  77 22 2c 2c 77 69 6e 73  |ateWindow",,wins|
00001dc0  74 61 72 74 73 25 21 34  20 b8 20 69 6e 66 6f 77  |tarts%!4 . infow|
00001dd0  25 0d 01 25 35 f4 20 53  59 53 20 22 57 69 6d 70  |%..%5. SYS "Wimp|
00001de0  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
00001df0  77 69 6e 73 74 61 72 74  73 25 21 38 20 54 4f 20  |winstarts%!8 TO |
00001e00  6d 65 73 73 77 25 0d 01  26 1b c8 99 20 22 57 69  |messw%..&... "Wi|
00001e10  6d 70 5f 43 6c 6f 73 65  54 65 6d 70 6c 61 74 65  |mp_CloseTemplate|
00001e20  22 0d 01 27 05 e1 0d 01  28 04 0d 01 29 11 dd f2  |"..'....(...)...|
00001e30  69 6e 69 74 77 69 6e 64  6f 77 73 0d 01 2a 08 ea  |initwindows..*..|
00001e40  20 6a 25 0d 01 2b 46 f2  70 75 74 69 63 6e 73 74  | j%..+F.puticnst|
00001e50  72 69 6e 67 28 73 65 74  77 25 2c 69 5f 73 73 77  |ring(setw%,i_ssw|
00001e60  72 69 74 65 25 2c a4 72  65 61 64 73 79 73 76 61  |rite%,.readsysva|
00001e70  72 28 22 54 61 62 6c 65  41 24 53 61 76 65 47 61  |r("TableA$SaveGa|
00001e80  6d 65 50 61 74 68 22 29  29 0d 01 2c 3d 76 6f 6c  |mePath"))..,=vol|
00001e90  75 6d 65 25 3d bb a4 72  65 61 64 73 79 73 76 61  |ume%=..readsysva|
00001ea0  72 28 22 54 61 62 6c 65  41 24 56 6f 6c 75 6d 65  |r("TableA$Volume|
00001eb0  22 29 3a f2 73 65 74 76  6f 6c 75 6d 65 28 76 6f  |"):.setvolume(vo|
00001ec0  6c 75 6d 65 25 29 0d 01  2d 22 63 61 25 3d 91 3a  |lume%)..-"ca%=.:|
00001ed0  e3 63 62 25 3d 30 b8 32  30 30 30 30 3a ed 3a 73  |.cb%=0.20000:.:s|
00001ee0  70 25 3d 91 2d 63 61 25  0d 01 2e 1e e7 73 70 25  |p%=.-ca%.....sp%|
00001ef0  3e 38 20 ff 22 73 65 74  20 54 61 62 6c 65 41 24  |>8 ."set TableA$|
00001f00  56 67 61 20 30 22 0d 01  2f 2e 66 25 3d bb a4 72  |Vga 0"../.f%=..r|
00001f10  65 61 64 73 79 73 76 61  72 28 22 54 61 62 6c 65  |eadsysvar("Table|
00001f20  41 24 56 67 61 22 29 3a  f2 73 65 74 6d 6f 64 65  |A$Vga"):.setmode|
00001f30  28 66 25 29 0d 01 30 12  e7 20 a4 69 73 63 67 61  |(f%)..0.. .iscga|
00001f40  6f 6e 6c 79 20 8c 0d 01  31 3b 20 20 f2 73 65 6c  |only ...1;  .sel|
00001f50  65 63 74 69 63 6e 28 73  65 74 77 25 2c 69 5f 63  |ecticn(setw%,i_c|
00001f60  67 61 25 2c b9 29 3a f2  73 65 6c 65 63 74 69 63  |ga%,.):.selectic|
00001f70  6e 28 73 65 74 77 25 2c  69 5f 76 67 61 25 2c a3  |n(setw%,i_vga%,.|
00001f80  29 0d 01 32 39 20 20 f2  73 68 61 64 65 69 63 6e  |)..29  .shadeicn|
00001f90  28 73 65 74 77 25 2c 69  5f 63 67 61 25 2c b9 29  |(setw%,i_cga%,.)|
00001fa0  3a f2 73 68 61 64 65 69  63 6e 28 73 65 74 77 25  |:.shadeicn(setw%|
00001fb0  2c 69 5f 76 67 61 25 2c  b9 29 0d 01 33 05 cd 0d  |,i_vga%,.)..3...|
00001fc0  01 34 0a f4 20 44 45 4d  4f 0d 01 35 20 f2 73 68  |.4.. DEMO..5 .sh|
00001fd0  61 64 65 69 63 6e 28 73  65 74 77 25 2c 69 5f 61  |adeicn(setw%,i_a|
00001fe0  67 25 28 31 32 29 2c b9  29 0d 01 36 20 f2 73 68  |g%(12),.)..6 .sh|
00001ff0  61 64 65 69 63 6e 28 73  65 74 77 25 2c 69 5f 61  |adeicn(setw%,i_a|
00002000  67 25 28 31 34 29 2c b9  29 0d 01 37 20 f2 73 68  |g%(14),.)..7 .sh|
00002010  61 64 65 69 63 6e 28 73  65 74 77 25 2c 69 5f 61  |adeicn(setw%,i_a|
00002020  67 25 28 31 37 29 2c b9  29 0d 01 38 20 f2 73 68  |g%(17),.)..8 .sh|
00002030  61 64 65 69 63 6e 28 73  65 74 77 25 2c 69 5f 61  |adeicn(setw%,i_a|
00002040  67 25 28 31 35 29 2c b9  29 0d 01 39 54 f4 20 49  |g%(15),.)..9T. I|
00002050  46 59 25 3d 30 3a 50 52  4f 43 68 69 64 65 73 61  |FY%=0:PROChidesa|
00002060  76 65 61 72 65 61 62 69  74 3a 45 4c 53 45 3a 50  |veareabit:ELSE:P|
00002070  52 4f 43 68 69 64 65 69  63 6e 28 73 65 74 75 70  |ROChideicn(setup|
00002080  77 25 2c 33 36 2c 54 52  55 45 29 3a 50 52 4f 43  |w%,36,TRUE):PROC|
00002090  63 72 65 61 74 65 73 61  76 65 64 69 72 0d 01 3a  |createsavedir..:|
000020a0  48 e7 59 25 3d 30 3a f2  68 69 64 65 73 61 76 65  |H.Y%=0:.hidesave|
000020b0  61 72 65 61 62 69 74 3a  8b 3a f2 63 72 65 61 74  |areabit:.:.creat|
000020c0  65 73 61 76 65 64 69 72  3a f2 68 69 64 65 69 63  |esavedir:.hideic|
000020d0  6e 28 73 65 74 77 25 2c  69 5f 75 6e 61 76 61 69  |n(setw%,i_unavai|
000020e0  6c 25 2c b9 29 0d 01 3b  30 70 72 65 6c 69 6e 6b  |l%,.)..;0prelink|
000020f0  5f 66 6c 61 67 25 3d bb  a4 72 65 61 64 73 79 73  |_flag%=..readsys|
00002100  76 61 72 28 22 54 61 62  6c 65 41 24 50 72 65 4c  |var("TableA$PreL|
00002110  69 6e 6b 22 29 0d 01 3c  05 e1 0d 01 3d 04 0d 01  |ink")..<....=...|
00002120  3e 13 dd f2 63 72 65 61  74 65 73 61 76 65 64 69  |>...createsavedi|
00002130  72 0d 01 3f 54 f4 20 78  78 78 78 78 20 6e 65 65  |r..?T. xxxxx nee|
00002140  64 20 74 6f 20 63 68 61  6e 67 65 20 6d 69 6e 75  |d to change minu|
00002150  73 20 37 20 62 65 6c 6f  77 20 77 68 65 6e 20 6b  |s 7 below when k|
00002160  6e 6f 77 20 77 68 61 74  20 61 70 70 6c 69 63 20  |now what applic |
00002170  69 73 20 63 61 6c 6c 65  64 20 28 37 3d 21 54 61  |is called (7=!Ta|
00002180  62 6c 65 41 29 0d 01 40  20 61 24 3d a4 72 65 61  |bleA)..@ a$=.rea|
00002190  64 73 79 73 76 61 72 28  22 54 61 62 6c 65 41 24  |dsysvar("TableA$|
000021a0  44 69 72 22 29 0d 01 41  26 e7 20 28 59 25 3d 31  |Dir")..A&. (Y%=1|
000021b0  29 80 28 a4 66 69 6c 65  74 79 70 65 28 61 24 2b  |).(.filetype(a$+|
000021c0  22 2e 73 61 22 29 3d 31  29 20 8c 0d 01 42 1d 20  |".sa")=1) ...B. |
000021d0  c8 99 20 22 58 4f 53 5f  46 69 6c 65 22 2c 36 2c  |.. "XOS_File",6,|
000021e0  61 24 2b 22 2e 73 61 22  0d 01 43 2b 20 f2 73 65  |a$+".sa"..C+ .se|
000021f0  74 73 61 76 65 64 69 72  28 c0 61 24 2c a9 28 61  |tsavedir(.a$,.(a|
00002200  24 29 2d 37 29 2b 22 54  61 62 6c 65 41 53 61 76  |$)-7)+"TableASav|
00002210  65 22 29 0d 01 44 05 cc  0d 01 45 34 20 e7 20 a4  |e")..D....E4 . .|
00002220  72 65 61 64 73 79 73 76  61 72 28 22 54 61 62 6c  |readsysvar("Tabl|
00002230  65 41 24 45 6e 74 72 79  50 74 22 29 3d 22 66 72  |eA$EntryPt")="fr|
00002240  6f 6d 73 74 61 72 74 75  70 22 20 8c 0d 01 46 3f  |omstartup" ...F?|
00002250  20 20 f2 70 75 74 69 63  6e 73 74 72 69 6e 67 28  |  .puticnstring(|
00002260  73 65 74 77 25 2c 69 5f  73 64 77 72 69 74 65 25  |setw%,i_sdwrite%|
00002270  2c c0 61 24 2c a9 28 61  24 29 2d 37 29 2b 22 54  |,.a$,.(a$)-7)+"T|
00002280  61 62 6c 65 41 53 61 76  65 22 29 0d 01 47 06 20  |ableASave")..G. |
00002290  cc 0d 01 48 40 20 20 f2  70 75 74 69 63 6e 73 74  |...H@  .puticnst|
000022a0  72 69 6e 67 28 73 65 74  77 25 2c 69 5f 73 64 77  |ring(setw%,i_sdw|
000022b0  72 69 74 65 25 2c a4 72  65 61 64 73 79 73 76 61  |rite%,.readsysva|
000022c0  72 28 22 54 61 62 6c 65  41 24 53 61 76 65 22 29  |r("TableA$Save")|
000022d0  29 0d 01 49 06 20 cd 0d  01 4a 05 cd 0d 01 4b 05  |)..I. ...J....K.|
000022e0  e1 0d 01 4c 04 0d 01 4d  12 dd f2 69 63 6e 73 5f  |...L...M...icns_|
000022f0  69 6e 74 69 67 65 72 0d  01 4e 16 f4 20 55 25 20  |intiger..N.. U% |
00002300  3d 20 61 30 2c 61 31 2c  61 32 2c 61 33 0d 01 4f  |= a0,a1,a2,a3..O|
00002310  27 f4 20 57 25 20 3d 20  62 30 2c 62 31 2c 62 32  |'. W% = b0,b1,b2|
00002320  20 62 33 20 2e 2e 2e 2e  2e 2e 6d 69 78 65 64 28  | b3 ......mixed(|
00002330  62 31 33 29 0d 01 50 34  75 25 3d 30 3a 76 25 3d  |b13)..P4u%=0:v%=|
00002340  30 3a 66 61 63 74 31 25  3d 30 3a 66 61 63 74 32  |0:fact1%=0:fact2|
00002350  25 3d 30 3a 4f 25 3d 30  3a 5a 25 3d 30 3a 52 25  |%=0:O%=0:Z%=0:R%|
00002360  3d 30 3a 4d 25 3d 30 3a  0d 01 51 0e e3 66 25 3d  |=0:M%=0:..Q..f%=|
00002370  30 20 b8 20 31 32 0d 01  52 40 e7 20 a4 69 73 73  |0 . 12..R@. .iss|
00002380  65 6c 65 63 74 65 64 28  73 65 74 77 25 2c 69 5f  |elected(setw%,i_|
00002390  66 61 25 28 66 25 29 29  20 75 25 3d 75 25 2b 28  |fa%(f%)) u%=u%+(|
000023a0  31 3c 3c 66 25 29 3a 66  61 63 74 31 25 3d 66 61  |1<<f%):fact1%=fa|
000023b0  63 74 31 25 2b 31 0d 01  53 40 e7 20 a4 69 73 73  |ct1%+1..S@. .iss|
000023c0  65 6c 65 63 74 65 64 28  73 65 74 77 25 2c 69 5f  |elected(setw%,i_|
000023d0  66 62 25 28 66 25 29 29  20 76 25 3d 76 25 2b 28  |fb%(f%)) v%=v%+(|
000023e0  31 3c 3c 66 25 29 3a 66  61 63 74 32 25 3d 66 61  |1<<f%):fact2%=fa|
000023f0  63 74 32 25 2b 31 0d 01  54 05 ed 0d 01 55 30 e7  |ct2%+1..T....U0.|
00002400  20 a4 69 73 73 65 6c 65  63 74 65 64 28 73 65 74  | .isselected(set|
00002410  77 25 2c 69 5f 66 62 25  28 31 33 29 29 20 76 25  |w%,i_fb%(13)) v%|
00002420  3d 76 25 2b 28 31 3c 3c  31 33 29 0d 01 56 27 e7  |=v%+(1<<13)..V'.|
00002430  20 a4 69 73 73 65 6c 65  63 74 65 64 28 73 65 74  | .isselected(set|
00002440  77 25 2c 69 5f 66 61 25  28 31 33 29 29 20 5a 25  |w%,i_fa%(13)) Z%|
00002450  3d 31 0d 01 57 27 e7 20  a4 69 73 73 65 6c 65 63  |=1..W'. .isselec|
00002460  74 65 64 28 73 65 74 77  25 2c 69 5f 66 61 25 28  |ted(setw%,i_fa%(|
00002470  31 34 29 29 20 5a 25 3d  32 0d 01 58 27 e7 20 a4  |14)) Z%=2..X'. .|
00002480  69 73 73 65 6c 65 63 74  65 64 28 73 65 74 77 25  |isselected(setw%|
00002490  2c 69 5f 66 61 25 28 31  35 29 29 20 5a 25 3d 33  |,i_fa%(15)) Z%=3|
000024a0  0d 01 59 0f 55 25 3d 75  25 3a 57 25 3d 76 25 0d  |..Y.U%=u%:W%=v%.|
000024b0  01 5a 11 f4 20 67 61 6d  65 73 20 6c 65 76 65 6c  |.Z.. games level|
000024c0  0d 01 5b 0d e3 66 25 3d  31 20 b8 20 35 0d 01 5c  |..[..f%=1 . 5..\|
000024d0  2a 20 20 e7 20 a4 69 73  73 65 6c 65 63 74 65 64  |*  . .isselected|
000024e0  28 73 65 74 77 25 2c 69  5f 61 67 25 28 66 25 29  |(setw%,i_ag%(f%)|
000024f0  29 3a 4f 25 3d 66 25 0d  01 5d 05 ed 0d 01 5e 12  |):O%=f%..]....^.|
00002500  f4 20 69 6e 74 72 6f 64  75 63 74 69 6f 6e 0d 01  |. introduction..|
00002510  5f 2e e7 20 a4 69 73 73  65 6c 65 63 74 65 64 28  |_.. .isselected(|
00002520  73 65 74 77 25 2c 69 5f  61 67 25 28 31 31 29 29  |setw%,i_ag%(11))|
00002530  20 50 25 3d 31 20 8b 20  50 25 3d 30 0d 01 60 14  | P%=1 . P%=0..`.|
00002540  f4 20 61 64 76 65 6e 74  75 72 65 20 74 79 70 65  |. adventure type|
00002550  0d 01 61 0f e3 66 25 3d  31 32 20 b8 20 31 35 0d  |..a..f%=12 . 15.|
00002560  01 62 2d 20 20 e7 20 a4  69 73 73 65 6c 65 63 74  |.b-  . .isselect|
00002570  65 64 28 73 65 74 77 25  2c 69 5f 61 67 25 28 66  |ed(setw%,i_ag%(f|
00002580  25 29 29 20 52 25 3d 66  25 2d 31 31 0d 01 63 05  |%)) R%=f%-11..c.|
00002590  ed 0d 01 64 1f f4 20 61  64 76 65 6e 74 75 72 65  |...d.. adventure|
000025a0  2f 61 63 74 69 76 69 74  79 20 62 75 74 74 6f 6e  |/activity button|
000025b0  0d 01 65 35 20 20 e7 20  a4 69 73 73 65 6c 65 63  |..e5  . .isselec|
000025c0  74 65 64 28 73 65 74 77  25 2c 69 5f 61 67 25 28  |ted(setw%,i_ag%(|
000025d0  31 36 29 29 20 4d 25 3d  31 3a f2 68 69 64 65 5f  |16)) M%=1:.hide_|
000025e0  61 63 74 69 76 0d 01 66  36 20 20 e7 20 a4 69 73  |activ..f6  . .is|
000025f0  73 65 6c 65 63 74 65 64  28 73 65 74 77 25 2c 69  |selected(setw%,i|
00002600  5f 61 67 25 28 31 37 29  29 20 4d 25 3d 32 3a f2  |_ag%(17)) M%=2:.|
00002610  68 69 64 65 5f 61 64 76  65 6e 74 0d 01 67 13 f4  |hide_advent..g..|
00002620  20 61 63 74 69 76 69 74  79 20 6c 69 73 74 0d 01  | activity list..|
00002630  68 08 58 25 3d 30 0d 01  69 0f e3 66 25 3d 31 38  |h.X%=0..i..f%=18|
00002640  20 b8 20 32 38 0d 01 6a  32 20 20 e7 20 a4 69 73  | . 28..j2  . .is|
00002650  73 65 6c 65 63 74 65 64  28 73 65 74 77 25 2c 69  |selected(setw%,i|
00002660  5f 61 67 25 28 66 25 29  29 20 58 25 3d 58 25 2b  |_ag%(f%)) X%=X%+|
00002670  28 66 25 2d 31 37 29 0d  01 6b 05 ed 0d 01 6c 2f  |(f%-17)..k....l/|
00002680  20 20 e7 20 a4 69 73 73  65 6c 65 63 74 65 64 28  |  . .isselected(|
00002690  73 65 74 77 25 2c 69 5f  61 67 25 28 36 32 29 29  |setw%,i_ag%(62))|
000026a0  20 58 25 3d 58 25 2b 28  31 32 29 0d 01 6d 0f e3  | X%=X%+(12)..m..|
000026b0  66 25 3d 32 39 20 b8 20  33 39 0d 01 6e 37 20 20  |f%=29 . 39..n7  |
000026c0  e7 20 a4 69 73 73 65 6c  65 63 74 65 64 28 73 65  |. .isselected(se|
000026d0  74 77 25 2c 69 5f 61 67  25 28 66 25 29 29 20 58  |tw%,i_ag%(f%)) X|
000026e0  25 3d 58 25 2b 28 28 66  25 2d 32 38 29 2a 31 36  |%=X%+((f%-28)*16|
000026f0  29 0d 01 6f 05 ed 0d 01  70 34 20 20 e7 20 a4 69  |)..o....p4  . .i|
00002700  73 73 65 6c 65 63 74 65  64 28 73 65 74 77 25 2c  |sselected(setw%,|
00002710  69 5f 61 67 25 28 36 33  29 29 20 58 25 3d 58 25  |i_ag%(63)) X%=X%|
00002720  2b 28 28 31 32 29 2a 31  36 29 0d 01 71 0f e3 66  |+((12)*16)..q..f|
00002730  25 3d 34 30 20 b8 20 35  30 0d 01 72 38 20 20 e7  |%=40 . 50..r8  .|
00002740  20 a4 69 73 73 65 6c 65  63 74 65 64 28 73 65 74  | .isselected(set|
00002750  77 25 2c 69 5f 61 67 25  28 66 25 29 29 20 58 25  |w%,i_ag%(f%)) X%|
00002760  3d 58 25 2b 28 28 66 25  2d 33 39 29 2a 32 35 36  |=X%+((f%-39)*256|
00002770  29 0d 01 73 05 ed 0d 01  74 35 20 20 e7 20 a4 69  |)..s....t5  . .i|
00002780  73 73 65 6c 65 63 74 65  64 28 73 65 74 77 25 2c  |sselected(setw%,|
00002790  69 5f 61 67 25 28 36 34  29 29 20 58 25 3d 58 25  |i_ag%(64)) X%=X%|
000027a0  2b 28 28 31 32 29 2a 32  35 36 29 0d 01 75 0f e3  |+((12)*256)..u..|
000027b0  66 25 3d 35 31 20 b8 20  36 31 0d 01 76 39 20 20  |f%=51 . 61..v9  |
000027c0  e7 20 a4 69 73 73 65 6c  65 63 74 65 64 28 73 65  |. .isselected(se|
000027d0  74 77 25 2c 69 5f 61 67  25 28 66 25 29 29 20 58  |tw%,i_ag%(f%)) X|
000027e0  25 3d 58 25 2b 28 28 66  25 2d 35 30 29 2a 34 30  |%=X%+((f%-50)*40|
000027f0  39 36 29 0d 01 77 05 ed  0d 01 78 36 20 20 e7 20  |96)..w....x6  . |
00002800  a4 69 73 73 65 6c 65 63  74 65 64 28 73 65 74 77  |.isselected(setw|
00002810  25 2c 69 5f 61 67 25 28  36 35 29 29 20 58 25 3d  |%,i_ag%(65)) X%=|
00002820  58 25 2b 28 28 31 32 29  2a 34 30 39 36 29 0d 01  |X%+((12)*4096)..|
00002830  79 05 e1 0d 01 7a 04 0d  01 7b 12 dd f2 69 6e 74  |y....z...{...int|
00002840  69 67 65 72 5f 69 63 6e  73 0d 01 7c 16 f4 20 55  |iger_icns..|.. U|
00002850  25 20 3d 20 61 30 2c 61  31 2c 61 32 2c 61 33 0d  |% = a0,a1,a2,a3.|
00002860  01 7d 27 f4 20 57 25 20  3d 20 62 30 2c 62 31 2c  |.}'. W% = b0,b1,|
00002870  62 32 20 62 33 20 2e 2e  2e 2e 2e 2e 6d 69 78 65  |b2 b3 ......mixe|
00002880  64 28 62 31 33 29 0d 01  7e 0e e3 66 25 3d 30 20  |d(b13)..~..f%=0 |
00002890  b8 20 31 32 0d 01 7f 5b  20 20 e7 28 55 25 20 80  |. 12...[  .(U% .|
000028a0  20 28 31 3c 3c 66 25 29  29 3d 28 31 3c 3c 66 25  | (1<<f%))=(1<<f%|
000028b0  29 20 f2 73 65 6c 65 63  74 69 63 6e 28 73 65 74  |) .selecticn(set|
000028c0  77 25 2c 69 5f 66 61 25  28 66 25 29 2c b9 29 20  |w%,i_fa%(f%),.) |
000028d0  8b 20 f2 73 65 6c 65 63  74 69 63 6e 28 73 65 74  |. .selecticn(set|
000028e0  77 25 2c 69 5f 66 61 25  28 66 25 29 2c a3 29 0d  |w%,i_fa%(f%),.).|
000028f0  01 80 05 ed 0d 01 81 0e  e3 66 25 3d 30 20 b8 20  |.........f%=0 . |
00002900  31 33 0d 01 82 5b 20 20  e7 28 57 25 20 80 20 28  |13...[  .(W% . (|
00002910  31 3c 3c 66 25 29 29 3d  28 31 3c 3c 66 25 29 20  |1<<f%))=(1<<f%) |
00002920  f2 73 65 6c 65 63 74 69  63 6e 28 73 65 74 77 25  |.selecticn(setw%|
00002930  2c 69 5f 66 62 25 28 66  25 29 2c b9 29 20 8b 20  |,i_fb%(f%),.) . |
00002940  f2 73 65 6c 65 63 74 69  63 6e 28 73 65 74 77 25  |.selecticn(setw%|
00002950  2c 69 5f 66 62 25 28 66  25 29 2c a3 29 0d 01 83  |,i_fb%(f%),.)...|
00002960  05 ed 0d 01 84 63 e7 5a  25 3d 31 20 f2 73 65 6c  |.....c.Z%=1 .sel|
00002970  65 63 74 69 63 6e 28 73  65 74 77 25 2c 69 5f 66  |ecticn(setw%,i_f|
00002980  61 25 28 31 33 29 2c b9  29 3a f2 73 65 6c 65 63  |a%(13),.):.selec|
00002990  74 69 63 6e 28 73 65 74  77 25 2c 69 5f 66 61 25  |ticn(setw%,i_fa%|
000029a0  28 31 34 29 2c a3 29 3a  f2 73 65 6c 65 63 74 69  |(14),.):.selecti|
000029b0  63 6e 28 73 65 74 77 25  2c 69 5f 66 61 25 28 31  |cn(setw%,i_fa%(1|
000029c0  35 29 2c a3 29 0d 01 85  63 e7 5a 25 3d 32 20 f2  |5),.)...c.Z%=2 .|
000029d0  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
000029e0  69 5f 66 61 25 28 31 33  29 2c a3 29 3a f2 73 65  |i_fa%(13),.):.se|
000029f0  6c 65 63 74 69 63 6e 28  73 65 74 77 25 2c 69 5f  |lecticn(setw%,i_|
00002a00  66 61 25 28 31 34 29 2c  b9 29 3a f2 73 65 6c 65  |fa%(14),.):.sele|
00002a10  63 74 69 63 6e 28 73 65  74 77 25 2c 69 5f 66 61  |cticn(setw%,i_fa|
00002a20  25 28 31 35 29 2c a3 29  0d 01 86 63 e7 5a 25 3d  |%(15),.)...c.Z%=|
00002a30  33 20 f2 73 65 6c 65 63  74 69 63 6e 28 73 65 74  |3 .selecticn(set|
00002a40  77 25 2c 69 5f 66 61 25  28 31 33 29 2c a3 29 3a  |w%,i_fa%(13),.):|
00002a50  f2 73 65 6c 65 63 74 69  63 6e 28 73 65 74 77 25  |.selecticn(setw%|
00002a60  2c 69 5f 66 61 25 28 31  34 29 2c a3 29 3a f2 73  |,i_fa%(14),.):.s|
00002a70  65 6c 65 63 74 69 63 6e  28 73 65 74 77 25 2c 69  |electicn(setw%,i|
00002a80  5f 66 61 25 28 31 35 29  2c b9 29 0d 01 87 11 f4  |_fa%(15),.).....|
00002a90  20 67 61 6d 65 73 20 6c  65 76 65 6c 0d 01 88 0d  | games level....|
00002aa0  e3 66 25 3d 31 20 b8 20  35 0d 01 89 4b 20 20 e7  |.f%=1 . 5...K  .|
00002ab0  20 4f 25 3d 66 25 20 f2  73 65 6c 65 63 74 69 63  | O%=f% .selectic|
00002ac0  6e 28 73 65 74 77 25 2c  69 5f 61 67 25 28 66 25  |n(setw%,i_ag%(f%|
00002ad0  29 2c b9 29 20 8b 20 f2  73 65 6c 65 63 74 69 63  |),.) . .selectic|
00002ae0  6e 28 73 65 74 77 25 2c  69 5f 61 67 25 28 66 25  |n(setw%,i_ag%(f%|
00002af0  29 2c a3 29 0d 01 8a 05  ed 0d 01 8b 12 f4 20 69  |),.).......... i|
00002b00  6e 74 72 6f 64 75 63 74  69 6f 6e 0d 01 8c 4a 20  |ntroduction...J |
00002b10  20 e7 20 50 25 3d 31 20  f2 73 65 6c 65 63 74 69  | . P%=1 .selecti|
00002b20  63 6e 28 73 65 74 77 25  2c 69 5f 61 67 25 28 31  |cn(setw%,i_ag%(1|
00002b30  31 29 2c b9 29 20 8b 20  f2 73 65 6c 65 63 74 69  |1),.) . .selecti|
00002b40  63 6e 28 73 65 74 77 25  2c 69 5f 61 67 25 28 31  |cn(setw%,i_ag%(1|
00002b50  31 29 2c a3 29 0d 01 8d  14 f4 20 61 64 76 65 6e  |1),.)..... adven|
00002b60  74 75 72 65 20 74 79 70  65 0d 01 8e 0f e3 66 25  |ture type.....f%|
00002b70  3d 31 32 20 b8 20 31 35  0d 01 8f 4e 20 20 e7 20  |=12 . 15...N  . |
00002b80  52 25 3d 66 25 2d 31 31  20 f2 73 65 6c 65 63 74  |R%=f%-11 .select|
00002b90  69 63 6e 28 73 65 74 77  25 2c 69 5f 61 67 25 28  |icn(setw%,i_ag%(|
00002ba0  66 25 29 2c b9 29 20 8b  20 f2 73 65 6c 65 63 74  |f%),.) . .select|
00002bb0  69 63 6e 28 73 65 74 77  25 2c 69 5f 61 67 25 28  |icn(setw%,i_ag%(|
00002bc0  66 25 29 2c a3 29 0d 01  90 05 ed 0d 01 91 1f f4  |f%),.)..........|
00002bd0  20 61 64 76 65 6e 74 75  72 65 2f 61 63 74 69 76  | adventure/activ|
00002be0  69 74 79 20 62 75 74 74  6f 6e 0d 01 92 54 20 20  |ity button...T  |
00002bf0  e7 20 4d 25 3d 31 20 f2  73 65 6c 65 63 74 69 63  |. M%=1 .selectic|
00002c00  6e 28 73 65 74 77 25 2c  69 5f 61 67 25 28 31 36  |n(setw%,i_ag%(16|
00002c10  29 2c b9 29 3a f2 73 65  6c 65 63 74 69 63 6e 28  |),.):.selecticn(|
00002c20  73 65 74 77 25 2c 69 5f  61 67 25 28 31 37 29 2c  |setw%,i_ag%(17),|
00002c30  a3 29 3a f2 68 69 64 65  5f 61 63 74 69 76 0d 01  |.):.hide_activ..|
00002c40  93 55 20 20 e7 20 4d 25  3d 32 20 f2 73 65 6c 65  |.U  . M%=2 .sele|
00002c50  63 74 69 63 6e 28 73 65  74 77 25 2c 69 5f 61 67  |cticn(setw%,i_ag|
00002c60  25 28 31 36 29 2c a3 29  3a f2 73 65 6c 65 63 74  |%(16),.):.select|
00002c70  69 63 6e 28 73 65 74 77  25 2c 69 5f 61 67 25 28  |icn(setw%,i_ag%(|
00002c80  31 37 29 2c b9 29 3a f2  68 69 64 65 5f 61 64 76  |17),.):.hide_adv|
00002c90  65 6e 74 0d 01 94 13 f4  20 61 63 74 69 76 69 74  |ent..... activit|
00002ca0  79 20 6c 69 73 74 0d 01  95 0f e3 66 25 3d 31 38  |y list.....f%=18|
00002cb0  20 b8 20 32 38 0d 01 96  57 20 20 e7 20 28 28 58  | . 28...W  . ((X|
00002cc0  25 20 83 20 31 36 29 2b  31 37 29 3d 66 25 20 f2  |% . 16)+17)=f% .|
00002cd0  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002ce0  69 5f 61 67 25 28 66 25  29 2c b9 29 20 8b 20 f2  |i_ag%(f%),.) . .|
00002cf0  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002d00  69 5f 61 67 25 28 66 25  29 2c a3 29 0d 01 97 05  |i_ag%(f%),.)....|
00002d10  ed 0d 01 98 54 20 20 e7  20 28 28 58 25 20 83 20  |....T  . ((X% . |
00002d20  31 36 29 29 3d 31 32 20  f2 73 65 6c 65 63 74 69  |16))=12 .selecti|
00002d30  63 6e 28 73 65 74 77 25  2c 69 5f 61 67 25 28 36  |cn(setw%,i_ag%(6|
00002d40  32 29 2c b9 29 20 8b 20  f2 73 65 6c 65 63 74 69  |2),.) . .selecti|
00002d50  63 6e 28 73 65 74 77 25  2c 69 5f 61 67 25 28 36  |cn(setw%,i_ag%(6|
00002d60  32 29 2c a3 29 0d 01 99  0f e3 66 25 3d 32 39 20  |2),.).....f%=29 |
00002d70  b8 20 33 39 0d 01 9a 5e  20 20 e7 20 28 28 28 58  |. 39...^  . (((X|
00002d80  25 20 81 20 31 36 29 20  83 20 31 36 29 2b 32 38  |% . 16) . 16)+28|
00002d90  29 3d 66 25 20 f2 73 65  6c 65 63 74 69 63 6e 28  |)=f% .selecticn(|
00002da0  73 65 74 77 25 2c 69 5f  61 67 25 28 66 25 29 2c  |setw%,i_ag%(f%),|
00002db0  b9 29 20 8b 20 f2 73 65  6c 65 63 74 69 63 6e 28  |.) . .selecticn(|
00002dc0  73 65 74 77 25 2c 69 5f  61 67 25 28 66 25 29 2c  |setw%,i_ag%(f%),|
00002dd0  a3 29 0d 01 9b 05 ed 0d  01 9c 59 20 20 e7 20 28  |.)........Y  . (|
00002de0  28 58 25 20 81 20 31 36  29 20 83 20 31 36 29 3d  |(X% . 16) . 16)=|
00002df0  31 32 20 f2 73 65 6c 65  63 74 69 63 6e 28 73 65  |12 .selecticn(se|
00002e00  74 77 25 2c 69 5f 61 67  25 28 36 33 29 2c b9 29  |tw%,i_ag%(63),.)|
00002e10  20 8b 20 f2 73 65 6c 65  63 74 69 63 6e 28 73 65  | . .selecticn(se|
00002e20  74 77 25 2c 69 5f 61 67  25 28 36 33 29 2c a3 29  |tw%,i_ag%(63),.)|
00002e30  0d 01 9d 0f e3 66 25 3d  34 30 20 b8 20 35 30 0d  |.....f%=40 . 50.|
00002e40  01 9e 5f 20 20 e7 20 28  28 28 58 25 20 81 20 32  |.._  . (((X% . 2|
00002e50  35 36 29 20 83 20 31 36  29 2b 33 39 29 3d 66 25  |56) . 16)+39)=f%|
00002e60  20 f2 73 65 6c 65 63 74  69 63 6e 28 73 65 74 77  | .selecticn(setw|
00002e70  25 2c 69 5f 61 67 25 28  66 25 29 2c b9 29 20 8b  |%,i_ag%(f%),.) .|
00002e80  20 f2 73 65 6c 65 63 74  69 63 6e 28 73 65 74 77  | .selecticn(setw|
00002e90  25 2c 69 5f 61 67 25 28  66 25 29 2c a3 29 0d 01  |%,i_ag%(f%),.)..|
00002ea0  9f 05 ed 0d 01 a0 5a 20  20 e7 20 28 28 58 25 20  |......Z  . ((X% |
00002eb0  81 20 32 35 36 29 20 83  20 31 36 29 3d 31 32 20  |. 256) . 16)=12 |
00002ec0  f2 73 65 6c 65 63 74 69  63 6e 28 73 65 74 77 25  |.selecticn(setw%|
00002ed0  2c 69 5f 61 67 25 28 36  34 29 2c b9 29 20 8b 20  |,i_ag%(64),.) . |
00002ee0  f2 73 65 6c 65 63 74 69  63 6e 28 73 65 74 77 25  |.selecticn(setw%|
00002ef0  2c 69 5f 61 67 25 28 36  34 29 2c a3 29 0d 01 a1  |,i_ag%(64),.)...|
00002f00  0f e3 66 25 3d 35 31 20  b8 20 36 31 0d 01 a2 60  |..f%=51 . 61...`|
00002f10  20 20 e7 20 28 28 28 58  25 20 81 20 34 30 39 36  |  . (((X% . 4096|
00002f20  29 20 83 20 31 36 29 2b  35 30 29 3d 66 25 20 f2  |) . 16)+50)=f% .|
00002f30  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002f40  69 5f 61 67 25 28 66 25  29 2c b9 29 20 8b 20 f2  |i_ag%(f%),.) . .|
00002f50  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002f60  69 5f 61 67 25 28 66 25  29 2c a3 29 0d 01 a3 05  |i_ag%(f%),.)....|
00002f70  ed 0d 01 a4 5b 20 20 e7  20 28 28 58 25 20 81 20  |....[  . ((X% . |
00002f80  34 30 39 36 29 20 83 20  31 36 29 3d 31 32 20 f2  |4096) . 16)=12 .|
00002f90  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002fa0  69 5f 61 67 25 28 36 35  29 2c b9 29 20 8b 20 f2  |i_ag%(65),.) . .|
00002fb0  73 65 6c 65 63 74 69 63  6e 28 73 65 74 77 25 2c  |selecticn(setw%,|
00002fc0  69 5f 61 67 25 28 36 35  29 2c a3 29 0d 01 a5 05  |i_ag%(65),.)....|
00002fd0  e1 0d 01 a6 04 0d 01 a7  13 dd f2 68 69 64 65 5f  |...........hide_|
00002fe0  61 64 76 65 6e 74 3a e1  0d 01 a8 11 20 20 e3 68  |advent:.....  .h|
00002ff0  25 3d 31 31 20 b8 20 31  35 0d 01 a9 24 20 20 20  |%=11 . 15...$   |
00003000  20 f2 73 68 61 64 65 69  63 6e 28 73 65 74 77 25  | .shadeicn(setw%|
00003010  2c 69 5f 61 67 25 28 68  25 29 2c b9 29 0d 01 aa  |,i_ag%(h%),.)...|
00003020  07 20 20 ed 0d 01 ab 11  20 20 e3 68 25 3d 31 38  |.  .....  .h%=18|
00003030  20 b8 20 36 35 0d 01 ac  24 20 20 20 20 f2 73 68  | . 65...$    .sh|
00003040  61 64 65 69 63 6e 28 73  65 74 77 25 2c 69 5f 61  |adeicn(setw%,i_a|
00003050  67 25 28 68 25 29 2c a3  29 0d 01 ad 07 20 20 ed  |g%(h%),.)....  .|
00003060  0d 01 ae 05 e1 0d 01 af  04 0d 01 b0 10 dd f2 68  |...............h|
00003070  69 64 65 5f 61 63 74 69  76 0d 01 b1 11 20 20 e3  |ide_activ....  .|
00003080  68 25 3d 31 31 20 b8 20  31 35 0d 01 b2 2c f4 20  |h%=11 . 15...,. |
00003090  20 20 20 50 52 4f 43 73  68 61 64 65 69 63 6e 28  |   PROCshadeicn(|
000030a0  73 65 74 77 25 2c 69 5f  61 67 25 28 68 25 29 2c  |setw%,i_ag%(h%),|
000030b0  46 41 4c 53 45 29 0d 01  b3 07 20 20 ed 0d 01 b4  |FALSE)....  ....|
000030c0  11 20 20 e3 68 25 3d 31  38 20 b8 20 36 35 0d 01  |.  .h%=18 . 65..|
000030d0  b5 24 20 20 20 20 f2 73  68 61 64 65 69 63 6e 28  |.$    .shadeicn(|
000030e0  73 65 74 77 25 2c 69 5f  61 67 25 28 68 25 29 2c  |setw%,i_ag%(h%),|
000030f0  b9 29 0d 01 b6 07 20 20  ed 0d 01 b7 05 e1 0d 01  |.)....  ........|
00003100  b8 04 0d 01 b9 15 dd f2  73 65 74 76 6f 6c 75 6d  |........setvolum|
00003110  65 28 76 6f 6c 25 29 0d  01 ba 0c e3 69 76 25 3d  |e(vol%).....iv%=|
00003120  30 b8 32 0d 01 bb 53 e7  69 76 25 3d 76 6f 6c 25  |0.2...S.iv%=vol%|
00003130  3a f2 73 65 6c 65 63 74  69 63 6e 28 73 65 74 77  |:.selecticn(setw|
00003140  25 2c 69 5f 73 6f 75 6e  64 25 28 69 76 25 29 2c  |%,i_sound%(iv%),|
00003150  b9 29 3a 8b 3a f2 73 65  6c 65 63 74 69 63 6e 28  |.):.:.selecticn(|
00003160  73 65 74 77 25 2c 69 5f  73 6f 75 6e 64 25 28 69  |setw%,i_sound%(i|
00003170  76 25 29 2c a3 29 0d 01  bc 05 ed 0d 01 bd 05 e1  |v%),.)..........|
00003180  0d 01 be 04 0d 01 bf 0f  dd f2 63 68 65 63 6b 61  |..........checka|
00003190  72 6d 33 0d 01 c0 0c 48  25 21 26 44 43 3d 30 0d  |rm3....H%!&DC=0.|
000031a0  01 c1 09 74 31 25 3d 91  0d 01 c2 11 e3 6b 25 3d  |...t1%=......k%=|
000031b0  30 b8 32 30 30 30 30 3a  ed 0d 01 c3 09 74 32 25  |0.20000:.....t2%|
000031c0  3d 91 0d 01 c4 1a e7 28  74 32 25 2d 74 31 25 29  |=......(t2%-t1%)|
000031d0  3c 31 35 3a 48 25 21 26  44 43 3d 31 0d 01 c5 05  |<15:H%!&DC=1....|
000031e0  e1 0d 01 c6 04 0d 01 c7  1c dd f2 70 75 74 69 63  |...........putic|
000031f0  6e 73 74 72 69 6e 67 28  77 25 2c 69 25 2c 61 24  |nstring(w%,i%,a$|
00003200  29 0d 01 c8 33 21 62 6c  6b 25 3d 77 25 3a 62 6c  |)...3!blk%=w%:bl|
00003210  6b 25 21 34 3d 69 25 3a  c8 99 20 22 57 69 6d 70  |k%!4=i%:.. "Wimp|
00003220  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00003230  62 6c 6b 25 0d 01 c9 24  24 28 62 6c 6b 25 21 32  |blk%...$$(blk%!2|
00003240  38 29 3d 61 24 3a 3f 28  28 62 6c 6b 25 21 32 38  |8)=a$:?((blk%!28|
00003250  29 2b a9 61 24 29 3d 30  0d 01 ca 33 62 6c 6b 25  |)+.a$)=0...3blk%|
00003260  21 38 3d 30 3a 62 6c 6b  25 21 31 32 3d 30 3a c8  |!8=0:blk%!12=0:.|
00003270  99 20 22 57 69 6d 70 5f  53 65 74 49 63 6f 6e 53  |. "Wimp_SetIconS|
00003280  74 61 74 65 22 2c 2c 62  6c 6b 25 0d 01 cb 05 e1  |tate",,blk%.....|
00003290  0d 01 cc 04 0d 01 cd 19  dd a4 67 65 74 69 63 6e  |..........geticn|
000032a0  73 74 72 69 6e 67 28 77  25 2c 69 25 29 0d 01 ce  |string(w%,i%)...|
000032b0  33 21 62 6c 6b 25 3d 77  25 3a 62 6c 6b 25 21 34  |3!blk%=w%:blk%!4|
000032c0  3d 69 25 3a c8 99 20 22  57 69 6d 70 5f 47 65 74  |=i%:.. "Wimp_Get|
000032d0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 6c 6b 25  |IconState",,blk%|
000032e0  0d 01 cf 19 3d a4 72 65  61 64 73 74 72 69 6e 67  |....=.readstring|
000032f0  28 62 6c 6b 25 21 32 38  29 0d 01 d0 04 0d 01 d1  |(blk%!28).......|
00003300  19 dd f2 73 65 6c 65 63  74 69 63 6e 28 77 25 2c  |...selecticn(w%,|
00003310  69 25 2c 66 25 29 0d 01  d2 46 21 62 6c 6b 25 3d  |i%,f%)...F!blk%=|
00003320  77 25 3a 62 6c 6b 25 21  34 3d 69 25 3a 62 6c 6b  |w%:blk%!4=i%:blk|
00003330  25 21 31 32 3d 28 31 3c  3c 32 31 29 3a e7 66 25  |%!12=(1<<21):.f%|
00003340  3d 30 20 62 6c 6b 25 21  38 3d 30 3a 8b 20 62 6c  |=0 blk%!8=0:. bl|
00003350  6b 25 21 38 3d 62 6c 6b  25 21 31 32 0d 01 d3 20  |k%!8=blk%!12... |
00003360  c8 99 20 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |.. "Wimp_SetIcon|
00003370  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 01 d4 05  |State",,blk%....|
00003380  e1 0d 01 d5 04 0d 01 d6  18 dd f2 73 68 61 64 65  |...........shade|
00003390  69 63 6e 28 77 25 2c 69  25 2c 66 25 29 0d 01 d7  |icn(w%,i%,f%)...|
000033a0  24 21 62 6c 6b 25 3d 77  25 3a 62 6c 6b 25 21 34  |$!blk%=w%:blk%!4|
000033b0  3d 69 25 3a 62 6c 6b 25  21 31 32 3d 31 3c 3c 32  |=i%:blk%!12=1<<2|
000033c0  32 0d 01 d8 1f e7 66 25  20 62 6c 6b 25 21 38 3d  |2.....f% blk%!8=|
000033d0  31 3c 3c 32 32 3a 8b 3a  62 6c 6b 25 21 38 3d 30  |1<<22:.:blk%!8=0|
000033e0  0d 01 d9 20 c8 99 20 22  57 69 6d 70 5f 53 65 74  |... .. "Wimp_Set|
000033f0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 6c 6b 25  |IconState",,blk%|
00003400  0d 01 da 05 e1 0d 01 db  04 0d 01 dc 17 dd f2 66  |...............f|
00003410  61 64 65 69 63 6e 28 77  25 2c 69 25 2c 66 25 29  |adeicn(w%,i%,f%)|
00003420  0d 01 dd 08 ea 20 6a 25  0d 01 de 0e e3 20 6a 25  |..... j%..... j%|
00003430  3d 32 34 b8 32 37 0d 01  df 25 20 21 62 6c 6b 25  |=24.27...% !blk%|
00003440  3d 77 25 3a 62 6c 6b 25  21 34 3d 69 25 3a 62 6c  |=w%:blk%!4=i%:bl|
00003450  6b 25 21 31 32 3d 31 3c  3c 6a 25 0d 01 e0 0a 20  |k%!12=1<<j%.... |
00003460  e7 66 25 20 8c 0d 01 e1  25 20 20 e7 6a 25 3c 3d  |.f% ....%  .j%<=|
00003470  32 35 3a 62 6c 6b 25 21  38 3d 31 3c 3c 6a 25 3a  |25:blk%!8=1<<j%:|
00003480  8b 3a 62 6c 6b 25 21 38  3d 30 0d 01 e2 06 20 cc  |.:blk%!8=0.... .|
00003490  0d 01 e3 25 20 20 e7 6a  25 3c 3d 32 36 3a 62 6c  |...%  .j%<=26:bl|
000034a0  6b 25 21 38 3d 31 3c 3c  6a 25 3a 8b 3a 62 6c 6b  |k%!8=1<<j%:.:blk|
000034b0  25 21 38 3d 30 0d 01 e4  06 20 cd 0d 01 e5 21 20  |%!8=0.... ....! |
000034c0  c8 99 20 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |.. "Wimp_SetIcon|
000034d0  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 01 e6 05  |State",,blk%....|
000034e0  ed 0d 01 e7 05 e1 0d 01  e8 04 0d 01 e9 17 dd f2  |................|
000034f0  68 69 64 65 69 63 6e 28  77 25 2c 69 25 2c 66 25  |hideicn(w%,i%,f%|
00003500  29 0d 01 ea 24 21 62 6c  6b 25 3d 77 25 3a 62 6c  |)...$!blk%=w%:bl|
00003510  6b 25 21 34 3d 69 25 3a  62 6c 6b 25 21 31 32 3d  |k%!4=i%:blk%!12=|
00003520  31 3c 3c 32 33 0d 01 eb  1f e7 66 25 20 62 6c 6b  |1<<23.....f% blk|
00003530  25 21 38 3d 31 3c 3c 32  33 3a 8b 3a 62 6c 6b 25  |%!8=1<<23:.:blk%|
00003540  21 38 3d 30 0d 01 ec 20  c8 99 20 22 57 69 6d 70  |!8=0... .. "Wimp|
00003550  5f 53 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_SetIconState",,|
00003560  62 6c 6b 25 0d 01 ed 05  e1 0d 01 ee 04 0d 01 ef  |blk%............|
00003570  15 dd f2 68 69 64 65 73  61 76 65 61 72 65 61 62  |...hidesaveareab|
00003580  69 74 0d 01 f0 20 f2 68  69 64 65 69 63 6e 28 73  |it... .hideicn(s|
00003590  65 74 77 25 2c 69 5f 73  64 77 72 69 74 65 25 2c  |etw%,i_sdwrite%,|
000035a0  b9 29 0d 01 f1 1e f2 68  69 64 65 69 63 6e 28 73  |.).....hideicn(s|
000035b0  65 74 77 25 2c 69 5f 73  64 64 69 72 25 2c b9 29  |etw%,i_sddir%,.)|
000035c0  0d 01 f2 1d f2 68 69 64  65 69 63 6e 28 73 65 74  |.....hideicn(set|
000035d0  77 25 2c 69 5f 73 64 6f  6b 25 2c b9 29 0d 01 f3  |w%,i_sdok%,.)...|
000035e0  1f f2 68 69 64 65 69 63  6e 28 73 65 74 77 25 2c  |..hideicn(setw%,|
000035f0  69 5f 73 64 64 72 6f 70  25 2c b9 29 0d 01 f4 05  |i_sddrop%,.)....|
00003600  e1 0d 01 f5 04 0d 01 f6  13 dd f2 63 72 65 61 74  |...........creat|
00003610  65 62 61 72 69 63 6f 6e  0d 01 f7 16 24 62 61 72  |ebaricon....$bar|
00003620  69 63 6e 25 3d 22 69 63  6f 6e 62 61 72 22 0d 01  |icn%="iconbar"..|
00003630  f8 34 21 62 6c 6b 25 3d  2d 31 3a 62 6c 6b 25 21  |.4!blk%=-1:blk%!|
00003640  34 3d 30 3a 62 6c 6b 25  21 38 3d 30 3a 62 6c 6b  |4=0:blk%!8=0:blk|
00003650  25 21 31 32 3d 36 32 3a  62 6c 6b 25 21 31 36 3d  |%!12=62:blk%!16=|
00003660  37 32 0d 01 f9 4d 62 6c  6b 25 21 32 30 3d 26 31  |72...Mblk%!20=&1|
00003670  30 30 30 33 31 33 41 3a  62 6c 6b 25 21 32 34 3d  |000313A:blk%!24=|
00003680  62 61 72 69 63 6e 25 3a  62 6c 6b 25 21 32 38 3d  |baricn%:blk%!28=|
00003690  75 73 65 72 77 69 6d 70  73 70 72 73 25 3a 62 6c  |userwimpsprs%:bl|
000036a0  6b 25 21 33 32 3d a9 24  62 61 72 69 63 6e 25 0d  |k%!32=.$baricn%.|
000036b0  01 fa 1e c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |..... "Wimp_Crea|
000036c0  74 65 49 63 6f 6e 22 2c  2c 62 6c 6b 25 0d 01 fb  |teIcon",,blk%...|
000036d0  05 e1 0d 01 fc 04 0d 01  fd 0e dd f2 70 6f 6c 6c  |............poll|
000036e0  6c 6f 6f 70 0d 01 fe 28  c8 99 20 22 57 69 6d 70  |loop...(.. "Wimp|
000036f0  5f 50 6f 6c 6c 22 2c 25  31 31 30 30 30 31 2c 62  |_Poll",%110001,b|
00003700  6c 6b 25 20 b8 20 65 76  65 6e 74 25 0d 01 ff 0f  |lk% . event%....|
00003710  c8 8e 20 65 76 65 6e 74  25 20 ca 0d 02 00 12 20  |.. event% ..... |
00003720  20 c9 20 31 3a 20 f2 72  65 64 72 61 77 0d 02 01  | . 1: .redraw...|
00003730  1a 20 20 c9 20 32 3a 20  f2 6f 70 65 6e 77 69 6e  |.  . 2: .openwin|
00003740  64 28 62 6c 6b 25 29 0d  02 02 1b 20 20 c9 20 33  |d(blk%)....  . 3|
00003750  3a 20 f2 63 6c 6f 73 65  77 69 6e 64 28 62 6c 6b  |: .closewind(blk|
00003760  25 29 0d 02 03 29 20 20  c9 20 36 3a 20 f2 63 6c  |%)...)  . 6: .cl|
00003770  69 63 6b 28 62 6c 6b 25  21 38 2c 62 6c 6b 25 21  |ick(blk%!8,blk%!|
00003780  31 32 2c 62 6c 6b 25 21  31 36 29 0d 02 04 1c 20  |12,blk%!16).... |
00003790  20 c9 20 37 3a 20 f2 73  65 6e 64 73 61 76 65 64  | . 7: .sendsaved|
000037a0  61 74 61 6d 65 73 73 0d  02 05 14 20 20 c9 20 38  |atamess....  . 8|
000037b0  3a 20 f2 6b 65 79 65 76  65 6e 74 0d 02 06 15 20  |: .keyevent.... |
000037c0  20 c9 20 39 3a 20 f2 6d  65 6e 75 63 6c 69 63 6b  | . 9: .menuclick|
000037d0  0d 02 07 17 20 20 c9 20  31 37 2c 31 38 3a 20 f2  |....  . 17,18: .|
000037e0  72 65 63 65 69 76 65 0d  02 08 05 cb 0d 02 09 05  |receive.........|
000037f0  e1 0d 02 0a 04 0d 02 0b  0c dd f2 72 65 64 72 61  |...........redra|
00003800  77 0d 02 0c 28 c8 99 20  22 57 69 6d 70 5f 52 65  |w...(.. "Wimp_Re|
00003810  64 72 61 77 57 69 6e 64  6f 77 22 2c 2c 62 6c 6b  |drawWindow",,blk|
00003820  25 20 b8 20 6d 6f 72 65  25 0d 02 0d 0c c8 95 20  |% . more%...... |
00003830  6d 6f 72 65 25 0d 02 0e  2b 20 20 c8 99 20 22 57  |more%...+  .. "W|
00003840  69 6d 70 5f 47 65 74 52  65 63 74 61 6e 67 6c 65  |imp_GetRectangle|
00003850  22 2c 2c 62 6c 6b 25 20  b8 20 6d 6f 72 65 25 3a  |",,blk% . more%:|
00003860  0d 02 0f 05 ce 0d 02 10  05 e1 0d 02 11 04 0d 02  |................|
00003870  12 12 dd f2 6f 70 65 6e  77 69 6e 64 28 62 25 29  |....openwind(b%)|
00003880  0d 02 13 1c c8 99 20 22  57 69 6d 70 5f 4f 70 65  |...... "Wimp_Ope|
00003890  6e 57 69 6e 64 6f 77 22  2c 2c 62 25 0d 02 14 05  |nWindow",,b%....|
000038a0  e1 0d 02 15 04 0d 02 16  13 dd f2 63 6c 6f 73 65  |...........close|
000038b0  77 69 6e 64 28 62 25 29  0d 02 17 1d c8 99 20 22  |wind(b%)...... "|
000038c0  57 69 6d 70 5f 43 6c 6f  73 65 57 69 6e 64 6f 77  |Wimp_CloseWindow|
000038d0  22 2c 2c 62 25 0d 02 18  05 e1 0d 02 19 04 0d 02  |",,b%...........|
000038e0  1a 1b dd f2 63 6c 69 63  6b 28 62 75 74 25 2c 77  |....click(but%,w|
000038f0  69 6e 25 2c 69 63 6e 25  29 0d 02 1b 0d c8 8e 20  |in%,icn%)...... |
00003900  77 69 6e 25 20 ca 0d 02  1c 0a 20 c9 20 2d 32 3a  |win% ..... . -2:|
00003910  0d 02 1d 0f 20 20 c8 8e  20 62 75 74 25 20 ca 0d  |....  .. but% ..|
00003920  02 1e 3f 20 20 20 c9 20  32 3a f2 6d 61 69 6e 6d  |..?   . 2:.mainm|
00003930  65 6e 75 28 22 54 61 62  6c 65 41 22 2c 22 49 6e  |enu("TableA","In|
00003940  66 6f 2c 53 65 74 75 70  2e 2e 2e 2c 37 51 75 69  |fo,Setup...,7Qui|
00003950  74 2c 22 2c 21 62 6c 6b  25 2c 32 32 30 29 0d 02  |t,",!blk%,220)..|
00003960  1f 15 20 20 20 c9 20 34  3a f2 73 74 61 72 74 67  |..   . 4:.startg|
00003970  61 6d 65 0d 02 20 07 20  20 cb 0d 02 21 24 20 c9  |ame.. .  ...!$ .|
00003980  20 73 65 74 77 25 3a f2  73 65 74 75 70 77 63 6c  | setw%:.setupwcl|
00003990  69 63 6b 28 62 75 74 25  2c 69 63 6e 25 29 0d 02  |ick(but%,icn%)..|
000039a0  22 05 cb 0d 02 23 05 e1  0d 02 24 04 0d 02 25 27  |"....#....$...%'|
000039b0  dd f2 6d 61 69 6e 6d 65  6e 75 28 74 69 74 6c 65  |..mainmenu(title|
000039c0  24 2c 6d 65 6e 75 69 74  65 6d 73 24 2c 78 25 2c  |$,menuitems$,x%,|
000039d0  79 25 29 0d 02 26 22 f2  64 65 66 69 6e 65 6d 65  |y%)..&".defineme|
000039e0  6e 75 28 74 69 74 6c 65  24 2c 6d 65 6e 75 69 74  |nu(title$,menuit|
000039f0  65 6d 73 24 29 0d 02 27  1a f2 6c 69 6e 6b 73 75  |ems$)..'..linksu|
00003a00  62 6d 65 6e 75 28 31 2c  69 6e 66 6f 77 25 29 0d  |bmenu(1,infow%).|
00003a10  02 28 32 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |.(2.. "Wimp_Crea|
00003a20  74 65 4d 65 6e 75 22 2c  2c 6d 65 6e 75 25 2c 78  |teMenu",,menu%,x|
00003a30  25 2d 28 6d 65 6e 75 25  21 31 36 2f 32 29 2c 79  |%-(menu%!16/2),y|
00003a40  25 0d 02 29 10 63 75 72  72 6d 65 6e 75 25 3d 2d  |%..).currmenu%=-|
00003a50  31 0d 02 2a 05 e1 0d 02  2b 04 0d 02 2c 23 dd f2  |1..*....+...,#..|
00003a60  64 65 66 69 6e 65 6d 65  6e 75 28 74 69 74 6c 65  |definemenu(title|
00003a70  24 2c 6d 65 6e 75 69 74  65 6d 73 24 29 0d 02 2d  |$,menuitems$)..-|
00003a80  11 24 6d 65 6e 75 25 3d  74 69 74 6c 65 24 0d 02  |.$menu%=title$..|
00003a90  2e 46 6d 65 6e 75 25 3f  31 32 3d 37 3a 6d 65 6e  |.Fmenu%?12=7:men|
00003aa0  75 25 3f 31 33 3d 32 3a  6d 65 6e 75 25 3f 31 34  |u%?13=2:menu%?14|
00003ab0  3d 37 3a 6d 65 6e 75 25  3f 31 35 3d 30 3a 6d 65  |=7:menu%?15=0:me|
00003ac0  6e 75 25 21 32 30 3d 34  30 3a 6d 65 6e 75 25 21  |nu%!20=40:menu%!|
00003ad0  32 34 3d 30 0d 02 2f 23  69 74 65 6d 25 3d 6d 65  |24=0../#item%=me|
00003ae0  6e 75 25 2b 32 38 3a 77  69 64 74 68 25 3d a9 28  |nu%+28:width%=.(|
00003af0  74 69 74 6c 65 24 29 0d  02 30 05 f5 0d 02 31 1c  |title$)..0....1.|
00003b00  20 63 6f 6d 6d 61 25 3d  a7 6d 65 6e 75 69 74 65  | comma%=.menuite|
00003b10  6d 73 24 2c 22 2c 22 29  0d 02 32 29 20 69 74 65  |ms$,",")..2) ite|
00003b20  6d 24 3d c0 6d 65 6e 75  69 74 65 6d 73 24 2c 63  |m$=.menuitems$,c|
00003b30  6f 6d 6d 61 25 2d 31 29  3a 21 69 74 65 6d 25 3d  |omma%-1):!item%=|
00003b40  30 0d 02 33 13 20 f5 3a  6d 6f 72 65 63 6f 64 65  |0..3. .:morecode|
00003b50  73 25 3d a3 0d 02 34 37  20 20 e7 c0 69 74 65 6d  |s%=...47  ..item|
00003b60  24 2c 31 29 3d 22 30 22  20 21 69 74 65 6d 25 3d  |$,1)="0" !item%=|
00003b70  28 21 69 74 65 6d 25 29  84 25 30 30 30 31 3a 6d  |(!item%).%0001:m|
00003b80  6f 72 65 63 6f 64 65 73  25 3d b9 0d 02 35 37 20  |orecodes%=...57 |
00003b90  20 e7 c0 69 74 65 6d 24  2c 31 29 3d 22 31 22 20  | ..item$,1)="1" |
00003ba0  21 69 74 65 6d 25 3d 28  21 69 74 65 6d 25 29 84  |!item%=(!item%).|
00003bb0  25 30 30 31 30 3a 6d 6f  72 65 63 6f 64 65 73 25  |%0010:morecodes%|
00003bc0  3d b9 0d 02 36 37 20 20  e7 c0 69 74 65 6d 24 2c  |=...67  ..item$,|
00003bd0  31 29 3d 22 32 22 20 21  69 74 65 6d 25 3d 28 21  |1)="2" !item%=(!|
00003be0  69 74 65 6d 25 29 84 25  30 31 30 30 3a 6d 6f 72  |item%).%0100:mor|
00003bf0  65 63 6f 64 65 73 25 3d  b9 0d 02 37 37 20 20 e7  |ecodes%=...77  .|
00003c00  c0 69 74 65 6d 24 2c 31  29 3d 22 33 22 20 21 69  |.item$,1)="3" !i|
00003c10  74 65 6d 25 3d 28 21 69  74 65 6d 25 29 84 25 31  |tem%=(!item%).%1|
00003c20  30 30 30 3a 6d 6f 72 65  63 6f 64 65 73 25 3d b9  |000:morecodes%=.|
00003c30  0d 02 38 3b 20 20 e7 c0  69 74 65 6d 24 2c 31 29  |..8;  ..item$,1)|
00003c40  3d 22 37 22 20 21 69 74  65 6d 25 3d 28 21 69 74  |="7" !item%=(!it|
00003c50  65 6d 25 29 84 25 31 30  30 30 30 30 30 30 3a 6d  |em%).%10000000:m|
00003c60  6f 72 65 63 6f 64 65 73  25 3d b9 0d 02 39 53 20  |orecodes%=...9S |
00003c70  20 e7 c0 69 74 65 6d 24  2c 31 29 3d 22 38 22 20  | ..item$,1)="8" |
00003c80  69 74 65 6d 25 21 38 3d  26 30 37 34 30 30 30 32  |item%!8=&0740002|
00003c90  31 3a 69 74 65 6d 24 3d  c2 69 74 65 6d 24 2c a9  |1:item$=.item$,.|
00003ca0  28 69 74 65 6d 24 29 2d  31 29 3a 8b 3a 69 74 65  |(item$)-1):.:ite|
00003cb0  6d 25 21 38 3d 26 30 37  30 30 30 30 32 31 0d 02  |m%!8=&07000021..|
00003cc0  3a 2b 20 20 e7 20 6d 6f  72 65 63 6f 64 65 73 25  |:+  . morecodes%|
00003cd0  20 69 74 65 6d 24 3d c2  69 74 65 6d 24 2c a9 28  | item$=.item$,.(|
00003ce0  69 74 65 6d 24 29 2d 31  29 0d 02 3b 13 20 fd 20  |item$)-1)..;. . |
00003cf0  ac 20 6d 6f 72 65 63 6f  64 65 73 25 0d 02 3c 16  |. morecodes%..<.|
00003d00  20 24 28 69 74 65 6d 25  2b 31 32 29 3d 69 74 65  | $(item%+12)=ite|
00003d10  6d 24 0d 02 3d 2b 20 e7  28 a9 28 69 74 65 6d 24  |m$..=+ .(.(item$|
00003d20  29 2b 31 29 3e 77 69 64  74 68 25 3a 77 69 64 74  |)+1)>width%:widt|
00003d30  68 25 3d a9 28 69 74 65  6d 24 29 2b 31 0d 02 3e  |h%=.(item$)+1..>|
00003d40  0f 20 69 74 65 6d 25 21  34 3d 2d 31 0d 02 3f 25  |. item%!4=-1..?%|
00003d50  20 6d 65 6e 75 69 74 65  6d 73 24 3d c1 6d 65 6e  | menuitems$=.men|
00003d60  75 69 74 65 6d 73 24 2c  63 6f 6d 6d 61 25 2b 31  |uitems$,comma%+1|
00003d70  29 0d 02 40 13 20 69 74  65 6d 25 3d 69 74 65 6d  |)..@. item%=item|
00003d80  25 2b 32 34 0d 02 41 13  fd 20 6d 65 6e 75 69 74  |%+24..A.. menuit|
00003d90  65 6d 73 24 3d 22 22 0d  02 42 16 6d 65 6e 75 25  |ems$=""..B.menu%|
00003da0  21 31 36 3d 77 69 64 74  68 25 2a 31 36 0d 02 43  |!16=width%*16..C|
00003db0  05 e1 0d 02 44 04 0d 02  45 1d dd f2 6c 69 6e 6b  |....D...E...link|
00003dc0  73 75 62 6d 65 6e 75 28  69 74 65 6d 6e 6f 25 2c  |submenu(itemno%,|
00003dd0  77 25 29 0d 02 46 23 69  74 65 6d 25 3d 6d 65 6e  |w%)..F#item%=men|
00003de0  75 25 2b 32 38 2b 28 28  69 74 65 6d 6e 6f 25 2d  |u%+28+((itemno%-|
00003df0  31 29 2a 32 34 29 0d 02  47 0e 69 74 65 6d 25 21  |1)*24)..G.item%!|
00003e00  34 3d 77 25 0d 02 48 05  e1 0d 02 49 04 0d 02 4a  |4=w%..H....I...J|
00003e10  18 dd f2 73 65 74 75 70  77 63 6c 69 63 6b 28 62  |...setupwclick(b|
00003e20  25 2c 69 25 29 0d 02 4b  08 ea 20 6a 25 0d 02 4c  |%,i%)..K.. j%..L|
00003e30  0b e7 62 25 3d 32 3a e1  0d 02 4d 0b c8 8e 20 69  |..b%=2:...M... i|
00003e40  25 20 ca 0d 02 4e 61 20  20 c9 20 69 5f 73 73 69  |% ...Na  . i_ssi|
00003e50  63 6f 6e 25 3a 20 e7 62  25 3d 36 34 20 f2 73 74  |con%: .b%=64 .st|
00003e60  61 72 74 64 72 61 67 28  73 65 74 77 25 2c 69 25  |artdrag(setw%,i%|
00003e70  2c a4 6c 65 61 66 28 a4  67 65 74 69 63 6e 73 74  |,.leaf(.geticnst|
00003e80  72 69 6e 67 28 73 65 74  77 25 2c 69 5f 73 73 77  |ring(setw%,i_ssw|
00003e90  72 69 74 65 25 29 29 29  3a 64 72 61 67 67 69 6e  |rite%))):draggin|
00003ea0  67 25 3d 31 0d 02 4f 3c  20 20 c9 20 69 5f 73 73  |g%=1..O<  . i_ss|
00003eb0  6f 6b 25 3a 20 f2 73 61  76 65 73 65 74 75 70 28  |ok%: .savesetup(|
00003ec0  a4 67 65 74 69 63 6e 73  74 72 69 6e 67 28 73 65  |.geticnstring(se|
00003ed0  74 77 25 2c 69 5f 73 73  77 72 69 74 65 25 29 29  |tw%,i_sswrite%))|
00003ee0  0d 02 50 91 20 20 c9 20  69 5f 73 64 64 72 6f 70  |..P.  . i_sddrop|
00003ef0  25 3a f2 65 72 72 6f 72  28 22 44 72 6f 70 20 61  |%:.error("Drop a|
00003f00  20 64 69 72 65 63 74 6f  72 79 20 69 63 6f 6e 20  | directory icon |
00003f10  68 65 72 65 20 74 6f 20  63 68 61 6e 67 65 20 74  |here to change t|
00003f20  68 65 20 27 73 61 76 65  64 20 73 63 72 65 65 6e  |he 'saved screen|
00003f30  27 20 64 69 72 65 63 74  6f 72 79 20 28 61 6c 74  |' directory (alt|
00003f40  65 72 6e 61 74 69 76 65  6c 79 20 64 72 61 67 20  |ernatively drag |
00003f50  6f 75 74 20 74 68 65 20  64 69 72 65 63 74 6f 72  |out the director|
00003f60  79 20 69 63 6f 6e 20 67  69 76 65 6e 29 22 2c 30  |y icon given)",0|
00003f70  29 0d 02 51 3b 20 20 c9  20 69 5f 73 64 64 69 72  |)..Q;  . i_sddir|
00003f80  25 3a e7 62 25 3d 36 34  3a f2 73 74 61 72 74 64  |%:.b%=64:.startd|
00003f90  72 61 67 28 73 65 74 77  25 2c 69 25 2c 22 22 29  |rag(setw%,i%,"")|
00003fa0  3a 64 72 61 67 67 69 6e  67 25 3d 32 0d 02 52 68  |:dragging%=2..Rh|
00003fb0  f4 20 20 57 48 45 4e 20  69 5f 73 64 64 69 72 25  |.  WHEN i_sddir%|
00003fc0  3a 49 46 62 25 3d 36 34  20 41 4e 44 20 59 25 3d  |:IFb%=64 AND Y%=|
00003fd0  30 3a 50 52 4f 43 65 72  72 6f 72 28 22 59 6f 75  |0:PROCerror("You|
00003fe0  20 63 61 6e 20 6f 6e 6c  79 20 73 65 74 20 61 20  | can only set a |
00003ff0  73 61 76 65 20 64 72 69  65 63 74 6f 72 79 20 66  |save driectory f|
00004000  72 6f 6d 20 61 20 68 61  72 64 20 64 69 73 6b 2e  |rom a hard disk.|
00004010  22 2c 31 29 0d 02 53 21  20 20 c9 20 69 5f 73 64  |",1)..S!  . i_sd|
00004020  6f 6b 25 3a f2 73 65 74  73 61 76 65 64 69 72 66  |ok%:.setsavedirf|
00004030  72 6f 6d 4f 4b 0d 02 54  2e 20 20 c9 20 69 5f 76  |romOK..T.  . i_v|
00004040  67 61 25 3a f2 73 65 74  6d 6f 64 65 28 31 29 3a  |ga%:.setmode(1):|
00004050  ff 22 53 65 74 20 54 61  62 6c 65 41 24 76 67 61  |."Set TableA$vga|
00004060  20 31 22 0d 02 55 2e 20  20 c9 20 69 5f 63 67 61  | 1"..U.  . i_cga|
00004070  25 3a f2 73 65 74 6d 6f  64 65 28 30 29 3a ff 22  |%:.setmode(0):."|
00004080  53 65 74 20 54 61 62 6c  65 41 24 76 67 61 20 30  |Set TableA$vga 0|
00004090  22 0d 02 56 38 20 20 c9  20 69 5f 73 6f 75 6e 64  |"..V8  . i_sound|
000040a0  25 28 30 29 3a f2 73 65  74 76 6f 6c 75 6d 65 28  |%(0):.setvolume(|
000040b0  30 29 3a ff 22 53 65 74  20 54 61 62 6c 65 41 24  |0):."Set TableA$|
000040c0  76 6f 6c 75 6d 65 20 30  22 0d 02 57 38 20 20 c9  |volume 0"..W8  .|
000040d0  20 69 5f 73 6f 75 6e 64  25 28 31 29 3a f2 73 65  | i_sound%(1):.se|
000040e0  74 76 6f 6c 75 6d 65 28  31 29 3a ff 22 53 65 74  |tvolume(1):."Set|
000040f0  20 54 61 62 6c 65 41 24  76 6f 6c 75 6d 65 20 31  | TableA$volume 1|
00004100  22 0d 02 58 38 20 20 c9  20 69 5f 73 6f 75 6e 64  |"..X8  . i_sound|
00004110  25 28 32 29 3a f2 73 65  74 76 6f 6c 75 6d 65 28  |%(2):.setvolume(|
00004120  32 29 3a ff 22 53 65 74  20 54 61 62 6c 65 41 24  |2):."Set TableA$|
00004130  76 6f 6c 75 6d 65 20 32  22 0d 02 59 1e 20 20 c9  |volume 2"..Y.  .|
00004140  20 69 5f 61 67 25 28 31  36 29 3a f2 72 65 73 65  | i_ag%(16):.rese|
00004150  74 5f 61 64 5f 61 63 0d  02 5a 1e 20 20 c9 20 69  |t_ad_ac..Z.  . i|
00004160  5f 61 67 25 28 31 37 29  3a f2 72 65 73 65 74 5f  |_ag%(17):.reset_|
00004170  61 64 5f 61 63 0d 02 5b  05 cb 0d 02 5c 05 e1 0d  |ad_ac..[....\...|
00004180  02 5d 04 0d 02 5e 11 dd  f2 72 65 73 65 74 5f 61  |.]...^...reset_a|
00004190  64 5f 61 63 0d 02 5f 26  20 20 e7 20 a4 69 73 73  |d_ac.._&  . .iss|
000041a0  65 6c 65 63 74 65 64 28  73 65 74 77 25 2c 69 5f  |elected(setw%,i_|
000041b0  61 67 25 28 31 37 29 29  20 8c 0d 02 60 19 20 20  |ag%(17)) ...`.  |
000041c0  20 20 4d 25 3d 32 3a f2  68 69 64 65 5f 61 64 76  |  M%=2:.hide_adv|
000041d0  65 6e 74 0d 02 61 07 20  20 cc 0d 02 62 18 20 20  |ent..a.  ...b.  |
000041e0  20 20 4d 25 3d 31 3a f2  68 69 64 65 5f 61 63 74  |  M%=1:.hide_act|
000041f0  69 76 0d 02 63 07 20 20  cd 0d 02 64 26 20 20 e7  |iv..c.  ...d&  .|
00004200  20 a4 69 73 73 65 6c 65  63 74 65 64 28 73 65 74  | .isselected(set|
00004210  77 25 2c 69 5f 61 67 25  28 31 36 29 29 20 8c 0d  |w%,i_ag%(16)) ..|
00004220  02 65 18 20 20 20 20 4d  25 3d 31 3a f2 68 69 64  |.e.    M%=1:.hid|
00004230  65 5f 61 63 74 69 76 0d  02 66 07 20 20 cc 0d 02  |e_activ..f.  ...|
00004240  67 19 20 20 20 20 4d 25  3d 32 3a f2 68 69 64 65  |g.    M%=2:.hide|
00004250  5f 61 64 76 65 6e 74 0d  02 68 07 20 20 cd 0d 02  |_advent..h.  ...|
00004260  69 05 e1 0d 02 6a 04 0d  02 6b 13 dd f2 77 69 6e  |i....j...k...win|
00004270  74 6f 73 63 72 6e 28 62  25 29 0d 02 6c 2e 21 62  |toscrn(b%)..l.!b|
00004280  6c 6b 32 25 3d 21 62 25  3a c8 99 20 22 57 69 6d  |lk2%=!b%:.. "Wim|
00004290  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
000042a0  22 2c 2c 62 6c 6b 32 25  0d 02 6d 1e 62 25 21 38  |",,blk2%..m.b%!8|
000042b0  2b 3d 28 62 6c 6b 32 25  21 34 29 2d 28 62 6c 6b  |+=(blk2%!4)-(blk|
000042c0  32 25 21 32 30 29 0d 02  6e 20 62 25 21 31 32 2b  |2%!20)..n b%!12+|
000042d0  3d 28 62 6c 6b 32 25 21  31 36 29 2d 28 62 6c 6b  |=(blk2%!16)-(blk|
000042e0  32 25 21 32 34 29 0d 02  6f 1f 62 25 21 31 36 2b  |2%!24)..o.b%!16+|
000042f0  3d 28 62 6c 6b 32 25 21  34 29 2d 28 62 6c 6b 32  |=(blk2%!4)-(blk2|
00004300  25 21 32 30 29 0d 02 70  20 62 25 21 32 30 2b 3d  |%!20)..p b%!20+=|
00004310  28 62 6c 6b 32 25 21 31  36 29 2d 28 62 6c 6b 32  |(blk2%!16)-(blk2|
00004320  25 21 32 34 29 0d 02 71  05 e1 0d 02 72 04 0d 02  |%!24)..q....r...|
00004330  73 19 dd f2 73 74 61 72  74 64 72 61 67 28 77 25  |s...startdrag(w%|
00004340  2c 69 25 2c 6e 24 29 0d  02 74 15 70 72 6f 70 6f  |,i%,n$)..t.propo|
00004350  73 65 64 66 6e 61 6d 65  24 3d 6e 24 0d 02 75 33  |sedfname$=n$..u3|
00004360  21 62 6c 6b 25 3d 77 25  3a 62 6c 6b 25 21 34 3d  |!blk%=w%:blk%!4=|
00004370  69 25 3a c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |i%:.. "Wimp_GetI|
00004380  63 6f 6e 53 74 61 74 65  22 2c 2c 62 6c 6b 25 0d  |conState",,blk%.|
00004390  02 76 3f f2 77 69 6e 74  6f 73 63 72 6e 28 62 6c  |.v?.wintoscrn(bl|
000043a0  6b 25 29 3a 62 6c 6b 25  21 38 2d 3d 34 3a 62 6c  |k%):blk%!8-=4:bl|
000043b0  6b 25 21 31 32 2d 3d 34  3a 62 6c 6b 25 21 31 36  |k%!12-=4:blk%!16|
000043c0  2b 3d 34 3a 62 6c 6b 25  21 32 30 2b 3d 34 0d 02  |+=4:blk%!20+=4..|
000043d0  77 52 62 6c 6b 25 21 34  3d 35 3a 62 6c 6b 25 21  |wRblk%!4=5:blk%!|
000043e0  32 34 3d 30 3a 62 6c 6b  25 21 32 38 3d 30 3a 62  |24=0:blk%!28=0:b|
000043f0  6c 6b 25 21 33 32 3d 33  30 30 30 3a 62 6c 6b 25  |lk%!32=3000:blk%|
00004400  21 33 36 3d 33 30 30 30  3a c8 99 20 22 57 69 6d  |!36=3000:.. "Wim|
00004410  70 5f 44 72 61 67 42 6f  78 22 2c 2c 62 6c 6b 25  |p_DragBox",,blk%|
00004420  0d 02 78 05 e1 0d 02 79  04 0d 02 7a 18 dd f2 65  |..x....y...z...e|
00004430  72 72 6f 72 28 6d 73 67  24 2c 65 72 72 6e 6f 25  |rror(msg$,errno%|
00004440  29 0d 02 7b 0c f4 43 4c  4f 53 45 23 30 0d 02 7c  |)..{..CLOSE#0..||
00004450  21 21 65 72 72 62 6c 6b  25 3d 39 39 3a 24 28 65  |!!errblk%=99:$(e|
00004460  72 72 62 6c 6b 25 2b 34  29 3d 6d 73 67 24 0d 02  |rrblk%+4)=msg$..|
00004470  7d 2c c8 99 20 22 57 69  6d 70 5f 52 65 70 6f 72  |},.. "Wimp_Repor|
00004480  74 45 72 72 6f 72 22 2c  65 72 72 62 6c 6b 25 2c  |tError",errblk%,|
00004490  30 2c 22 54 61 62 6c 65  41 22 0d 02 7e 05 e1 0d  |0,"TableA"..~...|
000044a0  02 7f 04 0d 02 80 16 dd  f2 73 65 6e 64 73 61 76  |.........sendsav|
000044b0  65 64 61 74 61 6d 65 73  73 0d 02 81 4b c8 99 20  |edatamess...K.. |
000044c0  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
000044d0  49 6e 66 6f 22 2c 2c 62  6c 6b 25 3a 78 25 3d 21  |Info",,blk%:x%=!|
000044e0  62 6c 6b 25 3a 79 25 3d  62 6c 6b 25 21 34 3a 77  |blk%:y%=blk%!4:w|
000044f0  25 3d 62 6c 6b 25 21 31  32 3a 69 25 3d 62 6c 6b  |%=blk%!12:i%=blk|
00004500  25 21 31 36 0d 02 82 83  21 62 6c 6b 25 3d 35 36  |%!16....!blk%=56|
00004510  3a 62 6c 6b 25 21 31 32  3d 30 3a 62 6c 6b 25 21  |:blk%!12=0:blk%!|
00004520  31 36 3d 31 3a 62 6c 6b  25 21 32 30 3d 77 25 3a  |16=1:blk%!20=w%:|
00004530  62 6c 6b 25 21 32 34 3d  69 25 3a 62 6c 6b 25 21  |blk%!24=i%:blk%!|
00004540  32 38 3d 78 25 3a 62 6c  6b 25 21 33 32 3d 79 25  |28=x%:blk%!32=y%|
00004550  3a 62 6c 6b 25 21 33 36  3d 31 32 30 30 3a 62 6c  |:blk%!36=1200:bl|
00004560  6b 25 21 34 30 3d 26 46  46 46 3a 24 28 62 6c 6b  |k%!40=&FFF:$(blk|
00004570  25 2b 34 34 29 3d 70 72  6f 70 6f 73 65 64 66 6e  |%+44)=proposedfn|
00004580  61 6d 65 24 2b bd 30 0d  02 83 32 c8 99 20 22 57  |ame$+.0...2.. "W|
00004590  69 6d 70 5f 53 65 6e 64  4d 65 73 73 61 67 65 22  |imp_SendMessage"|
000045a0  2c 31 37 2c 62 6c 6b 25  2c 77 25 3a 6d 79 72 65  |,17,blk%,w%:myre|
000045b0  66 25 3d 62 6c 6b 25 21  38 0d 02 84 05 e1 0d 02  |f%=blk%!8.......|
000045c0  85 04 0d 02 86 0e dd f2  6b 65 79 65 76 65 6e 74  |........keyevent|
000045d0  0d 02 87 11 c8 8e 20 28  62 6c 6b 21 32 34 29 20  |...... (blk!24) |
000045e0  ca 0d 02 88 31 20 c9 20  32 35 32 3a 71 75 69 74  |....1 . 252:quit|
000045f0  25 3d b9 3a c8 99 20 22  57 69 6d 70 5f 50 72 6f  |%=.:.. "Wimp_Pro|
00004600  63 65 73 73 4b 65 79 22  2c 62 6c 6b 25 21 32 34  |cessKey",blk%!24|
00004610  3a e1 0d 02 89 05 cb 0d  02 8a 30 e7 21 62 6c 6b  |:.........0.!blk|
00004620  25 3c 3e 73 65 74 77 25  3a c8 99 20 22 57 69 6d  |%<>setw%:.. "Wim|
00004630  70 5f 50 72 6f 63 65 73  73 4b 65 79 22 2c 62 6c  |p_ProcessKey",bl|
00004640  6b 25 21 32 34 3a e1 0d  02 8b 43 e7 28 28 62 6c  |k%!24:....C.((bl|
00004650  6b 25 21 32 34 29 3d 31  33 29 80 28 28 28 62 6c  |k%!24)=13).(((bl|
00004660  6b 25 21 34 29 3d 69 5f  73 73 77 72 69 74 65 25  |k%!4)=i_sswrite%|
00004670  29 84 28 28 62 6c 6b 25  21 34 29 3d 69 5f 73 64  |).((blk%!4)=i_sd|
00004680  77 72 69 74 65 25 29 29  20 8c 0d 02 8c 10 20 c8  |write%)) ..... .|
00004690  8e 20 62 6c 6b 25 21 34  20 ca 0d 02 8d 3e 20 20  |. blk%!4 ....>  |
000046a0  c9 20 69 5f 73 73 77 72  69 74 65 25 3a f2 73 61  |. i_sswrite%:.sa|
000046b0  76 65 73 65 74 75 70 28  a4 67 65 74 69 63 6e 73  |vesetup(.geticns|
000046c0  74 72 69 6e 67 28 73 65  74 77 25 2c 69 5f 73 73  |tring(setw%,i_ss|
000046d0  77 72 69 74 65 25 29 29  0d 02 8e 24 20 20 c9 20  |write%))...$  . |
000046e0  69 5f 73 64 77 72 69 74  65 25 3a f2 73 65 74 73  |i_sdwrite%:.sets|
000046f0  61 76 65 64 69 72 66 72  6f 6d 4f 4b 0d 02 8f 06  |avedirfromOK....|
00004700  20 cb 0d 02 90 05 cc 0d  02 91 25 20 e7 28 28 62  | .........% .((b|
00004710  6c 6b 25 21 34 29 3e 3d  35 37 29 80 28 28 62 6c  |lk%!4)>=57).((bl|
00004720  6b 25 21 34 29 3c 3d 37  32 29 20 8c 0d 02 92 14  |k%!4)<=72) .....|
00004730  20 20 c8 8e 20 28 62 6c  6b 25 21 32 34 29 20 ca  |  .. (blk%!24) .|
00004740  0d 02 93 95 20 20 20 c9  20 26 31 38 46 3a 20 e7  |....   . &18F: .|
00004750  28 62 6c 6b 25 21 34 29  3e 3d 35 38 3a c8 99 20  |(blk%!4)>=58:.. |
00004760  22 57 69 6d 70 5f 53 65  74 43 61 72 65 74 50 6f  |"Wimp_SetCaretPo|
00004770  73 69 74 69 6f 6e 22 2c  73 65 74 75 70 77 25 2c  |sition",setupw%,|
00004780  28 62 6c 6b 25 21 34 29  2d 31 2c 30 2c 30 2c 2d  |(blk%!4)-1,0,0,-|
00004790  31 2c a9 28 a4 67 65 74  69 63 6e 73 74 72 69 6e  |1,.(.geticnstrin|
000047a0  67 28 73 65 74 75 70 77  25 2c 28 62 6c 6b 25 21  |g(setupw%,(blk%!|
000047b0  34 29 2d 31 29 29 3a 8b  3a c8 99 20 22 57 69 6d  |4)-1)):.:.. "Wim|
000047c0  70 5f 50 72 6f 63 65 73  73 4b 65 79 22 2c 62 6c  |p_ProcessKey",bl|
000047d0  6b 25 21 32 34 0d 02 94  98 20 20 20 c9 20 26 31  |k%!24....   . &1|
000047e0  38 45 2c 31 33 3a 20 e7  28 62 6c 6b 25 21 34 29  |8E,13: .(blk%!4)|
000047f0  3c 3d 37 31 3a c8 99 20  22 57 69 6d 70 5f 53 65  |<=71:.. "Wimp_Se|
00004800  74 43 61 72 65 74 50 6f  73 69 74 69 6f 6e 22 2c  |tCaretPosition",|
00004810  73 65 74 75 70 77 25 2c  28 62 6c 6b 25 21 34 29  |setupw%,(blk%!4)|
00004820  2b 31 2c 30 2c 30 2c 2d  31 2c a9 28 a4 67 65 74  |+1,0,0,-1,.(.get|
00004830  69 63 6e 73 74 72 69 6e  67 28 73 65 74 75 70 77  |icnstring(setupw|
00004840  25 2c 28 62 6c 6b 25 21  34 29 2b 31 29 29 3a 8b  |%,(blk%!4)+1)):.|
00004850  3a c8 99 20 22 57 69 6d  70 5f 50 72 6f 63 65 73  |:.. "Wimp_Proces|
00004860  73 4b 65 79 22 2c 62 6c  6b 25 21 32 34 0d 02 95  |sKey",blk%!24...|
00004870  25 20 20 20 7f 3a c8 99  20 22 57 69 6d 70 5f 50  |%   .:.. "Wimp_P|
00004880  72 6f 63 65 73 73 4b 65  79 22 2c 62 6c 6b 25 21  |rocessKey",blk%!|
00004890  32 34 0d 02 96 07 20 20  cb 0d 02 97 06 20 cc 0d  |24....  ..... ..|
000048a0  02 98 22 20 20 c8 99 20  22 57 69 6d 70 5f 50 72  |.."  .. "Wimp_Pr|
000048b0  6f 63 65 73 73 4b 65 79  22 2c 62 6c 6b 25 21 32  |ocessKey",blk%!2|
000048c0  34 0d 02 99 06 20 cd 0d  02 9a 05 cd 0d 02 9b 05  |4.... ..........|
000048d0  e1 0d 02 9c 04 0d 02 9d  0f dd f2 6d 65 6e 75 63  |...........menuc|
000048e0  6c 69 63 6b 0d 02 9e 23  c8 99 20 22 57 69 6d 70  |lick...#.. "Wimp|
000048f0  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00004900  2c 2c 62 6c 6b 32 25 0d  02 9f 18 63 75 72 72 6d  |,,blk2%....currm|
00004910  65 6e 75 62 75 74 25 3d  62 6c 6b 32 25 21 38 0d  |enubut%=blk2%!8.|
00004920  02 a0 12 c8 8e 20 63 75  72 72 6d 65 6e 75 25 20  |..... currmenu% |
00004930  ca 0d 02 a1 0a 20 c9 20  2d 31 3a 0d 02 a2 10 20  |..... . -1:.... |
00004940  20 c8 8e 20 21 62 6c 6b  25 20 ca 0d 02 a3 20 f4  | .. !blk% .... .|
00004950  20 20 20 20 57 48 45 4e  20 30 3a 20 50 52 4f 43  |    WHEN 0: PROC|
00004960  63 68 65 63 6b 61 64 6a  75 73 74 0d 02 a4 24 20  |checkadjust...$ |
00004970  20 20 c9 20 31 3a 20 f2  6f 70 65 6e 73 65 74 75  |  . 1: .opensetu|
00004980  70 77 3a f2 63 68 65 63  6b 61 64 6a 75 73 74 0d  |pw:.checkadjust.|
00004990  02 a5 13 20 20 20 c9 20  32 3a 20 71 75 69 74 25  |...   . 2: quit%|
000049a0  3d b9 0d 02 a6 07 20 20  cb 0d 02 a7 05 cb 0d 02  |=.....  ........|
000049b0  a8 05 e1 0d 02 a9 04 0d  02 aa 11 dd f2 63 68 65  |.............che|
000049c0  63 6b 61 64 6a 75 73 74  0d 02 ab 37 e7 63 75 72  |ckadjust...7.cur|
000049d0  72 6d 65 6e 75 62 75 74  25 3d 31 3a c8 99 20 22  |rmenubut%=1:.. "|
000049e0  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
000049f0  2c 2c 6d 65 6e 75 25 2c  31 30 30 2c 31 30 30 0d  |,,menu%,100,100.|
00004a00  02 ac 05 e1 0d 02 ad 04  0d 02 ae 10 dd f2 6f 70  |..............op|
00004a10  65 6e 73 65 74 75 70 77  0d 02 af 15 e7 ac a4 69  |ensetupw.......i|
00004a20  73 6f 70 65 6e 28 73 65  74 77 25 29 8c 0d 02 b0  |sopen(setw%)....|
00004a30  2f 20 21 62 6c 6b 25 3d  73 65 74 77 25 3a c8 99  |/ !blk%=setw%:..|
00004a40  20 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  | "Wimp_GetWindow|
00004a50  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 02 b1 38  |State",,blk%...8|
00004a60  20 e7 78 6d 61 78 65 63  25 3e 31 32 37 32 3a 62  | .xmaxec%>1272:b|
00004a70  6c 6b 25 21 34 3d a8 28  28 78 6d 61 78 65 63 25  |lk%!4=.((xmaxec%|
00004a80  2d 31 32 37 32 29 2f 32  29 3a 8b 3a 62 6c 6b 25  |-1272)/2):.:blk%|
00004a90  21 34 3d 30 0d 02 b2 36  20 e7 79 6d 61 78 65 63  |!4=0...6 .ymaxec|
00004aa0  25 3e 39 31 36 3a 62 6c  6b 25 21 38 3d a8 28 28  |%>916:blk%!8=.((|
00004ab0  79 6d 61 78 65 63 25 2d  39 31 36 29 2f 32 29 3a  |ymaxec%-916)/2):|
00004ac0  8b 3a 62 6c 6b 25 21 38  3d 30 0d 02 b3 43 20 62  |.:blk%!8=0...C b|
00004ad0  6c 6b 25 21 31 32 3d 28  62 6c 6b 25 21 34 29 2b  |lk%!12=(blk%!4)+|
00004ae0  31 32 37 32 3a 62 6c 6b  25 21 31 36 3d 28 62 6c  |1272:blk%!16=(bl|
00004af0  6b 25 21 38 29 2b 39 31  36 3a 62 6c 6b 25 21 32  |k%!8)+916:blk%!2|
00004b00  30 3d 30 3a 62 6c 6b 25  21 32 34 3d 30 0d 02 b4  |0=0:blk%!24=0...|
00004b10  1f 20 62 6c 6b 25 21 32  38 3d 2d 31 3a f2 6f 70  |. blk%!28=-1:.op|
00004b20  65 6e 77 69 6e 64 28 62  6c 6b 25 29 0d 02 b5 05  |enwind(blk%)....|
00004b30  cd 0d 02 b6 05 e1 0d 02  b7 04 0d 02 b8 0d dd f2  |................|
00004b40  72 65 63 65 69 76 65 0d  02 b9 10 c8 8e 20 62 6c  |receive...... bl|
00004b50  6b 25 21 31 36 20 ca 0d  02 ba 11 20 c9 20 30 3a  |k%!16 ..... . 0:|
00004b60  20 71 75 69 74 25 3d b9  0d 02 bb 37 20 c9 20 32  | quit%=....7 . 2|
00004b70  3a 20 e7 64 72 61 67 67  69 6e 67 25 3d 31 3a f2  |: .dragging%=1:.|
00004b80  73 61 76 65 73 65 74 75  70 28 a4 72 65 61 64 73  |savesetup(.reads|
00004b90  74 72 69 6e 67 28 62 6c  6b 25 2b 34 34 29 29 0d  |tring(blk%+44)).|
00004ba0  02 bc 14 20 20 e7 64 72  61 67 67 69 6e 67 25 3d  |...  .dragging%=|
00004bb0  32 20 8c 0d 02 bd 63 20  20 20 e7 a4 6c 65 61 66  |2 ....c   ..leaf|
00004bc0  28 a4 67 65 74 69 63 6e  73 74 72 69 6e 67 28 73  |(.geticnstring(s|
00004bd0  65 74 77 25 2c 69 5f 73  64 77 72 69 74 65 25 29  |etw%,i_sdwrite%)|
00004be0  29 3d 22 22 3a f2 65 72  72 6f 72 28 22 59 6f 75  |)="":.error("You|
00004bf0  20 6d 75 73 74 20 67 69  76 65 20 74 68 69 73 20  | must give this |
00004c00  64 69 72 65 63 74 6f 72  79 20 61 20 6e 61 6d 65  |directory a name|
00004c10  22 2c 31 29 3a e1 0d 02  be 4f 20 20 20 f2 73 65  |",1):....O   .se|
00004c20  74 73 61 76 65 64 69 72  28 a4 72 65 61 64 73 74  |tsavedir(.readst|
00004c30  72 69 6e 67 28 62 6c 6b  25 2b 34 34 29 2b a4 6c  |ring(blk%+44)+.l|
00004c40  65 61 66 28 a4 67 65 74  69 63 6e 73 74 72 69 6e  |eaf(.geticnstrin|
00004c50  67 28 73 65 74 77 25 2c  69 5f 73 64 77 72 69 74  |g(setw%,i_sdwrit|
00004c60  65 25 29 29 29 0d 02 bf  07 20 20 cd 0d 02 c0 42  |e%)))....  ....B|
00004c70  20 c9 20 33 3a 20 e3 6a  25 3d 30 b8 21 62 6c 6b  | . 3: .j%=0.!blk|
00004c80  25 88 34 3a 62 6c 6b 32  25 21 6a 25 3d 62 6c 6b  |%.4:blk2%!j%=blk|
00004c90  25 21 6a 25 3a ed 3a 61  24 3d a4 72 65 61 64 73  |%!j%:.:a$=.reads|
00004ca0  74 72 69 6e 67 28 62 6c  6b 25 2b 34 34 29 0d 02  |tring(blk%+44)..|
00004cb0  c1 1a 20 20 e7 62 6c 6b  25 21 32 34 3d 69 5f 73  |..  .blk%!24=i_s|
00004cc0  64 64 72 6f 70 25 20 8c  0d 02 c2 43 20 20 20 e7  |ddrop% ....C   .|
00004cd0  a4 66 69 6c 65 74 79 70  65 28 61 24 29 3c 3e 32  |.filetype(a$)<>2|
00004ce0  f2 65 72 72 6f 72 28 22  4f 6e 6c 79 20 64 69 72  |.error("Only dir|
00004cf0  65 63 74 6f 72 69 65 73  20 61 6c 6c 6f 77 65 64  |ectories allowed|
00004d00  20 68 65 72 65 22 2c 31  29 3a e1 0d 02 c3 16 20  | here",1):..... |
00004d10  20 20 f2 73 65 74 73 61  76 65 64 69 72 28 61 24  |  .setsavedir(a$|
00004d20  29 0d 02 c4 07 20 20 cc  0d 02 c5 32 20 20 20 e7  |)....  ....2   .|
00004d30  a4 6c 6f 61 64 5f 66 69  6c 65 28 a4 72 65 61 64  |.load_file(.read|
00004d40  73 74 72 69 6e 67 28 62  6c 6b 25 2b 34 34 29 2c  |string(blk%+44),|
00004d50  62 6c 6b 25 21 34 30 29  20 8c 0d 02 c6 45 20 20  |blk%!40) ....E  |
00004d60  20 20 62 6c 6b 32 25 21  31 32 3d 31 3a 62 6c 6b  |  blk2%!12=1:blk|
00004d70  32 25 21 31 36 3d 34 3a  c8 99 20 22 57 69 6d 70  |2%!16=4:.. "Wimp|
00004d80  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 31 39  |_SendMessage",19|
00004d90  2c 62 6c 6b 32 25 2c 62  6c 6b 32 25 21 32 30 0d  |,blk2%,blk2%!20.|
00004da0  02 c7 08 20 20 20 cd 0d  02 c8 07 20 20 cd 0d 02  |...   .....  ...|
00004db0  c9 05 cb 0d 02 ca 05 e1  0d 02 cb 04 0d 02 cc 13  |................|
00004dc0  dd f2 73 61 76 65 73 65  74 75 70 28 66 24 29 0d  |..savesetup(f$).|
00004dd0  02 cd 08 ea 20 6a 25 0d  02 ce 11 f2 69 63 6e 73  |.... j%.....icns|
00004de0  5f 69 6e 74 69 67 65 72  0d 02 cf 4b e7 20 a7 66  |_intiger...K. .f|
00004df0  24 2c 22 2e 22 29 3d 30  20 f2 65 72 72 6f 72 28  |$,".")=0 .error(|
00004e00  22 54 6f 20 73 61 76 65  2c 20 64 72 61 67 20 74  |"To save, drag t|
00004e10  68 65 20 69 63 6f 6e 20  74 6f 20 61 20 64 69 72  |he icon to a dir|
00004e20  65 63 74 6f 72 79 20 76  69 65 77 65 72 22 2c 30  |ectory viewer",0|
00004e30  29 3a e1 0d 02 d0 0a 58  3d ae 20 66 24 0d 02 d1  |):.....X=. f$...|
00004e40  07 ea 20 85 0d 02 d2 41  ee 85 ea 3a f7 20 85 3a  |.. ....A...:. .:|
00004e50  f2 65 72 72 6f 72 28 f6  24 2b 22 20 28 49 6e 74  |.error(.$+" (Int|
00004e60  65 72 6e 61 6c 20 65 72  72 6f 72 20 63 6f 64 65  |ernal error code|
00004e70  20 22 2b c3 9e 2b 22 29  22 2b bd 30 2c 9f 29 3a  | "+..+")"+.0,.):|
00004e80  d9 23 58 3a e1 0d 02 d3  1b d5 23 58 2c 39 3a d5  |.#X:......#X,9:.|
00004e90  23 58 2c 39 3a d5 23 58  2c 30 3a d5 23 58 2c 30  |#X,9:.#X,0:.#X,0|
00004ea0  0d 02 d4 17 d5 23 58 2c  22 54 61 62 6c 65 41 22  |.....#X,"TableA"|
00004eb0  3b 3a d5 23 58 2c 30 0d  02 d5 4f f1 23 58 2c 41  |;:.#X,0...O.#X,A|
00004ec0  25 2c 42 25 2c 43 25 2c  44 25 2c 45 25 2c 47 25  |%,B%,C%,D%,E%,G%|
00004ed0  2c 48 25 2c 49 25 2c 4a  25 2c 4b 25 2c 4c 25 2c  |,H%,I%,J%,K%,L%,|
00004ee0  4d 25 2c 4e 25 2c 4f 25  2c 50 25 2c 51 25 2c 52  |M%,N%,O%,P%,Q%,R|
00004ef0  25 2c 53 25 2c 54 25 2c  55 25 2c 56 25 2c 57 25  |%,S%,T%,U%,V%,W%|
00004f00  2c 58 25 2c 5a 25 0d 02  d6 14 f4 20 50 52 49 4e  |,X%,Z%..... PRIN|
00004f10  54 23 58 2c 73 74 61 72  74 25 0d 02 d7 13 f1 23  |T#X,start%.....#|
00004f20  58 2c a4 66 69 6e 64 76  6f 6c 75 6d 65 0d 02 d8  |X,.findvolume...|
00004f30  1c f4 20 50 52 49 4e 54  23 58 2c 46 4e 66 69 6e  |.. PRINT#X,FNfin|
00004f40  64 74 61 73 6b 64 69 66  66 0d 02 d9 11 f1 23 58  |dtaskdiff.....#X|
00004f50  2c a4 66 69 6e 64 6d 6f  64 65 0d 02 da 07 f7 20  |,.findmode..... |
00004f60  85 0d 02 db 07 d9 23 58  0d 02 dc 19 ff 22 53 45  |......#X....."SE|
00004f70  54 54 59 50 45 20 22 2b  66 24 2b 22 20 61 65 38  |TTYPE "+f$+" ae8|
00004f80  22 0d 02 dd 45 f2 70 75  74 69 63 6e 73 74 72 69  |"...E.puticnstri|
00004f90  6e 67 28 73 65 74 77 25  2c 69 5f 73 73 77 72 69  |ng(setw%,i_sswri|
00004fa0  74 65 25 2c 66 24 29 3a  ff 22 53 65 74 20 54 61  |te%,f$):."Set Ta|
00004fb0  62 6c 65 41 24 53 61 76  65 47 61 6d 65 50 61 74  |bleA$SaveGamePat|
00004fc0  68 20 22 2b 66 24 0d 02  de 21 c8 99 20 22 57 69  |h "+f$...!.. "Wi|
00004fd0  6d 70 5f 53 65 74 43 61  72 65 74 50 6f 73 69 74  |mp_SetCaretPosit|
00004fe0  69 6f 6e 22 2c 2d 31 0d  02 df 05 e1 0d 02 e0 04  |ion",-1.........|
00004ff0  0d 02 e1 16 dd a4 6c 6f  61 64 5f 66 69 6c 65 28  |......load_file(|
00005000  66 24 2c 74 25 29 0d 02  e2 32 e7 74 25 3c 3e 26  |f$,t%)...2.t%<>&|
00005010  41 45 38 20 f2 65 72 72  6f 72 28 22 4e 6f 74 20  |AE8 .error("Not |
00005020  61 20 73 61 76 65 64 2d  67 61 6d 65 20 66 69 6c  |a saved-game fil|
00005030  65 22 2c 30 29 3a 3d a3  0d 02 e3 21 c8 99 20 22  |e",0):=....!.. "|
00005040  57 69 6d 70 5f 53 65 74  43 61 72 65 74 50 6f 73  |Wimp_SetCaretPos|
00005050  69 74 69 6f 6e 22 2c 2d  31 0d 02 e4 0a 58 3d 8e  |ition",-1....X=.|
00005060  20 66 24 0d 02 e5 07 ea  20 85 0d 02 e6 42 ee 85  | f$..... ....B..|
00005070  ea 3a f7 20 85 3a f2 65  72 72 6f 72 28 f6 24 2b  |.:. .:.error(.$+|
00005080  22 20 28 49 6e 74 65 72  6e 61 6c 20 65 72 72 6f  |" (Internal erro|
00005090  72 20 63 6f 64 65 20 22  2b c3 9e 2b 22 29 22 2b  |r code "+..+")"+|
000050a0  bd 30 2c 9f 29 3a d9 23  58 3a 3d a3 0d 02 e7 2e  |.0,.):.#X:=.....|
000050b0  69 64 25 3d 9a 23 58 2b  28 28 9a 23 58 29 3c 3c  |id%=.#X+((.#X)<<|
000050c0  38 29 2b 28 28 9a 23 58  29 3c 3c 31 36 29 2b 28  |8)+((.#X)<<16)+(|
000050d0  28 9a 23 58 29 3c 3c 32  34 29 0d 02 e8 3f e3 6a  |(.#X)<<24)...?.j|
000050e0  25 3d 30 b8 31 31 3a 62  6c 6b 25 3f 6a 25 3d 9a  |%=0.11:blk%?j%=.|
000050f0  23 58 3a ed 3a 62 6c 6b  25 3f 31 32 3d 30 3a 63  |#X:.:blk%?12=0:c|
00005100  72 65 61 74 6f 72 24 3d  a4 72 65 61 64 73 74 72  |reator$=.readstr|
00005110  69 6e 67 28 62 6c 6b 25  29 0d 02 e9 67 e7 69 64  |ing(blk%)...g.id|
00005120  25 3c 3e 26 39 30 39 20  f2 65 72 72 6f 72 28 22  |%<>&909 .error("|
00005130  49 20 64 6f 20 6e 6f 74  20 75 6e 64 65 72 73 74  |I do not underst|
00005140  61 6e 64 20 74 68 69 73  20 66 69 6c 65 20 61 73  |and this file as|
00005150  20 69 74 20 62 65 6c 6f  6e 67 73 20 74 6f 20 27  | it belongs to '|
00005160  22 2b 63 72 65 61 74 6f  72 24 2b 22 27 2e 22 2b  |"+creator$+"'."+|
00005170  c3 28 69 64 25 29 2c 30  29 3a d9 23 58 3a 3d a3  |.(id%),0):.#X:=.|
00005180  0d 02 ea 47 f4 20 78 78  78 78 78 20 76 61 6c 75  |...G. xxxxx valu|
00005190  65 20 31 33 20 6e 65 65  64 73 20 63 68 61 6e 67  |e 13 needs chang|
000051a0  69 6e 67 20 64 65 70 2e  20 6f 6e 20 61 70 70 6c  |ing dep. on appl|
000051b0  69 63 20 6e 61 6d 65 20  28 31 33 3d 34 2b 54 61  |ic name (13=4+Ta|
000051c0  62 6c 65 41 2b 31 29 0d  02 eb 0a cf 23 58 3d 31  |bleA+1).....#X=1|
000051d0  31 0d 02 ec 4f e8 23 58  2c 41 25 2c 42 25 2c 43  |1...O.#X,A%,B%,C|
000051e0  25 2c 44 25 2c 45 25 2c  47 25 2c 48 25 2c 49 25  |%,D%,E%,G%,H%,I%|
000051f0  2c 4a 25 2c 4b 25 2c 4c  25 2c 4d 25 2c 4e 25 2c  |,J%,K%,L%,M%,N%,|
00005200  4f 25 2c 50 25 2c 51 25  2c 52 25 2c 53 25 2c 54  |O%,P%,Q%,R%,S%,T|
00005210  25 2c 55 25 2c 56 25 2c  57 25 2c 58 25 2c 5a 25  |%,U%,V%,W%,X%,Z%|
00005220  0d 02 ed 24 f4 20 49 4e  50 55 54 23 58 2c 73 74  |...$. INPUT#X,st|
00005230  61 72 74 25 3a 50 52 4f  43 73 65 74 73 74 61 72  |art%:PROCsetstar|
00005240  74 28 30 29 0d 02 ee 23  e8 23 58 2c 76 6f 6c 75  |t(0)...#.#X,volu|
00005250  6d 65 25 3a f2 73 65 74  76 6f 6c 75 6d 65 28 76  |me%:.setvolume(v|
00005260  6f 6c 75 6d 65 25 29 0d  02 ef 24 f4 20 49 4e 50  |olume%)...$. INP|
00005270  55 54 23 58 2c 66 25 3a  50 52 4f 43 73 65 74 74  |UT#X,f%:PROCsett|
00005280  61 73 6b 64 69 66 66 28  66 25 29 0d 02 f0 26 e8  |askdiff(f%)...&.|
00005290  23 58 2c 66 25 3a e7 20  ac 20 a4 69 73 63 67 61  |#X,f%:. . .iscga|
000052a0  6f 6e 6c 79 3a f2 73 65  74 6d 6f 64 65 28 66 25  |only:.setmode(f%|
000052b0  29 0d 02 f1 07 f7 20 85  0d 02 f2 07 d9 23 58 0d  |)..... ......#X.|
000052c0  02 f3 4e f4 20 50 52 4f  43 70 75 74 69 63 6e 73  |..N. PROCputicns|
000052d0  74 72 69 6e 67 28 73 65  74 77 25 2c 69 5f 73 73  |tring(setw%,i_ss|
000052e0  77 72 69 74 65 25 2c 66  24 29 3a 4f 53 43 4c 49  |write%,f$):OSCLI|
000052f0  22 53 65 74 20 54 61 62  6c 65 41 24 53 61 76 65  |"Set TableA$Save|
00005300  47 61 6d 65 50 61 74 68  20 22 2b 66 24 0d 02 f4  |GamePath "+f$...|
00005310  29 70 72 65 6c 69 6e 6b  5f 66 6c 61 67 25 3d 30  |)prelink_flag%=0|
00005320  3a 2a 53 65 74 20 54 61  62 6c 65 41 24 50 72 65  |:*Set TableA$Pre|
00005330  4c 69 6e 6b 20 30 0d 02  f5 11 f2 69 6e 74 69 67  |Link 0.....intig|
00005340  65 72 5f 69 63 6e 73 0d  02 f6 06 3d b9 0d 02 f7  |er_icns....=....|
00005350  04 0d 02 f8 0e dd a4 66  69 6e 64 6d 6f 64 65 0d  |.......findmode.|
00005360  02 f9 15 e7 20 a4 69 73  63 67 61 6f 6e 6c 79 20  |.... .iscgaonly |
00005370  8c 3a 3d 30 0d 02 fa 21  e7 a4 69 73 73 65 6c 65  |.:=0...!..issele|
00005380  63 74 65 64 28 73 65 74  77 25 2c 69 5f 63 67 61  |cted(setw%,i_cga|
00005390  25 29 3a 3d 30 0d 02 fb  06 3d 31 0d 02 fc 04 0d  |%):=0....=1.....|
000053a0  02 fd 12 dd a4 66 69 6e  64 74 61 73 6b 64 69 66  |.....findtaskdif|
000053b0  66 0d 02 fe 1d e7 a4 69  73 73 65 6c 65 63 74 65  |f......isselecte|
000053c0  64 28 73 65 74 77 25 2c  31 33 29 3a 3d 30 0d 02  |d(setw%,13):=0..|
000053d0  ff 1d e7 a4 69 73 73 65  6c 65 63 74 65 64 28 73  |....isselected(s|
000053e0  65 74 77 25 2c 31 34 29  3a 3d 31 0d 03 00 06 3d  |etw%,14):=1....=|
000053f0  32 0d 03 01 04 0d 03 02  10 dd a4 66 69 6e 64 76  |2..........findv|
00005400  6f 6c 75 6d 65 0d 03 03  26 e7 a4 69 73 73 65 6c  |olume...&..issel|
00005410  65 63 74 65 64 28 73 65  74 77 25 2c 69 5f 73 6f  |ected(setw%,i_so|
00005420  75 6e 64 25 28 30 29 29  3a 3d 30 0d 03 04 26 e7  |und%(0)):=0...&.|
00005430  a4 69 73 73 65 6c 65 63  74 65 64 28 73 65 74 77  |.isselected(setw|
00005440  25 2c 69 5f 73 6f 75 6e  64 25 28 31 29 29 3a 3d  |%,i_sound%(1)):=|
00005450  31 0d 03 05 06 3d 32 0d  03 06 04 0d 03 07 12 dd  |1....=2.........|
00005460  a4 66 69 6e 64 63 6f 6e  74 63 6f 6d 6d 0d 03 08  |.findcontcomm...|
00005470  1d e7 a4 69 73 73 65 6c  65 63 74 65 64 28 73 65  |...isselected(se|
00005480  74 77 25 2c 33 39 29 3a  3d 30 0d 03 09 06 3d 31  |tw%,39):=0....=1|
00005490  0d 03 0a 04 0d 03 0b 19  dd a4 63 68 65 63 6b 66  |..........checkf|
000054a0  6f 6e 74 28 61 24 2c 41  25 2c 42 25 29 0d 03 0c  |ont(a$,A%,B%)...|
000054b0  07 ea 20 85 0d 03 0d 0c  ee 20 85 20 ea 3a 3d 30  |.. ...... . .:=0|
000054c0  0d 03 0e 29 c8 99 20 22  46 6f 6e 74 5f 46 69 6e  |...).. "Font_Fin|
000054d0  64 46 6f 6e 74 22 2c 2c  61 24 2c 41 25 2c 42 25  |dFont",,a$,A%,B%|
000054e0  2c 30 2c 30 20 b8 20 68  25 0d 03 0f 1d c8 99 20  |,0,0 . h%...... |
000054f0  22 46 6f 6e 74 5f 4c 6f  73 65 46 6f 6e 74 22 2c  |"Font_LoseFont",|
00005500  68 25 3a f7 20 85 0d 03  10 06 3d b9 0d 03 11 04  |h%:. .....=.....|
00005510  0d 03 12 0f dd f2 73 74  61 72 74 67 61 6d 65 0d  |......startgame.|
00005520  03 13 11 f2 69 63 6e 73  5f 69 6e 74 69 67 65 72  |....icns_intiger|
00005530  0d 03 14 41 e7 4d 25 3d  30 3a f2 65 72 72 6f 72  |...A.M%=0:.error|
00005540  28 22 59 6f 75 20 6d 75  73 74 20 73 65 6c 65 63  |("You must selec|
00005550  74 20 61 63 74 69 76 69  74 69 65 73 20 6f 72 20  |t activities or |
00005560  61 64 76 65 6e 74 75 72  65 73 2e 22 2c 30 29 3a  |adventures.",0):|
00005570  e1 0d 03 15 3c e7 5a 25  3d 30 3a f2 65 72 72 6f  |....<.Z%=0:.erro|
00005580  72 28 22 59 6f 75 20 6d  75 73 74 20 73 65 6c 65  |r("You must sele|
00005590  63 74 20 74 68 65 20 61  63 74 69 76 69 74 79 20  |ct the activity |
000055a0  6c 65 6e 67 74 68 2e 22  2c 30 29 3a e1 0d 03 16  |length.",0):....|
000055b0  38 e7 4f 25 3d 30 3a f2  65 72 72 6f 72 28 22 59  |8.O%=0:.error("Y|
000055c0  6f 75 20 6d 75 73 74 20  73 65 6c 65 63 74 20 74  |ou must select t|
000055d0  68 65 20 67 61 6d 65 73  20 6c 65 76 65 6c 2e 22  |he games level."|
000055e0  2c 30 29 3a e1 0d 03 17  3c e7 52 25 3d 30 20 80  |,0):....<.R%=0 .|
000055f0  20 4d 25 3d 31 3a f2 65  72 72 6f 72 28 22 59 6f  | M%=1:.error("Yo|
00005600  75 20 6d 75 73 74 20 73  65 6c 65 63 74 20 61 6e  |u must select an|
00005610  20 61 64 76 65 6e 74 75  72 65 2e 22 2c 30 29 3a  | adventure.",0):|
00005620  e1 0d 03 18 92 e7 28 28  58 25 20 80 20 31 35 29  |......((X% . 15)|
00005630  3d 30 20 84 20 28 58 25  20 80 20 32 34 30 29 3d  |=0 . (X% . 240)=|
00005640  30 20 84 20 28 58 25 20  80 20 33 38 34 30 29 3d  |0 . (X% . 3840)=|
00005650  30 20 84 20 28 58 25 20  80 20 36 31 34 34 30 29  |0 . (X% . 61440)|
00005660  3d 30 29 20 80 20 4d 25  3d 32 3a f2 65 72 72 6f  |=0) . M%=2:.erro|
00005670  72 28 22 59 6f 75 20 6d  75 73 74 20 73 65 6c 65  |r("You must sele|
00005680  63 74 20 61 6e 20 61 63  74 69 76 69 74 79 20 6f  |ct an activity o|
00005690  72 20 4e 4f 20 41 43 54  49 56 49 54 59 20 69 6e  |r NO ACTIVITY in|
000056a0  20 65 61 63 68 20 63 6f  6c 75 6d 6e 2e 22 2c 30  | each column.",0|
000056b0  29 3a e1 0d 03 19 2e f4  20 69 6e 74 72 6f 20 20  |):...... intro  |
000056c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000056e0  7c 0d 03 1a 09 50 25 3d  50 25 0d 03 1b 2a f4 20  ||....P%=P%...*. |
000056f0  61 64 76 65 6e 74 75 72  65 20 74 79 70 65 20 20  |adventure type  |
00005700  31 20 2d 20 32 30 20 2d  20 34 30 20 2d 20 36 30  |1 - 20 - 40 - 60|
00005710  20 65 74 63 0d 03 1c 10  51 25 3d 28 52 25 2d 31  | etc....Q%=(R%-1|
00005720  29 2a 32 30 0d 03 1d 0f  e7 20 52 25 3d 31 20 51  |)*20..... R%=1 Q|
00005730  25 3d 31 0d 03 1e 18 e7  20 52 25 3e 36 20 51 25  |%=1..... R%>6 Q%|
00005740  3d 52 25 2b 28 32 30 31  2d 37 29 0d 03 1f 1e f4  |=R%+(201-7).....|
00005750  20 73 65 74 20 61 63 74  69 76 69 74 79 20 6c 69  | set activity li|
00005760  73 74 20 74 6f 20 31 73  74 0d 03 20 0f 58 25 3d  |st to 1st.. .X%=|
00005770  58 25 2b 36 35 35 33 36  0d 03 21 1e f4 20 73 65  |X%+65536..!.. se|
00005780  6c 65 63 74 20 77 68 69  63 68 20 74 61 62 6c 65  |lect which table|
00005790  73 20 74 65 73 74 0d 03  22 13 4c 25 3d b3 28 32  |s test..".L%=.(2|
000057a0  29 3a 4a 25 3d b3 28 32  29 0d 03 23 2b f4 20 73  |):J%=.(2)..#+. s|
000057b0  65 74 20 75 70 20 6d 61  69 6e 20 74 61 62 6c 65  |et up main table|
000057c0  73 20 74 65 73 74 20 6e  75 6d 62 65 72 73 20 69  |s test numbers i|
000057d0  6e 20 4e 25 0d 03 24 08  4e 25 3d 30 0d 03 25 0e  |n N%..$.N%=0..%.|
000057e0  e3 66 25 3d 30 20 b8 20  31 32 0d 03 26 3b 20 20  |.f%=0 . 12..&;  |
000057f0  e7 28 55 25 20 80 20 28  31 3c 3c 66 25 29 29 3d  |.(U% . (1<<f%))=|
00005800  28 31 3c 3c 66 25 29 20  66 69 72 73 74 6e 25 28  |(1<<f%) firstn%(|
00005810  66 25 29 3d 31 20 8b 20  66 69 72 73 74 6e 25 28  |f%)=1 . firstn%(|
00005820  66 25 29 3d 30 0d 03 27  05 ed 0d 03 28 0e e3 66  |f%)=0..'....(..f|
00005830  25 3d 30 20 b8 20 31 32  0d 03 29 3d 20 20 e7 28  |%=0 . 12..)=  .(|
00005840  57 25 20 80 20 28 31 3c  3c 66 25 29 29 3d 28 31  |W% . (1<<f%))=(1|
00005850  3c 3c 66 25 29 20 73 65  63 6f 6e 64 6e 25 28 66  |<<f%) secondn%(f|
00005860  25 29 3d 31 20 8b 20 73  65 63 6f 6e 64 6e 25 28  |%)=1 . secondn%(|
00005870  66 25 29 3d 30 0d 03 2a  05 ed 0d 03 2b 13 73 65  |f%)=0..*....+.se|
00005880  63 6e 25 3d 30 3a 66 69  72 6e 25 3d 30 0d 03 2c  |cn%=0:firn%=0..,|
00005890  0c e3 66 25 3d 31 b8 31  32 0d 03 2d 1e 20 20 e7  |..f%=1.12..-.  .|
000058a0  73 65 63 6f 6e 64 6e 25  28 66 25 29 3d 31 3a 73  |secondn%(f%)=1:s|
000058b0  65 63 6e 25 2b 3d 31 0d  03 2e 05 ed 0d 03 2f 0c  |ecn%+=1......./.|
000058c0  e3 66 25 3d 31 b8 31 32  0d 03 30 1d 20 20 e7 66  |.f%=1.12..0.  .f|
000058d0  69 72 73 74 6e 25 28 66  25 29 3d 31 3a 66 69 72  |irstn%(f%)=1:fir|
000058e0  6e 25 2b 3d 31 0d 03 31  05 ed 0d 03 32 50 e7 66  |n%+=1..1....2P.f|
000058f0  69 72 6e 25 3e 73 65 63  6e 25 20 6d 61 69 6e 25  |irn%>secn% main%|
00005900  3d 73 65 63 6e 25 3a e3  66 25 3d 30 20 b8 20 31  |=secn%:.f%=0 . 1|
00005910  32 3a 66 69 72 73 74 6e  25 28 66 25 29 3d 73 65  |2:firstn%(f%)=se|
00005920  63 6f 6e 64 6e 25 28 66  25 29 3a ed 20 8b 20 6d  |condn%(f%):. . m|
00005930  61 69 6e 25 3d 66 69 72  6e 25 0d 03 33 0e e7 6d  |ain%=firn%..3..m|
00005940  61 69 6e 25 3e 33 20 8c  0d 03 34 10 20 20 20 20  |ain%>3 ...4.    |
00005950  4e 25 3d 34 3c 3c 32 34  0d 03 35 05 cc 0d 03 36  |N%=4<<24..5....6|
00005960  14 20 20 20 20 4e 25 3d  6d 61 69 6e 25 3c 3c 32  |.    N%=main%<<2|
00005970  34 0d 03 37 0e 20 20 20  20 6c 6f 63 25 3d 30 0d  |4..7.    loc%=0.|
00005980  03 38 12 20 20 20 20 e3  66 25 3d 31 20 b8 20 31  |.8.    .f%=1 . 1|
00005990  32 0d 03 39 39 20 20 20  20 20 20 e7 66 69 72 73  |2..99      .firs|
000059a0  74 6e 25 28 66 25 29 3d  31 3a 4e 25 3d 28 4e 25  |tn%(f%)=1:N%=(N%|
000059b0  20 84 20 28 66 25 3c 3c  6c 6f 63 25 29 29 3a 6c  | . (f%<<loc%)):l|
000059c0  6f 63 25 3d 6c 6f 63 25  2b 38 0d 03 3a 09 20 20  |oc%=loc%+8..:.  |
000059d0  20 20 ed 0d 03 3b 05 cd  0d 03 3c 08 47 25 3d 30  |  ...;....<.G%=0|
000059e0  0d 03 3d 0d 54 25 3d 30  3a 49 25 3d 30 0d 03 3e  |..=.T%=0:I%=0..>|
000059f0  2e f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.. *************|
00005a00  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00005a10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 7c 0d 03 3f 9a e7  |**********|..?..|
00005a20  20 28 66 61 63 74 31 25  3d 31 20 80 20 66 69 72  | (fact1%=1 . fir|
00005a30  73 74 6e 25 28 30 29 3d  31 29 20 84 20 28 66 61  |stn%(0)=1) . (fa|
00005a40  63 74 32 25 3d 31 20 80  20 73 65 63 6f 6e 64 6e  |ct2%=1 . secondn|
00005a50  25 28 30 29 3d 31 29 3a  f2 65 72 72 6f 72 28 22  |%(0)=1):.error("|
00005a60  59 6f 75 20 6d 75 73 74  20 68 61 76 65 20 61 74  |You must have at|
00005a70  20 6c 65 61 73 74 20 6f  6e 65 20 6e 75 6d 62 65  | least one numbe|
00005a80  72 20 28 4e 6f 74 20 5a  65 72 6f 29 20 73 65 6c  |r (Not Zero) sel|
00005a90  65 63 74 65 64 20 66 72  6f 6d 20 62 6f 74 68 20  |ected from both |
00005aa0  66 61 63 74 6f 72 20 63  6f 6c 75 6d 6e 73 2e 22  |factor columns."|
00005ab0  2c 30 29 3a e1 0d 03 40  6d e7 20 66 61 63 74 31  |,0):...@m. fact1|
00005ac0  25 3d 30 20 84 20 66 61  63 74 32 25 3d 30 20 3a  |%=0 . fact2%=0 :|
00005ad0  f2 65 72 72 6f 72 28 22  59 6f 75 20 6d 75 73 74  |.error("You must|
00005ae0  20 68 61 76 65 20 61 74  20 6c 65 61 73 74 20 6f  | have at least o|
00005af0  6e 65 20 6e 75 6d 62 65  72 20 73 65 6c 65 63 74  |ne number select|
00005b00  65 64 20 66 72 6f 6d 20  62 6f 74 68 20 66 61 63  |ed from both fac|
00005b10  74 6f 72 20 63 6f 6c 75  6d 6e 73 2e 22 2c 30 29  |tor columns.",0)|
00005b20  3a e1 0d 03 41 6d e7 20  66 61 63 74 31 25 2b 66  |:...Am. fact1%+f|
00005b30  61 63 74 32 25 3c 34 20  3a f2 65 72 72 6f 72 28  |act2%<4 :.error(|
00005b40  22 59 6f 75 20 6d 75 73  74 20 68 61 76 65 20 61  |"You must have a|
00005b50  74 20 6c 65 61 73 74 20  66 6f 75 72 20 6e 75 6d  |t least four num|
00005b60  62 65 72 73 20 73 65 6c  65 63 74 65 64 20 66 72  |bers selected fr|
00005b70  6f 6d 20 65 69 74 68 65  72 20 66 61 63 74 6f 72  |om either factor|
00005b80  20 63 6f 6c 75 6d 6e 73  2e 22 2c 30 29 3a e1 0d  | columns.",0):..|
00005b90  03 42 51 e7 20 58 25 3d  36 39 39 30 35 20 80 20  |.BQ. X%=69905 . |
00005ba0  4d 25 3d 32 3a f2 65 72  72 6f 72 28 22 59 6f 75  |M%=2:.error("You|
00005bb0  20 6d 75 73 74 20 68 61  76 65 20 61 74 20 6c 65  | must have at le|
00005bc0  61 73 74 20 6f 6e 65 20  61 63 74 69 76 69 74 79  |ast one activity|
00005bd0  20 73 65 6c 65 63 74 65  64 2e 22 2c 30 29 3a e1  | selected.",0):.|
00005be0  0d 03 43 38 c8 99 20 22  46 6f 6e 74 5f 52 65 61  |..C8.. "Font_Rea|
00005bf0  64 46 6f 6e 74 4d 61 78  22 20 b8 20 66 6d 25 2c  |dFontMax" . fm%,|
00005c00  66 6d 31 25 2c 66 6d 32  25 2c 66 6d 33 25 2c 66  |fm1%,fm2%,fm3%,f|
00005c10  6d 34 25 2c 66 6d 35 25  0d 03 44 43 e7 66 6d 32  |m4%,fm5%..DC.fm2|
00005c20  25 3c 35 37 36 30 30 20  c8 99 20 22 46 6f 6e 74  |%<57600 .. "Font|
00005c30  5f 53 65 74 46 6f 6e 74  4d 61 78 22 2c 66 6d 25  |_SetFontMax",fm%|
00005c40  2c 66 6d 31 25 2c 35 37  36 30 30 2c 35 37 36 30  |,fm1%,57600,5760|
00005c50  30 2c 66 6d 34 25 2c 66  6d 35 25 0d 03 45 33 c8  |0,fm4%,fm5%..E3.|
00005c60  99 20 22 4f 53 5f 42 79  74 65 22 2c 31 33 35 20  |. "OS_Byte",135 |
00005c70  b8 20 2c 2c 61 25 3a ff  22 53 65 74 20 54 61 62  |. ,,a%:."Set Tab|
00005c80  6c 65 41 24 4d 6f 64 65  20 22 2b c3 61 25 0d 03  |leA$Mode "+.a%..|
00005c90  46 37 ff 22 53 65 74 20  54 61 62 6c 65 41 24 53  |F7."Set TableA$S|
00005ca0  61 76 65 20 22 2b a4 67  65 74 69 63 6e 73 74 72  |ave "+.geticnstr|
00005cb0  69 6e 67 28 73 65 74 77  25 2c 69 5f 73 64 77 72  |ing(setw%,i_sdwr|
00005cc0  69 74 65 25 29 0d 03 47  0a 48 25 3d 6d 63 25 0d  |ite%)..G.H%=mc%.|
00005cd0  03 48 09 4b 25 3d 48 25  0d 03 49 08 56 25 3d 31  |.H.K%=H%..I.V%=1|
00005ce0  0d 03 4a 24 61 24 3d a4  72 65 61 64 73 79 73 76  |..J$a$=.readsysv|
00005cf0  61 72 28 22 54 61 62 6c  65 41 24 45 6e 74 72 79  |ar("TableA$Entry|
00005d00  50 74 22 29 0d 03 4b 08  68 25 3d 30 0d 03 4c 0b  |Pt")..K.h%=0..L.|
00005d10  e7 59 25 3d 30 20 8c 0d  03 4d 0b 20 20 2a 41 44  |.Y%=0 ...M.  *AD|
00005d20  46 53 0d 03 4e 0e 20 20  2a 4d 4f 55 4e 54 20 30  |FS..N.  *MOUNT 0|
00005d30  0d 03 4f 31 20 20 c8 99  20 22 58 4f 53 5f 46 69  |..O1  .. "XOS_Fi|
00005d40  6e 64 22 2c 26 34 30 2c  22 24 2e 21 54 61 62 6c  |nd",&40,"$.!Tabl|
00005d50  65 73 2e 50 74 31 2e 6c  69 6e 6b 22 20 b8 20 68  |es.Pt1.link" . h|
00005d60  25 0d 03 50 1d 20 20 f4  20 50 52 4f 43 65 72 72  |%..P.  . PROCerr|
00005d70  6f 72 28 53 54 52 24 28  68 25 29 2c 30 29 0d 03  |or(STR$(h%),0)..|
00005d80  51 44 20 20 e7 68 25 3e  32 35 35 20 84 20 68 25  |QD  .h%>255 . h%|
00005d90  3d 30 3a f2 65 72 72 6f  72 28 22 50 6c 65 61 73  |=0:.error("Pleas|
00005da0  65 20 70 6c 61 63 65 20  64 69 73 6b 20 4f 6e 65  |e place disk One|
00005db0  20 69 6e 20 64 72 69 76  65 20 30 2e 22 2c 31 29  | in drive 0.",1)|
00005dc0  3a e1 0d 03 52 0a 20 20  d9 23 68 25 0d 03 53 05  |:...R.  .#h%..S.|
00005dd0  cd 0d 03 54 59 e7 a4 63  68 65 63 6b 66 6f 6e 74  |...TY..checkfont|
00005de0  28 22 54 61 62 6c 6f 69  64 2e 6d 65 64 69 75 6d  |("Tabloid.medium|
00005df0  22 2c 33 32 30 2c 33 36  30 29 3d a3 20 f2 65 72  |",320,360)=. .er|
00005e00  72 6f 72 28 22 46 6f 6e  74 3a 27 54 61 62 6c 6f  |ror("Font:'Tablo|
00005e10  69 64 2e 4d 65 64 69 75  6d 27 20 6e 6f 74 20 66  |id.Medium' not f|
00005e20  6f 75 6e 64 22 2c 30 29  3a e1 0d 03 55 12 e7 20  |ound",0):...U.. |
00005e30  a4 69 73 63 67 61 6f 6e  6c 79 20 8c 0d 03 56 72  |.iscgaonly ...Vr|
00005e40  20 20 56 25 3d 30 3a c8  99 20 22 57 69 6d 70 5f  |  V%=0:.. "Wimp_|
00005e50  53 65 74 4d 6f 64 65 22  2c 31 35 3a e7 28 a4 72  |SetMode",15:.(.r|
00005e60  65 61 64 76 64 75 76 61  72 28 31 35 30 29 2f 31  |eadvduvar(150)/1|
00005e70  30 32 34 29 3c 31 36 30  20 f2 65 72 72 6f 72 28  |024)<160 .error(|
00005e80  22 4e 6f 74 20 65 6e 6f  75 67 68 20 6d 65 6d 6f  |"Not enough memo|
00005e90  72 79 20 74 6f 20 63 68  61 6e 67 65 20 73 63 72  |ry to change scr|
00005ea0  65 65 6e 20 6d 6f 64 65  22 2c 31 29 3a e1 0d 03  |een mode",1):...|
00005eb0  57 05 cc 0d 03 58 0f 20  e7 20 a4 69 73 76 67 61  |W....X. . .isvga|
00005ec0  20 8c 0d 03 59 19 20 20  ff 22 53 65 74 20 54 61  | ...Y.  ."Set Ta|
00005ed0  62 6c 65 41 24 56 67 61  20 31 22 0d 03 5a 72 20  |bleA$Vga 1"..Zr |
00005ee0  20 56 25 3d 31 3a c8 99  20 22 57 69 6d 70 5f 53  | V%=1:.. "Wimp_S|
00005ef0  65 74 4d 6f 64 65 22 2c  32 38 3a e7 28 a4 72 65  |etMode",28:.(.re|
00005f00  61 64 76 64 75 76 61 72  28 31 35 30 29 2f 31 30  |advduvar(150)/10|
00005f10  32 34 29 3c 33 30 30 20  f2 65 72 72 6f 72 28 22  |24)<300 .error("|
00005f20  4e 6f 74 20 65 6e 6f 75  67 68 20 6d 65 6d 6f 72  |Not enough memor|
00005f30  79 20 74 6f 20 63 68 61  6e 67 65 20 73 63 72 65  |y to change scre|
00005f40  65 6e 20 6d 6f 64 65 22  2c 31 29 3a e1 0d 03 5b  |en mode",1):...[|
00005f50  06 20 cc 0d 03 5c 19 20  20 ff 22 53 65 74 20 54  |. ...\.  ."Set T|
00005f60  61 62 6c 65 41 24 56 67  61 20 30 22 0d 03 5d 72  |ableA$Vga 0"..]r|
00005f70  20 20 56 25 3d 30 3a c8  99 20 22 57 69 6d 70 5f  |  V%=0:.. "Wimp_|
00005f80  53 65 74 4d 6f 64 65 22  2c 31 35 3a e7 28 a4 72  |SetMode",15:.(.r|
00005f90  65 61 64 76 64 75 76 61  72 28 31 35 30 29 2f 31  |eadvduvar(150)/1|
00005fa0  30 32 34 29 3c 31 36 30  20 f2 65 72 72 6f 72 28  |024)<160 .error(|
00005fb0  22 4e 6f 74 20 65 6e 6f  75 67 68 20 6d 65 6d 6f  |"Not enough memo|
00005fc0  72 79 20 74 6f 20 63 68  61 6e 67 65 20 73 63 72  |ry to change scr|
00005fd0  65 65 6e 20 6d 6f 64 65  22 2c 31 29 3a e1 0d 03  |een mode",1):...|
00005fe0  5e 06 20 cd 0d 03 5f 05  cd 0d 03 60 22 c8 99 20  |^. ..._....`".. |
00005ff0  22 57 69 6d 70 5f 43 6c  6f 73 65 44 6f 77 6e 22  |"Wimp_CloseDown"|
00006000  2c 2c 26 34 42 35 33 34  31 35 34 0d 03 61 0e f2  |,,&4B534154..a..|
00006010  73 61 76 65 73 6f 75 6e  64 0d 03 62 17 76 6f 6c  |savesound..b.vol|
00006020  75 6d 65 25 3d a4 66 69  6e 64 76 6f 6c 75 6d 65  |ume%=.findvolume|
00006030  0d 03 63 10 c8 8e 20 76  6f 6c 75 6d 65 25 20 ca  |..c... volume% .|
00006040  0d 03 64 1c 20 c9 20 30  3a c8 99 20 22 53 6f 75  |..d. . 0:.. "Sou|
00006050  6e 64 5f 56 6f 6c 75 6d  65 22 2c 31 0d 03 65 33  |nd_Volume",1..e3|
00006060  20 c9 20 31 2c 32 2c 33  3a c8 99 20 22 53 6f 75  | . 1,2,3:.. "Sou|
00006070  6e 64 5f 56 6f 6c 75 6d  65 22 2c 31 32 37 2d 28  |nd_Volume",127-(|
00006080  31 36 2a 28 33 2d 76 6f  6c 75 6d 65 25 29 29 0d  |16*(3-volume%)).|
00006090  03 66 05 cb 0d 03 67 0f  d3 3d 6f 6c 64 68 69 6d  |.f....g..=oldhim|
000060a0  65 6d 25 0d 03 68 12 e7  20 a4 69 73 63 67 61 6f  |em%..h.. .iscgao|
000060b0  6e 6c 79 20 8c 0d 03 69  07 eb 31 32 0d 03 6a 05  |nly ...i..12..j.|
000060c0  cc 0d 03 6b 15 e7 a4 69  73 76 67 61 3a eb 32 37  |...k...isvga:.27|
000060d0  3a 8b 3a eb 31 32 0d 03  6c 05 cd 0d 03 6d 2f de  |:.:.12..l....m/.|
000060e0  20 73 63 61 6c 65 25 20  31 36 2c 73 77 61 70 25  | scale% 16,swap%|
000060f0  28 32 30 2c 32 29 2c 69  6e 70 75 74 5f 64 69 73  |(20,2),input_dis|
00006100  6b 5f 6e 61 6d 65 25 20  33 32 0d 03 6e 0b 76 67  |k_name% 32..n.vg|
00006110  61 25 3d 56 25 0d 03 6f  0f 69 6e 74 72 6f 24 3d  |a%=V%..o.intro$=|
00006120  22 6e 6f 22 0d 03 70 3b  e7 a7 61 24 2c 22 66 72  |"no"..p;..a$,"fr|
00006130  6f 6d 73 74 61 72 74 75  70 22 29 3a f2 67 65 74  |omstartup"):.get|
00006140  5f 66 6f 6e 74 73 3a f2  67 65 74 5f 73 6f 75 6e  |_fonts:.get_soun|
00006150  64 73 3a 69 6e 74 72 6f  24 3d 22 79 65 73 22 0d  |ds:intro$="yes".|
00006160  03 71 22 ff 22 53 65 74  20 54 61 62 6c 65 41 24  |.q"."Set TableA$|
00006170  45 6e 74 72 79 50 74 20  66 72 6f 6d 70 72 6f 67  |EntryPt fromprog|
00006180  22 0d 03 72 12 6d 65 6d  74 6f 70 25 3d 26 37 41  |"..r.memtop%=&7A|
00006190  46 30 30 0d 03 73 13 41  25 3d 6d 65 6d 74 6f 70  |F00..s.A%=memtop|
000061a0  25 3a d0 3d 41 25 0d 03  74 24 41 25 3d 31 3a d7  |%:.=A%..t$A%=1:.|
000061b0  22 3c 54 61 62 6c 65 41  24 44 69 72 3e 2e 50 74  |"<TableA$Dir>.Pt|
000061c0  31 2e 70 72 65 6c 69 6e  6b 22 0d 03 75 05 e0 0d  |1.prelink"..u...|
000061d0  03 76 04 0d 03 77 10 dd  f2 67 65 74 5f 73 6f 75  |.v...w...get_sou|
000061e0  6e 64 73 0d 03 78 1b f4  20 6f 70 65 6e 20 61 20  |nds..x.. open a |
000061f0  50 61 63 6b 73 6f 75 6e  64 20 66 69 6c 65 0d 03  |Packsound file..|
00006200  79 2d c8 99 20 26 34 36  31 38 31 2c 46 25 2c 22  |y-.. &46181,F%,"|
00006210  3c 54 61 62 6c 65 41 24  44 69 72 3e 2e 53 50 61  |<TableA$Dir>.SPa|
00006220  63 6b 46 69 6c 65 22 2c  32 33 30 0d 03 7a 13 f4  |ckFile",230..z..|
00006230  20 45 6e 73 75 72 65 20  73 6f 75 6e 64 73 0d 03  | Ensure sounds..|
00006240  7b 1d c8 99 20 26 34 36  31 38 34 2c 46 25 2c 22  |{... &46184,F%,"|
00006250  61 6c 69 65 6e 73 6e 65  61 72 22 0d 03 7c 18 c8  |aliensnear"..|..|
00006260  99 20 26 34 36 31 38 34  2c 46 25 2c 22 63 61 72  |. &46184,F%,"car|
00006270  74 32 22 0d 03 7d 19 c8  99 20 26 34 36 31 38 34  |t2"..}... &46184|
00006280  2c 46 25 2c 22 63 6c 61  6e 67 32 22 0d 03 7e 1c  |,F%,"clang2"..~.|
00006290  c8 99 20 26 34 36 31 38  34 2c 46 25 2c 22 63 6f  |.. &46184,F%,"co|
000062a0  6d 70 75 74 65 72 31 22  0d 03 7f 1b c8 99 20 26  |mputer1"...... &|
000062b0  34 36 31 38 34 2c 46 25  2c 22 65 78 70 6c 6f 64  |46184,F%,"explod|
000062c0  65 33 22 0d 03 80 1b c8  99 20 26 34 36 31 38 34  |e3"...... &46184|
000062d0  2c 46 25 2c 22 65 78 70  6c 6f 64 65 34 22 0d 03  |,F%,"explode4"..|
000062e0  81 18 c8 99 20 26 34 36  31 38 34 2c 46 25 2c 22  |.... &46184,F%,"|
000062f0  66 69 72 65 21 22 0d 03  82 1d c8 99 20 26 34 36  |fire!"...... &46|
00006300  31 38 34 2c 46 25 2c 22  66 69 72 65 5f 62 75 62  |184,F%,"fire_bub|
00006310  62 32 22 0d 03 83 19 c8  99 20 26 34 36 31 38 34  |b2"...... &46184|
00006320  2c 46 25 2c 22 67 72 6f  77 6c 32 22 0d 03 84 1d  |,F%,"growl2"....|
00006330  c8 99 20 26 34 36 31 38  34 2c 46 25 2c 22 69 6e  |.. &46184,F%,"in|
00006340  73 69 64 65 5f 75 66 6f  22 0d 03 85 1c c8 99 20  |side_ufo"...... |
00006350  26 34 36 31 38 34 2c 46  25 2c 22 69 6e 76 61 64  |&46184,F%,"invad|
00006360  69 6e 67 32 22 0d 03 86  1d c8 99 20 26 34 36 31  |ing2"...... &461|
00006370  38 34 2c 46 25 2c 22 6c  61 73 65 72 5f 64 6f 6f  |84,F%,"laser_doo|
00006380  72 22 0d 03 87 16 c8 99  20 26 34 36 31 38 34 2c  |r"...... &46184,|
00006390  46 25 2c 22 6f 6b 32 22  0d 03 88 19 c8 99 20 26  |F%,"ok2"...... &|
000063a0  34 36 31 38 34 2c 46 25  2c 22 72 6f 62 6f 74 73  |46184,F%,"robots|
000063b0  22 0d 03 89 1a c8 99 20  26 34 36 31 38 34 2c 46  |"...... &46184,F|
000063c0  25 2c 22 73 61 74 75 72  6e 35 22 0d 03 8a 19 c8  |%,"saturn5".....|
000063d0  99 20 26 34 36 31 38 34  2c 46 25 2c 22 73 63 69  |. &46184,F%,"sci|
000063e0  66 69 33 22 0d 03 8b 17  c8 99 20 26 34 36 31 38  |fi3"...... &4618|
000063f0  34 2c 46 25 2c 22 77 69  6e 64 22 0d 03 8c 19 c8  |4,F%,"wind".....|
00006400  99 20 26 34 36 31 38 34  2c 46 25 2c 22 77 72 6f  |. &46184,F%,"wro|
00006410  6e 67 32 22 0d 03 8d 17  c8 99 20 26 34 36 31 38  |ng2"...... &4618|
00006420  34 2c 46 25 2c 22 61 72  72 72 22 0d 03 8e 17 c8  |4,F%,"arrr".....|
00006430  99 20 26 34 36 31 38 34  2c 46 25 2c 22 70 6c 6f  |. &46184,F%,"plo|
00006440  70 22 0d 03 8f 1d c8 99  20 26 34 36 31 38 34 2c  |p"...... &46184,|
00006450  46 25 2c 22 63 6c 61 6e  67 5f 6c 6f 63 6b 22 0d  |F%,"clang_lock".|
00006460  03 90 18 c8 99 20 26 34  36 31 38 34 2c 46 25 2c  |..... &46184,F%,|
00006470  22 66 69 72 65 33 22 0d  03 91 19 c8 99 20 26 34  |"fire3"...... &4|
00006480  36 31 38 34 2c 46 25 2c  22 63 72 61 63 6b 32 22  |6184,F%,"crack2"|
00006490  0d 03 92 19 c8 99 20 26  34 36 31 38 34 2c 46 25  |...... &46184,F%|
000064a0  2c 22 61 61 61 72 68 32  22 0d 03 93 05 e1 0d 03  |,"aaarh2".......|
000064b0  94 04 0d 03 95 0f dd f2  67 65 74 5f 66 6f 6e 74  |........get_font|
000064c0  73 0d 03 96 0c 2a 46 58  31 31 32 2c 32 0d 03 97  |s....*FX112,2...|
000064d0  53 f2 70 72 69 28 30 2c  35 30 30 2c 31 2c 22 61  |S.pri(0,500,1,"a|
000064e0  62 63 64 65 66 67 68 69  6a 6b 6c 6d 6e 6f 70 71  |bcdefghijklmnopq|
000064f0  72 73 74 75 76 77 78 79  7a 41 42 43 44 45 46 47  |rstuvwxyzABCDEFG|
00006500  48 49 4a 4b 4c 4d 4e 4f  50 51 52 53 54 55 56 57  |HIJKLMNOPQRSTUVW|
00006510  58 59 5a 2e 2c 27 21 3f  2d 3a 28 29 2b 3d 22 29  |XYZ.,'!?-:()+=")|
00006520  0d 03 98 0c 2a 46 58 31  31 32 2c 31 0d 03 99 05  |....*FX112,1....|
00006530  e1 0d 03 9a 04 0d 03 9b  17 dd f2 70 72 69 28 78  |...........pri(x|
00006540  25 2c 79 25 2c 73 69 25  2c 61 24 29 0d 03 9c 3a  |%,y%,si%,a$)...:|
00006550  c8 99 22 46 6f 6e 74 5f  46 69 6e 64 46 6f 6e 74  |.."Font_FindFont|
00006560  22 2c 2c 22 54 41 42 4c  4f 49 44 2e 4d 45 44 49  |",,"TABLOID.MEDI|
00006570  55 4d 22 2c 33 32 30 2c  33 36 30 2c 30 2c 30 20  |UM",320,360,0,0 |
00006580  b8 20 68 61 6e 25 0d 03  9d 23 c8 99 22 46 6f 6e  |. han%...#.."Fon|
00006590  74 5f 53 65 74 46 6f 6e  74 43 6f 6c 6f 75 72 73  |t_SetFontColours|
000065a0  22 2c 30 2c 30 2c 31 2c  32 0d 03 9e 14 ef 30 2c  |",0,0,1,2.....0,|
000065b0  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 0d 03 9f  |0,0,0,0,0,0,0...|
000065c0  1f c8 99 22 46 6f 6e 74  5f 50 61 69 6e 74 22 2c  |..."Font_Paint",|
000065d0  2c 61 24 2c 31 36 2c 78  25 2c 79 25 0d 03 a0 1a  |,a$,16,x%,y%....|
000065e0  c8 99 22 46 6f 6e 74 5f  4c 6f 73 65 46 6f 6e 74  |.."Font_LoseFont|
000065f0  22 2c 68 61 6e 25 0d 03  a1 05 e1 0d 03 a2 04 0d  |",han%..........|
00006600  03 a3 0d dd f2 70 61 6c  65 74 74 65 0d 03 a4 18  |.....palette....|
00006610  ef 31 39 2c 31 2c 32 34  2c 31 33 36 2c 31 33 36  |.19,1,24,136,136|
00006620  2c 31 33 36 0d 03 a5 10  ea 70 25 2c 72 25 2c 67  |,136.....p%,r%,g|
00006630  25 2c 62 25 0d 03 a6 07  f7 2b 37 0d 03 a7 0c e3  |%,b%.....+7.....|
00006640  70 25 3d 30 b8 31 35 0d  03 a8 1a f3 72 25 2c 67  |p%=0.15.....r%,g|
00006650  25 2c 62 25 3a fb 70 25  2c 72 25 2c 67 25 2c 62  |%,b%:.p%,r%,g%,b|
00006660  25 0d 03 a9 05 ed 0d 03  aa 15 ef 31 39 2c 31 2c  |%..........19,1,|
00006670  32 34 2c 30 2c 30 2c 30  3b 30 3b 0d 03 ab 05 e1  |24,0,0,0;0;.....|
00006680  0d 03 ac 04 0d 03 ad 2f  dc 20 32 35 35 2c 32 35  |......./. 255,25|
00006690  35 2c 32 35 35 2c 31 38  37 2c 31 38 37 2c 31 38  |5,255,187,187,18|
000066a0  37 2c 31 31 39 2c 31 31  39 2c 31 31 39 2c 30 2c  |7,119,119,119,0,|
000066b0  30 2c 30 0d 03 ae 2c dc  20 32 35 35 2c 32 35 35  |0,0...,. 255,255|
000066c0  2c 30 2c 30 2c 35 30 2c  32 35 35 2c 31 38 37 2c  |,0,0,50,255,187,|
000066d0  31 38 37 2c 31 38 37 2c  30 2c 31 35 33 2c 30 0d  |187,187,0,153,0.|
000066e0  03 af 2b dc 20 32 32 34  2c 32 32 34 2c 32 32 34  |..+. 224,224,224|
000066f0  2c 31 36 34 2c 31 36 34  2c 31 36 34 2c 30 2c 30  |,164,164,164,0,0|
00006700  2c 30 2c 32 35 35 2c 30  2c 30 0d 03 b0 27 dc 20  |,0,255,0,0...'. |
00006710  31 33 36 2c 31 30 32 2c  30 2c 30 2c 32 30 34 2c  |136,102,0,0,204,|
00006720  30 2c 30 2c 31 35 33 2c  30 2c 30 2c 31 31 39 2c  |0,0,153,0,0,119,|
00006730  30 0d ff                                          |0..|
00006733