Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407 » 10_10Frnch/Escher/!Projector/!RunImage

10_10Frnch/Escher/!Projector/!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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407
Filename: 10_10Frnch/Escher/!Projector/!RunImage
Read OK:
File size: 3EC7 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>$.!Projector.!RunImage
   20REM (C) Tony Cheal/Ace Computing Nov 1991 Version 1.22
   30REM This program may be freely distributed, BUT its contents are Copyright
   40REM Should be with version 1.00 Euclid or EuclidX or above
   50REM Plays back a film in Ace Film format using either the full
   60REM blown Euclid Module or the Public Domain EuclidX
   70
   80REMONERRORERROREXT ERR,REPORT$+" "+STR$ERL
   90SYS"OS_SWINumberFromString",,"OS_SpriteOp" TO SO%
  100SYS"OS_SWINumberFromString",,"Euclid_Expand" TO EX%
  110DIMMV%20,TK%4:P%=MV%:SCRAP%=FALSE:BBC%=FALSE:RY%=FALSE:DIMSUP%100,DM%1000
  120[OPT2:LDR 3,[0],#4:STR 3,[1],#4:SUBS 2,2,#4:BNE MV%:MOVS PC,14:]
  130DIMTIT%1000:TT%=TIT%:DIMB%1000:KS%=68:WT%=950
  140IFFNVarVal("Projector$Country")=""THEN
  150SYS6,70,127TO,C%
  160SYS"OS_ServiceCall",,&43,2,C%,B%,255TO,,,,,L%:B%?L%=&D:C$=LEFT$($B%,10)
  170OSCLI"Set Projector$Country "+C$
  180ENDIF
  190C%=OPENIN("<Projector$Resources>.Templates")
  200IFC%THEN
  210   CLOSE#C%
  220ELSE
  230   !B%=1:$(B%+4)="Can't find resources for "+FNVarVal("Projector$Country")+" - defaulting to UK"
  240   SYS"Wimp_ReportError",B%,%1,"Projector":OSCLI"Set Projector$Country UK"
  250ENDIF
  260PROCMess("<Projector$Resources>.Messages")
  270SYS"Wimp_Initialise",200,&4B534154,"Ace Film Player" TO V%
  280B%!0=-1:B%!4=0:B%!8=0:B%!12=68:B%!16=90:B%!20=%10OR3<<12
  290$(B%+24)="!projector":SYS"Wimp_CreateIcon",,B%TOZ%
  300SYS"Wimp_OpenTemplate",,"<Projector$Resources>.Templates"
  310DIMQ%1000,R%4:!R%=0:C%=Q%
  320G%=FNTemp("ProgInfo"):H%=FNTemp("FilmInfo"):FS%=FNTemp("FullMode")
  330SYS"Wimp_CloseTemplate"
  340DIMSPR%256:!SPR%=256:SPR%!4=0:SPR%!8=16:SPR%!12=16
  350SYSSO%,&10F,SPR%,"C",,40,16,8:MO%=FALSE:XO%=FALSE
  360MI%=FNMVar(MODE,9)ORFNMVar(MODE,4)<<8ORFNMVar(MODE,5)<<16
  370
  380DIMDEL%200:V%=DEL%
  390PROCMenuT("DEL")
  400DL%=V%+12:T%=FNESVL("!2","a0-9",&84,5,-1)
  410
  420DIMROL%200:V%=ROL%
  430PROCMenuT("ROL")
  440RLL%=V%+12:T%=FNESVL("!1","a0-9",&84,5,-1)
  450
  460DIMMENU%1000:V%=MENU%
  470REMVDU23,&90,&10,&38,&7C,&FE,&7C,&10,&38,&00:ACE$=CHR$&90
  480PROCMenuT("PRJ")
  490INF%=V%:PROCMenuE("INF",0):INF%!4=G%
  500RO%=V%:PROCMenuE("ROL",0):RO%!4=ROL%
  510T%=V%:PROCMenuE("DEL",0):T%!4=DEL%
  520FRFM%=V%:PROCMenuE("FRF",0)
  530PROCMenuE("QUT",&80)
  540PROCEndMenu
  550
  560DIMFMENU%1000:V%=FMENU%
  570PROCMenuT("PRJ")
  580MISC%=V%:PROCMenuE("MSC",0)
  590FR%=V%:PROCMenuE("FRZ",0)
  600REV%=V%:PROCMenuE("REV",0)
  610YOYO%=V%:PROCMenuE("YOY",0)
  620PROCMenuE("FFR",0)
  630PROCMenuE("LFR",0)
  640INF%=V%:PROCMenuE("FSC",0):INF%!4=FS%
  650MD%=V%:PROCMenuE("STM",&80)
  660PROCEndMenu
  670
  680MISC%!4=V%:PROCMenuT("MSC")
  690INF%=V%:PROCMenuE("INF",0):INF%!4=G%
  700INF%=V%:PROCMenuE("FIL",0):INF%!4=H%
  710PROCMenuE("NVW",0)
  720FRF%=V%:PROCMenuE("FRF",&80)
  730PROCEndMenu
  740
  750EN%=HIMEM:FC%=2:WM%=MODE:LO%=TRUE:END=END+&1000:MT%=HIMEM:REPEAT
  760RC%=1:RY%=FALSE:DS%=FALSE:SYS"OS_GetEnv" TO E$:I%=INSTR(E$,"-quit")
  770I%=INSTR(E$,"""",I%+1):I%=INSTR(E$,"""",I%+1):E$=MID$(E$,I%+1)
  780WHILELEFT$(E$,1)=" ":E$=MID$(E$,2):ENDWHILE
  790WHILEE$<>STRING$(LENE$," ")
  800I%=INSTR(E$+" "," "):F$=LEFT$(E$,I%-1)
  810E$=MID$(E$,I%+1):WHILELEFT$(E$,1)=" ":E$=MID$(E$,2):ENDWHILE
  820IFLO%ELSEK%=!R%:WHILEK%:!B%=K%!20:PROCWhich(!B%):PROCClose:K%=!R%:ENDWHILE
  830IFLEFT$(F$,1)="-"THEN
  840   CASEMID$(F$,2,1)OF
  850   WHEN"r","R":PROCRoll(RC%,FC%):PROCEND
  860   WHEN"f","F":FC%=VALMID$(F$,3)
  870   WHEN"l","L":K%=!R%
  880 IFK%:PROCWhich(K%!20):PROCFull(RC%,FC%):IFI%=27:SYS"Wimp_SetMode",WM%:PROCEND
  890   IFLO%LO%=FALSE:SYS"Wimp_SlotSize",EN%-&8000,-1
  900   WHEN"c","C":RC%=VALMID$(F$,3)
  910   WHEN"w","W":RC%=-RC%
  920   WHEN"e","E":IFLO%ELSESYS"Wimp_SetMode",WM%:PROCEND
  930   WHEN"y","Y":RY%=NOTRY%
  940   WHEN"d","D":DS%=NOTDS%
  950   WHEN"o","O":!FRFM%=!FRFM%EOR1
  960   ENDCASE
  970ELSE
  980   PROCLoadAFilm(F$)
  990   IFLO%ELSEK%=!R%:IFK%:PROCWhich(K%!20):PROCFull(RC%,FC%):IFI%=27:SYS"Wimp_SetMode",WM%:PROCEND
 1000ENDIF
 1010ENDWHILE
 1020IFLO%ELSEK%=!R%:WHILEK%:!B%=K%!20:PROCWhich(!B%):PROCClose:K%=!R%:ENDWHILE
 1030UNTILLO%
 1040ONERROR:PROCError
 1050SYS"OS_ReadMonotonicTime"TOIT%
 1060REPEAT
 1070SYS"Wimp_PollIdle",,B%,IT%+VAL$!DL%TOA%
 1080CASEA%OF
 1090WHEN0:SYS"OS_ReadMonotonicTime"TOIT%:K%=!R%
 1100WHILEK%:M%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:W%=K%!20:CT%=K%!44
 1110IFK%!24THEN
 1120IFK%!32ELSEF%=M%+M%!16:IFDPTR%=F%+!F%:K%!28=TRUE
 1130IFK%!28PROCNextFrame ELSEPROCLastFrame
 1140IFK%!32ELSEIF!DPTR%=0:K%!28=FALSE
 1150ENDIF:K%=!K%:ENDWHILE
 1160WHEN1:PROCWhich(!B%):PROCRedraw
 1170WHEN2:PROCWhich(!B%):PROCOpen
 1180WHEN3:PROCWhich(!B%):PROCClose
 1190WHEN6
 1200   CASEB%!12OF
 1210   WHENFS%:IFB%!8AND7THEN
 1220   SYS"Wimp_CloseWindow",,B%+12:PROCWhich(MW%)
 1230   WM%=MODE:J%=2:RY%=NOTK%!32:PROCFull(0,J%):SYS"Wimp_SetMode",WM%
 1240   IFB%!8AND1PROCPopup(MEN%)ELSEPROCPopup(-1)
 1250   ENDIF
 1260   WHEN-2:IFB%!16=Z%MX%=B%!0-80:MY%=314
 1270      PROCSelect(RO%,!R%=0):PROCPopup(MENU%)
 1280   WHENG%,H%
 1290   OTHERWISE:PROCWhich(B%!12):PROCButton
 1300   ENDCASE
 1310WHEN9:PROCMenus
 1320WHEN17,18
 1330   CASEB%!16OF
 1340   WHEN0:SYS"Wimp_CloseDown":PROCEND
 1350   WHEN1:IFB%!40=&D6AORB%!40=&C2ATHEN
 1360      !B%=60:B%!12=B%!8:B%!16=2:B%!36=-1:$(B%+44)="<Wimp$Scrap>"+CHR$0
 1370      SYS"Wimp_SendMessage",17,B%,B%!4:SCRAP%=B%!8
 1380      ENDIF
 1390   WHEN3,5:IFB%!40=&D6AORB%!40=&C2ATHEN
 1400         F$=FNZS(B%+44):IFSCRAP%:SCRAP%=SCRAP%=B%!12
 1410         B%!12=B%!8:B%!16=4:SYS"Wimp_SendMessage",17,B%,B%!4
 1420         RY%=FALSE:PROCLoadAFilm(F$)
 1430         IFSCRAP%:SCRAP%=FALSE:SYS"OS_File",6,F$
 1440      ENDIF
 1450   WHEN9,&400C1:K%=!R%:WHILEK%:!(K%!44)=!(K%!4+28):IFK%!52:!(K%!44)=-1
 1460      K%=!K%:ENDWHILE
 1470      MI%=FNMVar(MODE,9)ORFNMVar(MODE,4)<<8ORFNMVar(MODE,5)<<16
 1480   ENDCASE
 1490ENDCASE
 1500UNTIL0
 1510
 1520DEFPROCClose
 1530L%=K%!36:N%=L%:WHILEN%!40:L%=N%:N%=N%!40:ENDWHILE
 1540IFK%!40THEN
 1550FORI%=12TO32STEP4:SWAPK%!I%,N%!I%:NEXT
 1560IFK%!16>0K%!16-=N%!8-K%!8
 1570IFN%!16>0N%!16-=K%!8-N%!8
 1580SYSSO%,&13C,S%,"X"TO R0,R1,R2,R3:SYSSO%,&122,N%!8,"X",,,3
 1590SYSSO%,&13C,N%!8,"X":SYSSO%,&122,S%,"X",,,3
 1600SYSSO%,&13C,S%,"X":SYSSO%,&122,N%!8,"X",,,3:SYSSO%,R0,R1,R2,R3
 1610PROCWhich(!B%)
 1620ENDIF
 1630L%!40=0:SYS"Wimp_CloseWindow",,B%:SYS"Wimp_DeleteWindow",,B%
 1640M%=K%!56:IFK%!36<>K%M%=S%ELSEIFK%!60CLOSE#K%!60
 1650!I%=!K%:E%=K%+KS%:L%=E%-M%
 1660IFE%<MT%THEN
 1670J%=R%:I%=!J%:WHILEI%
 1680PROCAdjust(!J%)
 1690PROCAdjust(I%!4):PROCAdjust(I%!8):PROCAdjust(I%!12):PROCAdjust(I%!16)
 1700PROCAdjust(I%!36):PROCAdjust(I%!40):PROCAdjust(!((I%!44)+4))
 1710PROCAdjust(I%!44):PROCAdjust(I%!52):PROCAdjust(I%!56)
 1720J%=I%:I%=!J%
 1730ENDWHILE
 1740PROCMove(M%+L%,M%,MT%-(M%+L%))
 1750ENDIF
 1760MT%-=L%:IFLO%SYS"Wimp_SlotSize",MT%-&8000,-1
 1770ENDPROC
 1780
 1790DEFPROCAdjust(RETURN P%):IFP%>M%:P%-=L%
 1800ENDPROC
 1810
 1820DEFPROCOpen:SYS"Wimp_OpenWindow",,B%:ENDPROC
 1830
 1840DEFPROCRedraw
 1850SYS"Wimp_RedrawWindow",,B% TO F%
 1860WHILEF%:X%=B%!4-B%!20:Y%=B%!16-B%!24:PROCRedrawSprite
 1870SYS"Wimp_GetRectangle",,B% TO F%:ENDWHILE
 1880ENDPROC
 1890
 1900DEFPROCButton
 1910CASEB%!8OF
 1920WHEN1:PROCLastFrame
 1930WHEN2:PROCTick(FR%,K%!24):PROCTick(REV%,K%!28):PROCTick(YOYO%,K%!32):PROCTick(FRF%,K%!60=0)
 1940PROCSelect(MD%,MODE=M%!28):MX%=B%!0-80:MY%=B%!4
 1950PROCSetI(H%,0,STR$M%!28):PROCSetI(H%,1,STR$!M%):PROCSetI(H%,2,FNMSG("NO"))
 1960IFM%!32=1PROCSetI(H%,2,FNMSG("YES"))ELSEPROCSetI(H%,2,FNMSG("NO"))
 1970IF(M%!36AND3)=0PROCSetI(H%,3,FNMSG("NO"))ELSEPROCSetI(H%,3,FNMSG("YES"))
 1980PROCSetI(H%,4,STR$M%!20):PROCSetI(H%,5,STR$M%!24)
 1990PROCPopup(FMENU%):MW%=W%
 2000WHEN4:PROCNextFrame
 2010ENDCASE
 2020ENDPROC
 2030
 2040DEFPROCMenus
 2050CASEMEN%OF
 2060WHENMENU%:CASE!B%OF
 2070   WHEN0:PROCPopup(G%):ENDPROC
 2080   WHEN1:PROCRoll(VAL$!RLL%,2)
 2090   WHEN3:!FRFM%=!FRFM%EOR1
 2100   WHEN4:SYS"Wimp_CloseDown":PROCEND
 2110   ENDCASE
 2120WHENFMENU%:PROCWhich(MW%):CASE!B%OF
 2130   WHEN0:CASEB%!4OF
 2140      WHEN2:Q%=K%:WHILEQ%!40:Q%=Q%!40:ENDWHILE
 2150      CP%=Q%!52:FH%=Q%!60:BB%=Q%!64:PROCSetFilm
 2160      K%!36=Q%!36:Q%!40=K%
 2170      ENDCASE
 2180   WHEN1:K%!24=NOTK%!24
 2190   WHEN2:K%!28=NOTK%!28
 2200   WHEN3:K%!32=NOTK%!32
 2210   WHEN4:DPTR%=M%+M%!16:SCR%=0:PROCNextFrame:K%!28=TRUE
 2220   WHEN5:DPTR%=M%+M%!16:SCR%=0:PROCNewFrame:PROCLastFrame:K%!28=FALSE
 2230   WHEN6:WM%=MODE:J%=2:RY%=NOTK%!32:PROCFull(0,J%):SYS"Wimp_SetMode",WM%
 2240   WHEN7:SYS"Wimp_SetMode",M%!28
 2250   ENDCASE
 2260   PROCTick(FR%,K%!24):PROCTick(REV%,K%!28):PROCTick(YOYO%,K%!32)
 2270   PROCSelect(MD%,MODE=M%!28)
 2280ENDCASE
 2290SYS"Wimp_GetPointerInfo",,B%:IFB%!8AND1:PROCPopup(MEN%)ELSEPROCPopup(-1)
 2300ENDPROC
 2310
 2320DEFPROCWindow(T$,B%!28,!B%,B%!4,B%!8,B%!12,B%!40,B%!44,B%!48,B%!52)
 2330REMT$=ACE$+" "+T$+" "+ACE$
 2340T%=TT%:TT%+=LENT$+1
 2350IFTT%>TIT%+1000:TT%=TIT%:T%=TT%
 2360B%!72=T%:B%!76=-1:B%!80=LENT$:$T%=T$
 2370B%!16=(!B%-B%!8)DIV2:B%!20=(B%!12-B%!4)DIV2:B%!24=-1
 2380B%!32=&01070207:B%!36=&000C0103
 2390B%!56=%100001001:B%!60=2<<12:B%!64=0:B%!68=&10001:B%!84=0
 2400SYS"Wimp_CreateWindow",,B% TO W%
 2410!B%=W%:SYS"Wimp_GetWindowState",,B%:SYS"Wimp_OpenWindow",,B%
 2420ENDPROC
 2430
 2440DEFPROCNextFrame:PROCNewFrame
 2450B%!4=-3E4:B%!8=-3E4:B%!12=3E4:B%!16=3E4:!B%=W%
 2460SYS"Wimp_UpdateWindow",,B% TO F%
 2470WHILEF%:X%=B%!4-B%!20:Y%=B%!16-B%!24:PROCRedrawSprite
 2480SYS"Wimp_GetRectangle",,B% TO F%:ENDWHILE
 2490ENDPROC
 2500
 2510DEFPROCLastFrame
 2520IFDPTR%<>M%+M%!16THEN
 2530DPTR%-=DPTR%!-4
 2540IF(M%!36AND3)=0THEN
 2550  IFDPTR%=M%+M%!16:WHILE!DPTR%:DPTR%+=!DPTR%:ENDWHILE
 2560  DPTR%-=DPTR%!-4:PROCNextFrame
 2570ELSE
 2580  IFDPTR%=M%+M%!16THEN
 2590  DPTR%+=!DPTR%:SYS"Hourglass_On":WHILE!(DPTR%+!DPTR%)
 2600  PROCNewFrame:ENDWHILE:SYS"Hourglass_Off":PROCNextFrame
 2610  ELSE
 2620  PROCNextFrame:K%!12=DPTR%-DPTR%!-4:IFK%!12=M%+M%!16:K%!16=0
 2630  ENDIF
 2640ENDIF
 2650ENDIF
 2660ENDPROC
 2670
 2680DEFPROCNewFrame
 2690IF!DPTR%=0:DPTR%=M%+M%!16:SCR%=0
 2700SYSSO%,&13C,S%,"X"TO R0,R1,R2,R3
 2710LOCALERROR:ONERRORLOCAL:RESTOREERROR:SYSSO%,R0,R1,R2,R3:!B%=K%!20:PROCWhich(!B%):PROCClose:K%=!R%:ERROR ERR,REPORT$
 2720IFK%!60=0SYSEX%,M%!32,DPTR%,SCR%,M%!40 TO ,DPTR%,SCR%ELSEPROCEX(DPTR%,SCR%)
 2730IF(M%!36AND3)=0SCR%=0
 2740RESTOREERROR:SYSSO%,R0,R1,R2,R3
 2750K%!12=DPTR%:K%!16=SCR%
 2760ENDPROC
 2770
 2780DEFPROCMakeSprite
 2790XR%=FNMVar(M%!28,4):YR%=FNMVar(M%!28,5):LB%=FNMVar(M%!28,10)
 2800SS%=((1<<XR%)<<5-LB%)-1
 2810SS%=(((M%!20+SS%>>XR%)>>5-LB%)<<2)*(M%!24>>YR%)+100
 2820S%=FNAlloc(SS%):!S%=SS%:S%!4=0:S%!8=16:S%!12=16:SYSSO%,&109,S%
 2830SYSSO%,&10F,S%,"X",0,M%!20>>XR%,M%!24>>YR%,M%!28
 2840ENDPROC
 2850
 2860DEFPROCRedrawSprite
 2870IF!CT%<>MODE:PROCTable
 2880IFMI%=K%!48ANDK%!52=0THEN
 2890   SYSSO%,&122,S%,"X",X%,Y%
 2900ELSE
 2910   SYSSO%,&134,S%,"X",X%,Y%,,,CT%!4
 2920ENDIF
 2930ENDPROC
 2940
 2950DEFPROCLoadFilm(F$)
 2960SYS"OS_File",5,F$ TO O%,,T%,,L%:IFO%<>1ERROR1,"Can't find film '"+F$+"'"
 2970IF(T%>>8)<>-982:IF!FRFM%AND1PROCPseudoLoad(F$):ENDPROC
 2980FH%=0:BB%=0:MM%=FNAlloc(L%):M%=MM%:SYS"OS_File",&FF,F$,M%
 2990CT%=FNAlloc(264):CP%=0:!CT%=M%!28
 3000IF(T%>>8)=-982THEN
 3010IFFNChunk(&454C4150):CP%=M%+O%+36:!CT%=-1
 3020IFFNChunk(&46454341):M%+=O%+8ELSEERROR1,"Film chunk not found"
 3030ENDIF
 3040ENDPROC
 3050
 3060DEFFNChunk(C%)LOCALT%:O%=0
 3070WHILEO%<L%ANDNOTT%:IFM%!O%=C%:T%=TRUE ELSEO%+=M%!(O%+4):ENDWHILE
 3080=T%
 3090
 3100DEFPROCLoadAFilm(E$)
 3110PROCLoadFilm(E$):PROCSetFilm
 3120ENDPROC
 3130
 3140DEFPROCSetFilm:PROCMakeSprite
 3150IFWT%-M%!24<180:WT%=950
 3160PROCWindow($(M%+4),%1111,300,WT%-M%!24,M%!20+300,WT%,0,0,M%!20,M%!24)
 3170WT%-=48:DPTR%=M%+M%!16:SCR%=0:CM%=M%!28:K%=FNAlloc(KS%)
 3180!K%=!R%:!R%=K%:K%!4=M%:K%!8=S%:K%!20=W%:K%!24=!(DPTR%+!DPTR%)<>0
 3190K%!28=TRUE:K%!32=(M%!36AND4)=0EORRY%:K%!36=K%:K%!40=0:K%!44=CT%
 3200K%!48=FNMVar(M%!28,9)ORFNMVar(M%!28,4)<<8ORFNMVar(M%!28,5)<<16
 3210K%!52=CP%:K%!56=MM%:K%!60=FH%:K%!64=BB%
 3220PROCNextFrame
 3230ENDPROC
 3240
 3250DEFFNTemp(T$):SYS"Wimp_LoadTemplate",,B%,C%,Q%+1000,-1,T$TO,,C%
 3260SYS"Wimp_CreateWindow",,B%TOT%:=T%
 3270
 3280DEFPROCTick(T%,F%):IFF%:!T%=!T%ANDNOT1ELSE!T%=!T%OR1
 3290ENDPROC
 3300DEFPROCSelect(T%,F%):IFF%:T%!8=T%!8OR1<<22ELSET%!8=T%!8ANDNOT(1<<22)
 3310ENDPROC
 3320DEFFNZS(I%)LOCALA$:REPEATA$+=CHR$?I%:I%+=1:UNTIL?I%=0:=A$
 3330
 3340DEFFNAlloc(L%):LOCALE%,T%:IFLO%E%=MT%+L%-&8000 ELSEE%=-1
 3350SYS"Wimp_SlotSize",E%,-1TOT%:T%+=&8000
 3360IFT%<MT%+L%ERROR1,FNMSG("INS")
 3370MT%+=L%:=MT%-L%
 3380
 3390DEFPROCWhich(T%):W%=T%:J%=R%:K%=!J%
 3400WHILEK%:IFW%=K%!20:M%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:CT%=K%!44:I%=J%
 3410J%=K%:K%=!J%:ENDWHILE:K%=!I%
 3420ENDPROC
 3430
 3440DEFPROCMove(A%,B%,C%):CALLMV%:ENDPROC
 3450
 3460DEFPROCPopup(N%):SYS"Wimp_CreateMenu",,N%,MX%,MY%:MEN%=N%:ENDPROC
 3470
 3480DEFPROCSetI(W%,I%,S$):LOCALF%:!B%=W%:SYS"Wimp_GetWindowInfo",,B%
 3490IFI%>=0:I%=B%+112+I%*32:F%=I%-4ELSEI%=B%+76:F%=B%+60
 3500IF!F%AND1<<8:$!I%=LEFT$(S$,I%!8-1)ELSE$I%=LEFT$(S$,11)
 3510ENDPROC
 3520
 3530DEFPROCRoll(RC%,U%):IFRC%<=0:RC%=1
 3540WM%=MODE:REPEAT:I%=0:FK%=0:WHILEFK%<>!R%ANDI%<>27
 3550K%=!R%:WHILE!K%<>FK%:K%=!K%:ENDWHILE:FK%=K%
 3560M%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:W%=K%!20:CT%=K%!44:RY%=NOTK%!32
 3570PROCFull(RC%,U%):K%=!K%:ENDWHILE
 3580UNTILI%=27:SYS"Wimp_SetMode",WM%
 3590ENDPROC
 3600
 3610DEFPROCFull(RL%,RETURN W%):LOCALJ%:LOCALERROR
 3620FW%=M%!20:FH%=M%!24:FM%=M%!28:SW%=FNMVar(FM%,4):SH%=FNMVar(FM%,5)
 3630FW2%=(FW%DIV2>>SW%)>>3-FNMVar(FM%,9):FH2%=FH%DIV2>>SH%
 3640FW2%=(FW2%<<SW%)<<3-FNMVar(FM%,9):FH2%=FH2%<<SH%
 3650SW%=(FNMVar(FM%,11)+1<<SW%)DIV2:SH%=(FNMVar(FM%,12)+1<<SH%)DIV2
 3660T%=TRUE:LOCALERROR:ONERRORLOCAL:RESTOREERROR:T%=FALSE
 3670FORI%=0TO15:SUP%?(I%*4)=I%:SYS"OS_Word",&B,SUP%+I%*4:NEXT
 3680IFT%MODEFM%+128:RESTOREERROR ELSEMODEFM%
 3690ONERRORLOCAL:RESTOREERROR:SYS"Wimp_SetMode",WM%:ERROR ERR,REPORT$
 3700IFMODE<>FM%ERROR1,"Mode for film not available"
 3710SYS"ColourTrans_InvalidateCache"
 3720IFFNMVar(MODE,9)<=2THEN
 3730E%=B%+100:SYS"Wimp_ReadPalette",,E%:IFK%!52:E%=K%!52
 3740IFFNMVar(MODE,9)=2ORK%!52THEN
 3750FORI%=0TOFNMVar(MODE,3)
 3760VDU19,I%,16OR(SUP%?(I%*4+1)AND&80),E%?1,E%?2,E%?3:E%+=4:NEXT
 3770ENDIF
 3780ENDIF
 3790IFK%!52:E%=K%!52:E%+=E%?-24<<2:VDU5:SYS"ColourTrans_SetGCOL",!E%,,,128:CLG:VDU19,0,24,E%?1,E%?2,E%?3
 3800OFF:E%=1:PROCF:CLS:PROCF:CLS:F%=RL%>0:IFMO%MOUSEON2
 3810VDU24,SW%-FW2%;SH%-FH2%;SW%-FW2%+FW%-1;SH%-FH2%+FH%-1;
 3820D%=M%+M%!16:C%=0:c%=-1:CM%=FM%:PROCE:PROCF
 3830REPEATREPEATI%=INKEY0:SYS6,&B0,255:PROCR
 3840UNTILI%=27OR(RL%AND!D%=0):RL%=ABSRL%-1:UNTILRL%<=0ORI%=27
 3850RESTOREERROR
 3860ENDPROC
 3870
 3880DEFPROCR:IFMO%PROCC
 3890IFF%ELSEIFI%<0REPEATI%=INKEY0:PROCC:UNTILI%>=0
 3900IFI%<32ANDNOTBBC%PROCE:REPEATSYS6,&B0,,255TO,T%:UNTILT%<256-W%:PROCF
 3910IFI%<0ANDF%:ENDPROC
 3920IFDS%ANDNOTINKEY-1:I%=0
 3930SYS6,15:IFBBC%ANDI%<>2I%=ASC"+"
 3940IFI%=2:BBC%=NOTBBC%:F%=FALSE:I%=ASC"F":IFBBC%VDU7
 3950IFI%=32:F%=NOTF%:ENDPROC
 3960IFI%=13:F%=FALSE:ENDPROC
 3970CASECHR$I%OF
 3980WHEN"I","i":VDU23,0,8,&81+F%|:F%=NOTF%:ENDPROC
 3990WHEN"F","f":D%=M%+M%!16:C%=0:c%=-1:PROCE:PROCF:ENDPROC
 4000WHEN"L","l","s","S"
 4010IF(M%!36AND3)=0THEN
 4020   IF!D%WHILE!(D%+!D%):D%+=!D%:c%+=1:ENDWHILE:PROCE:PROCF
 4030ELSE
 4040   IF!D%:WHILE!D%:PROCE:ENDWHILE:PROCF
 4050ENDIF
 4060IFCHR$I%="s"ORCHR$I%="S":RL%=-1
 4070ENDPROC
 4080WHEN"C","c"
 4090IFMO%ANDNOTXO%:MOUSEOFF:MO%=FALSE ELSEMOUSEON2:MO%=TRUE:XO%=FALSE
 4100ENDPROC
 4110WHEN"X","x"
 4120IFMO%ANDXO%:MOUSEOFF:MO%=FALSE ELSEMOUSEON2:MO%=TRUE:XO%=TRUE
 4130ENDPROC
 4140WHEN"Y","y":RY%=(RY%>>1)=0:ENDPROC
 4150WHEN"0","1","2","3","4","5","6","7","8","9":W%=VALCHR$I%:ENDPROC
 4160WHEN"+":IF!D%PROCE:PROCF
 4170F%=FALSE:ENDPROC
 4180WHEN"-":IFD%=M%+M%!16:ENDPROC
 4190IFD%>M%+M%!16D%-=D%!-4:c%-=1
 4200IF(M%!36AND3)<>0ELSEIFD%>M%+M%!16D%-=D%!-4:c%-=1ELSEENDPROC
 4210IFD%=M%+M%!16:C%=0:c%=-1
 4220PROCE:PROCF:F%=FALSE
 4230IF(M%!36AND3)=0ELSED%-=D%!-4:c%-=1:IFD%=M%+M%!16:C%=0:c%=-1
 4240ENDPROC
 4250WHENCHR$27:VDU23,0,8,&80|:ENDPROC
 4260ENDCASE
 4270VDU7:ENDPROC
 4280
 4290DEFPROCF:SYS6,&71,E%:E%=3-E%:SYS6,&70,E%:ENDPROC
 4300DEFPROCE:IFRY%PROCY:ENDPROC ELSEIF!D%=0:D%=M%+M%!16:C%=0:c%=-1
 4310c%+=1:IFK%!60=0SYSEX%,M%!32,D%,C%,M%!40 TO ,D%,C%ELSEPROCEX(D%,C%)
 4320IF(M%!36AND3)=0C%=0
 4330ENDPROC
 4340DEFPROCY:IFRY%AND1THEN
 4350IF!D%<>0c%+=1:IFK%!60=0SYSEX%,M%!32,D%,C%,M%!40TO,D%,C%ELSEPROCEX(D%,C%)
 4360IF(M%!36AND3)=0C%=0
 4370IF!D%=0:RY%=RY%EOR1
 4380ELSE
 4390IFD%=M%+M%!16:RY%=RY%EOR1:C%=0:c%=-1:PROCE:ENDPROC
 4400D%-=D%!-4:c%-=1
 4410IF(M%!36AND3)<>0ELSEIFD%>M%+M%!16D%-=D%!-4:c%-=1ELSEENDPROC
 4420IFD%=M%+M%!16:C%=0:c%=-1
 4430c%+=1:IFK%!60=0SYSEX%,M%!32,D%,C%,M%!40TO,D%,C%ELSEPROCEX(D%,C%)
 4440IF(M%!36AND3)=0C%=0ELSED%-=D%!-4:c%-=1:IFD%=M%+M%!16:C%=0:c%=-1
 4450IFD%<=M%+M%!16+!(M%+M%!16):RY%=RY%EOR1
 4460ENDIF
 4470ENDPROC
 4480
 4490DEFPROCC:IFNOTMO%ENDPROC
 4500SYSSO%,&13C,SPR%,"C"TO R0,R1,R2,R3:CLS:COLOUR2:COLOUR129
 4510IFXO%MOUSEx%,y%,z%:PRINT;x%'y%;ELSEPRINT;c%;
 4520SYSSO%,R0,R1,R2,R3:SYSSO%,&124,SPR%,"C",2
 4530ENDPROC
 4540
 4550DEFPROCTable
 4560IFK%!52:E%=K%!52ELSEIFFNMVar(M%!28,9)=2:SYS"Wimp_ReadPalette",,B%+100:E%=B%+100ELSEE%=0
 4570SYS"ColourTrans_SelectTable",M%!28,E%,-1,-1,CT%+8:!CT%=MODE
 4580CT%!4=0:FORI%=(1<<(1<<FNMVar(M%!28,9)))-1TO0STEP-1:IFCT%?(I%+8)<>I%THENI%=0:CT%!4=CT%+8
 4590NEXT
 4600ENDPROC
 4610
 4620DEFPROCError
 4630!B%=ERR:$(B%+4)=REPORT$:V%=2:SYS"XWimp_ReportError",B%,%11,"Projector"TOV%
 4640IFV%=2:END
 4650ENDPROC
 4660
 4670DEFFNMVar(N%,V%):SYS"OS_ReadModeVariable",N%,V%TO,,V%:=V%
 4680
 4690DEFPROCMenuT(T$):T$=FNMSG(T$):LV%=V%:ML%=LENT$
 4700$V%=T$:V%!16=16*(ML%+1):V%!20=44:V%!12=&00070207:V%!24=0:V%+=28
 4710ENDPROC
 4720DEFPROCEndMenu:LV%!16=16*(ML%+1):ENDPROC
 4730
 4740DEFPROCES(T$,F%,S%,Y%):T%=FNES(T$,F%,S%):PROCSelect(T%,Y%):ENDPROC
 4750DEFPROCEL(T$,F%):T%=FNE(T$,2):PROCTick(T%,F%):ENDPROC
 4760DEFPROCEE(T$,F%):T%=FNE(T$,&80):PROCTick(T%,F%):ENDPROC
 4770DEFPROCET(T$,F%):T%=FNE(T$,0):PROCTick(T%,F%):ENDPROC
 4780DEFPROCMenuE(T$,F%):T%=FNE(T$,F%):ENDPROC
 4790DEFFNE(T$,F%)T$=FNMSG(T$):IFLENT$>ML%:ML%=LENT$
 4800IFLENT$<12:$(V%+12)=T$:!V%=F%:V%!4=-1:V%!8=1OR7<<24:V%+=24:=V%-24
 4810=FNES(T$,F%,-1)
 4820DEFFNES(T$,F%,S%)LOCALL%:L%=LENT$:IFL%>ML%:ML%=L%
 4830$(V%+12)=LEFT$(T$,11):!V%=F%:V%!4=S%:V%!8=1OR7<<24
 4840IF(!V%AND4)ORL%>11THEN
 4850   V%!20=L%+1:T%=DM%:DM%+=(L%+4)ANDNOT3
 4860   $T%=T$:V%!12=T%:V%!8=V%!8OR1<<8:V%!16=-1
 4870ENDIF
 4880V%+=24:=V%-24
 4890DEFFNESVL(T$,V$,F%,L%,S%):T$=FNMSG(T$)
 4900$(V%+12)=LEFT$(T$,11):!V%=F%:V%!4=S%:V%!8=1OR7<<24
 4910IF(!V%AND4)ORL%>11THEN
 4920   V%!20=L%+1:T%=DM%:DM%+=(L%+4)ANDNOT3
 4930   $T%=T$:V%!12=T%:V%!8=V%!8OR1<<8
 4940   IFV$=""V%!16=-1ELSET%=DM%:DM%+=(LENV$+4)ANDNOT3:$T%=V$:V%!16=T%
 4950ENDIF
 4960V%+=24:=V%-24
 4970
 4980DEFFNVarVal(N$)LOCALF%:SYS"XOS_ReadVarVal",N$,B%,255TO,,F%:B%?F%=&D:=$B%
 4990
 5000DEFPROCMess(C$)
 5010C%=OPENINC$:IFC%ELSEERROR0,"Cannot find messages file"
 5020DIMMS%EXT#C%:ME%=MS%
 5030WHILENOTEOF#C%
 5040 C$=GET$#C%:IFLEFT$(C$,1)<>"#":$ME%=C$:ME%+=LENC$+1
 5050ENDWHILE:CLOSE#C%
 5060ENDPROC
 5070
 5080DEFFNMSG(T$):IFLEFT$(T$,1)="!":=MID$(T$,2)
 5090LOCALP%,F%,I%,C$:P%=MS%
 5100WHILEP%<ME%ANDNOTF%
 5110 C$=$P%:P%+=LENC$+1:I%=INSTR(C$,":")
 5120 IFI%:IFLEFT$(C$,I%-1)=T$:C$=MID$(C$,I%+1):F%=TRUE
 5130ENDWHILE
 5140IFF%ELSEERROR 0,"Can't get message '"+T$+"' from messages file"
 5150=C$
 5160
 5170DEFPROCPseudoLoad(F$)
 5180SYS"OS_File",5,F$ TO O%,,T%,,L%:IFO%<>1ERROR1,"Can't find film '"+F$+"'"
 5190FH%=OPENINF$
 5200PTR#FH%=16:S%=FNReadWord(FH%):PTR#FH%=S%:C%=0
 5210NF%=FNReadWord(FH%):MF%=NF%
 5220WHILENF%:C%+=1:PTR#FH%=PTR#FH%+NF%-4:NF%=FNReadWord(FH%):IFMF%<NF%:MF%=NF%
 5230ENDWHILE
 5240L%=S%+16*C%+4
 5250MM%=FNAlloc(L%+MF%):M%=MM%:PROCReadBytes(FH%,0,S%,M%)
 5260CT%=FNAlloc(264):CP%=0:!CT%=M%!28
 5270PTR#FH%=S%:NF%=FNReadWord(FH%):I%=M%+S%
 5280WHILENF%:!I%=16:I%!4=PTR#FH%-4:I%!8=NF%:I%!12=16:I%+=16
 5290PTR#FH%=PTR#FH%+NF%-4:NF%=FNReadWord(FH%):ENDWHILE
 5300!I%=0:BB%=I%+4-M%
 5310ENDPROC
 5320
 5330DEFPROCReadBytes(FH%,O%,S%,A%):SYS"OS_GBPB",3,FH%,A%,S%,O%:ENDPROC
 5340
 5350DEFFNReadWord(FH%)=BGET#FH%ORBGET#FH%<<8ORBGET#FH%<<16ORBGET#FH%<<24
 5360
 5370DEFPROCEX(RETURN D%,RETURN C%)
 5380PROCReadBytes(K%!60,D%!4,D%!8,M%+K%!64)
 5390SYSEX%,M%!32,M%+K%!64,C%,M%!40TO,,C%
 5400D%+=!D%
 5410ENDPROC
 5420
 5430DEFPROCEND:K%=!R%:WHILEK%:IFK%!60<>0ANDK%!36=K%CLOSE#K%!60
 5440K%=!K%:ENDWHILE
 5450END

�>$.!Projector.!RunImage
8� (C) Tony Cheal/Ace Computing Nov 1991 Version 1.22
L� This program may be freely distributed, BUT its contents are Copyright
(<� Should be with version 1.00 Euclid or EuclidX or above
2@� Plays back a film in Ace Film format using either the full
<6� blown Euclid Module or the Public Domain EuclidX
F
P,�ONERRORERROREXT ERR,REPORT$+" "+STR$ERL
Z3ș"OS_SWINumberFromString",,"OS_SpriteOp" � SO%
d5ș"OS_SWINumberFromString",,"Euclid_Expand" � EX%
n=�MV%20,TK%4:P%=MV%:SCRAP%=�:BBC%=�:RY%=�:�SUP%100,DM%1000
xD[OPT2:LDR 3,[0],#4:STR 3,[1],#4:SUBS 2,2,#4:BNE MV%:MOVS PC,14:]
�-�TIT%1000:TT%=TIT%:�B%1000:KS%=68:WT%=950
�%�VarVal("Projector$Country")=""�
�ș6,70,127�,C%
�Dș"OS_ServiceCall",,&43,2,C%,B%,255�,,,,,L%:B%?L%=&D:C$=�$B%,10)
� �"Set Projector$Country "+C$
��
�+C%=�("<Projector$Resources>.Templates")
��C%�
�   �#C%
��
�c   !B%=1:$(B%+4)="Can't find resources for "+�VarVal("Projector$Country")+" - defaulting to UK"
�I   ș"Wimp_ReportError",B%,%1,"Projector":�"Set Projector$Country UK"
��
+�Mess("<Projector$Resources>.Messages")
<ș"Wimp_Initialise",200,&4B534154,"Ace Film Player" � V%
;B%!0=-1:B%!4=0:B%!8=0:B%!12=68:B%!16=90:B%!20=%10�3<<12
"4$(B%+24)="!projector":ș"Wimp_CreateIcon",,B%�Z%
,<ș"Wimp_OpenTemplate",,"<Projector$Resources>.Templates"
6�Q%1000,R%4:!R%=0:C%=Q%
@CG%=�Temp("ProgInfo"):H%=�Temp("FilmInfo"):FS%=�Temp("FullMode")
Jș"Wimp_CloseTemplate"
T4�SPR%256:!SPR%=256:SPR%!4=0:SPR%!8=16:SPR%!12=16
^,șSO%,&10F,SPR%,"C",,40,16,8:MO%=�:XO%=�
h/MI%=�MVar(�,9)��MVar(�,4)<<8��MVar(�,5)<<16
r
|�DEL%200:V%=DEL%
��MenuT("DEL")
�,DL%=V%+12:T%=�ESVL("!2","a0-9",&84,5,-1)
�
��ROL%200:V%=ROL%
��MenuT("ROL")
�-RLL%=V%+12:T%=�ESVL("!1","a0-9",&84,5,-1)
�
��MENU%1000:V%=MENU%
�;�VDU23,&90,&10,&38,&7C,&FE,&7C,&10,&38,&00:ACE$=CHR$&90
��MenuT("PRJ")
�%INF%=V%:�MenuE("INF",0):INF%!4=G%
�%RO%=V%:�MenuE("ROL",0):RO%!4=ROL%
�#T%=V%:�MenuE("DEL",0):T%!4=DEL%
FRFM%=V%:�MenuE("FRF",0)
�MenuE("QUT",&80)
�EndMenu
&
0�FMENU%1000:V%=FMENU%
:�MenuT("PRJ")
DMISC%=V%:�MenuE("MSC",0)
NFR%=V%:�MenuE("FRZ",0)
XREV%=V%:�MenuE("REV",0)
bYOYO%=V%:�MenuE("YOY",0)
l�MenuE("FFR",0)
v�MenuE("LFR",0)
�&INF%=V%:�MenuE("FSC",0):INF%!4=FS%
�MD%=V%:�MenuE("STM",&80)
��EndMenu
�
�MISC%!4=V%:�MenuT("MSC")
�%INF%=V%:�MenuE("INF",0):INF%!4=G%
�%INF%=V%:�MenuE("FIL",0):INF%!4=H%
��MenuE("NVW",0)
�FRF%=V%:�MenuE("FRF",&80)
��EndMenu
�
�-EN%=�:FC%=2:WM%=�:LO%=�:�=�+&1000:MT%=�:�
�8RC%=1:RY%=�:DS%=�:ș"OS_GetEnv" � E$:I%=�E$,"-quit")
4I%=�E$,"""",I%+1):I%=�E$,"""",I%+1):E$=�E$,I%+1)
ȕ�E$,1)=" ":E$=�E$,2):�
ȕE$<>ĩE$," ")
  I%=�E$+" "," "):F$=�E$,I%-1)
*)E$=�E$,I%+1):ȕ�E$,1)=" ":E$=�E$,2):�
4:�LO%�K%=!R%:ȕK%:!B%=K%!20:�Which(!B%):�Close:K%=!R%:�
>�F$,1)="-"�
H   Ȏ�F$,2,1)�
R#   �"r","R":�Roll(RC%,FC%):�END
\   �"f","F":FC%=��F$,3)
f   �"l","L":K%=!R%
pF �K%:�Which(K%!20):�Full(RC%,FC%):�I%=27:ș"Wimp_SetMode",WM%:�END
z/   �LO%LO%=�:ș"Wimp_SlotSize",EN%-&8000,-1
�   �"c","C":RC%=��F$,3)
�   �"w","W":RC%=-RC%
�.   �"e","E":�LO%�ș"Wimp_SetMode",WM%:�END
�   �"y","Y":RY%=�RY%
�   �"d","D":DS%=�DS%
�   �"o","O":!FRFM%=!FRFM%�1
�   �
��
�   �LoadAFilm(F$)
�T   �LO%�K%=!R%:�K%:�Which(K%!20):�Full(RC%,FC%):�I%=27:ș"Wimp_SetMode",WM%:�END
��
��
�:�LO%�K%=!R%:ȕK%:!B%=K%!20:�Which(!B%):�Close:K%=!R%:�
�LO%

�:�Error
 ș"OS_ReadMonotonicTime"�IT%
$�
.'ș"Wimp_PollIdle",,B%,IT%+�$!DL%�A%
8	ȎA%�
B*�0:ș"OS_ReadMonotonicTime"�IT%:K%=!R%
LBȕK%:M%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:W%=K%!20:CT%=K%!44
V�K%!24�
`,�K%!32�F%=M%+M%!16:�DPTR%=F%+!F%:K%!28=�
j �K%!28�NextFrame ��LastFrame
t�K%!32��!DPTR%=0:K%!28=�
~�:K%=!K%:�
��1:�Which(!B%):�Redraw
��2:�Which(!B%):�Open
��3:�Which(!B%):�Close
��6
�   ȎB%!12�
�   �FS%:�B%!8�7�
�.   ș"Wimp_CloseWindow",,B%+12:�Which(MW%)
�=   WM%=�:J%=2:RY%=�K%!32:�Full(0,J%):ș"Wimp_SetMode",WM%
�%   �B%!8�1�Popup(MEN%)��Popup(-1)
�   �
�'   �-2:�B%!16=Z%MX%=B%!0-80:MY%=314
�*      �Select(RO%,!R%=0):�Popup(MENU%)

   �G%,H%

   :�Which(B%!12):�Button
   �

�9:�Menus
(
�17,18
2   ȎB%!16�
<!   �0:ș"Wimp_CloseDown":�END
F!   �1:�B%!40=&D6A�B%!40=&C2A�
PG      !B%=60:B%!12=B%!8:B%!16=2:B%!36=-1:$(B%+44)="<Wimp$Scrap>"+�0
Z5      ș"Wimp_SendMessage",17,B%,B%!4:SCRAP%=B%!8
d      �
n#   �3,5:�B%!40=&D6A�B%!40=&C2A�
x6         F$=�ZS(B%+44):�SCRAP%:SCRAP%=SCRAP%=B%!12
�?         B%!12=B%!8:B%!16=4:ș"Wimp_SendMessage",17,B%,B%!4
�!         RY%=�:�LoadAFilm(F$)
�.         �SCRAP%:SCRAP%=�:ș"OS_File",6,F$
�      �
�C   �9,&400C1:K%=!R%:ȕK%:!(K%!44)=!(K%!4+28):�K%!52:!(K%!44)=-1
�      K%=!K%:�
�5      MI%=�MVar(�,9)��MVar(�,4)<<8��MVar(�,5)<<16
�   �
��
��0
�
���Close
�+L%=K%!36:N%=L%:ȕN%!40:L%=N%:N%=N%!40:�
�K%!40�
�I%=12�32�4:ȔK%!I%,N%!I%:�
�K%!16>0K%!16-=N%!8-K%!8
"�N%!16>0N%!16-=K%!8-N%!8
,:șSO%,&13C,S%,"X"� R0,R1,R2,R3:șSO%,&122,N%!8,"X",,,3
6-șSO%,&13C,N%!8,"X":șSO%,&122,S%,"X",,,3
@?șSO%,&13C,S%,"X":șSO%,&122,N%!8,"X",,,3:șSO%,R0,R1,R2,R3
J�Which(!B%)
T�
^>L%!40=0:ș"Wimp_CloseWindow",,B%:ș"Wimp_DeleteWindow",,B%
h*M%=K%!56:�K%!36<>K%M%=S%��K%!60�#K%!60
r!I%=!K%:E%=K%+KS%:L%=E%-M%
|�E%<MT%�
�J%=R%:I%=!J%:ȕI%
��Adjust(!J%)
�=�Adjust(I%!4):�Adjust(I%!8):�Adjust(I%!12):�Adjust(I%!16)
�7�Adjust(I%!36):�Adjust(I%!40):�Adjust(!((I%!44)+4))
�0�Adjust(I%!44):�Adjust(I%!52):�Adjust(I%!56)
�J%=I%:I%=!J%
��
��Move(M%+L%,M%,MT%-(M%+L%))
��
�.MT%-=L%:�LO%ș"Wimp_SlotSize",MT%-&8000,-1
��
�
� ��Adjust(� P%):�P%>M%:P%-=L%
�

$��Open:ș"Wimp_OpenWindow",,B%:�
&
0��Redraw
:"ș"Wimp_RedrawWindow",,B% � F%
D3ȕF%:X%=B%!4-B%!20:Y%=B%!16-B%!24:�RedrawSprite
N$ș"Wimp_GetRectangle",,B% � F%:�
X�
b
l��Button
vȎB%!8�
��1:�LastFrame
�P�2:�Tick(FR%,K%!24):�Tick(REV%,K%!28):�Tick(YOYO%,K%!32):�Tick(FRF%,K%!60=0)
�-�Select(MD%,�=M%!28):MX%=B%!0-80:MY%=B%!4
�>�SetI(H%,0,�M%!28):�SetI(H%,1,�!M%):�SetI(H%,2,�MSG("NO"))
�:�M%!32=1�SetI(H%,2,�MSG("YES"))��SetI(H%,2,�MSG("NO"))
�>�(M%!36�3)=0�SetI(H%,3,�MSG("NO"))��SetI(H%,3,�MSG("YES"))
�)�SetI(H%,4,�M%!20):�SetI(H%,5,�M%!24)
��Popup(FMENU%):MW%=W%
��4:�NextFrame
��
��
�
���Menus
ȎMEN%�
�MENU%:Ȏ!B%�
   �0:�Popup(G%):�
    �1:�Roll(�$!RLL%,2)
*   �3:!FRFM%=!FRFM%�1
4!   �4:ș"Wimp_CloseDown":�END
>   �
H�FMENU%:�Which(MW%):Ȏ!B%�
R   �0:ȎB%!4�
\%      �2:Q%=K%:ȕQ%!40:Q%=Q%!40:�
f0      CP%=Q%!52:FH%=Q%!60:BB%=Q%!64:�SetFilm
p      K%!36=Q%!36:Q%!40=K%
z      �
�   �1:K%!24=�K%!24
�   �2:K%!28=�K%!28
�   �3:K%!32=�K%!32
�2   �4:DPTR%=M%+M%!16:SCR%=0:�NextFrame:K%!28=�
�<   �5:DPTR%=M%+M%!16:SCR%=0:�NewFrame:�LastFrame:K%!28=�
�@   �6:WM%=�:J%=2:RY%=�K%!32:�Full(0,J%):ș"Wimp_SetMode",WM%
�    �7:ș"Wimp_SetMode",M%!28
�   �
�<   �Tick(FR%,K%!24):�Tick(REV%,K%!28):�Tick(YOYO%,K%!32)
�   �Select(MD%,�=M%!28)
��
�?ș"Wimp_GetPointerInfo",,B%:�B%!8�1:�Popup(MEN%)��Popup(-1)
��
	
	B��Window(T$,B%!28,!B%,B%!4,B%!8,B%!12,B%!40,B%!44,B%!48,B%!52)
	�T$=ACE$+" "+T$+" "+ACE$
	$T%=TT%:TT%+=�T$+1
	."�TT%>TIT%+1000:TT%=TIT%:T%=TT%
	8&B%!72=T%:B%!76=-1:B%!80=�T$:$T%=T$
	B4B%!16=(!B%-B%!8)�2:B%!20=(B%!12-B%!4)�2:B%!24=-1
	L#B%!32=&01070207:B%!36=&000C0103
	V=B%!56=%100001001:B%!60=2<<12:B%!64=0:B%!68=&10001:B%!84=0
	`"ș"Wimp_CreateWindow",,B% � W%
	j>!B%=W%:ș"Wimp_GetWindowState",,B%:ș"Wimp_OpenWindow",,B%
	t�
	~
	���NextFrame:�NewFrame
	�2B%!4=-3E4:B%!8=-3E4:B%!12=3E4:B%!16=3E4:!B%=W%
	�"ș"Wimp_UpdateWindow",,B% � F%
	�3ȕF%:X%=B%!4-B%!20:Y%=B%!16-B%!24:�RedrawSprite
	�$ș"Wimp_GetRectangle",,B% � F%:�
	��
	�
	���LastFrame
	��DPTR%<>M%+M%!16�
	�DPTR%-=DPTR%!-4
	��(M%!36�3)=0�
	�.  �DPTR%=M%+M%!16:ȕ!DPTR%:DPTR%+=!DPTR%:�
   DPTR%-=DPTR%!-4:�NextFrame

�
  �DPTR%=M%+M%!16�
6  DPTR%+=!DPTR%:ș"Hourglass_On":ȕ!(DPTR%+!DPTR%)
(.  �NewFrame:�:ș"Hourglass_Off":�NextFrame
2  �
<=  �NextFrame:K%!12=DPTR%-DPTR%!-4:�K%!12=M%+M%!16:K%!16=0
F  �
P�
Z�
d�
n
x��NewFrame
�#�!DPTR%=0:DPTR%=M%+M%!16:SCR%=0
�"șSO%,&13C,S%,"X"� R0,R1,R2,R3
�J�:��:��:șSO%,R0,R1,R2,R3:!B%=K%!20:�Which(!B%):�Close:K%=!R%:� �,�$
�F�K%!60=0șEX%,M%!32,DPTR%,SCR%,M%!40 � ,DPTR%,SCR%��EX(DPTR%,SCR%)
��(M%!36�3)=0SCR%=0
���:șSO%,R0,R1,R2,R3
�K%!12=DPTR%:K%!16=SCR%
��
�
���MakeSprite
�=XR%=�MVar(M%!28,4):YR%=�MVar(M%!28,5):LB%=�MVar(M%!28,10)
�SS%=((1<<XR%)<<5-LB%)-1
�7SS%=(((M%!20+SS%>>XR%)>>5-LB%)<<2)*(M%!24>>YR%)+100
@S%=�Alloc(SS%):!S%=SS%:S%!4=0:S%!8=16:S%!12=16:șSO%,&109,S%
3șSO%,&10F,S%,"X",0,M%!20>>XR%,M%!24>>YR%,M%!28
�
"
,��RedrawSprite
6�!CT%<>�:�Table
@�MI%=K%!48�K%!52=0�
J   șSO%,&122,S%,"X",X%,Y%
T�
^&   șSO%,&134,S%,"X",X%,Y%,,,CT%!4
h�
r�
|
���LoadFilm(F$)
�Eș"OS_File",5,F$ � O%,,T%,,L%:�O%<>1�1,"Can't find film '"+F$+"'"
�-�(T%>>8)<>-982:�!FRFM%�1�PseudoLoad(F$):�
�;FH%=0:BB%=0:MM%=�Alloc(L%):M%=MM%:ș"OS_File",&FF,F$,M%
�$CT%=�Alloc(264):CP%=0:!CT%=M%!28
��(T%>>8)=-982�
�+�Chunk(&454C4150):CP%=M%+O%+36:!CT%=-1
�9�Chunk(&46454341):M%+=O%+8��1,"Film chunk not found"
��
��
�
�ݤChunk(C%)�T%:O%=0
�/ȕO%<L%��T%:�M%!O%=C%:T%=� �O%+=M%!(O%+4):�
=T%

��LoadAFilm(E$)
&�LoadFilm(E$):�SetFilm
0�
:
D��SetFilm:�MakeSprite
N�WT%-M%!24<180:WT%=950
XF�Window($(M%+4),%1111,300,WT%-M%!24,M%!20+300,WT%,0,0,M%!20,M%!24)
b:WT%-=48:DPTR%=M%+M%!16:SCR%=0:CM%=M%!28:K%=�Alloc(KS%)
lD!K%=!R%:!R%=K%:K%!4=M%:K%!8=S%:K%!20=W%:K%!24=!(DPTR%+!DPTR%)<>0
v<K%!28=�:K%!32=(M%!36�4)=0�RY%:K%!36=K%:K%!40=0:K%!44=CT%
�=K%!48=�MVar(M%!28,9)��MVar(M%!28,4)<<8��MVar(M%!28,5)<<16
�+K%!52=CP%:K%!56=MM%:K%!60=FH%:K%!64=BB%
��NextFrame
��
�
�>ݤTemp(T$):ș"Wimp_LoadTemplate",,B%,C%,Q%+1000,-1,T$�,,C%
�$ș"Wimp_CreateWindow",,B%�T%:=T%
�
�*��Tick(T%,F%):�F%:!T%=!T%��1�!T%=!T%�1
��
�:��Select(T%,F%):�F%:T%!8=T%!8�1<<22�T%!8=T%!8��(1<<22)
��
�*ݤZS(I%)�A$:�A$+=�?I%:I%+=1:�?I%=0:=A$



1ݤAlloc(L%):�E%,T%:�LO%E%=MT%+L%-&8000 �E%=-1

(ș"Wimp_SlotSize",E%,-1�T%:T%+=&8000

 �T%<MT%+L%�1,�MSG("INS")

*MT%+=L%:=MT%-L%

4

>"��Which(T%):W%=T%:J%=R%:K%=!J%

HIȕK%:�W%=K%!20:M%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:CT%=K%!44:I%=J%

RJ%=K%:K%=!J%:�:K%=!I%

\�

f

p��Move(A%,B%,C%):�MV%:�

z

�9��Popup(N%):ș"Wimp_CreateMenu",,N%,MX%,MY%:MEN%=N%:�

�

�:��SetI(W%,I%,S$):�F%:!B%=W%:ș"Wimp_GetWindowInfo",,B%

�4�I%>=0:I%=B%+112+I%*32:F%=I%-4�I%=B%+76:F%=B%+60

�*�!F%�1<<8:$!I%=�S$,I%!8-1)�$I%=�S$,11)

��

�

� ��Roll(RC%,U%):�RC%<=0:RC%=1

�(WM%=�:�:I%=0:FK%=0:ȕFK%<>!R%�I%<>27

�%K%=!R%:ȕ!K%<>FK%:K%=!K%:�:FK%=K%

�HM%=K%!4:S%=K%!8:DPTR%=K%!12:SCR%=K%!16:W%=K%!20:CT%=K%!44:RY%=�K%!32

��Full(RC%,U%):K%=!K%:�

��I%=27:ș"Wimp_SetMode",WM%
�

��Full(RL%,� W%):�J%:�
$CFW%=M%!20:FH%=M%!24:FM%=M%!28:SW%=�MVar(FM%,4):SH%=�MVar(FM%,5)
.5FW2%=(FW%�2>>SW%)>>3-�MVar(FM%,9):FH2%=FH%�2>>SH%
83FW2%=(FW2%<<SW%)<<3-�MVar(FM%,9):FH2%=FH2%<<SH%
B=SW%=(�MVar(FM%,11)+1<<SW%)�2:SH%=(�MVar(FM%,12)+1<<SH%)�2
LT%=�:�:��:��:T%=�
V6�I%=0�15:SUP%?(I%*4)=I%:ș"OS_Word",&B,SUP%+I%*4:�
`�T%�FM%+128:�� ��FM%
j&��:��:ș"Wimp_SetMode",WM%:� �,�$
t+��<>FM%�1,"Mode for film not available"
~#ș"ColourTrans_InvalidateCache"
��MVar(�,9)<=2�
�6E%=B%+100:ș"Wimp_ReadPalette",,E%:�K%!52:E%=K%!52
��MVar(�,9)=2�K%!52�
��I%=0��MVar(�,3)
�8�19,I%,16�(SUP%?(I%*4+1)�&80),E%?1,E%?2,E%?3:E%+=4:�
��
��
�`�K%!52:E%=K%!52:E%+=E%?-24<<2:�5:ș"ColourTrans_SetGCOL",!E%,,,128:�:�19,0,24,E%?1,E%?2,E%?3
�&�:E%=1:�F:�:�F:�:F%=RL%>0:�MO%ȗ�2
�8�24,SW%-FW2%;SH%-FH2%;SW%-FW2%+FW%-1;SH%-FH2%+FH%-1;
�(D%=M%+M%!16:C%=0:c%=-1:CM%=FM%:�E:�F
���I%=�0:ș6,&B0,255:�R
/�I%=27�(RL%�!D%=0):RL%=�RL%-1:�RL%<=0�I%=27

��
�

(��R:�MO%�C
2�F%��I%<0�I%=�0:�C:�I%>=0
<2�I%<32��BBC%�E:�ș6,&B0,,255�,T%:�T%<256-W%:�F
F�I%<0�F%:�
P�DS%���-1:I%=0
Zș6,15:�BBC%�I%<>2I%=�"+"
d)�I%=2:BBC%=�BBC%:F%=�:I%=�"F":�BBC%�7
n�I%=32:F%=�F%:�
x�I%=13:F%=�:�
�
Ȏ�I%�
�%�"I","i":�23,0,8,&81+F%|:F%=�F%:�
�+�"F","f":D%=M%+M%!16:C%=0:c%=-1:�E:�F:�
��"L","l","s","S"
��(M%!36�3)=0�
�,   �!D%ȕ!(D%+!D%):D%+=!D%:c%+=1:�:�E:�F
��
�   �!D%:ȕ!D%:�E:�:�F
��
��I%="s"��I%="S":RL%=-1
��
��"C","c"
�)�MO%��XO%:ȗ�:MO%=� �ȗ�2:MO%=�:XO%=�
�
�"X","x"
(�MO%�XO%:ȗ�:MO%=� �ȗ�2:MO%=�:XO%=�
"�
,�"Y","y":RY%=(RY%>>1)=0:�
66�"0","1","2","3","4","5","6","7","8","9":W%=��I%:�
@�"+":�!D%�E:�F
J
F%=�:�
T�"-":�D%=M%+M%!16:�
^�D%>M%+M%!16D%-=D%!-4:c%-=1
h/�(M%!36�3)<>0��D%>M%+M%!16D%-=D%!-4:c%-=1��
r�D%=M%+M%!16:C%=0:c%=-1
|�E:�F:F%=�
�8�(M%!36�3)=0�D%-=D%!-4:c%-=1:�D%=M%+M%!16:C%=0:c%=-1
��
�ɽ27:�23,0,8,&80|:�
��
��7:�
�
�'��F:ș6,&71,E%:E%=3-E%:ș6,&70,E%:�
�/��E:�RY%�Y:� ��!D%=0:D%=M%+M%!16:C%=0:c%=-1
�=c%+=1:�K%!60=0șEX%,M%!32,D%,C%,M%!40 � ,D%,C%��EX(D%,C%)
��(M%!36�3)=0C%=0
��
���Y:�RY%�1�
�B�!D%<>0c%+=1:�K%!60=0șEX%,M%!32,D%,C%,M%!40�,D%,C%��EX(D%,C%)
�(M%!36�3)=0C%=0
�!D%=0:RY%=RY%�1
�
&*�D%=M%+M%!16:RY%=RY%�1:C%=0:c%=-1:�E:�
0D%-=D%!-4:c%-=1
:/�(M%!36�3)<>0��D%>M%+M%!16D%-=D%!-4:c%-=1��
D�D%=M%+M%!16:C%=0:c%=-1
N;c%+=1:�K%!60=0șEX%,M%!32,D%,C%,M%!40�,D%,C%��EX(D%,C%)
X<�(M%!36�3)=0C%=0�D%-=D%!-4:c%-=1:�D%=M%+M%!16:C%=0:c%=-1
b'�D%<=M%+M%!16+!(M%+M%!16):RY%=RY%�1
l�
v�
�
���C:�MO%�
�.șSO%,&13C,SPR%,"C"� R0,R1,R2,R3:�:�2:�129
�!�XO%ȗx%,y%,z%:�;x%'y%;��;c%;
�+șSO%,R0,R1,R2,R3:șSO%,&124,SPR%,"C",2
��
�
���Table
�Q�K%!52:E%=K%!52��MVar(M%!28,9)=2:ș"Wimp_ReadPalette",,B%+100:E%=B%+100�E%=0
�;ș"ColourTrans_SelectTable",M%!28,E%,-1,-1,CT%+8:!CT%=�
�PCT%!4=0:�I%=(1<<(1<<�MVar(M%!28,9)))-1�0�-1:�CT%?(I%+8)<>I%�I%=0:CT%!4=CT%+8
��
��

��Error
E!B%=�:$(B%+4)=�$:V%=2:ș"XWimp_ReportError",B%,%11,"Projector"�V%
 �V%=2:�
*�
4
>8ݤMVar(N%,V%):ș"OS_ReadModeVariable",N%,V%�,,V%:=V%
H
R*��MenuT(T$):T$=�MSG(T$):LV%=V%:ML%=�T$
\C$V%=T$:V%!16=16*(ML%+1):V%!20=44:V%!12=&00070207:V%!24=0:V%+=28
f�
p!��EndMenu:LV%!16=16*(ML%+1):�
z
�7��ES(T$,F%,S%,Y%):T%=�ES(T$,F%,S%):�Select(T%,Y%):�
�*��EL(T$,F%):T%=�E(T$,2):�Tick(T%,F%):�
�,��EE(T$,F%):T%=�E(T$,&80):�Tick(T%,F%):�
�*��ET(T$,F%):T%=�E(T$,0):�Tick(T%,F%):�
�!��MenuE(T$,F%):T%=�E(T$,F%):�
�*ݤE(T$,F%)T$=�MSG(T$):�T$>ML%:ML%=�T$
�A�T$<12:$(V%+12)=T$:!V%=F%:V%!4=-1:V%!8=1�7<<24:V%+=24:=V%-24
�=�ES(T$,F%,-1)
�+ݤES(T$,F%,S%)�L%:L%=�T$:�L%>ML%:ML%=L%
�0$(V%+12)=�T$,11):!V%=F%:V%!4=S%:V%!8=1�7<<24
��(!V%�4)�L%>11�
�'   V%!20=L%+1:T%=DM%:DM%+=(L%+4)��3
�.   $T%=T$:V%!12=T%:V%!8=V%!8�1<<8:V%!16=-1
�
V%+=24:=V%-24
&ݤESVL(T$,V$,F%,L%,S%):T$=�MSG(T$)
$0$(V%+12)=�T$,11):!V%=F%:V%!4=S%:V%!8=1�7<<24
.�(!V%�4)�L%>11�
8'   V%!20=L%+1:T%=DM%:DM%+=(L%+4)��3
B%   $T%=T$:V%!12=T%:V%!8=V%!8�1<<8
L<   �V$=""V%!16=-1�T%=DM%:DM%+=(�V$+4)��3:$T%=V$:V%!16=T%
V�
`V%+=24:=V%-24
j
tCݤVarVal(N$)�F%:ș"XOS_ReadVarVal",N$,B%,255�,,F%:B%?F%=&D:=$B%
~
���Mess(C$)
�-C%=�C$:�C%��0,"Cannot find messages file"
��MS%�#C%:ME%=MS%
�ȕ��#C%
�, C$=�#C%:�C$,1)<>"#":$ME%=C$:ME%+=�C$+1
�
�:�#C%
��
�
�!ݤMSG(T$):�T$,1)="!":=�T$,2)
��P%,F%,I%,C$:P%=MS%
�ȕP%<ME%��F%
�! C$=$P%:P%+=�C$+1:I%=�C$,":")
( �I%:�C$,I%-1)=T$:C$=�C$,I%+1):F%=�

�
;�F%�� 0,"Can't get message '"+T$+"' from messages file"
=C$
(
2��PseudoLoad(F$)
<Eș"OS_File",5,F$ � O%,,T%,,L%:�O%<>1�1,"Can't find film '"+F$+"'"
FFH%=�F$
P,�#FH%=16:S%=�ReadWord(FH%):�#FH%=S%:C%=0
ZNF%=�ReadWord(FH%):MF%=NF%
dEȕNF%:C%+=1:�#FH%=�#FH%+NF%-4:NF%=�ReadWord(FH%):�MF%<NF%:MF%=NF%
n�
xL%=S%+16*C%+4
�5MM%=�Alloc(L%+MF%):M%=MM%:�ReadBytes(FH%,0,S%,M%)
�$CT%=�Alloc(264):CP%=0:!CT%=M%!28
�(�#FH%=S%:NF%=�ReadWord(FH%):I%=M%+S%
�6ȕNF%:!I%=16:I%!4=�#FH%-4:I%!8=NF%:I%!12=16:I%+=16
�*�#FH%=�#FH%+NF%-4:NF%=�ReadWord(FH%):�
�!I%=0:BB%=I%+4-M%
��
�
�:��ReadBytes(FH%,O%,S%,A%):ș"OS_GBPB",3,FH%,A%,S%,O%:�
�
�6ݤReadWord(FH%)=�#FH%��#FH%<<8��#FH%<<16��#FH%<<24
�
���EX(� D%,� C%)
(�ReadBytes(K%!60,D%!4,D%!8,M%+K%!64)
&șEX%,M%!32,M%+K%!64,C%,M%!40�,,C%
D%+=!D%
"�
,
6/��END:K%=!R%:ȕK%:�K%!60<>0�K%!36=K%�#K%!60
@K%=!K%:�
J�
�
00000000  0d 00 0a 1c f4 3e 24 2e  21 50 72 6f 6a 65 63 74  |.....>$.!Project|
00000010  6f 72 2e 21 52 75 6e 49  6d 61 67 65 0d 00 14 38  |or.!RunImage...8|
00000020  f4 20 28 43 29 20 54 6f  6e 79 20 43 68 65 61 6c  |. (C) Tony Cheal|
00000030  2f 41 63 65 20 43 6f 6d  70 75 74 69 6e 67 20 4e  |/Ace Computing N|
00000040  6f 76 20 31 39 39 31 20  56 65 72 73 69 6f 6e 20  |ov 1991 Version |
00000050  31 2e 32 32 0d 00 1e 4c  f4 20 54 68 69 73 20 70  |1.22...L. This p|
00000060  72 6f 67 72 61 6d 20 6d  61 79 20 62 65 20 66 72  |rogram may be fr|
00000070  65 65 6c 79 20 64 69 73  74 72 69 62 75 74 65 64  |eely distributed|
00000080  2c 20 42 55 54 20 69 74  73 20 63 6f 6e 74 65 6e  |, BUT its conten|
00000090  74 73 20 61 72 65 20 43  6f 70 79 72 69 67 68 74  |ts are Copyright|
000000a0  0d 00 28 3c f4 20 53 68  6f 75 6c 64 20 62 65 20  |..(<. Should be |
000000b0  77 69 74 68 20 76 65 72  73 69 6f 6e 20 31 2e 30  |with version 1.0|
000000c0  30 20 45 75 63 6c 69 64  20 6f 72 20 45 75 63 6c  |0 Euclid or Eucl|
000000d0  69 64 58 20 6f 72 20 61  62 6f 76 65 0d 00 32 40  |idX or above..2@|
000000e0  f4 20 50 6c 61 79 73 20  62 61 63 6b 20 61 20 66  |. Plays back a f|
000000f0  69 6c 6d 20 69 6e 20 41  63 65 20 46 69 6c 6d 20  |ilm in Ace Film |
00000100  66 6f 72 6d 61 74 20 75  73 69 6e 67 20 65 69 74  |format using eit|
00000110  68 65 72 20 74 68 65 20  66 75 6c 6c 0d 00 3c 36  |her the full..<6|
00000120  f4 20 62 6c 6f 77 6e 20  45 75 63 6c 69 64 20 4d  |. blown Euclid M|
00000130  6f 64 75 6c 65 20 6f 72  20 74 68 65 20 50 75 62  |odule or the Pub|
00000140  6c 69 63 20 44 6f 6d 61  69 6e 20 45 75 63 6c 69  |lic Domain Eucli|
00000150  64 58 0d 00 46 04 0d 00  50 2c f4 4f 4e 45 52 52  |dX..F...P,.ONERR|
00000160  4f 52 45 52 52 4f 52 45  58 54 20 45 52 52 2c 52  |ORERROREXT ERR,R|
00000170  45 50 4f 52 54 24 2b 22  20 22 2b 53 54 52 24 45  |EPORT$+" "+STR$E|
00000180  52 4c 0d 00 5a 33 c8 99  22 4f 53 5f 53 57 49 4e  |RL..Z3.."OS_SWIN|
00000190  75 6d 62 65 72 46 72 6f  6d 53 74 72 69 6e 67 22  |umberFromString"|
000001a0  2c 2c 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 20  |,,"OS_SpriteOp" |
000001b0  b8 20 53 4f 25 0d 00 64  35 c8 99 22 4f 53 5f 53  |. SO%..d5.."OS_S|
000001c0  57 49 4e 75 6d 62 65 72  46 72 6f 6d 53 74 72 69  |WINumberFromStri|
000001d0  6e 67 22 2c 2c 22 45 75  63 6c 69 64 5f 45 78 70  |ng",,"Euclid_Exp|
000001e0  61 6e 64 22 20 b8 20 45  58 25 0d 00 6e 3d de 4d  |and" . EX%..n=.M|
000001f0  56 25 32 30 2c 54 4b 25  34 3a 50 25 3d 4d 56 25  |V%20,TK%4:P%=MV%|
00000200  3a 53 43 52 41 50 25 3d  a3 3a 42 42 43 25 3d a3  |:SCRAP%=.:BBC%=.|
00000210  3a 52 59 25 3d a3 3a de  53 55 50 25 31 30 30 2c  |:RY%=.:.SUP%100,|
00000220  44 4d 25 31 30 30 30 0d  00 78 44 5b 4f 50 54 32  |DM%1000..xD[OPT2|
00000230  3a 4c 44 52 20 33 2c 5b  30 5d 2c 23 34 3a 53 54  |:LDR 3,[0],#4:ST|
00000240  52 20 33 2c 5b 31 5d 2c  23 34 3a 53 55 42 53 20  |R 3,[1],#4:SUBS |
00000250  32 2c 32 2c 23 34 3a 42  4e 45 20 4d 56 25 3a 4d  |2,2,#4:BNE MV%:M|
00000260  4f 56 53 20 50 43 2c 31  34 3a 5d 0d 00 82 2d de  |OVS PC,14:]...-.|
00000270  54 49 54 25 31 30 30 30  3a 54 54 25 3d 54 49 54  |TIT%1000:TT%=TIT|
00000280  25 3a de 42 25 31 30 30  30 3a 4b 53 25 3d 36 38  |%:.B%1000:KS%=68|
00000290  3a 57 54 25 3d 39 35 30  0d 00 8c 25 e7 a4 56 61  |:WT%=950...%..Va|
000002a0  72 56 61 6c 28 22 50 72  6f 6a 65 63 74 6f 72 24  |rVal("Projector$|
000002b0  43 6f 75 6e 74 72 79 22  29 3d 22 22 8c 0d 00 96  |Country")=""....|
000002c0  12 c8 99 36 2c 37 30 2c  31 32 37 b8 2c 43 25 0d  |...6,70,127.,C%.|
000002d0  00 a0 44 c8 99 22 4f 53  5f 53 65 72 76 69 63 65  |..D.."OS_Service|
000002e0  43 61 6c 6c 22 2c 2c 26  34 33 2c 32 2c 43 25 2c  |Call",,&43,2,C%,|
000002f0  42 25 2c 32 35 35 b8 2c  2c 2c 2c 2c 4c 25 3a 42  |B%,255.,,,,,L%:B|
00000300  25 3f 4c 25 3d 26 44 3a  43 24 3d c0 24 42 25 2c  |%?L%=&D:C$=.$B%,|
00000310  31 30 29 0d 00 aa 20 ff  22 53 65 74 20 50 72 6f  |10)... ."Set Pro|
00000320  6a 65 63 74 6f 72 24 43  6f 75 6e 74 72 79 20 22  |jector$Country "|
00000330  2b 43 24 0d 00 b4 05 cd  0d 00 be 2b 43 25 3d 8e  |+C$........+C%=.|
00000340  28 22 3c 50 72 6f 6a 65  63 74 6f 72 24 52 65 73  |("<Projector$Res|
00000350  6f 75 72 63 65 73 3e 2e  54 65 6d 70 6c 61 74 65  |ources>.Template|
00000360  73 22 29 0d 00 c8 08 e7  43 25 8c 0d 00 d2 0b 20  |s").....C%..... |
00000370  20 20 d9 23 43 25 0d 00  dc 05 cc 0d 00 e6 63 20  |  .#C%........c |
00000380  20 20 21 42 25 3d 31 3a  24 28 42 25 2b 34 29 3d  |  !B%=1:$(B%+4)=|
00000390  22 43 61 6e 27 74 20 66  69 6e 64 20 72 65 73 6f  |"Can't find reso|
000003a0  75 72 63 65 73 20 66 6f  72 20 22 2b a4 56 61 72  |urces for "+.Var|
000003b0  56 61 6c 28 22 50 72 6f  6a 65 63 74 6f 72 24 43  |Val("Projector$C|
000003c0  6f 75 6e 74 72 79 22 29  2b 22 20 2d 20 64 65 66  |ountry")+" - def|
000003d0  61 75 6c 74 69 6e 67 20  74 6f 20 55 4b 22 0d 00  |aulting to UK"..|
000003e0  f0 49 20 20 20 c8 99 22  57 69 6d 70 5f 52 65 70  |.I   .."Wimp_Rep|
000003f0  6f 72 74 45 72 72 6f 72  22 2c 42 25 2c 25 31 2c  |ortError",B%,%1,|
00000400  22 50 72 6f 6a 65 63 74  6f 72 22 3a ff 22 53 65  |"Projector":."Se|
00000410  74 20 50 72 6f 6a 65 63  74 6f 72 24 43 6f 75 6e  |t Projector$Coun|
00000420  74 72 79 20 55 4b 22 0d  00 fa 05 cd 0d 01 04 2b  |try UK"........+|
00000430  f2 4d 65 73 73 28 22 3c  50 72 6f 6a 65 63 74 6f  |.Mess("<Projecto|
00000440  72 24 52 65 73 6f 75 72  63 65 73 3e 2e 4d 65 73  |r$Resources>.Mes|
00000450  73 61 67 65 73 22 29 0d  01 0e 3c c8 99 22 57 69  |sages")...<.."Wi|
00000460  6d 70 5f 49 6e 69 74 69  61 6c 69 73 65 22 2c 32  |mp_Initialise",2|
00000470  30 30 2c 26 34 42 35 33  34 31 35 34 2c 22 41 63  |00,&4B534154,"Ac|
00000480  65 20 46 69 6c 6d 20 50  6c 61 79 65 72 22 20 b8  |e Film Player" .|
00000490  20 56 25 0d 01 18 3b 42  25 21 30 3d 2d 31 3a 42  | V%...;B%!0=-1:B|
000004a0  25 21 34 3d 30 3a 42 25  21 38 3d 30 3a 42 25 21  |%!4=0:B%!8=0:B%!|
000004b0  31 32 3d 36 38 3a 42 25  21 31 36 3d 39 30 3a 42  |12=68:B%!16=90:B|
000004c0  25 21 32 30 3d 25 31 30  84 33 3c 3c 31 32 0d 01  |%!20=%10.3<<12..|
000004d0  22 34 24 28 42 25 2b 32  34 29 3d 22 21 70 72 6f  |"4$(B%+24)="!pro|
000004e0  6a 65 63 74 6f 72 22 3a  c8 99 22 57 69 6d 70 5f  |jector":.."Wimp_|
000004f0  43 72 65 61 74 65 49 63  6f 6e 22 2c 2c 42 25 b8  |CreateIcon",,B%.|
00000500  5a 25 0d 01 2c 3c c8 99  22 57 69 6d 70 5f 4f 70  |Z%..,<.."Wimp_Op|
00000510  65 6e 54 65 6d 70 6c 61  74 65 22 2c 2c 22 3c 50  |enTemplate",,"<P|
00000520  72 6f 6a 65 63 74 6f 72  24 52 65 73 6f 75 72 63  |rojector$Resourc|
00000530  65 73 3e 2e 54 65 6d 70  6c 61 74 65 73 22 0d 01  |es>.Templates"..|
00000540  36 1b de 51 25 31 30 30  30 2c 52 25 34 3a 21 52  |6..Q%1000,R%4:!R|
00000550  25 3d 30 3a 43 25 3d 51  25 0d 01 40 43 47 25 3d  |%=0:C%=Q%..@CG%=|
00000560  a4 54 65 6d 70 28 22 50  72 6f 67 49 6e 66 6f 22  |.Temp("ProgInfo"|
00000570  29 3a 48 25 3d a4 54 65  6d 70 28 22 46 69 6c 6d  |):H%=.Temp("Film|
00000580  49 6e 66 6f 22 29 3a 46  53 25 3d a4 54 65 6d 70  |Info"):FS%=.Temp|
00000590  28 22 46 75 6c 6c 4d 6f  64 65 22 29 0d 01 4a 1a  |("FullMode")..J.|
000005a0  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 54 65 6d  |.."Wimp_CloseTem|
000005b0  70 6c 61 74 65 22 0d 01  54 34 de 53 50 52 25 32  |plate"..T4.SPR%2|
000005c0  35 36 3a 21 53 50 52 25  3d 32 35 36 3a 53 50 52  |56:!SPR%=256:SPR|
000005d0  25 21 34 3d 30 3a 53 50  52 25 21 38 3d 31 36 3a  |%!4=0:SPR%!8=16:|
000005e0  53 50 52 25 21 31 32 3d  31 36 0d 01 5e 2c c8 99  |SPR%!12=16..^,..|
000005f0  53 4f 25 2c 26 31 30 46  2c 53 50 52 25 2c 22 43  |SO%,&10F,SPR%,"C|
00000600  22 2c 2c 34 30 2c 31 36  2c 38 3a 4d 4f 25 3d a3  |",,40,16,8:MO%=.|
00000610  3a 58 4f 25 3d a3 0d 01  68 2f 4d 49 25 3d a4 4d  |:XO%=...h/MI%=.M|
00000620  56 61 72 28 eb 2c 39 29  84 a4 4d 56 61 72 28 eb  |Var(.,9)..MVar(.|
00000630  2c 34 29 3c 3c 38 84 a4  4d 56 61 72 28 eb 2c 35  |,4)<<8..MVar(.,5|
00000640  29 3c 3c 31 36 0d 01 72  04 0d 01 7c 14 de 44 45  |)<<16..r...|..DE|
00000650  4c 25 32 30 30 3a 56 25  3d 44 45 4c 25 0d 01 86  |L%200:V%=DEL%...|
00000660  11 f2 4d 65 6e 75 54 28  22 44 45 4c 22 29 0d 01  |..MenuT("DEL")..|
00000670  90 2c 44 4c 25 3d 56 25  2b 31 32 3a 54 25 3d a4  |.,DL%=V%+12:T%=.|
00000680  45 53 56 4c 28 22 21 32  22 2c 22 61 30 2d 39 22  |ESVL("!2","a0-9"|
00000690  2c 26 38 34 2c 35 2c 2d  31 29 0d 01 9a 04 0d 01  |,&84,5,-1)......|
000006a0  a4 14 de 52 4f 4c 25 32  30 30 3a 56 25 3d 52 4f  |...ROL%200:V%=RO|
000006b0  4c 25 0d 01 ae 11 f2 4d  65 6e 75 54 28 22 52 4f  |L%.....MenuT("RO|
000006c0  4c 22 29 0d 01 b8 2d 52  4c 4c 25 3d 56 25 2b 31  |L")...-RLL%=V%+1|
000006d0  32 3a 54 25 3d a4 45 53  56 4c 28 22 21 31 22 2c  |2:T%=.ESVL("!1",|
000006e0  22 61 30 2d 39 22 2c 26  38 34 2c 35 2c 2d 31 29  |"a0-9",&84,5,-1)|
000006f0  0d 01 c2 04 0d 01 cc 17  de 4d 45 4e 55 25 31 30  |.........MENU%10|
00000700  30 30 3a 56 25 3d 4d 45  4e 55 25 0d 01 d6 3b f4  |00:V%=MENU%...;.|
00000710  56 44 55 32 33 2c 26 39  30 2c 26 31 30 2c 26 33  |VDU23,&90,&10,&3|
00000720  38 2c 26 37 43 2c 26 46  45 2c 26 37 43 2c 26 31  |8,&7C,&FE,&7C,&1|
00000730  30 2c 26 33 38 2c 26 30  30 3a 41 43 45 24 3d 43  |0,&38,&00:ACE$=C|
00000740  48 52 24 26 39 30 0d 01  e0 11 f2 4d 65 6e 75 54  |HR$&90.....MenuT|
00000750  28 22 50 52 4a 22 29 0d  01 ea 25 49 4e 46 25 3d  |("PRJ")...%INF%=|
00000760  56 25 3a f2 4d 65 6e 75  45 28 22 49 4e 46 22 2c  |V%:.MenuE("INF",|
00000770  30 29 3a 49 4e 46 25 21  34 3d 47 25 0d 01 f4 25  |0):INF%!4=G%...%|
00000780  52 4f 25 3d 56 25 3a f2  4d 65 6e 75 45 28 22 52  |RO%=V%:.MenuE("R|
00000790  4f 4c 22 2c 30 29 3a 52  4f 25 21 34 3d 52 4f 4c  |OL",0):RO%!4=ROL|
000007a0  25 0d 01 fe 23 54 25 3d  56 25 3a f2 4d 65 6e 75  |%...#T%=V%:.Menu|
000007b0  45 28 22 44 45 4c 22 2c  30 29 3a 54 25 21 34 3d  |E("DEL",0):T%!4=|
000007c0  44 45 4c 25 0d 02 08 1c  46 52 46 4d 25 3d 56 25  |DEL%....FRFM%=V%|
000007d0  3a f2 4d 65 6e 75 45 28  22 46 52 46 22 2c 30 29  |:.MenuE("FRF",0)|
000007e0  0d 02 12 15 f2 4d 65 6e  75 45 28 22 51 55 54 22  |.....MenuE("QUT"|
000007f0  2c 26 38 30 29 0d 02 1c  0c f2 45 6e 64 4d 65 6e  |,&80).....EndMen|
00000800  75 0d 02 26 04 0d 02 30  19 de 46 4d 45 4e 55 25  |u..&...0..FMENU%|
00000810  31 30 30 30 3a 56 25 3d  46 4d 45 4e 55 25 0d 02  |1000:V%=FMENU%..|
00000820  3a 11 f2 4d 65 6e 75 54  28 22 50 52 4a 22 29 0d  |:..MenuT("PRJ").|
00000830  02 44 1c 4d 49 53 43 25  3d 56 25 3a f2 4d 65 6e  |.D.MISC%=V%:.Men|
00000840  75 45 28 22 4d 53 43 22  2c 30 29 0d 02 4e 1a 46  |uE("MSC",0)..N.F|
00000850  52 25 3d 56 25 3a f2 4d  65 6e 75 45 28 22 46 52  |R%=V%:.MenuE("FR|
00000860  5a 22 2c 30 29 0d 02 58  1b 52 45 56 25 3d 56 25  |Z",0)..X.REV%=V%|
00000870  3a f2 4d 65 6e 75 45 28  22 52 45 56 22 2c 30 29  |:.MenuE("REV",0)|
00000880  0d 02 62 1c 59 4f 59 4f  25 3d 56 25 3a f2 4d 65  |..b.YOYO%=V%:.Me|
00000890  6e 75 45 28 22 59 4f 59  22 2c 30 29 0d 02 6c 13  |nuE("YOY",0)..l.|
000008a0  f2 4d 65 6e 75 45 28 22  46 46 52 22 2c 30 29 0d  |.MenuE("FFR",0).|
000008b0  02 76 13 f2 4d 65 6e 75  45 28 22 4c 46 52 22 2c  |.v..MenuE("LFR",|
000008c0  30 29 0d 02 80 26 49 4e  46 25 3d 56 25 3a f2 4d  |0)...&INF%=V%:.M|
000008d0  65 6e 75 45 28 22 46 53  43 22 2c 30 29 3a 49 4e  |enuE("FSC",0):IN|
000008e0  46 25 21 34 3d 46 53 25  0d 02 8a 1c 4d 44 25 3d  |F%!4=FS%....MD%=|
000008f0  56 25 3a f2 4d 65 6e 75  45 28 22 53 54 4d 22 2c  |V%:.MenuE("STM",|
00000900  26 38 30 29 0d 02 94 0c  f2 45 6e 64 4d 65 6e 75  |&80).....EndMenu|
00000910  0d 02 9e 04 0d 02 a8 1c  4d 49 53 43 25 21 34 3d  |........MISC%!4=|
00000920  56 25 3a f2 4d 65 6e 75  54 28 22 4d 53 43 22 29  |V%:.MenuT("MSC")|
00000930  0d 02 b2 25 49 4e 46 25  3d 56 25 3a f2 4d 65 6e  |...%INF%=V%:.Men|
00000940  75 45 28 22 49 4e 46 22  2c 30 29 3a 49 4e 46 25  |uE("INF",0):INF%|
00000950  21 34 3d 47 25 0d 02 bc  25 49 4e 46 25 3d 56 25  |!4=G%...%INF%=V%|
00000960  3a f2 4d 65 6e 75 45 28  22 46 49 4c 22 2c 30 29  |:.MenuE("FIL",0)|
00000970  3a 49 4e 46 25 21 34 3d  48 25 0d 02 c6 13 f2 4d  |:INF%!4=H%.....M|
00000980  65 6e 75 45 28 22 4e 56  57 22 2c 30 29 0d 02 d0  |enuE("NVW",0)...|
00000990  1d 46 52 46 25 3d 56 25  3a f2 4d 65 6e 75 45 28  |.FRF%=V%:.MenuE(|
000009a0  22 46 52 46 22 2c 26 38  30 29 0d 02 da 0c f2 45  |"FRF",&80).....E|
000009b0  6e 64 4d 65 6e 75 0d 02  e4 04 0d 02 ee 2d 45 4e  |ndMenu.......-EN|
000009c0  25 3d 93 3a 46 43 25 3d  32 3a 57 4d 25 3d eb 3a  |%=.:FC%=2:WM%=.:|
000009d0  4c 4f 25 3d b9 3a e0 3d  e0 2b 26 31 30 30 30 3a  |LO%=.:.=.+&1000:|
000009e0  4d 54 25 3d 93 3a f5 0d  02 f8 38 52 43 25 3d 31  |MT%=.:....8RC%=1|
000009f0  3a 52 59 25 3d a3 3a 44  53 25 3d a3 3a c8 99 22  |:RY%=.:DS%=.:.."|
00000a00  4f 53 5f 47 65 74 45 6e  76 22 20 b8 20 45 24 3a  |OS_GetEnv" . E$:|
00000a10  49 25 3d a7 45 24 2c 22  2d 71 75 69 74 22 29 0d  |I%=.E$,"-quit").|
00000a20  03 02 34 49 25 3d a7 45  24 2c 22 22 22 22 2c 49  |..4I%=.E$,"""",I|
00000a30  25 2b 31 29 3a 49 25 3d  a7 45 24 2c 22 22 22 22  |%+1):I%=.E$,""""|
00000a40  2c 49 25 2b 31 29 3a 45  24 3d c1 45 24 2c 49 25  |,I%+1):E$=.E$,I%|
00000a50  2b 31 29 0d 03 0c 1c c8  95 c0 45 24 2c 31 29 3d  |+1).......E$,1)=|
00000a60  22 20 22 3a 45 24 3d c1  45 24 2c 32 29 3a ce 0d  |" ":E$=.E$,2):..|
00000a70  03 16 13 c8 95 45 24 3c  3e c4 a9 45 24 2c 22 20  |.....E$<>..E$," |
00000a80  22 29 0d 03 20 20 49 25  3d a7 45 24 2b 22 20 22  |")..  I%=.E$+" "|
00000a90  2c 22 20 22 29 3a 46 24  3d c0 45 24 2c 49 25 2d  |," "):F$=.E$,I%-|
00000aa0  31 29 0d 03 2a 29 45 24  3d c1 45 24 2c 49 25 2b  |1)..*)E$=.E$,I%+|
00000ab0  31 29 3a c8 95 c0 45 24  2c 31 29 3d 22 20 22 3a  |1):...E$,1)=" ":|
00000ac0  45 24 3d c1 45 24 2c 32  29 3a ce 0d 03 34 3a e7  |E$=.E$,2):...4:.|
00000ad0  4c 4f 25 8b 4b 25 3d 21  52 25 3a c8 95 4b 25 3a  |LO%.K%=!R%:..K%:|
00000ae0  21 42 25 3d 4b 25 21 32  30 3a f2 57 68 69 63 68  |!B%=K%!20:.Which|
00000af0  28 21 42 25 29 3a f2 43  6c 6f 73 65 3a 4b 25 3d  |(!B%):.Close:K%=|
00000b00  21 52 25 3a ce 0d 03 3e  10 e7 c0 46 24 2c 31 29  |!R%:...>...F$,1)|
00000b10  3d 22 2d 22 8c 0d 03 48  12 20 20 20 c8 8e c1 46  |="-"...H.   ...F|
00000b20  24 2c 32 2c 31 29 ca 0d  03 52 23 20 20 20 c9 22  |$,2,1)...R#   ."|
00000b30  72 22 2c 22 52 22 3a f2  52 6f 6c 6c 28 52 43 25  |r","R":.Roll(RC%|
00000b40  2c 46 43 25 29 3a f2 45  4e 44 0d 03 5c 1b 20 20  |,FC%):.END..\.  |
00000b50  20 c9 22 66 22 2c 22 46  22 3a 46 43 25 3d bb c1  | ."f","F":FC%=..|
00000b60  46 24 2c 33 29 0d 03 66  16 20 20 20 c9 22 6c 22  |F$,3)..f.   ."l"|
00000b70  2c 22 4c 22 3a 4b 25 3d  21 52 25 0d 03 70 46 20  |,"L":K%=!R%..pF |
00000b80  e7 4b 25 3a f2 57 68 69  63 68 28 4b 25 21 32 30  |.K%:.Which(K%!20|
00000b90  29 3a f2 46 75 6c 6c 28  52 43 25 2c 46 43 25 29  |):.Full(RC%,FC%)|
00000ba0  3a e7 49 25 3d 32 37 3a  c8 99 22 57 69 6d 70 5f  |:.I%=27:.."Wimp_|
00000bb0  53 65 74 4d 6f 64 65 22  2c 57 4d 25 3a f2 45 4e  |SetMode",WM%:.EN|
00000bc0  44 0d 03 7a 2f 20 20 20  e7 4c 4f 25 4c 4f 25 3d  |D..z/   .LO%LO%=|
00000bd0  a3 3a c8 99 22 57 69 6d  70 5f 53 6c 6f 74 53 69  |.:.."Wimp_SlotSi|
00000be0  7a 65 22 2c 45 4e 25 2d  26 38 30 30 30 2c 2d 31  |ze",EN%-&8000,-1|
00000bf0  0d 03 84 1b 20 20 20 c9  22 63 22 2c 22 43 22 3a  |....   ."c","C":|
00000c00  52 43 25 3d bb c1 46 24  2c 33 29 0d 03 8e 18 20  |RC%=..F$,3).... |
00000c10  20 20 c9 22 77 22 2c 22  57 22 3a 52 43 25 3d 2d  |  ."w","W":RC%=-|
00000c20  52 43 25 0d 03 98 2e 20  20 20 c9 22 65 22 2c 22  |RC%....   ."e","|
00000c30  45 22 3a e7 4c 4f 25 8b  c8 99 22 57 69 6d 70 5f  |E":.LO%..."Wimp_|
00000c40  53 65 74 4d 6f 64 65 22  2c 57 4d 25 3a f2 45 4e  |SetMode",WM%:.EN|
00000c50  44 0d 03 a2 18 20 20 20  c9 22 79 22 2c 22 59 22  |D....   ."y","Y"|
00000c60  3a 52 59 25 3d ac 52 59  25 0d 03 ac 18 20 20 20  |:RY%=.RY%....   |
00000c70  c9 22 64 22 2c 22 44 22  3a 44 53 25 3d ac 44 53  |."d","D":DS%=.DS|
00000c80  25 0d 03 b6 1f 20 20 20  c9 22 6f 22 2c 22 4f 22  |%....   ."o","O"|
00000c90  3a 21 46 52 46 4d 25 3d  21 46 52 46 4d 25 82 31  |:!FRFM%=!FRFM%.1|
00000ca0  0d 03 c0 08 20 20 20 cb  0d 03 ca 05 cc 0d 03 d4  |....   .........|
00000cb0  15 20 20 20 f2 4c 6f 61  64 41 46 69 6c 6d 28 46  |.   .LoadAFilm(F|
00000cc0  24 29 0d 03 de 54 20 20  20 e7 4c 4f 25 8b 4b 25  |$)...T   .LO%.K%|
00000cd0  3d 21 52 25 3a e7 4b 25  3a f2 57 68 69 63 68 28  |=!R%:.K%:.Which(|
00000ce0  4b 25 21 32 30 29 3a f2  46 75 6c 6c 28 52 43 25  |K%!20):.Full(RC%|
00000cf0  2c 46 43 25 29 3a e7 49  25 3d 32 37 3a c8 99 22  |,FC%):.I%=27:.."|
00000d00  57 69 6d 70 5f 53 65 74  4d 6f 64 65 22 2c 57 4d  |Wimp_SetMode",WM|
00000d10  25 3a f2 45 4e 44 0d 03  e8 05 cd 0d 03 f2 05 ce  |%:.END..........|
00000d20  0d 03 fc 3a e7 4c 4f 25  8b 4b 25 3d 21 52 25 3a  |...:.LO%.K%=!R%:|
00000d30  c8 95 4b 25 3a 21 42 25  3d 4b 25 21 32 30 3a f2  |..K%:!B%=K%!20:.|
00000d40  57 68 69 63 68 28 21 42  25 29 3a f2 43 6c 6f 73  |Which(!B%):.Clos|
00000d50  65 3a 4b 25 3d 21 52 25  3a ce 0d 04 06 08 fd 4c  |e:K%=!R%:......L|
00000d60  4f 25 0d 04 10 0d ee 85  3a f2 45 72 72 6f 72 0d  |O%......:.Error.|
00000d70  04 1a 20 c8 99 22 4f 53  5f 52 65 61 64 4d 6f 6e  |.. .."OS_ReadMon|
00000d80  6f 74 6f 6e 69 63 54 69  6d 65 22 b8 49 54 25 0d  |otonicTime".IT%.|
00000d90  04 24 05 f5 0d 04 2e 27  c8 99 22 57 69 6d 70 5f  |.$.....'.."Wimp_|
00000da0  50 6f 6c 6c 49 64 6c 65  22 2c 2c 42 25 2c 49 54  |PollIdle",,B%,IT|
00000db0  25 2b bb 24 21 44 4c 25  b8 41 25 0d 04 38 09 c8  |%+.$!DL%.A%..8..|
00000dc0  8e 41 25 ca 0d 04 42 2a  c9 30 3a c8 99 22 4f 53  |.A%...B*.0:.."OS|
00000dd0  5f 52 65 61 64 4d 6f 6e  6f 74 6f 6e 69 63 54 69  |_ReadMonotonicTi|
00000de0  6d 65 22 b8 49 54 25 3a  4b 25 3d 21 52 25 0d 04  |me".IT%:K%=!R%..|
00000df0  4c 42 c8 95 4b 25 3a 4d  25 3d 4b 25 21 34 3a 53  |LB..K%:M%=K%!4:S|
00000e00  25 3d 4b 25 21 38 3a 44  50 54 52 25 3d 4b 25 21  |%=K%!8:DPTR%=K%!|
00000e10  31 32 3a 53 43 52 25 3d  4b 25 21 31 36 3a 57 25  |12:SCR%=K%!16:W%|
00000e20  3d 4b 25 21 32 30 3a 43  54 25 3d 4b 25 21 34 34  |=K%!20:CT%=K%!44|
00000e30  0d 04 56 0b e7 4b 25 21  32 34 8c 0d 04 60 2c e7  |..V..K%!24...`,.|
00000e40  4b 25 21 33 32 8b 46 25  3d 4d 25 2b 4d 25 21 31  |K%!32.F%=M%+M%!1|
00000e50  36 3a e7 44 50 54 52 25  3d 46 25 2b 21 46 25 3a  |6:.DPTR%=F%+!F%:|
00000e60  4b 25 21 32 38 3d b9 0d  04 6a 20 e7 4b 25 21 32  |K%!28=...j .K%!2|
00000e70  38 f2 4e 65 78 74 46 72  61 6d 65 20 8b f2 4c 61  |8.NextFrame ..La|
00000e80  73 74 46 72 61 6d 65 0d  04 74 1c e7 4b 25 21 33  |stFrame..t..K%!3|
00000e90  32 8b e7 21 44 50 54 52  25 3d 30 3a 4b 25 21 32  |2..!DPTR%=0:K%!2|
00000ea0  38 3d a3 0d 04 7e 0e cd  3a 4b 25 3d 21 4b 25 3a  |8=...~..:K%=!K%:|
00000eb0  ce 0d 04 88 1a c9 31 3a  f2 57 68 69 63 68 28 21  |......1:.Which(!|
00000ec0  42 25 29 3a f2 52 65 64  72 61 77 0d 04 92 18 c9  |B%):.Redraw.....|
00000ed0  32 3a f2 57 68 69 63 68  28 21 42 25 29 3a f2 4f  |2:.Which(!B%):.O|
00000ee0  70 65 6e 0d 04 9c 19 c9  33 3a f2 57 68 69 63 68  |pen.....3:.Which|
00000ef0  28 21 42 25 29 3a f2 43  6c 6f 73 65 0d 04 a6 06  |(!B%):.Close....|
00000f00  c9 36 0d 04 b0 0f 20 20  20 c8 8e 42 25 21 31 32  |.6....   ..B%!12|
00000f10  ca 0d 04 ba 14 20 20 20  c9 46 53 25 3a e7 42 25  |.....   .FS%:.B%|
00000f20  21 38 80 37 8c 0d 04 c4  2e 20 20 20 c8 99 22 57  |!8.7.....   .."W|
00000f30  69 6d 70 5f 43 6c 6f 73  65 57 69 6e 64 6f 77 22  |imp_CloseWindow"|
00000f40  2c 2c 42 25 2b 31 32 3a  f2 57 68 69 63 68 28 4d  |,,B%+12:.Which(M|
00000f50  57 25 29 0d 04 ce 3d 20  20 20 57 4d 25 3d eb 3a  |W%)...=   WM%=.:|
00000f60  4a 25 3d 32 3a 52 59 25  3d ac 4b 25 21 33 32 3a  |J%=2:RY%=.K%!32:|
00000f70  f2 46 75 6c 6c 28 30 2c  4a 25 29 3a c8 99 22 57  |.Full(0,J%):.."W|
00000f80  69 6d 70 5f 53 65 74 4d  6f 64 65 22 2c 57 4d 25  |imp_SetMode",WM%|
00000f90  0d 04 d8 25 20 20 20 e7  42 25 21 38 80 31 f2 50  |...%   .B%!8.1.P|
00000fa0  6f 70 75 70 28 4d 45 4e  25 29 8b f2 50 6f 70 75  |opup(MEN%)..Popu|
00000fb0  70 28 2d 31 29 0d 04 e2  08 20 20 20 cd 0d 04 ec  |p(-1)....   ....|
00000fc0  27 20 20 20 c9 2d 32 3a  e7 42 25 21 31 36 3d 5a  |'   .-2:.B%!16=Z|
00000fd0  25 4d 58 25 3d 42 25 21  30 2d 38 30 3a 4d 59 25  |%MX%=B%!0-80:MY%|
00000fe0  3d 33 31 34 0d 04 f6 2a  20 20 20 20 20 20 f2 53  |=314...*      .S|
00000ff0  65 6c 65 63 74 28 52 4f  25 2c 21 52 25 3d 30 29  |elect(RO%,!R%=0)|
00001000  3a f2 50 6f 70 75 70 28  4d 45 4e 55 25 29 0d 05  |:.Popup(MENU%)..|
00001010  00 0d 20 20 20 c9 47 25  2c 48 25 0d 05 0a 1e 20  |..   .G%,H%.... |
00001020  20 20 7f 3a f2 57 68 69  63 68 28 42 25 21 31 32  |  .:.Which(B%!12|
00001030  29 3a f2 42 75 74 74 6f  6e 0d 05 14 08 20 20 20  |):.Button....   |
00001040  cb 0d 05 1e 0d c9 39 3a  f2 4d 65 6e 75 73 0d 05  |......9:.Menus..|
00001050  28 0a c9 31 37 2c 31 38  0d 05 32 0f 20 20 20 c8  |(..17,18..2.   .|
00001060  8e 42 25 21 31 36 ca 0d  05 3c 21 20 20 20 c9 30  |.B%!16...<!   .0|
00001070  3a c8 99 22 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |:.."Wimp_CloseDo|
00001080  77 6e 22 3a f2 45 4e 44  0d 05 46 21 20 20 20 c9  |wn":.END..F!   .|
00001090  31 3a e7 42 25 21 34 30  3d 26 44 36 41 84 42 25  |1:.B%!40=&D6A.B%|
000010a0  21 34 30 3d 26 43 32 41  8c 0d 05 50 47 20 20 20  |!40=&C2A...PG   |
000010b0  20 20 20 21 42 25 3d 36  30 3a 42 25 21 31 32 3d  |   !B%=60:B%!12=|
000010c0  42 25 21 38 3a 42 25 21  31 36 3d 32 3a 42 25 21  |B%!8:B%!16=2:B%!|
000010d0  33 36 3d 2d 31 3a 24 28  42 25 2b 34 34 29 3d 22  |36=-1:$(B%+44)="|
000010e0  3c 57 69 6d 70 24 53 63  72 61 70 3e 22 2b bd 30  |<Wimp$Scrap>"+.0|
000010f0  0d 05 5a 35 20 20 20 20  20 20 c8 99 22 57 69 6d  |..Z5      .."Wim|
00001100  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 22 2c 31  |p_SendMessage",1|
00001110  37 2c 42 25 2c 42 25 21  34 3a 53 43 52 41 50 25  |7,B%,B%!4:SCRAP%|
00001120  3d 42 25 21 38 0d 05 64  0b 20 20 20 20 20 20 cd  |=B%!8..d.      .|
00001130  0d 05 6e 23 20 20 20 c9  33 2c 35 3a e7 42 25 21  |..n#   .3,5:.B%!|
00001140  34 30 3d 26 44 36 41 84  42 25 21 34 30 3d 26 43  |40=&D6A.B%!40=&C|
00001150  32 41 8c 0d 05 78 36 20  20 20 20 20 20 20 20 20  |2A...x6         |
00001160  46 24 3d a4 5a 53 28 42  25 2b 34 34 29 3a e7 53  |F$=.ZS(B%+44):.S|
00001170  43 52 41 50 25 3a 53 43  52 41 50 25 3d 53 43 52  |CRAP%:SCRAP%=SCR|
00001180  41 50 25 3d 42 25 21 31  32 0d 05 82 3f 20 20 20  |AP%=B%!12...?   |
00001190  20 20 20 20 20 20 42 25  21 31 32 3d 42 25 21 38  |      B%!12=B%!8|
000011a0  3a 42 25 21 31 36 3d 34  3a c8 99 22 57 69 6d 70  |:B%!16=4:.."Wimp|
000011b0  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 31 37  |_SendMessage",17|
000011c0  2c 42 25 2c 42 25 21 34  0d 05 8c 21 20 20 20 20  |,B%,B%!4...!    |
000011d0  20 20 20 20 20 52 59 25  3d a3 3a f2 4c 6f 61 64  |     RY%=.:.Load|
000011e0  41 46 69 6c 6d 28 46 24  29 0d 05 96 2e 20 20 20  |AFilm(F$)....   |
000011f0  20 20 20 20 20 20 e7 53  43 52 41 50 25 3a 53 43  |      .SCRAP%:SC|
00001200  52 41 50 25 3d a3 3a c8  99 22 4f 53 5f 46 69 6c  |RAP%=.:.."OS_Fil|
00001210  65 22 2c 36 2c 46 24 0d  05 a0 0b 20 20 20 20 20  |e",6,F$....     |
00001220  20 cd 0d 05 aa 43 20 20  20 c9 39 2c 26 34 30 30  | ....C   .9,&400|
00001230  43 31 3a 4b 25 3d 21 52  25 3a c8 95 4b 25 3a 21  |C1:K%=!R%:..K%:!|
00001240  28 4b 25 21 34 34 29 3d  21 28 4b 25 21 34 2b 32  |(K%!44)=!(K%!4+2|
00001250  38 29 3a e7 4b 25 21 35  32 3a 21 28 4b 25 21 34  |8):.K%!52:!(K%!4|
00001260  34 29 3d 2d 31 0d 05 b4  12 20 20 20 20 20 20 4b  |4)=-1....      K|
00001270  25 3d 21 4b 25 3a ce 0d  05 be 35 20 20 20 20 20  |%=!K%:....5     |
00001280  20 4d 49 25 3d a4 4d 56  61 72 28 eb 2c 39 29 84  | MI%=.MVar(.,9).|
00001290  a4 4d 56 61 72 28 eb 2c  34 29 3c 3c 38 84 a4 4d  |.MVar(.,4)<<8..M|
000012a0  56 61 72 28 eb 2c 35 29  3c 3c 31 36 0d 05 c8 08  |Var(.,5)<<16....|
000012b0  20 20 20 cb 0d 05 d2 05  cb 0d 05 dc 06 fd 30 0d  |   ...........0.|
000012c0  05 e6 04 0d 05 f0 0b dd  f2 43 6c 6f 73 65 0d 05  |.........Close..|
000012d0  fa 2b 4c 25 3d 4b 25 21  33 36 3a 4e 25 3d 4c 25  |.+L%=K%!36:N%=L%|
000012e0  3a c8 95 4e 25 21 34 30  3a 4c 25 3d 4e 25 3a 4e  |:..N%!40:L%=N%:N|
000012f0  25 3d 4e 25 21 34 30 3a  ce 0d 06 04 0b e7 4b 25  |%=N%!40:......K%|
00001300  21 34 30 8c 0d 06 0e 1f  e3 49 25 3d 31 32 b8 33  |!40......I%=12.3|
00001310  32 88 34 3a c8 94 4b 25  21 49 25 2c 4e 25 21 49  |2.4:..K%!I%,N%!I|
00001320  25 3a ed 0d 06 18 1c e7  4b 25 21 31 36 3e 30 4b  |%:......K%!16>0K|
00001330  25 21 31 36 2d 3d 4e 25  21 38 2d 4b 25 21 38 0d  |%!16-=N%!8-K%!8.|
00001340  06 22 1c e7 4e 25 21 31  36 3e 30 4e 25 21 31 36  |."..N%!16>0N%!16|
00001350  2d 3d 4b 25 21 38 2d 4e  25 21 38 0d 06 2c 3a c8  |-=K%!8-N%!8..,:.|
00001360  99 53 4f 25 2c 26 31 33  43 2c 53 25 2c 22 58 22  |.SO%,&13C,S%,"X"|
00001370  b8 20 52 30 2c 52 31 2c  52 32 2c 52 33 3a c8 99  |. R0,R1,R2,R3:..|
00001380  53 4f 25 2c 26 31 32 32  2c 4e 25 21 38 2c 22 58  |SO%,&122,N%!8,"X|
00001390  22 2c 2c 2c 33 0d 06 36  2d c8 99 53 4f 25 2c 26  |",,,3..6-..SO%,&|
000013a0  31 33 43 2c 4e 25 21 38  2c 22 58 22 3a c8 99 53  |13C,N%!8,"X":..S|
000013b0  4f 25 2c 26 31 32 32 2c  53 25 2c 22 58 22 2c 2c  |O%,&122,S%,"X",,|
000013c0  2c 33 0d 06 40 3f c8 99  53 4f 25 2c 26 31 33 43  |,3..@?..SO%,&13C|
000013d0  2c 53 25 2c 22 58 22 3a  c8 99 53 4f 25 2c 26 31  |,S%,"X":..SO%,&1|
000013e0  32 32 2c 4e 25 21 38 2c  22 58 22 2c 2c 2c 33 3a  |22,N%!8,"X",,,3:|
000013f0  c8 99 53 4f 25 2c 52 30  2c 52 31 2c 52 32 2c 52  |..SO%,R0,R1,R2,R|
00001400  33 0d 06 4a 0f f2 57 68  69 63 68 28 21 42 25 29  |3..J..Which(!B%)|
00001410  0d 06 54 05 cd 0d 06 5e  3e 4c 25 21 34 30 3d 30  |..T....^>L%!40=0|
00001420  3a c8 99 22 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |:.."Wimp_CloseWi|
00001430  6e 64 6f 77 22 2c 2c 42  25 3a c8 99 22 57 69 6d  |ndow",,B%:.."Wim|
00001440  70 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 22 2c  |p_DeleteWindow",|
00001450  2c 42 25 0d 06 68 2a 4d  25 3d 4b 25 21 35 36 3a  |,B%..h*M%=K%!56:|
00001460  e7 4b 25 21 33 36 3c 3e  4b 25 4d 25 3d 53 25 8b  |.K%!36<>K%M%=S%.|
00001470  e7 4b 25 21 36 30 d9 23  4b 25 21 36 30 0d 06 72  |.K%!60.#K%!60..r|
00001480  1e 21 49 25 3d 21 4b 25  3a 45 25 3d 4b 25 2b 4b  |.!I%=!K%:E%=K%+K|
00001490  53 25 3a 4c 25 3d 45 25  2d 4d 25 0d 06 7c 0c e7  |S%:L%=E%-M%..|..|
000014a0  45 25 3c 4d 54 25 8c 0d  06 86 15 4a 25 3d 52 25  |E%<MT%.....J%=R%|
000014b0  3a 49 25 3d 21 4a 25 3a  c8 95 49 25 0d 06 90 10  |:I%=!J%:..I%....|
000014c0  f2 41 64 6a 75 73 74 28  21 4a 25 29 0d 06 9a 3d  |.Adjust(!J%)...=|
000014d0  f2 41 64 6a 75 73 74 28  49 25 21 34 29 3a f2 41  |.Adjust(I%!4):.A|
000014e0  64 6a 75 73 74 28 49 25  21 38 29 3a f2 41 64 6a  |djust(I%!8):.Adj|
000014f0  75 73 74 28 49 25 21 31  32 29 3a f2 41 64 6a 75  |ust(I%!12):.Adju|
00001500  73 74 28 49 25 21 31 36  29 0d 06 a4 37 f2 41 64  |st(I%!16)...7.Ad|
00001510  6a 75 73 74 28 49 25 21  33 36 29 3a f2 41 64 6a  |just(I%!36):.Adj|
00001520  75 73 74 28 49 25 21 34  30 29 3a f2 41 64 6a 75  |ust(I%!40):.Adju|
00001530  73 74 28 21 28 28 49 25  21 34 34 29 2b 34 29 29  |st(!((I%!44)+4))|
00001540  0d 06 ae 30 f2 41 64 6a  75 73 74 28 49 25 21 34  |...0.Adjust(I%!4|
00001550  34 29 3a f2 41 64 6a 75  73 74 28 49 25 21 35 32  |4):.Adjust(I%!52|
00001560  29 3a f2 41 64 6a 75 73  74 28 49 25 21 35 36 29  |):.Adjust(I%!56)|
00001570  0d 06 b8 10 4a 25 3d 49  25 3a 49 25 3d 21 4a 25  |....J%=I%:I%=!J%|
00001580  0d 06 c2 05 ce 0d 06 cc  1f f2 4d 6f 76 65 28 4d  |..........Move(M|
00001590  25 2b 4c 25 2c 4d 25 2c  4d 54 25 2d 28 4d 25 2b  |%+L%,M%,MT%-(M%+|
000015a0  4c 25 29 29 0d 06 d6 05  cd 0d 06 e0 2e 4d 54 25  |L%)).........MT%|
000015b0  2d 3d 4c 25 3a e7 4c 4f  25 c8 99 22 57 69 6d 70  |-=L%:.LO%.."Wimp|
000015c0  5f 53 6c 6f 74 53 69 7a  65 22 2c 4d 54 25 2d 26  |_SlotSize",MT%-&|
000015d0  38 30 30 30 2c 2d 31 0d  06 ea 05 e1 0d 06 f4 04  |8000,-1.........|
000015e0  0d 06 fe 20 dd f2 41 64  6a 75 73 74 28 f8 20 50  |... ..Adjust(. P|
000015f0  25 29 3a e7 50 25 3e 4d  25 3a 50 25 2d 3d 4c 25  |%):.P%>M%:P%-=L%|
00001600  0d 07 08 05 e1 0d 07 12  04 0d 07 1c 24 dd f2 4f  |............$..O|
00001610  70 65 6e 3a c8 99 22 57  69 6d 70 5f 4f 70 65 6e  |pen:.."Wimp_Open|
00001620  57 69 6e 64 6f 77 22 2c  2c 42 25 3a e1 0d 07 26  |Window",,B%:...&|
00001630  04 0d 07 30 0c dd f2 52  65 64 72 61 77 0d 07 3a  |...0...Redraw..:|
00001640  22 c8 99 22 57 69 6d 70  5f 52 65 64 72 61 77 57  |".."Wimp_RedrawW|
00001650  69 6e 64 6f 77 22 2c 2c  42 25 20 b8 20 46 25 0d  |indow",,B% . F%.|
00001660  07 44 33 c8 95 46 25 3a  58 25 3d 42 25 21 34 2d  |.D3..F%:X%=B%!4-|
00001670  42 25 21 32 30 3a 59 25  3d 42 25 21 31 36 2d 42  |B%!20:Y%=B%!16-B|
00001680  25 21 32 34 3a f2 52 65  64 72 61 77 53 70 72 69  |%!24:.RedrawSpri|
00001690  74 65 0d 07 4e 24 c8 99  22 57 69 6d 70 5f 47 65  |te..N$.."Wimp_Ge|
000016a0  74 52 65 63 74 61 6e 67  6c 65 22 2c 2c 42 25 20  |tRectangle",,B% |
000016b0  b8 20 46 25 3a ce 0d 07  58 05 e1 0d 07 62 04 0d  |. F%:...X....b..|
000016c0  07 6c 0c dd f2 42 75 74  74 6f 6e 0d 07 76 0b c8  |.l...Button..v..|
000016d0  8e 42 25 21 38 ca 0d 07  80 11 c9 31 3a f2 4c 61  |.B%!8......1:.La|
000016e0  73 74 46 72 61 6d 65 0d  07 8a 50 c9 32 3a f2 54  |stFrame...P.2:.T|
000016f0  69 63 6b 28 46 52 25 2c  4b 25 21 32 34 29 3a f2  |ick(FR%,K%!24):.|
00001700  54 69 63 6b 28 52 45 56  25 2c 4b 25 21 32 38 29  |Tick(REV%,K%!28)|
00001710  3a f2 54 69 63 6b 28 59  4f 59 4f 25 2c 4b 25 21  |:.Tick(YOYO%,K%!|
00001720  33 32 29 3a f2 54 69 63  6b 28 46 52 46 25 2c 4b  |32):.Tick(FRF%,K|
00001730  25 21 36 30 3d 30 29 0d  07 94 2d f2 53 65 6c 65  |%!60=0)...-.Sele|
00001740  63 74 28 4d 44 25 2c eb  3d 4d 25 21 32 38 29 3a  |ct(MD%,.=M%!28):|
00001750  4d 58 25 3d 42 25 21 30  2d 38 30 3a 4d 59 25 3d  |MX%=B%!0-80:MY%=|
00001760  42 25 21 34 0d 07 9e 3e  f2 53 65 74 49 28 48 25  |B%!4...>.SetI(H%|
00001770  2c 30 2c c3 4d 25 21 32  38 29 3a f2 53 65 74 49  |,0,.M%!28):.SetI|
00001780  28 48 25 2c 31 2c c3 21  4d 25 29 3a f2 53 65 74  |(H%,1,.!M%):.Set|
00001790  49 28 48 25 2c 32 2c a4  4d 53 47 28 22 4e 4f 22  |I(H%,2,.MSG("NO"|
000017a0  29 29 0d 07 a8 3a e7 4d  25 21 33 32 3d 31 f2 53  |))...:.M%!32=1.S|
000017b0  65 74 49 28 48 25 2c 32  2c a4 4d 53 47 28 22 59  |etI(H%,2,.MSG("Y|
000017c0  45 53 22 29 29 8b f2 53  65 74 49 28 48 25 2c 32  |ES"))..SetI(H%,2|
000017d0  2c a4 4d 53 47 28 22 4e  4f 22 29 29 0d 07 b2 3e  |,.MSG("NO"))...>|
000017e0  e7 28 4d 25 21 33 36 80  33 29 3d 30 f2 53 65 74  |.(M%!36.3)=0.Set|
000017f0  49 28 48 25 2c 33 2c a4  4d 53 47 28 22 4e 4f 22  |I(H%,3,.MSG("NO"|
00001800  29 29 8b f2 53 65 74 49  28 48 25 2c 33 2c a4 4d  |))..SetI(H%,3,.M|
00001810  53 47 28 22 59 45 53 22  29 29 0d 07 bc 29 f2 53  |SG("YES"))...).S|
00001820  65 74 49 28 48 25 2c 34  2c c3 4d 25 21 32 30 29  |etI(H%,4,.M%!20)|
00001830  3a f2 53 65 74 49 28 48  25 2c 35 2c c3 4d 25 21  |:.SetI(H%,5,.M%!|
00001840  32 34 29 0d 07 c6 19 f2  50 6f 70 75 70 28 46 4d  |24).....Popup(FM|
00001850  45 4e 55 25 29 3a 4d 57  25 3d 57 25 0d 07 d0 11  |ENU%):MW%=W%....|
00001860  c9 34 3a f2 4e 65 78 74  46 72 61 6d 65 0d 07 da  |.4:.NextFrame...|
00001870  05 cb 0d 07 e4 05 e1 0d  07 ee 04 0d 07 f8 0b dd  |................|
00001880  f2 4d 65 6e 75 73 0d 08  02 0b c8 8e 4d 45 4e 25  |.Menus......MEN%|
00001890  ca 0d 08 0c 11 c9 4d 45  4e 55 25 3a c8 8e 21 42  |......MENU%:..!B|
000018a0  25 ca 0d 08 16 16 20 20  20 c9 30 3a f2 50 6f 70  |%.....   .0:.Pop|
000018b0  75 70 28 47 25 29 3a e1  0d 08 20 1a 20 20 20 c9  |up(G%):... .   .|
000018c0  31 3a f2 52 6f 6c 6c 28  bb 24 21 52 4c 4c 25 2c  |1:.Roll(.$!RLL%,|
000018d0  32 29 0d 08 2a 19 20 20  20 c9 33 3a 21 46 52 46  |2)..*.   .3:!FRF|
000018e0  4d 25 3d 21 46 52 46 4d  25 82 31 0d 08 34 21 20  |M%=!FRFM%.1..4! |
000018f0  20 20 c9 34 3a c8 99 22  57 69 6d 70 5f 43 6c 6f  |  .4:.."Wimp_Clo|
00001900  73 65 44 6f 77 6e 22 3a  f2 45 4e 44 0d 08 3e 08  |seDown":.END..>.|
00001910  20 20 20 cb 0d 08 48 1e  c9 46 4d 45 4e 55 25 3a  |   ...H..FMENU%:|
00001920  f2 57 68 69 63 68 28 4d  57 25 29 3a c8 8e 21 42  |.Which(MW%):..!B|
00001930  25 ca 0d 08 52 11 20 20  20 c9 30 3a c8 8e 42 25  |%...R.   .0:..B%|
00001940  21 34 ca 0d 08 5c 25 20  20 20 20 20 20 c9 32 3a  |!4...\%      .2:|
00001950  51 25 3d 4b 25 3a c8 95  51 25 21 34 30 3a 51 25  |Q%=K%:..Q%!40:Q%|
00001960  3d 51 25 21 34 30 3a ce  0d 08 66 30 20 20 20 20  |=Q%!40:...f0    |
00001970  20 20 43 50 25 3d 51 25  21 35 32 3a 46 48 25 3d  |  CP%=Q%!52:FH%=|
00001980  51 25 21 36 30 3a 42 42  25 3d 51 25 21 36 34 3a  |Q%!60:BB%=Q%!64:|
00001990  f2 53 65 74 46 69 6c 6d  0d 08 70 1e 20 20 20 20  |.SetFilm..p.    |
000019a0  20 20 4b 25 21 33 36 3d  51 25 21 33 36 3a 51 25  |  K%!36=Q%!36:Q%|
000019b0  21 34 30 3d 4b 25 0d 08  7a 0b 20 20 20 20 20 20  |!40=K%..z.      |
000019c0  cb 0d 08 84 16 20 20 20  c9 31 3a 4b 25 21 32 34  |.....   .1:K%!24|
000019d0  3d ac 4b 25 21 32 34 0d  08 8e 16 20 20 20 c9 32  |=.K%!24....   .2|
000019e0  3a 4b 25 21 32 38 3d ac  4b 25 21 32 38 0d 08 98  |:K%!28=.K%!28...|
000019f0  16 20 20 20 c9 33 3a 4b  25 21 33 32 3d ac 4b 25  |.   .3:K%!32=.K%|
00001a00  21 33 32 0d 08 a2 32 20  20 20 c9 34 3a 44 50 54  |!32...2   .4:DPT|
00001a10  52 25 3d 4d 25 2b 4d 25  21 31 36 3a 53 43 52 25  |R%=M%+M%!16:SCR%|
00001a20  3d 30 3a f2 4e 65 78 74  46 72 61 6d 65 3a 4b 25  |=0:.NextFrame:K%|
00001a30  21 32 38 3d b9 0d 08 ac  3c 20 20 20 c9 35 3a 44  |!28=....<   .5:D|
00001a40  50 54 52 25 3d 4d 25 2b  4d 25 21 31 36 3a 53 43  |PTR%=M%+M%!16:SC|
00001a50  52 25 3d 30 3a f2 4e 65  77 46 72 61 6d 65 3a f2  |R%=0:.NewFrame:.|
00001a60  4c 61 73 74 46 72 61 6d  65 3a 4b 25 21 32 38 3d  |LastFrame:K%!28=|
00001a70  a3 0d 08 b6 40 20 20 20  c9 36 3a 57 4d 25 3d eb  |....@   .6:WM%=.|
00001a80  3a 4a 25 3d 32 3a 52 59  25 3d ac 4b 25 21 33 32  |:J%=2:RY%=.K%!32|
00001a90  3a f2 46 75 6c 6c 28 30  2c 4a 25 29 3a c8 99 22  |:.Full(0,J%):.."|
00001aa0  57 69 6d 70 5f 53 65 74  4d 6f 64 65 22 2c 57 4d  |Wimp_SetMode",WM|
00001ab0  25 0d 08 c0 20 20 20 20  c9 37 3a c8 99 22 57 69  |%...    .7:.."Wi|
00001ac0  6d 70 5f 53 65 74 4d 6f  64 65 22 2c 4d 25 21 32  |mp_SetMode",M%!2|
00001ad0  38 0d 08 ca 08 20 20 20  cb 0d 08 d4 3c 20 20 20  |8....   ....<   |
00001ae0  f2 54 69 63 6b 28 46 52  25 2c 4b 25 21 32 34 29  |.Tick(FR%,K%!24)|
00001af0  3a f2 54 69 63 6b 28 52  45 56 25 2c 4b 25 21 32  |:.Tick(REV%,K%!2|
00001b00  38 29 3a f2 54 69 63 6b  28 59 4f 59 4f 25 2c 4b  |8):.Tick(YOYO%,K|
00001b10  25 21 33 32 29 0d 08 de  1b 20 20 20 f2 53 65 6c  |%!32)....   .Sel|
00001b20  65 63 74 28 4d 44 25 2c  eb 3d 4d 25 21 32 38 29  |ect(MD%,.=M%!28)|
00001b30  0d 08 e8 05 cb 0d 08 f2  3f c8 99 22 57 69 6d 70  |........?.."Wimp|
00001b40  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00001b50  2c 2c 42 25 3a e7 42 25  21 38 80 31 3a f2 50 6f  |,,B%:.B%!8.1:.Po|
00001b60  70 75 70 28 4d 45 4e 25  29 8b f2 50 6f 70 75 70  |pup(MEN%)..Popup|
00001b70  28 2d 31 29 0d 08 fc 05  e1 0d 09 06 04 0d 09 10  |(-1)............|
00001b80  42 dd f2 57 69 6e 64 6f  77 28 54 24 2c 42 25 21  |B..Window(T$,B%!|
00001b90  32 38 2c 21 42 25 2c 42  25 21 34 2c 42 25 21 38  |28,!B%,B%!4,B%!8|
00001ba0  2c 42 25 21 31 32 2c 42  25 21 34 30 2c 42 25 21  |,B%!12,B%!40,B%!|
00001bb0  34 34 2c 42 25 21 34 38  2c 42 25 21 35 32 29 0d  |44,B%!48,B%!52).|
00001bc0  09 1a 1c f4 54 24 3d 41  43 45 24 2b 22 20 22 2b  |....T$=ACE$+" "+|
00001bd0  54 24 2b 22 20 22 2b 41  43 45 24 0d 09 24 15 54  |T$+" "+ACE$..$.T|
00001be0  25 3d 54 54 25 3a 54 54  25 2b 3d a9 54 24 2b 31  |%=TT%:TT%+=.T$+1|
00001bf0  0d 09 2e 22 e7 54 54 25  3e 54 49 54 25 2b 31 30  |...".TT%>TIT%+10|
00001c00  30 30 3a 54 54 25 3d 54  49 54 25 3a 54 25 3d 54  |00:TT%=TIT%:T%=T|
00001c10  54 25 0d 09 38 26 42 25  21 37 32 3d 54 25 3a 42  |T%..8&B%!72=T%:B|
00001c20  25 21 37 36 3d 2d 31 3a  42 25 21 38 30 3d a9 54  |%!76=-1:B%!80=.T|
00001c30  24 3a 24 54 25 3d 54 24  0d 09 42 34 42 25 21 31  |$:$T%=T$..B4B%!1|
00001c40  36 3d 28 21 42 25 2d 42  25 21 38 29 81 32 3a 42  |6=(!B%-B%!8).2:B|
00001c50  25 21 32 30 3d 28 42 25  21 31 32 2d 42 25 21 34  |%!20=(B%!12-B%!4|
00001c60  29 81 32 3a 42 25 21 32  34 3d 2d 31 0d 09 4c 23  |).2:B%!24=-1..L#|
00001c70  42 25 21 33 32 3d 26 30  31 30 37 30 32 30 37 3a  |B%!32=&01070207:|
00001c80  42 25 21 33 36 3d 26 30  30 30 43 30 31 30 33 0d  |B%!36=&000C0103.|
00001c90  09 56 3d 42 25 21 35 36  3d 25 31 30 30 30 30 31  |.V=B%!56=%100001|
00001ca0  30 30 31 3a 42 25 21 36  30 3d 32 3c 3c 31 32 3a  |001:B%!60=2<<12:|
00001cb0  42 25 21 36 34 3d 30 3a  42 25 21 36 38 3d 26 31  |B%!64=0:B%!68=&1|
00001cc0  30 30 30 31 3a 42 25 21  38 34 3d 30 0d 09 60 22  |0001:B%!84=0..`"|
00001cd0  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 57 69  |.."Wimp_CreateWi|
00001ce0  6e 64 6f 77 22 2c 2c 42  25 20 b8 20 57 25 0d 09  |ndow",,B% . W%..|
00001cf0  6a 3e 21 42 25 3d 57 25  3a c8 99 22 57 69 6d 70  |j>!B%=W%:.."Wimp|
00001d00  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00001d10  2c 2c 42 25 3a c8 99 22  57 69 6d 70 5f 4f 70 65  |,,B%:.."Wimp_Ope|
00001d20  6e 57 69 6e 64 6f 77 22  2c 2c 42 25 0d 09 74 05  |nWindow",,B%..t.|
00001d30  e1 0d 09 7e 04 0d 09 88  19 dd f2 4e 65 78 74 46  |...~.......NextF|
00001d40  72 61 6d 65 3a f2 4e 65  77 46 72 61 6d 65 0d 09  |rame:.NewFrame..|
00001d50  92 32 42 25 21 34 3d 2d  33 45 34 3a 42 25 21 38  |.2B%!4=-3E4:B%!8|
00001d60  3d 2d 33 45 34 3a 42 25  21 31 32 3d 33 45 34 3a  |=-3E4:B%!12=3E4:|
00001d70  42 25 21 31 36 3d 33 45  34 3a 21 42 25 3d 57 25  |B%!16=3E4:!B%=W%|
00001d80  0d 09 9c 22 c8 99 22 57  69 6d 70 5f 55 70 64 61  |...".."Wimp_Upda|
00001d90  74 65 57 69 6e 64 6f 77  22 2c 2c 42 25 20 b8 20  |teWindow",,B% . |
00001da0  46 25 0d 09 a6 33 c8 95  46 25 3a 58 25 3d 42 25  |F%...3..F%:X%=B%|
00001db0  21 34 2d 42 25 21 32 30  3a 59 25 3d 42 25 21 31  |!4-B%!20:Y%=B%!1|
00001dc0  36 2d 42 25 21 32 34 3a  f2 52 65 64 72 61 77 53  |6-B%!24:.RedrawS|
00001dd0  70 72 69 74 65 0d 09 b0  24 c8 99 22 57 69 6d 70  |prite...$.."Wimp|
00001de0  5f 47 65 74 52 65 63 74  61 6e 67 6c 65 22 2c 2c  |_GetRectangle",,|
00001df0  42 25 20 b8 20 46 25 3a  ce 0d 09 ba 05 e1 0d 09  |B% . F%:........|
00001e00  c4 04 0d 09 ce 0f dd f2  4c 61 73 74 46 72 61 6d  |........LastFram|
00001e10  65 0d 09 d8 15 e7 44 50  54 52 25 3c 3e 4d 25 2b  |e.....DPTR%<>M%+|
00001e20  4d 25 21 31 36 8c 0d 09  e2 13 44 50 54 52 25 2d  |M%!16.....DPTR%-|
00001e30  3d 44 50 54 52 25 21 2d  34 0d 09 ec 11 e7 28 4d  |=DPTR%!-4.....(M|
00001e40  25 21 33 36 80 33 29 3d  30 8c 0d 09 f6 2e 20 20  |%!36.3)=0.....  |
00001e50  e7 44 50 54 52 25 3d 4d  25 2b 4d 25 21 31 36 3a  |.DPTR%=M%+M%!16:|
00001e60  c8 95 21 44 50 54 52 25  3a 44 50 54 52 25 2b 3d  |..!DPTR%:DPTR%+=|
00001e70  21 44 50 54 52 25 3a ce  0d 0a 00 20 20 20 44 50  |!DPTR%:....   DP|
00001e80  54 52 25 2d 3d 44 50 54  52 25 21 2d 34 3a f2 4e  |TR%-=DPTR%!-4:.N|
00001e90  65 78 74 46 72 61 6d 65  0d 0a 0a 05 cc 0d 0a 14  |extFrame........|
00001ea0  16 20 20 e7 44 50 54 52  25 3d 4d 25 2b 4d 25 21  |.  .DPTR%=M%+M%!|
00001eb0  31 36 8c 0d 0a 1e 36 20  20 44 50 54 52 25 2b 3d  |16....6  DPTR%+=|
00001ec0  21 44 50 54 52 25 3a c8  99 22 48 6f 75 72 67 6c  |!DPTR%:.."Hourgl|
00001ed0  61 73 73 5f 4f 6e 22 3a  c8 95 21 28 44 50 54 52  |ass_On":..!(DPTR|
00001ee0  25 2b 21 44 50 54 52 25  29 0d 0a 28 2e 20 20 f2  |%+!DPTR%)..(.  .|
00001ef0  4e 65 77 46 72 61 6d 65  3a ce 3a c8 99 22 48 6f  |NewFrame:.:.."Ho|
00001f00  75 72 67 6c 61 73 73 5f  4f 66 66 22 3a f2 4e 65  |urglass_Off":.Ne|
00001f10  78 74 46 72 61 6d 65 0d  0a 32 07 20 20 cc 0d 0a  |xtFrame..2.  ...|
00001f20  3c 3d 20 20 f2 4e 65 78  74 46 72 61 6d 65 3a 4b  |<=  .NextFrame:K|
00001f30  25 21 31 32 3d 44 50 54  52 25 2d 44 50 54 52 25  |%!12=DPTR%-DPTR%|
00001f40  21 2d 34 3a e7 4b 25 21  31 32 3d 4d 25 2b 4d 25  |!-4:.K%!12=M%+M%|
00001f50  21 31 36 3a 4b 25 21 31  36 3d 30 0d 0a 46 07 20  |!16:K%!16=0..F. |
00001f60  20 cd 0d 0a 50 05 cd 0d  0a 5a 05 cd 0d 0a 64 05  | ...P....Z....d.|
00001f70  e1 0d 0a 6e 04 0d 0a 78  0e dd f2 4e 65 77 46 72  |...n...x...NewFr|
00001f80  61 6d 65 0d 0a 82 23 e7  21 44 50 54 52 25 3d 30  |ame...#.!DPTR%=0|
00001f90  3a 44 50 54 52 25 3d 4d  25 2b 4d 25 21 31 36 3a  |:DPTR%=M%+M%!16:|
00001fa0  53 43 52 25 3d 30 0d 0a  8c 22 c8 99 53 4f 25 2c  |SCR%=0..."..SO%,|
00001fb0  26 31 33 43 2c 53 25 2c  22 58 22 b8 20 52 30 2c  |&13C,S%,"X". R0,|
00001fc0  52 31 2c 52 32 2c 52 33  0d 0a 96 4a ea 85 3a ee  |R1,R2,R3...J..:.|
00001fd0  85 ea 3a f7 85 3a c8 99  53 4f 25 2c 52 30 2c 52  |..:..:..SO%,R0,R|
00001fe0  31 2c 52 32 2c 52 33 3a  21 42 25 3d 4b 25 21 32  |1,R2,R3:!B%=K%!2|
00001ff0  30 3a f2 57 68 69 63 68  28 21 42 25 29 3a f2 43  |0:.Which(!B%):.C|
00002000  6c 6f 73 65 3a 4b 25 3d  21 52 25 3a 85 20 9f 2c  |lose:K%=!R%:. .,|
00002010  f6 24 0d 0a a0 46 e7 4b  25 21 36 30 3d 30 c8 99  |.$...F.K%!60=0..|
00002020  45 58 25 2c 4d 25 21 33  32 2c 44 50 54 52 25 2c  |EX%,M%!32,DPTR%,|
00002030  53 43 52 25 2c 4d 25 21  34 30 20 b8 20 2c 44 50  |SCR%,M%!40 . ,DP|
00002040  54 52 25 2c 53 43 52 25  8b f2 45 58 28 44 50 54  |TR%,SCR%..EX(DPT|
00002050  52 25 2c 53 43 52 25 29  0d 0a aa 16 e7 28 4d 25  |R%,SCR%).....(M%|
00002060  21 33 36 80 33 29 3d 30  53 43 52 25 3d 30 0d 0a  |!36.3)=0SCR%=0..|
00002070  b4 18 f7 85 3a c8 99 53  4f 25 2c 52 30 2c 52 31  |....:..SO%,R0,R1|
00002080  2c 52 32 2c 52 33 0d 0a  be 1a 4b 25 21 31 32 3d  |,R2,R3....K%!12=|
00002090  44 50 54 52 25 3a 4b 25  21 31 36 3d 53 43 52 25  |DPTR%:K%!16=SCR%|
000020a0  0d 0a c8 05 e1 0d 0a d2  04 0d 0a dc 10 dd f2 4d  |...............M|
000020b0  61 6b 65 53 70 72 69 74  65 0d 0a e6 3d 58 52 25  |akeSprite...=XR%|
000020c0  3d a4 4d 56 61 72 28 4d  25 21 32 38 2c 34 29 3a  |=.MVar(M%!28,4):|
000020d0  59 52 25 3d a4 4d 56 61  72 28 4d 25 21 32 38 2c  |YR%=.MVar(M%!28,|
000020e0  35 29 3a 4c 42 25 3d a4  4d 56 61 72 28 4d 25 21  |5):LB%=.MVar(M%!|
000020f0  32 38 2c 31 30 29 0d 0a  f0 1b 53 53 25 3d 28 28  |28,10)....SS%=((|
00002100  31 3c 3c 58 52 25 29 3c  3c 35 2d 4c 42 25 29 2d  |1<<XR%)<<5-LB%)-|
00002110  31 0d 0a fa 37 53 53 25  3d 28 28 28 4d 25 21 32  |1...7SS%=(((M%!2|
00002120  30 2b 53 53 25 3e 3e 58  52 25 29 3e 3e 35 2d 4c  |0+SS%>>XR%)>>5-L|
00002130  42 25 29 3c 3c 32 29 2a  28 4d 25 21 32 34 3e 3e  |B%)<<2)*(M%!24>>|
00002140  59 52 25 29 2b 31 30 30  0d 0b 04 40 53 25 3d a4  |YR%)+100...@S%=.|
00002150  41 6c 6c 6f 63 28 53 53  25 29 3a 21 53 25 3d 53  |Alloc(SS%):!S%=S|
00002160  53 25 3a 53 25 21 34 3d  30 3a 53 25 21 38 3d 31  |S%:S%!4=0:S%!8=1|
00002170  36 3a 53 25 21 31 32 3d  31 36 3a c8 99 53 4f 25  |6:S%!12=16:..SO%|
00002180  2c 26 31 30 39 2c 53 25  0d 0b 0e 33 c8 99 53 4f  |,&109,S%...3..SO|
00002190  25 2c 26 31 30 46 2c 53  25 2c 22 58 22 2c 30 2c  |%,&10F,S%,"X",0,|
000021a0  4d 25 21 32 30 3e 3e 58  52 25 2c 4d 25 21 32 34  |M%!20>>XR%,M%!24|
000021b0  3e 3e 59 52 25 2c 4d 25  21 32 38 0d 0b 18 05 e1  |>>YR%,M%!28.....|
000021c0  0d 0b 22 04 0d 0b 2c 12  dd f2 52 65 64 72 61 77  |.."...,...Redraw|
000021d0  53 70 72 69 74 65 0d 0b  36 13 e7 21 43 54 25 3c  |Sprite..6..!CT%<|
000021e0  3e eb 3a f2 54 61 62 6c  65 0d 0b 40 17 e7 4d 49  |>.:.Table..@..MI|
000021f0  25 3d 4b 25 21 34 38 80  4b 25 21 35 32 3d 30 8c  |%=K%!48.K%!52=0.|
00002200  0d 0b 4a 1e 20 20 20 c8  99 53 4f 25 2c 26 31 32  |..J.   ..SO%,&12|
00002210  32 2c 53 25 2c 22 58 22  2c 58 25 2c 59 25 0d 0b  |2,S%,"X",X%,Y%..|
00002220  54 05 cc 0d 0b 5e 26 20  20 20 c8 99 53 4f 25 2c  |T....^&   ..SO%,|
00002230  26 31 33 34 2c 53 25 2c  22 58 22 2c 58 25 2c 59  |&134,S%,"X",X%,Y|
00002240  25 2c 2c 2c 43 54 25 21  34 0d 0b 68 05 cd 0d 0b  |%,,,CT%!4..h....|
00002250  72 05 e1 0d 0b 7c 04 0d  0b 86 12 dd f2 4c 6f 61  |r....|.......Loa|
00002260  64 46 69 6c 6d 28 46 24  29 0d 0b 90 45 c8 99 22  |dFilm(F$)...E.."|
00002270  4f 53 5f 46 69 6c 65 22  2c 35 2c 46 24 20 b8 20  |OS_File",5,F$ . |
00002280  4f 25 2c 2c 54 25 2c 2c  4c 25 3a e7 4f 25 3c 3e  |O%,,T%,,L%:.O%<>|
00002290  31 85 31 2c 22 43 61 6e  27 74 20 66 69 6e 64 20  |1.1,"Can't find |
000022a0  66 69 6c 6d 20 27 22 2b  46 24 2b 22 27 22 0d 0b  |film '"+F$+"'"..|
000022b0  9a 2d e7 28 54 25 3e 3e  38 29 3c 3e 2d 39 38 32  |.-.(T%>>8)<>-982|
000022c0  3a e7 21 46 52 46 4d 25  80 31 f2 50 73 65 75 64  |:.!FRFM%.1.Pseud|
000022d0  6f 4c 6f 61 64 28 46 24  29 3a e1 0d 0b a4 3b 46  |oLoad(F$):....;F|
000022e0  48 25 3d 30 3a 42 42 25  3d 30 3a 4d 4d 25 3d a4  |H%=0:BB%=0:MM%=.|
000022f0  41 6c 6c 6f 63 28 4c 25  29 3a 4d 25 3d 4d 4d 25  |Alloc(L%):M%=MM%|
00002300  3a c8 99 22 4f 53 5f 46  69 6c 65 22 2c 26 46 46  |:.."OS_File",&FF|
00002310  2c 46 24 2c 4d 25 0d 0b  ae 24 43 54 25 3d a4 41  |,F$,M%...$CT%=.A|
00002320  6c 6c 6f 63 28 32 36 34  29 3a 43 50 25 3d 30 3a  |lloc(264):CP%=0:|
00002330  21 43 54 25 3d 4d 25 21  32 38 0d 0b b8 12 e7 28  |!CT%=M%!28.....(|
00002340  54 25 3e 3e 38 29 3d 2d  39 38 32 8c 0d 0b c2 2b  |T%>>8)=-982....+|
00002350  e7 a4 43 68 75 6e 6b 28  26 34 35 34 43 34 31 35  |..Chunk(&454C415|
00002360  30 29 3a 43 50 25 3d 4d  25 2b 4f 25 2b 33 36 3a  |0):CP%=M%+O%+36:|
00002370  21 43 54 25 3d 2d 31 0d  0b cc 39 e7 a4 43 68 75  |!CT%=-1...9..Chu|
00002380  6e 6b 28 26 34 36 34 35  34 33 34 31 29 3a 4d 25  |nk(&46454341):M%|
00002390  2b 3d 4f 25 2b 38 8b 85  31 2c 22 46 69 6c 6d 20  |+=O%+8..1,"Film |
000023a0  63 68 75 6e 6b 20 6e 6f  74 20 66 6f 75 6e 64 22  |chunk not found"|
000023b0  0d 0b d6 05 cd 0d 0b e0  05 e1 0d 0b ea 04 0d 0b  |................|
000023c0  f4 17 dd a4 43 68 75 6e  6b 28 43 25 29 ea 54 25  |....Chunk(C%).T%|
000023d0  3a 4f 25 3d 30 0d 0b fe  2f c8 95 4f 25 3c 4c 25  |:O%=0.../..O%<L%|
000023e0  80 ac 54 25 3a e7 4d 25  21 4f 25 3d 43 25 3a 54  |..T%:.M%!O%=C%:T|
000023f0  25 3d b9 20 8b 4f 25 2b  3d 4d 25 21 28 4f 25 2b  |%=. .O%+=M%!(O%+|
00002400  34 29 3a ce 0d 0c 08 07  3d 54 25 0d 0c 12 04 0d  |4):.....=T%.....|
00002410  0c 1c 13 dd f2 4c 6f 61  64 41 46 69 6c 6d 28 45  |.....LoadAFilm(E|
00002420  24 29 0d 0c 26 1a f2 4c  6f 61 64 46 69 6c 6d 28  |$)..&..LoadFilm(|
00002430  45 24 29 3a f2 53 65 74  46 69 6c 6d 0d 0c 30 05  |E$):.SetFilm..0.|
00002440  e1 0d 0c 3a 04 0d 0c 44  19 dd f2 53 65 74 46 69  |...:...D...SetFi|
00002450  6c 6d 3a f2 4d 61 6b 65  53 70 72 69 74 65 0d 0c  |lm:.MakeSprite..|
00002460  4e 1a e7 57 54 25 2d 4d  25 21 32 34 3c 31 38 30  |N..WT%-M%!24<180|
00002470  3a 57 54 25 3d 39 35 30  0d 0c 58 46 f2 57 69 6e  |:WT%=950..XF.Win|
00002480  64 6f 77 28 24 28 4d 25  2b 34 29 2c 25 31 31 31  |dow($(M%+4),%111|
00002490  31 2c 33 30 30 2c 57 54  25 2d 4d 25 21 32 34 2c  |1,300,WT%-M%!24,|
000024a0  4d 25 21 32 30 2b 33 30  30 2c 57 54 25 2c 30 2c  |M%!20+300,WT%,0,|
000024b0  30 2c 4d 25 21 32 30 2c  4d 25 21 32 34 29 0d 0c  |0,M%!20,M%!24)..|
000024c0  62 3a 57 54 25 2d 3d 34  38 3a 44 50 54 52 25 3d  |b:WT%-=48:DPTR%=|
000024d0  4d 25 2b 4d 25 21 31 36  3a 53 43 52 25 3d 30 3a  |M%+M%!16:SCR%=0:|
000024e0  43 4d 25 3d 4d 25 21 32  38 3a 4b 25 3d a4 41 6c  |CM%=M%!28:K%=.Al|
000024f0  6c 6f 63 28 4b 53 25 29  0d 0c 6c 44 21 4b 25 3d  |loc(KS%)..lD!K%=|
00002500  21 52 25 3a 21 52 25 3d  4b 25 3a 4b 25 21 34 3d  |!R%:!R%=K%:K%!4=|
00002510  4d 25 3a 4b 25 21 38 3d  53 25 3a 4b 25 21 32 30  |M%:K%!8=S%:K%!20|
00002520  3d 57 25 3a 4b 25 21 32  34 3d 21 28 44 50 54 52  |=W%:K%!24=!(DPTR|
00002530  25 2b 21 44 50 54 52 25  29 3c 3e 30 0d 0c 76 3c  |%+!DPTR%)<>0..v<|
00002540  4b 25 21 32 38 3d b9 3a  4b 25 21 33 32 3d 28 4d  |K%!28=.:K%!32=(M|
00002550  25 21 33 36 80 34 29 3d  30 82 52 59 25 3a 4b 25  |%!36.4)=0.RY%:K%|
00002560  21 33 36 3d 4b 25 3a 4b  25 21 34 30 3d 30 3a 4b  |!36=K%:K%!40=0:K|
00002570  25 21 34 34 3d 43 54 25  0d 0c 80 3d 4b 25 21 34  |%!44=CT%...=K%!4|
00002580  38 3d a4 4d 56 61 72 28  4d 25 21 32 38 2c 39 29  |8=.MVar(M%!28,9)|
00002590  84 a4 4d 56 61 72 28 4d  25 21 32 38 2c 34 29 3c  |..MVar(M%!28,4)<|
000025a0  3c 38 84 a4 4d 56 61 72  28 4d 25 21 32 38 2c 35  |<8..MVar(M%!28,5|
000025b0  29 3c 3c 31 36 0d 0c 8a  2b 4b 25 21 35 32 3d 43  |)<<16...+K%!52=C|
000025c0  50 25 3a 4b 25 21 35 36  3d 4d 4d 25 3a 4b 25 21  |P%:K%!56=MM%:K%!|
000025d0  36 30 3d 46 48 25 3a 4b  25 21 36 34 3d 42 42 25  |60=FH%:K%!64=BB%|
000025e0  0d 0c 94 0e f2 4e 65 78  74 46 72 61 6d 65 0d 0c  |.....NextFrame..|
000025f0  9e 05 e1 0d 0c a8 04 0d  0c b2 3e dd a4 54 65 6d  |..........>..Tem|
00002600  70 28 54 24 29 3a c8 99  22 57 69 6d 70 5f 4c 6f  |p(T$):.."Wimp_Lo|
00002610  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 42 25 2c  |adTemplate",,B%,|
00002620  43 25 2c 51 25 2b 31 30  30 30 2c 2d 31 2c 54 24  |C%,Q%+1000,-1,T$|
00002630  b8 2c 2c 43 25 0d 0c bc  24 c8 99 22 57 69 6d 70  |.,,C%...$.."Wimp|
00002640  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
00002650  42 25 b8 54 25 3a 3d 54  25 0d 0c c6 04 0d 0c d0  |B%.T%:=T%.......|
00002660  2a dd f2 54 69 63 6b 28  54 25 2c 46 25 29 3a e7  |*..Tick(T%,F%):.|
00002670  46 25 3a 21 54 25 3d 21  54 25 80 ac 31 8b 21 54  |F%:!T%=!T%..1.!T|
00002680  25 3d 21 54 25 84 31 0d  0c da 05 e1 0d 0c e4 3a  |%=!T%.1........:|
00002690  dd f2 53 65 6c 65 63 74  28 54 25 2c 46 25 29 3a  |..Select(T%,F%):|
000026a0  e7 46 25 3a 54 25 21 38  3d 54 25 21 38 84 31 3c  |.F%:T%!8=T%!8.1<|
000026b0  3c 32 32 8b 54 25 21 38  3d 54 25 21 38 80 ac 28  |<22.T%!8=T%!8..(|
000026c0  31 3c 3c 32 32 29 0d 0c  ee 05 e1 0d 0c f8 2a dd  |1<<22)........*.|
000026d0  a4 5a 53 28 49 25 29 ea  41 24 3a f5 41 24 2b 3d  |.ZS(I%).A$:.A$+=|
000026e0  bd 3f 49 25 3a 49 25 2b  3d 31 3a fd 3f 49 25 3d  |.?I%:I%+=1:.?I%=|
000026f0  30 3a 3d 41 24 0d 0d 02  04 0d 0d 0c 31 dd a4 41  |0:=A$.......1..A|
00002700  6c 6c 6f 63 28 4c 25 29  3a ea 45 25 2c 54 25 3a  |lloc(L%):.E%,T%:|
00002710  e7 4c 4f 25 45 25 3d 4d  54 25 2b 4c 25 2d 26 38  |.LO%E%=MT%+L%-&8|
00002720  30 30 30 20 8b 45 25 3d  2d 31 0d 0d 16 28 c8 99  |000 .E%=-1...(..|
00002730  22 57 69 6d 70 5f 53 6c  6f 74 53 69 7a 65 22 2c  |"Wimp_SlotSize",|
00002740  45 25 2c 2d 31 b8 54 25  3a 54 25 2b 3d 26 38 30  |E%,-1.T%:T%+=&80|
00002750  30 30 0d 0d 20 1c e7 54  25 3c 4d 54 25 2b 4c 25  |00.. ..T%<MT%+L%|
00002760  85 31 2c a4 4d 53 47 28  22 49 4e 53 22 29 0d 0d  |.1,.MSG("INS")..|
00002770  2a 13 4d 54 25 2b 3d 4c  25 3a 3d 4d 54 25 2d 4c  |*.MT%+=L%:=MT%-L|
00002780  25 0d 0d 34 04 0d 0d 3e  22 dd f2 57 68 69 63 68  |%..4...>"..Which|
00002790  28 54 25 29 3a 57 25 3d  54 25 3a 4a 25 3d 52 25  |(T%):W%=T%:J%=R%|
000027a0  3a 4b 25 3d 21 4a 25 0d  0d 48 49 c8 95 4b 25 3a  |:K%=!J%..HI..K%:|
000027b0  e7 57 25 3d 4b 25 21 32  30 3a 4d 25 3d 4b 25 21  |.W%=K%!20:M%=K%!|
000027c0  34 3a 53 25 3d 4b 25 21  38 3a 44 50 54 52 25 3d  |4:S%=K%!8:DPTR%=|
000027d0  4b 25 21 31 32 3a 53 43  52 25 3d 4b 25 21 31 36  |K%!12:SCR%=K%!16|
000027e0  3a 43 54 25 3d 4b 25 21  34 34 3a 49 25 3d 4a 25  |:CT%=K%!44:I%=J%|
000027f0  0d 0d 52 19 4a 25 3d 4b  25 3a 4b 25 3d 21 4a 25  |..R.J%=K%:K%=!J%|
00002800  3a ce 3a 4b 25 3d 21 49  25 0d 0d 5c 05 e1 0d 0d  |:.:K%=!I%..\....|
00002810  66 04 0d 0d 70 1b dd f2  4d 6f 76 65 28 41 25 2c  |f...p...Move(A%,|
00002820  42 25 2c 43 25 29 3a d6  4d 56 25 3a e1 0d 0d 7a  |B%,C%):.MV%:...z|
00002830  04 0d 0d 84 39 dd f2 50  6f 70 75 70 28 4e 25 29  |....9..Popup(N%)|
00002840  3a c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |:.."Wimp_CreateM|
00002850  65 6e 75 22 2c 2c 4e 25  2c 4d 58 25 2c 4d 59 25  |enu",,N%,MX%,MY%|
00002860  3a 4d 45 4e 25 3d 4e 25  3a e1 0d 0d 8e 04 0d 0d  |:MEN%=N%:.......|
00002870  98 3a dd f2 53 65 74 49  28 57 25 2c 49 25 2c 53  |.:..SetI(W%,I%,S|
00002880  24 29 3a ea 46 25 3a 21  42 25 3d 57 25 3a c8 99  |$):.F%:!B%=W%:..|
00002890  22 57 69 6d 70 5f 47 65  74 57 69 6e 64 6f 77 49  |"Wimp_GetWindowI|
000028a0  6e 66 6f 22 2c 2c 42 25  0d 0d a2 34 e7 49 25 3e  |nfo",,B%...4.I%>|
000028b0  3d 30 3a 49 25 3d 42 25  2b 31 31 32 2b 49 25 2a  |=0:I%=B%+112+I%*|
000028c0  33 32 3a 46 25 3d 49 25  2d 34 8b 49 25 3d 42 25  |32:F%=I%-4.I%=B%|
000028d0  2b 37 36 3a 46 25 3d 42  25 2b 36 30 0d 0d ac 2a  |+76:F%=B%+60...*|
000028e0  e7 21 46 25 80 31 3c 3c  38 3a 24 21 49 25 3d c0  |.!F%.1<<8:$!I%=.|
000028f0  53 24 2c 49 25 21 38 2d  31 29 8b 24 49 25 3d c0  |S$,I%!8-1).$I%=.|
00002900  53 24 2c 31 31 29 0d 0d  b6 05 e1 0d 0d c0 04 0d  |S$,11)..........|
00002910  0d ca 20 dd f2 52 6f 6c  6c 28 52 43 25 2c 55 25  |.. ..Roll(RC%,U%|
00002920  29 3a e7 52 43 25 3c 3d  30 3a 52 43 25 3d 31 0d  |):.RC%<=0:RC%=1.|
00002930  0d d4 28 57 4d 25 3d eb  3a f5 3a 49 25 3d 30 3a  |..(WM%=.:.:I%=0:|
00002940  46 4b 25 3d 30 3a c8 95  46 4b 25 3c 3e 21 52 25  |FK%=0:..FK%<>!R%|
00002950  80 49 25 3c 3e 32 37 0d  0d de 25 4b 25 3d 21 52  |.I%<>27...%K%=!R|
00002960  25 3a c8 95 21 4b 25 3c  3e 46 4b 25 3a 4b 25 3d  |%:..!K%<>FK%:K%=|
00002970  21 4b 25 3a ce 3a 46 4b  25 3d 4b 25 0d 0d e8 48  |!K%:.:FK%=K%...H|
00002980  4d 25 3d 4b 25 21 34 3a  53 25 3d 4b 25 21 38 3a  |M%=K%!4:S%=K%!8:|
00002990  44 50 54 52 25 3d 4b 25  21 31 32 3a 53 43 52 25  |DPTR%=K%!12:SCR%|
000029a0  3d 4b 25 21 31 36 3a 57  25 3d 4b 25 21 32 30 3a  |=K%!16:W%=K%!20:|
000029b0  43 54 25 3d 4b 25 21 34  34 3a 52 59 25 3d ac 4b  |CT%=K%!44:RY%=.K|
000029c0  25 21 33 32 0d 0d f2 1a  f2 46 75 6c 6c 28 52 43  |%!32.....Full(RC|
000029d0  25 2c 55 25 29 3a 4b 25  3d 21 4b 25 3a ce 0d 0d  |%,U%):K%=!K%:...|
000029e0  fc 1f fd 49 25 3d 32 37  3a c8 99 22 57 69 6d 70  |...I%=27:.."Wimp|
000029f0  5f 53 65 74 4d 6f 64 65  22 2c 57 4d 25 0d 0e 06  |_SetMode",WM%...|
00002a00  05 e1 0d 0e 10 04 0d 0e  1a 1b dd f2 46 75 6c 6c  |............Full|
00002a10  28 52 4c 25 2c f8 20 57  25 29 3a ea 4a 25 3a ea  |(RL%,. W%):.J%:.|
00002a20  85 0d 0e 24 43 46 57 25  3d 4d 25 21 32 30 3a 46  |...$CFW%=M%!20:F|
00002a30  48 25 3d 4d 25 21 32 34  3a 46 4d 25 3d 4d 25 21  |H%=M%!24:FM%=M%!|
00002a40  32 38 3a 53 57 25 3d a4  4d 56 61 72 28 46 4d 25  |28:SW%=.MVar(FM%|
00002a50  2c 34 29 3a 53 48 25 3d  a4 4d 56 61 72 28 46 4d  |,4):SH%=.MVar(FM|
00002a60  25 2c 35 29 0d 0e 2e 35  46 57 32 25 3d 28 46 57  |%,5)...5FW2%=(FW|
00002a70  25 81 32 3e 3e 53 57 25  29 3e 3e 33 2d a4 4d 56  |%.2>>SW%)>>3-.MV|
00002a80  61 72 28 46 4d 25 2c 39  29 3a 46 48 32 25 3d 46  |ar(FM%,9):FH2%=F|
00002a90  48 25 81 32 3e 3e 53 48  25 0d 0e 38 33 46 57 32  |H%.2>>SH%..83FW2|
00002aa0  25 3d 28 46 57 32 25 3c  3c 53 57 25 29 3c 3c 33  |%=(FW2%<<SW%)<<3|
00002ab0  2d a4 4d 56 61 72 28 46  4d 25 2c 39 29 3a 46 48  |-.MVar(FM%,9):FH|
00002ac0  32 25 3d 46 48 32 25 3c  3c 53 48 25 0d 0e 42 3d  |2%=FH2%<<SH%..B=|
00002ad0  53 57 25 3d 28 a4 4d 56  61 72 28 46 4d 25 2c 31  |SW%=(.MVar(FM%,1|
00002ae0  31 29 2b 31 3c 3c 53 57  25 29 81 32 3a 53 48 25  |1)+1<<SW%).2:SH%|
00002af0  3d 28 a4 4d 56 61 72 28  46 4d 25 2c 31 32 29 2b  |=(.MVar(FM%,12)+|
00002b00  31 3c 3c 53 48 25 29 81  32 0d 0e 4c 17 54 25 3d  |1<<SH%).2..L.T%=|
00002b10  b9 3a ea 85 3a ee 85 ea  3a f7 85 3a 54 25 3d a3  |.:..:...:..:T%=.|
00002b20  0d 0e 56 36 e3 49 25 3d  30 b8 31 35 3a 53 55 50  |..V6.I%=0.15:SUP|
00002b30  25 3f 28 49 25 2a 34 29  3d 49 25 3a c8 99 22 4f  |%?(I%*4)=I%:.."O|
00002b40  53 5f 57 6f 72 64 22 2c  26 42 2c 53 55 50 25 2b  |S_Word",&B,SUP%+|
00002b50  49 25 2a 34 3a ed 0d 0e  60 18 e7 54 25 eb 46 4d  |I%*4:...`..T%.FM|
00002b60  25 2b 31 32 38 3a f7 85  20 8b eb 46 4d 25 0d 0e  |%+128:.. ..FM%..|
00002b70  6a 26 ee 85 ea 3a f7 85  3a c8 99 22 57 69 6d 70  |j&...:..:.."Wimp|
00002b80  5f 53 65 74 4d 6f 64 65  22 2c 57 4d 25 3a 85 20  |_SetMode",WM%:. |
00002b90  9f 2c f6 24 0d 0e 74 2b  e7 eb 3c 3e 46 4d 25 85  |.,.$..t+..<>FM%.|
00002ba0  31 2c 22 4d 6f 64 65 20  66 6f 72 20 66 69 6c 6d  |1,"Mode for film|
00002bb0  20 6e 6f 74 20 61 76 61  69 6c 61 62 6c 65 22 0d  | not available".|
00002bc0  0e 7e 23 c8 99 22 43 6f  6c 6f 75 72 54 72 61 6e  |.~#.."ColourTran|
00002bd0  73 5f 49 6e 76 61 6c 69  64 61 74 65 43 61 63 68  |s_InvalidateCach|
00002be0  65 22 0d 0e 88 13 e7 a4  4d 56 61 72 28 eb 2c 39  |e"......MVar(.,9|
00002bf0  29 3c 3d 32 8c 0d 0e 92  36 45 25 3d 42 25 2b 31  |)<=2....6E%=B%+1|
00002c00  30 30 3a c8 99 22 57 69  6d 70 5f 52 65 61 64 50  |00:.."Wimp_ReadP|
00002c10  61 6c 65 74 74 65 22 2c  2c 45 25 3a e7 4b 25 21  |alette",,E%:.K%!|
00002c20  35 32 3a 45 25 3d 4b 25  21 35 32 0d 0e 9c 18 e7  |52:E%=K%!52.....|
00002c30  a4 4d 56 61 72 28 eb 2c  39 29 3d 32 84 4b 25 21  |.MVar(.,9)=2.K%!|
00002c40  35 32 8c 0d 0e a6 14 e3  49 25 3d 30 b8 a4 4d 56  |52......I%=0..MV|
00002c50  61 72 28 eb 2c 33 29 0d  0e b0 38 ef 31 39 2c 49  |ar(.,3)...8.19,I|
00002c60  25 2c 31 36 84 28 53 55  50 25 3f 28 49 25 2a 34  |%,16.(SUP%?(I%*4|
00002c70  2b 31 29 80 26 38 30 29  2c 45 25 3f 31 2c 45 25  |+1).&80),E%?1,E%|
00002c80  3f 32 2c 45 25 3f 33 3a  45 25 2b 3d 34 3a ed 0d  |?2,E%?3:E%+=4:..|
00002c90  0e ba 05 cd 0d 0e c4 05  cd 0d 0e ce 60 e7 4b 25  |............`.K%|
00002ca0  21 35 32 3a 45 25 3d 4b  25 21 35 32 3a 45 25 2b  |!52:E%=K%!52:E%+|
00002cb0  3d 45 25 3f 2d 32 34 3c  3c 32 3a ef 35 3a c8 99  |=E%?-24<<2:.5:..|
00002cc0  22 43 6f 6c 6f 75 72 54  72 61 6e 73 5f 53 65 74  |"ColourTrans_Set|
00002cd0  47 43 4f 4c 22 2c 21 45  25 2c 2c 2c 31 32 38 3a  |GCOL",!E%,,,128:|
00002ce0  da 3a ef 31 39 2c 30 2c  32 34 2c 45 25 3f 31 2c  |.:.19,0,24,E%?1,|
00002cf0  45 25 3f 32 2c 45 25 3f  33 0d 0e d8 26 87 3a 45  |E%?2,E%?3...&.:E|
00002d00  25 3d 31 3a f2 46 3a db  3a f2 46 3a db 3a 46 25  |%=1:.F:.:.F:.:F%|
00002d10  3d 52 4c 25 3e 30 3a e7  4d 4f 25 c8 97 ee 32 0d  |=RL%>0:.MO%...2.|
00002d20  0e e2 38 ef 32 34 2c 53  57 25 2d 46 57 32 25 3b  |..8.24,SW%-FW2%;|
00002d30  53 48 25 2d 46 48 32 25  3b 53 57 25 2d 46 57 32  |SH%-FH2%;SW%-FW2|
00002d40  25 2b 46 57 25 2d 31 3b  53 48 25 2d 46 48 32 25  |%+FW%-1;SH%-FH2%|
00002d50  2b 46 48 25 2d 31 3b 0d  0e ec 28 44 25 3d 4d 25  |+FH%-1;...(D%=M%|
00002d60  2b 4d 25 21 31 36 3a 43  25 3d 30 3a 63 25 3d 2d  |+M%!16:C%=0:c%=-|
00002d70  31 3a 43 4d 25 3d 46 4d  25 3a f2 45 3a f2 46 0d  |1:CM%=FM%:.E:.F.|
00002d80  0e f6 1a f5 f5 49 25 3d  a6 30 3a c8 99 36 2c 26  |.....I%=.0:..6,&|
00002d90  42 30 2c 32 35 35 3a f2  52 0d 0f 00 2f fd 49 25  |B0,255:.R.../.I%|
00002da0  3d 32 37 84 28 52 4c 25  80 21 44 25 3d 30 29 3a  |=27.(RL%.!D%=0):|
00002db0  52 4c 25 3d 94 52 4c 25  2d 31 3a fd 52 4c 25 3c  |RL%=.RL%-1:.RL%<|
00002dc0  3d 30 84 49 25 3d 32 37  0d 0f 0a 06 f7 85 0d 0f  |=0.I%=27........|
00002dd0  14 05 e1 0d 0f 1e 04 0d  0f 28 0e dd f2 52 3a e7  |.........(...R:.|
00002de0  4d 4f 25 f2 43 0d 0f 32  1d e7 46 25 8b e7 49 25  |MO%.C..2..F%..I%|
00002df0  3c 30 f5 49 25 3d a6 30  3a f2 43 3a fd 49 25 3e  |<0.I%=.0:.C:.I%>|
00002e00  3d 30 0d 0f 3c 32 e7 49  25 3c 33 32 80 ac 42 42  |=0..<2.I%<32..BB|
00002e10  43 25 f2 45 3a f5 c8 99  36 2c 26 42 30 2c 2c 32  |C%.E:...6,&B0,,2|
00002e20  35 35 b8 2c 54 25 3a fd  54 25 3c 32 35 36 2d 57  |55.,T%:.T%<256-W|
00002e30  25 3a f2 46 0d 0f 46 0e  e7 49 25 3c 30 80 46 25  |%:.F..F..I%<0.F%|
00002e40  3a e1 0d 0f 50 12 e7 44  53 25 80 ac a6 2d 31 3a  |:...P..DS%...-1:|
00002e50  49 25 3d 30 0d 0f 5a 1d  c8 99 36 2c 31 35 3a e7  |I%=0..Z...6,15:.|
00002e60  42 42 43 25 80 49 25 3c  3e 32 49 25 3d 97 22 2b  |BBC%.I%<>2I%=."+|
00002e70  22 0d 0f 64 29 e7 49 25  3d 32 3a 42 42 43 25 3d  |"..d).I%=2:BBC%=|
00002e80  ac 42 42 43 25 3a 46 25  3d a3 3a 49 25 3d 97 22  |.BBC%:F%=.:I%=."|
00002e90  46 22 3a e7 42 42 43 25  ef 37 0d 0f 6e 13 e7 49  |F":.BBC%.7..n..I|
00002ea0  25 3d 33 32 3a 46 25 3d  ac 46 25 3a e1 0d 0f 78  |%=32:F%=.F%:...x|
00002eb0  11 e7 49 25 3d 31 33 3a  46 25 3d a3 3a e1 0d 0f  |..I%=13:F%=.:...|
00002ec0  82 0a c8 8e bd 49 25 ca  0d 0f 8c 25 c9 22 49 22  |.....I%....%."I"|
00002ed0  2c 22 69 22 3a ef 32 33  2c 30 2c 38 2c 26 38 31  |,"i":.23,0,8,&81|
00002ee0  2b 46 25 7c 3a 46 25 3d  ac 46 25 3a e1 0d 0f 96  |+F%|:F%=.F%:....|
00002ef0  2b c9 22 46 22 2c 22 66  22 3a 44 25 3d 4d 25 2b  |+."F","f":D%=M%+|
00002f00  4d 25 21 31 36 3a 43 25  3d 30 3a 63 25 3d 2d 31  |M%!16:C%=0:c%=-1|
00002f10  3a f2 45 3a f2 46 3a e1  0d 0f a0 14 c9 22 4c 22  |:.E:.F:......"L"|
00002f20  2c 22 6c 22 2c 22 73 22  2c 22 53 22 0d 0f aa 11  |,"l","s","S"....|
00002f30  e7 28 4d 25 21 33 36 80  33 29 3d 30 8c 0d 0f b4  |.(M%!36.3)=0....|
00002f40  2c 20 20 20 e7 21 44 25  c8 95 21 28 44 25 2b 21  |,   .!D%..!(D%+!|
00002f50  44 25 29 3a 44 25 2b 3d  21 44 25 3a 63 25 2b 3d  |D%):D%+=!D%:c%+=|
00002f60  31 3a ce 3a f2 45 3a f2  46 0d 0f be 05 cc 0d 0f  |1:.:.E:.F.......|
00002f70  c8 19 20 20 20 e7 21 44  25 3a c8 95 21 44 25 3a  |..   .!D%:..!D%:|
00002f80  f2 45 3a ce 3a f2 46 0d  0f d2 05 cd 0d 0f dc 1b  |.E:.:.F.........|
00002f90  e7 bd 49 25 3d 22 73 22  84 bd 49 25 3d 22 53 22  |..I%="s"..I%="S"|
00002fa0  3a 52 4c 25 3d 2d 31 0d  0f e6 05 e1 0d 0f f0 0c  |:RL%=-1.........|
00002fb0  c9 22 43 22 2c 22 63 22  0d 0f fa 29 e7 4d 4f 25  |."C","c"...).MO%|
00002fc0  80 ac 58 4f 25 3a c8 97  87 3a 4d 4f 25 3d a3 20  |..XO%:...:MO%=. |
00002fd0  8b c8 97 ee 32 3a 4d 4f  25 3d b9 3a 58 4f 25 3d  |....2:MO%=.:XO%=|
00002fe0  a3 0d 10 04 05 e1 0d 10  0e 0c c9 22 58 22 2c 22  |..........."X","|
00002ff0  78 22 0d 10 18 28 e7 4d  4f 25 80 58 4f 25 3a c8  |x"...(.MO%.XO%:.|
00003000  97 87 3a 4d 4f 25 3d a3  20 8b c8 97 ee 32 3a 4d  |..:MO%=. ....2:M|
00003010  4f 25 3d b9 3a 58 4f 25  3d b9 0d 10 22 05 e1 0d  |O%=.:XO%=..."...|
00003020  10 2c 1d c9 22 59 22 2c  22 79 22 3a 52 59 25 3d  |.,.."Y","y":RY%=|
00003030  28 52 59 25 3e 3e 31 29  3d 30 3a e1 0d 10 36 36  |(RY%>>1)=0:...66|
00003040  c9 22 30 22 2c 22 31 22  2c 22 32 22 2c 22 33 22  |."0","1","2","3"|
00003050  2c 22 34 22 2c 22 35 22  2c 22 36 22 2c 22 37 22  |,"4","5","6","7"|
00003060  2c 22 38 22 2c 22 39 22  3a 57 25 3d bb bd 49 25  |,"8","9":W%=..I%|
00003070  3a e1 0d 10 40 12 c9 22  2b 22 3a e7 21 44 25 f2  |:...@.."+":.!D%.|
00003080  45 3a f2 46 0d 10 4a 0a  46 25 3d a3 3a e1 0d 10  |E:.F..J.F%=.:...|
00003090  54 17 c9 22 2d 22 3a e7  44 25 3d 4d 25 2b 4d 25  |T.."-":.D%=M%+M%|
000030a0  21 31 36 3a e1 0d 10 5e  1f e7 44 25 3e 4d 25 2b  |!16:...^..D%>M%+|
000030b0  4d 25 21 31 36 44 25 2d  3d 44 25 21 2d 34 3a 63  |M%!16D%-=D%!-4:c|
000030c0  25 2d 3d 31 0d 10 68 2f  e7 28 4d 25 21 33 36 80  |%-=1..h/.(M%!36.|
000030d0  33 29 3c 3e 30 8b e7 44  25 3e 4d 25 2b 4d 25 21  |3)<>0..D%>M%+M%!|
000030e0  31 36 44 25 2d 3d 44 25  21 2d 34 3a 63 25 2d 3d  |16D%-=D%!-4:c%-=|
000030f0  31 8b e1 0d 10 72 1b e7  44 25 3d 4d 25 2b 4d 25  |1....r..D%=M%+M%|
00003100  21 31 36 3a 43 25 3d 30  3a 63 25 3d 2d 31 0d 10  |!16:C%=0:c%=-1..|
00003110  7c 0e f2 45 3a f2 46 3a  46 25 3d a3 0d 10 86 38  ||..E:.F:F%=....8|
00003120  e7 28 4d 25 21 33 36 80  33 29 3d 30 8b 44 25 2d  |.(M%!36.3)=0.D%-|
00003130  3d 44 25 21 2d 34 3a 63  25 2d 3d 31 3a e7 44 25  |=D%!-4:c%-=1:.D%|
00003140  3d 4d 25 2b 4d 25 21 31  36 3a 43 25 3d 30 3a 63  |=M%+M%!16:C%=0:c|
00003150  25 3d 2d 31 0d 10 90 05  e1 0d 10 9a 17 c9 bd 32  |%=-1...........2|
00003160  37 3a ef 32 33 2c 30 2c  38 2c 26 38 30 7c 3a e1  |7:.23,0,8,&80|:.|
00003170  0d 10 a4 05 cb 0d 10 ae  08 ef 37 3a e1 0d 10 b8  |..........7:....|
00003180  04 0d 10 c2 27 dd f2 46  3a c8 99 36 2c 26 37 31  |....'..F:..6,&71|
00003190  2c 45 25 3a 45 25 3d 33  2d 45 25 3a c8 99 36 2c  |,E%:E%=3-E%:..6,|
000031a0  26 37 30 2c 45 25 3a e1  0d 10 cc 2f dd f2 45 3a  |&70,E%:..../..E:|
000031b0  e7 52 59 25 f2 59 3a e1  20 8b e7 21 44 25 3d 30  |.RY%.Y:. ..!D%=0|
000031c0  3a 44 25 3d 4d 25 2b 4d  25 21 31 36 3a 43 25 3d  |:D%=M%+M%!16:C%=|
000031d0  30 3a 63 25 3d 2d 31 0d  10 d6 3d 63 25 2b 3d 31  |0:c%=-1...=c%+=1|
000031e0  3a e7 4b 25 21 36 30 3d  30 c8 99 45 58 25 2c 4d  |:.K%!60=0..EX%,M|
000031f0  25 21 33 32 2c 44 25 2c  43 25 2c 4d 25 21 34 30  |%!32,D%,C%,M%!40|
00003200  20 b8 20 2c 44 25 2c 43  25 8b f2 45 58 28 44 25  | . ,D%,C%..EX(D%|
00003210  2c 43 25 29 0d 10 e0 14  e7 28 4d 25 21 33 36 80  |,C%).....(M%!36.|
00003220  33 29 3d 30 43 25 3d 30  0d 10 ea 05 e1 0d 10 f4  |3)=0C%=0........|
00003230  0f dd f2 59 3a e7 52 59  25 80 31 8c 0d 10 fe 42  |...Y:.RY%.1....B|
00003240  e7 21 44 25 3c 3e 30 63  25 2b 3d 31 3a e7 4b 25  |.!D%<>0c%+=1:.K%|
00003250  21 36 30 3d 30 c8 99 45  58 25 2c 4d 25 21 33 32  |!60=0..EX%,M%!32|
00003260  2c 44 25 2c 43 25 2c 4d  25 21 34 30 b8 2c 44 25  |,D%,C%,M%!40.,D%|
00003270  2c 43 25 8b f2 45 58 28  44 25 2c 43 25 29 0d 11  |,C%..EX(D%,C%)..|
00003280  08 14 e7 28 4d 25 21 33  36 80 33 29 3d 30 43 25  |...(M%!36.3)=0C%|
00003290  3d 30 0d 11 12 14 e7 21  44 25 3d 30 3a 52 59 25  |=0.....!D%=0:RY%|
000032a0  3d 52 59 25 82 31 0d 11  1c 05 cc 0d 11 26 2a e7  |=RY%.1.......&*.|
000032b0  44 25 3d 4d 25 2b 4d 25  21 31 36 3a 52 59 25 3d  |D%=M%+M%!16:RY%=|
000032c0  52 59 25 82 31 3a 43 25  3d 30 3a 63 25 3d 2d 31  |RY%.1:C%=0:c%=-1|
000032d0  3a f2 45 3a e1 0d 11 30  13 44 25 2d 3d 44 25 21  |:.E:...0.D%-=D%!|
000032e0  2d 34 3a 63 25 2d 3d 31  0d 11 3a 2f e7 28 4d 25  |-4:c%-=1..:/.(M%|
000032f0  21 33 36 80 33 29 3c 3e  30 8b e7 44 25 3e 4d 25  |!36.3)<>0..D%>M%|
00003300  2b 4d 25 21 31 36 44 25  2d 3d 44 25 21 2d 34 3a  |+M%!16D%-=D%!-4:|
00003310  63 25 2d 3d 31 8b e1 0d  11 44 1b e7 44 25 3d 4d  |c%-=1....D..D%=M|
00003320  25 2b 4d 25 21 31 36 3a  43 25 3d 30 3a 63 25 3d  |%+M%!16:C%=0:c%=|
00003330  2d 31 0d 11 4e 3b 63 25  2b 3d 31 3a e7 4b 25 21  |-1..N;c%+=1:.K%!|
00003340  36 30 3d 30 c8 99 45 58  25 2c 4d 25 21 33 32 2c  |60=0..EX%,M%!32,|
00003350  44 25 2c 43 25 2c 4d 25  21 34 30 b8 2c 44 25 2c  |D%,C%,M%!40.,D%,|
00003360  43 25 8b f2 45 58 28 44  25 2c 43 25 29 0d 11 58  |C%..EX(D%,C%)..X|
00003370  3c e7 28 4d 25 21 33 36  80 33 29 3d 30 43 25 3d  |<.(M%!36.3)=0C%=|
00003380  30 8b 44 25 2d 3d 44 25  21 2d 34 3a 63 25 2d 3d  |0.D%-=D%!-4:c%-=|
00003390  31 3a e7 44 25 3d 4d 25  2b 4d 25 21 31 36 3a 43  |1:.D%=M%+M%!16:C|
000033a0  25 3d 30 3a 63 25 3d 2d  31 0d 11 62 27 e7 44 25  |%=0:c%=-1..b'.D%|
000033b0  3c 3d 4d 25 2b 4d 25 21  31 36 2b 21 28 4d 25 2b  |<=M%+M%!16+!(M%+|
000033c0  4d 25 21 31 36 29 3a 52  59 25 3d 52 59 25 82 31  |M%!16):RY%=RY%.1|
000033d0  0d 11 6c 05 cd 0d 11 76  05 e1 0d 11 80 04 0d 11  |..l....v........|
000033e0  8a 0e dd f2 43 3a e7 ac  4d 4f 25 e1 0d 11 94 2e  |....C:..MO%.....|
000033f0  c8 99 53 4f 25 2c 26 31  33 43 2c 53 50 52 25 2c  |..SO%,&13C,SPR%,|
00003400  22 43 22 b8 20 52 30 2c  52 31 2c 52 32 2c 52 33  |"C". R0,R1,R2,R3|
00003410  3a db 3a fb 32 3a fb 31  32 39 0d 11 9e 21 e7 58  |:.:.2:.129...!.X|
00003420  4f 25 c8 97 78 25 2c 79  25 2c 7a 25 3a f1 3b 78  |O%..x%,y%,z%:.;x|
00003430  25 27 79 25 3b 8b f1 3b  63 25 3b 0d 11 a8 2b c8  |%'y%;..;c%;...+.|
00003440  99 53 4f 25 2c 52 30 2c  52 31 2c 52 32 2c 52 33  |.SO%,R0,R1,R2,R3|
00003450  3a c8 99 53 4f 25 2c 26  31 32 34 2c 53 50 52 25  |:..SO%,&124,SPR%|
00003460  2c 22 43 22 2c 32 0d 11  b2 05 e1 0d 11 bc 04 0d  |,"C",2..........|
00003470  11 c6 0b dd f2 54 61 62  6c 65 0d 11 d0 51 e7 4b  |.....Table...Q.K|
00003480  25 21 35 32 3a 45 25 3d  4b 25 21 35 32 8b e7 a4  |%!52:E%=K%!52...|
00003490  4d 56 61 72 28 4d 25 21  32 38 2c 39 29 3d 32 3a  |MVar(M%!28,9)=2:|
000034a0  c8 99 22 57 69 6d 70 5f  52 65 61 64 50 61 6c 65  |.."Wimp_ReadPale|
000034b0  74 74 65 22 2c 2c 42 25  2b 31 30 30 3a 45 25 3d  |tte",,B%+100:E%=|
000034c0  42 25 2b 31 30 30 8b 45  25 3d 30 0d 11 da 3b c8  |B%+100.E%=0...;.|
000034d0  99 22 43 6f 6c 6f 75 72  54 72 61 6e 73 5f 53 65  |."ColourTrans_Se|
000034e0  6c 65 63 74 54 61 62 6c  65 22 2c 4d 25 21 32 38  |lectTable",M%!28|
000034f0  2c 45 25 2c 2d 31 2c 2d  31 2c 43 54 25 2b 38 3a  |,E%,-1,-1,CT%+8:|
00003500  21 43 54 25 3d eb 0d 11  e4 50 43 54 25 21 34 3d  |!CT%=....PCT%!4=|
00003510  30 3a e3 49 25 3d 28 31  3c 3c 28 31 3c 3c a4 4d  |0:.I%=(1<<(1<<.M|
00003520  56 61 72 28 4d 25 21 32  38 2c 39 29 29 29 2d 31  |Var(M%!28,9)))-1|
00003530  b8 30 88 2d 31 3a e7 43  54 25 3f 28 49 25 2b 38  |.0.-1:.CT%?(I%+8|
00003540  29 3c 3e 49 25 8c 49 25  3d 30 3a 43 54 25 21 34  |)<>I%.I%=0:CT%!4|
00003550  3d 43 54 25 2b 38 0d 11  ee 05 ed 0d 11 f8 05 e1  |=CT%+8..........|
00003560  0d 12 02 04 0d 12 0c 0b  dd f2 45 72 72 6f 72 0d  |..........Error.|
00003570  12 16 45 21 42 25 3d 9f  3a 24 28 42 25 2b 34 29  |..E!B%=.:$(B%+4)|
00003580  3d f6 24 3a 56 25 3d 32  3a c8 99 22 58 57 69 6d  |=.$:V%=2:.."XWim|
00003590  70 5f 52 65 70 6f 72 74  45 72 72 6f 72 22 2c 42  |p_ReportError",B|
000035a0  25 2c 25 31 31 2c 22 50  72 6f 6a 65 63 74 6f 72  |%,%11,"Projector|
000035b0  22 b8 56 25 0d 12 20 0b  e7 56 25 3d 32 3a e0 0d  |".V%.. ..V%=2:..|
000035c0  12 2a 05 e1 0d 12 34 04  0d 12 3e 38 dd a4 4d 56  |.*....4...>8..MV|
000035d0  61 72 28 4e 25 2c 56 25  29 3a c8 99 22 4f 53 5f  |ar(N%,V%):.."OS_|
000035e0  52 65 61 64 4d 6f 64 65  56 61 72 69 61 62 6c 65  |ReadModeVariable|
000035f0  22 2c 4e 25 2c 56 25 b8  2c 2c 56 25 3a 3d 56 25  |",N%,V%.,,V%:=V%|
00003600  0d 12 48 04 0d 12 52 2a  dd f2 4d 65 6e 75 54 28  |..H...R*..MenuT(|
00003610  54 24 29 3a 54 24 3d a4  4d 53 47 28 54 24 29 3a  |T$):T$=.MSG(T$):|
00003620  4c 56 25 3d 56 25 3a 4d  4c 25 3d a9 54 24 0d 12  |LV%=V%:ML%=.T$..|
00003630  5c 43 24 56 25 3d 54 24  3a 56 25 21 31 36 3d 31  |\C$V%=T$:V%!16=1|
00003640  36 2a 28 4d 4c 25 2b 31  29 3a 56 25 21 32 30 3d  |6*(ML%+1):V%!20=|
00003650  34 34 3a 56 25 21 31 32  3d 26 30 30 30 37 30 32  |44:V%!12=&000702|
00003660  30 37 3a 56 25 21 32 34  3d 30 3a 56 25 2b 3d 32  |07:V%!24=0:V%+=2|
00003670  38 0d 12 66 05 e1 0d 12  70 21 dd f2 45 6e 64 4d  |8..f....p!..EndM|
00003680  65 6e 75 3a 4c 56 25 21  31 36 3d 31 36 2a 28 4d  |enu:LV%!16=16*(M|
00003690  4c 25 2b 31 29 3a e1 0d  12 7a 04 0d 12 84 37 dd  |L%+1):...z....7.|
000036a0  f2 45 53 28 54 24 2c 46  25 2c 53 25 2c 59 25 29  |.ES(T$,F%,S%,Y%)|
000036b0  3a 54 25 3d a4 45 53 28  54 24 2c 46 25 2c 53 25  |:T%=.ES(T$,F%,S%|
000036c0  29 3a f2 53 65 6c 65 63  74 28 54 25 2c 59 25 29  |):.Select(T%,Y%)|
000036d0  3a e1 0d 12 8e 2a dd f2  45 4c 28 54 24 2c 46 25  |:....*..EL(T$,F%|
000036e0  29 3a 54 25 3d a4 45 28  54 24 2c 32 29 3a f2 54  |):T%=.E(T$,2):.T|
000036f0  69 63 6b 28 54 25 2c 46  25 29 3a e1 0d 12 98 2c  |ick(T%,F%):....,|
00003700  dd f2 45 45 28 54 24 2c  46 25 29 3a 54 25 3d a4  |..EE(T$,F%):T%=.|
00003710  45 28 54 24 2c 26 38 30  29 3a f2 54 69 63 6b 28  |E(T$,&80):.Tick(|
00003720  54 25 2c 46 25 29 3a e1  0d 12 a2 2a dd f2 45 54  |T%,F%):....*..ET|
00003730  28 54 24 2c 46 25 29 3a  54 25 3d a4 45 28 54 24  |(T$,F%):T%=.E(T$|
00003740  2c 30 29 3a f2 54 69 63  6b 28 54 25 2c 46 25 29  |,0):.Tick(T%,F%)|
00003750  3a e1 0d 12 ac 21 dd f2  4d 65 6e 75 45 28 54 24  |:....!..MenuE(T$|
00003760  2c 46 25 29 3a 54 25 3d  a4 45 28 54 24 2c 46 25  |,F%):T%=.E(T$,F%|
00003770  29 3a e1 0d 12 b6 2a dd  a4 45 28 54 24 2c 46 25  |):....*..E(T$,F%|
00003780  29 54 24 3d a4 4d 53 47  28 54 24 29 3a e7 a9 54  |)T$=.MSG(T$):..T|
00003790  24 3e 4d 4c 25 3a 4d 4c  25 3d a9 54 24 0d 12 c0  |$>ML%:ML%=.T$...|
000037a0  41 e7 a9 54 24 3c 31 32  3a 24 28 56 25 2b 31 32  |A..T$<12:$(V%+12|
000037b0  29 3d 54 24 3a 21 56 25  3d 46 25 3a 56 25 21 34  |)=T$:!V%=F%:V%!4|
000037c0  3d 2d 31 3a 56 25 21 38  3d 31 84 37 3c 3c 32 34  |=-1:V%!8=1.7<<24|
000037d0  3a 56 25 2b 3d 32 34 3a  3d 56 25 2d 32 34 0d 12  |:V%+=24:=V%-24..|
000037e0  ca 12 3d a4 45 53 28 54  24 2c 46 25 2c 2d 31 29  |..=.ES(T$,F%,-1)|
000037f0  0d 12 d4 2b dd a4 45 53  28 54 24 2c 46 25 2c 53  |...+..ES(T$,F%,S|
00003800  25 29 ea 4c 25 3a 4c 25  3d a9 54 24 3a e7 4c 25  |%).L%:L%=.T$:.L%|
00003810  3e 4d 4c 25 3a 4d 4c 25  3d 4c 25 0d 12 de 30 24  |>ML%:ML%=L%...0$|
00003820  28 56 25 2b 31 32 29 3d  c0 54 24 2c 31 31 29 3a  |(V%+12)=.T$,11):|
00003830  21 56 25 3d 46 25 3a 56  25 21 34 3d 53 25 3a 56  |!V%=F%:V%!4=S%:V|
00003840  25 21 38 3d 31 84 37 3c  3c 32 34 0d 12 e8 13 e7  |%!8=1.7<<24.....|
00003850  28 21 56 25 80 34 29 84  4c 25 3e 31 31 8c 0d 12  |(!V%.4).L%>11...|
00003860  f2 27 20 20 20 56 25 21  32 30 3d 4c 25 2b 31 3a  |.'   V%!20=L%+1:|
00003870  54 25 3d 44 4d 25 3a 44  4d 25 2b 3d 28 4c 25 2b  |T%=DM%:DM%+=(L%+|
00003880  34 29 80 ac 33 0d 12 fc  2e 20 20 20 24 54 25 3d  |4)..3....   $T%=|
00003890  54 24 3a 56 25 21 31 32  3d 54 25 3a 56 25 21 38  |T$:V%!12=T%:V%!8|
000038a0  3d 56 25 21 38 84 31 3c  3c 38 3a 56 25 21 31 36  |=V%!8.1<<8:V%!16|
000038b0  3d 2d 31 0d 13 06 05 cd  0d 13 10 11 56 25 2b 3d  |=-1.........V%+=|
000038c0  32 34 3a 3d 56 25 2d 32  34 0d 13 1a 26 dd a4 45  |24:=V%-24...&..E|
000038d0  53 56 4c 28 54 24 2c 56  24 2c 46 25 2c 4c 25 2c  |SVL(T$,V$,F%,L%,|
000038e0  53 25 29 3a 54 24 3d a4  4d 53 47 28 54 24 29 0d  |S%):T$=.MSG(T$).|
000038f0  13 24 30 24 28 56 25 2b  31 32 29 3d c0 54 24 2c  |.$0$(V%+12)=.T$,|
00003900  31 31 29 3a 21 56 25 3d  46 25 3a 56 25 21 34 3d  |11):!V%=F%:V%!4=|
00003910  53 25 3a 56 25 21 38 3d  31 84 37 3c 3c 32 34 0d  |S%:V%!8=1.7<<24.|
00003920  13 2e 13 e7 28 21 56 25  80 34 29 84 4c 25 3e 31  |....(!V%.4).L%>1|
00003930  31 8c 0d 13 38 27 20 20  20 56 25 21 32 30 3d 4c  |1...8'   V%!20=L|
00003940  25 2b 31 3a 54 25 3d 44  4d 25 3a 44 4d 25 2b 3d  |%+1:T%=DM%:DM%+=|
00003950  28 4c 25 2b 34 29 80 ac  33 0d 13 42 25 20 20 20  |(L%+4)..3..B%   |
00003960  24 54 25 3d 54 24 3a 56  25 21 31 32 3d 54 25 3a  |$T%=T$:V%!12=T%:|
00003970  56 25 21 38 3d 56 25 21  38 84 31 3c 3c 38 0d 13  |V%!8=V%!8.1<<8..|
00003980  4c 3c 20 20 20 e7 56 24  3d 22 22 56 25 21 31 36  |L<   .V$=""V%!16|
00003990  3d 2d 31 8b 54 25 3d 44  4d 25 3a 44 4d 25 2b 3d  |=-1.T%=DM%:DM%+=|
000039a0  28 a9 56 24 2b 34 29 80  ac 33 3a 24 54 25 3d 56  |(.V$+4)..3:$T%=V|
000039b0  24 3a 56 25 21 31 36 3d  54 25 0d 13 56 05 cd 0d  |$:V%!16=T%..V...|
000039c0  13 60 11 56 25 2b 3d 32  34 3a 3d 56 25 2d 32 34  |.`.V%+=24:=V%-24|
000039d0  0d 13 6a 04 0d 13 74 43  dd a4 56 61 72 56 61 6c  |..j...tC..VarVal|
000039e0  28 4e 24 29 ea 46 25 3a  c8 99 22 58 4f 53 5f 52  |(N$).F%:.."XOS_R|
000039f0  65 61 64 56 61 72 56 61  6c 22 2c 4e 24 2c 42 25  |eadVarVal",N$,B%|
00003a00  2c 32 35 35 b8 2c 2c 46  25 3a 42 25 3f 46 25 3d  |,255.,,F%:B%?F%=|
00003a10  26 44 3a 3d 24 42 25 0d  13 7e 04 0d 13 88 0e dd  |&D:=$B%..~......|
00003a20  f2 4d 65 73 73 28 43 24  29 0d 13 92 2d 43 25 3d  |.Mess(C$)...-C%=|
00003a30  8e 43 24 3a e7 43 25 8b  85 30 2c 22 43 61 6e 6e  |.C$:.C%..0,"Cann|
00003a40  6f 74 20 66 69 6e 64 20  6d 65 73 73 61 67 65 73  |ot find messages|
00003a50  20 66 69 6c 65 22 0d 13  9c 14 de 4d 53 25 a2 23  | file".....MS%.#|
00003a60  43 25 3a 4d 45 25 3d 4d  53 25 0d 13 a6 0b c8 95  |C%:ME%=MS%......|
00003a70  ac c5 23 43 25 0d 13 b0  2c 20 43 24 3d be 23 43  |..#C%..., C$=.#C|
00003a80  25 3a e7 c0 43 24 2c 31  29 3c 3e 22 23 22 3a 24  |%:..C$,1)<>"#":$|
00003a90  4d 45 25 3d 43 24 3a 4d  45 25 2b 3d a9 43 24 2b  |ME%=C$:ME%+=.C$+|
00003aa0  31 0d 13 ba 0a ce 3a d9  23 43 25 0d 13 c4 05 e1  |1.....:.#C%.....|
00003ab0  0d 13 ce 04 0d 13 d8 21  dd a4 4d 53 47 28 54 24  |.......!..MSG(T$|
00003ac0  29 3a e7 c0 54 24 2c 31  29 3d 22 21 22 3a 3d c1  |):..T$,1)="!":=.|
00003ad0  54 24 2c 32 29 0d 13 e2  17 ea 50 25 2c 46 25 2c  |T$,2).....P%,F%,|
00003ae0  49 25 2c 43 24 3a 50 25  3d 4d 53 25 0d 13 ec 10  |I%,C$:P%=MS%....|
00003af0  c8 95 50 25 3c 4d 45 25  80 ac 46 25 0d 13 f6 21  |..P%<ME%..F%...!|
00003b00  20 43 24 3d 24 50 25 3a  50 25 2b 3d a9 43 24 2b  | C$=$P%:P%+=.C$+|
00003b10  31 3a 49 25 3d a7 43 24  2c 22 3a 22 29 0d 14 00  |1:I%=.C$,":")...|
00003b20  28 20 e7 49 25 3a e7 c0  43 24 2c 49 25 2d 31 29  |( .I%:..C$,I%-1)|
00003b30  3d 54 24 3a 43 24 3d c1  43 24 2c 49 25 2b 31 29  |=T$:C$=.C$,I%+1)|
00003b40  3a 46 25 3d b9 0d 14 0a  05 ce 0d 14 14 3b e7 46  |:F%=.........;.F|
00003b50  25 8b 85 20 30 2c 22 43  61 6e 27 74 20 67 65 74  |%.. 0,"Can't get|
00003b60  20 6d 65 73 73 61 67 65  20 27 22 2b 54 24 2b 22  | message '"+T$+"|
00003b70  27 20 66 72 6f 6d 20 6d  65 73 73 61 67 65 73 20  |' from messages |
00003b80  66 69 6c 65 22 0d 14 1e  07 3d 43 24 0d 14 28 04  |file"....=C$..(.|
00003b90  0d 14 32 14 dd f2 50 73  65 75 64 6f 4c 6f 61 64  |..2...PseudoLoad|
00003ba0  28 46 24 29 0d 14 3c 45  c8 99 22 4f 53 5f 46 69  |(F$)..<E.."OS_Fi|
00003bb0  6c 65 22 2c 35 2c 46 24  20 b8 20 4f 25 2c 2c 54  |le",5,F$ . O%,,T|
00003bc0  25 2c 2c 4c 25 3a e7 4f  25 3c 3e 31 85 31 2c 22  |%,,L%:.O%<>1.1,"|
00003bd0  43 61 6e 27 74 20 66 69  6e 64 20 66 69 6c 6d 20  |Can't find film |
00003be0  27 22 2b 46 24 2b 22 27  22 0d 14 46 0b 46 48 25  |'"+F$+"'"..F.FH%|
00003bf0  3d 8e 46 24 0d 14 50 2c  cf 23 46 48 25 3d 31 36  |=.F$..P,.#FH%=16|
00003c00  3a 53 25 3d a4 52 65 61  64 57 6f 72 64 28 46 48  |:S%=.ReadWord(FH|
00003c10  25 29 3a cf 23 46 48 25  3d 53 25 3a 43 25 3d 30  |%):.#FH%=S%:C%=0|
00003c20  0d 14 5a 1e 4e 46 25 3d  a4 52 65 61 64 57 6f 72  |..Z.NF%=.ReadWor|
00003c30  64 28 46 48 25 29 3a 4d  46 25 3d 4e 46 25 0d 14  |d(FH%):MF%=NF%..|
00003c40  64 45 c8 95 4e 46 25 3a  43 25 2b 3d 31 3a cf 23  |dE..NF%:C%+=1:.#|
00003c50  46 48 25 3d 8f 23 46 48  25 2b 4e 46 25 2d 34 3a  |FH%=.#FH%+NF%-4:|
00003c60  4e 46 25 3d a4 52 65 61  64 57 6f 72 64 28 46 48  |NF%=.ReadWord(FH|
00003c70  25 29 3a e7 4d 46 25 3c  4e 46 25 3a 4d 46 25 3d  |%):.MF%<NF%:MF%=|
00003c80  4e 46 25 0d 14 6e 05 ce  0d 14 78 11 4c 25 3d 53  |NF%..n....x.L%=S|
00003c90  25 2b 31 36 2a 43 25 2b  34 0d 14 82 35 4d 4d 25  |%+16*C%+4...5MM%|
00003ca0  3d a4 41 6c 6c 6f 63 28  4c 25 2b 4d 46 25 29 3a  |=.Alloc(L%+MF%):|
00003cb0  4d 25 3d 4d 4d 25 3a f2  52 65 61 64 42 79 74 65  |M%=MM%:.ReadByte|
00003cc0  73 28 46 48 25 2c 30 2c  53 25 2c 4d 25 29 0d 14  |s(FH%,0,S%,M%)..|
00003cd0  8c 24 43 54 25 3d a4 41  6c 6c 6f 63 28 32 36 34  |.$CT%=.Alloc(264|
00003ce0  29 3a 43 50 25 3d 30 3a  21 43 54 25 3d 4d 25 21  |):CP%=0:!CT%=M%!|
00003cf0  32 38 0d 14 96 28 cf 23  46 48 25 3d 53 25 3a 4e  |28...(.#FH%=S%:N|
00003d00  46 25 3d a4 52 65 61 64  57 6f 72 64 28 46 48 25  |F%=.ReadWord(FH%|
00003d10  29 3a 49 25 3d 4d 25 2b  53 25 0d 14 a0 36 c8 95  |):I%=M%+S%...6..|
00003d20  4e 46 25 3a 21 49 25 3d  31 36 3a 49 25 21 34 3d  |NF%:!I%=16:I%!4=|
00003d30  8f 23 46 48 25 2d 34 3a  49 25 21 38 3d 4e 46 25  |.#FH%-4:I%!8=NF%|
00003d40  3a 49 25 21 31 32 3d 31  36 3a 49 25 2b 3d 31 36  |:I%!12=16:I%+=16|
00003d50  0d 14 aa 2a cf 23 46 48  25 3d 8f 23 46 48 25 2b  |...*.#FH%=.#FH%+|
00003d60  4e 46 25 2d 34 3a 4e 46  25 3d a4 52 65 61 64 57  |NF%-4:NF%=.ReadW|
00003d70  6f 72 64 28 46 48 25 29  3a ce 0d 14 b4 15 21 49  |ord(FH%):.....!I|
00003d80  25 3d 30 3a 42 42 25 3d  49 25 2b 34 2d 4d 25 0d  |%=0:BB%=I%+4-M%.|
00003d90  14 be 05 e1 0d 14 c8 04  0d 14 d2 3a dd f2 52 65  |...........:..Re|
00003da0  61 64 42 79 74 65 73 28  46 48 25 2c 4f 25 2c 53  |adBytes(FH%,O%,S|
00003db0  25 2c 41 25 29 3a c8 99  22 4f 53 5f 47 42 50 42  |%,A%):.."OS_GBPB|
00003dc0  22 2c 33 2c 46 48 25 2c  41 25 2c 53 25 2c 4f 25  |",3,FH%,A%,S%,O%|
00003dd0  3a e1 0d 14 dc 04 0d 14  e6 36 dd a4 52 65 61 64  |:........6..Read|
00003de0  57 6f 72 64 28 46 48 25  29 3d 9a 23 46 48 25 84  |Word(FH%)=.#FH%.|
00003df0  9a 23 46 48 25 3c 3c 38  84 9a 23 46 48 25 3c 3c  |.#FH%<<8..#FH%<<|
00003e00  31 36 84 9a 23 46 48 25  3c 3c 32 34 0d 14 f0 04  |16..#FH%<<24....|
00003e10  0d 14 fa 13 dd f2 45 58  28 f8 20 44 25 2c f8 20  |......EX(. D%,. |
00003e20  43 25 29 0d 15 04 28 f2  52 65 61 64 42 79 74 65  |C%)...(.ReadByte|
00003e30  73 28 4b 25 21 36 30 2c  44 25 21 34 2c 44 25 21  |s(K%!60,D%!4,D%!|
00003e40  38 2c 4d 25 2b 4b 25 21  36 34 29 0d 15 0e 26 c8  |8,M%+K%!64)...&.|
00003e50  99 45 58 25 2c 4d 25 21  33 32 2c 4d 25 2b 4b 25  |.EX%,M%!32,M%+K%|
00003e60  21 36 34 2c 43 25 2c 4d  25 21 34 30 b8 2c 2c 43  |!64,C%,M%!40.,,C|
00003e70  25 0d 15 18 0b 44 25 2b  3d 21 44 25 0d 15 22 05  |%....D%+=!D%..".|
00003e80  e1 0d 15 2c 04 0d 15 36  2f dd f2 45 4e 44 3a 4b  |...,...6/..END:K|
00003e90  25 3d 21 52 25 3a c8 95  4b 25 3a e7 4b 25 21 36  |%=!R%:..K%:.K%!6|
00003ea0  30 3c 3e 30 80 4b 25 21  33 36 3d 4b 25 d9 23 4b  |0<>0.K%!36=K%.#K|
00003eb0  25 21 36 30 0d 15 40 0c  4b 25 3d 21 4b 25 3a ce  |%!60..@.K%=!K%:.|
00003ec0  0d 15 4a 05 e0 0d ff                              |..J....|
00003ec7