!QTMDebug"GY!Help"gE;GFRun QTMDebug to initialise QTMPlay in debugging mode. Desktop operation will be *very* slow, and kilobytes of debugging data will be produced every second, so in general, only run it if you have a repeatable bug. Once the bug has occured in debugging mode, archive the files !QTMDebug.Logs.QTMPlayer and !QTMDebug.Logs.QTMPlay and email them to me for examination, and hopefully I can solve your problems faster. The QTMDebug application uses SysLog Jon Ribbens of Doggysoft 1996.!RunI"SG? YSet SysLog$Dir Set SysLog$LogDir .Logs IconSprites .!Sprites RMEnsure SysLog 0.16 RMRun .SysLog RMRun .QTMPlayer Run .!Run -debug!Sprites X^Fc!qtmdebug, swwwwwwwwwwwwwwww7s,wwwwwwwwwwww.L|r3w73333s7333t,|""rwwwww$"""'L|t""svwwwwdww"tL'rwwwwwwwwwu"rL|rw''%wwwwww R"rw'q""spwwwwwww7""q""wwuwwwwQww""'"w'"Swwww5""""r'""""""""""""""rwwwwwwwwwwwwwwwwww |tLLLLLLLLLLLLLLLL|swwwwwwwwwwwwwwww7!Sprites22 Љ`\F犽|!qtmdebug!,pwwwwwwwwwwwwwwwwr ,|»t,,,,,,,,,,,,,,L|t,,wwwwwwwwwwww,L|rDDDDDDDDDDDDt,|DDDDDDDDDDDD'L|rwwwwwwwwwwwt,|"""ppw'""""'L|r""www$"""t,|""w zw$""'L|rrwwwwwS""tL'wBswwwy9$"rL|w'Spwwwww5"rtpw'"7wwww s"rwq'"wwwwwwp"r w""w~wwwwww|""ww"rpwwwwpw""ww"r5wwww S""ww""sqwwwww7""wq'""2w wwwr#""rq'"""W7ps%"""rq'"""'Cvwwg4""""rq'"""'""""""""""rwwwwwwwwwwwwwwwwww |t,,,,,,,,,,,,,,,L|tLLLLLLLLLLLLLLLL|tpwwwwwwwwwwwwwwwwLogs"G4OptionsI"XdGY# SysLog options file # Each line of this file is of the format: # [Reserve |NoReserve] [Sessions|NoSessions] # [ []] # The and are specified in kilobytes. # The following line is special - it specifies the default values, which # will be used if a log's options aren't specifically set. * NoReserve Sessions 125 256 # Options for specific logs now follow. Test 125 QTMPlayer 255 QTMPlay 255 QTMPlayer W"|j WG@@ QTMPlay layer manager version 0.27.1-debug Compiled on Wed,23 Jul 1997.16:39:12 QTMPlayerQTMPlayer 0.27 (23 Jul 1997) debug Chris RutterQTMPlayerRecogniseLoadUnloadPauseRestartStopPositionSampleVolumeQualitySoundSystemSongInfoInfoLayerClearO--_-Bc@sJ } init: entered (version 0.27.1)0_;p?h -_-RcPsTJ  0init: workspace claimed, size=%3d, pointer=%12x, block @ %2x0_ 0 @${-_-Bc@sI ~ init: exiting0_耏O- -_-RcPs@I } 0finalise: entered, fatal=%10d0_ p -_-RcPsH  0finalise: dismounting layer %0d0_ x-_-Bc@slH ~ finalise: exiting0_[ -_-RcPsH  0swi_handler: called swi %11d0_ 0dH% QTMPlayer has received a bad SWI requestC-8Aj0p3  0:p`P@ 1jg0P@p755@  j0tG m pP60  j0Pp7  juC- -_-RcPsF  0_load: entering (%0z)0_ qjp@2   2h2  15 q -_-Bc@sXE  _load: dismounting current layer...0_ j-_-Bc@sD  _load: mounting new layer0_  jI_- -_-RcPsD  0enter_layer: entering current layer at stop_play() {r0-r12,r14}0_ @( hd t:-  e_<e-_-Bc@sC  enter_layer: exiting0_:j  6j1hk2j10-_-Bc@s(C  _load: locking heap0_ˣ "0 -_-RcPsB  0 _load: playing file %0z, buffer @ %1x, size = %2d0_ _- -_-RcPs@B  0enter_layer: entering current layer at play_file() {r1-r12,r14}0_ @( \d t:- V k_-_-Bc@sxA  enter_layer: exiting0_Mj;j -_-RcPsA  0_load: buffer size=%0d0_ p /j-_-Bc@s@  _load: exiting0_x -_-RcPsT@  0** error ** %1z, r12=%12x0_  C0  -_-RcPs?  0 _load: error (%1z) attempting recovery...0_ C -_-RcPsd?  0 _load: recovery successful -- exiting0_ C-{_- -_-RcPs>  0enter_layer: entering current layer at stop_play() {r0-r12,r14}0_ @( hd t:-  e_<e-_-Bc@s>  enter_layer: exiting0_x -_-RcPs=  0** error ** %1z, r12=%12x0_  C0C-{-_-Bc@s8=  _unload: entered0_ -_-Bc@s<  _unload: exiting0_x -_-RcPs<  0** error ** %1z, r12=%12x0_  C0C-{_- -_-RcPs<  0enter_layer: entering current layer at pause_code() {r0-r12,r14}0_ @( `d t:-  e_<e-_-Bc@s8;  enter_layer: exiting0_x -_-RcPs:  0** error ** %1z, r12=%12x0_  C0C-{_- -_-RcPsX:  0enter_layer: entering current layer at restart_play() {r0-r12,r14}0_ @( dd t:-  e_<e-_-Bc@s9  enter_layer: exiting0_x -_-RcPs,9  0** error ** %1z, r12=%12x0_  C0C-{pc _- -_-RcPs8  0enter_layer: entering current layer at set_position() {r1-r12,r14}0_ @( Ld t:- k_-_-Bc@s7  enter_layer: exiting0_x -_-RcPsx7  0** error ** %1z, r12=%12x0_ C_-@( Dd t:- k_-_-Bc@s6  enter_layer: exiting0__- -_-RcPsh6  0enter_layer: entering current layer at last_position() {r1-r12,r14}0_ @( Hd t:- _k_-_-Bc@s5  enter_layer: exiting0_  x -_-RcPs45  0** error ** %1z, r12=%12x0_ CC-pw PcPc_- -_-RcPs4  0enter_layer: entering current layer at soundquality_set() {r0-r12,r14}0_ @( 8d t:-  e_<e-_-Bc@s3  enter_layer: exiting0_x -_-RcPst3  0** error ** %1z, r12=%12x0_  C0C-0 pw 0 _- -_-RcPs2  0enter_layer: entering current layer at tss_set() {r0-r12,r14}0_ @( h~+SysLogSysLog 0.17 (23 Apr 1997) DoggySoft Ltd., 1995, 1996, 1997Desktop_SysLog(SysLogSysLog_Flush[ 09h>oy(%*DUnknown SysLog operationSysLogLogMessageGetLogLevelFlushLogSetLogLevelLogUnstampedIndentUnIndentNoIndentOpenSessionLogCloseSessionLogLogDataLogFormattedReadErrorMessageLogCompleteIRQMode@- OxSyntax: *Desktop_SysLogSysLog provides System Logging facilities. Do not use *Desktop_SysLog, use *Desktop instead.@-1 1 0!P* 0*!h 0 "xgcL_0!P* 0*, !qq{xSyntax: *SysLog ON|OFFSyntax: *SysLog *SysLog enters a message into the specified system log file,enables or disables SysLog, or alters the log-level of a log. Syntax: *SysLog *SysLog ON|OFF *SysLog onoff1  @-$Oo 0Ok _Syntax: *SysLog_Flush ON|OFF*SysLog_Flush with no parameters flushes all currently active log files to disk. If used with the parameter 'ON' then it causes all log files to be flushed immediately after each message is written to them. Note that this makes logging *very slow*. *SysLog_Flush OFF disables this behaviour. Syntax: *SysLog_Flush ON|OFFB D000@- 0!R!S# :ARZr" "ASZs" 0"2 @!R!S3*@@- @-  ^:.>:>*>#>$>&>@>^>%>\> QЍ@ 1SysLog: Bad log name@-D , ^$*. ^$*~@-@0~j`0BjP0S\!P$*L+DP ~_ _~Old..Old.Options@-HOD,'8OrDrr,s'xЍ@-}82<@04 *NoSessionsNoReserve?@-P0@34?@S?(B S?( 0S?(!P* 0 0?S?( 0 00 0P9p"1*O& # O   S?(!P*004S?(!P* 0 0?S?( 0 00 !?h%4 !?h8 0 0?Q?( 0 0 !?h%@ 0 0?Q?( 0 0 !< u?@- 2@-pDj00  j@0pqs0spu sw {x_  pp@-0:@-`,1pM_  ,u z_ . @Ps j,LP jLL 0I jP 7@R  ܍rx܍,1, L  s,u jp-0 M rs q,r)܍0  jM P >  , @Ѝz@-`@LP4    j0P@P@Ѝ~?@-P,\ T0123? s jTP@LTL@%?LЍ>@-,,1 xЍ@-0LPP@4 P( ,  cL  @-0T^ @{{{s$uBDu x_0TL$0dP!$B _ `@- >(>8,j\>o (j 0> > >  R+#T00XS: >j\0T0@B@TѤä T00T0>x((Ѝ log lineS missed while in IRQ mode@- >@(P(0h` p OS0 5 0 Xj xЍ~@ _Ѝ~@- d^ }^ ^ ^ ^ @-\080X0\ uxЍ@-\ 2\TxЍ%dy %m3 %24:%mi:%se@-@$h @2^:  `0Oh) ^$*@-`P-<Pq5j2j@ ^* D R-#$$$ *0dRd B""*0 R B""*0 H00SĤ+ R> > > s qPsx@ _Ѝ~0@-> j8R;xЍ0@->j8R;xЍError from log "@-0 OA;h0 X0O ^$* @@T ^$*": L@T ^$*0O @(  @-  }z_O @s{ @Ba0  0 $Q* (1D@Q*<Q*T>\>`0@-x8ux0@-q{x@- j@0 2zЍ@-   8\0{xЍ@-0 H{xЍ0@->ЍbhH ^2H50@-3ЍbhH>NH0@-(sHuxЍ@-M`p-Bppr sq q{sj0܍_ _Aߍ@-PM L -P4:1  | j ^* @P PЍrx_ P_Aߍ@->M$j08Q#Ѝ"(00Ѝ {j >88<<@@ r{s{rЍrxЍ0A-MP`pPjP->܍{POr{c{Kj:s`qr q{qOs pq <R4* 3j1*!P$* qF{{-j : !j:s , jp r qU{qsq{P j j `܍rxp_ ]_ 5 3 _܍SysLog: Can't read name of parent log from temporary log file-*Stray temporary session log file closed by SysLog@- M@ PN`O D 0 jt Ѝ30O( O{z$Ѝ~ _$Ѝ~0@->j8Q;xЍ S;A-0MP`pW1* : t $ 9$7$53 :@ 0R4(; $$0S:0W4(;0S  Rz4Ѝ0Ѝ@-A_SysLog: Data block too big@-  ^027" ^027"@->. ^.30@->|j8R(`p@=>Q*%> > > > %> >E 0^9~": 0N R:;R08$"  <><$p> h0 a>( c>r d>r e>[ f>< p> s>_ x>l z>R =>>Q*> > >2 xЍP SPNj.% SIGj.% SB@j.%  S;9jsP U* C:j5k  PC- Ab_j P*AZ CWzCPPQ*0N 'PdPQ * PE:A C>z C:z_ MxЍ(null)SysLog: Error in format string: P P$!@-\x ^W"02 ^W"02BPB#0@-{C{xЍbh@-={ j 20xЍp @- 0>N  SSSSSSSSS$SS2SSSSSSS>SSSSSSSSSSSSOe  7QsBc| "SS5BSNo errorBad descriptorNo more portsBad addressInvalid argumentOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketProtocol not availableProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedHost is downNo route to hostUnknown Error!QTMPlay " GP局!Boot"֎ΊG=vSet QTMPlay$Dir IconSprites .!Sprites Set File$Type_130 Carousel | Uncomment the following line if you dont want to wait ages at booting WimpSlot -min 64k -max 64k Run .!BootImage!BootImagev "v GIw  > .!BootImage  > Chris Rutter, 1996  f 0,"There was a problem when trying to boot QTMPlay ("+$+", internal error code "+()+")"  ș "OS_GetEnv" tail$ 8 tail$,"-nosprites") nosprites%= nosprites%= , tail$,"-checkloaded") check_loaded > tail$,"-killwimplib") killwimplib%= killwimplib%= ) tail$,"-choices") setup_choices  tail$,"-end")  debug%=  block% 1024  module% 32*1024  off%=0 * debug% " nosprites="+(nosprites%)  6 killwimplib% ș "XOS_CLI","RMKill WimpLibrary"  -ș "XOS_CLI","Set File$Type_000 STracker" -ș "XOS_CLI","Set File$Type_001 STracker" -ș "XOS_CLI","Set File$Type_130 Carousel" -ș "XOS_CLI","Set File$Type_CC5 TeqMusic" -ș "XOS_CLI","Set File$Type_CB6 STModule"  !ș "XOS_CLI","DosMap MOD CB6" !ș "XOS_CLI","DosMap S3M FFD"   M ș "OS_GBPB",10,".Formats",block%,1,off%,256,"*" ,,,,off%  off%<>-1 block%!16=2 !3 path$=".Formats."+ct(block%+20) "& debug% "Module "+path$+"..." #4 ș "OS_File",5,path$+".Code" exist%,,,,size% $" exist%=1 size%<32*1024 %# debug% " size="+(size%) &- ș "OS_File",255,path$+".Code",module% ' set_aliases (% nosprites% load_sprites ) * + off%=-1 , - . ct(address%) / string$ 0ȕ ?address%>31 1 string$+=(?address%) 2 address%+=1 3 4 =string$ 5 6 set_aliases 7 base% 8base%=module%+module%!20 9+ base%>module% base%-1 ;) debug% " filetype "+~(!base%)

.!Run QTMfile:") = base%+=4 > ? @ A B load_sprites CAș "XOS_CLI","IconSprites "+path$+"."+ct(module%+module%!16) D E F t(string$) Gȕ (string$)<3 H string$="0"+string$ I J =string$ K L check_loaded M call%,loaded% N 0,"While trying to check whether QTMPlay was loaded, the following error occurred: "+$+" (internal error code "+()+")" O buffer% 16 P Q= ș "TaskManager_EnumerateTasks",call%,buffer%,16 call% R+ ct(buffer%!4)="QTMPlay" loaded%= S call%<0 TJ loaded% "Set QTMPlay$Loaded True" "Set QTMPlay$Loaded False" U V W setup_choices X;ș "OS_CLI","Set QTMPlay$Choices .Choices" Yiș "OS_CLI","If """" <> """" Then Set QTMPlay$Choices .QTMPlay.Choices" Z<ș "XOS_File",5,".QTMPlay" type%;flags% [ (flags% 1<<28) type%=0 \ ] type%=1 ^8 move Choices.QTMPlay into Choices.QTMPlay.Choices _N ș "OS_FSControl",25,".QTMPlay",".QTMPlayT" `- ș "OS_File",8,".QTMPlay" aV ș "OS_FSControl",25,".QTMPlayT",".QTMPlay.Choices" b c d8 type%=0 ș "OS_File",8,".QTMPlay" e !Help"v(ʈG)xIf "" = "" Then Error You need StrongHelp 2 to view the QTMPlay documentation and manual Filer_Run .UK.QTMPlay!Run"|GSet QTMPlay$Dir WimpSlot -min 32k -max 32k /.!BootImage -checkloaded -choices -end If ""="True" Then Error QTMPlay is already loaded Unset QTMPlay$Loaded Set File$Type_130 Carousel IconSprites .!Sprites RMEnsure Dynamite 1.18 RMRun .Dynamite RMEnsure Dynamite 1.18 Error QTMPlay needs Dynamite version 1.18 or later RMEnsure QTMPlayer 0.27 RMRun .QTMPlayer RMEnsure QTMPlayer 0.27 Error QTMPlay needs QTMPlayer version 0.27 or later WimpSlot -min 192k -max 192k /.!RunImage %*0 WimpSlot -min 64k -max 64k /.!BootImage -nosprites!RunImager"VrG*+  > .!RunImage  > Chris Rutter 1995  (2 0,$+" (internal error code "+()+")" 2 < rnd=(-) F sbuf% 512 Pobject_size%=-&8000 Zhimem%=&8000+(192*1024) d =himem% n=himem%+4 x initialise_kernel . splash% himem%+=2048:=himem%:=himem% load_libraries   error  prevariables Ȑ debugmode% debug_message("QTMPlay kernel starting up...last used="+(-&8000)+", page="+hexadecimal()+", object size="+(object_size%)) initialise_carousel_base open_messages setup_messages  splash% 1 splash_notice("Starting up WIMP task...",0)  ș "Wimp_CloseDown"  ]ș "Wimp_Initialise",310,&4b534154,msg("LongTask"),block% window_manager%,task_window% "1 splash% splash_setup("-1",splash_verbose%) ,4 splash% splash_notice("Loading sprites...",0) 6load_sprites @postvariables Jopen_windows T9 splash% splash_notice("Initialising formats...",0) ^play_initialise h,plugins_length%=plugins_object_size*1.4 r9plugins_length%=plugins_length%-(plugins_length% 4) |g debugmode% debug_message("Increasing memory for library space...["+(plugins_length%)+" bytes]") &increase_slotend(plugins_length%) $plugin_scratch%+=plugins_length% (plugin_scratchbase%+=plugins_length% himem%+=plugins_length% =himem%+4  =himem% a debugmode% verbose debug_message("end of memory="+(-&8000)+", last used="+(-&8000)) scan_plugins create_menus setup_volumebars read_choices_file create_toolbarwindow scanset(scanset_state%) D toolbox_lock%>1 open_window(play_window%) poll_nullevent set_choices tick_item(menu_play%,0,) &load_default_carousel 0check_tailstring :setup_redrawcarousel DC debugmode% debug_message("memory_needed="+(memory_needed%)) N X splash% b" close_window(splash_window%) l splash_log% #splash_log% v splash%=    wimp_error  P debugmode% debug_message("QTMPlay startup complete. [error fallthrough]")   %ș "OS_ReadMonotonicTime" time% Bș "Wimp_PollIdle",,block%,time%+processor_pollwait% action% 8 plugins_nextpoll%<>0 plugins_poll(action%,block%)  wimp_action(action%,block%) ticker_action  -<4096 K debugmode% debug_message("Running low on memory, increasing by 4K")   increase_slotend(4096)  himem%+=4096  =himem% * =himem%+4 4 1,"fallthrough" > H poll_increase%>0 R/ poll_increase%=round_up(poll_increase%,4) \x debugmode% debug_message(poll_increasehandler$+" requests basic memory increase of "+(poll_increase%)+" bytes") f& increase_slotend(poll_increase%) p himem%+=poll_increase% z =himem%+4  =himem% ) dummy%=("FN"+poll_increasehandler$)  poll_increase%=0  1,"fallthrough"   quit%  A carousel_unaltered% save_carousel_position(last_carousel$)  active_plugins%>0 ! plugin%=1 active_plugins% [ (plugins_flags%(plugin%,1) (1<<2))>0 wbk2%!0=plugin_call(plugin%,"shutdown","")  plugin%  ș "QTMPlayer_Unload"  "RMKill QTMPlayer" clear_exit $ . 8 prevariables B command$ L tbuf 12 V qtmp% 5 `$qtmp%="QTMP" j$carousel_playstartsfrom_song%=-1 t(carousel_playstartsfrom_position%=-1 ~%carousel_playstartsfrom_event%=-1 carousel_version%=0 "slotsize%=(himem%-&8000)+&1000 dynamite_initialised%= carousel_window_open%= debug_window%=0 replacement_songname$="" plugin_scratch%=himem%+16 'plugin_scratchbase%=plugin_scratch% plugin_scratchsize%=0 active_plugins%=0 dynamite_initialised%= debugwin%= memory_needed%=0  help_messagesopen%=  pos%,worked% U block% 2048:wbk%=block%+512:wbk2%=wbk%+512:wbk3%=wbk2%+512:memory_needed%+=2048 (ș "OS_GetEnv" command$ 2 command$,"-debug")  sample_valid% 4:$sample_valid%="R2"+0:memory_needed%+=4 < toolbar% 144:memory_needed%+=144:toolbar2%=toolbar%+72 0 toolbar_icons% 20*16:memory_needed%+=20*16 9 toolbar_null% 4:$toolbar_null%=0:memory_needed%+=4  cd_valid% 32 setup_toolbaricons iconbar_locked%=0 bounding_box%=wbk3%+256  quit%= 7carousel_slotsize%=256+1+1+1+8+32:carousel_items%=0 !toolicon_w%=48:toolicon_h%=48 toolbar_edit%= "polls%=0:menu_open%= ,!abslayer%=0:lastdrag_type%=-1 6=carousel_wrap%=:carousel_repeated%=0:carousel_playing%=0 @song_loaded%= J*last_position%=0:control_handleopen%= Tcarousel_edit%=0 ^scanset_state%=1 hcarousel_unaltered%= rtrack_grab%= |last_carousel$="" fadeout_pending%=-2 ,ș "OS_ReadMonotonicTime" ticker_time% lastsprites$="" sprite_pool%=0 plugin_presence%= cd_isvalid%= plugin_nextpoll%=0  plugin_icon%(16,3)  plugin_optforitem%(16,16)  plugin_cscratch% 512  plugin_handler$(16) plugin_configured%= plugins_nextpoll%=0 processor_pollwait%=20 processor_tickerwait%=120 carousel_shuffle%= &poll_increase%=0 0Aș "OS_SWINumberFromString",,"Wimp_PlotIcon" Wimp_PlotIcon% :Iș "OS_SWINumberFromString",,"Wimp_GetRectangle" Wimp_GetRectangle% DCș "OS_SWINumberFromString",,"Wimp_SetColour" Wimp_SetColour% Nlast_carouselwidth%=572 X b l postvariables v! debugmode% debug_startup read_mode_variables 7string_internalerrorcode$=msg("InternalErrorCode") %string_okcancel$=msg("OKCancel")    setup_messages block%!0=&400C1 block%!4=3 block%!8=2 block%!12=&502 block%!16=6 block%!20=5 block%!24=&400c0 block%!28=&74F00  block%!32=&400c9 block%!36=0   * 4 open_messages >: splash% splash_notice("Opening messages file...",1) H message_size% RVș "OS_File",5,"."+resources_country$+".Messages" ,,,,message_size% \u message_desc% 16, message_filebuff% message_size%+16, message_buff% 256:memory_needed%+=16+message_size%+256+16 fnș "MessageTrans_OpenFile",message_desc%,"."+resources_country$+".Messages",message_filebuff% ptaskname$=msg("TaskName") z#version%=(msg("Version"))*100    open_helpmessages @ debugmode% debug_message("Opening help messages file...")  message_size% Rș "OS_File",5,"."+resources_country$+".Help" ,,,,message_size%  poll_increase%=message_size% -poll_increasehandler$="load_helpmessages"    load_helpmessages @ debugmode% debug_message("Loading help messages file...")  message_size% Rș "OS_File",5,"."+resources_country$+".Help" ,,,,message_size%  help_message_desc% 16 - help_message_filebuff% message_size%+16 $ help_message_buff% 256 .+memory_needed%+=16+message_size%+256+16 8uș "MessageTrans_OpenFile ",help_message_desc%,"."+resources_country$+".Help",help_message_filebuff% Bhelp_messagesopen%= L=0 V ` open_windows jLș "Wimp_OpenTemplate",,"."+resources_country$+".Templates" t-carousel_window%=load_window("Carousel") ~+choices_window%=load_window("Choices") +control_window%=load_window("Control") %edit_window%=load_window("Edit") %info_window%=load_window("Info") %play_window%=load_window("Play") +samples_window%=load_window("Samples") -savedrag_window%=load_window("SaveDrag") -savename_window%=load_window("SaveName") +toolbox_window%=load_window("Toolbox") 1plugininfo_window%=load_window("PluginInfo") 6pluginchoices_window%=load_window("PluginChoice") ș "Wimp_CloseTemplate" find_icons Cset_icon(info_window%,7,msg("Version")+" ("+msg("Date")+")") 0set_icon(info_window%,9,msg("Registered")) block%!0=carousel_window% #ș "Wimp_GetWindowInfo",,block% (carousel_title%=block%!76 2(carousel_title$=ct(carousel_title%) my%=block%!4 HȎ window% R play_window% \ Ȏ mb% f 4,1 p toolbar_edit% z( icon%>=0 toolbar_drag(icon%) + handle_action(toolbar%?icon%,mb%) 9 2 : openmenu_win(menu_main%,block%!0,block%!4)  toolbox_window%  Ȏ mb% 4,1  Ȏ icon% 36 : close_window(toolbox_window%) : toolbar_edit%= " scanset(scanset_state%) 2 toolbox_pbak% : toolbox_drag(06,icon%) 2 toolbox_stop% : toolbox_drag(01,icon%) 2 toolbox_paws% : toolbox_drag(03,icon%) 2 toolbox_play% : toolbox_drag(05,icon%) $2 toolbox_pfwd% : toolbox_drag(08,icon%) .2 toolbox_ctrl% : toolbox_drag(07,icon%) 82 toolbox_edit% : toolbox_drag(09,icon%) B2 toolbox_tdir% : toolbox_drag(11,icon%) L2 toolbox_sbak% : toolbox_drag(02,icon%) V2 toolbox_sfwd% : toolbox_drag(04,icon%) `2 toolbox_back% : toolbox_drag(12,icon%) j2 toolbox_drag% : toolbox_drag(10,icon%) t 5 ~0 wbk%!0=(get_icon(toolbox_window%,4)) 9 wbk%!0<12 ((!wbk%+1)*toolbar_height%)<=12  toolbar_width%+=1 9 set_icon(toolbox_window%,4,(toolbar_width%))  create_toolbarwindow O ș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29)   6 0 wbk%!0=(get_icon(toolbox_window%,4))  wbk%!0>1  toolbar_width%-=1 9 set_icon(toolbox_window%,4,(toolbar_width%)) e create_toolbarwindow:ș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) 0 toolbox_constrain% toolbar_locky   9 0 wbk%!0=(get_icon(toolbox_window%,8)) (8 wbk%!0<12 ((!wbk%+1)*toolbar_width%)<=12 2 toolbar_height%+=1 <: set_icon(toolbox_window%,8,(toolbar_height%)) Fe create_toolbarwindow:ș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) P0 toolbox_constrain% toolbar_locky Z d 10 n0 wbk%!0=(get_icon(toolbox_window%,8)) x wbk%!0>1  toolbar_height%-=1 : set_icon(toolbox_window%,8,(toolbar_height%)) e create_toolbarwindow:ș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) 0 toolbox_constrain% toolbar_locky     choices_window%  Ȏ mb%  2 > icon%=7 openmenu_icon(menu_quality%,window%,icon%)  1,4  Ȏ icon%  choices_editlayout% 6 set_icon(toolbox_window%,4,(toolbar_width%)) 7 set_icon(toolbox_window%,8,(toolbar_height%)) "% open_window(toolbox_window%) , toolbar_edit%= 6 choices_ok% @. mb%=4 close_window(choices_window%) J get_choices T set_choices ^ choices_cancel% h. mb%=4 close_window(choices_window%) r# toolbar_width%=toolbar_exw% |$ toolbar_height%=toolbar_exh% 9 pos%=0 32:toolbar%?pos%=toolbar2%?pos%: pos% b create_toolbarwindow:ș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29)  put_choices  scanset(scanset_state%)  choices_save% . mb%=4 close_window(choices_window%)  get_choices  set_choices  save_choices  7 3 openmenu_icon(menu_quality%,window%,icon%)  choices_grab% 1 set_iconstate(window%,icon%,1<<22,1<<22)  track_grab%=   & control_window% 0 Ȏ mb% : 4,1 D Ȏ icon% N0 control_play% : handle_action(5,mb%) X0 control_paws% : handle_action(3,mb%) b0 control_stop% : handle_action(1,mb%) l0 control_pbak% : handle_action(6,mb%) v0 control_pfwd% : handle_action(8,mb%) 0 control_sbak% : handle_action(2,mb%) 0 control_sfwd% : handle_action(4,mb%) ; control_samples% : open_window(samples_window%) i control_volsur% : click_volume(mx%,my%,window%,control_vbar%) update_slider(control_vbar%) O control_volup% : module_volume%<64 set_volume(module_volume%+1,) P control_voldown% : module_volume%>0 set_volume(module_volume%-1,)    carousel_window% 6 (mb%=2 mb%=4 mb%=1) carousel_items%>0  wbk%!0=carousel_window% & ș "Wimp_GetWindowState",,wbk%  md%=wbk%!16-my%  md%-=wbk%!24   md%-=16  md%=(md%/48)+1  5 $(menu_carousel%+28+(24*4)+12)="Item "+(md%) *& $(!menu_citem%)="Item "+(md%) 4' md%>carousel_items% md%<1 > mb%=2 H+ menu_carousel%!(28+(3*24)+0)=1<<7 R/ openmenu_win(menu_carousel%,mx%,my%) \ f p Ȏ mb% z 4  carousel_edit%=md%  put_edits ' redraw_icon(edit_window%,4) % open_window(edit_window%)  2 ) menu_carousel%!(28+(3*24)+0)=0 0 openmenu_win(menu_carousel%,mx%,my%)  1  play_carousel(-md%)    - openmenu_win(menu_addblank%,mx%,my%)   edit_window%  Ȏ mb% $ 4,1 . Ȏ icon% 8 17 B/ mb%=4 close_window(edit_window%) L get_edits V 16 `/ mb%=4 close_window(edit_window%) j put_edits tP mb%=1 ș "Wimp_ForceRedraw",edit_window%,-1<<29,-1<<29,1<<29,1<<29 ~ 12 m (get_icon(edit_window%,11))<255 set_icon(edit_window%,11,((get_icon(edit_window%,11))+1))  13 k (get_icon(edit_window%,11))>1 set_icon(edit_window%,11,((get_icon(edit_window%,11))-1))  4 R click_volume(mx%,my%,window%,edit_vbar%) update_slider(edit_vbar%)  7 . (get_icon(edit_window%,6))<255 F set_icon(edit_window%,6,((get_icon(edit_window%,6))+1)) " carousel_volume_redraw   8 , (get_icon(edit_window%,6))>0 F set_icon(edit_window%,6,((get_icon(edit_window%,6))-1))  " carousel_volume_redraw   ( 2 savedrag_window% < Ȏ mb% F 4,1 P Ȏ icon% Z 0 dW last_carousel$="" notify("#WhereSave") save_carousel(last_carousel$) n 2 x carousel_items%>0  save_drag_initiate  " notify("#NoCarousel")     savename_window%  Ȏ mb%  4,1  Ȏ icon% . 3 : close_window(savename_window%)  4 ) close_window(savename_window%) / get_icon(savename_window%,2)<>"" L save_carousel(csave_pathname$+"."+get_icon(savename_window%,2))  " , 6 pluginchoices_window% @ Ȏ mb% J 4,1 T Ȏ icon% ^X plugin_icon%(0,1) : close_window(pluginchoices_window%):plugin_configured%= hZ plugin_icon%(0,2) : read_plugin_configure:close_window(pluginchoices_window%) rb plugin_icon%(0,3) : write_plugin_choices:read_plugin_configure:close_window(window%) |   samples_window%  mb%=2  wbk%!0=samples_window% % ș "Wimp_GetWindowState",,wbk%  md%=wbk%!16-my%  md%-=wbk%!24  md%-=16  md%=(md%/48)+1 ( $(!menu_sample%)="Sample "+(md%) 0 md%<32 md%>0 mb%=2 song_loaded% + openmenu_win(menu_sample%,mx%,my%)  sample_menuopen%=md%    & 0 : handle_sprite(handle%) D string$ N handle%=0 ="" X*string$=$(toolbar_icons%+(handle%*20)) bK string$,",") string$=string$,string$,",")-1):string$=string$,2) l =string$ v  poll_dragfinished  icon% "ș "Wimp_GetPointerInfo",,wbk% Ȏ lastdrag_type%  0  ȗ ȓ 0,0,scx%,scy%  1  ș "DragASprite_Stop" , wbk%!12=play_window% wbk%!16>=0  icon%=wbk%!16 , icon%<>lastdrag_icon% icon%>=0 1 Ȕ toolbar%?lastdrag_icon%,toolbar%?icon%  create_toolbarwindow 1 redraw_icon(play_window%,lastdrag_icon%)  ( redraw_icon(play_window%,icon%)    *! toolbar%?lastdrag_icon%=0 4 create_toolbarwindow >1 redraw_icon(play_window%,lastdrag_icon%) H R 2 \ ș "DragASprite_Stop" f, wbk%!12=play_window% wbk%!16>=0 p icon%=wbk%!16 z' toolbar%?icon%=lastdrag_window%  create_toolbarwindow ( redraw_icon(play_window%,icon%)   3  ș "DragASprite_Stop" & ș"Wimp_GetPointerInfo",,block% @ window%=block%!12:icon%=block%!16:x%=block%!0:y%=block%!4  block%!20=window%  block%!24=icon%  block%!28=x%:block%!32=y% & block%!36=carousel_file_length  block%!0=64  block%!12=0  block%!16=1  block%!40=&130  $(block%+44)="QTMFile" $9 ș"Wimp_SendMessage",17,block%,block%!20,block%!24 . 8lastdrag_type%=-1 B L V create_menus `3 splash% splash_notice("Creating menus...",1) j+ menu_scratch% 350:memory_needed%+=350 t$menu_scratch%=""+0 ~$menu_scratchpos%=menu_scratch%+4 menu_plugins%=plugins_menu menu_play%=parse_menu menu_sample%=parse_menu menu_actions%=parse_menu menu_main%=parse_menu menu_quality%=parse_menu menu_addblank%=parse_menu menu_citem%=parse_menu menu_carousel%=parse_menu   f "ExtremelyLongPluginNamexxxxxxxxxxxxxxxx",3,"Info","plugininfo_window%","Choices...",,"Help","*" 0 "Play",3,"Normal mode",,"Shuffle mode","*"  # "Samples",3,"Play sample","*"  "Actions",25,"Play ^F1",,"Stop ^F2",,"Pause ^F3",,"Back pattern ^F4",,"Forward pattern ^F5",,"Back carousel ^F6",,"Forward carousel ^F7",,"Volume down ^F8",,"Volume up ^F9","" " "Unload song ^F10","*" ( "#TaskName",20,"Info","info_window%","Songs...",,"Control...",,"Carousel...",,"Actions","menu_actions%","Plugins","menu_plugins%","Choices...",,"Quit","*" 2, "Quality",5,"24",,"32",,"48",,"64","*" <" "Carousel",1,"Add blank","*" FP "Item ...",6,"Play item",,"Edit item...",,"Delete item",,"Open parent","*" Pt "Carousel",8,"Play","menu_play%","Delete all",,"Add blank","","Save",savedrag_window%,"Item ..","*menu_citem%" Z d plugins_menu npluginsub_menu%=parse_menu x plugin% F title$,items%,item$,itemlink$,menu%,mf%,longest%,item%,item_buf% & menu% 28+(24*active_plugins%)+28 title$="Plugins" items%=active_plugins% +memory_needed%+=28+(active_plugins%*24) $menu%=title$+0 menu%?12=7 menu%?13=2 menu%?14=7 menu%?15=0 menu%!16=220 menu%!20=44 menu%!24=0 mf%=&7000011 longest%=(title$) m%=menu%+28 " item%=1 , plugin%=1 6 items%=0 @ m%!0=1<<7 J m%!4=0 T m%!8=(mf% (1<<22)) ^( $(m%+12)=msg("PluginNoPlugins")+0 h( longest%=(msg("PluginNoPlugins")) r | $ item$=plugins_info$(plugin%,2) ! itemlink$="pluginsub_menu%" 1 itemlink$<>"" itemlink$=((itemlink$)) 9 item%=items% m%!0=(1<<7) (1<<3) m%!0=(1<<3)  m%!4=(itemlink$)  m%!8=mf% (1<<8) 7 item_buf% (item$)+3:memory_needed%+=(item$)+3  $item_buf%=item$+0  ?(item_buf%+(item$)+2)=0  m%!12=item_buf%  m%!16=item_buf%+(item$)+2  m%!20=(item$)+1  m%+=24 - (item$)>longest% longest%=(item$)  item%+=1  plugin%+=1 & item%-1>=items% 0 :menu%!16=(longest%*16)+14 D =menu% N X poll_menu bmenu_open%= lȎ lastmenu% v menu_main%  Ȏ block%!0  1  handle_action(11,4)  2  handle_action(7,4)  3  handle_action(9,4)  4  Ȏ block%!4 " 0 : handle_action(5,4) " 1 : handle_action(1,4) " 2 : handle_action(3,4) " 3 : handle_action(6,4) " 4 : handle_action(8,4)  " 5 : handle_action(2,4) " 6 : handle_action(4,4)  > 7 : poll_mouse(4,control_window%,control_voldown%) *< 8 : poll_mouse(4,control_window%,control_volup%) 4 9 : clear_song > H 5 R block%!4 <> -1 \ Ȏ block%!8 f* -1 : plugin_run((block%!4)+1) p0 1 : plugin_configure((block%!4)+1) zP 2 : ș "OS_CLI","Filer_Run "+plugins_info$((block%!4)+1,0)+".Help "    6  put_choices % open_window(choices_window%)  7 : quit%=   menu_quality%  Ȏ block%!0 . 0 : set_icon(choices_window%,6,"24") . 1 : set_icon(choices_window%,6,"32") . 2 : set_icon(choices_window%,6,"48") . 3 : set_icon(choices_window%,6,"64")   menu_addblank%  Ȏ block%!0 $% 0 : add_blank_carousel_item . 8 menu_carousel% B Ȏ block%!0 L 0 V Ȏ block%!4 `# -1 : play_carousel(1) j 1 t carousel_shuffle%= ~$ tick_item(menu_play%,0,) $ tick_item(menu_play%,1,)    carousel_shuffle%= $ tick_item(menu_play%,0,) $ tick_item(menu_play%,1,)  8 1 : delete_allcarouselitems:reextent_carousel % 2 : add_blank_carousel_item  4  Ȏ block%!4 # 0 : play_carousel(-md%)  1  carousel_edit%=md%   put_edits & redraw_icon(edit_window%,4) $ open_window(edit_window%) (( 2 : delete_carouselitem(md%) 2( 3 : carousel_openparent(md%) < F P menu_sample% Z Ȏ block%!0 d; 0 : ș "QTMPlayer_Sample",1,sample_menuopen%,25,64 n x #ș "Wimp_GetPointerInfo",,wbk2%  wbk2%!8=1 " lastmenu%<>menu_carousel% % ș "Wimp_CreateMenu",,lastmenu%   carousel_items%>0 = md%<=carousel_items% ș "Wimp_CreateMenu",,lastmenu%       poll_closewindow Ȏ !block% ( toolbox_window% : toolbar_edit%= . control_window% : control_handleopen%= "0 carousel_window%: carousel_window_open%= , 6!ș "Wimp_CloseWindow",,block% @ J T poll_openwindow ^ ș "Wimp_OpenWindow",,block% h# !block%<>carousel_window% r1 (block%!12-block%!4)<>last_carouselwidth% | new_width% " new_width%=block%!12-block%!4 I last_carouselwidth%>new_width% Ȕ new_width%,last_carouselwidth%  last_carouselwidth%-=12  new_width%+=4 [ ș "Wimp_ForceRedraw",carousel_window%,last_carouselwidth%-2,-1<<29,new_width%+2,1<<29 + last_carouselwidth%=block%!12-block%!4  !block%=carousel_window%  poll_redraw      find_icons find_toolbox find_choices find_control &find_edit 0 : D find_toolbox N pos% XBș "Wimp_WhichIcon",toolbox_window%,wbk%,3 (1<<8),3 (1<<8) b pos%=wbk% lȕ !pos%<>-1 vLwbk%!128=toolbox_window%:wbk%!132=!pos%:ș "Wimp_GetIconState",,wbk%+128 valid$=ct(wbk%!(128+28+4)) Ȏ 2 - valid$,"pbak") : toolbox_pbak%=!pos% - valid$,"stop") : toolbox_stop%=!pos% - valid$,"paws") : toolbox_paws%=!pos% - valid$,"play") : toolbox_play%=!pos% - valid$,"pfwd") : toolbox_pfwd%=!pos% - valid$,"ctrl") : toolbox_ctrl%=!pos% - valid$,"edit") : toolbox_edit%=!pos% - valid$,"tdir") : toolbox_tdir%=!pos% - valid$,"sbak") : toolbox_sbak%=!pos% - valid$,"sfwd") : toolbox_sfwd%=!pos% - valid$,"back") : toolbox_back%=!pos% !- valid$,"drag") : toolbox_drag%=!pos% !  ! pos%+=4 !  !* !4 !> find_choices !Hchoices_tss%=9 !Rchoices_savecpos%=18 !\choices_playdefault%=41 !fchoices_small%=27 !pchoices_grab%=28 !zchoices_iconbarlock%=34 !choices_freefloat%=36 !choices_keepfront%=35 !choices_editlayout%=37 !choices_save%=38 !choices_cancel%=39 !choices_ok%=40 ! ! ! find_control ! pos% !control_playing%=1 !control_length%=3 !control_memory%=5 "control_cpos%=7 "control_lpos%=9 "control_ccpos%=11 "$control_lcpos%=13 ".control_volbar%=16 "8control_volume%=17 "Bcontrol_samples%=28 "LBș "Wimp_WhichIcon",control_window%,wbk%,3 (1<<8),3 (1<<8) "V pos%=wbk% "`ȕ !pos%<>-1 "jLwbk%!128=control_window%:wbk%!132=!pos%:ș "Wimp_GetIconState",,wbk%+128 "tvalid$=ct(wbk%!(128+28+4)) "~ Ȏ 2 ", valid$,"stop") : control_stop%=!pos% ", valid$,"paws") : control_paws%=!pos% ", valid$,"play") : control_play%=!pos% ", valid$,"sbak") : control_sbak%=!pos% ", valid$,"pbak") : control_pbak%=!pos% ", valid$,"pfwd") : control_pfwd%=!pos% ", valid$,"sfwd") : control_sfwd%=!pos% " " pos%+=4 " "control_volup%=18 "control_voldown%=19 #control_volsur%=15 # 0set_icon(control_window%,control_cpos%,"0") #0set_icon(control_window%,control_lpos%,"0") #1set_icon(control_window%,control_ccpos%,"-") #(1set_icon(control_window%,control_lcpos%,"0") #24set_icon(control_window%,control_volume%,"100") #<1set_icon(control_window%,control_volbar%,"") #F #P #Z find_edit #d #n #x ticker_action # lasttime% # #S debugmode% last_end%<> debug_message("END = "+(-&8000)):last_end%= # #\ debugmode% verbose lastdrag_type%<>-1 debug_message("Drag:"+(lastdrag_type%)) # # lastdrag_type%=0 ## ș "Wimp_GetPointerInfo",,wbk% # wbk%!8<>0 -2 # wbk%!4<(scy%/2) #+ ȗ ȓ 0,reclevelb%-(1<0 -2 ȗ ȓ 0,0,scx%,scy%:toolbox_constrain%=0 $F wbk%!8=0 lastdrag_type%=-1:ȗ ȓ 0,0,scx%,scy%:toolbar_locky $ $ $ track_grab% $# ș "Wimp_GetPointerInfo",,wbk% $, wbk%!8=4 wbk%!12<>choices_window% $ wbk%!0=wbk%!12 $$ ș "Wimp_GetWindowState",,wbk% $ choices_trx%=wbk%!4 $ choices_try%=wbk%!8 %! choices_trw%=wbk%!12-wbk%!4 %! choices_trh%=wbk%!16-wbk%!8 %; set_iconstate(choices_window%,choices_grab%,1<<22,0) %& track_grab%= %0 %: %D %N* fadeout_pending%=0 update_fadeout %X)ș "OS_ReadMonotonicTime" lasttime% %b6 lasttime%-ticker_time%0 %: !block%=play_window%:ș "Wimp_GetWindowState",,block% %O block%!28<>-1 menu_open% block%!28=-1:ș "Wimp_OpenWindow",,block% % % % song_loaded% curpos<>last_position% control_handleopen% set_icon(control_window%,control_cpos%,(curpos)):last_position%=curpos % % song_loaded% endpos<>(get_icon(control_window%,control_lpos%)) set_icon(control_window%,control_lpos%,(endpos)) % %+ carousel_wrap% fadeout_pending%<0 % endpos>1 %# curpos &H &R &\* ș "QTMPlayer_Position",-1 ,event% &f$ event%carousel_lastpos% carousel_lastpos%=curpos '$+ carousel_items%=0 carousel_wrap%= '. '8 'B 'L 'V set_choices '`)ș "QTMPlayer_Quality",sound_quality% 'j tss% 't# ș "QTMPlayer_SoundSystem",0,1 '~ '# ș "QTMPlayer_SoundSystem",0,0 ' 'toolbar_setxy ') toolbox_constrain% toolbar_locky ' ' ' minutes(seconds%) ' min$,sec$ 'min$=(seconds% 60) 'sec$=(seconds% 60) ' (sec$)=1 sec$="0"+sec$ '=min$+"'"+sec$+"""" ( ( 7 poll_message_dataload(window%,icon%,type%,file$) ( perror% ( type%=&DDC ((2 ș "XOS_GBPB",9,file$,wbk%,1,0,255 ;perror% (2$ (perror% 1)=0 type%=&1000 (< (FȎ window% (P choices_window% (Z Ȏ icon% (d 15,16,17 (na type%=&FFF type%=&130 set_icon(choices_window%,16,file$):poll_message_dataloadack (x 24,25,26 (U type%=&1000 set_icon(choices_window%,25,file$):poll_message_dataloadack ( ( edit_window% ( Ȏ icon% ( 0,1,2 (\ loadable(file$,type%) set_icon(edit_window%,1,file$):poll_message_dataloadack ( ( play_window% (N loadable(file$,type%) play_single(file$):poll_message_dataloadack (S type%=&FFF type%=&130 poll_message_dataloadack:load_carousel(file$,) ( carousel_window% ( loadable(file$,type%) (+ check_memory(carousel_items%+1) )! poll_message_dataloadack ) carousel_items%+=1 )D set_icon(control_window%,control_lcpos%,(carousel_items%)) )" resize_carousel_heap ),1 set_carousel_name(carousel_items%,file$) )60 set_carousel_fadeout(carousel_items%,1) )@0 set_carousel_repeats(carousel_items%,1) )J1 set_carousel_volume(carousel_items%,100) )T= set_carousel_num(carousel_items%,(carousel_items%)) )^P ș "Wimp_ForceRedraw",carousel_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) )h reextent_carousel )r4 open_window_current_layer(carousel_window%) )| ) notify("#OutOfMemory") ) ) )R type%=&FFF type%=&130 poll_message_dataloadack:load_carousel(file$,) )P type%=&1000 poll_message_dataloadack:add_directory_to_carousel(file$) ) ) pluginchoices_window% ) wbk%!0=window% ) wbk%!4=icon% )" ș "Wimp_GetIconState",,wbk% ); (wbk%!24 &f000)=&e000 (wbk%!24 &f000)=&f000 ) (wbk%!24 1<<8)=1<<8 )0 wbk%!36>15 $(wbk%!28)=file$,wbk%!36) * wbk%!8=0 * wbk%!12=0 *# ș "Wimp_SetIconState",,wbk% *& *0 *:  *DN loadable(file$,type%) play_single(file$):poll_message_dataloadack *N *X *b *l poll_message_dataloadack *vblock%!12=block%!8 *block%!16=4 *,ș "Wimp_SendMessage",19,block%,block%!4 * * * * loadable(file$,type%) * layer% *+ș "QTMPlayer_Recognise",file$ layer% * layer%=-1 = *= * * exist_file(path$) * worked% +$ș "XOS_File",5,path$ ;worked% +  worked% 1 = = + +  scanset(type%) +*G debugmode% verbose debug_message("scanset: button "+(type%)) +4scanset_state%=type% +> pos% +H toolbar_edit%= +R2 pos%=0 (toolbar_width%*toolbar_height%)-1 +\I toolbar%?pos%=type% set_iconstate(play_window%,pos%,1<<21,1<<21) +f toolbar%?pos%<>type% (toolbar%?pos%=1 toolbar%?pos%=3 toolbar%?pos%=5) set_iconstate(play_window%,pos%,1<<21,0) +p pos% +z + type%=1 +> set_iconstate(control_window%,control_stop%,1<<21,1<<21) +: set_iconstate(control_window%,control_play%,1<<21,0) +: set_iconstate(control_window%,control_paws%,1<<21,0) + + type%=3 +: set_iconstate(control_window%,control_stop%,1<<21,0) +: set_iconstate(control_window%,control_play%,1<<21,0) +> set_iconstate(control_window%,control_paws%,1<<21,1<<21) + + type%=5 +: set_iconstate(control_window%,control_stop%,1<<21,0) +> set_iconstate(control_window%,control_play%,1<<21,1<<21) ,: set_iconstate(control_window%,control_paws%,1<<21,0) , , ,$ ,. setup_volumebars ,8; splash% splash_notice("Setting up volume bars...",1) ,BWcontrol_vbar%=create_volumebar(control_window%,control_volbar%,64,control_volume%) ,L6edit_vbar%=create_volumebar(edit_window%,5,100,6) ,V ,` ,j save_drag_initiate ,tlastdrag%=1 ,~block%!0=savedrag_window% ,$ș "Wimp_GetWindowState",,block% ,bounding_box%!0=block%!4 ,bounding_box%!4=block%!16 ,bounding_box%!8=block%!4 ,bounding_box%!12=block%!16 ,bounding_box%!0-=block%!20 ,bounding_box%!4-=block%!24 ,bounding_box%!8-=block%!20 ,bounding_box%!12-=block%!24 ,(block%!0=savedrag_window%:block%!4=2 ,"ș "Wimp_GetIconState",,block% ,bounding_box%!0+=block%!8 -bounding_box%!4+=block%!12 - bounding_box%!8+=block%!16 -bounding_box%!12+=block%!20 -?ș "DragASprite_Start",%01000001,1,"file_130",bounding_box% -(lastdrag_type%=3 -2 -< -F read_file -P s$,g% -Z s$="" -d -ng%=#file% -x g%>31 s$+=(g%) - g%<32 #file% -=s$ - - poll_finalsave -.csave_pathname$=string_address(block%+44) -% csave_pathname$,7)="QTMFile" -< csave_pathname$=csave_pathname$,(csave_pathname$)-8) -& repos_xfer(block%!28,block%!32) - -% save_carousel(csave_pathname$) - - - . repos_xfer(x%,y%) .block%!0=savename_window% .$ș "Wimp_GetWindowState",,block% ."w%=block%!12-block%!4 .,h%=block%!16-block%!8 .6 lw%=w%/2 .@rw%=w%-lw% .J lh%=h%/2 .Trh%=h%-lh% .^block%!4=x%-lw% .hblock%!8=y%-lh% .rblock%!12=x%+rw% .|block%!16=y%+rh% . ș "Wimp_OpenWindow",,block% .Yș "Wimp_SetCaretPosition",savename_window%,2,0,0,-1,(get_icon(savename_window%,2)) .ș "Wimp_CreateMenu",,-1 . . . poll_keypress .< (block%!24>=&1B1 block%!24<=&1B9) block%!24=&1FA .' SYS "Wimp_ProcessKey",block%!24 . Ȏ block%!24 .# &1B1 : handle_action(5,4) .# &1B2 : handle_action(1,4) .# &1B3 : handle_action(3,4) .# &1B4 : handle_action(6,4) /# &1B5 : handle_action(8,4) /# &1B6 : handle_action(2,4) /# &1B7 : handle_action(4,4) /&? &1B8 : poll_mouse(4,control_window%,control_voldown%) /0= &1B9 : poll_mouse(4,control_window%,control_volup%) /: &1FA : clear_song /D /N /XȎ block%!0 /b savename_window% /lY block%!24=&D poll_mouse(4,savename_window%,4) ș "Wimp_ProcessKey",block%!24 /v control_window% / block%!24=&D / return_volume /B return_volume=(get_icon(control_window%,control_volume%)) /M return_volume>100 set_icon(control_window%,control_volume%,"100") /I return_volume<0 set_icon(control_window%,control_volume%,"0") /) return_volume=(return_volume*.65) /* limit_variable(return_volume,0,64) /# set_volume(return_volume,2) / /% ș "Wimp_ProcessKey",block%!24 / / edit_window% /s block%!24=&D poll_mouse(1,edit_window%,17):redraw_icon(edit_window%,4) ș "Wimp_ProcessKey",block%!24 0'  : ș "Wimp_ProcessKey",block%!24 0  0 0  0* 04 acknowledge_help 0> help_window% 0H3$(block%+20)=help_message(block%!32,block%!36) 0Rblock%!0=256 0\help_window%=block%!4 0fblock%!4=task_window% 0pȔ block%!8,block%!12 0zblock%!16=&503 00ș "Wimp_SendMessage",17,block%,help_window% 0 0 0" help_message(window%,icon%) 0N help_messagesopen% open_helpmessages:="Loading interactive help..." 0( add%,basetoken$,finaltoken$,token$ 0 add%= 0Ȏ window% 08 -1 : add%= : token$="WSrc" 02 pluginchoices_window% : token$="Mc":add%= 04 plugininfo_window% : token$="Mi":add%= 04 info_window% : token$="In":add%= 0- savedrag_window% : token$="Sd" 1- control_window% : token$="Cn" 1 add%= 1 Ȏ icon% 1$( control_pbak% : token$+="Pbak" 1.( control_stop% : token$+="Stop" 18( control_paws% : token$+="Paws" 1B( control_play% : token$+="Play" 1L( control_pfwd% : token$+="Pfwd" 1V( control_sbak% : token$+="Sbak" 1`( control_sfwd% : token$+="Sfwd" 1j  : add%= 1t 1~+ samples_window% : token$="Sm" 1+ play_window% : token$="Pl" 1 add%= 1- icon%>=0 token$+=(toolbar%?icon%) 1 choices_window% 1 token$="Ch" 1 add%= 1 Ȏ icon% 1. choices_tss% : token$+="TSS" 13 choices_savecpos% : token$+="SaveCpos" 10 choices_small% : token$+="Small" 1/ choices_grab% : token$+="Grab" 10 choices_iconbarlock% : token$+="IconB" 20 choices_freefloat% : token$+="FreeF" 2 0 choices_keepfront% : token$+="KeepF" 2/ choices_editlayout% : token$+="Edit" 2/ choices_save% : token$+="Save" 2(1 choices_cancel% : token$+="Cancel" 22- choices_ok% : token$+="OK" 2-1 basetoken$=token$ 36 add%!4=-1 add%>wbk3% basetoken$+="menu" 3 add%+=4 3 !add%=-1 3# token$=token$,(token$)-1) 31 helpmsg(token$)="" token$=basetoken$ 3 add%= 3 3 icon%=-1 add%= 3% add%= token$=token$+(icon%) 4 finaltoken$=helpmsg(token$) 4h finaltoken$,1)="<" finaltoken$,1)=">" finaltoken$=helpmsg(finaltoken$,2,(finaltoken$)-2)) 4R finaltoken$="" add% finaltoken$=helpmsg(token$,(token$)-((icon%)))) 4&=finaltoken$ 40 4: poll_ramfetch 4D free%,old%,oldend% 4N( block%!24>=carousel_file_length 4X' ș "Wimp_SlotSize",-1,-1 ,,free% 4b$ free%0 5 code_pars%!0=play_window% 5  code_winback% 5* 54 5> 5H window_back(window%) 5Rwbk2%!32=window% 5\&ș "Wimp_GetWindowState",,wbk2%+32 5f& (wbk%!64 (1<<11))=(1<<11) = 5p= 5z 5% handle_action(handle%,button%) 5a debugmode% debug_message("Executing action for handle "+(handle%)+", button "+(button%)) 5Ȏ handle% 5 1 5+ song_loaded% ș "QTMPlayer_Stop" 5< scanset(1):carousel_lastpos%=0:carousel_lastevent%=0 56 2 : fadeout_pending%=-2 carousel_lastsong 5 3 5, song_loaded% ș "QTMPlayer_Pause" 5 scanset(3) 56 4 : fadeout_pending%=-2 carousel_nextsong 5 5 5 button%=4 6; song_loaded% ș "QTMPlayer_Restart":scanset(5) 6. song_loaded% carousel_items%>0 6D carousel_unaltered% carousel_playstartsfrom_song%<>-1 6$. _module_volume%,_event%,_position% 6.9 _module_volume%=module_volume%:module_volume%=0 680 _event%=carousel_playstartsfrom_event% 6B6 _position%=carousel_playstartsfrom_position% 6L7 play_carousel(carousel_playstartsfrom_song%) 6V song_loaded%= 6`5 ș "QTMPlayer_Position",_position%,_event% 6j 6t( set_volume(_module_volume%,1) 6~ 6 play_carousel(1) 6 6 6G song_loaded% carousel_items%=0 scanset(scanset_state%) 6 6 button%=1 60 carousel_shuffle%=carousel_shuffle% -1 6Z (carousel_playing%=0 (scanset_state%=1)) carousel_items%>0 play_carousel(1) 6 carousel_shuffle% 6# tick_item(menu_play%,0,) 6# tick_item(menu_play%,1,) 6 7# tick_item(menu_play%,0,) 7 # tick_item(menu_play%,1,) 7 7 scanset(scanset_state%) 7( 72) 6 : fadeout_pending%=-2 pbak 7< 7 7F: open_window(control_window%):control_handleopen%= 7PI song_loaded% set_icon(control_window%,control_cpos%,(curpos)) 7Z) 8 : fadeout_pending%=-2 pfwd 7d= 9 : reextent_carousel:open_window(carousel_window%) 7n 10 7x toolbox_lock%=1 7 !block%=play_window% 7( ș "Wimp_GetWindowState",,block% 73 block%!28<>-1 ș "Wimp_ProcessKey",&1DC 7 7A block%!24=play_window%:ș "Wimp_GetWindowState",,block%+24 7= mb%=4 block%!52=-1:ș "Wimp_OpenWindow",,block%+24 7W block%!20=play_window%:block%!24=1:ș "Wimp_DragBox",,block%+20:lastdrag_type%=0 7> !block%=play_window%:ș "Wimp_GetWindowOutline",,block% 7 myd%=my%-block%!8 7O reclevelb%=iconbar_top%+myd%:reclevelt%=scy%-((block%!16-block%!8)-myd%) 7 mxd%=mx%-block%!4 7B reclevell%=mxd%:reclevelr%=scx%-((block%!12-block%!4)-mxd%) 7 11 8 track_directory$<>"" 8F ș "XOS_CLI","Cat "+track_directory$+" { > null: }" ;worked% 8Y (worked% 1) notify(msg("InvalidTrackDirectory")+" "+track_directory$):: 8"U track_height%<=0 notify(msg("InvalidTrackHeight")+" "+(track_height%)) 8,R track_width%<=0 notify(msg("InvalidTrackWidth")+" "+(track_width%)) 86 tail$=track_directory$+" -X0 "+(track_x%)+" -Y1 "+(track_y%+track_height%)+" -Width "+(track_width%)+" -Height "+(track_height%) 8@. track_small% tail$+=" -SmallIcons" 8J! ("Filer_OpenDir "+tail$) 8T 8^ 12 8hA block%!24=play_window%:ș "Wimp_GetWindowState",,block%+24 8r3 block%!52=-2:ș "Wimp_OpenWindow",,block%+24 8| 8 8 8 check_tailstring 8 command$,file% 8ș "OS_GetEnv" command$ 8file%=command$,"QTMfile:") 8 file%>0 8 file$=command$,file%+8) 80 file$," ") file$=file$,file$," ")-1) 8 play_single(file$) 8 8 8 9 check_memory(items%) 9 free%,dynamite_blocksize% 9&ș "Wimp_SlotSize",-1,-1 ,,free% 9&Dș "Dynamite_BlockInfo",dynamite_anchor% ,,dynamite_blocksize% 90free%+=dynamite_blocksize% 9: items%=0 = 9D, (free%/items%)>carousel_slotsize% = 9N= 9X 9b' increase_slotend(increase_slot%) 9l end% 9v9ș "Wimp_SlotSize",slotsize%+increase_slot%,-1 end% 9slotsize%+=increase_slot% 9 debugmode% verbose debug_message("Increased slot from "+(slotsize%-increase_slot%)+" to "+(slotsize%)+" ["+(end%)+"]") 9 9 9( increase_basicend(increase_slot%) 9himem%+=increase_slot% 9=himem%+4 9 =himem% 9 9 9 compile_stubs 9 length%,header% 95ș "OS_File",5,".Code" ,,,,length% : extra_code% length%+256 : 5ș "OS_File",255,".Code",extra_code% :(reference%=extra_code%+extra_code%!4 : %header%=extra_code%+extra_code%!8 :*!reference%=wbk2% :4code_pars%=wbk2% :>'code_winback%=extra_code%+header%!0 :H(code_dynakill%=extra_code%+header%!4 :R(code_zeroterm%=extra_code%+header%!8 :\,code_copyforward%=extra_code%+header%!12 :f-code_copybackward%=extra_code%+header%!16 :p/code_redrawcarousel%=extra_code%+header%!20 :z,code_seticontext%=extra_code%+header%!24 : : : setup_redrawcarousel :.carousel_items_length=code_redrawcarousel% :(code_redrawcarousel%!8=sample_valid% : yeig=code_redrawcarousel%+20 :"code_redrawcarousel%!24=block% :*carousel_items=code_redrawcarousel%+28 :.code_redrawcarousel%!32=carousel_slotsize% :,code_redrawcarousel%!36=dynamite_anchor% : code_redrawcarousel%!44=wbk% :3redraw_carousel_window%=code_redrawcarousel%+48 : ; ; unload_song ; more% ;$3set_icon(control_window%,control_playing%,"-") ;.1set_icon(control_window%,control_length%,"") ;84set_icon(control_window%,control_memory%,"0Kb") ;B0set_icon(control_window%,control_cpos%,"0") ;L0set_icon(control_window%,control_lpos%,"0") ;V1set_icon(control_window%,control_ccpos%,"-") ;`scanset(1) ;jcarousel_playing%=0 ;tcarousel_wrap%=0 ;~Cș "Wimp_ForceRedraw",samples_window%,-1<<29,-1<<29,1<<29,1<<29 ;Cș "Wimp_ForceRedraw",control_window%,-1<<29,-1<<29,1<<29,1<<29 ;song_loaded%= ; ; ; load_libraries ;6 splash% splash_notice("Loading libraries...",0) ; ; ; initialise_kernel ; file%,state% ; space% 256 ;@ block% 2048:wbk%=block%+512:wbk2%=wbk%+512:wbk3%=wbk2%+512 <compile_stubs <  sbuf% 512 <Jș "XOS_ReadVarVal","QTMPlay$Choices",space%,256,0 ,,length%;worked% < (worked% 1)=0 <( space%?length%=13 <2 resources_choices$=$space% << .Plugins.Splash.Splash" state% .Plugins.Splash.SaveChoice") < file%<>0 .Plugins.Splash.Splash" =h" splash_setup(log$,verbose%) =r =| =3string_internalerrorcode$="internal error code" =5string_okcancel$="OK to continue, Cancel to quit" = = = toolbar_locky = h%,w% =!wbk%=play_window% ="ș "Wimp_GetWindowState",,wbk% =h%=wbk%!16-wbk%!8 =w%=wbk%!12-wbk%!4 =" (toolbox_constrain% 3)=2 = top =6 wbk%!8=scy%-h%-(1< >" (toolbox_constrain% 3)=1 > bottom >&* wbk%!8=iconbar_top%:wbk%!16=wbk%!8+h% >0 >:# (toolbox_constrain% 12)=4 >D left >N( wbk%!4=(1<X >b# (toolbox_constrain% 12)=8 >l right >v6 wbk%!4=scx%-w%-(1< >ș "Wimp_OpenWindow",,wbk% > > > > Carousel library > > Chris Rutter, 1995 > > initialise_carousel_base >A splash% splash_notice("Initialising carousel memory...",1) >9ș "XDynamite_ClaimAnchor" dynamite_anchor%;worked% > (worked% 1)=1 notify(msg("DynamiteClaimError")+" ["+ct(dynamite_anchor%+4)+"]"): 1,"Shutting down QTMPlay due to Dynamite error" >Pș "XDynamite_Alloc",dynamite_anchor%,4 swierror%,,dynamite_block%;worked% > (worked% 1)=1 notify(msg("DynamiteInitialiseError")+" ["+ct(swierror%+4)+"]"): 1,"Shutting down QTMPlay due to Dynamite error" ?dynamite_initialised%= ?  ? ?  shutdown_carousel_base ?* worked%,length% ?4 dynamite_initialised% ?>= ș "XDynamite_Free",dynamite_anchor% swierror%;worked% ?HY (worked% 1)=1 notify(msg("DynamiteShutdownError")+" ["+ct(swierror%+4)+"]") ?RF ș "XDynamite_ReleaseAnchor",dynamite_anchor% swierror%;worked% ?\X (worked% 1)=1 notify(msg("DynamiteReleaseError")+" ["+ct(swierror%+4)+"]") ?f CALL code_dynakill% ?p dynamite_initialised%= ?z ? ? ? resize_carousel_heap ?eș "XDynamite_Resize",dynamite_anchor%,(carousel_items%+1)*carousel_slotsize% swierror%;worked% ? (worked% 1)=1 ?C notify(msg("DynamiteResizeError")+" ["+ct(swierror%+4)+"]") ?R ș "XDynamite_BlockInfo",dynamite_anchor% swierror%,,dynamite_size%;worked% ?7 (worked% 1)=1 1,msg("#DynamiteInfoError") ?8 carousel_items%=(dynamite_size%/carousel_slotsize%) ? ? ? ?! delete_carouselitem(item%) @ pos% @ item% carousel_items% play_carousel(-1) @ @ item%318 AP wbk%!0=0 AZ& wbk%!4=-(16+(carousel_items%*48)) Ad wbk%!8=618000 An wbk%!12=0 Ax. ș "Wimp_SetExtent",carousel_window%,wbk% A A wbk%!0=0 A wbk%!4=-318 A wbk%!8=618000 A wbk%!12=0 A. ș "Wimp_SetExtent",carousel_window%,wbk% A Awbk%!0=carousel_window% A"ș "Wimp_GetWindowState",,wbk% A8 carousel_window_open% ș "Wimp_OpenWindow",,wbk% A A A carousel_aname(item%) B= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 B3=(!dynamite_anchor%)+(item%*carousel_slotsize%) B B" carousel_name(item%) B,> item%>carousel_items% notify("#IllegalCarouselAsk"):="" B66=$((!dynamite_anchor%)+(item%*carousel_slotsize%)) B@ BJ carousel_anum(item%) BT= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 B^7=(!dynamite_anchor%)+(item%*carousel_slotsize%)+259 Bh Br carousel_qnum(item%) B|7=(!dynamite_anchor%)+(item%*carousel_slotsize%)+259 B B carousel_repeats(item%) B= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 B:=?((!dynamite_anchor%)+(item%*carousel_slotsize%)+256) B B carousel_fadeout(item%) B= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 B:=?((!dynamite_anchor%)+(item%*carousel_slotsize%)+257) B B carousel_volume(item%) B= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 B:=?((!dynamite_anchor%)+(item%*carousel_slotsize%)+258) B C carousel_leafname(item%) C= item%>carousel_items% notify("#IllegalCarouselAsk"):=0 C<=ct((!dynamite_anchor%)+(item%*carousel_slotsize%)+267) C& C0% set_carousel_name(item%,name$) C:< item%>carousel_items% notify("#IllegalCarouselSet"): CD;$((!dynamite_anchor%)+(item%*carousel_slotsize%))=name$ CNQ$((!dynamite_anchor%)+(item%*carousel_slotsize%)+267)=string_leafname(name$) CX Cb Cl+ set_carousel_repeats(item%,repeats%) Cv< item%>carousel_items% notify("#IllegalCarouselSet"): CB?((!dynamite_anchor%)+(item%*carousel_slotsize%)+256)=repeats% C C C+ set_carousel_fadeout(item%,fadeout%) C< item%>carousel_items% notify("#IllegalCarouselSet"): CB?((!dynamite_anchor%)+(item%*carousel_slotsize%)+257)=fadeout% C C C& set_carousel_volume(item%,vol%) C< item%>carousel_items% notify("#IllegalCarouselSet"): C>?((!dynamite_anchor%)+(item%*carousel_slotsize%)+258)=vol% C C D# set_carousel_num(item%,num$) D < item%>carousel_items% notify("#IllegalCarouselSet"): D>$((!dynamite_anchor%)+(item%*carousel_slotsize%)+259)=num$ D  D* D4) set_carousel_leafname(item%,name$) D>< item%>carousel_items% notify("#IllegalCarouselSet"): DH?$((!dynamite_anchor%)+(item%*carousel_slotsize%)+267)=name$ DR D\ Df play_carousel(item%) DpB debugmode% debug_message("Playing carousel item "+(item%)) Dz modcheck%,action% D$carousel_playstartsfrom_song%=-1 D(carousel_playstartsfrom_position%=-1 D%carousel_playstartsfrom_event%=-1 D item%>0 D action%= D active_plugins%>0 D$ modcheck%=1 active_plugins% Da (plugins_flags%(modcheck%,1) 1)=1 action%=plugin_call(modcheck%,"carousel",",item%") D D D carousel_shuffle% D item%=(carousel_items%) D. limit_variable(item%,1,carousel_items%) E E E action%= E$ item%=-item% E. E8 action%= EB( item%>carousel_items% item%<0 EL notify("#OutOfRange") EV E`P debugmode% debug_message("[play_carousel] play="+carousel_name(item%)) Ej song_loaded%= Et carousel_wrap%= E~ carousel_playing%=0 E song_loaded%=-2 E' play_song(carousel_name(item%)) E song_loaded%=-1 EG ș "Wimp_ForceRedraw",carousel_window%,-1<<29,-1<<29,1<<29,1<<29 E carousel_wrap%= E carousel_repeated%=0 E carousel_playing%=item% E carousel_lastpos%=0 E carousel_lastevent%=0 E$ set_volume(module_volume%,0) E ș "QTMPlayer_Restart" E F bah. bloody matrixtrk F : set_icon(control_window%,control_cpos%,(curpos)) F: set_icon(control_window%,control_lpos%,(endpos)) F F(9 set_icon(control_window%,control_ccpos%,(item%)) F2D carousel_unaltered% save_carousel_position(last_carousel$) F< FFp ș "Wimp_ReportError"," "+msg("Carousel.SongLoadingError")+" ("+carousel_name(item%)+")",3 ,state% FP state%=1 FZ carousel_wrap%= Fd carousel_playing%=item% Fn carousel_nextsong Fx F% song_loaded%=-2 clear_song F F F F F F carousel_nextsong F carousel_wrap% Fb carousel_playing%=carousel_items% play_carousel(1) play_carousel(carousel_playing%+1) F F F F carousel_lastsong G carousel_wrap% Gc carousel_playing%<=1 play_carousel(carousel_items%) play_carousel(carousel_playing%-1) G G" G, G6 save_carousel(file$) G@" file%,item%,event%,position% GJfile%=(file$) GT* file%=0 notify("#NotWriteCarousel") G^#file%,"QTMP"; Gh#file%,202 Gr/ carousel_shuffle% #file%,1 #file%,0 G| song_loaded% G2 ș "QTMPlayer_Position",-1 position%,event% G G position%=0 G event%=0 G G#file%,position% G#file%,event% G%#file%,(carousel_playing% 255) G$#file%,(carousel_playing% >> 8) G##file%,(carousel_items% 255) G"#file%,(carousel_items% >> 8) G item%=1 carousel_items% G" #file%,carousel_name(item%) H% #file%,carousel_repeats(item%) H% #file%,carousel_fadeout(item%) H$ #file%,carousel_volume(item%) H& item% H0 #file% H:#("SetType "+file$+" Carousel") HDlast_carousel$=file$ HNcarousel_version%=202 HX.set_iconstate(savedrag_window%,0,1<<22,0) Hbcarousel_unaltered%= Hl Hv H" save_carousel_mem(address%) H item%,position%,event% H$address%="QTMP" Haddress%?4=201 H address%?5=carousel_playing% H1ș "QTMPlayer_Position",-1 position%,event% Haddress%?6=position% Haddress%?7=event% Haddress%?8=carousel_items% Haddress%+=9 H item%=1 carousel_items% H$ $address%=carousel_name(item%) H) address%+=(carousel_name(item%))+1 I3 ?address%=carousel_repeats(item%):address%+=1 I 3 ?address%=carousel_fadeout(item%):address%+=1 I2 ?address%=carousel_volume(item%):address%+=1 I item% I* I4 I>! load_carousel(file$,play%) IHH file%,item%,fversion%,header$,c%,last%,old_items%,position%,event% IRm carousel_unaltered% last_carousel$<>"IllegalLoadingProcedure" save_carousel_position(last_carousel$) I\$carousel_playstartsfrom_song%=-1 If(carousel_playstartsfrom_position%=-1 Ip%carousel_playstartsfrom_event%=-1 Izfile%=(file$) I file%=0 I7 #file%<5 notify(msg("NotQTMFile")):#file%: I7header$=(#file%)+(#file%)+(#file%)+(#file%) I= header$<>"QTMP" notify(msg("NotQTMFile")):#file%: Ifversion%=#file% I1 fversion%>202 notify(msg("LaterVersion")) I fversion%=202 I carousel_version%=fversion% I old_items%=carousel_items% I carousel_shuffle%=#file% I carousel_shuffle% I carousel_shuffle%= I tick_item(menu_play%,1,) J tick_item(menu_play%,0,) J J tick_item(menu_play%,0,) J$ tick_item(menu_play%,1,) J. J8% position%=#file%:event%=#file% JB carousel_playing%=#file% JL9 carousel_playing%=carousel_playing% (#file% << 8) JV carousel_items%=#file% J`5 carousel_items%=carousel_items% (#file% << 8) Jj' check_memory(carousel_items%) Jt1 carousel_playing%=0 carousel_playing%=1 J~M carousel_playing%>carousel_items% carousel_playing%=carousel_items% J resize_carousel_heap J! item%=1 carousel_items% J6 #file% set_carousel_name(item%,#file%) J9 #file% set_carousel_repeats(item%,#file%) J9 #file% set_carousel_fadeout(item%,#file%) J8 #file% set_carousel_volume(item%,#file%) J( set_carousel_num(item%,(item%)) J\ #file% item%0 Kd action%= Kn active_plugins%>0 Kx( modcheck%=1 active_plugins% Ke (plugins_flags%(modcheck%,1) 1)=1 action%=plugin_call(modcheck%,"carousel",",item%") K K K carousel_shuffle% K! item%=(carousel_items%) K1 limit_variable(item%,1,carousel_items%) K K K action%= K item%=-item% K K action%= K+ item%>carousel_items% item%<0 L notify("#OutOfRange") L LS debugmode% debug_message("[play_carousel] play="+carousel_name(item%)) L" song_loaded%= L, carousel_wrap%= L6 carousel_playing%=0 L@ song_loaded%=-2 LJ* play_song(carousel_name(item%)) LT song_loaded%=-1 L^ carousel_wrap%= Lh carousel_repeated%=0 Lr! carousel_playing%=item% L| carousel_lastpos%=0 L carousel_lastevent%=0 L' set_volume(module_volume%,0) L2 ș "QTMPlayer_Position",position%,event% L ș "QTMPlayer_Restart" L< set_icon(control_window%,control_ccpos%,(item%)) L L ș "Wimp_ReportError"," "+msg("Carousel.SongLoadingError")+" ("+carousel_name(carousel_playing%)+")",3 ,state% L state%=1 L carousel_wrap%= L" carousel_playing%=item% L carousel_nextsong L L( song_loaded%=-2 clear_song M M M M& M0 M: carousel_items%=old_items% MD #file% MN carousel_unaltered%= MX. last_carousel$="IllegalLoadingProcedure" Mb" notify("#OutOfMemCarousel") Ml Mv M% fversion%=200 fversion%=201 M carousel_version%=fversion% M old_items%=carousel_items% M carousel_playing%=#file% M7 fversion%=201 position%=#file%:event%=#file% M carousel_items%=#file% M' check_memory(carousel_items%) M1 carousel_playing%=0 carousel_playing%=1 MM carousel_playing%>carousel_items% carousel_playing%=carousel_items% M resize_carousel_heap M! item%=1 carousel_items% M6 #file% set_carousel_name(item%,#file%) M9 #file% set_carousel_repeats(item%,#file%) N9 #file% set_carousel_fadeout(item%,#file%) N 8 #file% set_carousel_volume(item%,#file%) N( set_carousel_num(item%,(item%)) N \ #file% item% last_carousel$=file$ NH load_carousel_setup NR play%= N\ Nf3 : :set_volume(_module_volume%,1): NpH fversion%=201 _module_volume%=module_volume%:module_volume%=0 Nz( play_carousel(carousel_playing%) N fversion%=201 N song_loaded%= N1 ș "QTMPlayer_Position",position%,event% N' set_volume(_module_volume%,1) N N' set_volume(_module_volume%,1) N N N N N N carousel_items%=old_items% N #file% O carousel_unaltered%= O. last_carousel$="IllegalLoadingProcedure" O" notify("#OutOfMemCarousel") O$ O. O8 OB OL load_carousel_setup OV@set_icon(control_window%,control_lcpos%,(carousel_items%)) O`H$carousel_title%=carousel_title$+" ["+string_leafname(file$)+"]"+0 Ojwbk2%!0=carousel_window% Ot%ș "Wimp_GetWindowOutline",,wbk2% O~>ș "Wimp_ForceRedraw",-1,wbk2%!4,wbk2%!8,wbk2%!12,wbk2%!16 Oreextent_carousel Ocarousel_unaltered%= O.set_iconstate(savedrag_window%,0,1<<22,0) O O O carousel_file_length O base%,pos% Obase%=4+1+1+1+1+1 O pos%=1 carousel_items% O"base%+=(carousel_name(pos%)) Obase%+=1+1+1+1 O pos% P =base% P  P delete_allcarouselitems Pcarousel_items%=0 P(resize_carousel_heap P2reextent_carousel P<0set_icon(control_window%,control_ccpos%,"") PF0set_icon(control_window%,control_lcpos%,"") PPLș "Wimp_ForceRedraw",carousel_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) PZHș "Wimp_ForceRedraw",play_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) Pd' carousel_wrap% carousel_wrap%= Pn(carousel_playstartsfrom_position%=-1 Px$carousel_playstartsfrom_song%=-1 P%carousel_playstartsfrom_event%=-1 P!set_volume(module_volume%,1) P P P$ save_carousel_position(file$) P file%,position%,event% P song_loaded% P file%=(file$) P file%=0 P #file%<7 #file%: P #file%=5 P carousel_version%=202 P1 carousel_shuffle% #file%,1 #file%,0 Q3 ș "QTMPlayer_Position",-1 position%,event% Q #file%,position% Q #file%,event% Q" Q,& #file%,(carousel_playing% 255) Q6# #file%,(carousel_playing%>>8) Q@ #file% QJ QT Q^ Qh load_default_carousel QrB splash% splash_notice("Checking for default carousel...",1) Q| Qy : debugmode% debug_message("load_default_carousel: "+$+" ("+string_internalerrorcode$+" "+()+")"): QM default_carousel$<>"" load_carousel(default_carousel$,play_default%) Q Q Q Q add_blank_carousel_item Q( check_memory(carousel_items%+1) Q carousel_items%+=1 QA set_icon(control_window%,control_lcpos%,(carousel_items%)) Q resize_carousel_heap Q, set_carousel_name(carousel_items%," ") Q- set_carousel_fadeout(carousel_items%,1) Q- set_carousel_repeats(carousel_items%,1) R. set_carousel_volume(carousel_items%,100) R: set_carousel_num(carousel_items%,(carousel_items%)) R0 set_carousel_leafname(carousel_items%," ") R&/ set_carousel_leafname(carousel_items%,"") R0M ș "Wimp_ForceRedraw",carousel_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) R: reextent_carousel RD1 open_window_current_layer(carousel_window%) RN RX Rb Rl, add_directory_to_carousel(directory$) Rv stop%= R off%,load%,file$ R off%=0 R R@ ș "OS_GBPB",10,directory$,block%,1,off%,256,"*" ,,,,off% R off%<>-1 R) file$=directory$+"."+ct(block%+20) R load%=!block% R? (load%>>>20)=&FFF type%=(load%>>>8) &FFF type%=-1 R loadable(file$,type%) R+ check_memory(carousel_items%+1) R carousel_items%+=1 RD set_icon(control_window%,control_lcpos%,(carousel_items%)) R resize_carousel_heap S1 set_carousel_name(carousel_items%,file$) S 0 set_carousel_fadeout(carousel_items%,1) S0 set_carousel_repeats(carousel_items%,1) S 1 set_carousel_volume(carousel_items%,100) S*= set_carousel_num(carousel_items%,(carousel_items%)) S4 S> notify("#OutOfMemory") SH stop%= SR S\ Sf8 block%!16=2 add_directory_to_carousel(file$) Sp Sz S off%=-1 stop% Sreextent_carousel S0open_window_current_layer(carousel_window%) SLș "Wimp_ForceRedraw",carousel_window%,-(1<<29),-(1<<29),(1<<29),(1<<29) S S S carousel_volume_redraw Sblock%!0=edit_window% S$ș "Wimp_GetWindowState",,block% Swinx%=block%!4 Swiny%=block%!16 Swinuy%=block%!24 Swinx%-=block%!20 Twiny%-=block%!24 Twbk3%!0=edit_window% Twbk3%!4=edit_vbar%!0-4 T$wbk3%!8=-edit_vbar%!4-4 T.(wbk3%!12=edit_vbar%!0+edit_vbar%!8+8 T8-wbk3%!16=-edit_vbar%!4+control_vbar%!12+4 TB)ș "Wimp_UpdateWindow",,wbk3% more% TL ȕ more% TV> draw_volume_bar(edit_vbar%,(get_icon(edit_window%,6))) T` !wbk3%=edit_window% Tj* ș "Wimp_GetRectangle",,wbk3% more% Tt T~ T T! carousel_openparent(item%) TBș "XOS_CLI","Filer_OpenDir "+pathname(carousel_name(item%)) T T T > Choices library T > Chris Rutter, 1996 T T read_choices_country T file%,line$ T$resources_country$="" Tfile%=(resources_choices$) U) file%=0 resources_country$="UK": U ȕ #file% U line$=#file% U (line$,1)="#") U(S line$,line$,"=")-1)="Country" resources_country$=line$,line$,"=")+1) U2 U< UF #file% UP@ resources_country$="" resources_country$="UK" UZ?ș "OS_File",5,"."+resources_country$ exist% Udl exist%<>2 0,"Resources for country "+resources_country$+" do not exist in the QTMPlay directory" Un Ux U read_choices_file U/ file%,line$,parameter$,parameter%,option$ U U : debugmode% debug_message("Choices file problem: "+$+" ("+string_internalerrorcode$+" "+()+")"): !error%=0:$(error%+4)=msg("ChoicesCorrupt")+0:ș "Wimp_ReportError",error%,1,"QTMPlay":set_choices_defaults:save_choices: U9 splash% splash_notice("Reading Choices file...",0) Uset_choices_defaults Ufile%=(resources_choices$) Uȕ #file% U line$=#file% U (line$,1)="#") U# option$=line$,line$,"=")-1) U& parameter$=line$,line$,"=")+1) U parameter%=(parameter$) V Ȏ option$ V: "Country" : resources_country$=parameter$ V2 "ToolbarX" : toolbar_x%=parameter% V"2 "ToolbarY" : toolbar_y%=parameter% V,6 "ToolbarWidth" : toolbar_width%=parameter% V67 "ToolbarHeight" : toolbar_height%=parameter% V@> "ToolbarLayout" : decode_toolbarstring(parameter$) VJA "TransparentSoundSystem" : tss%=truefalseq(parameter$) VT8 "TrackDirectory" : track_directory$=parameter$ V^0 "TrackX" : track_x%=parameter% Vh0 "TrackY" : track_y%=parameter% Vr7 "TrackWidth" : track_width%=(parameter$) V|8 "TrackHeight" : track_height%=(parameter$) V8 "ToolboxLock" : toolbox_lock%=(parameter$) V= "ToolboxLocked" : toolbox_constrain%=(parameter$) V6 "Volume" : module_volume%=parameter% V9 "DefCarousel" : default_carousel$=parameter$ VG "SaveCarLose" : save_carousel_pos%=truefalseq(parameter$) VB "PlayDefault" : play_default%=truefalseq(parameter$) V "SoundQuality" V" sound_quality%=parameter% V[ sound_quality%<16 sound_quality%>99 notify("#SampleRate"):sound_quality%=32 V V V V #file% W W!set_volume(module_volume%,1) W)ș "QTMPlayer_Quality",sound_quality% W&%ș "QTMPlayer_SoundSystem",0,tss% W0 W: WD save_choices WN WX: : :notify(msg("NotWriteChoices")+": "+$): Wbfile%=(resources_choices$) Wl+ file%=0 notify("#NotWriteChoices"): Wv)#file%,"Country="+resources_country$ W$#file%,"ToolbarX="+ toolbar_x% W$#file%,"ToolbarY="+ toolbar_y% W,#file%,"ToolbarWidth="+ toolbar_width% W.#file%,"ToolbarHeight="+ toolbar_height% W0#file%,"ToolbarLayout="+toolbar_parameters W7#file%,"TransparentSoundSystem="+truefalsea(tss%) W.#file%,"TrackDirectory="+track_directory$ W8#file%,"TrackSmallIcons="+truefalsea(track_small%) W!#file%,"TrackX="+(track_x%) W!#file%,"TrackY="+(track_y%) W)#file%,"TrackWidth="+(track_width%) W+#file%,"TrackHeight="+(track_height%) W+#file%,"ToolboxLock="+(toolbox_lock%) X2#file%,"ToolboxLocked="+(toolbox_constrain%) X '#file%,"Volume="+(module_volume%) X,#file%,"DefCarousel="+default_carousel$ X :#file%,"SaveCarLose="+truefalsea(save_carousel_pos%) X*5#file%,"PlayDefault="+truefalsea(play_default%) X4-#file%,"SoundQuality="+(sound_quality%) X> #file% XH,("SetType "+resources_choices$+" Text") XR X\ Xf Xp set_choices_defaults Xz0decode_toolbarstring("10,9,7,11,1,3,5,4,7") Xresources_country$="UK" Xtoolbar_x%=2 Xtoolbar_y%=136 Xtoolbar_width%=4 Xtoolbar_height%=2 Xsound_quality%=32 X tss%= Xdefault_carousel$="" Xsave_carousel_pos%= X&track_directory$=".^" Xtrack_small%= Xtrack_x%=200 Xtrack_y%=200 Ytrack_width%=480 Ytrack_height%=186 Ytoolbox_lock%=3 Y$toolbox_constrain%=5 Y.module_volume%=64 Y8play_default%= YB YL YV get_choices Y`track_x%=choices_trx% Yjtrack_y%=choices_try% Yttrack_width%=choices_trw% Y~track_height%=choices_trh% Y2track_directory$=get_icon(choices_window%,25) Y99 notify("#SampleRate"):sound_quality%=32 Y2tss%=truefalsew(choices_window%,choices_tss%) Y3default_carousel$=get_icon(choices_window%,16) YEsave_carousel_pos%=truefalsew(choices_window%,choices_savecpos%) YCplay_default%=truefalsew(choices_window%,choices_playdefault%) Y5!wbk%=play_window%:ș "Wimp_GetWindowState",,wbk% Z'toolbar_x%=wbk%!4:toolbar_y%=wbk%!8 Z  Z Z get_edits Z( old_path$,return_volume% Z2,old_path$=carousel_name(carousel_edit%) Z255 return_volume%=255 Z` (get_icon(edit_window%,6))<>return_volume% set_icon(edit_window%,6,(return_volume%)) Z7set_carousel_volume(carousel_edit%,return_volume%) ZHș "Wimp_ForceRedraw",carousel_window%,-(1<<29),-(1<<29),1<<29,1<<29 Z( carousel_edit%=carousel_playing% Z" set_volume(module_volume%,1) ZO old_path$<>carousel_name(carousel_edit%) play_carousel(carousel_edit%) Z Z Z Z put_edits Z Debug library \ > Chris Rutter, 1996 \ \ debug_startup \% SYS "XOS_CLI","SysLog_Flush ON" \'ș "XOS_CLI","SysLog QTMPlayer 255" \%ș "XOS_CLI","SysLog QTMPlay 255" \debugwin%= \wbk%!0=252 \ wbk%!12=0 \wbk%!16=&97fc1 \ wbk%!20=1 \$(wbk%+24)="QTMPlay" ]$(wbk%+32)="" ] #ș "Wimp_SendMessage",17,wbk%,0 ] debug_pointer%>1 ] < debug_message("has startup debug messages; spooling:") ]*" dummy%=1 debug_pointer%-1 ]4, debug_message(debug_history$(dummy%)) ]> dummy% ]H ]R, debug_window%=OPENOUT("ADFS::4.$.Log") ]\ ]f ]p debug_shutdown ]zwbk3%!0=252 ]wbk3%!12=0 ]wbk3%!16=&97fc1 ]wbk3%!20=2 ]$(wbk3%+24)="QTMPlay" ]$(wbk3%+32)="" ]$ș "Wimp_SendMessage",17,wbk3%,0 ]( debug_window%<>0 #debug_window% ] ] ] debug_message(message$) ]0ș "XSysLog_LogMessage","QTMPlay",message$,0 ] debug_window%<>0 ] #debug_window%,message$ ^ ^ debugmode% ^ wbk3%!64=256 ^$ wbk3%!(64+12)=0 ^. wbk3%!(64+16)=&97fc1 ^8 wbk3%!(64+20)=3 ^B $(wbk3%+24+64)="QTMPlay" ^L message$,6)="END = " ^V# wbk3%!(32+64)=(message$,7)) ^` wbk3%!(64+20)=4 ^j ^t $(wbk3%+32+64)=message$ ^~ ^ debugwin% ^) ș "Wimp_SendMessage",17,wbk3%+64,0 ^ ^- debug_history$(debug_pointer%)=message$ ^ debug_pointer%+=1 ^ ^ ^ ^ ^ debug_receivemessage ^ dummy$ ^ debugmode%= _ debugmode%= _  debugmode% last_end%= _9 debugmode% debug_history$(32):debug_pointer%=1 _ _( block%!20=0 _2 dummy$=$(block%+24) _< dummy$,4)="var:" _F dummy$=dummy$,5) _P5 debug_message(dummy$+"="+debug_types(dummy$)) _Z _d Ȏ dummy$ _n "stats" _x debug_message("") _V debug_message(msg("LongTask")+" v"+msg("Version")+". The local time is "+$) _ debug_message("") _ "help" _ debug_message("") _H debug_message("QTMPlay debugging help. Commands available are:") _T debug_message(" heaps info plugins memory stats") _ debug_message("") _ "heaps" _ debug_message("") _x debug_message("scratcharea base="+hexadecimal(plugin_scratchbase%)+", size="+hexadecimal(plugin_scratchsize%)) _# dummy%=1 active_plugins% _ debug_message(plugins_info$(dummy%,2)+": heap base="+hexadecimal(plugins_flags%(dummy%,2))+", heap size="+hexadecimal(plugins_flags%(dummy%,0))) _ dummy% ` "info" `Y debug_message(msg("LongTask")+" version "+msg("Version")+" ("+msg("Date")+")") `A debug_message("Registered/source is "+msg("Registered")) `" "plugins" `,5 debug_message("Currently installed plugins:") `6# dummy%=1 active_plugins% `@3 debug_message(" "+plugins_info$(dummy%,2)) `J dummy% `TK debug_message("plugins poll word="+hexadecimal(plugins_nextpoll%)) `^ dummy%=0 31 `h0 (plugins_nextpoll% (1<0 `rA debug_message(" "+plugins_info$(dummy%,2)+" is active") `| ` dummy% ` "memory" ` debug_message("") `6 debug_message("last used address="+(-&8000)) `; debug_message("last allocated address="+(-&8000)) `4 debug_message("variables start="+(-&8000)) `/ debug_message("slotsize="+(slotsize%)) `< debug_message("scratchsize="+(plugin_scratchsize%)) `I debug_message("total external heap size="+(slotsize%-(-&8000))) `0 debug_message("variables space="+(-)) ` ` ` block%!20=1 a$ debug_message("I am running.") a a a& a0 debug_types(dummy$) a: string% aD string%= aN dummy$,1)="%" string%= aX dummy$,"%")>0 string%= ab dummy$,"$")>0 string%= al string%= =(dummy$) av=((dummy$)) a a wimp_poll_for_messages a action% a debugmode% a& ș "Wimp_Poll",0,block% action% a9 action%=17 action%=18 poll_message(block%!16) a a a a verbose a=debugverbose% -3 a a debug_file_open b+debug_window%=("ADFS::4.$.Debug"+()) b  b b  debug_file_close b*#debug_window% b4 b> bH > General library bR > Chris Rutter, 1995 b\ bf load_sprites bp xeig%,yeig%,sprites$,file% bz+ș "OS_ReadModeVariable",-1,4 ,,xeig% b+ș "OS_ReadModeVariable",-1,5 ,,yeig% bC xeig%>1 yeig%>1 sprites$="Sprites" sprites$="Sprites22" b lastsprites$=sprites$ blastsprites$=sprites$ b&file%=("."+sprites$) b file%=0 b2 sprite_pool%=0 1,msg("SpritesMissing") b& notify("#SpritesChange"):#file% b b #file% b b7ș "OS_File",5,".Sprites22" ,,,,len% b* sprite_pool%=0 sprite_pool% len%+4 cmemory_needed%+=len%+4 c!sprite_pool%=len%+4 c=ș "OS_File",255,"."+sprites$,sprite_pool%+4 c$ c. c8 error cBH ("Error Error in error trapping procedure : "+$+" ("+()+")") cLshutdown_carousel_base cV("Unset QTMPlay$Loaded") c``("Error An error occured during start up: "+$+" ("+string_internalerrorcode$+" "+()+")") cj ct c~ c wimp_error c $,"fallthrough") c ch ("Error Error in error trapping procedure : "+$+" ("+string_internalerrorcode$+" "+()+")") c !error%=0 cD ($)>(250-(string_internalerrorcode$)-(string_okcancel$)) c $(error%+4)=$+0 c c[ $(error%+4)=$+" ("+string_internalerrorcode$+" "+()+") ("+string_okcancel$+")"+(0) c cPș "Wimp_ReportError",error%,(1<<0) (1<<1) (1<<8),"QTMPlay" ,selected% c$ PROCdebug_message($(error%+4)) d selected%=2 d quit%= d clear_exit d" plugin%=1 active_plugins% d(\ (plugins_flags%(plugin%,1) (1<<3))>0 !wbk2%=plugin_call(plugin%,"eshutdown","") d2 plugin% d<$ ș "XOS_CLI","RMKill QTMPlayer" dF( ș "XOS_CLI","UnSet QTMPlay$Loaded" dP dZ dd dn dx d helpmsg(token$) dpș "XMessageTrans_Lookup",help_message_desc%,token$,help_message_buff%,256 ,,,message_size%;message_found% dW message_found% 1 $help_message_buff%="" help_message_buff%?message_size%=13 d=ct(help_message_buff%) d d msg(token$) dfș "XMessageTrans_Lookup",message_desc%,token$,message_buff%,256 ,,,message_size%;message_found% dM message_found% 1 $message_buff%="" message_buff%?message_size%=13 d=ct(message_buff%) d d sa(a%)=zeroterm(a%) d' string_address(a%)=zeroterm(a%) d ct(!code_zeroterm%) e !code_zeroterm%=0 ="" e code_zeroterm%+4 e=$(!code_zeroterm%) e" zeroterm(a%)=ct(a%) e, e6 round_up(value%,up%) e@ (value% up%)=0 =value% eJ=value%-(value% up%)+up% eT e^ read_mode_variables eh xs%,ys% er+ș "OS_ReadModeVariable",-1,4 ,,xeig% e|+ș "OS_ReadModeVariable",-1,5 ,,yeig% e*ș "OS_ReadModeVariable",-1,11 ,,xs% e*ș "OS_ReadModeVariable",-1,12 ,,ys% escx%=(xs%+1)<0 = = g  g*' truefalses(window%,icon%,state%) g4!wbk2%!0=window%:wbk2%!4=icon% g>H state%= wbk2%!8=0:wbk2%!12=1<<21 wbk2%!8=1<<21:wbk2%!12=1<<21 gH!ș "Wimp_SetIconState",,wbk2% gR g\ gf) correct_caret(window%,icon%,text$) gp$ș "Wimp_GetCaretPosition",,wbk% gz window%<>-1 icon%<>-1 g] wbk%!4=icon% wbk%!0=window% ș "Wimp_SetCaretPosition",window%,icon%,0,0,-1,(text$) g gm wbk%!4<>-1 wbk%!0<>-1 ș "Wimp_SetCaretPosition",wbk%!0,wbk%!4,0,0,-1,(get_icon(wbk%!0,wbk%!4))*32 g g g g hexadecimal(value%) g!="0x"+lower_case(~(value%)) g g string_leafname(string$) g string$,".")=0 =string$ g$wbk3%=string$ g=ct(leafname(wbk3%)) h h leafname(address%) h last%,off% h$ h.$ address%?off%=46 last%=off% h8 off%+=1 hB address%?off%<32 hL=address%+last%+1 hV h` pathname(string$) hj c%,p% ht p%=(string$) 1 -1 h~( string$,p%,1)="." c%=0 c%=p% h p% h c%=0 =string$ h=string$,c%-1) h h, pad(string$,prefix$,postfix$,length%) hȕ (string$)max variable=max i  i i lower_case(string$) i( (string$)=0 =string$ i2 dummy% i< dummy%=1 (string$) iFs (string$,dummy%,1))>=("A") (string$,dummy%,1))<=("Z") string$,dummy%)=((string$,dummy%,1))+32) iP dummy% iZ =string$ id in% memory_copy(to%,from%,length%) ix bit% i bit%=0 length% 4 i to%!bit%=from%!bit% i bit% i i i > Icons library i > Chris Rutter, 1995 i i$ set_icon(window%,icon%,text$) icode_seticontext%!0=window% icode_seticontext%!4=icon% icode_seticontext%!8=sbuf% i$sbuf%=text$ jsbuf%?((text$)) = 0 j code_seticontext%+12 j j" j,/ set_icon_fullredraw(window%,icon%,text$) j6wbk2%!0=window% j@wbk2%!4=icon% jJ!ș "Wimp_GetIconState",,wbk2% jTC ((wbk2%!24) &100)=0 $(wbk2%+28)=text$ $(wbk2%!28)=text$ j^wbk2%!0=window% jhwbk2%!4=icon% jr wbk2%!8=0 j|wbk2%!12=0 j!ș "Wimp_SetIconState",,wbk2% j j j get_icon(window%,icon%) jwbk2%!0=window% jwbk2%!4=icon% j!ș "Wimp_GetIconState",,wbk2% j, ((wbk2%!24) &100)=0 =ct(wbk2%+8+20) j=ct(wbk2%!28) j j/ set_iconstate(window%,icon%,clear%,eor%) jwbk2%!0=window% jwbk2%!4=icon% kwbk2%!8=eor% kwbk2%!12=clear% k!ș "Wimp_SetIconState",,wbk2% k& k0 k:5 redraw_vicon(cache%,window%,icon%,x%,y%,text$) kD second% kNsecond%=cache%+32 kX@ cache%!0<>window% redraw_findicon(cache%,window%,icon%) kb text$<>"NONE" kl second%!0=window% kv second%!4=icon% k$ ș "Wimp_GetIconState",,second% kJ ((second%!24) &100)=0 $(second%+28)=text$ $(second%!28)=text$ k k more% k (second%!24 32)=0 k\ ș "Wimp_ForceRedraw",window%,(cache%!4)+x%,(cache%!8)+y%,(cache%!12)-x%,(cache%!16)-y% k, ș "Wimp_RedrawWindow",,second% more% k ȕ more% k- ș "Wimp_GetRectangle",,second% more% k k k second%!0=window% k second%!4=(cache%!4)+x% l second%!8=(cache%!8)+y% l  second%!12=(cache%!12)-x% l second%!16=(cache%!16)-y% l , ș "Wimp_UpdateWindow",,second% more% l* ȕ more% l4- ș "Wimp_GetRectangle",,second% more% l> lH lR l\ lf+ redraw_findicon(find%,window%,icon%) lp second% lzsecond%=find%+32 lfind%!0=window% l!second%=window% lsecond%!4=icon% l#ș "Wimp_GetIconState",,second% lfind%!4=second%!8 lfind%!8=second%!12 lfind%!12=second%!16 lfind%!16=second%!20 l l l > Menus library l > Chris Rutter, 1995 l m parse_menu mF title$,items%,item$,itemlink$,menu%,mf%,longest%,item%,item_buf% m title$,items% m$. title$,1)="#" title$=msg(title$,2)) m.9 menu% 28+(items%*24):memory_needed%+=28+(items%*24) m8menu%!0=menu_scratchpos% mBmenu%!4=menu_scratch% mLmenu%!8=(title$)+1 mV$menu_scratchpos%=title$+0 m`!menu_scratchpos%+=(title$)+3 mjmenu%?12=7 mtmenu%?13=2 m~menu%?14=7 mmenu%?15=0 mmenu%!16=220 mmenu%!20=44 mmenu%!24=0 mmf%=&7000011 mlongest%=(title$) mm%=menu%+28 m item%=1 m items%=0 m m item$,itemlink$ m> itemlink$,1)="*" itemlink$=itemlink$,2):items%=item% n/ itemlink$<>"" itemlink$=((itemlink$)) n ' item%=items% m%!0=1<<7 m%!0=0 n$ item%=1 m%!0=(m%!0) (1<<8) nm%!4=(itemlink$) n( (item$)<13 n2 m%!8=mf% n< $(m%+12)=item$+0 nF nP m%!8=mf% (1<<8) nZ6 item_buf% (item$)+3:memory_needed%+=(item$)+3 nd $item_buf%=(item$+0) nn ?(item_buf%+(item$)+2)=0 nx m%!12=item_buf% n m%!16=item_buf%+(item$)+2 n m%!20=(item$)+1 n n m%+=24 n+ (item$)>longest% longest%=(item$) n item%+=1 n item%-1=items% nmenu%!16=(longest%*16)+14 n =menu% n n resize_on_longest(menu%) n dummy% n# only works on pluginsub_menu% o menu%<>pluginsub_menu% olongest%=(ct(!menu%)) odummy%=menu%+28 o" o,# (dummy%!8 (1<<8))=(1<<8) o6? (ct(dummy%!12))>longest% longest%=(ct(dummy%!12)) o@ oJ? (ct(dummy%+12))>longest% longest%=(ct(dummy%+12)) oT o^ dummy%+=24 oh$ (!(dummy%-24) (1<<7))=(1<<7) ormenu%!16=(longest%*16)+14 o| o o" openmenu_bar(menu%,mx%,mi%) o2ș "Wimp_CreateMenu",,menu%,mx%-75,(mi%*44)+96 omenu_open%=:menu_time%=0 olastmenu%=menu% o o o" openmenu_win(menu%,mx%,my%) o-ș "Wimp_CreateMenu",,menu%,mx%-75,my%+22 omenu_open%=:menu_time%=0 olastmenu%=menu% o o p) openmenu_icon(menu%,window%,icon%) p mx%,my% p2!wbk2%=window%:ș "Wimp_GetWindowState",,wbk2% p&Gwbk2%!128=window%:wbk2%!132=icon%:ș "Wimp_GetIconState",,wbk2%+128 p0&mx%=(wbk2%!144)+wbk2%!4+(1<item% q  q q  > Plugins library q* > Chris Rutter, 1995 q4 q> scan_plugins qH4 splash% splash_notice("Loading plugins...",0) qR initpath$,initleaf$ q\ increase_slot%,end% qf% plugins_info$(plugins_exist%,5) qp& plugins_flags%(plugins_exist%,2) qz files%,file_temp% qfiles%=block% q off%,leafname$ q off%=0 q qLș "OS_GBPB",10,".Plugins",files%,1,off%,256,"*" ,,,,off% q off%<>-1 q leafname$=ct(files%+20) q (files%!16)=2 q& initleaf$=lower_case(leafname$) q2 initpath$=".Plugins."+initleaf$ q+ initiate_plugin(initpath$,initleaf$) q q r off%=-1 r r r$) initiate_plugin(plugin$,leafname$) r. length%,state% r8 rB : :notify(msg("PluginInitError")+" "+plugin$+" "+msg("FollowingError")+" "+$+" ("+string_internalerrorcode$+" "+()+")"): rLF splash% splash_notice("Initialising plugin "+leafname$+"...",1) rV.plugins_info$(active_plugins%+1,0)=plugin$ r`0plugins_info$(active_plugins%+1,1)=leafname$ rj7read_plugin_information(plugin$,active_plugins%+1) rtț plugin$+".!RunImage" r~active_plugins%+=1 rBplugins_flags%(active_plugins%,0)=("FN_"+leafname$+"_memory") r^plugins_flags%(active_plugins%,2)=plugins_allocateheap(plugins_flags%(active_plugins%,0)) rplugins_flags%(active_plugins%,1)=("FN_"+leafname$+"_initialise("+(!(plugins_flags%(active_plugins%,2)))+","+(active_plugins%)+")") r!read_plugin_choices(plugin$) r+ș "OS_File",5,plugin$+".Help" state% r[ state%=1 plugins_flags%(active_plugins%,1)=plugins_flags%(active_plugins%,1) 1<<8 rĵ debugmode% debug_message("Initialised plugin "+leafname$+", heap size="+(plugins_flags%(active_plugins%,0))+", heap anchor="+hexadecimal(plugins_flags%(active_plugins%,2))) r; (plugins_flags%(active_plugins%,1) (1<<5))=(1<<5) r@ debugmode% debug_message(" plugin auto-run: "+leafname$) r! plugin_run(active_plugins%) r r s s  s/ read_plugin_information(plugin$,number%) s file% s( s2m : :notify(msg("PluginInfoFileCorrupt")+" "+plugins_info$(number%,2)): file%>0 #file%: s<*plugins_info$(number%,2)="Not defined" sF*plugins_info$(number%,3)="Not defined" sP*plugins_info$(number%,4)="Not defined" sZ*plugins_info$(number%,5)="Not defined" sdfile%=(plugin$+".Info") snF file%=0 notify(msg("PluginInfoFileMissing")+" "+leafname$): sx$plugins_info$(number%,2)=#file% sF plugins_info$(number%,2)="" plugins_info$(number%,2)=leafname$ s$plugins_info$(number%,3)=#file% s$plugins_info$(number%,4)=#file% s$plugins_info$(number%,5)=#file% s #file% s s s s plugin_run(plugin%) s-success%=plugin_call(plugin%,"begin","") sc (plugins_flags%(plugin%,1) (1<<1))>0 plugins_nextpoll%=(plugins_nextpoll% (1<0 notify("#PluginConfiguring"): t9 file%,line$,cny%,item%,scratch%,maxlength%,xextent% t" t,l : :notify(msg("PluginConfiguringError")+" "+$+" ("+string_internalerrorcode$+" "+()+")"): t6xextent%=512 t@7ș "Wimp_WhichIcon",pluginchoices_window%,wbk2%,0,0 tJcny%=wbk2% tTȕ !cny%<>-1 t^. plugin_cscratch%!0=pluginchoices_window% th plugin_cscratch%!4=!cny% tr, ș "Wimp_DeleteIcon",,plugin_cscratch% t| cny%+=1 t t0cny%=-8:item%=1:scratch%=plugin_cscratch%+48 t!plugin_cscratch%=0 t-$(plugin_cscratch%+4)="sradiooff,radioon" t*$(plugin_cscratch%+32)="soptoff,opton" tmaxlength%=15 t8 exist_file(plugins_info$(plugin%,0)+".Choices") t1 file%=(plugins_info$(plugin%,0)+".Choices") t t line$=#file% t line$,1)<>"#" t Ȏ line$ t- "text {" : plugin_configure_text u0 "integer {" : plugin_configure_integer u. "radio {" : plugin_configure_radio u/ "option {" : plugin_configure_option u& u0: line$,10)="maxlength=" maxlength%=(line$,11)) u: uD #file% uN #file% uX ubplugin_items%=item%-1 ul'plugin_configure_addokcancel(cny%) uvplugin_configured%=plugin% u wbk%!0=pluginchoices_window% u"ș "Wimp_GetWindowState",,wbk% uwbk%!12=wbk%!4+xextent%+12 uwbk%!8=wbk%!16+cny%-72 uș "Wimp_OpenWindow",,wbk% u u u u* plugin_configure_addokcancel(ypos%) u ypos%-=12 ulabel$="Save" u wbk2%!4=8 uwbk2%!8=ypos%-44 v wbk2%!12=8+((label$)*16)+64 v wbk2%!16=ypos%+4 vYwbk2%!20=1 (1<<3) (1<<4) (1<<5) (1<<9) (7<<24) (1<<2) (2<<12) (1<<28) v $scratch%="r5,2" v*"$(scratch%+("r5,2")+1)="Save" v4 wbk2%!20=(wbk2%!20 (1<<8)) v>wbk2%!24=scratch%+5 vHwbk2%!28=scratch% vRwbk2%!32=2 v\!wbk2%!0=pluginchoices_window% vfscratch%+=("Cancel r5,2") vp3ș "Wimp_CreateIcon",,wbk2% plugin_icon%(0,3) vzlabel$="Save" v(wbk2%!4=xextent%-(((label$)*16)+80) vwbk2%!8=ypos%-52 vwbk2%!12=xextent%+4 vwbk2%!16=ypos%+12 vYwbk2%!20=1 (1<<3) (1<<4) (1<<5) (1<<9) (7<<24) (1<<2) (2<<12) (1<<28) v$scratch%="r6,2" v $(scratch%+("r5,2")+1)="OK" v wbk2%!20=(wbk2%!20 (1<<8)) vwbk2%!24=scratch%+5 vwbk2%!28=scratch% vwbk2%!32=2 v!wbk2%!0=pluginchoices_window% vscratch%+=12 w3ș "Wimp_CreateIcon",,wbk2% plugin_icon%(0,2) wlabel$="Save" w,wbk2%!4=xextent%-(((label$)*16)+80)-148 w$wbk2%!8=ypos%-44 w.+wbk2%!12=xextent%-(((label$)*16)+80)-8 w8wbk2%!16=ypos%+4 wBYwbk2%!20=1 (1<<3) (1<<4) (1<<5) (1<<9) (7<<24) (1<<2) (2<<12) (1<<28) wL$scratch%="r5,2" wV$$(scratch%+("r5,2")+1)="Cancel" w` wbk2%!20=(wbk2%!20 (1<<8)) wjwbk2%!24=scratch%+5 wtwbk2%!28=scratch% w~wbk2%!32=2 w!wbk2%!0=pluginchoices_window% wscratch%+=16 w3ș "Wimp_CreateIcon",,wbk2% plugin_icon%(0,1) w w w plugin_configure_text wplugin_icon%(item%,0)=1 w, label$,length%,keys$,handler$,default$ wlength%=10 w w line$=#file% w" varset$=line$,line$,"=")-1) x! vareq$=line$,line$,"=")+1) x  vareq%=(vareq$) x Ȏ varset$ x" "length" : length%=vareq% x(! "label" : label$=vareq$ x2A "handler" : plugin_handler$(item%)=vareq$:handler$=vareq$ x< "keys" : keys$=vareq$ xF# "default" : default$=vareq$ xP xZ line$="}" #file% xd` line$<>"}" notify(msg("PluginChoicesCB")+" text, in plugin "+plugins_info$(plugin%,1)) xnh handler$="" notify(msg("PluginChoicesHandler")+" text, in plugin "+plugins_info$(plugin%,1)): xx@cny%=plugin_configure_build_text(cny%,label$,length%,item%) xmset_icon(pluginchoices_window%,plugin_icon%(item%,1),plugin_call(plugin%,handler$,",""retvar"",item%")) x item%+=1 x x x> plugin_configure_build_text(ypos%,label$,length%,item%) x/ȕ (label$)12 y $scratch%=label$ y! wbk2%!20=(wbk2%!20 (1<<8)) y wbk2%!24=scratch% y" wbk2%!28=plugin_cscratch% y, wbk2%!32=(label$) y6 scratch%+=(label$)+1 y@ yJ $(wbk2%+24)=label$ yT y^!wbk2%!0=pluginchoices_window% yh7ș "Wimp_CreateIcon",,wbk2% plugin_icon%(item%,1) yrwbk2%!4=4+((label$)*16)+32 y|wbk2%!8=ypos%-48 y-wbk2%!12=4+((label$)*16)+32+(length%*16) y3 (wbk2%!12-wbk2%!4)>400 wbk2%!12=wbk2%!4+400 y+ wbk2%!12>xextent% xextent%=wbk2%!12 ywbk2%!16=ypos% yPwbk2%!20=1 (1<<3) (1<<4) (1<<5) (1<<9) (7<<24) (1<<2) (14<<12) y$scratch%=keys$ y$(scratch%+(keys$)+1)="" y wbk2%!20=(wbk2%!20 (1<<8)) y wbk2%!24=scratch%+(keys$)+1 ywbk2%!28=scratch% ywbk2%!32=length% y!wbk2%!0=pluginchoices_window% y scratch%+=(keys$)+2+length% z7ș "Wimp_CreateIcon",,wbk2% plugin_icon%(item%,1) z ypos%-=56 z =ypos% z& z0A plugin_configure_build_option(ypos%,label$,item%,default%) z: do the label zDwbk2%!4=16 zNwbk2%!8=ypos%-48 zX$wbk2%!12=16+((label$)*16)+16+48 zb+ wbk2%!12>xextent% xextent%=wbk2%!12 zlwbk2%!12=xextent% zvwbk2%!16=ypos% zYwbk2%!20=1 (1<<1) (1<<4) (7<<24) (1<<28) (1<<8) (11<<12) (default%<<21) z$scratch%=label$ zwbk2%!24=scratch% z wbk2%!28=plugin_cscratch%+32 zwbk2%!32=(label$) zscratch%+=(label$)+1 z!wbk2%!0=pluginchoices_window% z7ș "Wimp_CreateIcon",,wbk2% plugin_icon%(item%,1) z ypos%-=56 z =ypos% z z; plugin_configure_build_radiolabel(cnx%,ypos%,label$) z/ȕ (label$)xextent% xextent%=wbk2%!12 {4wbk2%!16=ypos% {>*wbk2%!20=1 (1<<4) (1<<9) (7<<24) {H (label$)>12 {R $scratch%=label$ {\! wbk2%!20=(wbk2%!20 (1<<8)) {f wbk2%!24=scratch% {p wbk2%!28=plugin_cscratch% {z wbk2%!32=(label$) { scratch%+=(label$)+1 { { $(wbk2%+24)=label$ { {!wbk2%!0=pluginchoices_window% {7ș "Wimp_CreateIcon",,wbk2% plugin_icon%(item%,1) {plugin_icon%(item%,1)+=1 {=cnx%+((label$)*16)+32 { {A plugin_configure_build_radio(cnx%,ypos%,label$,opt%,item%) { do the label {wbk2%!4=cnx% {wbk2%!8=ypos%-48 |#wbk2%!12=cnx%+((label$)*16)+72 |- (wbk2%!12)>xextent% xextent%=wbk2%!12 |wbk2%!16=ypos% |$Vwbk2%!20=1 (1<<1) (1<<4) (7<<24) (1<<28) (1<<8) (11<<12) (item%<<16) |.$scratch%=label$ |8wbk2%!24=scratch% |Bwbk2%!28=plugin_cscratch%+4 |Lwbk2%!32=(label$) |Vscratch%+=(label$)+1 |`!wbk2%!0=pluginchoices_window% |jș "Wimp_CreateIcon",,wbk2% |t=cnx%+((label$)*16)+68 |~ | plugin_configure_integer |plugin_icon%(item%,0)=2 |, label$,length%,handler$,default$,keys$ |keys$="a0-9-" |length%=25 | | line$=#file% |" varset$=line$,line$,"=")-1) |! vareq$=line$,line$,"=")+1) | vareq%=(vareq$) | Ȏ varset$ |" "length" : length%=vareq% }! "label" : label$=vareq$ } A "handler" : plugin_handler$(item%)=vareq$:handler$=vareq$ }# "default" : default$=vareq$ } }( line$="}" #file% }2c line$<>"}" notify(msg("PluginChoicesCB")+" integer, in plugin "+plugins_info$(plugin%,1)) }800 cnx%=cnx2%:cny%-=56 ~^+ plugin_optforitem%(item%,radio%)=opt% ~h radio%+=1 ~r ~| line$="}" #file% ~a line$<>"}" notify(msg("PluginChoicesCB")+" radio, in plugin "+plugins_info$(plugin%,1)) ~i handler$="" notify(msg("PluginChoicesHandler")+" radio, in plugin "+plugins_info$(plugin%,1)): ~!wbk2%!0=pluginchoices_window% ~nwbk2%!4=plugin_icon%(item%,1)+plugins_opttoradio(item%,plugin_call(plugin%,handler$,",&4b534154,item%")) ~wbk2%!8=1<<21 ~wbk2%!12=1<<21 ~!ș "Wimp_SetIconState",,wbk2% ~ item%+=1 ~ cny%-=56 ~ ~ ~ plugin_configure_option ~plugin_icon%(item%,0)=4  label$,handler$,default%   line$=#file% &" varset$=line$,line$,"=")-1) 0! vareq$=line$,line$,"=")+1) : vareq%=(vareq$) D Ȏ varset$ N! "label" : label$=vareq$ XA "handler" : plugin_handler$(item%)=vareq$:handler$=vareq$ b= "default" : default%=vareq%: default%>1 default%=1 l v line$="}" #file% b line$<>"}" notify(msg("PluginChoicesCB")+" option, in plugin "+plugins_info$(plugin%,1)) j handler$="" notify(msg("PluginChoicesHandler")+" option, in plugin "+plugins_info$(plugin%,1)): mcny%=plugin_configure_build_option(cny%,label$,item%,plugin_call(plugin%,handler$,",1263747412,item%"))  item%+=1    read_plugin_configure  item%,dummy%,dummy$,pass%  B : :notify(msg("PluginErrorReadingConfig")+" "+$):  item%=1 plugin_items%  Ȏ plugin_icon%(item%,0)  1  dummy$=plugin_call(plugin_configured%,plugin_handler$(item%),","""+get_icon(pluginchoices_window%,plugin_icon%(item%,1))+""",item%") 2  dummy%=plugin_call(plugin_configured%,plugin_handler$(item%),",VAL(FNget_icon(pluginchoices_window%,plugin_icon%(item%,1))),item%") 3 *e ș "Wimp_WhichIcon",pluginchoices_window%,wbk2%,((%11111)<<16) (1<<21),(item%<<16) (1<<21) 4 dummy%=plugin_call(plugin_configured%,plugin_handler$(item%),","+(plugins_radiotoopt(item%,!wbk2%-plugin_icon%(item%,1)))+",item%") > 4 H$ wbk2%!0=pluginchoices_window% R$ wbk2%!4=plugin_icon%(item%,1) \$ ș "Wimp_GetIconState",,wbk2% f" (wbk2%!24 (1<<21))<>0 pQ dummy%=plugin_call(plugin_configured%,plugin_handler$(item%),",1,item%") z Q dummy%=plugin_call(plugin_configured%,plugin_handler$(item%),",0,item%")   item% plugin_configured%=    C plugin_configure_dispatch_t(value$,handler$,plugin$,plugin%) dummy$ _dummy$=("FN_"+plugin$+"_"+handler$+"("+(!(plugins_flags%(plugin%,2)))+","""+value$+""")")   C plugin_configure_dispatch_v(value%,handler$,plugin$,plugin%)  dummy$ Wdummy$=("FN_"+plugin$+"_"+handler$+"("+(!(plugins_flags%(plugin%,2)))+",value%)") $ . 8+ plugin_call(plugin%,function$,pars$) Bn=("FN_" + plugins_info$(plugin%,1) + "_"+function$ + "(" + (!(plugins_flags%(plugin%,2))) + pars$ + ")") L V write_plugin_choices ` path$,item%,file%,dummy% j tC : :notify(msg("PluginErrorWritingChoices")+" "+$): ~;path$=plugins_info$(plugin_configured%,0)+".SaveChoice" file%=(path$) / file%=0 notify("#NotWritePluginChoices") #file%,plugin_items%  item%=1 plugin_items% " #file%,plugin_icon%(item%,0) # #file%,plugin_handler$(item%)  Ȏ plugin_icon%(item%,0) 1 E #file%,get_icon(pluginchoices_window%,plugin_icon%(item%,1)) 2 H #file%,(get_icon(pluginchoices_window%,plugin_icon%(item%,1))) 3 e ș "Wimp_WhichIcon",pluginchoices_window%,wbk2%,((%11111)<<16) (1<<21),(item%<<16) (1<<21) G #file%,plugins_radiotoopt(item%,wbk2%!0-plugin_icon%(item%,1))  4 $ wbk2%!0=pluginchoices_window% ($ wbk2%!4=plugin_icon%(item%,1) 2$ ș "Wimp_GetIconState",,wbk2% <" (wbk2%!24 (1<<21))<>0 F #file%,1 P Z #file%,0 d n x item% #file%    ! read_plugin_choices(path$) path$=path$+".SaveChoice" < file%,items%,item%,handler$,value$,value%,type%,dummy%  C : :notify(msg("PluginErrorReadingChoices")+" "+$): file%=(path$)  file%>0 / ( #file%) #file%>3 #file%,items%  #file%  item%=1 items% ! #file% #file%,type% $ #file% #file%,handler$ " Ȏ type% , 1 6$ #file% #file%,value$ @E dummy$=plugin_call(active_plugins%,handler$,",value$,item%") J 2,3,4 T$ #file% #file%,value% ^U debugmode% verbose debug_message("Setting up "+handler$+", "+(value%)) hE dummy%=plugin_call(active_plugins%,handler$,",value%,item%") r | item%  #file%     % plugins_poll( action%,block%)  pos%,cont%  d :notifyq(msg("PluginPollError")+" "+$+" ("+string_internalerrorcode$+" "+()+")"):  pos%=1 31 + (plugins_nextpoll% (1<0 7 cont%=plugin_call(pos%,"poll",",action%,block%") C cont%= plugins_nextpoll%=(plugins_nextpoll% (1<.Plugins",block%,1,off%,256,"*" ,,,,off%  block%!16=2 off%<>-1  plugins_length%+=block%!8  plugins_exist%+=1  off%=-1 =plugins_length%  % plugins_opttoradio(item%,opt%) p%,a% a%=&12345678  p%=0 16 A plugin_optforitem%(item%,p%)=opt% a%=&12345678 a%=p%  p% =a%  % plugins_radiotoopt(item%,opt%) #=plugin_optforitem%(item%,opt%) * 4" plugins_allocateheap(size%) > anchor% H'ș "Dynamite_ClaimAnchor" anchor% R,ș "Dynamite_Alloc",anchor%,size%,!qtmp% \ =anchor% f p plugins_freeheaps z plugin% #ș "Dynamite_FreeWithID",!qtmp%  active_plugins%>0 " plugin%=1 active_plugins% ; ș "Dynamite_ReleaseAnchor",plugins_flags%(plugin%,2)  plugin%    ( plugins_resizeheap(plugin%,size%) 8ș "Dynamite_Resize",plugins_flags%(plugin%,2),size%   1 plugins_midextend(plugin%,offset%,change%) Eș "Dynamite_MidExtend",plugins_flags%(plugin%,2),offset%,change%   $ > Play library . > Chris Rutter, 1995 8 B play_initialise L< splash% splash_notice("Checking plugins length...",1) Vș "QTMPlayer_Clear" ` off%,path$,exist% j off%=0 t ~M ș "OS_GBPB",10,".Formats",block%,1,off%,256,"*" ,,,,off%  block%!16=2 off%<>-1 3 path$=".Formats."+ct(block%+20) F debugmode% verbose debug_message("Loading "+path$+"...") 2 SYS "OS_File",5,path$+".~RiscPC" TO exist%  exist%=0 1=1 Q splash% splash_notice("Loading layer "+string_leafname(path$)+"...",2) # ș "QTMPlayer_Layer",0,path$   off%=-1   author &ș "QTMPlayer_SongInfo" ,author% =ct(author%)  ( curpos 2 cur% <%ș "QTMPlayer_Position",-1 cur% F =cur% P Z duration d minutes%,seconds% n)ș "QTMPlayer_SongInfo" ,,,seconds% x seconds%=-1 ="" minutes%=(seconds% 60) seconds%=(seconds% 60) 4=(minutes%)+"'"+pad((seconds%),"0","",2)+""""  endpos *ș "QTMPlayer_Position",-1,-1 ,,end% =end%   filesize(file$) size% $ș "OS_File",5,file$ ,,,,size% =((size%/1024))+"Kb"   name #ș "QTMPlayer_SongInfo" name% & name%=0 =replacement_songname$ "+ name%?0 < 32 =replacement_songname$ ,=ct(name%) 6 @ readvolume J length% T&ș "QTMPlayer_Volume",-1 volume% ^ =volume% h r samplelength(sample%) | length% .ș "QTMPlayer_Sample",0,sample% ,length% =length%   samplename(sample%) name% +ș "QTMPlayer_Sample",0,sample% name% =ct(name%)   play_song(path$) ; len%,file%,header$,type%,load%,item%,swierror%,state% 6 debugmode% debug_message("Playing song "+path$) 1ș "XOS_File",5,path$ state%,,load%;worked% 4 state%=0 notify(msg("NoFile")+" "+path$): > (worked% 1)=0 type%=(load% &000FFF00)>>8 type%=0 song_loaded%= 0ș "QTMPlayer_Recognise",path$,type% item% & item%<>-1 09 ș "XQTMPlayer_Load",path$,item% swierror%;worked% : linked by this point D2 replacement_songname$=string_leafname(path$) N (worked% 1)=0 X: set_icon(control_window%,control_length%,duration) b7 set_icon(control_window%,control_playing%,name) l9 set_icon(control_window%,control_cpos%,(curpos)) vA set_icon(control_window%,control_memory%,filesize(path$))  scanset(5) 3 redraw_icon(control_window%,control_volsur%) 9 set_icon(control_window%,control_lpos%,(endpos))  song_loaded%=  < notify(msg("SongLoadingError")+" "+ct(swierror%+4))  unload_song  ș "QTMPlayer_Unload"  song_loaded%=  scanset(1)    ș "QTMPlayer_Unload"  unload_song + notify(msg("NoRecognise")+" "+path$)  Gș "Wimp_ForceRedraw",samples_window%,-(1<<29),-(1<<29),1<<29,1<<29 * 4 > pbak H dummy% R song_loaded% \ curpos>0 f- carousel_wrap% carousel_lastpos%-=1 p) ș "QTMPlayer_Position",-1 dummy% z& ș "QTMPlayer_Position",dummy%-1 9 set_icon(control_window%,control_cpos%,(curpos))     pfwd dummy%  song_loaded%  curpos64 ș "QTMPlayer_Volume",64 `+ voltemp%<0 ș "QTMPlayer_Volume",0 jB voltemp%>=0 voltemp%<=64 ș "QTMPlayer_Volume",voltemp% t ~, volume%>64 ș "QTMPlayer_Volume",64 * volume%<0 ș "QTMPlayer_Volume",0 ? volume%>=0 volume%<=64 ș "QTMPlayer_Volume",volume%   update% P update%<>2 set_icon(control_window%,control_volume%,((volume%/.64)))  block%!0=control_window% % ș "Wimp_GetWindowState",,block%  winx%=block%!4  winy%=block%!16  winuy%=block%!24  winx%-=block%!20  winy%-=block%!24  wbk3%!0=control_window%  wbk3%!4=control_vbar%!0-4  wbk3%!8=-control_vbar%!4-4 / wbk3%!12=control_vbar%!0+control_vbar%!8+8 (1 wbk3%!16=-control_vbar%!4+control_vbar%!12+4 2* ș "Wimp_UpdateWindow",,wbk3% more% < ȕ more% F- draw_volume_bar(control_vbar%,volume%) P+ ș "Wimp_GetRectangle",,wbk3% more% Z d nmodule_volume%=volume% x   play_single(file$) 1set_icon(control_window%,control_ccpos%,"-") play_song(file$) carousel_wrap%=  song_loaded%  ș "QTMPlayer_Restart"  bah. bloody matrixtrk 8 set_icon(control_window%,control_cpos%,(curpos)) 8 set_icon(control_window%,control_lpos%,(endpos))     start_fadeout  fadeout_oldv%=module_volume% !fadeout_old=module_volume%/64 "fadeout_volume=64 ,-ș "OS_ReadMonotonicTime" fadeout_time% 6fadeout_pending%=0 @? carousel_fadeout(carousel_playing%)=0 fadeout_volume=0 JO debugmode% debug_message( "Started fadeout; multiplier="+(fadeout_old)) T ^ h update_fadeout r fadeout_oldtime%,dif% |"fadeout_oldtime%=fadeout_time% -ș "OS_ReadMonotonicTime" fadeout_time% 'dif%=fadeout_time%-fadeout_oldtime% fadeout_volume-=(dif%/6) 0set_volume((fadeout_volume*fadeout_old),0) carousel_lastpos%=-(1<<29) k debugmode% verbose debug_message("Update fadeout; dif="+(dif%/16)+", volume="+(fadeout_volume)) q fadeout_volume<=0 fadeout_pending%=-1:ș "QTMPlayer_Stop": debugmode% debug_message("Finished fadeout")    poll_message_dataopen  song$,type% song$=ct(block%+44) type%=block%!40 &FFF  type%=&130  poll_message_dataloadack  load_carousel(song$,) & 0- type%<&1000 loadable(song$,type%) : poll_message_dataloadack D play_single(song$) N X b l v > Redraw library  > Chris Rutter, 1995   poll_redraw L winx%,winy%,winuy%,plot%,sample%,window%,vissy%,vismy%,item%,wid%,sub%  flag%,icon_maxx% !block%=carousel_window%  !yeig=yeig% $ !carousel_items=carousel_items% 1 !carousel_items_length=((carousel_items%)) . code_redrawcarousel%!40=carousel_playing%  redraw_carousel_window%  *ș "Wimp_RedrawWindow",,block% flag% winx%=block%!4 winy%=block%!16 winuy%=block%!24 winx%-=block%!20 *winy%-=block%!24 4" yeig%<=1 sub%=44 sub%=40 > ȕ flag% HP window%=block%!0:vissy%=-(winy%-block%!32)-48:vismy%=-(winy%-block%!40)+48 R Ȏ window% \ edit_window% fA draw_volume_bar(edit_vbar%,(get_icon(edit_window%,6))) p control_window% z6 draw_volume_bar(control_vbar%,module_volume%)  samples_window%  plot%=-10  sample%=1 ( plot%>vissy% plot% Sliders library  > Chris Rutter, 1995  3 create_volumebar(window%,icon%,max%,source%)  b%  b% 28:memory_needed%+=28 !wbk%=window%:wbk%!4=icon% ș "Wimp_GetIconState",,wbk% b%!0=wbk%!8 b%!4=-wbk%!12 $b%!8=(wbk%!16-wbk%!8)-(1<volbar%!16 volume%=volbar%!16 ș Wimp_SetColour%,15 volume%>0 ȓ Ȑ volbar%!0+winx%,winy%-volbar%!4,scale*volume%,volbar%!12 ș Wimp_SetColour%,0:ȓ Ȑ volbar%!0+winx%,winy%-volbar%!4,4,volbar%!12 #wx%=volbar%!8-((scale*volume%)) 6 wx%+(scale*volume%)>=volbar%!8 wx%-=(1<=volbar%!8 wx%-=(1<0 ș Wimp_SetColour%,0 Sȓ Ȑ (volbar%!0+winx%+scale*volume%)+(1<0 ș Wimp_SetColour%,8 = (carousel_volume(carousel_playing%)*volume%)/100>=64 O ȓ Ȑ volbar%!0+winx%,winy%-volbar%!4,scale*64,((volbar%!12)/2)-(1<miny%=(wbk2%!16-wbk2%!24)-volbar%!4:maxy%=miny%+volbar%!12 A mx%>=minx% mx%<=maxx% my%>=miny% my%<=maxy% = =   update_slider(volbar%) G winminx%,winminy%,winmaxx%,winmaxy%,xp%,yp%,x%,y%,b%,scale,scale2 caret% $ș "Wimp_GetCaretPosition",,wbk% A wbk%!0=volbar%!20 wbk%!4=volbar%!24 caret%= caret%= scale=volbar%!8/volbar%!16 scale2=volbar%!8/100 block%!0=volbar%!20 $ș "Wimp_GetWindowState",,block% winminx%=block%!4-block%!20 winminy%=block%!8-block%!24  winmaxx%=block%!12-block%!20 winmaxy%=block%!16-block%!24 *winx%=winminx% 4winy%=winmaxy% >,ȗ ȓ winminx%+volbar%!0,my%,volbar%!8,0 H xp%=-1 R yp%=-1 \ fȗ x%,y%,b% p x%<>xp% z' newvol%=(x%-(winminx%+volbar%!0))  block%!0=volbar%!20  block%!4=volbar%!0-4 & block%!8=-volbar%!4-volbar%!12-4 & block%!12=block%!4+(volbar%!8)+8 ) block%!16=block%!8+(volbar%!12*2)+8 , ș "Wimp_UpdateWindow",,block% flag%  ȕ flag% / draw_volume_bar(volbar%,newvol%/scale) - ș Wimp_GetRectangle%,,block% flag%  l volbar%=control_vbar% set_volume(newvol%/scale,0):set_icon(control_window%,17, (newvol%/scale2)) [ volbar%=edit_vbar% redraw_vicon(wbk2%+64,edit_window%,6,12,12,((newvol%/scale)))  xp%=x%:yp%=y% + ș "Wimp_Poll",,block% wimp_action% ' wimp_action(wimp_action%,block%)  ticker_action $ . b%=0 8ȗ ȓ 0,0,scx%,scy% B L V > Toolbar library ` > Chris Rutter, 1995 j t$ decode_toolbarstring(string$) ~# pos%,next%,bit$,tool%,oldpos%  string$="" / string$,",")=0 toolbar%?0=(string$): pos%=1 tool%=0  next%=string$,",",pos%) "bit$=string$,pos%,next%-pos%) toolbar%?tool%=(bit$) tool%+=1 oldpos%=pos%:pos%=next%+1  pos%<2 (oldpos%=pos%-1)    create_toolbarwindow < splash% splash_notice("Creating toolbar window...",1) ' pos%,icon%,x%,y%,cx%,icon_window% (Q toolbar_width%<1 notify(msg("InvalidToolbarWidth")+(toolbar_width%)): 2T toolbar_height%<1 notify(msg("InvalidToolbarHeight")+(toolbar_height%)): <-ș "Wimp_WhichIcon",play_window%,wbk%,0,0 F pos%=wbk% Pȕ !pos%<>-1 Z, wbk%!1024=play_window%:wbk%!1028=!pos% d% ș "Wimp_DeleteIcon",,wbk%+1024 n pos%+=4 x 5!wbk%=play_window%:ș "Wimp_GetWindowState",,wbk% Iwbk%!12=(wbk%!4)+((toolicon_w%+(1<12 toolbar%?icon%=0 wbk%!0=play_window% wbk%!4=x% wbk%!8=y%-toolicon_h% wbk%!12=x%+toolicon_w% wbk%!16=y% 5wbk%!20=toolbar_icons%!(((toolbar%?icon%)*20)+16) wbk%!24=toolbar_null% 0wbk%!28=toolbar_icons%+((toolbar%?icon%)*20)  wbk%!32=1 "-ș "Wimp_CreateIcon",,wbk% icon_window% ,= icon_window%<>icon% notify(msg("WrongToolbarIcon")) 6%x%+=toolicon_w%+(1< H" toolbox_drag(handle%,icon%) Rblock%!0=toolbox_window% \$ș "Wimp_GetWindowState",,block% fbounding_box%!0=block%!4 pbounding_box%!4=block%!16 zbounding_box%!8=block%!4 bounding_box%!12=block%!16 bounding_box%!0-=block%!20 bounding_box%!4-=block%!24 bounding_box%!8-=block%!20 bounding_box%!12-=block%!24 +block%!0=toolbox_window%:block%!4=icon% "ș "Wimp_GetIconState",,block% bounding_box%!0+=block%!8 bounding_box%!4+=block%!12 bounding_box%!8+=block%!16 bounding_box%!12+=block%!20 Wș "DragASprite_Start",%01000001,sprite_pool%,handle_sprite(handle%),bounding_box% lastdrag_type%=2 lastdrag_window%=handle%   $ toolbar_setxy . w%,h% 85!wbk%=play_window%:ș "Wimp_GetWindowState",,wbk% B'w%=wbk%!12-wbk%!4:h%=wbk%!16-wbk%!8 Lwbk%!4=toolbar_x% Vwbk%!8=toolbar_y% `wbk%!12=wbk%!4+w% jwbk%!16=wbk%!8+h% tș "Wimp_OpenWindow",,wbk% ~   toolbar_parameters  pos%,string$ - pos%=0 toolbar_width%*toolbar_height% string$+=(toolbar%?pos%) ; pos%<>(toolbar_width%*toolbar_height%) string$+="," pos% =string$   > Windows library  > Chris Rutter, 1995   load_window(window$)  ind%,inds%,window%,s s=threewords(window$) 5ș "Wimp_LoadTemplate",,-1,-1,-1,-1,s,0 ,,inds% ( inds%>0 ind% inds%+1 2memory_needed%+=inds% < inds%>0 F= ș "Wimp_LoadTemplate",,block%,ind%,ind%+inds%+1,-1,s,0 P Z1 ș "Wimp_LoadTemplate",,block%,-1,-1,-1,s,0 d nblock%!64=sprite_pool% x,ș "Wimp_CreateWindow",,block% window% =window%   open_window(window%) !wbk3%=window% #ș "Wimp_GetWindowState",,wbk3% wbk3%!28=-1 ș "Wimp_OpenWindow",,wbk3% 8 window%=carousel_window% carousel_window_open%=   ) open_window_current_layer(window%) !wbk3%=window% #ș "Wimp_GetWindowState",,wbk3% ș "Wimp_OpenWindow",,wbk3%   " close_window(window%) ,!wbk3%=window% 6#ș "Wimp_GetWindowState",,wbk3% @ ș "Wimp_CloseWindow",,wbk3% J T ^ threewords(string$) h tbuf!0=0 r tbuf!4=0 | tbuf!8=0 $tbuf=string$ =tbuf !Sprites`~ G`F(a$d!qtmplay, swwwwwwwwwwwwwwww7s,wwwwwwwwwwww.L|r333333333333t,|"""Bvwwg$"""'L|t""sF d7""tL'"R𠠐r%"rL|rw'"%~ R"rw'q""s7""q""2w Qw#""'""""Swwww5""""r'""""""""""""""rwwwwwwwwwwwwwwwwww |tLLLLLLLLLLLLLLLL|swwwwwwwwwwwwwwww7file_130,, wwwwwwwwwwwwwwwwww1ww!!!!!!!!!!!!!Cww4wwAwwwwwwwwwww$CwwBwDDDDDDwD4wwwDxwD(CwwrwDwwwwwD4ww!w#"""""w#"CwwrwDwwwwwwD4wwwDxwD(Cwwww4wwAwwwwwwwwwww$Cww4ww!!!!!!!!!!!!!Cww144444444444444wwwwwwwwwwwwwwwwww$!Sprites22\~ I~\FAc$`|!qtmplay!,pwwwwwwwwwwwwwwwwr ,|»t,,,,,,,,,,,,,,L|t,,wwwwwwwwwwww,L|rDDDDDDDDDDDDt,|DDDDDDDDDDDD'L|rwwwwwwwwwwwwt,|""""""""""""'L|r"""Bwwww$"""t,|""BG :t$""'L|r""5𠐐S""tL'"B 9$"rL|'"S0𠐐5"rtpw'"7 s"rwq'"tp"r w""y |""ww""p""ww""5 S""ww""s7""wq'""2' r#""rq'"""R7s%"""rq'""""Cvwwg4""""rq'""""""""""""""rwwwwwwwwwwwwwwwwww |t,,,,,,,,,,,,,,,L|tLLLLLLLLLLLLLLLL|tpwwwwwwwwwwwwwwwwfile_130!,,wwwwwwwwwwwwwwwwwr t !!!!!!!!!!!!!As2t qwwsr!!!!!Asrwww''2t q#qwptr!!!!As8wG7''2t qw#qptsr!!!Asr8Gww7''2t qwwqswsr!!AsxGw{7''2t qwpt#њwsr!AsG8}ww7''2t qptww#qws"As"7x8www'2t rqwww#qwpt"As"'x8wG72t qrqwww#qpt#As''x8Gww2t !qrqwwwqs'As''xGw2t !!qrqwpt#њ'As''G8}2t !!!qrptww#q(As''7x82t !!!!qrqwww#'As''xx2t !!!!!!!!!!!!!As2tBCCCCCCCCCCCCCCs'444444444444444twwwwwwwwwwwwwwwwwChoicesA"xAG{*xCountry=UK ToolbarX=2 ToolbarY=134 ToolbarWidth=4 ToolbarHeight=2 ToolbarLayout=10,9,7,11,1,3,5,4,7 TransparentSoundSystem=True TrackDirectory= TrackSmallIcons=True TrackX=208 TrackY=10 TrackWidth=466 TrackHeight=364 ToolboxLock=1 ToolboxLocked=5 Volume=64 DefCarousel= SaveCarLose=True PlayDefault=False SoundQuality=32 Coded"QEdG?~ ,X$_-,J  0 :  Y*    08 Y    08Y    08Y    0 8ʣ\jDynamite O  P , R  0 0Z 0 0JZ08pHP*(A @00A(A0 8 A `P@4T4@VV:\01 F  ` 2  0- F` @ `dP!5   -0`FPU_-0O Ď h) ⨂  0$  00 S@h0@3 0@3 PUPB 0@h9   0  060C#1r23: S9p :pp8  0@ 0C@D 0@h h0h  0 B0C 0 h0hError This file is part of QTMPlay -- it cannot be run separatelyQTMPlayDynamite"=aG$O+D,< |Dynamite@-DOA-p1h l 48LH@D<UPQ(A0 , Q$Q$`6opp 6``0c@c@uT0c@c@u老 0@P`p&fu0uTaskManagerWindowManagerDynamiteT 3P- ^(PU^$H^+ ,0NP!dQpQQp  Y 4PZ PfP@-$Z N*--$ @xs+X 8P倠Z@-J^(J ^!@$ % A %Ѝ@- P[! Q![!@8 5$ KK[ Q@Ѝޓ?[C [ 0).GKsy?W%25EZ%T DynamiteAllocFreeFreeWithIDBlockInfoChangeIDResizeMidExtendSaveLoadReduceCompactLockUnlockClaimAnchorReleaseAnchorReadSpriteSizeDescribeIntegrityCheckChangeAnchor@- ,0# 48@D<@-@ R 0@0D0hDD 0C0S@-@@@-D R C-^ *0Y pN W88pG'@- `䂃C-Y'$ $ @N%,0S(0*!j@ n M H SY ЍTETE,* up uxCNo pages leftG-Y. %h,P8uYY- $ NeH (0 @M ` S `YЍZ$``p%a*,a* N P$@-\P 4  A @-0Tj0 Ѝ @@->su{PC @-4 ^b 0Q^0S@- y r@-P  j 40^c0P^Ѝ@@- AP @>@-40^ %c0PR ^PU@BPU 0 N>@ 4 0N0Q (N0,@3z:>@4Pn>@@-<8^v-4^PUapU- R   pP`V B P B    ^P@@@ F A 5^X^4p `PG@4,5"U% E4(@P  Q ,0   @@@ C<<C@@-~(|:@@-<<888Z8 P? $  D0$? @DP$  `Dp$D$PP? :%:E p:%`:E? P:%@:E 0:% :E%P@- u Bp{C-P`prjWࠡ^ k@VfWa K 0 0@0CS'-^4  X ^ 0S@j A ? u 004Xi P@4000S 0C  T  T0@@00T  A 0N @CЍC@-#P@U?SN^05@-4`^PUf`pU   :""* R p:" " * P000P@Ѝp@@- 0 u ru@-4@^ %d0t$t sR(s sr Qs q @- M   ЍJQ'QIQ@-'Q JQ H^HH~HHHpL@-Dynamite@-H HTASKUߌL^+ $ HT 70  <8^T܁PɣPPP<<HDynamiteCompactor H$DynamiteLauncher@-H^<; R r <4KL5[\6klx B7; 0<4KL B5; @<0 B4; <0#4 R_-&+ R  RC1C R r x1x  B 1  B 010  B .<0` Rq` R㋱ k R% R1:987|6{l5k\4[L3KG  R r x16l5k\4[L3Kp@  B 14L3K@  B 03  B 03.<0` RHeap base: &Heap size: &Area size: &Block address: &Block size : &Block ID : &Block anchor : &Block is free Dynamite is in use and cannot close downDynamite cannot close down (couldn't release vector)Unable to move memoryUnknown Dynamite operationNo pages leftӀCan't free all blocks with ID 0ӀBad anchor passed to DynamiteӀCouldn't allocate memoryӀBad arguments passed to Dynamite_(Mid)ExtendӀDynamite area corrupt: anchor or anchor address corruptedӀDynamite area corrupt: block length corruptedӀDynamite area corrupt: anchor address corruptedUse *Desktop to start the Dynamite compactor*Dynamite_Clear will empty the Dynamite heap, releasing all the memory it was using. Warning: No confirmation is requested; if applications are using Dynaite, they will almost certainly crash. Syntax: *Dynamite_ClearThe DynamiteCompactor task performs background compaction on the Dynamite heap, reducing the amount of memory the area uses. Do not use *Desktop_DynamiteCompactor; use *Desktop instead. Syntax: *Desktop_DynamiteCompactor*Dynamite_HeapDump displays diagnostic information about the state of Dynamite's memory area. This information may be of use to programmers debugging applications which use Dynamite. Syntax: *Dynamite_HeapDumpDynamite 1.20 (29 Jul 1997) 1997 StraylightFormatsR"RGDC64V"VGdCode S"c[ Gf^QTMLx| x"b,5EIWaeIejot{FC64Denys Bogatz$OMPnK@dQpE> 0p'4 0@  0PSID#v @dB?-{pp4@dh4@dN@d"@d ?StartCodeInitialiseRecogniseExaminePlaySampleSetQualitySetCurrentPositionSetVolumeSetTransparentFinaliseReadSongAuthorReadSongNameReadSongDurationLoadRestartPauseStopReadSizeReadVolumeReadSampleNameReadSampleLengthO-- Su p0C ch0㖏  0 D0   0-$ 0 @G6VH܁-r.@d  00   K㖏psid_load(%s)Load = %x, Init = %x, Play = %xActually loading now~psid_loadPSIDO-.끏8O- AP- -0Р %0s0 x0 X- X R O-ppWʃO-p7ဏ```$Id: QTML.s,v 0.01 1997/02/13 00:22:48 jww Exp $$Id: a.out,v 0.04 1997/01/31 18:27:41 jww Exp $$Id: .s,v 0.01 1997/02/13 20:22:48 jww Exp $$Id: a.out,v 0.05 1997/02/19 17:23:11 jww Exp $$Id: PSID.s,v 0.01 1997/02/02 22:30:21 jww Exp $$Id: a.out,v 0.04 1997/01/31 18:27:41 jww Exp $$Id: SysLog.s,v 0.01 1997/02/18 23:39:00 jww Exp $$Id: a.out,v 0.05 1997/02/19 17:23:11 jww Exp $$Id: string.s,v 0.01 1997/01/28 18:35:35 jww Exp $$Id: a.out,v 0.04 1997/01/31 18:27:41 jww Exp $Module`Lf:`LF-.,0d `PC64C64 SID-Emulator! No Help here!C64operation _-Ty T Tn T _-p O BOK@_@OK5KA@DWD_  QQ Q _)Y4P[ PP j T@P`d/1 B唲 @0@0PPPVSPPUPCP \1".1P`dcB @0@00VPPPUPCP \1.1y a就 `0`0PPPSPUPCP \1Q/1^ AO@8PT@1 0PWe%QYE@`gf&aiFYPPUPC P \/O1?.O1D 4``,`0#TPSPUPC P \1 P \  C64'er!_-8O\㰐I  Z XO ZڤpⰠO PPUPB Y " 0@@D  0X_-X\OI  ZHO B Z|O@40 < =_-_-0 @PrϏˌ 0``PE`PE`b婯OJ(0[ 5    QD_ L0 @PJΏˌ 0``PE`PE` bӯOJ`a 0@ 0C#d`PE0PE@PExpG `p4 0`0``p``t `}@P@P@`0`}@P@P@`0ppp|@'DpW@W@0@PE`0}@P@P@0|@ DP@P@p0t`}@P@P@p0t```|@&D`V@V@`00@0}@P@P@57p0d X-+Wp WpWp$p0dXWp WpWpp0dX  Wp WpWp`00@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbbbddddffffhhhhjjjjllllnnnnpppprrrrttttvvvvxxxxzzzz||||~~~~߭ν3߹Plv{Zy±"ߨބ]؏v`wUݓ]䧣l㴸ҕiﻕgԠ釚ϔrĊӿvmĩˣѦڮ˺ͫqgփѰhlߪيh禮fO [d)sm#ϨԱJǝʷ˵ٱǾĢ}©ɸ\(u_ȲٵĨÃھЫxTrǷ7͕*ǣָcj7Si@ٛ߳ЧӨRܲxdpң\ʋꌂVqf;%ڱyޗ`asȾǼy֪)hqƬƔޜ?ϴerϭ׮,и綽Ħ䪓wC2ޔ壧yɾΏkknѯ̗ovΟӽɓң̋InfX̯̹u麙edzIǚ-Ib֭qkcȺ^oWϣжk~ӻƸeǴ㪖κݠvpVq攖xAOՂF赵ܤ¸ӻ۶}繳֘(#܈oҮԬΣfƓx׎ևqܸ>D뽰bԶt۳ݦh⤱eP)ҧӶyʿj~ʣӉؾJz؀Ͻ2ҋPpO׫,Ѳ[M̭HβΖp+鑞ꇾıjm夤u0w%Į菵1_ह˿wuΎgӥ짋~)&^慠ěՏٮnqžǸHȦЗ͇ѽ䤰륫h&ΫΦ>x:lz9Ҷ^q꘍g踻~Ϊ<|c㲗(}ɫa›ĦرV|ڤ0spGݾAdI"~˕غ،ܣӅt̤ϲ :grtĵL۲v>Z˧Ϥ֐gێ_Fz˷FŧŔy餐ieע.κܯ3wֳdGۏ箠qɖ̰姲8H˂3ĤdEFcحҽӸn~a˜餉hʵb̄ТϾ$b çvθڽمс$ޮmŦجD B ENDE h.';---------------------------------- h8.RDA hB.RDB hL.RDC hV B ILLEGAL h`';---------------------------------- hj.RDD;CMP ABX ht! LDRB R7,[R3,#1] h~! LDRB R8,[R3,#2] h ADD R3,R3,#3 h% ADD R7,R7,R8,LSL#8 h ADD R7,R7,R1 h" LDRB R6,[R11,R7] h SUB R6,R0,R6 h% R4,R4,#%01111100 h CMP R6,#0 h RPL R4,R4,#%01 h REQ R4,R4,#%10 h R6,R6,#255 h CMP R6,#&80 h& RGE R4,R4,#%10000000 i B ENDE i ';---------------------------------- i.RDE;DEC ABX i! LDRB R7,[R3,#1] i(! LDRB R8,[R3,#2] i2 ADD R3,R3,#3 i<% ADD R6,R7,R8,LSL#8 iF ADD R6,R6,R1 iP" LDRB R7,[R11,R6] iZ SUB R7,R7,#1 id" STRB R7,[R11,R6] in R7,R7,#255 ix% R4,R4,#%01111101 i CMP R7,#0 i& REQ R4,R4,#%00000010 i CMP R7,#&80 i& RGE R4,R4,#%10000000 i B ENDE i';---------------------------------- i.RDF i B ILLEGAL i';---------------------------------- i .RE0;CPX# i! LDRB R6,[R3,#1] i ADD R3,R3,#2 i SUB R6,R1,R6 j% R4,R4,#%01111100 j CMP R6,#0 j RPL R4,R4,#%01 j" REQ R4,R4,#%10 j, R6,R6,#255 j6 CMP R6,#&80 j@& RGE R4,R4,#%10000000 jJ B ENDE jT';---------------------------------- j^.RE1;SBC(,X) jh! LDRB R6,[R3,#1] jr ADD R3,R3,#2 j| ADD R6,R6,R1 j R6,R6,#255 j" LDRB R7,[R11,R6] j ADD R6,R6,#1 j R6,R6,#255 j" LDRB R8,[R11,R6] j% ADD R7,R7,R8,LSL#8 j" LDRB R6,[R11,R7] j3 SUB R0,R0,R6 ;----MAKRO-D j R8,R4,#1 j R8,R8,#1 j SUB R0,R0,R8 j% R4,R4,#%01111100 j CMP R0,#0 k RPL R4,R4,#1 k& REQ R4,R4,#%00000010 k R0,R0,#255 k& CMP R0,#&80 k0& RGE R4,R4,#%10000000 k:3 B ENDE ;----MAKRO-D kD';---------------------------------- kN.RE2 kX.RE3 kb B ILLEGAL kl';---------------------------------- kv.RE4;CPX ZP k! LDRB R6,[R3,#1] k ADD R3,R3,#2 k" LDRB R6,[R11,R6] k SUB R6,R1,R6 k% R4,R4,#%01111100 k CMP R6,#0 k RPL R4,R4,#%01 k REQ R4,R4,#%10 k R6,R6,#255 k CMP R6,#&80 k& RGE R4,R4,#%10000000 k B ENDE k';---------------------------------- l.RE5;SBC ZP l ! LDRB R6,[R3,#1] l ADD R3,R3,#2 l " LDRB R6,[R11,R6] l*3 SUB R0,R0,R6 ;----MAKRO-D l4 R8,R4,#1 l> R8,R8,#1 lH SUB R0,R0,R8 lR% R4,R4,#%01111100 l\ CMP R0,#0 lf RPL R4,R4,#1 lp& REQ R4,R4,#%00000010 lz R0,R0,#255 l CMP R0,#&80 l& RGE R4,R4,#%10000000 l3 B ENDE ;----MAKRO-D l';---------------------------------- l.RE6;INC ZP l! LDRB R6,[R3,#1] l ADD R3,R3,#2 l" LDRB R7,[R11,R6] l ADD R7,R7,#1 l" STRB R7,[R11,R6] l% R4,R4,#%01111101 l R7,R7,#255 l CMP R7,#0 m REQ R4,R4,#%10 m CMP R7,#&80 m& RGE R4,R4,#%10000000 m$ B ENDE m.';---------------------------------- m8.RE7 mB B ILLEGAL mL';---------------------------------- mV .RE8;INX m` ADD R3,R3,#1 mj ADD R1,R1,#1 mt R1,R1,#255 m~% R4,R4,#%01111101 m CMP R1,#0 m& REQ R4,R4,#%00000010 m CMP R1,#&80 m& RGE R4,R4,#%10000000 m B ENDE m';---------------------------------- m .RE9;SBC# m! LDRB R6,[R3,#1] m ADD R3,R3,#2 m3 SUB R0,R0,R6 ;----MAKRO-D m R8,R4,#1 m R8,R8,#1 n SUB R0,R0,R8 n % R4,R4,#%01111100 n CMP R0,#0 n RPL R4,R4,#1 n(& REQ R4,R4,#%00000010 n2 R0,R0,#255 n< CMP R0,#&80 nF& RGE R4,R4,#%10000000 nP3 B ENDE ;----MAKRO-D nZ';---------------------------------- nd .REA;NOP nn ADD R3,R3,#1 nx B ENDE n';---------------------------------- n.REB n B ILLEGAL n';---------------------------------- n.REC;CPX AB n! LDRB R7,[R3,#1] n! LDRB R8,[R3,#2] n ADD R3,R3,#3 n% ADD R7,R7,R8,LSL#8 n" LDRB R6,[R11,R7] n SUB R6,R1,R6 n% R4,R4,#%01111100 n CMP R6,#0 o RPL R4,R4,#%01 o REQ R4,R4,#%10 o R6,R6,#255 o" CMP R6,#&80 o,& RGE R4,R4,#%10000000 o6 B ENDE o@';---------------------------------- oJ.RED;SBC AB oT! LDRB R7,[R3,#1] o^! LDRB R8,[R3,#2] oh ADD R3,R3,#3 or% ADD R7,R7,R8,LSL#8 o|" LDRB R6,[R11,R7] o3 SUB R0,R0,R6 ;----MAKRO-D o R8,R4,#1 o R8,R8,#1 o SUB R0,R0,R8 o% R4,R4,#%01111100 o CMP R0,#0 o RPL R4,R4,#1 o& REQ R4,R4,#%00000010 o R0,R0,#255 o CMP R0,#&80 o& RGE R4,R4,#%10000000 o3 B ENDE ;----MAKRO-D o';---------------------------------- p.REE;INC AB p! LDRB R7,[R3,#1] p! LDRB R8,[R3,#2] p& ADD R3,R3,#3 p0% ADD R6,R7,R8,LSL#8 p:" LDRB R7,[R11,R6] pD ADD R7,R7,#1 pN" STRB R7,[R11,R6] pX R7,R7,#255 pb% R4,R4,#%01111101 pl CMP R7,#0 pv& REQ R4,R4,#%00000010 p CMP R7,#&80 p& RGE R4,R4,#%10000000 p B ENDE p';---------------------------------- p.REF p B ILLEGAL p';---------------------------------- p .RF0;BEQ p! LDRB R6,[R3,#1] p ADD R3,R3,#2 p$ TST R4,#%00000010 p BEQ ENDE p$ TST R6,#%10000000 q ; R6,R6,#&7F q  ADD R3,R3,R6 q" SUBNE R3,R3,#&100 q  B ENDE q*';---------------------------------- q4.RF1;SBC(),Y q>! LDRB R6,[R3,#1] qH ADD R3,R3,#2 qR ADD R6,R6,R11 q\ LDRB R7,[R6] qf! LDRB R8,[R6,#1] qp% ADD R7,R7,R8,LSL#8 qz ADD R7,R7,R2 q" LDRB R6,[R11,R7] q3 SUB R0,R0,R6 ;----MAKRO-D q R8,R4,#1 q R8,R8,#1 q SUB R0,R0,R8 q% R4,R4,#%01111100 q CMP R0,#0 q RPL R4,R4,#1 q& REQ R4,R4,#%00000010 q R0,R0,#255 q CMP R0,#&80 q& RGE R4,R4,#%10000000 q3 B ENDE ;----MAKRO-D r';---------------------------------- r.RF2 r.RF3 r$.RF4 r. B ILLEGAL r8';---------------------------------- rB.RF5;SBC ZPX rL! LDRB R6,[R3,#1] rV ADD R3,R3,#2 r` ADD R6,R6,R1 rj" LDRB R6,[R11,R6] rt3 SUB R0,R0,R6 ;----MAKRO-D r~ R8,R4,#1 r R8,R8,#1 r SUB R0,R0,R8 r% R4,R4,#%01111100 r CMP R0,#0 r RPL R4,R4,#1 r& REQ R4,R4,#%00000010 r R0,R0,#255 r CMP R0,#&80 r& RGE R4,R4,#%10000000 r3 B ENDE ;----MAKRO-D r';---------------------------------- r.RF6;INC ZPX s! LDRB R6,[R3,#1] s  ADD R3,R3,#2 s ADD R6,R6,R1 s" LDRB R7,[R11,R6] s( ADD R7,R7,#1 s2" STRB R7,[R11,R6] s<% R4,R4,#%01111101 sF R7,R7,#255 sP CMP R7,#0 sZ REQ R4,R4,#%10 sd CMP R7,#&80 sn& RGE R4,R4,#%10000000 sx B ENDE s';---------------------------------- s.RF7 s B ILLEGAL s';---------------------------------- s .RF8;SED s ADD R3,R3,#1 s& R R4,R4,#%00001000 s B ENDE s';---------------------------------- s.RF9;SBC ABY s! LDRB R7,[R3,#1] s! LDRB R8,[R3,#2] s ADD R3,R3,#3 t% ADD R7,R7,R8,LSL#8 t ADD R7,R7,R2 t" LDRB R6,[R11,R7] t"3 SUB R0,R0,R6 ;----MAKRO-D t, R8,R4,#1 t6 R8,R8,#1 t@ SUB R0,R0,R8 tJ% R4,R4,#%01111100 tT CMP R0,#0 t^ RPL R4,R4,#1 th& REQ R4,R4,#%00000010 tr R0,R0,#255 t| CMP R0,#&80 t& RGE R4,R4,#%10000000 t3 B ENDE ;----MAKRO-D t';---------------------------------- t.RFA t.RFB t.RFC t B ILLEGAL t';---------------------------------- t.RFD;SBC ABX t! LDRB R7,[R3,#1] t! LDRB R8,[R3,#2] t ADD R3,R3,#3 t% ADD R7,R7,R8,LSL#8 u ADD R7,R7,R1 u" LDRB R6,[R11,R7] u3 SUB R0,R0,R6 ;----MAKRO-D u& R8,R4,#1 u0 R8,R8,#1 u: SUB R0,R0,R8 uD% R4,R4,#%01111100 uN CMP R0,#0 uX RPL R4,R4,#1 ub& REQ R4,R4,#%00000010 ul R0,R0,#255 uv CMP R0,#&80 u& RGE R4,R4,#%10000000 u3 B ENDE ;----MAKRO-D u';---------------------------------- u.RFE;INC ABX u! LDRB R7,[R3,#1] u! LDRB R8,[R3,#2] u ADD R3,R3,#3 u% ADD R6,R7,R8,LSL#8 u ADD R6,R6,R1 u" LDRB R7,[R11,R6] u ADD R7,R7,#1 u" STRB R7,[R11,R6] u R7,R7,#255 v% R4,R4,#%01111101 v  CMP R7,#0 v& REQ R4,R4,#%00000010 v  CMP R7,#&80 v*& RGE R4,R4,#%10000000 v4 B ENDE v>';---------------------------------- vH.RFF vR B ILLEGAL v\';---------------------------------- vf .DECODER vpEQUD R00-ABHIER vzEQUD R01-ABHIER vEQUD R02-ABHIER vEQUD R03-ABHIER vEQUD R04-ABHIER vEQUD R05-ABHIER vEQUD R06-ABHIER vEQUD R07-ABHIER vEQUD R08-ABHIER vEQUD R09-ABHIER vEQUD R0A-ABHIER vEQUD R0B-ABHIER vEQUD R0C-ABHIER vEQUD R0D-ABHIER vEQUD R0E-ABHIER wEQUD R0F-ABHIER w wEQUD R10-ABHIER w$EQUD R11-ABHIER w.EQUD R12-ABHIER w8EQUD R13-ABHIER wBEQUD R14-ABHIER wLEQUD R15-ABHIER wVEQUD R16-ABHIER w`EQUD R17-ABHIER wjEQUD R18-ABHIER wtEQUD R19-ABHIER w~EQUD R1A-ABHIER wEQUD R1B-ABHIER wEQUD R1C-ABHIER wEQUD R1D-ABHIER wEQUD R1E-ABHIER wEQUD R1F-ABHIER w wEQUD R20-ABHIER wEQUD R21-ABHIER wEQUD R22-ABHIER wEQUD R23-ABHIER wEQUD R24-ABHIER wEQUD R25-ABHIER xEQUD R26-ABHIER x EQUD R27-ABHIER xEQUD R28-ABHIER xEQUD R29-ABHIER x(EQUD R2A-ABHIER x2EQUD R2B-ABHIER x<EQUD R2C-ABHIER xFEQUD R2D-ABHIER xPEQUD R2E-ABHIER xZEQUD R2F-ABHIER xd xnEQUD R30-ABHIER xxEQUD R31-ABHIER xEQUD R32-ABHIER xEQUD R33-ABHIER xEQUD R34-ABHIER xEQUD R35-ABHIER xEQUD R36-ABHIER xEQUD R37-ABHIER xEQUD R38-ABHIER xEQUD R39-ABHIER xEQUD R3A-ABHIER xEQUD R3B-ABHIER xEQUD R3C-ABHIER xEQUD R3D-ABHIER xEQUD R3E-ABHIER yEQUD R3F-ABHIER y yEQUD R40-ABHIER y"EQUD R41-ABHIER y,EQUD R42-ABHIER y6EQUD R43-ABHIER y@EQUD R44-ABHIER yJEQUD R45-ABHIER yTEQUD R46-ABHIER y^EQUD R47-ABHIER yhEQUD R48-ABHIER yrEQUD R49-ABHIER y|EQUD R4A-ABHIER yEQUD R4B-ABHIER yEQUD R4C-ABHIER yEQUD R4D-ABHIER yEQUD R4E-ABHIER yEQUD R4F-ABHIER y yEQUD R50-ABHIER yEQUD R51-ABHIER yEQUD R52-ABHIER yEQUD R53-ABHIER yEQUD R54-ABHIER yEQUD R55-ABHIER yEQUD R56-ABHIER zEQUD R57-ABHIER zEQUD R58-ABHIER zEQUD R59-ABHIER z&EQUD R5A-ABHIER z0EQUD R5B-ABHIER z:EQUD R5C-ABHIER zDEQUD R5D-ABHIER zNEQUD R5E-ABHIER zXEQUD R5F-ABHIER zb zlEQUD R60-ABHIER zvEQUD R61-ABHIER zEQUD R62-ABHIER zEQUD R63-ABHIER zEQUD R64-ABHIER zEQUD R65-ABHIER zEQUD R66-ABHIER zEQUD R67-ABHIER zEQUD R68-ABHIER zEQUD R69-ABHIER zEQUD R6A-ABHIER zEQUD R6B-ABHIER zEQUD R6C-ABHIER zEQUD R6D-ABHIER zEQUD R6E-ABHIER {EQUD R6F-ABHIER {  {EQUD R70-ABHIER { EQUD R71-ABHIER {*EQUD R72-ABHIER {4EQUD R73-ABHIER {>EQUD R74-ABHIER {HEQUD R75-ABHIER {REQUD R76-ABHIER {\EQUD R77-ABHIER {fEQUD R78-ABHIER {pEQUD R79-ABHIER {zEQUD R7A-ABHIER {EQUD R7B-ABHIER {EQUD R7C-ABHIER {EQUD R7D-ABHIER {EQUD R7E-ABHIER {EQUD R7F-ABHIER { {EQUD R80-ABHIER {EQUD R81-ABHIER {EQUD R82-ABHIER {EQUD R83-ABHIER {EQUD R84-ABHIER {EQUD R85-ABHIER {EQUD R86-ABHIER |EQUD R87-ABHIER |EQUD R88-ABHIER |EQUD R89-ABHIER |$EQUD R8A-ABHIER |.EQUD R8B-ABHIER |8EQUD R8C-ABHIER |BEQUD R8D-ABHIER |LEQUD R8E-ABHIER |VEQUD R8F-ABHIER |` |jEQUD R90-ABHIER |tEQUD R91-ABHIER |~EQUD R92-ABHIER |EQUD R93-ABHIER |EQUD R94-ABHIER |EQUD R95-ABHIER |EQUD R96-ABHIER |EQUD R97-ABHIER |EQUD R98-ABHIER |EQUD R99-ABHIER |EQUD R9A-ABHIER |EQUD R9B-ABHIER |EQUD R9C-ABHIER |EQUD R9D-ABHIER |EQUD R9E-ABHIER }EQUD R9F-ABHIER }  }EQUD RA0-ABHIER }EQUD RA1-ABHIER }(EQUD RA2-ABHIER }2EQUD RA3-ABHIER }<EQUD RA4-ABHIER }FEQUD RA5-ABHIER }PEQUD RA6-ABHIER }ZEQUD RA7-ABHIER }dEQUD RA8-ABHIER }nEQUD RA9-ABHIER }xEQUD RAA-ABHIER }EQUD RAB-ABHIER }EQUD RAC-ABHIER }EQUD PAD-ABHIER }EQUD RAE-ABHIER }EQUD RAF-ABHIER } }EQUD RB0-ABHIER }EQUD RB1-ABHIER }EQUD RB2-ABHIER }EQUD RB3-ABHIER }EQUD RB4-ABHIER }EQUD RB5-ABHIER }EQUD RB6-ABHIER ~EQUD RB7-ABHIER ~EQUD RB8-ABHIER ~EQUD RB9-ABHIER ~"EQUD RBA-ABHIER ~,EQUD RBB-ABHIER ~6EQUD RBC-ABHIER ~@EQUD RBD-ABHIER ~JEQUD RBE-ABHIER ~TEQUD RBF-ABHIER ~^ ~hEQUD RC0-ABHIER ~rEQUD RC1-ABHIER ~|EQUD RC2-ABHIER ~EQUD RC3-ABHIER ~EQUD RC4-ABHIER ~EQUD RC5-ABHIER ~EQUD RC6-ABHIER ~EQUD RC7-ABHIER ~EQUD RC8-ABHIER ~EQUD RC9-ABHIER ~EQUD RCA-ABHIER ~EQUD RCB-ABHIER ~EQUD RCC-ABHIER ~EQUD RCD-ABHIER ~EQUD RCE-ABHIER ~EQUD RCF-ABHIER  EQUD RD0-ABHIER EQUD RD1-ABHIER &EQUD RD2-ABHIER 0EQUD RD3-ABHIER :EQUD RD4-ABHIER DEQUD RD5-ABHIER NEQUD RD6-ABHIER XEQUD RD7-ABHIER bEQUD RD8-ABHIER lEQUD RD9-ABHIER vEQUD RDA-ABHIER EQUD RDB-ABHIER EQUD RDC-ABHIER EQUD RDD-ABHIER EQUD RDE-ABHIER EQUD RDF-ABHIER  EQUD RE0-ABHIER EQUD RE1-ABHIER EQUD RE2-ABHIER EQUD RE3-ABHIER EQUD RE4-ABHIER EQUD RE5-ABHIER EQUD RE6-ABHIER EQUD RE7-ABHIER EQUD RE8-ABHIER EQUD RE9-ABHIER EQUD REA-ABHIER *EQUD REB-ABHIER 4EQUD REC-ABHIER >EQUD RED-ABHIER HEQUD REE-ABHIER REQUD REF-ABHIER \ fEQUD RF0-ABHIER pEQUD RF1-ABHIER zEQUD RF2-ABHIER EQUD RF3-ABHIER EQUD RF4-ABHIER EQUD RF5-ABHIER EQUD RF6-ABHIER EQUD RF7-ABHIER EQUD RF8-ABHIER EQUD RF9-ABHIER EQUD RFA-ABHIER EQUD RFB-ABHIER EQUD RFC-ABHIER EQUD RFD-ABHIER EQUD RFE-ABHIER EQUD RFF-ABHIER  .LINTOLOG ]:P%+=(4096+4096):[OPT PASS .SPEICHERBLOCK $]:P%+=64*1024:[OPT PASS ..SPEICHERENDE 8] B PASS L V! "LOAD LINLOG "+~(LINTOLOG) `( "LOAD RAUSCHEN "+~(LINTOLOG+4096) j0 "LOAD Plingplong "+~(SPEICHERBLOCK+&6000) t ~2 "SAVE C64MOD "+~(CODE)+" "+~(SPEICHERENDE)  CODE:  _work(number_of_bytes)  P% = P% + number_of_bytes = Z%  _ADR(W, P%, LAB) WERT=(LAB-P%)-8:SI=0  WERT>0  SS = 0 24 $ (WERT 1<0 WERT2=(WERT (&3FF<0 WERT2=(WERT (&3FF< CMP R1,#0 ]H& REQ R4,R4,#%00000010 ]R CMP R1,#&80 ]\& RGE R4,R4,#%10000000 ]f B ENDE ]p';---------------------------------- ]z.RBF ] B ILLEGAL ]';---------------------------------- ] .RC0;CPY# ]! LDRB R6,[R3,#1] ] ADD R3,R3,#2 ] SUB R6,R2,R6 ]% R4,R4,#%01111100 ] CMP R6,#0 ] RPL R4,R4,#%01 ] REQ R4,R4,#%10 ] R6,R6,#255 ] CMP R6,#&80 ]& RGE R4,R4,#%10000000 ^ B ENDE ^';---------------------------------- ^.RC1;CMP(,X) ^$! LDRB R6,[R3,#1] ^. ADD R3,R3,#2 ^8 ADD R6,R6,R1 ^B R6,R6,#255 ^L" LDRB R7,[R11,R6] ^V ADD R6,R6,#1 ^` R6,R6,#255 ^j" LDRB R8,[R11,R6] ^t% ADD R7,R7,R8,LSL#8 ^~" LDRB R6,[R11,R7] ^ SUB R6,R0,R6 ^% R4,R4,#%01111100 ^ CMP R6,#0 ^ RPL R4,R4,#%01 ^ REQ R4,R4,#%10 ^ R6,R6,#255 ^ CMP R6,#&80 ^& RGE R4,R4,#%10000000 ^ B ENDE ^';---------------------------------- ^.RC2 ^.RC3 _ B ILLEGAL _ ';---------------------------------- _.RC4;CPY ZP _! LDRB R6,[R3,#1] _( ADD R3,R3,#2 _2" LDRB R6,[R11,R6] _< SUB R6,R2,R6 _F% R4,R4,#%01111100 _P CMP R6,#0 _Z RPL R4,R4,#%01 _d REQ R4,R4,#%10 _n R6,R6,#255 _x CMP R6,#&80 _& RGE R4,R4,#%10000000 _ B ENDE _';---------------------------------- _.RC5;CMP ZP _! LDRB R6,[R3,#1] _ ADD R3,R3,#2 _" LDRB R6,[R11,R6] _ SUB R6,R0,R6 _% R4,R4,#%01111100 _ CMP R6,#0 _ RPL R4,R4,#%01 _ REQ R4,R4,#%10 _ R6,R6,#255 ` CMP R6,#&80 `& RGE R4,R4,#%10000000 ` B ENDE `"';---------------------------------- `,.RC6;DEC ZP `6! LDRB R6,[R3,#1] `@ ADD R3,R3,#2 `J" LDRB R7,[R11,R6] `T SUB R7,R7,#1 `^" STRB R7,[R11,R6] `h R7,R7,#255 `r% R4,R4,#%01111101 `| CMP R7,#0 `& REQ R4,R4,#%00000010 ` CMP R7,#&80 `& RGE R4,R4,#%10000000 ` B ENDE `';---------------------------------- `.RC7 ` B ILLEGAL `';---------------------------------- ` .RC8;INY ` ADD R3,R3,#1 ` ADD R2,R2,#1 ` R2,R2,#255 `% R4,R4,#%01111101 a CMP R2,#0 a& REQ R4,R4,#%00000010 a CMP R2,#&80 a&& RGE R4,R4,#%10000000 a0 B ENDE a:';---------------------------------- aD .RC9;CMP# aN! LDRB R6,[R3,#1] aX ADD R3,R3,#2 ab SUB R6,R0,R6 al% R4,R4,#%01111100 av CMP R6,#0 a RPL R4,R4,#%01 a REQ R4,R4,#%10 a R6,R6,#255 a CMP R6,#&80 a& RGE R4,R4,#%10000000 a B ENDE a';---------------------------------- a .RCA;DEX a ADD R3,R3,#1 a SUB R1,R1,#1 a R1,R1,#255 a% R4,R4,#%01111101 a CMP R1,#0 b& REQ R4,R4,#%00000010 b  CMP R1,#&80 b& RGE R4,R4,#%10000000 b  B ENDE b*';---------------------------------- b4.RCB b> B ILLEGAL bH';---------------------------------- bR.RCC;CPY AB b\! LDRB R7,[R3,#1] bf! LDRB R8,[R3,#2] bp ADD R3,R3,#3 bz% ADD R7,R7,R8,LSL#8 b" LDRB R6,[R11,R7] b SUB R6,R2,R6 b% R4,R4,#%01111100 b CMP R6,#0 b RPL R4,R4,#%01 b REQ R4,R4,#%10 b R6,R6,#255 b CMP L`LZ`L{` `L1S3wg|g ud dԙgԭgԩԍ ԍ` `dЩЩЩX`||g|e zbe zbe zb| =d0΀m`g)L`LZ`L{` `L1S3wg|g ud dԙgԭgԩԍ ԍ` `dЩЩЩX`||g|e zbe zbe zb| =d0΀m`g)8gL` @a799i=cԹi)#hg}55'eԹeL.a .aNLbLa99789`ԽԽs}4igs`84gs`N`;^}O}MYLOLMNLb8^OMݨ LݧLMNLbԽ`:^KKLwbIIg JIJIJ}:iLhb8::}t::Lb}| b}L`u`awq uLb`Ȣ)?H}Nh}_f`f7f90f8uggggwȱ)@)}dmLc)L d}'exey5}N(yLxMMLNLxcxԭyԤuLdfԹfԩsgJJJJg  g4@g:0t )tg:JgI`gJJJK`g)Og^78bԽ9ԝ`JgI`9ci)`}7bݫԝ`c`wwwg)wvgvg̅g ud d`pvgPpgpp_@qfqm`vmdj da`vnkk dhgvorl don`gFejn~~i~ir~`SOUNDMASTER BY SOEDESOFT  "$')+.147:>AEINRW\bhnu|'9K_t-NqCtZ-|(R79ZO ѣnhq<Fgy<)D(ͺxSqBOt3  "&1< %,7= "&1.RE6;INC ZP lH! LDRB R6,[R3,#1] lR ADD R3,R3,#2 l\" LDRB R7,[R11,R6] lf ADD R7,R7,#1 lp" STRB R7,[R11,R6] lz% R4,R4,#%01111101 l R7,R7,#255 l CMP R7,#0 l REQ R4,R4,#%10 l CMP R7,#&80 l& RGE R4,R4,#%10000000 l B ENDE l';---------------------------------- l.RE7 l B ILLEGAL l';---------------------------------- l .RE8;INX l ADD R3,R3,#1 l ADD R1,R1,#1 m R1,R1,#255 m% R4,R4,#%01111101 m CMP R1,#0 m$& REQ R4,R4,#%00000010 m. CMP R1,#&80 m8& RGE R4,R4,#%10000000 mB B ENDE mL';---------------------------------- mV .RE9;SBC# m`! LDRB R6,[R3,#1] mj ADD R3,R3,#2 mt3 SUB R0,R0,R6 ;----MAKRO-D m~ R8,R4,#1 m R8,R8,#1 m SUB R0,R0,R8 m% R4,R4,#%01111100 m CMP R0,#0 m RPL R4,R4,#1 m& REQ R4,R4,#%00000010 m R0,R0,#255 m CMP R0,#&80 m& RGE R4,R4,#%10000000 m3 B ENDE ;----MAKRO-D m';---------------------------------- m .REA;NOP n ADD R3,R3,#1 n  B ENDE n';---------------------------------- n.REB n( B ILLEGAL n2';---------------------------------- n<.REC;CPX AB nF! LDRB R7,[R3,#1] nP! LDRB R8,[R3,#2] nZ ADD R3,R3,#3 nd% ADD R7,R7,R8,LSL#8 nn" LDRB R6,[R11,R7] nx SUB R6,R1,R6 n% R4,R4,#%01111100 n CMP R6,#0 n RPL R4,R4,#%01 n REQ R4,R4,#%10 n R6,R6,#255 n CMP R6,#&80 n& RGE R4,R4,#%10000000 n B ENDE n';---------------------------------- n.RED;SBC AB n! LDRB R7,[R3,#1] n! LDRB R8,[R3,#2] n ADD R3,R3,#3 o% ADD R7,R7,R8,LSL#8 o" LDRB R6,[R11,R7] o3 SUB R0,R0,R6 ;----MAKRO-D o" R8,R4,#1 o, R8,R8,#1 o6 SUB R0,R0,R8 o@% R4,R4,#%01111100 oJ CMP R0,#0 oT RPL R4,R4,#1 o^& REQ R4,R4,#%00000010 oh R0,R0,#255 or CMP R0,#&80 o|& RGE R4,R4,#%10000000 o3 B ENDE ;----MAKRO-D o';---------------------------------- o.REE;INC AB o! LDRB R7,[R3,#1] o! LDRB R8,[R3,#2] o ADD R3,R3,#3 o% ADD R6,R7,R8,LSL#8 o" LDRB R7,[R11,R6] o ADD R7,R7,#1 o" STRB R7,[R11,R6] o R7,R7,#255 o% R4,R4,#%01111101 o CMP R7,#0 p& REQ R4,R4,#%00000010 p CMP R7,#&80 p& RGE R4,R4,#%10000000 p& B ENDE p0';---------------------------------- p:.REF pD B ILLEGAL pN';---------------------------------- pX .RF0;BEQ pb! LDRB R6,[R3,#1] pl ADD R3,R3,#2 pv$ TST R4,#%00000010 p BEQ ENDE p$ TST R6,#%10000000 p ; R6,R6,#&7F p ADD R3,R3,R6 p" SUBNE R3,R3,#&100 p B ENDE p';---------------------------------- p.RF1;SBC(),Y p! LDRB R6,[R3,#1] p ADD R3,R3,#2 p ADD R6,R6,R11 p LDRB R7,[R6] p! LDRB R8,[R6,#1] q% ADD R7,R7,R8,LSL#8 q  ADD R7,R7,R2 q" LDRB R6,[R11,R7] q 3 SUB R0,R0,R6 ;----MAKRO-D q* R8,R4,#1 q4 R8,R8,#1 q> SUB R0,R0,R8 qH% R4,R4,#%01111100 qR CMP R0,#0 q\ RPL R4,R4,#1 qf& REQ R4,R4,#%00000010 qp R0,R0,#255 qz CMP R0,#&80 q& RGE R4,R4,#%10000000 q3 B ENDE ;----MAKRO-D q';---------------------------------- q.RF2 q.RF3 q.RF4 q B ILLEGAL q';---------------------------------- q.RF5;SBC ZPX q! LDRB R6,[R3,#1] q ADD R3,R3,#2 q ADD R6,R6,R1 q" LDRB R6,[R11,R6] r3 SUB R0,R0,R6 ;----MAKRO-D r R8,R4,#1 r R8,R8,#1 r$ SUB R0,R0,R8 r.% R4,R4,#%01111100 r8 CMP R0,#0 rB RPL R4,R4,#1 rL& REQ R4,R4,#%00000010 rV R0,R0,#255 r` CMP R0,#&80 rj& RGE R4,R4,#%10000000 rt3 B ENDE ;----MAKRO-D r~';---------------------------------- r.RF6;INC ZPX r! LDRB R6,[R3,#1] r ADD R3,R3,#2 r ADD R6,R6,R1 r" LDRB R7,[R11,R6] r ADD R7,R7,#1 r" STRB R7,[R11,R6] r% R4,R4,#%01111101 r R7,R7,#255 r CMP R7,#0 r REQ R4,R4,#%10 r CMP R7,#&80 s& RGE R4,R4,#%10000000 s  B ENDE s';---------------------------------- s.RF7 s( B ILLEGAL s2';---------------------------------- s< .RF8;SED sF ADD R3,R3,#1 sP& R R4,R4,#%00001000 sZ B ENDE sd';---------------------------------- sn.RF9;SBC ABY sx! LDRB R7,[R3,#1] s! LDRB R8,[R3,#2] s ADD R3,R3,#3 s% ADD R7,R7,R8,LSL#8 s ADD R7,R7,R2 s" LDRB R6,[R11,R7] s3 SUB R0,R0,R6 ;----MAKRO-D s R8,R4,#1 s R8,R8,#1 s SUB R0,R0,R8 s% R4,R4,#%01111100 s CMP R0,#0 s RPL R4,R4,#1 s& REQ R4,R4,#%00000010 t R0,R0,#255 t CMP R0,#&80 t& RGE R4,R4,#%10000000 t"3 B ENDE ;----MAKRO-D t,';---------------------------------- t6.RFA t@.RFB tJ.RFC tT B ILLEGAL t^';---------------------------------- th.RFD;SBC ABX tr! LDRB R7,[R3,#1] t|! LDRB R8,[R3,#2] t ADD R3,R3,#3 t% ADD R7,R7,R8,LSL#8 t ADD R7,R7,R1 t" LDRB R6,[R11,R7] t3 SUB R0,R0,R6 ;----MAKRO-D t R8,R4,#1 t R8,R8,#1 t SUB R0,R0,R8 t% R4,R4,#%01111100 t CMP R0,#0 t RPL R4,R4,#1 t& REQ R4,R4,#%00000010 t R0,R0,#255 u CMP R0,#&80 u& RGE R4,R4,#%10000000 u3 B ENDE ;----MAKRO-D u&';---------------------------------- u0.RFE;INC ABX u:! LDRB R7,[R3,#1] uD! LDRB R8,[R3,#2] uN ADD R3,R3,#3 uX% ADD R6,R7,R8,LSL#8 ub ADD R6,R6,R1 ul" LDRB R7,[R11,R6] uv ADD R7,R7,#1 u" STRB R7,[R11,R6] u R7,R7,#255 u% R4,R4,#%01111101 u CMP R7,#0 u& REQ R4,R4,#%00000010 u CMP R7,#&80 u& RGE R4,R4,#%10000000 u B ENDE u';---------------------------------- u.RFF u B ILLEGAL u';---------------------------------- u .DECODER vEQUD R00-ABHIER v EQUD R01-ABHIER vEQUD R02-ABHIER v EQUD R03-ABHIER v*EQUD R04-ABHIER v4EQUD R05-ABHIER v>EQUD R06-ABHIER vHEQUD R07-ABHIER vREQUD R08-ABHIER v\EQUD R09-ABHIER vfEQUD R0A-ABHIER vpEQUD R0B-ABHIER vzEQUD R0C-ABHIER vEQUD R0D-ABHIER vEQUD R0E-ABHIER vEQUD R0F-ABHIER v vEQUD R10-ABHIER vEQUD R11-ABHIER vEQUD R12-ABHIER vEQUD R13-ABHIER vEQUD R14-ABHIER vEQUD R15-ABHIER vEQUD R16-ABHIER vEQUD R17-ABHIER vEQUD R18-ABHIER wEQUD R19-ABHIER wEQUD R1A-ABHIER wEQUD R1B-ABHIER w$EQUD R1C-ABHIER w.EQUD R1D-ABHIER w8EQUD R1E-ABHIER wBEQUD R1F-ABHIER wL wVEQUD R20-ABHIER w`EQUD R21-ABHIER wjEQUD R22-ABHIER wtEQUD R23-ABHIER w~EQUD R24-ABHIER wEQUD R25-ABHIER wEQUD R26-ABHIER wEQUD R27-ABHIER wEQUD R28-ABHIER wEQUD R29-ABHIER wEQUD R2A-ABHIER wEQUD R2B-ABHIER wEQUD R2C-ABHIER wEQUD R2D-ABHIER wEQUD R2E-ABHIER wEQUD R2F-ABHIER w xEQUD R30-ABHIER x EQUD R31-ABHIER xEQUD R32-ABHIER xEQUD R33-ABHIER x(EQUD R34-ABHIER x2EQUD R35-ABHIER x<EQUD R36-ABHIER xFEQUD R37-ABHIER xPEQUD R38-ABHIER xZEQUD R39-ABHIER xdEQUD R3A-ABHIER xnEQUD R3B-ABHIER xxEQUD R3C-ABHIER xEQUD R3D-ABHIER xEQUD R3E-ABHIER xEQUD R3F-ABHIER x xEQUD R40-ABHIER xEQUD R41-ABHIER xEQUD R42-ABHIER xEQUD R43-ABHIER xEQUD R44-ABHIER xEQUD R45-ABHIER xEQUD R46-ABHIER xEQUD R47-ABHIER xEQUD R48-ABHIER yEQUD R49-ABHIER yEQUD R4A-ABHIER yEQUD R4B-ABHIER y"EQUD R4C-ABHIER y,EQUD R4D-ABHIER y6EQUD R4E-ABHIER y@EQUD R4F-ABHIER yJ yTEQUD R50-ABHIER y^EQUD R51-ABHIER yhEQUD R52-ABHIER yrEQUD R53-ABHIER y|EQUD R54-ABHIER yEQUD R55-ABHIER yEQUD R56-ABHIER yEQUD R57-ABHIER yEQUD R58-ABHIER yEQUD R59-ABHIER yEQUD R5A-ABHIER yEQUD R5B-ABHIER yEQUD R5C-ABHIER yEQUD R5D-ABHIER yEQUD R5E-ABHIER yEQUD R5F-ABHIER y yEQUD R60-ABHIER zEQUD R61-ABHIER zEQUD R62-ABHIER zEQUD R63-ABHIER z&EQUD R64-ABHIER z0EQUD R65-ABHIER z:EQUD R66-ABHIER zDEQUD R67-ABHIER zNEQUD R68-ABHIER zXEQUD R69-ABHIER zbEQUD R6A-ABHIER zlEQUD R6B-ABHIER zvEQUD R6C-ABHIER zEQUD R6D-ABHIER zEQUD R6E-ABHIER zEQUD R6F-ABHIER z zEQUD R70-ABHIER zEQUD R71-ABHIER zEQUD R72-ABHIER zEQUD R73-ABHIER zEQUD R74-ABHIER zEQUD R75-ABHIER zEQUD R76-ABHIER zEQUD R77-ABHIER zEQUD R78-ABHIER {EQUD R79-ABHIER { EQUD R7A-ABHIER {EQUD R7B-ABHIER { EQUD R7C-ABHIER {*EQUD R7D-ABHIER {4EQUD R7E-ABHIER {>EQUD R7F-ABHIER {H {REQUD R80-ABHIER {\EQUD R81-ABHIER {fEQUD R82-ABHIER {pEQUD R83-ABHIER {zEQUD R84-ABHIER {EQUD R85-ABHIER {EQUD R86-ABHIER {EQUD R87-ABHIER {EQUD R88-ABHIER {EQUD R89-ABHIER {EQUD R8A-ABHIER {EQUD R8B-ABHIER {EQUD R8C-ABHIER {EQUD R8D-ABHIER {EQUD R8E-ABHIER {EQUD R8F-ABHIER { {EQUD R90-ABHIER |EQUD R91-ABHIER |EQUD R92-ABHIER |EQUD R93-ABHIER |$EQUD R94-ABHIER |.EQUD R95-ABHIER |8EQUD R96-ABHIER |BEQUD R97-ABHIER |LEQUD R98-ABHIER |VEQUD R99-ABHIER |`EQUD R9A-ABHIER |jEQUD R9B-ABHIER |tEQUD R9C-ABHIER |~EQUD R9D-ABHIER |EQUD R9E-ABHIER |EQUD R9F-ABHIER | |EQUD RA0-ABHIER |EQUD RA1-ABHIER |EQUD RA2-ABHIER |EQUD RA3-ABHIER |EQUD RA4-ABHIER |EQUD RA5-ABHIER |EQUD RA6-ABHIER |EQUD RA7-ABHIER |EQUD RA8-ABHIER }EQUD RA9-ABHIER } EQUD RAA-ABHIER }EQUD RAB-ABHIER }EQUD RAC-ABHIER }(EQUD PAD-ABHIER }2EQUD RAE-ABHIER }<EQUD RAF-ABHIER }F }PEQUD RB0-ABHIER }ZEQUD RB1-ABHIER }dEQUD RB2-ABHIER }nEQUD RB3-ABHIER }xEQUD RB4-ABHIER }EQUD RB5-ABHIER }EQUD RB6-ABHIER }EQUD RB7-ABHIER }EQUD RB8-ABHIER }EQUD RB9-ABHIER }EQUD RBA-ABHIER }EQUD RBB-ABHIER }EQUD RBC-ABHIER }EQUD RBD-ABHIER }EQUD RBE-ABHIER }EQUD RBF-ABHIER } }EQUD RC0-ABHIER ~EQUD RC1-ABHIER ~EQUD RC2-ABHIER ~EQUD RC3-ABHIER ~"EQUD RC4-ABHIER ~,EQUD RC5-ABHIER ~6EQUD RC6-ABHIER ~@EQUD RC7-ABHIER ~JEQUD RC8-ABHIER ~TEQUD RC9-ABHIER ~^EQUD RCA-ABHIER ~hEQUD RCB-ABHIER ~rEQUD RCC-ABHIER ~|EQUD RCD-ABHIER ~EQUD RCE-ABHIER ~EQUD RCF-ABHIER ~ ~EQUD RD0-ABHIER ~EQUD RD1-ABHIER ~EQUD RD2-ABHIER ~EQUD RD3-ABHIER ~EQUD RD4-ABHIER ~EQUD RD5-ABHIER ~EQUD RD6-ABHIER ~EQUD RD7-ABHIER ~EQUD RD8-ABHIER ~EQUD RD9-ABHIER EQUD RDA-ABHIER EQUD RDB-ABHIER EQUD RDC-ABHIER &EQUD RDD-ABHIER 0EQUD RDE-ABHIER :EQUD RDF-ABHIER D NEQUD RE0-ABHIER XEQUD RE1-ABHIER bEQUD RE2-ABHIER lEQUD RE3-ABHIER vEQUD RE4-ABHIER EQUD RE5-ABHIER EQUD RE6-ABHIER EQUD RE7-ABHIER EQUD RE8-ABHIER EQUD RE9-ABHIER EQUD REA-ABHIER EQUD REB-ABHIER EQUD REC-ABHIER EQUD RED-ABHIER EQUD REE-ABHIER EQUD REF-ABHIER  EQUD RF0-ABHIER EQUD RF1-ABHIER EQUD RF2-ABHIER EQUD RF3-ABHIER EQUD RF4-ABHIER *EQUD RF5-ABHIER 4EQUD RF6-ABHIER >EQUD RF7-ABHIER HEQUD RF8-ABHIER REQUD RF9-ABHIER \EQUD RFA-ABHIER fEQUD RFB-ABHIER pEQUD RFC-ABHIER zEQUD RFD-ABHIER EQUD RFE-ABHIER EQUD RFF-ABHIER .LINTOLOG ]:P%+=(4096+4096):[OPT PASS .SPEICHERBLOCK ]:P%+=64*1024:[OPT PASS .SPEICHERENDE ] PASS  ! "LOAD LINLOG "+~(LINTOLOG) ( "LOAD RAUSCHEN "+~(LINTOLOG+4096) 0 "LOAD Plingplong "+~(SPEICHERBLOCK+&6000)  2 "SAVE C64MOD "+~(CODE)+" "+~(SPEICHERENDE)  $ CODE: . _work(number_of_bytes) 8 P% = P% + number_of_bytes B = Z% L _ADR(W, P%, LAB) VWERT=(LAB-P%)-8:SI=0 ` WERT>0 j SS = 0 24 t$ (WERT 1<0 WERT2=(WERT (&3FF<0 WERT2=(WERT (&3FF<O@8PT@1 0PWe%QYE@`gf&aiFYPPUPC P \/O1?.O1D 4``,`0#TPSPUPC P \1 P \  C64'er!_-8O\㰐I  Z XO ZڤpⰠO PPUPB Y " 0@@D  0X_-X\OI  ZHO B Z|O@40 < =_-_-0 @PrϏˌ 0``PE`PE`b婯OJ(0[ 5    QD_ L0 @PJΏˌ 0``PE`PE` bӯOJ`a 0@ 0C#d`PE0PE@PExpG `p4 0`0``p``t `}@P@P@`0`}@P@P@`0ppp|@'DpW@W@0@PE`0}@P@P@0|@ DP@P@p0t`}@P@P@p0t```|@&D`V@V@`00@0}@P@P@57p0d X-+Wp WpWp$p0dXWp WpWpp0dX  Wp WpWp`00@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbbbddddffffhhhhjjjjllllnnnnpppprrrrttttvvvvxxxxzzzz||||~~~~߭ν3߹Plv{Zy±"ߨބ]؏v`wUݓ]䧣l㴸ҕiﻕgԠ釚ϔrĊӿvmĩˣѦڮ˺ͫqgփѰhlߪيh禮fO [d)sm#ϨԱJǝʷ˵ٱǾĢ}©ɸ\(u_ȲٵĨÃھЫxTrǷ7͕*ǣָcj7Si@ٛ߳ЧӨRܲxdpң\ʋꌂVqf;%ڱyޗ`asȾǼy֪)hqƬƔޜ?ϴerϭ׮,и綽Ħ䪓wC2ޔ壧yɾΏkknѯ̗ovΟӽɓң̋InfX̯̹u麙edzIǚ-Ib֭qkcȺ^oWϣжk~ӻƸeǴ㪖κݠvpVq攖xAOՂF赵ܤ¸ӻ۶}繳֘(#܈oҮԬΣfƓx׎ևqܸ>D뽰bԶt۳ݦh⤱eP)ҧӶyʿj~ʣӉؾJz؀Ͻ2ҋPpO׫,Ѳ[M̭HβΖp+鑞ꇾıjm夤u0w%Į菵1_ह˿wuΎgӥ짋~)&^慠ěՏٮnqžǸHȦЗ͇ѽ䤰륫h&ΫΦ>x:lz9Ҷ^q꘍g踻~Ϊ<|c㲗(}ɫa›ĦرV|ڤ0spGݾAdI"~˕غ،ܣӅt̤ϲ :grtĵL۲v>Z˧Ϥ֐gێ_Fz˷FŧŔy餐ieע.κܯ3wֳdGۏ箠qɖ̰姲8H˂3ĤdEFcحҽӸn~a˜餉hʵb̄ТϾ$b çvθڽمс$ޮmŦجDRGE R4,R4,#%10000000 g B ENDE g';---------------------------------- g.RDA g.RDB g.RDC g B ILLEGAL g';---------------------------------- g.RDD;CMP ABX h! Coconizer<"<GCode!qۧGUQTMLhx#""$#)(()-01245<=?CIJCoconizerPlayerCoconizerArmaxessModuleSpritesDe IHu@arqHrLHrDBhCsFGFEF$ `PM@_Module 6c @} 6Fu',<\@$ l CoconizerPlayerCoco Player 1.04 (24 Sep 1994)ClaimRMA ReleaseRMA LoadTrack SystemOn SystemOff PlayStart PlayStop, PlayCont4 MakeEffect< SAlterVoice` uPositionJump USetVolume zGeneralInfo"* reserves a fixed sized memory block in the RMA for coming tracks. Like all numeric parameters in this module, the amount parameter is treated as decimal number (if no base is given).  []* frees the currently used memory block in the RMA.* loads a Coconizer trackfile into memory. Either at the given address or into the reserved RMA block (no parameter). In case no RMA block does exist yet, a new block is claimed first.  []* enables Coconizer's soundsystem (linked to the given track). Useful for sound effects or to play the song by one's own. If the parameter is omitted, the trackfile in the RMA is used.  []* disables Coco's soundsystem (and a currently played music). On exit the OS is 'clean' from any Coconizer sound stuff.* enables Coconizer's soundsystem and starts to play the track. If the parameter is omitted, the trackfile in the RMA is used.  []* stops the playing song but lets the soundsystem enabled.* continues where a previous PlayStop halted the music.* makes an effect (tone information word) on a channel (1 to 8).  <&ppiieebb> * sets the status of a channel. 0 enables music, 1 halts the music until the tone/fx is over, 2 halts the music constantly.  <0 | 1 | 2> * jumps to a position in Sequence (0-max) and Patternrow (0-63).  [] []* sets the volume for Coco's soundsystem. In contrast to the internal logarithm LSB format this adjusts the volume lineary. Range is 0 (loud) to 255 (silent).  This is the stand alone player for the Coconizer Soundtracker. Long live the Archimedes. 1990-1994 Eduard Pfarr of Armaxess.O-`倏O-뀏HԟThe RMA block is too small to load the trackfile.The RMA block already exists. Please free it first.No RMA block has been reserved yet. Operation not performed.This is not a Coconizer trackfile, unable to continue.The soundtrack hasn't Coconizer format, unable to continue.File not found, can't be accessed, or is a directory.Can't access an out of range sample, tone number or channel.Position number isn't inside this song.sSoundsystem activated, but track has no sequence to play.@-`Too silly. Unknown operation. Plumpa Quatsch!яQ @-R@lяdяQ @-OF@<яQ @-=@яяQ @-2@ЏЏЏ@-(0&@Џ@-0@=ЏQH Q @-0@>@- @8DЏ@-@? !j  Q [ 00CRCocoClaimRMAReleaseRMALoadTrackSystemOnSystemOffPlayStartPlayStopPlayContReadInfoMakeEffectMakeFxAlterVoicePositionJumpSetVolume @-P TQ0j8!81 $Q  @- P  Pd+8+ j<@-P R 0P ?PP<dP \TrL T P  ,P 11 0^j  0 C-P Pt -6Z)Z P} @-  R6jC-HQ @-&C-  Q @- /*IDT 0@0C0@@TT@@- $Rm *" 8Sg ARd ,lRa***Q]P喿ϏˌÌ>Q> @-冿ϏˌÌ>Q> @-AZ:zϏˌÌ>P ?A-#R> *! P9*?Q7*ɯ⴩@-D ? YY |p0 0@@  0@@ Q ,Yp00B P P2 0v  0@@<<<ZmP@-\Wj0 0@@B@- Q{/+<6jP@- Pi =%j 徿@  a   %:47S   ?@0S ϏˌQʏdΜ@@-@勢S [AX`pA X `x@- 0@P@@@@@ CocoplexNoCache?m  >Q P!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `Q?@X?@`PV ``@ P!hS`V`Cp ` ` ` ` ` ` ` `pW  CocoplexCache?Y >Q< Pp!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `!hSQ1`V`C `pWQ?@X?@`PV ``@ P!hS`V`Cp ` ` ` ` ` ` ` `pWOO-eP#t*@@@@Mok]@[@Y@W@BokpW@pP䔏OO-ذP#*@@@@@@@@X`k&@$@"@ @@@@@ `kpW@pP倅蓏Q R> >Q  : `~ ! :`~ !%&'()*+/ ! OO@L \ @-B     ppIH" J0T0S  `,"$d("(T$",T  <#(.LRDF&.KO!PP"PP  a+QEU 3,QP a+QPEU 3,QUUUPQCPQQCQ@n7 4 t # oJ3*/DiF?g T"_$&(@+-0p369+=@DHMQV[aflysWzR|#MM3:"G4FZng\uI%Eh767gʛ Johln7q' 8 4 = t   """""$$$$$&&&&&((((****,,,,,....00022224444666888:::<<<>>>@@@BBDDDFFHHJJJLLNNPPRTTVVXZZ\^^`bddfhjlnprtvx|~ Sprites~ ٘F5!file_365,, wwwwwwwwwwwwwwwwwG4#""2CtG4#""2CtG4#""2CtG4#"14"2CtG4#""2CtG4("42CtG48"(!4(C3CtGA(8Cx30 "(8tGD3(14@1((CtG8#"!D"DtG4#"4"2CtG4#"C!"2CtG4#""2CtG4#""2CtwwwwwwwwwwwwwwwwwSprites22~ ☹Fe!file_365!,,wwwwwwwwwwwwwwwww73#""#3sG32"!!"23t73#""#3sG32"!!"23t73#""#3sG32"!!"23t73#"("#3sG32"!14!"23t73#"@ "#3sG32"!!"23t73#"C2#3sG38"!4!23t73("(C#3sG38"(!4(!C33t7CH"8184$3sGA!(83x7@((3x20 "(8tGD#8BC 0(4sGD2(14@1((CtG8#(8$8sG82"!D"4t78#"CC"3sG32"!4"23t73#""#3sG32"!C!"23t73#""#3sG32"!!"23t73#""#3sG32"!!"23t73#""#3sG32"!!"23twwwwwwwwwwwwwwwwwDSymphony:":GwCode$"c .$G QTMLx$$&)*18;BEFGHIKQRTXY[DSymphonyPlayerDigital SymphonyBASSModuleSpritesXX h 0@2P`XXsX 0P`XqXXX|(X0 @XXXXXXXNot supported @-@0 @ hPl O0 h` O0 h O0  O0 h`?6 O0 h0R` O hAO QTMPlayerModule?"c}G?UD8HXD-DSymphonyPlayerDSymphonyPlayer 1.42 (31 Jan 1997) BASS 1991/97, FreewareDSym _-KO 0@衐‟ Q  1  2 2Ѝ_@0 Q2 121 C/xO X (~OGx_@@-"1 -1`!@hj-6 b 8oO"> ^@oO`p W _-'QL0<@-DpDpLOD@-\O_-&@:![ 0 !,vxLvdj&\>@Unknown Digital Symphony operationDSymLoadRestartSongVolStereoCutNotePlayInstrPackedPlayInstrResetParamsFlushOutputFreezeOutputUpCallVectorMaskVoiceSongPosTuneControlPauseVoicesWaitIntStateNoteInfoVuBarLoopBufferAddressVuGravitySampleRateConfigureParamsTuneInfoPlaySingleDefaultStereoInstrDataHardSpeedLoopTypeFillAddress@- 2$  @_-/`,U?B p @P@8Ϗ̌ L@Bo`lp @P>PPPR@TZX-Tďr! s3tDuRvnFneq`A-W.@-Pp pI| 1: : a P TP!d [ K [ቲK [ K [ቱK [ K [ተK [ K ! P^ㄾ@pp#pK%^1 0 :  :  :㰏G 1: Z ^!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0[ڀ[ CaA>!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0!UQ 0aA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![r`[ G!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Y% A Z! 60S3C `"S3C "S2C `"S2C "S1C `"S1C 0"S0C "S0C " Q :T !d [ K [ቲK [ K [ቱK [ K [ተK [ K !  Z " [ K [ቲK [ K [ቱK [ K [ተK [ K *"* &6c0# S*PPE!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0[[ CaA !UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0!UP3Q 0aA!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3[ڠ[ G!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3!P3Y% A Z^ 60S3C "S3C P"S2C "S2C P"S1C "S1C P"S0C ("S0C ":Q8:TE!d [ K [ቲK [ K [ቱK [ K [ተK [ K !  Z! " [ K [ቲK [ K [ቱK [ K [ተK [ K *"* &6c0# S*PPEw ^@0 Z Z# ^?@-@`M10qB??@-L@001??@- ,0x@`M$PBP? @eeeeeeeeeeeeeH- <0`=" R  Q @-}@.@#_-ϏP͌ 6 (Q_-ϏP͌ 6 (QH-P0 0PZ[_-fΏ@͌_P]0ヒ0SZ 0@P`p U0O-ǿL 0@P`p耰LT尰0ヒ0SZ 30 _-sQT y u Ih@-l P-ePk@ /?H-p L0@\p @ Qp >n38^ 38$ 8SXaSX'X@-P<<>p 0qO8L- @-$p$@-QpdPc#@-/@-.q1?H-I-t000ptq x,@(?@-K,p,@-p@-J @-,>@@-VpJ7-\d T,P0`X.XP ZQ:`V X@@\Zx@ \PB8`], |Q]]Wb]] -ps\q7H-\Qdwp Bx @TT0_Sd guRkiR uR 7-O OΏOn`o @KN‰0@=  _ 0+ x("P`0'xp`P U V: ` Pp[0p RZM<0.#x#8ML@0". $ $H@"ȟ ~O8xiR8<iRuR7"_p0i OQZ  KJ" OQZeKbKJPP ~bV3*6" Y႓I "YI P"Y႒I "YI P"Y႑I "YI P"Y႐I ("YI "A [Y႓I `"YI "Y႒I `"YI "Y႑I `"YI 0"Y႐I "YI "[H-N@| DpX(\:}hS@. xqR"}Y7{eQ>, ~wqLxU3xcO<* }vpFtP/u`L:(}vo@oL+ r^J8&|un: kH'p[H5${tm4fD#mYE3"zsm.b?kVC1 yrlX(\:}hS@. xR"|Y7{eQ>, ~w~LxU3xcO<* }vwFtP/u`L:(}vq@oL+ r^J8&{uk: kH'p[H5${td4fD#mYE3"zs^.b?kVC1 yr  +@1JaxŴxaJ1tlf`ZTPLHFB@<:8420.,*(&&$"  _-O@L(1L X# 0:T02,@t:0@trLPL@38^ PH PEXxpL`(@A4 R@J *$ V $FAAPUZ@X * PUZH L0R0L褀LL 8> GLL  D``VZ8~,(0Q_㠐PEXxpL`(0V PUZ@X* PUZ㤀 4LS0 S00PL@38$ Q_H PEXxpL`(@A4 R@J *$ V $FAAPUZ@X* PUZ3> GLL D@@TZ8~0(04S00L_-O/L`Pprg.LCIOCB~@?>=<;863('&%$#"    KJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   p   @- 1240#80HX) C娐Н@TA7@#@@-C͞L2I⃓$0T*0S0SIǐѝ@Q7#@[@T@@KT)  C@DqTq@C @TA7@#@ pC蟏@TOC @TA7@#@| p ^\1|B390Q03 \ 0CQ03 \ | ͞L⁓$@S*X0᳟@S170#0 |.0L 000 h?1 ܐY%>ܐ 00 . H@0LT@<@0> GLL PL@0> 0( DЌ_-~OPL/L`X@xP0j r @ ^ࠣ. h KKKxK >ܒ ?@ $Y$T > >P >8 > ZOA  t >+   @Y 7#h┐尐^ 30Y ᠐ 0 NP0Ű0լ L!:X!BASS   P_n{jut@Y 7## 41K@4X@Y 7#b14@Y 7#Y01 @Y 7#?L?@-ON$Y$ \ Y\  㜒 01@Y 7#?)& \\ Q  -#0:<@x[@Q@üK0KK0@S<0qP 30 -#g D9-#^ H9|0| 01 102 -3 P U 1 E<<qP@L< X901 1 3 @4?$^$( > d93 H0 d9@-h┐尐^ 30Y ᠐0 NP0Ű0լ  -<# h9-4#} -=#l9u-5#mH0 @4@p9ix[KK0K`?\ H0 @4@t9 UTx91QPM|0| |9FD-#09>0@S<0qP 432 0 =O , OAB##QaB-0.^Qڨ0@Y 7#@84p0 00HPU[-OpL pWp3X3Y3[3 〰x | [3|Wp3X3Y3 ူ 倛 pWp3X3Y3[3 | | [3|Wp3X3Y3 | 倛HN |_-pp4W <倕O⸐0T `2`@O0J0 j0 /.0uD3 0OAP0 1 A-逌 P |`V V@-P@ UîʇO8P@@ TçʈO@ȐO”I@Ma@ ~ PÕ @[ O\ PD< 000jOO07 .00  0Q;H+ M;D+0SZ\A,A( O0O(5 #POʋ 4o 0O 0^L0L R-O4 ĂO4 }T}P *OcᘵG4$@TO@M㽟O”I@ 0 ?0PP@@P@q@ZSDO7; P5& P P O- @pM$O- O`M 0-  OP-(    0m OLq@ZЍ OOLF O,&@-PPGUP@PЏO- O>PT@@((8Џ_-0O.N@-0(1 < {j@-L0` rj @0D 0  0@-0 _j#W* @-,p~`@F0S  ` @-,1@ ;j#3*T@-~@@6` @-1@- @- 0 @-> L j(  @D dd1 p0F S_@@-Pt@|p` `2`PU0_-0 (0 0cj  ddt 000HHH\pShort fileNot enough roomNo room for buffersIllegal number of voicesIllegal number of patternsIncompatible Digital Symphony versionUnknown Digital Symphony formatToo many patternsUnpacking errorSample too longBad sample lengthToo many sequence positionsNot a Digital Symphony file@_-RX0j SO~G`5@ jP ```VPP`_@@-@-@P(0@4@-@P(0@4@-WOA1x O-BA1AFO`A1$ O`-BAA1D0@@4@O@A00 0 0A08_- LLL ^OA Y?HI`p _pWc6e@P>N D#;:#P@; @!80 #R:ۨ N^BQJQJQJQZ @#R!@0 N^'QJQJQJQZ @ ^!80#R^ SO UP > 堀<ᜐf/@7@; @ PX`pg6g pg- @> 0C@@O@H@ I^C_-;8  nDPD0 OA SE0CP `  [# <ɠp 1 [<ɠ3 ppG'P:9 I⨀1Q1U  k2ˠ kB- @> 0C@@a_O^E@ o0BCP∀@-B@BP_-p3 ݾO@KOD @yOLA A@P O@IB(P 0@@@AMOAMO2(?OLN O`PO@ @@㪟OLI9BPN Op0A,- @O@ @.@_-Q-,!O:Z@Z:JnO@lFm`O ` OpA?O`O@=C>O=C>O0C>O@=C[ GG[[ G[`[ G[ C[ C23 _-O OOOpO OP-OONOOPO\0.P O #x#80" O OP8OPNPO(@.$$H@"ȟ /@@P0`X.XP ZQ:`V X@PZ< BPOQQAHOPK 0\\QONQONtlf`ZTPLHFB@<:8420.,*(&&$"  0HXdlt|}umeYI1  "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~}{ywusqomkigeca_][YWUSQOMKIGECA?=;97531/-+)'%#! _-OPA`/ R?vPZROhd_-P2  >M : R R Rp Rap Rap Ra:  R ^ ^ ^  p Ra 0^! 0^! 0^!  :  R @$H^H%XX&hh'xx( ) * + ,H  p Ra ,Ƞ Ƞ0^+Ȍ * ) ('x&xh%hX$X!Ƞ ~1_- OP-B 00Q0! $<D$<D$<D$<D%<T%<T%<T%<T&<d&<d&<d&<d'<t'<t'<t'<t^1_-k/OP-B 0 0 0Q0! ̠(<Ȉ ,( , D H L(<Ȉ ,( , T X \(<Ȉ ,( , d h l(<Ȉ ,( , t x |^,̠1_- ` 00S030Q! LTD3dDLTD3dDLTD3dDLTD3dD\UT3eT\UT3eT\UT3eT\UT3eTlVd3fdlVd3fdlVd3fdlVd3fd|Wt3gt|Wt3gt|Wt3gt|Wt3gt^@-iOvQvA0@-iO⒠NSpritesT  rF4zfile_10b,, wwwwwwwwwwwwwwwwww!ww!!!!!!!!!!!!!Cww4ww!!AHXXXXhh(!!Cww4ww!AHHHXXXhhh(!Cww%"4ww!XHHX"3"hhhh!Cww%"4ww!QXXXXXhhhh(!Cww4ww!!QXhhhhhh(!!Cww4ww!!!!!!!!!!!!!Cww!44444444444444wwwwwwwwwwwwwwwwwwSprites22T  R^Frfile_10b!,,wwwwwwwwwwwwwwwwwr t !!!!!!!!!!!!!Bs2t !!!!!!!!!!AsBHXXXh2t !!!!!!As2HHXXXhh2t !!!!AsBH8HXXXhhh2t !!AsHHH8HXhhhhh2t !"AsRXXXHahhhh2t 3&AsRXXXX1hhhh2t 1&AsRXXXX3xhhh2t 'Ashhhxhxxxxxx2t !!Ashhhhxxxxxxx2t !'!Ashhhxxxxxx2t !!'!!Ashhxxxxx2t !!!'!!!Asxxx2t !!!!!!!!!!!!!As 2tBCCCCCCCCCCCCCCs'444444444444444twwwwwwwwwwwwwwwwwmatrixTRKd"dGCode"GG@xQTMLxY5AAGGTTUY\`abbmatrixTRKblackICe 0  c sh h ST&hhWh1Y-YUuVu YYueYq Y-T QuVh1_@ZRuVSVVeHI )@matrixTRK track validity error ( )D-   2.    2 matrixLinkmatrixTRKmatrixSQSHQTMPlayermatrixTRK failed to load a songmatrixLink !v GS= Dt,7d@matrixLinkmatrixLink 0.48 (15 Dec 1996) Marko LukatmatrixStatus, R@=hba 0L@ !R:Mp BzzO-0 @matrixLink: Unable to claim workspaceO- RP0 A`1@- [ 0')+D Z @- @ 8 cR 400C  RA@matrixLink: SWI currentlynotregisteredH RS-`P `P``@ P (@PU P (@PU?-  0 0 0@ P (@PU P (@PU?@ata$M ! j-      j;j ! $ЍqSWI's 31-00 : SWI's 63-32 : Prefix : matrix [&4BD40]@-FOJS0CR(:P@U U5  PU-  @q@b'Ѝ VSP U: R8R`@P P U R3Ѝ2~8R U P? ! uR(P PUmatrix_LinkVersionLinkStatusRegisterSWIDeregisterSWI ADPCMVersion ADPCMDecodeADPCMEncodeTRKVersionTRKLoadTRKLinkTRKUnlinkTRKReleaseTRKSamplePeriodTRKVolumeTRKValidityTRKControlChannelsTRKControlSequenceTRKPause@tFeK?Resources.matrixLink.matrixCSQSHFeKD䄹 aCA0&@H޴)#7.!N bH7!5ur*P@M0h @xH"FQje( ;Q=RbƢ@kD`Dp0APuu7/P7 ws;^ʌ ۅq̘/ˌaF j.h,Ѥ7a#g-ݍZяm/3g oYA@$6 hxP:F6ߘ7`{DV e0odEUXe:xWZ"i#"wOAhf` ! A&hP}I(@4 eJeQ:ytƞczg1nqeisxl?S'Fj)x}>'7h%`t5%g\")^F$IW` ¦EF=d*cpt 7fU]1*b6lW x,J! _8$=!-ښڶjٶ`v+ՒYGڧ+(!tb f Da,bpJI`pQ ;gY(pp'fWqi(1gB0g (8H:ܗ-;yƌڣ 3g #)i p+p̴t͌pouYuDKS3= եـYq6ETWĶvu-hCB-D4Q@5EM^m w`PbFt HQFlDg1BmatrixSQSH`! `G= d,7matrixSQSHmatrixSQSH 0.14 (15 Dec 1996) Marko Lukat RO- zh倏SquashO- ROmatrixSQSH: Service still locked@-`QQPQ@#^-tVVD83351'Dh ccea0ceh tp@ cjPpG p @}Ѝp000jpt @c @@c j#*0B scjPbg W ЍkSHV*S`!0 V?:`ajp -t0I @c@ @c(j#&*Y  0=cjP#*: 0FY 0AI @c@ @c j# *0B "cjP0 ` `Dcc``@-*@- c@- c@- 'PA@@!matrixTRK!/ˬG\= Th- R  @-50 ( P=L @-* @#-  AKL@- @`b#- A NQ0R:T1/B"T1/BT2.B"T2.B T3-B" T3-B T4,B" T4,BR: T5+B" T5+B T6*B" T6*B T7)B" T7)BT8(B"T8(B R:T9'B"T9'BT:&B"T:&BT;%B"T;%BT<$B"T<$BT0#B"T@0#BT 0"B"T0"BT0!B"T0!BT0 BT0 BmatrixTRKmatrixTRK 0.89 (15 Dec 1996) Michael Pohle & Marko Lukat [32 voices]LinkTRKlUnlinkTRKTRKVolume<H* links given track with sound system * unlinks current track from sound system * sets internal tracker volume (0..64 linear) Passing no parameter or values outside 0..64 results in providing current volume. 0..64] RO-. m?Bbh0=kh  0R: 7 h cj < 0@@R4*) @ 0@0+j )( 01 @@ @0:*B) t 00j  {[ 0 ܰ[<  s c0 * ܰ[$(,,$  p @ccaP@S0 T!pp@p0S0c0T!pp@p0S0c0RMEMCMEMLERRO-Oxx(  㪠K(: \0 chQ 0  ch 0 chQ  O@-  qQ0HXdlt|}umeYI10HXdlt|@-% ( <0@ 0- R$ R  R;@-0@&P<#$"P2@ R0c&@u@@u'P<#$"P2D R 0c'@uD@u%P|P;#<(PU@ P;#$"P2 R@0c@u@uPU1 < R0c%@u<@u  *;P@-P3RK ! @-D AR@ #D % AP(D ,LFILEMTRXCTRLNAMEAUTHSEQCPATTSAMPETRKMMRYO-`O cPT  l0e cj|0 00S Z 0S  H   0  9[ HXDX    P ~ zXU v  s  p $G@0~1Po1Pl Z1 ` [ C[JP^1S R  Y NPU JT%XQ P A!@UP@@@   6 #@0Al2@S ) $  \U PU  P X!@UP@@@    #03S 0  S  80@@@0 p 3e cj13   P #%(: ceh #%( pP@S0TO"pp@p0S0c0@-   MTRX@-  (0H 0@Q``"_`XA"3 1P  ({4 R 4  (@^0Ѝ@-uR ! }}}}}}}}{{{{{{{{yyyyyyyywwwwwwwwuuuuuuuussssssssqqqqqqqqoooooooommmmmmmmkkkkkkkkiiiiiiiiggggggggeeeeeeeeccccccccaaaa____]]]][[[[YYYYWWWWUUUUSSSSQQQQOOOOMMMMKKKKIIIIGGGGEEEECCCCAA??==;;9977553311//--++))''%%##!   ""$$&&((**,,..0022446688::<<>>@@BBBBDDDDFFFFHHHHJJJJLLLLNNNNPPPPRRRRTTTTVVVVXXXXZZZZ\\\\^^^^````bbbbbbbbddddddddffffffffhhhhhhhhjjjjjjjjllllllllnnnnnnnnpppppppprrrrrrrrttttttttvvvvvvvvxxxxxxxxzzzzzzzz||||||||~~~~~~~~ !#%')+-/26:>BFJNRVZ^bfjnt|{skc[SKC;3+#(8HXhxwgWG7' @`_? @`_?Po/Po/Po/Po/0O0 O0 O0 O0 O0 O0Ox@-CL< @mh@ +n 6@@--?[ J8Ə84崠p{H:$6T:Sჲ01C T:% ܀OHOI|` ``şT P :Pp*P>:Pm*Pp"S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S| Z*"PC  "Sr Zx*"PC  "Sh Zn*"PC  "S^ Zd*"PC  "ST ZZ*"PC  "SJ ZP*"PC  "S@ ZF*"PC  "S6 Z<*"PC  "S, Z2*"PC  "S" Z(*"PC  ^"S Z*"PC  "S  Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S{ Z*"PC  "So Zu*"PC  "Sc Zi*"PC  >"SP ZV*"PC  "SC ZI*"PC  "S6 Z<*"PC  "S) Z/*"PC  "S Z"*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  "S Z*"PC  . Z* @ Z* @ Z* @ Z~* @ Z{* @ Zx* @ Zu* @ Zr* @ Zo* @ Zl* @ Zi* @ Zf* @ Zc* @ Z`* @ Z]* @ ZZ* @ ZV*  ZQ*  ZL*  ZG*  ZB*  Z=*  Z8*  Z3*  Z.*  Z)*  Z$*  Z*  Z*  Z*  Z*  Z * 0S0@ Zx5-:PpP:L \*- O @- T P  0 \* \* \* \* \* \* \* \* \* \* \* \* \*MTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXMTRXlO LtOXT@0@L@L00S0H0`00S0C`0P#:< R P -PPLOY-P ` PPLOYP-- +P@A80S<0080<0S 0S<0P*,0S( $0 P` R #4Ћ%pW*00,000( P010@0@ R L 傂S  &  R 5   $ P @R @R; S P\  R((*PU_PGP`$`R R 1p{SS``@- (d`V@- c `>p=`:p9`S ```V``AS (-2@$H$6S>*$4%S(@#\ubp7DY_w$2@,+DCucbsS(J0CkR0! 0L@20#8 !Q!!!"5"1n( X PUT4@4@PUT3@3@(SJJ@Tq@@LZ(WPUT4@4@PUT3@3@(S@TkLNZ(>T2@2@` R(7$B@2u?PP` U`# VQ`VmnU#7$@7@(`, Vppp36p-@PU6PUT5@5@(, 0U JZ60ꄡZ!60%(70S 0P `P U#Z@:@-0@PU8P PP PP8PSpp: 90(#a`  aRf 8J[S<#<90ke@_ZTPK@G@C?<852/-`*(%#!X@0,` @ p hPLt4X(\:}hS@. xq2JbxŴbJ2PU@T@@@@0<@L00S0H0PU@0T00Ld"0C S0@S@0@0@L@L00S0H0PUT@@@@ SB0ST?@?@;0$B0S0C0@S@0;0 ,00@>@PU =0;@#a` bO aRf (@@T@@@T@Ch@@[S<#<=00ST@0ST\0#c B-X0T00SL 傂  &  R 5   R  ; 0;  (0S00TA@A@P0UPEP    $BT; 0;PPT0 "$ T  T  T  T03@D20 @D$@R@ R ; TB@B@P$2@U  PUPPU0ST0D0C0SC@ 0SC0D0000,0(00C(0 <00@8@P,`P$2@A@@T@#P01000,0P,`P@D(@0,0P,`P(0TLd"0C 000C(00,0PUTH@H@DPUPT@#F@TF1@580#&U@DT@D *F@@pWZ $pW:ZG'Z GZ~G'Z ~G Z}G' Z }G Z|G' Z |GW: Z{G' Z {G ZzG' Z zG ZyG' Z yGZxG'Z xG W:ZwG'Z wGZvG'Z vGZuG'Z uGZtG'Z tGZကsG'Z@ sGZ rG'Z rGZqG'Z qGZpGZ pG vnf`ZVRNJFB@>:86420.,*(&$""  @ Q ! MPAPRP0  P07Q7  Q7`.\0 0R TRKLink: Error code #TRKLoad: Error code LOAD.#TRKValidity: Error code MTRX.###@ RkP *" P07" P07 0   TRKRelease: Error code ###@*!jAR*(,s#{M q sЍqcurrent TRKVolume: Sprites0 ur0FF4file_00b wwwwwwUUUUUU333333DDUU%""""""""""""""""U333333333333333#U333333333333333#U3swwwwwwwwwwww3#U33wwwwwwwwwww73#U333333333333333#U333wwww3?33#U333swww7333#U333333w7?33333#U333333w7?swww7#U333333w7?33w33#U333333w7?33w33#U333333w7?33w33#U333333w7?33w33#U333333333333w33#U333333333333333#UUUUUUUUUUUUUUUUU$small_00b wwwwwwUUUUUU333333DDUU"""""""""53333333353wwwww7353DDwGD435333w73335333w73335333w73335333w7333533333333UUUUUUUUUSprites22 u"F:KTfile_00b!wwwwwwUUUUUU333333DDUU0!!"#3CCDEUee"2234DTTUV!!"#3CCDEUe"2234DTTUqwwwwwwwwwwwGUwwwwwwwwwwwTTwwwwwwwwwwwDEpwwwwwwwww7DT!!!"#3CCD"2234D"!qwww?CC"Bwwww434#"!uwwwO#3C2"Rwww/223##"!!ww!!"#332"rw"223##"!qwADDD$432"rwpwww7C3##"qwADwD$4432"rww"DC3##rww!!D4432rwwEDC3#sw!w!TD443rwwEEDC3sw"wUTD44sw"wUEEDC3##"!wVUTD4432"WeUEEDC3##"!VVUTD4432"swwwwwwwwwwwwwwwwsmall_00bwwwwwwUUUUUU333333DDUU0"3DUf!2CTeqwwwwwUqwwwwwTRUuwUUD"pw!2C#qw"33"qw!24#rw"D3rw!E4swUDswVEtwfUD3"swwwwwwwwMIDIR"RGCode$"b$GTwtQTMLx1x'(+EtherealMidiRob SmithH H @-H p 0hH hH H H Module^f.D 4l,<Hp `EtherealMidiMIDIFile Player 3.05 (31 Aug 1996)EtherealPlayStopStatusBufferInterfaceEtherealPlayEtherealLoopeEtherealMapy*EtherealPlay plays a MIDI file (format 0 or 1) in the background. The file is played once and then play stops automatically. Current play is stopped if no filename is specified. Syntax: EtherealPlay []*EtherealLoop plays a MIDI file (format 0 or 1) in the background. The file playback repeats automatically. Current play is stopped if no filename is specified. Syntax: EtherealLoop []*EtherealMap controls MIDI channel mapping during Ethereal playback. *EtherealMap maps output for MIDI channel m onto MIDI channel n. *EtherealMap 0 clears all mappings. Current mappings are displayed if no parameters are specified. Syntax: EtherealMap [0 | ]O-O-H 1) 0$Ϗ`- *j \0j`` 0ja H OdNo such file@-1 1    !?j0R<J !:j@R7JbD@  !.jWDPZP0@PnD`P P  0SMIDI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Map @Bad MIDI channelC-逐 <, 0@P`pOHfcjf`C@-@ O- p8T.` `.``@`-01O- p.``.`J8 9 b 9 `Z`GBP@`-@@.`T`.`̅O.  000  . O . . 0(Y KO@ TO@- 9  P 9 94.@-@B-YG-` -`pPES8@@c@ :``Z`@a-PP-PB03*0Q3 /3 $1 5 4}v`F@]P@P&e8`zT31R p-T00Z0@1-``-`[81V0TPL$E8P @8 :PU :TA;-``-`TPp /0. . 0S0!1PTTP#-``-`@DFGIJLTUVWXZQTMTrackerStephen HarrisonD~  h 0 h 0MUSX0 T~I~0  X~ X~R~F~cN~cF~E~qE~V~q3L@ 0@~sC~A~B~H~H~R~QTMTracker will crash if asked to load a zero-length file, so QTMPlayer has a work-around for thisModuleT VTF4!4("3"#@~d" <H\-TO㎠5e\scp|\-OU\scP-OPsc\-Oo\byofcopyright(c)#/M.K.FLT4_- 8@ b 뀟P-i] P Tu6q?@-PPW7h QPXPQRSTPP?\7̌ [ 07 e165*K@ZV}Unknown QTMTracker operationP-6̌FQ 'Q P-d6̌DDP-@6̌Y5 4 1PPP6T6`d5̌5̌5̌5̌k5̌@-XbjjR xh@-Q  R R xR@ Syntax: *QTMLoad [x] 5̌@-    ehSong name :   Author :   Position : G  Song type : RjRRR  Module length :   bytes Sound tracker 15 inst compatibleSound tracker 31 inst compatibleProtracker 31 inst (M.K.)Startrekker 4 channel (FLT4)@-?00O / PO3̌@-hQPosition :  -U0bjR !jxehSyntax: *QTMPos [ [x]]d2̌@-Q !q{xehOO Current volume level:   1̌@-Q! jjEffect disabled eh,@ R,A R% Effect(s) disabled are: 0@P`pO  ,p `V0`p  No effects disabled 0̌@-! jrjEffect enabled eht0̌@-th-No. Sample text Vol Length RepOff RepLen FTune --------------------------------------------------------- OFpQ`V: -    V-1< P      )                pW@-  PQ@- Q@-0C-P9 p? P ,jD0(j2 Y 0Vj@ 9`` H@0D`jO K{{P{{{xD 0@0D0CehD0\j `D0Tj P j 0j0S00Sۤ¤ @`@- \s0CrH0uc# (jK freeCNot enough memory in RMA to load song, requires at least K free@-D0k 3 /jpG  j0@0D0*eh@-D0R 3 p  jB0,@4)C20D0eh@-\@-k {suxh@-h-D0HI2 j jB,0D0eh?M-)☀R(?(?(⨀?(?(⨀?(?(⨀?(?(??H- 0@P??????????D-餠 0@P??????M-hP?䘀(?(?(⨀?(?(⨀?(?(⨀?(?(?D@-hOK-Q-E G0H@LP ` @-~ h 0pjqqq x @-PH@  \@-?Q4@Sequence number out of rangeEvent number out of range@-p>-!>hP@2 -?M.Q>@-p- h 0#03@?"=2@2 -.Q@-p- <@-p $< RH<@ 0$@RPPQPPR$P P<Effect number out of range@-h@-hPܥ^O @@ @-hD  @-{h@  0@PPE` N @- P se h0QʀqǕj1ˀ QQ,01PڕU1 O/ѱO/сK-Dh8\ 0@0\@ 0@P`~  ?@-"h pP<dP0@- 0d0`0@0s1Sample speed out of rangee@a-p@ 0@P?@-Q q{q{q{e@aK-钰 PR0@ < 0A } r qSa $[K1}p  @-Q -:@("#{q{q{e@aK-钰 P0@ l `T & b $UPE1}QP  Illegal address passed to QTM@-pPPPh@0 R  0QJbJ000P n0 / Bad number of channels|O @@-^hQ -:@(AO"#-P }rq 0 @P``偀-P }rq 偀@-jhP - ^ @Speed/tempo value out of rangei 00i0@-l0p@Q lp  X-lp [ࠡ PP Channel number out of rangeP@P Sample number out of rangeP@PVolume level out of rangeP$$PqPP Note number out of range-DNo song loadedX-䰏H Q@ -?M `Q @1-!=@P!a`PEUDQ@ $ @ @-h8-B,4 00D@C@, !8 R 8 8x8hOSong time could not be calculated or song lasts over 9 hours!@- /0O-}p@0P2#H0A 焰`Q P P'`VY Pϥ10#HP@1 0@To!T8X1pZ'(A:121(1@- % 0 P P P !$ 0 P P( A!?Q~ QQP P0QLPAç.)!P @-    @-Ph(P@@-pX@PH@ - 0pP hPPP hQ Bad VU controller stateR@-\ j xehR@- j@-P^M ^" ?-( "\"H@"40 @  BR C@00CS$@@@DT(@PPEU,( ?- (0@PP`VV V VP V P V`&b V V V VP PUPCP@@T-鼰\E@P@ 0 pp|gP|'t|gQx'x|gR t'||gS0Y 0 (忏QTMTrackerQTM Tracker 1.27 (30 Jul 1996) Phoenix/QUANTUMQTMLoadStartStopPauseClearInfoPosEffectControlVolumeSetSampleSpeedDMABufferRemoveChannelRestoreChannelStereoReadSongLengthReadSequenceTableVUBarControlReadVULevelsReadSampleTableReadSpeedPlaySampleSongStatusReadPlayingTimePlayRawSampleSoundControlSWITableAddressRegisterSampleSetSpeedMusicVolumeSampleVolumeMusicOptionsMusicInterruptQTMTracker%QTMLoad('QTMStartl?))QTMStopx+*)QTMPause)B)QTMClear((QTMInfo0d*.*QTMSamples+U+QTMVolume2-,QTMPos4E+g*QTMDisableLI,+QTMEnablex~,X,+--------------------------------------------------------------------------+ || |QTM-QueueTheMusic| || |The ultimate sound tracker player routine for the Arc!| || |v1.27 1993-6 Phoenix/QUANTUM| || +--------------------------------------------------------------------------+ * loads (and plays)specified 15/31 inst sound tracker module. If an 'x')placed after , thensound tracker module will be loaded butplay routine will not be started, use *QTMStart(startmodule playing.  [x]* stops song playingremoves it from memory, releasingRMA used(store it. * starts song playing, if it has been stopped or paused. * stops song playingresound channels(their previous owner (use *QTMStart(restartplayer). * acts as *QTMPause, but also song sequence posi (0defaultschannel/effect flags (this)equivalent(reloadingsong). * a variety of informa aboutly loaded song. * with no $s  posi insong's sequence table. If a  )specified, this will causeplayer(jump(that sequence posi . If an 'x')present after ,player will not resetevent count when jumping(that posi .  [x]]* lists s, lengths, repeats, etc. of&the samples used in song. * with no $s will list s ofly disabled effects. If an effect)specified, it will be disabled fromsong effect handlers. (enter 'E'-effects as '* E6' etc.) ]* reversesopera of *QTMDisable. effect  >* will setoverall output volume fromQTM play routine tospecified linear volume (0-64). Ifcommand)issued without a $, overall volume will be displayed. ]-QO- P P1U !(℀<倰 @<  ʯD 8@ !z pG }rqS$L @!t+ !m`V' PP(  P 1}pqPP p9` P P %')+a j Yp P ̥p'P@ppY xpYppppO-     0 @P0B\bhY!"$0@ @R0 @- ( 0 @P0(*,4=IOS[!$ 0 @P0{Q8Q0Q$  $Q(  ( Q22P`A@Q@ !?Qi  QQ  *@-@i s7@-@s7 P@qPq  PP 1% Q67PA7˥6)3Q,"3@P@ PC 45Q,"5@ P 3P3˥a4PJ4 5PJ5a0 Q 8P8  1mcb 0AT$S0P!2@0 @qPq  P , PQ 0 P AP, 1P P, 1P 1= @23AQ$P@w P,p! Pp $3  0O#=@$@@!<",' ];0c!@PC@P@ !@PC@P@ (3  0O#=@$##P@C@P@ !<",+ *;0c!@PC@P@ Bj_-_-QϏ[ }$0 0@P`dppp|  0  _- 0@P`pSϏOOOOP- 0@P`Ϗ pp}^>P- 0@P#Ώ>@>@>@>@>O/ѱO/1JaxŴxaJ1X(\:}hS@. xqR"}Y7{eQ>, ~wqLxU3xcO<* }vpFtP/u`L:(}vo@oL+ r^J8&|un: kH'p[H5${tm4fD#mYE3"zsm.b?kVC1 yrlX(\:}hS@. xR"|Y7{eQ>, ~w~LxU3xcO<* }vwFtP/u`L:(}vq@oL+ r^J8&{uk: kH'p[H5${td4fD#mYE3"zs^.b?kVC1 yr_- H[ZHZ p<LPgK6j4ju< Z,ڔ , J p`PPPP@@P@U@PLP040P $PU ѢPP%TP Jp`V_Sorry, I don't understand this song format, or it is too badly corrupted to play@-xQKOK<@ @* +0$Q@D@-0` Cbh@  0S@-/0SQ@-xPFxeh@-D  y?hbj[ @ y/J  M. K.8yHxNot enough space in RMA to correct song@- R0Ч0@- Q _-$Q]  .Č .Ȍ+̌  . .*  . .)..(..'p.t.x&|`.d.h%lP.T.X$\@.D.H#L$Q0Х0ҧ0@- P-- 0S S 00 R@- F0 ((( (((0S-0@PpW T `AV `zV `F@V 0ST`@ V.V:V@0S@-  0S S 00 R@- 8 DP HP FQ E @-G@- 8HA   !#%')+-/13579;=?CGKOSW[_cgkosw@- \ Q Q H Q xQv QR 0S RZ@TINF@-鬐IhPk `P\@`5$A`VpP-? qpWR<2}"#Af`V`C `8Af`V`C `2Af`V`C `,Af`V`C `&Af`V`C ` Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `~Af`V`C `xAf`V`C `rAf`V`C `lAf`V`C `fAf`V`C ``Af`V`C `ZAf`V`C `TAf`V`C `NAf`V`C `HAf`V`C `BAf`V`C `<Af`V`C `6Af`V`C `0Af`V`C `*Af`V`C `$Af`V`C `Af`V`C `Af`V`C `Af`V`C ` Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `|Af`V`C `vAf`V`C `pAf`V`C `jAf`V`C `dAf`V`C `^Af`V`C `XAf`V`C `RAf`V`C `LAf`V`C `FAf`V`C `@Af`V`C `:Af`V`C `4Af`V`C `.Af`V`C `(Af`V`C `"Af`V`C `Af`V`C `Af`V`C `Af`V`C ` Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `zAf`V`C `tAf`V`C `nAf`V`C `hAf`V`C `bAf`V`C `\Af`V`C `VAf`V`C `PAf`V`C `JAf`V`C `DAf`V`C `>Af`V`C `8Af`V`C `2Af`V`C `,Af`V`C `&Af`V`C ` Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `~Af`V`C `xAf`V`C `rAf`V`C `lAf`V`C `fAf`V`C ``Af`V`C `ZAf`V`C `TAf`V`C `NAf`V`C `HAf`V`C `BAf`V`C `<Af`V`C `6Af`V`C `0Af`V`C `*Af`V`C `$Af`V`C `Af`V`C `Af`V`C `Af`V`C ` Af`V`C `Af`V`C `p` ` \ `̶ \p[Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``Afз ``p pS%S Af`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `AAf`V`C `A@pAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `AAf `A@p` `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A `A@p@-` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `@S(pS Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `Af`V`C `pAf `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `Af `p@@p(``@\@P3P#F\@p@-Kq^\@@0@-G Q 0@@- _ 0@@- 0@@ O@-  Q ܥ0@@ 0@@@-P\1 @P`@-P@-hPO"q @"TO2k @2Ok @(Om @ @-0@ BP@-0@ABPڣH-地@@Q   0@@ C- 0@P`p@Q@-@  @T7RO-UXpXpXpXp XpXp+X pVX pX pVX p+X p`g 0 0 X@-OO1PPT 0@Pk f "fXPXT!\XPX_- `  ` ?@-B@?dQ Pd` dd``N ('+@ P#u,0 PbW* P]P RV]<0Sb<W0SPT?@-@?- @P:Q/@ Q/@Q.@ Q.@ Q- @ Q- @ Q, @P: Q, @ Q+ @ Q+ @ Q* @ Q* @ Q) @ Q) @Q(@ P: Q(@Q'@ Q'@Q&@ Q&@Q%@ Q%@Q$@ Q$@Q#@ Q#@Q"@ Q"@Q!@ Q!@Q @Q @@-00 0@O@0P@0Sprites !e F$Ěfile_cb6,, wwwwwwwwwwwwwwwwwwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwC{ww4wwww~wwwwwwwwCyww4wwwwzwwwwwwwwww"rwrw"""w'w'w'"wwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwfile_001,, wwwwwwwwwwwwwwwwwwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwC{ww4wwww~wwwwwwwwCyww4wwwwzwwwwwwwwww"rwrw"""w'w'w'"wwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwfile_cc5,, wwwwwwwwwwwwwwwwwwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwC{ww4wwww~wwwwwwwwCyww4wwwwzwwwwwwwwww"rwrw"""w'w'w'"wwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwfile_000,, wwwwwwwwwwwwwwwwwwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwC{ww4wwww~wwwwwwwwCyww4wwwwzwwwwwwwwww"rwrw"""w'w'w'"wwCCCCCCCCCCCCCCww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwCwwwww4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwSprites22\ !v\ F` file_cb6!,,wwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwww{wwwwwwpGt{pGtwwww~wwwwwwpGtwwww~wwwwwwpGtypGtwwwwywwwwwwpGtwwwwzwwwwwwpGtzpGtwwww}wwwwwwpGtwwww}wwwwwwpGp'p'"''r"""""'rr"'"r'"r"''"""rr"'rr"rGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGp'pwwwwwwwwwwwwwwwwwfile_001!,,wwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwww{wwwwwwpGt{pGtwwww~wwwwwwpGtwwww~wwwwwwpGtypGtwwwwywwwwwwpGtwwwwzwwwwwwpGtzpGtwwww}wwwwwwpGtwwww}wwwwwwpGp'p'"''r"""""'rr"'"r'"r"''"""rr"'rr"rGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGp'pwwwwwwwwwwwwwwwwwfile_cc5!,,wwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwww{wwwwwwpGt{pGtwwww~wwwwwwpGtwwww~wwwwwwpGtypGtwwwwywwwwwwpGtwwwwzwwwwwwpGtzpGtwwww}wwwwwwpGtwwww}wwwwwwpGp'p'"''r"""""'rr"'"r'"r"''"""rr"'rr"rGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGp'pwwwwwwwwwwwwwwwwwfile_000!,,wwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwww{wwwwwwpGt{pGtwwww~wwwwwwpGtwwww~wwwwwwpGtypGtwwwwywwwwwwpGtwwwwzwwwwwwpGtzpGtwwww}wwwwwwpGtwwww}wwwwwwpGp'p'"''r"""""'rr"'"r'"r"''"""rr"'rr"rGDDDDDDDDDDDDDDDrGDDDDDDDDDDDDDD$pGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGtwwwpGtwwwwwwwwwwwwwpGtwwwwwwwwwwwwwpGp'pwwwwwwwwwwwwwwwwwTracker^"^GRCode""xMGHFQTMLxx)023568:;GHIMUXTrackerModuletoFabrice Mercier  h 0 h 0MUSX-2 0  2 2q22q2 2q 2q-0 h 2s2222-2 22 2Module\""@8$\GHF@0,:2@TrackerModuleTrackerModule 4.09 (24 Feb 1993) [dev] (Mercier, Fiennes & Farrow)@-'Q @-# e@hc  0@@@-- AAPlayMod"PlayPause  PlayPoshz PlayStatus  u PlaySamples@ PlaySpeed lPlayStereoGS PlayStartPn , PlayStop PlayVolumeE*PlaySpeed will change the sample playback rate and therefore vary the approximate amount of CPU time taken up by the playroutine. Currently, the four options are: 0 - normal sample rate 1 - half sample rate 2 - normal sample rate (with VIDC enhancer) 3 - half sample rate (with VIDC enhancer) 4 - normal sample rate (with VGA modes) 5 - half sample rate (with VGA modes) If option 1, 3 or 5 is selected, the sample quality is reduced, but 8 channel tunes will take up only a little more time than 4 channel tunes originally. *PlaySpeed with no parameters will print the current speed setting. Syntax: *PlaySpeed [<0|1|2|3|4|5>]Syntax: *PlaySpeed [<0|1|2|3|4|5>]*PlayVolume changes the overall loudness of any [sound]tracker tunes playing. The scale is logarithmic and goes from 0 (silent) to 127 (full volume). *PlayVolume with no parameters displays the current volume. Syntax: *PlayVolume [<0-127>]_-,NPEEHP>Current sample speed = M M _-Q 0Q#JQ! PM XLla  , @-  @-#O__ 2Speed not implemented@-Q@(2Module already lockedQ 2TrackerModule in use@-l!Q@2Unlock failedPठ[ 0p]M^{3s"o![Unknown TrackerModule operationTrackerVersionLoadMemoryLoadPlayStopPauseStereoSetPosReadPosPlayNoteTuneInfoSoundInfoReadSampleTableLockUnlockMuteChannelRestoreChannelSpeedVolumeWriteSampleTableTranslateVolumeUpdateDataWorkspacePtrRepeatStateSequenceDecodeNotePatternInfoReadStateWriteState: A:LO @@-X@PAHP@8P 0P0   RJ0S 2Action not implemented*PlaySamples will list all the current samples. Syntax: *PlaySamples*Playstereo controls the stereo settings while old format soundtracker modules are playing, and will switch between five possible settings to cater for most configurations: 0 - Slightly off-centre left and right (normal) 1 - Fully left and right (amiga-style) 2 - Fully left 3 - Fully right 4 - Don't alter stereo settings *PlayStereo with no parameters returns the current state. Syntax: *PlayStereo [<0|1|2|3|4>]*PlayStatus will print information on the current tune. Syntax: *Playstatus*PlayPause will pause the currently playing tune until a *PlayStart command is issued. Syntax: *PlayPause*PlayStart will resume playing a tune after a *PlayPause command. Syntax: *PlayStartpG*PlayStop will stop and kill the currently playing tune, freeing the memory used to store the tune. Syntax: *PlayStop*PlayPos will set the current position in the sequence table, or if no parameter is used, simply return the current position. Syntax: *PlayPos [<0-127>]*PlayMod loads into memory and starts to play the specified Tracker or Soundtracker module, determining automatically which format it is. Syntax: *PlayMod _- PU_No. Sample name Length Volume -- ---------------------- ------ ------ p 2hPSp@--  Q O  - ) S-  ̠ZH:   2No tune loaded- @-P,OP P_ OQZ O$O @A: O @_-P   RP` A:O @ OO @_-P ?, RA:O @ Od,O @_-4P$t p?, R2Sequence position out of rangeA:O @@-D&R@XO @h0< PtO@   QS<$ ,fh_-%RO_Q _OlO @_-  ! ̌@@RO_00 0x<>\0 <Current sequence position : 7-q  Highest sequence number : c @-  B OO @@-@cZA:O @_- \,@A:O @_-jP x_0 z_2No room for module  +0z_tracker 36soundtracker [Blank] Channels : _-TrackerModule version 4.09 (24 Feb 1993) [dev]P  No tune playing currently訲 ̌[ Tune name : [ B  Q OP ([OJOp  instrument format)[  Author : aBQO Tune length : _O  patterns 0OoO Module length : sO  bytes Type *PlaySamples for the list of samples currently loaded. @- P R4@P\  4*  C  e_hc8`@-d @  RTINFMVOXSTERMLENPLENSEQUPNUMPATTSAMPMNAMANAMMUSX@- ̌L@ X@ d@ p@``L@ `Vʔ@-$p04PZPPpW A<Ǐ AA:<O @_-L[O @_PB?J̌@P9$RA6R3SK0SB-J1Q*Q'P@p|qP\Pp{r⠀- B OPp/ 8 @LQ__2Channel number out of range2Sample number out of range2Note number out of range@2Volume out of range_̐⇒V P hPUPhPUP@TJ`lA@@D⁃*(SZ`0C0Rf TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P \0C0` TXC P6 TXC P0 TXC P* TXC P$ TXC P TXC P TXC P TXC P  TXC P TXC P TXC P TXC P TXC P TXC P TXC P TXC P \0C0`@-GIO0:@  R@  R@- RuEvRuDr PG-p P*P$ `@@R   V `F@{G-Pp0 2Q'pQ01 TJO~pTpԇ@pATJ0S0pQ;O0 #(7;n00@OLD0S000O00O0@-$O @6@@@  > @ ̌0D 00S001010 @0DP ̌1̌ 1 P-$R00P𠁔0O;C1S0P@@aL Ta T@T@@ @TT@CT@DT@ @1P-"OO> @@-* !h@+?OO> @ @-* ! h0* ! h0c @p OQC Z pOB* @BC@-$O%AQA:pO? @_-P PO* @Ud O%,B pDOB+ @BKJpTO+ @GQO+ @CQO+ @? O%,B0RBp A: O @pAPH-3‱HO. @Pl ȰOKh@-hOA@-Current stereo state = 8O1A Q AOO @_-0QJQ P ⁱO/ @P9 OK5p__-/ OPP6 xY'O$,OJOH iPPUPCBYSyntax: *PlayStereo <0|1|2|3|4>@-O'L(@@@xTDD@O A0 PU0 R00    Z@@@M.K.[@O[E аOK@K0S -ZO1J( p*@T[R@P TQ @Q[DO␰[#l ⎱ 04Hdt@-@- 0@@@0S@@@0S@@@0S@@@0S@@@0S@@@0S0HXdlt|}umeYI1_-@(PO4O`&&( R^&J@@<ST #4T @T @ @0`&&( RF&J@@<ST #4T @T @ @0`&&( R.&J@@<ST #4T @T @ @0`&&( R&J@@<ST #4T @T @ @0XqOOR  R@Q@ R ! R  R  R  10/.-,+*)('&%$#"!     R-O6L\|O.L0O6ACDHIOTegmnXenakis16DeXedream ProductionsXenakis16¬ì h  h000 Ĭʬ uʬuuʬuɬʬrȬss ˬ sʬ00ˬ  ` 0Ƭʬ00ˬ  ` 0Ƭ  ` 0Ƭ ʬModule#& myk#F+y  (0 x4l     l _-OO R 0PP@@@P0Sl_-,$R@ T'R #System sprite operation invalid whilst Xenakis in useayNo song module loadedt Invalid info requestctiXenakis16-bit Player v0.9xXenakis Player 1.00 (04 Apr 1995) 16 Bit version Deedream productionsitsDXenStopPlayOnOffFxSkipChannelZeroMusicVolumeKillTrackLoadTrackGotoGetSongInfoPauseBitsSupportnot a known Xenakis swiC  [4OC- `\|X\L ` X,P(P @-@-PCsO5SCP P) P 褟ZC QQC ᘠ$XP@ClddDlD @0C@aC 4DC PCCᾺCSWI PLAY IS HERE!0cVϯOC `V`p`@-cs@  00(E$ 000000000@3Q83Q$@-P` < LOHOT%H5 Q@-P`PpOO  ;@-dO= @-aV` a@-0aV`@aAPRR"pCP𠡼AA$T H(A@D3`p \ @-B@-d!R!R D!4QCPCa R0aCh aa0@CCPP C6     2 02 R0( @@QU@@ ! !!!#Can't load a module while playing oneinNot a 16-bit 4 or 8-channel trackfileacCannot play song with this module mCan't load fileNot that many sequence positionssit 0 PCDO PQ@-poo  #!@@-X`O@ O0FFRAF E@-!E`O@pO@`p AA$T H(\ @U@PPRPe +%T!?^X-@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G@@8"$ؠЃ@8"] Ж ؠMؠP+(T*Y88G$ؠЃ] Ж ؠMؠp.(t,Y88G誥 ዲ+Š Ƞ.ȌQ @Ŀ~|{yxvutrqonmljihgfecba`_^]\[ZYXWVUUTSRQPOONMLKKJIHHGFEEDCCBAA@??>==<;;::98877655443322110//..--,,++**)))((''&&%%$$$##""!!!  P!@-ȼ C A # !@-Dh <0 ; P< <@- =,_-Ȱ0Ɵ R   P# *@@@@@@@@LLtpAU_ 5P0"$a  6P0"$a P d6P0"$a  6P0"$a  7P0"$a   T7P0"$a @ 7P0"$a  7P0"$a LK       @@   `@@@@@@ @ pW@pP倅! , ;8:08% R 40$0DL    (:  %=T  @ L , B000 8  P   (4PXlt|8 94L 0      0L <0C ppI$ D0     ! 000 0$0!@T0 N,"$X("($",0 ,"$("($",S 0 l,"$ 8 < S#$X( x t!PP"PP 1 QDf QPBPL%SL@DACQP8BPL%SL@DQP$"Q$$ BPL%SL@UTPQDP%P"U%% CPL%S@U08LTPQD&"Q&& pCPL%S@LUTPQDUTUPSPL%S@@@EDPL%SL@DQ@P@DP@DPDPL%SP`H00C@`X%XG@AT @EAD@hhG`@`@#@#"7g Jhn7 4 t # oJ3*/DiF?g T"_$&(@+-0p369+=@DHMQV[aflysWzR|#MM3:"G4FZng\uI%Eh767gʛ Johln7q' 8 4 = t ># Sprites cxF,&file_365,, wwwwwwwwwwwwwwwwwG4#""2CtG4#""2CtG4#""2CtG4#"14"2CtG4#""2CtG4("42CtG48"(!4(C3CtGA(8Cx30 "(8tGD3(14@1((CtG8#"!D"DtG4#"4"2CtG4#"C!"2CtG4#""2CtG4#""2Ctwwwwwwwwwwwwwwwwwsmall_365,,wwwwwwwwwDD47""sDD47" "sDD47"8"sDD478 8"sDD47((sDD47"08#sDD47"1"sDD4wwwwwwwwwDDTfile_31b wwwwwwUUUUUU333333DDUUwwwwwwwwwwwwwwwwwwwwwwww"""!"""""ww##""!"!"#ww#"2""!!ww"!"2"""ww"!""Sf5"""!!ww"""!Sf5""!"!ww"!"!"#!"!"ww$!""멏#!"!2wwD$"!"("BDwwDDD$"!ODDDwwEEEEEEEEEEEEEEEwwUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwsmall_31b wwwwwwUUUUUU333333DDUUwwwwwwww'!!!!!'" "7QW27313GCCOCCGDDDDDDDwwwwwwwwSprites22d fx)d F&h file_365,, wwwwwwwwwwwwwwwwwG4#""2CtG4#""2CtG4#""2CtG4#"14"2CtG4#""2CtG4("42CtG48"(!4(C3CtGA(8Cx30 "(8tGD3(14@1((CtG8#"!D"DtG4#"4"2CtG4#"C!"2CtG4#""2CtG4#""2Ctwwwwwwwwwwwwwwwwwsmall_365,,wwwwwwwwwDD47""sDD47" "sDD47"8"sDD478 8"sDD47((sDD47"08#sDD47"1"sDD4wwwwwwwwwDDfile_31b!TwwwwwwUUUUUU333333DDUUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!!!!wwww""""""""""""ww"""!"""""ww"""""!"""ww##""!"!"#ww2"""""2ww#"2""!!ww"""!""!"1ww"!"2"""ww"!"!""!!"!ww"!""Sf5"""!!ww"""!dfF""""""ww"""!Sf5""!"!ww"!"8"""!ww"!"!"#!"!"ww""("""Bww$!""멏#!"!2wwC!""""!"CwwD$"!"("BDwwDD$"""랩BDDwwDDD$"!ODDDwwTTTTT$"YTTTTTwwEEEEEEEEEEEEEEEwwTTTTTTTTTTTTTTTwwUUUUUUUUUUUUUUUwwUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDsmall_31bxwwwwwwUUUUUU333333DDUUwwwwwwww"+'+""'!""!!!.!'2/!'""Af"""'"!""7!"(""7"2GD""(DGDD$IDDGDDDDDDDWUUUUUUUwwwwwwwwXenakis8ND"NDGCodeD,!'DGէ QTMLxd##$$/0666:>ACDHIOTegmnXenakis8DeXedream ProductionsXenakis8¬ì h  h000 Ĭʬ uʬuuʬuɬʬrȬss ˬ sʬ00ˬ  ` 0Ƭʬ00ˬ  ` 0Ƭ  ` 0Ƭ ʬModule0 B$0FT.t`| `4d*h'x+)*d'd _-OXO R 0PP@@@P0S_-($Ro 'R  System sprite operation invalid whilst Xenakis in useleNo song module loaded]XInvalid info requestcesXenakis8-bit Player v0.9otXenakis Player 1.00 (04 Apr 1995) 8 Bit version Deedream productionsDXenStopPlayOnOffFxSkipChannelZeroMusicVolumeKillTrackLoadTrackGotoGetSongInfoPauseBitsSupport) ]not a known Xenakis swiC  [4OC- P4lT 0,P(P @-9 @- PCrOÀ5SCP P) P TZC QQC ᘠ$XP@CldDD @0C@aC 4C PCCᾺCSWI PLAY IS HERE!pos# Sprites cxF,&file_365,, wwwwwwwwwwwwwwwwwG4#""2CtG4#""2CtG4#""2CtG4#"14"2CtG4#""2CtG4("42CtG48"(!4(C3CtGA(8Cx30 "(8tGD3(14@1((CtG8#"!D"DtG4#"4"2CtG4#"C!"2CtG4#""2CtG4#""2Ctwwwwwwwwwwwwwwwwwsmall_365,,wwwwwwwwwDD47""sDD47" "sDD47"8"sDD478 8"sDD47((sDD47"08#sDD47"1"sDD4wwwwwwwwwDDTfile_31b wwwwwwUUUUUU333333DDUUwwwwwwwwwwwwwwwwwwwwwwww"""!"""""ww##""!"!"#ww#"2""!!ww"!"2"""ww"!""Sf5"""!!ww"""!Sf5""!"!ww"!"!"#!"!"ww$!""멏#!"!2wwD$"!"("BDwwDDD$"!ODDDwwEEEEEEEEEEEEEEEwwUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwsmall_31b wwwwwwUUUUUU333333DDUUwwwwwwww'!!!!!'" "7QW27313GCCOCCGDDDDDDDwwwwwwwwSprites22d fx)d F&h file_365,, wwwwwwwwwwwwwwwwwG4#""2CtG4#""2CtG4#""2CtG4#"14"2CtG4#""2CtG4("42CtG48"(!4(C3CtGA(8Cx30 "(8tGD3(14@1((CtG8#"!D"DtG4#"4"2CtG4#"C!"2CtG4#""2CtG4#""2Ctwwwwwwwwwwwwwwwwwsmall_365,,wwwwwwwwwDD47""sDD47" "sDD47"8"sDD478 8"sDD47((sDD47"08#sDD47"1"sDD4wwwwwwwwwDDfile_31b!TwwwwwwUUUUUU333333DDUUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!!!!wwww""""""""""""ww"""!"""""ww"""""!"""ww##""!"!"#ww2"""""2ww#"2""!!ww"""!""!"1ww"!"2"""ww"!"!""!!"!ww"!""Sf5"""!!ww"""!dfF""""""ww"""!Sf5""!"!ww"!"8"""!ww"!"!"#!"!"ww""("""Bww$!""멏#!"!2wwC!""""!"CwwD$"!"("BDwwDD$"""랩BDDwwDDD$"!ODDDwwTTTTT$"YTTTTTwwEEEEEEEEEEEEEEEwwTTTTTTTTTTTTTTTwwUUUUUUUUUUUUUUUwwUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDsmall_31bxwwwwwwUUUUUU333333DDUUwwwwwwww"+'+""'!""!!!.!'2/!'""Af"""'"!""7!"(""7"2GD""(DGDD$IDDGDDDDDDDWUUUUUUUwwwwwwwwPluginsޑ"ޑGIFinetune-"-G[!RunImagew"8wGV}  > the finetune plugin   _finetune_memory =4  1 _finetune_initialise(scratcharea%,module%) ?scratcharea%=module%  =%10000  $ _finetune_begin(scratcharea%) $plugin_configure(?scratcharea%) =0  4 _finetune_pollwait(scratcharea%,value%,item%) - value%=&4b534154 =processor_pollwait%  value%<0 value%=0  value%>256 value%=256 processor_pollwait%=value%  =value%  6 _finetune_tickerwait(scratcharea%,value%,item%) / value%=&4b534154 =processor_tickerwait%  value%<0 value%=0  value%>256 value%=256  processor_tickerwait%=value%  =value% Choices Ft8_# Choices for for finetune maxlength=40 integer { label=Time to wait between polls (ms) handler=pollwait } integer { label=Time to wait between ticker events (ms) handler=tickerwait } Info& 7&F4_Finetuner 1.00 05 Nov 95 Chris Rutter SaveChoice/e/F'ӄ@@tiawllop@@ tiawrekcit@xFormats " G!RunImage "kCՋ GzMJw  > Format enumerator   _formats_memory =8  0 _formats_initialise(scratcharea%,module%) !scratcharea%=module% Eș "Wimp_OpenTemplate",,".Plugins.Formats.Templates" +_formats_window%=load_window("Layers") ș "Wimp_CloseTemplate" =%10  # _formats_begin(scratcharea%) -ș "QTMPlayer_Info",1 ,_formats_loaded%  wbk%!0=0 &wbk%!4=-(52+(_formats_loaded%*48)) wbk%!8=930  wbk%!12=0 -ș "Wimp_SetExtent",_formats_window%,wbk% "open_window(_formats_window%) =  3 _formats_poll(scratcharea%, action%,block%)  dummy%,more%,winx%,winy%  dummy%= Ȏ action%  1 " !block%=_formats_window% - ș "Wimp_RedrawWindow",,block% more% 0 ș "QTMPlayer_Info",1 ,_formats_loaded%  action%=0  winx%=block%!4 ! winy%=block%!16 " winx%-=block%!20 # winy%-=block%!24 $ window%=block%!0 % ȕ more% & _formats_loaded%>0 '% vissy%=-(winy%-block%!32)-48 (% vismy%=-(winy%-block%!40)+48 ) _posy%=winy%-80 * _poswy%=-48 + _layer%=0 , -- _poswy%>vissy% _poswy%" block%!24=sample_valid% ? block%!28=40 @$ ș Wimp_PlotIcon%,,block% A block%!0=793 B block%!4=_poswy%-44 C block%!8=922 D block%!12=_poswy% E block%!16=385876253 F, $sample_text%=version(_version%) G! block%!20=sample_text% H" block%!24=sample_valid% I block%!28=8 J$ ș Wimp_PlotIcon%,,block% K L _posy%-=48 M _poswy%-=48 N _layer%+=1 O4 _layer%=_formats_loaded% _poswy%xazaaFormat R2 Author R2 Version R2 Iconbar)")G`!RunImage"JG'UV}  > the iconbar module   _iconbar_memory =48  0 _iconbar_initialise(scratcharea%,module%) scratcharea%!36=0 scratcharea%!40=0 scratcharea%?42=module% scratcharea%?43=2 scratcharea%?44=0 =%10010  4 _iconbar_autostart(scratcharea%,value%,item%) ) value%=&4b534154 =scratcharea%?40 scratcharea%?40=value% $ value%=1 scratcharea%?41=0  scratcharea%?41=1 ! plugin_run(scratcharea%?42)   =value%  6 _iconbar_iconbarside(scratcharea%,value%,item%) ) value%=&4b534154 =scratcharea%?43 scratcharea%?43=value% 5 (scratcharea%!36)= scratcharea%?44<>value% ) dummy%=_iconbar_begin(scratcharea%) ) dummy%=_iconbar_begin(scratcharea%)   =value%  # _iconbar_begin(scratcharea%) !@error$="running iconbar module, side="+(-(scratcharea%?43)) "scratcharea%?41=1 # scratcharea%!36=0 $& scratcharea%!0=-(scratcharea%?43) % scratcharea%!4=0 & scratcharea%!8=0 ' scratcharea%!12=72 ( scratcharea%!16=68 ) scratcharea%!20=&3002 *" $(scratcharea%+24)="!qtmplay" +: ș "Wimp_CreateIcon",,scratcharea% _iconbar_handle% , scratcharea%!36= -$ scratcharea%?44=scratcharea%?43 . /& scratcharea%!0=-(scratcharea%?44) 0$ scratcharea%!4=_iconbar_handle% 1' ș "Wimp_DeleteIcon",,scratcharea% 2 scratcharea%!36=0 3 4=0 5 63 _iconbar_poll(scratcharea%, action%,block%) 7< action%=6 block%!12<0 block%!16=_iconbar_handle% 8 Ȏ block%!8 9 2 :+ openmenu_bar(menu_main%,block%!0,8) ; action%=0 < 4 =$ open_window(control_window%) > action%=0 ? 1 @% open_window(carousel_window%) A action%=0 B C D=scratcharea%!36 Choices ˸-F/Yoption { label=Start up automatically handler=autostart } radio { label=Iconbar side option[2]=Left option[1]=Right handler=iconbarside } Info$j o$FIconbar 1.03 19 Feb 96 Chris Rutter SaveChoice1 1FׄZ@@ tratsotua@@ edisrabnoci@ManagerB"BG!RunImage"qWG%x  _manager_memory =4  0 _manager_initialise(scratcharea%,module%) !scratcharea%=module%  _module_name$(20)  _module_state%(20,1)  off%,module%,modules% module%=0 off%=0  M ș "OS_GBPB",10,".Plugins",block%,1,off%,256,"*" ,,,,off%  block%!16=2 off%<>-1 # ct(block%+20)<>"Manager" , _module_name$(module%)=ct(block%+20) " _module_state%(module%,0)=1 " _module_state%(module%,1)=1  module%+=1    off%=-1  off%=0  Y ș "OS_GBPB",10,".Plugins.Manager.Off",block%,1,off%,256,"*" ,,,,off%  block%!16=2 off%<>-1 + _module_name$(module%)=ct(block%+20) ! _module_state%(module%,0)=0 ! _module_state%(module%,1)=0  module%+=1   off%=-1 modules%=module%-1 ! file% "4file%=(".Plugins.Manager.Choices") # module%=0 modules% $ #file%,"option {" %B #file%,"label=Activate plug-in "+_module_name$(module%)+"" & #file%,"handler=offon" ' #file%,"}" ( #file%,"" ) module% * #file% +Fș "OS_File",5,".Plugins.Manager.SaveChoice" state% ,J state%<>0 ("Wipe .Plugins.Manager.SaveChoice ~C~VF") -_manager_manager%=modules% . =%10100 / 0' _manager_eshutdown(scratcharea%) 1 item% 2! item%=0 _manager_manager% 39 _module_state%(item%,1)<>_module_state%(item%,0) 4" Ȏ _module_state%(item%,1) 5 0 6 ș "XOS_CLI","Rename .Plugins."+_module_name$(item%)+" .Plugins.Manager.Off."+_module_name$(item%) 7 1 8 ș "XOS_CLI","Rename .Plugins.Manager.Off."+_module_name$(item%)+" .Plugins."+_module_name$(item%) 9 : ; item% <=0 = >& _manager_shutdown(scratcharea%) ?&=_manager_eshutdown(scratcharea%) @ A# _manager_begin(scratcharea%) B$plugin_configure(!scratcharea%) C=0 D E0 _manager_offon(scratcharea%,value%,item%) F item%-=1 G1 value%=&4b534154 =_module_state%(item%,1) H"_module_state%(item%,1)=value% I =value% Choicesc",cGŠoption { label=Activate plug-in Finetune handler=offon } option { label=Activate plug-in Formats handler=offon } option { label=Activate plug-in Iconbar handler=offon } option { label=Activate plug-in Splash handler=offon } option { label=Activate plug-in ToolTips handler=offon } option { label=Activate plug-in Credits handler=offon } Helpit `&iFyԱModules that are ticked will be loaded on startup. Changes are not effected until you next quit QTMPlay. Info,}"Lf,GsrPlug-in manager 0.02 29 Mar 97 Chris Rutter Offh"hGtCredits="=G!RunImagez iKF!  > the credits module   _credits_memory =16  0 _credits_initialise(scratcharea%,module%) !scratcharea%=0 scratcharea%!4=0 =%100010  # _credits_begin(scratcharea%)  newtime% $!scratcharea%=!scratcharea% -1 (ș "OS_ReadMonotonicTime" newtime% scratcharea%!8=newtime% =0  3 _credits_poll(scratcharea%, action%,block%) ( action%=5 !block%=info_window%  scratcharea%?4=1 3 set_icon_fullredraw(info_window%,8,"Credits") ! set_icon(info_window%,9,"")  ( action%=4 !block%=info_window%  scratcharea%?4=0 6 set_icon_fullredraw(info_window%,8,"Registered") 1 set_icon(info_window%,9,msg("Registered"))   scratcharea%?4=1  time%,newtime% & ș "OS_ReadMonotonicTime" time% # time%>(scratcharea%!8)+200 !* ș "OS_ReadMonotonicTime" newtime% " scratcharea%!8=newtime% #. _credits_cycle(scratcharea%?5)<>"-" $K set_icon_fullredraw(info_window%,8,_credits_cycle(scratcharea%?5)) % &1 _credits_creditee(scratcharea%?5)<>"-" 'C set_icon(info_window%,9,_credits_creditee(scratcharea%?5)) ( ) scratcharea%?5+=1 *+ scratcharea%?5>5 scratcharea%?5=0 + , -=!scratcharea% . / _credits_cycle(item%) 0 string$ 1Ȏ item% 2 0 : string$="Sprites" 3 1 : string$="Templates" 4 2 : string$="Inspiration" 5 3 : string$="Evaluation" 6 4,5 : string$="-" 7 8 =string$ 9 : _credits_creditee(item%) ; string$ <Ȏ item% =" 0 : string$="Andrew Clover" > 1 : string$="-" ?% 2 : string$="Stephen Harrison" @" 3 : string$="Paul Wheatley" A" 4 : string$="Andrew Clover" B% 5 : string$="Stephen Harrison" C D =string$ Info$t a$F,ձCredits 0.01 20 Mar 96 Chris Rutter SplashK"KG!RunImageqt WqF&  > Splash module  > Chris Rutter, 1996   _splash_memory  =256+4+4  / _splash_initialise(scratcharea%,module%) !scratcharea%=0 $(scratcharea%+4)="" =%10000  3 _splash_autostart(scratcharea%,value%,item%) ' value%=&4b534154 =!scratcharea% !scratcharea%=value%  =value%  " _splash_begin(scratcharea%) =0  1 _splash_logfile(scratcharea%,value$,item%) * value$="retvar" =$(scratcharea%+4) $(scratcharea%+4)=value$  =value$  3 _splash_verbosity(scratcharea%,value%,item%) 1 value%<>&4b534154 scratcharea%!260=value% =scratcharea%!260 Choicest ҪFToption { handler=autostart label=Use Splash module } text { handler=logfile label=Splash log-file length=255 } radio { label=Verbosity option[0]=Low option[1]=Medium option[2]=High handler=verbosity } Info#t &Y#FϱSplash 0.03 20 Mar 96 Chris Rutter SaveChoice?"j?Gv@@ tratsotua@@elifgol@ ytisobrev@SplashB "{Q;B Gw  > Splash  > Chris Rutter, 1996  & splash_setup(logfile$,verbose%) % ind%,inds%,file%,version$,date$  : : :splash%=:4: "Splash error: ";$+" ";:  splash%= F ș "OS_File",5,".Plugins.Splash.Sprites" ,,,,size%  splash_space% size%+1028 O ș "OS_File",255,".Plugins.Splash.Sprites",splash_space%+1028 ! splash_space%!1024 = size%+4 1 ș "Wimp_Initialise",310,&4b534154,"QTMPlay"  Dș "Wimp_OpenTemplate",,".Plugins.Splash.Templates" <ș "Wimp_LoadTemplate",,-1,-1,-1,-1,"Splash",0 ,,inds%  inds%>0  ind% inds%+1 J ș "Wimp_LoadTemplate",,splash_space%,ind%,ind%+inds%+1,-1,"Splash",0  ? ș "Wimp_LoadTemplate",,splash_space%,-1,-1,-1,"Splash",0  )splash_space%!64 = splash_space%+1024 :ș "Wimp_CreateWindow",,splash_space% splash_window% ș "Wimp_CloseTemplate"  splash% ; set_icon(splash_window%,1,"Starting up WIMP task...")   logfile$=""  splash_log%=0   splash_log%=(logfile$) ! " splash_logtime%= #" splash_last$="Splash startup" $ splash_verbose%=verbose% %= file%=("."+resources_country$+".Messages") & ' splash%= (!!splash_space%=splash_window% )+ș "OS_ReadModeVariable",-1,4 ,,xeig% *+ș "OS_ReadModeVariable",-1,5 ,,yeig% +*ș "OS_ReadModeVariable",-1,11 ,,xs% ,*ș "OS_ReadModeVariable",-1,12 ,,ys% -scx%=(xs%+1)<$ splash_notice(text$,verbose%) ?! splash_verbose%>=verbose% @ A : :4: $;: B splash_log% C7 #splash_log%,(-splash_logtime%)+9+splash_last$ D splash_last$=text$ E splash_logtime%= F G%set_icon(splash_window%,1,text$) H6ș "Wimp_Poll",%11100011100101110010,splash_space% I J K L M read(b$) N string$,a$ O #file%=0 P Q a$=#file% R+ a$,(b$))=b$ string$=a$,(b$)+2) S a$="" T =string$ U Sprites<"~`<Gv<<logoG,"""#22#344DDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD444#32"#"" !2"33DCTTeeevvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgwwvfeeUETCC322!"233CDTTUUfffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgwvgffVUUDD333" !"33BCCDTDUeefffwwwwwwwffffffffffffffffffffffffffffffffffffffffffffffffffffffffffVeUETD4C232"!" wwwww6wwwwg3wwww7@www'0uwFwwww7@wwww'@wwwwrwwGtwwwRwwwwwwww'`wwww7`wwwwuww'0wwwwewwwwwgwwww'`wwwwWrwwwwvwwswwwWvwwwwwwwwww'pwwwwwuwwww www vwww'uwwwwwwgwwww7rwwwwwwwwww7@www@wwwwQwwwwwwwww'twwwww0wwwww7`wwwpwwwwswwwwwwww'twwwww'`wwwwwWpwwgswwww@wwww'wwww'vwwwww7rwwwwwgswwWuwwwgwwwwWwwww7wwwwwwWswwwwwwuwwGvwwwWuwwwgwwww'wwewwwwvw6wwwwDDD@vg%vwwE#""#"DDD$0DDDwwww7rwwwwwwww'0ww"wwww wwwwww0www@wwww wwwuwwV#uww' wwwrwwWwwww'pwwwwwwww'@wwvwwwPwwvwww@wwwvwwww7@wwwtwwwwwgwww wwwuww'wwww7pwwwwwwww7Pwgswwwpwgtwww`wwwbwwwwww`www0wwwwwwwwww www wwwvwww'`wwwwwwww'`wGrwww'tw7twwwpwwg wwwwwwwpwwwtwwwwW`www@wwwPwwwvwww'`wwwwwwww'pwGPwwwwvwrwww7swwGqwFCvwwwrwwg0wwww7`www@wwwqwwwuwwwG`wwwgwwww'sw'0wwwwwwrwwwGtwwWw7pwwwuwwWrwwwWrwwg@wwwuwwWqwwwGpwwwGwwww7twwwwwwwpwwwWvwwwgPwwwvww7uwwwuwwW@www0www7Pwwwgrwwwwwww'uwuwwwwg`wwwgwwww@www wwwwwwW www7Pwwwbwww wwwwtwwwwwww'wwrwwwwGPwwww@wwww@www0www www7`www'`wwwtwwwvwwwvwwgwwww'ww`wwww'@wwwwPwwwG`www@www wwwuwww`www wwwwrwwwGPwww'wwww70wwPwwww wwwwpwwwswwWPwww