Home » Archimedes archive » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95 » !AWJan95/Goodies/Event/Demo/!Demo/ShellLibRT

!AWJan95/Goodies/Event/Demo/!Demo/ShellLibRT

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95
Filename: !AWJan95/Goodies/Event/Demo/!Demo/ShellLibRT
Read OK:
File size: 17D85 bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
    1REM >EvntShell:ShellLib FNFNFN Squished by Lofty's !Shrink vsn 3.01 on 29-May-94 FNFNFN
    3DEFFNshell_LibraryVersion:=1.33*&64
   17DEFPROCshell_Error:LOCALFA%,VA$:IFERR<>&D00ANDERR<>&903THEN
   22SYS&606C2:IFFNshell_OSCheckVersion(3)ANDFNshell_FileExists("Resources:$.Resources.Edit.ThrowBack")THEN
   24PROCshell_Exit:OSCLI("Set Basic$File <"+FNshell_GetAppName+"$BasicFile>"):CHAIN"Edit:ThrowBack"
   27ELSEPROCshell_ErrorBox("Unexpected error:- "+REPORT$+" Internal error code "+STR$ERL):END
   30ENDIF
   31ELSEFA%=INSTR(REPORT$,"in "+CHR$34+"EvntShell:ShellLib"):IFFA%>0THENVA$=LEFT$(REPORT$,FA%-1)
   36PROCshell_ErrorBox(VA$)
   37ENDIF:SYS&606C2:ENDPROC
   45DEFPROCshell_OK(YA$):ERROR&D00,YA$
   47ENDPROC
   52DEFPROCshell_ErrorBox(fA$):LOCALLB%,wA%:wA%=_shell_blk%:!wA%=ERR:$(wA%+4)=fA$+CHR$(0):IFERR=&D00ORERR=&903THEN
   57SYS&600DF,wA%,17,"Message from "+FNshell_GetAppNameTOLB%
   58ELSESYS&600DF,wA%,1,FNshell_GetAppNameTOLB%
   60ENDIF:ENDPROC
   67DEFFNshell_GetLastSecureFileName:LOCALc%:c%=_U%!80:IFc%=0THEN=""
   71=$c%
   76DEFFNshell_GetString(cE%):LOCALSA$,hC%:WHILE((cE%?hC%)>31ANDhC%<&FF):SA$+=CHR$(cE%?hC%):hC%+=1:ENDWHILE:=SA$
   87DEFFNshell_GetEventHandler(b%,y%,IC%):LOCALe%,h%,j%,p%,A$:IFb%=-1THENb%=-2
   90p%=FNshell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=FALSE:h%=_U%!&C:A$="":REPEAT:IF(h%!e%=b%)THEN
   97CASEh%!(e%+4)OF
   98WHEN-1:IFh%!(e%+(&C+(IC%*4)))>&8000THEN
  104A$=$(h%!(e%+(&C+(IC%*4)))):j%=TRUE
  106ELSEe%+=48
  108ENDIF
  109OTHERWISEIFh%!(e%+4)=y%THEN
  116IFh%!(e%+(&C+(IC%*4)))>&8000THEN
  117A$=$(h%!(e%+(&C+(IC%*4)))):j%=TRUE
  119ELSEe%+=48
  121ENDIF
  122ELSEe%+=48
  124ENDIF
  125ENDCASE
  126ELSEe%+=48
  128ENDIF:UNTIL((e%>=p%)ORj%):=A$
  135DEFFNshell_GetEventMenu(YB%,b%,y%):LOCALe%,h%,j%,p%,m%:IFb%=-1THENb%=-2
  138p%=FNshell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=FALSE:h%=_U%!&C:A$="":REPEAT:IF(h%!e%=b%)THEN
  149PROCshell_Tracef0("GetEventMenu:window handle matched.."):IFh%!(e%+4)=y%THEN
  152m%=h%!(e%+8):IFm%=-2THENm%=_U%!&FC
  154j%=TRUE
  155ELSE
  168ENDIF
  169ENDIF:e%+=48:UNTIL(e%>=p%ORj%):=m%
  177DEFFNshell_GetEventListOffset(b%,f%,h%,_A%,MC%):LOCALp%,e%,j%,d%,yA%,c%:IF(!h%=0ANDMC%=FALSE)THEN=-2
  184IF(!h%=0)THEN
  186!h%=FNshell_HeapBlockFetch(_A%):c%=!h%:c%!0=0:c%!4=0:=0
  189ENDIF:p%=FNshell_HeapBlockInfo(!h%)-8:e%=0:j%=FALSE:d%=-1:yA%=-1:c%=!h%:REPEAT:IFyA%<0THEN
  199IF(c%!e%=0ANDc%!e%+4=0)THENyA%=e%
  200ENDIF:IF(c%!e%=b%)THEN
  205IFf%=-1THEN
  208d%=e%:j%=TRUE
  210ELSEPROCshell_Tracef0("GetEventListOffset:icon handle is not -1"):IFc%!(e%+4)=f%THEN
  216d%=e%:j%=TRUE
  218ELSEe%+=_A%
  220ENDIF
  221ENDIF
  222ELSEe%+=_A%
  225ENDIF:UNTIL((e%>=p%)ORj%):IFj%THEN
  229ELSE
  231ENDIF:IF(d%=-1ANDMC%)THEN
  233IFyA%<0THEN
  235d%=p%:!h%=FNshell_HeapBlockExtend(!h%,_A%):c%=!h%:c%+=d%:c%!0=0:c%!4=0
  239ELSEd%=yA%
  242ENDIF
  243ENDIF:=d%
  249DEFPROCshell_AttachPane(b%,RETURNlC%,n%,gA%,fA%):LOCALa%,d%,c%,KB%,qD%:PROCshell_Tracef0("AttachPane:Attaching Pane Handler"):qD%=FNshell_WindowGetFlags(lC%):IF(qD%AND1<<5)=0THEN
  255PROCshell_Tracef0("AttachPane:'Pane' bit of pane window is not set, fixing.."):PROCshell_WindowToggleFlags(lC%,1<<5)
  257ENDIF:IF(qD%AND1<<1)THEN
  259PROCshell_Tracef0("AttachPane:'Moveable' bit of pane window is set, fixing.."):PROCshell_WindowToggleFlags(lC%,1<<1)
  261ENDIF:d%=FNshell_GetEventListOffset(b%,-1,_U%+92,24,FALSE):IFd%<0THEN
  265PROCshell_Tracef0("AttachPane:Creating pane event block"):d%=FNshell_GetEventListOffset(b%,-1,_U%+92,24,TRUE):a%=_U%!92+d%:a%!0=b%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(4):a%!&C=FNshell_HeapBlockFetch(4):a%!16=FNshell_HeapBlockFetch(4)
  272a%!20=FNshell_HeapBlockFetch(4):c%=a%!8:!c%=-1:c%=a%!&C:!c%=-1:c%=a%!16:!c%=-1:c%=a%!20:!c%=-1
  277ENDIF:a%=_U%!92+d%:c%=a%!8:g%=0:KB%=0:WHILEc%!g%<>-1:g%+=4:KB%+=1:ENDWHILE:a%!8=FNshell_HeapBlockExtend(a%!8,4):c%=a%!8:c%!(KB%*4)=lC%:c%!((KB%+1)*4)=-1:a%!&C=FNshell_HeapBlockExtend(a%!&C,4):c%=a%!&C:c%!(KB%*4)=n%:c%!((KB%+1)*4)=-1
  290a%!16=FNshell_HeapBlockExtend(a%!16,4):c%=a%!16:c%!(KB%*4)=gA%:c%!((KB%+1)*4)=-1:a%!20=FNshell_HeapBlockExtend(a%!20,4):c%=a%!20:c%!(KB%*4)=fA%:c%!((KB%+1)*4)=-1:ENDPROC
  301DEFPROCshell_AttachDataLoad(b%,f%,w%,A$,zF%):LOCALa%,c%,d%,N$:PROCshell_Tracef0("AttachDataLoad:Attaching DataLoad Handler"):IFb%=-1THENb%=-2
  305IFzF%THENw%=w%OR1<<31
  306d%=FNshell_GetEventListOffset(b%,f%,_U%+96,16,TRUE):a%=_U%!96+d%:IFa%!0=0ANDa%!4=0THEN
  313PROCshell_Tracef0("AttachDataLoad:This is the first DataLoad Event..."):a%!0=b%:a%!4=f%:a%!8=FNshell_HeapBlockFetch(8):c%=a%!8:c%!0=w%:c%!4=-1:a%!&C=FNshell_HeapBlockFetch(8):c%=a%!&C:c%!0=FNshell_HeapBlockFetch(LEN(A$)+1):c%!4=-1:c%=c%!0:$c%=A$
  323ELSEPROCshell_Tracef0("AttachDataLoad:This is another DataLoad Event..."):a%!8=FNshell_HeapBlockExtend(a%!8,4):a%!&C=FNshell_HeapBlockExtend(a%!&C,4):g%=0:c%=a%!8:WHILEc%!g%<>-1:g%+=4:ENDWHILE:c%!g%=w%:c%!(g%+4)=-1:c%=a%!&C:c%!g%=FNshell_HeapBlockFetch(LENA$+1)
  338c%=c%!g%:$c%=A$
  339ENDIF:N$=FNshell_GetCmdLineArgs:PROCshell_Tracef0("AttachDataLoad:cmdline  ="+N$):PROCshell_Tracef0("AttachDataLoad:flag bit ="+STR$((_U%!&64AND1<<5))):PROCshell_Tracef0("AttachDataLoad:wh%      ="+STR$~b%):PROCshell_Tracef0("AttachDataLoad:type%    ="+STR$~w%)
  346IFN$<>""ANDb%<0AND(_U%!&64AND1<<5)THEN
  348IFw%AND1<<31THENc%=w%EOR1<<31ELSEc%=w%
  349IFFNshell_FileType(N$)=c%THEN
  351PROCshell_Tracef0("AttachDataLoad:Loading file.."):PROCshell_MessageSendDataLoad(c%,N$):_U%!&64=_U%!&64EOR(1<<5)
  354ENDIF
  355ENDIF:ENDPROC
  361DEFPROCshell_AttachDataSave(b%,f%,MB%,w%,iB%,A$):LOCALa%,c%,d%:IFNOTFNshell_IconIsSprite(b%,f%)THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG29"))
  366PROCshell_IconSetButtonType(b%,f%,6):IFMB%=0THENMB%=&64
  369PROCshell_Tracef0("AttachDataSave:Attaching DataSave Handler to icon "+STR$f%+" in window &"+STR$~b%):PROCshell_Tracef0("AttachDataSave:Handler function is '"+A$+"'"):d%=FNshell_GetEventListOffset(b%,f%,_U%+72,24,TRUE):a%=_U%!72+d%:a%!0=b%:a%!4=f%:a%!8=MB%:a%!&C=w%
  375a%!16=iB%:a%!20=FNshell_HeapBlockFetch(LEN(A$)+1):c%=a%!20:$c%=A$:CASEw%OF
  379WHEN&FF9:IFMB%>&8000THEN
  383_U%!&88=FNshell_HeapBlockInfo(MB%)-8
  384ELSE_U%!&88=MB%
  386ENDIF
  387OTHERWISEIFMB%>&8000THEN
  389_U%!&88=FNshell_HeapBlockInfo(MB%)-4
  390ELSE_U%!&88=MB%
  392ENDIF
  393ENDCASE:_U%!&8C=w%:_U%!&90=MB%:ENDPROC
  403DEFPROCshell_AttachMenu(b%,y%,m%,_B%,HC%,gC%):LOCALd%:IFb%>0ANDy%>=0THENPROCshell_IconSetButtonType(b%,y%,3)
  406d%=FNshell_SearchStatic(_U%!&B8,b%):IFd%=-1THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG30"))
  409PROCshell_Tracef0("AttachMenu:Attaching menu handle &"+STR$~m%+" to window handle &"+STR$~b%):PROCshell_EventAdd(b%,y%,0,m%,""):ENDPROC
  417DEFPROCshell_AttachMenuMaker(b%,y%,A$):PROCshell_Tracef0("AttachMenuMaker:Attaching menumaker function '"+A$+"'"):PROCshell_EventAdd(b%,y%,1,0,A$):ENDPROC
  425DEFPROCshell_AttachMenuDBox(GB%,M$,TA$,QA$):LOCALa%,c%,vA%:IFNOTFNshell_WindowLoaded(M$)THENERROR99,FNshell_MessageOneArg("SHELLMSG03",M$)
  430a%=FNshell_HeapBlockFetch(&C):a%!0=FNshell_HeapBlockFetch(LENM$+1):c%=a%!0:$c%=M$:a%!4=FNshell_HeapBlockFetch(LENTA$+1):c%=a%!4:$c%=TA$:a%!8=FNshell_HeapBlockFetch(LENQA$+1):c%=a%!8:$c%=QA$:SYS&45BCE,GB%,a%:SYS&45BCC,,TRUE:ENDPROC
  446DEFPROCshell_AttachClickSelect(b%,y%,A$):PROCshell_EventAdd(b%,y%,2,0,A$):ENDPROC
  453DEFPROCshell_AttachClickAdjust(b%,y%,A$):PROCshell_EventAdd(b%,y%,3,0,A$):ENDPROC
  460DEFPROCshell_AttachUserRedraw(RETURNb%,A$):LOCALa%,QA%:a%=FNshell_HeapBlockFetch(40):!a%=b%:SYS&400CB,,a%:QA%=a%!32:PROCshell_HeapBlockReturn(a%):IF(QA%AND1<<4)THEN
  469PROCshell_Tracef0("AttachUserRedraw:auto redraw set!!"):PROCshell_WindowToggleFlags(b%,1<<4)
  473ENDIF:PROCshell_EventAdd(b%,-1,4,0,A$):ENDPROC
  480DEFPROCshell_AttachDrag(b%,y%,FG%,A$):PROCshell_EventAdd(b%,y%,6,0,A$):ENDPROC
  487DEFPROCshell_AttachHelpTag(b%,y%,I$):PROCshell_EventAdd(b%,y%,8,0,I$):ENDPROC
  494DEFPROCshell_EventAdd(b%,y%,IC%,m%,A$):LOCALe%,eB%,h%,p%,j%:LOCALiC%:e%=0:j%=FALSE:IFb%=-1THENb%=-2
  499p%=FNshell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:REPEAT:IF(h%!e%=b%)THEN
  506IFh%!(e%+4)=y%THEN
  507j%=TRUE
  508ELSEe%+=48
  510ENDIF
  511ELSEe%+=48
  513ENDIF:UNTIL(e%>=p%ORj%):IFj%=FALSETHEN
  516e%=0:WHILE(h%!e%<>0):e%+=48:IFe%>=p%THEN
  520_U%!&C=FNshell_HeapBlockExtend(_U%!&C,48):h%=_U%!&C:h%!(e%+0)=0:h%!(e%+4)=0:h%!(e%+8)=0:h%!(e%+&C)=0:h%!(e%+16)=0:h%!(e%+20)=0:h%!(e%+24)=0:h%!(e%+28)=0:h%!(e%+32)=0:h%!(e%+36)=0:h%!(e%+40)=0:h%!(e%+44)=0
  534ENDIF:ENDWHILE
  536ENDIF:h%!(e%+0)=b%:h%!(e%+4)=y%:IFm%<>0THEN
  540h%!(e%+8)=m%
  541ENDIF:iC%=e%+(&C+(IC%*4)):IFh%!iC%<>0THEN
  544PROCshell_HeapBlockReturn(h%!iC%)
  545ENDIF:eB%=FNshell_HeapBlockFetch(LENA$+1):$eB%=A$:h%!iC%=eB%:ENDPROC
  554DEFPROCshell_EventDeleteAll(b%):LOCALe%,m%,j%,p%,h%,s%:e%=0:m%=0:j%=FALSE:IFb%=-1THENb%=-2
  558p%=FNshell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:REPEAT:IF(h%!e%=b%)THEN
  562j%=TRUE
  563ELSEe%+=48
  565ENDIF:UNTIL(e%>=p%ORj%):IFj%THEN
  568h%!(e%+0)=0:h%!(e%+4)=0:h%!(e%+8)=0:FORs%=&CTO44STEP4:IFh%!(e%+s%)<>0THEN
  573PROCshell_HeapBlockReturn(h%!(e%+s%)):h%!(e%+s%)=0
  575ENDIF:NEXTs%
  577ENDIF:PROCshell_Tracef0("EventDeleteAll:wh%=&"+STR$~b%):PROCshell_DeleteEventDataSave(b%,-1):PROCshell_DeleteEventBump(b%,-1):PROCshell_DeleteEventSlider(b%,-1):ENDPROC
  589DEFPROCshell_DeleteEventBump(b%,f%):LOCALd%,a%,p%,h%,c%:h%=_U%!&68:REPEAT:d%=FNshell_GetEventListOffset(b%,f%,_U%+&68,16,FALSE):PROCshell_Tracef0("DeleteEventBump:offset%="+STR$d%):IFd%>=0THEN
  602IFf%=-1THEN
  604PROCshell_Tracef0("DeleteEventBump:Deleting Bump Event (all events for window handle &"+STR$~b%+")")
  606ELSEPROCshell_Tracef0("DeleteEventBump:Deleting Bump Event (window handle was &"+STR$~b%+" icon handle was "+STR$f%+")")
  610ENDIF:p%=FNshell_HeapBlockInfo(_U%!&68)-8:IFd%=p%-16THEN
  615IFd%=0THEN
  617LA%=h%!&C:c%=LA%!&C:PROCshell_HeapBlockReturn(c%!&C):PROCshell_HeapBlockReturn(c%!16):PROCshell_HeapBlockReturn(c%):PROCshell_HeapBlockReturn(_U%!&68):_U%!&68=0:PROCshell_Tracef0("DeleteEventBump:No Bump events now registered")
  627ELSE_U%!&68=FNshell_HeapBlockExtend(_U%!&68,-16)
  630ENDIF
  631ELSEa%=h%+d%:a%!0=0:a%!4=0:a%!8=0:LA%=a%!&C:PROCshell_HeapBlockReturn(LA%!&C):PROCshell_HeapBlockReturn(LA%!16):PROCshell_HeapBlockReturn(LA%)
  639ENDIF
  640ENDIF:UNTILd%<0:ENDPROC
  649DEFPROCshell_DeleteEventDataSave(b%,f%):LOCALd%,a%,p%:REPEAT:d%=FNshell_GetEventListOffset(b%,f%,_U%+72,24,FALSE):IFd%>=0THEN
  661IFf%=-1THEN
  662PROCshell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (all events for window handle &"+STR$~b%+")")
  663ELSEPROCshell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (window handle was &"+STR$~b%+" icon handle was "+STR$f%+")")
  665ENDIF:p%=FNshell_HeapBlockInfo(_U%!72)-8:IFd%=p%-24THEN
  670IFd%=0THEN
  672PROCshell_HeapBlockReturn(_U%!72):_U%!72=0:PROCshell_Tracef0("DeleteEventDataSave:No DataSave events now registered")
  677ELSE_U%!72=FNshell_HeapBlockExtend(_U%!72,-24)
  680ENDIF
  681ELSEa%=h%+d%:a%!0=0:a%!4=0:a%!8=0:a%!&C=0:a%!16=0:PROCshell_HeapBlockReturn(a%!20):a%!20=0
  686ENDIF
  687ENDIF:UNTILd%<0:ENDPROC
  696DEFFNshell_MessageNoArgs(I$):=FNshell_MessageLookup(I$,"","")
  702DEFFNshell_MessageOneArg(I$,IA$):=FNshell_MessageLookup(I$,IA$,"")
  708DEFFNshell_MessageLookup(I$,IA$,jA$):LOCALn%,L%,g$,bC%,mB%:IFLEFT$(I$,8)="SHELLMSG"THEN
  711bC%=_U%!284:mB%=_U%!280
  712ELSEbC%=_U%!64:mB%=_U%!68
  714ENDIF:SYS&61502,mB%,I$,bC%,256,IA$,jA$TO,,,L%;n%:IFn%AND1THEN
  718ELSEbC%?L%=&D:g$=$(bC%)
  721ENDIF:=g$
  727DEFFNshell_WimpInit(QC%,DA$):LOCALbA%:SYS&400C0,QC%,&4B534154,DA$TOQC%,bA%:IF_U%!&64AND1<<6THEN
  731SYS"WimpExt_Initialise",&E,bA%
  732ENDIF:_U%!&94=bA%:=bA%
  739DEFFNshell_WimpInit_I(QC%,DA$):SYS&400C0,QC%,&4B534154,DA$TOQC%,bA%:IF_U%!&64AND1<<6THEN
  742SYS"WimpExt_Initialise",&E,bA%
  743ENDIF:_U%!&94=bA%:SYS&81682,bA%:=bA%
  751DEFPROCshell_WimpCloseDown_I(bA%):PROCshell_LoseFonts:IF_U%!&F0<>-1THENSYS"XFontMenu_Release"
  756IF_U%!&64AND1<<6THEN
  757SYS"WimpExt_Initialise",&E,bA%
  758ENDIF:SYS&600DD,bA%,&4B534154:SYS&A1683,bA%:IF_U%!&64AND1<<2THENSYS"XImpulse_CloseDown",_U%!&94
  762ENDPROC
  767DEFPROCWimpCloseDown(bA%):PROCshell_LoseFonts:IF_U%!&F0<>-1THENSYS"XFontMenu_Release"
  772IF_U%!&64AND1<<6THEN
  773SYS"WimpExt_Initialise",&E,bA%
  774ENDIF:SYS&600DD,bA%,&4B534154:IF_U%!&64AND1<<2THENSYS"XImpulse_CloseDown",_U%!&94
  777OSCLI("Unset "+_shell_AppName$+"$BasicFile"):ENDPROC
  783DEFPROCshell_LoseFonts:LOCALs%,c%:c%=_U%!&E8:FORs%=0TO&FF:WHILEc%?s%>0:SYS&40082,s%:c%?s%-=1:ENDWHILE:NEXTs%:ENDPROC
  797DEFFNshell_FindFont(b$,tF%):LOCALQA%,vD%:vD%=_U%!&E8:SYS&40081,,b$,tF%*16,c*16,0,0TOQA%:vD%?QA%+=1:IFvD%?QA%>=&FFTHENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG18"))
  803=QA%
  808DEFPROCshell_Init:LOCALiA%,s%,c%,N$:LOCALqA%,D$,E$:DIM_U%360,_shell_blk%260:_Q%=FNshell_HeapBlockFetch(&BB8):iA%=FNshell_HeapBlockFetch(48):iA%!0=0:iA%!4=0:iA%!8=0:iA%!&C=0:iA%!16=0:iA%!20=0:iA%!24=0:iA%!28=0:iA%!32=0:iA%!36=0:iA%!40=0:iA%!44=0:_U%!0=0:_U%!4=0:_U%!8=0
  829_U%!&C=iA%:_U%!16=1:_U%!20=0:_U%!24=0:_U%!28=0:_U%!32=0:_U%!36=0:_U%!40=0:_U%!44=-1:_U%!48=0:_U%!52=0:_U%!56=0:_U%!60=0:_U%!64=0:_U%!68=0:_U%!72=0:_U%!76=FNshell_HeapBlockFetch(256):_U%!80=0:_U%!84=-1:_U%!88=0:_U%!92=0:_U%!96=0:_U%!&64=0:_U%!&68=0
  872_U%!&6C=-1:_U%!&70=-1:_U%!&74=-1:_U%!&78=-1:_U%!&7C=-1:_U%!&80=0:_U%!&84=0:_U%!&88=-1:_U%!&8C=-1:_U%!&90=-1:_U%!&94=0:_U%!&98=0:_U%!&9C=0:_U%!&A0=0:_U%!&A4=0:_U%!&A8=0:_U%!&AC=0:_U%!&B0=0:_U%!&B4=0:_U%!&B8=0:_U%!&BC=0:_U%!&C0=0:_U%!&C4=0:_U%!&C8=0
  897_U%!&CC=0:_U%!&D0=-1:_U%!&D4=-1:_U%!&D8=0:_U%!&DC=0:_U%!&E0=0:_U%!&E4=0:_U%!&E8=FNshell_HeapBlockFetch(256):_U%!&EC=FNshell_HeapBlockFetch(256):_U%!&F0=-1:_U%!&F4=0:_U%!&F8=0:_U%!&FC=0:_U%!256=0:_U%!260=1:_U%!264=0:_U%!268=0:_U%!272=0:_U%!276=0
  918_U%!280=0:_U%!284=0:_U%!288=-1:_U%!292=-1:_U%!296=-1:_U%!300=0:_U%!304=0:_U%!308=0:_U%!312=0:_U%!316=0:_U%!320=0:_U%!324=0:_U%!328=0:_U%!332=0:_U%!336=0:_U%!340=0:_U%!344=0:PROCshell_MemFill(_U%!&E8,256,0):PROCshell_MemFill(_U%!&EC,256,0)
  937qA%=FNshell_HeapBlockFetch(256):D$=FNshell_OSVarGetVal(qA%,256,"Obey$Dir",1):PROCshell_HeapBlockReturn(qA%):E$=MID$(FNshell_Leaf(D$),2):_U%!&BC=FNshell_HeapBlockFetch((LEND$)+1):_U%!&C4=FNshell_HeapBlockFetch((LENE$)+1):c%=_U%!&BC:$c%=D$:c%=_U%!&C4:$c%=E$
  946N$=FNshell_OSReadCommandArg(1):IFN$<>""THEN
  948_U%!&64=_U%!&64OR1<<5:c%=FNshell_HeapBlockFetch(LENN$+1):$(c%)=N$:_U%!324=c%
  952ENDIF:c%=FNshell_OSModuleCheckVersion("WimpExtension",1.98):IFc%=TRUETHEN_U%!&64=_U%!&64OR1<<6
  956c%=FNRO3_Present:IFc%=TRUETHEN_U%!&64=_U%!&64OR1<<&A
  958_U%!&64=_U%!&64OR1<<&C:ENDPROC
  964DEFFNshell_GetCmdLineArgs:LOCALN$:IF_U%!324<>0THEN
  967N$=$(_U%!324)
  968ENDIF:PROCshell_Tracef0("GetCmdLineArgs:cmdline was "+N$):=N$
  975DEFFNshell_FileType(d$):LOCALw%:SYS8,5,d$TO,,w%:w%=(w%AND&FFF00)>>>8:=w%
  984DEFFNshell_FileExists(d$):IFFNshell_CatInfoRead(d$)="Not Found":=FALSE
  986=TRUE
  991DEFFNshell_CatInfoRead(d$):LOCALw%,JD%,kC%,DB%,FC%,B$:SYS8,5,d$TOw%,,JD%,kC%,DB%,FC%:IFw%=0THEN="Not Found"
  995IFFC%=51THENB$+="WR "
  996IFFC%=&BBTHENB$+="LWR"
  997IFFC%=&88THENB$+="DL "
  998B$+=" "+FNshell_StringPadLeading(STR$~JD%,"0",8):B$+=" "+FNshell_StringPadLeading(STR$~kC%,"0",8):B$+=" "+FNshell_StringPadLeading(STR$~DB%,"0",8):=B$
 1005DEFFNshell_GetAppDir:LOCALc%:c%=_U%!&BC:=$c%
 1012DEFFNshell_GetAppDataDir:LOCALc%:c%=_U%!&C0:=$c%
 1019DEFFNshell_GetAppName:LOCALc%:c%=_U%!&C4:=$c%
 1027DEFPROCshell_ResourcesInit:LOCALAA$,c%,E$,D$,nC%:LOCALqA%,qB%,OC%:E$=FNshell_GetAppName:D$=FNshell_GetAppDir:qA%=FNshell_HeapBlockFetch(256):IFFNshell_OSVarExists(qA%,E$+"Res$Path")THEN
 1034_U%!&64=_U%!&64OR1<<3
 1035ENDIF:IFFNshell_OSVarExists(qA%,E$+"Data$Dir")THEN
 1037AA$=FNshell_OSVarGetVal(qA%,256,E$+"Data$Dir",1):_U%!&C0=FNshell_HeapBlockFetch((LENAA$)+1):c%=_U%!&C0:$c%=AA$
 1040ELSE_U%!&C0=FNshell_HeapBlockFetch((LEND$)+1):c%=_U%!&C0:$c%=D$
 1043ENDIF:IF_U%!&64AND1<<3THEN
 1047IFFNshell_FileExists(E$+"Res:Messages")THEN
 1048PROCshell_MessagesInit(E$+"Res:Messages",_U%!68,_U%!64)
 1049ENDIF:IFFNshell_FileExists(E$+"Res:ShellMsgs")THEN
 1051PROCshell_MessagesInit(E$+"Res:ShellMsgs",_U%!280,_U%!284)
 1052ELSEPROCshell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284)
 1054ENDIF:SYS&20035,-1,4TO,,OC%:SYS&20035,-1,5TO,,qB%:IFqB%=1ANDFNshell_FileExists(E$+"Res:Sprites22")THEN
 1059_U%!16=FNshell_SpriteAreaLoad(E$+"Res:Sprites22")
 1060ELSEIFFNshell_FileExists(E$+"Res:Sprites")THEN
 1063_U%!16=FNshell_SpriteAreaLoad(E$+"Res:Sprites")
 1064ELSE_U%!16=1
 1066ENDIF
 1067ENDIF:nC%=FNshell_3DEnabled:IFnC%ANDFNshell_FileExists(E$+"Res:Templates3")THEN
 1071PROCshell_TemplatesInit(E$+"Res:Templates3")
 1072ELSEIFFNshell_FileExists(E$+"Res:Templates")THEN
 1074PROCshell_TemplatesInit(E$+"Res:Templates")
 1075ENDIF
 1076ENDIF
 1077ELSEIFFNshell_FileExists(D$+".Messages")THEN
 1080PROCshell_MessagesInit(D$+".Messages",_U%!68,_U%!64)
 1081ENDIF:IFFNshell_FileExists(D$+".ShellMsgs")THEN
 1083PROCshell_MessagesInit(D$+".ShellMsgs",_U%!280,_U%!284)
 1084ELSEPROCshell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284)
 1086ENDIF:SYS&20035,-1,4TO,,OC%:SYS&20035,-1,5TO,,qB%:IFqB%=1ANDFNshell_FileExists(D$+".Sprites22")THEN
 1093_U%!16=FNshell_SpriteAreaLoad(D$+".Sprites22")
 1094ELSEIFFNshell_FileExists(D$+".Sprites")THEN
 1096_U%!16=FNshell_SpriteAreaLoad(D$+".Sprites")
 1097ELSE_U%!16=1
 1099ENDIF
 1100ENDIF:nC%=FNshell_3DEnabled:IFnC%ANDFNshell_FileExists(D$+".Templates3")THEN
 1104PROCshell_TemplatesInit(D$+".Templates3")
 1105ELSEIFFNshell_FileExists(D$+".Templates")THEN
 1107PROCshell_TemplatesInit(D$+".Templates")
 1108ENDIF
 1109ENDIF
 1110ENDIF:SYS&45BC0:PROCshell_HeapBlockReturn(_Q%):_Q%=FNshell_HeapBlockFetch(&400):PROCshell_HeapBlockReturn(qA%):ENDPROC
 1120DEFFNshell_SpriteAreaLoad(C$):LOCALOB%,S%,T%:S%=OPENIN(C$):T%=EXT#S%+16:CLOSE#S%:OB%=FNshell_HeapBlockFetch(T%):!OB%=T%:OB%!4=0:OB%!8=16:OB%!&C=16:SYS46,521,OB%:SYS46,522,OB%,C$:PROCshell_Tracef0("SpriteLoad:Sprite file loaded at &"+STR$~OB%):=OB%
 1136DEFFNshell_UserSpritesBase:=_U%!16
 1142DEFFNshell_SpriteGetPtr(CC%,R$):LOCALTB%,e%:TB%=FNshell_HeapBlockFetch(21):$TB%=R$:SYS46,280,CC%,TB%TO,,e%:PROCshell_HeapBlockReturn(TB%):=e%
 1153DEFPROCshell_TemplatesInit(C$):LOCALWC%,WD%,RE%,X%,e%,eA%:LOCALeE%,FA%,HD%,R$,SA%,aB%,_%:LOCALjA%,DD%,LE%,NC%,pA$,AA%:HD%=FNshell_HeapBlockFetch(20):FA%=0:SA%=0:eE%=FNshell_FileLength(C$):VE%=FNshell_HeapBlockFetch(eE%):WC%=VE%:PROCshell_TemplateFileInfo(C$,eA%,SA%,_%)
 1165IF_%=0THEN
 1168_U%!4=FNshell_HeapBlockFetch(20*SA%):fE%=FNshell_HeapBlockFetch(eA%):WD%=fE%:RE%=fE%+eA%:SA%=0:SYS&600D9,,C$TO;aB%:IF(aB%AND1)THEN
 1178ERROR99,FNshell_MessageTwoArgs("SHELLMSG34","template",C$)
 1179ELSEREPEAT:$HD%="*":SYS&400DB,,WC%,WD%,RE%,_U%!&E8,HD%,FA%TO,,WD%,,,R$,FA%:IFFA%<>0THEN
 1184!((_U%!4)+(16*SA%))=WC%:$(((_U%!4)+(16*SA%))+4)=R$:PROCshell_Tracef0("TemplatesInit:  Template Loaded: "+R$):WC%+=(88+(WC%!84)*32):SA%+=1
 1191ENDIF:UNTILFA%=0:SYS&400DA:_U%!0=SA%:PROCshell_Tracef0("TemplatesInit:Templates resource file loaded at       &"+STR$~VE%+" ("+STR$SA%+" templates)"):PROCshell_Tracef0("TemplatesInit:Indirected buffer size used for loading &"+STR$~eA%)
 1199ENDIF
 1200ELSECASE_%OF
 1202WHEN-1:ERROR99,FNshell_MessageTwoArgs("SHELLMSG35","template",C$)
 1203WHEN-2:ERROR99,FNshell_MessageTwoArgs("SHELLMSG36",C$,"template")
 1204ENDCASE
 1205ENDIF:PROCshell_HeapBlockReturn(HD%):ENDPROC
 1212DEFFNshell_WindowLoaded(M$):LOCALs%,j%:IFLEN(M$)>&CTHENERROR99,FNshell_MessageOneArg("SHELLMSG02",M$)
 1215j%=FALSE:FORs%=0TO(_U%!0)-1:IF$(((_U%!4)+(16*s%))+4)=M$THEN
 1218j%=TRUE:s%=(_U%!0)-1
 1219ENDIF:NEXTs%:=j%
 1225DEFFNshell_GetWB(M$):LOCALs%,j%:IFLEN(M$)>&CTHENERROR99,FNshell_MessageOneArg("SHELLMSG02",M$)
 1228j%=-1:FORs%=0TO(_U%!0)-1:IF$(((_U%!4)+(16*s%))+4)=M$THEN
 1231j%=s%:s%=(_U%!0)-1
 1232ENDIF:NEXTs%:IFj%>-1THEN
 1235=!((_U%!4)+(16*j%))
 1236ELSEERROR99,FNshell_MessageOneArg("SHELLMSG03",M$)
 1238ENDIF:=FALSE
 1244DEFFNshell_MessageExpand(a$):LOCALL$,g$,xA%:L$="":WHILEINSTR(a$,"\")>0:xA%=INSTR(a$,"\"):L$+=LEFT$(a$,xA%-1):g$=MID$(a$,xA%+1,1):a$=MID$(a$,xA%+2):CASEg$OF
 1253WHEN"A":L$+="Click ADJUST to"
 1254WHEN"a":L$+="ADJUST"
 1255WHEN"D":L$+="Drag with SELECT to"
 1256WHEN"d":L$+="Drag with ADJUST to"
 1257WHEN"G":L$+="This option is greyed out because"
 1258WHEN"R":L$+="Move the pointer right"
 1259WHEN"S":L$+="Click SELECT to"
 1260WHEN"s":L$+="SELECT"
 1261WHEN"T":L$+="This is the"
 1262WHEN"W":L$+="This window is"
 1263WHEN"w":L$+="window"
 1264OTHERWISEL$+="\"+g$
 1266ENDCASE:ENDWHILE:=L$+a$
 1275DEFPROCshell_OpenMenu(IA%,MA%,rA%):LOCALA$:A$=FNshell_GetEventHandler(_U%!28,_U%!32,1):IFA$<>""THEN
 1280PROCshell_Tracef0("OpenMenu:About to call "+"FN"+A$+"("+STR$_U%!28+","+STR$_U%!32+")"):o%=EVAL("FN"+A$+"(_U%!28,_U%!32)")
 1283ELSEPROCshell_Tracef0("OpenMenu:no menumaker function registered")
 1285ENDIF:IFrA%<>_U%!24THEN
 1289IFFNshell_HeapBlockExists(_U%!256)THEN
 1290PROCshell_HeapBlockReturn(_U%!256):_U%!256=0
 1291ENDIF:IFFNshell_HeapBlockExists(_U%!&F4)THEN
 1294PROCshell_HeapBlockReturn(_U%!&F4):_U%!&F4=0
 1295ENDIF
 1296ENDIF:IFrA%=_U%!&FCTHEN
 1298SYS&400D4,,rA%,IA%-64,MA%:_U%!264=1
 1300ELSE_Q%!0=IA%:_Q%!4=MA%:SYS&45BC5,rA%,_Q%:_U%!264=0
 1304ENDIF:_U%!24=rA%:_U%!36=IA%:_U%!40=MA%:_U%!52=_U%!28:_U%!56=_U%!32:ENDPROC
 1315DEFFNshell_MenuLastXPos:=_U%!36
 1321DEFFNshell_MenuLastYPos:=_U%!40
 1327DEFPROCshell_MenuAttachDbox(e$):SYS"Menu_SetSubHandle",_U%!8,FNshell_MenuString(e$),1:PROCshell_Tracef0("MenuAttachDbox:Dialog box ("+e$+") attached"):ENDPROC
 1337DEFFNshell_MessageWindow(H$,SF%,iA$,n$):LOCALfD%,wA%:wA%=FNshell_HeapBlockFetch(260):!wA%=0:$(wA%+4)=H$+CHR$(0):IFn$=""THENn$="Message from "+iA$
 1342IFSF%THEN
 1343SYS&400DF,wA%,19,n$TO,fD%
 1344ELSESYS&400DF,wA%,17,n$TO,fD%
 1346ENDIF:PROCshell_HeapBlockReturn(wA%):=fD%
 1353DEFPROCshell_CreateWindow(z$,RETURNi%):LOCALtB%:tB%=FNshell_GetWB(z$):tB%!64=_U%!16:SYS&400C1,,tB%TOi%:ENDPROC
 1363DEFFNshell_CreateWindow2(N,n%,iF%,hF%,QF%,kA%,LD%,lA%,LB%,SB%):LOCALQ%:Q%=FNshell_HeapBlockFetch(&BB8):Q%!0=LD%:Q%!4=lA%:Q%!8=LB%:Q%!&C=SB%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=n%:Q%?32=7:Q%?33=2:Q%?34=iF%:Q%?35=hF%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=kA%
 1371Q%!48=QF%:Q%!52=0:Q%!56=317:Q%!60=&3000:Q%!68=1:Q%!72=N:Q%!76=-1:Q%!80=LEN$N:Q%!84=0:SYS&400C1,,Q%TOi%:PROCshell_HeapBlockReturn(Q%):=i%
 1380DEFFNshell_WindowHasTitleBar(b%):=(FNshell_WindowGetFlags(b%)AND1<<26)
 1387DEFFNshell_WindowIsMoveable(b%):=(FNshell_WindowGetFlags(b%)AND1<<1)
 1393DEFFNshell_WindowIsAPane(b%):=(FNshell_WindowGetFlags(b%)AND1<<5)
 1399DEFFNshell_WindowIsNotBounded(b%):=(FNshell_WindowGetFlags(b%)AND1<<6)
 1405DEFFNshell_WindowTrapsHotKeys(b%):=(FNshell_WindowGetFlags(b%)AND1<<&C)
 1411DEFFNshell_WindowIsOpen(b%):=(FNshell_WindowGetFlags(b%)AND1<<16)
 1417DEFFNshell_WindowIsOnTop(b%):=(FNshell_WindowGetFlags(b%)AND1<<17)
 1423DEFFNshell_WindowHasBeenToggled(b%):=(FNshell_WindowGetFlags(b%)AND1<<18)
 1429DEFFNshell_WindowHasInputFocus(b%):=(FNshell_WindowGetFlags(b%)AND1<<20)
 1435DEFFNshell_WindowHasBackIcon(b%):=(FNshell_WindowGetFlags(b%)AND1<<24)
 1441DEFFNshell_WindowHasCloseIcon(b%):=(FNshell_WindowGetFlags(b%)AND1<<25)
 1447DEFFNshell_WindowHasToggleIcon(b%):=(FNshell_WindowGetFlags(b%)AND1<<27)
 1453DEFFNshell_WindowHasVScrollBar(b%):=(FNshell_WindowGetFlags(b%)AND1<<28)
 1459DEFFNshell_WindowHasAdjustSizeIcon(b%):=(FNshell_WindowGetFlags(b%)AND1<<29)
 1465DEFFNshell_WindowHasHScrollBar(b%):=(FNshell_WindowGetFlags(b%)AND1<<30)
 1471DEFFNshell_WindowGetFlags(b%):LOCALn%,a%:a%=FNshell_HeapBlockFetch(36):a%!0=b%:SYS&400CB,,a%:n%=a%!32:PROCshell_HeapBlockReturn(a%):=n%
 1483DEFFNshell_WindowGetTitleFlags(b%):LOCALn%,a%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:n%=a%!60:PROCshell_HeapBlockReturn(a%):=n%
 1495DEFFNshell_IconGetFlags(b%,f%):LOCALn%,a%:a%=FNshell_HeapBlockFetch(50):a%!0=b%:a%!4=f%:SYS&400CE,,a%:n%=a%!24:PROCshell_HeapBlockReturn(a%):=n%
 1509DEFFNshell_WindowTitleFlags(b%):LOCALn%,a%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:n%=a%!60:PROCshell_HeapBlockReturn(a%):=n%
 1521DEFFNshell_WindowTitleHasBorder(b%):=(FNshell_WindowTitleFlags(b%)AND1<<2)
 1527DEFFNshell_WindowTitleIsSprite(b%):=(FNshell_WindowTitleFlags(b%)AND1<<1)
 1533DEFFNshell_WindowTitleIsText(b%):=(FNshell_WindowTitleFlags(b%)AND1<<0)
 1539DEFFNshell_WindowTitleIsHCentred(b%):=(FNshell_WindowTitleFlags(b%)AND1<<3)
 1545DEFFNshell_WindowTitleIsVCentred(b%):=(FNshell_WindowTitleFlags(b%)AND1<<4)
 1551DEFFNshell_WindowTitleIsFilled(b%):=(FNshell_WindowTitleFlags(b%)AND1<<5)
 1557DEFFNshell_WindowTitleIsAAliased(b%):=(FNshell_WindowTitleFlags(b%)AND1<<6)
 1563DEFFNshell_WindowTitleIsIndirected(b%):=(FNshell_WindowTitleFlags(b%)AND1<<8)
 1569DEFFNshell_WindowGetTitle(b%):LOCALS$,a%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:IF(a%!32AND1<<26)THEN
 1576IF((a%!60)AND256)=0THEN
 1578S$=$(a%+76)
 1579ELSES$=$(!(a%+76))
 1582ENDIF
 1583ENDIF:PROCshell_HeapBlockReturn(a%):=S$
 1590DEFFNshell_WindowTitleBufferLength(b%):LOCAL_%,a%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:IF((a%!60)AND256)=0THEN
 1596_%=&C
 1597ELSE_%=a%!84
 1599ENDIF:PROCshell_HeapBlockReturn(a%):=_%
 1606DEFPROCshell_WindowMoveToIcon(b%,YD%,f%,gA%,fA%):LOCALr%,t%:r%=FNshell_HeapBlockFetch(50):t%=FNshell_HeapBlockFetch(36):t%!20=0:IFFNshell_OSCheckVersion(3)THEN
 1612IFYD%=-1THEN!t%=-2ELSE!t%=YD%
 1613SYS&400CB,,t%
 1614ENDIF:r%!0=YD%:r%!4=f%:SYS&400CE,,r%:PROCshell_WindowMoveTo(b%,r%!8+gA%-t%!20,r%!20+fA%):PROCshell_HeapBlockReturn(r%):PROCshell_HeapBlockReturn(t%):ENDPROC
 1626DEFPROCshell_WindowMoveTo(b%,IA%,MA%):LOCALSE%,UE%,d%,a%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:SE%=a%!&C-a%!4:UE%=a%!16-a%!8:a%!4=IA%:a%!8=MA%:a%!&C=IA%+SE%:a%!16=MA%+UE%:SYS&400C5,,a%:SYS&400C6,,a%
 1643d%=FNshell_SearchStatic(_U%!&B8,b%):IFd%>-1THEN
 1645PROCshell_OpenWindowStatic(b%)
 1646ELSEPROCshell_OpenWindowDynamic2(b%,0,0)
 1648ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 1655DEFPROCshell_WindowBringToTop(b%):LOCALoB%:oB%=FNshell_HeapBlockFetch(256):oB%!0=b%:SYS&400CB,,oB%:oB%!28=-1:SYS&400E7,2,oB%,b%:SYS&400C7,0,oB%:PROCshell_HeapBlockReturn(oB%):ENDPROC
 1671DEFPROCshell_UpdateWindow(i%,LD%,lA%,LB%,SB%):LOCALa%:a%=FNshell_HeapBlockFetch(a%):a%!0=i%:a%!4=LD%:a%!8=lA%:a%!&C=LB%:a%!16=SB%:SYS&400C9,,a%TOpC%:SYS&400CB,,a%:PROCshell_HeapBlockReturn(a%):ENDPROC
 1683DEFPROCshell_OpenWindowDynamic2(b%,gA%,fA%):LOCALo%,zA%:zA%=FNshell_HeapBlockFetch(20):_U%!20=b%:SYS&400CF,,zA%:SYS&400D4,,b%,zA%!0+gA%,zA%!4+fA%:PROCshell_HeapBlockReturn(zA%):ENDPROC
 1695DEFFNshell_ClaimKeypress:IF_U%!20<>0THEN
 1698SYS&400D4,,-1:o%=FNshell_DeleteWindow(_U%!20):_U%!20=0
 1701ENDIF:=TRUE
 1707DEFPROCshell_OpenWindow(b%,xD%,_D%):LOCALd%,a%,u%,g%,yE%,uC%,UA%,sA%:LOCALvB%,yB%,SB%,KE%,JE%,KC%,LC%:d%=FNshell_GetEventListOffset(b%,-1,_U%+304,&C,FALSE):IFd%>=0THEN
 1713a%=_U%!304+d%:c%=a%!8:PROCshell_Tracef0("OpenWindow:About to call "+"FN"+$c%):KC%=EVAL("FN"+$c%):IFKC%=0THENENDPROC
 1720ENDIF:yB%=FALSE:SB%=FNshell_HeapBlockFetch(40):SB%!0=b%:SYS&400CB,,SB%:IF(SB%!32AND&80000)=&80000THENyB%=TRUEELSEyB%=FALSE
 1727PROCshell_HeapBlockReturn(SB%):LC%=FNshell_HeapBlockFetch(20):SYS&400CF,,LC%:_Q%!0=b%:IFNOTxD%THENSYS&400CB,,_Q%
 1734IFyB%THEN
 1735SYS&400C5,,_Q%
 1736ENDIF:d%=FNshell_GetEventListOffset(b%,-1,_U%+92,24,FALSE):IFd%>-1THEN
 1739a%=(_U%!92)+d%:xB%=a%!8:wD%=a%!&C:dB%=a%!16:zB%=a%!20:_Q%!0=b%:IF_D%THENuC%=-1ELSEuC%=_Q%!28
 1744IFNOTxD%THEN
 1745SYS&400C5,,_Q%:SYS&400CB,,_Q%:SYS&400C6,,_Q%
 1748ENDIF:u%=FNshell_HeapBlockFetch(40):g%=0:WHILExB%!g%<>-1:u%!0=xB%!g%:IFyE%=0THENyE%=u%!0
 1755KE%=u%!0:SYS&400CB,,u%:IFLC%!16=-9ORyB%ORLC%!16>-5OR_D%THEN
 1760vB%=wD%!g%:CASEvB%OF
 1762WHEN0,1:UA%=u%!16-u%!8:sA%=u%!&C-u%!4:u%!4=_Q%!4+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16+zB%!g%:u%!8=u%!16-UA%
 1769WHEN2:UA%=u%!16-u%!8:sA%=_Q%!&C-_Q%!4:u%!4=_Q%!4+dB%!g%:u%!&C=_Q%!&C:u%!16=_Q%!16+zB%!g%:u%!8=u%!16-UA%
 1777WHEN3:UA%=_Q%!16-_Q%!8:sA%=u%!&C-u%!4:u%!4=_Q%!4+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16:u%!8=_Q%!8+zB%!g%
 1785WHEN4:UA%=u%!16-u%!8:sA%=_Q%!&C-_Q%!4:u%!4=_Q%!4+dB%!g%:u%!&C=_Q%!&C:u%!16=_Q%!8+UA%+zB%!g%:u%!8=u%!16+UA%
 1793WHEN5:UA%=_Q%!16-_Q%!8:sA%=u%!&C-u%!4:u%!4=_Q%!&C-sA%+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16:u%!8=_Q%!8
 1801ENDCASE:IFg%=0THEN
 1803u%!28=uC%
 1804ELSEu%!28=JE%
 1806ENDIF:SYS&400C5,,u%
 1808ENDIF:JE%=u%!0:g%+=4:ENDWHILE:IFNOTyB%THEN
 1813_Q%!28=KE%:SYS&400C5,,_Q%
 1815ENDIF:PROCshell_HeapBlockReturn(u%)
 1817ELSE_Q%!0=b%:IFNOTxD%THENSYS&400CB,,_Q%
 1821IFuC%=-2THEN_Q%!28=-2
 1822IF_D%=-1THEN_Q%!28=-1
 1823SYS&400C5,,_Q%
 1824ENDIF:PROCshell_HeapBlockReturn(LC%):ENDPROC
 1831DEFPROCshell_CloseWindow(b%):LOCALd%,a%,xB%,wD%,dB%,zB%,q%,KC%:d%=FNshell_GetEventListOffset(b%,-1,_U%+308,&C,FALSE):IFd%>=0THEN
 1835a%=_U%!308+d%:c%=a%!8:PROCshell_Tracef0("CloseWindow:About to call "+"FN"+$c%):KC%=EVAL("FN"+$c%):IFKC%=0THENENDPROC
 1842ENDIF:q%=FNshell_HeapBlockFetch(60):IFb%>0THEN
 1845d%=FNshell_GetEventListOffset(b%,-1,_U%+92,24,FALSE):IFd%>-1THEN
 1847a%=(_U%!92)+d%:wD%=a%!&C:dB%=a%!16:zB%=a%!20:g%=0:xB%=a%!8:WHILExB%!g%<>-1:q%!0=xB%!g%:SYS&400C6,,q%:g%+=4:ENDWHILE
 1860ENDIF:q%!0=b%:SYS&400C6,,q%
 1863ENDIF:PROCshell_HeapBlockReturn(q%):ENDPROC
 1870DEFFNshell_DeleteWindow(i%):LOCALq%:q%=FNshell_HeapBlockFetch(20):IFi%<>0THEN
 1874IFFNoktodeletew(i%)THEN
 1875PROCshell_EventDeleteAll(i%):IFi%=_U%!20THEN_U%!20=0
 1877d%=FNshell_SearchStatic(_U%!&B8,i%):IFd%>-1THEN
 1879c%=_U%!&B8+d%:c%!0=0
 1881ENDIF:q%!0=i%:SYS&400C3,,q%:i%=0
 1886ENDIF
 1887ENDIF:PROCshell_HeapBlockReturn(q%):=i%
 1893DEFFNoktodeletew(i%):=-1
 1898DEFFNoktoclosew(i%):=-1
 1903DEFPROCcliprect(A,RETURNVA%,RETURNcA%,RETURNqF%,RETURNfF%):LOCALKA%,PA%:PROClwaorigin(A,KA%,PA%):VA%=A!24-KA%:cA%=A!28-PA%:qF%=A!32-KA%:fF%=A!36-PA%:ENDPROC
 1912DEFFNpoll(fC%,FF%):IF_U%!&64AND1<<6THENSYS"WimpExt_PrePoll"
 1914SYS&400C7,fC%,_Q%TOHA%:IF_U%!&64AND1<<6THENSYS"WimpExt_Action",_U%!&94,_Q%,HA%
 1916=HA%
 1921DEFFNshell_Poll_I(fC%,FF%):IF_U%!&64AND1<<6THENSYS"WimpExt_PrePoll"
 1923SYS&400C7,fC%,_Q%TOHA%:IF_U%!&64AND1<<6THENSYS"WimpExt_Action",_U%!&94,_Q%,HA%
 1925SYS&81686,HA%,,FF%:=HA%
 1931DEFPROCshell_DoBackgroundTask:ENDPROC
 1937DEFFNshell_IconIsDraggable(b%,f%):LOCALn%:n%=FNshell_IconGetFlags(b%,f%):c%=(n%AND&6000):IFc%=&6000=TRUEELSE=FALSE
 1946DEFFNshell_IconIsSprite(b%,f%):LOCALn%,c%:n%=FNshell_IconGetFlags(b%,f%):c%=(n%AND1<<1):IFc%=(1<<1)THEN=TRUEELSE=FALSE
 1955DEFPROCshell_IconDragBox(b%,f%):LOCALa%,H,J,mA%,n%,QA%,mE%,vE%,wB%,JA$:LOCALiB%,R$:mA%=FNshell_GetEventListOffset(b%,f%,_U%+72,24,FALSE):IFmA%>=0THEN
 1963a%=_U%!72+mA%:iB%=a%!16:R$=FNshell_IconGetData(b%,iB%):IFR$=""THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG28"))
 1967a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):!a%=b%:SYS&400CC,,a%:H=a%!4-a%!20:J=a%!16-a%!24:vE%=a%!68:a%!4=f%:SYS&400CE,,a%:!a%=b%:a%!4=5:n%=a%!24:wB%=a%!32:a%!8=a%!8+H:a%!&C=a%!&C+J:a%!16=a%!16+H:a%!20=a%!20+J:a%!24=0:a%!28=0
 1980a%!32=&7FFFFFFF:a%!36=&7FFFFFFF:SYS6,&A1,28TO,,QA%:mE%=((QA%AND2)=2):IFmE%THEN
 1986QA%=n%:IF(QA%AND256)THEN
 1988JA$=FNshell_IconGetCommand(wB%,"s")
 1989ENDIF:IF(QA%AND2)=0THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG19"))
 1991IFJA$<>""THEN
 1992SYS&42400,&85,vE%,JA$,a%+8:_U%!&64=_U%!&64OR1
 1994ELSESYS&400D0,,a%
 1996ENDIF
 1997ELSESYS&400D0,,a%
 1999ENDIF:PROCshell_HeapBlockReturn(a%)
 2001ELSEPROCshell_Tracef0("IconDragBox:WARNING! no user drag handler registered for this icon!"):PROCshell_Tracef0("IconDragBox:now checking for a slider drag event.."):mA%=FNshell_GetEventListOffset2(b%,f%,_U%+332,32,FALSE)
 2007PROCshell_Tracef0("IconDragBox:event offset is "+STR$mA%):IFmA%>=0THENPROCshell_HandleSlider(b%,f%,mA%)
 2009ENDIF:ENDPROC
 2015DEFPROCshell_HandleAttachedMenu(_Q%,b%,f%):LOCALm%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 2021IFf%<>-1ANDb%>-1THEN
 2022m%=FNshell_GetEventMenu(_Q%!8,b%,f%):IFm%<>0THEN
 2024PROCshell_HandleMenuOpen(_Q%,m%,b%,f%,TRUE)
 2025ENDIF
 2026ENDIF:ENDPROC
 2032DEFPROCshell_Action(kF%):LOCALA$,m%,e$,oA$,NB%,tA%,HB%,ND%:LOCALb%,f%,o%,_temp28%,_temp32%,_temp24%,_temp%,RD%:LOCALYC%,d%:CASEkF%OF
 2037WHEN0:PROCshell_DoBackgroundTask:IF(_U%!&64AND1<<&B)THEN
 2039PROCshell_Slider
 2040ENDIF
 2041WHEN1:PROCshell_RedrawWindow(_Q%!0)
 2042WHEN2:PROCshell_OpenWindow(_Q%!0,TRUE,0)
 2043WHEN3:PROCshell_CloseWindow(_Q%!0)
 2045WHEN4:PROCshell_PointerLeavingWindow(_Q%)
 2048WHEN5:PROCshell_PointerEnteringWindow(_Q%)
 2050WHEN6:_U%!28=_Q%!&C:_U%!32=_Q%!16:tA%=_Q%!0:HB%=_Q%!4:_U%!272=_Q%!0:_U%!276=_Q%!4:_U%!320=_Q%!8:_temp28%=_Q%!&C:_temp32%=_Q%!16:f%=_Q%!16:PROCshell_Tracef0("Action:Mouse_Click event detected")
 2055PROCshell_Tracef0("Action:Window Handle was &"+STR$~_Q%!&C+" Icon Handle was "+STR$_Q%!16):IF_Q%!&C=_U%!288AND_Q%!16=_U%!292THEN
 2059PROCshell_HandleBumpIcons(_U%!296,_Q%!&C,_Q%!16,_Q%!8)
 2060ELSE_U%!288=-1:_U%!292=-1:_U%!296=-1:IF_Q%!16>=0THEN
 2063d%=FNshell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+&68,16,0):PROCshell_Tracef0("DEBUG::bump event offset is "+STR$d%):IFd%>=0THENPROCshell_HandleBumpIcons(d%,_Q%!&C,_Q%!16,_Q%!8)
 2066ENDIF
 2067ENDIF:IF(_Q%!8=64)THEN
 2071_%=FNshell_IconIsDraggable(_Q%!&C,_Q%!16):IF_%THEN
 2073W$="Icon is draggable":PROCshell_IconDragBox(_Q%!&C,_Q%!16)
 2076ELSEW$="Icon is not draggable"
 2078ENDIF:PROCshell_Tracef0("Action:"+W$)
 2080ENDIF:CASE_Q%!8OF
 2082WHEN4:PROCshell_ActionSelectButton
 2083WHEN2:PROCshell_ActionMenuButton
 2084WHEN1:PROCshell_ActionAdjustButton
 2085ENDCASE
 2086WHEN7:IF_U%!&64AND1THEN
 2087SYS&42401:_U%!&64=_U%!&64EOR1
 2089ENDIF:_U%!&80=0:IF(_U%!&64AND1<<&B)=0THEN
 2095A$=FNshell_GetEventHandler(_U%!28,_U%!32,6):IFA$<>""THEN
 2097PROCshell_Tracef0("Action:Drag event detected - function is "+A$):o%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 2099ELSEPROCshell_Tracef0("Action:Drag event detected - no handler function"):PROCshell_SendDataSave(_U%!28,_U%!32)
 2103ENDIF
 2104ELSE_U%!&64=_U%!&64EOR1<<&B
 2107ENDIF
 2108WHEN8:PROCshell_Tracef0("Action:keypress is="+STR$_Q%!24):CASE_Q%!24OF
 2111WHEN&D,394,398,399,410,430,431:ND%=FNshell_WritableIconHandler(_Q%!0,_Q%!4,_Q%!24)
 2113OTHERWISEND%=FNshell_HotKeyProcess(_Q%!24)
 2115ENDCASE:IFNOTND%THEN
 2117PROCshell_Tracef0("Action:Keypress not claimed, passing it on"):SYS&400DC,_Q%!24
 2119ELSEPROCshell_Tracef0("Action:Keypress claimed by this application")
 2121ENDIF
 2122WHEN9:PROCshell_ActionMenuSelect(_Q%)
 2123WHEN17,18:PROCshell_Receive(_Q%)
 2124WHEN19:PROCshell_UserMessageAcknowledge(_Q%)
 2125ENDCASE:ENDPROC
 2131DEFPROCshell_ActionSelectButton:LOCALd%:PROCshell_Tracef0("ActionSelectButton:Mouse Button was SELECT"):IF_U%!32>=0THEN
 2138d%=FNshell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24,FALSE)
 2139ENDIF:IFd%>0THEN
 2143IF!(_U%!340+d%+16)=1THEN
 2144PROCshell_MenuTickOnly1(!(_U%!340+d%+20),FNshell_IconGetBGColour(_Q%!&C,!(_U%!340+d%+8)))
 2145ENDIF:PROCshell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16,TRUE)
 2147ELSEPROCshell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):IF_U%!32=0THENPROCshell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32)
 2150A$=FNshell_GetEventHandler(_U%!28,_U%!32,2):IFA$<>""THEN
 2152PROCshell_IconSlab(4,_U%!28,_U%!32):PROCshell_Tracef0("ActionSelectButton:About to call "+"FN"+A$+"("+STR$_temp28%+","+STR$_temp32%+")"):o%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 2157ENDIF:IF_U%!32=0THEN
 2160IF_U%!28=_U%!20THEN
 2161SYS&400D4,,-1
 2162ENDIF
 2163ENDIF
 2164ENDIF:ENDPROC
 2169DEFPROCshell_ActionMenuButton:LOCALc%,m%,aC%,d%:aC%=FALSE:PROCshell_Tracef0("ActionMenuButton:Mouse Button was MENU"):IF_Q%!16>=0THEN
 2176d%=FNshell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24,FALSE)
 2177ENDIF:IFd%>0THEN
 2180PROCshell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16,TRUE)
 2181ELSEc%=TRUE:IFINKEY(-1)THENc%=FNshiftmenuclick(_Q%!&C,_Q%!16)
 2184IFc%THEN
 2186PROCshell_Tracef0("ActionMenuButton:Checking menu events.."):PROCshell_Tracef0("ActionMenuButton:button="+STR$_Q%!8+" _Q%!12="+STR$_Q%!&C+" _Q%!16="+STR$_Q%!16):IF_Q%!16>=0THENm%=FNshell_GetEventMenu(_Q%!8,_Q%!&C,_Q%!16)
 2190IF(m%<>0AND_Q%!&C>0AND_Q%!16>=0)THENaC%=TRUE
 2191IFm%=0THEN
 2194m%=FNshell_GetEventMenu(_Q%!8,_Q%!&C,-1)
 2195ENDIF:PROCshell_Tracef0("ActionMenuButton:Menu handle is:&"+STR$~m%):IFm%<>0THENPROCshell_HandleMenuOpen(_Q%,m%,_Q%!&C,_Q%!16,aC%)
 2200ENDIF
 2201ENDIF:ENDPROC
 2207DEFPROCshell_HandleMenuOpen(_Q%,m%,b%,f%,aC%):LOCALr%,t%:IFaC%=FALSETHEN
 2215PROCshell_OpenMenu(_Q%!0,_Q%!4,m%)
 2216ELSEr%=FNshell_HeapBlockFetch(50):t%=FNshell_HeapBlockFetch(36):r%!0=b%:r%!4=f%:SYS&400CE,,r%:t%!0=b%:SYS&400CB,,t%:PROCshell_OpenMenu(t%!4+r%!16+64,_Q%!4,m%):MOUSETOt%!4+r%!16+64,_Q%!4:PROCshell_HeapBlockReturn(r%):PROCshell_HeapBlockReturn(t%)
 2233ENDIF:ENDPROC
 2239DEFPROCshell_ActionMenuSelect(_Q%):LOCALAE%,NB%,YC%,RD%,o%,FD%,d%:d%=FNshell_GetEventListOffset2(_U%!28,_U%!32,_U%+340,24,FALSE):IFd%>=0THENPROCshell_DoPopupSelect(_Q%,d%)
 2243FD%=FNshell_HeapBlockFetch(256):PROCshell_Tracef0("ActionMenuSelect:Menu_Select event detected"):SYS&400CF,,_shell_blk%:NB%=FNshell_HeapBlockFetch(256):IF_U%!24=_U%!&FCTHEN
 2252YC%=0:_U%!264=1
 2253ELSEYC%=FNshell_CheckSelection(_Q%):IFYC%>-1THEN_U%!264=1ELSE_U%!264=0
 2256ENDIF:IF_U%!264>0THEN
 2258SYS"FontMenu_DecodeFontMenu",_Q%+YC%,NB%TORD%:IFRD%=1THEN
 2262PROCshell_Tracef0("ActionMenuSelect:FontMenu selection ("+FNshell_GetString(NB%)+")"):PROCshell_FontMenuSelectFont(FNshell_GetString(NB%),_U%!260):IF_shell_FontMenuSelFN$=""THEN
 2266SYS&400D5,,_U%!24,_Q%,NB%:A$=FNshell_GetEventHandler(_U%!52,_U%!56,0):_temp%=NB%:$_temp%=FNshell_StringStripTrailing($_temp%," "):IFA$<>""THENo%=EVAL("FN"+A$+"($_temp%)")
 2271ELSEIF_shell_FontMenuSelFN$<>""THEN
 2273o%=EVAL("FN"+_shell_FontMenuSelFN$+"(FNshell_FontMenuGetLastSelectedFont)")
 2274ENDIF
 2275ENDIF
 2276ENDIF
 2277ENDIF:PROCshell_HeapBlockReturn(NB%):IF_U%!264=0THEN
 2281SYS&45BC4,_U%!24,_Q%TOAE%,,FD%:IFAE%THENPROCshell_MenuCallHandler(AE%,FD%)
 2283ENDIF:IF_shell_blk%!8=1THEN
 2285IFFNshell_HeapBlockExists(_U%!&E0)THEN
 2286_temp%=_U%!&E0:IF$_temp%<>""THEN
 2289o%=EVAL("FN"+$_temp%+"(_U%!52,_U%!56)")
 2290ENDIF
 2291ENDIF:PROCshell_OpenMenu(_U%!36,_U%!40,_U%!24)
 2293ELSE_shell_FontMenuSelFN$=""
 2295ENDIF:PROCshell_HeapBlockReturn(FD%):ENDPROC
 2302DEFPROCshell_ActionAdjustButton:LOCALn%,A$,o%,eC%,g%:eC%=FNshell_HeapBlockFetch(&C+(FNshell_WindowCountIcons(_U%!28)*32)):PROCshell_Tracef0("Action:Mouse Button was ADJUST"):IF_U%!28>0THEN
 2313SYS&400D6,_U%!28,eC%,&F000,&B000:g%=0:WHILEeC%!g%<>-1:IFeC%!g%=_U%!32THENPROCshell_IconSet(_U%!28,_U%!32,1)
 2317g%+=4:ENDWHILE
 2319ENDIF:IF_U%!32=0THENPROCshell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32)
 2322A$=FNshell_GetEventHandler(_U%!28,_U%!32,3):IFA$<>""THEN
 2324PROCshell_IconSlab(1,_U%!28,_U%!32):o%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 2326ENDIF:PROCshell_HeapBlockReturn(eC%):ENDPROC
 2333DEFFNshiftmenuclick(b%,f%):=TRUE
 2338DEFPROCshell_IconSlab(YB%,b%,f%):LOCALa%:a%=FNshell_HeapBlockFetch(50):a%!8=YB%:a%!&C=b%:a%!16=f%:SYS&81680,,a%:a%!8=0:SYS&81680,,a%:PROCshell_HeapBlockReturn(a%):ENDPROC
 2351DEFPROCshell_PointerLeavingWindow(_Q%):LOCALr%,o%:r%=FNshell_HeapBlockFetch(&C):SYS&400D6,!_Q%,r%,&3F0000,&F<<16:IF!r%<>-1THEN
 2357o%=EVAL("FN"+FNshell_IconGetData(!_Q%,!r%))
 2358ENDIF:PROCshell_HeapBlockReturn(r%):ENDPROC
 2365DEFPROCshell_PointerEnteringWindow(_Q%):LOCALr%,o%,b%:b%=_Q%!0:r%=FNshell_HeapBlockFetch(&C):SYS&400D6,b%,r%,&3F0000,&E<<16:IF!r%<>-1THEN
 2373o%=EVAL("FN"+FNshell_IconGetData(b%,!r%))
 2374ENDIF:PROCshell_HeapBlockReturn(r%):ENDPROC
 2381DEFPROCshell_RedrawWindow(i%):LOCALpC%,A$,KA%,PA%,a%,r%:r%=FNshell_HeapBlockFetch(&C):SYS&400D6,i%,r%,&3F0000,&D<<16:IF!r%<>-1THEN
 2388A$=FNshell_IconGetData(i%,!r%)
 2389ENDIF:PROCshell_HeapBlockReturn(r%):a%=FNshell_HeapBlockFetch(&64):IFA$=""THEN
 2395A$=FNshell_GetEventHandler(i%,-1,4)
 2396ENDIF:a%!0=i%:SYS&400C8,,a%TOpC%:KA%=a%!4-a%!20:PA%=a%!16-a%!24:WHILEpC%:SYS&81681,,a%:IFA$<>""THENo%=EVAL("FN"+A$+"("+STR$a%+","+STR$KA%+","+STR$PA%+")")
 2403SYS&400CA,,a%TOpC%:ENDWHILE:PROCshell_HeapBlockReturn(a%):ENDPROC
 2411DEFPROCshell_Receive(_Q%):LOCALc%,o%:CASE_Q%!16OF
 2414WHEN0:PROCshell_Exit:END
 2415WHEN1:PROCshell_DataSave(_Q%)
 2416WHEN2:PROCshell_DataSaveAck(_Q%)
 2417WHEN3:PROCshell_DataLoad(_Q%,FALSE)
 2418WHEN4:PROCshell_DataLoadAck(_Q%)
 2419WHEN5:PROCshell_DataLoad(_Q%,TRUE)
 2420WHEN6:PROCshell_RAMFetch(_Q%)
 2421WHEN7:PROCshell_RAMTransmit(_Q%)
 2422WHEN8:PROCshell_Message_PreQuit(_Q%)
 2423WHEN9:IF_U%!&A4>0THEN
 2425PROCshell_Tracef0("Receive:PaletteChange message received"):c%=_U%!&A4:o%=EVAL("FN"+$c%)
 2429ENDIF
 2430WHEN&A:PROCshell_Message_SaveDesktop(_Q%)
 2431WHEN&E:PROCshell_Message_Shutdown(_Q%)
 2432WHEN&502:PROCshell_InteractiveHelp(_Q%)
 2433WHEN&400C0:PROCshell_MenuWarning(_Q%)
 2434WHEN&400C1:PROCshell_Message_ModeChange(_Q%)
 2435WHEN&400C2:IF_U%!&A8>0THEN
 2438PROCshell_Tracef0("Receive:TaskInitialise message received"):c%=_U%!&A8:o%=EVAL("FN"+$c%+"("+STR$(_Q%!4)+","+CHR$34+FNshell_GetString(_Q%+28)+CHR$34+")")
 2442ENDIF:IF_U%!&D0=-1ANDFNshell_GetString(_Q%+28)="StrongHelp"THEN
 2444_U%!&D0=_Q%!4:PROCshell_StrongHlpMsg("Help_Install -DieWithTask "+FNshell_GetAppDir+"."+FNshell_GetAppName):c%=_U%!&D8:IF$c%<>""THEN
 2448PROCshell_HelpWord($c%):PROCshell_HeapBlockReturn(_U%!&D8):_U%!&D8=0
 2451ENDIF
 2452ENDIF
 2453WHEN&400C3:IF_U%!&AC>0THEN
 2457PROCshell_Tracef0("Receive:TaskCloseDown message received"):c%=_U%!&AC:o%=EVAL("FN"+$c%)
 2461ENDIF:IF_Q%!4=_U%!&D0THEN_U%!&D0=-1
 2463WHEN&400C7:PROCshell_Tracef0("Receive:TaskNameIs message received"):IFFNshell_GetString(_Q%+28)="StrongHelp"THEN
 2469_U%!&D0=_Q%!20
 2470ELSEPROCshell_ScanForHelp
 2472ENDIF
 2474WHEN&80140:PROCshell_HandlePrintFile(_Q%)
 2477WHEN&80143:PROCshell_HandlePrintError(_Q%)
 2480WHEN&80145:PROCshell_HandlePrintTypeOdd(_Q%)
 2483WHEN&80147:PROCshell_HandleSetPrinter(_Q%)
 2487OTHERWISEPROCshell_HandleUnknownMessage2(_Q%)
 2488ENDCASE:ENDPROC
 2494DEFPROCshell_Message_ModeChange(_Q%):LOCALd%,g%,fB%,t%:fB%=_U%!&B8:IF_U%!&A0>0THEN
 2498PROCshell_Tracef0("Message_ModeChange:ModeChange message received"):c%=_U%!&A0:o%=EVAL("FN"+$c%)
 2501ENDIF:t%=FNshell_HeapBlockFetch(&64):IFfB%<>0THEN
 2510PROCshell_Tracef0("Message_ModeChange:Checking static window list for pane events"):WHILEfB%!g%<>-1:d%=FNshell_GetEventListOffset(fB%!g%,-1,_U%+92,24,FALSE):IFd%>-1THEN
 2517PROCshell_Tracef0("Message_ModeChange:Static window handle found"):IFFNshell_WindowIsOpen(fB%!g%)THEN
 2521PROCshell_Tracef0("Message_ModeChange:Window is open.."):!t%=fB%!g%:SYS&400C6,,t%:PROCshell_OpenWindow(fB%!g%,0,-1)
 2527ENDIF
 2528ENDIF:g%+=4:ENDWHILE
 2531ENDIF:PROCshell_HeapBlockReturn(t%):ENDPROC
 2538DEFPROCshell_Message_Shutdown(_Q%):IF_U%!312>0THEN
 2540PROCshell_Tracef0("Message_Shutdown:Shutdown message received"):c%=_U%!312:o%=EVAL("FN"+$c%)
 2543ENDIF:ENDPROC
 2548DEFPROCshell_HandleUnknownMessage2(_Q%):LOCALX$:CASE_Q%!16OF
 2553WHEN&43B00:X$=$(_Q%+20):IFLEFT$(X$,30)="EvntShellLib:ShellDBug started"THEN
 2556IF_U%!&64AND1<<4THEN
 2558_U%!&64=(_U%!&64EOR1<<4):PROCshell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+FNshell_GetAppName)
 2560ENDIF
 2561ENDIF:IFLEFT$(X$,25)="EvntShellLib:TraceInitAck"THEN
 2564_U%!&64=(_U%!&64EOR1<<4)
 2565ENDIF:IFLEFT$(X$,20)="EvntShellLib:TraceOn"THEN
 2567PROCshell_TraceOn
 2568ENDIF:IFLEFT$(X$,21)="EvntShellLib:TraceOff"THEN
 2570PROCshell_TraceOff
 2571ENDIF:IFLEFT$(X$,28)="EvntShellLib:ListClickSelect"THEN
 2573PROCshell_ListClickSelect
 2574ENDIF:IFLEFT$(X$,28)="EvntShellLib:ListClickAdjust"THEN
 2576PROCshell_ListClickAdjust
 2577ENDIF:IFLEFT$(X$,25)="EvntShellLib:ListHelpTags"THEN
 2579PROCshell_ListHelpTags
 2580ENDIF
 2581ENDCASE:PROCshell_HandleUnknownMessage(_Q%):ENDPROC
 2589DEFPROCshell_HandleUnknownMessage(_Q%):ENDPROC
 2595DEFPROCshell_AttachPreQuitHandler(A$):LOCALc%,o%:IF_U%!300>0THENPROCshell_HeapBlockReturn(_U%!300)
 2598_U%!300=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!300:$c%=A$:ENDPROC
 2605DEFPROCshell_AttachShutdownHandler(A$):LOCALc%,o%:IF_U%!312>0THENPROCshell_HeapBlockReturn(_U%!312)
 2608_U%!312=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!312:$c%=A$:ENDPROC
 2615DEFPROCshell_AttachModeChangeHandler(A$):LOCALc%,o%:IF_U%!&A0>0THENPROCshell_HeapBlockReturn(_U%!&A0)
 2618_U%!&A0=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!&A0:$c%=A$:o%=EVAL("FN"+A$):ENDPROC
 2626DEFPROCshell_AttachPaletteChangeHandler(A$):LOCALc%,o%:IF_U%!&A4>0THENPROCshell_HeapBlockReturn(_U%!&A4)
 2629_U%!&A4=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!&A4:$c%=A$:o%=EVAL("FN"+A$):ENDPROC
 2637DEFPROCshell_AttachTaskInitialiseHandler(A$):LOCALc%,o%:IF_U%!&A8>0THENPROCshell_HeapBlockReturn(_U%!&A8)
 2640_U%!&A8=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!&A8:$c%=A$:ENDPROC
 2647DEFPROCshell_AttachTaskCloseDownHandler(A$):LOCALc%,o%:IF_U%!&AC>0THENPROCshell_HeapBlockReturn(_U%!&AC)
 2650_U%!&AC=FNshell_HeapBlockFetch(LENA$+1):c%=_U%!&AC:$c%=A$:ENDPROC
 2657DEFPROCshell_RAMFetch(_Q%):LOCALCG%,GE%,EE%:EE%=FALSE:IF_U%!&90>&8000THEN
 2668PROCshell_Tracef0("RAMFetch:RAMFetch called.."):_Q%!&C=_Q%!8:_Q%!16=7:GE%=_U%!&88:IF_U%!&8C=&FF9THEN
 2679_U%!&90+=4
 2680ENDIF:IF(GE%-_U%!&80)<_Q%!24THEN
 2683_Q%!24=GE%-_U%!&80:EE%=TRUE
 2685ELSEPROCshell_Tracef0("RAMFetch:Sending block")
 2689ENDIF:SYS&400F1,_U%!&94,_U%!&90+_U%!&80,_Q%!4,_Q%!20,_Q%!24:SYS&400E7,17,_Q%,_Q%!4:_U%!&78=_Q%!8:_U%!&80+=_Q%!24:IFEE%THEN_U%!&80=0
 2695ENDIF:ENDPROC
 2700DEFPROCshell_RAMTransmit(_Q%):LOCALd%,a%,NA$,c%:IF_Q%!&C=_U%!&70THEN
 2704_U%!&80+=_Q%!24:IF_Q%!24<_U%!&84THEN
 2708PROCshell_Tracef0("RAMTransmit:Last block received"):d%=FNshell_GetEventListOffset(_U%!28,_U%!32,_U%+96,16,FALSE):a%=_U%!96+d%:PROCshell_Tracef0("RAMTransmit:_U%!28="+STR$_U%!28):PROCshell_Tracef0("RAMTransmit:_U%!32="+STR$_U%!32)
 2715PROCshell_Tracef0("RAMTransmit:offset%="+STR$d%):c%=_U%!&9C:NA$=FNshell_GetString(c%+44):PROCshell_UserFNLoadFile(c%!40,_U%!&98,a%!8,NA$,_U%!&84,a%)
 2722ELSEPROCshell_Tracef0("RAMTransmit:Block received"):IF_U%!&80>_U%!&84THEN
 2731PROCshell_Tracef0("RAMTransmit:Increasing buffer size.."):_U%!&98=FNshell_HeapBlockExtend(_U%!&98,_U%!&80,_U%!&84)
 2734ENDIF:_Q%!&C=_Q%!8:_Q%!16=6:_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84:SYS&400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8
 2741ENDIF
 2742ELSEPROCshell_HeapBlockReturn(_U%!&98):_U%!&98=0:PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG15"))
 2747ENDIF:ENDPROC
 2752DEFFNshell_LoadFile(LG%):LOCALq$,XB%,mC%,IB%:q$=FNshell_GetString(_Q%+44):XB%=FNshell_FileLength(q$):IFXB%<0THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG16"))
 2757IB%=FNshell_HeapBlockFetch(XB%):SYS&20008,16,q$,IB%,0TO;mC%:IFFNshell_VFlag(mC%)THEN
 2760PROCshell_HeapBlockReturn(IB%):PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG17"))
 2762ELSEPROCshell_Tracef0("LoadFile:File "+q$+" loaded ok at &"+STR$~IB%)
 2766ENDIF:=IB%
 2783DEFFNshell_VFlag(mC%):=((mC%AND1)=1)
 2789DEFFNshell_CheckType(w%,gB%,hB%):LOCALJG%,g%,j%,c%,_C%:g%=0:j%=-1:_C%=FALSE:IF_U%!&64AND1<<1THEN_U%!&64=_U%!&64EOR1<<1
 2796WHILEgB%!g%<>-1:c%=gB%!g%:IFc%AND1<<31THEN
 2799c%=c%EOR1<<31:_C%=TRUE
 2801ELSE_C%=FALSE
 2803ENDIF:IFc%=w%THEN
 2805j%=g%:IF_C%THEN
 2807_U%!&64=_U%!&64OR1<<1:PROCshell_Tracef0("CheckType:Top Bit Load detected..")
 2811ENDIF
 2812ENDIF:g%+=4:ENDWHILE:IFhB%AND(w%>=4096)THENj%=-1
 2817IFj%>-1THEN
 2818PROCshell_Tracef0("CheckType:File type OK "+STR$~gB%!j%)
 2819ELSEPROCshell_Tracef0("CheckType:File type NOT ok "+STR$~w%)
 2821ENDIF:IFj%<>-1THEN=TRUEELSE=FALSE
 2828DEFPROCshell_Exit:LOCALmB%:mB%=_U%!68:SYS&61504,mB%:SYS&2001E,7,,mB%:PROCshell_Tracef0("Exit:Application closing down"):PROCshell_TraceExit:SYS&606C2:SYS&600D0,,-1:PROCshell_WimpCloseDown_I(_U%!&94):ENDPROC
 2845DEFPROCshell_DataLoad(_Q%,hB%):LOCALKG%,d%,a%,_temp%,gB%,w%,f$:IFFNshell_DataOpenOKToLoad(hB%,_Q%!40)THEN
 2848w%=_Q%!40:f$=FNshell_GetString(_Q%+44):PROCshell_Tracef0("DataLoad:DataLoad message received"):IFhB%THEN
 2859IF_U%!96<>0THEN
 2860d%=0
 2861ELSEd%=-1
 2863ENDIF
 2864ELSEd%=FNshell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,FALSE):IFd%=-1THEN
 2869d%=FNshell_GetEventListOffset(_Q%!20,-1,_U%+96,16,FALSE)
 2870ENDIF
 2871ENDIF:IFd%>-1THEN
 2874a%=_U%!96+d%:IFFNshell_CheckType(_Q%!40,a%!8,hB%)THEN
 2878PROCshell_Tracef0("DataLoad:File type recognised (&"+STR$~_Q%!40+")"):UF%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4:SYS&400E7,18,_Q%,_Q%!4:IF_U%!&64AND1<<1THEN
 2885IB%=-1:_U%!&64=_U%!&64EOR1<<1
 2887ELSEIB%=FNshell_LoadFile(UF%=_U%!&6C)
 2889ENDIF:PROCshell_UserFNLoadFile(w%,IB%,a%!8,f$,_Q%!36,a%):IF_U%!&9C<>0THEN
 2893PROCshell_HeapBlockReturn(_U%!&9C):_U%!&9C=0
 2895ENDIF
 2896ELSEPROCshell_Tracef0("DataLoad:File type NOT recognised (&"+STR$~_Q%!40+")")
 2900ENDIF
 2901ENDIF
 2902ENDIF:ENDPROC
 2908DEFFNshell_DataOpenOKToLoad(hB%,w%):LOCAL_%,uD%,KA$,s$:IFhB%=FALSETHEN
 2916_%=TRUE:PROCshell_Tracef0("DataOpenOKToLoad:Message reason code was 3, normal drag load..")
 2918ELSEPROCshell_Tracef0("DataOpenOKToLoad:Message reason code was 5, double click load.."):uD%=FNshell_HeapBlockFetch(256):KA$=FNshell_OSVarGetVal(uD%,256,"Alias$@RunType_"+STR$~w%,1):PROCshell_Tracef0("DataOpenOKToLoad:Alias$@RunType="+KA$)
 2925PROCshell_HeapBlockReturn(uD%):s$=FNshell_Branch(KA$):PROCshell_Tracef0("DataOpenOKToLoad:dbug "+s$):IFFNshell_Leaf(s$)="!"+FNshell_GetAppNameTHEN_%=TRUEELSE_%=FALSE
 2931ENDIF:=_%
 2937DEFPROCshell_UserFNLoadFile(w%,IB%,gB%,_filename$,_file_size%,a%):LOCALg%,j%,c%,o%:g%=0:j%=-1:WHILEgB%!g%<>-1:c%=gB%!g%:IFc%AND1<<31THENc%=c%EOR1<<31
 2944IFc%=w%THENj%=g%
 2945g%+=4:ENDWHILE:c%=a%!&C:o%=EVAL("FN"+$(c%!j%)+"("+STR$IB%+","+STR$w%+",_filename$,"+STR$_file_size%+")"):ENDPROC
 2954DEFPROCshell_DataSave(_Q%):LOCALc%,d%,a%,s%:PROCshell_Tracef0("DataSave:DataSave message received"):IF_Q%!4<>_U%!&94THEN
 2965d%=FNshell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,FALSE):IFd%>-1THEN
 2967a%=_U%!96+d%:IFFNshell_CheckType(_Q%!40,a%!8,FALSE)THEN
 2970PROCshell_Tracef0("DataSave:Filetype recognized (&"+STR$~_Q%!40+")"):IFFNshell_TopBitLoadInProgressTHEN
 2977PROCshell_Tracef0("DataSave:'no load' flag set"):PROCshell_Tracef0("DataSave:Sending Message_DataSaveAck"):_Q%!0=256:_Q%!&C=_Q%!8:_Q%!36=-1:_Q%!16=2:$(_Q%+44)=FNshell_GetAppDir+".ScrapFile"+CHR$0:SYS&400E7,18,_Q%,_Q%!4
 2984ELSEPROCshell_HeapBlockReturn(_U%!&9C):_U%!&9C=FNshell_HeapBlockFetch((_Q%!0)+8):c%=_U%!&9C:FORs%=0TO_Q%!0STEP4:c%!s%=_Q%!s%:NEXTs%:_U%!28=_Q%!20:_U%!32=_Q%!24:_U%!&80=0:_U%!&84=_Q%!36:_U%!&98=FNshell_HeapBlockFetch(_Q%!36):_Q%!0=28:_Q%!&C=_Q%!8:_Q%!16=6
 3005_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84:SYS&400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8:PROCshell_Tracef0("DataSave:Sending Message_RAMFetch")
 3012ENDIF
 3013ELSEPROCshell_Tracef0("DataSave:Filetype NOT recognized")
 3017ENDIF
 3018ENDIF
 3019ENDIF:ENDPROC
 3031DEFFNshell_TopBitLoadInProgress:IF_U%!&64AND1<<1THEN=TRUEELSE=FALSE
 3037DEFPROCshell_SendDataSave(b%,f%):LOCALa%,EA%,jB%,d%,XB%,o%:jB%=FNshell_HeapBlockFetch(30):SYS&400CF,,jB%:d%=FNshell_GetEventListOffset(b%,f%,_U%+72,24,FALSE):IFd%=-1ORd%=-2THEN
 3045o%=FNshell_MessageWindow(FNshell_MessageNoArgs("SHELLMSG13"),0,"",FNshell_MessageNoArgs("warning"))
 3046ELSEa%=(_U%!72)+d%:IFa%!8>&8000THEN
 3049XB%=FNshell_HeapBlockInfo(a%!8)-4
 3050ELSEXB%=a%!8
 3052ENDIF:EA%=_U%!76:EA%!0=256:EA%!&C=0:EA%!16=1:EA%!20=jB%!&C:EA%!24=jB%!16:EA%!28=jB%!0:EA%!32=jB%!4:EA%!36=XB%:EA%!40=a%!&C:$(EA%+44)=FNshell_Leaf(FNshell_IconGetData(b%,a%!16)):SYS&400E7,18,EA%,EA%!20,EA%!24:_U%!&78=_Q%!8:_U%!&88=XB%:_U%!&8C=a%!&C
 3068_U%!&90=a%!8:_U%!&9C=a%!4:_U%!&C8=EA%!20:_U%!&CC=EA%!24
 3072ENDIF:PROCshell_HeapBlockReturn(jB%):ENDPROC
 3079DEFPROCshell_DataSaveAck(_Q%):LOCAL_fullname$,HA%,lA%,a%,c%,o%:PROCshell_Tracef0("DataSaveAck:DataSaveAck message received"):HA%=0:lA%=_Q%?(44+HA%):WHILElA%<>0:_fullname$+=CHR$(lA%):HA%+=1:lA%=_Q%?(44+HA%):ENDWHILE:PROCshell_Tracef0("DataSaveAck:Full save name is: "+_fullname$)
 3092PROCshell_Tracef0("DataSaveAck:task   = &"+STR$_Q%!4):PROCshell_Tracef0("DataSaveAck:mytask = &"+STR$_U%!&94):d%=FNshell_GetEventListOffset(_U%!28,_U%!32,_U%+72,24,FALSE):PROCshell_Tracef0("DataSaveAck:offset% = "+STR$d%):IFd%>=0THEN
 3099a%=(_U%!72)+d%:c%=a%!20:IF$c%<>""THEN
 3103o%=EVAL("FN"+$c%+"(_fullname$)")
 3104ELSEIFFNshell_HeapBlockExists(a%!8)THEN
 3109SYS8,&A,_fullname$,a%!&C,,a%!8,a%!8+FNshell_HeapBlockInfo(a%!8)+1
 3110ELSEERROR99,FNshell_MessageNoArgs("SHELLMSG21")
 3113ENDIF
 3114ENDIF:IF_Q%!36>-1THEN
 3117IF_U%!80<>0THENPROCshell_HeapBlockReturn(_U%!80)
 3118_U%!80=FNshell_HeapBlockFetch(LEN_fullname$+1):c%=_U%!80:$c%=_fullname$
 3121ENDIF:_Q%!16=3:!_Q%=256:_Q%!20=_U%!&C8:_Q%!24=_U%!&CC:_Q%!40=_U%!&8C:_Q%!36=FNshell_FileLength(_fullname$):_Q%!&C=_Q%!8:PROCshell_Tracef0("DataSaveAck:File length is "+STR$_Q%!36+" bytes"):$(_Q%+44)=_fullname$+CHR$(0):_U%!84=_Q%!8
 3132PROCshell_Tracef0("DataSaveAck:Sending DataLoad Message"):SYS&400E7,18,_Q%,_Q%!20,_Q%!24:IF_U%!28<>_U%!20THEN
 3138PROCshell_CloseWindow(_U%!28)
 3139ENDIF:SYS&400D4,,-1
 3141ELSEPROCshell_PrintSave(_fullname$,_Q%!20,_Q%!24,_Q%!8,_Q%!40):PROCshell_Tracef0("DEBUG:: copies = "+STR$(_U%!336)):IF_U%!336>0THEN
 3145_U%!336-=1:PROCshell_DoSendPrintSave(&FFF)
 3147ENDIF
 3148ENDIF:ENDPROC
 3154DEFPROCshell_DataSaveCheckName(b%,f%):LOCALd%,a%,p%:a%=_U%!72:d%=0:IFa%<>0THEN
 3162p%=FNshell_HeapBlockInfo(a%)-8:REPEAT:IF!(a%+d%)=b%THEN
 3168R$=FNshell_IconGetData(!a%,a%!16):IFINSTR(R$,".")=0THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG01"))
 3170d%=p%
 3171ENDIF:d%+=24:UNTILd%>=p%
 3174ENDIF:ENDPROC
 3180DEFPROCshell_DataLoadAck(_Q%):PROCshell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)"):ENDPROC
 3189DEFPROCshell_UserMessageAcknowledge(_Q%):CASE_Q%!16OF
 3191WHEN3:PROCshell_AckDataLoad(_Q%)
 3192WHEN6:PROCshell_AckRAMFetch(_Q%)
 3193ENDCASE:ENDPROC
 3199DEFPROCshell_AckDataLoad(_Q%):IF_Q%!&C<>_U%!84THEN
 3204SYS&20008,6,"<Wimp$Scrap>":ERROR&FF,"Data Transfer failed: Receiver died"
 3206ENDIF:ENDPROC
 3212DEFPROCshell_AckRAMFetch(_Q%):LOCALsE%,c%:c%=_U%!&9C:PROCshell_Tracef0("AckRAMFetch:AckRAMFetch called...."):IF_Q%!&C<>_U%!&70THEN
 3221IF_U%!&80=0THEN
 3224PROCshell_Tracef0("AckRAMFetch:Receiver does not support RAM transfer"):SYS&20023,"Wimp$Scrap",,-1,0,3TO,,sE%:IFsE%<>0THEN
 3228$(c%+44)="<Wimp$Scrap>"+CHR$(0):c%!0=(49+LEN(FNshell_GetString(c%+44)))ANDNOT3:c%!&C=c%!8:c%!16=2:c%!36=-1:SYS&400E7,18,c%,c%!4:_U%!&6C=c%!8
 3235ELSEPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG14"))
 3237ENDIF
 3238ELSEPROCshell_Tracef0("AckRAMFetch:RAM transfer started, but not enough data sent. Sender died?"):PROCshell_HeapBlockReturn(_U%!&98):_U%!&98=0:PROCshell_OK("SHELLMSG06")
 3247ENDIF
 3248ENDIF:ENDPROC
 3254DEFPROCshell_MenuWarning(_Q%):LOCALA$,NB%,IA%,MA%,o%,_temp%,HA%,F$,kB%,a%:IA%=_Q%!24:MA%=_Q%!28:_U%!264=0:IF_U%!20<>0THEN
 3259PROCshell_Tracef0("MenuWarning:Removing last dynamic dbox (handle=&"+STR$~_U%!20+")"):o%=FNshell_DeleteWindow(_U%!20):PROCshell_Tracef0("MenuWarning:Last dynamic dbox removed")
 3265ENDIF:CASE_Q%!20OF
 3271WHEN_U%!&E4:PROCshell_WindowRetitle(_U%!&E4,FNshell_MessageNoArgs("warning")):PROCshell_IconPutData(_U%!&E4,1,FNshell_MessageNoArgs("SHELLMSG07"),0):SYS&400E8,,_U%!&E4,IA%,MA%
 3278OTHERWISEkB%=FNshell_MenuGetItemAddress(_U%!24,_Q%+32):IFFNshell_HeapBlockExists(kB%!4)THEN
 3283PROCshell_MenuWarnDBox(kB%,IA%,MA%)
 3284ELSEa%=FNshell_HeapBlockFetch(32):SYS&45BC4,_U%!24,_Q%+32TO,,a%:PROCshell_FindMenuWarnEvent(a%!8,F$,J$):PROCshell_HeapBlockReturn(a%):PROCshell_MenuWarnSubMenu(_Q%!20,IA%,MA%,F$,J$)
 3291ENDIF
 3292ENDCASE:ENDPROC
 3298DEFPROCshell_MenuWarnDBox(vA%,IA%,MA%):LOCALc%,v%,o%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 3302c%=vA%!4:PROCshell_CreateWindow($c%!0,v%):RESTOREERROR:PROCshell_Tracef0("MenuWarnDBox:Creating new dynamic dbox (handle=&"+STR$~v%+")"):IF$c%!4<>""THEN
 3310PROCshell_Tracef0("MenuWarnDBox:Calling preopen FN '"+$c%!4+"'"):o%=EVAL("FN"+$c%!4+"("+STR$v%+")")
 3313ENDIF:IF$c%!8<>""THEN
 3316PROCshell_Tracef0("MenuWarnDBox:Calling postopen FN '"+$c%!8+"'"):o%=EVAL("FN"+$c%!8+"("+STR$v%+")")
 3319ENDIF:SYS&400E8,,v%,IA%,MA%:_U%!20=v%:ENDPROC
 3328DEFPROCshell_FindMenuWarnEvent(nA%,RETURNF$,RETURNJ$):LOCAL_%,x%,c%,d%,j%,p%,CA%,g%:LOCALlB%:lB%=0:x%=_U%!&DC:d%=0:j%=FALSE:F$="":lB%=0:IFFNshell_HeapBlockExists(x%)THEN
 3334REPEAT:g%+=4:UNTILx%!g%=-1:p%=g%:g%=0:PROCshell_Tracef0("FindMenuWarnEvent:list_size%="+STR$p%):REPEAT:c%=!(x%+d%+0):IFc%<>-1THEN
 3344IFc%=nA%THEN
 3345j%=TRUE:CA%=x%!(d%+4):F$=$CA%:lB%=x%!(d%+8):CA%=x%!(d%+&C):J$=$CA%:PROCshell_Tracef0("FindMenuWarnEvent:submenu found")
 3352ENDIF:d%+=16
 3354ELSEd%=p%
 3356ENDIF:UNTILj%ORd%>=p%
 3358ELSEF$="":J$=""
 3360ENDIF:IFlB%=0THENPROCshell_Tracef0("FindMenuWarnEvent:warn fn not found..")
 3364ENDPROC
 3369DEFPROCshell_MenuWarnSubMenu(DE%,IA%,MA%,F$,J$):LOCALo%,c%,JB%,g%:_shell_FontMenuSelFN$=J$:IFFNshell_HeapBlockExists(_U%!&E0)THENPROCshell_HeapBlockReturn(_U%!&E0)
 3373_U%!&E0=FNshell_HeapBlockFetch(LENF$+1):c%=_U%!&E0:$c%=F$:IFF$<>""THEN
 3376o%=EVAL("FN"+F$+"(_U%!52,_U%!56)"):PROCshell_Tracef0("MenuWarnSubMenu:Calling FN"+F$)
 3380ENDIF:IFDE%=_U%!&FCTHEN
 3385PROCshell_Tracef0("MenuWarnSubMenu:FontMenu opening.."):IFFNshell_HeapBlockExists(_U%!256)THENPROCshell_HeapBlockReturn(_U%!256)
 3390g%=0:REPEAT:g%+=4:UNTIL!(_Q%+32+g%)=-1:g%+=4:_U%!256=FNshell_HeapBlockFetch(g%):c%=_U%!256:g%=0:REPEAT:c%!g%=!(_Q%+32+g%):g%+=4:UNTIL!(_Q%+32+g%)=-1:c%!g%=!(_Q%+32+g%):c%=_U%!256
 3400PROCshell_Tracef0("MenuWarnSubMenu:Selecting '"+FNshell_FontMenuGetLastSelectedFont+"' in FontMenu.."):SYS"FontMenu_Select",FNshell_FontMenuGetLastSelectedFont,_U%!260TO,JB%:_U%!264=1:IFJB%<>_U%!&FCTHEN
 3406PROCshell_FontMenuUpdatePtr(JB%):_U%!&FC=JB%:DE%=JB%
 3408ENDIF
 3409ELSE_U%!264=0
 3411ENDIF:SYS&400E8,,DE%,IA%,MA%:ENDPROC
 3419DEFPROCshell_AttachSubMenu(GB%,lB%,F$):SYS&45BCE,GB%,lB%:IFF$<>""THEN
 3422SYS&45BCC,,TRUE:PROCshell_EventListMenuWarn(GB%,lB%,F$,"")
 3424ENDIF:ENDPROC
 3430DEFPROCshell_EventListMenuWarn(GB%,dE%,F$,J$):LOCALc%,CA%,g%,x%:IF_U%!&DC=0THEN
 3434_U%!&DC=FNshell_HeapBlockFetch(32):c%=_U%!&DC:c%!0=GB%:c%!4=FNshell_HeapBlockFetch(LENF$+1):$(c%!4)=F$:c%!8=dE%:c%!&C=FNshell_HeapBlockFetch(LENJ$+1):$(c%!&C)=J$:c%!16=-1:c%!20=-1:c%!24=-1:c%!28=-1
 3443ELSEx%=FNshell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=x%:g%=0:REPEAT:g%+=16:UNTILx%!g%=-1:c%=_U%!&DC:c%!g%=GB%:c%!(g%+4)=FNshell_HeapBlockFetch(LENF$+1):CA%=c%!(g%+4):$(CA%)=F$:c%!(g%+8)=dE%:c%!(g%+&C)=FNshell_HeapBlockFetch(LENJ$+1):CA%=c%!(g%+&C):$(CA%)=J$
 3457c%!(g%+16)=-1:c%!(g%+20)=-1:c%!(g%+24)=-1:c%!(g%+28)=-1
 3459ENDIF:ENDPROC
 3465DEFPROCshell_InteractiveHelp(_Q%):LOCALI$,W$,K$,PB%,MD%,nA$,r%:r%=FNshell_HeapBlockFetch(&C):SYS&400D6,_Q%!32,r%,&3F0000,&C<<16:IF!r%<>-1THEN
 3472I$=FNshell_IconGetData(_Q%!32,!r%)
 3473ENDIF:PROCshell_HeapBlockReturn(r%):IFI$=""THENI$=FNshell_GetEventHandler(_Q%!32,_Q%!36,8)
 3477K$=FNshell_IconGetValidation(_Q%!32,_Q%!36):IFK$<>""THEN
 3479IFFNshell_StringUpperCase(LEFT$(K$,1))="I"THEN
 3480PB%=INSTR(K$,";"):IFPB%=0THEN
 3483I$=MID$(K$,2)
 3484ELSEI$=MID$(K$,2,PB%-2)
 3486ENDIF
 3487ELSEPB%=INSTR(FNshell_StringUpperCase(K$),FNshell_StringUpperCase(";i")):MD%=INSTR(FNshell_StringUpperCase(K$),FNshell_StringUpperCase(";"),PB%+1):IFPB%>0THEN
 3491IFMD%>0THEN
 3492I$=MID$(K$,PB%+2,MD%-PB%-2)
 3493ELSEI$=MID$(K$,PB%+2)
 3495ENDIF
 3496ENDIF
 3497ENDIF
 3498ENDIF:IFI$<>""THEN
 3500_Q%!16=&503:_Q%!&C=_Q%!8:W$=FNshell_MessageLookup(I$,"",""):W$=FNshell_MessageExpand(W$):$(_Q%+20)=W$:!_Q%=(LENW$+25)ANDNOT3:SYS&400E7,17,_Q%,_Q%!4
 3506ENDIF:ENDPROC
 3511DEFPROCack:ENDPROC
 3517DEFPROCshell_Message_PreQuit(_Q%):LOCALc%,OD%,a%,s%,PD%:IF_U%!300>0THEN
 3520a%=FNshell_HeapBlockFetch(256):FORs%=0TO_Q%!0STEP4:a%!s%=_Q%!s%:NEXTs%:PROCshell_Tracef0("Message_PreQuit:PreQuit message received"):c%=_U%!300:OD%=a%!4:IF!a%<24THENPD%=0ELSEPD%=a%!20
 3532a%!&C=a%!8:SYS&400E7,19,a%,OD%:IFEVAL("FN"+$c%)<>0THEN
 3535IFPD%AND1THEN
 3537_closedown%=TRUE
 3538ELSE!a%=24:a%!24=508:SYS&400E7,8,a%,OD%:_closedown%=TRUE
 3543ENDIF
 3544ENDIF:PROCshell_HeapBlockReturn(a%)
 3546ENDIF:ENDPROC
 3552DEFPROClwaorigin(A,RETURNIA%,RETURNMA%):IA%=A!0-A!16:MA%=A!&C-A!20:ENDPROC
 3559DEFFNshell_Iconbar(FA%,r$,H$,SD%,m%,_B%,HC%,gC%):LOCALi%:IFH$=""THEN
 3562!_Q%=FA%:_Q%!4=0:_Q%!8=0:_Q%!&C=70:_Q%!16=70:_Q%!20=&301A:$(_Q%+24)=r$
 3563ELSE!_Q%=FA%:_Q%!4=0:_Q%!8=-16:_Q%!&C=SD%:_Q%!16=90:_Q%!20=&1700210B:DIM_Q%!24&C:DIM_Q%!28LEN(r$)+2:$(_Q%!24)=H$:$(_Q%!28)="S"+r$:_Q%!32=&C
 3570ENDIF:SYS&400C2,,_Q%TOi%:PROCshell_AttachMenu(-2,i%,m%,_B%,HC%,gC%):=i%
 3578DEFPROCshell_IconbarSetText(v%,cF%,L$):LOCALk%,t%:k%=FNshell_HeapBlockFetch(40):t%=FNshell_HeapBlockFetch(36):t%!20=0:IFFNshell_OSCheckVersion(3)THEN
 3584IFv%=-1THEN!t%=-2ELSE!t%=v%
 3585SYS&400CB,,t%
 3586ENDIF:!k%=v%:k%!4=cF%:SYS&400CE,,k%:$(k%!28)=L$:SYS&400D1,-1,k%!8-&64-t%!20,k%!&C,k%!16+&64-t%!20,k%!20:PROCshell_HeapBlockReturn(k%):PROCshell_HeapBlockReturn(t%):ENDPROC
 3598DEFFNshell_WritableIconHandler(b%,f%,RA%):LOCALAB%,AC%,BC%,g%:LOCALaD%,dD%,xA%,tA%,HB%,QG%,BA%:BA%=FNshell_HeapBlockFetch(&400):SYS&400D3,,BA%:IF!BA%=-1THEN
 3607PROCshell_HeapBlockReturn(BA%):=FALSE
 3609ENDIF:SYS&400D6,b%,BA%,&40E000,&E000:AC%=!BA%:g%=0:REPEAT:IFBA%!g%=f%THEN
 3617aD%=BA%!(g%-4):dD%=BA%!(g%+4)
 3619ENDIF:g%+=4:UNTILBA%!g%=-1:BC%=BA%!(g%-4):CASERA%OF
 3625WHEN&D:PROCshell_FakeMouseClick(b%,0,4)
 3627WHEN398,394:IFf%=BC%THEN
 3629SYS&400D2,b%,AC%,-1,-1,-1,LEN(FNshell_IconGetData(b%,AC%))
 3630ELSESYS&400D2,b%,dD%,-1,-1,-1,LEN(FNshell_IconGetData(b%,dD%))
 3632ENDIF
 3633WHEN399,410:IFf%=AC%THEN
 3635SYS&400D2,b%,BC%,-1,-1,-1,LEN(FNshell_IconGetData(b%,BC%))
 3636ELSESYS&400D2,b%,aD%,-1,-1,-1,LEN(FNshell_IconGetData(b%,aD%))
 3638ENDIF
 3639WHEN431:SYS&400D2,b%,AC%,-1,-1,-1,LEN(FNshell_IconGetData(b%,AC%))
 3641WHEN430:SYS&400D2,b%,BC%,-1,-1,-1,LEN(FNshell_IconGetData(b%,BC%))
 3643ENDCASE:PROCshell_HeapBlockReturn(BA%):=TRUE
 3650DEFPROCshell_FakeMouseClick(b%,f%,YB%):SYS6,&F,1:_Q%!8=YB%:_Q%!&C=b%:_Q%!16=f%:PROCshell_Action(6):ENDPROC
 3658DEFFNshell_IconCreate(b%,BB%,kA%,SD%,v%,lD%,tD%,aF%,P$,vA%,nB%,K$):LOCALmF%,i%,wB%,k%:k%=FNshell_HeapBlockFetch(40):k%!0=b%:k%!4=BB%:k%!8=kA%:k%!&C=BB%+SD%:k%!16=kA%+v%:k%!20=aF%ORtD%<<28ORlD%<<24:IFk%!20AND256THEN
 3666mF%=INSTR(P$,","):k%!24=vA%:IFK$<>""THEN
 3669wB%=FNshell_HeapBlockFetch(LENK$+1):$wB%=K$:k%!28=wB%
 3672ELSEk%!28=-1
 3674ENDIF:k%!32=nB%
 3676ELSE$(k%+24)=LEFT$(P$,&B)
 3678ENDIF:SYS&400C2,,k%TOi%:PROCshell_HeapBlockReturn(k%):=i%
 3685DEFPROCshell_IconDelete(b%,f%):PROCshell_DoIconDelete(b%,f%,FALSE):ENDPROC
 3691DEFPROCshell_IconDelete2(b%,f%):PROCshell_DoIconDelete(b%,f%,TRUE):ENDPROC
 3697DEFPROCshell_DoIconDelete(b%,f%,oF%):LOCALa%,KA%,PA%,VA%,cA%:a%=FNshell_HeapBlockFetch(40):a%!0=b%:a%!4=f%:SYS&400CE,,a%:SYS&8168A,,a%+8:KA%=a%!8:PA%=a%!&C:VA%=a%!16:cA%=a%!20:SYS&400CE,,a%:IFFNshell_HeapBlockExists(a%!28)THENPROCshell_HeapBlockReturn(a%!28)
 3706IFFNshell_HeapBlockExists(a%!32)THENPROCshell_HeapBlockReturn(a%!32)
 3707SYS&400C4,,a%:IFoF%THEN
 3709SYS&400D1,b%,KA%,PA%,VA%,cA%
 3710ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 3717DEFPROCshell_IconPutData(NA%,uA%,P$,I):LOCALa%,OA$:OA$=FNshell_IconGetData(NA%,uA%):IFP$<>OA$THEN
 3721a%=FNshell_HeapBlockFetch(40):a%!0=NA%:a%!4=uA%:SYS&400CE,,a%:IF(a%!24AND(1<<8))<>0THEN
 3726IFLENP$>a%!36THENERROR99,FNshell_MessageNoArgs("SHELLMSG12")
 3727$(a%!28)=P$
 3728ELSE$(a%+28)=LEFT$(P$,&B)
 3730ENDIF:IFI<>0THEN
 3732a%!8=0:a%!&C=0:SYS&400CD,,a%
 3734ENDIF:PROCshell_HeapBlockReturn(a%)
 3736ENDIF:ENDPROC
 3742DEFPROCshell_IconPutDataNow(NA%,uA%,P$):LOCALa%:a%=FNshell_HeapBlockFetch(50):a%!0=NA%:a%!4=uA%:SYS&400CE,,a%:IF(a%!24AND(1<<8))<>0THEN
 3749IFLENP$>a%!36THENERROR99,FNshell_MessageNoArgs("SHELLMSG12")
 3750$(a%!28)=P$
 3751ELSE$(a%+28)=LEFT$(P$,&B)
 3753ENDIF:a%!8=0:a%!&C=0:SYS&400CD,,a%:PROCshell_EnsurePoll:PROCshell_HeapBlockReturn(a%):ENDPROC
 3763DEFFNshell_IconNewSprite(NA%,uA%,kA$,I):LOCALk%:k%=FNshell_HeapBlockFetch(40):k%!0=NA%:k%!4=uA%:SYS&400CE,,k%:SYS&400C4,,k%:k%!4=k%!8:k%!8=k%!&C:k%!&C=k%!16:k%!16=k%!20:k%!20=k%!24:$(k%+24)=kA$:SYS&400C2,,k%TOuA%:IFITHENSYS&400D1,k%!0,k%!4,k%!8,k%!&C,k%!16
 3773PROCshell_HeapBlockReturn(k%):=uA%
 3779DEFFNshell_IconGetData(NA%,uA%):LOCALO$,k%:k%=FNshell_HeapBlockFetch(40):k%!0=NA%:k%!4=uA%:SYS&400CE,,k%:IF(k%!24AND(1<<8))<>0THENO$=$(k%!28)ELSEO$=$(k%+28)
 3786PROCshell_HeapBlockReturn(k%):=O$
 3792DEFFNshell_IconMove2(b%,f%,DF%,EF%):LOCALz%:z%=FNshell_HeapBlockFetch(40):!z%=b%:z%!4=f%:SYS&400CE,,z%:z%!8+=DF%:z%!16+=DF%:z%!&C+=EF%:z%!20+=EF%:f%=FNshell_IconMove(b%,f%,z%!8,z%!&C,z%!16,z%!20):PROCshell_HeapBlockReturn(z%):=f%
 3805DEFFNshell_IconResize(b%,f%,KA%,PA%,VA%,cA%):=FNshell_IconMove(b%,f%,KA%,PA%,VA%,cA%)
 3810DEFFNshell_IconMove(b%,f%,KA%,PA%,VA%,cA%):LOCALr%,HG%,DG%,CB%,a%:LOCALhE%,lE%,tE%,_E%:r%=FNshell_HeapBlockFetch(40):a%=FNshell_HeapBlockFetch(40):!r%=b%:r%!4=f%:SYS&400CE,,r%:!a%=b%:a%!4=f%:SYS&400CE,,a%:SYS&8168A,,a%+8:uF%=r%!24:KD%=r%+28
 3820hE%=uF%:lE%=KD%!0:tE%=KD%!4:_E%=KD%!8:CB%=r%!8-a%!8:SYS&400C4,,r%:SYS&400D1,!r%,r%!8-CB%,r%!&C-CB%,r%!16+CB%,r%!20+CB%:f%=FNshell_CreateIcon2(b%,KA%,PA%,VA%,cA%,hE%,lE%,tE%,_E%,CB%):PROCshell_HeapBlockReturn(r%):PROCshell_HeapBlockReturn(a%):=f%
 3831DEFFNshell_CreateIcon2(i%,KA%,PA%,VA%,cA%,n%,bF%,KF%,dF%,CB%):LOCALy%,JA%,H$,c$,BB%,kA%:JA%=FNshell_HeapBlockFetch(60):!JA%=i%:JA%!20=n%:JA%!24=bF%:JA%!28=KF%:JA%!32=dF%:H$="":c$="":IFn%AND1THEN
 3838IFn%AND256H$=$(JA%!24)ELSEH$=$(JA%+24)
 3839ENDIF:IFn%AND2THEN
 3841IFn%AND256THEN
 3842c$=FNshell_IconGetCommand(JA%!28,"S")
 3843ELSEc$=$(JA%+24)
 3845ENDIF
 3846ENDIF:PROCshell_GetMinXY(n%,H$,c$):IFVA%-KA%<BB%THENVA%=KA%+BB%
 3849IFcA%-PA%<kA%THENcA%=PA%+kA%
 3850JA%!4=KA%:JA%!8=PA%:JA%!&C=VA%:JA%!16=cA%:SYS&400C2,,JA%TOy%:SYS&400D1,!JA%,JA%!4-CB%,JA%!8-CB%,JA%!&C+CB%,JA%!16+CB%:SYS&400D3,,JA%:IF!JA%=i%:IFJA%!4=y%:SYS&400D2,i%,y%,0,0,-1,0
 3855PROCshell_HeapBlockReturn(JA%):=y%
 3861DEFPROCshell_GetMinXY(n%,H$,c$):LOCALKA%,PA%,VA%,cA%,tA%,HB%:BB%=0:kA%=0:IFn%AND1ANDH$<>""THEN
 3865IFn%AND64THEN
 3866SYS&40084,n%>>24TO,,PA%,,cA%:SYS&40097,,CHR$26+CHR$(n%>>24)+H$TO,KA%,,VA%:SYS&40088,,KA%TO,KA%:SYS&40088,,VA%TO,VA%:BB%=VA%-KA%:kA%=cA%-PA%
 3871ELSEBB%=6*OG%+16*LENH$:kA%=32
 3872ENDIF:IFn%AND4kA%+=2*RG%
 3874ENDIF:IFn%AND2ANDc$<>""THEN
 3876SYS&2002E,296,FNshell_UserSpritesBase,c$TO,,,tA%,HB%,,OE%;P%:IF(P%AND1)=0THEN
 3878SYS&20035,OE%,4TO,,RF%:tA%=tA%<<RF%:SYS&20035,OE%,5TO,,TF%:HB%=HB%<<TF%:IFn%AND&800tA%=tA%/2:HB%=HB%/2
 3881IF(n%AND539)=19tA%=BB%+tA%
 3882IFtA%>BB%BB%=tA%
 3883IFHB%>kA%kA%=HB%
 3884ENDIF
 3885ENDIF:ENDPROC
 3891DEFFNshell_IconGetCommand(jC%,mA$):LOCALI%,O$:IFjC%<=0THEN
 3894O$=""
 3895ELSEI%=INSTR(";"+FNshell_StringUpperCase($jC%),";"+FNshell_StringUpperCase(mA$)):IFI%=0THEN
 3898O$=""
 3899ELSEO$=LEFT$($(jC%+I%),INSTR($(jC%+I%)+";",";")-1)
 3901ENDIF
 3902ENDIF:=O$
 3907DEFPROCshell_IconRedraw(b%,f%):LOCALa%:a%=FNshell_HeapBlockFetch(40):!a%=b%:a%!4=f%:SYS&400CE,,a%:SYS&8168A,,a%+8:SYS&400D1,b%,a%!8,a%!&C,a%!16,a%!20:PROCshell_Action(FNshell_Poll_I(0,_U%!&94)):PROCshell_HeapBlockReturn(a%):ENDPROC
 3920DEFFNshell_IconGetValidation(b%,f%):LOCALa%,K$,n%:IFf%=-1THEN=""
 3923K$="":a%=FNshell_HeapBlockFetch(&64):a%!0=b%:a%!4=f%:SYS&400CE,,a%:n%=a%!24:IFn%AND256THEN
 3931IFa%!32>0THENK$=$(a%!32)
 3932ENDIF:PROCshell_HeapBlockReturn(a%):=K$
 3938DEFPROCshell_IconPutValidation(b%,f%,t$):LOCALa%,n%:a%=FNshell_HeapBlockFetch(&64):a%!0=b%:a%!4=f%:SYS&400CE,,a%:n%=a%!24:IFn%AND256THEN
 3945$(a%!32)=t$
 3946ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 3952DEFFNshell_IsIconSelected(QB%,RB%):LOCALc%:PROCshell_IconGetState(QB%,RB%):n%=_Q%!24:c%=(n%AND&200000):IFc%=0THEN=FALSE
 3958=TRUE
 3963DEFPROCshell_IconSelect(QB%,RB%):PROCshell_IconSetState(QB%,RB%,&200000,&200000):ENDPROC
 3970DEFPROCshell_IconDeselect(QB%,RB%):PROCshell_IconSetState(QB%,RB%,0,&200000):ENDPROC
 3977DEFPROCshell_IconGetState(QB%,RB%):!_Q%=QB%:_Q%!4=RB%:SYS&400CE,,_Q%:ENDPROC
 3986DEFPROCshell_IconSetSelected(b%,f%,ZA%):IFZA%=0THEN
 3988PROCshell_IconDeselect(b%,f%)
 3989ELSEPROCshell_IconSelect(b%,f%)
 3991ENDIF:ENDPROC
 3997DEFPROCshell_IconSet(b%,f%,ZA%):IFZA%=0THEN
 3999PROCshell_IconDeselect(b%,f%)
 4000ELSEPROCshell_IconSelect(b%,f%)
 4002ENDIF:ENDPROC
 4007DEFPROCshell_IconSetState(QB%,RB%,yF%,_F%):LOCALk%:k%=FNshell_HeapBlockFetch(16):!k%=QB%:k%!4=RB%:k%!8=yF%:k%!&C=_F%:SYS&400CD,,k%:PROCshell_HeapBlockReturn(k%):ENDPROC
 4021DEFPROCshell_IconUnselectable(i%,PC%):PROCshell_IconSetState(i%,PC%,&400000,&40000):ENDPROC
 4028DEFPROCshell_IconSetBGColour(b%,f%,oA%):IFoA%<0ORoA%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG24","PROCshell_IconSetBGColour")
 4030PROCshell_IconSetState(b%,f%,oA%<<28,&F0000000):ENDPROC
 4036DEFPROCshell_IconSetFGColour(b%,f%,oA%):IFoA%<0ORoA%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG24","PROCshell_IconSetFGColour")
 4038PROCshell_IconSetState(b%,f%,oA%<<24,&F000000):ENDPROC
 4044DEFPROCshell_CaretSetPosition(NA%,uA%,OF%,PF%,UA%,xA%):SYS&400D2,NA%,uA%,OF%,PF%,UA%,xA%:ENDPROC
 4051DEFPROCshell_IconSetButtonType(b%,f%,RC%):IFRC%=&CORRC%=&DTHENERROR99,FNshell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType")
 4053IFRC%<0ORRC%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType")
 4054PROCshell_IconSetState(b%,f%,RC%<<&C,&F000):ENDPROC
 4059DEFPROCshell_IconSetESG(b%,f%,DC%):IFDC%<0ORDC%>31THENERROR99,FNshell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG")
 4061PROCshell_IconSetState(b%,f%,DC%<<16,&1F0000):ENDPROC
 4067DEFPROCshell_IconSetText(b%,f%,DA%):IFDA%<>0THENDA%=1<<0
 4069PROCshell_IconSetState(b%,f%,DA%,1<<0):ENDPROC
 4075DEFPROCshell_IconSetSprite(b%,f%,DA%):IFDA%<>0THENDA%=1<<1
 4077PROCshell_IconSetState(b%,f%,DA%,1<<1):ENDPROC
 4082DEFPROCshell_IconSetBorder(b%,f%,DA%):IFDA%<>0THENDA%=1<<2
 4084PROCshell_IconSetState(b%,f%,DA%,1<<2):ENDPROC
 4090DEFPROCshell_IconSetHCentred(b%,f%,DA%):PROCshell_IconSetState(b%,f%,0,1<<9):IFDA%<>0THENDA%=1<<3
 4093PROCshell_IconSetState(b%,f%,DA%,1<<3):ENDPROC
 4099DEFPROCshell_IconSetVCentred(b%,f%,DA%):IFDA%<>0THENDA%=1<<4
 4101PROCshell_IconSetState(b%,f%,DA%,1<<4):ENDPROC
 4107DEFPROCshell_IconSetFilled(b%,f%,DA%):IFDA%<>0THENDA%=1<<5
 4109PROCshell_IconSetState(b%,f%,DA%,1<<5):ENDPROC
 4115DEFPROCshell_IconSetRightJust(b%,f%,DA%):PROCshell_IconSetHCentred(b%,f%,0):IFDA%<>0THENDA%=1<<9
 4118PROCshell_IconSetState(b%,f%,DA%,1<<9):ENDPROC
 4124DEFPROCshell_IconSetLeftJust(b%,f%):PROCshell_IconSetHCentred(b%,f%,0):PROCshell_IconSetRightJust(b%,f%,0):ENDPROC
 4132DEFPROCshell_IconSetUnselectable(b%,f%,ZA%):LOCALBA%:IFZA%<>0THENZA%=1<<22
 4135PROCshell_IconSetState(b%,f%,ZA%,1<<22):IFZA%<>0THEN
 4138BA%=FNshell_HeapBlockFetch(24):SYS&400D3,,BA%:IF!BA%=b%ANDBA%!4=f%THEN
 4141SYS&400D2,-1
 4142ENDIF:PROCshell_HeapBlockReturn(BA%)
 4144ENDIF:ENDPROC
 4150DEFPROCshell_CaretSetRight(b%,f%):SYS&400D2,b%,f%,-1,-1,-1,LEN(FNshell_IconGetData(b%,f%)):ENDPROC
 4157DEFPROCprint_text(F,G,H$):IFFNin(F,G-32,F+16*LEN(H$),G)THEN
 4159MOVEF,G:PRINTH$
 4161ENDIF:ENDPROC
 4166DEFFNin(A%,B%,C%,D%):IFC%<YTHEN=FALSE
 4168IFA%>ZTHEN=FALSE
 4169IFB%>PTHEN=FALSE
 4170IFD%<QTHEN=FALSE
 4171=TRUE
 4175DEFPROCnewvals:Y=_Q%!28:Q=_Q%!32:Z=_Q%!36:P=_Q%!40:T=_Q%!4:V=_Q%!8:U=_Q%!&C:O=_Q%!16:K=_Q%!20:L=_Q%!24:R=U-T:S=O-V:d=K:e=K+R:f=L:b=L-S:ENDPROC
 4186DEFFNmax(HA%,lA%):IFHA%<lA%THEN=lA%
 4188=HA%
 4191DEFFNshell_Leaf(G$):WHILEINSTR(G$,"."):G$=MID$(G$,INSTR(G$,".")+1):ENDWHILE:=G$
 4199DEFFNshell_Branch(f$):LOCALFA%,u$,c%:IFINSTR(f$,".")=0THEN
 4202u$=""
 4203ELSEc%=0:REPEAT:FA%=c%+1:c%=INSTR(f$,".",FA%):UNTILc%=0:u$=LEFT$(f$,FA%-2)
 4210ENDIF:=u$
 4215DEFFNgname(C):v$="":WHILE?C<>0AND?C<>&D:v$=v$+CHR$?C:C+=1:ENDWHILE:=v$
 4224DEFPROCshell_WindowResize(NA%,VF%,XF%,YF%,ZF%,oC%):!_Q%=VF%:_Q%!4=XF%:_Q%!8=YF%:_Q%!&C=ZF%:SYS&400D7,NA%,_Q%:IFoC%THEN
 4228_Q%!0=NA%:SYS&400CC,,_Q%:SYS&400C5,,_Q%
 4231ENDIF:ENDPROC
 4237DEFPROCshell_WindowRetitle(RETURNNA%,S$):LOCALc%,q%,i%,qE%:q%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(NA%)*32)):q%!0=NA%:SYS&400CC,,q%:IF((q%!60)AND256)=0THEN
 4244c%=q%+76:$c%=LEFT$(S$,&B):SYS&400C3,,q%:SYS&400C1,,q%+4TOi%:IFi%<>NA%THEN
 4250PROCshell_UpdateWindowHandle(NA%,i%):NA%=i%
 4252ENDIF
 4253ELSEqE%=q%!84:$(!(q%+76))=LEFT$(S$,qE%-1):IF((q%!32)AND(1<<16))<>0THEN
 4260SYS&400D1,-1,q%!4,q%!16,q%!&C,q%!16+44
 4261ENDIF:PROCshell_HeapBlockReturn(q%)
 4263ENDIF:ENDPROC
 4269DEFFNshell_WindowTitleIndirected(vB%):IF(vB%AND(1<<8))=(1<<8)THEN=TRUE
 4271=FALSE
 4275DEFPROCshell_ScreenToWindowCoords(rE%,RETURNX%,RETURNY%):LOCALQD%,uE%,BG%,wE%,xE%,pB%:pB%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(rE%)*32)):QD%=pB%:!QD%=rE%:SYS&400CC,,QD%:uE%=pB%!4:rF%=pB%!16:wE%=pB%!20:xE%=pB%!24:X%=X%+(wE%-uE%):Y%=Y%+(xE%-rF%)
 4287PROCshell_HeapBlockReturn(pB%):ENDPROC
 4292DEFFNshell_WimpSlotReadEnd:LOCALEC%:SYS&400EC,-1,-1TOEC%:=EC%
 4299DEFFNshell_WimpSlotClaimMemory(EC%,hA%):LOCALTD%:SYS&400EC,EC%+hA%,-1TOTD%:IFTD%<EC%+hA%THEN=-1
 4303=TD%
 4307DEFPROCshell_WimpSlotReleaseMemory:SYS&400EC,EC%,-1:ENDPROC
 4313DEFPROCshell_MouseLimit(A,NA%):A!0=NA%:SYS&400CB,,A:PROCmouse_rectangle(A!4,A!8,A!&C-A!4,A!16-A!8):ENDPROC
 4320DEFFNshell_NameOfFirstSprite(eA$):LOCALX%,N%,w$:X%=OPENIN(eA$):PTR#X%=4:N%=BGET#X%:N%+=BGET#X%*256:N%+=BGET#X%*65536:N%+=BGET#X%*&1000000:PTR#X%=N%:w$="":FORN%=0TO&B:w$+=CHR$(BGET#X%):NEXT:CLOSE#X%:=w$
 4339DEFPROCInitialiseSpriteArea(S%,vF%):!S%=vF%:S%!8=16:SYS46,9+256,S%:ENDPROC
 4348DEFPROCshell_ListEvents(b%,y%):LOCALm%,e$:IFb%=-1THENb%=-2
 4351PROCshell_Tracef0("MenuSelection="+FNshell_GetEventHandler(b%,y%,0)):PROCshell_Tracef0("MenuMaker    ="+FNshell_GetEventHandler(b%,y%,1)):PROCshell_Tracef0("ClickSelect  ="+FNshell_GetEventHandler(b%,y%,2))
 4354PROCshell_Tracef0("ClickAdjust  ="+FNshell_GetEventHandler(b%,y%,3)):PROCshell_Tracef0("Redraw       ="+FNshell_GetEventHandler(b%,y%,4)):PROCshell_Tracef0("Keypress     ="+FNshell_GetEventHandler(b%,y%,5))
 4357PROCshell_Tracef0("Drag         ="+FNshell_GetEventHandler(b%,y%,6)):PROCshell_Tracef0("Menu Warning ="+FNshell_GetEventHandler(b%,y%,7)):PROCshell_Tracef0("HelpTag      ="+FNshell_GetEventHandler(b%,y%,8)):m%=FNshell_GetEventMenu(2,b%,y%):IFm%=0THEN
 4362e$="None"
 4363ELSEe$=STR$m%
 4365ENDIF:PROCshell_Tracef0("Menu handle =&"+e$):ENDPROC
 4375DEFPROCshell_HeapManagerInit(G$,xF%):DIM_heap_code%900:OSCLI("LOAD "+G$+"heapcode "+STR$~_heap_code%):CALL_heap_code%+0,xF%:ENDPROC
 4384DEFFNshell_HeapBlockExists(vA%):LOCALo%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:=FALSE
 4388IFvA%<&8000THENERROR99,"No heapblock defined at this address"
 4389o%=FNshell_HeapBlockInfo(vA%):RESTOREERROR:=TRUE
 4400DEFFNshell_HeapBlockExtend(HA%,lA%):CALL_heap_code%+&C,HA%,lA%:=HA%
 4409DEFFNshell_HeapBlockFetch(HA%):LOCALvA%:CALL_heap_code%+4,vA%,HA%:=vA%
 4418DEFPROCshell_HeapBlockReturn(RETURNHA%):IFFNshell_HeapBlockExists(HA%)THENCALL_heap_code%+8,HA%
 4420HA%=0:ENDPROC
 4427DEFFNshell_HeapBlockInfo(HA%):LOCALM:SYS29,6,!(_heap_code%+28),HA%TO,,,M:=M
 4435DEFFNshell_OSVarExists(TB%,x$):LOCALB:SYS&20023,x$,TB%,-1,0,0TO,,B:IFB<0THEN=TRUE
 4439=FALSE
 4444DEFFNshell_OSVarGetVal(TB%,hA%,x$,W):LOCALy$,B,wF%:SYS&20023,x$,TB%,hA%,0,-3*(W=TRUE)TO,,B,wF%,w%:FORs%=0TOB-1:y$=y$+CHR$(TB%?s%):NEXTs%:=y$
 4455DEFFNshell_OSReadCommandArg(X):LOCALUD%,U$,d%:U$="":d%=0:SYS16TOUD%:WHILEUD%?d%<>0:U$+=CHR$(UD%?d%):d%+=1:ENDWHILE:CASEXOF
 4464WHEN0
 4465WHEN1:U$=MID$(U$,INSTR(U$,CHR$34)+1):U$=MID$(U$,INSTR(U$,CHR$34)+2)
 4468ENDCASE:=U$
 4474DEFFNshell_StringStripTrailing(B$,V$):WHILERIGHT$(B$,1)=V$:B$=LEFT$(B$,LEN(B$)-1):ENDWHILE:=B$
 4482DEFFNshell_StringStripLeading(B$,V$):WHILELEFT$(B$,1)=V$:B$=MID$(B$,2):ENDWHILE:=B$
 4490DEFFNshell_StringStripAll(B$,V$):LOCALD,E:D=TRUE:REPEAT:E=INSTR(B$,V$):IFETHEN
 4496D=FALSE:B$=LEFT$(B$,E-1)+MID$(B$,E+1)
 4498ELSED=TRUE
 4500ENDIF:UNTILD:=B$
 4507DEFFNshell_StringPadTrailing(B$,V$,DB%):WHILELEN(B$)<DB%:B$=B$+STRING$(DB%-LEN(B$),V$):ENDWHILE:=B$
 4516DEFFNshell_StringPadLeading(B$,V$,DB%):WHILELEN(B$)<DB%:B$=STRING$(DB%-LEN(B$),V$)+B$:ENDWHILE:=B$
 4525DEFFNshell_StringUpperCase(B$):LOCALs%:IFLEN(B$)>0THEN
 4528FORs%=1TOLEN(B$):IFMID$(B$,s%,1)>="a"ANDMID$(B$,s%,1)<="z"THEN
 4530MID$(B$,s%,1)=CHR$(ASC(MID$(B$,s%,1))AND&DF)
 4531ENDIF:NEXTs%
 4533ENDIF:=B$
 4539DEFFNshell_StringExchange(B$,_$,hA$):LOCALxA%:IFINSTR(B$,_$)THEN
 4542xA%=INSTR(B$,_$):B$=LEFT$(B$,xA%-1)+hA$+MID$(B$,xA%+LEN_$)
 4544ENDIF:=B$
 4549DEFFNshell_StringArrayGetLongest(A$(),qC%):LOCALs%,rC%:rC%=0:FORs%=0TOqC%:IFLEN(A$(s%))>rC%THEN
 4554rC%=LEN(A$(s%))
 4555ENDIF:NEXTs%:=rC%
 4561DEFFNmem_to_string(IE%,d%,MF%):LOCALB$:WHILEIE%?d%<>MF%:B$+=CHR$(IE%?d%):d%+=1:ENDWHILE:=B$
 4572DEFFNshell_FileLength(d$):LOCALw%,JD%,kC%,DB%,FC%,B$:SYS8,5,d$TOw%,,JD%,kC%,DB%,FC%:=DB%
 4580DEFPROCshell_TraceOn:_U%!&64=_U%!&64OR1<<9:PROCshell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"):ENDPROC
 4588DEFPROCshell_TraceOff:IF(_U%!&64AND(1<<9))THEN_U%!&64=_U%!&64EOR(1<<9)
 4590PROCshell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"):ENDPROC
 4597DEFPROCshell_TraceInit(i$):LOCALQA%,a%,E$,D$:IFi$<>""THEN
 4600QA%=OPENOUT(i$):_U%!44=QA%
 4602ENDIF:a%=FNshell_HeapBlockFetch(256):D$=FNshell_OSVarGetVal(a%,256,"Obey$Dir",1):E$=MID$(FNshell_Leaf(D$),2):PROCshell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+E$):PROCshell_HeapBlockReturn(a%):IF_U%!&64AND1<<4THEN
 4613ELSE_U%!&64=(_U%!&64EOR1<<4)
 4615ENDIF:ENDPROC
 4621DEFFNshell_TraceIsOn:IF_U%!&64AND(1<<9)THEN=TRUEELSE=FALSE
 4627DEFPROCshell_Tracef0(WA$):LOCALQA%:IFNOT(FNshell_TraceIsOn)THENENDPROC
 4630IF_U%!44<>-1THEN
 4631QA%=_U%!44:BPUT#QA%,WA$
 4633ENDIF:IF_U%!&94>0THEN
 4636PROCshell_BroadcastMessage(&43B00,"ShellDBug:Trace "+WA$)
 4638ENDIF:ENDPROC
 4644DEFPROCshell_Tracef2(vA%):OSCLI("MEDIT "+STR$~vA%):ENDPROC
 4651DEFPROCshell_TraceExit:IF_U%!44<>-1THENCLOSE#(_U%!44):_U%!44=-1
 4654ENDPROC
 4659DEFPROCshell_AttachHotKey(XA$,_B%,HC%,gC%,M$,b%,T$,Y$):LOCALx%,d%,c%,CA%,RA%,VD%:VD%=TRUE:IF_U%!60=0THEN
 4663_U%!60=FNshell_HeapBlockFetch(24):d%=0:_U%!&B4=1
 4665ELSEd%=_U%!&B4*24:_U%!60=FNshell_HeapBlockExtend(_U%!60,24):_U%!&B4=(_U%!&B4)+1
 4669ENDIF:x%=_U%!60:CASEXA$OF
 4672WHEN"F1":RA%=385
 4673WHEN"F2":RA%=386
 4674WHEN"F3":RA%=387
 4675WHEN"F4":RA%=388
 4676WHEN"F5":RA%=389
 4677WHEN"F6":RA%=390
 4678WHEN"F7":RA%=391
 4679WHEN"F8":RA%=392
 4680WHEN"F9":RA%=393
 4681WHEN"F10":RA%=458
 4682WHEN"F11":RA%=459
 4683OTHERWISERA%=(ASCXA$)-64:VD%=FALSE
 4685ENDCASE:IFVD%THEN
 4687IF_B%THENRA%+=16
 4688IFHC%THENRA%+=32
 4689ENDIF:c%=x%+d%:c%!0=RA%:c%?4=_B%:c%?5=HC%:c%?6=gC%:c%!8=FNshell_HeapBlockFetch(LENM$+1):CA%=c%!8:$CA%=M$:IFb%>0THEN
 4699d%=FNshell_SearchStatic(_U%!&B8,b%):IFd%=-1THENERROR99,FNshell_MessageNoArgs("SHELLMSG09")
 4701ENDIF:c%!&C=b%:c%!16=FNshell_HeapBlockFetch(LENT$+1):CA%=c%!16:$CA%=T$:c%!20=FNshell_HeapBlockFetch(LENY$+1):CA%=c%!20:$CA%=Y$:ENDPROC
 4712DEFFNshell_HotKeyProcess(RA%):LOCALx%,p%,j%,e%,v%,j$,T$,Y$:LOCALHC%,_B%,gC%,gA%,fA%,vB%,IG%,d%:LOCAL_%,q%:x%=_U%!60:p%=_U%!&B4*24:j%=FALSE:e%=0:REPEAT:IFx%!e%=RA%THEN
 4721j%=TRUE
 4722ELSEe%+=24
 4724ENDIF:UNTILj%ORe%>=p%:IFj%THEN
 4727c%=x%+e%:j$=$(c%!8):PROCshell_Tracef0("HotKeyProcess:Template name is '"+j$+"'"):IF(j$<>""ANDc%!&C=0)THEN
 4735PROCshell_CreateWindow(j$,v%):PROCshell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+STR$~v%+")"):q%=FNshell_HeapBlockFetch(36):q%!0=v%:SYS&400CB,,q%:gA%=(q%!4-q%!&C)/2:fA%=(q%!16-q%!8)/2:PROCshell_HeapBlockReturn(q%)
 4745ENDIF:T$=$(c%!16):IFT$<>""THEN
 4749PROCshell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+T$+"'"):IFc%!&C>0THEN
 4752o%=EVAL("FN"+T$+"("+STR$c%!&C+")")
 4753ELSEo%=EVAL("FN"+T$+"("+STR$v%+")")
 4755ENDIF
 4756ELSEPROCshell_Tracef0("HotKeyProcess:No Pre-Open FN registered")
 4760ENDIF:d%=FNshell_SearchStatic(_U%!&B8,c%!&C):IFd%>-1THEN
 4763PROCshell_OpenWindowStatic(c%!&C)
 4764ELSEIFc%!&C>0THEN
 4768ERROR99,FNshell_MessageNoArgs("SHELLMSG09")
 4769ELSEPROCshell_OpenWindowDynamic2(v%,gA%,fA%)
 4772ENDIF
 4773ENDIF:Y$=$(c%!20):IFY$<>""THEN
 4777PROCshell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+Y$+"'"):IFc%!&C>0THEN
 4780o%=EVAL("FN"+T$+"("+STR$c%!&C+")")
 4781ELSEo%=EVAL("FN"+Y$+"("+STR$v%+")")
 4783ENDIF
 4784ELSEPROCshell_Tracef0("HotKeyProcess:No Post-Open FN registered")
 4788ENDIF:_%=TRUE
 4790ELSEj$="":T$="":Y$="":_%=FALSE
 4792ENDIF:=_%
 4798DEFPROCshell_WindowCentreOnPointer(v%):LOCALt%,SC%,gA%,fA%:SC%=FNshell_HeapBlockFetch(20):SYS&400CF,,SC%:q%=FNshell_HeapBlockFetch(36):q%!0=v%:SYS&400CB,,q%:gA%=(q%!4-q%!&C)/2:fA%=(q%!16-q%!8)/2:PROCshell_WindowMoveTo(v%,SC%!0+gA%,SC%!4-fA%)
 4808PROCshell_HeapBlockReturn(q%):PROCshell_HeapBlockReturn(SC%):ENDPROC
 4815DEFPROCshell_WindowCentreOnScreen(v%):LOCALt%,sC%,tC%,sA%,UA%,OC%,qB%:SYS&20035,-1,4TO,,OC%:SYS&20035,-1,5TO,,qB%:SYS&20035,-1,&BTO,,sC%:SYS&20035,-1,&CTO,,tC%:sC%=sC%<<OC%:tC%=tC%<<qB%:q%=FNshell_HeapBlockFetch(36):q%!0=v%:SYS&400CB,,q%:sA%=(q%!&C-q%!4)
 4827UA%=(q%!16-q%!8):PROCshell_WindowMoveTo(v%,(sC%/2)-(sA%/2),(tC%-UA%)/2):PROCshell_HeapBlockReturn(q%):ENDPROC
 4835DEFPROCshell_OpenWindowStaticNewView(b%):PROCshell_OpenWindow(b%,FALSE,-1):ENDPROC
 4842DEFPROCshell_OpenWindowStatic(i%):IFFNshell_SearchStatic(_U%!&B8,i%)>-1THEN
 4844PROCshell_OpenWindow(i%,0,-1)
 4845ELSE
 4847ENDIF:ENDPROC
 4853DEFFNshell_SearchStatic(dA%,i%):LOCALj%,g%:j%=-1:g%=0:IFi%<0THEN=0
 4859IFdA%<>0THEN
 4860WHILEdA%!g%<>-1:IFdA%!g%=i%THEN
 4863j%=g%:=j%
 4866ENDIF:g%+=4:ENDWHILE
 4869ENDIF:=j%
 4875DEFPROCshell_CreateWindowStatic(z$,RETURNi%):LOCALtB%,dA%,c%,d%:tB%=FNshell_GetWB(z$):tB%!64=_U%!16:SYS&400C1,,tB%TOi%:dA%=_U%!&B8:IFdA%=0THEN
 4885PROCshell_Tracef0("CreateWindowStatic:Empty List"):_U%!&B8=FNshell_HeapBlockFetch(8):dA%=_U%!&B8:dA%!0=i%:dA%!4=-1
 4890ELSEPROCshell_Tracef0("CreateWindowStatic:Searching for window handle"):d%=FNshell_SearchStatic(_U%!&B8,i%):IFd%=-1THEN
 4899PROCshell_Tracef0("CreateWindowStatic:Not found - adding window handle to list"):d%=FNshell_SearchStatic(_U%!&B8,0):IFd%=-1THEN
 4904PROCshell_Tracef0("CreateWindowStatic:Extending window handle list"):g%=0:WHILEdA%!g%<>-1:g%+=4:ENDWHILE:_U%!&B8=FNshell_HeapBlockExtend(_U%!&B8,4):dA%=_U%!&B8
 4912ELSEPROCshell_Tracef0("CreateWindowStatic:Found unused space in list"):g%=d%
 4917ENDIF:c%=dA%+g%:c%!0=i%:c%!4=-1
 4920ENDIF
 4921ENDIF:ENDPROC
 4927DEFPROCshell_InitHelpSystem(G$,gF%):LOCALBA$,FA%,qA%,Z$,XD%,ZB%:_U%!&D4=0:IF_U%!&D8<>0THENPROCshell_HeapBlockReturn(_U%!&D8)
 4930_U%!&D8=0:PROCshell_ScanForHelp:IFgF%THENBA$=" -DieWithTask"ELSEBA$=""
 4933IF_U%!&64AND1<<3THEN
 4935G$="":qA%=FNshell_HeapBlockFetch(256):Z$=FNshell_OSVarGetVal(qA%,256,FNshell_GetAppName+"Res$Path",-1):PROCshell_HeapBlockReturn(qA%):REPEAT:FA%=INSTR(Z$,","):IFFA%>0THEN
 4942IFFNshell_FileExists(LEFT$(Z$,FA%-1)+FNshell_GetAppName)THEN
 4943G$=LEFT$(Z$,FA%-1)+FNshell_GetAppName:IFFNshell_StrongHlpChkFiles(G$)THENXD%=TRUE
 4945ELSEZ$=MID$(Z$,FA%+1)
 4947ENDIF
 4948ELSEIFFNshell_FileExists(Z$+FNshell_GetAppName)THEN
 4950G$=Z$+FNshell_GetAppName:IFFNshell_StrongHlpChkFiles(G$)THENXD%=TRUE
 4952ELSEZB%=TRUE:PROCshell_OK(FNshell_MessageOneArg("SHELLMSG26",FNshell_GetAppName))
 4955ENDIF
 4956ENDIF:UNTILG$<>""ORXD%ORZB%
 4958ELSEIFFNshell_FileExists(G$)THEN
 4962IFNOTFNshell_StrongHlpChkFiles(G$)THENZB%=TRUE
 4963ELSEERROR99,FNshell_MessageOneArg("SHELLMSG33",G$)
 4965ENDIF
 4966ENDIF:IFZB%=0THEN
 4968PROCshell_StrongHlpMsg("Help_Install "+G$+BA$):_U%!&64=_U%!&64OR1<<7
 4970ENDIF:ENDPROC
 4976DEFPROCshell_HelpWord(CA$):LOCALPG%,c%,AA%:AA%=FNshell_HeapBlockFetch(512):IF_U%!&D0=-1THEN
 4981IFFNshell_OSVarExists(AA%,"StrongHelp$Dir")THEN
 4983SYS&600DE,"<StrongHelp$Dir>":IF_U%!&D8<>0THENPROCshell_HeapBlockReturn(_U%!&D8)
 4985_U%!&D8=FNshell_HeapBlockFetch(LENCA$+1):c%=_U%!&D8:$c%=CA$
 4988ELSEPROCshell_HeapBlockReturn(AA%):PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG11"))
 4993ENDIF
 4994ELSEPROCshell_StrongHlpMsg("Help_Word "+CA$)
 4996ENDIF:PROCshell_HeapBlockReturn(AA%):ENDPROC
 5003DEFPROCshell_StrongHlpMsg(o$):PROCshell_BroadcastMessage(&43B00,o$):ENDPROC
 5009DEFPROCshell_ScanForHelp:LOCALUB%,vC%:UB%=FNshell_HeapBlockFetch(256):REPEAT:UB%!&C=0:SYS&400E7,19,UB%,-2,_U%!&D4TO,,vC%:_U%!&D4=_U%!&D4+1:UNTILvC%<>-1OR(_U%!&D4)>64:IFvC%<>-1THEN
 5029UB%!0=24:UB%!&C=0:UB%!16=&400C6:UB%!20=vC%:SYS&400E7,17,UB%,0
 5034ENDIF:PROCshell_HeapBlockReturn(UB%):ENDPROC
 5041DEFPROCshell_BroadcastMessage(lF%,o$):LOCALz%,ZD%:ZD%=(LENo$+30)ANDNOT3:z%=FNshell_HeapBlockFetch(ZD%):z%!&C=0:z%!16=lF%:$(z%+20)=o$+CHR$(0):z%!0=ZD%:SYS&600E7,17,z%,0:PROCshell_HeapBlockReturn(z%):ENDPROC
 5058DEFPROCshell_WindowToggleBackIcon(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<24):ENDPROC
 5064DEFPROCshell_WindowToggleCloseIcon(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<25):ENDPROC
 5070DEFPROCshell_WindowToggleTitleBar(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<26):ENDPROC
 5076DEFPROCshell_WindowToggleToggleIcon(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<27):ENDPROC
 5082DEFPROCshell_WindowToggleHScrollBar(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<30):ENDPROC
 5088DEFPROCshell_WindowToggleAdjustSizeIcon(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<29):ENDPROC
 5094DEFPROCshell_WindowToggleVScrollBar(RETURNb%):PROCshell_WindowToggleFlags(b%,1<<28):ENDPROC
 5101DEFPROCshell_WindowToggleFlags(RETURNb%,fC%):LOCALa%,n%,oC%,i%:PROCshell_Tracef0("WindowToggleFlags:wh%=&"+STR$~b%):oC%=FNshell_WindowIsOpen(b%):a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):a%!0=b%:SYS&400CC,,a%:n%=a%!32:n%=(n%EORfC%):a%!32=n%:SYS&400C3,,a%
 5114SYS&400C1,,a%+4TOi%:!a%=i%:IFoC%THEN
 5118SYS&400C5,,a%
 5119ENDIF:PROCshell_HeapBlockReturn(a%):IFi%<>b%THEN
 5122PROCshell_UpdateWindowHandle(b%,i%):b%=i%
 5124ENDIF:ENDPROC
 5130DEFPROCshell_ListClickSelect:LOCALx%,e%,p%,c%,CA%:x%=_U%!&C:p%=FNshell_HeapBlockInfo(x%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of ClickSelect events:"):e%=0:REPEAT:c%=x%!(e%+20):CA%=x%+e%:IFFNshell_HeapBlockExists(c%)THEN
 5142IF$c%<>""THEN
 5144PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~CA%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~CA%!4," ",8)+"   "+$c%)
 5146ENDIF
 5147ENDIF:e%+=48:UNTIL(e%>=p%):PROCshell_Tracef0(" "):ENDPROC
 5157DEFPROCshell_ListClickAdjust:LOCALx%,e%,p%,c%,CA%:x%=_U%!&C:p%=FNshell_HeapBlockInfo(x%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of ClickAdjust events:"):e%=0:REPEAT:c%=x%!(e%+24):CA%=x%+e%:IFFNshell_HeapBlockExists(c%)THEN
 5169IF$c%<>""THEN
 5171PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~CA%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~CA%!4," ",8)+"   "+$c%)
 5173ENDIF
 5174ENDIF:e%+=48:UNTIL(e%>=p%):PROCshell_Tracef0(" "):ENDPROC
 5184DEFPROCshell_ListHelpTags:LOCALx%,e%,p%,c%,CA%:x%=_U%!&C:p%=FNshell_HeapBlockInfo(x%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of attached help tags:"):e%=0:REPEAT:c%=x%!(e%+44):CA%=x%+e%:IFFNshell_HeapBlockExists(c%)THEN
 5196IF$c%<>""THEN
 5198PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~CA%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~CA%!4," ",8)+"   "+$c%)
 5200ENDIF
 5201ENDIF:e%+=48:UNTIL(e%>=p%):PROCshell_Tracef0(" "):ENDPROC
 5211DEFPROCshell_MemFill(TC%,ME%,NE%):LOCALI%,wC%,bD%:wC%=ME%DIV4:bD%=ME%MOD4:IFwC%>0THEN
 5216FORI%=1TO(wC%*4)STEP4:TC%!(I%-1)=NE%:NEXTI%
 5219ENDIF:IFbD%>0THEN
 5221TC%=TC%+(wC%*4):FORI%=0TObD%-1:TC%?I%=NE%:NEXTI%
 5225ENDIF:ENDPROC
 5232DEFPROCshell_AttachFontMenu(b%,f%,J$,PA$):LOCALm%:PROCshell_FontMenuInit:SYS"FontMenu_Select",""+CHR$0,_U%!260TO,m%:_U%!&FC=m%:PROCshell_EventAdd(b%,f%,0,-2,J$):PROCshell_Tracef0("AttachFontMenu:Attaching font menu"):IFPA$<>""THENPROCshell_AttachMenuMaker(b%,f%,PA$)
 5243ENDPROC
 5249DEFPROCshell_AttachFontSubMenu(GB%,F$,J$):LOCALEG%,m%,c%,g%:PROCshell_FontMenuInit:SYS"FontMenu_Select",""+CHR$0,_U%!260TO,m%:SYS&45BCE,GB%,m%:SYS&45BCC,,TRUE:_U%!&FC=m%:PROCshell_EventListMenuWarn(GB%,m%,F$,J$):PROCshell_Tracef0("AttachFontSubMenu:Attaching font menu &"+STR$~m%):ENDPROC
 5266DEFPROCshell_FontMenuInit:OSCLI("RMEnsure FontMenu 1.16 RMLoad <EvntShell$Path>FontMenu"):OSCLI("RMEnsure FontMenu 1.16 Error Couldn't load FontMenu module"):IF_U%!&F0=-1THEN
 5273SYS"FontMenu_Create"TO_U%!&F0
 5274ENDIF:PROCshell_FontMenuSelectFont("",TRUE):ENDPROC
 5280DEFPROCshell_FontMenuSelectFont(p$,cD%):LOCALc%,JB%:IFFNshell_HeapBlockExists(_U%!&F4)THENPROCshell_HeapBlockReturn(_U%!&F4)
 5283_U%!&F4=FNshell_HeapBlockFetch(LENp$+1):c%=_U%!&F4:$c%=p$:IFcD%<>0THENcD%=1
 5286_U%!260=cD%:SYS"FontMenu_Select",p$,_U%!260TO,JB%:IFJB%<>_U%!&FCTHEN
 5290PROCshell_FontMenuUpdatePtr(JB%):_U%!&FC=JB%
 5292ENDIF:PROCshell_Tracef0("FontMenuSelectFont:Font is '"+p$+"'"):ENDPROC
 5300DEFFNshell_FontMenuGetLastSelectedFont:LOCALc%:IFNOTFNshell_HeapBlockExists(_U%!&F4)THEN=""
 5303c%=_U%!&F4:=$c%
 5308DEFPROCshell_FontMenuUpdatePtr(e%):LOCALx%,g%:PROCshell_Tracef0("FontMenuUpdatePtr:Started.."):IFFNshell_HeapBlockExists(_U%!&DC)THEN
 5315PROCshell_Tracef0("FontMenuUpdatePtr:HeapBlock found.."):x%=_U%!&DC:g%=0:REPEAT:PROCshell_Tracef0("FontMenuUpdatePtr:Substituting ptr.."):x%!(g%+8)=e%:g%+=&C:UNTILx%!g%=-1
 5325ENDIF:ENDPROC
 5331DEFPROCshell_MenuUpdateHandle(PE%,QE%):LOCALp%,e%,h%,m%:p%=FNshell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=FALSE:h%=_U%!&C:REPEAT:m%=h%!(e%+8):IFm%=PE%THENh%!(e%+8)=QE%
 5340e%+=48:UNTIL(e%>=p%):IF_U%!24=PE%THEN_U%!24=QE%
 5343ENDPROC
 5347DEFPROCshell_FindFont(RETURNb$,xC%,yC%,RETURNeD%):IFNOTFNshell_FontIsAvailable(b$,xC%,yC%)THEN
 5349b$="Trinity.Medium"
 5350ENDIF:SYS&40081,,b$,xC%*16,yC%*16,0,0TOeD%:ENDPROC
 5357DEFFNshell_FontIsAvailable(b$,xC%,yC%):LOCALERROR:ONERRORLOCAL:RESTOREERROR:=FALSE
 5360SYS&40081,0,b$,xC%*16,yC%*16,0,0TOeD%:SYS&40082,eD%:=TRUE
 5367DEFFNshell_CheckSelection(eF%):LOCALc%,g%:c%=_U%!256:IFc%=0THEN=-1
 5371IF_U%!24=_U%!&FCTHEN=0
 5372REPEAT:IFeF%!g%<>c%!g%THEN=-1
 5374g%+=4:UNTILc%!g%=-1:=g%
 5381DEFFNshell_MenuGetItemAddress(m%,TE%):LOCALg%,kB%:SYS&45BC7,m%TOm%:REPEAT:kB%=m%+28+((TE%!g%)*24):m%=kB%!4:g%+=4:UNTILTE%!g%=-1:=kB%
 5394DEFFNshell_GetLastMouseXPos:=_U%!272
 5400DEFFNshell_GetLastMouseYPos:=_U%!276
 5406DEFPROCshell_UpdateWindowHandle(aA%,OA%):PROCshell_Tracef0("UpdateWindowHandle:Updating stored window handles"):PROCshell_Tracef0("UpdateWindowHandle:old handle=&"+STR$~aA%):PROCshell_Tracef0("UpdateWindowHandle:new handle=&"+STR$~OA%):IFOA%<>aA%THEN
 5413IF_U%!28=aA%THEN_U%!28=OA%
 5414PROCshell_FixEventBlock(aA%,OA%,_U%!&C,48):PROCshell_FixEventBlock(aA%,OA%,_U%!96,16):PROCshell_FixEventBlock(aA%,OA%,_U%!72,24):PROCshell_FixEventBlock(aA%,OA%,_U%!92,24):PROCshell_FixEventBlock2(aA%,OA%,_U%!&68,16):PROCshell_FixEventBlock2(aA%,OA%,_U%!332,32)
 5420PROCshell_UpdateStaticWindows(aA%,OA%)
 5421ENDIF:ENDPROC
 5427DEFPROCshell_UpdateStaticWindows(aA%,OA%):LOCALd%,dA%:PROCshell_Tracef0("UpdateStaticWindows:Correcting static window list.."):dA%=_U%!&B8:d%=FNshell_SearchStatic(_U%!&B8,aA%):dA%!d%=OA%:ENDPROC
 5440DEFPROCshell_FixEventBlock(aA%,OA%,h%,d%):LOCALe%,p%:IFFNshell_HeapBlockExists(h%)THEN
 5443p%=FNshell_HeapBlockInfo(h%)-8:REPEAT:IF(h%!e%=aA%)THEN
 5446h%!e%=OA%
 5447ENDIF:e%+=d%:UNTIL(e%>=p%)
 5450ENDIF:ENDPROC
 5456DEFPROCshell_FixEventBlock2(aA%,OA%,h%,d%):LOCALe%,p%:e%=4:IFFNshell_HeapBlockExists(h%)THEN
 5460p%=!h%:REPEAT:IF(h%!e%=aA%)THEN
 5463h%!e%=OA%
 5464ENDIF:e%+=d%:UNTIL(e%>=p%)
 5467ENDIF:ENDPROC
 5473DEFPROCshell_IconSelectAll(b%):LOCALa%,I%:a%=FNshell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=1<<21:a%!&C=1<<21:SYS&400D6,!a%,I%,5<<21,0<<21:WHILE!I%>-1:a%!4=!I%:SYS&400CD,,a%:I%+=4:ENDWHILE:PROCshell_HeapBlockReturn(a%):ENDPROC
 5489DEFPROCshell_IconDeselectAll(b%):LOCALa%,I%:a%=FNshell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=0:a%!&C=1<<21:SYS&400D6,!a%,I%,5<<21,1<<21:WHILE!I%>-1:a%!4=!I%:SYS&400CD,,a%:I%+=4:ENDWHILE:PROCshell_HeapBlockReturn(a%):ENDPROC
 5505DEFPROCshell_Message_SaveDesktop(Q%):LOCALEA$:EA$="Run "+FNshell_GetAppDir+CHR$&A:SYS&C,2,Q%!20,EA$,LENEA$:ENDPROC
 5514DEFPROCshell_MessagesInit(C$,RETURNzC%,RETURNWE%):LOCALhA%,n%:LOCALERROR:ONERRORLOCALRESTOREERROR:ERROR3,"Cannot open message file '"+C$+"'"
 5518SYS&41500,,C$TOn%,,hA%:IFn%AND1THENWE%=0ELSEWE%=FNshell_HeapBlockFetch(hA%)
 5520SYS30,6,,,17+LEN(C$)TO,,zC%:$(zC%+16)=C$:SYS&41501,zC%,zC%+16:PROCshell_Tracef0("MessagesInit:Message resource file '"+C$+"' loaded"):ENDPROC
 5531DEFFNshell_PrinterOnLine:LOCALXE%,YE%:XE%=ADVAL(-4):VDU2,1,0,1,0,1,0:TIME=0:REPEAT:UNTILTIME>30:YE%=NOT(ADVAL(-4)<XE%):*FX21,3
 5538VDU3:=YE%
 5544DEFPROCshell_AttachBumpHandler(b%,f%,ZE%,aE%,nF%,pF%,bE%,sF%,FA$,GA$):LOCALl%,d%,c%,CA%,pA%:d%=FNshell_GetEventListOffset2(b%,ZE%,_U%+&68,16,TRUE):l%=_U%!&68+d%:l%!0=b%:l%!4=ZE%:l%!8=bE%:l%!&C=FNshell_HeapBlockFetch(24):pA%=l%!&C:pA%!0=f%:pA%!4=nF%:pA%!8=pF%
 5573IFLENFA$>0THEN
 5574pA%!&C=FNshell_HeapBlockFetch((LENFA$)+1):CA%=pA%!&C:$CA%=FA$
 5576ELSEpA%!&C=0
 5578ENDIF:IFLENGA$>0THEN
 5580pA%!16=FNshell_HeapBlockFetch((LENGA$)+1):CA%=pA%!16:$CA%=GA$
 5582ELSEpA%!16=0
 5584ENDIF:IFsF%=-1THENpA%!20=1ELSEpA%!20=0
 5587d%=FNshell_GetEventListOffset2(b%,aE%,_U%+&68,16,TRUE):l%=_U%!&68+d%:l%!0=b%:l%!4=aE%:l%!8=bE%*(-1):l%!&C=pA%:ENDPROC
 5598DEFPROCshell_HandleBumpIcons(d%,b%,f%,_button%):LOCALGG%,LA%,l%,UC%,_temp$,gD%:LOCALMG%,eB%:IF_button%<>2THEN
 5602l%=_U%!&68+d%:_U%!288=b%:_U%!292=f%:_U%!296=d%:LA%=l%!&C:gD%=LA%!16:IFgD%<>0THEN
 5612_temp$=FNshell_IconGetData(b%,LA%!0):UC%=EVAL("FN"+$gD%+"(_temp$)")
 5614ELSEUC%=VAL(FNshell_IconGetData(b%,LA%!0))
 5616ENDIF:IF_button%=1THEN
 5619_new_val%=UC%+((l%!8)*(-1))
 5620ELSE_new_val%=UC%+l%!8
 5622ENDIF:IFLA%!20=0THEN
 5625IF_new_val%>LA%!8THEN_new_val%=LA%!8
 5626IF_new_val%<LA%!4THEN_new_val%=LA%!4
 5627ELSEIF_new_val%>LA%!8THEN_new_val%=LA%!4
 5630IF_new_val%<LA%!4THEN_new_val%=LA%!8
 5631ENDIF:eB%=LA%!&C:IFeB%<>0THEN
 5634_new_val$=EVAL("FN"+$eB%+"(_new_val%,_button%)")
 5635ELSE_new_val$=STR$_new_val%
 5637ENDIF:IF_new_val%<>UC%THEN
 5639PROCshell_IconPutData(b%,LA%!0,_new_val$,-1)
 5640ENDIF
 5641ENDIF:ENDPROC
 5647DEFFNshell_WindowSetSpriteArea(v%,hD%):LOCALa%,OA%,PC%,iD%:a%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(v%)*32)):!a%=v%:SYS&400CC,,a%:a%!68=hD%:PROCshell_IconSetSpriteArea(a%!60,a%+76,hD%):IF(a%!88)>0THEN
 5655FORPC%=0TO(a%!88)-1:iD%=a%+92+PC%*32:PROCshell_IconSetSpriteArea(iD%!16,iD%+20,hD%):NEXTPC%
 5659ENDIF:SYS&400C3,,a%:SYS&400C1,,a%+4TOOA%:IFOA%<>v%THEN
 5663PROCshell_UpdateWindowHandle(v%,OA%):v%=OA%
 5665ENDIF:PROCshell_HeapBlockReturn(a%):=v%
 5672DEFPROCshell_IconSetSpriteArea(n%,VC%,JF%):IF((n%AND3)=2)AND((n%AND256)<>0)THEN
 5674VC%!4=JF%
 5675ENDIF:ENDPROC
 5680DEFFNshell_StrongHlpIsAvailable:LOCALLB%,AA%:LB%=FALSE:IF_U%!&64AND1<<7THEN
 5685AA%=FNshell_HeapBlockFetch(256):LB%=FNshell_OSVarExists(AA%,"StrongHelp$Dir"):PROCshell_HeapBlockReturn(AA%)
 5688ENDIF:=LB%
 5694DEFFNshell_MenuNew(S$):LOCALi%:SYS&45BC1,,S$TOi%:=i%
 5702DEFFNshell_MenuAdd(i%,RA$,J$):LOCALjD%:IFJ$<>""THEN
 5705SYS&45BC2,i%,RA$,J$TOjD%
 5706ELSESYS&45BC2,i%,RA$TOjD%
 5708ENDIF:=jD%
 5720DEFPROCshell_MenuTick(nA%,ZA%):SYS&45BC9,nA%,ZA%:ENDPROC
 5727DEFPROCshell_MenuTickOnly1(WA%,FA%):SYS&45BD1,WA%,FA%:ENDPROC
 5734DEFPROCshell_MenuTickOnly2(nA%):SYS&45BD1,nA%:ENDPROC
 5741DEFPROCshell_MenuShade(i%,ZA%):SYS&45BCB,i%,ZA%:ENDPROC
 5748DEFPROCshell_MenuDotted(nA%,ZA%):SYS&45BCA,nA%,ZA%:ENDPROC
 5755DEFPROCshell_MenuColours(nA%,lD%,tD%):SYS&45BD0,nA%,lD%,tD%:ENDPROC
 5762DEFPROCshell_MenuWritable(nA%,ZA%,hA%,t$):SYS&45BCD,nA%,ZA%,hA%,t$:ENDPROC
 5769DEFPROCshell_MenuPutData(nA%,P$):SYS&45BC8,nA%,P$:ENDPROC
 5776DEFPROCshell_MenuCallHandler(v%,_h_blk%):LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 5779IFEVAL("FN"+$v%+"(_h_blk%)")
 5780ENDPROC
 5785DEFPROCshell_AttachOpenWindow(b%,A$):LOCALa%,c%,d%:PROCshell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler"):IFb%<0THENERROR99,PROCshell_MessageOneArg("SHELLMSG27","AttachOpenWindow")
 5791d%=FNshell_GetEventListOffset(b%,-1,_U%+304,&C,TRUE):a%=_U%!304+d%:a%!0=b%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(LEN(A$)+1):c%=a%!8:$c%=A$:ENDPROC
 5801DEFPROCshell_AttachCloseWindowHandler(b%,A$):LOCALa%,c%,d%:PROCshell_Tracef0("AttachCloseWindowHandler:Attaching CloseWindow Handler"):IFb%<0THENERROR99,PROCshell_MessageOneArg("SHELLMSG27","AttachCloseWindow")
 5807d%=FNshell_GetEventListOffset(b%,-1,_U%+308,&C,TRUE):a%=_U%!308+d%:a%!0=b%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(LEN(A$)+1):c%=a%!8:$c%=A$:ENDPROC
 5817DEFPROCshell_SpriteRename(CC%,ZA$,aA$):SYS46,512+26,CC%,FNshell_SpriteGetPtr(CC%,ZA$),aA$:ENDPROC
 5824DEFPROCshell_SpriteAreaSave(CC%,C$):SYS46,512+&C,CC%,C$:ENDPROC
 5831DEFPROCshell_EnsurePoll:LOCALDA%:REPEAT:DA%=FNshell_Poll_I(0,_U%!&94):PROCshell_Action(DA%):UNTILDA%=0:ENDPROC
 5842DEFFNshell_WimpGetVersion:=_U%!316
 5847DEFFNshell_OSCheckVersion(LF%):=FNshell_OSModuleCheckVersion("UtilityModule",LF%)
 5852DEFFNshell_OSModuleCheckVersion(bA$,a):LOCALa%,nB%,O$:a%=FNshell_HeapBlockFetch(256):OSCLI("Set Module$Check Y"):OSCLI("RMEnsure "+bA$+" "+STR$a+" Set Module$Check N"):SYS35,"Module$Check",a%,256,0,0TO,,nB%:a%?nB%=&D:OSCLI("Unset Module$Check"):O$=$a%
 5861PROCshell_HeapBlockReturn(a%):IFO$="N"THEN=FALSEELSE=TRUE
 5867DEFPROCshell_MessageSendDataLoad(w%,R$):LOCALz%:z%=FNshell_HeapBlockFetch(256):z%!0=256:z%!4=0:z%!&C=0:z%!16=5:z%!20=0:z%!28=0:z%!32=0:z%!36=0:z%!40=w%:$(z%+44)=R$+CHR$(0):SYS&400E7,17,z%,0:PROCshell_HeapBlockReturn(z%):ENDPROC
 5887DEFFNshell_MenuMakeFromFile(S$,cA$,i$):LOCALi%,X%,B$,o%:IFFNshell_FileExists(i$)THEN
 5890i%=FNshell_MenuNew(S$):X%=OPENIN(i$):REPEAT:B$=GET$#X%:o%=FNshell_MenuAdd(i%,B$,cA$):UNTILEOF#X%:CLOSE#X%
 5897ENDIF:=i%
 5903DEFFNshell_BinarySearch(_search_term$,dA$,h$,NF%,kD%):LOCAL_pos%,rA%,_wp$,AD%,NG%,mD%,nD%,gE%,j%,oD%:kD%+=1:oD%=FALSE:j%=FALSE:rA%=kD%:AD%=0:_pos%=rA%DIV2:nD%=NF%-1:mD%=kD%:REPEAT:_wp$=EVAL("FN"+dA$+"(_pos%)"):pD%=_pos%:IF_search_term$=_wp$THEN
 5917j%=TRUE
 5918ELSEIFEVAL("FN"+h$+"(_search_term$,_wp$)")THEN
 5921mD%=_pos%:rA%=_pos%-nD%:_pos%=rA%DIV2+AD%
 5924ELSEnD%=_pos%:AD%=_pos%:rA%=mD%-_pos%:_pos%=rA%DIV2+AD%
 5930ENDIF
 5931ENDIF:IFgE%=pD%THENoD%=TRUE
 5933gE%=pD%:UNTILj%ORoD%:IFNOTj%THEN=-1ELSE=pD%
 5940DEFFNshell_IconLastClicked:=_U%!32
 5946DEFFNshell_MenuGetNrItems(WA%):LOCALm%,_%,iE%:SYS&45BC7,WA%TOm%:m%+=28:REPEAT:_%=(m%?0AND&80):iE%+=1:m%+=24:UNTIL_%:=iE%
 5960DEFFNshell_MenuGetNrDotted(WA%):LOCALm%,_%,qC%:SYS&45BC7,WA%TOm%:m%+=28:REPEAT:_%=(m%?0AND&80):IF(m%?0AND2)THENqC%+=1
 5967m%+=24:UNTIL_%=-1:=qC%
 5974DEFFNshell_MenuGetItemHandler(WA%,XC%):LOCALXA%,e%,HA$:XA%=FNshell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:SYS&45BC4,WA%,XA%TOe%:IFe%=0THEN
 5981HA$=""
 5982ELSEHA$=$(e%)
 5984ENDIF:PROCshell_HeapBlockReturn(XA%):=HA$
 5991DEFFNshell_MenuGetItemText(WA%,XC%):LOCALXA%,e%,H$:XA%=FNshell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:SYS&45BC4,WA%,XA%TO,,e%:H$=$(e%!&C):PROCshell_HeapBlockReturn(XA%):=H$
 6004DEFFNshell_MenuGetItemHandle(WA%,XC%):LOCALXA%,e%,i%:XA%=FNshell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:SYS&45BC4,WA%,XA%TO,,e%:i%=e%!8:PROCshell_HeapBlockReturn(XA%):=i%
 6017DEFFNshell_MenuGetItemHeight(WA%):LOCALm%:SYS&45BC7,WA%TOm%:=m%!20
 6025DEFFNshell_MenuCalculateHeight(WA%):LOCALUA%:UA%=FNshell_MenuGetNrItems(WA%)*FNshell_MenuGetItemHeight(WA%):=UA%+(FNshell_MenuGetNrDotted(WA%)*24)
 6033DEFPROCshell_MenuSortItems(m%,gA$,WF%,TC%,rD%):LOCALsD%:sD%=FNshell_MenuGetNrItems(m%)-1:_shell_MS_handle%=m%:IFrD%>sD%THENrD%=sD%
 6038SYS&406C0:PROCshell_QuickSort(gA$,"_shell_MS_swap",WF%,0,rD%):SYS&406C1:ENDPROC
 6046DEFPROCshell_QuickSort(h$,k$,_asc%,_start%,_end%):LOCAL_lo%,_h%,_F%,_temp%,o%:_lo%=_start%:_hi%=_end%:_F%=TRUE:_temp%=_lo%-1+RND(_hi%+1-_lo%):o%=EVAL("FN"+k$+"(_lo%,_temp%)"):REPEAT:IF_asc%=0THEN
 6053IFEVAL("FN"+h$+"(_lo%,_hi%)")THEN
 6054o%=EVAL("FN"+k$+"(_lo%,_hi%)"):_F%=NOT_F%
 6056ENDIF
 6057ELSEIFEVAL("FN"+h$+"(_hi%,_lo%)")THEN
 6059o%=EVAL("FN"+k$+"(_hi%,_lo%)"):_F%=NOT_F%
 6061ENDIF
 6062ENDIF:IF_F%THEN_hi%=_hi%-1ELSE_lo%=_lo%+1
 6064UNTIL_lo%=_hi%:IF_start%<_lo%-1THENPROCshell_QuickSort(h$,k$,_asc%,_start%,_lo%-1)
 6066IF_hi%+1<_end%THENPROCshell_QuickSort(h$,k$,_asc%,_hi%+1,_end%)
 6067ENDPROC
 6072DEFFN_shell_MS_swap(BD%,CD%):LOCALl$,m$,jE%,kE%:l$=FNshell_MenuGetItemText(_shell_MS_handle%,BD%):m$=FNshell_MenuGetItemText(_shell_MS_handle%,CD%):jE%=FNshell_MenuGetItemHandle(_shell_MS_handle%,BD%):kE%=FNshell_MenuGetItemHandle(_shell_MS_handle%,CD%)
 6078PROCshell_MenuPutData(jE%,m$):PROCshell_MenuPutData(kE%,l$):=0
 6085DEFFN_shell_MS_comp(BD%,CD%):LOCALl$,m$:l$=FNshell_MenuGetItemText(_shell_MS_handle%,BD%):m$=FNshell_MenuGetItemText(_shell_MS_handle%,CD%):IFVALl$<VALm$THEN=TRUEELSE=FALSE
 6094DEFPROCshell_WindowSetTitleRightJust(RETURNb%):LOCALt%,TA%,i%,ZC%:ZC%=FNshell_WindowIsOpen(b%):t%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):!t%=b%:SYS&400CC,,t%:TA%=t%!60:IF(TA%AND(1<<3))THEN
 6103PROCshell_Tracef0("WindowSetTitleRightJust:title flags = &"+STR$~TA%):PROCshell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit set.."):PROCshell_Tracef0("WindowSetTitleRightJust:Unsetting horizontally centred bit.."):TA%=TA%EOR(1<<3)
 6109PROCshell_Tracef0("WindowSetTitleRightJust:title flags = &"+STR$~TA%)
 6111ELSEPROCshell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit NOT set..")
 6115ENDIF:PROCshell_Tracef0("WindowSetTitleRightJust:Setting right justified bit.."):TA%=TA%OR(1<<9):t%!60=TA%:SYS&400C3,,t%:SYS&400C1,,t%+4TOi%:IFb%<>i%THEN
 6125PROCshell_Tracef0("WindowSetTitleRightJust:Updating window handle..."):PROCshell_UpdateWindowHandle(b%,i%):b%=i%
 6129ENDIF:IFZC%THENPROCshell_OpenWindow(i%,0,0)
 6131PROCshell_HeapBlockReturn(t%):ENDPROC
 6137DEFPROCshell_WindowSetTitleCentreJust(RETURNb%):LOCALt%,TA%,i%,ZC%:ZC%=FNshell_WindowIsOpen(b%):t%=FNshell_HeapBlockFetch(&64+(FNshell_WindowCountIcons(b%)*32)):!t%=b%:SYS&400CC,,t%:TA%=t%!60:PROCshell_Tracef0("WindowSetTitleCentreJust:title flags = &"+STR$~TA%)
 6145PROCshell_Tracef0("WindowSetTitleCentreJust:t_flags% AND (1 << 3) = "+STR$~(TA%AND(1<<3))):IF(TA%AND(1<<3))=0THEN
 6148PROCshell_Tracef0("WindowSetTitleCentreJust:Horizontally centred bit not set.."):PROCshell_Tracef0("WindowSetTitleCentreJust:Setting horizontally centred bit.."):TA%=TA%EOR(1<<3):PROCshell_Tracef0("WindowSetTitleCentreJust:title flags = &"+STR$~TA%):t%!60=TA%
 6156SYS&400C3,,t%:SYS&400C1,,t%+4TOi%:IFb%<>i%THEN
 6160PROCshell_Tracef0("WindowSetTitleCentreJust:Updating window handle..."):PROCshell_UpdateWindowHandle(b%,i%):b%=i%
 6164ENDIF:IFZC%THENPROCshell_OpenWindow(i%,0,0)
 6166ENDIF:PROCshell_HeapBlockReturn(t%):ENDPROC
 6174DEFPROCshell_IconGetSelectedIcons(b%,DC%,RETURNr%):LOCALnE%:nE%=(DC%<<16)+(1<<21):SYS&400D6,b%,r%,nE%,(DC%<<16)+(1<<21):ENDPROC
 6183DEFFNshell_GetLastMouseButton:=_U%!320
 6189DEFFNshell_GetLastWindowClicked:=_U%!28
 6195DEFFNshell_GetLastIconClicked:=_U%!32
 6201DEFFNshell_IconIndirSize(jA%,n%,VC%,X%):LOCALhA%,oE%,g%,NC%:IF(n%AND&800100)=256THEN
 6204hA%=VC%!8:IF(n%AND1)AND(VC%!4<>-1)THEN
 6206oE%=VC%!4:PTR#X%=jA%+oE%:g%=0:REPEAT:NC%=BGET#X%:g%+=1:UNTILNC%<32:hA%+=+g%
 6214ENDIF
 6215ELSEhA%=0
 6217ENDIF:=hA%
 6223DEFFNshell_StrongHlpChkFiles(G$):LOCALZB%:IFNOTFNshell_FileExists(G$+".HelpData")THEN
 6227ZB%=-1:ERROR99,FNshell_MessageOneArg("SHELLMSG32","HelpData")
 6229ENDIF:IFNOTFNshell_FileExists(G$+".Index")THEN
 6232ZB%=-1:ERROR99,FNshell_MessageOneArg("SHELLMSG32","Index")
 6234ENDIF:IFZB%=FALSETHEN=TRUEELSE=FALSE
 6240DEFPROCshell_CaretMoveCaret(b%,DA%):LOCALBA%,pE%,g%,e%,bB%:g%=0:e%=0:BA%=FNshell_HeapBlockFetch(&800):SYS&400D3,,BA%:IFBA%!4<>-1THEN
 6248pE%=BA%!4:SYS&400D6,b%,BA%,&40E000,&E000:REPEAT:IFBA%!g%=pE%THENe%=g%
 6253g%+=4:UNTILBA%!g%=-1:CASEDA%OF
 6256WHEN0:bB%=!BA%
 6259WHEN1:bB%=BA%!(g%-4)
 6262WHEN2:IFBA%!(e%+4)<>-1THEN
 6265bB%=BA%!(e%+4)
 6266ELSEbB%=!BA%
 6268ENDIF
 6269WHEN3:IFe%>0THEN
 6272bB%=BA%!(e%-4)
 6273ELSEbB%=BA%!(g%-4)
 6275ENDIF
 6276ENDCASE:SYS&400D2,b%,bB%,-1,-1,-1,LEN(FNshell_IconGetData(b%,bB%))
 6278ENDIF:PROCshell_HeapBlockReturn(BA%):ENDPROC
 6285DEFPROCshell_CaretPutFirstIcon(b%):PROCshell_CaretMoveCaret(b%,0):ENDPROC
 6292DEFPROCshell_CaretPutLastIcon(b%):PROCshell_CaretMoveCaret(b%,1):ENDPROC
 6299DEFPROCshell_CaretPutNextIcon(b%):PROCshell_CaretMoveCaret(b%,2):ENDPROC
 6306DEFPROCshell_CaretPutPrevIcon(b%):PROCshell_CaretMoveCaret(b%,3):ENDPROC
 6321DEFPROCshell_TemplateFileInfo(C$,RETURNeA%,RETURNSA%,RETURN_%):LOCALGC%:GC%=FNRO3_Present:IFGC%THEN
 6325PROCshell_TemplateFileInfo3(C$,eA%,SA%,_%)
 6326ELSEPROCshell_TemplateFileInfo2(C$,eA%,SA%,_%)
 6328ENDIF:ENDPROC
 6334DEFPROCshell_TemplateFileInfo2(C$,RETURNeA%,RETURNSA%,RETURN_%):LOCALFA%,rB%,VB%:LOCALAA%,X%,DD%,LE%:LOCALg%,NC%,yD%,AB%,cC%,n%:FA%=0:SA%=0:rB%=0:VB%=0:_%=0:IFNOTFNshell_FileExists(C$)THEN_%=-1
 6341IFFNshell_FileType(C$)<>&FECTHEN_%=-2
 6342IF_%=0THEN
 6343AA%=FNshell_HeapBlockFetch(&D):X%=OPENIN(C$):PTR#X%=16:REPEAT:SYS&C,4,X%,AA%,4:jA%=!AA%:IFjA%>0THEN
 6350SA%+=1:zD%=0:SYS&C,4,X%,AA%,4:DD%=!AA%:SYS&C,4,X%,AA%,4:LE%=!AA%:SYS&C,4,X%,AA%,&C:yD%=PTR#X%:PTR#X%=jA%+56:SYS&C,4,X%,AA%,4:n%=!AA%:PTR#X%=jA%+72:SYS&C,4,X%,AA%,&C:zD%+=FNshell_IconIndirSize(jA%,n%,AA%,X%):PTR#X%=jA%+84:SYS&C,4,X%,AA%,4:AB%=!AA%:IFAB%>0THEN
 6368FORcC%=0TOAB%-1:PTR#X%=jA%+88+(cC%*32)+16:SYS&C,4,X%,AA%,4:n%=!AA%:PTR#X%=jA%+88+(cC%*32)+20:SYS&C,4,X%,AA%,&C:zD%+=FNshell_IconIndirSize(jA%,n%,AA%,X%):NEXTcC%
 6376ENDIF:PTR#X%=yD%:rB%+=zD%:IFDD%>VB%THEN
 6380VB%=DD%
 6381ENDIF
 6382ENDIF:UNTILjA%=0:CLOSE#X%:PROCshell_HeapBlockReturn(AA%):eA%=VB%+rB%
 6387ENDIF:ENDPROC
 6393DEFPROCshell_TemplateFileInfo3(C$,RETURNeA%,RETURNSA%,RETURN_%):LOCALFA%,rB%,VB%,jA%:LOCALAA%:LOCALg%,NC%,yD%,AB%,cC%,n%:FA%=0:SA%=0:rB%=0:VB%=0:AA%=FNshell_HeapBlockFetch(&D):SYS&400D9,,C$:REPEAT:$AA%="*":SYS&400DB,,-1,,,,AA%,FA%TO,eA%,jF%,,,,FA%:IFFA%<>0THEN
 6407IFeA%>VB%THENVB%=eA%
 6408rB%+=jF%:SA%+=1
 6410ENDIF:UNTILFA%=0:SYS&400DA:eA%=VB%+rB%:PROCshell_HeapBlockReturn(AA%):ENDPROC
 6420DEFFNRO3_Present:LOCALa%,nB%,O$:a%=FNshell_HeapBlockFetch(256):OSCLI("Set RO3$Check Y"):OSCLI("RMEnsure UtilityModule 3.00 Set RO3$Check N"):SYS35,"RO3$Check",a%,256,0,0TO,,nB%:a%?nB%=&D:OSCLI("Unset RO3$Check"):O$=$a%:PROCshell_HeapBlockReturn(a%):IFO$="N"THEN=FALSEELSE=TRUE
 6440DEFFNshell_WindowCountIcons(b%):LOCALWB%,GC%,AB%:IF(_U%!&64AND1<<&A)THENGC%=TRUEELSEGC%=FALSE
 6443IFGC%THEN
 6445PROCshell_Tracef0("WindowCountIcons:RISC OS 3 detected.."):IFb%=-1THENb%=-2
 6448WB%=FNshell_HeapBlockFetch(88):!WB%=b%:SYS&400CC,,WB%+1:AB%=WB%!88:PROCshell_Tracef0("WindowCountIcons:nr_icons% = "+STR$AB%)
 6455ELSEPROCshell_Tracef0("WindowCountIcons:RISC OS 3 NOT found.."):WB%=FNshell_HeapBlockFetch(6000):IFb%>0THEN
 6461!WB%=b%:SYS&400CC,,WB%:AB%=WB%!88
 6464ENDIF:PROCshell_Tracef0("WindowCountIcons:nr_icons% = "+STR$AB%)
 6468ENDIF:PROCshell_HeapBlockReturn(WB%):=AB%
 6475DEFFNshell_SliderGetValue(i%):=(_U%!332+i%)!28
 6481DEFPROCshell_HandleSlider(b%,f%,mA%):LOCALGA%,IA%,MA%,a%,l%:PROCshell_Tracef0("HandleSlider:slider drag event found.."):l%=_U%!332+mA%:GA%=FNshell_HeapBlockFetch(50):GA%!0=b%:GA%!4=l%!8:SYS&400CE,,GA%:a%=_U%!328:a%!0=0:a%!4=GA%!16-GA%!8:a%!8=f%:a%!&C=l%!&C:a%!16=l%
 6498a%!24=l%!24:GA%!0=b%:SYS&400CB,,GA%:IA%=GA%!4-GA%!20:MA%=GA%!16-GA%!24:GA%!4=f%:SYS&400CE,,GA%:GA%!4=7:GA%!8+=IA%:GA%!&C+=MA%:GA%!16+=IA%:GA%!20+=MA%:GA%!24=GA%!8:GA%!28=GA%!&C:GA%!32=GA%!24+a%!4:GA%!36=GA%!20:SYS&400D0,,GA%:PROCshell_HeapBlockReturn(GA%)
 6518_U%!&64=_U%!&64OR1<<&B:ENDPROC
 6524DEFPROCshell_Slider:LOCALzA%,a%,ED%,dC%,b%,IA%,UA$,EB%,_value%,o%:zA%=FNshell_HeapBlockFetch(20):EB%=_U%!328:SYS&400CF,,zA%:b%=zA%!&C:dC%=EB%!8:ED%=!zA%:IFED%<>!EB%THEN
 6534a%=FNshell_HeapBlockFetch(50):!a%=b%:SYS&400CB,,a%:IA%=ED%-a%!4:a%!4=dC%:SYS&400CE,,a%:SYS&400C4,,a%:a%!4=b%:a%!16=IA%:SYS&400C2,,a%+4:SYS&400D1,b%,a%!8,a%!&C,a%!8+EB%!4,a%!20:_value%=INT(((IA%-a%!8)*&64)/EB%!4):c%=EB%!16:c%!28=_value%:IFEB%!24<>-1THEN
 6549o%=EVAL("FN"+$(EB%!24)+"(_value%)")
 6550ENDIF:IFEB%!&C>=0THEN
 6552UA$=STR$(_value%):PROCshell_IconPutData(b%,EB%!&C,UA$,-1)
 6554ENDIF:WAIT:!EB%=ED%:PROCshell_HeapBlockReturn(a%)
 6558ENDIF:PROCshell_HeapBlockReturn(zA%):ENDPROC
 6565DEFFNshell_GetEventListOffset2(b%,f%,h%,_A%,MC%):LOCALp%,e%,j%,d%,yA%,c%:IF(!h%=0ANDMC%=FALSE)THEN=-2
 6572IF(!h%=0)THEN
 6574!h%=FNshell_HeapBlockFetch(_A%+4):c%=!h%:c%!0=_A%:c%!4=0:c%!8=0:=4
 6580ENDIF:c%=!h%:p%=!c%:PROCshell_Tracef0("GetEventListOffset2:list size is "+STR$p%):e%=4:j%=FALSE:d%=-1:yA%=-1:c%=!h%:REPEAT:PROCshell_Tracef0("GetEventListOffset2:window handle=&"+STR$~c%!e%):IFyA%<0THEN
 6596IF(c%!e%=0ANDc%!e%+4=0)THENyA%=e%
 6597ENDIF:IF(c%!e%=b%)THEN
 6602IFf%=-1THEN
 6605d%=e%:j%=TRUE
 6607ELSEIFc%!(e%+4)=f%THEN
 6613d%=e%:j%=TRUE
 6615ELSEe%+=_A%
 6617ENDIF
 6618ENDIF
 6619ELSEe%+=_A%
 6622ENDIF:UNTIL((e%>=(p%+4))ORj%):IFj%THEN
 6626ELSE
 6628ENDIF:IF(d%=-1ANDMC%)THEN
 6630IFyA%<0THEN
 6632d%=p%+4:!h%=FNshell_HeapBlockExtend(!h%,_A%):c%=!h%:c%!0+=_A%:c%+=d%:c%!4=0:c%!8=0
 6639ELSEd%=yA%
 6642ENDIF
 6643ENDIF:=d%
 6649DEFPROCshell_SliderSetValue(i%,_value%):LOCALl%,dC%,a%,zE%,BE%,CE%,GD%:LOCALAF%,BF%:l%=_U%!332+i%:dC%=l%!4:b%=l%!0:zE%=l%!8:CE%=l%!&C:a%=FNshell_HeapBlockFetch(50):a%!0=b%:a%!4=zE%:SYS&400CE,,a%:BE%=a%!16:GD%=a%!8:AF%=a%!&C:BF%=a%!20:a%!4=dC%:SYS&400CE,,a%
 6667SYS&400C4,,a%:a%!4=b%:IF_value%>&64THEN_value%=&64
 6670IF_value%<=0THEN
 6671_value%=0:a%!16=a%!8
 6673ELSEa%!16=GD%+(BE%*(_value%/&64))-(GD%*(_value%/&64))
 6675ENDIF:l%!28=_value%:SYS&400C2,,a%+4:SYS&400D1,b%,GD%,AF%,BE%,BF%:IFl%!24<>-1THEN
 6680o%=EVAL("FN"+$(l%!24)+"(_value%)")
 6681ENDIF:IFCE%>=0THEN
 6683PROCshell_IconPutData(b%,CE%,STR$_value%,TRUE)
 6684ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 6691DEFFNshell_AttachSliderHandler(b%,CF%,JC%,sB%,ID%,FE%,Q$):LOCALl%,d%:d%=FNshell_GetEventListOffset2(b%,JC%,_U%+332,32,TRUE):l%=_U%!332+d%:l%!0=b%:l%!4=JC%:l%!8=CF%:l%!&C=sB%:l%!16=ID%:l%!20=FE%:IFQ$<>""THEN
 6717l%!24=FNshell_HeapBlockFetch(LENQ$+1):$(l%!24)=Q$
 6719ELSEl%!24=-1
 6721ENDIF:l%!28=0:IF_U%!328=0THEN_U%!328=FNshell_HeapBlockFetch(24)
 6727PROCshell_AttachClickSelect(b%,JC%,"_shell_icondrag"):PROCshell_AttachClickSelect(b%,CF%,"_shell_icondrag2"):IFID%>=0THEN
 6732PROCshell_AttachClickSelect(b%,ID%,"_shell_sliderbumpupS"):PROCshell_AttachClickSelect(b%,FE%,"_shell_sliderbumpdownS"):PROCshell_AttachClickAdjust(b%,ID%,"_shell_sliderbumpdownA"):PROCshell_AttachClickAdjust(b%,FE%,"_shell_sliderbumpupA")
 6736ENDIF:=d%
 6743DEFFN_shell_icondrag(b%,f%):PROCshell_IconDragBox(b%,f%):=0
 6750DEFFN_shell_icondrag2(b%,f%):LOCALFB%,l%,YA%,j%,JC%:l%=_U%!332:FB%=!l%:YA%=4:PROCshell_Tracef0("Event block size is "+STR$FB%):REPEAT:IFl%!(YA%+8)=f%THEN
 6759j%=TRUE:JC%=l%!(YA%+4)
 6760ENDIF:YA%+=32:UNTILYA%>=FB%ORj%:PROCshell_IconDragBox(b%,JC%):=0
 6769DEFFN_shell_sliderbumpupS(b%,f%):LOCALo%:o%=FN_shell_sliderbumpup(b%,f%,4):=0
 6777DEFFN_shell_sliderbumpupA(b%,f%):LOCALo%:o%=FN_shell_sliderbumpup(b%,f%,1):=0
 6785DEFFN_shell_sliderbumpdownS(b%,f%):LOCALo%:o%=FN_shell_sliderbumpdown(b%,f%,4):=0
 6793DEFFN_shell_sliderbumpdownA(b%,f%):LOCALo%:o%=FN_shell_sliderbumpdown(b%,f%,1):=0
 6801DEFFN_shell_sliderbumpup(b%,f%,YB%):LOCALFB%,l%,YA%,j%,e%,_value%,uB%:PROCshell_Tracef0("In sliderbumpup routine"):l%=_U%!332:FB%=!l%:YA%=4:PROCshell_Tracef0("Event block size is "+STR$FB%):IFYB%=4THENuB%=16ELSEuB%=20
 6809REPEAT:IFl%!(YA%+uB%)=f%THEN
 6812j%=TRUE:e%=YA%:_value%=l%!(e%+28):PROCshell_Tracef0("Current slider value = "+STR$_value%):PROCshell_Tracef0("Slider handle is     = "+STR$e%)
 6815ENDIF:YA%+=32:UNTILYA%>=FB%ORj%:IFj%THEN
 6819PROCshell_SliderSetValue(e%,_value%+1)
 6820ENDIF:=0
 6826DEFFN_shell_sliderbumpdown(b%,f%,YB%):LOCALFB%,l%,YA%,j%,e%,_value%,uB%:PROCshell_Tracef0("In sliderbumpdown routine"):l%=_U%!332:FB%=!l%:YA%=4:PROCshell_Tracef0("Event block size is "+STR$FB%):IFYB%=4THENuB%=20ELSEuB%=16
 6834REPEAT:IFl%!(YA%+uB%)=f%THEN
 6837j%=TRUE:e%=YA%:_value%=l%!(e%+28):PROCshell_Tracef0("Current slider value = "+STR$_value%):PROCshell_Tracef0("Slider handle is     = "+STR$e%)
 6840ENDIF:YA%+=32:UNTILYA%>=FB%ORj%:IFj%THEN
 6844PROCshell_SliderSetValue(e%,_value%-1)
 6845ENDIF:=0
 6851DEFPROCshell_DeleteEventSlider(b%,f%):LOCALd%,a%,p%,h%,c%:h%=_U%!332:REPEAT:d%=FNshell_GetEventListOffset2(b%,f%,_U%+332,32,FALSE):PROCshell_Tracef0("DeleteEventSlider:offset% = "+STR$d%):IFd%>=0THEN
 6864IFf%=-1THEN
 6866PROCshell_Tracef0("DeleteEventSlider:Deleting Slider Event (all events for window handle &"+STR$~b%+")")
 6868ELSEPROCshell_Tracef0("DeleteEventSlider:Deleting Slider Event (window handle was &"+STR$~b%+" icon handle was "+STR$f%+")")
 6872ENDIF:p%=!h%:IFd%=p%-32THEN
 6877IFd%=0THEN
 6879PROCshell_HeapBlockReturn(h%+d%+24):PROCshell_HeapBlockReturn(_U%!332):_U%!332=0:PROCshell_Tracef0("DeleteEventSlider:No Slider events now registered")
 6885ELSE_U%!332=FNshell_HeapBlockExtend(_U%!332,-32):h%=_U%!332:!h%-=32
 6890ENDIF
 6891ELSEa%=h%+d%:a%!0=0:a%!4=0:PROCshell_HeapBlockReturn(a%+24)
 6896ENDIF
 6897ENDIF:UNTILd%<0:ENDPROC
 6906DEFPROCshell_OpenWindowDynamic(lA$,LA$,MA$):LOCALv%,gA%,fA%,q%:PROCshell_CreateWindow(lA$,v%):PROCshell_Tracef0("OpenWindowDynamic:Creating new dynamic window (handle is &"+STR$~v%+")"):q%=FNshell_HeapBlockFetch(36):q%!0=v%:SYS&400CB,,q%:gA%=(q%!4-q%!&C)/2
 6917fA%=(q%!16-q%!8)/2:PROCshell_HeapBlockReturn(q%):IF_U%!20<>0THEN
 6921SYS&400D4,,-1:o%=FNshell_DeleteWindow(_U%!20)
 6923ENDIF:_U%!20=b%:IFLA$<>""THEN
 6927PROCshell_Tracef0("OpenWindowDynamic:Calling Pre-Open FN '"+LA$+"'"):o%=EVAL("FN"+LA$+"("+STR$v%+")")
 6930ELSEPROCshell_Tracef0("OpenWindowDynamic:No Pre-Open FN")
 6934ENDIF:PROCshell_OpenWindowDynamic2(v%,gA%,fA%):IFMA$<>""THEN
 6938PROCshell_Tracef0("OpenWindowDynamic:Calling Post-Open FN '"+MA$+"'"):o%=EVAL("FN"+MA$+"("+STR$v%+")")
 6941ELSEPROCshell_Tracef0("OpenWindowDynamic:No Post-Open FN")
 6945ENDIF:ENDPROC
 6951DEFPROCshell_InteractiveHelpOn:IF(_U%!&64AND1<<&C)<>0THEN
 6953ELSE_U%!&64=_U%!&64EOR1<<&C
 6955ENDIF:ENDPROC
 6961DEFPROCshell_InteractiveHelpOff:IF(_U%!&64AND1<<&C)<>0THEN
 6963_U%!&64=_U%!&64EOR1<<&C
 6964ENDIF:ENDPROC
 6970DEFPROCshell_MessageSendPrintSave(HE%,GF%):IFGF%>1THEN_U%!336=GF%-1ELSE_U%!336=0
 6972PROCshell_DoSendPrintSave(HE%):ENDPROC
 6978DEFPROCshell_DoSendPrintSave(HE%):LOCALEA%:EA%=FNshell_HeapBlockFetch(256):EA%!0=256:EA%!&C=0:EA%!16=&80142:EA%!20=0:EA%!24=0:EA%!28=0:EA%!32=0:EA%!36=256:EA%!40=HE%:$(EA%+44)="PrintOut"+CHR$(0):PROCshell_Tracef0("MessageSendPrintSave:Sending PrintSave message..")
 6994SYS&400E7,18,EA%,EA%!20,EA%!24:PROCshell_HeapBlockReturn(EA%):ENDPROC
 7001DEFPROCshell_HandlePrintFile(_Q%):PROCshell_Tracef0("HandlePrintFile:Message_PrintFile received"):ENDPROC
 7010DEFPROCshell_HandlePrintError(_Q%):PROCshell_Tracef0("HandlePrintError:Message_PrintError received"):ENDPROC
 7019DEFPROCshell_HandlePrintTypeOdd(_Q%):PROCshell_Tracef0("HandlePrintTypeOdd:Message_PrintTypeOdd received"):ENDPROC
 7028DEFPROCshell_HandleSetPrinter(_Q%):PROCshell_Tracef0("HandleSetPrinter:Message_SetPrinter received"):ENDPROC
 7037DEFFNshell_PrinterDriverLoaded:LOCALaB%:SYS&A0140TO;aB%:IFaB%AND1THEN=FALSEELSE=TRUE
 7045DEFFNshell_PrinterDriverGetName:LOCALaB%,HF%:SYS&A0140TO,,,,HF%;aB%:IFaB%AND1THEN=""ELSE=FNshell_GetString(HF%)
 7053DEFFNshell_IconGetBGColour(b%,f%):LOCALoA%,k%:k%=FNshell_HeapBlockFetch(40):k%!0=b%:k%!4=f%:SYS&400CE,,k%:oA%=(k%!24>>28)AND&F:PROCshell_HeapBlockReturn(k%):=oA%
 7066DEFFNshell_IconGetFGColour(b%,f%):LOCALoA%,k%:k%=FNshell_HeapBlockFetch(40):k%!0=b%:k%!4=f%:SYS&400CE,,k%:oA%=(k%!24>>24)AND&F:PROCshell_HeapBlockReturn(k%):=oA%
 7079DEFPROCshell_AttachPopupMenu(b%,cB%,sB%,m%,Q$):PROCshell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,0):ENDPROC
 7086DEFPROCshell_AttachColourPopupMenu(b%,cB%,sB%,m%,Q$):PROCshell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,1):ENDPROC
 7093DEFPROCshell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,vB%):LOCALl%,d%:d%=FNshell_GetEventListOffset2(b%,cB%,_U%+340,24,TRUE):l%=_U%!340+d%:l%!0=b%:l%!4=cB%:l%!8=sB%:IFQ$<>""THEN
 7113l%!&C=FNshell_HeapBlockFetch(LENQ$+1):$(l%!&C)=Q$
 7115ELSEl%!&C=-1
 7117ENDIF:l%!16=vB%:l%!20=m%:IFb%>0ANDcB%>=0THENPROCshell_IconSetButtonType(b%,cB%,3)
 7122ENDPROC
 7127DEFPROCshell_DoPopupSelect(_Q%,d%):LOCALl%,Q$:l%=_U%!340+d%:IFl%!&C=-1THEN
 7143IFl%!16=0THEN
 7144PROCshell_IconPutData(!l%,l%!8,FNshell_MenuGetItemText(l%!20,!_Q%),TRUE)
 7145ELSEPROCshell_IconSetBGColour(!l%,l%!8,!_Q%)
 7147ENDIF
 7148ELSEQ$=$(l%!&C)
 7150ENDIF:ENDPROC
 7156DEFFNshell_3DEnabled:LOCALIF%,_3d%:IF_U%!&64AND(1<<&A)THEN
 7160SYS6,&A1,&8CTO,,IF%:IF(IF%AND1)THEN_3d%=TRUEELSE_3d%=FALSE
 7162ELSE_3d%=FALSE
 7165ENDIF:=_3d%
 7171DEFPROCshell_MenuDelete(i%,AG%):LOCALe%,p%,h%:IFi%<>0THEN
 7174SYS&65BC3,i%,AG%:p%=FNshell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:REPEAT:IF(h%!(e%+8)=i%)THEN
 7179h%!(e%+8)=0
 7180ELSEe%+=48
 7182ENDIF:UNTIL(e%>=p%)
 7184ENDIF:ENDPROC
 7190DEFPROCshell_HandleAttachedDataSave(_Q%,b%,f%):LOCALmA%,a%,iB%,_name$,c%,o%:PROCshell_DataSaveCheckName(b%,f%):mA%=FNshell_GetEventListOffset(b%,-1,_U%+72,24,FALSE):IFmA%>=0THEN
 7198a%=_U%!72+mA%:iB%=a%!16:_name$=FNshell_IconGetData(b%,iB%):c%=a%!20:IF$c%<>""THENo%=EVAL("FN"+$c%+"(_name$)")
 7203ENDIF:ENDPROC
S� >EvntShell:ShellLib ��� Squished by Lofty's !Shrink vsn 3.01 on 29-May-94 ���
$ݤshell_LibraryVersion:=1.33*&64
,��shell_Error:�FA%,VA$:�<>&D00��<>&903�
aș&606C2:�shell_OSCheckVersion(3)��shell_FileExists("Resources:$.Resources.Edit.ThrowBack")�
W�shell_Exit:�("Set Basic$File <"+�shell_GetAppName+"$BasicFile>"):�"Edit:ThrowBack"
K��shell_ErrorBox("Unexpected error:- "+�$+" Internal error code "+Þ):�
�
B�FA%=��$,"in "+�34+"EvntShell:ShellLib"):�FA%>0�VA$=��$,FA%-1)
$�shell_ErrorBox(VA$)
%�:ș&606C2:�
-��shell_OK(YA$):�&D00,YA$
/�
4[��shell_ErrorBox(fA$):�LB%,wA%:wA%=_shell_blk%:!wA%=�:$(wA%+4)=fA$+�(0):�=&D00��=&903�
99ș&600DF,wA%,17,"Message from "+�shell_GetAppName�LB%
:)�ș&600DF,wA%,1,�shell_GetAppName�LB%
<�:�
C9ݤshell_GetLastSecureFileName:�c%:c%=_U%!80:�c%=0�=""
G=$c%
LZݤshell_GetString(cE%):�SA$,hC%:ȕ((cE%?hC%)>31�hC%<&FF):SA$+=�(cE%?hC%):hC%+=1:�:=SA$
WCݤshell_GetEventHandler(b%,y%,IC%):�e%,h%,j%,p%,A$:�b%=-1�b%=-2
ZNp%=�shell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=�:h%=_U%!&C:A$="":�:�(h%!e%=b%)�
aȎh%!(e%+4)�
b$�-1:�h%!(e%+(&C+(IC%*4)))>&8000�
h#A$=$(h%!(e%+(&C+(IC%*4)))):j%=�
j�e%+=48
l�
m�h%!(e%+4)=y%�
t �h%!(e%+(&C+(IC%*4)))>&8000�
u#A$=$(h%!(e%+(&C+(IC%*4)))):j%=�
w�e%+=48
y�
z�e%+=48
|�
}�
~�e%+=48
��:�((e%>=p%)�j%):=A$
�@ݤshell_GetEventMenu(YB%,b%,y%):�e%,h%,j%,p%,m%:�b%=-1�b%=-2
�Np%=�shell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=�:h%=_U%!&C:A$="":�:�(h%!e%=b%)�
�I�shell_Tracef0("GetEventMenu:window handle matched.."):�h%!(e%+4)=y%�
�"m%=h%!(e%+8):�m%=-2�m%=_U%!&FC
�j%=�
��
��
��:e%+=48:�(e%>=p%�j%):=m%
�Wݤshell_GetEventListOffset(b%,f%,h%,_A%,MC%):�p%,e%,j%,d%,yA%,c%:�(!h%=0�MC%=�)�=-2
�
�(!h%=0)�
�:!h%=�shell_HeapBlockFetch(_A%):c%=!h%:c%!0=0:c%!4=0:=0
�L�:p%=�shell_HeapBlockInfo(!h%)-8:e%=0:j%=�:d%=-1:yA%=-1:c%=!h%:�:�yA%<0�
��(c%!e%=0�c%!e%+4=0)�yA%=e%
��:�(c%!e%=b%)�
��f%=-1�
�d%=e%:j%=�
�N��shell_Tracef0("GetEventListOffset:icon handle is not -1"):�c%!(e%+4)=f%�
�d%=e%:j%=�
��e%+=_A%
��
��
��e%+=_A%
��:�((e%>=p%)�j%):�j%�
��
��:�(d%=-1�MC%)�
��yA%<0�
�Id%=p%:!h%=�shell_HeapBlockExtend(!h%,_A%):c%=!h%:c%+=d%:c%!0=0:c%!4=0
��d%=yA%
��
�	�:=d%
����shell_AttachPane(b%,�lC%,n%,gA%,fA%):�a%,d%,c%,KB%,qD%:�shell_Tracef0("AttachPane:Attaching Pane Handler"):qD%=�shell_WindowGetFlags(lC%):�(qD%�1<<5)=0�
�r�shell_Tracef0("AttachPane:'Pane' bit of pane window is not set, fixing.."):�shell_WindowToggleFlags(lC%,1<<5)
�:�(qD%�1<<1)�
r�shell_Tracef0("AttachPane:'Moveable' bit of pane window is set, fixing.."):�shell_WindowToggleFlags(lC%,1<<1)
<�:d%=�shell_GetEventListOffset(b%,-1,_U%+92,24,�):�d%<0�
	��shell_Tracef0("AttachPane:Creating pane event block"):d%=�shell_GetEventListOffset(b%,-1,_U%+92,24,�):a%=_U%!92+d%:a%!0=b%:a%!4=-1:a%!8=�shell_HeapBlockFetch(4):a%!&C=�shell_HeapBlockFetch(4):a%!16=�shell_HeapBlockFetch(4)
aa%!20=�shell_HeapBlockFetch(4):c%=a%!8:!c%=-1:c%=a%!&C:!c%=-1:c%=a%!16:!c%=-1:c%=a%!20:!c%=-1
��:a%=_U%!92+d%:c%=a%!8:g%=0:KB%=0:ȕc%!g%<>-1:g%+=4:KB%+=1:�:a%!8=�shell_HeapBlockExtend(a%!8,4):c%=a%!8:c%!(KB%*4)=lC%:c%!((KB%+1)*4)=-1:a%!&C=�shell_HeapBlockExtend(a%!&C,4):c%=a%!&C:c%!(KB%*4)=n%:c%!((KB%+1)*4)=-1
"�a%!16=�shell_HeapBlockExtend(a%!16,4):c%=a%!16:c%!(KB%*4)=gA%:c%!((KB%+1)*4)=-1:a%!20=�shell_HeapBlockExtend(a%!20,4):c%=a%!20:c%!(KB%*4)=fA%:c%!((KB%+1)*4)=-1:�
-���shell_AttachDataLoad(b%,f%,w%,A$,zF%):�a%,c%,d%,N$:�shell_Tracef0("AttachDataLoad:Attaching DataLoad Handler"):�b%=-1�b%=-2
1�zF%�w%=w%�1<<31
2Pd%=�shell_GetEventListOffset(b%,f%,_U%+96,16,�):a%=_U%!96+d%:�a%!0=0�a%!4=0�
9��shell_Tracef0("AttachDataLoad:This is the first DataLoad Event..."):a%!0=b%:a%!4=f%:a%!8=�shell_HeapBlockFetch(8):c%=a%!8:c%!0=w%:c%!4=-1:a%!&C=�shell_HeapBlockFetch(8):c%=a%!&C:c%!0=�shell_HeapBlockFetch(�(A$)+1):c%!4=-1:c%=c%!0:$c%=A$
C���shell_Tracef0("AttachDataLoad:This is another DataLoad Event..."):a%!8=�shell_HeapBlockExtend(a%!8,4):a%!&C=�shell_HeapBlockExtend(a%!&C,4):g%=0:c%=a%!8:ȕc%!g%<>-1:g%+=4:�:c%!g%=w%:c%!(g%+4)=-1:c%=a%!&C:c%!g%=�shell_HeapBlockFetch(�A$+1)
Rc%=c%!g%:$c%=A$
S��:N$=�shell_GetCmdLineArgs:�shell_Tracef0("AttachDataLoad:cmdline  ="+N$):�shell_Tracef0("AttachDataLoad:flag bit ="+�((_U%!&64�1<<5))):�shell_Tracef0("AttachDataLoad:wh%      ="+�~b%):�shell_Tracef0("AttachDataLoad:type%    ="+�~w%)
Z �N$<>""�b%<0�(_U%!&64�1<<5)�
\�w%�1<<31�c%=w%�1<<31�c%=w%
]�shell_FileType(N$)=c%�
_l�shell_Tracef0("AttachDataLoad:Loading file.."):�shell_MessageSendDataLoad(c%,N$):_U%!&64=_U%!&64�(1<<5)
b�
c�:�
i���shell_AttachDataSave(b%,f%,MB%,w%,iB%,A$):�a%,c%,d%:笤shell_IconIsSprite(b%,f%)��shell_OK(�shell_MessageNoArgs("SHELLMSG29"))
n4�shell_IconSetButtonType(b%,f%,6):�MB%=0�MB%=&64
q��shell_Tracef0("AttachDataSave:Attaching DataSave Handler to icon "+�f%+" in window &"+�~b%):�shell_Tracef0("AttachDataSave:Handler function is '"+A$+"'"):d%=�shell_GetEventListOffset(b%,f%,_U%+72,24,�):a%=_U%!72+d%:a%!0=b%:a%!4=f%:a%!8=MB%:a%!&C=w%
wHa%!16=iB%:a%!20=�shell_HeapBlockFetch(�(A$)+1):c%=a%!20:$c%=A$:Ȏw%�
{�&FF9:�MB%>&8000�
'_U%!&88=�shell_HeapBlockInfo(MB%)-8
��_U%!&88=MB%
��
��MB%>&8000�
�'_U%!&88=�shell_HeapBlockInfo(MB%)-4
��_U%!&88=MB%
��
��:_U%!&8C=w%:_U%!&90=MB%:�
�^��shell_AttachMenu(b%,y%,m%,_B%,HC%,gC%):�d%:�b%>0�y%>=0��shell_IconSetButtonType(b%,y%,3)
�[d%=�shell_SearchStatic(_U%!&B8,b%):�d%=-1��shell_OK(�shell_MessageNoArgs("SHELLMSG30"))
�y�shell_Tracef0("AttachMenu:Attaching menu handle &"+�~m%+" to window handle &"+�~b%):�shell_EventAdd(b%,y%,0,m%,""):�
����shell_AttachMenuMaker(b%,y%,A$):�shell_Tracef0("AttachMenuMaker:Attaching menumaker function '"+A$+"'"):�shell_EventAdd(b%,y%,1,0,A$):�
�y��shell_AttachMenuDBox(GB%,M$,TA$,QA$):�a%,c%,vA%:笤shell_WindowLoaded(M$)��99,�shell_MessageOneArg("SHELLMSG03",M$)
��a%=�shell_HeapBlockFetch(&C):a%!0=�shell_HeapBlockFetch(�M$+1):c%=a%!0:$c%=M$:a%!4=�shell_HeapBlockFetch(�TA$+1):c%=a%!4:$c%=TA$:a%!8=�shell_HeapBlockFetch(�QA$+1):c%=a%!8:$c%=QA$:ș&45BCE,GB%,a%:ș&45BCC,,�:�
�G��shell_AttachClickSelect(b%,y%,A$):�shell_EventAdd(b%,y%,2,0,A$):�
�G��shell_AttachClickAdjust(b%,y%,A$):�shell_EventAdd(b%,y%,3,0,A$):�
̏��shell_AttachUserRedraw(�b%,A$):�a%,QA%:a%=�shell_HeapBlockFetch(40):!a%=b%:ș&400CB,,a%:QA%=a%!32:�shell_HeapBlockReturn(a%):�(QA%�1<<4)�
�Z�shell_Tracef0("AttachUserRedraw:auto redraw set!!"):�shell_WindowToggleFlags(b%,1<<4)
�%�:�shell_EventAdd(b%,-1,4,0,A$):�
�D��shell_AttachDrag(b%,y%,FG%,A$):�shell_EventAdd(b%,y%,6,0,A$):�
�C��shell_AttachHelpTag(b%,y%,I$):�shell_EventAdd(b%,y%,8,0,I$):�
�R��shell_EventAdd(b%,y%,IC%,m%,A$):�e%,eB%,h%,p%,j%:�iC%:e%=0:j%=�:�b%=-1�b%=-2
�>p%=�shell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:�:�(h%!e%=b%)�
��h%!(e%+4)=y%�
�j%=�
��e%+=48
��
��e%+=48
�:�(e%>=p%�j%):�j%=��
%e%=0:ȕ(h%!e%<>0):e%+=48:�e%>=p%�
�_U%!&C=�shell_HeapBlockExtend(_U%!&C,48):h%=_U%!&C:h%!(e%+0)=0:h%!(e%+4)=0:h%!(e%+8)=0:h%!(e%+&C)=0:h%!(e%+16)=0:h%!(e%+20)=0:h%!(e%+24)=0:h%!(e%+28)=0:h%!(e%+32)=0:h%!(e%+36)=0:h%!(e%+40)=0:h%!(e%+44)=0
�:�
'�:h%!(e%+0)=b%:h%!(e%+4)=y%:�m%<>0�
h%!(e%+8)=m%
%�:iC%=e%+(&C+(IC%*4)):�h%!iC%<>0�
 "�shell_HeapBlockReturn(h%!iC%)
!;�:eB%=�shell_HeapBlockFetch(�A$+1):$eB%=A$:h%!iC%=eB%:�
*M��shell_EventDeleteAll(b%):�e%,m%,j%,p%,h%,s%:e%=0:m%=0:j%=�:�b%=-1�b%=-2
.>p%=�shell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:�:�(h%!e%=b%)�
2j%=�
3�e%+=48
5�:�(e%>=p%�j%):�j%�
8Ch%!(e%+0)=0:h%!(e%+4)=0:h%!(e%+8)=0:�s%=&C�44�4:�h%!(e%+s%)<>0�
=3�shell_HeapBlockReturn(h%!(e%+s%)):h%!(e%+s%)=0
?	�:�s%
A��:�shell_Tracef0("EventDeleteAll:wh%=&"+�~b%):�shell_DeleteEventDataSave(b%,-1):�shell_DeleteEventBump(b%,-1):�shell_DeleteEventSlider(b%,-1):�
M���shell_DeleteEventBump(b%,f%):�d%,a%,p%,h%,c%:h%=_U%!&68:�:d%=�shell_GetEventListOffset(b%,f%,_U%+&68,16,�):�shell_Tracef0("DeleteEventBump:offset%="+�d%):�d%>=0�
Z�f%=-1�
\b�shell_Tracef0("DeleteEventBump:Deleting Bump Event (all events for window handle &"+�~b%+")")
^p��shell_Tracef0("DeleteEventBump:Deleting Bump Event (window handle was &"+�~b%+" icon handle was "+�f%+")")
b3�:p%=�shell_HeapBlockInfo(_U%!&68)-8:�d%=p%-16�
g
�d%=0�
i�LA%=h%!&C:c%=LA%!&C:�shell_HeapBlockReturn(c%!&C):�shell_HeapBlockReturn(c%!16):�shell_HeapBlockReturn(c%):�shell_HeapBlockReturn(_U%!&68):_U%!&68=0:�shell_Tracef0("DeleteEventBump:No Bump events now registered")
s0�_U%!&68=�shell_HeapBlockExtend(_U%!&68,-16)
v�
w��a%=h%+d%:a%!0=0:a%!4=0:a%!8=0:LA%=a%!&C:�shell_HeapBlockReturn(LA%!&C):�shell_HeapBlockReturn(LA%!16):�shell_HeapBlockReturn(LA%)
�
�
�:�d%<0:�
�j��shell_DeleteEventDataSave(b%,f%):�d%,a%,p%:�:d%=�shell_GetEventListOffset(b%,f%,_U%+72,24,�):�d%>=0�
��f%=-1�
�j�shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (all events for window handle &"+�~b%+")")
�x��shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (window handle was &"+�~b%+" icon handle was "+�f%+")")
�2�:p%=�shell_HeapBlockInfo(_U%!72)-8:�d%=p%-24�
�
�d%=0�
�s�shell_HeapBlockReturn(_U%!72):_U%!72=0:�shell_Tracef0("DeleteEventDataSave:No DataSave events now registered")
�.�_U%!72=�shell_HeapBlockExtend(_U%!72,-24)
��
�X�a%=h%+d%:a%!0=0:a%!4=0:a%!8=0:a%!&C=0:a%!16=0:�shell_HeapBlockReturn(a%!20):a%!20=0
��
�
�:�d%<0:�
�=ݤshell_MessageNoArgs(I$):=�shell_MessageLookup(I$,"","")
�Bݤshell_MessageOneArg(I$,IA$):=�shell_MessageLookup(I$,IA$,"")
�Kݤshell_MessageLookup(I$,IA$,jA$):�n%,L%,g$,bC%,mB%:�I$,8)="SHELLMSG"�
�bC%=_U%!284:mB%=_U%!280
��bC%=_U%!64:mB%=_U%!68
�5�:ș&61502,mB%,I$,bC%,256,IA$,jA$�,,,L%;n%:�n%�1�
��bC%?L%=&D:g$=$(bC%)
�	�:=g$
�Tݤshell_WimpInit(QC%,DA$):�bA%:ș&400C0,QC%,&4B534154,DA$�QC%,bA%:�_U%!&64�1<<6�
�!ș"WimpExt_Initialise",&E,bA%
��:_U%!&94=bA%:=bA%
�Qݤshell_WimpInit_I(QC%,DA$):ș&400C0,QC%,&4B534154,DA$�QC%,bA%:�_U%!&64�1<<6�
�!ș"WimpExt_Initialise",&E,bA%
�#�:_U%!&94=bA%:ș&81682,bA%:=bA%
�T��shell_WimpCloseDown_I(bA%):�shell_LoseFonts:�_U%!&F0<>-1�ș"XFontMenu_Release"
��_U%!&64�1<<6�
�!ș"WimpExt_Initialise",&E,bA%
�V�:ș&600DD,bA%,&4B534154:ș&A1683,bA%:�_U%!&64�1<<2�ș"XImpulse_CloseDown",_U%!&94
��
�L��WimpCloseDown(bA%):�shell_LoseFonts:�_U%!&F0<>-1�ș"XFontMenu_Release"
�_U%!&64�1<<6�
!ș"WimpExt_Initialise",&E,bA%
I�:ș&600DD,bA%,&4B534154:�_U%!&64�1<<2�ș"XImpulse_CloseDown",_U%!&94
	.�("Unset "+_shell_AppName$+"$BasicFile"):�
X��shell_LoseFonts:�s%,c%:c%=_U%!&E8:�s%=0�&FF:ȕc%?s%>0:ș&40082,s%:c%?s%-=1:�:�s%:�
�ݤshell_FindFont(b$,tF%):�QA%,vD%:vD%=_U%!&E8:ș&40081,,b$,tF%*16,c*16,0,0�QA%:vD%?QA%+=1:�vD%?QA%>=&FF��shell_OK(�shell_MessageNoArgs("SHELLMSG18"))
#=QA%
(���shell_Init:�iA%,s%,c%,N$:�qA%,D$,E$:�_U%360,_shell_blk%260:_Q%=�shell_HeapBlockFetch(&BB8):iA%=�shell_HeapBlockFetch(48):iA%!0=0:iA%!4=0:iA%!8=0:iA%!&C=0:iA%!16=0:iA%!20=0:iA%!24=0:iA%!28=0:iA%!32=0:iA%!36=0:iA%!40=0:iA%!44=0:_U%!0=0:_U%!4=0:_U%!8=0
=�_U%!&C=iA%:_U%!16=1:_U%!20=0:_U%!24=0:_U%!28=0:_U%!32=0:_U%!36=0:_U%!40=0:_U%!44=-1:_U%!48=0:_U%!52=0:_U%!56=0:_U%!60=0:_U%!64=0:_U%!68=0:_U%!72=0:_U%!76=�shell_HeapBlockFetch(256):_U%!80=0:_U%!84=-1:_U%!88=0:_U%!92=0:_U%!96=0:_U%!&64=0:_U%!&68=0
h�_U%!&6C=-1:_U%!&70=-1:_U%!&74=-1:_U%!&78=-1:_U%!&7C=-1:_U%!&80=0:_U%!&84=0:_U%!&88=-1:_U%!&8C=-1:_U%!&90=-1:_U%!&94=0:_U%!&98=0:_U%!&9C=0:_U%!&A0=0:_U%!&A4=0:_U%!&A8=0:_U%!&AC=0:_U%!&B0=0:_U%!&B4=0:_U%!&B8=0:_U%!&BC=0:_U%!&C0=0:_U%!&C4=0:_U%!&C8=0
��_U%!&CC=0:_U%!&D0=-1:_U%!&D4=-1:_U%!&D8=0:_U%!&DC=0:_U%!&E0=0:_U%!&E4=0:_U%!&E8=�shell_HeapBlockFetch(256):_U%!&EC=�shell_HeapBlockFetch(256):_U%!&F0=-1:_U%!&F4=0:_U%!&F8=0:_U%!&FC=0:_U%!256=0:_U%!260=1:_U%!264=0:_U%!268=0:_U%!272=0:_U%!276=0
��_U%!280=0:_U%!284=0:_U%!288=-1:_U%!292=-1:_U%!296=-1:_U%!300=0:_U%!304=0:_U%!308=0:_U%!312=0:_U%!316=0:_U%!320=0:_U%!324=0:_U%!328=0:_U%!332=0:_U%!336=0:_U%!340=0:_U%!344=0:�shell_MemFill(_U%!&E8,256,0):�shell_MemFill(_U%!&EC,256,0)
��qA%=�shell_HeapBlockFetch(256):D$=�shell_OSVarGetVal(qA%,256,"Obey$Dir",1):�shell_HeapBlockReturn(qA%):E$=��shell_Leaf(D$),2):_U%!&BC=�shell_HeapBlockFetch((�D$)+1):_U%!&C4=�shell_HeapBlockFetch((�E$)+1):c%=_U%!&BC:$c%=D$:c%=_U%!&C4:$c%=E$
�*N$=�shell_OSReadCommandArg(1):�N$<>""�
�L_U%!&64=_U%!&64�1<<5:c%=�shell_HeapBlockFetch(�N$+1):$(c%)=N$:_U%!324=c%
�U�:c%=�shell_OSModuleCheckVersion("WimpExtension",1.98):�c%=��_U%!&64=_U%!&64�1<<6
�/c%=�RO3_Present:�c%=��_U%!&64=_U%!&64�1<<&A
�_U%!&64=_U%!&64�1<<&C:�
�+ݤshell_GetCmdLineArgs:�N$:�_U%!324<>0�
�N$=$(_U%!324)
�:�:�shell_Tracef0("GetCmdLineArgs:cmdline was "+N$):=N$
�Aݤshell_FileType(d$):�w%:ș8,5,d$�,,w%:w%=(w%�&FFF00)>>>8:=w%
�Aݤshell_FileExists(d$):�shell_CatInfoRead(d$)="Not Found":=�
�=�
�bݤshell_CatInfoRead(d$):�w%,JD%,kC%,DB%,FC%,B$:ș8,5,d$�w%,,JD%,kC%,DB%,FC%:�w%=0�="Not Found"
��FC%=51�B$+="WR "
��FC%=&BB�B$+="LWR"
��FC%=&88�B$+="DL "
�B$+=" "+�shell_StringPadLeading(�~JD%,"0",8):B$+=" "+�shell_StringPadLeading(�~kC%,"0",8):B$+=" "+�shell_StringPadLeading(�~DB%,"0",8):=B$
�)ݤshell_GetAppDir:�c%:c%=_U%!&BC:=$c%
�-ݤshell_GetAppDataDir:�c%:c%=_U%!&C0:=$c%
�*ݤshell_GetAppName:�c%:c%=_U%!&C4:=$c%
���shell_ResourcesInit:�AA$,c%,E$,D$,nC%:�qA%,qB%,OC%:E$=�shell_GetAppName:D$=�shell_GetAppDir:qA%=�shell_HeapBlockFetch(256):�shell_OSVarExists(qA%,E$+"Res$Path")�

_U%!&64=_U%!&64�1<<3
-�:�shell_OSVarExists(qA%,E$+"Data$Dir")�

nAA$=�shell_OSVarGetVal(qA%,256,E$+"Data$Dir",1):_U%!&C0=�shell_HeapBlockFetch((�AA$)+1):c%=_U%!&C0:$c%=AA$
=�_U%!&C0=�shell_HeapBlockFetch((�D$)+1):c%=_U%!&C0:$c%=D$
�:�_U%!&64�1<<3�
*�shell_FileExists(E$+"Res:Messages")�
8�shell_MessagesInit(E$+"Res:Messages",_U%!68,_U%!64)
-�:�shell_FileExists(E$+"Res:ShellMsgs")�
;�shell_MessagesInit(E$+"Res:ShellMsgs",_U%!280,_U%!284)
B��shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284)
[�:ș&20035,-1,4�,,OC%:ș&20035,-1,5�,,qB%:�qB%=1��shell_FileExists(E$+"Res:Sprites22")�
#4_U%!16=�shell_SpriteAreaLoad(E$+"Res:Sprites22")
$*��shell_FileExists(E$+"Res:Sprites")�
'2_U%!16=�shell_SpriteAreaLoad(E$+"Res:Sprites")
(
�_U%!16=1
*�
+G�:nC%=�shell_3DEnabled:�nC%��shell_FileExists(E$+"Res:Templates3")�
/-�shell_TemplatesInit(E$+"Res:Templates3")
0,��shell_FileExists(E$+"Res:Templates")�
2,�shell_TemplatesInit(E$+"Res:Templates")
3�
4�
5(��shell_FileExists(D$+".Messages")�
85�shell_MessagesInit(D$+".Messages",_U%!68,_U%!64)
9*�:�shell_FileExists(D$+".ShellMsgs")�
;8�shell_MessagesInit(D$+".ShellMsgs",_U%!280,_U%!284)
<B��shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284)
>X�:ș&20035,-1,4�,,OC%:ș&20035,-1,5�,,qB%:�qB%=1��shell_FileExists(D$+".Sprites22")�
E1_U%!16=�shell_SpriteAreaLoad(D$+".Sprites22")
F'��shell_FileExists(D$+".Sprites")�
H/_U%!16=�shell_SpriteAreaLoad(D$+".Sprites")
I
�_U%!16=1
K�
LD�:nC%=�shell_3DEnabled:�nC%��shell_FileExists(D$+".Templates3")�
P*�shell_TemplatesInit(D$+".Templates3")
Q)��shell_FileExists(D$+".Templates")�
S)�shell_TemplatesInit(D$+".Templates")
T�
U�
Vh�:ș&45BC0:�shell_HeapBlockReturn(_Q%):_Q%=�shell_HeapBlockFetch(&400):�shell_HeapBlockReturn(qA%):�
`�ݤshell_SpriteAreaLoad(C$):�OB%,S%,T%:S%=�(C$):T%=�#S%+16:�#S%:OB%=�shell_HeapBlockFetch(T%):!OB%=T%:OB%!4=0:OB%!8=16:OB%!&C=16:ș46,521,OB%:ș46,522,OB%,C$:�shell_Tracef0("SpriteLoad:Sprite file loaded at &"+�~OB%):=OB%
p#ݤshell_UserSpritesBase:=_U%!16
v�ݤshell_SpriteGetPtr(CC%,R$):�TB%,e%:TB%=�shell_HeapBlockFetch(21):$TB%=R$:ș46,280,CC%,TB%�,,e%:�shell_HeapBlockReturn(TB%):=e%
����shell_TemplatesInit(C$):�WC%,WD%,RE%,X%,e%,eA%:�eE%,FA%,HD%,R$,SA%,aB%,_%:�jA%,DD%,LE%,NC%,pA$,AA%:HD%=�shell_HeapBlockFetch(20):FA%=0:SA%=0:eE%=�shell_FileLength(C$):VE%=�shell_HeapBlockFetch(eE%):WC%=VE%:�shell_TemplateFileInfo(C$,eA%,SA%,_%)
�
�_%=0�
�|_U%!4=�shell_HeapBlockFetch(20*SA%):fE%=�shell_HeapBlockFetch(eA%):WD%=fE%:RE%=fE%+eA%:SA%=0:ș&600D9,,C$�;aB%:�(aB%�1)�
�9�99,�shell_MessageTwoArgs("SHELLMSG34","template",C$)
�M�:$HD%="*":ș&400DB,,WC%,WD%,RE%,_U%!&E8,HD%,FA%�,,WD%,,,R$,FA%:�FA%<>0�
��!((_U%!4)+(16*SA%))=WC%:$(((_U%!4)+(16*SA%))+4)=R$:�shell_Tracef0("TemplatesInit:  Template Loaded: "+R$):WC%+=(88+(WC%!84)*32):SA%+=1
���:�FA%=0:ș&400DA:_U%!0=SA%:�shell_Tracef0("TemplatesInit:Templates resource file loaded at       &"+�~VE%+" ("+�SA%+" templates)"):�shell_Tracef0("TemplatesInit:Indirected buffer size used for loading &"+�~eA%)
��
�
�Ȏ_%�
�=�-1:�99,�shell_MessageTwoArgs("SHELLMSG35","template",C$)
�=�-2:�99,�shell_MessageTwoArgs("SHELLMSG36",C$,"template")
��
�#�:�shell_HeapBlockReturn(HD%):�
�Wݤshell_WindowLoaded(M$):�s%,j%:�(M$)>&C��99,�shell_MessageOneArg("SHELLMSG02",M$)
�4j%=�:�s%=0�(_U%!0)-1:�$(((_U%!4)+(16*s%))+4)=M$�
�j%=�:s%=(_U%!0)-1
�
�:�s%:=j%
�Pݤshell_GetWB(M$):�s%,j%:�(M$)>&C��99,�shell_MessageOneArg("SHELLMSG02",M$)
�5j%=-1:�s%=0�(_U%!0)-1:�$(((_U%!4)+(16*s%))+4)=M$�
�j%=s%:s%=(_U%!0)-1
��:�s%:�j%>-1�
�=!((_U%!4)+(16*j%))
�.̅99,�shell_MessageOneArg("SHELLMSG03",M$)
��:=�
�{ݤshell_MessageExpand(a$):�L$,g$,xA%:L$="":ȕ�a$,"\")>0:xA%=�a$,"\"):L$+=�a$,xA%-1):g$=�a$,xA%+1,1):a$=�a$,xA%+2):Ȏg$�
��"A":L$+="Click ADJUST to"
��"a":L$+="ADJUST"
�"�"D":L$+="Drag with SELECT to"
�"�"d":L$+="Drag with ADJUST to"
�0�"G":L$+="This option is greyed out because"
�%�"R":L$+="Move the pointer right"
��"S":L$+="Click SELECT to"
��"s":L$+="SELECT"
��"T":L$+="This is the"
��"W":L$+="This window is"
��"w":L$+="window"
�L$+="\"+g$
��:�:=L$+a$
�Y��shell_OpenMenu(IA%,MA%,rA%):�A$:A$=�shell_GetEventHandler(_U%!28,_U%!32,1):�A$<>""�
q�shell_Tracef0("OpenMenu:About to call "+"FN"+A$+"("+�_U%!28+","+�_U%!32+")"):o%=�("FN"+A$+"(_U%!28,_U%!32)")
@��shell_Tracef0("OpenMenu:no menumaker function registered")
�:�rA%<>_U%!24�
	%�shell_HeapBlockExists(_U%!256)�

-�shell_HeapBlockReturn(_U%!256):_U%!256=0
'�:�shell_HeapBlockExists(_U%!&F4)�
-�shell_HeapBlockReturn(_U%!&F4):_U%!&F4=0
�
�:�rA%=_U%!&FC�
&ș&400D4,,rA%,IA%-64,MA%:_U%!264=1
3�_Q%!0=IA%:_Q%!4=MA%:ș&45BC5,rA%,_Q%:_U%!264=0
D�:_U%!24=rA%:_U%!36=IA%:_U%!40=MA%:_U%!52=_U%!28:_U%!56=_U%!32:�
# ݤshell_MenuLastXPos:=_U%!36
) ݤshell_MenuLastYPos:=_U%!40
/���shell_MenuAttachDbox(e$):ș"Menu_SetSubHandle",_U%!8,�shell_MenuString(e$),1:�shell_Tracef0("MenuAttachDbox:Dialog box ("+e$+") attached"):�
9�ݤshell_MessageWindow(H$,SF%,iA$,n$):�fD%,wA%:wA%=�shell_HeapBlockFetch(260):!wA%=0:$(wA%+4)=H$+�(0):�n$=""�n$="Message from "+iA$
>	�SF%�
?ș&400DF,wA%,19,n$�,fD%
@�ș&400DF,wA%,17,n$�,fD%
B&�:�shell_HeapBlockReturn(wA%):=fD%
I[��shell_CreateWindow(z$,�i%):�tB%:tB%=�shell_GetWB(z$):tB%!64=_U%!16:ș&400C1,,tB%�i%:�
S�ݤshell_CreateWindow2(N,n%,iF%,hF%,QF%,kA%,LD%,lA%,LB%,SB%):�Q%:Q%=�shell_HeapBlockFetch(&BB8):Q%!0=LD%:Q%!4=lA%:Q%!8=LB%:Q%!&C=SB%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=n%:Q%?32=7:Q%?33=2:Q%?34=iF%:Q%?35=hF%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=kA%
[�Q%!48=QF%:Q%!52=0:Q%!56=317:Q%!60=&3000:Q%!68=1:Q%!72=N:Q%!76=-1:Q%!80=�$N:Q%!84=0:ș&400C1,,Q%�i%:�shell_HeapBlockReturn(Q%):=i%
dDݤshell_WindowHasTitleBar(b%):=(�shell_WindowGetFlags(b%)�1<<26)
kBݤshell_WindowIsMoveable(b%):=(�shell_WindowGetFlags(b%)�1<<1)
q?ݤshell_WindowIsAPane(b%):=(�shell_WindowGetFlags(b%)�1<<5)
wDݤshell_WindowIsNotBounded(b%):=(�shell_WindowGetFlags(b%)�1<<6)
}Eݤshell_WindowTrapsHotKeys(b%):=(�shell_WindowGetFlags(b%)�1<<&C)
�?ݤshell_WindowIsOpen(b%):=(�shell_WindowGetFlags(b%)�1<<16)
�@ݤshell_WindowIsOnTop(b%):=(�shell_WindowGetFlags(b%)�1<<17)
�Gݤshell_WindowHasBeenToggled(b%):=(�shell_WindowGetFlags(b%)�1<<18)
�Fݤshell_WindowHasInputFocus(b%):=(�shell_WindowGetFlags(b%)�1<<20)
�Dݤshell_WindowHasBackIcon(b%):=(�shell_WindowGetFlags(b%)�1<<24)
�Eݤshell_WindowHasCloseIcon(b%):=(�shell_WindowGetFlags(b%)�1<<25)
�Fݤshell_WindowHasToggleIcon(b%):=(�shell_WindowGetFlags(b%)�1<<27)
�Fݤshell_WindowHasVScrollBar(b%):=(�shell_WindowGetFlags(b%)�1<<28)
�Jݤshell_WindowHasAdjustSizeIcon(b%):=(�shell_WindowGetFlags(b%)�1<<29)
�Fݤshell_WindowHasHScrollBar(b%):=(�shell_WindowGetFlags(b%)�1<<30)
�ݤshell_WindowGetFlags(b%):�n%,a%:a%=�shell_HeapBlockFetch(36):a%!0=b%:ș&400CB,,a%:n%=a%!32:�shell_HeapBlockReturn(a%):=n%
˦ݤshell_WindowGetTitleFlags(b%):�n%,a%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:n%=a%!60:�shell_HeapBlockReturn(a%):=n%
׈ݤshell_IconGetFlags(b%,f%):�n%,a%:a%=�shell_HeapBlockFetch(50):a%!0=b%:a%!4=f%:ș&400CE,,a%:n%=a%!24:�shell_HeapBlockReturn(a%):=n%
�ݤshell_WindowTitleFlags(b%):�n%,a%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:n%=a%!60:�shell_HeapBlockReturn(a%):=n%
�Hݤshell_WindowTitleHasBorder(b%):=(�shell_WindowTitleFlags(b%)�1<<2)
�Gݤshell_WindowTitleIsSprite(b%):=(�shell_WindowTitleFlags(b%)�1<<1)
�Eݤshell_WindowTitleIsText(b%):=(�shell_WindowTitleFlags(b%)�1<<0)
Iݤshell_WindowTitleIsHCentred(b%):=(�shell_WindowTitleFlags(b%)�1<<3)
	Iݤshell_WindowTitleIsVCentred(b%):=(�shell_WindowTitleFlags(b%)�1<<4)
Gݤshell_WindowTitleIsFilled(b%):=(�shell_WindowTitleFlags(b%)�1<<5)
Iݤshell_WindowTitleIsAAliased(b%):=(�shell_WindowTitleFlags(b%)�1<<6)
Kݤshell_WindowTitleIsIndirected(b%):=(�shell_WindowTitleFlags(b%)�1<<8)
!�ݤshell_WindowGetTitle(b%):�S$,a%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:�(a%!32�1<<26)�
(�((a%!60)�256)=0�
*S$=$(a%+76)
+�S$=$(!(a%+76))
.�
/$�:�shell_HeapBlockReturn(a%):=S$
6�ݤshell_WindowTitleBufferLength(b%):�_%,a%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:�((a%!60)�256)=0�
<	_%=&C
=
�_%=a%!84
?$�:�shell_HeapBlockReturn(a%):=_%
F���shell_WindowMoveToIcon(b%,YD%,f%,gA%,fA%):�r%,t%:r%=�shell_HeapBlockFetch(50):t%=�shell_HeapBlockFetch(36):t%!20=0:�shell_OSCheckVersion(3)�
L�YD%=-1�!t%=-2�!t%=YD%
Mș&400CB,,t%
N��:r%!0=YD%:r%!4=f%:ș&400CE,,r%:�shell_WindowMoveTo(b%,r%!8+gA%-t%!20,r%!20+fA%):�shell_HeapBlockReturn(r%):�shell_HeapBlockReturn(t%):�
Z���shell_WindowMoveTo(b%,IA%,MA%):�SE%,UE%,d%,a%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:SE%=a%!&C-a%!4:UE%=a%!16-a%!8:a%!4=IA%:a%!8=MA%:a%!&C=IA%+SE%:a%!16=MA%+UE%:ș&400C5,,a%:ș&400C6,,a%
k.d%=�shell_SearchStatic(_U%!&B8,b%):�d%>-1�
m�shell_OpenWindowStatic(b%)
n&��shell_OpenWindowDynamic2(b%,0,0)
p"�:�shell_HeapBlockReturn(a%):�
w���shell_WindowBringToTop(b%):�oB%:oB%=�shell_HeapBlockFetch(256):oB%!0=b%:ș&400CB,,oB%:oB%!28=-1:ș&400E7,2,oB%,b%:ș&400C7,0,oB%:�shell_HeapBlockReturn(oB%):�
����shell_UpdateWindow(i%,LD%,lA%,LB%,SB%):�a%:a%=�shell_HeapBlockFetch(a%):a%!0=i%:a%!4=LD%:a%!8=lA%:a%!&C=LB%:a%!16=SB%:ș&400C9,,a%�pC%:ș&400CB,,a%:�shell_HeapBlockReturn(a%):�
����shell_OpenWindowDynamic2(b%,gA%,fA%):�o%,zA%:zA%=�shell_HeapBlockFetch(20):_U%!20=b%:ș&400CF,,zA%:ș&400D4,,b%,zA%!0+gA%,zA%!4+fA%:�shell_HeapBlockReturn(zA%):�
�%ݤshell_ClaimKeypress:�_U%!20<>0�
�8ș&400D4,,-1:o%=�shell_DeleteWindow(_U%!20):_U%!20=0
��:=�
����shell_OpenWindow(b%,xD%,_D%):�d%,a%,u%,g%,yE%,uC%,UA%,sA%:�vB%,yB%,SB%,KE%,JE%,KC%,LC%:d%=�shell_GetEventListOffset(b%,-1,_U%+304,&C,�):�d%>=0�
�ga%=_U%!304+d%:c%=a%!8:�shell_Tracef0("OpenWindow:About to call "+"FN"+$c%):KC%=�("FN"+$c%):�KC%=0��
�d�:yB%=�:SB%=�shell_HeapBlockFetch(40):SB%!0=b%:ș&400CB,,SB%:�(SB%!32�&80000)=&80000�yB%=��yB%=�
�h�shell_HeapBlockReturn(SB%):LC%=�shell_HeapBlockFetch(20):ș&400CF,,LC%:_Q%!0=b%:�xD%�ș&400CB,,_Q%
�	�yB%�
�ș&400C5,,_Q%
�=�:d%=�shell_GetEventListOffset(b%,-1,_U%+92,24,�):�d%>-1�
�Ya%=(_U%!92)+d%:xB%=a%!8:wD%=a%!&C:dB%=a%!16:zB%=a%!20:_Q%!0=b%:�_D%�uC%=-1�uC%=_Q%!28
�
�xD%�
�-ș&400C5,,_Q%:ș&400CB,,_Q%:ș&400C6,,_Q%
�P�:u%=�shell_HeapBlockFetch(40):g%=0:ȕxB%!g%<>-1:u%!0=xB%!g%:�yE%=0�yE%=u%!0
�7KE%=u%!0:ș&400CB,,u%:�LC%!16=-9�yB%�LC%!16>-5�_D%�
�vB%=wD%!g%:ȎvB%�
�j�0,1:UA%=u%!16-u%!8:sA%=u%!&C-u%!4:u%!4=_Q%!4+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16+zB%!g%:u%!8=u%!16-UA%
�h�2:UA%=u%!16-u%!8:sA%=_Q%!&C-_Q%!4:u%!4=_Q%!4+dB%!g%:u%!&C=_Q%!&C:u%!16=_Q%!16+zB%!g%:u%!8=u%!16-UA%
�f�3:UA%=_Q%!16-_Q%!8:sA%=u%!&C-u%!4:u%!4=_Q%!4+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16:u%!8=_Q%!8+zB%!g%
�k�4:UA%=u%!16-u%!8:sA%=_Q%!&C-_Q%!4:u%!4=_Q%!4+dB%!g%:u%!&C=_Q%!&C:u%!16=_Q%!8+UA%+zB%!g%:u%!8=u%!16+UA%
d�5:UA%=_Q%!16-_Q%!8:sA%=u%!&C-u%!4:u%!4=_Q%!&C-sA%+dB%!g%:u%!&C=u%!4+sA%:u%!16=_Q%!16:u%!8=_Q%!8
	�:�g%=0�

u%!28=uC%
�u%!28=JE%
�:ș&400C5,,u%
�:JE%=u%!0:g%+=4:�:�yB%�
_Q%!28=KE%:ș&400C5,,_Q%
 �:�shell_HeapBlockReturn(u%)
!�_Q%!0=b%:�xD%�ș&400CB,,_Q%
�uC%=-2�_Q%!28=-2
�_D%=-1�_Q%!28=-1
ș&400C5,,_Q%
 #�:�shell_HeapBlockReturn(LC%):�
'r��shell_CloseWindow(b%):�d%,a%,xB%,wD%,dB%,zB%,q%,KC%:d%=�shell_GetEventListOffset(b%,-1,_U%+308,&C,�):�d%>=0�
+ha%=_U%!308+d%:c%=a%!8:�shell_Tracef0("CloseWindow:About to call "+"FN"+$c%):KC%=�("FN"+$c%):�KC%=0��
2)�:q%=�shell_HeapBlockFetch(60):�b%>0�
5;d%=�shell_GetEventListOffset(b%,-1,_U%+92,24,�):�d%>-1�
7la%=(_U%!92)+d%:wD%=a%!&C:dB%=a%!16:zB%=a%!20:g%=0:xB%=a%!8:ȕxB%!g%<>-1:q%!0=xB%!g%:ș&400C6,,q%:g%+=4:�
D�:q%!0=b%:ș&400C6,,q%
G"�:�shell_HeapBlockReturn(q%):�
NEݤshell_DeleteWindow(i%):�q%:q%=�shell_HeapBlockFetch(20):�i%<>0�
R�oktodeletew(i%)�
S1�shell_EventDeleteAll(i%):�i%=_U%!20�_U%!20=0
U.d%=�shell_SearchStatic(_U%!&B8,i%):�d%>-1�
Wc%=_U%!&B8+d%:c%!0=0
Y�:q%!0=i%:ș&400C3,,q%:i%=0
^�
_$�:�shell_HeapBlockReturn(q%):=i%
eݤoktodeletew(i%):=-1
jݤoktoclosew(i%):=-1
oz��cliprect(A,�VA%,�cA%,�qF%,�fF%):�KA%,PA%:�lwaorigin(A,KA%,PA%):VA%=A!24-KA%:cA%=A!28-PA%:qF%=A!32-KA%:fF%=A!36-PA%:�
x5ݤpoll(fC%,FF%):�_U%!&64�1<<6�ș"WimpExt_PrePoll"
zIș&400C7,fC%,_Q%�HA%:�_U%!&64�1<<6�ș"WimpExt_Action",_U%!&94,_Q%,HA%
|=HA%
�=ݤshell_Poll_I(fC%,FF%):�_U%!&64�1<<6�ș"WimpExt_PrePoll"
�Iș&400C7,fC%,_Q%�HA%:�_U%!&64�1<<6�ș"WimpExt_Action",_U%!&94,_Q%,HA%
�ș&81686,HA%,,FF%:=HA%
���shell_DoBackgroundTask:�
�aݤshell_IconIsDraggable(b%,f%):�n%:n%=�shell_IconGetFlags(b%,f%):c%=(n%�&6000):�c%=&6000=��=�
�bݤshell_IconIsSprite(b%,f%):�n%,c%:n%=�shell_IconGetFlags(b%,f%):c%=(n%�1<<1):�c%=(1<<1)�=��=�
����shell_IconDragBox(b%,f%):�a%,H,J,mA%,n%,QA%,mE%,vE%,wB%,JA$:�iB%,R$:mA%=�shell_GetEventListOffset(b%,f%,_U%+72,24,�):�mA%>=0�
�na%=_U%!72+mA%:iB%=a%!16:R$=�shell_IconGetData(b%,iB%):�R$=""��shell_OK(�shell_MessageNoArgs("SHELLMSG28"))
��a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):!a%=b%:ș&400CC,,a%:H=a%!4-a%!20:J=a%!16-a%!24:vE%=a%!68:a%!4=f%:ș&400CE,,a%:!a%=b%:a%!4=5:n%=a%!24:wB%=a%!32:a%!8=a%!8+H:a%!&C=a%!&C+J:a%!16=a%!16+H:a%!20=a%!20+J:a%!24=0:a%!28=0
�Ja%!32=&7FFFFFFF:a%!36=&7FFFFFFF:ș6,&A1,28�,,QA%:mE%=((QA%�2)=2):�mE%�
�QA%=n%:�(QA%�256)�
�&JA$=�shell_IconGetCommand(wB%,"s")
�>�:�(QA%�2)=0��shell_OK(�shell_MessageNoArgs("SHELLMSG19"))
�
�JA$<>""�
�/ș&42400,&85,vE%,JA$,a%+8:_U%!&64=_U%!&64�1
��ș&400D0,,a%
��
��ș&400D0,,a%
� �:�shell_HeapBlockReturn(a%)
����shell_Tracef0("IconDragBox:WARNING! no user drag handler registered for this icon!"):�shell_Tracef0("IconDragBox:now checking for a slider drag event.."):mA%=�shell_GetEventListOffset2(b%,f%,_U%+332,32,�)
�^�shell_Tracef0("IconDragBox:event offset is "+�mA%):�mA%>=0��shell_HandleSlider(b%,f%,mA%)
��:�
�9��shell_HandleAttachedMenu(_Q%,b%,f%):�m%:�:��:��:�
��f%<>-1�b%>-1�
�/m%=�shell_GetEventMenu(_Q%!8,b%,f%):�m%<>0�
�)�shell_HandleMenuOpen(_Q%,m%,b%,f%,�)
��
��:�
�t��shell_Action(kF%):�A$,m%,e$,oA$,NB%,tA%,HB%,ND%:�b%,f%,o%,_temp28%,_temp32%,_temp24%,_temp%,RD%:�YC%,d%:ȎkF%�
�0�0:�shell_DoBackgroundTask:�(_U%!&64�1<<&B)�
��shell_Slider
��
�!�1:�shell_RedrawWindow(_Q%!0)
�#�2:�shell_OpenWindow(_Q%!0,�,0)
� �3:�shell_CloseWindow(_Q%!0)
�'�4:�shell_PointerLeavingWindow(_Q%)
(�5:�shell_PointerEnteringWindow(_Q%)
��6:_U%!28=_Q%!&C:_U%!32=_Q%!16:tA%=_Q%!0:HB%=_Q%!4:_U%!272=_Q%!0:_U%!276=_Q%!4:_U%!320=_Q%!8:_temp28%=_Q%!&C:_temp32%=_Q%!16:f%=_Q%!16:�shell_Tracef0("Action:Mouse_Click event detected")
u�shell_Tracef0("Action:Window Handle was &"+�~_Q%!&C+" Icon Handle was "+�_Q%!16):�_Q%!&C=_U%!288�_Q%!16=_U%!292�
7�shell_HandleBumpIcons(_U%!296,_Q%!&C,_Q%!16,_Q%!8)
1�_U%!288=-1:_U%!292=-1:_U%!296=-1:�_Q%!16>=0�
�d%=�shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+&68,16,0):�shell_Tracef0("DEBUG::bump event offset is "+�d%):�d%>=0��shell_HandleBumpIcons(d%,_Q%!&C,_Q%!16,_Q%!8)
�
�:�(_Q%!8=64)�
1_%=�shell_IconIsDraggable(_Q%!&C,_Q%!16):�_%�
<W$="Icon is draggable":�shell_IconDragBox(_Q%!&C,_Q%!16)
�W$="Icon is not draggable"
"�:�shell_Tracef0("Action:"+W$)
 �:Ȏ_Q%!8�
" �4:�shell_ActionSelectButton
#�2:�shell_ActionMenuButton
$ �1:�shell_ActionAdjustButton
%�
&�7:�_U%!&64�1�
'ș&42401:_U%!&64=_U%!&64�1
)#�:_U%!&80=0:�(_U%!&64�1<<&B)=0�
/7A$=�shell_GetEventHandler(_U%!28,_U%!32,6):�A$<>""�
1f�shell_Tracef0("Action:Drag event detected - function is "+A$):o%=�("FN"+A$+"(_temp28%,_temp32%)")
3j��shell_Tracef0("Action:Drag event detected - no handler function"):�shell_SendDataSave(_U%!28,_U%!32)
7�
8�_U%!&64=_U%!&64�1<<&B
;�
<>�8:�shell_Tracef0("Action:keypress is="+�_Q%!24):Ȏ_Q%!24�
?R�&D,394,398,399,410,430,431:ND%=�shell_WritableIconHandler(_Q%!0,_Q%!4,_Q%!24)
A%ND%=�shell_HotKeyProcess(_Q%!24)
C�:�ND%�
EP�shell_Tracef0("Action:Keypress not claimed, passing it on"):ș&400DC,_Q%!24
GB��shell_Tracef0("Action:Keypress claimed by this application")
I�
J#�9:�shell_ActionMenuSelect(_Q%)
K�17,18:�shell_Receive(_Q%)
L*�19:�shell_UserMessageAcknowledge(_Q%)
M�:�
Sk��shell_ActionSelectButton:�d%:�shell_Tracef0("ActionSelectButton:Mouse Button was SELECT"):�_U%!32>=0�
Z=d%=�shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24,�)
[�:�d%>0�
_�!(_U%!340+d%+16)=1�
`Y�shell_MenuTickOnly1(!(_U%!340+d%+20),�shell_IconGetBGColour(_Q%!&C,!(_U%!340+d%+8)))
aA�:�shell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16,�)
cl��shell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):�_U%!32=0��shell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32)
f7A$=�shell_GetEventHandler(_U%!28,_U%!32,2):�A$<>""�
h��shell_IconSlab(4,_U%!28,_U%!32):�shell_Tracef0("ActionSelectButton:About to call "+"FN"+A$+"("+�_temp28%+","+�_temp32%+")"):o%=�("FN"+A$+"(_temp28%,_temp32%)")
m�:�_U%!32=0�
p�_U%!28=_U%!20�
qș&400D4,,-1
r�
s�
t�:�
yu��shell_ActionMenuButton:�c%,m%,aC%,d%:aC%=�:�shell_Tracef0("ActionMenuButton:Mouse Button was MENU"):�_Q%!16>=0�
�=d%=�shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24,�)
��:�d%>0�
�?�shell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16,�)
�2�c%=�:�(-1)�c%=�shiftmenuclick(_Q%!&C,_Q%!16)
��c%�
���shell_Tracef0("ActionMenuButton:Checking menu events.."):�shell_Tracef0("ActionMenuButton:button="+�_Q%!8+" _Q%!12="+�_Q%!&C+" _Q%!16="+�_Q%!16):�_Q%!16>=0�m%=�shell_GetEventMenu(_Q%!8,_Q%!&C,_Q%!16)
�%�(m%<>0�_Q%!&C>0�_Q%!16>=0)�aC%=�
�
�m%=0�
�+m%=�shell_GetEventMenu(_Q%!8,_Q%!&C,-1)
�u�:�shell_Tracef0("ActionMenuButton:Menu handle is:&"+�~m%):�m%<>0��shell_HandleMenuOpen(_Q%,m%,_Q%!&C,_Q%!16,aC%)
��
��:�
�;��shell_HandleMenuOpen(_Q%,m%,b%,f%,aC%):�r%,t%:�aC%=��
�#�shell_OpenMenu(_Q%!0,_Q%!4,m%)
���r%=�shell_HeapBlockFetch(50):t%=�shell_HeapBlockFetch(36):r%!0=b%:r%!4=f%:ș&400CE,,r%:t%!0=b%:ș&400CB,,t%:�shell_OpenMenu(t%!4+r%!16+64,_Q%!4,m%):ȗ�t%!4+r%!16+64,_Q%!4:�shell_HeapBlockReturn(r%):�shell_HeapBlockReturn(t%)
��:�
����shell_ActionMenuSelect(_Q%):�AE%,NB%,YC%,RD%,o%,FD%,d%:d%=�shell_GetEventListOffset2(_U%!28,_U%!32,_U%+340,24,�):�d%>=0��shell_DoPopupSelect(_Q%,d%)
æFD%=�shell_HeapBlockFetch(256):�shell_Tracef0("ActionMenuSelect:Menu_Select event detected"):ș&400CF,,_shell_blk%:NB%=�shell_HeapBlockFetch(256):�_U%!24=_U%!&FC�
�YC%=0:_U%!264=1
�?�YC%=�shell_CheckSelection(_Q%):�YC%>-1�_U%!264=1�_U%!264=0
��:�_U%!264>0�
�7ș"FontMenu_DecodeFontMenu",_Q%+YC%,NB%�RD%:�RD%=1�
֩�shell_Tracef0("ActionMenuSelect:FontMenu selection ("+�shell_GetString(NB%)+")"):�shell_FontMenuSelectFont(�shell_GetString(NB%),_U%!260):�_shell_FontMenuSelFN$=""�
ڤș&400D5,,_U%!24,_Q%,NB%:A$=�shell_GetEventHandler(_U%!52,_U%!56,0):_temp%=NB%:$_temp%=�shell_StringStripTrailing($_temp%," "):�A$<>""�o%=�("FN"+A$+"($_temp%)")
� ��_shell_FontMenuSelFN$<>""�
�Lo%=�("FN"+_shell_FontMenuSelFN$+"(FNshell_FontMenuGetLastSelectedFont)")
��
��
��
�-�:�shell_HeapBlockReturn(NB%):�_U%!264=0�
�Eș&45BC4,_U%!24,_Q%�AE%,,FD%:�AE%��shell_MenuCallHandler(AE%,FD%)
��:�_shell_blk%!8=1�
�%�shell_HeapBlockExists(_U%!&E0)�
� _temp%=_U%!&E0:�$_temp%<>""�
�(o%=�("FN"+$_temp%+"(_U%!52,_U%!56)")
��
�+�:�shell_OpenMenu(_U%!36,_U%!40,_U%!24)
��_shell_FontMenuSelFN$=""
�#�:�shell_HeapBlockReturn(FD%):�
����shell_ActionAdjustButton:�n%,A$,o%,eC%,g%:eC%=�shell_HeapBlockFetch(&C+(�shell_WindowCountIcons(_U%!28)*32)):�shell_Tracef0("Action:Mouse Button was ADJUST"):�_U%!28>0�
		dș&400D6,_U%!28,eC%,&F000,&B000:g%=0:ȕeC%!g%<>-1:�eC%!g%=_U%!32��shell_IconSet(_U%!28,_U%!32,1)
	
g%+=4:�
	@�:�_U%!32=0��shell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32)
	7A$=�shell_GetEventHandler(_U%!28,_U%!32,3):�A$<>""�
	H�shell_IconSlab(1,_U%!28,_U%!32):o%=�("FN"+A$+"(_temp28%,_temp32%)")
	#�:�shell_HeapBlockReturn(eC%):�
	ݤshiftmenuclick(b%,f%):=�
	"���shell_IconSlab(YB%,b%,f%):�a%:a%=�shell_HeapBlockFetch(50):a%!8=YB%:a%!&C=b%:a%!16=f%:ș&81680,,a%:a%!8=0:ș&81680,,a%:�shell_HeapBlockReturn(a%):�
	/s��shell_PointerLeavingWindow(_Q%):�r%,o%:r%=�shell_HeapBlockFetch(&C):ș&400D6,!_Q%,r%,&3F0000,&F<<16:�!r%<>-1�
	5+o%=�("FN"+�shell_IconGetData(!_Q%,!r%))
	6"�:�shell_HeapBlockReturn(r%):�
	=~��shell_PointerEnteringWindow(_Q%):�r%,o%,b%:b%=_Q%!0:r%=�shell_HeapBlockFetch(&C):ș&400D6,b%,r%,&3F0000,&E<<16:�!r%<>-1�
	E)o%=�("FN"+�shell_IconGetData(b%,!r%))
	F"�:�shell_HeapBlockReturn(r%):�
	Mw��shell_RedrawWindow(i%):�pC%,A$,KA%,PA%,a%,r%:r%=�shell_HeapBlockFetch(&C):ș&400D6,i%,r%,&3F0000,&D<<16:�!r%<>-1�
	T!A$=�shell_IconGetData(i%,!r%)
	UF�:�shell_HeapBlockReturn(r%):a%=�shell_HeapBlockFetch(&64):�A$=""�
	[&A$=�shell_GetEventHandler(i%,-1,4)
	\��:a%!0=i%:ș&400C8,,a%�pC%:KA%=a%!4-a%!20:PA%=a%!16-a%!24:ȕpC%:ș&81681,,a%:�A$<>""�o%=�("FN"+A$+"("+�a%+","+�KA%+","+�PA%+")")
	c3ș&400CA,,a%�pC%:�:�shell_HeapBlockReturn(a%):�
	k)��shell_Receive(_Q%):�c%,o%:Ȏ_Q%!16�
	n�0:�shell_Exit:�
	o�1:�shell_DataSave(_Q%)
	p�2:�shell_DataSaveAck(_Q%)
	q�3:�shell_DataLoad(_Q%,�)
	r�4:�shell_DataLoadAck(_Q%)
	s�5:�shell_DataLoad(_Q%,�)
	t�6:�shell_RAMFetch(_Q%)
	u�7:�shell_RAMTransmit(_Q%)
	v"�8:�shell_Message_PreQuit(_Q%)
	w�9:�_U%!&A4>0�
	yV�shell_Tracef0("Receive:PaletteChange message received"):c%=_U%!&A4:o%=�("FN"+$c%)
	}�
	~'�&A:�shell_Message_SaveDesktop(_Q%)
	$�&E:�shell_Message_Shutdown(_Q%)
	�%�&502:�shell_InteractiveHelp(_Q%)
	�#�&400C0:�shell_MenuWarning(_Q%)
	�*�&400C1:�shell_Message_ModeChange(_Q%)
	��&400C2:�_U%!&A8>0�
	���shell_Tracef0("Receive:TaskInitialise message received"):c%=_U%!&A8:o%=�("FN"+$c%+"("+�(_Q%!4)+","+�34+�shell_GetString(_Q%+28)+�34+")")
	�8�:�_U%!&D0=-1��shell_GetString(_Q%+28)="StrongHelp"�
	�_U%!&D0=_Q%!4:�shell_StrongHlpMsg("Help_Install -DieWithTask "+�shell_GetAppDir+"."+�shell_GetAppName):c%=_U%!&D8:�$c%<>""�
	�B�shell_HelpWord($c%):�shell_HeapBlockReturn(_U%!&D8):_U%!&D8=0
	��
	��
	��&400C3:�_U%!&AC>0�
	�V�shell_Tracef0("Receive:TaskCloseDown message received"):c%=_U%!&AC:o%=�("FN"+$c%)
	��:�_Q%!4=_U%!&D0�_U%!&D0=-1
	�i�&400C7:�shell_Tracef0("Receive:TaskNameIs message received"):�shell_GetString(_Q%+28)="StrongHelp"�
	�_U%!&D0=_Q%!20
	���shell_ScanForHelp
	��
	�'�&80140:�shell_HandlePrintFile(_Q%)
	�(�&80143:�shell_HandlePrintError(_Q%)
	�*�&80145:�shell_HandlePrintTypeOdd(_Q%)
	�(�&80147:�shell_HandleSetPrinter(_Q%)
	�&�shell_HandleUnknownMessage2(_Q%)
	��:�
	�I��shell_Message_ModeChange(_Q%):�d%,g%,fB%,t%:fB%=_U%!&B8:�_U%!&A0>0�
	�^�shell_Tracef0("Message_ModeChange:ModeChange message received"):c%=_U%!&A0:o%=�("FN"+$c%)
	�,�:t%=�shell_HeapBlockFetch(&64):�fB%<>0�
	Ν�shell_Tracef0("Message_ModeChange:Checking static window list for pane events"):ȕfB%!g%<>-1:d%=�shell_GetEventListOffset(fB%!g%,-1,_U%+92,24,�):�d%>-1�
	�a�shell_Tracef0("Message_ModeChange:Static window handle found"):�shell_WindowIsOpen(fB%!g%)�
	�p�shell_Tracef0("Message_ModeChange:Window is open.."):!t%=fB%!g%:ș&400C6,,t%:�shell_OpenWindow(fB%!g%,0,-1)
	��
	�
�:g%+=4:�
	�"�:�shell_HeapBlockReturn(t%):�
	�-��shell_Message_Shutdown(_Q%):�_U%!312>0�
	�Z�shell_Tracef0("Message_Shutdown:Shutdown message received"):c%=_U%!312:o%=�("FN"+$c%)
	��:�
	�4��shell_HandleUnknownMessage2(_Q%):�X$:Ȏ_Q%!16�
	�C�&43B00:X$=$(_Q%+20):�X$,30)="EvntShellLib:ShellDBug started"�
	��_U%!&64�1<<4�
	�r_U%!&64=(_U%!&64�1<<4):�shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+�shell_GetAppName)
�
+�:�X$,25)="EvntShellLib:TraceInitAck"�
_U%!&64=(_U%!&64�1<<4)
&�:�X$,20)="EvntShellLib:TraceOn"�
�shell_TraceOn
'�:�X$,21)="EvntShellLib:TraceOff"�

�shell_TraceOff
.�:�X$,28)="EvntShellLib:ListClickSelect"�

�shell_ListClickSelect
.�:�X$,28)="EvntShellLib:ListClickAdjust"�
�shell_ListClickAdjust
+�:�X$,25)="EvntShellLib:ListHelpTags"�
�shell_ListHelpTags
�
(�:�shell_HandleUnknownMessage(_Q%):�
'��shell_HandleUnknownMessage(_Q%):�
#V��shell_AttachPreQuitHandler(A$):�c%,o%:�_U%!300>0��shell_HeapBlockReturn(_U%!300)
&<_U%!300=�shell_HeapBlockFetch(�A$+1):c%=_U%!300:$c%=A$:�
-W��shell_AttachShutdownHandler(A$):�c%,o%:�_U%!312>0��shell_HeapBlockReturn(_U%!312)
0<_U%!312=�shell_HeapBlockFetch(�A$+1):c%=_U%!312:$c%=A$:�
7Y��shell_AttachModeChangeHandler(A$):�c%,o%:�_U%!&A0>0��shell_HeapBlockReturn(_U%!&A0)
:J_U%!&A0=�shell_HeapBlockFetch(�A$+1):c%=_U%!&A0:$c%=A$:o%=�("FN"+A$):�
B\��shell_AttachPaletteChangeHandler(A$):�c%,o%:�_U%!&A4>0��shell_HeapBlockReturn(_U%!&A4)
EJ_U%!&A4=�shell_HeapBlockFetch(�A$+1):c%=_U%!&A4:$c%=A$:o%=�("FN"+A$):�
M]��shell_AttachTaskInitialiseHandler(A$):�c%,o%:�_U%!&A8>0��shell_HeapBlockReturn(_U%!&A8)
P<_U%!&A8=�shell_HeapBlockFetch(�A$+1):c%=_U%!&A8:$c%=A$:�
W\��shell_AttachTaskCloseDownHandler(A$):�c%,o%:�_U%!&AC>0��shell_HeapBlockReturn(_U%!&AC)
Z<_U%!&AC=�shell_HeapBlockFetch(�A$+1):c%=_U%!&AC:$c%=A$:�
a<��shell_RAMFetch(_Q%):�CG%,GE%,EE%:EE%=�:�_U%!&90>&8000�
la�shell_Tracef0("RAMFetch:RAMFetch called.."):_Q%!&C=_Q%!8:_Q%!16=7:GE%=_U%!&88:�_U%!&8C=&FF9�
w_U%!&90+=4
x�:�(GE%-_U%!&80)<_Q%!24�
{_Q%!24=GE%-_U%!&80:EE%=�
}-��shell_Tracef0("RAMFetch:Sending block")
�}�:ș&400F1,_U%!&94,_U%!&90+_U%!&80,_Q%!4,_Q%!20,_Q%!24:ș&400E7,17,_Q%,_Q%!4:_U%!&78=_Q%!8:_U%!&80+=_Q%!24:�EE%�_U%!&80=0
��:�
�;��shell_RAMTransmit(_Q%):�d%,a%,NA$,c%:�_Q%!&C=_U%!&70�
�$_U%!&80+=_Q%!24:�_Q%!24<_U%!&84�
���shell_Tracef0("RAMTransmit:Last block received"):d%=�shell_GetEventListOffset(_U%!28,_U%!32,_U%+96,16,�):a%=_U%!96+d%:�shell_Tracef0("RAMTransmit:_U%!28="+�_U%!28):�shell_Tracef0("RAMTransmit:_U%!32="+�_U%!32)
���shell_Tracef0("RAMTransmit:offset%="+�d%):c%=_U%!&9C:NA$=�shell_GetString(c%+44):�shell_UserFNLoadFile(c%!40,_U%!&98,a%!8,NA$,_U%!&84,a%)
�C��shell_Tracef0("RAMTransmit:Block received"):�_U%!&80>_U%!&84�
�r�shell_Tracef0("RAMTransmit:Increasing buffer size.."):_U%!&98=�shell_HeapBlockExtend(_U%!&98,_U%!&80,_U%!&84)
�e�:_Q%!&C=_Q%!8:_Q%!16=6:_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84:ș&400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8
��
�\��shell_HeapBlockReturn(_U%!&98):_U%!&98=0:�shell_OK(�shell_MessageNoArgs("SHELLMSG15"))
��:�
��ݤshell_LoadFile(LG%):�q$,XB%,mC%,IB%:q$=�shell_GetString(_Q%+44):XB%=�shell_FileLength(q$):�XB%<0��shell_OK(�shell_MessageNoArgs("SHELLMSG16"))
�PIB%=�shell_HeapBlockFetch(XB%):ș&20008,16,q$,IB%,0�;mC%:�shell_VFlag(mC%)�
�M�shell_HeapBlockReturn(IB%):�shell_OK(�shell_MessageNoArgs("SHELLMSG17"))
�@��shell_Tracef0("LoadFile:File "+q$+" loaded ok at &"+�~IB%)
�
�:=IB%
�#ݤshell_VFlag(mC%):=((mC%�1)=1)
�gݤshell_CheckType(w%,gB%,hB%):�JG%,g%,j%,c%,_C%:g%=0:j%=-1:_C%=�:�_U%!&64�1<<1�_U%!&64=_U%!&64�1<<1
�%ȕgB%!g%<>-1:c%=gB%!g%:�c%�1<<31�
�c%=c%�1<<31:_C%=�
�
�_C%=�
�
�:�c%=w%�
�j%=g%:�_C%�
�L_U%!&64=_U%!&64�1<<1:�shell_Tracef0("CheckType:Top Bit Load detected..")
��
�#�:g%+=4:�:�hB%�(w%>=4096)�j%=-1
�j%>-1�
6�shell_Tracef0("CheckType:File type OK "+�~gB%!j%)
7��shell_Tracef0("CheckType:File type NOT ok "+�~w%)
�:�j%<>-1�=��=�
���shell_Exit:�mB%:mB%=_U%!68:ș&61504,mB%:ș&2001E,7,,mB%:�shell_Tracef0("Exit:Application closing down"):�shell_TraceExit:ș&606C2:ș&600D0,,-1:�shell_WimpCloseDown_I(_U%!&94):�
_��shell_DataLoad(_Q%,hB%):�KG%,d%,a%,_temp%,gB%,w%,f$:�shell_DataOpenOKToLoad(hB%,_Q%!40)�
 dw%=_Q%!40:f$=�shell_GetString(_Q%+44):�shell_Tracef0("DataLoad:DataLoad message received"):�hB%�
+�_U%!96<>0�
,d%=0
-
�d%=-1
/�
0D�d%=�shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,�):�d%=-1�
57d%=�shell_GetEventListOffset(_Q%!20,-1,_U%+96,16,�)
6�
7
�:�d%>-1�
:4a%=_U%!96+d%:�shell_CheckType(_Q%!40,a%!8,hB%)�
>��shell_Tracef0("DataLoad:File type recognised (&"+�~_Q%!40+")"):UF%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4:ș&400E7,18,_Q%,_Q%!4:�_U%!&64�1<<1�
EIB%=-1:_U%!&64=_U%!&64�1<<1
G%�IB%=�shell_LoadFile(UF%=_U%!&6C)
IB�:�shell_UserFNLoadFile(w%,IB%,a%!8,f$,_Q%!36,a%):�_U%!&9C<>0�
M-�shell_HeapBlockReturn(_U%!&9C):_U%!&9C=0
O�
PH��shell_Tracef0("DataLoad:File type NOT recognised (&"+�~_Q%!40+")")
T�
U�
V�:�
\;ݤshell_DataOpenOKToLoad(hB%,w%):�_%,uD%,KA$,s$:�hB%=��
dY_%=�:�shell_Tracef0("DataOpenOKToLoad:Message reason code was 3, normal drag load..")
f���shell_Tracef0("DataOpenOKToLoad:Message reason code was 5, double click load.."):uD%=�shell_HeapBlockFetch(256):KA$=�shell_OSVarGetVal(uD%,256,"Alias$@RunType_"+�~w%,1):�shell_Tracef0("DataOpenOKToLoad:Alias$@RunType="+KA$)
m��shell_HeapBlockReturn(uD%):s$=�shell_Branch(KA$):�shell_Tracef0("DataOpenOKToLoad:dbug "+s$):�shell_Leaf(s$)="!"+�shell_GetAppName�_%=��_%=�
s	�:=_%
y���shell_UserFNLoadFile(w%,IB%,gB%,_filename$,_file_size%,a%):�g%,j%,c%,o%:g%=0:j%=-1:ȕgB%!g%<>-1:c%=gB%!g%:�c%�1<<31�c%=c%�1<<31
��c%=w%�j%=g%
�[g%+=4:�:c%=a%!&C:o%=�("FN"+$(c%!j%)+"("+�IB%+","+�w%+",_filename$,"+�_file_size%+")"):�
�l��shell_DataSave(_Q%):�c%,d%,a%,s%:�shell_Tracef0("DataSave:DataSave message received"):�_Q%!4<>_U%!&94�
�Cd%=�shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,�):�d%>-1�
�2a%=_U%!96+d%:�shell_CheckType(_Q%!40,a%!8,�)�
�`�shell_Tracef0("DataSave:Filetype recognized (&"+�~_Q%!40+")"):�shell_TopBitLoadInProgress�
���shell_Tracef0("DataSave:'no load' flag set"):�shell_Tracef0("DataSave:Sending Message_DataSaveAck"):_Q%!0=256:_Q%!&C=_Q%!8:_Q%!36=-1:_Q%!16=2:$(_Q%+44)=�shell_GetAppDir+".ScrapFile"+�0:ș&400E7,18,_Q%,_Q%!4
����shell_HeapBlockReturn(_U%!&9C):_U%!&9C=�shell_HeapBlockFetch((_Q%!0)+8):c%=_U%!&9C:�s%=0�_Q%!0�4:c%!s%=_Q%!s%:�s%:_U%!28=_Q%!20:_U%!32=_Q%!24:_U%!&80=0:_U%!&84=_Q%!36:_U%!&98=�shell_HeapBlockFetch(_Q%!36):_Q%!0=28:_Q%!&C=_Q%!8:_Q%!16=6
��_Q%!20=_U%!&98+_U%!&80:_Q%!24=_U%!&84:ș&400E7,18,_Q%,_Q%!4:_U%!&70=_Q%!8:�shell_Tracef0("DataSave:Sending Message_RAMFetch")
��
�7��shell_Tracef0("DataSave:Filetype NOT recognized")
��
��
��:�
�4ݤshell_TopBitLoadInProgress:�_U%!&64�1<<1�=��=�
ݟ��shell_SendDataSave(b%,f%):�a%,EA%,jB%,d%,XB%,o%:jB%=�shell_HeapBlockFetch(30):ș&400CF,,jB%:d%=�shell_GetEventListOffset(b%,f%,_U%+72,24,�):�d%=-1�d%=-2�
�do%=�shell_MessageWindow(�shell_MessageNoArgs("SHELLMSG13"),0,"",�shell_MessageNoArgs("warning"))
� �a%=(_U%!72)+d%:�a%!8>&8000�
�$XB%=�shell_HeapBlockInfo(a%!8)-4
�
�XB%=a%!8
���:EA%=_U%!76:EA%!0=256:EA%!&C=0:EA%!16=1:EA%!20=jB%!&C:EA%!24=jB%!16:EA%!28=jB%!0:EA%!32=jB%!4:EA%!36=XB%:EA%!40=a%!&C:$(EA%+44)=�shell_Leaf(�shell_IconGetData(b%,a%!16)):ș&400E7,18,EA%,EA%!20,EA%!24:_U%!&78=_Q%!8:_U%!&88=XB%:_U%!&8C=a%!&C
�;_U%!&90=a%!8:_U%!&9C=a%!4:_U%!&C8=EA%!20:_U%!&CC=EA%!24
#�:�shell_HeapBlockReturn(jB%):�
���shell_DataSaveAck(_Q%):�_fullname$,HA%,lA%,a%,c%,o%:�shell_Tracef0("DataSaveAck:DataSaveAck message received"):HA%=0:lA%=_Q%?(44+HA%):ȕlA%<>0:_fullname$+=�(lA%):HA%+=1:lA%=_Q%?(44+HA%):�:�shell_Tracef0("DataSaveAck:Full save name is: "+_fullname$)
��shell_Tracef0("DataSaveAck:task   = &"+�_Q%!4):�shell_Tracef0("DataSaveAck:mytask = &"+�_U%!&94):d%=�shell_GetEventListOffset(_U%!28,_U%!32,_U%+72,24,�):�shell_Tracef0("DataSaveAck:offset% = "+�d%):�d%>=0�
%a%=(_U%!72)+d%:c%=a%!20:�$c%<>""�
!o%=�("FN"+$c%+"(_fullname$)")
 #��shell_HeapBlockExists(a%!8)�
%Cș8,&A,_fullname$,a%!&C,,a%!8,a%!8+�shell_HeapBlockInfo(a%!8)+1
&+̅99,�shell_MessageNoArgs("SHELLMSG21")
)�
*�:�_Q%!36>-1�
--�_U%!80<>0��shell_HeapBlockReturn(_U%!80)
.H_U%!80=�shell_HeapBlockFetch(�_fullname$+1):c%=_U%!80:$c%=_fullname$
1��:_Q%!16=3:!_Q%=256:_Q%!20=_U%!&C8:_Q%!24=_U%!&CC:_Q%!40=_U%!&8C:_Q%!36=�shell_FileLength(_fullname$):_Q%!&C=_Q%!8:�shell_Tracef0("DataSaveAck:File length is "+�_Q%!36+" bytes"):$(_Q%+44)=_fullname$+�(0):_U%!84=_Q%!8
<i�shell_Tracef0("DataSaveAck:Sending DataLoad Message"):ș&400E7,18,_Q%,_Q%!20,_Q%!24:�_U%!28<>_U%!20�
B�shell_CloseWindow(_U%!28)
C�:ș&400D4,,-1
Ew��shell_PrintSave(_fullname$,_Q%!20,_Q%!24,_Q%!8,_Q%!40):�shell_Tracef0("DEBUG:: copies = "+�(_U%!336)):�_U%!336>0�
I+_U%!336-=1:�shell_DoSendPrintSave(&FFF)
K�
L�:�
RE��shell_DataSaveCheckName(b%,f%):�d%,a%,p%:a%=_U%!72:d%=0:�a%<>0�
Z1p%=�shell_HeapBlockInfo(a%)-8:�:�!(a%+d%)=b%�
`^R$=�shell_IconGetData(!a%,a%!16):�R$,".")=0��shell_OK(�shell_MessageNoArgs("SHELLMSG01"))
b	d%=p%
c�:d%+=24:�d%>=p%
f�:�
ll��shell_DataLoadAck(_Q%):�shell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)"):�
u1��shell_UserMessageAcknowledge(_Q%):Ȏ_Q%!16�
w�3:�shell_AckDataLoad(_Q%)
x�6:�shell_AckRAMFetch(_Q%)
y�:�
-��shell_AckDataLoad(_Q%):�_Q%!&C<>_U%!84�
�Hș&20008,6,"<Wimp$Scrap>":�&FF,"Data Transfer failed: Receiver died"
��:�
�v��shell_AckRAMFetch(_Q%):�sE%,c%:c%=_U%!&9C:�shell_Tracef0("AckRAMFetch:AckRAMFetch called...."):�_Q%!&C<>_U%!&70�
��_U%!&80=0�
�u�shell_Tracef0("AckRAMFetch:Receiver does not support RAM transfer"):ș&20023,"Wimp$Scrap",,-1,0,3�,,sE%:�sE%<>0�
��$(c%+44)="<Wimp$Scrap>"+�(0):c%!0=(49+�(�shell_GetString(c%+44)))��3:c%!&C=c%!8:c%!16=2:c%!36=-1:ș&400E7,18,c%,c%!4:_U%!&6C=c%!8
�2��shell_OK(�shell_MessageNoArgs("SHELLMSG14"))
��
����shell_Tracef0("AckRAMFetch:RAM transfer started, but not enough data sent. Sender died?"):�shell_HeapBlockReturn(_U%!&98):_U%!&98=0:�shell_OK("SHELLMSG06")
��
��:�
�p��shell_MenuWarning(_Q%):�A$,NB%,IA%,MA%,o%,_temp%,HA%,F$,kB%,a%:IA%=_Q%!24:MA%=_Q%!28:_U%!264=0:�_U%!20<>0�
���shell_Tracef0("MenuWarning:Removing last dynamic dbox (handle=&"+�~_U%!20+")"):o%=�shell_DeleteWindow(_U%!20):�shell_Tracef0("MenuWarning:Last dynamic dbox removed")
��:Ȏ_Q%!20�
ǧ�_U%!&E4:�shell_WindowRetitle(_U%!&E4,�shell_MessageNoArgs("warning")):�shell_IconPutData(_U%!&E4,1,�shell_MessageNoArgs("SHELLMSG07"),0):ș&400E8,,_U%!&E4,IA%,MA%
�QkB%=�shell_MenuGetItemAddress(_U%!24,_Q%+32):�shell_HeapBlockExists(kB%!4)�
�$�shell_MenuWarnDBox(kB%,IA%,MA%)
Ԫ�a%=�shell_HeapBlockFetch(32):ș&45BC4,_U%!24,_Q%+32�,,a%:�shell_FindMenuWarnEvent(a%!8,F$,J$):�shell_HeapBlockReturn(a%):�shell_MenuWarnSubMenu(_Q%!20,IA%,MA%,F$,J$)
��
��:�
�;��shell_MenuWarnDBox(vA%,IA%,MA%):�c%,v%,o%:�:��:��:�
�c%=vA%!4:�shell_CreateWindow($c%!0,v%):��:�shell_Tracef0("MenuWarnDBox:Creating new dynamic dbox (handle=&"+�~v%+")"):�$c%!4<>""�
�^�shell_Tracef0("MenuWarnDBox:Calling preopen FN '"+$c%!4+"'"):o%=�("FN"+$c%!4+"("+�v%+")")
��:�$c%!8<>""�
�_�shell_Tracef0("MenuWarnDBox:Calling postopen FN '"+$c%!8+"'"):o%=�("FN"+$c%!8+"("+�v%+")")
�&�:ș&400E8,,v%,IA%,MA%:_U%!20=v%:�

���shell_FindMenuWarnEvent(nA%,�F$,�J$):�_%,x%,c%,d%,j%,p%,CA%,g%:�lB%:lB%=0:x%=_U%!&DC:d%=0:j%=�:F$="":lB%=0:�shell_HeapBlockExists(x%)�

m�:g%+=4:�x%!g%=-1:p%=g%:g%=0:�shell_Tracef0("FindMenuWarnEvent:list_size%="+�p%):�:c%=!(x%+d%+0):�c%<>-1�

�c%=nA%�

uj%=�:CA%=x%!(d%+4):F$=$CA%:lB%=x%!(d%+8):CA%=x%!(d%+&C):J$=$CA%:�shell_Tracef0("FindMenuWarnEvent:submenu found")

�:d%+=16


�d%=p%

�:�j%�d%>=p%

�F$="":J$=""

 D�:�lB%=0��shell_Tracef0("FindMenuWarnEvent:warn fn not found..")

$�

)���shell_MenuWarnSubMenu(DE%,IA%,MA%,F$,J$):�o%,c%,JB%,g%:_shell_FontMenuSelFN$=J$:�shell_HeapBlockExists(_U%!&E0)��shell_HeapBlockReturn(_U%!&E0)

-C_U%!&E0=�shell_HeapBlockFetch(�F$+1):c%=_U%!&E0:$c%=F$:�F$<>""�

0So%=�("FN"+F$+"(_U%!52,_U%!56)"):�shell_Tracef0("MenuWarnSubMenu:Calling FN"+F$)

4�:�DE%=_U%!&FC�

9y�shell_Tracef0("MenuWarnSubMenu:FontMenu opening.."):�shell_HeapBlockExists(_U%!256)��shell_HeapBlockReturn(_U%!256)

>�g%=0:�:g%+=4:�!(_Q%+32+g%)=-1:g%+=4:_U%!256=�shell_HeapBlockFetch(g%):c%=_U%!256:g%=0:�:c%!g%=!(_Q%+32+g%):g%+=4:�!(_Q%+32+g%)=-1:c%!g%=!(_Q%+32+g%):c%=_U%!256

H��shell_Tracef0("MenuWarnSubMenu:Selecting '"+�shell_FontMenuGetLastSelectedFont+"' in FontMenu.."):ș"FontMenu_Select",�shell_FontMenuGetLastSelectedFont,_U%!260�,JB%:_U%!264=1:�JB%<>_U%!&FC�

N5�shell_FontMenuUpdatePtr(JB%):_U%!&FC=JB%:DE%=JB%

P�

Q�_U%!264=0

S�:ș&400E8,,DE%,IA%,MA%:�

[?��shell_AttachSubMenu(GB%,lB%,F$):ș&45BCE,GB%,lB%:�F$<>""�

^7ș&45BCC,,�:�shell_EventListMenuWarn(GB%,lB%,F$,"")

`�:�

fF��shell_EventListMenuWarn(GB%,dE%,F$,J$):�c%,CA%,g%,x%:�_U%!&DC=0�

j�_U%!&DC=�shell_HeapBlockFetch(32):c%=_U%!&DC:c%!0=GB%:c%!4=�shell_HeapBlockFetch(�F$+1):$(c%!4)=F$:c%!8=dE%:c%!&C=�shell_HeapBlockFetch(�J$+1):$(c%!&C)=J$:c%!16=-1:c%!20=-1:c%!24=-1:c%!28=-1

s��x%=�shell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=x%:g%=0:�:g%+=16:�x%!g%=-1:c%=_U%!&DC:c%!g%=GB%:c%!(g%+4)=�shell_HeapBlockFetch(�F$+1):CA%=c%!(g%+4):$(CA%)=F$:c%!(g%+8)=dE%:c%!(g%+&C)=�shell_HeapBlockFetch(�J$+1):CA%=c%!(g%+&C):$(CA%)=J$

�;c%!(g%+16)=-1:c%!(g%+20)=-1:c%!(g%+24)=-1:c%!(g%+28)=-1

��:�

����shell_InteractiveHelp(_Q%):�I$,W$,K$,PB%,MD%,nA$,r%:r%=�shell_HeapBlockFetch(&C):ș&400D6,_Q%!32,r%,&3F0000,&C<<16:�!r%<>-1�

�%I$=�shell_IconGetData(_Q%!32,!r%)

�R�:�shell_HeapBlockReturn(r%):�I$=""�I$=�shell_GetEventHandler(_Q%!32,_Q%!36,8)

�7K$=�shell_IconGetValidation(_Q%!32,_Q%!36):�K$<>""�

�(�shell_StringUpperCase(�K$,1))="I"�

�PB%=�K$,";"):�PB%=0�

�
I$=�K$,2)

��I$=�K$,2,PB%-2)

��

���PB%=��shell_StringUpperCase(K$),�shell_StringUpperCase(";i")):MD%=��shell_StringUpperCase(K$),�shell_StringUpperCase(";"),PB%+1):�PB%>0�

��MD%>0�

�I$=�K$,PB%+2,MD%-PB%-2)

��I$=�K$,PB%+2)

��

��

��

��:�I$<>""�

��_Q%!16=&503:_Q%!&C=_Q%!8:W$=�shell_MessageLookup(I$,"",""):W$=�shell_MessageExpand(W$):$(_Q%+20)=W$:!_Q%=(�W$+25)��3:ș&400E7,17,_Q%,_Q%!4

��:�

���ack:�

�>��shell_Message_PreQuit(_Q%):�c%,OD%,a%,s%,PD%:�_U%!300>0�

��a%=�shell_HeapBlockFetch(256):�s%=0�_Q%!0�4:a%!s%=_Q%!s%:�s%:�shell_Tracef0("Message_PreQuit:PreQuit message received"):c%=_U%!300:OD%=a%!4:�!a%<24�PD%=0�PD%=a%!20

�2a%!&C=a%!8:ș&400E7,19,a%,OD%:�("FN"+$c%)<>0�

��PD%�1�

�_closedown%=�

�5�!a%=24:a%!24=508:ș&400E7,8,a%,OD%:_closedown%=�

��

� �:�shell_HeapBlockReturn(a%)

��:�

�9��lwaorigin(A,�IA%,�MA%):IA%=A!0-A!16:MA%=A!&C-A!20:�

�=ݤshell_Iconbar(FA%,r$,H$,SD%,m%,_B%,HC%,gC%):�i%:�H$=""�

�J!_Q%=FA%:_Q%!4=0:_Q%!8=0:_Q%!&C=70:_Q%!16=70:_Q%!20=&301A:$(_Q%+24)=r$

��!_Q%=FA%:_Q%!4=0:_Q%!8=-16:_Q%!&C=SD%:_Q%!16=90:_Q%!20=&1700210B:�_Q%!24&C:�_Q%!28�(r$)+2:$(_Q%!24)=H$:$(_Q%!28)="S"+r$:_Q%!32=&C

�B�:ș&400C2,,_Q%�i%:�shell_AttachMenu(-2,i%,m%,_B%,HC%,gC%):=i%

����shell_IconbarSetText(v%,cF%,L$):�k%,t%:k%=�shell_HeapBlockFetch(40):t%=�shell_HeapBlockFetch(36):t%!20=0:�shell_OSCheckVersion(3)�
�v%=-1�!t%=-2�!t%=v%
ș&400CB,,t%
��:!k%=v%:k%!4=cF%:ș&400CE,,k%:$(k%!28)=L$:ș&400D1,-1,k%!8-&64-t%!20,k%!&C,k%!16+&64-t%!20,k%!20:�shell_HeapBlockReturn(k%):�shell_HeapBlockReturn(t%):�
�ݤshell_WritableIconHandler(b%,f%,RA%):�AB%,AC%,BC%,g%:�aD%,dD%,xA%,tA%,HB%,QG%,BA%:BA%=�shell_HeapBlockFetch(&400):ș&400D3,,BA%:�!BA%=-1�
"�shell_HeapBlockReturn(BA%):=�
?�:ș&400D6,b%,BA%,&40E000,&E000:AC%=!BA%:g%=0:�:�BA%!g%=f%�
!!aD%=BA%!(g%-4):dD%=BA%!(g%+4)
#,�:g%+=4:�BA%!g%=-1:BC%=BA%!(g%-4):ȎRA%�
)%�&D:�shell_FakeMouseClick(b%,0,4)
+�398,394:�f%=BC%�
-:ș&400D2,b%,AC%,-1,-1,-1,�(�shell_IconGetData(b%,AC%))
.;�ș&400D2,b%,dD%,-1,-1,-1,�(�shell_IconGetData(b%,dD%))
0�
1�399,410:�f%=AC%�
3:ș&400D2,b%,BC%,-1,-1,-1,�(�shell_IconGetData(b%,BC%))
4;�ș&400D2,b%,aD%,-1,-1,-1,�(�shell_IconGetData(b%,aD%))
6�
7?�431:ș&400D2,b%,AC%,-1,-1,-1,�(�shell_IconGetData(b%,AC%))
9?�430:ș&400D2,b%,BC%,-1,-1,-1,�(�shell_IconGetData(b%,BC%))
;$�:�shell_HeapBlockReturn(BA%):=�
B_��shell_FakeMouseClick(b%,f%,YB%):ș6,&F,1:_Q%!8=YB%:_Q%!&C=b%:_Q%!16=f%:�shell_Action(6):�
J�ݤshell_IconCreate(b%,BB%,kA%,SD%,v%,lD%,tD%,aF%,P$,vA%,nB%,K$):�mF%,i%,wB%,k%:k%=�shell_HeapBlockFetch(40):k%!0=b%:k%!4=BB%:k%!8=kA%:k%!&C=BB%+SD%:k%!16=kA%+v%:k%!20=aF%�tD%<<28�lD%<<24:�k%!20�256�
R#mF%=�P$,","):k%!24=vA%:�K$<>""�
U6wB%=�shell_HeapBlockFetch(�K$+1):$wB%=K$:k%!28=wB%
X
�k%!28=-1
Z�:k%!32=nB%
\�$(k%+24)=�P$,&B)
^4�:ș&400C2,,k%�i%:�shell_HeapBlockReturn(k%):=i%
e<��shell_IconDelete(b%,f%):�shell_DoIconDelete(b%,f%,�):�
k=��shell_IconDelete2(b%,f%):�shell_DoIconDelete(b%,f%,�):�
q���shell_DoIconDelete(b%,f%,oF%):�a%,KA%,PA%,VA%,cA%:a%=�shell_HeapBlockFetch(40):a%!0=b%:a%!4=f%:ș&400CE,,a%:ș&8168A,,a%+8:KA%=a%!8:PA%=a%!&C:VA%=a%!16:cA%=a%!20:ș&400CE,,a%:�shell_HeapBlockExists(a%!28)��shell_HeapBlockReturn(a%!28)
z@�shell_HeapBlockExists(a%!32)��shell_HeapBlockReturn(a%!32)
{ș&400C4,,a%:�oF%�
}ș&400D1,b%,KA%,PA%,VA%,cA%
~"�:�shell_HeapBlockReturn(a%):�
�W��shell_IconPutData(NA%,uA%,P$,I):�a%,OA$:OA$=�shell_IconGetData(NA%,uA%):�P$<>OA$�
�Sa%=�shell_HeapBlockFetch(40):a%!0=NA%:a%!4=uA%:ș&400CE,,a%:�(a%!24�(1<<8))<>0�
�5�P$>a%!36��99,�shell_MessageNoArgs("SHELLMSG12")
�$(a%!28)=P$
��$(a%+28)=�P$,&B)
��:�I<>0�
�a%!8=0:a%!&C=0:ș&400CD,,a%
� �:�shell_HeapBlockReturn(a%)
��:�
�z��shell_IconPutDataNow(NA%,uA%,P$):�a%:a%=�shell_HeapBlockFetch(50):a%!0=NA%:a%!4=uA%:ș&400CE,,a%:�(a%!24�(1<<8))<>0�
�5�P$>a%!36��99,�shell_MessageNoArgs("SHELLMSG12")
�$(a%!28)=P$
��$(a%+28)=�P$,&B)
�P�:a%!8=0:a%!&C=0:ș&400CD,,a%:�shell_EnsurePoll:�shell_HeapBlockReturn(a%):�
��ݤshell_IconNewSprite(NA%,uA%,kA$,I):�k%:k%=�shell_HeapBlockFetch(40):k%!0=NA%:k%!4=uA%:ș&400CE,,k%:ș&400C4,,k%:k%!4=k%!8:k%!8=k%!&C:k%!&C=k%!16:k%!16=k%!20:k%!20=k%!24:$(k%+24)=kA$:ș&400C2,,k%�uA%:�I�ș&400D1,k%!0,k%!4,k%!8,k%!&C,k%!16
�#�shell_HeapBlockReturn(k%):=uA%
Îݤshell_IconGetData(NA%,uA%):�O$,k%:k%=�shell_HeapBlockFetch(40):k%!0=NA%:k%!4=uA%:ș&400CE,,k%:�(k%!24�(1<<8))<>0�O$=$(k%!28)�O$=$(k%+28)
�"�shell_HeapBlockReturn(k%):=O$
��ݤshell_IconMove2(b%,f%,DF%,EF%):�z%:z%=�shell_HeapBlockFetch(40):!z%=b%:z%!4=f%:ș&400CE,,z%:z%!8+=DF%:z%!16+=DF%:z%!&C+=EF%:z%!20+=EF%:f%=�shell_IconMove(b%,f%,z%!8,z%!&C,z%!16,z%!20):�shell_HeapBlockReturn(z%):=f%
�Uݤshell_IconResize(b%,f%,KA%,PA%,VA%,cA%):=�shell_IconMove(b%,f%,KA%,PA%,VA%,cA%)
��ݤshell_IconMove(b%,f%,KA%,PA%,VA%,cA%):�r%,HG%,DG%,CB%,a%:�hE%,lE%,tE%,_E%:r%=�shell_HeapBlockFetch(40):a%=�shell_HeapBlockFetch(40):!r%=b%:r%!4=f%:ș&400CE,,r%:!a%=b%:a%!4=f%:ș&400CE,,a%:ș&8168A,,a%+8:uF%=r%!24:KD%=r%+28
��hE%=uF%:lE%=KD%!0:tE%=KD%!4:_E%=KD%!8:CB%=r%!8-a%!8:ș&400C4,,r%:ș&400D1,!r%,r%!8-CB%,r%!&C-CB%,r%!16+CB%,r%!20+CB%:f%=�shell_CreateIcon2(b%,KA%,PA%,VA%,cA%,hE%,lE%,tE%,_E%,CB%):�shell_HeapBlockReturn(r%):�shell_HeapBlockReturn(a%):=f%
��ݤshell_CreateIcon2(i%,KA%,PA%,VA%,cA%,n%,bF%,KF%,dF%,CB%):�y%,JA%,H$,c$,BB%,kA%:JA%=�shell_HeapBlockFetch(60):!JA%=i%:JA%!20=n%:JA%!24=bF%:JA%!28=KF%:JA%!32=dF%:H$="":c$="":�n%�1�
�$�n%�256H$=$(JA%!24)�H$=$(JA%+24)
��:�n%�2�
�n%�256�
(c$=�shell_IconGetCommand(JA%!28,"S")
�c$=$(JA%+24)
�
8�:�shell_GetMinXY(n%,H$,c$):�VA%-KA%<BB%�VA%=KA%+BB%
	�cA%-PA%<kA%�cA%=PA%+kA%

�JA%!4=KA%:JA%!8=PA%:JA%!&C=VA%:JA%!16=cA%:ș&400C2,,JA%�y%:ș&400D1,!JA%,JA%!4-CB%,JA%!8-CB%,JA%!&C+CB%,JA%!16+CB%:ș&400D3,,JA%:�!JA%=i%:�JA%!4=y%:ș&400D2,i%,y%,0,0,-1,0
#�shell_HeapBlockReturn(JA%):=y%
Q��shell_GetMinXY(n%,H$,c$):�KA%,PA%,VA%,cA%,tA%,HB%:BB%=0:kA%=0:�n%�1�H$<>""�
�n%�64�
�ș&40084,n%>>24�,,PA%,,cA%:ș&40097,,�26+�(n%>>24)+H$�,KA%,,VA%:ș&40088,,KA%�,KA%:ș&40088,,VA%�,VA%:BB%=VA%-KA%:kA%=cA%-PA%
�BB%=6*OG%+16*�H$:kA%=32
 �:�n%�4kA%+=2*RG%
"�:�n%�2�c$<>""�
$Hș&2002E,296,�shell_UserSpritesBase,c$�,,,tA%,HB%,,OE%;P%:�(P%�1)=0�
&cș&20035,OE%,4�,,RF%:tA%=tA%<<RF%:ș&20035,OE%,5�,,TF%:HB%=HB%<<TF%:�n%�&800tA%=tA%/2:HB%=HB%/2
)�(n%�539)=19tA%=BB%+tA%
*�tA%>BB%BB%=tA%
+�HB%>kA%kA%=HB%
,�
-�:�
33ݤshell_IconGetCommand(jC%,mA$):�I%,O$:�jC%<=0�
6	O$=""
7Q�I%=�";"+�shell_StringUpperCase($jC%),";"+�shell_StringUpperCase(mA$)):�I%=0�
:	O$=""
;)�O$=�$(jC%+I%),�$(jC%+I%)+";",";")-1)
=�
>	�:=O$
C���shell_IconRedraw(b%,f%):�a%:a%=�shell_HeapBlockFetch(40):!a%=b%:a%!4=f%:ș&400CE,,a%:ș&8168A,,a%+8:ș&400D1,b%,a%!8,a%!&C,a%!16,a%!20:�shell_Action(�shell_Poll_I(0,_U%!&94)):�shell_HeapBlockReturn(a%):�
P9ݤshell_IconGetValidation(b%,f%):�a%,K$,n%:�f%=-1�=""
SVK$="":a%=�shell_HeapBlockFetch(&64):a%!0=b%:a%!4=f%:ș&400CE,,a%:n%=a%!24:�n%�256�
[�a%!32>0�K$=$(a%!32)
\$�:�shell_HeapBlockReturn(a%):=K$
b{��shell_IconPutValidation(b%,f%,t$):�a%,n%:a%=�shell_HeapBlockFetch(&64):a%!0=b%:a%!4=f%:ș&400CE,,a%:n%=a%!24:�n%�256�
i$(a%!32)=t$
j"�:�shell_HeapBlockReturn(a%):�
pgݤshell_IsIconSelected(QB%,RB%):�c%:�shell_IconGetState(QB%,RB%):n%=_Q%!24:c%=(n%�&200000):�c%=0�=�
v=�
{N��shell_IconSelect(QB%,RB%):�shell_IconSetState(QB%,RB%,&200000,&200000):�
�J��shell_IconDeselect(QB%,RB%):�shell_IconSetState(QB%,RB%,0,&200000):�
�D��shell_IconGetState(QB%,RB%):!_Q%=QB%:_Q%!4=RB%:ș&400CE,,_Q%:�
�.��shell_IconSetSelected(b%,f%,ZA%):�ZA%=0�
��shell_IconDeselect(b%,f%)
���shell_IconSelect(b%,f%)
��:�
�&��shell_IconSet(b%,f%,ZA%):�ZA%=0�
��shell_IconDeselect(b%,f%)
���shell_IconSelect(b%,f%)
��:�
����shell_IconSetState(QB%,RB%,yF%,_F%):�k%:k%=�shell_HeapBlockFetch(16):!k%=QB%:k%!4=RB%:k%!8=yF%:k%!&C=_F%:ș&400CD,,k%:�shell_HeapBlockReturn(k%):�
�Q��shell_IconUnselectable(i%,PC%):�shell_IconSetState(i%,PC%,&400000,&40000):�
�w��shell_IconSetBGColour(b%,f%,oA%):�oA%<0�oA%>&F��99,�shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetBGColour")
�2�shell_IconSetState(b%,f%,oA%<<28,&F0000000):�
�w��shell_IconSetFGColour(b%,f%,oA%):�oA%<0�oA%>&F��99,�shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetFGColour")
�1�shell_IconSetState(b%,f%,oA%<<24,&F000000):�
�X��shell_CaretSetPosition(NA%,uA%,OF%,PF%,UA%,xA%):ș&400D2,NA%,uA%,OF%,PF%,UA%,xA%:�
�|��shell_IconSetButtonType(b%,f%,RC%):�RC%=&C�RC%=&D��99,�shell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType")
�V�RC%<0�RC%>&F��99,�shell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType")
�.�shell_IconSetState(b%,f%,RC%<<&C,&F000):�
�m��shell_IconSetESG(b%,f%,DC%):�DC%<0�DC%>31��99,�shell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG")
�0�shell_IconSetState(b%,f%,DC%<<16,&1F0000):�
�3��shell_IconSetText(b%,f%,DA%):�DA%<>0�DA%=1<<0
�)�shell_IconSetState(b%,f%,DA%,1<<0):�
�5��shell_IconSetSprite(b%,f%,DA%):�DA%<>0�DA%=1<<1
�)�shell_IconSetState(b%,f%,DA%,1<<1):�
�5��shell_IconSetBorder(b%,f%,DA%):�DA%<>0�DA%=1<<2
�)�shell_IconSetState(b%,f%,DA%,1<<2):�
�Y��shell_IconSetHCentred(b%,f%,DA%):�shell_IconSetState(b%,f%,0,1<<9):�DA%<>0�DA%=1<<3
�)�shell_IconSetState(b%,f%,DA%,1<<3):�
7��shell_IconSetVCentred(b%,f%,DA%):�DA%<>0�DA%=1<<4
)�shell_IconSetState(b%,f%,DA%,1<<4):�
5��shell_IconSetFilled(b%,f%,DA%):�DA%<>0�DA%=1<<5

)�shell_IconSetState(b%,f%,DA%,1<<5):�
X��shell_IconSetRightJust(b%,f%,DA%):�shell_IconSetHCentred(b%,f%,0):�DA%<>0�DA%=1<<9
)�shell_IconSetState(b%,f%,DA%,1<<9):�
e��shell_IconSetLeftJust(b%,f%):�shell_IconSetHCentred(b%,f%,0):�shell_IconSetRightJust(b%,f%,0):�
$A��shell_IconSetUnselectable(b%,f%,ZA%):�BA%:�ZA%<>0�ZA%=1<<22
'1�shell_IconSetState(b%,f%,ZA%,1<<22):�ZA%<>0�
*BBA%=�shell_HeapBlockFetch(24):ș&400D3,,BA%:�!BA%=b%�BA%!4=f%�
-ș&400D2,-1
.!�:�shell_HeapBlockReturn(BA%)
0�:�
6W��shell_CaretSetRight(b%,f%):ș&400D2,b%,f%,-1,-1,-1,�(�shell_IconGetData(b%,f%)):�
=3��print_text(F,G,H$):�in(F,G-32,F+16*�(H$),G)�
?�F,G:�H$
A�:�
Fݤin(A%,B%,C%,D%):�C%<Y�=�
H�A%>Z�=�
I�B%>P�=�
J�D%<Q�=�
K=�
O���newvals:Y=_Q%!28:Q=_Q%!32:Z=_Q%!36:P=_Q%!40:T=_Q%!4:V=_Q%!8:U=_Q%!&C:O=_Q%!16:K=_Q%!20:L=_Q%!24:R=U-T:S=O-V:d=K:e=K+R:f=L:b=L-S:�
Z ݤmax(HA%,lA%):�HA%<lA%�=lA%
\=HA%
_8ݤshell_Leaf(G$):ȕ�G$,"."):G$=�G$,�G$,".")+1):�:=G$
g.ݤshell_Branch(f$):�FA%,u$,c%:�f$,".")=0�
j	u$=""
k8�c%=0:�:FA%=c%+1:c%=�f$,".",FA%):�c%=0:u$=�f$,FA%-2)
r	�:=u$
w8ݤgname(C):v$="":ȕ?C<>0�?C<>&D:v$=v$+�?C:C+=1:�:=v$
�p��shell_WindowResize(NA%,VF%,XF%,YF%,ZF%,oC%):!_Q%=VF%:_Q%!4=XF%:_Q%!8=YF%:_Q%!&C=ZF%:ș&400D7,NA%,_Q%:�oC%�
�)_Q%!0=NA%:ș&400CC,,_Q%:ș&400C5,,_Q%
��:�
����shell_WindowRetitle(�NA%,S$):�c%,q%,i%,qE%:q%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(NA%)*32)):q%!0=NA%:ș&400CC,,q%:�((q%!60)�256)=0�
�Ac%=q%+76:$c%=�S$,&B):ș&400C3,,q%:ș&400C1,,q%+4�i%:�i%<>NA%�
�,�shell_UpdateWindowHandle(NA%,i%):NA%=i%
��
�<�qE%=q%!84:$(!(q%+76))=�S$,qE%-1):�((q%!32)�(1<<16))<>0�
�)ș&400D1,-1,q%!4,q%!16,q%!&C,q%!16+44
� �:�shell_HeapBlockReturn(q%)
��:�
�>ݤshell_WindowTitleIndirected(vB%):�(vB%�(1<<8))=(1<<8)�=�
�=�
����shell_ScreenToWindowCoords(rE%,�X%,�Y%):�QD%,uE%,BG%,wE%,xE%,pB%:pB%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(rE%)*32)):QD%=pB%:!QD%=rE%:ș&400CC,,QD%:uE%=pB%!4:rF%=pB%!16:wE%=pB%!20:xE%=pB%!24:X%=X%+(wE%-uE%):Y%=Y%+(xE%-rF%)
�!�shell_HeapBlockReturn(pB%):�
�8ݤshell_WimpSlotReadEnd:�EC%:ș&400EC,-1,-1�EC%:=EC%
�Vݤshell_WimpSlotClaimMemory(EC%,hA%):�TD%:ș&400EC,EC%+hA%,-1�TD%:�TD%<EC%+hA%�=-1
�=TD%
�3��shell_WimpSlotReleaseMemory:ș&400EC,EC%,-1:�
�_��shell_MouseLimit(A,NA%):A!0=NA%:ș&400CB,,A:�mouse_rectangle(A!4,A!8,A!&C-A!4,A!16-A!8):�
�ݤshell_NameOfFirstSprite(eA$):�X%,N%,w$:X%=�(eA$):�#X%=4:N%=�#X%:N%+=�#X%*256:N%+=�#X%*65536:N%+=�#X%*&1000000:�#X%=N%:w$="":�N%=0�&B:w$+=�(�#X%):�:�#X%:=w$
�B��InitialiseSpriteArea(S%,vF%):!S%=vF%:S%!8=16:ș46,9+256,S%:�
�1��shell_ListEvents(b%,y%):�m%,e$:�b%=-1�b%=-2
���shell_Tracef0("MenuSelection="+�shell_GetEventHandler(b%,y%,0)):�shell_Tracef0("MenuMaker    ="+�shell_GetEventHandler(b%,y%,1)):�shell_Tracef0("ClickSelect  ="+�shell_GetEventHandler(b%,y%,2))
��shell_Tracef0("ClickAdjust  ="+�shell_GetEventHandler(b%,y%,3)):�shell_Tracef0("Redraw       ="+�shell_GetEventHandler(b%,y%,4)):�shell_Tracef0("Keypress     ="+�shell_GetEventHandler(b%,y%,5))
��shell_Tracef0("Drag         ="+�shell_GetEventHandler(b%,y%,6)):�shell_Tracef0("Menu Warning ="+�shell_GetEventHandler(b%,y%,7)):�shell_Tracef0("HelpTag      ="+�shell_GetEventHandler(b%,y%,8)):m%=�shell_GetEventMenu(2,b%,y%):�m%=0�


e$="None"
�e$=�m%

+�:�shell_Tracef0("Menu handle =&"+e$):�
p��shell_HeapManagerInit(G$,xF%):�_heap_code%900:�("LOAD "+G$+"heapcode "+�~_heap_code%):�_heap_code%+0,xF%:�
 1ݤshell_HeapBlockExists(vA%):�o%:�:��:��:=�
$9�vA%<&8000��99,"No heapblock defined at this address"
%&o%=�shell_HeapBlockInfo(vA%):��:=�
0Aݤshell_HeapBlockExtend(HA%,lA%):�_heap_code%+&C,HA%,lA%:=HA%
9@ݤshell_HeapBlockFetch(HA%):�vA%:�_heap_code%+4,vA%,HA%:=vA%
BQ��shell_HeapBlockReturn(�HA%):�shell_HeapBlockExists(HA%)��_heap_code%+8,HA%
DHA%=0:�
KFݤshell_HeapBlockInfo(HA%):�M:ș29,6,!(_heap_code%+28),HA%�,,,M:=M
SEݤshell_OSVarExists(TB%,x$):�B:ș&20023,x$,TB%,-1,0,0�,,B:�B<0�=�
W=�
\{ݤshell_OSVarGetVal(TB%,hA%,x$,W):�y$,B,wF%:ș&20023,x$,TB%,hA%,0,-3*(W=�)�,,B,wF%,w%:�s%=0�B-1:y$=y$+�(TB%?s%):�s%:=y$
geݤshell_OSReadCommandArg(X):�UD%,U$,d%:U$="":d%=0:ș16�UD%:ȕUD%?d%<>0:U$+=�(UD%?d%):d%+=1:�:ȎX�
p�0
q,�1:U$=�U$,�U$,�34)+1):U$=�U$,�U$,�34)+2)
t	�:=U$
zHݤshell_StringStripTrailing(B$,V$):ȕ�B$,1)=V$:B$=�B$,�(B$)-1):�:=B$
�Aݤshell_StringStripLeading(B$,V$):ȕ�B$,1)=V$:B$=�B$,2):�:=B$
�:ݤshell_StringStripAll(B$,V$):�D,E:D=�:�:E=�B$,V$):�E�
�D=�:B$=�B$,E-1)+�B$,E+1)
��D=�
��:�D:=B$
�Oݤshell_StringPadTrailing(B$,V$,DB%):ȕ�(B$)<DB%:B$=B$+�DB%-�(B$),V$):�:=B$
�Nݤshell_StringPadLeading(B$,V$,DB%):ȕ�(B$)<DB%:B$=�DB%-�(B$),V$)+B$:�:=B$
�-ݤshell_StringUpperCase(B$):�s%:�(B$)>0�
�/�s%=1��(B$):�B$,s%,1)>="a"��B$,s%,1)<="z"�
�!�B$,s%,1)=�(�(�B$,s%,1))�&DF)
�	�:�s%
�	�:=B$
�4ݤshell_StringExchange(B$,_$,hA$):�xA%:�B$,_$)�
�.xA%=�B$,_$):B$=�B$,xA%-1)+hA$+�B$,xA%+�_$)
�	�:=B$
�Sݤshell_StringArrayGetLongest(A$(),qC%):�s%,rC%:rC%=0:�s%=0�qC%:�(A$(s%))>rC%�
�rC%=�(A$(s%))
��:�s%:=rC%
�Kݤmem_to_string(IE%,d%,MF%):�B$:ȕIE%?d%<>MF%:B$+=�(IE%?d%):d%+=1:�:=B$
�Sݤshell_FileLength(d$):�w%,JD%,kC%,DB%,FC%,B$:ș8,5,d$�w%,,JD%,kC%,DB%,FC%:=DB%
�^��shell_TraceOn:_U%!&64=_U%!&64�1<<9:�shell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"):�
�=��shell_TraceOff:�(_U%!&64�(1<<9))�_U%!&64=_U%!&64�(1<<9)
�:�shell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"):�
�0��shell_TraceInit(i$):�QA%,a%,E$,D$:�i$<>""�
�QA%=�(i$):_U%!44=QA%
���:a%=�shell_HeapBlockFetch(256):D$=�shell_OSVarGetVal(a%,256,"Obey$Dir",1):E$=��shell_Leaf(D$),2):�shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+E$):�shell_HeapBlockReturn(a%):�_U%!&64�1<<4�
�_U%!&64=(_U%!&64�1<<4)
�:�

+ݤshell_TraceIsOn:�_U%!&64�(1<<9)�=��=�
4��shell_Tracef0(WA$):�QA%:�(�shell_TraceIsOn)��
�_U%!44<>-1�
QA%=_U%!44:�#QA%,WA$
�:�_U%!&94>0�
:�shell_BroadcastMessage(&43B00,"ShellDBug:Trace "+WA$)
�:�
$,��shell_Tracef2(vA%):�("MEDIT "+�~vA%):�
+6��shell_TraceExit:�_U%!44<>-1��#(_U%!44):_U%!44=-1
.�
3\��shell_AttachHotKey(XA$,_B%,HC%,gC%,M$,b%,T$,Y$):�x%,d%,c%,CA%,RA%,VD%:VD%=�:�_U%!60=0�
73_U%!60=�shell_HeapBlockFetch(24):d%=0:_U%!&B4=1
9O�d%=_U%!&B4*24:_U%!60=�shell_HeapBlockExtend(_U%!60,24):_U%!&B4=(_U%!&B4)+1
=�:x%=_U%!60:ȎXA$�
@�"F1":RA%=385
A�"F2":RA%=386
B�"F3":RA%=387
C�"F4":RA%=388
D�"F5":RA%=389
E�"F6":RA%=390
F�"F7":RA%=391
G�"F8":RA%=392
H�"F9":RA%=393
I�"F10":RA%=458
J�"F11":RA%=459
KRA%=(�XA$)-64:VD%=�
M�:�VD%�
O�_B%�RA%+=16
P�HC%�RA%+=32
Ql�:c%=x%+d%:c%!0=RA%:c%?4=_B%:c%?5=HC%:c%?6=gC%:c%!8=�shell_HeapBlockFetch(�M$+1):CA%=c%!8:$CA%=M$:�b%>0�
[Td%=�shell_SearchStatic(_U%!&B8,b%):�d%=-1��99,�shell_MessageNoArgs("SHELLMSG09")
]z�:c%!&C=b%:c%!16=�shell_HeapBlockFetch(�T$+1):CA%=c%!16:$CA%=T$:c%!20=�shell_HeapBlockFetch(�Y$+1):CA%=c%!20:$CA%=Y$:�
h�ݤshell_HotKeyProcess(RA%):�x%,p%,j%,e%,v%,j$,T$,Y$:�HC%,_B%,gC%,gA%,fA%,vB%,IG%,d%:�_%,q%:x%=_U%!60:p%=_U%!&B4*24:j%=�:e%=0:�:�x%!e%=RA%�
qj%=�
r�e%+=24
t�:�j%�e%>=p%:�j%�
wdc%=x%+e%:j$=$(c%!8):�shell_Tracef0("HotKeyProcess:Template name is '"+j$+"'"):�(j$<>""�c%!&C=0)�
��shell_CreateWindow(j$,v%):�shell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+�~v%+")"):q%=�shell_HeapBlockFetch(36):q%!0=v%:ș&400CB,,q%:gA%=(q%!4-q%!&C)/2:fA%=(q%!16-q%!8)/2:�shell_HeapBlockReturn(q%)
��:T$=$(c%!16):�T$<>""�
�J�shell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+T$+"'"):�c%!&C>0�
� o%=�("FN"+T$+"("+�c%!&C+")")
��o%=�("FN"+T$+"("+�v%+")")
��
�>��shell_Tracef0("HotKeyProcess:No Pre-Open FN registered")
�3�:d%=�shell_SearchStatic(_U%!&B8,c%!&C):�d%>-1�
�"�shell_OpenWindowStatic(c%!&C)
���c%!&C>0�
�*�99,�shell_MessageNoArgs("SHELLMSG09")
�*��shell_OpenWindowDynamic2(v%,gA%,fA%)
��
��:Y$=$(c%!20):�Y$<>""�
�K�shell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+Y$+"'"):�c%!&C>0�
� o%=�("FN"+T$+"("+�c%!&C+")")
��o%=�("FN"+Y$+"("+�v%+")")
��
�?��shell_Tracef0("HotKeyProcess:No Post-Open FN registered")
�
�:_%=�
��j$="":T$="":Y$="":_%=�
�	�:=_%
����shell_WindowCentreOnPointer(v%):�t%,SC%,gA%,fA%:SC%=�shell_HeapBlockFetch(20):ș&400CF,,SC%:q%=�shell_HeapBlockFetch(36):q%!0=v%:ș&400CB,,q%:gA%=(q%!4-q%!&C)/2:fA%=(q%!16-q%!8)/2:�shell_WindowMoveTo(v%,SC%!0+gA%,SC%!4-fA%)
�<�shell_HeapBlockReturn(q%):�shell_HeapBlockReturn(SC%):�
����shell_WindowCentreOnScreen(v%):�t%,sC%,tC%,sA%,UA%,OC%,qB%:ș&20035,-1,4�,,OC%:ș&20035,-1,5�,,qB%:ș&20035,-1,&B�,,sC%:ș&20035,-1,&C�,,tC%:sC%=sC%<<OC%:tC%=tC%<<qB%:q%=�shell_HeapBlockFetch(36):q%!0=v%:ș&400CB,,q%:sA%=(q%!&C-q%!4)
�eUA%=(q%!16-q%!8):�shell_WindowMoveTo(v%,(sC%/2)-(sA%/2),(tC%-UA%)/2):�shell_HeapBlockReturn(q%):�
�D��shell_OpenWindowStaticNewView(b%):�shell_OpenWindow(b%,�,-1):�
�E��shell_OpenWindowStatic(i%):�shell_SearchStatic(_U%!&B8,i%)>-1�
��shell_OpenWindow(i%,0,-1)
��
��:�
�;ݤshell_SearchStatic(dA%,i%):�j%,g%:j%=-1:g%=0:�i%<0�=0
��dA%<>0�
�ȕdA%!g%<>-1:�dA%!g%=i%�
�
j%=g%:=j%

�:g%+=4:�
	�:=j%
}��shell_CreateWindowStatic(z$,�i%):�tB%,dA%,c%,d%:tB%=�shell_GetWB(z$):tB%!64=_U%!16:ș&400C1,,tB%�i%:dA%=_U%!&B8:�dA%=0�
r�shell_Tracef0("CreateWindowStatic:Empty List"):_U%!&B8=�shell_HeapBlockFetch(8):dA%=_U%!&B8:dA%!0=i%:dA%!4=-1
p��shell_Tracef0("CreateWindowStatic:Searching for window handle"):d%=�shell_SearchStatic(_U%!&B8,i%):�d%=-1�
#{�shell_Tracef0("CreateWindowStatic:Not found - adding window handle to list"):d%=�shell_SearchStatic(_U%!&B8,0):�d%=-1�
(��shell_Tracef0("CreateWindowStatic:Extending window handle list"):g%=0:ȕdA%!g%<>-1:g%+=4:�:_U%!&B8=�shell_HeapBlockExtend(_U%!&B8,4):dA%=_U%!&B8
0J��shell_Tracef0("CreateWindowStatic:Found unused space in list"):g%=d%
5�:c%=dA%+g%:c%!0=i%:c%!4=-1
8�
9�:�
?p��shell_InitHelpSystem(G$,gF%):�BA$,FA%,qA%,Z$,XD%,ZB%:_U%!&D4=0:�_U%!&D8<>0��shell_HeapBlockReturn(_U%!&D8)
B@_U%!&D8=0:�shell_ScanForHelp:�gF%�BA$=" -DieWithTask"�BA$=""
E�_U%!&64�1<<3�
G�G$="":qA%=�shell_HeapBlockFetch(256):Z$=�shell_OSVarGetVal(qA%,256,�shell_GetAppName+"Res$Path",-1):�shell_HeapBlockReturn(qA%):�:FA%=�Z$,","):�FA%>0�
N5�shell_FileExists(�Z$,FA%-1)+�shell_GetAppName)�
OGG$=�Z$,FA%-1)+�shell_GetAppName:�shell_StrongHlpChkFiles(G$)�XD%=�
Q�Z$=�Z$,FA%+1)
S�
T.��shell_FileExists(Z$+�shell_GetAppName)�
V?G$=Z$+�shell_GetAppName:�shell_StrongHlpChkFiles(G$)�XD%=�
XJ�ZB%=�:�shell_OK(�shell_MessageOneArg("SHELLMSG26",�shell_GetAppName))
[�
\�:�G$<>""�XD%�ZB%
^��shell_FileExists(G$)�
b(笤shell_StrongHlpChkFiles(G$)�ZB%=�
c.̅99,�shell_MessageOneArg("SHELLMSG33",G$)
e�
f
�:�ZB%=0�
hD�shell_StrongHlpMsg("Help_Install "+G$+BA$):_U%!&64=_U%!&64�1<<7
j�:�
pQ��shell_HelpWord(CA$):�PG%,c%,AA%:AA%=�shell_HeapBlockFetch(512):�_U%!&D0=-1�
u.�shell_OSVarExists(AA%,"StrongHelp$Dir")�
wKș&600DE,"<StrongHelp$Dir>":�_U%!&D8<>0��shell_HeapBlockReturn(_U%!&D8)
y<_U%!&D8=�shell_HeapBlockFetch(�CA$+1):c%=_U%!&D8:$c%=CA$
|N��shell_HeapBlockReturn(AA%):�shell_OK(�shell_MessageNoArgs("SHELLMSG11"))
��
�*��shell_StrongHlpMsg("Help_Word "+CA$)
�#�:�shell_HeapBlockReturn(AA%):�
�A��shell_StrongHlpMsg(o$):�shell_BroadcastMessage(&43B00,o$):�
����shell_ScanForHelp:�UB%,vC%:UB%=�shell_HeapBlockFetch(256):�:UB%!&C=0:ș&400E7,19,UB%,-2,_U%!&D4�,,vC%:_U%!&D4=_U%!&D4+1:�vC%<>-1�(_U%!&D4)>64:�vC%<>-1�
�@UB%!0=24:UB%!&C=0:UB%!16=&400C6:UB%!20=vC%:ș&400E7,17,UB%,0
�#�:�shell_HeapBlockReturn(UB%):�
����shell_BroadcastMessage(lF%,o$):�z%,ZD%:ZD%=(�o$+30)��3:z%=�shell_HeapBlockFetch(ZD%):z%!&C=0:z%!16=lF%:$(z%+20)=o$+�(0):z%!0=ZD%:ș&600E7,17,z%,0:�shell_HeapBlockReturn(z%):�
�J��shell_WindowToggleBackIcon(�b%):�shell_WindowToggleFlags(b%,1<<24):�
�K��shell_WindowToggleCloseIcon(�b%):�shell_WindowToggleFlags(b%,1<<25):�
�J��shell_WindowToggleTitleBar(�b%):�shell_WindowToggleFlags(b%,1<<26):�
�L��shell_WindowToggleToggleIcon(�b%):�shell_WindowToggleFlags(b%,1<<27):�
�L��shell_WindowToggleHScrollBar(�b%):�shell_WindowToggleFlags(b%,1<<30):�
�P��shell_WindowToggleAdjustSizeIcon(�b%):�shell_WindowToggleFlags(b%,1<<29):�
�L��shell_WindowToggleVScrollBar(�b%):�shell_WindowToggleFlags(b%,1<<28):�
���shell_WindowToggleFlags(�b%,fC%):�a%,n%,oC%,i%:�shell_Tracef0("WindowToggleFlags:wh%=&"+�~b%):oC%=�shell_WindowIsOpen(b%):a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):a%!0=b%:ș&400CC,,a%:n%=a%!32:n%=(n%�fC%):a%!32=n%:ș&400C3,,a%
�"ș&400C1,,a%+4�i%:!a%=i%:�oC%�
�ș&400C5,,a%
�)�:�shell_HeapBlockReturn(a%):�i%<>b%�
*�shell_UpdateWindowHandle(b%,i%):b%=i%
�:�

���shell_ListClickSelect:�x%,e%,p%,c%,CA%:x%=_U%!&C:p%=�shell_HeapBlockInfo(x%):�shell_Tracef0(" "):�shell_Tracef0("List of ClickSelect events:"):e%=0:�:c%=x%!(e%+20):CA%=x%+e%:�shell_HeapBlockExists(c%)�

�$c%<>""�
v�shell_Tracef0("&"+�shell_StringPadTrailing(�~CA%!0," ",8)+" &"+�shell_StringPadTrailing(�~CA%!4," ",8)+"   "+$c%)
�
,�:e%+=48:�(e%>=p%):�shell_Tracef0(" "):�
%���shell_ListClickAdjust:�x%,e%,p%,c%,CA%:x%=_U%!&C:p%=�shell_HeapBlockInfo(x%):�shell_Tracef0(" "):�shell_Tracef0("List of ClickAdjust events:"):e%=0:�:c%=x%!(e%+24):CA%=x%+e%:�shell_HeapBlockExists(c%)�
1
�$c%<>""�
3v�shell_Tracef0("&"+�shell_StringPadTrailing(�~CA%!0," ",8)+" &"+�shell_StringPadTrailing(�~CA%!4," ",8)+"   "+$c%)
5�
6,�:e%+=48:�(e%>=p%):�shell_Tracef0(" "):�
@���shell_ListHelpTags:�x%,e%,p%,c%,CA%:x%=_U%!&C:p%=�shell_HeapBlockInfo(x%):�shell_Tracef0(" "):�shell_Tracef0("List of attached help tags:"):e%=0:�:c%=x%!(e%+44):CA%=x%+e%:�shell_HeapBlockExists(c%)�
L
�$c%<>""�
Nv�shell_Tracef0("&"+�shell_StringPadTrailing(�~CA%!0," ",8)+" &"+�shell_StringPadTrailing(�~CA%!4," ",8)+"   "+$c%)
P�
Q,�:e%+=48:�(e%>=p%):�shell_Tracef0(" "):�
[H��shell_MemFill(TC%,ME%,NE%):�I%,wC%,bD%:wC%=ME%�4:bD%=ME%�4:�wC%>0�
`&�I%=1�(wC%*4)�4:TC%!(I%-1)=NE%:�I%
c
�:�bD%>0�
e.TC%=TC%+(wC%*4):�I%=0�bD%-1:TC%?I%=NE%:�I%
i�:�
p���shell_AttachFontMenu(b%,f%,J$,PA$):�m%:�shell_FontMenuInit:ș"FontMenu_Select",""+�0,_U%!260�,m%:_U%!&FC=m%:�shell_EventAdd(b%,f%,0,-2,J$):�shell_Tracef0("AttachFontMenu:Attaching font menu"):�PA$<>""��shell_AttachMenuMaker(b%,f%,PA$)
{�
����shell_AttachFontSubMenu(GB%,F$,J$):�EG%,m%,c%,g%:�shell_FontMenuInit:ș"FontMenu_Select",""+�0,_U%!260�,m%:ș&45BCE,GB%,m%:ș&45BCC,,�:_U%!&FC=m%:�shell_EventListMenuWarn(GB%,m%,F$,J$):�shell_Tracef0("AttachFontSubMenu:Attaching font menu &"+�~m%):�
����shell_FontMenuInit:�("RMEnsure FontMenu 1.16 RMLoad <EvntShell$Path>FontMenu"):�("RMEnsure FontMenu 1.16 Error Couldn't load FontMenu module"):�_U%!&F0=-1�
�ș"FontMenu_Create"�_U%!&F0
�'�:�shell_FontMenuSelectFont("",�):�
�o��shell_FontMenuSelectFont(p$,cD%):�c%,JB%:�shell_HeapBlockExists(_U%!&F4)��shell_HeapBlockReturn(_U%!&F4)
�H_U%!&F4=�shell_HeapBlockFetch(�p$+1):c%=_U%!&F4:$c%=p$:�cD%<>0�cD%=1
�B_U%!260=cD%:ș"FontMenu_Select",p$,_U%!260�,JB%:�JB%<>_U%!&FC�
�-�shell_FontMenuUpdatePtr(JB%):_U%!&FC=JB%
�=�:�shell_Tracef0("FontMenuSelectFont:Font is '"+p$+"'"):�
�Qݤshell_FontMenuGetLastSelectedFont:�c%:笤shell_HeapBlockExists(_U%!&F4)�=""
�c%=_U%!&F4:=$c%
�x��shell_FontMenuUpdatePtr(e%):�x%,g%:�shell_Tracef0("FontMenuUpdatePtr:Started.."):�shell_HeapBlockExists(_U%!&DC)�
à�shell_Tracef0("FontMenuUpdatePtr:HeapBlock found.."):x%=_U%!&DC:g%=0:�:�shell_Tracef0("FontMenuUpdatePtr:Substituting ptr.."):x%!(g%+8)=e%:g%+=&C:�x%!g%=-1
��:�
Ӎ��shell_MenuUpdateHandle(PE%,QE%):�p%,e%,h%,m%:p%=�shell_HeapBlockInfo(_U%!&C)-8:e%=0:j%=�:h%=_U%!&C:�:m%=h%!(e%+8):�m%=PE%�h%!(e%+8)=QE%
�+e%+=48:�(e%>=p%):�_U%!24=PE%�_U%!24=QE%
��
�L��shell_FindFont(�b$,xC%,yC%,�eD%):笤shell_FontIsAvailable(b$,xC%,yC%)�
�b$="Trinity.Medium"
�*�:ș&40081,,b$,xC%*16,yC%*16,0,0�eD%:�
�4ݤshell_FontIsAvailable(b$,xC%,yC%):�:��:��:=�
�7ș&40081,0,b$,xC%*16,yC%*16,0,0�eD%:ș&40082,eD%:=�
�;ݤshell_CheckSelection(eF%):�c%,g%:c%=_U%!256:�c%=0�=-1
��_U%!24=_U%!&FC�=0
��:�eF%!g%<>c%!g%�=-1
�g%+=4:�c%!g%=-1:=g%
vݤshell_MenuGetItemAddress(m%,TE%):�g%,kB%:ș&45BC7,m%�m%:�:kB%=m%+28+((TE%!g%)*24):m%=kB%!4:g%+=4:�TE%!g%=-1:=kB%
%ݤshell_GetLastMouseXPos:=_U%!272
%ݤshell_GetLastMouseYPos:=_U%!276
���shell_UpdateWindowHandle(aA%,OA%):�shell_Tracef0("UpdateWindowHandle:Updating stored window handles"):�shell_Tracef0("UpdateWindowHandle:old handle=&"+�~aA%):�shell_Tracef0("UpdateWindowHandle:new handle=&"+�~OA%):�OA%<>aA%�
%�_U%!28=aA%�_U%!28=OA%
&��shell_FixEventBlock(aA%,OA%,_U%!&C,48):�shell_FixEventBlock(aA%,OA%,_U%!96,16):�shell_FixEventBlock(aA%,OA%,_U%!72,24):�shell_FixEventBlock(aA%,OA%,_U%!92,24):�shell_FixEventBlock2(aA%,OA%,_U%!&68,16):�shell_FixEventBlock2(aA%,OA%,_U%!332,32)
,'�shell_UpdateStaticWindows(aA%,OA%)
-�:�
3���shell_UpdateStaticWindows(aA%,OA%):�d%,dA%:�shell_Tracef0("UpdateStaticWindows:Correcting static window list.."):dA%=_U%!&B8:d%=�shell_SearchStatic(_U%!&B8,aA%):dA%!d%=OA%:�
@L��shell_FixEventBlock(aA%,OA%,h%,d%):�e%,p%:�shell_HeapBlockExists(h%)�
C1p%=�shell_HeapBlockInfo(h%)-8:�:�(h%!e%=aA%)�
F
h%!e%=OA%
G�:e%+=d%:�(e%>=p%)
J�:�
PR��shell_FixEventBlock2(aA%,OA%,h%,d%):�e%,p%:e%=4:�shell_HeapBlockExists(h%)�
Tp%=!h%:�:�(h%!e%=aA%)�
W
h%!e%=OA%
X�:e%+=d%:�(e%>=p%)
[�:�
a���shell_IconSelectAll(b%):�a%,I%:a%=�shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=1<<21:a%!&C=1<<21:ș&400D6,!a%,I%,5<<21,0<<21:ȕ!I%>-1:a%!4=!I%:ș&400CD,,a%:I%+=4:�:�shell_HeapBlockReturn(a%):�
q���shell_IconDeselectAll(b%):�a%,I%:a%=�shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=0:a%!&C=1<<21:ș&400D6,!a%,I%,5<<21,1<<21:ȕ!I%>-1:a%!4=!I%:ș&400CD,,a%:I%+=4:�:�shell_HeapBlockReturn(a%):�
�`��shell_Message_SaveDesktop(Q%):�EA$:EA$="Run "+�shell_GetAppDir+�&A:ș&C,2,Q%!20,EA$,�EA$:�
�^��shell_MessagesInit(C$,�zC%,�WE%):�hA%,n%:�:��:�3,"Cannot open message file '"+C$+"'"
�Cș&41500,,C$�n%,,hA%:�n%�1�WE%=0�WE%=�shell_HeapBlockFetch(hA%)
��ș30,6,,,17+�(C$)�,,zC%:$(zC%+16)=C$:ș&41501,zC%,zC%+16:�shell_Tracef0("MessagesInit:Message resource file '"+C$+"' loaded"):�
�`ݤshell_PrinterOnLine:�XE%,YE%:XE%=�(-4):�2,1,0,1,0,1,0:�=0:�:��>30:YE%=�(�(-4)<XE%):*FX21,3
��3:=YE%
����shell_AttachBumpHandler(b%,f%,ZE%,aE%,nF%,pF%,bE%,sF%,FA$,GA$):�l%,d%,c%,CA%,pA%:d%=�shell_GetEventListOffset2(b%,ZE%,_U%+&68,16,�):l%=_U%!&68+d%:l%!0=b%:l%!4=ZE%:l%!8=bE%:l%!&C=�shell_HeapBlockFetch(24):pA%=l%!&C:pA%!0=f%:pA%!4=nF%:pA%!8=pF%
��FA$>0�
�>pA%!&C=�shell_HeapBlockFetch((�FA$)+1):CA%=pA%!&C:$CA%=FA$
�
�pA%!&C=0
��:�GA$>0�
�>pA%!16=�shell_HeapBlockFetch((�GA$)+1):CA%=pA%!16:$CA%=GA$
�
�pA%!16=0
��:�sF%=-1�pA%!20=1�pA%!20=0
�od%=�shell_GetEventListOffset2(b%,aE%,_U%+&68,16,�):l%=_U%!&68+d%:l%!0=b%:l%!4=aE%:l%!8=bE%*(-1):l%!&C=pA%:�
�`��shell_HandleBumpIcons(d%,b%,f%,_button%):�GG%,LA%,l%,UC%,_temp$,gD%:�MG%,eB%:�_button%<>2�
�Pl%=_U%!&68+d%:_U%!288=b%:_U%!292=f%:_U%!296=d%:LA%=l%!&C:gD%=LA%!16:�gD%<>0�
�C_temp$=�shell_IconGetData(b%,LA%!0):UC%=�("FN"+$gD%+"(_temp$)")
�(�UC%=�(�shell_IconGetData(b%,LA%!0))
��:�_button%=1�
�_new_val%=UC%+((l%!8)*(-1))
��_new_val%=UC%+l%!8
��:�LA%!20=0�
�$�_new_val%>LA%!8�_new_val%=LA%!8
�$�_new_val%<LA%!4�_new_val%=LA%!4
�%��_new_val%>LA%!8�_new_val%=LA%!4
�$�_new_val%<LA%!4�_new_val%=LA%!8
��:eB%=LA%!&C:�eB%<>0�
1_new_val$=�("FN"+$eB%+"(_new_val%,_button%)")
�_new_val$=�_new_val%
�:�_new_val%<>UC%�
-�shell_IconPutData(b%,LA%!0,_new_val$,-1)
�
	�:�
�ݤshell_WindowSetSpriteArea(v%,hD%):�a%,OA%,PC%,iD%:a%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(v%)*32)):!a%=v%:ș&400CC,,a%:a%!68=hD%:�shell_IconSetSpriteArea(a%!60,a%+76,hD%):�(a%!88)>0�
V�PC%=0�(a%!88)-1:iD%=a%+92+PC%*32:�shell_IconSetSpriteArea(iD%!16,iD%+20,hD%):�PC%
/�:ș&400C3,,a%:ș&400C1,,a%+4�OA%:�OA%<>v%�
,�shell_UpdateWindowHandle(v%,OA%):v%=OA%
!$�:�shell_HeapBlockReturn(a%):=v%
(D��shell_IconSetSpriteArea(n%,VC%,JF%):�((n%�3)=2)�((n%�256)<>0)�
*
VC%!4=JF%
+�:�
0>ݤshell_StrongHlpIsAvailable:�LB%,AA%:LB%=�:�_U%!&64�1<<7�
5kAA%=�shell_HeapBlockFetch(256):LB%=�shell_OSVarExists(AA%,"StrongHelp$Dir"):�shell_HeapBlockReturn(AA%)
8
�:=LB%
>/ݤshell_MenuNew(S$):�i%:ș&45BC1,,S$�i%:=i%
F,ݤshell_MenuAdd(i%,RA$,J$):�jD%:�J$<>""�
Iș&45BC2,i%,RA$,J$�jD%
J�ș&45BC2,i%,RA$�jD%
L
�:=jD%
X0��shell_MenuTick(nA%,ZA%):ș&45BC9,nA%,ZA%:�
_5��shell_MenuTickOnly1(WA%,FA%):ș&45BD1,WA%,FA%:�
f-��shell_MenuTickOnly2(nA%):ș&45BD1,nA%:�
m/��shell_MenuShade(i%,ZA%):ș&45BCB,i%,ZA%:�
t2��shell_MenuDotted(nA%,ZA%):ș&45BCA,nA%,ZA%:�
{;��shell_MenuColours(nA%,lD%,tD%):ș&45BD0,nA%,lD%,tD%:�
�B��shell_MenuWritable(nA%,ZA%,hA%,t$):ș&45BCD,nA%,ZA%,hA%,t$:�
�1��shell_MenuPutData(nA%,P$):ș&45BC8,nA%,P$:�
�3��shell_MenuCallHandler(v%,_h_blk%):�:��:��:�
��("FN"+$v%+"(_h_blk%)")
��
����shell_AttachOpenWindow(b%,A$):�a%,c%,d%:�shell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler"):�b%<0��99,�shell_MessageOneArg("SHELLMSG27","AttachOpenWindow")
��d%=�shell_GetEventListOffset(b%,-1,_U%+304,&C,�):a%=_U%!304+d%:a%!0=b%:a%!4=-1:a%!8=�shell_HeapBlockFetch(�(A$)+1):c%=a%!8:$c%=A$:�
����shell_AttachCloseWindowHandler(b%,A$):�a%,c%,d%:�shell_Tracef0("AttachCloseWindowHandler:Attaching CloseWindow Handler"):�b%<0��99,�shell_MessageOneArg("SHELLMSG27","AttachCloseWindow")
��d%=�shell_GetEventListOffset(b%,-1,_U%+308,&C,�):a%=_U%!308+d%:a%!0=b%:a%!4=-1:a%!8=�shell_HeapBlockFetch(�(A$)+1):c%=a%!8:$c%=A$:�
�X��shell_SpriteRename(CC%,ZA$,aA$):ș46,512+26,CC%,�shell_SpriteGetPtr(CC%,ZA$),aA$:�
�7��shell_SpriteAreaSave(CC%,C$):ș46,512+&C,CC%,C$:�
�V��shell_EnsurePoll:�DA%:�:DA%=�shell_Poll_I(0,_U%!&94):�shell_Action(DA%):�DA%=0:�
�#ݤshell_WimpGetVersion:=_U%!316
�Qݤshell_OSCheckVersion(LF%):=�shell_OSModuleCheckVersion("UtilityModule",LF%)
��ݤshell_OSModuleCheckVersion(bA$,a):�a%,nB%,O$:a%=�shell_HeapBlockFetch(256):�("Set Module$Check Y"):�("RMEnsure "+bA$+" "+�a+" Set Module$Check N"):ș35,"Module$Check",a%,256,0,0�,,nB%:a%?nB%=&D:�("Unset Module$Check"):O$=$a%
�,�shell_HeapBlockReturn(a%):�O$="N"�=��=�
����shell_MessageSendDataLoad(w%,R$):�z%:z%=�shell_HeapBlockFetch(256):z%!0=256:z%!4=0:z%!&C=0:z%!16=5:z%!20=0:z%!28=0:z%!32=0:z%!36=0:z%!40=w%:$(z%+44)=R$+�(0):ș&400E7,17,z%,0:�shell_HeapBlockReturn(z%):�
�Lݤshell_MenuMakeFromFile(S$,cA$,i$):�i%,X%,B$,o%:�shell_FileExists(i$)�
Ti%=�shell_MenuNew(S$):X%=�(i$):�:B$=�#X%:o%=�shell_MenuAdd(i%,B$,cA$):��#X%:�#X%
		�:=i%
�ݤshell_BinarySearch(_search_term$,dA$,h$,NF%,kD%):�_pos%,rA%,_wp$,AD%,NG%,mD%,nD%,gE%,j%,oD%:kD%+=1:oD%=�:j%=�:rA%=kD%:AD%=0:_pos%=rA%�2:nD%=NF%-1:mD%=kD%:�:_wp$=�("FN"+dA$+"(_pos%)"):pD%=_pos%:�_search_term$=_wp$�
j%=�
(��("FN"+h$+"(_search_term$,_wp$)")�
!+mD%=_pos%:rA%=_pos%-nD%:_pos%=rA%�2+AD%
$6�nD%=_pos%:AD%=_pos%:rA%=mD%-_pos%:_pos%=rA%�2+AD%
*�
+�:�gE%=pD%�oD%=�
-!gE%=pD%:�j%�oD%:�j%�=-1�=pD%
4#ݤshell_IconLastClicked:=_U%!32
:hݤshell_MenuGetNrItems(WA%):�m%,_%,iE%:ș&45BC7,WA%�m%:m%+=28:�:_%=(m%?0�&80):iE%+=1:m%+=24:�_%:=iE%
Hcݤshell_MenuGetNrDotted(WA%):�m%,_%,qC%:ș&45BC7,WA%�m%:m%+=28:�:_%=(m%?0�&80):�(m%?0�2)�qC%+=1
Om%+=24:�_%=-1:=qC%
V~ݤshell_MenuGetItemHandler(WA%,XC%):�XA%,e%,HA$:XA%=�shell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:ș&45BC4,WA%,XA%�e%:�e%=0�
]
HA$=""
^�HA$=$(e%)
`&�:�shell_HeapBlockReturn(XA%):=HA$
g�ݤshell_MenuGetItemText(WA%,XC%):�XA%,e%,H$:XA%=�shell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:ș&45BC4,WA%,XA%�,,e%:H$=$(e%!&C):�shell_HeapBlockReturn(XA%):=H$
t�ݤshell_MenuGetItemHandle(WA%,XC%):�XA%,e%,i%:XA%=�shell_HeapBlockFetch(8):XA%!0=XC%:XA%!4=-1:ș&45BC4,WA%,XA%�,,e%:i%=e%!8:�shell_HeapBlockReturn(XA%):=i%
�=ݤshell_MenuGetItemHeight(WA%):�m%:ș&45BC7,WA%�m%:=m%!20
��ݤshell_MenuCalculateHeight(WA%):�UA%:UA%=�shell_MenuGetNrItems(WA%)*�shell_MenuGetItemHeight(WA%):=UA%+(�shell_MenuGetNrDotted(WA%)*24)
�x��shell_MenuSortItems(m%,gA$,WF%,TC%,rD%):�sD%:sD%=�shell_MenuGetNrItems(m%)-1:_shell_MS_handle%=m%:�rD%>sD%�rD%=sD%
�Hș&406C0:�shell_QuickSort(gA$,"_shell_MS_swap",WF%,0,rD%):ș&406C1:�
����shell_QuickSort(h$,k$,_asc%,_start%,_end%):�_lo%,_h%,_F%,_temp%,o%:_lo%=_start%:_hi%=_end%:_F%=�:_temp%=_lo%-1+�(_hi%+1-_lo%):o%=�("FN"+k$+"(_lo%,_temp%)"):�:�_asc%=0�
��("FN"+h$+"(_lo%,_hi%)")�
�(o%=�("FN"+k$+"(_lo%,_hi%)"):_F%=�_F%
��
���("FN"+h$+"(_hi%,_lo%)")�
�(o%=�("FN"+k$+"(_hi%,_lo%)"):_F%=�_F%
��
�"�:�_F%�_hi%=_hi%-1�_lo%=_lo%+1
�K�_lo%=_hi%:�_start%<_lo%-1��shell_QuickSort(h$,k$,_asc%,_start%,_lo%-1)
�<�_hi%+1<_end%��shell_QuickSort(h$,k$,_asc%,_hi%+1,_end%)
��
��ݤ_shell_MS_swap(BD%,CD%):�l$,m$,jE%,kE%:l$=�shell_MenuGetItemText(_shell_MS_handle%,BD%):m$=�shell_MenuGetItemText(_shell_MS_handle%,CD%):jE%=�shell_MenuGetItemHandle(_shell_MS_handle%,BD%):kE%=�shell_MenuGetItemHandle(_shell_MS_handle%,CD%)
�<�shell_MenuPutData(jE%,m$):�shell_MenuPutData(kE%,l$):=0
ŕݤ_shell_MS_comp(BD%,CD%):�l$,m$:l$=�shell_MenuGetItemText(_shell_MS_handle%,BD%):m$=�shell_MenuGetItemText(_shell_MS_handle%,CD%):�l$<�m$�=��=�
ο��shell_WindowSetTitleRightJust(�b%):�t%,TA%,i%,ZC%:ZC%=�shell_WindowIsOpen(b%):t%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):!t%=b%:ș&400CC,,t%:TA%=t%!60:�(TA%�(1<<3))�
���shell_Tracef0("WindowSetTitleRightJust:title flags = &"+�~TA%):�shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit set.."):�shell_Tracef0("WindowSetTitleRightJust:Unsetting horizontally centred bit.."):TA%=TA%�(1<<3)
�C�shell_Tracef0("WindowSetTitleRightJust:title flags = &"+�~TA%)
�Q��shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit NOT set..")
��:�shell_Tracef0("WindowSetTitleRightJust:Setting right justified bit.."):TA%=TA%�(1<<9):t%!60=TA%:ș&400C3,,t%:ș&400C1,,t%+4�i%:�b%<>i%�
�n�shell_Tracef0("WindowSetTitleRightJust:Updating window handle..."):�shell_UpdateWindowHandle(b%,i%):b%=i%
�$�:�ZC%��shell_OpenWindow(i%,0,0)
� �shell_HeapBlockReturn(t%):�
����shell_WindowSetTitleCentreJust(�b%):�t%,TA%,i%,ZC%:ZC%=�shell_WindowIsOpen(b%):t%=�shell_HeapBlockFetch(&64+(�shell_WindowCountIcons(b%)*32)):!t%=b%:ș&400CC,,t%:TA%=t%!60:�shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+�~TA%)
g�shell_Tracef0("WindowSetTitleCentreJust:t_flags% AND (1 << 3) = "+�~(TA%�(1<<3))):�(TA%�(1<<3))=0�
��shell_Tracef0("WindowSetTitleCentreJust:Horizontally centred bit not set.."):�shell_Tracef0("WindowSetTitleCentreJust:Setting horizontally centred bit.."):TA%=TA%�(1<<3):�shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+�~TA%):t%!60=TA%
+ș&400C3,,t%:ș&400C1,,t%+4�i%:�b%<>i%�
o�shell_Tracef0("WindowSetTitleCentreJust:Updating window handle..."):�shell_UpdateWindowHandle(b%,i%):b%=i%
$�:�ZC%��shell_OpenWindow(i%,0,0)
"�:�shell_HeapBlockReturn(t%):�
n��shell_IconGetSelectedIcons(b%,DC%,�r%):�nE%:nE%=(DC%<<16)+(1<<21):ș&400D6,b%,r%,nE%,(DC%<<16)+(1<<21):�
''ݤshell_GetLastMouseButton:=_U%!320
-(ݤshell_GetLastWindowClicked:=_U%!28
3&ݤshell_GetLastIconClicked:=_U%!32
9Kݤshell_IconIndirSize(jA%,n%,VC%,X%):�hA%,oE%,g%,NC%:�(n%�&800100)=256�
<"hA%=VC%!8:�(n%�1)�(VC%!4<>-1)�
>AoE%=VC%!4:�#X%=jA%+oE%:g%=0:�:NC%=�#X%:g%+=1:�NC%<32:hA%+=+g%
F�
G
�hA%=0
I
�:=hA%
OKݤshell_StrongHlpChkFiles(G$):�ZB%:笤shell_FileExists(G$+".HelpData")�
S<ZB%=-1:�99,�shell_MessageOneArg("SHELLMSG32","HelpData")
U'�:笤shell_FileExists(G$+".Index")�
X9ZB%=-1:�99,�shell_MessageOneArg("SHELLMSG32","Index")
Z�:�ZB%=��=��=�
`y��shell_CaretMoveCaret(b%,DA%):�BA%,pE%,g%,e%,bB%:g%=0:e%=0:BA%=�shell_HeapBlockFetch(&800):ș&400D3,,BA%:�BA%!4<>-1�
h?pE%=BA%!4:ș&400D6,b%,BA%,&40E000,&E000:�:�BA%!g%=pE%�e%=g%
mg%+=4:�BA%!g%=-1:ȎDA%�
p�0:bB%=!BA%
s�1:bB%=BA%!(g%-4)
v�2:�BA%!(e%+4)<>-1�
ybB%=BA%!(e%+4)
z
�bB%=!BA%
|�
}
�3:�e%>0�
�bB%=BA%!(e%-4)
��bB%=BA%!(g%-4)
��
�<�:ș&400D2,b%,bB%,-1,-1,-1,�(�shell_IconGetData(b%,bB%))
�#�:�shell_HeapBlockReturn(BA%):�
�?��shell_CaretPutFirstIcon(b%):�shell_CaretMoveCaret(b%,0):�
�>��shell_CaretPutLastIcon(b%):�shell_CaretMoveCaret(b%,1):�
�>��shell_CaretPutNextIcon(b%):�shell_CaretMoveCaret(b%,2):�
�>��shell_CaretPutPrevIcon(b%):�shell_CaretMoveCaret(b%,3):�
�J��shell_TemplateFileInfo(C$,�eA%,�SA%,�_%):�GC%:GC%=�RO3_Present:�GC%�
�+�shell_TemplateFileInfo3(C$,eA%,SA%,_%)
�,��shell_TemplateFileInfo2(C$,eA%,SA%,_%)
��:�
����shell_TemplateFileInfo2(C$,�eA%,�SA%,�_%):�FA%,rB%,VB%:�AA%,X%,DD%,LE%:�g%,NC%,yD%,AB%,cC%,n%:FA%=0:SA%=0:rB%=0:VB%=0:_%=0:笤shell_FileExists(C$)�_%=-1
�$�shell_FileType(C$)<>&FEC�_%=-2
�
�_%=0�
�UAA%=�shell_HeapBlockFetch(&D):X%=�(C$):�#X%=16:�:ș&C,4,X%,AA%,4:jA%=!AA%:�jA%>0�
��SA%+=1:zD%=0:ș&C,4,X%,AA%,4:DD%=!AA%:ș&C,4,X%,AA%,4:LE%=!AA%:ș&C,4,X%,AA%,&C:yD%=�#X%:�#X%=jA%+56:ș&C,4,X%,AA%,4:n%=!AA%:�#X%=jA%+72:ș&C,4,X%,AA%,&C:zD%+=�shell_IconIndirSize(jA%,n%,AA%,X%):�#X%=jA%+84:ș&C,4,X%,AA%,4:AB%=!AA%:�AB%>0�
��cC%=0�AB%-1:�#X%=jA%+88+(cC%*32)+16:ș&C,4,X%,AA%,4:n%=!AA%:�#X%=jA%+88+(cC%*32)+20:ș&C,4,X%,AA%,&C:zD%+=�shell_IconIndirSize(jA%,n%,AA%,X%):�cC%
�!�:�#X%=yD%:rB%+=zD%:�DD%>VB%�
�VB%=DD%
��
�9�:�jA%=0:�#X%:�shell_HeapBlockReturn(AA%):eA%=VB%+rB%
��:�
����shell_TemplateFileInfo3(C$,�eA%,�SA%,�_%):�FA%,rB%,VB%,jA%:�AA%:�g%,NC%,yD%,AB%,cC%,n%:FA%=0:SA%=0:rB%=0:VB%=0:AA%=�shell_HeapBlockFetch(&D):ș&400D9,,C$:�:$AA%="*":ș&400DB,,-1,,,,AA%,FA%�,eA%,jF%,,,,FA%:�FA%<>0�
�eA%>VB%�VB%=eA%
rB%+=jF%:SA%+=1

?�:�FA%=0:ș&400DA:eA%=VB%+rB%:�shell_HeapBlockReturn(AA%):�
�ݤRO3_Present:�a%,nB%,O$:a%=�shell_HeapBlockFetch(256):�("Set RO3$Check Y"):�("RMEnsure UtilityModule 3.00 Set RO3$Check N"):ș35,"RO3$Check",a%,256,0,0�,,nB%:a%?nB%=&D:�("Unset RO3$Check"):O$=$a%:�shell_HeapBlockReturn(a%):�O$="N"�=��=�
(Jݤshell_WindowCountIcons(b%):�WB%,GC%,AB%:�(_U%!&64�1<<&A)�GC%=��GC%=�
+	�GC%�
-H�shell_Tracef0("WindowCountIcons:RISC OS 3 detected.."):�b%=-1�b%=-2
0yWB%=�shell_HeapBlockFetch(88):!WB%=b%:ș&400CC,,WB%+1:AB%=WB%!88:�shell_Tracef0("WindowCountIcons:nr_icons% = "+�AB%)
7d��shell_Tracef0("WindowCountIcons:RISC OS 3 NOT found.."):WB%=�shell_HeapBlockFetch(6000):�b%>0�
=$!WB%=b%:ș&400CC,,WB%:AB%=WB%!88
@:�:�shell_Tracef0("WindowCountIcons:nr_icons% = "+�AB%)
D&�:�shell_HeapBlockReturn(WB%):=AB%
K/ݤshell_SliderGetValue(i%):=(_U%!332+i%)!28
Q���shell_HandleSlider(b%,f%,mA%):�GA%,IA%,MA%,a%,l%:�shell_Tracef0("HandleSlider:slider drag event found.."):l%=_U%!332+mA%:GA%=�shell_HeapBlockFetch(50):GA%!0=b%:GA%!4=l%!8:ș&400CE,,GA%:a%=_U%!328:a%!0=0:a%!4=GA%!16-GA%!8:a%!8=f%:a%!&C=l%!&C:a%!16=l%
b�a%!24=l%!24:GA%!0=b%:ș&400CB,,GA%:IA%=GA%!4-GA%!20:MA%=GA%!16-GA%!24:GA%!4=f%:ș&400CE,,GA%:GA%!4=7:GA%!8+=IA%:GA%!&C+=MA%:GA%!16+=IA%:GA%!20+=MA%:GA%!24=GA%!8:GA%!28=GA%!&C:GA%!32=GA%!24+a%!4:GA%!36=GA%!20:ș&400D0,,GA%:�shell_HeapBlockReturn(GA%)
v_U%!&64=_U%!&64�1<<&B:�
|���shell_Slider:�zA%,a%,ED%,dC%,b%,IA%,UA$,EB%,_value%,o%:zA%=�shell_HeapBlockFetch(20):EB%=_U%!328:ș&400CF,,zA%:b%=zA%!&C:dC%=EB%!8:ED%=!zA%:�ED%<>!EB%�
��a%=�shell_HeapBlockFetch(50):!a%=b%:ș&400CB,,a%:IA%=ED%-a%!4:a%!4=dC%:ș&400CE,,a%:ș&400C4,,a%:a%!4=b%:a%!16=IA%:ș&400C2,,a%+4:ș&400D1,b%,a%!8,a%!&C,a%!8+EB%!4,a%!20:_value%=�(((IA%-a%!8)*&64)/EB%!4):c%=EB%!16:c%!28=_value%:�EB%!24<>-1�
�$o%=�("FN"+$(EB%!24)+"(_value%)")
��:�EB%!&C>=0�
�7UA$=�(_value%):�shell_IconPutData(b%,EB%!&C,UA$,-1)
�,�:Ȗ:!EB%=ED%:�shell_HeapBlockReturn(a%)
�#�:�shell_HeapBlockReturn(zA%):�
�Xݤshell_GetEventListOffset2(b%,f%,h%,_A%,MC%):�p%,e%,j%,d%,yA%,c%:�(!h%=0�MC%=�)�=-2
�
�(!h%=0)�
�E!h%=�shell_HeapBlockFetch(_A%+4):c%=!h%:c%!0=_A%:c%!4=0:c%!8=0:=4
���:c%=!h%:p%=!c%:�shell_Tracef0("GetEventListOffset2:list size is "+�p%):e%=4:j%=�:d%=-1:yA%=-1:c%=!h%:�:�shell_Tracef0("GetEventListOffset2:window handle=&"+�~c%!e%):�yA%<0�
��(c%!e%=0�c%!e%+4=0)�yA%=e%
��:�(c%!e%=b%)�
��f%=-1�
�d%=e%:j%=�
���c%!(e%+4)=f%�
�d%=e%:j%=�
��e%+=_A%
��
��
��e%+=_A%
��:�((e%>=(p%+4))�j%):�j%�
��
��:�(d%=-1�MC%)�
��yA%<0�
�Ud%=p%+4:!h%=�shell_HeapBlockExtend(!h%,_A%):c%=!h%:c%!0+=_A%:c%+=d%:c%!4=0:c%!8=0
��d%=yA%
��
�	�:=d%
����shell_SliderSetValue(i%,_value%):�l%,dC%,a%,zE%,BE%,CE%,GD%:�AF%,BF%:l%=_U%!332+i%:dC%=l%!4:b%=l%!0:zE%=l%!8:CE%=l%!&C:a%=�shell_HeapBlockFetch(50):a%!0=b%:a%!4=zE%:ș&400CE,,a%:BE%=a%!16:GD%=a%!8:AF%=a%!&C:BF%=a%!20:a%!4=dC%:ș&400CE,,a%
1ș&400C4,,a%:a%!4=b%:�_value%>&64�_value%=&64
�_value%<=0�
_value%=0:a%!16=a%!8
6�a%!16=GD%+(BE%*(_value%/&64))-(GD%*(_value%/&64))
J�:l%!28=_value%:ș&400C2,,a%+4:ș&400D1,b%,GD%,AF%,BE%,BF%:�l%!24<>-1�
#o%=�("FN"+$(l%!24)+"(_value%)")
�:�CE%>=0�
)�shell_IconPutData(b%,CE%,�_value%,�)
"�:�shell_HeapBlockReturn(a%):�
#�ݤshell_AttachSliderHandler(b%,CF%,JC%,sB%,ID%,FE%,Q$):�l%,d%:d%=�shell_GetEventListOffset2(b%,JC%,_U%+332,32,�):l%=_U%!332+d%:l%!0=b%:l%!4=JC%:l%!8=CF%:l%!&C=sB%:l%!16=ID%:l%!20=FE%:�Q$<>""�
=2l%!24=�shell_HeapBlockFetch(�Q$+1):$(l%!24)=Q$
?
�l%!24=-1
A:�:l%!28=0:�_U%!328=0�_U%!328=�shell_HeapBlockFetch(24)
Gs�shell_AttachClickSelect(b%,JC%,"_shell_icondrag"):�shell_AttachClickSelect(b%,CF%,"_shell_icondrag2"):�ID%>=0�
L��shell_AttachClickSelect(b%,ID%,"_shell_sliderbumpupS"):�shell_AttachClickSelect(b%,FE%,"_shell_sliderbumpdownS"):�shell_AttachClickAdjust(b%,ID%,"_shell_sliderbumpdownA"):�shell_AttachClickAdjust(b%,FE%,"_shell_sliderbumpupA")
P	�:=d%
W9ݤ_shell_icondrag(b%,f%):�shell_IconDragBox(b%,f%):=0
^�ݤ_shell_icondrag2(b%,f%):�FB%,l%,YA%,j%,JC%:l%=_U%!332:FB%=!l%:YA%=4:�shell_Tracef0("Event block size is "+�FB%):�:�l%!(YA%+8)=f%�
gj%=�:JC%=l%!(YA%+4)
h8�:YA%+=32:�YA%>=FB%�j%:�shell_IconDragBox(b%,JC%):=0
qIݤ_shell_sliderbumpupS(b%,f%):�o%:o%=�_shell_sliderbumpup(b%,f%,4):=0
yIݤ_shell_sliderbumpupA(b%,f%):�o%:o%=�_shell_sliderbumpup(b%,f%,1):=0
�Mݤ_shell_sliderbumpdownS(b%,f%):�o%:o%=�_shell_sliderbumpdown(b%,f%,4):=0
�Mݤ_shell_sliderbumpdownA(b%,f%):�o%:o%=�_shell_sliderbumpdown(b%,f%,1):=0
��ݤ_shell_sliderbumpup(b%,f%,YB%):�FB%,l%,YA%,j%,e%,_value%,uB%:�shell_Tracef0("In sliderbumpup routine"):l%=_U%!332:FB%=!l%:YA%=4:�shell_Tracef0("Event block size is "+�FB%):�YB%=4�uB%=16�uB%=20
��:�l%!(YA%+uB%)=f%�
��j%=�:e%=YA%:_value%=l%!(e%+28):�shell_Tracef0("Current slider value = "+�_value%):�shell_Tracef0("Slider handle is     = "+�e%)
��:YA%+=32:�YA%>=FB%�j%:�j%�
�'�shell_SliderSetValue(e%,_value%+1)
��:=0
��ݤ_shell_sliderbumpdown(b%,f%,YB%):�FB%,l%,YA%,j%,e%,_value%,uB%:�shell_Tracef0("In sliderbumpdown routine"):l%=_U%!332:FB%=!l%:YA%=4:�shell_Tracef0("Event block size is "+�FB%):�YB%=4�uB%=20�uB%=16
��:�l%!(YA%+uB%)=f%�
��j%=�:e%=YA%:_value%=l%!(e%+28):�shell_Tracef0("Current slider value = "+�_value%):�shell_Tracef0("Slider handle is     = "+�e%)
��:YA%+=32:�YA%>=FB%�j%:�j%�
�'�shell_SliderSetValue(e%,_value%-1)
��:=0
�shell_DeleteEventSlider(b%,f%):�d%,a%,p%,h%,c%:h%=_U%!332:�:d%=�shell_GetEventListOffset2(b%,f%,_U%+332,32,�):�shell_Tracef0("DeleteEventSlider:offset% = "+�d%):�d%>=0�
��f%=-1�
�f�shell_Tracef0("DeleteEventSlider:Deleting Slider Event (all events for window handle &"+�~b%+")")
�t��shell_Tracef0("DeleteEventSlider:Deleting Slider Event (window handle was &"+�~b%+" icon handle was "+�f%+")")
��:p%=!h%:�d%=p%-32�
�
�d%=0�
ߒ�shell_HeapBlockReturn(h%+d%+24):�shell_HeapBlockReturn(_U%!332):_U%!332=0:�shell_Tracef0("DeleteEventSlider:No Slider events now registered")
�C�_U%!332=�shell_HeapBlockExtend(_U%!332,-32):h%=_U%!332:!h%-=32
��
�9�a%=h%+d%:a%!0=0:a%!4=0:�shell_HeapBlockReturn(a%+24)
��
�
�:�d%<0:�
����shell_OpenWindowDynamic(lA$,LA$,MA$):�v%,gA%,fA%,q%:�shell_CreateWindow(lA$,v%):�shell_Tracef0("OpenWindowDynamic:Creating new dynamic window (handle is &"+�~v%+")"):q%=�shell_HeapBlockFetch(36):q%!0=v%:ș&400CB,,q%:gA%=(q%!4-q%!&C)/2
=fA%=(q%!16-q%!8)/2:�shell_HeapBlockReturn(q%):�_U%!20<>0�
	/ș&400D4,,-1:o%=�shell_DeleteWindow(_U%!20)
�:_U%!20=b%:�LA$<>""�
`�shell_Tracef0("OpenWindowDynamic:Calling Pre-Open FN '"+LA$+"'"):o%=�("FN"+LA$+"("+�v%+")")
7��shell_Tracef0("OpenWindowDynamic:No Pre-Open FN")
5�:�shell_OpenWindowDynamic2(v%,gA%,fA%):�MA$<>""�
a�shell_Tracef0("OpenWindowDynamic:Calling Post-Open FN '"+MA$+"'"):o%=�("FN"+MA$+"("+�v%+")")
8��shell_Tracef0("OpenWindowDynamic:No Post-Open FN")
!�:�
'2��shell_InteractiveHelpOn:�(_U%!&64�1<<&C)<>0�
)�_U%!&64=_U%!&64�1<<&C
+�:�
13��shell_InteractiveHelpOff:�(_U%!&64�1<<&C)<>0�
3_U%!&64=_U%!&64�1<<&C
4�:�
:H��shell_MessageSendPrintSave(HE%,GF%):�GF%>1�_U%!336=GF%-1�_U%!336=0
<!�shell_DoSendPrintSave(HE%):�
B���shell_DoSendPrintSave(HE%):�EA%:EA%=�shell_HeapBlockFetch(256):EA%!0=256:EA%!&C=0:EA%!16=&80142:EA%!20=0:EA%!24=0:EA%!28=0:EA%!32=0:EA%!36=256:EA%!40=HE%:$(EA%+44)="PrintOut"+�(0):�shell_Tracef0("MessageSendPrintSave:Sending PrintSave message..")
R?ș&400E7,18,EA%,EA%!20,EA%!24:�shell_HeapBlockReturn(EA%):�
Y_��shell_HandlePrintFile(_Q%):�shell_Tracef0("HandlePrintFile:Message_PrintFile received"):�
bb��shell_HandlePrintError(_Q%):�shell_Tracef0("HandlePrintError:Message_PrintError received"):�
kh��shell_HandlePrintTypeOdd(_Q%):�shell_Tracef0("HandlePrintTypeOdd:Message_PrintTypeOdd received"):�
tb��shell_HandleSetPrinter(_Q%):�shell_Tracef0("HandleSetPrinter:Message_SetPrinter received"):�
}?ݤshell_PrinterDriverLoaded:�aB%:ș&A0140�;aB%:�aB%�1�=��=�
�`ݤshell_PrinterDriverGetName:�aB%,HF%:ș&A0140�,,,,HF%;aB%:�aB%�1�=""�=�shell_GetString(HF%)
��ݤshell_IconGetBGColour(b%,f%):�oA%,k%:k%=�shell_HeapBlockFetch(40):k%!0=b%:k%!4=f%:ș&400CE,,k%:oA%=(k%!24>>28)�&F:�shell_HeapBlockReturn(k%):=oA%
��ݤshell_IconGetFGColour(b%,f%):�oA%,k%:k%=�shell_HeapBlockFetch(40):k%!0=b%:k%!4=f%:ș&400CE,,k%:oA%=(k%!24>>24)�&F:�shell_HeapBlockReturn(k%):=oA%
�_��shell_AttachPopupMenu(b%,cB%,sB%,m%,Q$):�shell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,0):�
�e��shell_AttachColourPopupMenu(b%,cB%,sB%,m%,Q$):�shell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,1):�
����shell_DoAttachPopupHandler(b%,cB%,sB%,m%,Q$,vB%):�l%,d%:d%=�shell_GetEventListOffset2(b%,cB%,_U%+340,24,�):l%=_U%!340+d%:l%!0=b%:l%!4=cB%:l%!8=sB%:�Q$<>""�
�2l%!&C=�shell_HeapBlockFetch(�Q$+1):$(l%!&C)=Q$
�
�l%!&C=-1
�H�:l%!16=vB%:l%!20=m%:�b%>0�cB%>=0��shell_IconSetButtonType(b%,cB%,3)
��
�A��shell_DoPopupSelect(_Q%,d%):�l%,Q$:l%=_U%!340+d%:�l%!&C=-1�
�
�l%!16=0�
�E�shell_IconPutData(!l%,l%!8,�shell_MenuGetItemText(l%!20,!_Q%),�)
�*��shell_IconSetBGColour(!l%,l%!8,!_Q%)
��
��Q$=$(l%!&C)
��:�
�1ݤshell_3DEnabled:�IF%,_3d%:�_U%!&64�(1<<&A)�
�,ș6,&A1,&8C�,,IF%:�(IF%�1)�_3d%=��_3d%=�
��_3d%=�
��:=_3d%
0��shell_MenuDelete(i%,AG%):�e%,p%,h%:�i%<>0�
Rș&65BC3,i%,AG%:p%=�shell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:�:�(h%!(e%+8)=i%)�
h%!(e%+8)=0
�e%+=48
�:�(e%>=p%)
�:�
���shell_HandleAttachedDataSave(_Q%,b%,f%):�mA%,a%,iB%,_name$,c%,o%:�shell_DataSaveCheckName(b%,f%):mA%=�shell_GetEventListOffset(b%,-1,_U%+72,24,�):�mA%>=0�
ia%=_U%!72+mA%:iB%=a%!16:_name$=�shell_IconGetData(b%,iB%):c%=a%!20:�$c%<>""�o%=�("FN"+$c%+"(_name$)")
#�:�
�
00000000  0d 00 01 53 f4 20 3e 45  76 6e 74 53 68 65 6c 6c  |...S. >EvntShell|
00000010  3a 53 68 65 6c 6c 4c 69  62 20 a4 a4 a4 20 53 71  |:ShellLib ... Sq|
00000020  75 69 73 68 65 64 20 62  79 20 4c 6f 66 74 79 27  |uished by Lofty'|
00000030  73 20 21 53 68 72 69 6e  6b 20 76 73 6e 20 33 2e  |s !Shrink vsn 3.|
00000040  30 31 20 6f 6e 20 32 39  2d 4d 61 79 2d 39 34 20  |01 on 29-May-94 |
00000050  a4 a4 a4 0d 00 03 24 dd  a4 73 68 65 6c 6c 5f 4c  |......$..shell_L|
00000060  69 62 72 61 72 79 56 65  72 73 69 6f 6e 3a 3d 31  |ibraryVersion:=1|
00000070  2e 33 33 2a 26 36 34 0d  00 11 2c dd f2 73 68 65  |.33*&64...,..she|
00000080  6c 6c 5f 45 72 72 6f 72  3a ea 46 41 25 2c 56 41  |ll_Error:.FA%,VA|
00000090  24 3a e7 9f 3c 3e 26 44  30 30 80 9f 3c 3e 26 39  |$:..<>&D00..<>&9|
000000a0  30 33 8c 0d 00 16 61 c8  99 26 36 30 36 43 32 3a  |03....a..&606C2:|
000000b0  e7 a4 73 68 65 6c 6c 5f  4f 53 43 68 65 63 6b 56  |..shell_OSCheckV|
000000c0  65 72 73 69 6f 6e 28 33  29 80 a4 73 68 65 6c 6c  |ersion(3)..shell|
000000d0  5f 46 69 6c 65 45 78 69  73 74 73 28 22 52 65 73  |_FileExists("Res|
000000e0  6f 75 72 63 65 73 3a 24  2e 52 65 73 6f 75 72 63  |ources:$.Resourc|
000000f0  65 73 2e 45 64 69 74 2e  54 68 72 6f 77 42 61 63  |es.Edit.ThrowBac|
00000100  6b 22 29 8c 0d 00 18 57  f2 73 68 65 6c 6c 5f 45  |k")....W.shell_E|
00000110  78 69 74 3a ff 28 22 53  65 74 20 42 61 73 69 63  |xit:.("Set Basic|
00000120  24 46 69 6c 65 20 3c 22  2b a4 73 68 65 6c 6c 5f  |$File <"+.shell_|
00000130  47 65 74 41 70 70 4e 61  6d 65 2b 22 24 42 61 73  |GetAppName+"$Bas|
00000140  69 63 46 69 6c 65 3e 22  29 3a d7 22 45 64 69 74  |icFile>"):."Edit|
00000150  3a 54 68 72 6f 77 42 61  63 6b 22 0d 00 1b 4b cc  |:ThrowBack"...K.|
00000160  f2 73 68 65 6c 6c 5f 45  72 72 6f 72 42 6f 78 28  |.shell_ErrorBox(|
00000170  22 55 6e 65 78 70 65 63  74 65 64 20 65 72 72 6f  |"Unexpected erro|
00000180  72 3a 2d 20 22 2b f6 24  2b 22 20 49 6e 74 65 72  |r:- "+.$+" Inter|
00000190  6e 61 6c 20 65 72 72 6f  72 20 63 6f 64 65 20 22  |nal error code "|
000001a0  2b c3 9e 29 3a e0 0d 00  1e 05 cd 0d 00 1f 42 cc  |+..):.........B.|
000001b0  46 41 25 3d a7 f6 24 2c  22 69 6e 20 22 2b bd 33  |FA%=..$,"in "+.3|
000001c0  34 2b 22 45 76 6e 74 53  68 65 6c 6c 3a 53 68 65  |4+"EvntShell:She|
000001d0  6c 6c 4c 69 62 22 29 3a  e7 46 41 25 3e 30 8c 56  |llLib"):.FA%>0.V|
000001e0  41 24 3d c0 f6 24 2c 46  41 25 2d 31 29 0d 00 24  |A$=..$,FA%-1)..$|
000001f0  18 f2 73 68 65 6c 6c 5f  45 72 72 6f 72 42 6f 78  |..shell_ErrorBox|
00000200  28 56 41 24 29 0d 00 25  10 cd 3a c8 99 26 36 30  |(VA$)..%..:..&60|
00000210  36 43 32 3a e1 0d 00 2d  1d dd f2 73 68 65 6c 6c  |6C2:...-...shell|
00000220  5f 4f 4b 28 59 41 24 29  3a 85 26 44 30 30 2c 59  |_OK(YA$):.&D00,Y|
00000230  41 24 0d 00 2f 05 e1 0d  00 34 5b dd f2 73 68 65  |A$../....4[..she|
00000240  6c 6c 5f 45 72 72 6f 72  42 6f 78 28 66 41 24 29  |ll_ErrorBox(fA$)|
00000250  3a ea 4c 42 25 2c 77 41  25 3a 77 41 25 3d 5f 73  |:.LB%,wA%:wA%=_s|
00000260  68 65 6c 6c 5f 62 6c 6b  25 3a 21 77 41 25 3d 9f  |hell_blk%:!wA%=.|
00000270  3a 24 28 77 41 25 2b 34  29 3d 66 41 24 2b bd 28  |:$(wA%+4)=fA$+.(|
00000280  30 29 3a e7 9f 3d 26 44  30 30 84 9f 3d 26 39 30  |0):..=&D00..=&90|
00000290  33 8c 0d 00 39 39 c8 99  26 36 30 30 44 46 2c 77  |3...99..&600DF,w|
000002a0  41 25 2c 31 37 2c 22 4d  65 73 73 61 67 65 20 66  |A%,17,"Message f|
000002b0  72 6f 6d 20 22 2b a4 73  68 65 6c 6c 5f 47 65 74  |rom "+.shell_Get|
000002c0  41 70 70 4e 61 6d 65 b8  4c 42 25 0d 00 3a 29 cc  |AppName.LB%..:).|
000002d0  c8 99 26 36 30 30 44 46  2c 77 41 25 2c 31 2c a4  |..&600DF,wA%,1,.|
000002e0  73 68 65 6c 6c 5f 47 65  74 41 70 70 4e 61 6d 65  |shell_GetAppName|
000002f0  b8 4c 42 25 0d 00 3c 07  cd 3a e1 0d 00 43 39 dd  |.LB%..<..:...C9.|
00000300  a4 73 68 65 6c 6c 5f 47  65 74 4c 61 73 74 53 65  |.shell_GetLastSe|
00000310  63 75 72 65 46 69 6c 65  4e 61 6d 65 3a ea 63 25  |cureFileName:.c%|
00000320  3a 63 25 3d 5f 55 25 21  38 30 3a e7 63 25 3d 30  |:c%=_U%!80:.c%=0|
00000330  8c 3d 22 22 0d 00 47 08  3d 24 63 25 0d 00 4c 5a  |.=""..G.=$c%..LZ|
00000340  dd a4 73 68 65 6c 6c 5f  47 65 74 53 74 72 69 6e  |..shell_GetStrin|
00000350  67 28 63 45 25 29 3a ea  53 41 24 2c 68 43 25 3a  |g(cE%):.SA$,hC%:|
00000360  c8 95 28 28 63 45 25 3f  68 43 25 29 3e 33 31 80  |..((cE%?hC%)>31.|
00000370  68 43 25 3c 26 46 46 29  3a 53 41 24 2b 3d bd 28  |hC%<&FF):SA$+=.(|
00000380  63 45 25 3f 68 43 25 29  3a 68 43 25 2b 3d 31 3a  |cE%?hC%):hC%+=1:|
00000390  ce 3a 3d 53 41 24 0d 00  57 43 dd a4 73 68 65 6c  |.:=SA$..WC..shel|
000003a0  6c 5f 47 65 74 45 76 65  6e 74 48 61 6e 64 6c 65  |l_GetEventHandle|
000003b0  72 28 62 25 2c 79 25 2c  49 43 25 29 3a ea 65 25  |r(b%,y%,IC%):.e%|
000003c0  2c 68 25 2c 6a 25 2c 70  25 2c 41 24 3a e7 62 25  |,h%,j%,p%,A$:.b%|
000003d0  3d 2d 31 8c 62 25 3d 2d  32 0d 00 5a 4e 70 25 3d  |=-1.b%=-2..ZNp%=|
000003e0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000003f0  49 6e 66 6f 28 5f 55 25  21 26 43 29 2d 38 3a 65  |Info(_U%!&C)-8:e|
00000400  25 3d 30 3a 6a 25 3d a3  3a 68 25 3d 5f 55 25 21  |%=0:j%=.:h%=_U%!|
00000410  26 43 3a 41 24 3d 22 22  3a f5 3a e7 28 68 25 21  |&C:A$="":.:.(h%!|
00000420  65 25 3d 62 25 29 8c 0d  00 61 10 c8 8e 68 25 21  |e%=b%)...a...h%!|
00000430  28 65 25 2b 34 29 ca 0d  00 62 24 c9 2d 31 3a e7  |(e%+4)...b$.-1:.|
00000440  68 25 21 28 65 25 2b 28  26 43 2b 28 49 43 25 2a  |h%!(e%+(&C+(IC%*|
00000450  34 29 29 29 3e 26 38 30  30 30 8c 0d 00 68 23 41  |4)))>&8000...h#A|
00000460  24 3d 24 28 68 25 21 28  65 25 2b 28 26 43 2b 28  |$=$(h%!(e%+(&C+(|
00000470  49 43 25 2a 34 29 29 29  29 3a 6a 25 3d b9 0d 00  |IC%*4)))):j%=...|
00000480  6a 0b cc 65 25 2b 3d 34  38 0d 00 6c 05 cd 0d 00  |j..e%+=48..l....|
00000490  6d 13 7f e7 68 25 21 28  65 25 2b 34 29 3d 79 25  |m...h%!(e%+4)=y%|
000004a0  8c 0d 00 74 20 e7 68 25  21 28 65 25 2b 28 26 43  |...t .h%!(e%+(&C|
000004b0  2b 28 49 43 25 2a 34 29  29 29 3e 26 38 30 30 30  |+(IC%*4)))>&8000|
000004c0  8c 0d 00 75 23 41 24 3d  24 28 68 25 21 28 65 25  |...u#A$=$(h%!(e%|
000004d0  2b 28 26 43 2b 28 49 43  25 2a 34 29 29 29 29 3a  |+(&C+(IC%*4)))):|
000004e0  6a 25 3d b9 0d 00 77 0b  cc 65 25 2b 3d 34 38 0d  |j%=...w..e%+=48.|
000004f0  00 79 05 cd 0d 00 7a 0b  cc 65 25 2b 3d 34 38 0d  |.y....z..e%+=48.|
00000500  00 7c 05 cd 0d 00 7d 05  cb 0d 00 7e 0b cc 65 25  |.|....}....~..e%|
00000510  2b 3d 34 38 0d 00 80 18  cd 3a fd 28 28 65 25 3e  |+=48.....:.((e%>|
00000520  3d 70 25 29 84 6a 25 29  3a 3d 41 24 0d 00 87 40  |=p%).j%):=A$...@|
00000530  dd a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |..shell_GetEvent|
00000540  4d 65 6e 75 28 59 42 25  2c 62 25 2c 79 25 29 3a  |Menu(YB%,b%,y%):|
00000550  ea 65 25 2c 68 25 2c 6a  25 2c 70 25 2c 6d 25 3a  |.e%,h%,j%,p%,m%:|
00000560  e7 62 25 3d 2d 31 8c 62  25 3d 2d 32 0d 00 8a 4e  |.b%=-1.b%=-2...N|
00000570  70 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |p%=.shell_HeapBl|
00000580  6f 63 6b 49 6e 66 6f 28  5f 55 25 21 26 43 29 2d  |ockInfo(_U%!&C)-|
00000590  38 3a 65 25 3d 30 3a 6a  25 3d a3 3a 68 25 3d 5f  |8:e%=0:j%=.:h%=_|
000005a0  55 25 21 26 43 3a 41 24  3d 22 22 3a f5 3a e7 28  |U%!&C:A$="":.:.(|
000005b0  68 25 21 65 25 3d 62 25  29 8c 0d 00 95 49 f2 73  |h%!e%=b%)....I.s|
000005c0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 47 65  |hell_Tracef0("Ge|
000005d0  74 45 76 65 6e 74 4d 65  6e 75 3a 77 69 6e 64 6f  |tEventMenu:windo|
000005e0  77 20 68 61 6e 64 6c 65  20 6d 61 74 63 68 65 64  |w handle matched|
000005f0  2e 2e 22 29 3a e7 68 25  21 28 65 25 2b 34 29 3d  |.."):.h%!(e%+4)=|
00000600  79 25 8c 0d 00 98 22 6d  25 3d 68 25 21 28 65 25  |y%...."m%=h%!(e%|
00000610  2b 38 29 3a e7 6d 25 3d  2d 32 8c 6d 25 3d 5f 55  |+8):.m%=-2.m%=_U|
00000620  25 21 26 46 43 0d 00 9a  08 6a 25 3d b9 0d 00 9b  |%!&FC....j%=....|
00000630  05 cc 0d 00 a8 05 cd 0d  00 a9 1d cd 3a 65 25 2b  |............:e%+|
00000640  3d 34 38 3a fd 28 65 25  3e 3d 70 25 84 6a 25 29  |=48:.(e%>=p%.j%)|
00000650  3a 3d 6d 25 0d 00 b1 57  dd a4 73 68 65 6c 6c 5f  |:=m%...W..shell_|
00000660  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
00000670  65 74 28 62 25 2c 66 25  2c 68 25 2c 5f 41 25 2c  |et(b%,f%,h%,_A%,|
00000680  4d 43 25 29 3a ea 70 25  2c 65 25 2c 6a 25 2c 64  |MC%):.p%,e%,j%,d|
00000690  25 2c 79 41 25 2c 63 25  3a e7 28 21 68 25 3d 30  |%,yA%,c%:.(!h%=0|
000006a0  80 4d 43 25 3d a3 29 8c  3d 2d 32 0d 00 b8 0d e7  |.MC%=.).=-2.....|
000006b0  28 21 68 25 3d 30 29 8c  0d 00 ba 3a 21 68 25 3d  |(!h%=0)....:!h%=|
000006c0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000006d0  46 65 74 63 68 28 5f 41  25 29 3a 63 25 3d 21 68  |Fetch(_A%):c%=!h|
000006e0  25 3a 63 25 21 30 3d 30  3a 63 25 21 34 3d 30 3a  |%:c%!0=0:c%!4=0:|
000006f0  3d 30 0d 00 bd 4c cd 3a  70 25 3d a4 73 68 65 6c  |=0...L.:p%=.shel|
00000700  6c 5f 48 65 61 70 42 6c  6f 63 6b 49 6e 66 6f 28  |l_HeapBlockInfo(|
00000710  21 68 25 29 2d 38 3a 65  25 3d 30 3a 6a 25 3d a3  |!h%)-8:e%=0:j%=.|
00000720  3a 64 25 3d 2d 31 3a 79  41 25 3d 2d 31 3a 63 25  |:d%=-1:yA%=-1:c%|
00000730  3d 21 68 25 3a f5 3a e7  79 41 25 3c 30 8c 0d 00  |=!h%:.:.yA%<0...|
00000740  c7 1f e7 28 63 25 21 65  25 3d 30 80 63 25 21 65  |...(c%!e%=0.c%!e|
00000750  25 2b 34 3d 30 29 8c 79  41 25 3d 65 25 0d 00 c8  |%+4=0).yA%=e%...|
00000760  12 cd 3a e7 28 63 25 21  65 25 3d 62 25 29 8c 0d  |..:.(c%!e%=b%)..|
00000770  00 cd 0b e7 66 25 3d 2d  31 8c 0d 00 d0 0e 64 25  |....f%=-1.....d%|
00000780  3d 65 25 3a 6a 25 3d b9  0d 00 d2 4e cc f2 73 68  |=e%:j%=....N..sh|
00000790  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 47 65 74  |ell_Tracef0("Get|
000007a0  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 3a  |EventListOffset:|
000007b0  69 63 6f 6e 20 68 61 6e  64 6c 65 20 69 73 20 6e  |icon handle is n|
000007c0  6f 74 20 2d 31 22 29 3a  e7 63 25 21 28 65 25 2b  |ot -1"):.c%!(e%+|
000007d0  34 29 3d 66 25 8c 0d 00  d8 0e 64 25 3d 65 25 3a  |4)=f%.....d%=e%:|
000007e0  6a 25 3d b9 0d 00 da 0c  cc 65 25 2b 3d 5f 41 25  |j%=......e%+=_A%|
000007f0  0d 00 dc 05 cd 0d 00 dd  05 cd 0d 00 de 0c cc 65  |...............e|
00000800  25 2b 3d 5f 41 25 0d 00  e1 19 cd 3a fd 28 28 65  |%+=_A%.....:.((e|
00000810  25 3e 3d 70 25 29 84 6a  25 29 3a e7 6a 25 8c 0d  |%>=p%).j%):.j%..|
00000820  00 e5 05 cc 0d 00 e7 13  cd 3a e7 28 64 25 3d 2d  |.........:.(d%=-|
00000830  31 80 4d 43 25 29 8c 0d  00 e9 0b e7 79 41 25 3c  |1.MC%)......yA%<|
00000840  30 8c 0d 00 eb 49 64 25  3d 70 25 3a 21 68 25 3d  |0....Id%=p%:!h%=|
00000850  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00000860  45 78 74 65 6e 64 28 21  68 25 2c 5f 41 25 29 3a  |Extend(!h%,_A%):|
00000870  63 25 3d 21 68 25 3a 63  25 2b 3d 64 25 3a 63 25  |c%=!h%:c%+=d%:c%|
00000880  21 30 3d 30 3a 63 25 21  34 3d 30 0d 00 ef 0b cc  |!0=0:c%!4=0.....|
00000890  64 25 3d 79 41 25 0d 00  f2 05 cd 0d 00 f3 09 cd  |d%=yA%..........|
000008a0  3a 3d 64 25 0d 00 f9 9e  dd f2 73 68 65 6c 6c 5f  |:=d%......shell_|
000008b0  41 74 74 61 63 68 50 61  6e 65 28 62 25 2c f8 6c  |AttachPane(b%,.l|
000008c0  43 25 2c 6e 25 2c 67 41  25 2c 66 41 25 29 3a ea  |C%,n%,gA%,fA%):.|
000008d0  61 25 2c 64 25 2c 63 25  2c 4b 42 25 2c 71 44 25  |a%,d%,c%,KB%,qD%|
000008e0  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
000008f0  22 41 74 74 61 63 68 50  61 6e 65 3a 41 74 74 61  |"AttachPane:Atta|
00000900  63 68 69 6e 67 20 50 61  6e 65 20 48 61 6e 64 6c  |ching Pane Handl|
00000910  65 72 22 29 3a 71 44 25  3d a4 73 68 65 6c 6c 5f  |er"):qD%=.shell_|
00000920  57 69 6e 64 6f 77 47 65  74 46 6c 61 67 73 28 6c  |WindowGetFlags(l|
00000930  43 25 29 3a e7 28 71 44  25 80 31 3c 3c 35 29 3d  |C%):.(qD%.1<<5)=|
00000940  30 8c 0d 00 ff 72 f2 73  68 65 6c 6c 5f 54 72 61  |0....r.shell_Tra|
00000950  63 65 66 30 28 22 41 74  74 61 63 68 50 61 6e 65  |cef0("AttachPane|
00000960  3a 27 50 61 6e 65 27 20  62 69 74 20 6f 66 20 70  |:'Pane' bit of p|
00000970  61 6e 65 20 77 69 6e 64  6f 77 20 69 73 20 6e 6f  |ane window is no|
00000980  74 20 73 65 74 2c 20 66  69 78 69 6e 67 2e 2e 22  |t set, fixing.."|
00000990  29 3a f2 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 54  |):.shell_WindowT|
000009a0  6f 67 67 6c 65 46 6c 61  67 73 28 6c 43 25 2c 31  |oggleFlags(lC%,1|
000009b0  3c 3c 35 29 0d 01 01 12  cd 3a e7 28 71 44 25 80  |<<5).....:.(qD%.|
000009c0  31 3c 3c 31 29 8c 0d 01  03 72 f2 73 68 65 6c 6c  |1<<1)....r.shell|
000009d0  5f 54 72 61 63 65 66 30  28 22 41 74 74 61 63 68  |_Tracef0("Attach|
000009e0  50 61 6e 65 3a 27 4d 6f  76 65 61 62 6c 65 27 20  |Pane:'Moveable' |
000009f0  62 69 74 20 6f 66 20 70  61 6e 65 20 77 69 6e 64  |bit of pane wind|
00000a00  6f 77 20 69 73 20 73 65  74 2c 20 66 69 78 69 6e  |ow is set, fixin|
00000a10  67 2e 2e 22 29 3a f2 73  68 65 6c 6c 5f 57 69 6e  |g.."):.shell_Win|
00000a20  64 6f 77 54 6f 67 67 6c  65 46 6c 61 67 73 28 6c  |dowToggleFlags(l|
00000a30  43 25 2c 31 3c 3c 31 29  0d 01 05 3c cd 3a 64 25  |C%,1<<1)...<.:d%|
00000a40  3d a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |=.shell_GetEvent|
00000a50  4c 69 73 74 4f 66 66 73  65 74 28 62 25 2c 2d 31  |ListOffset(b%,-1|
00000a60  2c 5f 55 25 2b 39 32 2c  32 34 2c a3 29 3a e7 64  |,_U%+92,24,.):.d|
00000a70  25 3c 30 8c 0d 01 09 e3  f2 73 68 65 6c 6c 5f 54  |%<0......shell_T|
00000a80  72 61 63 65 66 30 28 22  41 74 74 61 63 68 50 61  |racef0("AttachPa|
00000a90  6e 65 3a 43 72 65 61 74  69 6e 67 20 70 61 6e 65  |ne:Creating pane|
00000aa0  20 65 76 65 6e 74 20 62  6c 6f 63 6b 22 29 3a 64  | event block"):d|
00000ab0  25 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |%=.shell_GetEven|
00000ac0  74 4c 69 73 74 4f 66 66  73 65 74 28 62 25 2c 2d  |tListOffset(b%,-|
00000ad0  31 2c 5f 55 25 2b 39 32  2c 32 34 2c b9 29 3a 61  |1,_U%+92,24,.):a|
00000ae0  25 3d 5f 55 25 21 39 32  2b 64 25 3a 61 25 21 30  |%=_U%!92+d%:a%!0|
00000af0  3d 62 25 3a 61 25 21 34  3d 2d 31 3a 61 25 21 38  |=b%:a%!4=-1:a%!8|
00000b00  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00000b10  6b 46 65 74 63 68 28 34  29 3a 61 25 21 26 43 3d  |kFetch(4):a%!&C=|
00000b20  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00000b30  46 65 74 63 68 28 34 29  3a 61 25 21 31 36 3d a4  |Fetch(4):a%!16=.|
00000b40  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00000b50  65 74 63 68 28 34 29 0d  01 10 61 61 25 21 32 30  |etch(4)...aa%!20|
00000b60  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00000b70  6b 46 65 74 63 68 28 34  29 3a 63 25 3d 61 25 21  |kFetch(4):c%=a%!|
00000b80  38 3a 21 63 25 3d 2d 31  3a 63 25 3d 61 25 21 26  |8:!c%=-1:c%=a%!&|
00000b90  43 3a 21 63 25 3d 2d 31  3a 63 25 3d 61 25 21 31  |C:!c%=-1:c%=a%!1|
00000ba0  36 3a 21 63 25 3d 2d 31  3a 63 25 3d 61 25 21 32  |6:!c%=-1:c%=a%!2|
00000bb0  30 3a 21 63 25 3d 2d 31  0d 01 15 dc cd 3a 61 25  |0:!c%=-1.....:a%|
00000bc0  3d 5f 55 25 21 39 32 2b  64 25 3a 63 25 3d 61 25  |=_U%!92+d%:c%=a%|
00000bd0  21 38 3a 67 25 3d 30 3a  4b 42 25 3d 30 3a c8 95  |!8:g%=0:KB%=0:..|
00000be0  63 25 21 67 25 3c 3e 2d  31 3a 67 25 2b 3d 34 3a  |c%!g%<>-1:g%+=4:|
00000bf0  4b 42 25 2b 3d 31 3a ce  3a 61 25 21 38 3d a4 73  |KB%+=1:.:a%!8=.s|
00000c00  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
00000c10  74 65 6e 64 28 61 25 21  38 2c 34 29 3a 63 25 3d  |tend(a%!8,4):c%=|
00000c20  61 25 21 38 3a 63 25 21  28 4b 42 25 2a 34 29 3d  |a%!8:c%!(KB%*4)=|
00000c30  6c 43 25 3a 63 25 21 28  28 4b 42 25 2b 31 29 2a  |lC%:c%!((KB%+1)*|
00000c40  34 29 3d 2d 31 3a 61 25  21 26 43 3d a4 73 68 65  |4)=-1:a%!&C=.she|
00000c50  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 74 65  |ll_HeapBlockExte|
00000c60  6e 64 28 61 25 21 26 43  2c 34 29 3a 63 25 3d 61  |nd(a%!&C,4):c%=a|
00000c70  25 21 26 43 3a 63 25 21  28 4b 42 25 2a 34 29 3d  |%!&C:c%!(KB%*4)=|
00000c80  6e 25 3a 63 25 21 28 28  4b 42 25 2b 31 29 2a 34  |n%:c%!((KB%+1)*4|
00000c90  29 3d 2d 31 0d 01 22 a5  61 25 21 31 36 3d a4 73  |)=-1..".a%!16=.s|
00000ca0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
00000cb0  74 65 6e 64 28 61 25 21  31 36 2c 34 29 3a 63 25  |tend(a%!16,4):c%|
00000cc0  3d 61 25 21 31 36 3a 63  25 21 28 4b 42 25 2a 34  |=a%!16:c%!(KB%*4|
00000cd0  29 3d 67 41 25 3a 63 25  21 28 28 4b 42 25 2b 31  |)=gA%:c%!((KB%+1|
00000ce0  29 2a 34 29 3d 2d 31 3a  61 25 21 32 30 3d a4 73  |)*4)=-1:a%!20=.s|
00000cf0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
00000d00  74 65 6e 64 28 61 25 21  32 30 2c 34 29 3a 63 25  |tend(a%!20,4):c%|
00000d10  3d 61 25 21 32 30 3a 63  25 21 28 4b 42 25 2a 34  |=a%!20:c%!(KB%*4|
00000d20  29 3d 66 41 25 3a 63 25  21 28 28 4b 42 25 2b 31  |)=fA%:c%!((KB%+1|
00000d30  29 2a 34 29 3d 2d 31 3a  e1 0d 01 2d 81 dd f2 73  |)*4)=-1:...-...s|
00000d40  68 65 6c 6c 5f 41 74 74  61 63 68 44 61 74 61 4c  |hell_AttachDataL|
00000d50  6f 61 64 28 62 25 2c 66  25 2c 77 25 2c 41 24 2c  |oad(b%,f%,w%,A$,|
00000d60  7a 46 25 29 3a ea 61 25  2c 63 25 2c 64 25 2c 4e  |zF%):.a%,c%,d%,N|
00000d70  24 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |$:.shell_Tracef0|
00000d80  28 22 41 74 74 61 63 68  44 61 74 61 4c 6f 61 64  |("AttachDataLoad|
00000d90  3a 41 74 74 61 63 68 69  6e 67 20 44 61 74 61 4c  |:Attaching DataL|
00000da0  6f 61 64 20 48 61 6e 64  6c 65 72 22 29 3a e7 62  |oad Handler"):.b|
00000db0  25 3d 2d 31 8c 62 25 3d  2d 32 0d 01 31 14 e7 7a  |%=-1.b%=-2..1..z|
00000dc0  46 25 8c 77 25 3d 77 25  84 31 3c 3c 33 31 0d 01  |F%.w%=w%.1<<31..|
00000dd0  32 50 64 25 3d a4 73 68  65 6c 6c 5f 47 65 74 45  |2Pd%=.shell_GetE|
00000de0  76 65 6e 74 4c 69 73 74  4f 66 66 73 65 74 28 62  |ventListOffset(b|
00000df0  25 2c 66 25 2c 5f 55 25  2b 39 36 2c 31 36 2c b9  |%,f%,_U%+96,16,.|
00000e00  29 3a 61 25 3d 5f 55 25  21 39 36 2b 64 25 3a e7  |):a%=_U%!96+d%:.|
00000e10  61 25 21 30 3d 30 80 61  25 21 34 3d 30 8c 0d 01  |a%!0=0.a%!4=0...|
00000e20  39 f1 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |9..shell_Tracef0|
00000e30  28 22 41 74 74 61 63 68  44 61 74 61 4c 6f 61 64  |("AttachDataLoad|
00000e40  3a 54 68 69 73 20 69 73  20 74 68 65 20 66 69 72  |:This is the fir|
00000e50  73 74 20 44 61 74 61 4c  6f 61 64 20 45 76 65 6e  |st DataLoad Even|
00000e60  74 2e 2e 2e 22 29 3a 61  25 21 30 3d 62 25 3a 61  |t..."):a%!0=b%:a|
00000e70  25 21 34 3d 66 25 3a 61  25 21 38 3d a4 73 68 65  |%!4=f%:a%!8=.she|
00000e80  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00000e90  68 28 38 29 3a 63 25 3d  61 25 21 38 3a 63 25 21  |h(8):c%=a%!8:c%!|
00000ea0  30 3d 77 25 3a 63 25 21  34 3d 2d 31 3a 61 25 21  |0=w%:c%!4=-1:a%!|
00000eb0  26 43 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |&C=.shell_HeapBl|
00000ec0  6f 63 6b 46 65 74 63 68  28 38 29 3a 63 25 3d 61  |ockFetch(8):c%=a|
00000ed0  25 21 26 43 3a 63 25 21  30 3d a4 73 68 65 6c 6c  |%!&C:c%!0=.shell|
00000ee0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00000ef0  a9 28 41 24 29 2b 31 29  3a 63 25 21 34 3d 2d 31  |.(A$)+1):c%!4=-1|
00000f00  3a 63 25 3d 63 25 21 30  3a 24 63 25 3d 41 24 0d  |:c%=c%!0:$c%=A$.|
00000f10  01 43 f4 cc f2 73 68 65  6c 6c 5f 54 72 61 63 65  |.C...shell_Trace|
00000f20  66 30 28 22 41 74 74 61  63 68 44 61 74 61 4c 6f  |f0("AttachDataLo|
00000f30  61 64 3a 54 68 69 73 20  69 73 20 61 6e 6f 74 68  |ad:This is anoth|
00000f40  65 72 20 44 61 74 61 4c  6f 61 64 20 45 76 65 6e  |er DataLoad Even|
00000f50  74 2e 2e 2e 22 29 3a 61  25 21 38 3d a4 73 68 65  |t..."):a%!8=.she|
00000f60  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 74 65  |ll_HeapBlockExte|
00000f70  6e 64 28 61 25 21 38 2c  34 29 3a 61 25 21 26 43  |nd(a%!8,4):a%!&C|
00000f80  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00000f90  6b 45 78 74 65 6e 64 28  61 25 21 26 43 2c 34 29  |kExtend(a%!&C,4)|
00000fa0  3a 67 25 3d 30 3a 63 25  3d 61 25 21 38 3a c8 95  |:g%=0:c%=a%!8:..|
00000fb0  63 25 21 67 25 3c 3e 2d  31 3a 67 25 2b 3d 34 3a  |c%!g%<>-1:g%+=4:|
00000fc0  ce 3a 63 25 21 67 25 3d  77 25 3a 63 25 21 28 67  |.:c%!g%=w%:c%!(g|
00000fd0  25 2b 34 29 3d 2d 31 3a  63 25 3d 61 25 21 26 43  |%+4)=-1:c%=a%!&C|
00000fe0  3a 63 25 21 67 25 3d a4  73 68 65 6c 6c 5f 48 65  |:c%!g%=.shell_He|
00000ff0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 a9 41 24  |apBlockFetch(.A$|
00001000  2b 31 29 0d 01 52 13 63  25 3d 63 25 21 67 25 3a  |+1)..R.c%=c%!g%:|
00001010  24 63 25 3d 41 24 0d 01  53 ed cd 3a 4e 24 3d a4  |$c%=A$..S..:N$=.|
00001020  73 68 65 6c 6c 5f 47 65  74 43 6d 64 4c 69 6e 65  |shell_GetCmdLine|
00001030  41 72 67 73 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |Args:.shell_Trac|
00001040  65 66 30 28 22 41 74 74  61 63 68 44 61 74 61 4c  |ef0("AttachDataL|
00001050  6f 61 64 3a 63 6d 64 6c  69 6e 65 20 20 3d 22 2b  |oad:cmdline  ="+|
00001060  4e 24 29 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |N$):.shell_Trace|
00001070  66 30 28 22 41 74 74 61  63 68 44 61 74 61 4c 6f  |f0("AttachDataLo|
00001080  61 64 3a 66 6c 61 67 20  62 69 74 20 3d 22 2b c3  |ad:flag bit ="+.|
00001090  28 28 5f 55 25 21 26 36  34 80 31 3c 3c 35 29 29  |((_U%!&64.1<<5))|
000010a0  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
000010b0  28 22 41 74 74 61 63 68  44 61 74 61 4c 6f 61 64  |("AttachDataLoad|
000010c0  3a 77 68 25 20 20 20 20  20 20 3d 22 2b c3 7e 62  |:wh%      ="+.~b|
000010d0  25 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |%):.shell_Tracef|
000010e0  30 28 22 41 74 74 61 63  68 44 61 74 61 4c 6f 61  |0("AttachDataLoa|
000010f0  64 3a 74 79 70 65 25 20  20 20 20 3d 22 2b c3 7e  |d:type%    ="+.~|
00001100  77 25 29 0d 01 5a 20 e7  4e 24 3c 3e 22 22 80 62  |w%)..Z .N$<>"".b|
00001110  25 3c 30 80 28 5f 55 25  21 26 36 34 80 31 3c 3c  |%<0.(_U%!&64.1<<|
00001120  35 29 8c 0d 01 5c 1f e7  77 25 80 31 3c 3c 33 31  |5)...\..w%.1<<31|
00001130  8c 63 25 3d 77 25 82 31  3c 3c 33 31 8b 63 25 3d  |.c%=w%.1<<31.c%=|
00001140  77 25 0d 01 5d 1c e7 a4  73 68 65 6c 6c 5f 46 69  |w%..]...shell_Fi|
00001150  6c 65 54 79 70 65 28 4e  24 29 3d 63 25 8c 0d 01  |leType(N$)=c%...|
00001160  5f 6c f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |_l.shell_Tracef0|
00001170  28 22 41 74 74 61 63 68  44 61 74 61 4c 6f 61 64  |("AttachDataLoad|
00001180  3a 4c 6f 61 64 69 6e 67  20 66 69 6c 65 2e 2e 22  |:Loading file.."|
00001190  29 3a f2 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |):.shell_Message|
000011a0  53 65 6e 64 44 61 74 61  4c 6f 61 64 28 63 25 2c  |SendDataLoad(c%,|
000011b0  4e 24 29 3a 5f 55 25 21  26 36 34 3d 5f 55 25 21  |N$):_U%!&64=_U%!|
000011c0  26 36 34 82 28 31 3c 3c  35 29 0d 01 62 05 cd 0d  |&64.(1<<5)..b...|
000011d0  01 63 07 cd 3a e1 0d 01  69 84 dd f2 73 68 65 6c  |.c..:...i...shel|
000011e0  6c 5f 41 74 74 61 63 68  44 61 74 61 53 61 76 65  |l_AttachDataSave|
000011f0  28 62 25 2c 66 25 2c 4d  42 25 2c 77 25 2c 69 42  |(b%,f%,MB%,w%,iB|
00001200  25 2c 41 24 29 3a ea 61  25 2c 63 25 2c 64 25 3a  |%,A$):.a%,c%,d%:|
00001210  e7 ac a4 73 68 65 6c 6c  5f 49 63 6f 6e 49 73 53  |...shell_IconIsS|
00001220  70 72 69 74 65 28 62 25  2c 66 25 29 8c f2 73 68  |prite(b%,f%)..sh|
00001230  65 6c 6c 5f 4f 4b 28 a4  73 68 65 6c 6c 5f 4d 65  |ell_OK(.shell_Me|
00001240  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
00001250  4c 4c 4d 53 47 32 39 22  29 29 0d 01 6e 34 f2 73  |LLMSG29"))..n4.s|
00001260  68 65 6c 6c 5f 49 63 6f  6e 53 65 74 42 75 74 74  |hell_IconSetButt|
00001270  6f 6e 54 79 70 65 28 62  25 2c 66 25 2c 36 29 3a  |onType(b%,f%,6):|
00001280  e7 4d 42 25 3d 30 8c 4d  42 25 3d 26 36 34 0d 01  |.MB%=0.MB%=&64..|
00001290  71 fd f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |q..shell_Tracef0|
000012a0  28 22 41 74 74 61 63 68  44 61 74 61 53 61 76 65  |("AttachDataSave|
000012b0  3a 41 74 74 61 63 68 69  6e 67 20 44 61 74 61 53  |:Attaching DataS|
000012c0  61 76 65 20 48 61 6e 64  6c 65 72 20 74 6f 20 69  |ave Handler to i|
000012d0  63 6f 6e 20 22 2b c3 66  25 2b 22 20 69 6e 20 77  |con "+.f%+" in w|
000012e0  69 6e 64 6f 77 20 26 22  2b c3 7e 62 25 29 3a f2  |indow &"+.~b%):.|
000012f0  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
00001300  74 74 61 63 68 44 61 74  61 53 61 76 65 3a 48 61  |ttachDataSave:Ha|
00001310  6e 64 6c 65 72 20 66 75  6e 63 74 69 6f 6e 20 69  |ndler function i|
00001320  73 20 27 22 2b 41 24 2b  22 27 22 29 3a 64 25 3d  |s '"+A$+"'"):d%=|
00001330  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00001340  69 73 74 4f 66 66 73 65  74 28 62 25 2c 66 25 2c  |istOffset(b%,f%,|
00001350  5f 55 25 2b 37 32 2c 32  34 2c b9 29 3a 61 25 3d  |_U%+72,24,.):a%=|
00001360  5f 55 25 21 37 32 2b 64  25 3a 61 25 21 30 3d 62  |_U%!72+d%:a%!0=b|
00001370  25 3a 61 25 21 34 3d 66  25 3a 61 25 21 38 3d 4d  |%:a%!4=f%:a%!8=M|
00001380  42 25 3a 61 25 21 26 43  3d 77 25 0d 01 77 48 61  |B%:a%!&C=w%..wHa|
00001390  25 21 31 36 3d 69 42 25  3a 61 25 21 32 30 3d a4  |%!16=iB%:a%!20=.|
000013a0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
000013b0  65 74 63 68 28 a9 28 41  24 29 2b 31 29 3a 63 25  |etch(.(A$)+1):c%|
000013c0  3d 61 25 21 32 30 3a 24  63 25 3d 41 24 3a c8 8e  |=a%!20:$c%=A$:..|
000013d0  77 25 ca 0d 01 7b 15 c9  26 46 46 39 3a e7 4d 42  |w%...{..&FF9:.MB|
000013e0  25 3e 26 38 30 30 30 8c  0d 01 7f 27 5f 55 25 21  |%>&8000....'_U%!|
000013f0  26 38 38 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |&88=.shell_HeapB|
00001400  6c 6f 63 6b 49 6e 66 6f  28 4d 42 25 29 2d 38 0d  |lockInfo(MB%)-8.|
00001410  01 80 10 cc 5f 55 25 21  26 38 38 3d 4d 42 25 0d  |...._U%!&88=MB%.|
00001420  01 82 05 cd 0d 01 83 10  7f e7 4d 42 25 3e 26 38  |..........MB%>&8|
00001430  30 30 30 8c 0d 01 85 27  5f 55 25 21 26 38 38 3d  |000....'_U%!&88=|
00001440  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00001450  49 6e 66 6f 28 4d 42 25  29 2d 34 0d 01 86 10 cc  |Info(MB%)-4.....|
00001460  5f 55 25 21 26 38 38 3d  4d 42 25 0d 01 88 05 cd  |_U%!&88=MB%.....|
00001470  0d 01 89 1e cb 3a 5f 55  25 21 26 38 43 3d 77 25  |.....:_U%!&8C=w%|
00001480  3a 5f 55 25 21 26 39 30  3d 4d 42 25 3a e1 0d 01  |:_U%!&90=MB%:...|
00001490  93 5e dd f2 73 68 65 6c  6c 5f 41 74 74 61 63 68  |.^..shell_Attach|
000014a0  4d 65 6e 75 28 62 25 2c  79 25 2c 6d 25 2c 5f 42  |Menu(b%,y%,m%,_B|
000014b0  25 2c 48 43 25 2c 67 43  25 29 3a ea 64 25 3a e7  |%,HC%,gC%):.d%:.|
000014c0  62 25 3e 30 80 79 25 3e  3d 30 8c f2 73 68 65 6c  |b%>0.y%>=0..shel|
000014d0  6c 5f 49 63 6f 6e 53 65  74 42 75 74 74 6f 6e 54  |l_IconSetButtonT|
000014e0  79 70 65 28 62 25 2c 79  25 2c 33 29 0d 01 96 5b  |ype(b%,y%,3)...[|
000014f0  64 25 3d a4 73 68 65 6c  6c 5f 53 65 61 72 63 68  |d%=.shell_Search|
00001500  53 74 61 74 69 63 28 5f  55 25 21 26 42 38 2c 62  |Static(_U%!&B8,b|
00001510  25 29 3a e7 64 25 3d 2d  31 8c f2 73 68 65 6c 6c  |%):.d%=-1..shell|
00001520  5f 4f 4b 28 a4 73 68 65  6c 6c 5f 4d 65 73 73 61  |_OK(.shell_Messa|
00001530  67 65 4e 6f 41 72 67 73  28 22 53 48 45 4c 4c 4d  |geNoArgs("SHELLM|
00001540  53 47 33 30 22 29 29 0d  01 99 79 f2 73 68 65 6c  |SG30"))...y.shel|
00001550  6c 5f 54 72 61 63 65 66  30 28 22 41 74 74 61 63  |l_Tracef0("Attac|
00001560  68 4d 65 6e 75 3a 41 74  74 61 63 68 69 6e 67 20  |hMenu:Attaching |
00001570  6d 65 6e 75 20 68 61 6e  64 6c 65 20 26 22 2b c3  |menu handle &"+.|
00001580  7e 6d 25 2b 22 20 74 6f  20 77 69 6e 64 6f 77 20  |~m%+" to window |
00001590  68 61 6e 64 6c 65 20 26  22 2b c3 7e 62 25 29 3a  |handle &"+.~b%):|
000015a0  f2 73 68 65 6c 6c 5f 45  76 65 6e 74 41 64 64 28  |.shell_EventAdd(|
000015b0  62 25 2c 79 25 2c 30 2c  6d 25 2c 22 22 29 3a e1  |b%,y%,0,m%,""):.|
000015c0  0d 01 a1 8d dd f2 73 68  65 6c 6c 5f 41 74 74 61  |......shell_Atta|
000015d0  63 68 4d 65 6e 75 4d 61  6b 65 72 28 62 25 2c 79  |chMenuMaker(b%,y|
000015e0  25 2c 41 24 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |%,A$):.shell_Tra|
000015f0  63 65 66 30 28 22 41 74  74 61 63 68 4d 65 6e 75  |cef0("AttachMenu|
00001600  4d 61 6b 65 72 3a 41 74  74 61 63 68 69 6e 67 20  |Maker:Attaching |
00001610  6d 65 6e 75 6d 61 6b 65  72 20 66 75 6e 63 74 69  |menumaker functi|
00001620  6f 6e 20 27 22 2b 41 24  2b 22 27 22 29 3a f2 73  |on '"+A$+"'"):.s|
00001630  68 65 6c 6c 5f 45 76 65  6e 74 41 64 64 28 62 25  |hell_EventAdd(b%|
00001640  2c 79 25 2c 31 2c 30 2c  41 24 29 3a e1 0d 01 a9  |,y%,1,0,A$):....|
00001650  79 dd f2 73 68 65 6c 6c  5f 41 74 74 61 63 68 4d  |y..shell_AttachM|
00001660  65 6e 75 44 42 6f 78 28  47 42 25 2c 4d 24 2c 54  |enuDBox(GB%,M$,T|
00001670  41 24 2c 51 41 24 29 3a  ea 61 25 2c 63 25 2c 76  |A$,QA$):.a%,c%,v|
00001680  41 25 3a e7 ac a4 73 68  65 6c 6c 5f 57 69 6e 64  |A%:...shell_Wind|
00001690  6f 77 4c 6f 61 64 65 64  28 4d 24 29 8c 85 39 39  |owLoaded(M$)..99|
000016a0  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4f  |,.shell_MessageO|
000016b0  6e 65 41 72 67 28 22 53  48 45 4c 4c 4d 53 47 30  |neArg("SHELLMSG0|
000016c0  33 22 2c 4d 24 29 0d 01  ae d5 61 25 3d a4 73 68  |3",M$)....a%=.sh|
000016d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
000016e0  63 68 28 26 43 29 3a 61  25 21 30 3d a4 73 68 65  |ch(&C):a%!0=.she|
000016f0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00001700  68 28 a9 4d 24 2b 31 29  3a 63 25 3d 61 25 21 30  |h(.M$+1):c%=a%!0|
00001710  3a 24 63 25 3d 4d 24 3a  61 25 21 34 3d a4 73 68  |:$c%=M$:a%!4=.sh|
00001720  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00001730  63 68 28 a9 54 41 24 2b  31 29 3a 63 25 3d 61 25  |ch(.TA$+1):c%=a%|
00001740  21 34 3a 24 63 25 3d 54  41 24 3a 61 25 21 38 3d  |!4:$c%=TA$:a%!8=|
00001750  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00001760  46 65 74 63 68 28 a9 51  41 24 2b 31 29 3a 63 25  |Fetch(.QA$+1):c%|
00001770  3d 61 25 21 38 3a 24 63  25 3d 51 41 24 3a c8 99  |=a%!8:$c%=QA$:..|
00001780  26 34 35 42 43 45 2c 47  42 25 2c 61 25 3a c8 99  |&45BCE,GB%,a%:..|
00001790  26 34 35 42 43 43 2c 2c  b9 3a e1 0d 01 be 47 dd  |&45BCC,,.:....G.|
000017a0  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 43 6c 69  |.shell_AttachCli|
000017b0  63 6b 53 65 6c 65 63 74  28 62 25 2c 79 25 2c 41  |ckSelect(b%,y%,A|
000017c0  24 29 3a f2 73 68 65 6c  6c 5f 45 76 65 6e 74 41  |$):.shell_EventA|
000017d0  64 64 28 62 25 2c 79 25  2c 32 2c 30 2c 41 24 29  |dd(b%,y%,2,0,A$)|
000017e0  3a e1 0d 01 c5 47 dd f2  73 68 65 6c 6c 5f 41 74  |:....G..shell_At|
000017f0  74 61 63 68 43 6c 69 63  6b 41 64 6a 75 73 74 28  |tachClickAdjust(|
00001800  62 25 2c 79 25 2c 41 24  29 3a f2 73 68 65 6c 6c  |b%,y%,A$):.shell|
00001810  5f 45 76 65 6e 74 41 64  64 28 62 25 2c 79 25 2c  |_EventAdd(b%,y%,|
00001820  33 2c 30 2c 41 24 29 3a  e1 0d 01 cc 8f dd f2 73  |3,0,A$):.......s|
00001830  68 65 6c 6c 5f 41 74 74  61 63 68 55 73 65 72 52  |hell_AttachUserR|
00001840  65 64 72 61 77 28 f8 62  25 2c 41 24 29 3a ea 61  |edraw(.b%,A$):.a|
00001850  25 2c 51 41 25 3a 61 25  3d a4 73 68 65 6c 6c 5f  |%,QA%:a%=.shell_|
00001860  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 34  |HeapBlockFetch(4|
00001870  30 29 3a 21 61 25 3d 62  25 3a c8 99 26 34 30 30  |0):!a%=b%:..&400|
00001880  43 42 2c 2c 61 25 3a 51  41 25 3d 61 25 21 33 32  |CB,,a%:QA%=a%!32|
00001890  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
000018a0  6b 52 65 74 75 72 6e 28  61 25 29 3a e7 28 51 41  |kReturn(a%):.(QA|
000018b0  25 80 31 3c 3c 34 29 8c  0d 01 d5 5a f2 73 68 65  |%.1<<4)....Z.she|
000018c0  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 74 74 61  |ll_Tracef0("Atta|
000018d0  63 68 55 73 65 72 52 65  64 72 61 77 3a 61 75 74  |chUserRedraw:aut|
000018e0  6f 20 72 65 64 72 61 77  20 73 65 74 21 21 22 29  |o redraw set!!")|
000018f0  3a f2 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 6f  |:.shell_WindowTo|
00001900  67 67 6c 65 46 6c 61 67  73 28 62 25 2c 31 3c 3c  |ggleFlags(b%,1<<|
00001910  34 29 0d 01 d9 25 cd 3a  f2 73 68 65 6c 6c 5f 45  |4)...%.:.shell_E|
00001920  76 65 6e 74 41 64 64 28  62 25 2c 2d 31 2c 34 2c  |ventAdd(b%,-1,4,|
00001930  30 2c 41 24 29 3a e1 0d  01 e0 44 dd f2 73 68 65  |0,A$):....D..she|
00001940  6c 6c 5f 41 74 74 61 63  68 44 72 61 67 28 62 25  |ll_AttachDrag(b%|
00001950  2c 79 25 2c 46 47 25 2c  41 24 29 3a f2 73 68 65  |,y%,FG%,A$):.she|
00001960  6c 6c 5f 45 76 65 6e 74  41 64 64 28 62 25 2c 79  |ll_EventAdd(b%,y|
00001970  25 2c 36 2c 30 2c 41 24  29 3a e1 0d 01 e7 43 dd  |%,6,0,A$):....C.|
00001980  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 48 65 6c  |.shell_AttachHel|
00001990  70 54 61 67 28 62 25 2c  79 25 2c 49 24 29 3a f2  |pTag(b%,y%,I$):.|
000019a0  73 68 65 6c 6c 5f 45 76  65 6e 74 41 64 64 28 62  |shell_EventAdd(b|
000019b0  25 2c 79 25 2c 38 2c 30  2c 49 24 29 3a e1 0d 01  |%,y%,8,0,I$):...|
000019c0  ee 52 dd f2 73 68 65 6c  6c 5f 45 76 65 6e 74 41  |.R..shell_EventA|
000019d0  64 64 28 62 25 2c 79 25  2c 49 43 25 2c 6d 25 2c  |dd(b%,y%,IC%,m%,|
000019e0  41 24 29 3a ea 65 25 2c  65 42 25 2c 68 25 2c 70  |A$):.e%,eB%,h%,p|
000019f0  25 2c 6a 25 3a ea 69 43  25 3a 65 25 3d 30 3a 6a  |%,j%:.iC%:e%=0:j|
00001a00  25 3d a3 3a e7 62 25 3d  2d 31 8c 62 25 3d 2d 32  |%=.:.b%=-1.b%=-2|
00001a10  0d 01 f3 3e 70 25 3d a4  73 68 65 6c 6c 5f 48 65  |...>p%=.shell_He|
00001a20  61 70 42 6c 6f 63 6b 49  6e 66 6f 28 5f 55 25 21  |apBlockInfo(_U%!|
00001a30  26 43 29 2d 38 3a 68 25  3d 5f 55 25 21 26 43 3a  |&C)-8:h%=_U%!&C:|
00001a40  f5 3a e7 28 68 25 21 65  25 3d 62 25 29 8c 0d 01  |.:.(h%!e%=b%)...|
00001a50  fa 12 e7 68 25 21 28 65  25 2b 34 29 3d 79 25 8c  |...h%!(e%+4)=y%.|
00001a60  0d 01 fb 08 6a 25 3d b9  0d 01 fc 0b cc 65 25 2b  |....j%=......e%+|
00001a70  3d 34 38 0d 01 fe 05 cd  0d 01 ff 0b cc 65 25 2b  |=48..........e%+|
00001a80  3d 34 38 0d 02 01 19 cd  3a fd 28 65 25 3e 3d 70  |=48.....:.(e%>=p|
00001a90  25 84 6a 25 29 3a e7 6a  25 3d a3 8c 0d 02 04 25  |%.j%):.j%=.....%|
00001aa0  65 25 3d 30 3a c8 95 28  68 25 21 65 25 3c 3e 30  |e%=0:..(h%!e%<>0|
00001ab0  29 3a 65 25 2b 3d 34 38  3a e7 65 25 3e 3d 70 25  |):e%+=48:.e%>=p%|
00001ac0  8c 0d 02 08 cf 5f 55 25  21 26 43 3d a4 73 68 65  |....._U%!&C=.she|
00001ad0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 74 65  |ll_HeapBlockExte|
00001ae0  6e 64 28 5f 55 25 21 26  43 2c 34 38 29 3a 68 25  |nd(_U%!&C,48):h%|
00001af0  3d 5f 55 25 21 26 43 3a  68 25 21 28 65 25 2b 30  |=_U%!&C:h%!(e%+0|
00001b00  29 3d 30 3a 68 25 21 28  65 25 2b 34 29 3d 30 3a  |)=0:h%!(e%+4)=0:|
00001b10  68 25 21 28 65 25 2b 38  29 3d 30 3a 68 25 21 28  |h%!(e%+8)=0:h%!(|
00001b20  65 25 2b 26 43 29 3d 30  3a 68 25 21 28 65 25 2b  |e%+&C)=0:h%!(e%+|
00001b30  31 36 29 3d 30 3a 68 25  21 28 65 25 2b 32 30 29  |16)=0:h%!(e%+20)|
00001b40  3d 30 3a 68 25 21 28 65  25 2b 32 34 29 3d 30 3a  |=0:h%!(e%+24)=0:|
00001b50  68 25 21 28 65 25 2b 32  38 29 3d 30 3a 68 25 21  |h%!(e%+28)=0:h%!|
00001b60  28 65 25 2b 33 32 29 3d  30 3a 68 25 21 28 65 25  |(e%+32)=0:h%!(e%|
00001b70  2b 33 36 29 3d 30 3a 68  25 21 28 65 25 2b 34 30  |+36)=0:h%!(e%+40|
00001b80  29 3d 30 3a 68 25 21 28  65 25 2b 34 34 29 3d 30  |)=0:h%!(e%+44)=0|
00001b90  0d 02 16 07 cd 3a ce 0d  02 18 27 cd 3a 68 25 21  |.....:....'.:h%!|
00001ba0  28 65 25 2b 30 29 3d 62  25 3a 68 25 21 28 65 25  |(e%+0)=b%:h%!(e%|
00001bb0  2b 34 29 3d 79 25 3a e7  6d 25 3c 3e 30 8c 0d 02  |+4)=y%:.m%<>0...|
00001bc0  1c 10 68 25 21 28 65 25  2b 38 29 3d 6d 25 0d 02  |..h%!(e%+8)=m%..|
00001bd0  1d 25 cd 3a 69 43 25 3d  65 25 2b 28 26 43 2b 28  |.%.:iC%=e%+(&C+(|
00001be0  49 43 25 2a 34 29 29 3a  e7 68 25 21 69 43 25 3c  |IC%*4)):.h%!iC%<|
00001bf0  3e 30 8c 0d 02 20 22 f2  73 68 65 6c 6c 5f 48 65  |>0... ".shell_He|
00001c00  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 68 25  |apBlockReturn(h%|
00001c10  21 69 43 25 29 0d 02 21  3b cd 3a 65 42 25 3d a4  |!iC%)..!;.:eB%=.|
00001c20  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00001c30  65 74 63 68 28 a9 41 24  2b 31 29 3a 24 65 42 25  |etch(.A$+1):$eB%|
00001c40  3d 41 24 3a 68 25 21 69  43 25 3d 65 42 25 3a e1  |=A$:h%!iC%=eB%:.|
00001c50  0d 02 2a 4d dd f2 73 68  65 6c 6c 5f 45 76 65 6e  |..*M..shell_Even|
00001c60  74 44 65 6c 65 74 65 41  6c 6c 28 62 25 29 3a ea  |tDeleteAll(b%):.|
00001c70  65 25 2c 6d 25 2c 6a 25  2c 70 25 2c 68 25 2c 73  |e%,m%,j%,p%,h%,s|
00001c80  25 3a 65 25 3d 30 3a 6d  25 3d 30 3a 6a 25 3d a3  |%:e%=0:m%=0:j%=.|
00001c90  3a e7 62 25 3d 2d 31 8c  62 25 3d 2d 32 0d 02 2e  |:.b%=-1.b%=-2...|
00001ca0  3e 70 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |>p%=.shell_HeapB|
00001cb0  6c 6f 63 6b 49 6e 66 6f  28 5f 55 25 21 26 43 29  |lockInfo(_U%!&C)|
00001cc0  2d 38 3a 68 25 3d 5f 55  25 21 26 43 3a f5 3a e7  |-8:h%=_U%!&C:.:.|
00001cd0  28 68 25 21 65 25 3d 62  25 29 8c 0d 02 32 08 6a  |(h%!e%=b%)...2.j|
00001ce0  25 3d b9 0d 02 33 0b cc  65 25 2b 3d 34 38 0d 02  |%=...3..e%+=48..|
00001cf0  35 17 cd 3a fd 28 65 25  3e 3d 70 25 84 6a 25 29  |5..:.(e%>=p%.j%)|
00001d00  3a e7 6a 25 8c 0d 02 38  43 68 25 21 28 65 25 2b  |:.j%...8Ch%!(e%+|
00001d10  30 29 3d 30 3a 68 25 21  28 65 25 2b 34 29 3d 30  |0)=0:h%!(e%+4)=0|
00001d20  3a 68 25 21 28 65 25 2b  38 29 3d 30 3a e3 73 25  |:h%!(e%+8)=0:.s%|
00001d30  3d 26 43 b8 34 34 88 34  3a e7 68 25 21 28 65 25  |=&C.44.4:.h%!(e%|
00001d40  2b 73 25 29 3c 3e 30 8c  0d 02 3d 33 f2 73 68 65  |+s%)<>0...=3.she|
00001d50  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
00001d60  72 6e 28 68 25 21 28 65  25 2b 73 25 29 29 3a 68  |rn(h%!(e%+s%)):h|
00001d70  25 21 28 65 25 2b 73 25  29 3d 30 0d 02 3f 09 cd  |%!(e%+s%)=0..?..|
00001d80  3a ed 73 25 0d 02 41 93  cd 3a f2 73 68 65 6c 6c  |:.s%..A..:.shell|
00001d90  5f 54 72 61 63 65 66 30  28 22 45 76 65 6e 74 44  |_Tracef0("EventD|
00001da0  65 6c 65 74 65 41 6c 6c  3a 77 68 25 3d 26 22 2b  |eleteAll:wh%=&"+|
00001db0  c3 7e 62 25 29 3a f2 73  68 65 6c 6c 5f 44 65 6c  |.~b%):.shell_Del|
00001dc0  65 74 65 45 76 65 6e 74  44 61 74 61 53 61 76 65  |eteEventDataSave|
00001dd0  28 62 25 2c 2d 31 29 3a  f2 73 68 65 6c 6c 5f 44  |(b%,-1):.shell_D|
00001de0  65 6c 65 74 65 45 76 65  6e 74 42 75 6d 70 28 62  |eleteEventBump(b|
00001df0  25 2c 2d 31 29 3a f2 73  68 65 6c 6c 5f 44 65 6c  |%,-1):.shell_Del|
00001e00  65 74 65 45 76 65 6e 74  53 6c 69 64 65 72 28 62  |eteEventSlider(b|
00001e10  25 2c 2d 31 29 3a e1 0d  02 4d a7 dd f2 73 68 65  |%,-1):...M...she|
00001e20  6c 6c 5f 44 65 6c 65 74  65 45 76 65 6e 74 42 75  |ll_DeleteEventBu|
00001e30  6d 70 28 62 25 2c 66 25  29 3a ea 64 25 2c 61 25  |mp(b%,f%):.d%,a%|
00001e40  2c 70 25 2c 68 25 2c 63  25 3a 68 25 3d 5f 55 25  |,p%,h%,c%:h%=_U%|
00001e50  21 26 36 38 3a f5 3a 64  25 3d a4 73 68 65 6c 6c  |!&68:.:d%=.shell|
00001e60  5f 47 65 74 45 76 65 6e  74 4c 69 73 74 4f 66 66  |_GetEventListOff|
00001e70  73 65 74 28 62 25 2c 66  25 2c 5f 55 25 2b 26 36  |set(b%,f%,_U%+&6|
00001e80  38 2c 31 36 2c a3 29 3a  f2 73 68 65 6c 6c 5f 54  |8,16,.):.shell_T|
00001e90  72 61 63 65 66 30 28 22  44 65 6c 65 74 65 45 76  |racef0("DeleteEv|
00001ea0  65 6e 74 42 75 6d 70 3a  6f 66 66 73 65 74 25 3d  |entBump:offset%=|
00001eb0  22 2b c3 64 25 29 3a e7  64 25 3e 3d 30 8c 0d 02  |"+.d%):.d%>=0...|
00001ec0  5a 0b e7 66 25 3d 2d 31  8c 0d 02 5c 62 f2 73 68  |Z..f%=-1...\b.sh|
00001ed0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 44 65 6c  |ell_Tracef0("Del|
00001ee0  65 74 65 45 76 65 6e 74  42 75 6d 70 3a 44 65 6c  |eteEventBump:Del|
00001ef0  65 74 69 6e 67 20 42 75  6d 70 20 45 76 65 6e 74  |eting Bump Event|
00001f00  20 28 61 6c 6c 20 65 76  65 6e 74 73 20 66 6f 72  | (all events for|
00001f10  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 26  | window handle &|
00001f20  22 2b c3 7e 62 25 2b 22  29 22 29 0d 02 5e 70 cc  |"+.~b%+")")..^p.|
00001f30  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00001f40  44 65 6c 65 74 65 45 76  65 6e 74 42 75 6d 70 3a  |DeleteEventBump:|
00001f50  44 65 6c 65 74 69 6e 67  20 42 75 6d 70 20 45 76  |Deleting Bump Ev|
00001f60  65 6e 74 20 28 77 69 6e  64 6f 77 20 68 61 6e 64  |ent (window hand|
00001f70  6c 65 20 77 61 73 20 26  22 2b c3 7e 62 25 2b 22  |le was &"+.~b%+"|
00001f80  20 69 63 6f 6e 20 68 61  6e 64 6c 65 20 77 61 73  | icon handle was|
00001f90  20 22 2b c3 66 25 2b 22  29 22 29 0d 02 62 33 cd  | "+.f%+")")..b3.|
00001fa0  3a 70 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:p%=.shell_HeapB|
00001fb0  6c 6f 63 6b 49 6e 66 6f  28 5f 55 25 21 26 36 38  |lockInfo(_U%!&68|
00001fc0  29 2d 38 3a e7 64 25 3d  70 25 2d 31 36 8c 0d 02  |)-8:.d%=p%-16...|
00001fd0  67 0a e7 64 25 3d 30 8c  0d 02 69 d8 4c 41 25 3d  |g..d%=0...i.LA%=|
00001fe0  68 25 21 26 43 3a 63 25  3d 4c 41 25 21 26 43 3a  |h%!&C:c%=LA%!&C:|
00001ff0  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00002000  52 65 74 75 72 6e 28 63  25 21 26 43 29 3a f2 73  |Return(c%!&C):.s|
00002010  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00002020  74 75 72 6e 28 63 25 21  31 36 29 3a f2 73 68 65  |turn(c%!16):.she|
00002030  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
00002040  72 6e 28 63 25 29 3a f2  73 68 65 6c 6c 5f 48 65  |rn(c%):.shell_He|
00002050  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 5f 55  |apBlockReturn(_U|
00002060  25 21 26 36 38 29 3a 5f  55 25 21 26 36 38 3d 30  |%!&68):_U%!&68=0|
00002070  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00002080  22 44 65 6c 65 74 65 45  76 65 6e 74 42 75 6d 70  |"DeleteEventBump|
00002090  3a 4e 6f 20 42 75 6d 70  20 65 76 65 6e 74 73 20  |:No Bump events |
000020a0  6e 6f 77 20 72 65 67 69  73 74 65 72 65 64 22 29  |now registered")|
000020b0  0d 02 73 30 cc 5f 55 25  21 26 36 38 3d a4 73 68  |..s0._U%!&68=.sh|
000020c0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 45 78 74  |ell_HeapBlockExt|
000020d0  65 6e 64 28 5f 55 25 21  26 36 38 2c 2d 31 36 29  |end(_U%!&68,-16)|
000020e0  0d 02 76 05 cd 0d 02 77  86 cc 61 25 3d 68 25 2b  |..v....w..a%=h%+|
000020f0  64 25 3a 61 25 21 30 3d  30 3a 61 25 21 34 3d 30  |d%:a%!0=0:a%!4=0|
00002100  3a 61 25 21 38 3d 30 3a  4c 41 25 3d 61 25 21 26  |:a%!8=0:LA%=a%!&|
00002110  43 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |C:.shell_HeapBlo|
00002120  63 6b 52 65 74 75 72 6e  28 4c 41 25 21 26 43 29  |ckReturn(LA%!&C)|
00002130  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00002140  6b 52 65 74 75 72 6e 28  4c 41 25 21 31 36 29 3a  |kReturn(LA%!16):|
00002150  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00002160  52 65 74 75 72 6e 28 4c  41 25 29 0d 02 7f 05 cd  |Return(LA%).....|
00002170  0d 02 80 0d cd 3a fd 64  25 3c 30 3a e1 0d 02 89  |.....:.d%<0:....|
00002180  6a dd f2 73 68 65 6c 6c  5f 44 65 6c 65 74 65 45  |j..shell_DeleteE|
00002190  76 65 6e 74 44 61 74 61  53 61 76 65 28 62 25 2c  |ventDataSave(b%,|
000021a0  66 25 29 3a ea 64 25 2c  61 25 2c 70 25 3a f5 3a  |f%):.d%,a%,p%:.:|
000021b0  64 25 3d a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |d%=.shell_GetEve|
000021c0  6e 74 4c 69 73 74 4f 66  66 73 65 74 28 62 25 2c  |ntListOffset(b%,|
000021d0  66 25 2c 5f 55 25 2b 37  32 2c 32 34 2c a3 29 3a  |f%,_U%+72,24,.):|
000021e0  e7 64 25 3e 3d 30 8c 0d  02 95 0b e7 66 25 3d 2d  |.d%>=0......f%=-|
000021f0  31 8c 0d 02 96 6a f2 73  68 65 6c 6c 5f 54 72 61  |1....j.shell_Tra|
00002200  63 65 66 30 28 22 44 65  6c 65 74 65 45 76 65 6e  |cef0("DeleteEven|
00002210  74 44 61 74 61 53 61 76  65 3a 44 65 6c 65 74 69  |tDataSave:Deleti|
00002220  6e 67 20 44 61 74 61 53  61 76 65 20 45 76 65 6e  |ng DataSave Even|
00002230  74 20 28 61 6c 6c 20 65  76 65 6e 74 73 20 66 6f  |t (all events fo|
00002240  72 20 77 69 6e 64 6f 77  20 68 61 6e 64 6c 65 20  |r window handle |
00002250  26 22 2b c3 7e 62 25 2b  22 29 22 29 0d 02 97 78  |&"+.~b%+")")...x|
00002260  cc f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |..shell_Tracef0(|
00002270  22 44 65 6c 65 74 65 45  76 65 6e 74 44 61 74 61  |"DeleteEventData|
00002280  53 61 76 65 3a 44 65 6c  65 74 69 6e 67 20 44 61  |Save:Deleting Da|
00002290  74 61 53 61 76 65 20 45  76 65 6e 74 20 28 77 69  |taSave Event (wi|
000022a0  6e 64 6f 77 20 68 61 6e  64 6c 65 20 77 61 73 20  |ndow handle was |
000022b0  26 22 2b c3 7e 62 25 2b  22 20 69 63 6f 6e 20 68  |&"+.~b%+" icon h|
000022c0  61 6e 64 6c 65 20 77 61  73 20 22 2b c3 66 25 2b  |andle was "+.f%+|
000022d0  22 29 22 29 0d 02 99 32  cd 3a 70 25 3d a4 73 68  |")")...2.:p%=.sh|
000022e0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 49 6e 66  |ell_HeapBlockInf|
000022f0  6f 28 5f 55 25 21 37 32  29 2d 38 3a e7 64 25 3d  |o(_U%!72)-8:.d%=|
00002300  70 25 2d 32 34 8c 0d 02  9e 0a e7 64 25 3d 30 8c  |p%-24......d%=0.|
00002310  0d 02 a0 73 f2 73 68 65  6c 6c 5f 48 65 61 70 42  |...s.shell_HeapB|
00002320  6c 6f 63 6b 52 65 74 75  72 6e 28 5f 55 25 21 37  |lockReturn(_U%!7|
00002330  32 29 3a 5f 55 25 21 37  32 3d 30 3a f2 73 68 65  |2):_U%!72=0:.she|
00002340  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 65 6c 65  |ll_Tracef0("Dele|
00002350  74 65 45 76 65 6e 74 44  61 74 61 53 61 76 65 3a  |teEventDataSave:|
00002360  4e 6f 20 44 61 74 61 53  61 76 65 20 65 76 65 6e  |No DataSave even|
00002370  74 73 20 6e 6f 77 20 72  65 67 69 73 74 65 72 65  |ts now registere|
00002380  64 22 29 0d 02 a5 2e cc  5f 55 25 21 37 32 3d a4  |d")....._U%!72=.|
00002390  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
000023a0  78 74 65 6e 64 28 5f 55  25 21 37 32 2c 2d 32 34  |xtend(_U%!72,-24|
000023b0  29 0d 02 a8 05 cd 0d 02  a9 58 cc 61 25 3d 68 25  |)........X.a%=h%|
000023c0  2b 64 25 3a 61 25 21 30  3d 30 3a 61 25 21 34 3d  |+d%:a%!0=0:a%!4=|
000023d0  30 3a 61 25 21 38 3d 30  3a 61 25 21 26 43 3d 30  |0:a%!8=0:a%!&C=0|
000023e0  3a 61 25 21 31 36 3d 30  3a f2 73 68 65 6c 6c 5f  |:a%!16=0:.shell_|
000023f0  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
00002400  61 25 21 32 30 29 3a 61  25 21 32 30 3d 30 0d 02  |a%!20):a%!20=0..|
00002410  ae 05 cd 0d 02 af 0d cd  3a fd 64 25 3c 30 3a e1  |........:.d%<0:.|
00002420  0d 02 b8 3d dd a4 73 68  65 6c 6c 5f 4d 65 73 73  |...=..shell_Mess|
00002430  61 67 65 4e 6f 41 72 67  73 28 49 24 29 3a 3d a4  |ageNoArgs(I$):=.|
00002440  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4c 6f 6f  |shell_MessageLoo|
00002450  6b 75 70 28 49 24 2c 22  22 2c 22 22 29 0d 02 be  |kup(I$,"","")...|
00002460  42 dd a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |B..shell_Message|
00002470  4f 6e 65 41 72 67 28 49  24 2c 49 41 24 29 3a 3d  |OneArg(I$,IA$):=|
00002480  a4 73 68 65 6c 6c 5f 4d  65 73 73 61 67 65 4c 6f  |.shell_MessageLo|
00002490  6f 6b 75 70 28 49 24 2c  49 41 24 2c 22 22 29 0d  |okup(I$,IA$,"").|
000024a0  02 c4 4b dd a4 73 68 65  6c 6c 5f 4d 65 73 73 61  |..K..shell_Messa|
000024b0  67 65 4c 6f 6f 6b 75 70  28 49 24 2c 49 41 24 2c  |geLookup(I$,IA$,|
000024c0  6a 41 24 29 3a ea 6e 25  2c 4c 25 2c 67 24 2c 62  |jA$):.n%,L%,g$,b|
000024d0  43 25 2c 6d 42 25 3a e7  c0 49 24 2c 38 29 3d 22  |C%,mB%:..I$,8)="|
000024e0  53 48 45 4c 4c 4d 53 47  22 8c 0d 02 c7 1b 62 43  |SHELLMSG".....bC|
000024f0  25 3d 5f 55 25 21 32 38  34 3a 6d 42 25 3d 5f 55  |%=_U%!284:mB%=_U|
00002500  25 21 32 38 30 0d 02 c8  1a cc 62 43 25 3d 5f 55  |%!280.....bC%=_U|
00002510  25 21 36 34 3a 6d 42 25  3d 5f 55 25 21 36 38 0d  |%!64:mB%=_U%!68.|
00002520  02 ca 35 cd 3a c8 99 26  36 31 35 30 32 2c 6d 42  |..5.:..&61502,mB|
00002530  25 2c 49 24 2c 62 43 25  2c 32 35 36 2c 49 41 24  |%,I$,bC%,256,IA$|
00002540  2c 6a 41 24 b8 2c 2c 2c  4c 25 3b 6e 25 3a e7 6e  |,jA$.,,,L%;n%:.n|
00002550  25 80 31 8c 0d 02 ce 18  cc 62 43 25 3f 4c 25 3d  |%.1......bC%?L%=|
00002560  26 44 3a 67 24 3d 24 28  62 43 25 29 0d 02 d1 09  |&D:g$=$(bC%)....|
00002570  cd 3a 3d 67 24 0d 02 d7  54 dd a4 73 68 65 6c 6c  |.:=g$...T..shell|
00002580  5f 57 69 6d 70 49 6e 69  74 28 51 43 25 2c 44 41  |_WimpInit(QC%,DA|
00002590  24 29 3a ea 62 41 25 3a  c8 99 26 34 30 30 43 30  |$):.bA%:..&400C0|
000025a0  2c 51 43 25 2c 26 34 42  35 33 34 31 35 34 2c 44  |,QC%,&4B534154,D|
000025b0  41 24 b8 51 43 25 2c 62  41 25 3a e7 5f 55 25 21  |A$.QC%,bA%:._U%!|
000025c0  26 36 34 80 31 3c 3c 36  8c 0d 02 db 21 c8 99 22  |&64.1<<6....!.."|
000025d0  57 69 6d 70 45 78 74 5f  49 6e 69 74 69 61 6c 69  |WimpExt_Initiali|
000025e0  73 65 22 2c 26 45 2c 62  41 25 0d 02 dc 16 cd 3a  |se",&E,bA%.....:|
000025f0  5f 55 25 21 26 39 34 3d  62 41 25 3a 3d 62 41 25  |_U%!&94=bA%:=bA%|
00002600  0d 02 e3 51 dd a4 73 68  65 6c 6c 5f 57 69 6d 70  |...Q..shell_Wimp|
00002610  49 6e 69 74 5f 49 28 51  43 25 2c 44 41 24 29 3a  |Init_I(QC%,DA$):|
00002620  c8 99 26 34 30 30 43 30  2c 51 43 25 2c 26 34 42  |..&400C0,QC%,&4B|
00002630  35 33 34 31 35 34 2c 44  41 24 b8 51 43 25 2c 62  |534154,DA$.QC%,b|
00002640  41 25 3a e7 5f 55 25 21  26 36 34 80 31 3c 3c 36  |A%:._U%!&64.1<<6|
00002650  8c 0d 02 e6 21 c8 99 22  57 69 6d 70 45 78 74 5f  |....!.."WimpExt_|
00002660  49 6e 69 74 69 61 6c 69  73 65 22 2c 26 45 2c 62  |Initialise",&E,b|
00002670  41 25 0d 02 e7 23 cd 3a  5f 55 25 21 26 39 34 3d  |A%...#.:_U%!&94=|
00002680  62 41 25 3a c8 99 26 38  31 36 38 32 2c 62 41 25  |bA%:..&81682,bA%|
00002690  3a 3d 62 41 25 0d 02 ef  54 dd f2 73 68 65 6c 6c  |:=bA%...T..shell|
000026a0  5f 57 69 6d 70 43 6c 6f  73 65 44 6f 77 6e 5f 49  |_WimpCloseDown_I|
000026b0  28 62 41 25 29 3a f2 73  68 65 6c 6c 5f 4c 6f 73  |(bA%):.shell_Los|
000026c0  65 46 6f 6e 74 73 3a e7  5f 55 25 21 26 46 30 3c  |eFonts:._U%!&F0<|
000026d0  3e 2d 31 8c c8 99 22 58  46 6f 6e 74 4d 65 6e 75  |>-1..."XFontMenu|
000026e0  5f 52 65 6c 65 61 73 65  22 0d 02 f4 12 e7 5f 55  |_Release"....._U|
000026f0  25 21 26 36 34 80 31 3c  3c 36 8c 0d 02 f5 21 c8  |%!&64.1<<6....!.|
00002700  99 22 57 69 6d 70 45 78  74 5f 49 6e 69 74 69 61  |."WimpExt_Initia|
00002710  6c 69 73 65 22 2c 26 45  2c 62 41 25 0d 02 f6 56  |lise",&E,bA%...V|
00002720  cd 3a c8 99 26 36 30 30  44 44 2c 62 41 25 2c 26  |.:..&600DD,bA%,&|
00002730  34 42 35 33 34 31 35 34  3a c8 99 26 41 31 36 38  |4B534154:..&A168|
00002740  33 2c 62 41 25 3a e7 5f  55 25 21 26 36 34 80 31  |3,bA%:._U%!&64.1|
00002750  3c 3c 32 8c c8 99 22 58  49 6d 70 75 6c 73 65 5f  |<<2..."XImpulse_|
00002760  43 6c 6f 73 65 44 6f 77  6e 22 2c 5f 55 25 21 26  |CloseDown",_U%!&|
00002770  39 34 0d 02 fa 05 e1 0d  02 ff 4c dd f2 57 69 6d  |94........L..Wim|
00002780  70 43 6c 6f 73 65 44 6f  77 6e 28 62 41 25 29 3a  |pCloseDown(bA%):|
00002790  f2 73 68 65 6c 6c 5f 4c  6f 73 65 46 6f 6e 74 73  |.shell_LoseFonts|
000027a0  3a e7 5f 55 25 21 26 46  30 3c 3e 2d 31 8c c8 99  |:._U%!&F0<>-1...|
000027b0  22 58 46 6f 6e 74 4d 65  6e 75 5f 52 65 6c 65 61  |"XFontMenu_Relea|
000027c0  73 65 22 0d 03 04 12 e7  5f 55 25 21 26 36 34 80  |se"....._U%!&64.|
000027d0  31 3c 3c 36 8c 0d 03 05  21 c8 99 22 57 69 6d 70  |1<<6....!.."Wimp|
000027e0  45 78 74 5f 49 6e 69 74  69 61 6c 69 73 65 22 2c  |Ext_Initialise",|
000027f0  26 45 2c 62 41 25 0d 03  06 49 cd 3a c8 99 26 36  |&E,bA%...I.:..&6|
00002800  30 30 44 44 2c 62 41 25  2c 26 34 42 35 33 34 31  |00DD,bA%,&4B5341|
00002810  35 34 3a e7 5f 55 25 21  26 36 34 80 31 3c 3c 32  |54:._U%!&64.1<<2|
00002820  8c c8 99 22 58 49 6d 70  75 6c 73 65 5f 43 6c 6f  |..."XImpulse_Clo|
00002830  73 65 44 6f 77 6e 22 2c  5f 55 25 21 26 39 34 0d  |seDown",_U%!&94.|
00002840  03 09 2e ff 28 22 55 6e  73 65 74 20 22 2b 5f 73  |....("Unset "+_s|
00002850  68 65 6c 6c 5f 41 70 70  4e 61 6d 65 24 2b 22 24  |hell_AppName$+"$|
00002860  42 61 73 69 63 46 69 6c  65 22 29 3a e1 0d 03 0f  |BasicFile"):....|
00002870  58 dd f2 73 68 65 6c 6c  5f 4c 6f 73 65 46 6f 6e  |X..shell_LoseFon|
00002880  74 73 3a ea 73 25 2c 63  25 3a 63 25 3d 5f 55 25  |ts:.s%,c%:c%=_U%|
00002890  21 26 45 38 3a e3 73 25  3d 30 b8 26 46 46 3a c8  |!&E8:.s%=0.&FF:.|
000028a0  95 63 25 3f 73 25 3e 30  3a c8 99 26 34 30 30 38  |.c%?s%>0:..&4008|
000028b0  32 2c 73 25 3a 63 25 3f  73 25 2d 3d 31 3a ce 3a  |2,s%:c%?s%-=1:.:|
000028c0  ed 73 25 3a e1 0d 03 1d  99 dd a4 73 68 65 6c 6c  |.s%:.......shell|
000028d0  5f 46 69 6e 64 46 6f 6e  74 28 62 24 2c 74 46 25  |_FindFont(b$,tF%|
000028e0  29 3a ea 51 41 25 2c 76  44 25 3a 76 44 25 3d 5f  |):.QA%,vD%:vD%=_|
000028f0  55 25 21 26 45 38 3a c8  99 26 34 30 30 38 31 2c  |U%!&E8:..&40081,|
00002900  2c 62 24 2c 74 46 25 2a  31 36 2c 63 2a 31 36 2c  |,b$,tF%*16,c*16,|
00002910  30 2c 30 b8 51 41 25 3a  76 44 25 3f 51 41 25 2b  |0,0.QA%:vD%?QA%+|
00002920  3d 31 3a e7 76 44 25 3f  51 41 25 3e 3d 26 46 46  |=1:.vD%?QA%>=&FF|
00002930  8c f2 73 68 65 6c 6c 5f  4f 4b 28 a4 73 68 65 6c  |..shell_OK(.shel|
00002940  6c 5f 4d 65 73 73 61 67  65 4e 6f 41 72 67 73 28  |l_MessageNoArgs(|
00002950  22 53 48 45 4c 4c 4d 53  47 31 38 22 29 29 0d 03  |"SHELLMSG18"))..|
00002960  23 08 3d 51 41 25 0d 03  28 ff dd f2 73 68 65 6c  |#.=QA%..(...shel|
00002970  6c 5f 49 6e 69 74 3a ea  69 41 25 2c 73 25 2c 63  |l_Init:.iA%,s%,c|
00002980  25 2c 4e 24 3a ea 71 41  25 2c 44 24 2c 45 24 3a  |%,N$:.qA%,D$,E$:|
00002990  de 5f 55 25 33 36 30 2c  5f 73 68 65 6c 6c 5f 62  |._U%360,_shell_b|
000029a0  6c 6b 25 32 36 30 3a 5f  51 25 3d a4 73 68 65 6c  |lk%260:_Q%=.shel|
000029b0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
000029c0  28 26 42 42 38 29 3a 69  41 25 3d a4 73 68 65 6c  |(&BB8):iA%=.shel|
000029d0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
000029e0  28 34 38 29 3a 69 41 25  21 30 3d 30 3a 69 41 25  |(48):iA%!0=0:iA%|
000029f0  21 34 3d 30 3a 69 41 25  21 38 3d 30 3a 69 41 25  |!4=0:iA%!8=0:iA%|
00002a00  21 26 43 3d 30 3a 69 41  25 21 31 36 3d 30 3a 69  |!&C=0:iA%!16=0:i|
00002a10  41 25 21 32 30 3d 30 3a  69 41 25 21 32 34 3d 30  |A%!20=0:iA%!24=0|
00002a20  3a 69 41 25 21 32 38 3d  30 3a 69 41 25 21 33 32  |:iA%!28=0:iA%!32|
00002a30  3d 30 3a 69 41 25 21 33  36 3d 30 3a 69 41 25 21  |=0:iA%!36=0:iA%!|
00002a40  34 30 3d 30 3a 69 41 25  21 34 34 3d 30 3a 5f 55  |40=0:iA%!44=0:_U|
00002a50  25 21 30 3d 30 3a 5f 55  25 21 34 3d 30 3a 5f 55  |%!0=0:_U%!4=0:_U|
00002a60  25 21 38 3d 30 0d 03 3d  fa 5f 55 25 21 26 43 3d  |%!8=0..=._U%!&C=|
00002a70  69 41 25 3a 5f 55 25 21  31 36 3d 31 3a 5f 55 25  |iA%:_U%!16=1:_U%|
00002a80  21 32 30 3d 30 3a 5f 55  25 21 32 34 3d 30 3a 5f  |!20=0:_U%!24=0:_|
00002a90  55 25 21 32 38 3d 30 3a  5f 55 25 21 33 32 3d 30  |U%!28=0:_U%!32=0|
00002aa0  3a 5f 55 25 21 33 36 3d  30 3a 5f 55 25 21 34 30  |:_U%!36=0:_U%!40|
00002ab0  3d 30 3a 5f 55 25 21 34  34 3d 2d 31 3a 5f 55 25  |=0:_U%!44=-1:_U%|
00002ac0  21 34 38 3d 30 3a 5f 55  25 21 35 32 3d 30 3a 5f  |!48=0:_U%!52=0:_|
00002ad0  55 25 21 35 36 3d 30 3a  5f 55 25 21 36 30 3d 30  |U%!56=0:_U%!60=0|
00002ae0  3a 5f 55 25 21 36 34 3d  30 3a 5f 55 25 21 36 38  |:_U%!64=0:_U%!68|
00002af0  3d 30 3a 5f 55 25 21 37  32 3d 30 3a 5f 55 25 21  |=0:_U%!72=0:_U%!|
00002b00  37 36 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |76=.shell_HeapBl|
00002b10  6f 63 6b 46 65 74 63 68  28 32 35 36 29 3a 5f 55  |ockFetch(256):_U|
00002b20  25 21 38 30 3d 30 3a 5f  55 25 21 38 34 3d 2d 31  |%!80=0:_U%!84=-1|
00002b30  3a 5f 55 25 21 38 38 3d  30 3a 5f 55 25 21 39 32  |:_U%!88=0:_U%!92|
00002b40  3d 30 3a 5f 55 25 21 39  36 3d 30 3a 5f 55 25 21  |=0:_U%!96=0:_U%!|
00002b50  26 36 34 3d 30 3a 5f 55  25 21 26 36 38 3d 30 0d  |&64=0:_U%!&68=0.|
00002b60  03 68 fb 5f 55 25 21 26  36 43 3d 2d 31 3a 5f 55  |.h._U%!&6C=-1:_U|
00002b70  25 21 26 37 30 3d 2d 31  3a 5f 55 25 21 26 37 34  |%!&70=-1:_U%!&74|
00002b80  3d 2d 31 3a 5f 55 25 21  26 37 38 3d 2d 31 3a 5f  |=-1:_U%!&78=-1:_|
00002b90  55 25 21 26 37 43 3d 2d  31 3a 5f 55 25 21 26 38  |U%!&7C=-1:_U%!&8|
00002ba0  30 3d 30 3a 5f 55 25 21  26 38 34 3d 30 3a 5f 55  |0=0:_U%!&84=0:_U|
00002bb0  25 21 26 38 38 3d 2d 31  3a 5f 55 25 21 26 38 43  |%!&88=-1:_U%!&8C|
00002bc0  3d 2d 31 3a 5f 55 25 21  26 39 30 3d 2d 31 3a 5f  |=-1:_U%!&90=-1:_|
00002bd0  55 25 21 26 39 34 3d 30  3a 5f 55 25 21 26 39 38  |U%!&94=0:_U%!&98|
00002be0  3d 30 3a 5f 55 25 21 26  39 43 3d 30 3a 5f 55 25  |=0:_U%!&9C=0:_U%|
00002bf0  21 26 41 30 3d 30 3a 5f  55 25 21 26 41 34 3d 30  |!&A0=0:_U%!&A4=0|
00002c00  3a 5f 55 25 21 26 41 38  3d 30 3a 5f 55 25 21 26  |:_U%!&A8=0:_U%!&|
00002c10  41 43 3d 30 3a 5f 55 25  21 26 42 30 3d 30 3a 5f  |AC=0:_U%!&B0=0:_|
00002c20  55 25 21 26 42 34 3d 30  3a 5f 55 25 21 26 42 38  |U%!&B4=0:_U%!&B8|
00002c30  3d 30 3a 5f 55 25 21 26  42 43 3d 30 3a 5f 55 25  |=0:_U%!&BC=0:_U%|
00002c40  21 26 43 30 3d 30 3a 5f  55 25 21 26 43 34 3d 30  |!&C0=0:_U%!&C4=0|
00002c50  3a 5f 55 25 21 26 43 38  3d 30 0d 03 81 f6 5f 55  |:_U%!&C8=0...._U|
00002c60  25 21 26 43 43 3d 30 3a  5f 55 25 21 26 44 30 3d  |%!&CC=0:_U%!&D0=|
00002c70  2d 31 3a 5f 55 25 21 26  44 34 3d 2d 31 3a 5f 55  |-1:_U%!&D4=-1:_U|
00002c80  25 21 26 44 38 3d 30 3a  5f 55 25 21 26 44 43 3d  |%!&D8=0:_U%!&DC=|
00002c90  30 3a 5f 55 25 21 26 45  30 3d 30 3a 5f 55 25 21  |0:_U%!&E0=0:_U%!|
00002ca0  26 45 34 3d 30 3a 5f 55  25 21 26 45 38 3d a4 73  |&E4=0:_U%!&E8=.s|
00002cb0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
00002cc0  74 63 68 28 32 35 36 29  3a 5f 55 25 21 26 45 43  |tch(256):_U%!&EC|
00002cd0  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00002ce0  6b 46 65 74 63 68 28 32  35 36 29 3a 5f 55 25 21  |kFetch(256):_U%!|
00002cf0  26 46 30 3d 2d 31 3a 5f  55 25 21 26 46 34 3d 30  |&F0=-1:_U%!&F4=0|
00002d00  3a 5f 55 25 21 26 46 38  3d 30 3a 5f 55 25 21 26  |:_U%!&F8=0:_U%!&|
00002d10  46 43 3d 30 3a 5f 55 25  21 32 35 36 3d 30 3a 5f  |FC=0:_U%!256=0:_|
00002d20  55 25 21 32 36 30 3d 31  3a 5f 55 25 21 32 36 34  |U%!260=1:_U%!264|
00002d30  3d 30 3a 5f 55 25 21 32  36 38 3d 30 3a 5f 55 25  |=0:_U%!268=0:_U%|
00002d40  21 32 37 32 3d 30 3a 5f  55 25 21 32 37 36 3d 30  |!272=0:_U%!276=0|
00002d50  0d 03 96 ec 5f 55 25 21  32 38 30 3d 30 3a 5f 55  |...._U%!280=0:_U|
00002d60  25 21 32 38 34 3d 30 3a  5f 55 25 21 32 38 38 3d  |%!284=0:_U%!288=|
00002d70  2d 31 3a 5f 55 25 21 32  39 32 3d 2d 31 3a 5f 55  |-1:_U%!292=-1:_U|
00002d80  25 21 32 39 36 3d 2d 31  3a 5f 55 25 21 33 30 30  |%!296=-1:_U%!300|
00002d90  3d 30 3a 5f 55 25 21 33  30 34 3d 30 3a 5f 55 25  |=0:_U%!304=0:_U%|
00002da0  21 33 30 38 3d 30 3a 5f  55 25 21 33 31 32 3d 30  |!308=0:_U%!312=0|
00002db0  3a 5f 55 25 21 33 31 36  3d 30 3a 5f 55 25 21 33  |:_U%!316=0:_U%!3|
00002dc0  32 30 3d 30 3a 5f 55 25  21 33 32 34 3d 30 3a 5f  |20=0:_U%!324=0:_|
00002dd0  55 25 21 33 32 38 3d 30  3a 5f 55 25 21 33 33 32  |U%!328=0:_U%!332|
00002de0  3d 30 3a 5f 55 25 21 33  33 36 3d 30 3a 5f 55 25  |=0:_U%!336=0:_U%|
00002df0  21 33 34 30 3d 30 3a 5f  55 25 21 33 34 34 3d 30  |!340=0:_U%!344=0|
00002e00  3a f2 73 68 65 6c 6c 5f  4d 65 6d 46 69 6c 6c 28  |:.shell_MemFill(|
00002e10  5f 55 25 21 26 45 38 2c  32 35 36 2c 30 29 3a f2  |_U%!&E8,256,0):.|
00002e20  73 68 65 6c 6c 5f 4d 65  6d 46 69 6c 6c 28 5f 55  |shell_MemFill(_U|
00002e30  25 21 26 45 43 2c 32 35  36 2c 30 29 0d 03 a9 f3  |%!&EC,256,0)....|
00002e40  71 41 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |qA%=.shell_HeapB|
00002e50  6c 6f 63 6b 46 65 74 63  68 28 32 35 36 29 3a 44  |lockFetch(256):D|
00002e60  24 3d a4 73 68 65 6c 6c  5f 4f 53 56 61 72 47 65  |$=.shell_OSVarGe|
00002e70  74 56 61 6c 28 71 41 25  2c 32 35 36 2c 22 4f 62  |tVal(qA%,256,"Ob|
00002e80  65 79 24 44 69 72 22 2c  31 29 3a f2 73 68 65 6c  |ey$Dir",1):.shel|
00002e90  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00002ea0  6e 28 71 41 25 29 3a 45  24 3d c1 a4 73 68 65 6c  |n(qA%):E$=..shel|
00002eb0  6c 5f 4c 65 61 66 28 44  24 29 2c 32 29 3a 5f 55  |l_Leaf(D$),2):_U|
00002ec0  25 21 26 42 43 3d a4 73  68 65 6c 6c 5f 48 65 61  |%!&BC=.shell_Hea|
00002ed0  70 42 6c 6f 63 6b 46 65  74 63 68 28 28 a9 44 24  |pBlockFetch((.D$|
00002ee0  29 2b 31 29 3a 5f 55 25  21 26 43 34 3d a4 73 68  |)+1):_U%!&C4=.sh|
00002ef0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00002f00  63 68 28 28 a9 45 24 29  2b 31 29 3a 63 25 3d 5f  |ch((.E$)+1):c%=_|
00002f10  55 25 21 26 42 43 3a 24  63 25 3d 44 24 3a 63 25  |U%!&BC:$c%=D$:c%|
00002f20  3d 5f 55 25 21 26 43 34  3a 24 63 25 3d 45 24 0d  |=_U%!&C4:$c%=E$.|
00002f30  03 b2 2a 4e 24 3d a4 73  68 65 6c 6c 5f 4f 53 52  |..*N$=.shell_OSR|
00002f40  65 61 64 43 6f 6d 6d 61  6e 64 41 72 67 28 31 29  |eadCommandArg(1)|
00002f50  3a e7 4e 24 3c 3e 22 22  8c 0d 03 b4 4c 5f 55 25  |:.N$<>""....L_U%|
00002f60  21 26 36 34 3d 5f 55 25  21 26 36 34 84 31 3c 3c  |!&64=_U%!&64.1<<|
00002f70  35 3a 63 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |5:c%=.shell_Heap|
00002f80  42 6c 6f 63 6b 46 65 74  63 68 28 a9 4e 24 2b 31  |BlockFetch(.N$+1|
00002f90  29 3a 24 28 63 25 29 3d  4e 24 3a 5f 55 25 21 33  |):$(c%)=N$:_U%!3|
00002fa0  32 34 3d 63 25 0d 03 b8  55 cd 3a 63 25 3d a4 73  |24=c%...U.:c%=.s|
00002fb0  68 65 6c 6c 5f 4f 53 4d  6f 64 75 6c 65 43 68 65  |hell_OSModuleChe|
00002fc0  63 6b 56 65 72 73 69 6f  6e 28 22 57 69 6d 70 45  |ckVersion("WimpE|
00002fd0  78 74 65 6e 73 69 6f 6e  22 2c 31 2e 39 38 29 3a  |xtension",1.98):|
00002fe0  e7 63 25 3d b9 8c 5f 55  25 21 26 36 34 3d 5f 55  |.c%=.._U%!&64=_U|
00002ff0  25 21 26 36 34 84 31 3c  3c 36 0d 03 bc 2f 63 25  |%!&64.1<<6.../c%|
00003000  3d a4 52 4f 33 5f 50 72  65 73 65 6e 74 3a e7 63  |=.RO3_Present:.c|
00003010  25 3d b9 8c 5f 55 25 21  26 36 34 3d 5f 55 25 21  |%=.._U%!&64=_U%!|
00003020  26 36 34 84 31 3c 3c 26  41 0d 03 be 1b 5f 55 25  |&64.1<<&A...._U%|
00003030  21 26 36 34 3d 5f 55 25  21 26 36 34 84 31 3c 3c  |!&64=_U%!&64.1<<|
00003040  26 43 3a e1 0d 03 c4 2b  dd a4 73 68 65 6c 6c 5f  |&C:....+..shell_|
00003050  47 65 74 43 6d 64 4c 69  6e 65 41 72 67 73 3a ea  |GetCmdLineArgs:.|
00003060  4e 24 3a e7 5f 55 25 21  33 32 34 3c 3e 30 8c 0d  |N$:._U%!324<>0..|
00003070  03 c7 11 4e 24 3d 24 28  5f 55 25 21 33 32 34 29  |...N$=$(_U%!324)|
00003080  0d 03 c8 3a cd 3a f2 73  68 65 6c 6c 5f 54 72 61  |...:.:.shell_Tra|
00003090  63 65 66 30 28 22 47 65  74 43 6d 64 4c 69 6e 65  |cef0("GetCmdLine|
000030a0  41 72 67 73 3a 63 6d 64  6c 69 6e 65 20 77 61 73  |Args:cmdline was|
000030b0  20 22 2b 4e 24 29 3a 3d  4e 24 0d 03 cf 41 dd a4  | "+N$):=N$...A..|
000030c0  73 68 65 6c 6c 5f 46 69  6c 65 54 79 70 65 28 64  |shell_FileType(d|
000030d0  24 29 3a ea 77 25 3a c8  99 38 2c 35 2c 64 24 b8  |$):.w%:..8,5,d$.|
000030e0  2c 2c 77 25 3a 77 25 3d  28 77 25 80 26 46 46 46  |,,w%:w%=(w%.&FFF|
000030f0  30 30 29 3e 3e 3e 38 3a  3d 77 25 0d 03 d8 41 dd  |00)>>>8:=w%...A.|
00003100  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
00003110  73 28 64 24 29 3a e7 a4  73 68 65 6c 6c 5f 43 61  |s(d$):..shell_Ca|
00003120  74 49 6e 66 6f 52 65 61  64 28 64 24 29 3d 22 4e  |tInfoRead(d$)="N|
00003130  6f 74 20 46 6f 75 6e 64  22 3a 3d a3 0d 03 da 06  |ot Found":=.....|
00003140  3d b9 0d 03 df 62 dd a4  73 68 65 6c 6c 5f 43 61  |=....b..shell_Ca|
00003150  74 49 6e 66 6f 52 65 61  64 28 64 24 29 3a ea 77  |tInfoRead(d$):.w|
00003160  25 2c 4a 44 25 2c 6b 43  25 2c 44 42 25 2c 46 43  |%,JD%,kC%,DB%,FC|
00003170  25 2c 42 24 3a c8 99 38  2c 35 2c 64 24 b8 77 25  |%,B$:..8,5,d$.w%|
00003180  2c 2c 4a 44 25 2c 6b 43  25 2c 44 42 25 2c 46 43  |,,JD%,kC%,DB%,FC|
00003190  25 3a e7 77 25 3d 30 8c  3d 22 4e 6f 74 20 46 6f  |%:.w%=0.="Not Fo|
000031a0  75 6e 64 22 0d 03 e3 15  e7 46 43 25 3d 35 31 8c  |und".....FC%=51.|
000031b0  42 24 2b 3d 22 57 52 20  22 0d 03 e4 16 e7 46 43  |B$+="WR ".....FC|
000031c0  25 3d 26 42 42 8c 42 24  2b 3d 22 4c 57 52 22 0d  |%=&BB.B$+="LWR".|
000031d0  03 e5 16 e7 46 43 25 3d  26 38 38 8c 42 24 2b 3d  |....FC%=&88.B$+=|
000031e0  22 44 4c 20 22 0d 03 e6  8e 42 24 2b 3d 22 20 22  |"DL "....B$+=" "|
000031f0  2b a4 73 68 65 6c 6c 5f  53 74 72 69 6e 67 50 61  |+.shell_StringPa|
00003200  64 4c 65 61 64 69 6e 67  28 c3 7e 4a 44 25 2c 22  |dLeading(.~JD%,"|
00003210  30 22 2c 38 29 3a 42 24  2b 3d 22 20 22 2b a4 73  |0",8):B$+=" "+.s|
00003220  68 65 6c 6c 5f 53 74 72  69 6e 67 50 61 64 4c 65  |hell_StringPadLe|
00003230  61 64 69 6e 67 28 c3 7e  6b 43 25 2c 22 30 22 2c  |ading(.~kC%,"0",|
00003240  38 29 3a 42 24 2b 3d 22  20 22 2b a4 73 68 65 6c  |8):B$+=" "+.shel|
00003250  6c 5f 53 74 72 69 6e 67  50 61 64 4c 65 61 64 69  |l_StringPadLeadi|
00003260  6e 67 28 c3 7e 44 42 25  2c 22 30 22 2c 38 29 3a  |ng(.~DB%,"0",8):|
00003270  3d 42 24 0d 03 ed 29 dd  a4 73 68 65 6c 6c 5f 47  |=B$...)..shell_G|
00003280  65 74 41 70 70 44 69 72  3a ea 63 25 3a 63 25 3d  |etAppDir:.c%:c%=|
00003290  5f 55 25 21 26 42 43 3a  3d 24 63 25 0d 03 f4 2d  |_U%!&BC:=$c%...-|
000032a0  dd a4 73 68 65 6c 6c 5f  47 65 74 41 70 70 44 61  |..shell_GetAppDa|
000032b0  74 61 44 69 72 3a ea 63  25 3a 63 25 3d 5f 55 25  |taDir:.c%:c%=_U%|
000032c0  21 26 43 30 3a 3d 24 63  25 0d 03 fb 2a dd a4 73  |!&C0:=$c%...*..s|
000032d0  68 65 6c 6c 5f 47 65 74  41 70 70 4e 61 6d 65 3a  |hell_GetAppName:|
000032e0  ea 63 25 3a 63 25 3d 5f  55 25 21 26 43 34 3a 3d  |.c%:c%=_U%!&C4:=|
000032f0  24 63 25 0d 04 03 a8 dd  f2 73 68 65 6c 6c 5f 52  |$c%......shell_R|
00003300  65 73 6f 75 72 63 65 73  49 6e 69 74 3a ea 41 41  |esourcesInit:.AA|
00003310  24 2c 63 25 2c 45 24 2c  44 24 2c 6e 43 25 3a ea  |$,c%,E$,D$,nC%:.|
00003320  71 41 25 2c 71 42 25 2c  4f 43 25 3a 45 24 3d a4  |qA%,qB%,OC%:E$=.|
00003330  73 68 65 6c 6c 5f 47 65  74 41 70 70 4e 61 6d 65  |shell_GetAppName|
00003340  3a 44 24 3d a4 73 68 65  6c 6c 5f 47 65 74 41 70  |:D$=.shell_GetAp|
00003350  70 44 69 72 3a 71 41 25  3d a4 73 68 65 6c 6c 5f  |pDir:qA%=.shell_|
00003360  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 32  |HeapBlockFetch(2|
00003370  35 36 29 3a e7 a4 73 68  65 6c 6c 5f 4f 53 56 61  |56):..shell_OSVa|
00003380  72 45 78 69 73 74 73 28  71 41 25 2c 45 24 2b 22  |rExists(qA%,E$+"|
00003390  52 65 73 24 50 61 74 68  22 29 8c 0d 04 0a 18 5f  |Res$Path")....._|
000033a0  55 25 21 26 36 34 3d 5f  55 25 21 26 36 34 84 31  |U%!&64=_U%!&64.1|
000033b0  3c 3c 33 0d 04 0b 2d cd  3a e7 a4 73 68 65 6c 6c  |<<3...-.:..shell|
000033c0  5f 4f 53 56 61 72 45 78  69 73 74 73 28 71 41 25  |_OSVarExists(qA%|
000033d0  2c 45 24 2b 22 44 61 74  61 24 44 69 72 22 29 8c  |,E$+"Data$Dir").|
000033e0  0d 04 0d 6e 41 41 24 3d  a4 73 68 65 6c 6c 5f 4f  |...nAA$=.shell_O|
000033f0  53 56 61 72 47 65 74 56  61 6c 28 71 41 25 2c 32  |SVarGetVal(qA%,2|
00003400  35 36 2c 45 24 2b 22 44  61 74 61 24 44 69 72 22  |56,E$+"Data$Dir"|
00003410  2c 31 29 3a 5f 55 25 21  26 43 30 3d a4 73 68 65  |,1):_U%!&C0=.she|
00003420  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00003430  68 28 28 a9 41 41 24 29  2b 31 29 3a 63 25 3d 5f  |h((.AA$)+1):c%=_|
00003440  55 25 21 26 43 30 3a 24  63 25 3d 41 41 24 0d 04  |U%!&C0:$c%=AA$..|
00003450  10 3d cc 5f 55 25 21 26  43 30 3d a4 73 68 65 6c  |.=._U%!&C0=.shel|
00003460  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00003470  28 28 a9 44 24 29 2b 31  29 3a 63 25 3d 5f 55 25  |((.D$)+1):c%=_U%|
00003480  21 26 43 30 3a 24 63 25  3d 44 24 0d 04 13 14 cd  |!&C0:$c%=D$.....|
00003490  3a e7 5f 55 25 21 26 36  34 80 31 3c 3c 33 8c 0d  |:._U%!&64.1<<3..|
000034a0  04 17 2a e7 a4 73 68 65  6c 6c 5f 46 69 6c 65 45  |..*..shell_FileE|
000034b0  78 69 73 74 73 28 45 24  2b 22 52 65 73 3a 4d 65  |xists(E$+"Res:Me|
000034c0  73 73 61 67 65 73 22 29  8c 0d 04 18 38 f2 73 68  |ssages")....8.sh|
000034d0  65 6c 6c 5f 4d 65 73 73  61 67 65 73 49 6e 69 74  |ell_MessagesInit|
000034e0  28 45 24 2b 22 52 65 73  3a 4d 65 73 73 61 67 65  |(E$+"Res:Message|
000034f0  73 22 2c 5f 55 25 21 36  38 2c 5f 55 25 21 36 34  |s",_U%!68,_U%!64|
00003500  29 0d 04 19 2d cd 3a e7  a4 73 68 65 6c 6c 5f 46  |)...-.:..shell_F|
00003510  69 6c 65 45 78 69 73 74  73 28 45 24 2b 22 52 65  |ileExists(E$+"Re|
00003520  73 3a 53 68 65 6c 6c 4d  73 67 73 22 29 8c 0d 04  |s:ShellMsgs")...|
00003530  1b 3b f2 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |.;.shell_Message|
00003540  73 49 6e 69 74 28 45 24  2b 22 52 65 73 3a 53 68  |sInit(E$+"Res:Sh|
00003550  65 6c 6c 4d 73 67 73 22  2c 5f 55 25 21 32 38 30  |ellMsgs",_U%!280|
00003560  2c 5f 55 25 21 32 38 34  29 0d 04 1c 42 cc f2 73  |,_U%!284)...B..s|
00003570  68 65 6c 6c 5f 4d 65 73  73 61 67 65 73 49 6e 69  |hell_MessagesIni|
00003580  74 28 22 45 76 6e 74 53  68 65 6c 6c 52 65 73 3a  |t("EvntShellRes:|
00003590  53 68 65 6c 6c 4d 73 67  73 22 2c 5f 55 25 21 32  |ShellMsgs",_U%!2|
000035a0  38 30 2c 5f 55 25 21 32  38 34 29 0d 04 1e 5b cd  |80,_U%!284)...[.|
000035b0  3a c8 99 26 32 30 30 33  35 2c 2d 31 2c 34 b8 2c  |:..&20035,-1,4.,|
000035c0  2c 4f 43 25 3a c8 99 26  32 30 30 33 35 2c 2d 31  |,OC%:..&20035,-1|
000035d0  2c 35 b8 2c 2c 71 42 25  3a e7 71 42 25 3d 31 80  |,5.,,qB%:.qB%=1.|
000035e0  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
000035f0  73 28 45 24 2b 22 52 65  73 3a 53 70 72 69 74 65  |s(E$+"Res:Sprite|
00003600  73 32 32 22 29 8c 0d 04  23 34 5f 55 25 21 31 36  |s22")...#4_U%!16|
00003610  3d a4 73 68 65 6c 6c 5f  53 70 72 69 74 65 41 72  |=.shell_SpriteAr|
00003620  65 61 4c 6f 61 64 28 45  24 2b 22 52 65 73 3a 53  |eaLoad(E$+"Res:S|
00003630  70 72 69 74 65 73 32 32  22 29 0d 04 24 2a cc e7  |prites22")..$*..|
00003640  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
00003650  73 28 45 24 2b 22 52 65  73 3a 53 70 72 69 74 65  |s(E$+"Res:Sprite|
00003660  73 22 29 8c 0d 04 27 32  5f 55 25 21 31 36 3d a4  |s")...'2_U%!16=.|
00003670  73 68 65 6c 6c 5f 53 70  72 69 74 65 41 72 65 61  |shell_SpriteArea|
00003680  4c 6f 61 64 28 45 24 2b  22 52 65 73 3a 53 70 72  |Load(E$+"Res:Spr|
00003690  69 74 65 73 22 29 0d 04  28 0d cc 5f 55 25 21 31  |ites")..(.._U%!1|
000036a0  36 3d 31 0d 04 2a 05 cd  0d 04 2b 47 cd 3a 6e 43  |6=1..*....+G.:nC|
000036b0  25 3d a4 73 68 65 6c 6c  5f 33 44 45 6e 61 62 6c  |%=.shell_3DEnabl|
000036c0  65 64 3a e7 6e 43 25 80  a4 73 68 65 6c 6c 5f 46  |ed:.nC%..shell_F|
000036d0  69 6c 65 45 78 69 73 74  73 28 45 24 2b 22 52 65  |ileExists(E$+"Re|
000036e0  73 3a 54 65 6d 70 6c 61  74 65 73 33 22 29 8c 0d  |s:Templates3")..|
000036f0  04 2f 2d f2 73 68 65 6c  6c 5f 54 65 6d 70 6c 61  |./-.shell_Templa|
00003700  74 65 73 49 6e 69 74 28  45 24 2b 22 52 65 73 3a  |tesInit(E$+"Res:|
00003710  54 65 6d 70 6c 61 74 65  73 33 22 29 0d 04 30 2c  |Templates3")..0,|
00003720  cc e7 a4 73 68 65 6c 6c  5f 46 69 6c 65 45 78 69  |...shell_FileExi|
00003730  73 74 73 28 45 24 2b 22  52 65 73 3a 54 65 6d 70  |sts(E$+"Res:Temp|
00003740  6c 61 74 65 73 22 29 8c  0d 04 32 2c f2 73 68 65  |lates")...2,.she|
00003750  6c 6c 5f 54 65 6d 70 6c  61 74 65 73 49 6e 69 74  |ll_TemplatesInit|
00003760  28 45 24 2b 22 52 65 73  3a 54 65 6d 70 6c 61 74  |(E$+"Res:Templat|
00003770  65 73 22 29 0d 04 33 05  cd 0d 04 34 05 cd 0d 04  |es")..3....4....|
00003780  35 28 cc e7 a4 73 68 65  6c 6c 5f 46 69 6c 65 45  |5(...shell_FileE|
00003790  78 69 73 74 73 28 44 24  2b 22 2e 4d 65 73 73 61  |xists(D$+".Messa|
000037a0  67 65 73 22 29 8c 0d 04  38 35 f2 73 68 65 6c 6c  |ges")...85.shell|
000037b0  5f 4d 65 73 73 61 67 65  73 49 6e 69 74 28 44 24  |_MessagesInit(D$|
000037c0  2b 22 2e 4d 65 73 73 61  67 65 73 22 2c 5f 55 25  |+".Messages",_U%|
000037d0  21 36 38 2c 5f 55 25 21  36 34 29 0d 04 39 2a cd  |!68,_U%!64)..9*.|
000037e0  3a e7 a4 73 68 65 6c 6c  5f 46 69 6c 65 45 78 69  |:..shell_FileExi|
000037f0  73 74 73 28 44 24 2b 22  2e 53 68 65 6c 6c 4d 73  |sts(D$+".ShellMs|
00003800  67 73 22 29 8c 0d 04 3b  38 f2 73 68 65 6c 6c 5f  |gs")...;8.shell_|
00003810  4d 65 73 73 61 67 65 73  49 6e 69 74 28 44 24 2b  |MessagesInit(D$+|
00003820  22 2e 53 68 65 6c 6c 4d  73 67 73 22 2c 5f 55 25  |".ShellMsgs",_U%|
00003830  21 32 38 30 2c 5f 55 25  21 32 38 34 29 0d 04 3c  |!280,_U%!284)..<|
00003840  42 cc f2 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |B..shell_Message|
00003850  73 49 6e 69 74 28 22 45  76 6e 74 53 68 65 6c 6c  |sInit("EvntShell|
00003860  52 65 73 3a 53 68 65 6c  6c 4d 73 67 73 22 2c 5f  |Res:ShellMsgs",_|
00003870  55 25 21 32 38 30 2c 5f  55 25 21 32 38 34 29 0d  |U%!280,_U%!284).|
00003880  04 3e 58 cd 3a c8 99 26  32 30 30 33 35 2c 2d 31  |.>X.:..&20035,-1|
00003890  2c 34 b8 2c 2c 4f 43 25  3a c8 99 26 32 30 30 33  |,4.,,OC%:..&2003|
000038a0  35 2c 2d 31 2c 35 b8 2c  2c 71 42 25 3a e7 71 42  |5,-1,5.,,qB%:.qB|
000038b0  25 3d 31 80 a4 73 68 65  6c 6c 5f 46 69 6c 65 45  |%=1..shell_FileE|
000038c0  78 69 73 74 73 28 44 24  2b 22 2e 53 70 72 69 74  |xists(D$+".Sprit|
000038d0  65 73 32 32 22 29 8c 0d  04 45 31 5f 55 25 21 31  |es22")...E1_U%!1|
000038e0  36 3d a4 73 68 65 6c 6c  5f 53 70 72 69 74 65 41  |6=.shell_SpriteA|
000038f0  72 65 61 4c 6f 61 64 28  44 24 2b 22 2e 53 70 72  |reaLoad(D$+".Spr|
00003900  69 74 65 73 32 32 22 29  0d 04 46 27 cc e7 a4 73  |ites22")..F'...s|
00003910  68 65 6c 6c 5f 46 69 6c  65 45 78 69 73 74 73 28  |hell_FileExists(|
00003920  44 24 2b 22 2e 53 70 72  69 74 65 73 22 29 8c 0d  |D$+".Sprites")..|
00003930  04 48 2f 5f 55 25 21 31  36 3d a4 73 68 65 6c 6c  |.H/_U%!16=.shell|
00003940  5f 53 70 72 69 74 65 41  72 65 61 4c 6f 61 64 28  |_SpriteAreaLoad(|
00003950  44 24 2b 22 2e 53 70 72  69 74 65 73 22 29 0d 04  |D$+".Sprites")..|
00003960  49 0d cc 5f 55 25 21 31  36 3d 31 0d 04 4b 05 cd  |I.._U%!16=1..K..|
00003970  0d 04 4c 44 cd 3a 6e 43  25 3d a4 73 68 65 6c 6c  |..LD.:nC%=.shell|
00003980  5f 33 44 45 6e 61 62 6c  65 64 3a e7 6e 43 25 80  |_3DEnabled:.nC%.|
00003990  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
000039a0  73 28 44 24 2b 22 2e 54  65 6d 70 6c 61 74 65 73  |s(D$+".Templates|
000039b0  33 22 29 8c 0d 04 50 2a  f2 73 68 65 6c 6c 5f 54  |3")...P*.shell_T|
000039c0  65 6d 70 6c 61 74 65 73  49 6e 69 74 28 44 24 2b  |emplatesInit(D$+|
000039d0  22 2e 54 65 6d 70 6c 61  74 65 73 33 22 29 0d 04  |".Templates3")..|
000039e0  51 29 cc e7 a4 73 68 65  6c 6c 5f 46 69 6c 65 45  |Q)...shell_FileE|
000039f0  78 69 73 74 73 28 44 24  2b 22 2e 54 65 6d 70 6c  |xists(D$+".Templ|
00003a00  61 74 65 73 22 29 8c 0d  04 53 29 f2 73 68 65 6c  |ates")...S).shel|
00003a10  6c 5f 54 65 6d 70 6c 61  74 65 73 49 6e 69 74 28  |l_TemplatesInit(|
00003a20  44 24 2b 22 2e 54 65 6d  70 6c 61 74 65 73 22 29  |D$+".Templates")|
00003a30  0d 04 54 05 cd 0d 04 55  05 cd 0d 04 56 68 cd 3a  |..T....U....Vh.:|
00003a40  c8 99 26 34 35 42 43 30  3a f2 73 68 65 6c 6c 5f  |..&45BC0:.shell_|
00003a50  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
00003a60  5f 51 25 29 3a 5f 51 25  3d a4 73 68 65 6c 6c 5f  |_Q%):_Q%=.shell_|
00003a70  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 26  |HeapBlockFetch(&|
00003a80  34 30 30 29 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |400):.shell_Heap|
00003a90  42 6c 6f 63 6b 52 65 74  75 72 6e 28 71 41 25 29  |BlockReturn(qA%)|
00003aa0  3a e1 0d 04 60 e0 dd a4  73 68 65 6c 6c 5f 53 70  |:...`...shell_Sp|
00003ab0  72 69 74 65 41 72 65 61  4c 6f 61 64 28 43 24 29  |riteAreaLoad(C$)|
00003ac0  3a ea 4f 42 25 2c 53 25  2c 54 25 3a 53 25 3d 8e  |:.OB%,S%,T%:S%=.|
00003ad0  28 43 24 29 3a 54 25 3d  a2 23 53 25 2b 31 36 3a  |(C$):T%=.#S%+16:|
00003ae0  d9 23 53 25 3a 4f 42 25  3d a4 73 68 65 6c 6c 5f  |.#S%:OB%=.shell_|
00003af0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 54  |HeapBlockFetch(T|
00003b00  25 29 3a 21 4f 42 25 3d  54 25 3a 4f 42 25 21 34  |%):!OB%=T%:OB%!4|
00003b10  3d 30 3a 4f 42 25 21 38  3d 31 36 3a 4f 42 25 21  |=0:OB%!8=16:OB%!|
00003b20  26 43 3d 31 36 3a c8 99  34 36 2c 35 32 31 2c 4f  |&C=16:..46,521,O|
00003b30  42 25 3a c8 99 34 36 2c  35 32 32 2c 4f 42 25 2c  |B%:..46,522,OB%,|
00003b40  43 24 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |C$:.shell_Tracef|
00003b50  30 28 22 53 70 72 69 74  65 4c 6f 61 64 3a 53 70  |0("SpriteLoad:Sp|
00003b60  72 69 74 65 20 66 69 6c  65 20 6c 6f 61 64 65 64  |rite file loaded|
00003b70  20 61 74 20 26 22 2b c3  7e 4f 42 25 29 3a 3d 4f  | at &"+.~OB%):=O|
00003b80  42 25 0d 04 70 23 dd a4  73 68 65 6c 6c 5f 55 73  |B%..p#..shell_Us|
00003b90  65 72 53 70 72 69 74 65  73 42 61 73 65 3a 3d 5f  |erSpritesBase:=_|
00003ba0  55 25 21 31 36 0d 04 76  84 dd a4 73 68 65 6c 6c  |U%!16..v...shell|
00003bb0  5f 53 70 72 69 74 65 47  65 74 50 74 72 28 43 43  |_SpriteGetPtr(CC|
00003bc0  25 2c 52 24 29 3a ea 54  42 25 2c 65 25 3a 54 42  |%,R$):.TB%,e%:TB|
00003bd0  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00003be0  63 6b 46 65 74 63 68 28  32 31 29 3a 24 54 42 25  |ckFetch(21):$TB%|
00003bf0  3d 52 24 3a c8 99 34 36  2c 32 38 30 2c 43 43 25  |=R$:..46,280,CC%|
00003c00  2c 54 42 25 b8 2c 2c 65  25 3a f2 73 68 65 6c 6c  |,TB%.,,e%:.shell|
00003c10  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
00003c20  28 54 42 25 29 3a 3d 65  25 0d 04 81 fa dd f2 73  |(TB%):=e%......s|
00003c30  68 65 6c 6c 5f 54 65 6d  70 6c 61 74 65 73 49 6e  |hell_TemplatesIn|
00003c40  69 74 28 43 24 29 3a ea  57 43 25 2c 57 44 25 2c  |it(C$):.WC%,WD%,|
00003c50  52 45 25 2c 58 25 2c 65  25 2c 65 41 25 3a ea 65  |RE%,X%,e%,eA%:.e|
00003c60  45 25 2c 46 41 25 2c 48  44 25 2c 52 24 2c 53 41  |E%,FA%,HD%,R$,SA|
00003c70  25 2c 61 42 25 2c 5f 25  3a ea 6a 41 25 2c 44 44  |%,aB%,_%:.jA%,DD|
00003c80  25 2c 4c 45 25 2c 4e 43  25 2c 70 41 24 2c 41 41  |%,LE%,NC%,pA$,AA|
00003c90  25 3a 48 44 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |%:HD%=.shell_Hea|
00003ca0  70 42 6c 6f 63 6b 46 65  74 63 68 28 32 30 29 3a  |pBlockFetch(20):|
00003cb0  46 41 25 3d 30 3a 53 41  25 3d 30 3a 65 45 25 3d  |FA%=0:SA%=0:eE%=|
00003cc0  a4 73 68 65 6c 6c 5f 46  69 6c 65 4c 65 6e 67 74  |.shell_FileLengt|
00003cd0  68 28 43 24 29 3a 56 45  25 3d a4 73 68 65 6c 6c  |h(C$):VE%=.shell|
00003ce0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00003cf0  65 45 25 29 3a 57 43 25  3d 56 45 25 3a f2 73 68  |eE%):WC%=VE%:.sh|
00003d00  65 6c 6c 5f 54 65 6d 70  6c 61 74 65 46 69 6c 65  |ell_TemplateFile|
00003d10  49 6e 66 6f 28 43 24 2c  65 41 25 2c 53 41 25 2c  |Info(C$,eA%,SA%,|
00003d20  5f 25 29 0d 04 8d 0a e7  5f 25 3d 30 8c 0d 04 90  |_%)....._%=0....|
00003d30  7c 5f 55 25 21 34 3d a4  73 68 65 6c 6c 5f 48 65  ||_U%!4=.shell_He|
00003d40  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 32 30 2a  |apBlockFetch(20*|
00003d50  53 41 25 29 3a 66 45 25  3d a4 73 68 65 6c 6c 5f  |SA%):fE%=.shell_|
00003d60  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 65  |HeapBlockFetch(e|
00003d70  41 25 29 3a 57 44 25 3d  66 45 25 3a 52 45 25 3d  |A%):WD%=fE%:RE%=|
00003d80  66 45 25 2b 65 41 25 3a  53 41 25 3d 30 3a c8 99  |fE%+eA%:SA%=0:..|
00003d90  26 36 30 30 44 39 2c 2c  43 24 b8 3b 61 42 25 3a  |&600D9,,C$.;aB%:|
00003da0  e7 28 61 42 25 80 31 29  8c 0d 04 9a 39 85 39 39  |.(aB%.1)....9.99|
00003db0  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 54  |,.shell_MessageT|
00003dc0  77 6f 41 72 67 73 28 22  53 48 45 4c 4c 4d 53 47  |woArgs("SHELLMSG|
00003dd0  33 34 22 2c 22 74 65 6d  70 6c 61 74 65 22 2c 43  |34","template",C|
00003de0  24 29 0d 04 9b 4d cc f5  3a 24 48 44 25 3d 22 2a  |$)...M..:$HD%="*|
00003df0  22 3a c8 99 26 34 30 30  44 42 2c 2c 57 43 25 2c  |":..&400DB,,WC%,|
00003e00  57 44 25 2c 52 45 25 2c  5f 55 25 21 26 45 38 2c  |WD%,RE%,_U%!&E8,|
00003e10  48 44 25 2c 46 41 25 b8  2c 2c 57 44 25 2c 2c 2c  |HD%,FA%.,,WD%,,,|
00003e20  52 24 2c 46 41 25 3a e7  46 41 25 3c 3e 30 8c 0d  |R$,FA%:.FA%<>0..|
00003e30  04 a0 8a 21 28 28 5f 55  25 21 34 29 2b 28 31 36  |...!((_U%!4)+(16|
00003e40  2a 53 41 25 29 29 3d 57  43 25 3a 24 28 28 28 5f  |*SA%))=WC%:$(((_|
00003e50  55 25 21 34 29 2b 28 31  36 2a 53 41 25 29 29 2b  |U%!4)+(16*SA%))+|
00003e60  34 29 3d 52 24 3a f2 73  68 65 6c 6c 5f 54 72 61  |4)=R$:.shell_Tra|
00003e70  63 65 66 30 28 22 54 65  6d 70 6c 61 74 65 73 49  |cef0("TemplatesI|
00003e80  6e 69 74 3a 20 20 54 65  6d 70 6c 61 74 65 20 4c  |nit:  Template L|
00003e90  6f 61 64 65 64 3a 20 22  2b 52 24 29 3a 57 43 25  |oaded: "+R$):WC%|
00003ea0  2b 3d 28 38 38 2b 28 57  43 25 21 38 34 29 2a 33  |+=(88+(WC%!84)*3|
00003eb0  32 29 3a 53 41 25 2b 3d  31 0d 04 a7 d7 cd 3a fd  |2):SA%+=1.....:.|
00003ec0  46 41 25 3d 30 3a c8 99  26 34 30 30 44 41 3a 5f  |FA%=0:..&400DA:_|
00003ed0  55 25 21 30 3d 53 41 25  3a f2 73 68 65 6c 6c 5f  |U%!0=SA%:.shell_|
00003ee0  54 72 61 63 65 66 30 28  22 54 65 6d 70 6c 61 74  |Tracef0("Templat|
00003ef0  65 73 49 6e 69 74 3a 54  65 6d 70 6c 61 74 65 73  |esInit:Templates|
00003f00  20 72 65 73 6f 75 72 63  65 20 66 69 6c 65 20 6c  | resource file l|
00003f10  6f 61 64 65 64 20 61 74  20 20 20 20 20 20 20 26  |oaded at       &|
00003f20  22 2b c3 7e 56 45 25 2b  22 20 28 22 2b c3 53 41  |"+.~VE%+" ("+.SA|
00003f30  25 2b 22 20 74 65 6d 70  6c 61 74 65 73 29 22 29  |%+" templates)")|
00003f40  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00003f50  22 54 65 6d 70 6c 61 74  65 73 49 6e 69 74 3a 49  |"TemplatesInit:I|
00003f60  6e 64 69 72 65 63 74 65  64 20 62 75 66 66 65 72  |ndirected buffer|
00003f70  20 73 69 7a 65 20 75 73  65 64 20 66 6f 72 20 6c  | size used for l|
00003f80  6f 61 64 69 6e 67 20 26  22 2b c3 7e 65 41 25 29  |oading &"+.~eA%)|
00003f90  0d 04 af 05 cd 0d 04 b0  0a cc c8 8e 5f 25 ca 0d  |............_%..|
00003fa0  04 b2 3d c9 2d 31 3a 85  39 39 2c a4 73 68 65 6c  |..=.-1:.99,.shel|
00003fb0  6c 5f 4d 65 73 73 61 67  65 54 77 6f 41 72 67 73  |l_MessageTwoArgs|
00003fc0  28 22 53 48 45 4c 4c 4d  53 47 33 35 22 2c 22 74  |("SHELLMSG35","t|
00003fd0  65 6d 70 6c 61 74 65 22  2c 43 24 29 0d 04 b3 3d  |emplate",C$)...=|
00003fe0  c9 2d 32 3a 85 39 39 2c  a4 73 68 65 6c 6c 5f 4d  |.-2:.99,.shell_M|
00003ff0  65 73 73 61 67 65 54 77  6f 41 72 67 73 28 22 53  |essageTwoArgs("S|
00004000  48 45 4c 4c 4d 53 47 33  36 22 2c 43 24 2c 22 74  |HELLMSG36",C$,"t|
00004010  65 6d 70 6c 61 74 65 22  29 0d 04 b4 05 cb 0d 04  |emplate").......|
00004020  b5 23 cd 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |.#.:.shell_HeapB|
00004030  6c 6f 63 6b 52 65 74 75  72 6e 28 48 44 25 29 3a  |lockReturn(HD%):|
00004040  e1 0d 04 bc 57 dd a4 73  68 65 6c 6c 5f 57 69 6e  |....W..shell_Win|
00004050  64 6f 77 4c 6f 61 64 65  64 28 4d 24 29 3a ea 73  |dowLoaded(M$):.s|
00004060  25 2c 6a 25 3a e7 a9 28  4d 24 29 3e 26 43 8c 85  |%,j%:..(M$)>&C..|
00004070  39 39 2c a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |99,.shell_Messag|
00004080  65 4f 6e 65 41 72 67 28  22 53 48 45 4c 4c 4d 53  |eOneArg("SHELLMS|
00004090  47 30 32 22 2c 4d 24 29  0d 04 bf 34 6a 25 3d a3  |G02",M$)...4j%=.|
000040a0  3a e3 73 25 3d 30 b8 28  5f 55 25 21 30 29 2d 31  |:.s%=0.(_U%!0)-1|
000040b0  3a e7 24 28 28 28 5f 55  25 21 34 29 2b 28 31 36  |:.$(((_U%!4)+(16|
000040c0  2a 73 25 29 29 2b 34 29  3d 4d 24 8c 0d 04 c2 15  |*s%))+4)=M$.....|
000040d0  6a 25 3d b9 3a 73 25 3d  28 5f 55 25 21 30 29 2d  |j%=.:s%=(_U%!0)-|
000040e0  31 0d 04 c3 0d cd 3a ed  73 25 3a 3d 6a 25 0d 04  |1.....:.s%:=j%..|
000040f0  c9 50 dd a4 73 68 65 6c  6c 5f 47 65 74 57 42 28  |.P..shell_GetWB(|
00004100  4d 24 29 3a ea 73 25 2c  6a 25 3a e7 a9 28 4d 24  |M$):.s%,j%:..(M$|
00004110  29 3e 26 43 8c 85 39 39  2c a4 73 68 65 6c 6c 5f  |)>&C..99,.shell_|
00004120  4d 65 73 73 61 67 65 4f  6e 65 41 72 67 28 22 53  |MessageOneArg("S|
00004130  48 45 4c 4c 4d 53 47 30  32 22 2c 4d 24 29 0d 04  |HELLMSG02",M$)..|
00004140  cc 35 6a 25 3d 2d 31 3a  e3 73 25 3d 30 b8 28 5f  |.5j%=-1:.s%=0.(_|
00004150  55 25 21 30 29 2d 31 3a  e7 24 28 28 28 5f 55 25  |U%!0)-1:.$(((_U%|
00004160  21 34 29 2b 28 31 36 2a  73 25 29 29 2b 34 29 3d  |!4)+(16*s%))+4)=|
00004170  4d 24 8c 0d 04 cf 16 6a  25 3d 73 25 3a 73 25 3d  |M$.....j%=s%:s%=|
00004180  28 5f 55 25 21 30 29 2d  31 0d 04 d0 11 cd 3a ed  |(_U%!0)-1.....:.|
00004190  73 25 3a e7 6a 25 3e 2d  31 8c 0d 04 d3 17 3d 21  |s%:.j%>-1.....=!|
000041a0  28 28 5f 55 25 21 34 29  2b 28 31 36 2a 6a 25 29  |((_U%!4)+(16*j%)|
000041b0  29 0d 04 d4 2e cc 85 39  39 2c a4 73 68 65 6c 6c  |)......99,.shell|
000041c0  5f 4d 65 73 73 61 67 65  4f 6e 65 41 72 67 28 22  |_MessageOneArg("|
000041d0  53 48 45 4c 4c 4d 53 47  30 33 22 2c 4d 24 29 0d  |SHELLMSG03",M$).|
000041e0  04 d6 08 cd 3a 3d a3 0d  04 dc 7b dd a4 73 68 65  |....:=....{..she|
000041f0  6c 6c 5f 4d 65 73 73 61  67 65 45 78 70 61 6e 64  |ll_MessageExpand|
00004200  28 61 24 29 3a ea 4c 24  2c 67 24 2c 78 41 25 3a  |(a$):.L$,g$,xA%:|
00004210  4c 24 3d 22 22 3a c8 95  a7 61 24 2c 22 5c 22 29  |L$="":...a$,"\")|
00004220  3e 30 3a 78 41 25 3d a7  61 24 2c 22 5c 22 29 3a  |>0:xA%=.a$,"\"):|
00004230  4c 24 2b 3d c0 61 24 2c  78 41 25 2d 31 29 3a 67  |L$+=.a$,xA%-1):g|
00004240  24 3d c1 61 24 2c 78 41  25 2b 31 2c 31 29 3a 61  |$=.a$,xA%+1,1):a|
00004250  24 3d c1 61 24 2c 78 41  25 2b 32 29 3a c8 8e 67  |$=.a$,xA%+2):..g|
00004260  24 ca 0d 04 e5 1e c9 22  41 22 3a 4c 24 2b 3d 22  |$......"A":L$+="|
00004270  43 6c 69 63 6b 20 41 44  4a 55 53 54 20 74 6f 22  |Click ADJUST to"|
00004280  0d 04 e6 15 c9 22 61 22  3a 4c 24 2b 3d 22 41 44  |....."a":L$+="AD|
00004290  4a 55 53 54 22 0d 04 e7  22 c9 22 44 22 3a 4c 24  |JUST"..."."D":L$|
000042a0  2b 3d 22 44 72 61 67 20  77 69 74 68 20 53 45 4c  |+="Drag with SEL|
000042b0  45 43 54 20 74 6f 22 0d  04 e8 22 c9 22 64 22 3a  |ECT to"..."."d":|
000042c0  4c 24 2b 3d 22 44 72 61  67 20 77 69 74 68 20 41  |L$+="Drag with A|
000042d0  44 4a 55 53 54 20 74 6f  22 0d 04 e9 30 c9 22 47  |DJUST to"...0."G|
000042e0  22 3a 4c 24 2b 3d 22 54  68 69 73 20 6f 70 74 69  |":L$+="This opti|
000042f0  6f 6e 20 69 73 20 67 72  65 79 65 64 20 6f 75 74  |on is greyed out|
00004300  20 62 65 63 61 75 73 65  22 0d 04 ea 25 c9 22 52  | because"...%."R|
00004310  22 3a 4c 24 2b 3d 22 4d  6f 76 65 20 74 68 65 20  |":L$+="Move the |
00004320  70 6f 69 6e 74 65 72 20  72 69 67 68 74 22 0d 04  |pointer right"..|
00004330  eb 1e c9 22 53 22 3a 4c  24 2b 3d 22 43 6c 69 63  |..."S":L$+="Clic|
00004340  6b 20 53 45 4c 45 43 54  20 74 6f 22 0d 04 ec 15  |k SELECT to"....|
00004350  c9 22 73 22 3a 4c 24 2b  3d 22 53 45 4c 45 43 54  |."s":L$+="SELECT|
00004360  22 0d 04 ed 1a c9 22 54  22 3a 4c 24 2b 3d 22 54  |"....."T":L$+="T|
00004370  68 69 73 20 69 73 20 74  68 65 22 0d 04 ee 1d c9  |his is the".....|
00004380  22 57 22 3a 4c 24 2b 3d  22 54 68 69 73 20 77 69  |"W":L$+="This wi|
00004390  6e 64 6f 77 20 69 73 22  0d 04 ef 15 c9 22 77 22  |ndow is"....."w"|
000043a0  3a 4c 24 2b 3d 22 77 69  6e 64 6f 77 22 0d 04 f0  |:L$+="window"...|
000043b0  0f 7f 4c 24 2b 3d 22 5c  22 2b 67 24 0d 04 f2 0e  |..L$+="\"+g$....|
000043c0  cb 3a ce 3a 3d 4c 24 2b  61 24 0d 04 fb 59 dd f2  |.:.:=L$+a$...Y..|
000043d0  73 68 65 6c 6c 5f 4f 70  65 6e 4d 65 6e 75 28 49  |shell_OpenMenu(I|
000043e0  41 25 2c 4d 41 25 2c 72  41 25 29 3a ea 41 24 3a  |A%,MA%,rA%):.A$:|
000043f0  41 24 3d a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |A$=.shell_GetEve|
00004400  6e 74 48 61 6e 64 6c 65  72 28 5f 55 25 21 32 38  |ntHandler(_U%!28|
00004410  2c 5f 55 25 21 33 32 2c  31 29 3a e7 41 24 3c 3e  |,_U%!32,1):.A$<>|
00004420  22 22 8c 0d 05 00 71 f2  73 68 65 6c 6c 5f 54 72  |""....q.shell_Tr|
00004430  61 63 65 66 30 28 22 4f  70 65 6e 4d 65 6e 75 3a  |acef0("OpenMenu:|
00004440  41 62 6f 75 74 20 74 6f  20 63 61 6c 6c 20 22 2b  |About to call "+|
00004450  22 46 4e 22 2b 41 24 2b  22 28 22 2b c3 5f 55 25  |"FN"+A$+"("+._U%|
00004460  21 32 38 2b 22 2c 22 2b  c3 5f 55 25 21 33 32 2b  |!28+","+._U%!32+|
00004470  22 29 22 29 3a 6f 25 3d  a0 28 22 46 4e 22 2b 41  |")"):o%=.("FN"+A|
00004480  24 2b 22 28 5f 55 25 21  32 38 2c 5f 55 25 21 33  |$+"(_U%!28,_U%!3|
00004490  32 29 22 29 0d 05 03 40  cc f2 73 68 65 6c 6c 5f  |2)")...@..shell_|
000044a0  54 72 61 63 65 66 30 28  22 4f 70 65 6e 4d 65 6e  |Tracef0("OpenMen|
000044b0  75 3a 6e 6f 20 6d 65 6e  75 6d 61 6b 65 72 20 66  |u:no menumaker f|
000044c0  75 6e 63 74 69 6f 6e 20  72 65 67 69 73 74 65 72  |unction register|
000044d0  65 64 22 29 0d 05 05 13  cd 3a e7 72 41 25 3c 3e  |ed").....:.rA%<>|
000044e0  5f 55 25 21 32 34 8c 0d  05 09 25 e7 a4 73 68 65  |_U%!24....%..she|
000044f0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 69 73  |ll_HeapBlockExis|
00004500  74 73 28 5f 55 25 21 32  35 36 29 8c 0d 05 0a 2d  |ts(_U%!256)....-|
00004510  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00004520  52 65 74 75 72 6e 28 5f  55 25 21 32 35 36 29 3a  |Return(_U%!256):|
00004530  5f 55 25 21 32 35 36 3d  30 0d 05 0b 27 cd 3a e7  |_U%!256=0...'.:.|
00004540  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00004550  45 78 69 73 74 73 28 5f  55 25 21 26 46 34 29 8c  |Exists(_U%!&F4).|
00004560  0d 05 0e 2d f2 73 68 65  6c 6c 5f 48 65 61 70 42  |...-.shell_HeapB|
00004570  6c 6f 63 6b 52 65 74 75  72 6e 28 5f 55 25 21 26  |lockReturn(_U%!&|
00004580  46 34 29 3a 5f 55 25 21  26 46 34 3d 30 0d 05 0f  |F4):_U%!&F4=0...|
00004590  05 cd 0d 05 10 13 cd 3a  e7 72 41 25 3d 5f 55 25  |.......:.rA%=_U%|
000045a0  21 26 46 43 8c 0d 05 12  26 c8 99 26 34 30 30 44  |!&FC....&..&400D|
000045b0  34 2c 2c 72 41 25 2c 49  41 25 2d 36 34 2c 4d 41  |4,,rA%,IA%-64,MA|
000045c0  25 3a 5f 55 25 21 32 36  34 3d 31 0d 05 14 33 cc  |%:_U%!264=1...3.|
000045d0  5f 51 25 21 30 3d 49 41  25 3a 5f 51 25 21 34 3d  |_Q%!0=IA%:_Q%!4=|
000045e0  4d 41 25 3a c8 99 26 34  35 42 43 35 2c 72 41 25  |MA%:..&45BC5,rA%|
000045f0  2c 5f 51 25 3a 5f 55 25  21 32 36 34 3d 30 0d 05  |,_Q%:_U%!264=0..|
00004600  18 44 cd 3a 5f 55 25 21  32 34 3d 72 41 25 3a 5f  |.D.:_U%!24=rA%:_|
00004610  55 25 21 33 36 3d 49 41  25 3a 5f 55 25 21 34 30  |U%!36=IA%:_U%!40|
00004620  3d 4d 41 25 3a 5f 55 25  21 35 32 3d 5f 55 25 21  |=MA%:_U%!52=_U%!|
00004630  32 38 3a 5f 55 25 21 35  36 3d 5f 55 25 21 33 32  |28:_U%!56=_U%!32|
00004640  3a e1 0d 05 23 20 dd a4  73 68 65 6c 6c 5f 4d 65  |:...# ..shell_Me|
00004650  6e 75 4c 61 73 74 58 50  6f 73 3a 3d 5f 55 25 21  |nuLastXPos:=_U%!|
00004660  33 36 0d 05 29 20 dd a4  73 68 65 6c 6c 5f 4d 65  |36..) ..shell_Me|
00004670  6e 75 4c 61 73 74 59 50  6f 73 3a 3d 5f 55 25 21  |nuLastYPos:=_U%!|
00004680  34 30 0d 05 2f 92 dd f2  73 68 65 6c 6c 5f 4d 65  |40../...shell_Me|
00004690  6e 75 41 74 74 61 63 68  44 62 6f 78 28 65 24 29  |nuAttachDbox(e$)|
000046a0  3a c8 99 22 4d 65 6e 75  5f 53 65 74 53 75 62 48  |:.."Menu_SetSubH|
000046b0  61 6e 64 6c 65 22 2c 5f  55 25 21 38 2c a4 73 68  |andle",_U%!8,.sh|
000046c0  65 6c 6c 5f 4d 65 6e 75  53 74 72 69 6e 67 28 65  |ell_MenuString(e|
000046d0  24 29 2c 31 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |$),1:.shell_Trac|
000046e0  65 66 30 28 22 4d 65 6e  75 41 74 74 61 63 68 44  |ef0("MenuAttachD|
000046f0  62 6f 78 3a 44 69 61 6c  6f 67 20 62 6f 78 20 28  |box:Dialog box (|
00004700  22 2b 65 24 2b 22 29 20  61 74 74 61 63 68 65 64  |"+e$+") attached|
00004710  22 29 3a e1 0d 05 39 86  dd a4 73 68 65 6c 6c 5f  |"):...9...shell_|
00004720  4d 65 73 73 61 67 65 57  69 6e 64 6f 77 28 48 24  |MessageWindow(H$|
00004730  2c 53 46 25 2c 69 41 24  2c 6e 24 29 3a ea 66 44  |,SF%,iA$,n$):.fD|
00004740  25 2c 77 41 25 3a 77 41  25 3d a4 73 68 65 6c 6c  |%,wA%:wA%=.shell|
00004750  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00004760  32 36 30 29 3a 21 77 41  25 3d 30 3a 24 28 77 41  |260):!wA%=0:$(wA|
00004770  25 2b 34 29 3d 48 24 2b  bd 28 30 29 3a e7 6e 24  |%+4)=H$+.(0):.n$|
00004780  3d 22 22 8c 6e 24 3d 22  4d 65 73 73 61 67 65 20  |="".n$="Message |
00004790  66 72 6f 6d 20 22 2b 69  41 24 0d 05 3e 09 e7 53  |from "+iA$..>..S|
000047a0  46 25 8c 0d 05 3f 1b c8  99 26 34 30 30 44 46 2c  |F%...?...&400DF,|
000047b0  77 41 25 2c 31 39 2c 6e  24 b8 2c 66 44 25 0d 05  |wA%,19,n$.,fD%..|
000047c0  40 1c cc c8 99 26 34 30  30 44 46 2c 77 41 25 2c  |@....&400DF,wA%,|
000047d0  31 37 2c 6e 24 b8 2c 66  44 25 0d 05 42 26 cd 3a  |17,n$.,fD%..B&.:|
000047e0  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000047f0  52 65 74 75 72 6e 28 77  41 25 29 3a 3d 66 44 25  |Return(wA%):=fD%|
00004800  0d 05 49 5b dd f2 73 68  65 6c 6c 5f 43 72 65 61  |..I[..shell_Crea|
00004810  74 65 57 69 6e 64 6f 77  28 7a 24 2c f8 69 25 29  |teWindow(z$,.i%)|
00004820  3a ea 74 42 25 3a 74 42  25 3d a4 73 68 65 6c 6c  |:.tB%:tB%=.shell|
00004830  5f 47 65 74 57 42 28 7a  24 29 3a 74 42 25 21 36  |_GetWB(z$):tB%!6|
00004840  34 3d 5f 55 25 21 31 36  3a c8 99 26 34 30 30 43  |4=_U%!16:..&400C|
00004850  31 2c 2c 74 42 25 b8 69  25 3a e1 0d 05 53 ff dd  |1,,tB%.i%:...S..|
00004860  a4 73 68 65 6c 6c 5f 43  72 65 61 74 65 57 69 6e  |.shell_CreateWin|
00004870  64 6f 77 32 28 4e 2c 6e  25 2c 69 46 25 2c 68 46  |dow2(N,n%,iF%,hF|
00004880  25 2c 51 46 25 2c 6b 41  25 2c 4c 44 25 2c 6c 41  |%,QF%,kA%,LD%,lA|
00004890  25 2c 4c 42 25 2c 53 42  25 29 3a ea 51 25 3a 51  |%,LB%,SB%):.Q%:Q|
000048a0  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
000048b0  63 6b 46 65 74 63 68 28  26 42 42 38 29 3a 51 25  |ckFetch(&BB8):Q%|
000048c0  21 30 3d 4c 44 25 3a 51  25 21 34 3d 6c 41 25 3a  |!0=LD%:Q%!4=lA%:|
000048d0  51 25 21 38 3d 4c 42 25  3a 51 25 21 26 43 3d 53  |Q%!8=LB%:Q%!&C=S|
000048e0  42 25 3a 51 25 21 31 36  3d 30 3a 51 25 21 32 30  |B%:Q%!16=0:Q%!20|
000048f0  3d 30 3a 51 25 21 32 34  3d 2d 31 3a 51 25 21 32  |=0:Q%!24=-1:Q%!2|
00004900  38 3d 6e 25 3a 51 25 3f  33 32 3d 37 3a 51 25 3f  |8=n%:Q%?32=7:Q%?|
00004910  33 33 3d 32 3a 51 25 3f  33 34 3d 69 46 25 3a 51  |33=2:Q%?34=iF%:Q|
00004920  25 3f 33 35 3d 68 46 25  3a 51 25 3f 33 36 3d 33  |%?35=hF%:Q%?36=3|
00004930  3a 51 25 3f 33 37 3d 31  3a 51 25 3f 33 38 3d 32  |:Q%?37=1:Q%?38=2|
00004940  3a 51 25 3f 33 39 3d 30  3a 51 25 21 34 30 3d 30  |:Q%?39=0:Q%!40=0|
00004950  3a 51 25 21 34 34 3d 6b  41 25 0d 05 5b 85 51 25  |:Q%!44=kA%..[.Q%|
00004960  21 34 38 3d 51 46 25 3a  51 25 21 35 32 3d 30 3a  |!48=QF%:Q%!52=0:|
00004970  51 25 21 35 36 3d 33 31  37 3a 51 25 21 36 30 3d  |Q%!56=317:Q%!60=|
00004980  26 33 30 30 30 3a 51 25  21 36 38 3d 31 3a 51 25  |&3000:Q%!68=1:Q%|
00004990  21 37 32 3d 4e 3a 51 25  21 37 36 3d 2d 31 3a 51  |!72=N:Q%!76=-1:Q|
000049a0  25 21 38 30 3d a9 24 4e  3a 51 25 21 38 34 3d 30  |%!80=.$N:Q%!84=0|
000049b0  3a c8 99 26 34 30 30 43  31 2c 2c 51 25 b8 69 25  |:..&400C1,,Q%.i%|
000049c0  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
000049d0  6b 52 65 74 75 72 6e 28  51 25 29 3a 3d 69 25 0d  |kReturn(Q%):=i%.|
000049e0  05 64 44 dd a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |.dD..shell_Windo|
000049f0  77 48 61 73 54 69 74 6c  65 42 61 72 28 62 25 29  |wHasTitleBar(b%)|
00004a00  3a 3d 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |:=(.shell_Window|
00004a10  47 65 74 46 6c 61 67 73  28 62 25 29 80 31 3c 3c  |GetFlags(b%).1<<|
00004a20  32 36 29 0d 05 6b 42 dd  a4 73 68 65 6c 6c 5f 57  |26)..kB..shell_W|
00004a30  69 6e 64 6f 77 49 73 4d  6f 76 65 61 62 6c 65 28  |indowIsMoveable(|
00004a40  62 25 29 3a 3d 28 a4 73  68 65 6c 6c 5f 57 69 6e  |b%):=(.shell_Win|
00004a50  64 6f 77 47 65 74 46 6c  61 67 73 28 62 25 29 80  |dowGetFlags(b%).|
00004a60  31 3c 3c 31 29 0d 05 71  3f dd a4 73 68 65 6c 6c  |1<<1)..q?..shell|
00004a70  5f 57 69 6e 64 6f 77 49  73 41 50 61 6e 65 28 62  |_WindowIsAPane(b|
00004a80  25 29 3a 3d 28 a4 73 68  65 6c 6c 5f 57 69 6e 64  |%):=(.shell_Wind|
00004a90  6f 77 47 65 74 46 6c 61  67 73 28 62 25 29 80 31  |owGetFlags(b%).1|
00004aa0  3c 3c 35 29 0d 05 77 44  dd a4 73 68 65 6c 6c 5f  |<<5)..wD..shell_|
00004ab0  57 69 6e 64 6f 77 49 73  4e 6f 74 42 6f 75 6e 64  |WindowIsNotBound|
00004ac0  65 64 28 62 25 29 3a 3d  28 a4 73 68 65 6c 6c 5f  |ed(b%):=(.shell_|
00004ad0  57 69 6e 64 6f 77 47 65  74 46 6c 61 67 73 28 62  |WindowGetFlags(b|
00004ae0  25 29 80 31 3c 3c 36 29  0d 05 7d 45 dd a4 73 68  |%).1<<6)..}E..sh|
00004af0  65 6c 6c 5f 57 69 6e 64  6f 77 54 72 61 70 73 48  |ell_WindowTrapsH|
00004b00  6f 74 4b 65 79 73 28 62  25 29 3a 3d 28 a4 73 68  |otKeys(b%):=(.sh|
00004b10  65 6c 6c 5f 57 69 6e 64  6f 77 47 65 74 46 6c 61  |ell_WindowGetFla|
00004b20  67 73 28 62 25 29 80 31  3c 3c 26 43 29 0d 05 83  |gs(b%).1<<&C)...|
00004b30  3f dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 49  |?..shell_WindowI|
00004b40  73 4f 70 65 6e 28 62 25  29 3a 3d 28 a4 73 68 65  |sOpen(b%):=(.she|
00004b50  6c 6c 5f 57 69 6e 64 6f  77 47 65 74 46 6c 61 67  |ll_WindowGetFlag|
00004b60  73 28 62 25 29 80 31 3c  3c 31 36 29 0d 05 89 40  |s(b%).1<<16)...@|
00004b70  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 49 73  |..shell_WindowIs|
00004b80  4f 6e 54 6f 70 28 62 25  29 3a 3d 28 a4 73 68 65  |OnTop(b%):=(.she|
00004b90  6c 6c 5f 57 69 6e 64 6f  77 47 65 74 46 6c 61 67  |ll_WindowGetFlag|
00004ba0  73 28 62 25 29 80 31 3c  3c 31 37 29 0d 05 8f 47  |s(b%).1<<17)...G|
00004bb0  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 48 61  |..shell_WindowHa|
00004bc0  73 42 65 65 6e 54 6f 67  67 6c 65 64 28 62 25 29  |sBeenToggled(b%)|
00004bd0  3a 3d 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |:=(.shell_Window|
00004be0  47 65 74 46 6c 61 67 73  28 62 25 29 80 31 3c 3c  |GetFlags(b%).1<<|
00004bf0  31 38 29 0d 05 95 46 dd  a4 73 68 65 6c 6c 5f 57  |18)...F..shell_W|
00004c00  69 6e 64 6f 77 48 61 73  49 6e 70 75 74 46 6f 63  |indowHasInputFoc|
00004c10  75 73 28 62 25 29 3a 3d  28 a4 73 68 65 6c 6c 5f  |us(b%):=(.shell_|
00004c20  57 69 6e 64 6f 77 47 65  74 46 6c 61 67 73 28 62  |WindowGetFlags(b|
00004c30  25 29 80 31 3c 3c 32 30  29 0d 05 9b 44 dd a4 73  |%).1<<20)...D..s|
00004c40  68 65 6c 6c 5f 57 69 6e  64 6f 77 48 61 73 42 61  |hell_WindowHasBa|
00004c50  63 6b 49 63 6f 6e 28 62  25 29 3a 3d 28 a4 73 68  |ckIcon(b%):=(.sh|
00004c60  65 6c 6c 5f 57 69 6e 64  6f 77 47 65 74 46 6c 61  |ell_WindowGetFla|
00004c70  67 73 28 62 25 29 80 31  3c 3c 32 34 29 0d 05 a1  |gs(b%).1<<24)...|
00004c80  45 dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 48  |E..shell_WindowH|
00004c90  61 73 43 6c 6f 73 65 49  63 6f 6e 28 62 25 29 3a  |asCloseIcon(b%):|
00004ca0  3d 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |=(.shell_WindowG|
00004cb0  65 74 46 6c 61 67 73 28  62 25 29 80 31 3c 3c 32  |etFlags(b%).1<<2|
00004cc0  35 29 0d 05 a7 46 dd a4  73 68 65 6c 6c 5f 57 69  |5)...F..shell_Wi|
00004cd0  6e 64 6f 77 48 61 73 54  6f 67 67 6c 65 49 63 6f  |ndowHasToggleIco|
00004ce0  6e 28 62 25 29 3a 3d 28  a4 73 68 65 6c 6c 5f 57  |n(b%):=(.shell_W|
00004cf0  69 6e 64 6f 77 47 65 74  46 6c 61 67 73 28 62 25  |indowGetFlags(b%|
00004d00  29 80 31 3c 3c 32 37 29  0d 05 ad 46 dd a4 73 68  |).1<<27)...F..sh|
00004d10  65 6c 6c 5f 57 69 6e 64  6f 77 48 61 73 56 53 63  |ell_WindowHasVSc|
00004d20  72 6f 6c 6c 42 61 72 28  62 25 29 3a 3d 28 a4 73  |rollBar(b%):=(.s|
00004d30  68 65 6c 6c 5f 57 69 6e  64 6f 77 47 65 74 46 6c  |hell_WindowGetFl|
00004d40  61 67 73 28 62 25 29 80  31 3c 3c 32 38 29 0d 05  |ags(b%).1<<28)..|
00004d50  b3 4a dd a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |.J..shell_Window|
00004d60  48 61 73 41 64 6a 75 73  74 53 69 7a 65 49 63 6f  |HasAdjustSizeIco|
00004d70  6e 28 62 25 29 3a 3d 28  a4 73 68 65 6c 6c 5f 57  |n(b%):=(.shell_W|
00004d80  69 6e 64 6f 77 47 65 74  46 6c 61 67 73 28 62 25  |indowGetFlags(b%|
00004d90  29 80 31 3c 3c 32 39 29  0d 05 b9 46 dd a4 73 68  |).1<<29)...F..sh|
00004da0  65 6c 6c 5f 57 69 6e 64  6f 77 48 61 73 48 53 63  |ell_WindowHasHSc|
00004db0  72 6f 6c 6c 42 61 72 28  62 25 29 3a 3d 28 a4 73  |rollBar(b%):=(.s|
00004dc0  68 65 6c 6c 5f 57 69 6e  64 6f 77 47 65 74 46 6c  |hell_WindowGetFl|
00004dd0  61 67 73 28 62 25 29 80  31 3c 3c 33 30 29 0d 05  |ags(b%).1<<30)..|
00004de0  bf 7f dd a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |....shell_Window|
00004df0  47 65 74 46 6c 61 67 73  28 62 25 29 3a ea 6e 25  |GetFlags(b%):.n%|
00004e00  2c 61 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |,a%:a%=.shell_He|
00004e10  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 33 36 29  |apBlockFetch(36)|
00004e20  3a 61 25 21 30 3d 62 25  3a c8 99 26 34 30 30 43  |:a%!0=b%:..&400C|
00004e30  42 2c 2c 61 25 3a 6e 25  3d 61 25 21 33 32 3a f2  |B,,a%:n%=a%!32:.|
00004e40  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00004e50  65 74 75 72 6e 28 61 25  29 3a 3d 6e 25 0d 05 cb  |eturn(a%):=n%...|
00004e60  a6 dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |...shell_WindowG|
00004e70  65 74 54 69 74 6c 65 46  6c 61 67 73 28 62 25 29  |etTitleFlags(b%)|
00004e80  3a ea 6e 25 2c 61 25 3a  61 25 3d a4 73 68 65 6c  |:.n%,a%:a%=.shel|
00004e90  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00004ea0  28 26 36 34 2b 28 a4 73  68 65 6c 6c 5f 57 69 6e  |(&64+(.shell_Win|
00004eb0  64 6f 77 43 6f 75 6e 74  49 63 6f 6e 73 28 62 25  |dowCountIcons(b%|
00004ec0  29 2a 33 32 29 29 3a 61  25 21 30 3d 62 25 3a c8  |)*32)):a%!0=b%:.|
00004ed0  99 26 34 30 30 43 43 2c  2c 61 25 3a 6e 25 3d 61  |.&400CC,,a%:n%=a|
00004ee0  25 21 36 30 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |%!60:.shell_Heap|
00004ef0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 61 25 29 3a  |BlockReturn(a%):|
00004f00  3d 6e 25 0d 05 d7 88 dd  a4 73 68 65 6c 6c 5f 49  |=n%......shell_I|
00004f10  63 6f 6e 47 65 74 46 6c  61 67 73 28 62 25 2c 66  |conGetFlags(b%,f|
00004f20  25 29 3a ea 6e 25 2c 61  25 3a 61 25 3d a4 73 68  |%):.n%,a%:a%=.sh|
00004f30  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00004f40  63 68 28 35 30 29 3a 61  25 21 30 3d 62 25 3a 61  |ch(50):a%!0=b%:a|
00004f50  25 21 34 3d 66 25 3a c8  99 26 34 30 30 43 45 2c  |%!4=f%:..&400CE,|
00004f60  2c 61 25 3a 6e 25 3d 61  25 21 32 34 3a f2 73 68  |,a%:n%=a%!24:.sh|
00004f70  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00004f80  75 72 6e 28 61 25 29 3a  3d 6e 25 0d 05 e5 a3 dd  |urn(a%):=n%.....|
00004f90  a4 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 54 69 74  |.shell_WindowTit|
00004fa0  6c 65 46 6c 61 67 73 28  62 25 29 3a ea 6e 25 2c  |leFlags(b%):.n%,|
00004fb0  61 25 3a 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |a%:a%=.shell_Hea|
00004fc0  70 42 6c 6f 63 6b 46 65  74 63 68 28 26 36 34 2b  |pBlockFetch(&64+|
00004fd0  28 a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 43 6f  |(.shell_WindowCo|
00004fe0  75 6e 74 49 63 6f 6e 73  28 62 25 29 2a 33 32 29  |untIcons(b%)*32)|
00004ff0  29 3a 61 25 21 30 3d 62  25 3a c8 99 26 34 30 30  |):a%!0=b%:..&400|
00005000  43 43 2c 2c 61 25 3a 6e  25 3d 61 25 21 36 30 3a  |CC,,a%:n%=a%!60:|
00005010  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00005020  52 65 74 75 72 6e 28 61  25 29 3a 3d 6e 25 0d 05  |Return(a%):=n%..|
00005030  f1 48 dd a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |.H..shell_Window|
00005040  54 69 74 6c 65 48 61 73  42 6f 72 64 65 72 28 62  |TitleHasBorder(b|
00005050  25 29 3a 3d 28 a4 73 68  65 6c 6c 5f 57 69 6e 64  |%):=(.shell_Wind|
00005060  6f 77 54 69 74 6c 65 46  6c 61 67 73 28 62 25 29  |owTitleFlags(b%)|
00005070  80 31 3c 3c 32 29 0d 05  f7 47 dd a4 73 68 65 6c  |.1<<2)...G..shel|
00005080  6c 5f 57 69 6e 64 6f 77  54 69 74 6c 65 49 73 53  |l_WindowTitleIsS|
00005090  70 72 69 74 65 28 62 25  29 3a 3d 28 a4 73 68 65  |prite(b%):=(.she|
000050a0  6c 6c 5f 57 69 6e 64 6f  77 54 69 74 6c 65 46 6c  |ll_WindowTitleFl|
000050b0  61 67 73 28 62 25 29 80  31 3c 3c 31 29 0d 05 fd  |ags(b%).1<<1)...|
000050c0  45 dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 54  |E..shell_WindowT|
000050d0  69 74 6c 65 49 73 54 65  78 74 28 62 25 29 3a 3d  |itleIsText(b%):=|
000050e0  28 a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 69  |(.shell_WindowTi|
000050f0  74 6c 65 46 6c 61 67 73  28 62 25 29 80 31 3c 3c  |tleFlags(b%).1<<|
00005100  30 29 0d 06 03 49 dd a4  73 68 65 6c 6c 5f 57 69  |0)...I..shell_Wi|
00005110  6e 64 6f 77 54 69 74 6c  65 49 73 48 43 65 6e 74  |ndowTitleIsHCent|
00005120  72 65 64 28 62 25 29 3a  3d 28 a4 73 68 65 6c 6c  |red(b%):=(.shell|
00005130  5f 57 69 6e 64 6f 77 54  69 74 6c 65 46 6c 61 67  |_WindowTitleFlag|
00005140  73 28 62 25 29 80 31 3c  3c 33 29 0d 06 09 49 dd  |s(b%).1<<3)...I.|
00005150  a4 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 54 69 74  |.shell_WindowTit|
00005160  6c 65 49 73 56 43 65 6e  74 72 65 64 28 62 25 29  |leIsVCentred(b%)|
00005170  3a 3d 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |:=(.shell_Window|
00005180  54 69 74 6c 65 46 6c 61  67 73 28 62 25 29 80 31  |TitleFlags(b%).1|
00005190  3c 3c 34 29 0d 06 0f 47  dd a4 73 68 65 6c 6c 5f  |<<4)...G..shell_|
000051a0  57 69 6e 64 6f 77 54 69  74 6c 65 49 73 46 69 6c  |WindowTitleIsFil|
000051b0  6c 65 64 28 62 25 29 3a  3d 28 a4 73 68 65 6c 6c  |led(b%):=(.shell|
000051c0  5f 57 69 6e 64 6f 77 54  69 74 6c 65 46 6c 61 67  |_WindowTitleFlag|
000051d0  73 28 62 25 29 80 31 3c  3c 35 29 0d 06 15 49 dd  |s(b%).1<<5)...I.|
000051e0  a4 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 54 69 74  |.shell_WindowTit|
000051f0  6c 65 49 73 41 41 6c 69  61 73 65 64 28 62 25 29  |leIsAAliased(b%)|
00005200  3a 3d 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |:=(.shell_Window|
00005210  54 69 74 6c 65 46 6c 61  67 73 28 62 25 29 80 31  |TitleFlags(b%).1|
00005220  3c 3c 36 29 0d 06 1b 4b  dd a4 73 68 65 6c 6c 5f  |<<6)...K..shell_|
00005230  57 69 6e 64 6f 77 54 69  74 6c 65 49 73 49 6e 64  |WindowTitleIsInd|
00005240  69 72 65 63 74 65 64 28  62 25 29 3a 3d 28 a4 73  |irected(b%):=(.s|
00005250  68 65 6c 6c 5f 57 69 6e  64 6f 77 54 69 74 6c 65  |hell_WindowTitle|
00005260  46 6c 61 67 73 28 62 25  29 80 31 3c 3c 38 29 0d  |Flags(b%).1<<8).|
00005270  06 21 89 dd a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |.!...shell_Windo|
00005280  77 47 65 74 54 69 74 6c  65 28 62 25 29 3a ea 53  |wGetTitle(b%):.S|
00005290  24 2c 61 25 3a 61 25 3d  a4 73 68 65 6c 6c 5f 48  |$,a%:a%=.shell_H|
000052a0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 26 36  |eapBlockFetch(&6|
000052b0  34 2b 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |4+(.shell_Window|
000052c0  43 6f 75 6e 74 49 63 6f  6e 73 28 62 25 29 2a 33  |CountIcons(b%)*3|
000052d0  32 29 29 3a 61 25 21 30  3d 62 25 3a c8 99 26 34  |2)):a%!0=b%:..&4|
000052e0  30 30 43 43 2c 2c 61 25  3a e7 28 61 25 21 33 32  |00CC,,a%:.(a%!32|
000052f0  80 31 3c 3c 32 36 29 8c  0d 06 28 15 e7 28 28 61  |.1<<26)...(..((a|
00005300  25 21 36 30 29 80 32 35  36 29 3d 30 8c 0d 06 2a  |%!60).256)=0...*|
00005310  0f 53 24 3d 24 28 61 25  2b 37 36 29 0d 06 2b 13  |.S$=$(a%+76)..+.|
00005320  cc 53 24 3d 24 28 21 28  61 25 2b 37 36 29 29 0d  |.S$=$(!(a%+76)).|
00005330  06 2e 05 cd 0d 06 2f 24  cd 3a f2 73 68 65 6c 6c  |....../$.:.shell|
00005340  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
00005350  28 61 25 29 3a 3d 53 24  0d 06 36 94 dd a4 73 68  |(a%):=S$..6...sh|
00005360  65 6c 6c 5f 57 69 6e 64  6f 77 54 69 74 6c 65 42  |ell_WindowTitleB|
00005370  75 66 66 65 72 4c 65 6e  67 74 68 28 62 25 29 3a  |ufferLength(b%):|
00005380  ea 5f 25 2c 61 25 3a 61  25 3d a4 73 68 65 6c 6c  |._%,a%:a%=.shell|
00005390  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
000053a0  26 36 34 2b 28 a4 73 68  65 6c 6c 5f 57 69 6e 64  |&64+(.shell_Wind|
000053b0  6f 77 43 6f 75 6e 74 49  63 6f 6e 73 28 62 25 29  |owCountIcons(b%)|
000053c0  2a 33 32 29 29 3a 61 25  21 30 3d 62 25 3a c8 99  |*32)):a%!0=b%:..|
000053d0  26 34 30 30 43 43 2c 2c  61 25 3a e7 28 28 61 25  |&400CC,,a%:.((a%|
000053e0  21 36 30 29 80 32 35 36  29 3d 30 8c 0d 06 3c 09  |!60).256)=0...<.|
000053f0  5f 25 3d 26 43 0d 06 3d  0d cc 5f 25 3d 61 25 21  |_%=&C..=.._%=a%!|
00005400  38 34 0d 06 3f 24 cd 3a  f2 73 68 65 6c 6c 5f 48  |84..?$.:.shell_H|
00005410  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 61  |eapBlockReturn(a|
00005420  25 29 3a 3d 5f 25 0d 06  46 93 dd f2 73 68 65 6c  |%):=_%..F...shel|
00005430  6c 5f 57 69 6e 64 6f 77  4d 6f 76 65 54 6f 49 63  |l_WindowMoveToIc|
00005440  6f 6e 28 62 25 2c 59 44  25 2c 66 25 2c 67 41 25  |on(b%,YD%,f%,gA%|
00005450  2c 66 41 25 29 3a ea 72  25 2c 74 25 3a 72 25 3d  |,fA%):.r%,t%:r%=|
00005460  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00005470  46 65 74 63 68 28 35 30  29 3a 74 25 3d a4 73 68  |Fetch(50):t%=.sh|
00005480  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00005490  63 68 28 33 36 29 3a 74  25 21 32 30 3d 30 3a e7  |ch(36):t%!20=0:.|
000054a0  a4 73 68 65 6c 6c 5f 4f  53 43 68 65 63 6b 56 65  |.shell_OSCheckVe|
000054b0  72 73 69 6f 6e 28 33 29  8c 0d 06 4c 1a e7 59 44  |rsion(3)...L..YD|
000054c0  25 3d 2d 31 8c 21 74 25  3d 2d 32 8b 21 74 25 3d  |%=-1.!t%=-2.!t%=|
000054d0  59 44 25 0d 06 4d 10 c8  99 26 34 30 30 43 42 2c  |YD%..M...&400CB,|
000054e0  2c 74 25 0d 06 4e 8c cd  3a 72 25 21 30 3d 59 44  |,t%..N..:r%!0=YD|
000054f0  25 3a 72 25 21 34 3d 66  25 3a c8 99 26 34 30 30  |%:r%!4=f%:..&400|
00005500  43 45 2c 2c 72 25 3a f2  73 68 65 6c 6c 5f 57 69  |CE,,r%:.shell_Wi|
00005510  6e 64 6f 77 4d 6f 76 65  54 6f 28 62 25 2c 72 25  |ndowMoveTo(b%,r%|
00005520  21 38 2b 67 41 25 2d 74  25 21 32 30 2c 72 25 21  |!8+gA%-t%!20,r%!|
00005530  32 30 2b 66 41 25 29 3a  f2 73 68 65 6c 6c 5f 48  |20+fA%):.shell_H|
00005540  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 72  |eapBlockReturn(r|
00005550  25 29 3a f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |%):.shell_HeapBl|
00005560  6f 63 6b 52 65 74 75 72  6e 28 74 25 29 3a e1 0d  |ockReturn(t%):..|
00005570  06 5a ed dd f2 73 68 65  6c 6c 5f 57 69 6e 64 6f  |.Z...shell_Windo|
00005580  77 4d 6f 76 65 54 6f 28  62 25 2c 49 41 25 2c 4d  |wMoveTo(b%,IA%,M|
00005590  41 25 29 3a ea 53 45 25  2c 55 45 25 2c 64 25 2c  |A%):.SE%,UE%,d%,|
000055a0  61 25 3a 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |a%:a%=.shell_Hea|
000055b0  70 42 6c 6f 63 6b 46 65  74 63 68 28 26 36 34 2b  |pBlockFetch(&64+|
000055c0  28 a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 43 6f  |(.shell_WindowCo|
000055d0  75 6e 74 49 63 6f 6e 73  28 62 25 29 2a 33 32 29  |untIcons(b%)*32)|
000055e0  29 3a 61 25 21 30 3d 62  25 3a c8 99 26 34 30 30  |):a%!0=b%:..&400|
000055f0  43 43 2c 2c 61 25 3a 53  45 25 3d 61 25 21 26 43  |CC,,a%:SE%=a%!&C|
00005600  2d 61 25 21 34 3a 55 45  25 3d 61 25 21 31 36 2d  |-a%!4:UE%=a%!16-|
00005610  61 25 21 38 3a 61 25 21  34 3d 49 41 25 3a 61 25  |a%!8:a%!4=IA%:a%|
00005620  21 38 3d 4d 41 25 3a 61  25 21 26 43 3d 49 41 25  |!8=MA%:a%!&C=IA%|
00005630  2b 53 45 25 3a 61 25 21  31 36 3d 4d 41 25 2b 55  |+SE%:a%!16=MA%+U|
00005640  45 25 3a c8 99 26 34 30  30 43 35 2c 2c 61 25 3a  |E%:..&400C5,,a%:|
00005650  c8 99 26 34 30 30 43 36  2c 2c 61 25 0d 06 6b 2e  |..&400C6,,a%..k.|
00005660  64 25 3d a4 73 68 65 6c  6c 5f 53 65 61 72 63 68  |d%=.shell_Search|
00005670  53 74 61 74 69 63 28 5f  55 25 21 26 42 38 2c 62  |Static(_U%!&B8,b|
00005680  25 29 3a e7 64 25 3e 2d  31 8c 0d 06 6d 1f f2 73  |%):.d%>-1...m..s|
00005690  68 65 6c 6c 5f 4f 70 65  6e 57 69 6e 64 6f 77 53  |hell_OpenWindowS|
000056a0  74 61 74 69 63 28 62 25  29 0d 06 6e 26 cc f2 73  |tatic(b%)..n&..s|
000056b0  68 65 6c 6c 5f 4f 70 65  6e 57 69 6e 64 6f 77 44  |hell_OpenWindowD|
000056c0  79 6e 61 6d 69 63 32 28  62 25 2c 30 2c 30 29 0d  |ynamic2(b%,0,0).|
000056d0  06 70 22 cd 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |.p".:.shell_Heap|
000056e0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 61 25 29 3a  |BlockReturn(a%):|
000056f0  e1 0d 06 77 a4 dd f2 73  68 65 6c 6c 5f 57 69 6e  |...w...shell_Win|
00005700  64 6f 77 42 72 69 6e 67  54 6f 54 6f 70 28 62 25  |dowBringToTop(b%|
00005710  29 3a ea 6f 42 25 3a 6f  42 25 3d a4 73 68 65 6c  |):.oB%:oB%=.shel|
00005720  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00005730  28 32 35 36 29 3a 6f 42  25 21 30 3d 62 25 3a c8  |(256):oB%!0=b%:.|
00005740  99 26 34 30 30 43 42 2c  2c 6f 42 25 3a 6f 42 25  |.&400CB,,oB%:oB%|
00005750  21 32 38 3d 2d 31 3a c8  99 26 34 30 30 45 37 2c  |!28=-1:..&400E7,|
00005760  32 2c 6f 42 25 2c 62 25  3a c8 99 26 34 30 30 43  |2,oB%,b%:..&400C|
00005770  37 2c 30 2c 6f 42 25 3a  f2 73 68 65 6c 6c 5f 48  |7,0,oB%:.shell_H|
00005780  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 6f  |eapBlockReturn(o|
00005790  42 25 29 3a e1 0d 06 87  b6 dd f2 73 68 65 6c 6c  |B%):.......shell|
000057a0  5f 55 70 64 61 74 65 57  69 6e 64 6f 77 28 69 25  |_UpdateWindow(i%|
000057b0  2c 4c 44 25 2c 6c 41 25  2c 4c 42 25 2c 53 42 25  |,LD%,lA%,LB%,SB%|
000057c0  29 3a ea 61 25 3a 61 25  3d a4 73 68 65 6c 6c 5f  |):.a%:a%=.shell_|
000057d0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 61  |HeapBlockFetch(a|
000057e0  25 29 3a 61 25 21 30 3d  69 25 3a 61 25 21 34 3d  |%):a%!0=i%:a%!4=|
000057f0  4c 44 25 3a 61 25 21 38  3d 6c 41 25 3a 61 25 21  |LD%:a%!8=lA%:a%!|
00005800  26 43 3d 4c 42 25 3a 61  25 21 31 36 3d 53 42 25  |&C=LB%:a%!16=SB%|
00005810  3a c8 99 26 34 30 30 43  39 2c 2c 61 25 b8 70 43  |:..&400C9,,a%.pC|
00005820  25 3a c8 99 26 34 30 30  43 42 2c 2c 61 25 3a f2  |%:..&400CB,,a%:.|
00005830  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00005840  65 74 75 72 6e 28 61 25  29 3a e1 0d 06 93 a7 dd  |eturn(a%):......|
00005850  f2 73 68 65 6c 6c 5f 4f  70 65 6e 57 69 6e 64 6f  |.shell_OpenWindo|
00005860  77 44 79 6e 61 6d 69 63  32 28 62 25 2c 67 41 25  |wDynamic2(b%,gA%|
00005870  2c 66 41 25 29 3a ea 6f  25 2c 7a 41 25 3a 7a 41  |,fA%):.o%,zA%:zA|
00005880  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00005890  63 6b 46 65 74 63 68 28  32 30 29 3a 5f 55 25 21  |ckFetch(20):_U%!|
000058a0  32 30 3d 62 25 3a c8 99  26 34 30 30 43 46 2c 2c  |20=b%:..&400CF,,|
000058b0  7a 41 25 3a c8 99 26 34  30 30 44 34 2c 2c 62 25  |zA%:..&400D4,,b%|
000058c0  2c 7a 41 25 21 30 2b 67  41 25 2c 7a 41 25 21 34  |,zA%!0+gA%,zA%!4|
000058d0  2b 66 41 25 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |+fA%:.shell_Heap|
000058e0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 7a 41 25 29  |BlockReturn(zA%)|
000058f0  3a e1 0d 06 9f 25 dd a4  73 68 65 6c 6c 5f 43 6c  |:....%..shell_Cl|
00005900  61 69 6d 4b 65 79 70 72  65 73 73 3a e7 5f 55 25  |aimKeypress:._U%|
00005910  21 32 30 3c 3e 30 8c 0d  06 a2 38 c8 99 26 34 30  |!20<>0....8..&40|
00005920  30 44 34 2c 2c 2d 31 3a  6f 25 3d a4 73 68 65 6c  |0D4,,-1:o%=.shel|
00005930  6c 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 28 5f  |l_DeleteWindow(_|
00005940  55 25 21 32 30 29 3a 5f  55 25 21 32 30 3d 30 0d  |U%!20):_U%!20=0.|
00005950  06 a5 08 cd 3a 3d b9 0d  06 ab 95 dd f2 73 68 65  |....:=.......she|
00005960  6c 6c 5f 4f 70 65 6e 57  69 6e 64 6f 77 28 62 25  |ll_OpenWindow(b%|
00005970  2c 78 44 25 2c 5f 44 25  29 3a ea 64 25 2c 61 25  |,xD%,_D%):.d%,a%|
00005980  2c 75 25 2c 67 25 2c 79  45 25 2c 75 43 25 2c 55  |,u%,g%,yE%,uC%,U|
00005990  41 25 2c 73 41 25 3a ea  76 42 25 2c 79 42 25 2c  |A%,sA%:.vB%,yB%,|
000059a0  53 42 25 2c 4b 45 25 2c  4a 45 25 2c 4b 43 25 2c  |SB%,KE%,JE%,KC%,|
000059b0  4c 43 25 3a 64 25 3d a4  73 68 65 6c 6c 5f 47 65  |LC%:d%=.shell_Ge|
000059c0  74 45 76 65 6e 74 4c 69  73 74 4f 66 66 73 65 74  |tEventListOffset|
000059d0  28 62 25 2c 2d 31 2c 5f  55 25 2b 33 30 34 2c 26  |(b%,-1,_U%+304,&|
000059e0  43 2c a3 29 3a e7 64 25  3e 3d 30 8c 0d 06 b1 67  |C,.):.d%>=0....g|
000059f0  61 25 3d 5f 55 25 21 33  30 34 2b 64 25 3a 63 25  |a%=_U%!304+d%:c%|
00005a00  3d 61 25 21 38 3a f2 73  68 65 6c 6c 5f 54 72 61  |=a%!8:.shell_Tra|
00005a10  63 65 66 30 28 22 4f 70  65 6e 57 69 6e 64 6f 77  |cef0("OpenWindow|
00005a20  3a 41 62 6f 75 74 20 74  6f 20 63 61 6c 6c 20 22  |:About to call "|
00005a30  2b 22 46 4e 22 2b 24 63  25 29 3a 4b 43 25 3d a0  |+"FN"+$c%):KC%=.|
00005a40  28 22 46 4e 22 2b 24 63  25 29 3a e7 4b 43 25 3d  |("FN"+$c%):.KC%=|
00005a50  30 8c e1 0d 06 b8 64 cd  3a 79 42 25 3d a3 3a 53  |0.....d.:yB%=.:S|
00005a60  42 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |B%=.shell_HeapBl|
00005a70  6f 63 6b 46 65 74 63 68  28 34 30 29 3a 53 42 25  |ockFetch(40):SB%|
00005a80  21 30 3d 62 25 3a c8 99  26 34 30 30 43 42 2c 2c  |!0=b%:..&400CB,,|
00005a90  53 42 25 3a e7 28 53 42  25 21 33 32 80 26 38 30  |SB%:.(SB%!32.&80|
00005aa0  30 30 30 29 3d 26 38 30  30 30 30 8c 79 42 25 3d  |000)=&80000.yB%=|
00005ab0  b9 8b 79 42 25 3d a3 0d  06 bf 68 f2 73 68 65 6c  |..yB%=....h.shel|
00005ac0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00005ad0  6e 28 53 42 25 29 3a 4c  43 25 3d a4 73 68 65 6c  |n(SB%):LC%=.shel|
00005ae0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00005af0  28 32 30 29 3a c8 99 26  34 30 30 43 46 2c 2c 4c  |(20):..&400CF,,L|
00005b00  43 25 3a 5f 51 25 21 30  3d 62 25 3a e7 ac 78 44  |C%:_Q%!0=b%:..xD|
00005b10  25 8c c8 99 26 34 30 30  43 42 2c 2c 5f 51 25 0d  |%...&400CB,,_Q%.|
00005b20  06 c6 09 e7 79 42 25 8c  0d 06 c7 11 c8 99 26 34  |....yB%.......&4|
00005b30  30 30 43 35 2c 2c 5f 51  25 0d 06 c8 3d cd 3a 64  |00C5,,_Q%...=.:d|
00005b40  25 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |%=.shell_GetEven|
00005b50  74 4c 69 73 74 4f 66 66  73 65 74 28 62 25 2c 2d  |tListOffset(b%,-|
00005b60  31 2c 5f 55 25 2b 39 32  2c 32 34 2c a3 29 3a e7  |1,_U%+92,24,.):.|
00005b70  64 25 3e 2d 31 8c 0d 06  cb 59 61 25 3d 28 5f 55  |d%>-1....Ya%=(_U|
00005b80  25 21 39 32 29 2b 64 25  3a 78 42 25 3d 61 25 21  |%!92)+d%:xB%=a%!|
00005b90  38 3a 77 44 25 3d 61 25  21 26 43 3a 64 42 25 3d  |8:wD%=a%!&C:dB%=|
00005ba0  61 25 21 31 36 3a 7a 42  25 3d 61 25 21 32 30 3a  |a%!16:zB%=a%!20:|
00005bb0  5f 51 25 21 30 3d 62 25  3a e7 5f 44 25 8c 75 43  |_Q%!0=b%:._D%.uC|
00005bc0  25 3d 2d 31 8b 75 43 25  3d 5f 51 25 21 32 38 0d  |%=-1.uC%=_Q%!28.|
00005bd0  06 d0 0a e7 ac 78 44 25  8c 0d 06 d1 2d c8 99 26  |.....xD%....-..&|
00005be0  34 30 30 43 35 2c 2c 5f  51 25 3a c8 99 26 34 30  |400C5,,_Q%:..&40|
00005bf0  30 43 42 2c 2c 5f 51 25  3a c8 99 26 34 30 30 43  |0CB,,_Q%:..&400C|
00005c00  36 2c 2c 5f 51 25 0d 06  d4 50 cd 3a 75 25 3d a4  |6,,_Q%...P.:u%=.|
00005c10  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00005c20  65 74 63 68 28 34 30 29  3a 67 25 3d 30 3a c8 95  |etch(40):g%=0:..|
00005c30  78 42 25 21 67 25 3c 3e  2d 31 3a 75 25 21 30 3d  |xB%!g%<>-1:u%!0=|
00005c40  78 42 25 21 67 25 3a e7  79 45 25 3d 30 8c 79 45  |xB%!g%:.yE%=0.yE|
00005c50  25 3d 75 25 21 30 0d 06  db 37 4b 45 25 3d 75 25  |%=u%!0...7KE%=u%|
00005c60  21 30 3a c8 99 26 34 30  30 43 42 2c 2c 75 25 3a  |!0:..&400CB,,u%:|
00005c70  e7 4c 43 25 21 31 36 3d  2d 39 84 79 42 25 84 4c  |.LC%!16=-9.yB%.L|
00005c80  43 25 21 31 36 3e 2d 35  84 5f 44 25 8c 0d 06 e0  |C%!16>-5._D%....|
00005c90  15 76 42 25 3d 77 44 25  21 67 25 3a c8 8e 76 42  |.vB%=wD%!g%:..vB|
00005ca0  25 ca 0d 06 e2 6a c9 30  2c 31 3a 55 41 25 3d 75  |%....j.0,1:UA%=u|
00005cb0  25 21 31 36 2d 75 25 21  38 3a 73 41 25 3d 75 25  |%!16-u%!8:sA%=u%|
00005cc0  21 26 43 2d 75 25 21 34  3a 75 25 21 34 3d 5f 51  |!&C-u%!4:u%!4=_Q|
00005cd0  25 21 34 2b 64 42 25 21  67 25 3a 75 25 21 26 43  |%!4+dB%!g%:u%!&C|
00005ce0  3d 75 25 21 34 2b 73 41  25 3a 75 25 21 31 36 3d  |=u%!4+sA%:u%!16=|
00005cf0  5f 51 25 21 31 36 2b 7a  42 25 21 67 25 3a 75 25  |_Q%!16+zB%!g%:u%|
00005d00  21 38 3d 75 25 21 31 36  2d 55 41 25 0d 06 e9 68  |!8=u%!16-UA%...h|
00005d10  c9 32 3a 55 41 25 3d 75  25 21 31 36 2d 75 25 21  |.2:UA%=u%!16-u%!|
00005d20  38 3a 73 41 25 3d 5f 51  25 21 26 43 2d 5f 51 25  |8:sA%=_Q%!&C-_Q%|
00005d30  21 34 3a 75 25 21 34 3d  5f 51 25 21 34 2b 64 42  |!4:u%!4=_Q%!4+dB|
00005d40  25 21 67 25 3a 75 25 21  26 43 3d 5f 51 25 21 26  |%!g%:u%!&C=_Q%!&|
00005d50  43 3a 75 25 21 31 36 3d  5f 51 25 21 31 36 2b 7a  |C:u%!16=_Q%!16+z|
00005d60  42 25 21 67 25 3a 75 25  21 38 3d 75 25 21 31 36  |B%!g%:u%!8=u%!16|
00005d70  2d 55 41 25 0d 06 f1 66  c9 33 3a 55 41 25 3d 5f  |-UA%...f.3:UA%=_|
00005d80  51 25 21 31 36 2d 5f 51  25 21 38 3a 73 41 25 3d  |Q%!16-_Q%!8:sA%=|
00005d90  75 25 21 26 43 2d 75 25  21 34 3a 75 25 21 34 3d  |u%!&C-u%!4:u%!4=|
00005da0  5f 51 25 21 34 2b 64 42  25 21 67 25 3a 75 25 21  |_Q%!4+dB%!g%:u%!|
00005db0  26 43 3d 75 25 21 34 2b  73 41 25 3a 75 25 21 31  |&C=u%!4+sA%:u%!1|
00005dc0  36 3d 5f 51 25 21 31 36  3a 75 25 21 38 3d 5f 51  |6=_Q%!16:u%!8=_Q|
00005dd0  25 21 38 2b 7a 42 25 21  67 25 0d 06 f9 6b c9 34  |%!8+zB%!g%...k.4|
00005de0  3a 55 41 25 3d 75 25 21  31 36 2d 75 25 21 38 3a  |:UA%=u%!16-u%!8:|
00005df0  73 41 25 3d 5f 51 25 21  26 43 2d 5f 51 25 21 34  |sA%=_Q%!&C-_Q%!4|
00005e00  3a 75 25 21 34 3d 5f 51  25 21 34 2b 64 42 25 21  |:u%!4=_Q%!4+dB%!|
00005e10  67 25 3a 75 25 21 26 43  3d 5f 51 25 21 26 43 3a  |g%:u%!&C=_Q%!&C:|
00005e20  75 25 21 31 36 3d 5f 51  25 21 38 2b 55 41 25 2b  |u%!16=_Q%!8+UA%+|
00005e30  7a 42 25 21 67 25 3a 75  25 21 38 3d 75 25 21 31  |zB%!g%:u%!8=u%!1|
00005e40  36 2b 55 41 25 0d 07 01  64 c9 35 3a 55 41 25 3d  |6+UA%...d.5:UA%=|
00005e50  5f 51 25 21 31 36 2d 5f  51 25 21 38 3a 73 41 25  |_Q%!16-_Q%!8:sA%|
00005e60  3d 75 25 21 26 43 2d 75  25 21 34 3a 75 25 21 34  |=u%!&C-u%!4:u%!4|
00005e70  3d 5f 51 25 21 26 43 2d  73 41 25 2b 64 42 25 21  |=_Q%!&C-sA%+dB%!|
00005e80  67 25 3a 75 25 21 26 43  3d 75 25 21 34 2b 73 41  |g%:u%!&C=u%!4+sA|
00005e90  25 3a 75 25 21 31 36 3d  5f 51 25 21 31 36 3a 75  |%:u%!16=_Q%!16:u|
00005ea0  25 21 38 3d 5f 51 25 21  38 0d 07 09 0c cb 3a e7  |%!8=_Q%!8.....:.|
00005eb0  67 25 3d 30 8c 0d 07 0b  0d 75 25 21 32 38 3d 75  |g%=0.....u%!28=u|
00005ec0  43 25 0d 07 0c 0e cc 75  25 21 32 38 3d 4a 45 25  |C%.....u%!28=JE%|
00005ed0  0d 07 0e 12 cd 3a c8 99  26 34 30 30 43 35 2c 2c  |.....:..&400C5,,|
00005ee0  75 25 0d 07 10 1d cd 3a  4a 45 25 3d 75 25 21 30  |u%.....:JE%=u%!0|
00005ef0  3a 67 25 2b 3d 34 3a ce  3a e7 ac 79 42 25 8c 0d  |:g%+=4:.:..yB%..|
00005f00  07 15 1c 5f 51 25 21 32  38 3d 4b 45 25 3a c8 99  |..._Q%!28=KE%:..|
00005f10  26 34 30 30 43 35 2c 2c  5f 51 25 0d 07 17 20 cd  |&400C5,,_Q%... .|
00005f20  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00005f30  6b 52 65 74 75 72 6e 28  75 25 29 0d 07 19 21 cc  |kReturn(u%)...!.|
00005f40  5f 51 25 21 30 3d 62 25  3a e7 ac 78 44 25 8c c8  |_Q%!0=b%:..xD%..|
00005f50  99 26 34 30 30 43 42 2c  2c 5f 51 25 0d 07 1d 15  |.&400CB,,_Q%....|
00005f60  e7 75 43 25 3d 2d 32 8c  5f 51 25 21 32 38 3d 2d  |.uC%=-2._Q%!28=-|
00005f70  32 0d 07 1e 15 e7 5f 44  25 3d 2d 31 8c 5f 51 25  |2....._D%=-1._Q%|
00005f80  21 32 38 3d 2d 31 0d 07  1f 11 c8 99 26 34 30 30  |!28=-1......&400|
00005f90  43 35 2c 2c 5f 51 25 0d  07 20 23 cd 3a f2 73 68  |C5,,_Q%.. #.:.sh|
00005fa0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00005fb0  75 72 6e 28 4c 43 25 29  3a e1 0d 07 27 72 dd f2  |urn(LC%):...'r..|
00005fc0  73 68 65 6c 6c 5f 43 6c  6f 73 65 57 69 6e 64 6f  |shell_CloseWindo|
00005fd0  77 28 62 25 29 3a ea 64  25 2c 61 25 2c 78 42 25  |w(b%):.d%,a%,xB%|
00005fe0  2c 77 44 25 2c 64 42 25  2c 7a 42 25 2c 71 25 2c  |,wD%,dB%,zB%,q%,|
00005ff0  4b 43 25 3a 64 25 3d a4  73 68 65 6c 6c 5f 47 65  |KC%:d%=.shell_Ge|
00006000  74 45 76 65 6e 74 4c 69  73 74 4f 66 66 73 65 74  |tEventListOffset|
00006010  28 62 25 2c 2d 31 2c 5f  55 25 2b 33 30 38 2c 26  |(b%,-1,_U%+308,&|
00006020  43 2c a3 29 3a e7 64 25  3e 3d 30 8c 0d 07 2b 68  |C,.):.d%>=0...+h|
00006030  61 25 3d 5f 55 25 21 33  30 38 2b 64 25 3a 63 25  |a%=_U%!308+d%:c%|
00006040  3d 61 25 21 38 3a f2 73  68 65 6c 6c 5f 54 72 61  |=a%!8:.shell_Tra|
00006050  63 65 66 30 28 22 43 6c  6f 73 65 57 69 6e 64 6f  |cef0("CloseWindo|
00006060  77 3a 41 62 6f 75 74 20  74 6f 20 63 61 6c 6c 20  |w:About to call |
00006070  22 2b 22 46 4e 22 2b 24  63 25 29 3a 4b 43 25 3d  |"+"FN"+$c%):KC%=|
00006080  a0 28 22 46 4e 22 2b 24  63 25 29 3a e7 4b 43 25  |.("FN"+$c%):.KC%|
00006090  3d 30 8c e1 0d 07 32 29  cd 3a 71 25 3d a4 73 68  |=0....2).:q%=.sh|
000060a0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
000060b0  63 68 28 36 30 29 3a e7  62 25 3e 30 8c 0d 07 35  |ch(60):.b%>0...5|
000060c0  3b 64 25 3d a4 73 68 65  6c 6c 5f 47 65 74 45 76  |;d%=.shell_GetEv|
000060d0  65 6e 74 4c 69 73 74 4f  66 66 73 65 74 28 62 25  |entListOffset(b%|
000060e0  2c 2d 31 2c 5f 55 25 2b  39 32 2c 32 34 2c a3 29  |,-1,_U%+92,24,.)|
000060f0  3a e7 64 25 3e 2d 31 8c  0d 07 37 6c 61 25 3d 28  |:.d%>-1...7la%=(|
00006100  5f 55 25 21 39 32 29 2b  64 25 3a 77 44 25 3d 61  |_U%!92)+d%:wD%=a|
00006110  25 21 26 43 3a 64 42 25  3d 61 25 21 31 36 3a 7a  |%!&C:dB%=a%!16:z|
00006120  42 25 3d 61 25 21 32 30  3a 67 25 3d 30 3a 78 42  |B%=a%!20:g%=0:xB|
00006130  25 3d 61 25 21 38 3a c8  95 78 42 25 21 67 25 3c  |%=a%!8:..xB%!g%<|
00006140  3e 2d 31 3a 71 25 21 30  3d 78 42 25 21 67 25 3a  |>-1:q%!0=xB%!g%:|
00006150  c8 99 26 34 30 30 43 36  2c 2c 71 25 3a 67 25 2b  |..&400C6,,q%:g%+|
00006160  3d 34 3a ce 0d 07 44 1a  cd 3a 71 25 21 30 3d 62  |=4:...D..:q%!0=b|
00006170  25 3a c8 99 26 34 30 30  43 36 2c 2c 71 25 0d 07  |%:..&400C6,,q%..|
00006180  47 22 cd 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |G".:.shell_HeapB|
00006190  6c 6f 63 6b 52 65 74 75  72 6e 28 71 25 29 3a e1  |lockReturn(q%):.|
000061a0  0d 07 4e 45 dd a4 73 68  65 6c 6c 5f 44 65 6c 65  |..NE..shell_Dele|
000061b0  74 65 57 69 6e 64 6f 77  28 69 25 29 3a ea 71 25  |teWindow(i%):.q%|
000061c0  3a 71 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:q%=.shell_HeapB|
000061d0  6c 6f 63 6b 46 65 74 63  68 28 32 30 29 3a e7 69  |lockFetch(20):.i|
000061e0  25 3c 3e 30 8c 0d 07 52  16 e7 a4 6f 6b 74 6f 64  |%<>0...R...oktod|
000061f0  65 6c 65 74 65 77 28 69  25 29 8c 0d 07 53 31 f2  |eletew(i%)...S1.|
00006200  73 68 65 6c 6c 5f 45 76  65 6e 74 44 65 6c 65 74  |shell_EventDelet|
00006210  65 41 6c 6c 28 69 25 29  3a e7 69 25 3d 5f 55 25  |eAll(i%):.i%=_U%|
00006220  21 32 30 8c 5f 55 25 21  32 30 3d 30 0d 07 55 2e  |!20._U%!20=0..U.|
00006230  64 25 3d a4 73 68 65 6c  6c 5f 53 65 61 72 63 68  |d%=.shell_Search|
00006240  53 74 61 74 69 63 28 5f  55 25 21 26 42 38 2c 69  |Static(_U%!&B8,i|
00006250  25 29 3a e7 64 25 3e 2d  31 8c 0d 07 57 18 63 25  |%):.d%>-1...W.c%|
00006260  3d 5f 55 25 21 26 42 38  2b 64 25 3a 63 25 21 30  |=_U%!&B8+d%:c%!0|
00006270  3d 30 0d 07 59 1f cd 3a  71 25 21 30 3d 69 25 3a  |=0..Y..:q%!0=i%:|
00006280  c8 99 26 34 30 30 43 33  2c 2c 71 25 3a 69 25 3d  |..&400C3,,q%:i%=|
00006290  30 0d 07 5e 05 cd 0d 07  5f 24 cd 3a f2 73 68 65  |0..^...._$.:.she|
000062a0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
000062b0  72 6e 28 71 25 29 3a 3d  69 25 0d 07 65 19 dd a4  |rn(q%):=i%..e...|
000062c0  6f 6b 74 6f 64 65 6c 65  74 65 77 28 69 25 29 3a  |oktodeletew(i%):|
000062d0  3d 2d 31 0d 07 6a 18 dd  a4 6f 6b 74 6f 63 6c 6f  |=-1..j...oktoclo|
000062e0  73 65 77 28 69 25 29 3a  3d 2d 31 0d 07 6f 7a dd  |sew(i%):=-1..oz.|
000062f0  f2 63 6c 69 70 72 65 63  74 28 41 2c f8 56 41 25  |.cliprect(A,.VA%|
00006300  2c f8 63 41 25 2c f8 71  46 25 2c f8 66 46 25 29  |,.cA%,.qF%,.fF%)|
00006310  3a ea 4b 41 25 2c 50 41  25 3a f2 6c 77 61 6f 72  |:.KA%,PA%:.lwaor|
00006320  69 67 69 6e 28 41 2c 4b  41 25 2c 50 41 25 29 3a  |igin(A,KA%,PA%):|
00006330  56 41 25 3d 41 21 32 34  2d 4b 41 25 3a 63 41 25  |VA%=A!24-KA%:cA%|
00006340  3d 41 21 32 38 2d 50 41  25 3a 71 46 25 3d 41 21  |=A!28-PA%:qF%=A!|
00006350  33 32 2d 4b 41 25 3a 66  46 25 3d 41 21 33 36 2d  |32-KA%:fF%=A!36-|
00006360  50 41 25 3a e1 0d 07 78  35 dd a4 70 6f 6c 6c 28  |PA%:...x5..poll(|
00006370  66 43 25 2c 46 46 25 29  3a e7 5f 55 25 21 26 36  |fC%,FF%):._U%!&6|
00006380  34 80 31 3c 3c 36 8c c8  99 22 57 69 6d 70 45 78  |4.1<<6..."WimpEx|
00006390  74 5f 50 72 65 50 6f 6c  6c 22 0d 07 7a 49 c8 99  |t_PrePoll"..zI..|
000063a0  26 34 30 30 43 37 2c 66  43 25 2c 5f 51 25 b8 48  |&400C7,fC%,_Q%.H|
000063b0  41 25 3a e7 5f 55 25 21  26 36 34 80 31 3c 3c 36  |A%:._U%!&64.1<<6|
000063c0  8c c8 99 22 57 69 6d 70  45 78 74 5f 41 63 74 69  |..."WimpExt_Acti|
000063d0  6f 6e 22 2c 5f 55 25 21  26 39 34 2c 5f 51 25 2c  |on",_U%!&94,_Q%,|
000063e0  48 41 25 0d 07 7c 08 3d  48 41 25 0d 07 81 3d dd  |HA%..|.=HA%...=.|
000063f0  a4 73 68 65 6c 6c 5f 50  6f 6c 6c 5f 49 28 66 43  |.shell_Poll_I(fC|
00006400  25 2c 46 46 25 29 3a e7  5f 55 25 21 26 36 34 80  |%,FF%):._U%!&64.|
00006410  31 3c 3c 36 8c c8 99 22  57 69 6d 70 45 78 74 5f  |1<<6..."WimpExt_|
00006420  50 72 65 50 6f 6c 6c 22  0d 07 83 49 c8 99 26 34  |PrePoll"...I..&4|
00006430  30 30 43 37 2c 66 43 25  2c 5f 51 25 b8 48 41 25  |00C7,fC%,_Q%.HA%|
00006440  3a e7 5f 55 25 21 26 36  34 80 31 3c 3c 36 8c c8  |:._U%!&64.1<<6..|
00006450  99 22 57 69 6d 70 45 78  74 5f 41 63 74 69 6f 6e  |."WimpExt_Action|
00006460  22 2c 5f 55 25 21 26 39  34 2c 5f 51 25 2c 48 41  |",_U%!&94,_Q%,HA|
00006470  25 0d 07 85 1a c8 99 26  38 31 36 38 36 2c 48 41  |%......&81686,HA|
00006480  25 2c 2c 46 46 25 3a 3d  48 41 25 0d 07 8b 1e dd  |%,,FF%:=HA%.....|
00006490  f2 73 68 65 6c 6c 5f 44  6f 42 61 63 6b 67 72 6f  |.shell_DoBackgro|
000064a0  75 6e 64 54 61 73 6b 3a  e1 0d 07 91 61 dd a4 73  |undTask:....a..s|
000064b0  68 65 6c 6c 5f 49 63 6f  6e 49 73 44 72 61 67 67  |hell_IconIsDragg|
000064c0  61 62 6c 65 28 62 25 2c  66 25 29 3a ea 6e 25 3a  |able(b%,f%):.n%:|
000064d0  6e 25 3d a4 73 68 65 6c  6c 5f 49 63 6f 6e 47 65  |n%=.shell_IconGe|
000064e0  74 46 6c 61 67 73 28 62  25 2c 66 25 29 3a 63 25  |tFlags(b%,f%):c%|
000064f0  3d 28 6e 25 80 26 36 30  30 30 29 3a e7 63 25 3d  |=(n%.&6000):.c%=|
00006500  26 36 30 30 30 3d b9 8b  3d a3 0d 07 9a 62 dd a4  |&6000=..=....b..|
00006510  73 68 65 6c 6c 5f 49 63  6f 6e 49 73 53 70 72 69  |shell_IconIsSpri|
00006520  74 65 28 62 25 2c 66 25  29 3a ea 6e 25 2c 63 25  |te(b%,f%):.n%,c%|
00006530  3a 6e 25 3d a4 73 68 65  6c 6c 5f 49 63 6f 6e 47  |:n%=.shell_IconG|
00006540  65 74 46 6c 61 67 73 28  62 25 2c 66 25 29 3a 63  |etFlags(b%,f%):c|
00006550  25 3d 28 6e 25 80 31 3c  3c 31 29 3a e7 63 25 3d  |%=(n%.1<<1):.c%=|
00006560  28 31 3c 3c 31 29 8c 3d  b9 8b 3d a3 0d 07 a3 83  |(1<<1).=..=.....|
00006570  dd f2 73 68 65 6c 6c 5f  49 63 6f 6e 44 72 61 67  |..shell_IconDrag|
00006580  42 6f 78 28 62 25 2c 66  25 29 3a ea 61 25 2c 48  |Box(b%,f%):.a%,H|
00006590  2c 4a 2c 6d 41 25 2c 6e  25 2c 51 41 25 2c 6d 45  |,J,mA%,n%,QA%,mE|
000065a0  25 2c 76 45 25 2c 77 42  25 2c 4a 41 24 3a ea 69  |%,vE%,wB%,JA$:.i|
000065b0  42 25 2c 52 24 3a 6d 41  25 3d a4 73 68 65 6c 6c  |B%,R$:mA%=.shell|
000065c0  5f 47 65 74 45 76 65 6e  74 4c 69 73 74 4f 66 66  |_GetEventListOff|
000065d0  73 65 74 28 62 25 2c 66  25 2c 5f 55 25 2b 37 32  |set(b%,f%,_U%+72|
000065e0  2c 32 34 2c a3 29 3a e7  6d 41 25 3e 3d 30 8c 0d  |,24,.):.mA%>=0..|
000065f0  07 ab 6e 61 25 3d 5f 55  25 21 37 32 2b 6d 41 25  |..na%=_U%!72+mA%|
00006600  3a 69 42 25 3d 61 25 21  31 36 3a 52 24 3d a4 73  |:iB%=a%!16:R$=.s|
00006610  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 44 61 74 61  |hell_IconGetData|
00006620  28 62 25 2c 69 42 25 29  3a e7 52 24 3d 22 22 8c  |(b%,iB%):.R$="".|
00006630  f2 73 68 65 6c 6c 5f 4f  4b 28 a4 73 68 65 6c 6c  |.shell_OK(.shell|
00006640  5f 4d 65 73 73 61 67 65  4e 6f 41 72 67 73 28 22  |_MessageNoArgs("|
00006650  53 48 45 4c 4c 4d 53 47  32 38 22 29 29 0d 07 af  |SHELLMSG28"))...|
00006660  f7 61 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |.a%=.shell_HeapB|
00006670  6c 6f 63 6b 46 65 74 63  68 28 26 36 34 2b 28 a4  |lockFetch(&64+(.|
00006680  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 43 6f 75 6e  |shell_WindowCoun|
00006690  74 49 63 6f 6e 73 28 62  25 29 2a 33 32 29 29 3a  |tIcons(b%)*32)):|
000066a0  21 61 25 3d 62 25 3a c8  99 26 34 30 30 43 43 2c  |!a%=b%:..&400CC,|
000066b0  2c 61 25 3a 48 3d 61 25  21 34 2d 61 25 21 32 30  |,a%:H=a%!4-a%!20|
000066c0  3a 4a 3d 61 25 21 31 36  2d 61 25 21 32 34 3a 76  |:J=a%!16-a%!24:v|
000066d0  45 25 3d 61 25 21 36 38  3a 61 25 21 34 3d 66 25  |E%=a%!68:a%!4=f%|
000066e0  3a c8 99 26 34 30 30 43  45 2c 2c 61 25 3a 21 61  |:..&400CE,,a%:!a|
000066f0  25 3d 62 25 3a 61 25 21  34 3d 35 3a 6e 25 3d 61  |%=b%:a%!4=5:n%=a|
00006700  25 21 32 34 3a 77 42 25  3d 61 25 21 33 32 3a 61  |%!24:wB%=a%!32:a|
00006710  25 21 38 3d 61 25 21 38  2b 48 3a 61 25 21 26 43  |%!8=a%!8+H:a%!&C|
00006720  3d 61 25 21 26 43 2b 4a  3a 61 25 21 31 36 3d 61  |=a%!&C+J:a%!16=a|
00006730  25 21 31 36 2b 48 3a 61  25 21 32 30 3d 61 25 21  |%!16+H:a%!20=a%!|
00006740  32 30 2b 4a 3a 61 25 21  32 34 3d 30 3a 61 25 21  |20+J:a%!24=0:a%!|
00006750  32 38 3d 30 0d 07 bc 4a  61 25 21 33 32 3d 26 37  |28=0...Ja%!32=&7|
00006760  46 46 46 46 46 46 46 3a  61 25 21 33 36 3d 26 37  |FFFFFFF:a%!36=&7|
00006770  46 46 46 46 46 46 46 3a  c8 99 36 2c 26 41 31 2c  |FFFFFFF:..6,&A1,|
00006780  32 38 b8 2c 2c 51 41 25  3a 6d 45 25 3d 28 28 51  |28.,,QA%:mE%=((Q|
00006790  41 25 80 32 29 3d 32 29  3a e7 6d 45 25 8c 0d 07  |A%.2)=2):.mE%...|
000067a0  c2 16 51 41 25 3d 6e 25  3a e7 28 51 41 25 80 32  |..QA%=n%:.(QA%.2|
000067b0  35 36 29 8c 0d 07 c4 26  4a 41 24 3d a4 73 68 65  |56)....&JA$=.she|
000067c0  6c 6c 5f 49 63 6f 6e 47  65 74 43 6f 6d 6d 61 6e  |ll_IconGetComman|
000067d0  64 28 77 42 25 2c 22 73  22 29 0d 07 c5 3e cd 3a  |d(wB%,"s")...>.:|
000067e0  e7 28 51 41 25 80 32 29  3d 30 8c f2 73 68 65 6c  |.(QA%.2)=0..shel|
000067f0  6c 5f 4f 4b 28 a4 73 68  65 6c 6c 5f 4d 65 73 73  |l_OK(.shell_Mess|
00006800  61 67 65 4e 6f 41 72 67  73 28 22 53 48 45 4c 4c  |ageNoArgs("SHELL|
00006810  4d 53 47 31 39 22 29 29  0d 07 c7 0d e7 4a 41 24  |MSG19")).....JA$|
00006820  3c 3e 22 22 8c 0d 07 c8  2f c8 99 26 34 32 34 30  |<>""..../..&4240|
00006830  30 2c 26 38 35 2c 76 45  25 2c 4a 41 24 2c 61 25  |0,&85,vE%,JA$,a%|
00006840  2b 38 3a 5f 55 25 21 26  36 34 3d 5f 55 25 21 26  |+8:_U%!&64=_U%!&|
00006850  36 34 84 31 0d 07 ca 11  cc c8 99 26 34 30 30 44  |64.1.......&400D|
00006860  30 2c 2c 61 25 0d 07 cc  05 cd 0d 07 cd 11 cc c8  |0,,a%...........|
00006870  99 26 34 30 30 44 30 2c  2c 61 25 0d 07 cf 20 cd  |.&400D0,,a%... .|
00006880  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00006890  6b 52 65 74 75 72 6e 28  61 25 29 0d 07 d1 d2 cc  |kReturn(a%).....|
000068a0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000068b0  49 63 6f 6e 44 72 61 67  42 6f 78 3a 57 41 52 4e  |IconDragBox:WARN|
000068c0  49 4e 47 21 20 6e 6f 20  75 73 65 72 20 64 72 61  |ING! no user dra|
000068d0  67 20 68 61 6e 64 6c 65  72 20 72 65 67 69 73 74  |g handler regist|
000068e0  65 72 65 64 20 66 6f 72  20 74 68 69 73 20 69 63  |ered for this ic|
000068f0  6f 6e 21 22 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |on!"):.shell_Tra|
00006900  63 65 66 30 28 22 49 63  6f 6e 44 72 61 67 42 6f  |cef0("IconDragBo|
00006910  78 3a 6e 6f 77 20 63 68  65 63 6b 69 6e 67 20 66  |x:now checking f|
00006920  6f 72 20 61 20 73 6c 69  64 65 72 20 64 72 61 67  |or a slider drag|
00006930  20 65 76 65 6e 74 2e 2e  22 29 3a 6d 41 25 3d a4  | event.."):mA%=.|
00006940  73 68 65 6c 6c 5f 47 65  74 45 76 65 6e 74 4c 69  |shell_GetEventLi|
00006950  73 74 4f 66 66 73 65 74  32 28 62 25 2c 66 25 2c  |stOffset2(b%,f%,|
00006960  5f 55 25 2b 33 33 32 2c  33 32 2c a3 29 0d 07 d7  |_U%+332,32,.)...|
00006970  5e f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |^.shell_Tracef0(|
00006980  22 49 63 6f 6e 44 72 61  67 42 6f 78 3a 65 76 65  |"IconDragBox:eve|
00006990  6e 74 20 6f 66 66 73 65  74 20 69 73 20 22 2b c3  |nt offset is "+.|
000069a0  6d 41 25 29 3a e7 6d 41  25 3e 3d 30 8c f2 73 68  |mA%):.mA%>=0..sh|
000069b0  65 6c 6c 5f 48 61 6e 64  6c 65 53 6c 69 64 65 72  |ell_HandleSlider|
000069c0  28 62 25 2c 66 25 2c 6d  41 25 29 0d 07 d9 07 cd  |(b%,f%,mA%).....|
000069d0  3a e1 0d 07 df 39 dd f2  73 68 65 6c 6c 5f 48 61  |:....9..shell_Ha|
000069e0  6e 64 6c 65 41 74 74 61  63 68 65 64 4d 65 6e 75  |ndleAttachedMenu|
000069f0  28 5f 51 25 2c 62 25 2c  66 25 29 3a ea 6d 25 3a  |(_Q%,b%,f%):.m%:|
00006a00  ea 85 3a ee 85 ea 3a f7  85 3a e1 0d 07 e5 12 e7  |..:...:..:......|
00006a10  66 25 3c 3e 2d 31 80 62  25 3e 2d 31 8c 0d 07 e6  |f%<>-1.b%>-1....|
00006a20  2f 6d 25 3d a4 73 68 65  6c 6c 5f 47 65 74 45 76  |/m%=.shell_GetEv|
00006a30  65 6e 74 4d 65 6e 75 28  5f 51 25 21 38 2c 62 25  |entMenu(_Q%!8,b%|
00006a40  2c 66 25 29 3a e7 6d 25  3c 3e 30 8c 0d 07 e8 29  |,f%):.m%<>0....)|
00006a50  f2 73 68 65 6c 6c 5f 48  61 6e 64 6c 65 4d 65 6e  |.shell_HandleMen|
00006a60  75 4f 70 65 6e 28 5f 51  25 2c 6d 25 2c 62 25 2c  |uOpen(_Q%,m%,b%,|
00006a70  66 25 2c b9 29 0d 07 e9  05 cd 0d 07 ea 07 cd 3a  |f%,.)..........:|
00006a80  e1 0d 07 f0 74 dd f2 73  68 65 6c 6c 5f 41 63 74  |....t..shell_Act|
00006a90  69 6f 6e 28 6b 46 25 29  3a ea 41 24 2c 6d 25 2c  |ion(kF%):.A$,m%,|
00006aa0  65 24 2c 6f 41 24 2c 4e  42 25 2c 74 41 25 2c 48  |e$,oA$,NB%,tA%,H|
00006ab0  42 25 2c 4e 44 25 3a ea  62 25 2c 66 25 2c 6f 25  |B%,ND%:.b%,f%,o%|
00006ac0  2c 5f 74 65 6d 70 32 38  25 2c 5f 74 65 6d 70 33  |,_temp28%,_temp3|
00006ad0  32 25 2c 5f 74 65 6d 70  32 34 25 2c 5f 74 65 6d  |2%,_temp24%,_tem|
00006ae0  70 25 2c 52 44 25 3a ea  59 43 25 2c 64 25 3a c8  |p%,RD%:.YC%,d%:.|
00006af0  8e 6b 46 25 ca 0d 07 f5  30 c9 30 3a f2 73 68 65  |.kF%....0.0:.she|
00006b00  6c 6c 5f 44 6f 42 61 63  6b 67 72 6f 75 6e 64 54  |ll_DoBackgroundT|
00006b10  61 73 6b 3a e7 28 5f 55  25 21 26 36 34 80 31 3c  |ask:.(_U%!&64.1<|
00006b20  3c 26 42 29 8c 0d 07 f7  11 f2 73 68 65 6c 6c 5f  |<&B)......shell_|
00006b30  53 6c 69 64 65 72 0d 07  f8 05 cd 0d 07 f9 21 c9  |Slider........!.|
00006b40  31 3a f2 73 68 65 6c 6c  5f 52 65 64 72 61 77 57  |1:.shell_RedrawW|
00006b50  69 6e 64 6f 77 28 5f 51  25 21 30 29 0d 07 fa 23  |indow(_Q%!0)...#|
00006b60  c9 32 3a f2 73 68 65 6c  6c 5f 4f 70 65 6e 57 69  |.2:.shell_OpenWi|
00006b70  6e 64 6f 77 28 5f 51 25  21 30 2c b9 2c 30 29 0d  |ndow(_Q%!0,.,0).|
00006b80  07 fb 20 c9 33 3a f2 73  68 65 6c 6c 5f 43 6c 6f  |.. .3:.shell_Clo|
00006b90  73 65 57 69 6e 64 6f 77  28 5f 51 25 21 30 29 0d  |seWindow(_Q%!0).|
00006ba0  07 fd 27 c9 34 3a f2 73  68 65 6c 6c 5f 50 6f 69  |..'.4:.shell_Poi|
00006bb0  6e 74 65 72 4c 65 61 76  69 6e 67 57 69 6e 64 6f  |nterLeavingWindo|
00006bc0  77 28 5f 51 25 29 0d 08  00 28 c9 35 3a f2 73 68  |w(_Q%)...(.5:.sh|
00006bd0  65 6c 6c 5f 50 6f 69 6e  74 65 72 45 6e 74 65 72  |ell_PointerEnter|
00006be0  69 6e 67 57 69 6e 64 6f  77 28 5f 51 25 29 0d 08  |ingWindow(_Q%)..|
00006bf0  02 be c9 36 3a 5f 55 25  21 32 38 3d 5f 51 25 21  |...6:_U%!28=_Q%!|
00006c00  26 43 3a 5f 55 25 21 33  32 3d 5f 51 25 21 31 36  |&C:_U%!32=_Q%!16|
00006c10  3a 74 41 25 3d 5f 51 25  21 30 3a 48 42 25 3d 5f  |:tA%=_Q%!0:HB%=_|
00006c20  51 25 21 34 3a 5f 55 25  21 32 37 32 3d 5f 51 25  |Q%!4:_U%!272=_Q%|
00006c30  21 30 3a 5f 55 25 21 32  37 36 3d 5f 51 25 21 34  |!0:_U%!276=_Q%!4|
00006c40  3a 5f 55 25 21 33 32 30  3d 5f 51 25 21 38 3a 5f  |:_U%!320=_Q%!8:_|
00006c50  74 65 6d 70 32 38 25 3d  5f 51 25 21 26 43 3a 5f  |temp28%=_Q%!&C:_|
00006c60  74 65 6d 70 33 32 25 3d  5f 51 25 21 31 36 3a 66  |temp32%=_Q%!16:f|
00006c70  25 3d 5f 51 25 21 31 36  3a f2 73 68 65 6c 6c 5f  |%=_Q%!16:.shell_|
00006c80  54 72 61 63 65 66 30 28  22 41 63 74 69 6f 6e 3a  |Tracef0("Action:|
00006c90  4d 6f 75 73 65 5f 43 6c  69 63 6b 20 65 76 65 6e  |Mouse_Click even|
00006ca0  74 20 64 65 74 65 63 74  65 64 22 29 0d 08 07 75  |t detected")...u|
00006cb0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00006cc0  41 63 74 69 6f 6e 3a 57  69 6e 64 6f 77 20 48 61  |Action:Window Ha|
00006cd0  6e 64 6c 65 20 77 61 73  20 26 22 2b c3 7e 5f 51  |ndle was &"+.~_Q|
00006ce0  25 21 26 43 2b 22 20 49  63 6f 6e 20 48 61 6e 64  |%!&C+" Icon Hand|
00006cf0  6c 65 20 77 61 73 20 22  2b c3 5f 51 25 21 31 36  |le was "+._Q%!16|
00006d00  29 3a e7 5f 51 25 21 26  43 3d 5f 55 25 21 32 38  |):._Q%!&C=_U%!28|
00006d10  38 80 5f 51 25 21 31 36  3d 5f 55 25 21 32 39 32  |8._Q%!16=_U%!292|
00006d20  8c 0d 08 0b 37 f2 73 68  65 6c 6c 5f 48 61 6e 64  |....7.shell_Hand|
00006d30  6c 65 42 75 6d 70 49 63  6f 6e 73 28 5f 55 25 21  |leBumpIcons(_U%!|
00006d40  32 39 36 2c 5f 51 25 21  26 43 2c 5f 51 25 21 31  |296,_Q%!&C,_Q%!1|
00006d50  36 2c 5f 51 25 21 38 29  0d 08 0c 31 cc 5f 55 25  |6,_Q%!8)...1._U%|
00006d60  21 32 38 38 3d 2d 31 3a  5f 55 25 21 32 39 32 3d  |!288=-1:_U%!292=|
00006d70  2d 31 3a 5f 55 25 21 32  39 36 3d 2d 31 3a e7 5f  |-1:_U%!296=-1:._|
00006d80  51 25 21 31 36 3e 3d 30  8c 0d 08 0f a6 64 25 3d  |Q%!16>=0.....d%=|
00006d90  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00006da0  69 73 74 4f 66 66 73 65  74 32 28 5f 51 25 21 26  |istOffset2(_Q%!&|
00006db0  43 2c 5f 51 25 21 31 36  2c 5f 55 25 2b 26 36 38  |C,_Q%!16,_U%+&68|
00006dc0  2c 31 36 2c 30 29 3a f2  73 68 65 6c 6c 5f 54 72  |,16,0):.shell_Tr|
00006dd0  61 63 65 66 30 28 22 44  45 42 55 47 3a 3a 62 75  |acef0("DEBUG::bu|
00006de0  6d 70 20 65 76 65 6e 74  20 6f 66 66 73 65 74 20  |mp event offset |
00006df0  69 73 20 22 2b c3 64 25  29 3a e7 64 25 3e 3d 30  |is "+.d%):.d%>=0|
00006e00  8c f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 42 75  |..shell_HandleBu|
00006e10  6d 70 49 63 6f 6e 73 28  64 25 2c 5f 51 25 21 26  |mpIcons(d%,_Q%!&|
00006e20  43 2c 5f 51 25 21 31 36  2c 5f 51 25 21 38 29 0d  |C,_Q%!16,_Q%!8).|
00006e30  08 12 05 cd 0d 08 13 12  cd 3a e7 28 5f 51 25 21  |.........:.(_Q%!|
00006e40  38 3d 36 34 29 8c 0d 08  17 31 5f 25 3d a4 73 68  |8=64)....1_%=.sh|
00006e50  65 6c 6c 5f 49 63 6f 6e  49 73 44 72 61 67 67 61  |ell_IconIsDragga|
00006e60  62 6c 65 28 5f 51 25 21  26 43 2c 5f 51 25 21 31  |ble(_Q%!&C,_Q%!1|
00006e70  36 29 3a e7 5f 25 8c 0d  08 19 3c 57 24 3d 22 49  |6):._%....<W$="I|
00006e80  63 6f 6e 20 69 73 20 64  72 61 67 67 61 62 6c 65  |con is draggable|
00006e90  22 3a f2 73 68 65 6c 6c  5f 49 63 6f 6e 44 72 61  |":.shell_IconDra|
00006ea0  67 42 6f 78 28 5f 51 25  21 26 43 2c 5f 51 25 21  |gBox(_Q%!&C,_Q%!|
00006eb0  31 36 29 0d 08 1c 1f cc  57 24 3d 22 49 63 6f 6e  |16).....W$="Icon|
00006ec0  20 69 73 20 6e 6f 74 20  64 72 61 67 67 61 62 6c  | is not draggabl|
00006ed0  65 22 0d 08 1e 22 cd 3a  f2 73 68 65 6c 6c 5f 54  |e"...".:.shell_T|
00006ee0  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 3a 22  |racef0("Action:"|
00006ef0  2b 57 24 29 0d 08 20 0e  cd 3a c8 8e 5f 51 25 21  |+W$).. ..:.._Q%!|
00006f00  38 ca 0d 08 22 20 c9 34  3a f2 73 68 65 6c 6c 5f  |8..." .4:.shell_|
00006f10  41 63 74 69 6f 6e 53 65  6c 65 63 74 42 75 74 74  |ActionSelectButt|
00006f20  6f 6e 0d 08 23 1e c9 32  3a f2 73 68 65 6c 6c 5f  |on..#..2:.shell_|
00006f30  41 63 74 69 6f 6e 4d 65  6e 75 42 75 74 74 6f 6e  |ActionMenuButton|
00006f40  0d 08 24 20 c9 31 3a f2  73 68 65 6c 6c 5f 41 63  |..$ .1:.shell_Ac|
00006f50  74 69 6f 6e 41 64 6a 75  73 74 42 75 74 74 6f 6e  |tionAdjustButton|
00006f60  0d 08 25 05 cb 0d 08 26  12 c9 37 3a e7 5f 55 25  |..%....&..7:._U%|
00006f70  21 26 36 34 80 31 8c 0d  08 27 1e c8 99 26 34 32  |!&64.1...'...&42|
00006f80  34 30 31 3a 5f 55 25 21  26 36 34 3d 5f 55 25 21  |401:_U%!&64=_U%!|
00006f90  26 36 34 82 31 0d 08 29  23 cd 3a 5f 55 25 21 26  |&64.1..)#.:_U%!&|
00006fa0  38 30 3d 30 3a e7 28 5f  55 25 21 26 36 34 80 31  |80=0:.(_U%!&64.1|
00006fb0  3c 3c 26 42 29 3d 30 8c  0d 08 2f 37 41 24 3d a4  |<<&B)=0.../7A$=.|
00006fc0  73 68 65 6c 6c 5f 47 65  74 45 76 65 6e 74 48 61  |shell_GetEventHa|
00006fd0  6e 64 6c 65 72 28 5f 55  25 21 32 38 2c 5f 55 25  |ndler(_U%!28,_U%|
00006fe0  21 33 32 2c 36 29 3a e7  41 24 3c 3e 22 22 8c 0d  |!32,6):.A$<>""..|
00006ff0  08 31 66 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |.1f.shell_Tracef|
00007000  30 28 22 41 63 74 69 6f  6e 3a 44 72 61 67 20 65  |0("Action:Drag e|
00007010  76 65 6e 74 20 64 65 74  65 63 74 65 64 20 2d 20  |vent detected - |
00007020  66 75 6e 63 74 69 6f 6e  20 69 73 20 22 2b 41 24  |function is "+A$|
00007030  29 3a 6f 25 3d a0 28 22  46 4e 22 2b 41 24 2b 22  |):o%=.("FN"+A$+"|
00007040  28 5f 74 65 6d 70 32 38  25 2c 5f 74 65 6d 70 33  |(_temp28%,_temp3|
00007050  32 25 29 22 29 0d 08 33  6a cc f2 73 68 65 6c 6c  |2%)")..3j..shell|
00007060  5f 54 72 61 63 65 66 30  28 22 41 63 74 69 6f 6e  |_Tracef0("Action|
00007070  3a 44 72 61 67 20 65 76  65 6e 74 20 64 65 74 65  |:Drag event dete|
00007080  63 74 65 64 20 2d 20 6e  6f 20 68 61 6e 64 6c 65  |cted - no handle|
00007090  72 20 66 75 6e 63 74 69  6f 6e 22 29 3a f2 73 68  |r function"):.sh|
000070a0  65 6c 6c 5f 53 65 6e 64  44 61 74 61 53 61 76 65  |ell_SendDataSave|
000070b0  28 5f 55 25 21 32 38 2c  5f 55 25 21 33 32 29 0d  |(_U%!28,_U%!32).|
000070c0  08 37 05 cd 0d 08 38 1a  cc 5f 55 25 21 26 36 34  |.7....8.._U%!&64|
000070d0  3d 5f 55 25 21 26 36 34  82 31 3c 3c 26 42 0d 08  |=_U%!&64.1<<&B..|
000070e0  3b 05 cd 0d 08 3c 3e c9  38 3a f2 73 68 65 6c 6c  |;....<>.8:.shell|
000070f0  5f 54 72 61 63 65 66 30  28 22 41 63 74 69 6f 6e  |_Tracef0("Action|
00007100  3a 6b 65 79 70 72 65 73  73 20 69 73 3d 22 2b c3  |:keypress is="+.|
00007110  5f 51 25 21 32 34 29 3a  c8 8e 5f 51 25 21 32 34  |_Q%!24):.._Q%!24|
00007120  ca 0d 08 3f 52 c9 26 44  2c 33 39 34 2c 33 39 38  |...?R.&D,394,398|
00007130  2c 33 39 39 2c 34 31 30  2c 34 33 30 2c 34 33 31  |,399,410,430,431|
00007140  3a 4e 44 25 3d a4 73 68  65 6c 6c 5f 57 72 69 74  |:ND%=.shell_Writ|
00007150  61 62 6c 65 49 63 6f 6e  48 61 6e 64 6c 65 72 28  |ableIconHandler(|
00007160  5f 51 25 21 30 2c 5f 51  25 21 34 2c 5f 51 25 21  |_Q%!0,_Q%!4,_Q%!|
00007170  32 34 29 0d 08 41 25 7f  4e 44 25 3d a4 73 68 65  |24)..A%.ND%=.she|
00007180  6c 6c 5f 48 6f 74 4b 65  79 50 72 6f 63 65 73 73  |ll_HotKeyProcess|
00007190  28 5f 51 25 21 32 34 29  0d 08 43 0c cb 3a e7 ac  |(_Q%!24)..C..:..|
000071a0  4e 44 25 8c 0d 08 45 50  f2 73 68 65 6c 6c 5f 54  |ND%...EP.shell_T|
000071b0  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 3a 4b  |racef0("Action:K|
000071c0  65 79 70 72 65 73 73 20  6e 6f 74 20 63 6c 61 69  |eypress not clai|
000071d0  6d 65 64 2c 20 70 61 73  73 69 6e 67 20 69 74 20  |med, passing it |
000071e0  6f 6e 22 29 3a c8 99 26  34 30 30 44 43 2c 5f 51  |on"):..&400DC,_Q|
000071f0  25 21 32 34 0d 08 47 42  cc f2 73 68 65 6c 6c 5f  |%!24..GB..shell_|
00007200  54 72 61 63 65 66 30 28  22 41 63 74 69 6f 6e 3a  |Tracef0("Action:|
00007210  4b 65 79 70 72 65 73 73  20 63 6c 61 69 6d 65 64  |Keypress claimed|
00007220  20 62 79 20 74 68 69 73  20 61 70 70 6c 69 63 61  | by this applica|
00007230  74 69 6f 6e 22 29 0d 08  49 05 cd 0d 08 4a 23 c9  |tion")..I....J#.|
00007240  39 3a f2 73 68 65 6c 6c  5f 41 63 74 69 6f 6e 4d  |9:.shell_ActionM|
00007250  65 6e 75 53 65 6c 65 63  74 28 5f 51 25 29 0d 08  |enuSelect(_Q%)..|
00007260  4b 1e c9 31 37 2c 31 38  3a f2 73 68 65 6c 6c 5f  |K..17,18:.shell_|
00007270  52 65 63 65 69 76 65 28  5f 51 25 29 0d 08 4c 2a  |Receive(_Q%)..L*|
00007280  c9 31 39 3a f2 73 68 65  6c 6c 5f 55 73 65 72 4d  |.19:.shell_UserM|
00007290  65 73 73 61 67 65 41 63  6b 6e 6f 77 6c 65 64 67  |essageAcknowledg|
000072a0  65 28 5f 51 25 29 0d 08  4d 07 cb 3a e1 0d 08 53  |e(_Q%)..M..:...S|
000072b0  6b dd f2 73 68 65 6c 6c  5f 41 63 74 69 6f 6e 53  |k..shell_ActionS|
000072c0  65 6c 65 63 74 42 75 74  74 6f 6e 3a ea 64 25 3a  |electButton:.d%:|
000072d0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000072e0  41 63 74 69 6f 6e 53 65  6c 65 63 74 42 75 74 74  |ActionSelectButt|
000072f0  6f 6e 3a 4d 6f 75 73 65  20 42 75 74 74 6f 6e 20  |on:Mouse Button |
00007300  77 61 73 20 53 45 4c 45  43 54 22 29 3a e7 5f 55  |was SELECT"):._U|
00007310  25 21 33 32 3e 3d 30 8c  0d 08 5a 3d 64 25 3d a4  |%!32>=0...Z=d%=.|
00007320  73 68 65 6c 6c 5f 47 65  74 45 76 65 6e 74 4c 69  |shell_GetEventLi|
00007330  73 74 4f 66 66 73 65 74  32 28 5f 51 25 21 26 43  |stOffset2(_Q%!&C|
00007340  2c 5f 51 25 21 31 36 2c  5f 55 25 2b 33 34 30 2c  |,_Q%!16,_U%+340,|
00007350  32 34 2c a3 29 0d 08 5b  0c cd 3a e7 64 25 3e 30  |24,.)..[..:.d%>0|
00007360  8c 0d 08 5f 18 e7 21 28  5f 55 25 21 33 34 30 2b  |..._..!(_U%!340+|
00007370  64 25 2b 31 36 29 3d 31  8c 0d 08 60 59 f2 73 68  |d%+16)=1...`Y.sh|
00007380  65 6c 6c 5f 4d 65 6e 75  54 69 63 6b 4f 6e 6c 79  |ell_MenuTickOnly|
00007390  31 28 21 28 5f 55 25 21  33 34 30 2b 64 25 2b 32  |1(!(_U%!340+d%+2|
000073a0  30 29 2c a4 73 68 65 6c  6c 5f 49 63 6f 6e 47 65  |0),.shell_IconGe|
000073b0  74 42 47 43 6f 6c 6f 75  72 28 5f 51 25 21 26 43  |tBGColour(_Q%!&C|
000073c0  2c 21 28 5f 55 25 21 33  34 30 2b 64 25 2b 38 29  |,!(_U%!340+d%+8)|
000073d0  29 29 0d 08 61 41 cd 3a  f2 73 68 65 6c 6c 5f 48  |))..aA.:.shell_H|
000073e0  61 6e 64 6c 65 4d 65 6e  75 4f 70 65 6e 28 5f 51  |andleMenuOpen(_Q|
000073f0  25 2c 21 28 5f 55 25 21  33 34 30 2b 64 25 2b 32  |%,!(_U%!340+d%+2|
00007400  30 29 2c 5f 51 25 21 26  43 2c 5f 51 25 21 31 36  |0),_Q%!&C,_Q%!16|
00007410  2c b9 29 0d 08 63 6c cc  f2 73 68 65 6c 6c 5f 48  |,.)..cl..shell_H|
00007420  61 6e 64 6c 65 41 74 74  61 63 68 65 64 4d 65 6e  |andleAttachedMen|
00007430  75 28 5f 51 25 2c 5f 55  25 21 32 38 2c 5f 55 25  |u(_Q%,_U%!28,_U%|
00007440  21 33 32 29 3a e7 5f 55  25 21 33 32 3d 30 8c f2  |!32):._U%!32=0..|
00007450  73 68 65 6c 6c 5f 48 61  6e 64 6c 65 41 74 74 61  |shell_HandleAtta|
00007460  63 68 65 64 44 61 74 61  53 61 76 65 28 5f 51 25  |chedDataSave(_Q%|
00007470  2c 5f 55 25 21 32 38 2c  5f 55 25 21 33 32 29 0d  |,_U%!28,_U%!32).|
00007480  08 66 37 41 24 3d a4 73  68 65 6c 6c 5f 47 65 74  |.f7A$=.shell_Get|
00007490  45 76 65 6e 74 48 61 6e  64 6c 65 72 28 5f 55 25  |EventHandler(_U%|
000074a0  21 32 38 2c 5f 55 25 21  33 32 2c 32 29 3a e7 41  |!28,_U%!32,2):.A|
000074b0  24 3c 3e 22 22 8c 0d 08  68 a4 f2 73 68 65 6c 6c  |$<>""...h..shell|
000074c0  5f 49 63 6f 6e 53 6c 61  62 28 34 2c 5f 55 25 21  |_IconSlab(4,_U%!|
000074d0  32 38 2c 5f 55 25 21 33  32 29 3a f2 73 68 65 6c  |28,_U%!32):.shel|
000074e0  6c 5f 54 72 61 63 65 66  30 28 22 41 63 74 69 6f  |l_Tracef0("Actio|
000074f0  6e 53 65 6c 65 63 74 42  75 74 74 6f 6e 3a 41 62  |nSelectButton:Ab|
00007500  6f 75 74 20 74 6f 20 63  61 6c 6c 20 22 2b 22 46  |out to call "+"F|
00007510  4e 22 2b 41 24 2b 22 28  22 2b c3 5f 74 65 6d 70  |N"+A$+"("+._temp|
00007520  32 38 25 2b 22 2c 22 2b  c3 5f 74 65 6d 70 33 32  |28%+","+._temp32|
00007530  25 2b 22 29 22 29 3a 6f  25 3d a0 28 22 46 4e 22  |%+")"):o%=.("FN"|
00007540  2b 41 24 2b 22 28 5f 74  65 6d 70 32 38 25 2c 5f  |+A$+"(_temp28%,_|
00007550  74 65 6d 70 33 32 25 29  22 29 0d 08 6d 10 cd 3a  |temp32%)")..m..:|
00007560  e7 5f 55 25 21 33 32 3d  30 8c 0d 08 70 13 e7 5f  |._U%!32=0...p.._|
00007570  55 25 21 32 38 3d 5f 55  25 21 32 30 8c 0d 08 71  |U%!28=_U%!20...q|
00007580  10 c8 99 26 34 30 30 44  34 2c 2c 2d 31 0d 08 72  |...&400D4,,-1..r|
00007590  05 cd 0d 08 73 05 cd 0d  08 74 07 cd 3a e1 0d 08  |....s....t..:...|
000075a0  79 75 dd f2 73 68 65 6c  6c 5f 41 63 74 69 6f 6e  |yu..shell_Action|
000075b0  4d 65 6e 75 42 75 74 74  6f 6e 3a ea 63 25 2c 6d  |MenuButton:.c%,m|
000075c0  25 2c 61 43 25 2c 64 25  3a 61 43 25 3d a3 3a f2  |%,aC%,d%:aC%=.:.|
000075d0  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
000075e0  63 74 69 6f 6e 4d 65 6e  75 42 75 74 74 6f 6e 3a  |ctionMenuButton:|
000075f0  4d 6f 75 73 65 20 42 75  74 74 6f 6e 20 77 61 73  |Mouse Button was|
00007600  20 4d 45 4e 55 22 29 3a  e7 5f 51 25 21 31 36 3e  | MENU"):._Q%!16>|
00007610  3d 30 8c 0d 08 80 3d 64  25 3d a4 73 68 65 6c 6c  |=0....=d%=.shell|
00007620  5f 47 65 74 45 76 65 6e  74 4c 69 73 74 4f 66 66  |_GetEventListOff|
00007630  73 65 74 32 28 5f 51 25  21 26 43 2c 5f 51 25 21  |set2(_Q%!&C,_Q%!|
00007640  31 36 2c 5f 55 25 2b 33  34 30 2c 32 34 2c a3 29  |16,_U%+340,24,.)|
00007650  0d 08 81 0c cd 3a e7 64  25 3e 30 8c 0d 08 84 3f  |.....:.d%>0....?|
00007660  f2 73 68 65 6c 6c 5f 48  61 6e 64 6c 65 4d 65 6e  |.shell_HandleMen|
00007670  75 4f 70 65 6e 28 5f 51  25 2c 21 28 5f 55 25 21  |uOpen(_Q%,!(_U%!|
00007680  33 34 30 2b 64 25 2b 32  30 29 2c 5f 51 25 21 26  |340+d%+20),_Q%!&|
00007690  43 2c 5f 51 25 21 31 36  2c b9 29 0d 08 85 32 cc  |C,_Q%!16,.)...2.|
000076a0  63 25 3d b9 3a e7 a6 28  2d 31 29 8c 63 25 3d a4  |c%=.:..(-1).c%=.|
000076b0  73 68 69 66 74 6d 65 6e  75 63 6c 69 63 6b 28 5f  |shiftmenuclick(_|
000076c0  51 25 21 26 43 2c 5f 51  25 21 31 36 29 0d 08 88  |Q%!&C,_Q%!16)...|
000076d0  08 e7 63 25 8c 0d 08 8a  cc f2 73 68 65 6c 6c 5f  |..c%......shell_|
000076e0  54 72 61 63 65 66 30 28  22 41 63 74 69 6f 6e 4d  |Tracef0("ActionM|
000076f0  65 6e 75 42 75 74 74 6f  6e 3a 43 68 65 63 6b 69  |enuButton:Checki|
00007700  6e 67 20 6d 65 6e 75 20  65 76 65 6e 74 73 2e 2e  |ng menu events..|
00007710  22 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |"):.shell_Tracef|
00007720  30 28 22 41 63 74 69 6f  6e 4d 65 6e 75 42 75 74  |0("ActionMenuBut|
00007730  74 6f 6e 3a 62 75 74 74  6f 6e 3d 22 2b c3 5f 51  |ton:button="+._Q|
00007740  25 21 38 2b 22 20 5f 51  25 21 31 32 3d 22 2b c3  |%!8+" _Q%!12="+.|
00007750  5f 51 25 21 26 43 2b 22  20 5f 51 25 21 31 36 3d  |_Q%!&C+" _Q%!16=|
00007760  22 2b c3 5f 51 25 21 31  36 29 3a e7 5f 51 25 21  |"+._Q%!16):._Q%!|
00007770  31 36 3e 3d 30 8c 6d 25  3d a4 73 68 65 6c 6c 5f  |16>=0.m%=.shell_|
00007780  47 65 74 45 76 65 6e 74  4d 65 6e 75 28 5f 51 25  |GetEventMenu(_Q%|
00007790  21 38 2c 5f 51 25 21 26  43 2c 5f 51 25 21 31 36  |!8,_Q%!&C,_Q%!16|
000077a0  29 0d 08 8e 25 e7 28 6d  25 3c 3e 30 80 5f 51 25  |)...%.(m%<>0._Q%|
000077b0  21 26 43 3e 30 80 5f 51  25 21 31 36 3e 3d 30 29  |!&C>0._Q%!16>=0)|
000077c0  8c 61 43 25 3d b9 0d 08  8f 0a e7 6d 25 3d 30 8c  |.aC%=......m%=0.|
000077d0  0d 08 92 2b 6d 25 3d a4  73 68 65 6c 6c 5f 47 65  |...+m%=.shell_Ge|
000077e0  74 45 76 65 6e 74 4d 65  6e 75 28 5f 51 25 21 38  |tEventMenu(_Q%!8|
000077f0  2c 5f 51 25 21 26 43 2c  2d 31 29 0d 08 93 75 cd  |,_Q%!&C,-1)...u.|
00007800  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00007810  22 41 63 74 69 6f 6e 4d  65 6e 75 42 75 74 74 6f  |"ActionMenuButto|
00007820  6e 3a 4d 65 6e 75 20 68  61 6e 64 6c 65 20 69 73  |n:Menu handle is|
00007830  3a 26 22 2b c3 7e 6d 25  29 3a e7 6d 25 3c 3e 30  |:&"+.~m%):.m%<>0|
00007840  8c f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 4d 65  |..shell_HandleMe|
00007850  6e 75 4f 70 65 6e 28 5f  51 25 2c 6d 25 2c 5f 51  |nuOpen(_Q%,m%,_Q|
00007860  25 21 26 43 2c 5f 51 25  21 31 36 2c 61 43 25 29  |%!&C,_Q%!16,aC%)|
00007870  0d 08 98 05 cd 0d 08 99  07 cd 3a e1 0d 08 9f 3b  |..........:....;|
00007880  dd f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 4d 65  |..shell_HandleMe|
00007890  6e 75 4f 70 65 6e 28 5f  51 25 2c 6d 25 2c 62 25  |nuOpen(_Q%,m%,b%|
000078a0  2c 66 25 2c 61 43 25 29  3a ea 72 25 2c 74 25 3a  |,f%,aC%):.r%,t%:|
000078b0  e7 61 43 25 3d a3 8c 0d  08 a7 23 f2 73 68 65 6c  |.aC%=.....#.shel|
000078c0  6c 5f 4f 70 65 6e 4d 65  6e 75 28 5f 51 25 21 30  |l_OpenMenu(_Q%!0|
000078d0  2c 5f 51 25 21 34 2c 6d  25 29 0d 08 a8 e5 cc 72  |,_Q%!4,m%).....r|
000078e0  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
000078f0  63 6b 46 65 74 63 68 28  35 30 29 3a 74 25 3d a4  |ckFetch(50):t%=.|
00007900  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00007910  65 74 63 68 28 33 36 29  3a 72 25 21 30 3d 62 25  |etch(36):r%!0=b%|
00007920  3a 72 25 21 34 3d 66 25  3a c8 99 26 34 30 30 43  |:r%!4=f%:..&400C|
00007930  45 2c 2c 72 25 3a 74 25  21 30 3d 62 25 3a c8 99  |E,,r%:t%!0=b%:..|
00007940  26 34 30 30 43 42 2c 2c  74 25 3a f2 73 68 65 6c  |&400CB,,t%:.shel|
00007950  6c 5f 4f 70 65 6e 4d 65  6e 75 28 74 25 21 34 2b  |l_OpenMenu(t%!4+|
00007960  72 25 21 31 36 2b 36 34  2c 5f 51 25 21 34 2c 6d  |r%!16+64,_Q%!4,m|
00007970  25 29 3a c8 97 b8 74 25  21 34 2b 72 25 21 31 36  |%):...t%!4+r%!16|
00007980  2b 36 34 2c 5f 51 25 21  34 3a f2 73 68 65 6c 6c  |+64,_Q%!4:.shell|
00007990  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
000079a0  28 72 25 29 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |(r%):.shell_Heap|
000079b0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 74 25 29 0d  |BlockReturn(t%).|
000079c0  08 b9 07 cd 3a e1 0d 08  bf 9a dd f2 73 68 65 6c  |....:.......shel|
000079d0  6c 5f 41 63 74 69 6f 6e  4d 65 6e 75 53 65 6c 65  |l_ActionMenuSele|
000079e0  63 74 28 5f 51 25 29 3a  ea 41 45 25 2c 4e 42 25  |ct(_Q%):.AE%,NB%|
000079f0  2c 59 43 25 2c 52 44 25  2c 6f 25 2c 46 44 25 2c  |,YC%,RD%,o%,FD%,|
00007a00  64 25 3a 64 25 3d a4 73  68 65 6c 6c 5f 47 65 74  |d%:d%=.shell_Get|
00007a10  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 32  |EventListOffset2|
00007a20  28 5f 55 25 21 32 38 2c  5f 55 25 21 33 32 2c 5f  |(_U%!28,_U%!32,_|
00007a30  55 25 2b 33 34 30 2c 32  34 2c a3 29 3a e7 64 25  |U%+340,24,.):.d%|
00007a40  3e 3d 30 8c f2 73 68 65  6c 6c 5f 44 6f 50 6f 70  |>=0..shell_DoPop|
00007a50  75 70 53 65 6c 65 63 74  28 5f 51 25 2c 64 25 29  |upSelect(_Q%,d%)|
00007a60  0d 08 c3 a6 46 44 25 3d  a4 73 68 65 6c 6c 5f 48  |....FD%=.shell_H|
00007a70  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 35  |eapBlockFetch(25|
00007a80  36 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |6):.shell_Tracef|
00007a90  30 28 22 41 63 74 69 6f  6e 4d 65 6e 75 53 65 6c  |0("ActionMenuSel|
00007aa0  65 63 74 3a 4d 65 6e 75  5f 53 65 6c 65 63 74 20  |ect:Menu_Select |
00007ab0  65 76 65 6e 74 20 64 65  74 65 63 74 65 64 22 29  |event detected")|
00007ac0  3a c8 99 26 34 30 30 43  46 2c 2c 5f 73 68 65 6c  |:..&400CF,,_shel|
00007ad0  6c 5f 62 6c 6b 25 3a 4e  42 25 3d a4 73 68 65 6c  |l_blk%:NB%=.shel|
00007ae0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00007af0  28 32 35 36 29 3a e7 5f  55 25 21 32 34 3d 5f 55  |(256):._U%!24=_U|
00007b00  25 21 26 46 43 8c 0d 08  cc 13 59 43 25 3d 30 3a  |%!&FC.....YC%=0:|
00007b10  5f 55 25 21 32 36 34 3d  31 0d 08 cd 3f cc 59 43  |_U%!264=1...?.YC|
00007b20  25 3d a4 73 68 65 6c 6c  5f 43 68 65 63 6b 53 65  |%=.shell_CheckSe|
00007b30  6c 65 63 74 69 6f 6e 28  5f 51 25 29 3a e7 59 43  |lection(_Q%):.YC|
00007b40  25 3e 2d 31 8c 5f 55 25  21 32 36 34 3d 31 8b 5f  |%>-1._U%!264=1._|
00007b50  55 25 21 32 36 34 3d 30  0d 08 d0 11 cd 3a e7 5f  |U%!264=0.....:._|
00007b60  55 25 21 32 36 34 3e 30  8c 0d 08 d2 37 c8 99 22  |U%!264>0....7.."|
00007b70  46 6f 6e 74 4d 65 6e 75  5f 44 65 63 6f 64 65 46  |FontMenu_DecodeF|
00007b80  6f 6e 74 4d 65 6e 75 22  2c 5f 51 25 2b 59 43 25  |ontMenu",_Q%+YC%|
00007b90  2c 4e 42 25 b8 52 44 25  3a e7 52 44 25 3d 31 8c  |,NB%.RD%:.RD%=1.|
00007ba0  0d 08 d6 a9 f2 73 68 65  6c 6c 5f 54 72 61 63 65  |.....shell_Trace|
00007bb0  66 30 28 22 41 63 74 69  6f 6e 4d 65 6e 75 53 65  |f0("ActionMenuSe|
00007bc0  6c 65 63 74 3a 46 6f 6e  74 4d 65 6e 75 20 73 65  |lect:FontMenu se|
00007bd0  6c 65 63 74 69 6f 6e 20  28 22 2b a4 73 68 65 6c  |lection ("+.shel|
00007be0  6c 5f 47 65 74 53 74 72  69 6e 67 28 4e 42 25 29  |l_GetString(NB%)|
00007bf0  2b 22 29 22 29 3a f2 73  68 65 6c 6c 5f 46 6f 6e  |+")"):.shell_Fon|
00007c00  74 4d 65 6e 75 53 65 6c  65 63 74 46 6f 6e 74 28  |tMenuSelectFont(|
00007c10  a4 73 68 65 6c 6c 5f 47  65 74 53 74 72 69 6e 67  |.shell_GetString|
00007c20  28 4e 42 25 29 2c 5f 55  25 21 32 36 30 29 3a e7  |(NB%),_U%!260):.|
00007c30  5f 73 68 65 6c 6c 5f 46  6f 6e 74 4d 65 6e 75 53  |_shell_FontMenuS|
00007c40  65 6c 46 4e 24 3d 22 22  8c 0d 08 da a4 c8 99 26  |elFN$="".......&|
00007c50  34 30 30 44 35 2c 2c 5f  55 25 21 32 34 2c 5f 51  |400D5,,_U%!24,_Q|
00007c60  25 2c 4e 42 25 3a 41 24  3d a4 73 68 65 6c 6c 5f  |%,NB%:A$=.shell_|
00007c70  47 65 74 45 76 65 6e 74  48 61 6e 64 6c 65 72 28  |GetEventHandler(|
00007c80  5f 55 25 21 35 32 2c 5f  55 25 21 35 36 2c 30 29  |_U%!52,_U%!56,0)|
00007c90  3a 5f 74 65 6d 70 25 3d  4e 42 25 3a 24 5f 74 65  |:_temp%=NB%:$_te|
00007ca0  6d 70 25 3d a4 73 68 65  6c 6c 5f 53 74 72 69 6e  |mp%=.shell_Strin|
00007cb0  67 53 74 72 69 70 54 72  61 69 6c 69 6e 67 28 24  |gStripTrailing($|
00007cc0  5f 74 65 6d 70 25 2c 22  20 22 29 3a e7 41 24 3c  |_temp%," "):.A$<|
00007cd0  3e 22 22 8c 6f 25 3d a0  28 22 46 4e 22 2b 41 24  |>"".o%=.("FN"+A$|
00007ce0  2b 22 28 24 5f 74 65 6d  70 25 29 22 29 0d 08 df  |+"($_temp%)")...|
00007cf0  20 cc e7 5f 73 68 65 6c  6c 5f 46 6f 6e 74 4d 65  | .._shell_FontMe|
00007d00  6e 75 53 65 6c 46 4e 24  3c 3e 22 22 8c 0d 08 e1  |nuSelFN$<>""....|
00007d10  4c 6f 25 3d a0 28 22 46  4e 22 2b 5f 73 68 65 6c  |Lo%=.("FN"+_shel|
00007d20  6c 5f 46 6f 6e 74 4d 65  6e 75 53 65 6c 46 4e 24  |l_FontMenuSelFN$|
00007d30  2b 22 28 46 4e 73 68 65  6c 6c 5f 46 6f 6e 74 4d  |+"(FNshell_FontM|
00007d40  65 6e 75 47 65 74 4c 61  73 74 53 65 6c 65 63 74  |enuGetLastSelect|
00007d50  65 64 46 6f 6e 74 29 22  29 0d 08 e2 05 cd 0d 08  |edFont)").......|
00007d60  e3 05 cd 0d 08 e4 05 cd  0d 08 e5 2d cd 3a f2 73  |...........-.:.s|
00007d70  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00007d80  74 75 72 6e 28 4e 42 25  29 3a e7 5f 55 25 21 32  |turn(NB%):._U%!2|
00007d90  36 34 3d 30 8c 0d 08 e9  45 c8 99 26 34 35 42 43  |64=0....E..&45BC|
00007da0  34 2c 5f 55 25 21 32 34  2c 5f 51 25 b8 41 45 25  |4,_U%!24,_Q%.AE%|
00007db0  2c 2c 46 44 25 3a e7 41  45 25 8c f2 73 68 65 6c  |,,FD%:.AE%..shel|
00007dc0  6c 5f 4d 65 6e 75 43 61  6c 6c 48 61 6e 64 6c 65  |l_MenuCallHandle|
00007dd0  72 28 41 45 25 2c 46 44  25 29 0d 08 eb 17 cd 3a  |r(AE%,FD%).....:|
00007de0  e7 5f 73 68 65 6c 6c 5f  62 6c 6b 25 21 38 3d 31  |._shell_blk%!8=1|
00007df0  8c 0d 08 ed 25 e7 a4 73  68 65 6c 6c 5f 48 65 61  |....%..shell_Hea|
00007e00  70 42 6c 6f 63 6b 45 78  69 73 74 73 28 5f 55 25  |pBlockExists(_U%|
00007e10  21 26 45 30 29 8c 0d 08  ee 20 5f 74 65 6d 70 25  |!&E0).... _temp%|
00007e20  3d 5f 55 25 21 26 45 30  3a e7 24 5f 74 65 6d 70  |=_U%!&E0:.$_temp|
00007e30  25 3c 3e 22 22 8c 0d 08  f1 28 6f 25 3d a0 28 22  |%<>""....(o%=.("|
00007e40  46 4e 22 2b 24 5f 74 65  6d 70 25 2b 22 28 5f 55  |FN"+$_temp%+"(_U|
00007e50  25 21 35 32 2c 5f 55 25  21 35 36 29 22 29 0d 08  |%!52,_U%!56)")..|
00007e60  f2 05 cd 0d 08 f3 2b cd  3a f2 73 68 65 6c 6c 5f  |......+.:.shell_|
00007e70  4f 70 65 6e 4d 65 6e 75  28 5f 55 25 21 33 36 2c  |OpenMenu(_U%!36,|
00007e80  5f 55 25 21 34 30 2c 5f  55 25 21 32 34 29 0d 08  |_U%!40,_U%!24)..|
00007e90  f5 1d cc 5f 73 68 65 6c  6c 5f 46 6f 6e 74 4d 65  |..._shell_FontMe|
00007ea0  6e 75 53 65 6c 46 4e 24  3d 22 22 0d 08 f7 23 cd  |nuSelFN$=""...#.|
00007eb0  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00007ec0  6b 52 65 74 75 72 6e 28  46 44 25 29 3a e1 0d 08  |kReturn(FD%):...|
00007ed0  fe ae dd f2 73 68 65 6c  6c 5f 41 63 74 69 6f 6e  |....shell_Action|
00007ee0  41 64 6a 75 73 74 42 75  74 74 6f 6e 3a ea 6e 25  |AdjustButton:.n%|
00007ef0  2c 41 24 2c 6f 25 2c 65  43 25 2c 67 25 3a 65 43  |,A$,o%,eC%,g%:eC|
00007f00  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00007f10  63 6b 46 65 74 63 68 28  26 43 2b 28 a4 73 68 65  |ckFetch(&C+(.she|
00007f20  6c 6c 5f 57 69 6e 64 6f  77 43 6f 75 6e 74 49 63  |ll_WindowCountIc|
00007f30  6f 6e 73 28 5f 55 25 21  32 38 29 2a 33 32 29 29  |ons(_U%!28)*32))|
00007f40  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00007f50  22 41 63 74 69 6f 6e 3a  4d 6f 75 73 65 20 42 75  |"Action:Mouse Bu|
00007f60  74 74 6f 6e 20 77 61 73  20 41 44 4a 55 53 54 22  |tton was ADJUST"|
00007f70  29 3a e7 5f 55 25 21 32  38 3e 30 8c 0d 09 09 64  |):._U%!28>0....d|
00007f80  c8 99 26 34 30 30 44 36  2c 5f 55 25 21 32 38 2c  |..&400D6,_U%!28,|
00007f90  65 43 25 2c 26 46 30 30  30 2c 26 42 30 30 30 3a  |eC%,&F000,&B000:|
00007fa0  67 25 3d 30 3a c8 95 65  43 25 21 67 25 3c 3e 2d  |g%=0:..eC%!g%<>-|
00007fb0  31 3a e7 65 43 25 21 67  25 3d 5f 55 25 21 33 32  |1:.eC%!g%=_U%!32|
00007fc0  8c f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 28  |..shell_IconSet(|
00007fd0  5f 55 25 21 32 38 2c 5f  55 25 21 33 32 2c 31 29  |_U%!28,_U%!32,1)|
00007fe0  0d 09 0d 0b 67 25 2b 3d  34 3a ce 0d 09 0f 40 cd  |....g%+=4:....@.|
00007ff0  3a e7 5f 55 25 21 33 32  3d 30 8c f2 73 68 65 6c  |:._U%!32=0..shel|
00008000  6c 5f 48 61 6e 64 6c 65  41 74 74 61 63 68 65 64  |l_HandleAttached|
00008010  44 61 74 61 53 61 76 65  28 5f 51 25 2c 5f 55 25  |DataSave(_Q%,_U%|
00008020  21 32 38 2c 5f 55 25 21  33 32 29 0d 09 12 37 41  |!28,_U%!32)...7A|
00008030  24 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |$=.shell_GetEven|
00008040  74 48 61 6e 64 6c 65 72  28 5f 55 25 21 32 38 2c  |tHandler(_U%!28,|
00008050  5f 55 25 21 33 32 2c 33  29 3a e7 41 24 3c 3e 22  |_U%!32,3):.A$<>"|
00008060  22 8c 0d 09 14 48 f2 73  68 65 6c 6c 5f 49 63 6f  |"....H.shell_Ico|
00008070  6e 53 6c 61 62 28 31 2c  5f 55 25 21 32 38 2c 5f  |nSlab(1,_U%!28,_|
00008080  55 25 21 33 32 29 3a 6f  25 3d a0 28 22 46 4e 22  |U%!32):o%=.("FN"|
00008090  2b 41 24 2b 22 28 5f 74  65 6d 70 32 38 25 2c 5f  |+A$+"(_temp28%,_|
000080a0  74 65 6d 70 33 32 25 29  22 29 0d 09 16 23 cd 3a  |temp32%)")...#.:|
000080b0  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000080c0  52 65 74 75 72 6e 28 65  43 25 29 3a e1 0d 09 1d  |Return(eC%):....|
000080d0  1e dd a4 73 68 69 66 74  6d 65 6e 75 63 6c 69 63  |...shiftmenuclic|
000080e0  6b 28 62 25 2c 66 25 29  3a 3d b9 0d 09 22 99 dd  |k(b%,f%):=..."..|
000080f0  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 6c 61 62 28  |.shell_IconSlab(|
00008100  59 42 25 2c 62 25 2c 66  25 29 3a ea 61 25 3a 61  |YB%,b%,f%):.a%:a|
00008110  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00008120  63 6b 46 65 74 63 68 28  35 30 29 3a 61 25 21 38  |ckFetch(50):a%!8|
00008130  3d 59 42 25 3a 61 25 21  26 43 3d 62 25 3a 61 25  |=YB%:a%!&C=b%:a%|
00008140  21 31 36 3d 66 25 3a c8  99 26 38 31 36 38 30 2c  |!16=f%:..&81680,|
00008150  2c 61 25 3a 61 25 21 38  3d 30 3a c8 99 26 38 31  |,a%:a%!8=0:..&81|
00008160  36 38 30 2c 2c 61 25 3a  f2 73 68 65 6c 6c 5f 48  |680,,a%:.shell_H|
00008170  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 61  |eapBlockReturn(a|
00008180  25 29 3a e1 0d 09 2f 73  dd f2 73 68 65 6c 6c 5f  |%):.../s..shell_|
00008190  50 6f 69 6e 74 65 72 4c  65 61 76 69 6e 67 57 69  |PointerLeavingWi|
000081a0  6e 64 6f 77 28 5f 51 25  29 3a ea 72 25 2c 6f 25  |ndow(_Q%):.r%,o%|
000081b0  3a 72 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:r%=.shell_HeapB|
000081c0  6c 6f 63 6b 46 65 74 63  68 28 26 43 29 3a c8 99  |lockFetch(&C):..|
000081d0  26 34 30 30 44 36 2c 21  5f 51 25 2c 72 25 2c 26  |&400D6,!_Q%,r%,&|
000081e0  33 46 30 30 30 30 2c 26  46 3c 3c 31 36 3a e7 21  |3F0000,&F<<16:.!|
000081f0  72 25 3c 3e 2d 31 8c 0d  09 35 2b 6f 25 3d a0 28  |r%<>-1...5+o%=.(|
00008200  22 46 4e 22 2b a4 73 68  65 6c 6c 5f 49 63 6f 6e  |"FN"+.shell_Icon|
00008210  47 65 74 44 61 74 61 28  21 5f 51 25 2c 21 72 25  |GetData(!_Q%,!r%|
00008220  29 29 0d 09 36 22 cd 3a  f2 73 68 65 6c 6c 5f 48  |))..6".:.shell_H|
00008230  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 72  |eapBlockReturn(r|
00008240  25 29 3a e1 0d 09 3d 7e  dd f2 73 68 65 6c 6c 5f  |%):...=~..shell_|
00008250  50 6f 69 6e 74 65 72 45  6e 74 65 72 69 6e 67 57  |PointerEnteringW|
00008260  69 6e 64 6f 77 28 5f 51  25 29 3a ea 72 25 2c 6f  |indow(_Q%):.r%,o|
00008270  25 2c 62 25 3a 62 25 3d  5f 51 25 21 30 3a 72 25  |%,b%:b%=_Q%!0:r%|
00008280  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00008290  6b 46 65 74 63 68 28 26  43 29 3a c8 99 26 34 30  |kFetch(&C):..&40|
000082a0  30 44 36 2c 62 25 2c 72  25 2c 26 33 46 30 30 30  |0D6,b%,r%,&3F000|
000082b0  30 2c 26 45 3c 3c 31 36  3a e7 21 72 25 3c 3e 2d  |0,&E<<16:.!r%<>-|
000082c0  31 8c 0d 09 45 29 6f 25  3d a0 28 22 46 4e 22 2b  |1...E)o%=.("FN"+|
000082d0  a4 73 68 65 6c 6c 5f 49  63 6f 6e 47 65 74 44 61  |.shell_IconGetDa|
000082e0  74 61 28 62 25 2c 21 72  25 29 29 0d 09 46 22 cd  |ta(b%,!r%))..F".|
000082f0  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00008300  6b 52 65 74 75 72 6e 28  72 25 29 3a e1 0d 09 4d  |kReturn(r%):...M|
00008310  77 dd f2 73 68 65 6c 6c  5f 52 65 64 72 61 77 57  |w..shell_RedrawW|
00008320  69 6e 64 6f 77 28 69 25  29 3a ea 70 43 25 2c 41  |indow(i%):.pC%,A|
00008330  24 2c 4b 41 25 2c 50 41  25 2c 61 25 2c 72 25 3a  |$,KA%,PA%,a%,r%:|
00008340  72 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |r%=.shell_HeapBl|
00008350  6f 63 6b 46 65 74 63 68  28 26 43 29 3a c8 99 26  |ockFetch(&C):..&|
00008360  34 30 30 44 36 2c 69 25  2c 72 25 2c 26 33 46 30  |400D6,i%,r%,&3F0|
00008370  30 30 30 2c 26 44 3c 3c  31 36 3a e7 21 72 25 3c  |000,&D<<16:.!r%<|
00008380  3e 2d 31 8c 0d 09 54 21  41 24 3d a4 73 68 65 6c  |>-1...T!A$=.shel|
00008390  6c 5f 49 63 6f 6e 47 65  74 44 61 74 61 28 69 25  |l_IconGetData(i%|
000083a0  2c 21 72 25 29 0d 09 55  46 cd 3a f2 73 68 65 6c  |,!r%)..UF.:.shel|
000083b0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
000083c0  6e 28 72 25 29 3a 61 25  3d a4 73 68 65 6c 6c 5f  |n(r%):a%=.shell_|
000083d0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 26  |HeapBlockFetch(&|
000083e0  36 34 29 3a e7 41 24 3d  22 22 8c 0d 09 5b 26 41  |64):.A$=""...[&A|
000083f0  24 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |$=.shell_GetEven|
00008400  74 48 61 6e 64 6c 65 72  28 69 25 2c 2d 31 2c 34  |tHandler(i%,-1,4|
00008410  29 0d 09 5c 84 cd 3a 61  25 21 30 3d 69 25 3a c8  |)..\..:a%!0=i%:.|
00008420  99 26 34 30 30 43 38 2c  2c 61 25 b8 70 43 25 3a  |.&400C8,,a%.pC%:|
00008430  4b 41 25 3d 61 25 21 34  2d 61 25 21 32 30 3a 50  |KA%=a%!4-a%!20:P|
00008440  41 25 3d 61 25 21 31 36  2d 61 25 21 32 34 3a c8  |A%=a%!16-a%!24:.|
00008450  95 70 43 25 3a c8 99 26  38 31 36 38 31 2c 2c 61  |.pC%:..&81681,,a|
00008460  25 3a e7 41 24 3c 3e 22  22 8c 6f 25 3d a0 28 22  |%:.A$<>"".o%=.("|
00008470  46 4e 22 2b 41 24 2b 22  28 22 2b c3 61 25 2b 22  |FN"+A$+"("+.a%+"|
00008480  2c 22 2b c3 4b 41 25 2b  22 2c 22 2b c3 50 41 25  |,"+.KA%+","+.PA%|
00008490  2b 22 29 22 29 0d 09 63  33 c8 99 26 34 30 30 43  |+")")..c3..&400C|
000084a0  41 2c 2c 61 25 b8 70 43  25 3a ce 3a f2 73 68 65  |A,,a%.pC%:.:.she|
000084b0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
000084c0  72 6e 28 61 25 29 3a e1  0d 09 6b 29 dd f2 73 68  |rn(a%):...k)..sh|
000084d0  65 6c 6c 5f 52 65 63 65  69 76 65 28 5f 51 25 29  |ell_Receive(_Q%)|
000084e0  3a ea 63 25 2c 6f 25 3a  c8 8e 5f 51 25 21 31 36  |:.c%,o%:.._Q%!16|
000084f0  ca 0d 09 6e 14 c9 30 3a  f2 73 68 65 6c 6c 5f 45  |...n..0:.shell_E|
00008500  78 69 74 3a e0 0d 09 6f  1b c9 31 3a f2 73 68 65  |xit:...o..1:.she|
00008510  6c 6c 5f 44 61 74 61 53  61 76 65 28 5f 51 25 29  |ll_DataSave(_Q%)|
00008520  0d 09 70 1e c9 32 3a f2  73 68 65 6c 6c 5f 44 61  |..p..2:.shell_Da|
00008530  74 61 53 61 76 65 41 63  6b 28 5f 51 25 29 0d 09  |taSaveAck(_Q%)..|
00008540  71 1d c9 33 3a f2 73 68  65 6c 6c 5f 44 61 74 61  |q..3:.shell_Data|
00008550  4c 6f 61 64 28 5f 51 25  2c a3 29 0d 09 72 1e c9  |Load(_Q%,.)..r..|
00008560  34 3a f2 73 68 65 6c 6c  5f 44 61 74 61 4c 6f 61  |4:.shell_DataLoa|
00008570  64 41 63 6b 28 5f 51 25  29 0d 09 73 1d c9 35 3a  |dAck(_Q%)..s..5:|
00008580  f2 73 68 65 6c 6c 5f 44  61 74 61 4c 6f 61 64 28  |.shell_DataLoad(|
00008590  5f 51 25 2c b9 29 0d 09  74 1b c9 36 3a f2 73 68  |_Q%,.)..t..6:.sh|
000085a0  65 6c 6c 5f 52 41 4d 46  65 74 63 68 28 5f 51 25  |ell_RAMFetch(_Q%|
000085b0  29 0d 09 75 1e c9 37 3a  f2 73 68 65 6c 6c 5f 52  |)..u..7:.shell_R|
000085c0  41 4d 54 72 61 6e 73 6d  69 74 28 5f 51 25 29 0d  |AMTransmit(_Q%).|
000085d0  09 76 22 c9 38 3a f2 73  68 65 6c 6c 5f 4d 65 73  |.v".8:.shell_Mes|
000085e0  73 61 67 65 5f 50 72 65  51 75 69 74 28 5f 51 25  |sage_PreQuit(_Q%|
000085f0  29 0d 09 77 12 c9 39 3a  e7 5f 55 25 21 26 41 34  |)..w..9:._U%!&A4|
00008600  3e 30 8c 0d 09 79 56 f2  73 68 65 6c 6c 5f 54 72  |>0...yV.shell_Tr|
00008610  61 63 65 66 30 28 22 52  65 63 65 69 76 65 3a 50  |acef0("Receive:P|
00008620  61 6c 65 74 74 65 43 68  61 6e 67 65 20 6d 65 73  |aletteChange mes|
00008630  73 61 67 65 20 72 65 63  65 69 76 65 64 22 29 3a  |sage received"):|
00008640  63 25 3d 5f 55 25 21 26  41 34 3a 6f 25 3d a0 28  |c%=_U%!&A4:o%=.(|
00008650  22 46 4e 22 2b 24 63 25  29 0d 09 7d 05 cd 0d 09  |"FN"+$c%)..}....|
00008660  7e 27 c9 26 41 3a f2 73  68 65 6c 6c 5f 4d 65 73  |~'.&A:.shell_Mes|
00008670  73 61 67 65 5f 53 61 76  65 44 65 73 6b 74 6f 70  |sage_SaveDesktop|
00008680  28 5f 51 25 29 0d 09 7f  24 c9 26 45 3a f2 73 68  |(_Q%)...$.&E:.sh|
00008690  65 6c 6c 5f 4d 65 73 73  61 67 65 5f 53 68 75 74  |ell_Message_Shut|
000086a0  64 6f 77 6e 28 5f 51 25  29 0d 09 80 25 c9 26 35  |down(_Q%)...%.&5|
000086b0  30 32 3a f2 73 68 65 6c  6c 5f 49 6e 74 65 72 61  |02:.shell_Intera|
000086c0  63 74 69 76 65 48 65 6c  70 28 5f 51 25 29 0d 09  |ctiveHelp(_Q%)..|
000086d0  81 23 c9 26 34 30 30 43  30 3a f2 73 68 65 6c 6c  |.#.&400C0:.shell|
000086e0  5f 4d 65 6e 75 57 61 72  6e 69 6e 67 28 5f 51 25  |_MenuWarning(_Q%|
000086f0  29 0d 09 82 2a c9 26 34  30 30 43 31 3a f2 73 68  |)...*.&400C1:.sh|
00008700  65 6c 6c 5f 4d 65 73 73  61 67 65 5f 4d 6f 64 65  |ell_Message_Mode|
00008710  43 68 61 6e 67 65 28 5f  51 25 29 0d 09 83 17 c9  |Change(_Q%).....|
00008720  26 34 30 30 43 32 3a e7  5f 55 25 21 26 41 38 3e  |&400C2:._U%!&A8>|
00008730  30 8c 0d 09 86 8d f2 73  68 65 6c 6c 5f 54 72 61  |0......shell_Tra|
00008740  63 65 66 30 28 22 52 65  63 65 69 76 65 3a 54 61  |cef0("Receive:Ta|
00008750  73 6b 49 6e 69 74 69 61  6c 69 73 65 20 6d 65 73  |skInitialise mes|
00008760  73 61 67 65 20 72 65 63  65 69 76 65 64 22 29 3a  |sage received"):|
00008770  63 25 3d 5f 55 25 21 26  41 38 3a 6f 25 3d a0 28  |c%=_U%!&A8:o%=.(|
00008780  22 46 4e 22 2b 24 63 25  2b 22 28 22 2b c3 28 5f  |"FN"+$c%+"("+.(_|
00008790  51 25 21 34 29 2b 22 2c  22 2b bd 33 34 2b a4 73  |Q%!4)+","+.34+.s|
000087a0  68 65 6c 6c 5f 47 65 74  53 74 72 69 6e 67 28 5f  |hell_GetString(_|
000087b0  51 25 2b 32 38 29 2b bd  33 34 2b 22 29 22 29 0d  |Q%+28)+.34+")").|
000087c0  09 8a 38 cd 3a e7 5f 55  25 21 26 44 30 3d 2d 31  |..8.:._U%!&D0=-1|
000087d0  80 a4 73 68 65 6c 6c 5f  47 65 74 53 74 72 69 6e  |..shell_GetStrin|
000087e0  67 28 5f 51 25 2b 32 38  29 3d 22 53 74 72 6f 6e  |g(_Q%+28)="Stron|
000087f0  67 48 65 6c 70 22 8c 0d  09 8c 7f 5f 55 25 21 26  |gHelp"....._U%!&|
00008800  44 30 3d 5f 51 25 21 34  3a f2 73 68 65 6c 6c 5f  |D0=_Q%!4:.shell_|
00008810  53 74 72 6f 6e 67 48 6c  70 4d 73 67 28 22 48 65  |StrongHlpMsg("He|
00008820  6c 70 5f 49 6e 73 74 61  6c 6c 20 2d 44 69 65 57  |lp_Install -DieW|
00008830  69 74 68 54 61 73 6b 20  22 2b a4 73 68 65 6c 6c  |ithTask "+.shell|
00008840  5f 47 65 74 41 70 70 44  69 72 2b 22 2e 22 2b a4  |_GetAppDir+"."+.|
00008850  73 68 65 6c 6c 5f 47 65  74 41 70 70 4e 61 6d 65  |shell_GetAppName|
00008860  29 3a 63 25 3d 5f 55 25  21 26 44 38 3a e7 24 63  |):c%=_U%!&D8:.$c|
00008870  25 3c 3e 22 22 8c 0d 09  90 42 f2 73 68 65 6c 6c  |%<>""....B.shell|
00008880  5f 48 65 6c 70 57 6f 72  64 28 24 63 25 29 3a f2  |_HelpWord($c%):.|
00008890  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
000088a0  65 74 75 72 6e 28 5f 55  25 21 26 44 38 29 3a 5f  |eturn(_U%!&D8):_|
000088b0  55 25 21 26 44 38 3d 30  0d 09 93 05 cd 0d 09 94  |U%!&D8=0........|
000088c0  05 cd 0d 09 95 17 c9 26  34 30 30 43 33 3a e7 5f  |.......&400C3:._|
000088d0  55 25 21 26 41 43 3e 30  8c 0d 09 99 56 f2 73 68  |U%!&AC>0....V.sh|
000088e0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 52 65 63  |ell_Tracef0("Rec|
000088f0  65 69 76 65 3a 54 61 73  6b 43 6c 6f 73 65 44 6f  |eive:TaskCloseDo|
00008900  77 6e 20 6d 65 73 73 61  67 65 20 72 65 63 65 69  |wn message recei|
00008910  76 65 64 22 29 3a 63 25  3d 5f 55 25 21 26 41 43  |ved"):c%=_U%!&AC|
00008920  3a 6f 25 3d a0 28 22 46  4e 22 2b 24 63 25 29 0d  |:o%=.("FN"+$c%).|
00008930  09 9d 1f cd 3a e7 5f 51  25 21 34 3d 5f 55 25 21  |....:._Q%!4=_U%!|
00008940  26 44 30 8c 5f 55 25 21  26 44 30 3d 2d 31 0d 09  |&D0._U%!&D0=-1..|
00008950  9f 69 c9 26 34 30 30 43  37 3a f2 73 68 65 6c 6c  |.i.&400C7:.shell|
00008960  5f 54 72 61 63 65 66 30  28 22 52 65 63 65 69 76  |_Tracef0("Receiv|
00008970  65 3a 54 61 73 6b 4e 61  6d 65 49 73 20 6d 65 73  |e:TaskNameIs mes|
00008980  73 61 67 65 20 72 65 63  65 69 76 65 64 22 29 3a  |sage received"):|
00008990  e7 a4 73 68 65 6c 6c 5f  47 65 74 53 74 72 69 6e  |..shell_GetStrin|
000089a0  67 28 5f 51 25 2b 32 38  29 3d 22 53 74 72 6f 6e  |g(_Q%+28)="Stron|
000089b0  67 48 65 6c 70 22 8c 0d  09 a5 12 5f 55 25 21 26  |gHelp"....._U%!&|
000089c0  44 30 3d 5f 51 25 21 32  30 0d 09 a6 17 cc f2 73  |D0=_Q%!20......s|
000089d0  68 65 6c 6c 5f 53 63 61  6e 46 6f 72 48 65 6c 70  |hell_ScanForHelp|
000089e0  0d 09 a8 05 cd 0d 09 aa  27 c9 26 38 30 31 34 30  |........'.&80140|
000089f0  3a f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 50 72  |:.shell_HandlePr|
00008a00  69 6e 74 46 69 6c 65 28  5f 51 25 29 0d 09 ad 28  |intFile(_Q%)...(|
00008a10  c9 26 38 30 31 34 33 3a  f2 73 68 65 6c 6c 5f 48  |.&80143:.shell_H|
00008a20  61 6e 64 6c 65 50 72 69  6e 74 45 72 72 6f 72 28  |andlePrintError(|
00008a30  5f 51 25 29 0d 09 b0 2a  c9 26 38 30 31 34 35 3a  |_Q%)...*.&80145:|
00008a40  f2 73 68 65 6c 6c 5f 48  61 6e 64 6c 65 50 72 69  |.shell_HandlePri|
00008a50  6e 74 54 79 70 65 4f 64  64 28 5f 51 25 29 0d 09  |ntTypeOdd(_Q%)..|
00008a60  b3 28 c9 26 38 30 31 34  37 3a f2 73 68 65 6c 6c  |.(.&80147:.shell|
00008a70  5f 48 61 6e 64 6c 65 53  65 74 50 72 69 6e 74 65  |_HandleSetPrinte|
00008a80  72 28 5f 51 25 29 0d 09  b7 26 7f f2 73 68 65 6c  |r(_Q%)...&..shel|
00008a90  6c 5f 48 61 6e 64 6c 65  55 6e 6b 6e 6f 77 6e 4d  |l_HandleUnknownM|
00008aa0  65 73 73 61 67 65 32 28  5f 51 25 29 0d 09 b8 07  |essage2(_Q%)....|
00008ab0  cb 3a e1 0d 09 be 49 dd  f2 73 68 65 6c 6c 5f 4d  |.:....I..shell_M|
00008ac0  65 73 73 61 67 65 5f 4d  6f 64 65 43 68 61 6e 67  |essage_ModeChang|
00008ad0  65 28 5f 51 25 29 3a ea  64 25 2c 67 25 2c 66 42  |e(_Q%):.d%,g%,fB|
00008ae0  25 2c 74 25 3a 66 42 25  3d 5f 55 25 21 26 42 38  |%,t%:fB%=_U%!&B8|
00008af0  3a e7 5f 55 25 21 26 41  30 3e 30 8c 0d 09 c2 5e  |:._U%!&A0>0....^|
00008b00  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00008b10  4d 65 73 73 61 67 65 5f  4d 6f 64 65 43 68 61 6e  |Message_ModeChan|
00008b20  67 65 3a 4d 6f 64 65 43  68 61 6e 67 65 20 6d 65  |ge:ModeChange me|
00008b30  73 73 61 67 65 20 72 65  63 65 69 76 65 64 22 29  |ssage received")|
00008b40  3a 63 25 3d 5f 55 25 21  26 41 30 3a 6f 25 3d a0  |:c%=_U%!&A0:o%=.|
00008b50  28 22 46 4e 22 2b 24 63  25 29 0d 09 c5 2c cd 3a  |("FN"+$c%)...,.:|
00008b60  74 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |t%=.shell_HeapBl|
00008b70  6f 63 6b 46 65 74 63 68  28 26 36 34 29 3a e7 66  |ockFetch(&64):.f|
00008b80  42 25 3c 3e 30 8c 0d 09  ce 9d f2 73 68 65 6c 6c  |B%<>0......shell|
00008b90  5f 54 72 61 63 65 66 30  28 22 4d 65 73 73 61 67  |_Tracef0("Messag|
00008ba0  65 5f 4d 6f 64 65 43 68  61 6e 67 65 3a 43 68 65  |e_ModeChange:Che|
00008bb0  63 6b 69 6e 67 20 73 74  61 74 69 63 20 77 69 6e  |cking static win|
00008bc0  64 6f 77 20 6c 69 73 74  20 66 6f 72 20 70 61 6e  |dow list for pan|
00008bd0  65 20 65 76 65 6e 74 73  22 29 3a c8 95 66 42 25  |e events"):..fB%|
00008be0  21 67 25 3c 3e 2d 31 3a  64 25 3d a4 73 68 65 6c  |!g%<>-1:d%=.shel|
00008bf0  6c 5f 47 65 74 45 76 65  6e 74 4c 69 73 74 4f 66  |l_GetEventListOf|
00008c00  66 73 65 74 28 66 42 25  21 67 25 2c 2d 31 2c 5f  |fset(fB%!g%,-1,_|
00008c10  55 25 2b 39 32 2c 32 34  2c a3 29 3a e7 64 25 3e  |U%+92,24,.):.d%>|
00008c20  2d 31 8c 0d 09 d5 61 f2  73 68 65 6c 6c 5f 54 72  |-1....a.shell_Tr|
00008c30  61 63 65 66 30 28 22 4d  65 73 73 61 67 65 5f 4d  |acef0("Message_M|
00008c40  6f 64 65 43 68 61 6e 67  65 3a 53 74 61 74 69 63  |odeChange:Static|
00008c50  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 66  | window handle f|
00008c60  6f 75 6e 64 22 29 3a e7  a4 73 68 65 6c 6c 5f 57  |ound"):..shell_W|
00008c70  69 6e 64 6f 77 49 73 4f  70 65 6e 28 66 42 25 21  |indowIsOpen(fB%!|
00008c80  67 25 29 8c 0d 09 d9 70  f2 73 68 65 6c 6c 5f 54  |g%)....p.shell_T|
00008c90  72 61 63 65 66 30 28 22  4d 65 73 73 61 67 65 5f  |racef0("Message_|
00008ca0  4d 6f 64 65 43 68 61 6e  67 65 3a 57 69 6e 64 6f  |ModeChange:Windo|
00008cb0  77 20 69 73 20 6f 70 65  6e 2e 2e 22 29 3a 21 74  |w is open.."):!t|
00008cc0  25 3d 66 42 25 21 67 25  3a c8 99 26 34 30 30 43  |%=fB%!g%:..&400C|
00008cd0  36 2c 2c 74 25 3a f2 73  68 65 6c 6c 5f 4f 70 65  |6,,t%:.shell_Ope|
00008ce0  6e 57 69 6e 64 6f 77 28  66 42 25 21 67 25 2c 30  |nWindow(fB%!g%,0|
00008cf0  2c 2d 31 29 0d 09 df 05  cd 0d 09 e0 0d cd 3a 67  |,-1)..........:g|
00008d00  25 2b 3d 34 3a ce 0d 09  e3 22 cd 3a f2 73 68 65  |%+=4:....".:.she|
00008d10  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
00008d20  72 6e 28 74 25 29 3a e1  0d 09 ea 2d dd f2 73 68  |rn(t%):....-..sh|
00008d30  65 6c 6c 5f 4d 65 73 73  61 67 65 5f 53 68 75 74  |ell_Message_Shut|
00008d40  64 6f 77 6e 28 5f 51 25  29 3a e7 5f 55 25 21 33  |down(_Q%):._U%!3|
00008d50  31 32 3e 30 8c 0d 09 ec  5a f2 73 68 65 6c 6c 5f  |12>0....Z.shell_|
00008d60  54 72 61 63 65 66 30 28  22 4d 65 73 73 61 67 65  |Tracef0("Message|
00008d70  5f 53 68 75 74 64 6f 77  6e 3a 53 68 75 74 64 6f  |_Shutdown:Shutdo|
00008d80  77 6e 20 6d 65 73 73 61  67 65 20 72 65 63 65 69  |wn message recei|
00008d90  76 65 64 22 29 3a 63 25  3d 5f 55 25 21 33 31 32  |ved"):c%=_U%!312|
00008da0  3a 6f 25 3d a0 28 22 46  4e 22 2b 24 63 25 29 0d  |:o%=.("FN"+$c%).|
00008db0  09 ef 07 cd 3a e1 0d 09  f4 34 dd f2 73 68 65 6c  |....:....4..shel|
00008dc0  6c 5f 48 61 6e 64 6c 65  55 6e 6b 6e 6f 77 6e 4d  |l_HandleUnknownM|
00008dd0  65 73 73 61 67 65 32 28  5f 51 25 29 3a ea 58 24  |essage2(_Q%):.X$|
00008de0  3a c8 8e 5f 51 25 21 31  36 ca 0d 09 f9 43 c9 26  |:.._Q%!16....C.&|
00008df0  34 33 42 30 30 3a 58 24  3d 24 28 5f 51 25 2b 32  |43B00:X$=$(_Q%+2|
00008e00  30 29 3a e7 c0 58 24 2c  33 30 29 3d 22 45 76 6e  |0):..X$,30)="Evn|
00008e10  74 53 68 65 6c 6c 4c 69  62 3a 53 68 65 6c 6c 44  |tShellLib:ShellD|
00008e20  42 75 67 20 73 74 61 72  74 65 64 22 8c 0d 09 fc  |Bug started"....|
00008e30  12 e7 5f 55 25 21 26 36  34 80 31 3c 3c 34 8c 0d  |.._U%!&64.1<<4..|
00008e40  09 fe 72 5f 55 25 21 26  36 34 3d 28 5f 55 25 21  |..r_U%!&64=(_U%!|
00008e50  26 36 34 82 31 3c 3c 34  29 3a f2 73 68 65 6c 6c  |&64.1<<4):.shell|
00008e60  5f 42 72 6f 61 64 63 61  73 74 4d 65 73 73 61 67  |_BroadcastMessag|
00008e70  65 28 26 34 33 42 30 30  2c 22 53 68 65 6c 6c 44  |e(&43B00,"ShellD|
00008e80  42 75 67 3a 49 6e 69 74  20 44 65 62 75 67 20 6d  |Bug:Init Debug m|
00008e90  65 73 73 61 67 65 73 20  66 72 6f 6d 20 22 2b a4  |essages from "+.|
00008ea0  73 68 65 6c 6c 5f 47 65  74 41 70 70 4e 61 6d 65  |shell_GetAppName|
00008eb0  29 0d 0a 00 05 cd 0d 0a  01 2b cd 3a e7 c0 58 24  |)........+.:..X$|
00008ec0  2c 32 35 29 3d 22 45 76  6e 74 53 68 65 6c 6c 4c  |,25)="EvntShellL|
00008ed0  69 62 3a 54 72 61 63 65  49 6e 69 74 41 63 6b 22  |ib:TraceInitAck"|
00008ee0  8c 0d 0a 04 1a 5f 55 25  21 26 36 34 3d 28 5f 55  |....._U%!&64=(_U|
00008ef0  25 21 26 36 34 82 31 3c  3c 34 29 0d 0a 05 26 cd  |%!&64.1<<4)...&.|
00008f00  3a e7 c0 58 24 2c 32 30  29 3d 22 45 76 6e 74 53  |:..X$,20)="EvntS|
00008f10  68 65 6c 6c 4c 69 62 3a  54 72 61 63 65 4f 6e 22  |hellLib:TraceOn"|
00008f20  8c 0d 0a 07 12 f2 73 68  65 6c 6c 5f 54 72 61 63  |......shell_Trac|
00008f30  65 4f 6e 0d 0a 08 27 cd  3a e7 c0 58 24 2c 32 31  |eOn...'.:..X$,21|
00008f40  29 3d 22 45 76 6e 74 53  68 65 6c 6c 4c 69 62 3a  |)="EvntShellLib:|
00008f50  54 72 61 63 65 4f 66 66  22 8c 0d 0a 0a 13 f2 73  |TraceOff"......s|
00008f60  68 65 6c 6c 5f 54 72 61  63 65 4f 66 66 0d 0a 0b  |hell_TraceOff...|
00008f70  2e cd 3a e7 c0 58 24 2c  32 38 29 3d 22 45 76 6e  |..:..X$,28)="Evn|
00008f80  74 53 68 65 6c 6c 4c 69  62 3a 4c 69 73 74 43 6c  |tShellLib:ListCl|
00008f90  69 63 6b 53 65 6c 65 63  74 22 8c 0d 0a 0d 1a f2  |ickSelect"......|
00008fa0  73 68 65 6c 6c 5f 4c 69  73 74 43 6c 69 63 6b 53  |shell_ListClickS|
00008fb0  65 6c 65 63 74 0d 0a 0e  2e cd 3a e7 c0 58 24 2c  |elect.....:..X$,|
00008fc0  32 38 29 3d 22 45 76 6e  74 53 68 65 6c 6c 4c 69  |28)="EvntShellLi|
00008fd0  62 3a 4c 69 73 74 43 6c  69 63 6b 41 64 6a 75 73  |b:ListClickAdjus|
00008fe0  74 22 8c 0d 0a 10 1a f2  73 68 65 6c 6c 5f 4c 69  |t"......shell_Li|
00008ff0  73 74 43 6c 69 63 6b 41  64 6a 75 73 74 0d 0a 11  |stClickAdjust...|
00009000  2b cd 3a e7 c0 58 24 2c  32 35 29 3d 22 45 76 6e  |+.:..X$,25)="Evn|
00009010  74 53 68 65 6c 6c 4c 69  62 3a 4c 69 73 74 48 65  |tShellLib:ListHe|
00009020  6c 70 54 61 67 73 22 8c  0d 0a 13 17 f2 73 68 65  |lpTags"......she|
00009030  6c 6c 5f 4c 69 73 74 48  65 6c 70 54 61 67 73 0d  |ll_ListHelpTags.|
00009040  0a 14 05 cd 0d 0a 15 28  cb 3a f2 73 68 65 6c 6c  |.......(.:.shell|
00009050  5f 48 61 6e 64 6c 65 55  6e 6b 6e 6f 77 6e 4d 65  |_HandleUnknownMe|
00009060  73 73 61 67 65 28 5f 51  25 29 3a e1 0d 0a 1d 27  |ssage(_Q%):....'|
00009070  dd f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 55 6e  |..shell_HandleUn|
00009080  6b 6e 6f 77 6e 4d 65 73  73 61 67 65 28 5f 51 25  |knownMessage(_Q%|
00009090  29 3a e1 0d 0a 23 56 dd  f2 73 68 65 6c 6c 5f 41  |):...#V..shell_A|
000090a0  74 74 61 63 68 50 72 65  51 75 69 74 48 61 6e 64  |ttachPreQuitHand|
000090b0  6c 65 72 28 41 24 29 3a  ea 63 25 2c 6f 25 3a e7  |ler(A$):.c%,o%:.|
000090c0  5f 55 25 21 33 30 30 3e  30 8c f2 73 68 65 6c 6c  |_U%!300>0..shell|
000090d0  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
000090e0  28 5f 55 25 21 33 30 30  29 0d 0a 26 3c 5f 55 25  |(_U%!300)..&<_U%|
000090f0  21 33 30 30 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |!300=.shell_Heap|
00009100  42 6c 6f 63 6b 46 65 74  63 68 28 a9 41 24 2b 31  |BlockFetch(.A$+1|
00009110  29 3a 63 25 3d 5f 55 25  21 33 30 30 3a 24 63 25  |):c%=_U%!300:$c%|
00009120  3d 41 24 3a e1 0d 0a 2d  57 dd f2 73 68 65 6c 6c  |=A$:...-W..shell|
00009130  5f 41 74 74 61 63 68 53  68 75 74 64 6f 77 6e 48  |_AttachShutdownH|
00009140  61 6e 64 6c 65 72 28 41  24 29 3a ea 63 25 2c 6f  |andler(A$):.c%,o|
00009150  25 3a e7 5f 55 25 21 33  31 32 3e 30 8c f2 73 68  |%:._U%!312>0..sh|
00009160  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00009170  75 72 6e 28 5f 55 25 21  33 31 32 29 0d 0a 30 3c  |urn(_U%!312)..0<|
00009180  5f 55 25 21 33 31 32 3d  a4 73 68 65 6c 6c 5f 48  |_U%!312=.shell_H|
00009190  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 a9 41  |eapBlockFetch(.A|
000091a0  24 2b 31 29 3a 63 25 3d  5f 55 25 21 33 31 32 3a  |$+1):c%=_U%!312:|
000091b0  24 63 25 3d 41 24 3a e1  0d 0a 37 59 dd f2 73 68  |$c%=A$:...7Y..sh|
000091c0  65 6c 6c 5f 41 74 74 61  63 68 4d 6f 64 65 43 68  |ell_AttachModeCh|
000091d0  61 6e 67 65 48 61 6e 64  6c 65 72 28 41 24 29 3a  |angeHandler(A$):|
000091e0  ea 63 25 2c 6f 25 3a e7  5f 55 25 21 26 41 30 3e  |.c%,o%:._U%!&A0>|
000091f0  30 8c f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |0..shell_HeapBlo|
00009200  63 6b 52 65 74 75 72 6e  28 5f 55 25 21 26 41 30  |ckReturn(_U%!&A0|
00009210  29 0d 0a 3a 4a 5f 55 25  21 26 41 30 3d a4 73 68  |)..:J_U%!&A0=.sh|
00009220  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00009230  63 68 28 a9 41 24 2b 31  29 3a 63 25 3d 5f 55 25  |ch(.A$+1):c%=_U%|
00009240  21 26 41 30 3a 24 63 25  3d 41 24 3a 6f 25 3d a0  |!&A0:$c%=A$:o%=.|
00009250  28 22 46 4e 22 2b 41 24  29 3a e1 0d 0a 42 5c dd  |("FN"+A$):...B\.|
00009260  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 50 61 6c  |.shell_AttachPal|
00009270  65 74 74 65 43 68 61 6e  67 65 48 61 6e 64 6c 65  |etteChangeHandle|
00009280  72 28 41 24 29 3a ea 63  25 2c 6f 25 3a e7 5f 55  |r(A$):.c%,o%:._U|
00009290  25 21 26 41 34 3e 30 8c  f2 73 68 65 6c 6c 5f 48  |%!&A4>0..shell_H|
000092a0  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 5f  |eapBlockReturn(_|
000092b0  55 25 21 26 41 34 29 0d  0a 45 4a 5f 55 25 21 26  |U%!&A4)..EJ_U%!&|
000092c0  41 34 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |A4=.shell_HeapBl|
000092d0  6f 63 6b 46 65 74 63 68  28 a9 41 24 2b 31 29 3a  |ockFetch(.A$+1):|
000092e0  63 25 3d 5f 55 25 21 26  41 34 3a 24 63 25 3d 41  |c%=_U%!&A4:$c%=A|
000092f0  24 3a 6f 25 3d a0 28 22  46 4e 22 2b 41 24 29 3a  |$:o%=.("FN"+A$):|
00009300  e1 0d 0a 4d 5d dd f2 73  68 65 6c 6c 5f 41 74 74  |...M]..shell_Att|
00009310  61 63 68 54 61 73 6b 49  6e 69 74 69 61 6c 69 73  |achTaskInitialis|
00009320  65 48 61 6e 64 6c 65 72  28 41 24 29 3a ea 63 25  |eHandler(A$):.c%|
00009330  2c 6f 25 3a e7 5f 55 25  21 26 41 38 3e 30 8c f2  |,o%:._U%!&A8>0..|
00009340  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00009350  65 74 75 72 6e 28 5f 55  25 21 26 41 38 29 0d 0a  |eturn(_U%!&A8)..|
00009360  50 3c 5f 55 25 21 26 41  38 3d a4 73 68 65 6c 6c  |P<_U%!&A8=.shell|
00009370  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00009380  a9 41 24 2b 31 29 3a 63  25 3d 5f 55 25 21 26 41  |.A$+1):c%=_U%!&A|
00009390  38 3a 24 63 25 3d 41 24  3a e1 0d 0a 57 5c dd f2  |8:$c%=A$:...W\..|
000093a0  73 68 65 6c 6c 5f 41 74  74 61 63 68 54 61 73 6b  |shell_AttachTask|
000093b0  43 6c 6f 73 65 44 6f 77  6e 48 61 6e 64 6c 65 72  |CloseDownHandler|
000093c0  28 41 24 29 3a ea 63 25  2c 6f 25 3a e7 5f 55 25  |(A$):.c%,o%:._U%|
000093d0  21 26 41 43 3e 30 8c f2  73 68 65 6c 6c 5f 48 65  |!&AC>0..shell_He|
000093e0  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 5f 55  |apBlockReturn(_U|
000093f0  25 21 26 41 43 29 0d 0a  5a 3c 5f 55 25 21 26 41  |%!&AC)..Z<_U%!&A|
00009400  43 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |C=.shell_HeapBlo|
00009410  63 6b 46 65 74 63 68 28  a9 41 24 2b 31 29 3a 63  |ckFetch(.A$+1):c|
00009420  25 3d 5f 55 25 21 26 41  43 3a 24 63 25 3d 41 24  |%=_U%!&AC:$c%=A$|
00009430  3a e1 0d 0a 61 3c dd f2  73 68 65 6c 6c 5f 52 41  |:...a<..shell_RA|
00009440  4d 46 65 74 63 68 28 5f  51 25 29 3a ea 43 47 25  |MFetch(_Q%):.CG%|
00009450  2c 47 45 25 2c 45 45 25  3a 45 45 25 3d a3 3a e7  |,GE%,EE%:EE%=.:.|
00009460  5f 55 25 21 26 39 30 3e  26 38 30 30 30 8c 0d 0a  |_U%!&90>&8000...|
00009470  6c 61 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |la.shell_Tracef0|
00009480  28 22 52 41 4d 46 65 74  63 68 3a 52 41 4d 46 65  |("RAMFetch:RAMFe|
00009490  74 63 68 20 63 61 6c 6c  65 64 2e 2e 22 29 3a 5f  |tch called.."):_|
000094a0  51 25 21 26 43 3d 5f 51  25 21 38 3a 5f 51 25 21  |Q%!&C=_Q%!8:_Q%!|
000094b0  31 36 3d 37 3a 47 45 25  3d 5f 55 25 21 26 38 38  |16=7:GE%=_U%!&88|
000094c0  3a e7 5f 55 25 21 26 38  43 3d 26 46 46 39 8c 0d  |:._U%!&8C=&FF9..|
000094d0  0a 77 0e 5f 55 25 21 26  39 30 2b 3d 34 0d 0a 78  |.w._U%!&90+=4..x|
000094e0  1c cd 3a e7 28 47 45 25  2d 5f 55 25 21 26 38 30  |..:.(GE%-_U%!&80|
000094f0  29 3c 5f 51 25 21 32 34  8c 0d 0a 7b 1c 5f 51 25  |)<_Q%!24...{._Q%|
00009500  21 32 34 3d 47 45 25 2d  5f 55 25 21 26 38 30 3a  |!24=GE%-_U%!&80:|
00009510  45 45 25 3d b9 0d 0a 7d  2d cc f2 73 68 65 6c 6c  |EE%=...}-..shell|
00009520  5f 54 72 61 63 65 66 30  28 22 52 41 4d 46 65 74  |_Tracef0("RAMFet|
00009530  63 68 3a 53 65 6e 64 69  6e 67 20 62 6c 6f 63 6b  |ch:Sending block|
00009540  22 29 0d 0a 81 7d cd 3a  c8 99 26 34 30 30 46 31  |")...}.:..&400F1|
00009550  2c 5f 55 25 21 26 39 34  2c 5f 55 25 21 26 39 30  |,_U%!&94,_U%!&90|
00009560  2b 5f 55 25 21 26 38 30  2c 5f 51 25 21 34 2c 5f  |+_U%!&80,_Q%!4,_|
00009570  51 25 21 32 30 2c 5f 51  25 21 32 34 3a c8 99 26  |Q%!20,_Q%!24:..&|
00009580  34 30 30 45 37 2c 31 37  2c 5f 51 25 2c 5f 51 25  |400E7,17,_Q%,_Q%|
00009590  21 34 3a 5f 55 25 21 26  37 38 3d 5f 51 25 21 38  |!4:_U%!&78=_Q%!8|
000095a0  3a 5f 55 25 21 26 38 30  2b 3d 5f 51 25 21 32 34  |:_U%!&80+=_Q%!24|
000095b0  3a e7 45 45 25 8c 5f 55  25 21 26 38 30 3d 30 0d  |:.EE%._U%!&80=0.|
000095c0  0a 87 07 cd 3a e1 0d 0a  8c 3b dd f2 73 68 65 6c  |....:....;..shel|
000095d0  6c 5f 52 41 4d 54 72 61  6e 73 6d 69 74 28 5f 51  |l_RAMTransmit(_Q|
000095e0  25 29 3a ea 64 25 2c 61  25 2c 4e 41 24 2c 63 25  |%):.d%,a%,NA$,c%|
000095f0  3a e7 5f 51 25 21 26 43  3d 5f 55 25 21 26 37 30  |:._Q%!&C=_U%!&70|
00009600  8c 0d 0a 90 24 5f 55 25  21 26 38 30 2b 3d 5f 51  |....$_U%!&80+=_Q|
00009610  25 21 32 34 3a e7 5f 51  25 21 32 34 3c 5f 55 25  |%!24:._Q%!24<_U%|
00009620  21 26 38 34 8c 0d 0a 94  d6 f2 73 68 65 6c 6c 5f  |!&84......shell_|
00009630  54 72 61 63 65 66 30 28  22 52 41 4d 54 72 61 6e  |Tracef0("RAMTran|
00009640  73 6d 69 74 3a 4c 61 73  74 20 62 6c 6f 63 6b 20  |smit:Last block |
00009650  72 65 63 65 69 76 65 64  22 29 3a 64 25 3d a4 73  |received"):d%=.s|
00009660  68 65 6c 6c 5f 47 65 74  45 76 65 6e 74 4c 69 73  |hell_GetEventLis|
00009670  74 4f 66 66 73 65 74 28  5f 55 25 21 32 38 2c 5f  |tOffset(_U%!28,_|
00009680  55 25 21 33 32 2c 5f 55  25 2b 39 36 2c 31 36 2c  |U%!32,_U%+96,16,|
00009690  a3 29 3a 61 25 3d 5f 55  25 21 39 36 2b 64 25 3a  |.):a%=_U%!96+d%:|
000096a0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000096b0  52 41 4d 54 72 61 6e 73  6d 69 74 3a 5f 55 25 21  |RAMTransmit:_U%!|
000096c0  32 38 3d 22 2b c3 5f 55  25 21 32 38 29 3a f2 73  |28="+._U%!28):.s|
000096d0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 52 41  |hell_Tracef0("RA|
000096e0  4d 54 72 61 6e 73 6d 69  74 3a 5f 55 25 21 33 32  |MTransmit:_U%!32|
000096f0  3d 22 2b c3 5f 55 25 21  33 32 29 0d 0a 9b 8e f2  |="+._U%!32).....|
00009700  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 52  |shell_Tracef0("R|
00009710  41 4d 54 72 61 6e 73 6d  69 74 3a 6f 66 66 73 65  |AMTransmit:offse|
00009720  74 25 3d 22 2b c3 64 25  29 3a 63 25 3d 5f 55 25  |t%="+.d%):c%=_U%|
00009730  21 26 39 43 3a 4e 41 24  3d a4 73 68 65 6c 6c 5f  |!&9C:NA$=.shell_|
00009740  47 65 74 53 74 72 69 6e  67 28 63 25 2b 34 34 29  |GetString(c%+44)|
00009750  3a f2 73 68 65 6c 6c 5f  55 73 65 72 46 4e 4c 6f  |:.shell_UserFNLo|
00009760  61 64 46 69 6c 65 28 63  25 21 34 30 2c 5f 55 25  |adFile(c%!40,_U%|
00009770  21 26 39 38 2c 61 25 21  38 2c 4e 41 24 2c 5f 55  |!&98,a%!8,NA$,_U|
00009780  25 21 26 38 34 2c 61 25  29 0d 0a a2 43 cc f2 73  |%!&84,a%)...C..s|
00009790  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 52 41  |hell_Tracef0("RA|
000097a0  4d 54 72 61 6e 73 6d 69  74 3a 42 6c 6f 63 6b 20  |MTransmit:Block |
000097b0  72 65 63 65 69 76 65 64  22 29 3a e7 5f 55 25 21  |received"):._U%!|
000097c0  26 38 30 3e 5f 55 25 21  26 38 34 8c 0d 0a ab 72  |&80>_U%!&84....r|
000097d0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000097e0  52 41 4d 54 72 61 6e 73  6d 69 74 3a 49 6e 63 72  |RAMTransmit:Incr|
000097f0  65 61 73 69 6e 67 20 62  75 66 66 65 72 20 73 69  |easing buffer si|
00009800  7a 65 2e 2e 22 29 3a 5f  55 25 21 26 39 38 3d a4  |ze.."):_U%!&98=.|
00009810  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
00009820  78 74 65 6e 64 28 5f 55  25 21 26 39 38 2c 5f 55  |xtend(_U%!&98,_U|
00009830  25 21 26 38 30 2c 5f 55  25 21 26 38 34 29 0d 0a  |%!&80,_U%!&84)..|
00009840  ae 65 cd 3a 5f 51 25 21  26 43 3d 5f 51 25 21 38  |.e.:_Q%!&C=_Q%!8|
00009850  3a 5f 51 25 21 31 36 3d  36 3a 5f 51 25 21 32 30  |:_Q%!16=6:_Q%!20|
00009860  3d 5f 55 25 21 26 39 38  2b 5f 55 25 21 26 38 30  |=_U%!&98+_U%!&80|
00009870  3a 5f 51 25 21 32 34 3d  5f 55 25 21 26 38 34 3a  |:_Q%!24=_U%!&84:|
00009880  c8 99 26 34 30 30 45 37  2c 31 38 2c 5f 51 25 2c  |..&400E7,18,_Q%,|
00009890  5f 51 25 21 34 3a 5f 55  25 21 26 37 30 3d 5f 51  |_Q%!4:_U%!&70=_Q|
000098a0  25 21 38 0d 0a b5 05 cd  0d 0a b6 5c cc f2 73 68  |%!8........\..sh|
000098b0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
000098c0  75 72 6e 28 5f 55 25 21  26 39 38 29 3a 5f 55 25  |urn(_U%!&98):_U%|
000098d0  21 26 39 38 3d 30 3a f2  73 68 65 6c 6c 5f 4f 4b  |!&98=0:.shell_OK|
000098e0  28 a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4e  |(.shell_MessageN|
000098f0  6f 41 72 67 73 28 22 53  48 45 4c 4c 4d 53 47 31  |oArgs("SHELLMSG1|
00009900  35 22 29 29 0d 0a bb 07  cd 3a e1 0d 0a c0 94 dd  |5")).....:......|
00009910  a4 73 68 65 6c 6c 5f 4c  6f 61 64 46 69 6c 65 28  |.shell_LoadFile(|
00009920  4c 47 25 29 3a ea 71 24  2c 58 42 25 2c 6d 43 25  |LG%):.q$,XB%,mC%|
00009930  2c 49 42 25 3a 71 24 3d  a4 73 68 65 6c 6c 5f 47  |,IB%:q$=.shell_G|
00009940  65 74 53 74 72 69 6e 67  28 5f 51 25 2b 34 34 29  |etString(_Q%+44)|
00009950  3a 58 42 25 3d a4 73 68  65 6c 6c 5f 46 69 6c 65  |:XB%=.shell_File|
00009960  4c 65 6e 67 74 68 28 71  24 29 3a e7 58 42 25 3c  |Length(q$):.XB%<|
00009970  30 8c f2 73 68 65 6c 6c  5f 4f 4b 28 a4 73 68 65  |0..shell_OK(.she|
00009980  6c 6c 5f 4d 65 73 73 61  67 65 4e 6f 41 72 67 73  |ll_MessageNoArgs|
00009990  28 22 53 48 45 4c 4c 4d  53 47 31 36 22 29 29 0d  |("SHELLMSG16")).|
000099a0  0a c5 50 49 42 25 3d a4  73 68 65 6c 6c 5f 48 65  |..PIB%=.shell_He|
000099b0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 58 42 25  |apBlockFetch(XB%|
000099c0  29 3a c8 99 26 32 30 30  30 38 2c 31 36 2c 71 24  |):..&20008,16,q$|
000099d0  2c 49 42 25 2c 30 b8 3b  6d 43 25 3a e7 a4 73 68  |,IB%,0.;mC%:..sh|
000099e0  65 6c 6c 5f 56 46 6c 61  67 28 6d 43 25 29 8c 0d  |ell_VFlag(mC%)..|
000099f0  0a c8 4d f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |..M.shell_HeapBl|
00009a00  6f 63 6b 52 65 74 75 72  6e 28 49 42 25 29 3a f2  |ockReturn(IB%):.|
00009a10  73 68 65 6c 6c 5f 4f 4b  28 a4 73 68 65 6c 6c 5f  |shell_OK(.shell_|
00009a20  4d 65 73 73 61 67 65 4e  6f 41 72 67 73 28 22 53  |MessageNoArgs("S|
00009a30  48 45 4c 4c 4d 53 47 31  37 22 29 29 0d 0a ca 40  |HELLMSG17"))...@|
00009a40  cc f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |..shell_Tracef0(|
00009a50  22 4c 6f 61 64 46 69 6c  65 3a 46 69 6c 65 20 22  |"LoadFile:File "|
00009a60  2b 71 24 2b 22 20 6c 6f  61 64 65 64 20 6f 6b 20  |+q$+" loaded ok |
00009a70  61 74 20 26 22 2b c3 7e  49 42 25 29 0d 0a ce 0a  |at &"+.~IB%)....|
00009a80  cd 3a 3d 49 42 25 0d 0a  df 23 dd a4 73 68 65 6c  |.:=IB%...#..shel|
00009a90  6c 5f 56 46 6c 61 67 28  6d 43 25 29 3a 3d 28 28  |l_VFlag(mC%):=((|
00009aa0  6d 43 25 80 31 29 3d 31  29 0d 0a e5 67 dd a4 73  |mC%.1)=1)...g..s|
00009ab0  68 65 6c 6c 5f 43 68 65  63 6b 54 79 70 65 28 77  |hell_CheckType(w|
00009ac0  25 2c 67 42 25 2c 68 42  25 29 3a ea 4a 47 25 2c  |%,gB%,hB%):.JG%,|
00009ad0  67 25 2c 6a 25 2c 63 25  2c 5f 43 25 3a 67 25 3d  |g%,j%,c%,_C%:g%=|
00009ae0  30 3a 6a 25 3d 2d 31 3a  5f 43 25 3d a3 3a e7 5f  |0:j%=-1:_C%=.:._|
00009af0  55 25 21 26 36 34 80 31  3c 3c 31 8c 5f 55 25 21  |U%!&64.1<<1._U%!|
00009b00  26 36 34 3d 5f 55 25 21  26 36 34 82 31 3c 3c 31  |&64=_U%!&64.1<<1|
00009b10  0d 0a ec 25 c8 95 67 42  25 21 67 25 3c 3e 2d 31  |...%..gB%!g%<>-1|
00009b20  3a 63 25 3d 67 42 25 21  67 25 3a e7 63 25 80 31  |:c%=gB%!g%:.c%.1|
00009b30  3c 3c 33 31 8c 0d 0a ef  15 63 25 3d 63 25 82 31  |<<31.....c%=c%.1|
00009b40  3c 3c 33 31 3a 5f 43 25  3d b9 0d 0a f1 0a cc 5f  |<<31:_C%=......_|
00009b50  43 25 3d a3 0d 0a f3 0d  cd 3a e7 63 25 3d 77 25  |C%=......:.c%=w%|
00009b60  8c 0d 0a f5 0f 6a 25 3d  67 25 3a e7 5f 43 25 8c  |.....j%=g%:._C%.|
00009b70  0d 0a f7 4c 5f 55 25 21  26 36 34 3d 5f 55 25 21  |...L_U%!&64=_U%!|
00009b80  26 36 34 84 31 3c 3c 31  3a f2 73 68 65 6c 6c 5f  |&64.1<<1:.shell_|
00009b90  54 72 61 63 65 66 30 28  22 43 68 65 63 6b 54 79  |Tracef0("CheckTy|
00009ba0  70 65 3a 54 6f 70 20 42  69 74 20 4c 6f 61 64 20  |pe:Top Bit Load |
00009bb0  64 65 74 65 63 74 65 64  2e 2e 22 29 0d 0a fb 05  |detected..")....|
00009bc0  cd 0d 0a fc 23 cd 3a 67  25 2b 3d 34 3a ce 3a e7  |....#.:g%+=4:.:.|
00009bd0  68 42 25 80 28 77 25 3e  3d 34 30 39 36 29 8c 6a  |hB%.(w%>=4096).j|
00009be0  25 3d 2d 31 0d 0b 01 0b  e7 6a 25 3e 2d 31 8c 0d  |%=-1.....j%>-1..|
00009bf0  0b 02 36 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |..6.shell_Tracef|
00009c00  30 28 22 43 68 65 63 6b  54 79 70 65 3a 46 69 6c  |0("CheckType:Fil|
00009c10  65 20 74 79 70 65 20 4f  4b 20 22 2b c3 7e 67 42  |e type OK "+.~gB|
00009c20  25 21 6a 25 29 0d 0b 03  37 cc f2 73 68 65 6c 6c  |%!j%)...7..shell|
00009c30  5f 54 72 61 63 65 66 30  28 22 43 68 65 63 6b 54  |_Tracef0("CheckT|
00009c40  79 70 65 3a 46 69 6c 65  20 74 79 70 65 20 4e 4f  |ype:File type NO|
00009c50  54 20 6f 6b 20 22 2b c3  7e 77 25 29 0d 0b 05 13  |T ok "+.~w%)....|
00009c60  cd 3a e7 6a 25 3c 3e 2d  31 8c 3d b9 8b 3d a3 0d  |.:.j%<>-1.=..=..|
00009c70  0b 0c b6 dd f2 73 68 65  6c 6c 5f 45 78 69 74 3a  |.....shell_Exit:|
00009c80  ea 6d 42 25 3a 6d 42 25  3d 5f 55 25 21 36 38 3a  |.mB%:mB%=_U%!68:|
00009c90  c8 99 26 36 31 35 30 34  2c 6d 42 25 3a c8 99 26  |..&61504,mB%:..&|
00009ca0  32 30 30 31 45 2c 37 2c  2c 6d 42 25 3a f2 73 68  |2001E,7,,mB%:.sh|
00009cb0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 45 78 69  |ell_Tracef0("Exi|
00009cc0  74 3a 41 70 70 6c 69 63  61 74 69 6f 6e 20 63 6c  |t:Application cl|
00009cd0  6f 73 69 6e 67 20 64 6f  77 6e 22 29 3a f2 73 68  |osing down"):.sh|
00009ce0  65 6c 6c 5f 54 72 61 63  65 45 78 69 74 3a c8 99  |ell_TraceExit:..|
00009cf0  26 36 30 36 43 32 3a c8  99 26 36 30 30 44 30 2c  |&606C2:..&600D0,|
00009d00  2c 2d 31 3a f2 73 68 65  6c 6c 5f 57 69 6d 70 43  |,-1:.shell_WimpC|
00009d10  6c 6f 73 65 44 6f 77 6e  5f 49 28 5f 55 25 21 26  |loseDown_I(_U%!&|
00009d20  39 34 29 3a e1 0d 0b 1d  5f dd f2 73 68 65 6c 6c  |94):...._..shell|
00009d30  5f 44 61 74 61 4c 6f 61  64 28 5f 51 25 2c 68 42  |_DataLoad(_Q%,hB|
00009d40  25 29 3a ea 4b 47 25 2c  64 25 2c 61 25 2c 5f 74  |%):.KG%,d%,a%,_t|
00009d50  65 6d 70 25 2c 67 42 25  2c 77 25 2c 66 24 3a e7  |emp%,gB%,w%,f$:.|
00009d60  a4 73 68 65 6c 6c 5f 44  61 74 61 4f 70 65 6e 4f  |.shell_DataOpenO|
00009d70  4b 54 6f 4c 6f 61 64 28  68 42 25 2c 5f 51 25 21  |KToLoad(hB%,_Q%!|
00009d80  34 30 29 8c 0d 0b 20 64  77 25 3d 5f 51 25 21 34  |40)... dw%=_Q%!4|
00009d90  30 3a 66 24 3d a4 73 68  65 6c 6c 5f 47 65 74 53  |0:f$=.shell_GetS|
00009da0  74 72 69 6e 67 28 5f 51  25 2b 34 34 29 3a f2 73  |tring(_Q%+44):.s|
00009db0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 44 61  |hell_Tracef0("Da|
00009dc0  74 61 4c 6f 61 64 3a 44  61 74 61 4c 6f 61 64 20  |taLoad:DataLoad |
00009dd0  6d 65 73 73 61 67 65 20  72 65 63 65 69 76 65 64  |message received|
00009de0  22 29 3a e7 68 42 25 8c  0d 0b 2b 0f e7 5f 55 25  |"):.hB%...+.._U%|
00009df0  21 39 36 3c 3e 30 8c 0d  0b 2c 08 64 25 3d 30 0d  |!96<>0...,.d%=0.|
00009e00  0b 2d 0a cc 64 25 3d 2d  31 0d 0b 2f 05 cd 0d 0b  |.-..d%=-1../....|
00009e10  30 44 cc 64 25 3d a4 73  68 65 6c 6c 5f 47 65 74  |0D.d%=.shell_Get|
00009e20  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 28  |EventListOffset(|
00009e30  5f 51 25 21 32 30 2c 5f  51 25 21 32 34 2c 5f 55  |_Q%!20,_Q%!24,_U|
00009e40  25 2b 39 36 2c 31 36 2c  a3 29 3a e7 64 25 3d 2d  |%+96,16,.):.d%=-|
00009e50  31 8c 0d 0b 35 37 64 25  3d a4 73 68 65 6c 6c 5f  |1...57d%=.shell_|
00009e60  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
00009e70  65 74 28 5f 51 25 21 32  30 2c 2d 31 2c 5f 55 25  |et(_Q%!20,-1,_U%|
00009e80  2b 39 36 2c 31 36 2c a3  29 0d 0b 36 05 cd 0d 0b  |+96,16,.)..6....|
00009e90  37 0d cd 3a e7 64 25 3e  2d 31 8c 0d 0b 3a 34 61  |7..:.d%>-1...:4a|
00009ea0  25 3d 5f 55 25 21 39 36  2b 64 25 3a e7 a4 73 68  |%=_U%!96+d%:..sh|
00009eb0  65 6c 6c 5f 43 68 65 63  6b 54 79 70 65 28 5f 51  |ell_CheckType(_Q|
00009ec0  25 21 34 30 2c 61 25 21  38 2c 68 42 25 29 8c 0d  |%!40,a%!8,hB%)..|
00009ed0  0b 3e 89 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |.>..shell_Tracef|
00009ee0  30 28 22 44 61 74 61 4c  6f 61 64 3a 46 69 6c 65  |0("DataLoad:File|
00009ef0  20 74 79 70 65 20 72 65  63 6f 67 6e 69 73 65 64  | type recognised|
00009f00  20 28 26 22 2b c3 7e 5f  51 25 21 34 30 2b 22 29  | (&"+.~_Q%!40+")|
00009f10  22 29 3a 55 46 25 3d 5f  51 25 21 26 43 3a 5f 51  |"):UF%=_Q%!&C:_Q|
00009f20  25 21 26 43 3d 5f 51 25  21 38 3a 5f 51 25 21 31  |%!&C=_Q%!8:_Q%!1|
00009f30  36 3d 34 3a c8 99 26 34  30 30 45 37 2c 31 38 2c  |6=4:..&400E7,18,|
00009f40  5f 51 25 2c 5f 51 25 21  34 3a e7 5f 55 25 21 26  |_Q%,_Q%!4:._U%!&|
00009f50  36 34 80 31 3c 3c 31 8c  0d 0b 45 1f 49 42 25 3d  |64.1<<1...E.IB%=|
00009f60  2d 31 3a 5f 55 25 21 26  36 34 3d 5f 55 25 21 26  |-1:_U%!&64=_U%!&|
00009f70  36 34 82 31 3c 3c 31 0d  0b 47 25 cc 49 42 25 3d  |64.1<<1..G%.IB%=|
00009f80  a4 73 68 65 6c 6c 5f 4c  6f 61 64 46 69 6c 65 28  |.shell_LoadFile(|
00009f90  55 46 25 3d 5f 55 25 21  26 36 43 29 0d 0b 49 42  |UF%=_U%!&6C)..IB|
00009fa0  cd 3a f2 73 68 65 6c 6c  5f 55 73 65 72 46 4e 4c  |.:.shell_UserFNL|
00009fb0  6f 61 64 46 69 6c 65 28  77 25 2c 49 42 25 2c 61  |oadFile(w%,IB%,a|
00009fc0  25 21 38 2c 66 24 2c 5f  51 25 21 33 36 2c 61 25  |%!8,f$,_Q%!36,a%|
00009fd0  29 3a e7 5f 55 25 21 26  39 43 3c 3e 30 8c 0d 0b  |):._U%!&9C<>0...|
00009fe0  4d 2d f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |M-.shell_HeapBlo|
00009ff0  63 6b 52 65 74 75 72 6e  28 5f 55 25 21 26 39 43  |ckReturn(_U%!&9C|
0000a000  29 3a 5f 55 25 21 26 39  43 3d 30 0d 0b 4f 05 cd  |):_U%!&9C=0..O..|
0000a010  0d 0b 50 48 cc f2 73 68  65 6c 6c 5f 54 72 61 63  |..PH..shell_Trac|
0000a020  65 66 30 28 22 44 61 74  61 4c 6f 61 64 3a 46 69  |ef0("DataLoad:Fi|
0000a030  6c 65 20 74 79 70 65 20  4e 4f 54 20 72 65 63 6f  |le type NOT reco|
0000a040  67 6e 69 73 65 64 20 28  26 22 2b c3 7e 5f 51 25  |gnised (&"+.~_Q%|
0000a050  21 34 30 2b 22 29 22 29  0d 0b 54 05 cd 0d 0b 55  |!40+")")..T....U|
0000a060  05 cd 0d 0b 56 07 cd 3a  e1 0d 0b 5c 3b dd a4 73  |....V..:...\;..s|
0000a070  68 65 6c 6c 5f 44 61 74  61 4f 70 65 6e 4f 4b 54  |hell_DataOpenOKT|
0000a080  6f 4c 6f 61 64 28 68 42  25 2c 77 25 29 3a ea 5f  |oLoad(hB%,w%):._|
0000a090  25 2c 75 44 25 2c 4b 41  24 2c 73 24 3a e7 68 42  |%,uD%,KA$,s$:.hB|
0000a0a0  25 3d a3 8c 0d 0b 64 59  5f 25 3d b9 3a f2 73 68  |%=....dY_%=.:.sh|
0000a0b0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 44 61 74  |ell_Tracef0("Dat|
0000a0c0  61 4f 70 65 6e 4f 4b 54  6f 4c 6f 61 64 3a 4d 65  |aOpenOKToLoad:Me|
0000a0d0  73 73 61 67 65 20 72 65  61 73 6f 6e 20 63 6f 64  |ssage reason cod|
0000a0e0  65 20 77 61 73 20 33 2c  20 6e 6f 72 6d 61 6c 20  |e was 3, normal |
0000a0f0  64 72 61 67 20 6c 6f 61  64 2e 2e 22 29 0d 0b 66  |drag load..")..f|
0000a100  e5 cc f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |...shell_Tracef0|
0000a110  28 22 44 61 74 61 4f 70  65 6e 4f 4b 54 6f 4c 6f  |("DataOpenOKToLo|
0000a120  61 64 3a 4d 65 73 73 61  67 65 20 72 65 61 73 6f  |ad:Message reaso|
0000a130  6e 20 63 6f 64 65 20 77  61 73 20 35 2c 20 64 6f  |n code was 5, do|
0000a140  75 62 6c 65 20 63 6c 69  63 6b 20 6c 6f 61 64 2e  |uble click load.|
0000a150  2e 22 29 3a 75 44 25 3d  a4 73 68 65 6c 6c 5f 48  |."):uD%=.shell_H|
0000a160  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 35  |eapBlockFetch(25|
0000a170  36 29 3a 4b 41 24 3d a4  73 68 65 6c 6c 5f 4f 53  |6):KA$=.shell_OS|
0000a180  56 61 72 47 65 74 56 61  6c 28 75 44 25 2c 32 35  |VarGetVal(uD%,25|
0000a190  36 2c 22 41 6c 69 61 73  24 40 52 75 6e 54 79 70  |6,"Alias$@RunTyp|
0000a1a0  65 5f 22 2b c3 7e 77 25  2c 31 29 3a f2 73 68 65  |e_"+.~w%,1):.she|
0000a1b0  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
0000a1c0  4f 70 65 6e 4f 4b 54 6f  4c 6f 61 64 3a 41 6c 69  |OpenOKToLoad:Ali|
0000a1d0  61 73 24 40 52 75 6e 54  79 70 65 3d 22 2b 4b 41  |as$@RunType="+KA|
0000a1e0  24 29 0d 0b 6d 92 f2 73  68 65 6c 6c 5f 48 65 61  |$)..m..shell_Hea|
0000a1f0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 75 44 25  |pBlockReturn(uD%|
0000a200  29 3a 73 24 3d a4 73 68  65 6c 6c 5f 42 72 61 6e  |):s$=.shell_Bran|
0000a210  63 68 28 4b 41 24 29 3a  f2 73 68 65 6c 6c 5f 54  |ch(KA$):.shell_T|
0000a220  72 61 63 65 66 30 28 22  44 61 74 61 4f 70 65 6e  |racef0("DataOpen|
0000a230  4f 4b 54 6f 4c 6f 61 64  3a 64 62 75 67 20 22 2b  |OKToLoad:dbug "+|
0000a240  73 24 29 3a e7 a4 73 68  65 6c 6c 5f 4c 65 61 66  |s$):..shell_Leaf|
0000a250  28 73 24 29 3d 22 21 22  2b a4 73 68 65 6c 6c 5f  |(s$)="!"+.shell_|
0000a260  47 65 74 41 70 70 4e 61  6d 65 8c 5f 25 3d b9 8b  |GetAppName._%=..|
0000a270  5f 25 3d a3 0d 0b 73 09  cd 3a 3d 5f 25 0d 0b 79  |_%=...s..:=_%..y|
0000a280  85 dd f2 73 68 65 6c 6c  5f 55 73 65 72 46 4e 4c  |...shell_UserFNL|
0000a290  6f 61 64 46 69 6c 65 28  77 25 2c 49 42 25 2c 67  |oadFile(w%,IB%,g|
0000a2a0  42 25 2c 5f 66 69 6c 65  6e 61 6d 65 24 2c 5f 66  |B%,_filename$,_f|
0000a2b0  69 6c 65 5f 73 69 7a 65  25 2c 61 25 29 3a ea 67  |ile_size%,a%):.g|
0000a2c0  25 2c 6a 25 2c 63 25 2c  6f 25 3a 67 25 3d 30 3a  |%,j%,c%,o%:g%=0:|
0000a2d0  6a 25 3d 2d 31 3a c8 95  67 42 25 21 67 25 3c 3e  |j%=-1:..gB%!g%<>|
0000a2e0  2d 31 3a 63 25 3d 67 42  25 21 67 25 3a e7 63 25  |-1:c%=gB%!g%:.c%|
0000a2f0  80 31 3c 3c 33 31 8c 63  25 3d 63 25 82 31 3c 3c  |.1<<31.c%=c%.1<<|
0000a300  33 31 0d 0b 80 10 e7 63  25 3d 77 25 8c 6a 25 3d  |31.....c%=w%.j%=|
0000a310  67 25 0d 0b 81 5b 67 25  2b 3d 34 3a ce 3a 63 25  |g%...[g%+=4:.:c%|
0000a320  3d 61 25 21 26 43 3a 6f  25 3d a0 28 22 46 4e 22  |=a%!&C:o%=.("FN"|
0000a330  2b 24 28 63 25 21 6a 25  29 2b 22 28 22 2b c3 49  |+$(c%!j%)+"("+.I|
0000a340  42 25 2b 22 2c 22 2b c3  77 25 2b 22 2c 5f 66 69  |B%+","+.w%+",_fi|
0000a350  6c 65 6e 61 6d 65 24 2c  22 2b c3 5f 66 69 6c 65  |lename$,"+._file|
0000a360  5f 73 69 7a 65 25 2b 22  29 22 29 3a e1 0d 0b 8a  |_size%+")"):....|
0000a370  6c dd f2 73 68 65 6c 6c  5f 44 61 74 61 53 61 76  |l..shell_DataSav|
0000a380  65 28 5f 51 25 29 3a ea  63 25 2c 64 25 2c 61 25  |e(_Q%):.c%,d%,a%|
0000a390  2c 73 25 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |,s%:.shell_Trace|
0000a3a0  66 30 28 22 44 61 74 61  53 61 76 65 3a 44 61 74  |f0("DataSave:Dat|
0000a3b0  61 53 61 76 65 20 6d 65  73 73 61 67 65 20 72 65  |aSave message re|
0000a3c0  63 65 69 76 65 64 22 29  3a e7 5f 51 25 21 34 3c  |ceived"):._Q%!4<|
0000a3d0  3e 5f 55 25 21 26 39 34  8c 0d 0b 95 43 64 25 3d  |>_U%!&94....Cd%=|
0000a3e0  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
0000a3f0  69 73 74 4f 66 66 73 65  74 28 5f 51 25 21 32 30  |istOffset(_Q%!20|
0000a400  2c 5f 51 25 21 32 34 2c  5f 55 25 2b 39 36 2c 31  |,_Q%!24,_U%+96,1|
0000a410  36 2c a3 29 3a e7 64 25  3e 2d 31 8c 0d 0b 97 32  |6,.):.d%>-1....2|
0000a420  61 25 3d 5f 55 25 21 39  36 2b 64 25 3a e7 a4 73  |a%=_U%!96+d%:..s|
0000a430  68 65 6c 6c 5f 43 68 65  63 6b 54 79 70 65 28 5f  |hell_CheckType(_|
0000a440  51 25 21 34 30 2c 61 25  21 38 2c a3 29 8c 0d 0b  |Q%!40,a%!8,.)...|
0000a450  9a 60 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |.`.shell_Tracef0|
0000a460  28 22 44 61 74 61 53 61  76 65 3a 46 69 6c 65 74  |("DataSave:Filet|
0000a470  79 70 65 20 72 65 63 6f  67 6e 69 7a 65 64 20 28  |ype recognized (|
0000a480  26 22 2b c3 7e 5f 51 25  21 34 30 2b 22 29 22 29  |&"+.~_Q%!40+")")|
0000a490  3a e7 a4 73 68 65 6c 6c  5f 54 6f 70 42 69 74 4c  |:..shell_TopBitL|
0000a4a0  6f 61 64 49 6e 50 72 6f  67 72 65 73 73 8c 0d 0b  |oadInProgress...|
0000a4b0  a1 d3 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |...shell_Tracef0|
0000a4c0  28 22 44 61 74 61 53 61  76 65 3a 27 6e 6f 20 6c  |("DataSave:'no l|
0000a4d0  6f 61 64 27 20 66 6c 61  67 20 73 65 74 22 29 3a  |oad' flag set"):|
0000a4e0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000a4f0  44 61 74 61 53 61 76 65  3a 53 65 6e 64 69 6e 67  |DataSave:Sending|
0000a500  20 4d 65 73 73 61 67 65  5f 44 61 74 61 53 61 76  | Message_DataSav|
0000a510  65 41 63 6b 22 29 3a 5f  51 25 21 30 3d 32 35 36  |eAck"):_Q%!0=256|
0000a520  3a 5f 51 25 21 26 43 3d  5f 51 25 21 38 3a 5f 51  |:_Q%!&C=_Q%!8:_Q|
0000a530  25 21 33 36 3d 2d 31 3a  5f 51 25 21 31 36 3d 32  |%!36=-1:_Q%!16=2|
0000a540  3a 24 28 5f 51 25 2b 34  34 29 3d a4 73 68 65 6c  |:$(_Q%+44)=.shel|
0000a550  6c 5f 47 65 74 41 70 70  44 69 72 2b 22 2e 53 63  |l_GetAppDir+".Sc|
0000a560  72 61 70 46 69 6c 65 22  2b bd 30 3a c8 99 26 34  |rapFile"+.0:..&4|
0000a570  30 30 45 37 2c 31 38 2c  5f 51 25 2c 5f 51 25 21  |00E7,18,_Q%,_Q%!|
0000a580  34 0d 0b a8 f1 cc f2 73  68 65 6c 6c 5f 48 65 61  |4......shell_Hea|
0000a590  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
0000a5a0  21 26 39 43 29 3a 5f 55  25 21 26 39 43 3d a4 73  |!&9C):_U%!&9C=.s|
0000a5b0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
0000a5c0  74 63 68 28 28 5f 51 25  21 30 29 2b 38 29 3a 63  |tch((_Q%!0)+8):c|
0000a5d0  25 3d 5f 55 25 21 26 39  43 3a e3 73 25 3d 30 b8  |%=_U%!&9C:.s%=0.|
0000a5e0  5f 51 25 21 30 88 34 3a  63 25 21 73 25 3d 5f 51  |_Q%!0.4:c%!s%=_Q|
0000a5f0  25 21 73 25 3a ed 73 25  3a 5f 55 25 21 32 38 3d  |%!s%:.s%:_U%!28=|
0000a600  5f 51 25 21 32 30 3a 5f  55 25 21 33 32 3d 5f 51  |_Q%!20:_U%!32=_Q|
0000a610  25 21 32 34 3a 5f 55 25  21 26 38 30 3d 30 3a 5f  |%!24:_U%!&80=0:_|
0000a620  55 25 21 26 38 34 3d 5f  51 25 21 33 36 3a 5f 55  |U%!&84=_Q%!36:_U|
0000a630  25 21 26 39 38 3d a4 73  68 65 6c 6c 5f 48 65 61  |%!&98=.shell_Hea|
0000a640  70 42 6c 6f 63 6b 46 65  74 63 68 28 5f 51 25 21  |pBlockFetch(_Q%!|
0000a650  33 36 29 3a 5f 51 25 21  30 3d 32 38 3a 5f 51 25  |36):_Q%!0=28:_Q%|
0000a660  21 26 43 3d 5f 51 25 21  38 3a 5f 51 25 21 31 36  |!&C=_Q%!8:_Q%!16|
0000a670  3d 36 0d 0b bd 81 5f 51  25 21 32 30 3d 5f 55 25  |=6...._Q%!20=_U%|
0000a680  21 26 39 38 2b 5f 55 25  21 26 38 30 3a 5f 51 25  |!&98+_U%!&80:_Q%|
0000a690  21 32 34 3d 5f 55 25 21  26 38 34 3a c8 99 26 34  |!24=_U%!&84:..&4|
0000a6a0  30 30 45 37 2c 31 38 2c  5f 51 25 2c 5f 51 25 21  |00E7,18,_Q%,_Q%!|
0000a6b0  34 3a 5f 55 25 21 26 37  30 3d 5f 51 25 21 38 3a  |4:_U%!&70=_Q%!8:|
0000a6c0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000a6d0  44 61 74 61 53 61 76 65  3a 53 65 6e 64 69 6e 67  |DataSave:Sending|
0000a6e0  20 4d 65 73 73 61 67 65  5f 52 41 4d 46 65 74 63  | Message_RAMFetc|
0000a6f0  68 22 29 0d 0b c4 05 cd  0d 0b c5 37 cc f2 73 68  |h")........7..sh|
0000a700  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 44 61 74  |ell_Tracef0("Dat|
0000a710  61 53 61 76 65 3a 46 69  6c 65 74 79 70 65 20 4e  |aSave:Filetype N|
0000a720  4f 54 20 72 65 63 6f 67  6e 69 7a 65 64 22 29 0d  |OT recognized").|
0000a730  0b c9 05 cd 0d 0b ca 05  cd 0d 0b cb 07 cd 3a e1  |..............:.|
0000a740  0d 0b d7 34 dd a4 73 68  65 6c 6c 5f 54 6f 70 42  |...4..shell_TopB|
0000a750  69 74 4c 6f 61 64 49 6e  50 72 6f 67 72 65 73 73  |itLoadInProgress|
0000a760  3a e7 5f 55 25 21 26 36  34 80 31 3c 3c 31 8c 3d  |:._U%!&64.1<<1.=|
0000a770  b9 8b 3d a3 0d 0b dd 9f  dd f2 73 68 65 6c 6c 5f  |..=.......shell_|
0000a780  53 65 6e 64 44 61 74 61  53 61 76 65 28 62 25 2c  |SendDataSave(b%,|
0000a790  66 25 29 3a ea 61 25 2c  45 41 25 2c 6a 42 25 2c  |f%):.a%,EA%,jB%,|
0000a7a0  64 25 2c 58 42 25 2c 6f  25 3a 6a 42 25 3d a4 73  |d%,XB%,o%:jB%=.s|
0000a7b0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
0000a7c0  74 63 68 28 33 30 29 3a  c8 99 26 34 30 30 43 46  |tch(30):..&400CF|
0000a7d0  2c 2c 6a 42 25 3a 64 25  3d a4 73 68 65 6c 6c 5f  |,,jB%:d%=.shell_|
0000a7e0  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
0000a7f0  65 74 28 62 25 2c 66 25  2c 5f 55 25 2b 37 32 2c  |et(b%,f%,_U%+72,|
0000a800  32 34 2c a3 29 3a e7 64  25 3d 2d 31 84 64 25 3d  |24,.):.d%=-1.d%=|
0000a810  2d 32 8c 0d 0b e5 64 6f  25 3d a4 73 68 65 6c 6c  |-2....do%=.shell|
0000a820  5f 4d 65 73 73 61 67 65  57 69 6e 64 6f 77 28 a4  |_MessageWindow(.|
0000a830  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4e 6f 41  |shell_MessageNoA|
0000a840  72 67 73 28 22 53 48 45  4c 4c 4d 53 47 31 33 22  |rgs("SHELLMSG13"|
0000a850  29 2c 30 2c 22 22 2c a4  73 68 65 6c 6c 5f 4d 65  |),0,"",.shell_Me|
0000a860  73 73 61 67 65 4e 6f 41  72 67 73 28 22 77 61 72  |ssageNoArgs("war|
0000a870  6e 69 6e 67 22 29 29 0d  0b e6 20 cc 61 25 3d 28  |ning"))... .a%=(|
0000a880  5f 55 25 21 37 32 29 2b  64 25 3a e7 61 25 21 38  |_U%!72)+d%:.a%!8|
0000a890  3e 26 38 30 30 30 8c 0d  0b e9 24 58 42 25 3d a4  |>&8000....$XB%=.|
0000a8a0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 49  |shell_HeapBlockI|
0000a8b0  6e 66 6f 28 61 25 21 38  29 2d 34 0d 0b ea 0d cc  |nfo(a%!8)-4.....|
0000a8c0  58 42 25 3d 61 25 21 38  0d 0b ec f4 cd 3a 45 41  |XB%=a%!8.....:EA|
0000a8d0  25 3d 5f 55 25 21 37 36  3a 45 41 25 21 30 3d 32  |%=_U%!76:EA%!0=2|
0000a8e0  35 36 3a 45 41 25 21 26  43 3d 30 3a 45 41 25 21  |56:EA%!&C=0:EA%!|
0000a8f0  31 36 3d 31 3a 45 41 25  21 32 30 3d 6a 42 25 21  |16=1:EA%!20=jB%!|
0000a900  26 43 3a 45 41 25 21 32  34 3d 6a 42 25 21 31 36  |&C:EA%!24=jB%!16|
0000a910  3a 45 41 25 21 32 38 3d  6a 42 25 21 30 3a 45 41  |:EA%!28=jB%!0:EA|
0000a920  25 21 33 32 3d 6a 42 25  21 34 3a 45 41 25 21 33  |%!32=jB%!4:EA%!3|
0000a930  36 3d 58 42 25 3a 45 41  25 21 34 30 3d 61 25 21  |6=XB%:EA%!40=a%!|
0000a940  26 43 3a 24 28 45 41 25  2b 34 34 29 3d a4 73 68  |&C:$(EA%+44)=.sh|
0000a950  65 6c 6c 5f 4c 65 61 66  28 a4 73 68 65 6c 6c 5f  |ell_Leaf(.shell_|
0000a960  49 63 6f 6e 47 65 74 44  61 74 61 28 62 25 2c 61  |IconGetData(b%,a|
0000a970  25 21 31 36 29 29 3a c8  99 26 34 30 30 45 37 2c  |%!16)):..&400E7,|
0000a980  31 38 2c 45 41 25 2c 45  41 25 21 32 30 2c 45 41  |18,EA%,EA%!20,EA|
0000a990  25 21 32 34 3a 5f 55 25  21 26 37 38 3d 5f 51 25  |%!24:_U%!&78=_Q%|
0000a9a0  21 38 3a 5f 55 25 21 26  38 38 3d 58 42 25 3a 5f  |!8:_U%!&88=XB%:_|
0000a9b0  55 25 21 26 38 43 3d 61  25 21 26 43 0d 0b fc 3b  |U%!&8C=a%!&C...;|
0000a9c0  5f 55 25 21 26 39 30 3d  61 25 21 38 3a 5f 55 25  |_U%!&90=a%!8:_U%|
0000a9d0  21 26 39 43 3d 61 25 21  34 3a 5f 55 25 21 26 43  |!&9C=a%!4:_U%!&C|
0000a9e0  38 3d 45 41 25 21 32 30  3a 5f 55 25 21 26 43 43  |8=EA%!20:_U%!&CC|
0000a9f0  3d 45 41 25 21 32 34 0d  0c 00 23 cd 3a f2 73 68  |=EA%!24...#.:.sh|
0000aa00  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
0000aa10  75 72 6e 28 6a 42 25 29  3a e1 0d 0c 07 fe dd f2  |urn(jB%):.......|
0000aa20  73 68 65 6c 6c 5f 44 61  74 61 53 61 76 65 41 63  |shell_DataSaveAc|
0000aa30  6b 28 5f 51 25 29 3a ea  5f 66 75 6c 6c 6e 61 6d  |k(_Q%):._fullnam|
0000aa40  65 24 2c 48 41 25 2c 6c  41 25 2c 61 25 2c 63 25  |e$,HA%,lA%,a%,c%|
0000aa50  2c 6f 25 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |,o%:.shell_Trace|
0000aa60  66 30 28 22 44 61 74 61  53 61 76 65 41 63 6b 3a  |f0("DataSaveAck:|
0000aa70  44 61 74 61 53 61 76 65  41 63 6b 20 6d 65 73 73  |DataSaveAck mess|
0000aa80  61 67 65 20 72 65 63 65  69 76 65 64 22 29 3a 48  |age received"):H|
0000aa90  41 25 3d 30 3a 6c 41 25  3d 5f 51 25 3f 28 34 34  |A%=0:lA%=_Q%?(44|
0000aaa0  2b 48 41 25 29 3a c8 95  6c 41 25 3c 3e 30 3a 5f  |+HA%):..lA%<>0:_|
0000aab0  66 75 6c 6c 6e 61 6d 65  24 2b 3d bd 28 6c 41 25  |fullname$+=.(lA%|
0000aac0  29 3a 48 41 25 2b 3d 31  3a 6c 41 25 3d 5f 51 25  |):HA%+=1:lA%=_Q%|
0000aad0  3f 28 34 34 2b 48 41 25  29 3a ce 3a f2 73 68 65  |?(44+HA%):.:.she|
0000aae0  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
0000aaf0  53 61 76 65 41 63 6b 3a  46 75 6c 6c 20 73 61 76  |SaveAck:Full sav|
0000ab00  65 20 6e 61 6d 65 20 69  73 3a 20 22 2b 5f 66 75  |e name is: "+_fu|
0000ab10  6c 6c 6e 61 6d 65 24 29  0d 0c 14 d2 f2 73 68 65  |llname$).....she|
0000ab20  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
0000ab30  53 61 76 65 41 63 6b 3a  74 61 73 6b 20 20 20 3d  |SaveAck:task   =|
0000ab40  20 26 22 2b c3 5f 51 25  21 34 29 3a f2 73 68 65  | &"+._Q%!4):.she|
0000ab50  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
0000ab60  53 61 76 65 41 63 6b 3a  6d 79 74 61 73 6b 20 3d  |SaveAck:mytask =|
0000ab70  20 26 22 2b c3 5f 55 25  21 26 39 34 29 3a 64 25  | &"+._U%!&94):d%|
0000ab80  3d a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |=.shell_GetEvent|
0000ab90  4c 69 73 74 4f 66 66 73  65 74 28 5f 55 25 21 32  |ListOffset(_U%!2|
0000aba0  38 2c 5f 55 25 21 33 32  2c 5f 55 25 2b 37 32 2c  |8,_U%!32,_U%+72,|
0000abb0  32 34 2c a3 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |24,.):.shell_Tra|
0000abc0  63 65 66 30 28 22 44 61  74 61 53 61 76 65 41 63  |cef0("DataSaveAc|
0000abd0  6b 3a 6f 66 66 73 65 74  25 20 3d 20 22 2b c3 64  |k:offset% = "+.d|
0000abe0  25 29 3a e7 64 25 3e 3d  30 8c 0d 0c 1b 25 61 25  |%):.d%>=0....%a%|
0000abf0  3d 28 5f 55 25 21 37 32  29 2b 64 25 3a 63 25 3d  |=(_U%!72)+d%:c%=|
0000ac00  61 25 21 32 30 3a e7 24  63 25 3c 3e 22 22 8c 0d  |a%!20:.$c%<>""..|
0000ac10  0c 1f 21 6f 25 3d a0 28  22 46 4e 22 2b 24 63 25  |..!o%=.("FN"+$c%|
0000ac20  2b 22 28 5f 66 75 6c 6c  6e 61 6d 65 24 29 22 29  |+"(_fullname$)")|
0000ac30  0d 0c 20 23 cc e7 a4 73  68 65 6c 6c 5f 48 65 61  |.. #...shell_Hea|
0000ac40  70 42 6c 6f 63 6b 45 78  69 73 74 73 28 61 25 21  |pBlockExists(a%!|
0000ac50  38 29 8c 0d 0c 25 43 c8  99 38 2c 26 41 2c 5f 66  |8)...%C..8,&A,_f|
0000ac60  75 6c 6c 6e 61 6d 65 24  2c 61 25 21 26 43 2c 2c  |ullname$,a%!&C,,|
0000ac70  61 25 21 38 2c 61 25 21  38 2b a4 73 68 65 6c 6c  |a%!8,a%!8+.shell|
0000ac80  5f 48 65 61 70 42 6c 6f  63 6b 49 6e 66 6f 28 61  |_HeapBlockInfo(a|
0000ac90  25 21 38 29 2b 31 0d 0c  26 2b cc 85 39 39 2c a4  |%!8)+1..&+..99,.|
0000aca0  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4e 6f 41  |shell_MessageNoA|
0000acb0  72 67 73 28 22 53 48 45  4c 4c 4d 53 47 32 31 22  |rgs("SHELLMSG21"|
0000acc0  29 0d 0c 29 05 cd 0d 0c  2a 11 cd 3a e7 5f 51 25  |)..)....*..:._Q%|
0000acd0  21 33 36 3e 2d 31 8c 0d  0c 2d 2d e7 5f 55 25 21  |!36>-1...--._U%!|
0000ace0  38 30 3c 3e 30 8c f2 73  68 65 6c 6c 5f 48 65 61  |80<>0..shell_Hea|
0000acf0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
0000ad00  21 38 30 29 0d 0c 2e 48  5f 55 25 21 38 30 3d a4  |!80)...H_U%!80=.|
0000ad10  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
0000ad20  65 74 63 68 28 a9 5f 66  75 6c 6c 6e 61 6d 65 24  |etch(._fullname$|
0000ad30  2b 31 29 3a 63 25 3d 5f  55 25 21 38 30 3a 24 63  |+1):c%=_U%!80:$c|
0000ad40  25 3d 5f 66 75 6c 6c 6e  61 6d 65 24 0d 0c 31 dc  |%=_fullname$..1.|
0000ad50  cd 3a 5f 51 25 21 31 36  3d 33 3a 21 5f 51 25 3d  |.:_Q%!16=3:!_Q%=|
0000ad60  32 35 36 3a 5f 51 25 21  32 30 3d 5f 55 25 21 26  |256:_Q%!20=_U%!&|
0000ad70  43 38 3a 5f 51 25 21 32  34 3d 5f 55 25 21 26 43  |C8:_Q%!24=_U%!&C|
0000ad80  43 3a 5f 51 25 21 34 30  3d 5f 55 25 21 26 38 43  |C:_Q%!40=_U%!&8C|
0000ad90  3a 5f 51 25 21 33 36 3d  a4 73 68 65 6c 6c 5f 46  |:_Q%!36=.shell_F|
0000ada0  69 6c 65 4c 65 6e 67 74  68 28 5f 66 75 6c 6c 6e  |ileLength(_fulln|
0000adb0  61 6d 65 24 29 3a 5f 51  25 21 26 43 3d 5f 51 25  |ame$):_Q%!&C=_Q%|
0000adc0  21 38 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |!8:.shell_Tracef|
0000add0  30 28 22 44 61 74 61 53  61 76 65 41 63 6b 3a 46  |0("DataSaveAck:F|
0000ade0  69 6c 65 20 6c 65 6e 67  74 68 20 69 73 20 22 2b  |ile length is "+|
0000adf0  c3 5f 51 25 21 33 36 2b  22 20 62 79 74 65 73 22  |._Q%!36+" bytes"|
0000ae00  29 3a 24 28 5f 51 25 2b  34 34 29 3d 5f 66 75 6c  |):$(_Q%+44)=_ful|
0000ae10  6c 6e 61 6d 65 24 2b bd  28 30 29 3a 5f 55 25 21  |lname$+.(0):_U%!|
0000ae20  38 34 3d 5f 51 25 21 38  0d 0c 3c 69 f2 73 68 65  |84=_Q%!8..<i.she|
0000ae30  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
0000ae40  53 61 76 65 41 63 6b 3a  53 65 6e 64 69 6e 67 20  |SaveAck:Sending |
0000ae50  44 61 74 61 4c 6f 61 64  20 4d 65 73 73 61 67 65  |DataLoad Message|
0000ae60  22 29 3a c8 99 26 34 30  30 45 37 2c 31 38 2c 5f  |"):..&400E7,18,_|
0000ae70  51 25 2c 5f 51 25 21 32  30 2c 5f 51 25 21 32 34  |Q%,_Q%!20,_Q%!24|
0000ae80  3a e7 5f 55 25 21 32 38  3c 3e 5f 55 25 21 32 30  |:._U%!28<>_U%!20|
0000ae90  8c 0d 0c 42 1e f2 73 68  65 6c 6c 5f 43 6c 6f 73  |...B..shell_Clos|
0000aea0  65 57 69 6e 64 6f 77 28  5f 55 25 21 32 38 29 0d  |eWindow(_U%!28).|
0000aeb0  0c 43 12 cd 3a c8 99 26  34 30 30 44 34 2c 2c 2d  |.C..:..&400D4,,-|
0000aec0  31 0d 0c 45 77 cc f2 73  68 65 6c 6c 5f 50 72 69  |1..Ew..shell_Pri|
0000aed0  6e 74 53 61 76 65 28 5f  66 75 6c 6c 6e 61 6d 65  |ntSave(_fullname|
0000aee0  24 2c 5f 51 25 21 32 30  2c 5f 51 25 21 32 34 2c  |$,_Q%!20,_Q%!24,|
0000aef0  5f 51 25 21 38 2c 5f 51  25 21 34 30 29 3a f2 73  |_Q%!8,_Q%!40):.s|
0000af00  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 44 45  |hell_Tracef0("DE|
0000af10  42 55 47 3a 3a 20 63 6f  70 69 65 73 20 3d 20 22  |BUG:: copies = "|
0000af20  2b c3 28 5f 55 25 21 33  33 36 29 29 3a e7 5f 55  |+.(_U%!336)):._U|
0000af30  25 21 33 33 36 3e 30 8c  0d 0c 49 2b 5f 55 25 21  |%!336>0...I+_U%!|
0000af40  33 33 36 2d 3d 31 3a f2  73 68 65 6c 6c 5f 44 6f  |336-=1:.shell_Do|
0000af50  53 65 6e 64 50 72 69 6e  74 53 61 76 65 28 26 46  |SendPrintSave(&F|
0000af60  46 46 29 0d 0c 4b 05 cd  0d 0c 4c 07 cd 3a e1 0d  |FF)..K....L..:..|
0000af70  0c 52 45 dd f2 73 68 65  6c 6c 5f 44 61 74 61 53  |.RE..shell_DataS|
0000af80  61 76 65 43 68 65 63 6b  4e 61 6d 65 28 62 25 2c  |aveCheckName(b%,|
0000af90  66 25 29 3a ea 64 25 2c  61 25 2c 70 25 3a 61 25  |f%):.d%,a%,p%:a%|
0000afa0  3d 5f 55 25 21 37 32 3a  64 25 3d 30 3a e7 61 25  |=_U%!72:d%=0:.a%|
0000afb0  3c 3e 30 8c 0d 0c 5a 31  70 25 3d a4 73 68 65 6c  |<>0...Z1p%=.shel|
0000afc0  6c 5f 48 65 61 70 42 6c  6f 63 6b 49 6e 66 6f 28  |l_HeapBlockInfo(|
0000afd0  61 25 29 2d 38 3a f5 3a  e7 21 28 61 25 2b 64 25  |a%)-8:.:.!(a%+d%|
0000afe0  29 3d 62 25 8c 0d 0c 60  5e 52 24 3d a4 73 68 65  |)=b%...`^R$=.she|
0000aff0  6c 6c 5f 49 63 6f 6e 47  65 74 44 61 74 61 28 21  |ll_IconGetData(!|
0000b000  61 25 2c 61 25 21 31 36  29 3a e7 a7 52 24 2c 22  |a%,a%!16):..R$,"|
0000b010  2e 22 29 3d 30 8c f2 73  68 65 6c 6c 5f 4f 4b 28  |.")=0..shell_OK(|
0000b020  a4 73 68 65 6c 6c 5f 4d  65 73 73 61 67 65 4e 6f  |.shell_MessageNo|
0000b030  41 72 67 73 28 22 53 48  45 4c 4c 4d 53 47 30 31  |Args("SHELLMSG01|
0000b040  22 29 29 0d 0c 62 09 64  25 3d 70 25 0d 0c 63 14  |"))..b.d%=p%..c.|
0000b050  cd 3a 64 25 2b 3d 32 34  3a fd 64 25 3e 3d 70 25  |.:d%+=24:.d%>=p%|
0000b060  0d 0c 66 07 cd 3a e1 0d  0c 6c 6c dd f2 73 68 65  |..f..:...ll..she|
0000b070  6c 6c 5f 44 61 74 61 4c  6f 61 64 41 63 6b 28 5f  |ll_DataLoadAck(_|
0000b080  51 25 29 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |Q%):.shell_Trace|
0000b090  66 30 28 22 44 61 74 61  4c 6f 61 64 41 63 6b 3a  |f0("DataLoadAck:|
0000b0a0  44 61 74 61 4c 6f 61 64  41 63 6b 20 6d 65 73 73  |DataLoadAck mess|
0000b0b0  61 67 65 20 72 65 63 65  69 76 65 64 20 28 66 69  |age received (fi|
0000b0c0  6c 65 20 72 65 63 65 69  76 65 64 20 6f 6b 29 22  |le received ok)"|
0000b0d0  29 3a e1 0d 0c 75 31 dd  f2 73 68 65 6c 6c 5f 55  |):...u1..shell_U|
0000b0e0  73 65 72 4d 65 73 73 61  67 65 41 63 6b 6e 6f 77  |serMessageAcknow|
0000b0f0  6c 65 64 67 65 28 5f 51  25 29 3a c8 8e 5f 51 25  |ledge(_Q%):.._Q%|
0000b100  21 31 36 ca 0d 0c 77 1e  c9 33 3a f2 73 68 65 6c  |!16...w..3:.shel|
0000b110  6c 5f 41 63 6b 44 61 74  61 4c 6f 61 64 28 5f 51  |l_AckDataLoad(_Q|
0000b120  25 29 0d 0c 78 1e c9 36  3a f2 73 68 65 6c 6c 5f  |%)..x..6:.shell_|
0000b130  41 63 6b 52 41 4d 46 65  74 63 68 28 5f 51 25 29  |AckRAMFetch(_Q%)|
0000b140  0d 0c 79 07 cb 3a e1 0d  0c 7f 2d dd f2 73 68 65  |..y..:....-..she|
0000b150  6c 6c 5f 41 63 6b 44 61  74 61 4c 6f 61 64 28 5f  |ll_AckDataLoad(_|
0000b160  51 25 29 3a e7 5f 51 25  21 26 43 3c 3e 5f 55 25  |Q%):._Q%!&C<>_U%|
0000b170  21 38 34 8c 0d 0c 84 48  c8 99 26 32 30 30 30 38  |!84....H..&20008|
0000b180  2c 36 2c 22 3c 57 69 6d  70 24 53 63 72 61 70 3e  |,6,"<Wimp$Scrap>|
0000b190  22 3a 85 26 46 46 2c 22  44 61 74 61 20 54 72 61  |":.&FF,"Data Tra|
0000b1a0  6e 73 66 65 72 20 66 61  69 6c 65 64 3a 20 52 65  |nsfer failed: Re|
0000b1b0  63 65 69 76 65 72 20 64  69 65 64 22 0d 0c 86 07  |ceiver died"....|
0000b1c0  cd 3a e1 0d 0c 8c 76 dd  f2 73 68 65 6c 6c 5f 41  |.:....v..shell_A|
0000b1d0  63 6b 52 41 4d 46 65 74  63 68 28 5f 51 25 29 3a  |ckRAMFetch(_Q%):|
0000b1e0  ea 73 45 25 2c 63 25 3a  63 25 3d 5f 55 25 21 26  |.sE%,c%:c%=_U%!&|
0000b1f0  39 43 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |9C:.shell_Tracef|
0000b200  30 28 22 41 63 6b 52 41  4d 46 65 74 63 68 3a 41  |0("AckRAMFetch:A|
0000b210  63 6b 52 41 4d 46 65 74  63 68 20 63 61 6c 6c 65  |ckRAMFetch calle|
0000b220  64 2e 2e 2e 2e 22 29 3a  e7 5f 51 25 21 26 43 3c  |d...."):._Q%!&C<|
0000b230  3e 5f 55 25 21 26 37 30  8c 0d 0c 95 0f e7 5f 55  |>_U%!&70......_U|
0000b240  25 21 26 38 30 3d 30 8c  0d 0c 98 75 f2 73 68 65  |%!&80=0....u.she|
0000b250  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 63 6b 52  |ll_Tracef0("AckR|
0000b260  41 4d 46 65 74 63 68 3a  52 65 63 65 69 76 65 72  |AMFetch:Receiver|
0000b270  20 64 6f 65 73 20 6e 6f  74 20 73 75 70 70 6f 72  | does not suppor|
0000b280  74 20 52 41 4d 20 74 72  61 6e 73 66 65 72 22 29  |t RAM transfer")|
0000b290  3a c8 99 26 32 30 30 32  33 2c 22 57 69 6d 70 24  |:..&20023,"Wimp$|
0000b2a0  53 63 72 61 70 22 2c 2c  2d 31 2c 30 2c 33 b8 2c  |Scrap",,-1,0,3.,|
0000b2b0  2c 73 45 25 3a e7 73 45  25 3c 3e 30 8c 0d 0c 9c  |,sE%:.sE%<>0....|
0000b2c0  85 24 28 63 25 2b 34 34  29 3d 22 3c 57 69 6d 70  |.$(c%+44)="<Wimp|
0000b2d0  24 53 63 72 61 70 3e 22  2b bd 28 30 29 3a 63 25  |$Scrap>"+.(0):c%|
0000b2e0  21 30 3d 28 34 39 2b a9  28 a4 73 68 65 6c 6c 5f  |!0=(49+.(.shell_|
0000b2f0  47 65 74 53 74 72 69 6e  67 28 63 25 2b 34 34 29  |GetString(c%+44)|
0000b300  29 29 80 ac 33 3a 63 25  21 26 43 3d 63 25 21 38  |))..3:c%!&C=c%!8|
0000b310  3a 63 25 21 31 36 3d 32  3a 63 25 21 33 36 3d 2d  |:c%!16=2:c%!36=-|
0000b320  31 3a c8 99 26 34 30 30  45 37 2c 31 38 2c 63 25  |1:..&400E7,18,c%|
0000b330  2c 63 25 21 34 3a 5f 55  25 21 26 36 43 3d 63 25  |,c%!4:_U%!&6C=c%|
0000b340  21 38 0d 0c a3 32 cc f2  73 68 65 6c 6c 5f 4f 4b  |!8...2..shell_OK|
0000b350  28 a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4e  |(.shell_MessageN|
0000b360  6f 41 72 67 73 28 22 53  48 45 4c 4c 4d 53 47 31  |oArgs("SHELLMSG1|
0000b370  34 22 29 29 0d 0c a5 05  cd 0d 0c a6 a1 cc f2 73  |4"))...........s|
0000b380  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 41 63  |hell_Tracef0("Ac|
0000b390  6b 52 41 4d 46 65 74 63  68 3a 52 41 4d 20 74 72  |kRAMFetch:RAM tr|
0000b3a0  61 6e 73 66 65 72 20 73  74 61 72 74 65 64 2c 20  |ansfer started, |
0000b3b0  62 75 74 20 6e 6f 74 20  65 6e 6f 75 67 68 20 64  |but not enough d|
0000b3c0  61 74 61 20 73 65 6e 74  2e 20 53 65 6e 64 65 72  |ata sent. Sender|
0000b3d0  20 64 69 65 64 3f 22 29  3a f2 73 68 65 6c 6c 5f  | died?"):.shell_|
0000b3e0  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000b3f0  5f 55 25 21 26 39 38 29  3a 5f 55 25 21 26 39 38  |_U%!&98):_U%!&98|
0000b400  3d 30 3a f2 73 68 65 6c  6c 5f 4f 4b 28 22 53 48  |=0:.shell_OK("SH|
0000b410  45 4c 4c 4d 53 47 30 36  22 29 0d 0c af 05 cd 0d  |ELLMSG06")......|
0000b420  0c b0 07 cd 3a e1 0d 0c  b6 70 dd f2 73 68 65 6c  |....:....p..shel|
0000b430  6c 5f 4d 65 6e 75 57 61  72 6e 69 6e 67 28 5f 51  |l_MenuWarning(_Q|
0000b440  25 29 3a ea 41 24 2c 4e  42 25 2c 49 41 25 2c 4d  |%):.A$,NB%,IA%,M|
0000b450  41 25 2c 6f 25 2c 5f 74  65 6d 70 25 2c 48 41 25  |A%,o%,_temp%,HA%|
0000b460  2c 46 24 2c 6b 42 25 2c  61 25 3a 49 41 25 3d 5f  |,F$,kB%,a%:IA%=_|
0000b470  51 25 21 32 34 3a 4d 41  25 3d 5f 51 25 21 32 38  |Q%!24:MA%=_Q%!28|
0000b480  3a 5f 55 25 21 32 36 34  3d 30 3a e7 5f 55 25 21  |:_U%!264=0:._U%!|
0000b490  32 30 3c 3e 30 8c 0d 0c  bb aa f2 73 68 65 6c 6c  |20<>0......shell|
0000b4a0  5f 54 72 61 63 65 66 30  28 22 4d 65 6e 75 57 61  |_Tracef0("MenuWa|
0000b4b0  72 6e 69 6e 67 3a 52 65  6d 6f 76 69 6e 67 20 6c  |rning:Removing l|
0000b4c0  61 73 74 20 64 79 6e 61  6d 69 63 20 64 62 6f 78  |ast dynamic dbox|
0000b4d0  20 28 68 61 6e 64 6c 65  3d 26 22 2b c3 7e 5f 55  | (handle=&"+.~_U|
0000b4e0  25 21 32 30 2b 22 29 22  29 3a 6f 25 3d a4 73 68  |%!20+")"):o%=.sh|
0000b4f0  65 6c 6c 5f 44 65 6c 65  74 65 57 69 6e 64 6f 77  |ell_DeleteWindow|
0000b500  28 5f 55 25 21 32 30 29  3a f2 73 68 65 6c 6c 5f  |(_U%!20):.shell_|
0000b510  54 72 61 63 65 66 30 28  22 4d 65 6e 75 57 61 72  |Tracef0("MenuWar|
0000b520  6e 69 6e 67 3a 4c 61 73  74 20 64 79 6e 61 6d 69  |ning:Last dynami|
0000b530  63 20 64 62 6f 78 20 72  65 6d 6f 76 65 64 22 29  |c dbox removed")|
0000b540  0d 0c c1 0f cd 3a c8 8e  5f 51 25 21 32 30 ca 0d  |.....:.._Q%!20..|
0000b550  0c c7 a7 c9 5f 55 25 21  26 45 34 3a f2 73 68 65  |...._U%!&E4:.she|
0000b560  6c 6c 5f 57 69 6e 64 6f  77 52 65 74 69 74 6c 65  |ll_WindowRetitle|
0000b570  28 5f 55 25 21 26 45 34  2c a4 73 68 65 6c 6c 5f  |(_U%!&E4,.shell_|
0000b580  4d 65 73 73 61 67 65 4e  6f 41 72 67 73 28 22 77  |MessageNoArgs("w|
0000b590  61 72 6e 69 6e 67 22 29  29 3a f2 73 68 65 6c 6c  |arning")):.shell|
0000b5a0  5f 49 63 6f 6e 50 75 74  44 61 74 61 28 5f 55 25  |_IconPutData(_U%|
0000b5b0  21 26 45 34 2c 31 2c a4  73 68 65 6c 6c 5f 4d 65  |!&E4,1,.shell_Me|
0000b5c0  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
0000b5d0  4c 4c 4d 53 47 30 37 22  29 2c 30 29 3a c8 99 26  |LLMSG07"),0):..&|
0000b5e0  34 30 30 45 38 2c 2c 5f  55 25 21 26 45 34 2c 49  |400E8,,_U%!&E4,I|
0000b5f0  41 25 2c 4d 41 25 0d 0c  ce 51 7f 6b 42 25 3d a4  |A%,MA%...Q.kB%=.|
0000b600  73 68 65 6c 6c 5f 4d 65  6e 75 47 65 74 49 74 65  |shell_MenuGetIte|
0000b610  6d 41 64 64 72 65 73 73  28 5f 55 25 21 32 34 2c  |mAddress(_U%!24,|
0000b620  5f 51 25 2b 33 32 29 3a  e7 a4 73 68 65 6c 6c 5f  |_Q%+32):..shell_|
0000b630  48 65 61 70 42 6c 6f 63  6b 45 78 69 73 74 73 28  |HeapBlockExists(|
0000b640  6b 42 25 21 34 29 8c 0d  0c d3 24 f2 73 68 65 6c  |kB%!4)....$.shel|
0000b650  6c 5f 4d 65 6e 75 57 61  72 6e 44 42 6f 78 28 6b  |l_MenuWarnDBox(k|
0000b660  42 25 2c 49 41 25 2c 4d  41 25 29 0d 0c d4 aa cc  |B%,IA%,MA%).....|
0000b670  61 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |a%=.shell_HeapBl|
0000b680  6f 63 6b 46 65 74 63 68  28 33 32 29 3a c8 99 26  |ockFetch(32):..&|
0000b690  34 35 42 43 34 2c 5f 55  25 21 32 34 2c 5f 51 25  |45BC4,_U%!24,_Q%|
0000b6a0  2b 33 32 b8 2c 2c 61 25  3a f2 73 68 65 6c 6c 5f  |+32.,,a%:.shell_|
0000b6b0  46 69 6e 64 4d 65 6e 75  57 61 72 6e 45 76 65 6e  |FindMenuWarnEven|
0000b6c0  74 28 61 25 21 38 2c 46  24 2c 4a 24 29 3a f2 73  |t(a%!8,F$,J$):.s|
0000b6d0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
0000b6e0  74 75 72 6e 28 61 25 29  3a f2 73 68 65 6c 6c 5f  |turn(a%):.shell_|
0000b6f0  4d 65 6e 75 57 61 72 6e  53 75 62 4d 65 6e 75 28  |MenuWarnSubMenu(|
0000b700  5f 51 25 21 32 30 2c 49  41 25 2c 4d 41 25 2c 46  |_Q%!20,IA%,MA%,F|
0000b710  24 2c 4a 24 29 0d 0c db  05 cd 0d 0c dc 07 cb 3a  |$,J$)..........:|
0000b720  e1 0d 0c e2 3b dd f2 73  68 65 6c 6c 5f 4d 65 6e  |....;..shell_Men|
0000b730  75 57 61 72 6e 44 42 6f  78 28 76 41 25 2c 49 41  |uWarnDBox(vA%,IA|
0000b740  25 2c 4d 41 25 29 3a ea  63 25 2c 76 25 2c 6f 25  |%,MA%):.c%,v%,o%|
0000b750  3a ea 85 3a ee 85 ea 3a  f7 85 3a e1 0d 0c e6 85  |:..:...:..:.....|
0000b760  63 25 3d 76 41 25 21 34  3a f2 73 68 65 6c 6c 5f  |c%=vA%!4:.shell_|
0000b770  43 72 65 61 74 65 57 69  6e 64 6f 77 28 24 63 25  |CreateWindow($c%|
0000b780  21 30 2c 76 25 29 3a f7  85 3a f2 73 68 65 6c 6c  |!0,v%):..:.shell|
0000b790  5f 54 72 61 63 65 66 30  28 22 4d 65 6e 75 57 61  |_Tracef0("MenuWa|
0000b7a0  72 6e 44 42 6f 78 3a 43  72 65 61 74 69 6e 67 20  |rnDBox:Creating |
0000b7b0  6e 65 77 20 64 79 6e 61  6d 69 63 20 64 62 6f 78  |new dynamic dbox|
0000b7c0  20 28 68 61 6e 64 6c 65  3d 26 22 2b c3 7e 76 25  | (handle=&"+.~v%|
0000b7d0  2b 22 29 22 29 3a e7 24  63 25 21 34 3c 3e 22 22  |+")"):.$c%!4<>""|
0000b7e0  8c 0d 0c ee 5e f2 73 68  65 6c 6c 5f 54 72 61 63  |....^.shell_Trac|
0000b7f0  65 66 30 28 22 4d 65 6e  75 57 61 72 6e 44 42 6f  |ef0("MenuWarnDBo|
0000b800  78 3a 43 61 6c 6c 69 6e  67 20 70 72 65 6f 70 65  |x:Calling preope|
0000b810  6e 20 46 4e 20 27 22 2b  24 63 25 21 34 2b 22 27  |n FN '"+$c%!4+"'|
0000b820  22 29 3a 6f 25 3d a0 28  22 46 4e 22 2b 24 63 25  |"):o%=.("FN"+$c%|
0000b830  21 34 2b 22 28 22 2b c3  76 25 2b 22 29 22 29 0d  |!4+"("+.v%+")").|
0000b840  0c f1 11 cd 3a e7 24 63  25 21 38 3c 3e 22 22 8c  |....:.$c%!8<>"".|
0000b850  0d 0c f4 5f f2 73 68 65  6c 6c 5f 54 72 61 63 65  |..._.shell_Trace|
0000b860  66 30 28 22 4d 65 6e 75  57 61 72 6e 44 42 6f 78  |f0("MenuWarnDBox|
0000b870  3a 43 61 6c 6c 69 6e 67  20 70 6f 73 74 6f 70 65  |:Calling postope|
0000b880  6e 20 46 4e 20 27 22 2b  24 63 25 21 38 2b 22 27  |n FN '"+$c%!8+"'|
0000b890  22 29 3a 6f 25 3d a0 28  22 46 4e 22 2b 24 63 25  |"):o%=.("FN"+$c%|
0000b8a0  21 38 2b 22 28 22 2b c3  76 25 2b 22 29 22 29 0d  |!8+"("+.v%+")").|
0000b8b0  0c f7 26 cd 3a c8 99 26  34 30 30 45 38 2c 2c 76  |..&.:..&400E8,,v|
0000b8c0  25 2c 49 41 25 2c 4d 41  25 3a 5f 55 25 21 32 30  |%,IA%,MA%:_U%!20|
0000b8d0  3d 76 25 3a e1 0d 0d 00  8d dd f2 73 68 65 6c 6c  |=v%:.......shell|
0000b8e0  5f 46 69 6e 64 4d 65 6e  75 57 61 72 6e 45 76 65  |_FindMenuWarnEve|
0000b8f0  6e 74 28 6e 41 25 2c f8  46 24 2c f8 4a 24 29 3a  |nt(nA%,.F$,.J$):|
0000b900  ea 5f 25 2c 78 25 2c 63  25 2c 64 25 2c 6a 25 2c  |._%,x%,c%,d%,j%,|
0000b910  70 25 2c 43 41 25 2c 67  25 3a ea 6c 42 25 3a 6c  |p%,CA%,g%:.lB%:l|
0000b920  42 25 3d 30 3a 78 25 3d  5f 55 25 21 26 44 43 3a  |B%=0:x%=_U%!&DC:|
0000b930  64 25 3d 30 3a 6a 25 3d  a3 3a 46 24 3d 22 22 3a  |d%=0:j%=.:F$="":|
0000b940  6c 42 25 3d 30 3a e7 a4  73 68 65 6c 6c 5f 48 65  |lB%=0:..shell_He|
0000b950  61 70 42 6c 6f 63 6b 45  78 69 73 74 73 28 78 25  |apBlockExists(x%|
0000b960  29 8c 0d 0d 06 6d f5 3a  67 25 2b 3d 34 3a fd 78  |)....m.:g%+=4:.x|
0000b970  25 21 67 25 3d 2d 31 3a  70 25 3d 67 25 3a 67 25  |%!g%=-1:p%=g%:g%|
0000b980  3d 30 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |=0:.shell_Tracef|
0000b990  30 28 22 46 69 6e 64 4d  65 6e 75 57 61 72 6e 45  |0("FindMenuWarnE|
0000b9a0  76 65 6e 74 3a 6c 69 73  74 5f 73 69 7a 65 25 3d  |vent:list_size%=|
0000b9b0  22 2b c3 70 25 29 3a f5  3a 63 25 3d 21 28 78 25  |"+.p%):.:c%=!(x%|
0000b9c0  2b 64 25 2b 30 29 3a e7  63 25 3c 3e 2d 31 8c 0d  |+d%+0):.c%<>-1..|
0000b9d0  0d 10 0c e7 63 25 3d 6e  41 25 8c 0d 0d 11 75 6a  |....c%=nA%....uj|
0000b9e0  25 3d b9 3a 43 41 25 3d  78 25 21 28 64 25 2b 34  |%=.:CA%=x%!(d%+4|
0000b9f0  29 3a 46 24 3d 24 43 41  25 3a 6c 42 25 3d 78 25  |):F$=$CA%:lB%=x%|
0000ba00  21 28 64 25 2b 38 29 3a  43 41 25 3d 78 25 21 28  |!(d%+8):CA%=x%!(|
0000ba10  64 25 2b 26 43 29 3a 4a  24 3d 24 43 41 25 3a f2  |d%+&C):J$=$CA%:.|
0000ba20  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 46  |shell_Tracef0("F|
0000ba30  69 6e 64 4d 65 6e 75 57  61 72 6e 45 76 65 6e 74  |indMenuWarnEvent|
0000ba40  3a 73 75 62 6d 65 6e 75  20 66 6f 75 6e 64 22 29  |:submenu found")|
0000ba50  0d 0d 18 0c cd 3a 64 25  2b 3d 31 36 0d 0d 1a 0a  |.....:d%+=16....|
0000ba60  cc 64 25 3d 70 25 0d 0d  1c 10 cd 3a fd 6a 25 84  |.d%=p%.....:.j%.|
0000ba70  64 25 3e 3d 70 25 0d 0d  1e 10 cc 46 24 3d 22 22  |d%>=p%.....F$=""|
0000ba80  3a 4a 24 3d 22 22 0d 0d  20 44 cd 3a e7 6c 42 25  |:J$="".. D.:.lB%|
0000ba90  3d 30 8c f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |=0..shell_Tracef|
0000baa0  30 28 22 46 69 6e 64 4d  65 6e 75 57 61 72 6e 45  |0("FindMenuWarnE|
0000bab0  76 65 6e 74 3a 77 61 72  6e 20 66 6e 20 6e 6f 74  |vent:warn fn not|
0000bac0  20 66 6f 75 6e 64 2e 2e  22 29 0d 0d 24 05 e1 0d  | found..")..$...|
0000bad0  0d 29 96 dd f2 73 68 65  6c 6c 5f 4d 65 6e 75 57  |.)...shell_MenuW|
0000bae0  61 72 6e 53 75 62 4d 65  6e 75 28 44 45 25 2c 49  |arnSubMenu(DE%,I|
0000baf0  41 25 2c 4d 41 25 2c 46  24 2c 4a 24 29 3a ea 6f  |A%,MA%,F$,J$):.o|
0000bb00  25 2c 63 25 2c 4a 42 25  2c 67 25 3a 5f 73 68 65  |%,c%,JB%,g%:_she|
0000bb10  6c 6c 5f 46 6f 6e 74 4d  65 6e 75 53 65 6c 46 4e  |ll_FontMenuSelFN|
0000bb20  24 3d 4a 24 3a e7 a4 73  68 65 6c 6c 5f 48 65 61  |$=J$:..shell_Hea|
0000bb30  70 42 6c 6f 63 6b 45 78  69 73 74 73 28 5f 55 25  |pBlockExists(_U%|
0000bb40  21 26 45 30 29 8c f2 73  68 65 6c 6c 5f 48 65 61  |!&E0)..shell_Hea|
0000bb50  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
0000bb60  21 26 45 30 29 0d 0d 2d  43 5f 55 25 21 26 45 30  |!&E0)..-C_U%!&E0|
0000bb70  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000bb80  6b 46 65 74 63 68 28 a9  46 24 2b 31 29 3a 63 25  |kFetch(.F$+1):c%|
0000bb90  3d 5f 55 25 21 26 45 30  3a 24 63 25 3d 46 24 3a  |=_U%!&E0:$c%=F$:|
0000bba0  e7 46 24 3c 3e 22 22 8c  0d 0d 30 53 6f 25 3d a0  |.F$<>""...0So%=.|
0000bbb0  28 22 46 4e 22 2b 46 24  2b 22 28 5f 55 25 21 35  |("FN"+F$+"(_U%!5|
0000bbc0  32 2c 5f 55 25 21 35 36  29 22 29 3a f2 73 68 65  |2,_U%!56)"):.she|
0000bbd0  6c 6c 5f 54 72 61 63 65  66 30 28 22 4d 65 6e 75  |ll_Tracef0("Menu|
0000bbe0  57 61 72 6e 53 75 62 4d  65 6e 75 3a 43 61 6c 6c  |WarnSubMenu:Call|
0000bbf0  69 6e 67 20 46 4e 22 2b  46 24 29 0d 0d 34 13 cd  |ing FN"+F$)..4..|
0000bc00  3a e7 44 45 25 3d 5f 55  25 21 26 46 43 8c 0d 0d  |:.DE%=_U%!&FC...|
0000bc10  39 79 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |9y.shell_Tracef0|
0000bc20  28 22 4d 65 6e 75 57 61  72 6e 53 75 62 4d 65 6e  |("MenuWarnSubMen|
0000bc30  75 3a 46 6f 6e 74 4d 65  6e 75 20 6f 70 65 6e 69  |u:FontMenu openi|
0000bc40  6e 67 2e 2e 22 29 3a e7  a4 73 68 65 6c 6c 5f 48  |ng.."):..shell_H|
0000bc50  65 61 70 42 6c 6f 63 6b  45 78 69 73 74 73 28 5f  |eapBlockExists(_|
0000bc60  55 25 21 32 35 36 29 8c  f2 73 68 65 6c 6c 5f 48  |U%!256)..shell_H|
0000bc70  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 5f  |eapBlockReturn(_|
0000bc80  55 25 21 32 35 36 29 0d  0d 3e a3 67 25 3d 30 3a  |U%!256)..>.g%=0:|
0000bc90  f5 3a 67 25 2b 3d 34 3a  fd 21 28 5f 51 25 2b 33  |.:g%+=4:.!(_Q%+3|
0000bca0  32 2b 67 25 29 3d 2d 31  3a 67 25 2b 3d 34 3a 5f  |2+g%)=-1:g%+=4:_|
0000bcb0  55 25 21 32 35 36 3d a4  73 68 65 6c 6c 5f 48 65  |U%!256=.shell_He|
0000bcc0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 67 25 29  |apBlockFetch(g%)|
0000bcd0  3a 63 25 3d 5f 55 25 21  32 35 36 3a 67 25 3d 30  |:c%=_U%!256:g%=0|
0000bce0  3a f5 3a 63 25 21 67 25  3d 21 28 5f 51 25 2b 33  |:.:c%!g%=!(_Q%+3|
0000bcf0  32 2b 67 25 29 3a 67 25  2b 3d 34 3a fd 21 28 5f  |2+g%):g%+=4:.!(_|
0000bd00  51 25 2b 33 32 2b 67 25  29 3d 2d 31 3a 63 25 21  |Q%+32+g%)=-1:c%!|
0000bd10  67 25 3d 21 28 5f 51 25  2b 33 32 2b 67 25 29 3a  |g%=!(_Q%+32+g%):|
0000bd20  63 25 3d 5f 55 25 21 32  35 36 0d 0d 48 c3 f2 73  |c%=_U%!256..H..s|
0000bd30  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 4d 65  |hell_Tracef0("Me|
0000bd40  6e 75 57 61 72 6e 53 75  62 4d 65 6e 75 3a 53 65  |nuWarnSubMenu:Se|
0000bd50  6c 65 63 74 69 6e 67 20  27 22 2b a4 73 68 65 6c  |lecting '"+.shel|
0000bd60  6c 5f 46 6f 6e 74 4d 65  6e 75 47 65 74 4c 61 73  |l_FontMenuGetLas|
0000bd70  74 53 65 6c 65 63 74 65  64 46 6f 6e 74 2b 22 27  |tSelectedFont+"'|
0000bd80  20 69 6e 20 46 6f 6e 74  4d 65 6e 75 2e 2e 22 29  | in FontMenu..")|
0000bd90  3a c8 99 22 46 6f 6e 74  4d 65 6e 75 5f 53 65 6c  |:.."FontMenu_Sel|
0000bda0  65 63 74 22 2c a4 73 68  65 6c 6c 5f 46 6f 6e 74  |ect",.shell_Font|
0000bdb0  4d 65 6e 75 47 65 74 4c  61 73 74 53 65 6c 65 63  |MenuGetLastSelec|
0000bdc0  74 65 64 46 6f 6e 74 2c  5f 55 25 21 32 36 30 b8  |tedFont,_U%!260.|
0000bdd0  2c 4a 42 25 3a 5f 55 25  21 32 36 34 3d 31 3a e7  |,JB%:_U%!264=1:.|
0000bde0  4a 42 25 3c 3e 5f 55 25  21 26 46 43 8c 0d 0d 4e  |JB%<>_U%!&FC...N|
0000bdf0  35 f2 73 68 65 6c 6c 5f  46 6f 6e 74 4d 65 6e 75  |5.shell_FontMenu|
0000be00  55 70 64 61 74 65 50 74  72 28 4a 42 25 29 3a 5f  |UpdatePtr(JB%):_|
0000be10  55 25 21 26 46 43 3d 4a  42 25 3a 44 45 25 3d 4a  |U%!&FC=JB%:DE%=J|
0000be20  42 25 0d 0d 50 05 cd 0d  0d 51 0e cc 5f 55 25 21  |B%..P....Q.._U%!|
0000be30  32 36 34 3d 30 0d 0d 53  1d cd 3a c8 99 26 34 30  |264=0..S..:..&40|
0000be40  30 45 38 2c 2c 44 45 25  2c 49 41 25 2c 4d 41 25  |0E8,,DE%,IA%,MA%|
0000be50  3a e1 0d 0d 5b 3f dd f2  73 68 65 6c 6c 5f 41 74  |:...[?..shell_At|
0000be60  74 61 63 68 53 75 62 4d  65 6e 75 28 47 42 25 2c  |tachSubMenu(GB%,|
0000be70  6c 42 25 2c 46 24 29 3a  c8 99 26 34 35 42 43 45  |lB%,F$):..&45BCE|
0000be80  2c 47 42 25 2c 6c 42 25  3a e7 46 24 3c 3e 22 22  |,GB%,lB%:.F$<>""|
0000be90  8c 0d 0d 5e 37 c8 99 26  34 35 42 43 43 2c 2c b9  |...^7..&45BCC,,.|
0000bea0  3a f2 73 68 65 6c 6c 5f  45 76 65 6e 74 4c 69 73  |:.shell_EventLis|
0000beb0  74 4d 65 6e 75 57 61 72  6e 28 47 42 25 2c 6c 42  |tMenuWarn(GB%,lB|
0000bec0  25 2c 46 24 2c 22 22 29  0d 0d 60 07 cd 3a e1 0d  |%,F$,"")..`..:..|
0000bed0  0d 66 46 dd f2 73 68 65  6c 6c 5f 45 76 65 6e 74  |.fF..shell_Event|
0000bee0  4c 69 73 74 4d 65 6e 75  57 61 72 6e 28 47 42 25  |ListMenuWarn(GB%|
0000bef0  2c 64 45 25 2c 46 24 2c  4a 24 29 3a ea 63 25 2c  |,dE%,F$,J$):.c%,|
0000bf00  43 41 25 2c 67 25 2c 78  25 3a e7 5f 55 25 21 26  |CA%,g%,x%:._U%!&|
0000bf10  44 43 3d 30 8c 0d 0d 6a  c2 5f 55 25 21 26 44 43  |DC=0...j._U%!&DC|
0000bf20  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000bf30  6b 46 65 74 63 68 28 33  32 29 3a 63 25 3d 5f 55  |kFetch(32):c%=_U|
0000bf40  25 21 26 44 43 3a 63 25  21 30 3d 47 42 25 3a 63  |%!&DC:c%!0=GB%:c|
0000bf50  25 21 34 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |%!4=.shell_HeapB|
0000bf60  6c 6f 63 6b 46 65 74 63  68 28 a9 46 24 2b 31 29  |lockFetch(.F$+1)|
0000bf70  3a 24 28 63 25 21 34 29  3d 46 24 3a 63 25 21 38  |:$(c%!4)=F$:c%!8|
0000bf80  3d 64 45 25 3a 63 25 21  26 43 3d a4 73 68 65 6c  |=dE%:c%!&C=.shel|
0000bf90  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000bfa0  28 a9 4a 24 2b 31 29 3a  24 28 63 25 21 26 43 29  |(.J$+1):$(c%!&C)|
0000bfb0  3d 4a 24 3a 63 25 21 31  36 3d 2d 31 3a 63 25 21  |=J$:c%!16=-1:c%!|
0000bfc0  32 30 3d 2d 31 3a 63 25  21 32 34 3d 2d 31 3a 63  |20=-1:c%!24=-1:c|
0000bfd0  25 21 32 38 3d 2d 31 0d  0d 73 f0 cc 78 25 3d a4  |%!28=-1..s..x%=.|
0000bfe0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
0000bff0  78 74 65 6e 64 28 5f 55  25 21 26 44 43 2c 33 32  |xtend(_U%!&DC,32|
0000c000  29 3a 5f 55 25 21 26 44  43 3d 78 25 3a 67 25 3d  |):_U%!&DC=x%:g%=|
0000c010  30 3a f5 3a 67 25 2b 3d  31 36 3a fd 78 25 21 67  |0:.:g%+=16:.x%!g|
0000c020  25 3d 2d 31 3a 63 25 3d  5f 55 25 21 26 44 43 3a  |%=-1:c%=_U%!&DC:|
0000c030  63 25 21 67 25 3d 47 42  25 3a 63 25 21 28 67 25  |c%!g%=GB%:c%!(g%|
0000c040  2b 34 29 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |+4)=.shell_HeapB|
0000c050  6c 6f 63 6b 46 65 74 63  68 28 a9 46 24 2b 31 29  |lockFetch(.F$+1)|
0000c060  3a 43 41 25 3d 63 25 21  28 67 25 2b 34 29 3a 24  |:CA%=c%!(g%+4):$|
0000c070  28 43 41 25 29 3d 46 24  3a 63 25 21 28 67 25 2b  |(CA%)=F$:c%!(g%+|
0000c080  38 29 3d 64 45 25 3a 63  25 21 28 67 25 2b 26 43  |8)=dE%:c%!(g%+&C|
0000c090  29 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |)=.shell_HeapBlo|
0000c0a0  63 6b 46 65 74 63 68 28  a9 4a 24 2b 31 29 3a 43  |ckFetch(.J$+1):C|
0000c0b0  41 25 3d 63 25 21 28 67  25 2b 26 43 29 3a 24 28  |A%=c%!(g%+&C):$(|
0000c0c0  43 41 25 29 3d 4a 24 0d  0d 81 3b 63 25 21 28 67  |CA%)=J$...;c%!(g|
0000c0d0  25 2b 31 36 29 3d 2d 31  3a 63 25 21 28 67 25 2b  |%+16)=-1:c%!(g%+|
0000c0e0  32 30 29 3d 2d 31 3a 63  25 21 28 67 25 2b 32 34  |20)=-1:c%!(g%+24|
0000c0f0  29 3d 2d 31 3a 63 25 21  28 67 25 2b 32 38 29 3d  |)=-1:c%!(g%+28)=|
0000c100  2d 31 0d 0d 83 07 cd 3a  e1 0d 0d 89 82 dd f2 73  |-1.....:.......s|
0000c110  68 65 6c 6c 5f 49 6e 74  65 72 61 63 74 69 76 65  |hell_Interactive|
0000c120  48 65 6c 70 28 5f 51 25  29 3a ea 49 24 2c 57 24  |Help(_Q%):.I$,W$|
0000c130  2c 4b 24 2c 50 42 25 2c  4d 44 25 2c 6e 41 24 2c  |,K$,PB%,MD%,nA$,|
0000c140  72 25 3a 72 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |r%:r%=.shell_Hea|
0000c150  70 42 6c 6f 63 6b 46 65  74 63 68 28 26 43 29 3a  |pBlockFetch(&C):|
0000c160  c8 99 26 34 30 30 44 36  2c 5f 51 25 21 33 32 2c  |..&400D6,_Q%!32,|
0000c170  72 25 2c 26 33 46 30 30  30 30 2c 26 43 3c 3c 31  |r%,&3F0000,&C<<1|
0000c180  36 3a e7 21 72 25 3c 3e  2d 31 8c 0d 0d 90 25 49  |6:.!r%<>-1....%I|
0000c190  24 3d a4 73 68 65 6c 6c  5f 49 63 6f 6e 47 65 74  |$=.shell_IconGet|
0000c1a0  44 61 74 61 28 5f 51 25  21 33 32 2c 21 72 25 29  |Data(_Q%!32,!r%)|
0000c1b0  0d 0d 91 52 cd 3a f2 73  68 65 6c 6c 5f 48 65 61  |...R.:.shell_Hea|
0000c1c0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 72 25 29  |pBlockReturn(r%)|
0000c1d0  3a e7 49 24 3d 22 22 8c  49 24 3d a4 73 68 65 6c  |:.I$="".I$=.shel|
0000c1e0  6c 5f 47 65 74 45 76 65  6e 74 48 61 6e 64 6c 65  |l_GetEventHandle|
0000c1f0  72 28 5f 51 25 21 33 32  2c 5f 51 25 21 33 36 2c  |r(_Q%!32,_Q%!36,|
0000c200  38 29 0d 0d 95 37 4b 24  3d a4 73 68 65 6c 6c 5f  |8)...7K$=.shell_|
0000c210  49 63 6f 6e 47 65 74 56  61 6c 69 64 61 74 69 6f  |IconGetValidatio|
0000c220  6e 28 5f 51 25 21 33 32  2c 5f 51 25 21 33 36 29  |n(_Q%!32,_Q%!36)|
0000c230  3a e7 4b 24 3c 3e 22 22  8c 0d 0d 97 28 e7 a4 73  |:.K$<>""....(..s|
0000c240  68 65 6c 6c 5f 53 74 72  69 6e 67 55 70 70 65 72  |hell_StringUpper|
0000c250  43 61 73 65 28 c0 4b 24  2c 31 29 29 3d 22 49 22  |Case(.K$,1))="I"|
0000c260  8c 0d 0d 98 18 50 42 25  3d a7 4b 24 2c 22 3b 22  |.....PB%=.K$,";"|
0000c270  29 3a e7 50 42 25 3d 30  8c 0d 0d 9b 0d 49 24 3d  |):.PB%=0.....I$=|
0000c280  c1 4b 24 2c 32 29 0d 0d  9c 14 cc 49 24 3d c1 4b  |.K$,2).....I$=.K|
0000c290  24 2c 32 2c 50 42 25 2d  32 29 0d 0d 9e 05 cd 0d  |$,2,PB%-2)......|
0000c2a0  0d 9f 8d cc 50 42 25 3d  a7 a4 73 68 65 6c 6c 5f  |....PB%=..shell_|
0000c2b0  53 74 72 69 6e 67 55 70  70 65 72 43 61 73 65 28  |StringUpperCase(|
0000c2c0  4b 24 29 2c a4 73 68 65  6c 6c 5f 53 74 72 69 6e  |K$),.shell_Strin|
0000c2d0  67 55 70 70 65 72 43 61  73 65 28 22 3b 69 22 29  |gUpperCase(";i")|
0000c2e0  29 3a 4d 44 25 3d a7 a4  73 68 65 6c 6c 5f 53 74  |):MD%=..shell_St|
0000c2f0  72 69 6e 67 55 70 70 65  72 43 61 73 65 28 4b 24  |ringUpperCase(K$|
0000c300  29 2c a4 73 68 65 6c 6c  5f 53 74 72 69 6e 67 55  |),.shell_StringU|
0000c310  70 70 65 72 43 61 73 65  28 22 3b 22 29 2c 50 42  |pperCase(";"),PB|
0000c320  25 2b 31 29 3a e7 50 42  25 3e 30 8c 0d 0d a3 0b  |%+1):.PB%>0.....|
0000c330  e7 4d 44 25 3e 30 8c 0d  0d a4 1b 49 24 3d c1 4b  |.MD%>0.....I$=.K|
0000c340  24 2c 50 42 25 2b 32 2c  4d 44 25 2d 50 42 25 2d  |$,PB%+2,MD%-PB%-|
0000c350  32 29 0d 0d a5 12 cc 49  24 3d c1 4b 24 2c 50 42  |2).....I$=.K$,PB|
0000c360  25 2b 32 29 0d 0d a7 05  cd 0d 0d a8 05 cd 0d 0d  |%+2)............|
0000c370  a9 05 cd 0d 0d aa 0e cd  3a e7 49 24 3c 3e 22 22  |........:.I$<>""|
0000c380  8c 0d 0d ac 8e 5f 51 25  21 31 36 3d 26 35 30 33  |....._Q%!16=&503|
0000c390  3a 5f 51 25 21 26 43 3d  5f 51 25 21 38 3a 57 24  |:_Q%!&C=_Q%!8:W$|
0000c3a0  3d a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4c  |=.shell_MessageL|
0000c3b0  6f 6f 6b 75 70 28 49 24  2c 22 22 2c 22 22 29 3a  |ookup(I$,"",""):|
0000c3c0  57 24 3d a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |W$=.shell_Messag|
0000c3d0  65 45 78 70 61 6e 64 28  57 24 29 3a 24 28 5f 51  |eExpand(W$):$(_Q|
0000c3e0  25 2b 32 30 29 3d 57 24  3a 21 5f 51 25 3d 28 a9  |%+20)=W$:!_Q%=(.|
0000c3f0  57 24 2b 32 35 29 80 ac  33 3a c8 99 26 34 30 30  |W$+25)..3:..&400|
0000c400  45 37 2c 31 37 2c 5f 51  25 2c 5f 51 25 21 34 0d  |E7,17,_Q%,_Q%!4.|
0000c410  0d b2 07 cd 3a e1 0d 0d  b7 0b dd f2 61 63 6b 3a  |....:.......ack:|
0000c420  e1 0d 0d bd 3e dd f2 73  68 65 6c 6c 5f 4d 65 73  |....>..shell_Mes|
0000c430  73 61 67 65 5f 50 72 65  51 75 69 74 28 5f 51 25  |sage_PreQuit(_Q%|
0000c440  29 3a ea 63 25 2c 4f 44  25 2c 61 25 2c 73 25 2c  |):.c%,OD%,a%,s%,|
0000c450  50 44 25 3a e7 5f 55 25  21 33 30 30 3e 30 8c 0d  |PD%:._U%!300>0..|
0000c460  0d c0 a7 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |...a%=.shell_Hea|
0000c470  70 42 6c 6f 63 6b 46 65  74 63 68 28 32 35 36 29  |pBlockFetch(256)|
0000c480  3a e3 73 25 3d 30 b8 5f  51 25 21 30 88 34 3a 61  |:.s%=0._Q%!0.4:a|
0000c490  25 21 73 25 3d 5f 51 25  21 73 25 3a ed 73 25 3a  |%!s%=_Q%!s%:.s%:|
0000c4a0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000c4b0  4d 65 73 73 61 67 65 5f  50 72 65 51 75 69 74 3a  |Message_PreQuit:|
0000c4c0  50 72 65 51 75 69 74 20  6d 65 73 73 61 67 65 20  |PreQuit message |
0000c4d0  72 65 63 65 69 76 65 64  22 29 3a 63 25 3d 5f 55  |received"):c%=_U|
0000c4e0  25 21 33 30 30 3a 4f 44  25 3d 61 25 21 34 3a e7  |%!300:OD%=a%!4:.|
0000c4f0  21 61 25 3c 32 34 8c 50  44 25 3d 30 8b 50 44 25  |!a%<24.PD%=0.PD%|
0000c500  3d 61 25 21 32 30 0d 0d  cc 32 61 25 21 26 43 3d  |=a%!20...2a%!&C=|
0000c510  61 25 21 38 3a c8 99 26  34 30 30 45 37 2c 31 39  |a%!8:..&400E7,19|
0000c520  2c 61 25 2c 4f 44 25 3a  e7 a0 28 22 46 4e 22 2b  |,a%,OD%:..("FN"+|
0000c530  24 63 25 29 3c 3e 30 8c  0d 0d cf 0b e7 50 44 25  |$c%)<>0......PD%|
0000c540  80 31 8c 0d 0d d1 11 5f  63 6c 6f 73 65 64 6f 77  |.1....._closedow|
0000c550  6e 25 3d b9 0d 0d d2 35  cc 21 61 25 3d 32 34 3a  |n%=....5.!a%=24:|
0000c560  61 25 21 32 34 3d 35 30  38 3a c8 99 26 34 30 30  |a%!24=508:..&400|
0000c570  45 37 2c 38 2c 61 25 2c  4f 44 25 3a 5f 63 6c 6f  |E7,8,a%,OD%:_clo|
0000c580  73 65 64 6f 77 6e 25 3d  b9 0d 0d d7 05 cd 0d 0d  |sedown%=........|
0000c590  d8 20 cd 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |. .:.shell_HeapB|
0000c5a0  6c 6f 63 6b 52 65 74 75  72 6e 28 61 25 29 0d 0d  |lockReturn(a%)..|
0000c5b0  da 07 cd 3a e1 0d 0d e0  39 dd f2 6c 77 61 6f 72  |...:....9..lwaor|
0000c5c0  69 67 69 6e 28 41 2c f8  49 41 25 2c f8 4d 41 25  |igin(A,.IA%,.MA%|
0000c5d0  29 3a 49 41 25 3d 41 21  30 2d 41 21 31 36 3a 4d  |):IA%=A!0-A!16:M|
0000c5e0  41 25 3d 41 21 26 43 2d  41 21 32 30 3a e1 0d 0d  |A%=A!&C-A!20:...|
0000c5f0  e7 3d dd a4 73 68 65 6c  6c 5f 49 63 6f 6e 62 61  |.=..shell_Iconba|
0000c600  72 28 46 41 25 2c 72 24  2c 48 24 2c 53 44 25 2c  |r(FA%,r$,H$,SD%,|
0000c610  6d 25 2c 5f 42 25 2c 48  43 25 2c 67 43 25 29 3a  |m%,_B%,HC%,gC%):|
0000c620  ea 69 25 3a e7 48 24 3d  22 22 8c 0d 0d ea 4a 21  |.i%:.H$=""....J!|
0000c630  5f 51 25 3d 46 41 25 3a  5f 51 25 21 34 3d 30 3a  |_Q%=FA%:_Q%!4=0:|
0000c640  5f 51 25 21 38 3d 30 3a  5f 51 25 21 26 43 3d 37  |_Q%!8=0:_Q%!&C=7|
0000c650  30 3a 5f 51 25 21 31 36  3d 37 30 3a 5f 51 25 21  |0:_Q%!16=70:_Q%!|
0000c660  32 30 3d 26 33 30 31 41  3a 24 28 5f 51 25 2b 32  |20=&301A:$(_Q%+2|
0000c670  34 29 3d 72 24 0d 0d eb  86 cc 21 5f 51 25 3d 46  |4)=r$.....!_Q%=F|
0000c680  41 25 3a 5f 51 25 21 34  3d 30 3a 5f 51 25 21 38  |A%:_Q%!4=0:_Q%!8|
0000c690  3d 2d 31 36 3a 5f 51 25  21 26 43 3d 53 44 25 3a  |=-16:_Q%!&C=SD%:|
0000c6a0  5f 51 25 21 31 36 3d 39  30 3a 5f 51 25 21 32 30  |_Q%!16=90:_Q%!20|
0000c6b0  3d 26 31 37 30 30 32 31  30 42 3a de 5f 51 25 21  |=&1700210B:._Q%!|
0000c6c0  32 34 26 43 3a de 5f 51  25 21 32 38 a9 28 72 24  |24&C:._Q%!28.(r$|
0000c6d0  29 2b 32 3a 24 28 5f 51  25 21 32 34 29 3d 48 24  |)+2:$(_Q%!24)=H$|
0000c6e0  3a 24 28 5f 51 25 21 32  38 29 3d 22 53 22 2b 72  |:$(_Q%!28)="S"+r|
0000c6f0  24 3a 5f 51 25 21 33 32  3d 26 43 0d 0d f2 42 cd  |$:_Q%!32=&C...B.|
0000c700  3a c8 99 26 34 30 30 43  32 2c 2c 5f 51 25 b8 69  |:..&400C2,,_Q%.i|
0000c710  25 3a f2 73 68 65 6c 6c  5f 41 74 74 61 63 68 4d  |%:.shell_AttachM|
0000c720  65 6e 75 28 2d 32 2c 69  25 2c 6d 25 2c 5f 42 25  |enu(-2,i%,m%,_B%|
0000c730  2c 48 43 25 2c 67 43 25  29 3a 3d 69 25 0d 0d fa  |,HC%,gC%):=i%...|
0000c740  89 dd f2 73 68 65 6c 6c  5f 49 63 6f 6e 62 61 72  |...shell_Iconbar|
0000c750  53 65 74 54 65 78 74 28  76 25 2c 63 46 25 2c 4c  |SetText(v%,cF%,L|
0000c760  24 29 3a ea 6b 25 2c 74  25 3a 6b 25 3d a4 73 68  |$):.k%,t%:k%=.sh|
0000c770  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000c780  63 68 28 34 30 29 3a 74  25 3d a4 73 68 65 6c 6c  |ch(40):t%=.shell|
0000c790  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000c7a0  33 36 29 3a 74 25 21 32  30 3d 30 3a e7 a4 73 68  |36):t%!20=0:..sh|
0000c7b0  65 6c 6c 5f 4f 53 43 68  65 63 6b 56 65 72 73 69  |ell_OSCheckVersi|
0000c7c0  6f 6e 28 33 29 8c 0d 0e  00 18 e7 76 25 3d 2d 31  |on(3)......v%=-1|
0000c7d0  8c 21 74 25 3d 2d 32 8b  21 74 25 3d 76 25 0d 0e  |.!t%=-2.!t%=v%..|
0000c7e0  01 10 c8 99 26 34 30 30  43 42 2c 2c 74 25 0d 0e  |....&400CB,,t%..|
0000c7f0  02 9d cd 3a 21 6b 25 3d  76 25 3a 6b 25 21 34 3d  |...:!k%=v%:k%!4=|
0000c800  63 46 25 3a c8 99 26 34  30 30 43 45 2c 2c 6b 25  |cF%:..&400CE,,k%|
0000c810  3a 24 28 6b 25 21 32 38  29 3d 4c 24 3a c8 99 26  |:$(k%!28)=L$:..&|
0000c820  34 30 30 44 31 2c 2d 31  2c 6b 25 21 38 2d 26 36  |400D1,-1,k%!8-&6|
0000c830  34 2d 74 25 21 32 30 2c  6b 25 21 26 43 2c 6b 25  |4-t%!20,k%!&C,k%|
0000c840  21 31 36 2b 26 36 34 2d  74 25 21 32 30 2c 6b 25  |!16+&64-t%!20,k%|
0000c850  21 32 30 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |!20:.shell_HeapB|
0000c860  6c 6f 63 6b 52 65 74 75  72 6e 28 6b 25 29 3a f2  |lockReturn(k%):.|
0000c870  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
0000c880  65 74 75 72 6e 28 74 25  29 3a e1 0d 0e 0e 8f dd  |eturn(t%):......|
0000c890  a4 73 68 65 6c 6c 5f 57  72 69 74 61 62 6c 65 49  |.shell_WritableI|
0000c8a0  63 6f 6e 48 61 6e 64 6c  65 72 28 62 25 2c 66 25  |conHandler(b%,f%|
0000c8b0  2c 52 41 25 29 3a ea 41  42 25 2c 41 43 25 2c 42  |,RA%):.AB%,AC%,B|
0000c8c0  43 25 2c 67 25 3a ea 61  44 25 2c 64 44 25 2c 78  |C%,g%:.aD%,dD%,x|
0000c8d0  41 25 2c 74 41 25 2c 48  42 25 2c 51 47 25 2c 42  |A%,tA%,HB%,QG%,B|
0000c8e0  41 25 3a 42 41 25 3d a4  73 68 65 6c 6c 5f 48 65  |A%:BA%=.shell_He|
0000c8f0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 34 30  |apBlockFetch(&40|
0000c900  30 29 3a c8 99 26 34 30  30 44 33 2c 2c 42 41 25  |0):..&400D3,,BA%|
0000c910  3a e7 21 42 41 25 3d 2d  31 8c 0d 0e 17 22 f2 73  |:.!BA%=-1....".s|
0000c920  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
0000c930  74 75 72 6e 28 42 41 25  29 3a 3d a3 0d 0e 19 3f  |turn(BA%):=....?|
0000c940  cd 3a c8 99 26 34 30 30  44 36 2c 62 25 2c 42 41  |.:..&400D6,b%,BA|
0000c950  25 2c 26 34 30 45 30 30  30 2c 26 45 30 30 30 3a  |%,&40E000,&E000:|
0000c960  41 43 25 3d 21 42 41 25  3a 67 25 3d 30 3a f5 3a  |AC%=!BA%:g%=0:.:|
0000c970  e7 42 41 25 21 67 25 3d  66 25 8c 0d 0e 21 21 61  |.BA%!g%=f%...!!a|
0000c980  44 25 3d 42 41 25 21 28  67 25 2d 34 29 3a 64 44  |D%=BA%!(g%-4):dD|
0000c990  25 3d 42 41 25 21 28 67  25 2b 34 29 0d 0e 23 2c  |%=BA%!(g%+4)..#,|
0000c9a0  cd 3a 67 25 2b 3d 34 3a  fd 42 41 25 21 67 25 3d  |.:g%+=4:.BA%!g%=|
0000c9b0  2d 31 3a 42 43 25 3d 42  41 25 21 28 67 25 2d 34  |-1:BC%=BA%!(g%-4|
0000c9c0  29 3a c8 8e 52 41 25 ca  0d 0e 29 25 c9 26 44 3a  |):..RA%...)%.&D:|
0000c9d0  f2 73 68 65 6c 6c 5f 46  61 6b 65 4d 6f 75 73 65  |.shell_FakeMouse|
0000c9e0  43 6c 69 63 6b 28 62 25  2c 30 2c 34 29 0d 0e 2b  |Click(b%,0,4)..+|
0000c9f0  15 c9 33 39 38 2c 33 39  34 3a e7 66 25 3d 42 43  |..398,394:.f%=BC|
0000ca00  25 8c 0d 0e 2d 3a c8 99  26 34 30 30 44 32 2c 62  |%...-:..&400D2,b|
0000ca10  25 2c 41 43 25 2c 2d 31  2c 2d 31 2c 2d 31 2c a9  |%,AC%,-1,-1,-1,.|
0000ca20  28 a4 73 68 65 6c 6c 5f  49 63 6f 6e 47 65 74 44  |(.shell_IconGetD|
0000ca30  61 74 61 28 62 25 2c 41  43 25 29 29 0d 0e 2e 3b  |ata(b%,AC%))...;|
0000ca40  cc c8 99 26 34 30 30 44  32 2c 62 25 2c 64 44 25  |...&400D2,b%,dD%|
0000ca50  2c 2d 31 2c 2d 31 2c 2d  31 2c a9 28 a4 73 68 65  |,-1,-1,-1,.(.she|
0000ca60  6c 6c 5f 49 63 6f 6e 47  65 74 44 61 74 61 28 62  |ll_IconGetData(b|
0000ca70  25 2c 64 44 25 29 29 0d  0e 30 05 cd 0d 0e 31 15  |%,dD%))..0....1.|
0000ca80  c9 33 39 39 2c 34 31 30  3a e7 66 25 3d 41 43 25  |.399,410:.f%=AC%|
0000ca90  8c 0d 0e 33 3a c8 99 26  34 30 30 44 32 2c 62 25  |...3:..&400D2,b%|
0000caa0  2c 42 43 25 2c 2d 31 2c  2d 31 2c 2d 31 2c a9 28  |,BC%,-1,-1,-1,.(|
0000cab0  a4 73 68 65 6c 6c 5f 49  63 6f 6e 47 65 74 44 61  |.shell_IconGetDa|
0000cac0  74 61 28 62 25 2c 42 43  25 29 29 0d 0e 34 3b cc  |ta(b%,BC%))..4;.|
0000cad0  c8 99 26 34 30 30 44 32  2c 62 25 2c 61 44 25 2c  |..&400D2,b%,aD%,|
0000cae0  2d 31 2c 2d 31 2c 2d 31  2c a9 28 a4 73 68 65 6c  |-1,-1,-1,.(.shel|
0000caf0  6c 5f 49 63 6f 6e 47 65  74 44 61 74 61 28 62 25  |l_IconGetData(b%|
0000cb00  2c 61 44 25 29 29 0d 0e  36 05 cd 0d 0e 37 3f c9  |,aD%))..6....7?.|
0000cb10  34 33 31 3a c8 99 26 34  30 30 44 32 2c 62 25 2c  |431:..&400D2,b%,|
0000cb20  41 43 25 2c 2d 31 2c 2d  31 2c 2d 31 2c a9 28 a4  |AC%,-1,-1,-1,.(.|
0000cb30  73 68 65 6c 6c 5f 49 63  6f 6e 47 65 74 44 61 74  |shell_IconGetDat|
0000cb40  61 28 62 25 2c 41 43 25  29 29 0d 0e 39 3f c9 34  |a(b%,AC%))..9?.4|
0000cb50  33 30 3a c8 99 26 34 30  30 44 32 2c 62 25 2c 42  |30:..&400D2,b%,B|
0000cb60  43 25 2c 2d 31 2c 2d 31  2c 2d 31 2c a9 28 a4 73  |C%,-1,-1,-1,.(.s|
0000cb70  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 44 61 74 61  |hell_IconGetData|
0000cb80  28 62 25 2c 42 43 25 29  29 0d 0e 3b 24 cb 3a f2  |(b%,BC%))..;$.:.|
0000cb90  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
0000cba0  65 74 75 72 6e 28 42 41  25 29 3a 3d b9 0d 0e 42  |eturn(BA%):=...B|
0000cbb0  5f dd f2 73 68 65 6c 6c  5f 46 61 6b 65 4d 6f 75  |_..shell_FakeMou|
0000cbc0  73 65 43 6c 69 63 6b 28  62 25 2c 66 25 2c 59 42  |seClick(b%,f%,YB|
0000cbd0  25 29 3a c8 99 36 2c 26  46 2c 31 3a 5f 51 25 21  |%):..6,&F,1:_Q%!|
0000cbe0  38 3d 59 42 25 3a 5f 51  25 21 26 43 3d 62 25 3a  |8=YB%:_Q%!&C=b%:|
0000cbf0  5f 51 25 21 31 36 3d 66  25 3a f2 73 68 65 6c 6c  |_Q%!16=f%:.shell|
0000cc00  5f 41 63 74 69 6f 6e 28  36 29 3a e1 0d 0e 4a ca  |_Action(6):...J.|
0000cc10  dd a4 73 68 65 6c 6c 5f  49 63 6f 6e 43 72 65 61  |..shell_IconCrea|
0000cc20  74 65 28 62 25 2c 42 42  25 2c 6b 41 25 2c 53 44  |te(b%,BB%,kA%,SD|
0000cc30  25 2c 76 25 2c 6c 44 25  2c 74 44 25 2c 61 46 25  |%,v%,lD%,tD%,aF%|
0000cc40  2c 50 24 2c 76 41 25 2c  6e 42 25 2c 4b 24 29 3a  |,P$,vA%,nB%,K$):|
0000cc50  ea 6d 46 25 2c 69 25 2c  77 42 25 2c 6b 25 3a 6b  |.mF%,i%,wB%,k%:k|
0000cc60  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
0000cc70  63 6b 46 65 74 63 68 28  34 30 29 3a 6b 25 21 30  |ckFetch(40):k%!0|
0000cc80  3d 62 25 3a 6b 25 21 34  3d 42 42 25 3a 6b 25 21  |=b%:k%!4=BB%:k%!|
0000cc90  38 3d 6b 41 25 3a 6b 25  21 26 43 3d 42 42 25 2b  |8=kA%:k%!&C=BB%+|
0000cca0  53 44 25 3a 6b 25 21 31  36 3d 6b 41 25 2b 76 25  |SD%:k%!16=kA%+v%|
0000ccb0  3a 6b 25 21 32 30 3d 61  46 25 84 74 44 25 3c 3c  |:k%!20=aF%.tD%<<|
0000ccc0  32 38 84 6c 44 25 3c 3c  32 34 3a e7 6b 25 21 32  |28.lD%<<24:.k%!2|
0000ccd0  30 80 32 35 36 8c 0d 0e  52 23 6d 46 25 3d a7 50  |0.256...R#mF%=.P|
0000cce0  24 2c 22 2c 22 29 3a 6b  25 21 32 34 3d 76 41 25  |$,","):k%!24=vA%|
0000ccf0  3a e7 4b 24 3c 3e 22 22  8c 0d 0e 55 36 77 42 25  |:.K$<>""...U6wB%|
0000cd00  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000cd10  6b 46 65 74 63 68 28 a9  4b 24 2b 31 29 3a 24 77  |kFetch(.K$+1):$w|
0000cd20  42 25 3d 4b 24 3a 6b 25  21 32 38 3d 77 42 25 0d  |B%=K$:k%!28=wB%.|
0000cd30  0e 58 0d cc 6b 25 21 32  38 3d 2d 31 0d 0e 5a 0f  |.X..k%!28=-1..Z.|
0000cd40  cd 3a 6b 25 21 33 32 3d  6e 42 25 0d 0e 5c 15 cc  |.:k%!32=nB%..\..|
0000cd50  24 28 6b 25 2b 32 34 29  3d c0 50 24 2c 26 42 29  |$(k%+24)=.P$,&B)|
0000cd60  0d 0e 5e 34 cd 3a c8 99  26 34 30 30 43 32 2c 2c  |..^4.:..&400C2,,|
0000cd70  6b 25 b8 69 25 3a f2 73  68 65 6c 6c 5f 48 65 61  |k%.i%:.shell_Hea|
0000cd80  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 6b 25 29  |pBlockReturn(k%)|
0000cd90  3a 3d 69 25 0d 0e 65 3c  dd f2 73 68 65 6c 6c 5f  |:=i%..e<..shell_|
0000cda0  49 63 6f 6e 44 65 6c 65  74 65 28 62 25 2c 66 25  |IconDelete(b%,f%|
0000cdb0  29 3a f2 73 68 65 6c 6c  5f 44 6f 49 63 6f 6e 44  |):.shell_DoIconD|
0000cdc0  65 6c 65 74 65 28 62 25  2c 66 25 2c a3 29 3a e1  |elete(b%,f%,.):.|
0000cdd0  0d 0e 6b 3d dd f2 73 68  65 6c 6c 5f 49 63 6f 6e  |..k=..shell_Icon|
0000cde0  44 65 6c 65 74 65 32 28  62 25 2c 66 25 29 3a f2  |Delete2(b%,f%):.|
0000cdf0  73 68 65 6c 6c 5f 44 6f  49 63 6f 6e 44 65 6c 65  |shell_DoIconDele|
0000ce00  74 65 28 62 25 2c 66 25  2c b9 29 3a e1 0d 0e 71  |te(b%,f%,.):...q|
0000ce10  f1 dd f2 73 68 65 6c 6c  5f 44 6f 49 63 6f 6e 44  |...shell_DoIconD|
0000ce20  65 6c 65 74 65 28 62 25  2c 66 25 2c 6f 46 25 29  |elete(b%,f%,oF%)|
0000ce30  3a ea 61 25 2c 4b 41 25  2c 50 41 25 2c 56 41 25  |:.a%,KA%,PA%,VA%|
0000ce40  2c 63 41 25 3a 61 25 3d  a4 73 68 65 6c 6c 5f 48  |,cA%:a%=.shell_H|
0000ce50  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 34 30  |eapBlockFetch(40|
0000ce60  29 3a 61 25 21 30 3d 62  25 3a 61 25 21 34 3d 66  |):a%!0=b%:a%!4=f|
0000ce70  25 3a c8 99 26 34 30 30  43 45 2c 2c 61 25 3a c8  |%:..&400CE,,a%:.|
0000ce80  99 26 38 31 36 38 41 2c  2c 61 25 2b 38 3a 4b 41  |.&8168A,,a%+8:KA|
0000ce90  25 3d 61 25 21 38 3a 50  41 25 3d 61 25 21 26 43  |%=a%!8:PA%=a%!&C|
0000cea0  3a 56 41 25 3d 61 25 21  31 36 3a 63 41 25 3d 61  |:VA%=a%!16:cA%=a|
0000ceb0  25 21 32 30 3a c8 99 26  34 30 30 43 45 2c 2c 61  |%!20:..&400CE,,a|
0000cec0  25 3a e7 a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |%:..shell_HeapBl|
0000ced0  6f 63 6b 45 78 69 73 74  73 28 61 25 21 32 38 29  |ockExists(a%!28)|
0000cee0  8c f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000cef0  6b 52 65 74 75 72 6e 28  61 25 21 32 38 29 0d 0e  |kReturn(a%!28)..|
0000cf00  7a 40 e7 a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |z@..shell_HeapBl|
0000cf10  6f 63 6b 45 78 69 73 74  73 28 61 25 21 33 32 29  |ockExists(a%!32)|
0000cf20  8c f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000cf30  6b 52 65 74 75 72 6e 28  61 25 21 33 32 29 0d 0e  |kReturn(a%!32)..|
0000cf40  7b 16 c8 99 26 34 30 30  43 34 2c 2c 61 25 3a e7  |{...&400C4,,a%:.|
0000cf50  6f 46 25 8c 0d 0e 7d 1f  c8 99 26 34 30 30 44 31  |oF%...}...&400D1|
0000cf60  2c 62 25 2c 4b 41 25 2c  50 41 25 2c 56 41 25 2c  |,b%,KA%,PA%,VA%,|
0000cf70  63 41 25 0d 0e 7e 22 cd  3a f2 73 68 65 6c 6c 5f  |cA%..~".:.shell_|
0000cf80  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000cf90  61 25 29 3a e1 0d 0e 85  57 dd f2 73 68 65 6c 6c  |a%):....W..shell|
0000cfa0  5f 49 63 6f 6e 50 75 74  44 61 74 61 28 4e 41 25  |_IconPutData(NA%|
0000cfb0  2c 75 41 25 2c 50 24 2c  49 29 3a ea 61 25 2c 4f  |,uA%,P$,I):.a%,O|
0000cfc0  41 24 3a 4f 41 24 3d a4  73 68 65 6c 6c 5f 49 63  |A$:OA$=.shell_Ic|
0000cfd0  6f 6e 47 65 74 44 61 74  61 28 4e 41 25 2c 75 41  |onGetData(NA%,uA|
0000cfe0  25 29 3a e7 50 24 3c 3e  4f 41 24 8c 0d 0e 89 53  |%):.P$<>OA$....S|
0000cff0  61 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |a%=.shell_HeapBl|
0000d000  6f 63 6b 46 65 74 63 68  28 34 30 29 3a 61 25 21  |ockFetch(40):a%!|
0000d010  30 3d 4e 41 25 3a 61 25  21 34 3d 75 41 25 3a c8  |0=NA%:a%!4=uA%:.|
0000d020  99 26 34 30 30 43 45 2c  2c 61 25 3a e7 28 61 25  |.&400CE,,a%:.(a%|
0000d030  21 32 34 80 28 31 3c 3c  38 29 29 3c 3e 30 8c 0d  |!24.(1<<8))<>0..|
0000d040  0e 8e 35 e7 a9 50 24 3e  61 25 21 33 36 8c 85 39  |..5..P$>a%!36..9|
0000d050  39 2c a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |9,.shell_Message|
0000d060  4e 6f 41 72 67 73 28 22  53 48 45 4c 4c 4d 53 47  |NoArgs("SHELLMSG|
0000d070  31 32 22 29 0d 0e 8f 0f  24 28 61 25 21 32 38 29  |12")....$(a%!28)|
0000d080  3d 50 24 0d 0e 90 15 cc  24 28 61 25 2b 32 38 29  |=P$.....$(a%+28)|
0000d090  3d c0 50 24 2c 26 42 29  0d 0e 92 0c cd 3a e7 49  |=.P$,&B).....:.I|
0000d0a0  3c 3e 30 8c 0d 0e 94 1f  61 25 21 38 3d 30 3a 61  |<>0.....a%!8=0:a|
0000d0b0  25 21 26 43 3d 30 3a c8  99 26 34 30 30 43 44 2c  |%!&C=0:..&400CD,|
0000d0c0  2c 61 25 0d 0e 96 20 cd  3a f2 73 68 65 6c 6c 5f  |,a%... .:.shell_|
0000d0d0  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000d0e0  61 25 29 0d 0e 98 07 cd  3a e1 0d 0e 9e 7a dd f2  |a%).....:....z..|
0000d0f0  73 68 65 6c 6c 5f 49 63  6f 6e 50 75 74 44 61 74  |shell_IconPutDat|
0000d100  61 4e 6f 77 28 4e 41 25  2c 75 41 25 2c 50 24 29  |aNow(NA%,uA%,P$)|
0000d110  3a ea 61 25 3a 61 25 3d  a4 73 68 65 6c 6c 5f 48  |:.a%:a%=.shell_H|
0000d120  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 35 30  |eapBlockFetch(50|
0000d130  29 3a 61 25 21 30 3d 4e  41 25 3a 61 25 21 34 3d  |):a%!0=NA%:a%!4=|
0000d140  75 41 25 3a c8 99 26 34  30 30 43 45 2c 2c 61 25  |uA%:..&400CE,,a%|
0000d150  3a e7 28 61 25 21 32 34  80 28 31 3c 3c 38 29 29  |:.(a%!24.(1<<8))|
0000d160  3c 3e 30 8c 0d 0e a5 35  e7 a9 50 24 3e 61 25 21  |<>0....5..P$>a%!|
0000d170  33 36 8c 85 39 39 2c a4  73 68 65 6c 6c 5f 4d 65  |36..99,.shell_Me|
0000d180  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
0000d190  4c 4c 4d 53 47 31 32 22  29 0d 0e a6 0f 24 28 61  |LLMSG12")....$(a|
0000d1a0  25 21 32 38 29 3d 50 24  0d 0e a7 15 cc 24 28 61  |%!28)=P$.....$(a|
0000d1b0  25 2b 32 38 29 3d c0 50  24 2c 26 42 29 0d 0e a9  |%+28)=.P$,&B)...|
0000d1c0  50 cd 3a 61 25 21 38 3d  30 3a 61 25 21 26 43 3d  |P.:a%!8=0:a%!&C=|
0000d1d0  30 3a c8 99 26 34 30 30  43 44 2c 2c 61 25 3a f2  |0:..&400CD,,a%:.|
0000d1e0  73 68 65 6c 6c 5f 45 6e  73 75 72 65 50 6f 6c 6c  |shell_EnsurePoll|
0000d1f0  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
0000d200  6b 52 65 74 75 72 6e 28  61 25 29 3a e1 0d 0e b3  |kReturn(a%):....|
0000d210  f3 dd a4 73 68 65 6c 6c  5f 49 63 6f 6e 4e 65 77  |...shell_IconNew|
0000d220  53 70 72 69 74 65 28 4e  41 25 2c 75 41 25 2c 6b  |Sprite(NA%,uA%,k|
0000d230  41 24 2c 49 29 3a ea 6b  25 3a 6b 25 3d a4 73 68  |A$,I):.k%:k%=.sh|
0000d240  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000d250  63 68 28 34 30 29 3a 6b  25 21 30 3d 4e 41 25 3a  |ch(40):k%!0=NA%:|
0000d260  6b 25 21 34 3d 75 41 25  3a c8 99 26 34 30 30 43  |k%!4=uA%:..&400C|
0000d270  45 2c 2c 6b 25 3a c8 99  26 34 30 30 43 34 2c 2c  |E,,k%:..&400C4,,|
0000d280  6b 25 3a 6b 25 21 34 3d  6b 25 21 38 3a 6b 25 21  |k%:k%!4=k%!8:k%!|
0000d290  38 3d 6b 25 21 26 43 3a  6b 25 21 26 43 3d 6b 25  |8=k%!&C:k%!&C=k%|
0000d2a0  21 31 36 3a 6b 25 21 31  36 3d 6b 25 21 32 30 3a  |!16:k%!16=k%!20:|
0000d2b0  6b 25 21 32 30 3d 6b 25  21 32 34 3a 24 28 6b 25  |k%!20=k%!24:$(k%|
0000d2c0  2b 32 34 29 3d 6b 41 24  3a c8 99 26 34 30 30 43  |+24)=kA$:..&400C|
0000d2d0  32 2c 2c 6b 25 b8 75 41  25 3a e7 49 8c c8 99 26  |2,,k%.uA%:.I...&|
0000d2e0  34 30 30 44 31 2c 6b 25  21 30 2c 6b 25 21 34 2c  |400D1,k%!0,k%!4,|
0000d2f0  6b 25 21 38 2c 6b 25 21  26 43 2c 6b 25 21 31 36  |k%!8,k%!&C,k%!16|
0000d300  0d 0e bd 23 f2 73 68 65  6c 6c 5f 48 65 61 70 42  |...#.shell_HeapB|
0000d310  6c 6f 63 6b 52 65 74 75  72 6e 28 6b 25 29 3a 3d  |lockReturn(k%):=|
0000d320  75 41 25 0d 0e c3 8e dd  a4 73 68 65 6c 6c 5f 49  |uA%......shell_I|
0000d330  63 6f 6e 47 65 74 44 61  74 61 28 4e 41 25 2c 75  |conGetData(NA%,u|
0000d340  41 25 29 3a ea 4f 24 2c  6b 25 3a 6b 25 3d a4 73  |A%):.O$,k%:k%=.s|
0000d350  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
0000d360  74 63 68 28 34 30 29 3a  6b 25 21 30 3d 4e 41 25  |tch(40):k%!0=NA%|
0000d370  3a 6b 25 21 34 3d 75 41  25 3a c8 99 26 34 30 30  |:k%!4=uA%:..&400|
0000d380  43 45 2c 2c 6b 25 3a e7  28 6b 25 21 32 34 80 28  |CE,,k%:.(k%!24.(|
0000d390  31 3c 3c 38 29 29 3c 3e  30 8c 4f 24 3d 24 28 6b  |1<<8))<>0.O$=$(k|
0000d3a0  25 21 32 38 29 8b 4f 24  3d 24 28 6b 25 2b 32 38  |%!28).O$=$(k%+28|
0000d3b0  29 0d 0e ca 22 f2 73 68  65 6c 6c 5f 48 65 61 70  |)...".shell_Heap|
0000d3c0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 6b 25 29 3a  |BlockReturn(k%):|
0000d3d0  3d 4f 24 0d 0e d0 dc dd  a4 73 68 65 6c 6c 5f 49  |=O$......shell_I|
0000d3e0  63 6f 6e 4d 6f 76 65 32  28 62 25 2c 66 25 2c 44  |conMove2(b%,f%,D|
0000d3f0  46 25 2c 45 46 25 29 3a  ea 7a 25 3a 7a 25 3d a4  |F%,EF%):.z%:z%=.|
0000d400  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
0000d410  65 74 63 68 28 34 30 29  3a 21 7a 25 3d 62 25 3a  |etch(40):!z%=b%:|
0000d420  7a 25 21 34 3d 66 25 3a  c8 99 26 34 30 30 43 45  |z%!4=f%:..&400CE|
0000d430  2c 2c 7a 25 3a 7a 25 21  38 2b 3d 44 46 25 3a 7a  |,,z%:z%!8+=DF%:z|
0000d440  25 21 31 36 2b 3d 44 46  25 3a 7a 25 21 26 43 2b  |%!16+=DF%:z%!&C+|
0000d450  3d 45 46 25 3a 7a 25 21  32 30 2b 3d 45 46 25 3a  |=EF%:z%!20+=EF%:|
0000d460  66 25 3d a4 73 68 65 6c  6c 5f 49 63 6f 6e 4d 6f  |f%=.shell_IconMo|
0000d470  76 65 28 62 25 2c 66 25  2c 7a 25 21 38 2c 7a 25  |ve(b%,f%,z%!8,z%|
0000d480  21 26 43 2c 7a 25 21 31  36 2c 7a 25 21 32 30 29  |!&C,z%!16,z%!20)|
0000d490  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
0000d4a0  6b 52 65 74 75 72 6e 28  7a 25 29 3a 3d 66 25 0d  |kReturn(z%):=f%.|
0000d4b0  0e dd 55 dd a4 73 68 65  6c 6c 5f 49 63 6f 6e 52  |..U..shell_IconR|
0000d4c0  65 73 69 7a 65 28 62 25  2c 66 25 2c 4b 41 25 2c  |esize(b%,f%,KA%,|
0000d4d0  50 41 25 2c 56 41 25 2c  63 41 25 29 3a 3d a4 73  |PA%,VA%,cA%):=.s|
0000d4e0  68 65 6c 6c 5f 49 63 6f  6e 4d 6f 76 65 28 62 25  |hell_IconMove(b%|
0000d4f0  2c 66 25 2c 4b 41 25 2c  50 41 25 2c 56 41 25 2c  |,f%,KA%,PA%,VA%,|
0000d500  63 41 25 29 0d 0e e2 e4  dd a4 73 68 65 6c 6c 5f  |cA%)......shell_|
0000d510  49 63 6f 6e 4d 6f 76 65  28 62 25 2c 66 25 2c 4b  |IconMove(b%,f%,K|
0000d520  41 25 2c 50 41 25 2c 56  41 25 2c 63 41 25 29 3a  |A%,PA%,VA%,cA%):|
0000d530  ea 72 25 2c 48 47 25 2c  44 47 25 2c 43 42 25 2c  |.r%,HG%,DG%,CB%,|
0000d540  61 25 3a ea 68 45 25 2c  6c 45 25 2c 74 45 25 2c  |a%:.hE%,lE%,tE%,|
0000d550  5f 45 25 3a 72 25 3d a4  73 68 65 6c 6c 5f 48 65  |_E%:r%=.shell_He|
0000d560  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 34 30 29  |apBlockFetch(40)|
0000d570  3a 61 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:a%=.shell_HeapB|
0000d580  6c 6f 63 6b 46 65 74 63  68 28 34 30 29 3a 21 72  |lockFetch(40):!r|
0000d590  25 3d 62 25 3a 72 25 21  34 3d 66 25 3a c8 99 26  |%=b%:r%!4=f%:..&|
0000d5a0  34 30 30 43 45 2c 2c 72  25 3a 21 61 25 3d 62 25  |400CE,,r%:!a%=b%|
0000d5b0  3a 61 25 21 34 3d 66 25  3a c8 99 26 34 30 30 43  |:a%!4=f%:..&400C|
0000d5c0  45 2c 2c 61 25 3a c8 99  26 38 31 36 38 41 2c 2c  |E,,a%:..&8168A,,|
0000d5d0  61 25 2b 38 3a 75 46 25  3d 72 25 21 32 34 3a 4b  |a%+8:uF%=r%!24:K|
0000d5e0  44 25 3d 72 25 2b 32 38  0d 0e ec f0 68 45 25 3d  |D%=r%+28....hE%=|
0000d5f0  75 46 25 3a 6c 45 25 3d  4b 44 25 21 30 3a 74 45  |uF%:lE%=KD%!0:tE|
0000d600  25 3d 4b 44 25 21 34 3a  5f 45 25 3d 4b 44 25 21  |%=KD%!4:_E%=KD%!|
0000d610  38 3a 43 42 25 3d 72 25  21 38 2d 61 25 21 38 3a  |8:CB%=r%!8-a%!8:|
0000d620  c8 99 26 34 30 30 43 34  2c 2c 72 25 3a c8 99 26  |..&400C4,,r%:..&|
0000d630  34 30 30 44 31 2c 21 72  25 2c 72 25 21 38 2d 43  |400D1,!r%,r%!8-C|
0000d640  42 25 2c 72 25 21 26 43  2d 43 42 25 2c 72 25 21  |B%,r%!&C-CB%,r%!|
0000d650  31 36 2b 43 42 25 2c 72  25 21 32 30 2b 43 42 25  |16+CB%,r%!20+CB%|
0000d660  3a 66 25 3d a4 73 68 65  6c 6c 5f 43 72 65 61 74  |:f%=.shell_Creat|
0000d670  65 49 63 6f 6e 32 28 62  25 2c 4b 41 25 2c 50 41  |eIcon2(b%,KA%,PA|
0000d680  25 2c 56 41 25 2c 63 41  25 2c 68 45 25 2c 6c 45  |%,VA%,cA%,hE%,lE|
0000d690  25 2c 74 45 25 2c 5f 45  25 2c 43 42 25 29 3a f2  |%,tE%,_E%,CB%):.|
0000d6a0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
0000d6b0  65 74 75 72 6e 28 72 25  29 3a f2 73 68 65 6c 6c  |eturn(r%):.shell|
0000d6c0  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
0000d6d0  28 61 25 29 3a 3d 66 25  0d 0e f7 b8 dd a4 73 68  |(a%):=f%......sh|
0000d6e0  65 6c 6c 5f 43 72 65 61  74 65 49 63 6f 6e 32 28  |ell_CreateIcon2(|
0000d6f0  69 25 2c 4b 41 25 2c 50  41 25 2c 56 41 25 2c 63  |i%,KA%,PA%,VA%,c|
0000d700  41 25 2c 6e 25 2c 62 46  25 2c 4b 46 25 2c 64 46  |A%,n%,bF%,KF%,dF|
0000d710  25 2c 43 42 25 29 3a ea  79 25 2c 4a 41 25 2c 48  |%,CB%):.y%,JA%,H|
0000d720  24 2c 63 24 2c 42 42 25  2c 6b 41 25 3a 4a 41 25  |$,c$,BB%,kA%:JA%|
0000d730  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000d740  6b 46 65 74 63 68 28 36  30 29 3a 21 4a 41 25 3d  |kFetch(60):!JA%=|
0000d750  69 25 3a 4a 41 25 21 32  30 3d 6e 25 3a 4a 41 25  |i%:JA%!20=n%:JA%|
0000d760  21 32 34 3d 62 46 25 3a  4a 41 25 21 32 38 3d 4b  |!24=bF%:JA%!28=K|
0000d770  46 25 3a 4a 41 25 21 33  32 3d 64 46 25 3a 48 24  |F%:JA%!32=dF%:H$|
0000d780  3d 22 22 3a 63 24 3d 22  22 3a e7 6e 25 80 31 8c  |="":c$="":.n%.1.|
0000d790  0d 0e fe 24 e7 6e 25 80  32 35 36 48 24 3d 24 28  |...$.n%.256H$=$(|
0000d7a0  4a 41 25 21 32 34 29 8b  48 24 3d 24 28 4a 41 25  |JA%!24).H$=$(JA%|
0000d7b0  2b 32 34 29 0d 0e ff 0c  cd 3a e7 6e 25 80 32 8c  |+24).....:.n%.2.|
0000d7c0  0d 0f 01 0c e7 6e 25 80  32 35 36 8c 0d 0f 02 28  |.....n%.256....(|
0000d7d0  63 24 3d a4 73 68 65 6c  6c 5f 49 63 6f 6e 47 65  |c$=.shell_IconGe|
0000d7e0  74 43 6f 6d 6d 61 6e 64  28 4a 41 25 21 32 38 2c  |tCommand(JA%!28,|
0000d7f0  22 53 22 29 0d 0f 03 11  cc 63 24 3d 24 28 4a 41  |"S").....c$=$(JA|
0000d800  25 2b 32 34 29 0d 0f 05  05 cd 0d 0f 06 38 cd 3a  |%+24)........8.:|
0000d810  f2 73 68 65 6c 6c 5f 47  65 74 4d 69 6e 58 59 28  |.shell_GetMinXY(|
0000d820  6e 25 2c 48 24 2c 63 24  29 3a e7 56 41 25 2d 4b  |n%,H$,c$):.VA%-K|
0000d830  41 25 3c 42 42 25 8c 56  41 25 3d 4b 41 25 2b 42  |A%<BB%.VA%=KA%+B|
0000d840  42 25 0d 0f 09 1c e7 63  41 25 2d 50 41 25 3c 6b  |B%.....cA%-PA%<k|
0000d850  41 25 8c 63 41 25 3d 50  41 25 2b 6b 41 25 0d 0f  |A%.cA%=PA%+kA%..|
0000d860  0a af 4a 41 25 21 34 3d  4b 41 25 3a 4a 41 25 21  |..JA%!4=KA%:JA%!|
0000d870  38 3d 50 41 25 3a 4a 41  25 21 26 43 3d 56 41 25  |8=PA%:JA%!&C=VA%|
0000d880  3a 4a 41 25 21 31 36 3d  63 41 25 3a c8 99 26 34  |:JA%!16=cA%:..&4|
0000d890  30 30 43 32 2c 2c 4a 41  25 b8 79 25 3a c8 99 26  |00C2,,JA%.y%:..&|
0000d8a0  34 30 30 44 31 2c 21 4a  41 25 2c 4a 41 25 21 34  |400D1,!JA%,JA%!4|
0000d8b0  2d 43 42 25 2c 4a 41 25  21 38 2d 43 42 25 2c 4a  |-CB%,JA%!8-CB%,J|
0000d8c0  41 25 21 26 43 2b 43 42  25 2c 4a 41 25 21 31 36  |A%!&C+CB%,JA%!16|
0000d8d0  2b 43 42 25 3a c8 99 26  34 30 30 44 33 2c 2c 4a  |+CB%:..&400D3,,J|
0000d8e0  41 25 3a e7 21 4a 41 25  3d 69 25 3a e7 4a 41 25  |A%:.!JA%=i%:.JA%|
0000d8f0  21 34 3d 79 25 3a c8 99  26 34 30 30 44 32 2c 69  |!4=y%:..&400D2,i|
0000d900  25 2c 79 25 2c 30 2c 30  2c 2d 31 2c 30 0d 0f 0f  |%,y%,0,0,-1,0...|
0000d910  23 f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |#.shell_HeapBloc|
0000d920  6b 52 65 74 75 72 6e 28  4a 41 25 29 3a 3d 79 25  |kReturn(JA%):=y%|
0000d930  0d 0f 15 51 dd f2 73 68  65 6c 6c 5f 47 65 74 4d  |...Q..shell_GetM|
0000d940  69 6e 58 59 28 6e 25 2c  48 24 2c 63 24 29 3a ea  |inXY(n%,H$,c$):.|
0000d950  4b 41 25 2c 50 41 25 2c  56 41 25 2c 63 41 25 2c  |KA%,PA%,VA%,cA%,|
0000d960  74 41 25 2c 48 42 25 3a  42 42 25 3d 30 3a 6b 41  |tA%,HB%:BB%=0:kA|
0000d970  25 3d 30 3a e7 6e 25 80  31 80 48 24 3c 3e 22 22  |%=0:.n%.1.H$<>""|
0000d980  8c 0d 0f 19 0b e7 6e 25  80 36 34 8c 0d 0f 1a 81  |......n%.64.....|
0000d990  c8 99 26 34 30 30 38 34  2c 6e 25 3e 3e 32 34 b8  |..&40084,n%>>24.|
0000d9a0  2c 2c 50 41 25 2c 2c 63  41 25 3a c8 99 26 34 30  |,,PA%,,cA%:..&40|
0000d9b0  30 39 37 2c 2c bd 32 36  2b bd 28 6e 25 3e 3e 32  |097,,.26+.(n%>>2|
0000d9c0  34 29 2b 48 24 b8 2c 4b  41 25 2c 2c 56 41 25 3a  |4)+H$.,KA%,,VA%:|
0000d9d0  c8 99 26 34 30 30 38 38  2c 2c 4b 41 25 b8 2c 4b  |..&40088,,KA%.,K|
0000d9e0  41 25 3a c8 99 26 34 30  30 38 38 2c 2c 56 41 25  |A%:..&40088,,VA%|
0000d9f0  b8 2c 56 41 25 3a 42 42  25 3d 56 41 25 2d 4b 41  |.,VA%:BB%=VA%-KA|
0000da00  25 3a 6b 41 25 3d 63 41  25 2d 50 41 25 0d 0f 1f  |%:kA%=cA%-PA%...|
0000da10  1c cc 42 42 25 3d 36 2a  4f 47 25 2b 31 36 2a a9  |..BB%=6*OG%+16*.|
0000da20  48 24 3a 6b 41 25 3d 33  32 0d 0f 20 15 cd 3a e7  |H$:kA%=32.. ..:.|
0000da30  6e 25 80 34 6b 41 25 2b  3d 32 2a 52 47 25 0d 0f  |n%.4kA%+=2*RG%..|
0000da40  22 13 cd 3a e7 6e 25 80  32 80 63 24 3c 3e 22 22  |"..:.n%.2.c$<>""|
0000da50  8c 0d 0f 24 48 c8 99 26  32 30 30 32 45 2c 32 39  |...$H..&2002E,29|
0000da60  36 2c a4 73 68 65 6c 6c  5f 55 73 65 72 53 70 72  |6,.shell_UserSpr|
0000da70  69 74 65 73 42 61 73 65  2c 63 24 b8 2c 2c 2c 74  |itesBase,c$.,,,t|
0000da80  41 25 2c 48 42 25 2c 2c  4f 45 25 3b 50 25 3a e7  |A%,HB%,,OE%;P%:.|
0000da90  28 50 25 80 31 29 3d 30  8c 0d 0f 26 63 c8 99 26  |(P%.1)=0...&c..&|
0000daa0  32 30 30 33 35 2c 4f 45  25 2c 34 b8 2c 2c 52 46  |20035,OE%,4.,,RF|
0000dab0  25 3a 74 41 25 3d 74 41  25 3c 3c 52 46 25 3a c8  |%:tA%=tA%<<RF%:.|
0000dac0  99 26 32 30 30 33 35 2c  4f 45 25 2c 35 b8 2c 2c  |.&20035,OE%,5.,,|
0000dad0  54 46 25 3a 48 42 25 3d  48 42 25 3c 3c 54 46 25  |TF%:HB%=HB%<<TF%|
0000dae0  3a e7 6e 25 80 26 38 30  30 74 41 25 3d 74 41 25  |:.n%.&800tA%=tA%|
0000daf0  2f 32 3a 48 42 25 3d 48  42 25 2f 32 0d 0f 29 1b  |/2:HB%=HB%/2..).|
0000db00  e7 28 6e 25 80 35 33 39  29 3d 31 39 74 41 25 3d  |.(n%.539)=19tA%=|
0000db10  42 42 25 2b 74 41 25 0d  0f 2a 13 e7 74 41 25 3e  |BB%+tA%..*..tA%>|
0000db20  42 42 25 42 42 25 3d 74  41 25 0d 0f 2b 13 e7 48  |BB%BB%=tA%..+..H|
0000db30  42 25 3e 6b 41 25 6b 41  25 3d 48 42 25 0d 0f 2c  |B%>kA%kA%=HB%..,|
0000db40  05 cd 0d 0f 2d 07 cd 3a  e1 0d 0f 33 33 dd a4 73  |....-..:...33..s|
0000db50  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 43 6f 6d 6d  |hell_IconGetComm|
0000db60  61 6e 64 28 6a 43 25 2c  6d 41 24 29 3a ea 49 25  |and(jC%,mA$):.I%|
0000db70  2c 4f 24 3a e7 6a 43 25  3c 3d 30 8c 0d 0f 36 09  |,O$:.jC%<=0...6.|
0000db80  4f 24 3d 22 22 0d 0f 37  51 cc 49 25 3d a7 22 3b  |O$=""..7Q.I%=.";|
0000db90  22 2b a4 73 68 65 6c 6c  5f 53 74 72 69 6e 67 55  |"+.shell_StringU|
0000dba0  70 70 65 72 43 61 73 65  28 24 6a 43 25 29 2c 22  |pperCase($jC%),"|
0000dbb0  3b 22 2b a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |;"+.shell_String|
0000dbc0  55 70 70 65 72 43 61 73  65 28 6d 41 24 29 29 3a  |UpperCase(mA$)):|
0000dbd0  e7 49 25 3d 30 8c 0d 0f  3a 09 4f 24 3d 22 22 0d  |.I%=0...:.O$="".|
0000dbe0  0f 3b 29 cc 4f 24 3d c0  24 28 6a 43 25 2b 49 25  |.;).O$=.$(jC%+I%|
0000dbf0  29 2c a7 24 28 6a 43 25  2b 49 25 29 2b 22 3b 22  |),.$(jC%+I%)+";"|
0000dc00  2c 22 3b 22 29 2d 31 29  0d 0f 3d 05 cd 0d 0f 3e  |,";")-1)..=....>|
0000dc10  09 cd 3a 3d 4f 24 0d 0f  43 d1 dd f2 73 68 65 6c  |..:=O$..C...shel|
0000dc20  6c 5f 49 63 6f 6e 52 65  64 72 61 77 28 62 25 2c  |l_IconRedraw(b%,|
0000dc30  66 25 29 3a ea 61 25 3a  61 25 3d a4 73 68 65 6c  |f%):.a%:a%=.shel|
0000dc40  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000dc50  28 34 30 29 3a 21 61 25  3d 62 25 3a 61 25 21 34  |(40):!a%=b%:a%!4|
0000dc60  3d 66 25 3a c8 99 26 34  30 30 43 45 2c 2c 61 25  |=f%:..&400CE,,a%|
0000dc70  3a c8 99 26 38 31 36 38  41 2c 2c 61 25 2b 38 3a  |:..&8168A,,a%+8:|
0000dc80  c8 99 26 34 30 30 44 31  2c 62 25 2c 61 25 21 38  |..&400D1,b%,a%!8|
0000dc90  2c 61 25 21 26 43 2c 61  25 21 31 36 2c 61 25 21  |,a%!&C,a%!16,a%!|
0000dca0  32 30 3a f2 73 68 65 6c  6c 5f 41 63 74 69 6f 6e  |20:.shell_Action|
0000dcb0  28 a4 73 68 65 6c 6c 5f  50 6f 6c 6c 5f 49 28 30  |(.shell_Poll_I(0|
0000dcc0  2c 5f 55 25 21 26 39 34  29 29 3a f2 73 68 65 6c  |,_U%!&94)):.shel|
0000dcd0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
0000dce0  6e 28 61 25 29 3a e1 0d  0f 50 39 dd a4 73 68 65  |n(a%):...P9..she|
0000dcf0  6c 6c 5f 49 63 6f 6e 47  65 74 56 61 6c 69 64 61  |ll_IconGetValida|
0000dd00  74 69 6f 6e 28 62 25 2c  66 25 29 3a ea 61 25 2c  |tion(b%,f%):.a%,|
0000dd10  4b 24 2c 6e 25 3a e7 66  25 3d 2d 31 8c 3d 22 22  |K$,n%:.f%=-1.=""|
0000dd20  0d 0f 53 56 4b 24 3d 22  22 3a 61 25 3d a4 73 68  |..SVK$="":a%=.sh|
0000dd30  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000dd40  63 68 28 26 36 34 29 3a  61 25 21 30 3d 62 25 3a  |ch(&64):a%!0=b%:|
0000dd50  61 25 21 34 3d 66 25 3a  c8 99 26 34 30 30 43 45  |a%!4=f%:..&400CE|
0000dd60  2c 2c 61 25 3a 6e 25 3d  61 25 21 32 34 3a e7 6e  |,,a%:n%=a%!24:.n|
0000dd70  25 80 32 35 36 8c 0d 0f  5b 18 e7 61 25 21 33 32  |%.256...[..a%!32|
0000dd80  3e 30 8c 4b 24 3d 24 28  61 25 21 33 32 29 0d 0f  |>0.K$=$(a%!32)..|
0000dd90  5c 24 cd 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |\$.:.shell_HeapB|
0000dda0  6c 6f 63 6b 52 65 74 75  72 6e 28 61 25 29 3a 3d  |lockReturn(a%):=|
0000ddb0  4b 24 0d 0f 62 7b dd f2  73 68 65 6c 6c 5f 49 63  |K$..b{..shell_Ic|
0000ddc0  6f 6e 50 75 74 56 61 6c  69 64 61 74 69 6f 6e 28  |onPutValidation(|
0000ddd0  62 25 2c 66 25 2c 74 24  29 3a ea 61 25 2c 6e 25  |b%,f%,t$):.a%,n%|
0000dde0  3a 61 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:a%=.shell_HeapB|
0000ddf0  6c 6f 63 6b 46 65 74 63  68 28 26 36 34 29 3a 61  |lockFetch(&64):a|
0000de00  25 21 30 3d 62 25 3a 61  25 21 34 3d 66 25 3a c8  |%!0=b%:a%!4=f%:.|
0000de10  99 26 34 30 30 43 45 2c  2c 61 25 3a 6e 25 3d 61  |.&400CE,,a%:n%=a|
0000de20  25 21 32 34 3a e7 6e 25  80 32 35 36 8c 0d 0f 69  |%!24:.n%.256...i|
0000de30  0f 24 28 61 25 21 33 32  29 3d 74 24 0d 0f 6a 22  |.$(a%!32)=t$..j"|
0000de40  cd 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.:.shell_HeapBlo|
0000de50  63 6b 52 65 74 75 72 6e  28 61 25 29 3a e1 0d 0f  |ckReturn(a%):...|
0000de60  70 67 dd a4 73 68 65 6c  6c 5f 49 73 49 63 6f 6e  |pg..shell_IsIcon|
0000de70  53 65 6c 65 63 74 65 64  28 51 42 25 2c 52 42 25  |Selected(QB%,RB%|
0000de80  29 3a ea 63 25 3a f2 73  68 65 6c 6c 5f 49 63 6f  |):.c%:.shell_Ico|
0000de90  6e 47 65 74 53 74 61 74  65 28 51 42 25 2c 52 42  |nGetState(QB%,RB|
0000dea0  25 29 3a 6e 25 3d 5f 51  25 21 32 34 3a 63 25 3d  |%):n%=_Q%!24:c%=|
0000deb0  28 6e 25 80 26 32 30 30  30 30 30 29 3a e7 63 25  |(n%.&200000):.c%|
0000dec0  3d 30 8c 3d a3 0d 0f 76  06 3d b9 0d 0f 7b 4e dd  |=0.=...v.=...{N.|
0000ded0  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 6c 65 63  |.shell_IconSelec|
0000dee0  74 28 51 42 25 2c 52 42  25 29 3a f2 73 68 65 6c  |t(QB%,RB%):.shel|
0000def0  6c 5f 49 63 6f 6e 53 65  74 53 74 61 74 65 28 51  |l_IconSetState(Q|
0000df00  42 25 2c 52 42 25 2c 26  32 30 30 30 30 30 2c 26  |B%,RB%,&200000,&|
0000df10  32 30 30 30 30 30 29 3a  e1 0d 0f 82 4a dd f2 73  |200000):....J..s|
0000df20  68 65 6c 6c 5f 49 63 6f  6e 44 65 73 65 6c 65 63  |hell_IconDeselec|
0000df30  74 28 51 42 25 2c 52 42  25 29 3a f2 73 68 65 6c  |t(QB%,RB%):.shel|
0000df40  6c 5f 49 63 6f 6e 53 65  74 53 74 61 74 65 28 51  |l_IconSetState(Q|
0000df50  42 25 2c 52 42 25 2c 30  2c 26 32 30 30 30 30 30  |B%,RB%,0,&200000|
0000df60  29 3a e1 0d 0f 89 44 dd  f2 73 68 65 6c 6c 5f 49  |):....D..shell_I|
0000df70  63 6f 6e 47 65 74 53 74  61 74 65 28 51 42 25 2c  |conGetState(QB%,|
0000df80  52 42 25 29 3a 21 5f 51  25 3d 51 42 25 3a 5f 51  |RB%):!_Q%=QB%:_Q|
0000df90  25 21 34 3d 52 42 25 3a  c8 99 26 34 30 30 43 45  |%!4=RB%:..&400CE|
0000dfa0  2c 2c 5f 51 25 3a e1 0d  0f 92 2e dd f2 73 68 65  |,,_Q%:.......she|
0000dfb0  6c 6c 5f 49 63 6f 6e 53  65 74 53 65 6c 65 63 74  |ll_IconSetSelect|
0000dfc0  65 64 28 62 25 2c 66 25  2c 5a 41 25 29 3a e7 5a  |ed(b%,f%,ZA%):.Z|
0000dfd0  41 25 3d 30 8c 0d 0f 94  1e f2 73 68 65 6c 6c 5f  |A%=0......shell_|
0000dfe0  49 63 6f 6e 44 65 73 65  6c 65 63 74 28 62 25 2c  |IconDeselect(b%,|
0000dff0  66 25 29 0d 0f 95 1d cc  f2 73 68 65 6c 6c 5f 49  |f%)......shell_I|
0000e000  63 6f 6e 53 65 6c 65 63  74 28 62 25 2c 66 25 29  |conSelect(b%,f%)|
0000e010  0d 0f 97 07 cd 3a e1 0d  0f 9d 26 dd f2 73 68 65  |.....:....&..she|
0000e020  6c 6c 5f 49 63 6f 6e 53  65 74 28 62 25 2c 66 25  |ll_IconSet(b%,f%|
0000e030  2c 5a 41 25 29 3a e7 5a  41 25 3d 30 8c 0d 0f 9f  |,ZA%):.ZA%=0....|
0000e040  1e f2 73 68 65 6c 6c 5f  49 63 6f 6e 44 65 73 65  |..shell_IconDese|
0000e050  6c 65 63 74 28 62 25 2c  66 25 29 0d 0f a0 1d cc  |lect(b%,f%).....|
0000e060  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 6c 65 63  |.shell_IconSelec|
0000e070  74 28 62 25 2c 66 25 29  0d 0f a2 07 cd 3a e1 0d  |t(b%,f%).....:..|
0000e080  0f a7 98 dd f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |.....shell_IconS|
0000e090  65 74 53 74 61 74 65 28  51 42 25 2c 52 42 25 2c  |etState(QB%,RB%,|
0000e0a0  79 46 25 2c 5f 46 25 29  3a ea 6b 25 3a 6b 25 3d  |yF%,_F%):.k%:k%=|
0000e0b0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000e0c0  46 65 74 63 68 28 31 36  29 3a 21 6b 25 3d 51 42  |Fetch(16):!k%=QB|
0000e0d0  25 3a 6b 25 21 34 3d 52  42 25 3a 6b 25 21 38 3d  |%:k%!4=RB%:k%!8=|
0000e0e0  79 46 25 3a 6b 25 21 26  43 3d 5f 46 25 3a c8 99  |yF%:k%!&C=_F%:..|
0000e0f0  26 34 30 30 43 44 2c 2c  6b 25 3a f2 73 68 65 6c  |&400CD,,k%:.shel|
0000e100  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
0000e110  6e 28 6b 25 29 3a e1 0d  0f b5 51 dd f2 73 68 65  |n(k%):....Q..she|
0000e120  6c 6c 5f 49 63 6f 6e 55  6e 73 65 6c 65 63 74 61  |ll_IconUnselecta|
0000e130  62 6c 65 28 69 25 2c 50  43 25 29 3a f2 73 68 65  |ble(i%,PC%):.she|
0000e140  6c 6c 5f 49 63 6f 6e 53  65 74 53 74 61 74 65 28  |ll_IconSetState(|
0000e150  69 25 2c 50 43 25 2c 26  34 30 30 30 30 30 2c 26  |i%,PC%,&400000,&|
0000e160  34 30 30 30 30 29 3a e1  0d 0f bc 77 dd f2 73 68  |40000):....w..sh|
0000e170  65 6c 6c 5f 49 63 6f 6e  53 65 74 42 47 43 6f 6c  |ell_IconSetBGCol|
0000e180  6f 75 72 28 62 25 2c 66  25 2c 6f 41 25 29 3a e7  |our(b%,f%,oA%):.|
0000e190  6f 41 25 3c 30 84 6f 41  25 3e 26 46 8c 85 39 39  |oA%<0.oA%>&F..99|
0000e1a0  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4f  |,.shell_MessageO|
0000e1b0  6e 65 41 72 67 28 22 53  48 45 4c 4c 4d 53 47 32  |neArg("SHELLMSG2|
0000e1c0  34 22 2c 22 50 52 4f 43  73 68 65 6c 6c 5f 49 63  |4","PROCshell_Ic|
0000e1d0  6f 6e 53 65 74 42 47 43  6f 6c 6f 75 72 22 29 0d  |onSetBGColour").|
0000e1e0  0f be 32 f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |..2.shell_IconSe|
0000e1f0  74 53 74 61 74 65 28 62  25 2c 66 25 2c 6f 41 25  |tState(b%,f%,oA%|
0000e200  3c 3c 32 38 2c 26 46 30  30 30 30 30 30 30 29 3a  |<<28,&F0000000):|
0000e210  e1 0d 0f c4 77 dd f2 73  68 65 6c 6c 5f 49 63 6f  |....w..shell_Ico|
0000e220  6e 53 65 74 46 47 43 6f  6c 6f 75 72 28 62 25 2c  |nSetFGColour(b%,|
0000e230  66 25 2c 6f 41 25 29 3a  e7 6f 41 25 3c 30 84 6f  |f%,oA%):.oA%<0.o|
0000e240  41 25 3e 26 46 8c 85 39  39 2c a4 73 68 65 6c 6c  |A%>&F..99,.shell|
0000e250  5f 4d 65 73 73 61 67 65  4f 6e 65 41 72 67 28 22  |_MessageOneArg("|
0000e260  53 48 45 4c 4c 4d 53 47  32 34 22 2c 22 50 52 4f  |SHELLMSG24","PRO|
0000e270  43 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 46 47  |Cshell_IconSetFG|
0000e280  43 6f 6c 6f 75 72 22 29  0d 0f c6 31 f2 73 68 65  |Colour")...1.she|
0000e290  6c 6c 5f 49 63 6f 6e 53  65 74 53 74 61 74 65 28  |ll_IconSetState(|
0000e2a0  62 25 2c 66 25 2c 6f 41  25 3c 3c 32 34 2c 26 46  |b%,f%,oA%<<24,&F|
0000e2b0  30 30 30 30 30 30 29 3a  e1 0d 0f cc 58 dd f2 73  |000000):....X..s|
0000e2c0  68 65 6c 6c 5f 43 61 72  65 74 53 65 74 50 6f 73  |hell_CaretSetPos|
0000e2d0  69 74 69 6f 6e 28 4e 41  25 2c 75 41 25 2c 4f 46  |ition(NA%,uA%,OF|
0000e2e0  25 2c 50 46 25 2c 55 41  25 2c 78 41 25 29 3a c8  |%,PF%,UA%,xA%):.|
0000e2f0  99 26 34 30 30 44 32 2c  4e 41 25 2c 75 41 25 2c  |.&400D2,NA%,uA%,|
0000e300  4f 46 25 2c 50 46 25 2c  55 41 25 2c 78 41 25 3a  |OF%,PF%,UA%,xA%:|
0000e310  e1 0d 0f d3 7c dd f2 73  68 65 6c 6c 5f 49 63 6f  |....|..shell_Ico|
0000e320  6e 53 65 74 42 75 74 74  6f 6e 54 79 70 65 28 62  |nSetButtonType(b|
0000e330  25 2c 66 25 2c 52 43 25  29 3a e7 52 43 25 3d 26  |%,f%,RC%):.RC%=&|
0000e340  43 84 52 43 25 3d 26 44  8c 85 39 39 2c a4 73 68  |C.RC%=&D..99,.sh|
0000e350  65 6c 6c 5f 4d 65 73 73  61 67 65 4f 6e 65 41 72  |ell_MessageOneAr|
0000e360  67 28 22 53 48 45 4c 4c  4d 53 47 32 33 22 2c 22  |g("SHELLMSG23","|
0000e370  50 52 4f 43 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |PROCshell_IconSe|
0000e380  74 42 75 74 74 6f 6e 54  79 70 65 22 29 0d 0f d5  |tButtonType")...|
0000e390  56 e7 52 43 25 3c 30 84  52 43 25 3e 26 46 8c 85  |V.RC%<0.RC%>&F..|
0000e3a0  39 39 2c a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |99,.shell_Messag|
0000e3b0  65 4f 6e 65 41 72 67 28  22 53 48 45 4c 4c 4d 53  |eOneArg("SHELLMS|
0000e3c0  47 32 32 22 2c 22 50 52  4f 43 73 68 65 6c 6c 5f  |G22","PROCshell_|
0000e3d0  49 63 6f 6e 53 65 74 42  75 74 74 6f 6e 54 79 70  |IconSetButtonTyp|
0000e3e0  65 22 29 0d 0f d6 2e f2  73 68 65 6c 6c 5f 49 63  |e").....shell_Ic|
0000e3f0  6f 6e 53 65 74 53 74 61  74 65 28 62 25 2c 66 25  |onSetState(b%,f%|
0000e400  2c 52 43 25 3c 3c 26 43  2c 26 46 30 30 30 29 3a  |,RC%<<&C,&F000):|
0000e410  e1 0d 0f db 6d dd f2 73  68 65 6c 6c 5f 49 63 6f  |....m..shell_Ico|
0000e420  6e 53 65 74 45 53 47 28  62 25 2c 66 25 2c 44 43  |nSetESG(b%,f%,DC|
0000e430  25 29 3a e7 44 43 25 3c  30 84 44 43 25 3e 33 31  |%):.DC%<0.DC%>31|
0000e440  8c 85 39 39 2c a4 73 68  65 6c 6c 5f 4d 65 73 73  |..99,.shell_Mess|
0000e450  61 67 65 4f 6e 65 41 72  67 28 22 53 48 45 4c 4c  |ageOneArg("SHELL|
0000e460  4d 53 47 32 35 22 2c 22  50 52 4f 43 73 68 65 6c  |MSG25","PROCshel|
0000e470  6c 5f 49 63 6f 6e 53 65  74 45 53 47 22 29 0d 0f  |l_IconSetESG")..|
0000e480  dd 30 f2 73 68 65 6c 6c  5f 49 63 6f 6e 53 65 74  |.0.shell_IconSet|
0000e490  53 74 61 74 65 28 62 25  2c 66 25 2c 44 43 25 3c  |State(b%,f%,DC%<|
0000e4a0  3c 31 36 2c 26 31 46 30  30 30 30 29 3a e1 0d 0f  |<16,&1F0000):...|
0000e4b0  e3 33 dd f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |.3..shell_IconSe|
0000e4c0  74 54 65 78 74 28 62 25  2c 66 25 2c 44 41 25 29  |tText(b%,f%,DA%)|
0000e4d0  3a e7 44 41 25 3c 3e 30  8c 44 41 25 3d 31 3c 3c  |:.DA%<>0.DA%=1<<|
0000e4e0  30 0d 0f e5 29 f2 73 68  65 6c 6c 5f 49 63 6f 6e  |0...).shell_Icon|
0000e4f0  53 65 74 53 74 61 74 65  28 62 25 2c 66 25 2c 44  |SetState(b%,f%,D|
0000e500  41 25 2c 31 3c 3c 30 29  3a e1 0d 0f eb 35 dd f2  |A%,1<<0):....5..|
0000e510  73 68 65 6c 6c 5f 49 63  6f 6e 53 65 74 53 70 72  |shell_IconSetSpr|
0000e520  69 74 65 28 62 25 2c 66  25 2c 44 41 25 29 3a e7  |ite(b%,f%,DA%):.|
0000e530  44 41 25 3c 3e 30 8c 44  41 25 3d 31 3c 3c 31 0d  |DA%<>0.DA%=1<<1.|
0000e540  0f ed 29 f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |..).shell_IconSe|
0000e550  74 53 74 61 74 65 28 62  25 2c 66 25 2c 44 41 25  |tState(b%,f%,DA%|
0000e560  2c 31 3c 3c 31 29 3a e1  0d 0f f2 35 dd f2 73 68  |,1<<1):....5..sh|
0000e570  65 6c 6c 5f 49 63 6f 6e  53 65 74 42 6f 72 64 65  |ell_IconSetBorde|
0000e580  72 28 62 25 2c 66 25 2c  44 41 25 29 3a e7 44 41  |r(b%,f%,DA%):.DA|
0000e590  25 3c 3e 30 8c 44 41 25  3d 31 3c 3c 32 0d 0f f4  |%<>0.DA%=1<<2...|
0000e5a0  29 f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 53  |).shell_IconSetS|
0000e5b0  74 61 74 65 28 62 25 2c  66 25 2c 44 41 25 2c 31  |tate(b%,f%,DA%,1|
0000e5c0  3c 3c 32 29 3a e1 0d 0f  fa 59 dd f2 73 68 65 6c  |<<2):....Y..shel|
0000e5d0  6c 5f 49 63 6f 6e 53 65  74 48 43 65 6e 74 72 65  |l_IconSetHCentre|
0000e5e0  64 28 62 25 2c 66 25 2c  44 41 25 29 3a f2 73 68  |d(b%,f%,DA%):.sh|
0000e5f0  65 6c 6c 5f 49 63 6f 6e  53 65 74 53 74 61 74 65  |ell_IconSetState|
0000e600  28 62 25 2c 66 25 2c 30  2c 31 3c 3c 39 29 3a e7  |(b%,f%,0,1<<9):.|
0000e610  44 41 25 3c 3e 30 8c 44  41 25 3d 31 3c 3c 33 0d  |DA%<>0.DA%=1<<3.|
0000e620  0f fd 29 f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |..).shell_IconSe|
0000e630  74 53 74 61 74 65 28 62  25 2c 66 25 2c 44 41 25  |tState(b%,f%,DA%|
0000e640  2c 31 3c 3c 33 29 3a e1  0d 10 03 37 dd f2 73 68  |,1<<3):....7..sh|
0000e650  65 6c 6c 5f 49 63 6f 6e  53 65 74 56 43 65 6e 74  |ell_IconSetVCent|
0000e660  72 65 64 28 62 25 2c 66  25 2c 44 41 25 29 3a e7  |red(b%,f%,DA%):.|
0000e670  44 41 25 3c 3e 30 8c 44  41 25 3d 31 3c 3c 34 0d  |DA%<>0.DA%=1<<4.|
0000e680  10 05 29 f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |..).shell_IconSe|
0000e690  74 53 74 61 74 65 28 62  25 2c 66 25 2c 44 41 25  |tState(b%,f%,DA%|
0000e6a0  2c 31 3c 3c 34 29 3a e1  0d 10 0b 35 dd f2 73 68  |,1<<4):....5..sh|
0000e6b0  65 6c 6c 5f 49 63 6f 6e  53 65 74 46 69 6c 6c 65  |ell_IconSetFille|
0000e6c0  64 28 62 25 2c 66 25 2c  44 41 25 29 3a e7 44 41  |d(b%,f%,DA%):.DA|
0000e6d0  25 3c 3e 30 8c 44 41 25  3d 31 3c 3c 35 0d 10 0d  |%<>0.DA%=1<<5...|
0000e6e0  29 f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 53  |).shell_IconSetS|
0000e6f0  74 61 74 65 28 62 25 2c  66 25 2c 44 41 25 2c 31  |tate(b%,f%,DA%,1|
0000e700  3c 3c 35 29 3a e1 0d 10  13 58 dd f2 73 68 65 6c  |<<5):....X..shel|
0000e710  6c 5f 49 63 6f 6e 53 65  74 52 69 67 68 74 4a 75  |l_IconSetRightJu|
0000e720  73 74 28 62 25 2c 66 25  2c 44 41 25 29 3a f2 73  |st(b%,f%,DA%):.s|
0000e730  68 65 6c 6c 5f 49 63 6f  6e 53 65 74 48 43 65 6e  |hell_IconSetHCen|
0000e740  74 72 65 64 28 62 25 2c  66 25 2c 30 29 3a e7 44  |tred(b%,f%,0):.D|
0000e750  41 25 3c 3e 30 8c 44 41  25 3d 31 3c 3c 39 0d 10  |A%<>0.DA%=1<<9..|
0000e760  16 29 f2 73 68 65 6c 6c  5f 49 63 6f 6e 53 65 74  |.).shell_IconSet|
0000e770  53 74 61 74 65 28 62 25  2c 66 25 2c 44 41 25 2c  |State(b%,f%,DA%,|
0000e780  31 3c 3c 39 29 3a e1 0d  10 1c 65 dd f2 73 68 65  |1<<9):....e..she|
0000e790  6c 6c 5f 49 63 6f 6e 53  65 74 4c 65 66 74 4a 75  |ll_IconSetLeftJu|
0000e7a0  73 74 28 62 25 2c 66 25  29 3a f2 73 68 65 6c 6c  |st(b%,f%):.shell|
0000e7b0  5f 49 63 6f 6e 53 65 74  48 43 65 6e 74 72 65 64  |_IconSetHCentred|
0000e7c0  28 62 25 2c 66 25 2c 30  29 3a f2 73 68 65 6c 6c  |(b%,f%,0):.shell|
0000e7d0  5f 49 63 6f 6e 53 65 74  52 69 67 68 74 4a 75 73  |_IconSetRightJus|
0000e7e0  74 28 62 25 2c 66 25 2c  30 29 3a e1 0d 10 24 41  |t(b%,f%,0):...$A|
0000e7f0  dd f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 55  |..shell_IconSetU|
0000e800  6e 73 65 6c 65 63 74 61  62 6c 65 28 62 25 2c 66  |nselectable(b%,f|
0000e810  25 2c 5a 41 25 29 3a ea  42 41 25 3a e7 5a 41 25  |%,ZA%):.BA%:.ZA%|
0000e820  3c 3e 30 8c 5a 41 25 3d  31 3c 3c 32 32 0d 10 27  |<>0.ZA%=1<<22..'|
0000e830  31 f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 53  |1.shell_IconSetS|
0000e840  74 61 74 65 28 62 25 2c  66 25 2c 5a 41 25 2c 31  |tate(b%,f%,ZA%,1|
0000e850  3c 3c 32 32 29 3a e7 5a  41 25 3c 3e 30 8c 0d 10  |<<22):.ZA%<>0...|
0000e860  2a 42 42 41 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |*BBA%=.shell_Hea|
0000e870  70 42 6c 6f 63 6b 46 65  74 63 68 28 32 34 29 3a  |pBlockFetch(24):|
0000e880  c8 99 26 34 30 30 44 33  2c 2c 42 41 25 3a e7 21  |..&400D3,,BA%:.!|
0000e890  42 41 25 3d 62 25 80 42  41 25 21 34 3d 66 25 8c  |BA%=b%.BA%!4=f%.|
0000e8a0  0d 10 2d 0f c8 99 26 34  30 30 44 32 2c 2d 31 0d  |..-...&400D2,-1.|
0000e8b0  10 2e 21 cd 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |..!.:.shell_Heap|
0000e8c0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 42 41 25 29  |BlockReturn(BA%)|
0000e8d0  0d 10 30 07 cd 3a e1 0d  10 36 57 dd f2 73 68 65  |..0..:...6W..she|
0000e8e0  6c 6c 5f 43 61 72 65 74  53 65 74 52 69 67 68 74  |ll_CaretSetRight|
0000e8f0  28 62 25 2c 66 25 29 3a  c8 99 26 34 30 30 44 32  |(b%,f%):..&400D2|
0000e900  2c 62 25 2c 66 25 2c 2d  31 2c 2d 31 2c 2d 31 2c  |,b%,f%,-1,-1,-1,|
0000e910  a9 28 a4 73 68 65 6c 6c  5f 49 63 6f 6e 47 65 74  |.(.shell_IconGet|
0000e920  44 61 74 61 28 62 25 2c  66 25 29 29 3a e1 0d 10  |Data(b%,f%)):...|
0000e930  3d 33 dd f2 70 72 69 6e  74 5f 74 65 78 74 28 46  |=3..print_text(F|
0000e940  2c 47 2c 48 24 29 3a e7  a4 69 6e 28 46 2c 47 2d  |,G,H$):..in(F,G-|
0000e950  33 32 2c 46 2b 31 36 2a  a9 28 48 24 29 2c 47 29  |32,F+16*.(H$),G)|
0000e960  8c 0d 10 3f 0c ec 46 2c  47 3a f1 48 24 0d 10 41  |...?..F,G:.H$..A|
0000e970  07 cd 3a e1 0d 10 46 1e  dd a4 69 6e 28 41 25 2c  |..:...F...in(A%,|
0000e980  42 25 2c 43 25 2c 44 25  29 3a e7 43 25 3c 59 8c  |B%,C%,D%):.C%<Y.|
0000e990  3d a3 0d 10 48 0c e7 41  25 3e 5a 8c 3d a3 0d 10  |=...H..A%>Z.=...|
0000e9a0  49 0c e7 42 25 3e 50 8c  3d a3 0d 10 4a 0c e7 44  |I..B%>P.=...J..D|
0000e9b0  25 3c 51 8c 3d a3 0d 10  4b 06 3d b9 0d 10 4f 87  |%<Q.=...K.=...O.|
0000e9c0  dd f2 6e 65 77 76 61 6c  73 3a 59 3d 5f 51 25 21  |..newvals:Y=_Q%!|
0000e9d0  32 38 3a 51 3d 5f 51 25  21 33 32 3a 5a 3d 5f 51  |28:Q=_Q%!32:Z=_Q|
0000e9e0  25 21 33 36 3a 50 3d 5f  51 25 21 34 30 3a 54 3d  |%!36:P=_Q%!40:T=|
0000e9f0  5f 51 25 21 34 3a 56 3d  5f 51 25 21 38 3a 55 3d  |_Q%!4:V=_Q%!8:U=|
0000ea00  5f 51 25 21 26 43 3a 4f  3d 5f 51 25 21 31 36 3a  |_Q%!&C:O=_Q%!16:|
0000ea10  4b 3d 5f 51 25 21 32 30  3a 4c 3d 5f 51 25 21 32  |K=_Q%!20:L=_Q%!2|
0000ea20  34 3a 52 3d 55 2d 54 3a  53 3d 4f 2d 56 3a 64 3d  |4:R=U-T:S=O-V:d=|
0000ea30  4b 3a 65 3d 4b 2b 52 3a  66 3d 4c 3a 62 3d 4c 2d  |K:e=K+R:f=L:b=L-|
0000ea40  53 3a e1 0d 10 5a 20 dd  a4 6d 61 78 28 48 41 25  |S:...Z ..max(HA%|
0000ea50  2c 6c 41 25 29 3a e7 48  41 25 3c 6c 41 25 8c 3d  |,lA%):.HA%<lA%.=|
0000ea60  6c 41 25 0d 10 5c 08 3d  48 41 25 0d 10 5f 38 dd  |lA%..\.=HA%.._8.|
0000ea70  a4 73 68 65 6c 6c 5f 4c  65 61 66 28 47 24 29 3a  |.shell_Leaf(G$):|
0000ea80  c8 95 a7 47 24 2c 22 2e  22 29 3a 47 24 3d c1 47  |...G$,"."):G$=.G|
0000ea90  24 2c a7 47 24 2c 22 2e  22 29 2b 31 29 3a ce 3a  |$,.G$,".")+1):.:|
0000eaa0  3d 47 24 0d 10 67 2e dd  a4 73 68 65 6c 6c 5f 42  |=G$..g...shell_B|
0000eab0  72 61 6e 63 68 28 66 24  29 3a ea 46 41 25 2c 75  |ranch(f$):.FA%,u|
0000eac0  24 2c 63 25 3a e7 a7 66  24 2c 22 2e 22 29 3d 30  |$,c%:..f$,".")=0|
0000ead0  8c 0d 10 6a 09 75 24 3d  22 22 0d 10 6b 38 cc 63  |...j.u$=""..k8.c|
0000eae0  25 3d 30 3a f5 3a 46 41  25 3d 63 25 2b 31 3a 63  |%=0:.:FA%=c%+1:c|
0000eaf0  25 3d a7 66 24 2c 22 2e  22 2c 46 41 25 29 3a fd  |%=.f$,".",FA%):.|
0000eb00  63 25 3d 30 3a 75 24 3d  c0 66 24 2c 46 41 25 2d  |c%=0:u$=.f$,FA%-|
0000eb10  32 29 0d 10 72 09 cd 3a  3d 75 24 0d 10 77 38 dd  |2)..r..:=u$..w8.|
0000eb20  a4 67 6e 61 6d 65 28 43  29 3a 76 24 3d 22 22 3a  |.gname(C):v$="":|
0000eb30  c8 95 3f 43 3c 3e 30 80  3f 43 3c 3e 26 44 3a 76  |..?C<>0.?C<>&D:v|
0000eb40  24 3d 76 24 2b bd 3f 43  3a 43 2b 3d 31 3a ce 3a  |$=v$+.?C:C+=1:.:|
0000eb50  3d 76 24 0d 10 80 70 dd  f2 73 68 65 6c 6c 5f 57  |=v$...p..shell_W|
0000eb60  69 6e 64 6f 77 52 65 73  69 7a 65 28 4e 41 25 2c  |indowResize(NA%,|
0000eb70  56 46 25 2c 58 46 25 2c  59 46 25 2c 5a 46 25 2c  |VF%,XF%,YF%,ZF%,|
0000eb80  6f 43 25 29 3a 21 5f 51  25 3d 56 46 25 3a 5f 51  |oC%):!_Q%=VF%:_Q|
0000eb90  25 21 34 3d 58 46 25 3a  5f 51 25 21 38 3d 59 46  |%!4=XF%:_Q%!8=YF|
0000eba0  25 3a 5f 51 25 21 26 43  3d 5a 46 25 3a c8 99 26  |%:_Q%!&C=ZF%:..&|
0000ebb0  34 30 30 44 37 2c 4e 41  25 2c 5f 51 25 3a e7 6f  |400D7,NA%,_Q%:.o|
0000ebc0  43 25 8c 0d 10 84 29 5f  51 25 21 30 3d 4e 41 25  |C%....)_Q%!0=NA%|
0000ebd0  3a c8 99 26 34 30 30 43  43 2c 2c 5f 51 25 3a c8  |:..&400CC,,_Q%:.|
0000ebe0  99 26 34 30 30 43 35 2c  2c 5f 51 25 0d 10 87 07  |.&400C5,,_Q%....|
0000ebf0  cd 3a e1 0d 10 8d 98 dd  f2 73 68 65 6c 6c 5f 57  |.:.......shell_W|
0000ec00  69 6e 64 6f 77 52 65 74  69 74 6c 65 28 f8 4e 41  |indowRetitle(.NA|
0000ec10  25 2c 53 24 29 3a ea 63  25 2c 71 25 2c 69 25 2c  |%,S$):.c%,q%,i%,|
0000ec20  71 45 25 3a 71 25 3d a4  73 68 65 6c 6c 5f 48 65  |qE%:q%=.shell_He|
0000ec30  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 36 34  |apBlockFetch(&64|
0000ec40  2b 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 43  |+(.shell_WindowC|
0000ec50  6f 75 6e 74 49 63 6f 6e  73 28 4e 41 25 29 2a 33  |ountIcons(NA%)*3|
0000ec60  32 29 29 3a 71 25 21 30  3d 4e 41 25 3a c8 99 26  |2)):q%!0=NA%:..&|
0000ec70  34 30 30 43 43 2c 2c 71  25 3a e7 28 28 71 25 21  |400CC,,q%:.((q%!|
0000ec80  36 30 29 80 32 35 36 29  3d 30 8c 0d 10 94 41 63  |60).256)=0....Ac|
0000ec90  25 3d 71 25 2b 37 36 3a  24 63 25 3d c0 53 24 2c  |%=q%+76:$c%=.S$,|
0000eca0  26 42 29 3a c8 99 26 34  30 30 43 33 2c 2c 71 25  |&B):..&400C3,,q%|
0000ecb0  3a c8 99 26 34 30 30 43  31 2c 2c 71 25 2b 34 b8  |:..&400C1,,q%+4.|
0000ecc0  69 25 3a e7 69 25 3c 3e  4e 41 25 8c 0d 10 9a 2c  |i%:.i%<>NA%....,|
0000ecd0  f2 73 68 65 6c 6c 5f 55  70 64 61 74 65 57 69 6e  |.shell_UpdateWin|
0000ece0  64 6f 77 48 61 6e 64 6c  65 28 4e 41 25 2c 69 25  |dowHandle(NA%,i%|
0000ecf0  29 3a 4e 41 25 3d 69 25  0d 10 9c 05 cd 0d 10 9d  |):NA%=i%........|
0000ed00  3c cc 71 45 25 3d 71 25  21 38 34 3a 24 28 21 28  |<.qE%=q%!84:$(!(|
0000ed10  71 25 2b 37 36 29 29 3d  c0 53 24 2c 71 45 25 2d  |q%+76))=.S$,qE%-|
0000ed20  31 29 3a e7 28 28 71 25  21 33 32 29 80 28 31 3c  |1):.((q%!32).(1<|
0000ed30  3c 31 36 29 29 3c 3e 30  8c 0d 10 a4 29 c8 99 26  |<16))<>0....)..&|
0000ed40  34 30 30 44 31 2c 2d 31  2c 71 25 21 34 2c 71 25  |400D1,-1,q%!4,q%|
0000ed50  21 31 36 2c 71 25 21 26  43 2c 71 25 21 31 36 2b  |!16,q%!&C,q%!16+|
0000ed60  34 34 0d 10 a5 20 cd 3a  f2 73 68 65 6c 6c 5f 48  |44... .:.shell_H|
0000ed70  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 71  |eapBlockReturn(q|
0000ed80  25 29 0d 10 a7 07 cd 3a  e1 0d 10 ad 3e dd a4 73  |%).....:....>..s|
0000ed90  68 65 6c 6c 5f 57 69 6e  64 6f 77 54 69 74 6c 65  |hell_WindowTitle|
0000eda0  49 6e 64 69 72 65 63 74  65 64 28 76 42 25 29 3a  |Indirected(vB%):|
0000edb0  e7 28 76 42 25 80 28 31  3c 3c 38 29 29 3d 28 31  |.(vB%.(1<<8))=(1|
0000edc0  3c 3c 38 29 8c 3d b9 0d  10 af 06 3d a3 0d 10 b3  |<<8).=.....=....|
0000edd0  f1 dd f2 73 68 65 6c 6c  5f 53 63 72 65 65 6e 54  |...shell_ScreenT|
0000ede0  6f 57 69 6e 64 6f 77 43  6f 6f 72 64 73 28 72 45  |oWindowCoords(rE|
0000edf0  25 2c f8 58 25 2c f8 59  25 29 3a ea 51 44 25 2c  |%,.X%,.Y%):.QD%,|
0000ee00  75 45 25 2c 42 47 25 2c  77 45 25 2c 78 45 25 2c  |uE%,BG%,wE%,xE%,|
0000ee10  70 42 25 3a 70 42 25 3d  a4 73 68 65 6c 6c 5f 48  |pB%:pB%=.shell_H|
0000ee20  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 26 36  |eapBlockFetch(&6|
0000ee30  34 2b 28 a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |4+(.shell_Window|
0000ee40  43 6f 75 6e 74 49 63 6f  6e 73 28 72 45 25 29 2a  |CountIcons(rE%)*|
0000ee50  33 32 29 29 3a 51 44 25  3d 70 42 25 3a 21 51 44  |32)):QD%=pB%:!QD|
0000ee60  25 3d 72 45 25 3a c8 99  26 34 30 30 43 43 2c 2c  |%=rE%:..&400CC,,|
0000ee70  51 44 25 3a 75 45 25 3d  70 42 25 21 34 3a 72 46  |QD%:uE%=pB%!4:rF|
0000ee80  25 3d 70 42 25 21 31 36  3a 77 45 25 3d 70 42 25  |%=pB%!16:wE%=pB%|
0000ee90  21 32 30 3a 78 45 25 3d  70 42 25 21 32 34 3a 58  |!20:xE%=pB%!24:X|
0000eea0  25 3d 58 25 2b 28 77 45  25 2d 75 45 25 29 3a 59  |%=X%+(wE%-uE%):Y|
0000eeb0  25 3d 59 25 2b 28 78 45  25 2d 72 46 25 29 0d 10  |%=Y%+(xE%-rF%)..|
0000eec0  bf 21 f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.!.shell_HeapBlo|
0000eed0  63 6b 52 65 74 75 72 6e  28 70 42 25 29 3a e1 0d  |ckReturn(pB%):..|
0000eee0  10 c4 38 dd a4 73 68 65  6c 6c 5f 57 69 6d 70 53  |..8..shell_WimpS|
0000eef0  6c 6f 74 52 65 61 64 45  6e 64 3a ea 45 43 25 3a  |lotReadEnd:.EC%:|
0000ef00  c8 99 26 34 30 30 45 43  2c 2d 31 2c 2d 31 b8 45  |..&400EC,-1,-1.E|
0000ef10  43 25 3a 3d 45 43 25 0d  10 cb 56 dd a4 73 68 65  |C%:=EC%...V..she|
0000ef20  6c 6c 5f 57 69 6d 70 53  6c 6f 74 43 6c 61 69 6d  |ll_WimpSlotClaim|
0000ef30  4d 65 6d 6f 72 79 28 45  43 25 2c 68 41 25 29 3a  |Memory(EC%,hA%):|
0000ef40  ea 54 44 25 3a c8 99 26  34 30 30 45 43 2c 45 43  |.TD%:..&400EC,EC|
0000ef50  25 2b 68 41 25 2c 2d 31  b8 54 44 25 3a e7 54 44  |%+hA%,-1.TD%:.TD|
0000ef60  25 3c 45 43 25 2b 68 41  25 8c 3d 2d 31 0d 10 cf  |%<EC%+hA%.=-1...|
0000ef70  08 3d 54 44 25 0d 10 d3  33 dd f2 73 68 65 6c 6c  |.=TD%...3..shell|
0000ef80  5f 57 69 6d 70 53 6c 6f  74 52 65 6c 65 61 73 65  |_WimpSlotRelease|
0000ef90  4d 65 6d 6f 72 79 3a c8  99 26 34 30 30 45 43 2c  |Memory:..&400EC,|
0000efa0  45 43 25 2c 2d 31 3a e1  0d 10 d9 5f dd f2 73 68  |EC%,-1:...._..sh|
0000efb0  65 6c 6c 5f 4d 6f 75 73  65 4c 69 6d 69 74 28 41  |ell_MouseLimit(A|
0000efc0  2c 4e 41 25 29 3a 41 21  30 3d 4e 41 25 3a c8 99  |,NA%):A!0=NA%:..|
0000efd0  26 34 30 30 43 42 2c 2c  41 3a f2 6d 6f 75 73 65  |&400CB,,A:.mouse|
0000efe0  5f 72 65 63 74 61 6e 67  6c 65 28 41 21 34 2c 41  |_rectangle(A!4,A|
0000eff0  21 38 2c 41 21 26 43 2d  41 21 34 2c 41 21 31 36  |!8,A!&C-A!4,A!16|
0000f000  2d 41 21 38 29 3a e1 0d  10 e0 a1 dd a4 73 68 65  |-A!8):.......she|
0000f010  6c 6c 5f 4e 61 6d 65 4f  66 46 69 72 73 74 53 70  |ll_NameOfFirstSp|
0000f020  72 69 74 65 28 65 41 24  29 3a ea 58 25 2c 4e 25  |rite(eA$):.X%,N%|
0000f030  2c 77 24 3a 58 25 3d 8e  28 65 41 24 29 3a cf 23  |,w$:X%=.(eA$):.#|
0000f040  58 25 3d 34 3a 4e 25 3d  9a 23 58 25 3a 4e 25 2b  |X%=4:N%=.#X%:N%+|
0000f050  3d 9a 23 58 25 2a 32 35  36 3a 4e 25 2b 3d 9a 23  |=.#X%*256:N%+=.#|
0000f060  58 25 2a 36 35 35 33 36  3a 4e 25 2b 3d 9a 23 58  |X%*65536:N%+=.#X|
0000f070  25 2a 26 31 30 30 30 30  30 30 3a cf 23 58 25 3d  |%*&1000000:.#X%=|
0000f080  4e 25 3a 77 24 3d 22 22  3a e3 4e 25 3d 30 b8 26  |N%:w$="":.N%=0.&|
0000f090  42 3a 77 24 2b 3d bd 28  9a 23 58 25 29 3a ed 3a  |B:w$+=.(.#X%):.:|
0000f0a0  d9 23 58 25 3a 3d 77 24  0d 10 f3 42 dd f2 49 6e  |.#X%:=w$...B..In|
0000f0b0  69 74 69 61 6c 69 73 65  53 70 72 69 74 65 41 72  |itialiseSpriteAr|
0000f0c0  65 61 28 53 25 2c 76 46  25 29 3a 21 53 25 3d 76  |ea(S%,vF%):!S%=v|
0000f0d0  46 25 3a 53 25 21 38 3d  31 36 3a c8 99 34 36 2c  |F%:S%!8=16:..46,|
0000f0e0  39 2b 32 35 36 2c 53 25  3a e1 0d 10 fc 31 dd f2  |9+256,S%:....1..|
0000f0f0  73 68 65 6c 6c 5f 4c 69  73 74 45 76 65 6e 74 73  |shell_ListEvents|
0000f100  28 62 25 2c 79 25 29 3a  ea 6d 25 2c 65 24 3a e7  |(b%,y%):.m%,e$:.|
0000f110  62 25 3d 2d 31 8c 62 25  3d 2d 32 0d 10 ff c6 f2  |b%=-1.b%=-2.....|
0000f120  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 4d  |shell_Tracef0("M|
0000f130  65 6e 75 53 65 6c 65 63  74 69 6f 6e 3d 22 2b a4  |enuSelection="+.|
0000f140  73 68 65 6c 6c 5f 47 65  74 45 76 65 6e 74 48 61  |shell_GetEventHa|
0000f150  6e 64 6c 65 72 28 62 25  2c 79 25 2c 30 29 29 3a  |ndler(b%,y%,0)):|
0000f160  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000f170  4d 65 6e 75 4d 61 6b 65  72 20 20 20 20 3d 22 2b  |MenuMaker    ="+|
0000f180  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 48  |.shell_GetEventH|
0000f190  61 6e 64 6c 65 72 28 62  25 2c 79 25 2c 31 29 29  |andler(b%,y%,1))|
0000f1a0  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
0000f1b0  22 43 6c 69 63 6b 53 65  6c 65 63 74 20 20 3d 22  |"ClickSelect  ="|
0000f1c0  2b a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |+.shell_GetEvent|
0000f1d0  48 61 6e 64 6c 65 72 28  62 25 2c 79 25 2c 32 29  |Handler(b%,y%,2)|
0000f1e0  29 0d 11 02 c6 f2 73 68  65 6c 6c 5f 54 72 61 63  |).....shell_Trac|
0000f1f0  65 66 30 28 22 43 6c 69  63 6b 41 64 6a 75 73 74  |ef0("ClickAdjust|
0000f200  20 20 3d 22 2b a4 73 68  65 6c 6c 5f 47 65 74 45  |  ="+.shell_GetE|
0000f210  76 65 6e 74 48 61 6e 64  6c 65 72 28 62 25 2c 79  |ventHandler(b%,y|
0000f220  25 2c 33 29 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |%,3)):.shell_Tra|
0000f230  63 65 66 30 28 22 52 65  64 72 61 77 20 20 20 20  |cef0("Redraw    |
0000f240  20 20 20 3d 22 2b a4 73  68 65 6c 6c 5f 47 65 74  |   ="+.shell_Get|
0000f250  45 76 65 6e 74 48 61 6e  64 6c 65 72 28 62 25 2c  |EventHandler(b%,|
0000f260  79 25 2c 34 29 29 3a f2  73 68 65 6c 6c 5f 54 72  |y%,4)):.shell_Tr|
0000f270  61 63 65 66 30 28 22 4b  65 79 70 72 65 73 73 20  |acef0("Keypress |
0000f280  20 20 20 20 3d 22 2b a4  73 68 65 6c 6c 5f 47 65  |    ="+.shell_Ge|
0000f290  74 45 76 65 6e 74 48 61  6e 64 6c 65 72 28 62 25  |tEventHandler(b%|
0000f2a0  2c 79 25 2c 35 29 29 0d  11 05 ed f2 73 68 65 6c  |,y%,5)).....shel|
0000f2b0  6c 5f 54 72 61 63 65 66  30 28 22 44 72 61 67 20  |l_Tracef0("Drag |
0000f2c0  20 20 20 20 20 20 20 20  3d 22 2b a4 73 68 65 6c  |        ="+.shel|
0000f2d0  6c 5f 47 65 74 45 76 65  6e 74 48 61 6e 64 6c 65  |l_GetEventHandle|
0000f2e0  72 28 62 25 2c 79 25 2c  36 29 29 3a f2 73 68 65  |r(b%,y%,6)):.she|
0000f2f0  6c 6c 5f 54 72 61 63 65  66 30 28 22 4d 65 6e 75  |ll_Tracef0("Menu|
0000f300  20 57 61 72 6e 69 6e 67  20 3d 22 2b a4 73 68 65  | Warning ="+.she|
0000f310  6c 6c 5f 47 65 74 45 76  65 6e 74 48 61 6e 64 6c  |ll_GetEventHandl|
0000f320  65 72 28 62 25 2c 79 25  2c 37 29 29 3a f2 73 68  |er(b%,y%,7)):.sh|
0000f330  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 48 65 6c  |ell_Tracef0("Hel|
0000f340  70 54 61 67 20 20 20 20  20 20 3d 22 2b a4 73 68  |pTag      ="+.sh|
0000f350  65 6c 6c 5f 47 65 74 45  76 65 6e 74 48 61 6e 64  |ell_GetEventHand|
0000f360  6c 65 72 28 62 25 2c 79  25 2c 38 29 29 3a 6d 25  |ler(b%,y%,8)):m%|
0000f370  3d a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |=.shell_GetEvent|
0000f380  4d 65 6e 75 28 32 2c 62  25 2c 79 25 29 3a e7 6d  |Menu(2,b%,y%):.m|
0000f390  25 3d 30 8c 0d 11 0a 0d  65 24 3d 22 4e 6f 6e 65  |%=0.....e$="None|
0000f3a0  22 0d 11 0b 0b cc 65 24  3d c3 6d 25 0d 11 0d 2b  |".....e$=.m%...+|
0000f3b0  cd 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |.:.shell_Tracef0|
0000f3c0  28 22 4d 65 6e 75 20 68  61 6e 64 6c 65 20 3d 26  |("Menu handle =&|
0000f3d0  22 2b 65 24 29 3a e1 0d  11 17 70 dd f2 73 68 65  |"+e$):....p..she|
0000f3e0  6c 6c 5f 48 65 61 70 4d  61 6e 61 67 65 72 49 6e  |ll_HeapManagerIn|
0000f3f0  69 74 28 47 24 2c 78 46  25 29 3a de 5f 68 65 61  |it(G$,xF%):._hea|
0000f400  70 5f 63 6f 64 65 25 39  30 30 3a ff 28 22 4c 4f  |p_code%900:.("LO|
0000f410  41 44 20 22 2b 47 24 2b  22 68 65 61 70 63 6f 64  |AD "+G$+"heapcod|
0000f420  65 20 22 2b c3 7e 5f 68  65 61 70 5f 63 6f 64 65  |e "+.~_heap_code|
0000f430  25 29 3a d6 5f 68 65 61  70 5f 63 6f 64 65 25 2b  |%):._heap_code%+|
0000f440  30 2c 78 46 25 3a e1 0d  11 20 31 dd a4 73 68 65  |0,xF%:... 1..she|
0000f450  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 69 73  |ll_HeapBlockExis|
0000f460  74 73 28 76 41 25 29 3a  ea 6f 25 3a ea 85 3a ee  |ts(vA%):.o%:..:.|
0000f470  85 ea 3a f7 85 3a 3d a3  0d 11 24 39 e7 76 41 25  |..:..:=...$9.vA%|
0000f480  3c 26 38 30 30 30 8c 85  39 39 2c 22 4e 6f 20 68  |<&8000..99,"No h|
0000f490  65 61 70 62 6c 6f 63 6b  20 64 65 66 69 6e 65 64  |eapblock defined|
0000f4a0  20 61 74 20 74 68 69 73  20 61 64 64 72 65 73 73  | at this address|
0000f4b0  22 0d 11 25 26 6f 25 3d  a4 73 68 65 6c 6c 5f 48  |"..%&o%=.shell_H|
0000f4c0  65 61 70 42 6c 6f 63 6b  49 6e 66 6f 28 76 41 25  |eapBlockInfo(vA%|
0000f4d0  29 3a f7 85 3a 3d b9 0d  11 30 41 dd a4 73 68 65  |):..:=...0A..she|
0000f4e0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 45 78 74 65  |ll_HeapBlockExte|
0000f4f0  6e 64 28 48 41 25 2c 6c  41 25 29 3a d6 5f 68 65  |nd(HA%,lA%):._he|
0000f500  61 70 5f 63 6f 64 65 25  2b 26 43 2c 48 41 25 2c  |ap_code%+&C,HA%,|
0000f510  6c 41 25 3a 3d 48 41 25  0d 11 39 40 dd a4 73 68  |lA%:=HA%..9@..sh|
0000f520  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000f530  63 68 28 48 41 25 29 3a  ea 76 41 25 3a d6 5f 68  |ch(HA%):.vA%:._h|
0000f540  65 61 70 5f 63 6f 64 65  25 2b 34 2c 76 41 25 2c  |eap_code%+4,vA%,|
0000f550  48 41 25 3a 3d 76 41 25  0d 11 42 51 dd f2 73 68  |HA%:=vA%..BQ..sh|
0000f560  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
0000f570  75 72 6e 28 f8 48 41 25  29 3a e7 a4 73 68 65 6c  |urn(.HA%):..shel|
0000f580  6c 5f 48 65 61 70 42 6c  6f 63 6b 45 78 69 73 74  |l_HeapBlockExist|
0000f590  73 28 48 41 25 29 8c d6  5f 68 65 61 70 5f 63 6f  |s(HA%).._heap_co|
0000f5a0  64 65 25 2b 38 2c 48 41  25 0d 11 44 0b 48 41 25  |de%+8,HA%..D.HA%|
0000f5b0  3d 30 3a e1 0d 11 4b 46  dd a4 73 68 65 6c 6c 5f  |=0:...KF..shell_|
0000f5c0  48 65 61 70 42 6c 6f 63  6b 49 6e 66 6f 28 48 41  |HeapBlockInfo(HA|
0000f5d0  25 29 3a ea 4d 3a c8 99  32 39 2c 36 2c 21 28 5f  |%):.M:..29,6,!(_|
0000f5e0  68 65 61 70 5f 63 6f 64  65 25 2b 32 38 29 2c 48  |heap_code%+28),H|
0000f5f0  41 25 b8 2c 2c 2c 4d 3a  3d 4d 0d 11 53 45 dd a4  |A%.,,,M:=M..SE..|
0000f600  73 68 65 6c 6c 5f 4f 53  56 61 72 45 78 69 73 74  |shell_OSVarExist|
0000f610  73 28 54 42 25 2c 78 24  29 3a ea 42 3a c8 99 26  |s(TB%,x$):.B:..&|
0000f620  32 30 30 32 33 2c 78 24  2c 54 42 25 2c 2d 31 2c  |20023,x$,TB%,-1,|
0000f630  30 2c 30 b8 2c 2c 42 3a  e7 42 3c 30 8c 3d b9 0d  |0,0.,,B:.B<0.=..|
0000f640  11 57 06 3d a3 0d 11 5c  7b dd a4 73 68 65 6c 6c  |.W.=...\{..shell|
0000f650  5f 4f 53 56 61 72 47 65  74 56 61 6c 28 54 42 25  |_OSVarGetVal(TB%|
0000f660  2c 68 41 25 2c 78 24 2c  57 29 3a ea 79 24 2c 42  |,hA%,x$,W):.y$,B|
0000f670  2c 77 46 25 3a c8 99 26  32 30 30 32 33 2c 78 24  |,wF%:..&20023,x$|
0000f680  2c 54 42 25 2c 68 41 25  2c 30 2c 2d 33 2a 28 57  |,TB%,hA%,0,-3*(W|
0000f690  3d b9 29 b8 2c 2c 42 2c  77 46 25 2c 77 25 3a e3  |=.).,,B,wF%,w%:.|
0000f6a0  73 25 3d 30 b8 42 2d 31  3a 79 24 3d 79 24 2b bd  |s%=0.B-1:y$=y$+.|
0000f6b0  28 54 42 25 3f 73 25 29  3a ed 73 25 3a 3d 79 24  |(TB%?s%):.s%:=y$|
0000f6c0  0d 11 67 65 dd a4 73 68  65 6c 6c 5f 4f 53 52 65  |..ge..shell_OSRe|
0000f6d0  61 64 43 6f 6d 6d 61 6e  64 41 72 67 28 58 29 3a  |adCommandArg(X):|
0000f6e0  ea 55 44 25 2c 55 24 2c  64 25 3a 55 24 3d 22 22  |.UD%,U$,d%:U$=""|
0000f6f0  3a 64 25 3d 30 3a c8 99  31 36 b8 55 44 25 3a c8  |:d%=0:..16.UD%:.|
0000f700  95 55 44 25 3f 64 25 3c  3e 30 3a 55 24 2b 3d bd  |.UD%?d%<>0:U$+=.|
0000f710  28 55 44 25 3f 64 25 29  3a 64 25 2b 3d 31 3a ce  |(UD%?d%):d%+=1:.|
0000f720  3a c8 8e 58 ca 0d 11 70  06 c9 30 0d 11 71 2c c9  |:..X...p..0..q,.|
0000f730  31 3a 55 24 3d c1 55 24  2c a7 55 24 2c bd 33 34  |1:U$=.U$,.U$,.34|
0000f740  29 2b 31 29 3a 55 24 3d  c1 55 24 2c a7 55 24 2c  |)+1):U$=.U$,.U$,|
0000f750  bd 33 34 29 2b 32 29 0d  11 74 09 cb 3a 3d 55 24  |.34)+2)..t..:=U$|
0000f760  0d 11 7a 48 dd a4 73 68  65 6c 6c 5f 53 74 72 69  |..zH..shell_Stri|
0000f770  6e 67 53 74 72 69 70 54  72 61 69 6c 69 6e 67 28  |ngStripTrailing(|
0000f780  42 24 2c 56 24 29 3a c8  95 c2 42 24 2c 31 29 3d  |B$,V$):...B$,1)=|
0000f790  56 24 3a 42 24 3d c0 42  24 2c a9 28 42 24 29 2d  |V$:B$=.B$,.(B$)-|
0000f7a0  31 29 3a ce 3a 3d 42 24  0d 11 82 41 dd a4 73 68  |1):.:=B$...A..sh|
0000f7b0  65 6c 6c 5f 53 74 72 69  6e 67 53 74 72 69 70 4c  |ell_StringStripL|
0000f7c0  65 61 64 69 6e 67 28 42  24 2c 56 24 29 3a c8 95  |eading(B$,V$):..|
0000f7d0  c0 42 24 2c 31 29 3d 56  24 3a 42 24 3d c1 42 24  |.B$,1)=V$:B$=.B$|
0000f7e0  2c 32 29 3a ce 3a 3d 42  24 0d 11 8a 3a dd a4 73  |,2):.:=B$...:..s|
0000f7f0  68 65 6c 6c 5f 53 74 72  69 6e 67 53 74 72 69 70  |hell_StringStrip|
0000f800  41 6c 6c 28 42 24 2c 56  24 29 3a ea 44 2c 45 3a  |All(B$,V$):.D,E:|
0000f810  44 3d b9 3a f5 3a 45 3d  a7 42 24 2c 56 24 29 3a  |D=.:.:E=.B$,V$):|
0000f820  e7 45 8c 0d 11 90 1c 44  3d a3 3a 42 24 3d c0 42  |.E.....D=.:B$=.B|
0000f830  24 2c 45 2d 31 29 2b c1  42 24 2c 45 2b 31 29 0d  |$,E-1)+.B$,E+1).|
0000f840  11 92 08 cc 44 3d b9 0d  11 94 0c cd 3a fd 44 3a  |....D=......:.D:|
0000f850  3d 42 24 0d 11 9b 4f dd  a4 73 68 65 6c 6c 5f 53  |=B$...O..shell_S|
0000f860  74 72 69 6e 67 50 61 64  54 72 61 69 6c 69 6e 67  |tringPadTrailing|
0000f870  28 42 24 2c 56 24 2c 44  42 25 29 3a c8 95 a9 28  |(B$,V$,DB%):...(|
0000f880  42 24 29 3c 44 42 25 3a  42 24 3d 42 24 2b c4 44  |B$)<DB%:B$=B$+.D|
0000f890  42 25 2d a9 28 42 24 29  2c 56 24 29 3a ce 3a 3d  |B%-.(B$),V$):.:=|
0000f8a0  42 24 0d 11 a4 4e dd a4  73 68 65 6c 6c 5f 53 74  |B$...N..shell_St|
0000f8b0  72 69 6e 67 50 61 64 4c  65 61 64 69 6e 67 28 42  |ringPadLeading(B|
0000f8c0  24 2c 56 24 2c 44 42 25  29 3a c8 95 a9 28 42 24  |$,V$,DB%):...(B$|
0000f8d0  29 3c 44 42 25 3a 42 24  3d c4 44 42 25 2d a9 28  |)<DB%:B$=.DB%-.(|
0000f8e0  42 24 29 2c 56 24 29 2b  42 24 3a ce 3a 3d 42 24  |B$),V$)+B$:.:=B$|
0000f8f0  0d 11 ad 2d dd a4 73 68  65 6c 6c 5f 53 74 72 69  |...-..shell_Stri|
0000f900  6e 67 55 70 70 65 72 43  61 73 65 28 42 24 29 3a  |ngUpperCase(B$):|
0000f910  ea 73 25 3a e7 a9 28 42  24 29 3e 30 8c 0d 11 b0  |.s%:..(B$)>0....|
0000f920  2f e3 73 25 3d 31 b8 a9  28 42 24 29 3a e7 c1 42  |/.s%=1..(B$):..B|
0000f930  24 2c 73 25 2c 31 29 3e  3d 22 61 22 80 c1 42 24  |$,s%,1)>="a"..B$|
0000f940  2c 73 25 2c 31 29 3c 3d  22 7a 22 8c 0d 11 b2 21  |,s%,1)<="z"....!|
0000f950  c1 42 24 2c 73 25 2c 31  29 3d bd 28 97 28 c1 42  |.B$,s%,1)=.(.(.B|
0000f960  24 2c 73 25 2c 31 29 29  80 26 44 46 29 0d 11 b3  |$,s%,1)).&DF)...|
0000f970  09 cd 3a ed 73 25 0d 11  b5 09 cd 3a 3d 42 24 0d  |..:.s%.....:=B$.|
0000f980  11 bb 34 dd a4 73 68 65  6c 6c 5f 53 74 72 69 6e  |..4..shell_Strin|
0000f990  67 45 78 63 68 61 6e 67  65 28 42 24 2c 5f 24 2c  |gExchange(B$,_$,|
0000f9a0  68 41 24 29 3a ea 78 41  25 3a e7 a7 42 24 2c 5f  |hA$):.xA%:..B$,_|
0000f9b0  24 29 8c 0d 11 be 2e 78  41 25 3d a7 42 24 2c 5f  |$).....xA%=.B$,_|
0000f9c0  24 29 3a 42 24 3d c0 42  24 2c 78 41 25 2d 31 29  |$):B$=.B$,xA%-1)|
0000f9d0  2b 68 41 24 2b c1 42 24  2c 78 41 25 2b a9 5f 24  |+hA$+.B$,xA%+._$|
0000f9e0  29 0d 11 c0 09 cd 3a 3d  42 24 0d 11 c5 53 dd a4  |).....:=B$...S..|
0000f9f0  73 68 65 6c 6c 5f 53 74  72 69 6e 67 41 72 72 61  |shell_StringArra|
0000fa00  79 47 65 74 4c 6f 6e 67  65 73 74 28 41 24 28 29  |yGetLongest(A$()|
0000fa10  2c 71 43 25 29 3a ea 73  25 2c 72 43 25 3a 72 43  |,qC%):.s%,rC%:rC|
0000fa20  25 3d 30 3a e3 73 25 3d  30 b8 71 43 25 3a e7 a9  |%=0:.s%=0.qC%:..|
0000fa30  28 41 24 28 73 25 29 29  3e 72 43 25 8c 0d 11 ca  |(A$(s%))>rC%....|
0000fa40  11 72 43 25 3d a9 28 41  24 28 73 25 29 29 0d 11  |.rC%=.(A$(s%))..|
0000fa50  cb 0e cd 3a ed 73 25 3a  3d 72 43 25 0d 11 d1 4b  |...:.s%:=rC%...K|
0000fa60  dd a4 6d 65 6d 5f 74 6f  5f 73 74 72 69 6e 67 28  |..mem_to_string(|
0000fa70  49 45 25 2c 64 25 2c 4d  46 25 29 3a ea 42 24 3a  |IE%,d%,MF%):.B$:|
0000fa80  c8 95 49 45 25 3f 64 25  3c 3e 4d 46 25 3a 42 24  |..IE%?d%<>MF%:B$|
0000fa90  2b 3d bd 28 49 45 25 3f  64 25 29 3a 64 25 2b 3d  |+=.(IE%?d%):d%+=|
0000faa0  31 3a ce 3a 3d 42 24 0d  11 dc 53 dd a4 73 68 65  |1:.:=B$...S..she|
0000fab0  6c 6c 5f 46 69 6c 65 4c  65 6e 67 74 68 28 64 24  |ll_FileLength(d$|
0000fac0  29 3a ea 77 25 2c 4a 44  25 2c 6b 43 25 2c 44 42  |):.w%,JD%,kC%,DB|
0000fad0  25 2c 46 43 25 2c 42 24  3a c8 99 38 2c 35 2c 64  |%,FC%,B$:..8,5,d|
0000fae0  24 b8 77 25 2c 2c 4a 44  25 2c 6b 43 25 2c 44 42  |$.w%,,JD%,kC%,DB|
0000faf0  25 2c 46 43 25 3a 3d 44  42 25 0d 11 e4 5e dd f2  |%,FC%:=DB%...^..|
0000fb00  73 68 65 6c 6c 5f 54 72  61 63 65 4f 6e 3a 5f 55  |shell_TraceOn:_U|
0000fb10  25 21 26 36 34 3d 5f 55  25 21 26 36 34 84 31 3c  |%!&64=_U%!&64.1<|
0000fb20  3c 39 3a f2 73 68 65 6c  6c 5f 42 72 6f 61 64 63  |<9:.shell_Broadc|
0000fb30  61 73 74 4d 65 73 73 61  67 65 28 26 34 33 42 30  |astMessage(&43B0|
0000fb40  30 2c 22 53 68 65 6c 6c  44 42 75 67 3a 54 72 61  |0,"ShellDBug:Tra|
0000fb50  63 65 4f 6e 22 29 3a e1  0d 11 ec 3d dd f2 73 68  |ceOn"):....=..sh|
0000fb60  65 6c 6c 5f 54 72 61 63  65 4f 66 66 3a e7 28 5f  |ell_TraceOff:.(_|
0000fb70  55 25 21 26 36 34 80 28  31 3c 3c 39 29 29 8c 5f  |U%!&64.(1<<9))._|
0000fb80  55 25 21 26 36 34 3d 5f  55 25 21 26 36 34 82 28  |U%!&64=_U%!&64.(|
0000fb90  31 3c 3c 39 29 0d 11 ee  3a f2 73 68 65 6c 6c 5f  |1<<9)...:.shell_|
0000fba0  42 72 6f 61 64 63 61 73  74 4d 65 73 73 61 67 65  |BroadcastMessage|
0000fbb0  28 26 34 33 42 30 30 2c  22 53 68 65 6c 6c 44 42  |(&43B00,"ShellDB|
0000fbc0  75 67 3a 54 72 61 63 65  4f 66 66 22 29 3a e1 0d  |ug:TraceOff"):..|
0000fbd0  11 f5 30 dd f2 73 68 65  6c 6c 5f 54 72 61 63 65  |..0..shell_Trace|
0000fbe0  49 6e 69 74 28 69 24 29  3a ea 51 41 25 2c 61 25  |Init(i$):.QA%,a%|
0000fbf0  2c 45 24 2c 44 24 3a e7  69 24 3c 3e 22 22 8c 0d  |,E$,D$:.i$<>""..|
0000fc00  11 f8 18 51 41 25 3d ae  28 69 24 29 3a 5f 55 25  |...QA%=.(i$):_U%|
0000fc10  21 34 34 3d 51 41 25 0d  11 fa d8 cd 3a 61 25 3d  |!44=QA%.....:a%=|
0000fc20  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000fc30  46 65 74 63 68 28 32 35  36 29 3a 44 24 3d a4 73  |Fetch(256):D$=.s|
0000fc40  68 65 6c 6c 5f 4f 53 56  61 72 47 65 74 56 61 6c  |hell_OSVarGetVal|
0000fc50  28 61 25 2c 32 35 36 2c  22 4f 62 65 79 24 44 69  |(a%,256,"Obey$Di|
0000fc60  72 22 2c 31 29 3a 45 24  3d c1 a4 73 68 65 6c 6c  |r",1):E$=..shell|
0000fc70  5f 4c 65 61 66 28 44 24  29 2c 32 29 3a f2 73 68  |_Leaf(D$),2):.sh|
0000fc80  65 6c 6c 5f 42 72 6f 61  64 63 61 73 74 4d 65 73  |ell_BroadcastMes|
0000fc90  73 61 67 65 28 26 34 33  42 30 30 2c 22 53 68 65  |sage(&43B00,"She|
0000fca0  6c 6c 44 42 75 67 3a 49  6e 69 74 20 44 65 62 75  |llDBug:Init Debu|
0000fcb0  67 20 6d 65 73 73 61 67  65 73 20 66 72 6f 6d 20  |g messages from |
0000fcc0  22 2b 45 24 29 3a f2 73  68 65 6c 6c 5f 48 65 61  |"+E$):.shell_Hea|
0000fcd0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 61 25 29  |pBlockReturn(a%)|
0000fce0  3a e7 5f 55 25 21 26 36  34 80 31 3c 3c 34 8c 0d  |:._U%!&64.1<<4..|
0000fcf0  12 05 1b cc 5f 55 25 21  26 36 34 3d 28 5f 55 25  |...._U%!&64=(_U%|
0000fd00  21 26 36 34 82 31 3c 3c  34 29 0d 12 07 07 cd 3a  |!&64.1<<4).....:|
0000fd10  e1 0d 12 0d 2b dd a4 73  68 65 6c 6c 5f 54 72 61  |....+..shell_Tra|
0000fd20  63 65 49 73 4f 6e 3a e7  5f 55 25 21 26 36 34 80  |ceIsOn:._U%!&64.|
0000fd30  28 31 3c 3c 39 29 8c 3d  b9 8b 3d a3 0d 12 13 34  |(1<<9).=..=....4|
0000fd40  dd f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |..shell_Tracef0(|
0000fd50  57 41 24 29 3a ea 51 41  25 3a e7 ac 28 a4 73 68  |WA$):.QA%:..(.sh|
0000fd60  65 6c 6c 5f 54 72 61 63  65 49 73 4f 6e 29 8c e1  |ell_TraceIsOn)..|
0000fd70  0d 12 16 10 e7 5f 55 25  21 34 34 3c 3e 2d 31 8c  |....._U%!44<>-1.|
0000fd80  0d 12 17 18 51 41 25 3d  5f 55 25 21 34 34 3a d5  |....QA%=_U%!44:.|
0000fd90  23 51 41 25 2c 57 41 24  0d 12 19 11 cd 3a e7 5f  |#QA%,WA$.....:._|
0000fda0  55 25 21 26 39 34 3e 30  8c 0d 12 1c 3a f2 73 68  |U%!&94>0....:.sh|
0000fdb0  65 6c 6c 5f 42 72 6f 61  64 63 61 73 74 4d 65 73  |ell_BroadcastMes|
0000fdc0  73 61 67 65 28 26 34 33  42 30 30 2c 22 53 68 65  |sage(&43B00,"She|
0000fdd0  6c 6c 44 42 75 67 3a 54  72 61 63 65 20 22 2b 57  |llDBug:Trace "+W|
0000fde0  41 24 29 0d 12 1e 07 cd  3a e1 0d 12 24 2c dd f2  |A$).....:...$,..|
0000fdf0  73 68 65 6c 6c 5f 54 72  61 63 65 66 32 28 76 41  |shell_Tracef2(vA|
0000fe00  25 29 3a ff 28 22 4d 45  44 49 54 20 22 2b c3 7e  |%):.("MEDIT "+.~|
0000fe10  76 41 25 29 3a e1 0d 12  2b 36 dd f2 73 68 65 6c  |vA%):...+6..shel|
0000fe20  6c 5f 54 72 61 63 65 45  78 69 74 3a e7 5f 55 25  |l_TraceExit:._U%|
0000fe30  21 34 34 3c 3e 2d 31 8c  d9 23 28 5f 55 25 21 34  |!44<>-1..#(_U%!4|
0000fe40  34 29 3a 5f 55 25 21 34  34 3d 2d 31 0d 12 2e 05  |4):_U%!44=-1....|
0000fe50  e1 0d 12 33 5c dd f2 73  68 65 6c 6c 5f 41 74 74  |...3\..shell_Att|
0000fe60  61 63 68 48 6f 74 4b 65  79 28 58 41 24 2c 5f 42  |achHotKey(XA$,_B|
0000fe70  25 2c 48 43 25 2c 67 43  25 2c 4d 24 2c 62 25 2c  |%,HC%,gC%,M$,b%,|
0000fe80  54 24 2c 59 24 29 3a ea  78 25 2c 64 25 2c 63 25  |T$,Y$):.x%,d%,c%|
0000fe90  2c 43 41 25 2c 52 41 25  2c 56 44 25 3a 56 44 25  |,CA%,RA%,VD%:VD%|
0000fea0  3d b9 3a e7 5f 55 25 21  36 30 3d 30 8c 0d 12 37  |=.:._U%!60=0...7|
0000feb0  33 5f 55 25 21 36 30 3d  a4 73 68 65 6c 6c 5f 48  |3_U%!60=.shell_H|
0000fec0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 34  |eapBlockFetch(24|
0000fed0  29 3a 64 25 3d 30 3a 5f  55 25 21 26 42 34 3d 31  |):d%=0:_U%!&B4=1|
0000fee0  0d 12 39 4f cc 64 25 3d  5f 55 25 21 26 42 34 2a  |..9O.d%=_U%!&B4*|
0000fef0  32 34 3a 5f 55 25 21 36  30 3d a4 73 68 65 6c 6c  |24:_U%!60=.shell|
0000ff00  5f 48 65 61 70 42 6c 6f  63 6b 45 78 74 65 6e 64  |_HeapBlockExtend|
0000ff10  28 5f 55 25 21 36 30 2c  32 34 29 3a 5f 55 25 21  |(_U%!60,24):_U%!|
0000ff20  26 42 34 3d 28 5f 55 25  21 26 42 34 29 2b 31 0d  |&B4=(_U%!&B4)+1.|
0000ff30  12 3d 16 cd 3a 78 25 3d  5f 55 25 21 36 30 3a c8  |.=..:x%=_U%!60:.|
0000ff40  8e 58 41 24 ca 0d 12 40  11 c9 22 46 31 22 3a 52  |.XA$...@.."F1":R|
0000ff50  41 25 3d 33 38 35 0d 12  41 11 c9 22 46 32 22 3a  |A%=385..A.."F2":|
0000ff60  52 41 25 3d 33 38 36 0d  12 42 11 c9 22 46 33 22  |RA%=386..B.."F3"|
0000ff70  3a 52 41 25 3d 33 38 37  0d 12 43 11 c9 22 46 34  |:RA%=387..C.."F4|
0000ff80  22 3a 52 41 25 3d 33 38  38 0d 12 44 11 c9 22 46  |":RA%=388..D.."F|
0000ff90  35 22 3a 52 41 25 3d 33  38 39 0d 12 45 11 c9 22  |5":RA%=389..E.."|
0000ffa0  46 36 22 3a 52 41 25 3d  33 39 30 0d 12 46 11 c9  |F6":RA%=390..F..|
0000ffb0  22 46 37 22 3a 52 41 25  3d 33 39 31 0d 12 47 11  |"F7":RA%=391..G.|
0000ffc0  c9 22 46 38 22 3a 52 41  25 3d 33 39 32 0d 12 48  |."F8":RA%=392..H|
0000ffd0  11 c9 22 46 39 22 3a 52  41 25 3d 33 39 33 0d 12  |.."F9":RA%=393..|
0000ffe0  49 12 c9 22 46 31 30 22  3a 52 41 25 3d 34 35 38  |I.."F10":RA%=458|
0000fff0  0d 12 4a 12 c9 22 46 31  31 22 3a 52 41 25 3d 34  |..J.."F11":RA%=4|
00010000  35 39 0d 12 4b 18 7f 52  41 25 3d 28 97 58 41 24  |59..K..RA%=(.XA$|
00010010  29 2d 36 34 3a 56 44 25  3d a3 0d 12 4d 0b cb 3a  |)-64:VD%=...M..:|
00010020  e7 56 44 25 8c 0d 12 4f  10 e7 5f 42 25 8c 52 41  |.VD%...O.._B%.RA|
00010030  25 2b 3d 31 36 0d 12 50  10 e7 48 43 25 8c 52 41  |%+=16..P..HC%.RA|
00010040  25 2b 3d 33 32 0d 12 51  6c cd 3a 63 25 3d 78 25  |%+=32..Ql.:c%=x%|
00010050  2b 64 25 3a 63 25 21 30  3d 52 41 25 3a 63 25 3f  |+d%:c%!0=RA%:c%?|
00010060  34 3d 5f 42 25 3a 63 25  3f 35 3d 48 43 25 3a 63  |4=_B%:c%?5=HC%:c|
00010070  25 3f 36 3d 67 43 25 3a  63 25 21 38 3d a4 73 68  |%?6=gC%:c%!8=.sh|
00010080  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00010090  63 68 28 a9 4d 24 2b 31  29 3a 43 41 25 3d 63 25  |ch(.M$+1):CA%=c%|
000100a0  21 38 3a 24 43 41 25 3d  4d 24 3a e7 62 25 3e 30  |!8:$CA%=M$:.b%>0|
000100b0  8c 0d 12 5b 54 64 25 3d  a4 73 68 65 6c 6c 5f 53  |...[Td%=.shell_S|
000100c0  65 61 72 63 68 53 74 61  74 69 63 28 5f 55 25 21  |earchStatic(_U%!|
000100d0  26 42 38 2c 62 25 29 3a  e7 64 25 3d 2d 31 8c 85  |&B8,b%):.d%=-1..|
000100e0  39 39 2c a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |99,.shell_Messag|
000100f0  65 4e 6f 41 72 67 73 28  22 53 48 45 4c 4c 4d 53  |eNoArgs("SHELLMS|
00010100  47 30 39 22 29 0d 12 5d  7a cd 3a 63 25 21 26 43  |G09")..]z.:c%!&C|
00010110  3d 62 25 3a 63 25 21 31  36 3d a4 73 68 65 6c 6c  |=b%:c%!16=.shell|
00010120  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00010130  a9 54 24 2b 31 29 3a 43  41 25 3d 63 25 21 31 36  |.T$+1):CA%=c%!16|
00010140  3a 24 43 41 25 3d 54 24  3a 63 25 21 32 30 3d a4  |:$CA%=T$:c%!20=.|
00010150  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00010160  65 74 63 68 28 a9 59 24  2b 31 29 3a 43 41 25 3d  |etch(.Y$+1):CA%=|
00010170  63 25 21 32 30 3a 24 43  41 25 3d 59 24 3a e1 0d  |c%!20:$CA%=Y$:..|
00010180  12 68 8e dd a4 73 68 65  6c 6c 5f 48 6f 74 4b 65  |.h...shell_HotKe|
00010190  79 50 72 6f 63 65 73 73  28 52 41 25 29 3a ea 78  |yProcess(RA%):.x|
000101a0  25 2c 70 25 2c 6a 25 2c  65 25 2c 76 25 2c 6a 24  |%,p%,j%,e%,v%,j$|
000101b0  2c 54 24 2c 59 24 3a ea  48 43 25 2c 5f 42 25 2c  |,T$,Y$:.HC%,_B%,|
000101c0  67 43 25 2c 67 41 25 2c  66 41 25 2c 76 42 25 2c  |gC%,gA%,fA%,vB%,|
000101d0  49 47 25 2c 64 25 3a ea  5f 25 2c 71 25 3a 78 25  |IG%,d%:._%,q%:x%|
000101e0  3d 5f 55 25 21 36 30 3a  70 25 3d 5f 55 25 21 26  |=_U%!60:p%=_U%!&|
000101f0  42 34 2a 32 34 3a 6a 25  3d a3 3a 65 25 3d 30 3a  |B4*24:j%=.:e%=0:|
00010200  f5 3a e7 78 25 21 65 25  3d 52 41 25 8c 0d 12 71  |.:.x%!e%=RA%...q|
00010210  08 6a 25 3d b9 0d 12 72  0b cc 65 25 2b 3d 32 34  |.j%=...r..e%+=24|
00010220  0d 12 74 15 cd 3a fd 6a  25 84 65 25 3e 3d 70 25  |..t..:.j%.e%>=p%|
00010230  3a e7 6a 25 8c 0d 12 77  64 63 25 3d 78 25 2b 65  |:.j%...wdc%=x%+e|
00010240  25 3a 6a 24 3d 24 28 63  25 21 38 29 3a f2 73 68  |%:j$=$(c%!8):.sh|
00010250  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 48 6f 74  |ell_Tracef0("Hot|
00010260  4b 65 79 50 72 6f 63 65  73 73 3a 54 65 6d 70 6c  |KeyProcess:Templ|
00010270  61 74 65 20 6e 61 6d 65  20 69 73 20 27 22 2b 6a  |ate name is '"+j|
00010280  24 2b 22 27 22 29 3a e7  28 6a 24 3c 3e 22 22 80  |$+"'"):.(j$<>"".|
00010290  63 25 21 26 43 3d 30 29  8c 0d 12 7f e3 f2 73 68  |c%!&C=0)......sh|
000102a0  65 6c 6c 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |ell_CreateWindow|
000102b0  28 6a 24 2c 76 25 29 3a  f2 73 68 65 6c 6c 5f 54  |(j$,v%):.shell_T|
000102c0  72 61 63 65 66 30 28 22  48 6f 74 4b 65 79 50 72  |racef0("HotKeyPr|
000102d0  6f 63 65 73 73 3a 43 72  65 61 74 69 6e 67 20 6e  |ocess:Creating n|
000102e0  65 77 20 64 79 6e 61 6d  69 63 20 77 69 6e 64 6f  |ew dynamic windo|
000102f0  77 20 28 68 61 6e 64 6c  65 20 69 73 20 26 22 2b  |w (handle is &"+|
00010300  c3 7e 76 25 2b 22 29 22  29 3a 71 25 3d a4 73 68  |.~v%+")"):q%=.sh|
00010310  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00010320  63 68 28 33 36 29 3a 71  25 21 30 3d 76 25 3a c8  |ch(36):q%!0=v%:.|
00010330  99 26 34 30 30 43 42 2c  2c 71 25 3a 67 41 25 3d  |.&400CB,,q%:gA%=|
00010340  28 71 25 21 34 2d 71 25  21 26 43 29 2f 32 3a 66  |(q%!4-q%!&C)/2:f|
00010350  41 25 3d 28 71 25 21 31  36 2d 71 25 21 38 29 2f  |A%=(q%!16-q%!8)/|
00010360  32 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |2:.shell_HeapBlo|
00010370  63 6b 52 65 74 75 72 6e  28 71 25 29 0d 12 89 1a  |ckReturn(q%)....|
00010380  cd 3a 54 24 3d 24 28 63  25 21 31 36 29 3a e7 54  |.:T$=$(c%!16):.T|
00010390  24 3c 3e 22 22 8c 0d 12  8d 4a f2 73 68 65 6c 6c  |$<>""....J.shell|
000103a0  5f 54 72 61 63 65 66 30  28 22 48 6f 74 4b 65 79  |_Tracef0("HotKey|
000103b0  50 72 6f 63 65 73 73 3a  43 61 6c 6c 69 6e 67 20  |Process:Calling |
000103c0  50 72 65 2d 4f 70 65 6e  20 46 4e 20 27 22 2b 54  |Pre-Open FN '"+T|
000103d0  24 2b 22 27 22 29 3a e7  63 25 21 26 43 3e 30 8c  |$+"'"):.c%!&C>0.|
000103e0  0d 12 90 20 6f 25 3d a0  28 22 46 4e 22 2b 54 24  |... o%=.("FN"+T$|
000103f0  2b 22 28 22 2b c3 63 25  21 26 43 2b 22 29 22 29  |+"("+.c%!&C+")")|
00010400  0d 12 91 1e cc 6f 25 3d  a0 28 22 46 4e 22 2b 54  |.....o%=.("FN"+T|
00010410  24 2b 22 28 22 2b c3 76  25 2b 22 29 22 29 0d 12  |$+"("+.v%+")")..|
00010420  93 05 cd 0d 12 94 3e cc  f2 73 68 65 6c 6c 5f 54  |......>..shell_T|
00010430  72 61 63 65 66 30 28 22  48 6f 74 4b 65 79 50 72  |racef0("HotKeyPr|
00010440  6f 63 65 73 73 3a 4e 6f  20 50 72 65 2d 4f 70 65  |ocess:No Pre-Ope|
00010450  6e 20 46 4e 20 72 65 67  69 73 74 65 72 65 64 22  |n FN registered"|
00010460  29 0d 12 98 33 cd 3a 64  25 3d a4 73 68 65 6c 6c  |)...3.:d%=.shell|
00010470  5f 53 65 61 72 63 68 53  74 61 74 69 63 28 5f 55  |_SearchStatic(_U|
00010480  25 21 26 42 38 2c 63 25  21 26 43 29 3a e7 64 25  |%!&B8,c%!&C):.d%|
00010490  3e 2d 31 8c 0d 12 9b 22  f2 73 68 65 6c 6c 5f 4f  |>-1....".shell_O|
000104a0  70 65 6e 57 69 6e 64 6f  77 53 74 61 74 69 63 28  |penWindowStatic(|
000104b0  63 25 21 26 43 29 0d 12  9c 0e cc e7 63 25 21 26  |c%!&C)......c%!&|
000104c0  43 3e 30 8c 0d 12 a0 2a  85 39 39 2c a4 73 68 65  |C>0....*.99,.she|
000104d0  6c 6c 5f 4d 65 73 73 61  67 65 4e 6f 41 72 67 73  |ll_MessageNoArgs|
000104e0  28 22 53 48 45 4c 4c 4d  53 47 30 39 22 29 0d 12  |("SHELLMSG09")..|
000104f0  a1 2a cc f2 73 68 65 6c  6c 5f 4f 70 65 6e 57 69  |.*..shell_OpenWi|
00010500  6e 64 6f 77 44 79 6e 61  6d 69 63 32 28 76 25 2c  |ndowDynamic2(v%,|
00010510  67 41 25 2c 66 41 25 29  0d 12 a4 05 cd 0d 12 a5  |gA%,fA%)........|
00010520  1a cd 3a 59 24 3d 24 28  63 25 21 32 30 29 3a e7  |..:Y$=$(c%!20):.|
00010530  59 24 3c 3e 22 22 8c 0d  12 a9 4b f2 73 68 65 6c  |Y$<>""....K.shel|
00010540  6c 5f 54 72 61 63 65 66  30 28 22 48 6f 74 4b 65  |l_Tracef0("HotKe|
00010550  79 50 72 6f 63 65 73 73  3a 43 61 6c 6c 69 6e 67  |yProcess:Calling|
00010560  20 50 6f 73 74 2d 4f 70  65 6e 20 46 4e 20 27 22  | Post-Open FN '"|
00010570  2b 59 24 2b 22 27 22 29  3a e7 63 25 21 26 43 3e  |+Y$+"'"):.c%!&C>|
00010580  30 8c 0d 12 ac 20 6f 25  3d a0 28 22 46 4e 22 2b  |0.... o%=.("FN"+|
00010590  54 24 2b 22 28 22 2b c3  63 25 21 26 43 2b 22 29  |T$+"("+.c%!&C+")|
000105a0  22 29 0d 12 ad 1e cc 6f  25 3d a0 28 22 46 4e 22  |").....o%=.("FN"|
000105b0  2b 59 24 2b 22 28 22 2b  c3 76 25 2b 22 29 22 29  |+Y$+"("+.v%+")")|
000105c0  0d 12 af 05 cd 0d 12 b0  3f cc f2 73 68 65 6c 6c  |........?..shell|
000105d0  5f 54 72 61 63 65 66 30  28 22 48 6f 74 4b 65 79  |_Tracef0("HotKey|
000105e0  50 72 6f 63 65 73 73 3a  4e 6f 20 50 6f 73 74 2d  |Process:No Post-|
000105f0  4f 70 65 6e 20 46 4e 20  72 65 67 69 73 74 65 72  |Open FN register|
00010600  65 64 22 29 0d 12 b4 0a  cd 3a 5f 25 3d b9 0d 12  |ed").....:_%=...|
00010610  b6 1b cc 6a 24 3d 22 22  3a 54 24 3d 22 22 3a 59  |...j$="":T$="":Y|
00010620  24 3d 22 22 3a 5f 25 3d  a3 0d 12 b8 09 cd 3a 3d  |$="":_%=......:=|
00010630  5f 25 0d 12 be e5 dd f2  73 68 65 6c 6c 5f 57 69  |_%......shell_Wi|
00010640  6e 64 6f 77 43 65 6e 74  72 65 4f 6e 50 6f 69 6e  |ndowCentreOnPoin|
00010650  74 65 72 28 76 25 29 3a  ea 74 25 2c 53 43 25 2c  |ter(v%):.t%,SC%,|
00010660  67 41 25 2c 66 41 25 3a  53 43 25 3d a4 73 68 65  |gA%,fA%:SC%=.she|
00010670  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00010680  68 28 32 30 29 3a c8 99  26 34 30 30 43 46 2c 2c  |h(20):..&400CF,,|
00010690  53 43 25 3a 71 25 3d a4  73 68 65 6c 6c 5f 48 65  |SC%:q%=.shell_He|
000106a0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 33 36 29  |apBlockFetch(36)|
000106b0  3a 71 25 21 30 3d 76 25  3a c8 99 26 34 30 30 43  |:q%!0=v%:..&400C|
000106c0  42 2c 2c 71 25 3a 67 41  25 3d 28 71 25 21 34 2d  |B,,q%:gA%=(q%!4-|
000106d0  71 25 21 26 43 29 2f 32  3a 66 41 25 3d 28 71 25  |q%!&C)/2:fA%=(q%|
000106e0  21 31 36 2d 71 25 21 38  29 2f 32 3a f2 73 68 65  |!16-q%!8)/2:.she|
000106f0  6c 6c 5f 57 69 6e 64 6f  77 4d 6f 76 65 54 6f 28  |ll_WindowMoveTo(|
00010700  76 25 2c 53 43 25 21 30  2b 67 41 25 2c 53 43 25  |v%,SC%!0+gA%,SC%|
00010710  21 34 2d 66 41 25 29 0d  12 c8 3c f2 73 68 65 6c  |!4-fA%)...<.shel|
00010720  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00010730  6e 28 71 25 29 3a f2 73  68 65 6c 6c 5f 48 65 61  |n(q%):.shell_Hea|
00010740  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 53 43 25  |pBlockReturn(SC%|
00010750  29 3a e1 0d 12 cf ef dd  f2 73 68 65 6c 6c 5f 57  |):.......shell_W|
00010760  69 6e 64 6f 77 43 65 6e  74 72 65 4f 6e 53 63 72  |indowCentreOnScr|
00010770  65 65 6e 28 76 25 29 3a  ea 74 25 2c 73 43 25 2c  |een(v%):.t%,sC%,|
00010780  74 43 25 2c 73 41 25 2c  55 41 25 2c 4f 43 25 2c  |tC%,sA%,UA%,OC%,|
00010790  71 42 25 3a c8 99 26 32  30 30 33 35 2c 2d 31 2c  |qB%:..&20035,-1,|
000107a0  34 b8 2c 2c 4f 43 25 3a  c8 99 26 32 30 30 33 35  |4.,,OC%:..&20035|
000107b0  2c 2d 31 2c 35 b8 2c 2c  71 42 25 3a c8 99 26 32  |,-1,5.,,qB%:..&2|
000107c0  30 30 33 35 2c 2d 31 2c  26 42 b8 2c 2c 73 43 25  |0035,-1,&B.,,sC%|
000107d0  3a c8 99 26 32 30 30 33  35 2c 2d 31 2c 26 43 b8  |:..&20035,-1,&C.|
000107e0  2c 2c 74 43 25 3a 73 43  25 3d 73 43 25 3c 3c 4f  |,,tC%:sC%=sC%<<O|
000107f0  43 25 3a 74 43 25 3d 74  43 25 3c 3c 71 42 25 3a  |C%:tC%=tC%<<qB%:|
00010800  71 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |q%=.shell_HeapBl|
00010810  6f 63 6b 46 65 74 63 68  28 33 36 29 3a 71 25 21  |ockFetch(36):q%!|
00010820  30 3d 76 25 3a c8 99 26  34 30 30 43 42 2c 2c 71  |0=v%:..&400CB,,q|
00010830  25 3a 73 41 25 3d 28 71  25 21 26 43 2d 71 25 21  |%:sA%=(q%!&C-q%!|
00010840  34 29 0d 12 db 65 55 41  25 3d 28 71 25 21 31 36  |4)...eUA%=(q%!16|
00010850  2d 71 25 21 38 29 3a f2  73 68 65 6c 6c 5f 57 69  |-q%!8):.shell_Wi|
00010860  6e 64 6f 77 4d 6f 76 65  54 6f 28 76 25 2c 28 73  |ndowMoveTo(v%,(s|
00010870  43 25 2f 32 29 2d 28 73  41 25 2f 32 29 2c 28 74  |C%/2)-(sA%/2),(t|
00010880  43 25 2d 55 41 25 29 2f  32 29 3a f2 73 68 65 6c  |C%-UA%)/2):.shel|
00010890  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
000108a0  6e 28 71 25 29 3a e1 0d  12 e3 44 dd f2 73 68 65  |n(q%):....D..she|
000108b0  6c 6c 5f 4f 70 65 6e 57  69 6e 64 6f 77 53 74 61  |ll_OpenWindowSta|
000108c0  74 69 63 4e 65 77 56 69  65 77 28 62 25 29 3a f2  |ticNewView(b%):.|
000108d0  73 68 65 6c 6c 5f 4f 70  65 6e 57 69 6e 64 6f 77  |shell_OpenWindow|
000108e0  28 62 25 2c a3 2c 2d 31  29 3a e1 0d 12 ea 45 dd  |(b%,.,-1):....E.|
000108f0  f2 73 68 65 6c 6c 5f 4f  70 65 6e 57 69 6e 64 6f  |.shell_OpenWindo|
00010900  77 53 74 61 74 69 63 28  69 25 29 3a e7 a4 73 68  |wStatic(i%):..sh|
00010910  65 6c 6c 5f 53 65 61 72  63 68 53 74 61 74 69 63  |ell_SearchStatic|
00010920  28 5f 55 25 21 26 42 38  2c 69 25 29 3e 2d 31 8c  |(_U%!&B8,i%)>-1.|
00010930  0d 12 ec 1e f2 73 68 65  6c 6c 5f 4f 70 65 6e 57  |.....shell_OpenW|
00010940  69 6e 64 6f 77 28 69 25  2c 30 2c 2d 31 29 0d 12  |indow(i%,0,-1)..|
00010950  ed 05 cc 0d 12 ef 07 cd  3a e1 0d 12 f5 3b dd a4  |........:....;..|
00010960  73 68 65 6c 6c 5f 53 65  61 72 63 68 53 74 61 74  |shell_SearchStat|
00010970  69 63 28 64 41 25 2c 69  25 29 3a ea 6a 25 2c 67  |ic(dA%,i%):.j%,g|
00010980  25 3a 6a 25 3d 2d 31 3a  67 25 3d 30 3a e7 69 25  |%:j%=-1:g%=0:.i%|
00010990  3c 30 8c 3d 30 0d 12 fb  0c e7 64 41 25 3c 3e 30  |<0.=0.....dA%<>0|
000109a0  8c 0d 12 fc 1c c8 95 64  41 25 21 67 25 3c 3e 2d  |.......dA%!g%<>-|
000109b0  31 3a e7 64 41 25 21 67  25 3d 69 25 8c 0d 12 ff  |1:.dA%!g%=i%....|
000109c0  0d 6a 25 3d 67 25 3a 3d  6a 25 0d 13 02 0d cd 3a  |.j%=g%:=j%.....:|
000109d0  67 25 2b 3d 34 3a ce 0d  13 05 09 cd 3a 3d 6a 25  |g%+=4:......:=j%|
000109e0  0d 13 0b 7d dd f2 73 68  65 6c 6c 5f 43 72 65 61  |...}..shell_Crea|
000109f0  74 65 57 69 6e 64 6f 77  53 74 61 74 69 63 28 7a  |teWindowStatic(z|
00010a00  24 2c f8 69 25 29 3a ea  74 42 25 2c 64 41 25 2c  |$,.i%):.tB%,dA%,|
00010a10  63 25 2c 64 25 3a 74 42  25 3d a4 73 68 65 6c 6c  |c%,d%:tB%=.shell|
00010a20  5f 47 65 74 57 42 28 7a  24 29 3a 74 42 25 21 36  |_GetWB(z$):tB%!6|
00010a30  34 3d 5f 55 25 21 31 36  3a c8 99 26 34 30 30 43  |4=_U%!16:..&400C|
00010a40  31 2c 2c 74 42 25 b8 69  25 3a 64 41 25 3d 5f 55  |1,,tB%.i%:dA%=_U|
00010a50  25 21 26 42 38 3a e7 64  41 25 3d 30 8c 0d 13 15  |%!&B8:.dA%=0....|
00010a60  72 f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |r.shell_Tracef0(|
00010a70  22 43 72 65 61 74 65 57  69 6e 64 6f 77 53 74 61  |"CreateWindowSta|
00010a80  74 69 63 3a 45 6d 70 74  79 20 4c 69 73 74 22 29  |tic:Empty List")|
00010a90  3a 5f 55 25 21 26 42 38  3d a4 73 68 65 6c 6c 5f  |:_U%!&B8=.shell_|
00010aa0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 38  |HeapBlockFetch(8|
00010ab0  29 3a 64 41 25 3d 5f 55  25 21 26 42 38 3a 64 41  |):dA%=_U%!&B8:dA|
00010ac0  25 21 30 3d 69 25 3a 64  41 25 21 34 3d 2d 31 0d  |%!0=i%:dA%!4=-1.|
00010ad0  13 1a 70 cc f2 73 68 65  6c 6c 5f 54 72 61 63 65  |..p..shell_Trace|
00010ae0  66 30 28 22 43 72 65 61  74 65 57 69 6e 64 6f 77  |f0("CreateWindow|
00010af0  53 74 61 74 69 63 3a 53  65 61 72 63 68 69 6e 67  |Static:Searching|
00010b00  20 66 6f 72 20 77 69 6e  64 6f 77 20 68 61 6e 64  | for window hand|
00010b10  6c 65 22 29 3a 64 25 3d  a4 73 68 65 6c 6c 5f 53  |le"):d%=.shell_S|
00010b20  65 61 72 63 68 53 74 61  74 69 63 28 5f 55 25 21  |earchStatic(_U%!|
00010b30  26 42 38 2c 69 25 29 3a  e7 64 25 3d 2d 31 8c 0d  |&B8,i%):.d%=-1..|
00010b40  13 23 7b f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |.#{.shell_Tracef|
00010b50  30 28 22 43 72 65 61 74  65 57 69 6e 64 6f 77 53  |0("CreateWindowS|
00010b60  74 61 74 69 63 3a 4e 6f  74 20 66 6f 75 6e 64 20  |tatic:Not found |
00010b70  2d 20 61 64 64 69 6e 67  20 77 69 6e 64 6f 77 20  |- adding window |
00010b80  68 61 6e 64 6c 65 20 74  6f 20 6c 69 73 74 22 29  |handle to list")|
00010b90  3a 64 25 3d a4 73 68 65  6c 6c 5f 53 65 61 72 63  |:d%=.shell_Searc|
00010ba0  68 53 74 61 74 69 63 28  5f 55 25 21 26 42 38 2c  |hStatic(_U%!&B8,|
00010bb0  30 29 3a e7 64 25 3d 2d  31 8c 0d 13 28 95 f2 73  |0):.d%=-1...(..s|
00010bc0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 43 72  |hell_Tracef0("Cr|
00010bd0  65 61 74 65 57 69 6e 64  6f 77 53 74 61 74 69 63  |eateWindowStatic|
00010be0  3a 45 78 74 65 6e 64 69  6e 67 20 77 69 6e 64 6f  |:Extending windo|
00010bf0  77 20 68 61 6e 64 6c 65  20 6c 69 73 74 22 29 3a  |w handle list"):|
00010c00  67 25 3d 30 3a c8 95 64  41 25 21 67 25 3c 3e 2d  |g%=0:..dA%!g%<>-|
00010c10  31 3a 67 25 2b 3d 34 3a  ce 3a 5f 55 25 21 26 42  |1:g%+=4:.:_U%!&B|
00010c20  38 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |8=.shell_HeapBlo|
00010c30  63 6b 45 78 74 65 6e 64  28 5f 55 25 21 26 42 38  |ckExtend(_U%!&B8|
00010c40  2c 34 29 3a 64 41 25 3d  5f 55 25 21 26 42 38 0d  |,4):dA%=_U%!&B8.|
00010c50  13 30 4a cc f2 73 68 65  6c 6c 5f 54 72 61 63 65  |.0J..shell_Trace|
00010c60  66 30 28 22 43 72 65 61  74 65 57 69 6e 64 6f 77  |f0("CreateWindow|
00010c70  53 74 61 74 69 63 3a 46  6f 75 6e 64 20 75 6e 75  |Static:Found unu|
00010c80  73 65 64 20 73 70 61 63  65 20 69 6e 20 6c 69 73  |sed space in lis|
00010c90  74 22 29 3a 67 25 3d 64  25 0d 13 35 1f cd 3a 63  |t"):g%=d%..5..:c|
00010ca0  25 3d 64 41 25 2b 67 25  3a 63 25 21 30 3d 69 25  |%=dA%+g%:c%!0=i%|
00010cb0  3a 63 25 21 34 3d 2d 31  0d 13 38 05 cd 0d 13 39  |:c%!4=-1..8....9|
00010cc0  07 cd 3a e1 0d 13 3f 70  dd f2 73 68 65 6c 6c 5f  |..:...?p..shell_|
00010cd0  49 6e 69 74 48 65 6c 70  53 79 73 74 65 6d 28 47  |InitHelpSystem(G|
00010ce0  24 2c 67 46 25 29 3a ea  42 41 24 2c 46 41 25 2c  |$,gF%):.BA$,FA%,|
00010cf0  71 41 25 2c 5a 24 2c 58  44 25 2c 5a 42 25 3a 5f  |qA%,Z$,XD%,ZB%:_|
00010d00  55 25 21 26 44 34 3d 30  3a e7 5f 55 25 21 26 44  |U%!&D4=0:._U%!&D|
00010d10  38 3c 3e 30 8c f2 73 68  65 6c 6c 5f 48 65 61 70  |8<>0..shell_Heap|
00010d20  42 6c 6f 63 6b 52 65 74  75 72 6e 28 5f 55 25 21  |BlockReturn(_U%!|
00010d30  26 44 38 29 0d 13 42 40  5f 55 25 21 26 44 38 3d  |&D8)..B@_U%!&D8=|
00010d40  30 3a f2 73 68 65 6c 6c  5f 53 63 61 6e 46 6f 72  |0:.shell_ScanFor|
00010d50  48 65 6c 70 3a e7 67 46  25 8c 42 41 24 3d 22 20  |Help:.gF%.BA$=" |
00010d60  2d 44 69 65 57 69 74 68  54 61 73 6b 22 8b 42 41  |-DieWithTask".BA|
00010d70  24 3d 22 22 0d 13 45 12  e7 5f 55 25 21 26 36 34  |$=""..E.._U%!&64|
00010d80  80 31 3c 3c 33 8c 0d 13  47 9a 47 24 3d 22 22 3a  |.1<<3...G.G$="":|
00010d90  71 41 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |qA%=.shell_HeapB|
00010da0  6c 6f 63 6b 46 65 74 63  68 28 32 35 36 29 3a 5a  |lockFetch(256):Z|
00010db0  24 3d a4 73 68 65 6c 6c  5f 4f 53 56 61 72 47 65  |$=.shell_OSVarGe|
00010dc0  74 56 61 6c 28 71 41 25  2c 32 35 36 2c a4 73 68  |tVal(qA%,256,.sh|
00010dd0  65 6c 6c 5f 47 65 74 41  70 70 4e 61 6d 65 2b 22  |ell_GetAppName+"|
00010de0  52 65 73 24 50 61 74 68  22 2c 2d 31 29 3a f2 73  |Res$Path",-1):.s|
00010df0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00010e00  74 75 72 6e 28 71 41 25  29 3a f5 3a 46 41 25 3d  |turn(qA%):.:FA%=|
00010e10  a7 5a 24 2c 22 2c 22 29  3a e7 46 41 25 3e 30 8c  |.Z$,","):.FA%>0.|
00010e20  0d 13 4e 35 e7 a4 73 68  65 6c 6c 5f 46 69 6c 65  |..N5..shell_File|
00010e30  45 78 69 73 74 73 28 c0  5a 24 2c 46 41 25 2d 31  |Exists(.Z$,FA%-1|
00010e40  29 2b a4 73 68 65 6c 6c  5f 47 65 74 41 70 70 4e  |)+.shell_GetAppN|
00010e50  61 6d 65 29 8c 0d 13 4f  47 47 24 3d c0 5a 24 2c  |ame)...OGG$=.Z$,|
00010e60  46 41 25 2d 31 29 2b a4  73 68 65 6c 6c 5f 47 65  |FA%-1)+.shell_Ge|
00010e70  74 41 70 70 4e 61 6d 65  3a e7 a4 73 68 65 6c 6c  |tAppName:..shell|
00010e80  5f 53 74 72 6f 6e 67 48  6c 70 43 68 6b 46 69 6c  |_StrongHlpChkFil|
00010e90  65 73 28 47 24 29 8c 58  44 25 3d b9 0d 13 51 12  |es(G$).XD%=...Q.|
00010ea0  cc 5a 24 3d c1 5a 24 2c  46 41 25 2b 31 29 0d 13  |.Z$=.Z$,FA%+1)..|
00010eb0  53 05 cd 0d 13 54 2e cc  e7 a4 73 68 65 6c 6c 5f  |S....T....shell_|
00010ec0  46 69 6c 65 45 78 69 73  74 73 28 5a 24 2b a4 73  |FileExists(Z$+.s|
00010ed0  68 65 6c 6c 5f 47 65 74  41 70 70 4e 61 6d 65 29  |hell_GetAppName)|
00010ee0  8c 0d 13 56 3f 47 24 3d  5a 24 2b a4 73 68 65 6c  |...V?G$=Z$+.shel|
00010ef0  6c 5f 47 65 74 41 70 70  4e 61 6d 65 3a e7 a4 73  |l_GetAppName:..s|
00010f00  68 65 6c 6c 5f 53 74 72  6f 6e 67 48 6c 70 43 68  |hell_StrongHlpCh|
00010f10  6b 46 69 6c 65 73 28 47  24 29 8c 58 44 25 3d b9  |kFiles(G$).XD%=.|
00010f20  0d 13 58 4a cc 5a 42 25  3d b9 3a f2 73 68 65 6c  |..XJ.ZB%=.:.shel|
00010f30  6c 5f 4f 4b 28 a4 73 68  65 6c 6c 5f 4d 65 73 73  |l_OK(.shell_Mess|
00010f40  61 67 65 4f 6e 65 41 72  67 28 22 53 48 45 4c 4c  |ageOneArg("SHELL|
00010f50  4d 53 47 32 36 22 2c a4  73 68 65 6c 6c 5f 47 65  |MSG26",.shell_Ge|
00010f60  74 41 70 70 4e 61 6d 65  29 29 0d 13 5b 05 cd 0d  |tAppName))..[...|
00010f70  13 5c 15 cd 3a fd 47 24  3c 3e 22 22 84 58 44 25  |.\..:.G$<>"".XD%|
00010f80  84 5a 42 25 0d 13 5e 1c  cc e7 a4 73 68 65 6c 6c  |.ZB%..^....shell|
00010f90  5f 46 69 6c 65 45 78 69  73 74 73 28 47 24 29 8c  |_FileExists(G$).|
00010fa0  0d 13 62 28 e7 ac a4 73  68 65 6c 6c 5f 53 74 72  |..b(...shell_Str|
00010fb0  6f 6e 67 48 6c 70 43 68  6b 46 69 6c 65 73 28 47  |ongHlpChkFiles(G|
00010fc0  24 29 8c 5a 42 25 3d b9  0d 13 63 2e cc 85 39 39  |$).ZB%=...c...99|
00010fd0  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4f  |,.shell_MessageO|
00010fe0  6e 65 41 72 67 28 22 53  48 45 4c 4c 4d 53 47 33  |neArg("SHELLMSG3|
00010ff0  33 22 2c 47 24 29 0d 13  65 05 cd 0d 13 66 0d cd  |3",G$)..e....f..|
00011000  3a e7 5a 42 25 3d 30 8c  0d 13 68 44 f2 73 68 65  |:.ZB%=0...hD.she|
00011010  6c 6c 5f 53 74 72 6f 6e  67 48 6c 70 4d 73 67 28  |ll_StrongHlpMsg(|
00011020  22 48 65 6c 70 5f 49 6e  73 74 61 6c 6c 20 22 2b  |"Help_Install "+|
00011030  47 24 2b 42 41 24 29 3a  5f 55 25 21 26 36 34 3d  |G$+BA$):_U%!&64=|
00011040  5f 55 25 21 26 36 34 84  31 3c 3c 37 0d 13 6a 07  |_U%!&64.1<<7..j.|
00011050  cd 3a e1 0d 13 70 51 dd  f2 73 68 65 6c 6c 5f 48  |.:...pQ..shell_H|
00011060  65 6c 70 57 6f 72 64 28  43 41 24 29 3a ea 50 47  |elpWord(CA$):.PG|
00011070  25 2c 63 25 2c 41 41 25  3a 41 41 25 3d a4 73 68  |%,c%,AA%:AA%=.sh|
00011080  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00011090  63 68 28 35 31 32 29 3a  e7 5f 55 25 21 26 44 30  |ch(512):._U%!&D0|
000110a0  3d 2d 31 8c 0d 13 75 2e  e7 a4 73 68 65 6c 6c 5f  |=-1...u...shell_|
000110b0  4f 53 56 61 72 45 78 69  73 74 73 28 41 41 25 2c  |OSVarExists(AA%,|
000110c0  22 53 74 72 6f 6e 67 48  65 6c 70 24 44 69 72 22  |"StrongHelp$Dir"|
000110d0  29 8c 0d 13 77 4b c8 99  26 36 30 30 44 45 2c 22  |)...wK..&600DE,"|
000110e0  3c 53 74 72 6f 6e 67 48  65 6c 70 24 44 69 72 3e  |<StrongHelp$Dir>|
000110f0  22 3a e7 5f 55 25 21 26  44 38 3c 3e 30 8c f2 73  |":._U%!&D8<>0..s|
00011100  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00011110  74 75 72 6e 28 5f 55 25  21 26 44 38 29 0d 13 79  |turn(_U%!&D8)..y|
00011120  3c 5f 55 25 21 26 44 38  3d a4 73 68 65 6c 6c 5f  |<_U%!&D8=.shell_|
00011130  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 a9  |HeapBlockFetch(.|
00011140  43 41 24 2b 31 29 3a 63  25 3d 5f 55 25 21 26 44  |CA$+1):c%=_U%!&D|
00011150  38 3a 24 63 25 3d 43 41  24 0d 13 7c 4e cc f2 73  |8:$c%=CA$..|N..s|
00011160  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00011170  74 75 72 6e 28 41 41 25  29 3a f2 73 68 65 6c 6c  |turn(AA%):.shell|
00011180  5f 4f 4b 28 a4 73 68 65  6c 6c 5f 4d 65 73 73 61  |_OK(.shell_Messa|
00011190  67 65 4e 6f 41 72 67 73  28 22 53 48 45 4c 4c 4d  |geNoArgs("SHELLM|
000111a0  53 47 31 31 22 29 29 0d  13 81 05 cd 0d 13 82 2a  |SG11"))........*|
000111b0  cc f2 73 68 65 6c 6c 5f  53 74 72 6f 6e 67 48 6c  |..shell_StrongHl|
000111c0  70 4d 73 67 28 22 48 65  6c 70 5f 57 6f 72 64 20  |pMsg("Help_Word |
000111d0  22 2b 43 41 24 29 0d 13  84 23 cd 3a f2 73 68 65  |"+CA$)...#.:.she|
000111e0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
000111f0  72 6e 28 41 41 25 29 3a  e1 0d 13 8b 41 dd f2 73  |rn(AA%):....A..s|
00011200  68 65 6c 6c 5f 53 74 72  6f 6e 67 48 6c 70 4d 73  |hell_StrongHlpMs|
00011210  67 28 6f 24 29 3a f2 73  68 65 6c 6c 5f 42 72 6f  |g(o$):.shell_Bro|
00011220  61 64 63 61 73 74 4d 65  73 73 61 67 65 28 26 34  |adcastMessage(&4|
00011230  33 42 30 30 2c 6f 24 29  3a e1 0d 13 91 9d dd f2  |3B00,o$):.......|
00011240  73 68 65 6c 6c 5f 53 63  61 6e 46 6f 72 48 65 6c  |shell_ScanForHel|
00011250  70 3a ea 55 42 25 2c 76  43 25 3a 55 42 25 3d a4  |p:.UB%,vC%:UB%=.|
00011260  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00011270  65 74 63 68 28 32 35 36  29 3a f5 3a 55 42 25 21  |etch(256):.:UB%!|
00011280  26 43 3d 30 3a c8 99 26  34 30 30 45 37 2c 31 39  |&C=0:..&400E7,19|
00011290  2c 55 42 25 2c 2d 32 2c  5f 55 25 21 26 44 34 b8  |,UB%,-2,_U%!&D4.|
000112a0  2c 2c 76 43 25 3a 5f 55  25 21 26 44 34 3d 5f 55  |,,vC%:_U%!&D4=_U|
000112b0  25 21 26 44 34 2b 31 3a  fd 76 43 25 3c 3e 2d 31  |%!&D4+1:.vC%<>-1|
000112c0  84 28 5f 55 25 21 26 44  34 29 3e 36 34 3a e7 76  |.(_U%!&D4)>64:.v|
000112d0  43 25 3c 3e 2d 31 8c 0d  13 a5 40 55 42 25 21 30  |C%<>-1....@UB%!0|
000112e0  3d 32 34 3a 55 42 25 21  26 43 3d 30 3a 55 42 25  |=24:UB%!&C=0:UB%|
000112f0  21 31 36 3d 26 34 30 30  43 36 3a 55 42 25 21 32  |!16=&400C6:UB%!2|
00011300  30 3d 76 43 25 3a c8 99  26 34 30 30 45 37 2c 31  |0=vC%:..&400E7,1|
00011310  37 2c 55 42 25 2c 30 0d  13 aa 23 cd 3a f2 73 68  |7,UB%,0...#.:.sh|
00011320  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00011330  75 72 6e 28 55 42 25 29  3a e1 0d 13 b1 b4 dd f2  |urn(UB%):.......|
00011340  73 68 65 6c 6c 5f 42 72  6f 61 64 63 61 73 74 4d  |shell_BroadcastM|
00011350  65 73 73 61 67 65 28 6c  46 25 2c 6f 24 29 3a ea  |essage(lF%,o$):.|
00011360  7a 25 2c 5a 44 25 3a 5a  44 25 3d 28 a9 6f 24 2b  |z%,ZD%:ZD%=(.o$+|
00011370  33 30 29 80 ac 33 3a 7a  25 3d a4 73 68 65 6c 6c  |30)..3:z%=.shell|
00011380  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00011390  5a 44 25 29 3a 7a 25 21  26 43 3d 30 3a 7a 25 21  |ZD%):z%!&C=0:z%!|
000113a0  31 36 3d 6c 46 25 3a 24  28 7a 25 2b 32 30 29 3d  |16=lF%:$(z%+20)=|
000113b0  6f 24 2b bd 28 30 29 3a  7a 25 21 30 3d 5a 44 25  |o$+.(0):z%!0=ZD%|
000113c0  3a c8 99 26 36 30 30 45  37 2c 31 37 2c 7a 25 2c  |:..&600E7,17,z%,|
000113d0  30 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |0:.shell_HeapBlo|
000113e0  63 6b 52 65 74 75 72 6e  28 7a 25 29 3a e1 0d 13  |ckReturn(z%):...|
000113f0  c2 4a dd f2 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |.J..shell_Window|
00011400  54 6f 67 67 6c 65 42 61  63 6b 49 63 6f 6e 28 f8  |ToggleBackIcon(.|
00011410  62 25 29 3a f2 73 68 65  6c 6c 5f 57 69 6e 64 6f  |b%):.shell_Windo|
00011420  77 54 6f 67 67 6c 65 46  6c 61 67 73 28 62 25 2c  |wToggleFlags(b%,|
00011430  31 3c 3c 32 34 29 3a e1  0d 13 c8 4b dd f2 73 68  |1<<24):....K..sh|
00011440  65 6c 6c 5f 57 69 6e 64  6f 77 54 6f 67 67 6c 65  |ell_WindowToggle|
00011450  43 6c 6f 73 65 49 63 6f  6e 28 f8 62 25 29 3a f2  |CloseIcon(.b%):.|
00011460  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 54 6f 67 67  |shell_WindowTogg|
00011470  6c 65 46 6c 61 67 73 28  62 25 2c 31 3c 3c 32 35  |leFlags(b%,1<<25|
00011480  29 3a e1 0d 13 ce 4a dd  f2 73 68 65 6c 6c 5f 57  |):....J..shell_W|
00011490  69 6e 64 6f 77 54 6f 67  67 6c 65 54 69 74 6c 65  |indowToggleTitle|
000114a0  42 61 72 28 f8 62 25 29  3a f2 73 68 65 6c 6c 5f  |Bar(.b%):.shell_|
000114b0  57 69 6e 64 6f 77 54 6f  67 67 6c 65 46 6c 61 67  |WindowToggleFlag|
000114c0  73 28 62 25 2c 31 3c 3c  32 36 29 3a e1 0d 13 d4  |s(b%,1<<26):....|
000114d0  4c dd f2 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 54  |L..shell_WindowT|
000114e0  6f 67 67 6c 65 54 6f 67  67 6c 65 49 63 6f 6e 28  |oggleToggleIcon(|
000114f0  f8 62 25 29 3a f2 73 68  65 6c 6c 5f 57 69 6e 64  |.b%):.shell_Wind|
00011500  6f 77 54 6f 67 67 6c 65  46 6c 61 67 73 28 62 25  |owToggleFlags(b%|
00011510  2c 31 3c 3c 32 37 29 3a  e1 0d 13 da 4c dd f2 73  |,1<<27):....L..s|
00011520  68 65 6c 6c 5f 57 69 6e  64 6f 77 54 6f 67 67 6c  |hell_WindowToggl|
00011530  65 48 53 63 72 6f 6c 6c  42 61 72 28 f8 62 25 29  |eHScrollBar(.b%)|
00011540  3a f2 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 6f  |:.shell_WindowTo|
00011550  67 67 6c 65 46 6c 61 67  73 28 62 25 2c 31 3c 3c  |ggleFlags(b%,1<<|
00011560  33 30 29 3a e1 0d 13 e0  50 dd f2 73 68 65 6c 6c  |30):....P..shell|
00011570  5f 57 69 6e 64 6f 77 54  6f 67 67 6c 65 41 64 6a  |_WindowToggleAdj|
00011580  75 73 74 53 69 7a 65 49  63 6f 6e 28 f8 62 25 29  |ustSizeIcon(.b%)|
00011590  3a f2 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 6f  |:.shell_WindowTo|
000115a0  67 67 6c 65 46 6c 61 67  73 28 62 25 2c 31 3c 3c  |ggleFlags(b%,1<<|
000115b0  32 39 29 3a e1 0d 13 e6  4c dd f2 73 68 65 6c 6c  |29):....L..shell|
000115c0  5f 57 69 6e 64 6f 77 54  6f 67 67 6c 65 56 53 63  |_WindowToggleVSc|
000115d0  72 6f 6c 6c 42 61 72 28  f8 62 25 29 3a f2 73 68  |rollBar(.b%):.sh|
000115e0  65 6c 6c 5f 57 69 6e 64  6f 77 54 6f 67 67 6c 65  |ell_WindowToggle|
000115f0  46 6c 61 67 73 28 62 25  2c 31 3c 3c 32 38 29 3a  |Flags(b%,1<<28):|
00011600  e1 0d 13 ed fe dd f2 73  68 65 6c 6c 5f 57 69 6e  |.......shell_Win|
00011610  64 6f 77 54 6f 67 67 6c  65 46 6c 61 67 73 28 f8  |dowToggleFlags(.|
00011620  62 25 2c 66 43 25 29 3a  ea 61 25 2c 6e 25 2c 6f  |b%,fC%):.a%,n%,o|
00011630  43 25 2c 69 25 3a f2 73  68 65 6c 6c 5f 54 72 61  |C%,i%:.shell_Tra|
00011640  63 65 66 30 28 22 57 69  6e 64 6f 77 54 6f 67 67  |cef0("WindowTogg|
00011650  6c 65 46 6c 61 67 73 3a  77 68 25 3d 26 22 2b c3  |leFlags:wh%=&"+.|
00011660  7e 62 25 29 3a 6f 43 25  3d a4 73 68 65 6c 6c 5f  |~b%):oC%=.shell_|
00011670  57 69 6e 64 6f 77 49 73  4f 70 65 6e 28 62 25 29  |WindowIsOpen(b%)|
00011680  3a 61 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:a%=.shell_HeapB|
00011690  6c 6f 63 6b 46 65 74 63  68 28 26 36 34 2b 28 a4  |lockFetch(&64+(.|
000116a0  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 43 6f 75 6e  |shell_WindowCoun|
000116b0  74 49 63 6f 6e 73 28 62  25 29 2a 33 32 29 29 3a  |tIcons(b%)*32)):|
000116c0  61 25 21 30 3d 62 25 3a  c8 99 26 34 30 30 43 43  |a%!0=b%:..&400CC|
000116d0  2c 2c 61 25 3a 6e 25 3d  61 25 21 33 32 3a 6e 25  |,,a%:n%=a%!32:n%|
000116e0  3d 28 6e 25 82 66 43 25  29 3a 61 25 21 33 32 3d  |=(n%.fC%):a%!32=|
000116f0  6e 25 3a c8 99 26 34 30  30 43 33 2c 2c 61 25 0d  |n%:..&400C3,,a%.|
00011700  13 fa 22 c8 99 26 34 30  30 43 31 2c 2c 61 25 2b  |.."..&400C1,,a%+|
00011710  34 b8 69 25 3a 21 61 25  3d 69 25 3a e7 6f 43 25  |4.i%:!a%=i%:.oC%|
00011720  8c 0d 13 fe 10 c8 99 26  34 30 30 43 35 2c 2c 61  |.......&400C5,,a|
00011730  25 0d 13 ff 29 cd 3a f2  73 68 65 6c 6c 5f 48 65  |%...).:.shell_He|
00011740  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 61 25  |apBlockReturn(a%|
00011750  29 3a e7 69 25 3c 3e 62  25 8c 0d 14 02 2a f2 73  |):.i%<>b%....*.s|
00011760  68 65 6c 6c 5f 55 70 64  61 74 65 57 69 6e 64 6f  |hell_UpdateWindo|
00011770  77 48 61 6e 64 6c 65 28  62 25 2c 69 25 29 3a 62  |wHandle(b%,i%):b|
00011780  25 3d 69 25 0d 14 04 07  cd 3a e1 0d 14 0a d0 dd  |%=i%.....:......|
00011790  f2 73 68 65 6c 6c 5f 4c  69 73 74 43 6c 69 63 6b  |.shell_ListClick|
000117a0  53 65 6c 65 63 74 3a ea  78 25 2c 65 25 2c 70 25  |Select:.x%,e%,p%|
000117b0  2c 63 25 2c 43 41 25 3a  78 25 3d 5f 55 25 21 26  |,c%,CA%:x%=_U%!&|
000117c0  43 3a 70 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |C:p%=.shell_Heap|
000117d0  42 6c 6f 63 6b 49 6e 66  6f 28 78 25 29 3a f2 73  |BlockInfo(x%):.s|
000117e0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 20 22  |hell_Tracef0(" "|
000117f0  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
00011800  28 22 4c 69 73 74 20 6f  66 20 43 6c 69 63 6b 53  |("List of ClickS|
00011810  65 6c 65 63 74 20 65 76  65 6e 74 73 3a 22 29 3a  |elect events:"):|
00011820  65 25 3d 30 3a f5 3a 63  25 3d 78 25 21 28 65 25  |e%=0:.:c%=x%!(e%|
00011830  2b 32 30 29 3a 43 41 25  3d 78 25 2b 65 25 3a e7  |+20):CA%=x%+e%:.|
00011840  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00011850  45 78 69 73 74 73 28 63  25 29 8c 0d 14 16 0d e7  |Exists(c%)......|
00011860  24 63 25 3c 3e 22 22 8c  0d 14 18 76 f2 73 68 65  |$c%<>""....v.she|
00011870  6c 6c 5f 54 72 61 63 65  66 30 28 22 26 22 2b a4  |ll_Tracef0("&"+.|
00011880  73 68 65 6c 6c 5f 53 74  72 69 6e 67 50 61 64 54  |shell_StringPadT|
00011890  72 61 69 6c 69 6e 67 28  c3 7e 43 41 25 21 30 2c  |railing(.~CA%!0,|
000118a0  22 20 22 2c 38 29 2b 22  20 26 22 2b a4 73 68 65  |" ",8)+" &"+.she|
000118b0  6c 6c 5f 53 74 72 69 6e  67 50 61 64 54 72 61 69  |ll_StringPadTrai|
000118c0  6c 69 6e 67 28 c3 7e 43  41 25 21 34 2c 22 20 22  |ling(.~CA%!4," "|
000118d0  2c 38 29 2b 22 20 20 20  22 2b 24 63 25 29 0d 14  |,8)+"   "+$c%)..|
000118e0  1a 05 cd 0d 14 1b 2c cd  3a 65 25 2b 3d 34 38 3a  |......,.:e%+=48:|
000118f0  fd 28 65 25 3e 3d 70 25  29 3a f2 73 68 65 6c 6c  |.(e%>=p%):.shell|
00011900  5f 54 72 61 63 65 66 30  28 22 20 22 29 3a e1 0d  |_Tracef0(" "):..|
00011910  14 25 d0 dd f2 73 68 65  6c 6c 5f 4c 69 73 74 43  |.%...shell_ListC|
00011920  6c 69 63 6b 41 64 6a 75  73 74 3a ea 78 25 2c 65  |lickAdjust:.x%,e|
00011930  25 2c 70 25 2c 63 25 2c  43 41 25 3a 78 25 3d 5f  |%,p%,c%,CA%:x%=_|
00011940  55 25 21 26 43 3a 70 25  3d a4 73 68 65 6c 6c 5f  |U%!&C:p%=.shell_|
00011950  48 65 61 70 42 6c 6f 63  6b 49 6e 66 6f 28 78 25  |HeapBlockInfo(x%|
00011960  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
00011970  28 22 20 22 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |(" "):.shell_Tra|
00011980  63 65 66 30 28 22 4c 69  73 74 20 6f 66 20 43 6c  |cef0("List of Cl|
00011990  69 63 6b 41 64 6a 75 73  74 20 65 76 65 6e 74 73  |ickAdjust events|
000119a0  3a 22 29 3a 65 25 3d 30  3a f5 3a 63 25 3d 78 25  |:"):e%=0:.:c%=x%|
000119b0  21 28 65 25 2b 32 34 29  3a 43 41 25 3d 78 25 2b  |!(e%+24):CA%=x%+|
000119c0  65 25 3a e7 a4 73 68 65  6c 6c 5f 48 65 61 70 42  |e%:..shell_HeapB|
000119d0  6c 6f 63 6b 45 78 69 73  74 73 28 63 25 29 8c 0d  |lockExists(c%)..|
000119e0  14 31 0d e7 24 63 25 3c  3e 22 22 8c 0d 14 33 76  |.1..$c%<>""...3v|
000119f0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00011a00  26 22 2b a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |&"+.shell_String|
00011a10  50 61 64 54 72 61 69 6c  69 6e 67 28 c3 7e 43 41  |PadTrailing(.~CA|
00011a20  25 21 30 2c 22 20 22 2c  38 29 2b 22 20 26 22 2b  |%!0," ",8)+" &"+|
00011a30  a4 73 68 65 6c 6c 5f 53  74 72 69 6e 67 50 61 64  |.shell_StringPad|
00011a40  54 72 61 69 6c 69 6e 67  28 c3 7e 43 41 25 21 34  |Trailing(.~CA%!4|
00011a50  2c 22 20 22 2c 38 29 2b  22 20 20 20 22 2b 24 63  |," ",8)+"   "+$c|
00011a60  25 29 0d 14 35 05 cd 0d  14 36 2c cd 3a 65 25 2b  |%)..5....6,.:e%+|
00011a70  3d 34 38 3a fd 28 65 25  3e 3d 70 25 29 3a f2 73  |=48:.(e%>=p%):.s|
00011a80  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 20 22  |hell_Tracef0(" "|
00011a90  29 3a e1 0d 14 40 cd dd  f2 73 68 65 6c 6c 5f 4c  |):...@...shell_L|
00011aa0  69 73 74 48 65 6c 70 54  61 67 73 3a ea 78 25 2c  |istHelpTags:.x%,|
00011ab0  65 25 2c 70 25 2c 63 25  2c 43 41 25 3a 78 25 3d  |e%,p%,c%,CA%:x%=|
00011ac0  5f 55 25 21 26 43 3a 70  25 3d a4 73 68 65 6c 6c  |_U%!&C:p%=.shell|
00011ad0  5f 48 65 61 70 42 6c 6f  63 6b 49 6e 66 6f 28 78  |_HeapBlockInfo(x|
00011ae0  25 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |%):.shell_Tracef|
00011af0  30 28 22 20 22 29 3a f2  73 68 65 6c 6c 5f 54 72  |0(" "):.shell_Tr|
00011b00  61 63 65 66 30 28 22 4c  69 73 74 20 6f 66 20 61  |acef0("List of a|
00011b10  74 74 61 63 68 65 64 20  68 65 6c 70 20 74 61 67  |ttached help tag|
00011b20  73 3a 22 29 3a 65 25 3d  30 3a f5 3a 63 25 3d 78  |s:"):e%=0:.:c%=x|
00011b30  25 21 28 65 25 2b 34 34  29 3a 43 41 25 3d 78 25  |%!(e%+44):CA%=x%|
00011b40  2b 65 25 3a e7 a4 73 68  65 6c 6c 5f 48 65 61 70  |+e%:..shell_Heap|
00011b50  42 6c 6f 63 6b 45 78 69  73 74 73 28 63 25 29 8c  |BlockExists(c%).|
00011b60  0d 14 4c 0d e7 24 63 25  3c 3e 22 22 8c 0d 14 4e  |..L..$c%<>""...N|
00011b70  76 f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |v.shell_Tracef0(|
00011b80  22 26 22 2b a4 73 68 65  6c 6c 5f 53 74 72 69 6e  |"&"+.shell_Strin|
00011b90  67 50 61 64 54 72 61 69  6c 69 6e 67 28 c3 7e 43  |gPadTrailing(.~C|
00011ba0  41 25 21 30 2c 22 20 22  2c 38 29 2b 22 20 26 22  |A%!0," ",8)+" &"|
00011bb0  2b a4 73 68 65 6c 6c 5f  53 74 72 69 6e 67 50 61  |+.shell_StringPa|
00011bc0  64 54 72 61 69 6c 69 6e  67 28 c3 7e 43 41 25 21  |dTrailing(.~CA%!|
00011bd0  34 2c 22 20 22 2c 38 29  2b 22 20 20 20 22 2b 24  |4," ",8)+"   "+$|
00011be0  63 25 29 0d 14 50 05 cd  0d 14 51 2c cd 3a 65 25  |c%)..P....Q,.:e%|
00011bf0  2b 3d 34 38 3a fd 28 65  25 3e 3d 70 25 29 3a f2  |+=48:.(e%>=p%):.|
00011c00  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 20  |shell_Tracef0(" |
00011c10  22 29 3a e1 0d 14 5b 48  dd f2 73 68 65 6c 6c 5f  |"):...[H..shell_|
00011c20  4d 65 6d 46 69 6c 6c 28  54 43 25 2c 4d 45 25 2c  |MemFill(TC%,ME%,|
00011c30  4e 45 25 29 3a ea 49 25  2c 77 43 25 2c 62 44 25  |NE%):.I%,wC%,bD%|
00011c40  3a 77 43 25 3d 4d 45 25  81 34 3a 62 44 25 3d 4d  |:wC%=ME%.4:bD%=M|
00011c50  45 25 83 34 3a e7 77 43  25 3e 30 8c 0d 14 60 26  |E%.4:.wC%>0...`&|
00011c60  e3 49 25 3d 31 b8 28 77  43 25 2a 34 29 88 34 3a  |.I%=1.(wC%*4).4:|
00011c70  54 43 25 21 28 49 25 2d  31 29 3d 4e 45 25 3a ed  |TC%!(I%-1)=NE%:.|
00011c80  49 25 0d 14 63 0d cd 3a  e7 62 44 25 3e 30 8c 0d  |I%..c..:.bD%>0..|
00011c90  14 65 2e 54 43 25 3d 54  43 25 2b 28 77 43 25 2a  |.e.TC%=TC%+(wC%*|
00011ca0  34 29 3a e3 49 25 3d 30  b8 62 44 25 2d 31 3a 54  |4):.I%=0.bD%-1:T|
00011cb0  43 25 3f 49 25 3d 4e 45  25 3a ed 49 25 0d 14 69  |C%?I%=NE%:.I%..i|
00011cc0  07 cd 3a e1 0d 14 70 f0  dd f2 73 68 65 6c 6c 5f  |..:...p...shell_|
00011cd0  41 74 74 61 63 68 46 6f  6e 74 4d 65 6e 75 28 62  |AttachFontMenu(b|
00011ce0  25 2c 66 25 2c 4a 24 2c  50 41 24 29 3a ea 6d 25  |%,f%,J$,PA$):.m%|
00011cf0  3a f2 73 68 65 6c 6c 5f  46 6f 6e 74 4d 65 6e 75  |:.shell_FontMenu|
00011d00  49 6e 69 74 3a c8 99 22  46 6f 6e 74 4d 65 6e 75  |Init:.."FontMenu|
00011d10  5f 53 65 6c 65 63 74 22  2c 22 22 2b bd 30 2c 5f  |_Select",""+.0,_|
00011d20  55 25 21 32 36 30 b8 2c  6d 25 3a 5f 55 25 21 26  |U%!260.,m%:_U%!&|
00011d30  46 43 3d 6d 25 3a f2 73  68 65 6c 6c 5f 45 76 65  |FC=m%:.shell_Eve|
00011d40  6e 74 41 64 64 28 62 25  2c 66 25 2c 30 2c 2d 32  |ntAdd(b%,f%,0,-2|
00011d50  2c 4a 24 29 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |,J$):.shell_Trac|
00011d60  65 66 30 28 22 41 74 74  61 63 68 46 6f 6e 74 4d  |ef0("AttachFontM|
00011d70  65 6e 75 3a 41 74 74 61  63 68 69 6e 67 20 66 6f  |enu:Attaching fo|
00011d80  6e 74 20 6d 65 6e 75 22  29 3a e7 50 41 24 3c 3e  |nt menu"):.PA$<>|
00011d90  22 22 8c f2 73 68 65 6c  6c 5f 41 74 74 61 63 68  |""..shell_Attach|
00011da0  4d 65 6e 75 4d 61 6b 65  72 28 62 25 2c 66 25 2c  |MenuMaker(b%,f%,|
00011db0  50 41 24 29 0d 14 7b 05  e1 0d 14 81 ff dd f2 73  |PA$)..{........s|
00011dc0  68 65 6c 6c 5f 41 74 74  61 63 68 46 6f 6e 74 53  |hell_AttachFontS|
00011dd0  75 62 4d 65 6e 75 28 47  42 25 2c 46 24 2c 4a 24  |ubMenu(GB%,F$,J$|
00011de0  29 3a ea 45 47 25 2c 6d  25 2c 63 25 2c 67 25 3a  |):.EG%,m%,c%,g%:|
00011df0  f2 73 68 65 6c 6c 5f 46  6f 6e 74 4d 65 6e 75 49  |.shell_FontMenuI|
00011e00  6e 69 74 3a c8 99 22 46  6f 6e 74 4d 65 6e 75 5f  |nit:.."FontMenu_|
00011e10  53 65 6c 65 63 74 22 2c  22 22 2b bd 30 2c 5f 55  |Select",""+.0,_U|
00011e20  25 21 32 36 30 b8 2c 6d  25 3a c8 99 26 34 35 42  |%!260.,m%:..&45B|
00011e30  43 45 2c 47 42 25 2c 6d  25 3a c8 99 26 34 35 42  |CE,GB%,m%:..&45B|
00011e40  43 43 2c 2c b9 3a 5f 55  25 21 26 46 43 3d 6d 25  |CC,,.:_U%!&FC=m%|
00011e50  3a f2 73 68 65 6c 6c 5f  45 76 65 6e 74 4c 69 73  |:.shell_EventLis|
00011e60  74 4d 65 6e 75 57 61 72  6e 28 47 42 25 2c 6d 25  |tMenuWarn(GB%,m%|
00011e70  2c 46 24 2c 4a 24 29 3a  f2 73 68 65 6c 6c 5f 54  |,F$,J$):.shell_T|
00011e80  72 61 63 65 66 30 28 22  41 74 74 61 63 68 46 6f  |racef0("AttachFo|
00011e90  6e 74 53 75 62 4d 65 6e  75 3a 41 74 74 61 63 68  |ntSubMenu:Attach|
00011ea0  69 6e 67 20 66 6f 6e 74  20 6d 65 6e 75 20 26 22  |ing font menu &"|
00011eb0  2b c3 7e 6d 25 29 3a e1  0d 14 92 a1 dd f2 73 68  |+.~m%):.......sh|
00011ec0  65 6c 6c 5f 46 6f 6e 74  4d 65 6e 75 49 6e 69 74  |ell_FontMenuInit|
00011ed0  3a ff 28 22 52 4d 45 6e  73 75 72 65 20 46 6f 6e  |:.("RMEnsure Fon|
00011ee0  74 4d 65 6e 75 20 31 2e  31 36 20 52 4d 4c 6f 61  |tMenu 1.16 RMLoa|
00011ef0  64 20 3c 45 76 6e 74 53  68 65 6c 6c 24 50 61 74  |d <EvntShell$Pat|
00011f00  68 3e 46 6f 6e 74 4d 65  6e 75 22 29 3a ff 28 22  |h>FontMenu"):.("|
00011f10  52 4d 45 6e 73 75 72 65  20 46 6f 6e 74 4d 65 6e  |RMEnsure FontMen|
00011f20  75 20 31 2e 31 36 20 45  72 72 6f 72 20 43 6f 75  |u 1.16 Error Cou|
00011f30  6c 64 6e 27 74 20 6c 6f  61 64 20 46 6f 6e 74 4d  |ldn't load FontM|
00011f40  65 6e 75 20 6d 6f 64 75  6c 65 22 29 3a e7 5f 55  |enu module"):._U|
00011f50  25 21 26 46 30 3d 2d 31  8c 0d 14 99 1f c8 99 22  |%!&F0=-1......."|
00011f60  46 6f 6e 74 4d 65 6e 75  5f 43 72 65 61 74 65 22  |FontMenu_Create"|
00011f70  b8 5f 55 25 21 26 46 30  0d 14 9a 27 cd 3a f2 73  |._U%!&F0...'.:.s|
00011f80  68 65 6c 6c 5f 46 6f 6e  74 4d 65 6e 75 53 65 6c  |hell_FontMenuSel|
00011f90  65 63 74 46 6f 6e 74 28  22 22 2c b9 29 3a e1 0d  |ectFont("",.):..|
00011fa0  14 a0 6f dd f2 73 68 65  6c 6c 5f 46 6f 6e 74 4d  |..o..shell_FontM|
00011fb0  65 6e 75 53 65 6c 65 63  74 46 6f 6e 74 28 70 24  |enuSelectFont(p$|
00011fc0  2c 63 44 25 29 3a ea 63  25 2c 4a 42 25 3a e7 a4  |,cD%):.c%,JB%:..|
00011fd0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
00011fe0  78 69 73 74 73 28 5f 55  25 21 26 46 34 29 8c f2  |xists(_U%!&F4)..|
00011ff0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00012000  65 74 75 72 6e 28 5f 55  25 21 26 46 34 29 0d 14  |eturn(_U%!&F4)..|
00012010  a3 48 5f 55 25 21 26 46  34 3d a4 73 68 65 6c 6c  |.H_U%!&F4=.shell|
00012020  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00012030  a9 70 24 2b 31 29 3a 63  25 3d 5f 55 25 21 26 46  |.p$+1):c%=_U%!&F|
00012040  34 3a 24 63 25 3d 70 24  3a e7 63 44 25 3c 3e 30  |4:$c%=p$:.cD%<>0|
00012050  8c 63 44 25 3d 31 0d 14  a6 42 5f 55 25 21 32 36  |.cD%=1...B_U%!26|
00012060  30 3d 63 44 25 3a c8 99  22 46 6f 6e 74 4d 65 6e  |0=cD%:.."FontMen|
00012070  75 5f 53 65 6c 65 63 74  22 2c 70 24 2c 5f 55 25  |u_Select",p$,_U%|
00012080  21 32 36 30 b8 2c 4a 42  25 3a e7 4a 42 25 3c 3e  |!260.,JB%:.JB%<>|
00012090  5f 55 25 21 26 46 43 8c  0d 14 aa 2d f2 73 68 65  |_U%!&FC....-.she|
000120a0  6c 6c 5f 46 6f 6e 74 4d  65 6e 75 55 70 64 61 74  |ll_FontMenuUpdat|
000120b0  65 50 74 72 28 4a 42 25  29 3a 5f 55 25 21 26 46  |ePtr(JB%):_U%!&F|
000120c0  43 3d 4a 42 25 0d 14 ac  3d cd 3a f2 73 68 65 6c  |C=JB%...=.:.shel|
000120d0  6c 5f 54 72 61 63 65 66  30 28 22 46 6f 6e 74 4d  |l_Tracef0("FontM|
000120e0  65 6e 75 53 65 6c 65 63  74 46 6f 6e 74 3a 46 6f  |enuSelectFont:Fo|
000120f0  6e 74 20 69 73 20 27 22  2b 70 24 2b 22 27 22 29  |nt is '"+p$+"'")|
00012100  3a e1 0d 14 b4 51 dd a4  73 68 65 6c 6c 5f 46 6f  |:....Q..shell_Fo|
00012110  6e 74 4d 65 6e 75 47 65  74 4c 61 73 74 53 65 6c  |ntMenuGetLastSel|
00012120  65 63 74 65 64 46 6f 6e  74 3a ea 63 25 3a e7 ac  |ectedFont:.c%:..|
00012130  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00012140  45 78 69 73 74 73 28 5f  55 25 21 26 46 34 29 8c  |Exists(_U%!&F4).|
00012150  3d 22 22 0d 14 b7 13 63  25 3d 5f 55 25 21 26 46  |=""....c%=_U%!&F|
00012160  34 3a 3d 24 63 25 0d 14  bc 78 dd f2 73 68 65 6c  |4:=$c%...x..shel|
00012170  6c 5f 46 6f 6e 74 4d 65  6e 75 55 70 64 61 74 65  |l_FontMenuUpdate|
00012180  50 74 72 28 65 25 29 3a  ea 78 25 2c 67 25 3a f2  |Ptr(e%):.x%,g%:.|
00012190  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 46  |shell_Tracef0("F|
000121a0  6f 6e 74 4d 65 6e 75 55  70 64 61 74 65 50 74 72  |ontMenuUpdatePtr|
000121b0  3a 53 74 61 72 74 65 64  2e 2e 22 29 3a e7 a4 73  |:Started.."):..s|
000121c0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
000121d0  69 73 74 73 28 5f 55 25  21 26 44 43 29 8c 0d 14  |ists(_U%!&DC)...|
000121e0  c3 a0 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |...shell_Tracef0|
000121f0  28 22 46 6f 6e 74 4d 65  6e 75 55 70 64 61 74 65  |("FontMenuUpdate|
00012200  50 74 72 3a 48 65 61 70  42 6c 6f 63 6b 20 66 6f  |Ptr:HeapBlock fo|
00012210  75 6e 64 2e 2e 22 29 3a  78 25 3d 5f 55 25 21 26  |und.."):x%=_U%!&|
00012220  44 43 3a 67 25 3d 30 3a  f5 3a f2 73 68 65 6c 6c  |DC:g%=0:.:.shell|
00012230  5f 54 72 61 63 65 66 30  28 22 46 6f 6e 74 4d 65  |_Tracef0("FontMe|
00012240  6e 75 55 70 64 61 74 65  50 74 72 3a 53 75 62 73  |nuUpdatePtr:Subs|
00012250  74 69 74 75 74 69 6e 67  20 70 74 72 2e 2e 22 29  |tituting ptr..")|
00012260  3a 78 25 21 28 67 25 2b  38 29 3d 65 25 3a 67 25  |:x%!(g%+8)=e%:g%|
00012270  2b 3d 26 43 3a fd 78 25  21 67 25 3d 2d 31 0d 14  |+=&C:.x%!g%=-1..|
00012280  cd 07 cd 3a e1 0d 14 d3  8d dd f2 73 68 65 6c 6c  |...:.......shell|
00012290  5f 4d 65 6e 75 55 70 64  61 74 65 48 61 6e 64 6c  |_MenuUpdateHandl|
000122a0  65 28 50 45 25 2c 51 45  25 29 3a ea 70 25 2c 65  |e(PE%,QE%):.p%,e|
000122b0  25 2c 68 25 2c 6d 25 3a  70 25 3d a4 73 68 65 6c  |%,h%,m%:p%=.shel|
000122c0  6c 5f 48 65 61 70 42 6c  6f 63 6b 49 6e 66 6f 28  |l_HeapBlockInfo(|
000122d0  5f 55 25 21 26 43 29 2d  38 3a 65 25 3d 30 3a 6a  |_U%!&C)-8:e%=0:j|
000122e0  25 3d a3 3a 68 25 3d 5f  55 25 21 26 43 3a f5 3a  |%=.:h%=_U%!&C:.:|
000122f0  6d 25 3d 68 25 21 28 65  25 2b 38 29 3a e7 6d 25  |m%=h%!(e%+8):.m%|
00012300  3d 50 45 25 8c 68 25 21  28 65 25 2b 38 29 3d 51  |=PE%.h%!(e%+8)=Q|
00012310  45 25 0d 14 dc 2b 65 25  2b 3d 34 38 3a fd 28 65  |E%...+e%+=48:.(e|
00012320  25 3e 3d 70 25 29 3a e7  5f 55 25 21 32 34 3d 50  |%>=p%):._U%!24=P|
00012330  45 25 8c 5f 55 25 21 32  34 3d 51 45 25 0d 14 df  |E%._U%!24=QE%...|
00012340  05 e1 0d 14 e3 4c dd f2  73 68 65 6c 6c 5f 46 69  |.....L..shell_Fi|
00012350  6e 64 46 6f 6e 74 28 f8  62 24 2c 78 43 25 2c 79  |ndFont(.b$,xC%,y|
00012360  43 25 2c f8 65 44 25 29  3a e7 ac a4 73 68 65 6c  |C%,.eD%):...shel|
00012370  6c 5f 46 6f 6e 74 49 73  41 76 61 69 6c 61 62 6c  |l_FontIsAvailabl|
00012380  65 28 62 24 2c 78 43 25  2c 79 43 25 29 8c 0d 14  |e(b$,xC%,yC%)...|
00012390  e5 17 62 24 3d 22 54 72  69 6e 69 74 79 2e 4d 65  |..b$="Trinity.Me|
000123a0  64 69 75 6d 22 0d 14 e6  2a cd 3a c8 99 26 34 30  |dium"...*.:..&40|
000123b0  30 38 31 2c 2c 62 24 2c  78 43 25 2a 31 36 2c 79  |081,,b$,xC%*16,y|
000123c0  43 25 2a 31 36 2c 30 2c  30 b8 65 44 25 3a e1 0d  |C%*16,0,0.eD%:..|
000123d0  14 ed 34 dd a4 73 68 65  6c 6c 5f 46 6f 6e 74 49  |..4..shell_FontI|
000123e0  73 41 76 61 69 6c 61 62  6c 65 28 62 24 2c 78 43  |sAvailable(b$,xC|
000123f0  25 2c 79 43 25 29 3a ea  85 3a ee 85 ea 3a f7 85  |%,yC%):..:...:..|
00012400  3a 3d a3 0d 14 f0 37 c8  99 26 34 30 30 38 31 2c  |:=....7..&40081,|
00012410  30 2c 62 24 2c 78 43 25  2a 31 36 2c 79 43 25 2a  |0,b$,xC%*16,yC%*|
00012420  31 36 2c 30 2c 30 b8 65  44 25 3a c8 99 26 34 30  |16,0,0.eD%:..&40|
00012430  30 38 32 2c 65 44 25 3a  3d b9 0d 14 f7 3b dd a4  |082,eD%:=....;..|
00012440  73 68 65 6c 6c 5f 43 68  65 63 6b 53 65 6c 65 63  |shell_CheckSelec|
00012450  74 69 6f 6e 28 65 46 25  29 3a ea 63 25 2c 67 25  |tion(eF%):.c%,g%|
00012460  3a 63 25 3d 5f 55 25 21  32 35 36 3a e7 63 25 3d  |:c%=_U%!256:.c%=|
00012470  30 8c 3d 2d 31 0d 14 fb  16 e7 5f 55 25 21 32 34  |0.=-1....._U%!24|
00012480  3d 5f 55 25 21 26 46 43  8c 3d 30 0d 14 fc 18 f5  |=_U%!&FC.=0.....|
00012490  3a e7 65 46 25 21 67 25  3c 3e 63 25 21 67 25 8c  |:.eF%!g%<>c%!g%.|
000124a0  3d 2d 31 0d 14 fe 17 67  25 2b 3d 34 3a fd 63 25  |=-1....g%+=4:.c%|
000124b0  21 67 25 3d 2d 31 3a 3d  67 25 0d 15 05 76 dd a4  |!g%=-1:=g%...v..|
000124c0  73 68 65 6c 6c 5f 4d 65  6e 75 47 65 74 49 74 65  |shell_MenuGetIte|
000124d0  6d 41 64 64 72 65 73 73  28 6d 25 2c 54 45 25 29  |mAddress(m%,TE%)|
000124e0  3a ea 67 25 2c 6b 42 25  3a c8 99 26 34 35 42 43  |:.g%,kB%:..&45BC|
000124f0  37 2c 6d 25 b8 6d 25 3a  f5 3a 6b 42 25 3d 6d 25  |7,m%.m%:.:kB%=m%|
00012500  2b 32 38 2b 28 28 54 45  25 21 67 25 29 2a 32 34  |+28+((TE%!g%)*24|
00012510  29 3a 6d 25 3d 6b 42 25  21 34 3a 67 25 2b 3d 34  |):m%=kB%!4:g%+=4|
00012520  3a fd 54 45 25 21 67 25  3d 2d 31 3a 3d 6b 42 25  |:.TE%!g%=-1:=kB%|
00012530  0d 15 12 25 dd a4 73 68  65 6c 6c 5f 47 65 74 4c  |...%..shell_GetL|
00012540  61 73 74 4d 6f 75 73 65  58 50 6f 73 3a 3d 5f 55  |astMouseXPos:=_U|
00012550  25 21 32 37 32 0d 15 18  25 dd a4 73 68 65 6c 6c  |%!272...%..shell|
00012560  5f 47 65 74 4c 61 73 74  4d 6f 75 73 65 59 50 6f  |_GetLastMouseYPo|
00012570  73 3a 3d 5f 55 25 21 32  37 36 0d 15 1e e6 dd f2  |s:=_U%!276......|
00012580  73 68 65 6c 6c 5f 55 70  64 61 74 65 57 69 6e 64  |shell_UpdateWind|
00012590  6f 77 48 61 6e 64 6c 65  28 61 41 25 2c 4f 41 25  |owHandle(aA%,OA%|
000125a0  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
000125b0  28 22 55 70 64 61 74 65  57 69 6e 64 6f 77 48 61  |("UpdateWindowHa|
000125c0  6e 64 6c 65 3a 55 70 64  61 74 69 6e 67 20 73 74  |ndle:Updating st|
000125d0  6f 72 65 64 20 77 69 6e  64 6f 77 20 68 61 6e 64  |ored window hand|
000125e0  6c 65 73 22 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |les"):.shell_Tra|
000125f0  63 65 66 30 28 22 55 70  64 61 74 65 57 69 6e 64  |cef0("UpdateWind|
00012600  6f 77 48 61 6e 64 6c 65  3a 6f 6c 64 20 68 61 6e  |owHandle:old han|
00012610  64 6c 65 3d 26 22 2b c3  7e 61 41 25 29 3a f2 73  |dle=&"+.~aA%):.s|
00012620  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 55 70  |hell_Tracef0("Up|
00012630  64 61 74 65 57 69 6e 64  6f 77 48 61 6e 64 6c 65  |dateWindowHandle|
00012640  3a 6e 65 77 20 68 61 6e  64 6c 65 3d 26 22 2b c3  |:new handle=&"+.|
00012650  7e 4f 41 25 29 3a e7 4f  41 25 3c 3e 61 41 25 8c  |~OA%):.OA%<>aA%.|
00012660  0d 15 25 1a e7 5f 55 25  21 32 38 3d 61 41 25 8c  |..%.._U%!28=aA%.|
00012670  5f 55 25 21 32 38 3d 4f  41 25 0d 15 26 f7 f2 73  |_U%!28=OA%..&..s|
00012680  68 65 6c 6c 5f 46 69 78  45 76 65 6e 74 42 6c 6f  |hell_FixEventBlo|
00012690  63 6b 28 61 41 25 2c 4f  41 25 2c 5f 55 25 21 26  |ck(aA%,OA%,_U%!&|
000126a0  43 2c 34 38 29 3a f2 73  68 65 6c 6c 5f 46 69 78  |C,48):.shell_Fix|
000126b0  45 76 65 6e 74 42 6c 6f  63 6b 28 61 41 25 2c 4f  |EventBlock(aA%,O|
000126c0  41 25 2c 5f 55 25 21 39  36 2c 31 36 29 3a f2 73  |A%,_U%!96,16):.s|
000126d0  68 65 6c 6c 5f 46 69 78  45 76 65 6e 74 42 6c 6f  |hell_FixEventBlo|
000126e0  63 6b 28 61 41 25 2c 4f  41 25 2c 5f 55 25 21 37  |ck(aA%,OA%,_U%!7|
000126f0  32 2c 32 34 29 3a f2 73  68 65 6c 6c 5f 46 69 78  |2,24):.shell_Fix|
00012700  45 76 65 6e 74 42 6c 6f  63 6b 28 61 41 25 2c 4f  |EventBlock(aA%,O|
00012710  41 25 2c 5f 55 25 21 39  32 2c 32 34 29 3a f2 73  |A%,_U%!92,24):.s|
00012720  68 65 6c 6c 5f 46 69 78  45 76 65 6e 74 42 6c 6f  |hell_FixEventBlo|
00012730  63 6b 32 28 61 41 25 2c  4f 41 25 2c 5f 55 25 21  |ck2(aA%,OA%,_U%!|
00012740  26 36 38 2c 31 36 29 3a  f2 73 68 65 6c 6c 5f 46  |&68,16):.shell_F|
00012750  69 78 45 76 65 6e 74 42  6c 6f 63 6b 32 28 61 41  |ixEventBlock2(aA|
00012760  25 2c 4f 41 25 2c 5f 55  25 21 33 33 32 2c 33 32  |%,OA%,_U%!332,32|
00012770  29 0d 15 2c 27 f2 73 68  65 6c 6c 5f 55 70 64 61  |)..,'.shell_Upda|
00012780  74 65 53 74 61 74 69 63  57 69 6e 64 6f 77 73 28  |teStaticWindows(|
00012790  61 41 25 2c 4f 41 25 29  0d 15 2d 07 cd 3a e1 0d  |aA%,OA%)..-..:..|
000127a0  15 33 b3 dd f2 73 68 65  6c 6c 5f 55 70 64 61 74  |.3...shell_Updat|
000127b0  65 53 74 61 74 69 63 57  69 6e 64 6f 77 73 28 61  |eStaticWindows(a|
000127c0  41 25 2c 4f 41 25 29 3a  ea 64 25 2c 64 41 25 3a  |A%,OA%):.d%,dA%:|
000127d0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000127e0  55 70 64 61 74 65 53 74  61 74 69 63 57 69 6e 64  |UpdateStaticWind|
000127f0  6f 77 73 3a 43 6f 72 72  65 63 74 69 6e 67 20 73  |ows:Correcting s|
00012800  74 61 74 69 63 20 77 69  6e 64 6f 77 20 6c 69 73  |tatic window lis|
00012810  74 2e 2e 22 29 3a 64 41  25 3d 5f 55 25 21 26 42  |t.."):dA%=_U%!&B|
00012820  38 3a 64 25 3d a4 73 68  65 6c 6c 5f 53 65 61 72  |8:d%=.shell_Sear|
00012830  63 68 53 74 61 74 69 63  28 5f 55 25 21 26 42 38  |chStatic(_U%!&B8|
00012840  2c 61 41 25 29 3a 64 41  25 21 64 25 3d 4f 41 25  |,aA%):dA%!d%=OA%|
00012850  3a e1 0d 15 40 4c dd f2  73 68 65 6c 6c 5f 46 69  |:...@L..shell_Fi|
00012860  78 45 76 65 6e 74 42 6c  6f 63 6b 28 61 41 25 2c  |xEventBlock(aA%,|
00012870  4f 41 25 2c 68 25 2c 64  25 29 3a ea 65 25 2c 70  |OA%,h%,d%):.e%,p|
00012880  25 3a e7 a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |%:..shell_HeapBl|
00012890  6f 63 6b 45 78 69 73 74  73 28 68 25 29 8c 0d 15  |ockExists(h%)...|
000128a0  43 31 70 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |C1p%=.shell_Heap|
000128b0  42 6c 6f 63 6b 49 6e 66  6f 28 68 25 29 2d 38 3a  |BlockInfo(h%)-8:|
000128c0  f5 3a e7 28 68 25 21 65  25 3d 61 41 25 29 8c 0d  |.:.(h%!e%=aA%)..|
000128d0  15 46 0d 68 25 21 65 25  3d 4f 41 25 0d 15 47 16  |.F.h%!e%=OA%..G.|
000128e0  cd 3a 65 25 2b 3d 64 25  3a fd 28 65 25 3e 3d 70  |.:e%+=d%:.(e%>=p|
000128f0  25 29 0d 15 4a 07 cd 3a  e1 0d 15 50 52 dd f2 73  |%)..J..:...PR..s|
00012900  68 65 6c 6c 5f 46 69 78  45 76 65 6e 74 42 6c 6f  |hell_FixEventBlo|
00012910  63 6b 32 28 61 41 25 2c  4f 41 25 2c 68 25 2c 64  |ck2(aA%,OA%,h%,d|
00012920  25 29 3a ea 65 25 2c 70  25 3a 65 25 3d 34 3a e7  |%):.e%,p%:e%=4:.|
00012930  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00012940  45 78 69 73 74 73 28 68  25 29 8c 0d 15 54 1a 70  |Exists(h%)...T.p|
00012950  25 3d 21 68 25 3a f5 3a  e7 28 68 25 21 65 25 3d  |%=!h%:.:.(h%!e%=|
00012960  61 41 25 29 8c 0d 15 57  0d 68 25 21 65 25 3d 4f  |aA%)...W.h%!e%=O|
00012970  41 25 0d 15 58 16 cd 3a  65 25 2b 3d 64 25 3a fd  |A%..X..:e%+=d%:.|
00012980  28 65 25 3e 3d 70 25 29  0d 15 5b 07 cd 3a e1 0d  |(e%>=p%)..[..:..|
00012990  15 61 ca dd f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |.a...shell_IconS|
000129a0  65 6c 65 63 74 41 6c 6c  28 62 25 29 3a ea 61 25  |electAll(b%):.a%|
000129b0  2c 49 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |,I%:a%=.shell_He|
000129c0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 37 44  |apBlockFetch(&7D|
000129d0  30 29 3a 49 25 3d 61 25  2b 36 34 3a 21 61 25 3d  |0):I%=a%+64:!a%=|
000129e0  62 25 3a 61 25 21 38 3d  31 3c 3c 32 31 3a 61 25  |b%:a%!8=1<<21:a%|
000129f0  21 26 43 3d 31 3c 3c 32  31 3a c8 99 26 34 30 30  |!&C=1<<21:..&400|
00012a00  44 36 2c 21 61 25 2c 49  25 2c 35 3c 3c 32 31 2c  |D6,!a%,I%,5<<21,|
00012a10  30 3c 3c 32 31 3a c8 95  21 49 25 3e 2d 31 3a 61  |0<<21:..!I%>-1:a|
00012a20  25 21 34 3d 21 49 25 3a  c8 99 26 34 30 30 43 44  |%!4=!I%:..&400CD|
00012a30  2c 2c 61 25 3a 49 25 2b  3d 34 3a ce 3a f2 73 68  |,,a%:I%+=4:.:.sh|
00012a40  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00012a50  75 72 6e 28 61 25 29 3a  e1 0d 15 71 c8 dd f2 73  |urn(a%):...q...s|
00012a60  68 65 6c 6c 5f 49 63 6f  6e 44 65 73 65 6c 65 63  |hell_IconDeselec|
00012a70  74 41 6c 6c 28 62 25 29  3a ea 61 25 2c 49 25 3a  |tAll(b%):.a%,I%:|
00012a80  61 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |a%=.shell_HeapBl|
00012a90  6f 63 6b 46 65 74 63 68  28 26 37 44 30 29 3a 49  |ockFetch(&7D0):I|
00012aa0  25 3d 61 25 2b 36 34 3a  21 61 25 3d 62 25 3a 61  |%=a%+64:!a%=b%:a|
00012ab0  25 21 38 3d 30 3a 61 25  21 26 43 3d 31 3c 3c 32  |%!8=0:a%!&C=1<<2|
00012ac0  31 3a c8 99 26 34 30 30  44 36 2c 21 61 25 2c 49  |1:..&400D6,!a%,I|
00012ad0  25 2c 35 3c 3c 32 31 2c  31 3c 3c 32 31 3a c8 95  |%,5<<21,1<<21:..|
00012ae0  21 49 25 3e 2d 31 3a 61  25 21 34 3d 21 49 25 3a  |!I%>-1:a%!4=!I%:|
00012af0  c8 99 26 34 30 30 43 44  2c 2c 61 25 3a 49 25 2b  |..&400CD,,a%:I%+|
00012b00  3d 34 3a ce 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |=4:.:.shell_Heap|
00012b10  42 6c 6f 63 6b 52 65 74  75 72 6e 28 61 25 29 3a  |BlockReturn(a%):|
00012b20  e1 0d 15 81 60 dd f2 73  68 65 6c 6c 5f 4d 65 73  |....`..shell_Mes|
00012b30  73 61 67 65 5f 53 61 76  65 44 65 73 6b 74 6f 70  |sage_SaveDesktop|
00012b40  28 51 25 29 3a ea 45 41  24 3a 45 41 24 3d 22 52  |(Q%):.EA$:EA$="R|
00012b50  75 6e 20 22 2b a4 73 68  65 6c 6c 5f 47 65 74 41  |un "+.shell_GetA|
00012b60  70 70 44 69 72 2b bd 26  41 3a c8 99 26 43 2c 32  |ppDir+.&A:..&C,2|
00012b70  2c 51 25 21 32 30 2c 45  41 24 2c a9 45 41 24 3a  |,Q%!20,EA$,.EA$:|
00012b80  e1 0d 15 8a 5e dd f2 73  68 65 6c 6c 5f 4d 65 73  |....^..shell_Mes|
00012b90  73 61 67 65 73 49 6e 69  74 28 43 24 2c f8 7a 43  |sagesInit(C$,.zC|
00012ba0  25 2c f8 57 45 25 29 3a  ea 68 41 25 2c 6e 25 3a  |%,.WE%):.hA%,n%:|
00012bb0  ea 85 3a ee 85 ea f7 85  3a 85 33 2c 22 43 61 6e  |..:.....:.3,"Can|
00012bc0  6e 6f 74 20 6f 70 65 6e  20 6d 65 73 73 61 67 65  |not open message|
00012bd0  20 66 69 6c 65 20 27 22  2b 43 24 2b 22 27 22 0d  | file '"+C$+"'".|
00012be0  15 8e 43 c8 99 26 34 31  35 30 30 2c 2c 43 24 b8  |..C..&41500,,C$.|
00012bf0  6e 25 2c 2c 68 41 25 3a  e7 6e 25 80 31 8c 57 45  |n%,,hA%:.n%.1.WE|
00012c00  25 3d 30 8b 57 45 25 3d  a4 73 68 65 6c 6c 5f 48  |%=0.WE%=.shell_H|
00012c10  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 68 41  |eapBlockFetch(hA|
00012c20  25 29 0d 15 90 83 c8 99  33 30 2c 36 2c 2c 2c 31  |%)......30,6,,,1|
00012c30  37 2b a9 28 43 24 29 b8  2c 2c 7a 43 25 3a 24 28  |7+.(C$).,,zC%:$(|
00012c40  7a 43 25 2b 31 36 29 3d  43 24 3a c8 99 26 34 31  |zC%+16)=C$:..&41|
00012c50  35 30 31 2c 7a 43 25 2c  7a 43 25 2b 31 36 3a f2  |501,zC%,zC%+16:.|
00012c60  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 4d  |shell_Tracef0("M|
00012c70  65 73 73 61 67 65 73 49  6e 69 74 3a 4d 65 73 73  |essagesInit:Mess|
00012c80  61 67 65 20 72 65 73 6f  75 72 63 65 20 66 69 6c  |age resource fil|
00012c90  65 20 27 22 2b 43 24 2b  22 27 20 6c 6f 61 64 65  |e '"+C$+"' loade|
00012ca0  64 22 29 3a e1 0d 15 9b  60 dd a4 73 68 65 6c 6c  |d"):....`..shell|
00012cb0  5f 50 72 69 6e 74 65 72  4f 6e 4c 69 6e 65 3a ea  |_PrinterOnLine:.|
00012cc0  58 45 25 2c 59 45 25 3a  58 45 25 3d 96 28 2d 34  |XE%,YE%:XE%=.(-4|
00012cd0  29 3a ef 32 2c 31 2c 30  2c 31 2c 30 2c 31 2c 30  |):.2,1,0,1,0,1,0|
00012ce0  3a d1 3d 30 3a f5 3a fd  91 3e 33 30 3a 59 45 25  |:.=0:.:..>30:YE%|
00012cf0  3d ac 28 96 28 2d 34 29  3c 58 45 25 29 3a 2a 46  |=.(.(-4)<XE%):*F|
00012d00  58 32 31 2c 33 0d 15 a2  0b ef 33 3a 3d 59 45 25  |X21,3.....3:=YE%|
00012d10  0d 15 a8 f8 dd f2 73 68  65 6c 6c 5f 41 74 74 61  |......shell_Atta|
00012d20  63 68 42 75 6d 70 48 61  6e 64 6c 65 72 28 62 25  |chBumpHandler(b%|
00012d30  2c 66 25 2c 5a 45 25 2c  61 45 25 2c 6e 46 25 2c  |,f%,ZE%,aE%,nF%,|
00012d40  70 46 25 2c 62 45 25 2c  73 46 25 2c 46 41 24 2c  |pF%,bE%,sF%,FA$,|
00012d50  47 41 24 29 3a ea 6c 25  2c 64 25 2c 63 25 2c 43  |GA$):.l%,d%,c%,C|
00012d60  41 25 2c 70 41 25 3a 64  25 3d a4 73 68 65 6c 6c  |A%,pA%:d%=.shell|
00012d70  5f 47 65 74 45 76 65 6e  74 4c 69 73 74 4f 66 66  |_GetEventListOff|
00012d80  73 65 74 32 28 62 25 2c  5a 45 25 2c 5f 55 25 2b  |set2(b%,ZE%,_U%+|
00012d90  26 36 38 2c 31 36 2c b9  29 3a 6c 25 3d 5f 55 25  |&68,16,.):l%=_U%|
00012da0  21 26 36 38 2b 64 25 3a  6c 25 21 30 3d 62 25 3a  |!&68+d%:l%!0=b%:|
00012db0  6c 25 21 34 3d 5a 45 25  3a 6c 25 21 38 3d 62 45  |l%!4=ZE%:l%!8=bE|
00012dc0  25 3a 6c 25 21 26 43 3d  a4 73 68 65 6c 6c 5f 48  |%:l%!&C=.shell_H|
00012dd0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 34  |eapBlockFetch(24|
00012de0  29 3a 70 41 25 3d 6c 25  21 26 43 3a 70 41 25 21  |):pA%=l%!&C:pA%!|
00012df0  30 3d 66 25 3a 70 41 25  21 34 3d 6e 46 25 3a 70  |0=f%:pA%!4=nF%:p|
00012e00  41 25 21 38 3d 70 46 25  0d 15 c5 0c e7 a9 46 41  |A%!8=pF%......FA|
00012e10  24 3e 30 8c 0d 15 c6 3e  70 41 25 21 26 43 3d a4  |$>0....>pA%!&C=.|
00012e20  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00012e30  65 74 63 68 28 28 a9 46  41 24 29 2b 31 29 3a 43  |etch((.FA$)+1):C|
00012e40  41 25 3d 70 41 25 21 26  43 3a 24 43 41 25 3d 46  |A%=pA%!&C:$CA%=F|
00012e50  41 24 0d 15 c8 0d cc 70  41 25 21 26 43 3d 30 0d  |A$.....pA%!&C=0.|
00012e60  15 ca 0e cd 3a e7 a9 47  41 24 3e 30 8c 0d 15 cc  |....:..GA$>0....|
00012e70  3e 70 41 25 21 31 36 3d  a4 73 68 65 6c 6c 5f 48  |>pA%!16=.shell_H|
00012e80  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 28 a9  |eapBlockFetch((.|
00012e90  47 41 24 29 2b 31 29 3a  43 41 25 3d 70 41 25 21  |GA$)+1):CA%=pA%!|
00012ea0  31 36 3a 24 43 41 25 3d  47 41 24 0d 15 ce 0d cc  |16:$CA%=GA$.....|
00012eb0  70 41 25 21 31 36 3d 30  0d 15 d0 1f cd 3a e7 73  |pA%!16=0.....:.s|
00012ec0  46 25 3d 2d 31 8c 70 41  25 21 32 30 3d 31 8b 70  |F%=-1.pA%!20=1.p|
00012ed0  41 25 21 32 30 3d 30 0d  15 d3 6f 64 25 3d a4 73  |A%!20=0...od%=.s|
00012ee0  68 65 6c 6c 5f 47 65 74  45 76 65 6e 74 4c 69 73  |hell_GetEventLis|
00012ef0  74 4f 66 66 73 65 74 32  28 62 25 2c 61 45 25 2c  |tOffset2(b%,aE%,|
00012f00  5f 55 25 2b 26 36 38 2c  31 36 2c b9 29 3a 6c 25  |_U%+&68,16,.):l%|
00012f10  3d 5f 55 25 21 26 36 38  2b 64 25 3a 6c 25 21 30  |=_U%!&68+d%:l%!0|
00012f20  3d 62 25 3a 6c 25 21 34  3d 61 45 25 3a 6c 25 21  |=b%:l%!4=aE%:l%!|
00012f30  38 3d 62 45 25 2a 28 2d  31 29 3a 6c 25 21 26 43  |8=bE%*(-1):l%!&C|
00012f40  3d 70 41 25 3a e1 0d 15  de 60 dd f2 73 68 65 6c  |=pA%:....`..shel|
00012f50  6c 5f 48 61 6e 64 6c 65  42 75 6d 70 49 63 6f 6e  |l_HandleBumpIcon|
00012f60  73 28 64 25 2c 62 25 2c  66 25 2c 5f 62 75 74 74  |s(d%,b%,f%,_butt|
00012f70  6f 6e 25 29 3a ea 47 47  25 2c 4c 41 25 2c 6c 25  |on%):.GG%,LA%,l%|
00012f80  2c 55 43 25 2c 5f 74 65  6d 70 24 2c 67 44 25 3a  |,UC%,_temp$,gD%:|
00012f90  ea 4d 47 25 2c 65 42 25  3a e7 5f 62 75 74 74 6f  |.MG%,eB%:._butto|
00012fa0  6e 25 3c 3e 32 8c 0d 15  e2 50 6c 25 3d 5f 55 25  |n%<>2....Pl%=_U%|
00012fb0  21 26 36 38 2b 64 25 3a  5f 55 25 21 32 38 38 3d  |!&68+d%:_U%!288=|
00012fc0  62 25 3a 5f 55 25 21 32  39 32 3d 66 25 3a 5f 55  |b%:_U%!292=f%:_U|
00012fd0  25 21 32 39 36 3d 64 25  3a 4c 41 25 3d 6c 25 21  |%!296=d%:LA%=l%!|
00012fe0  26 43 3a 67 44 25 3d 4c  41 25 21 31 36 3a e7 67  |&C:gD%=LA%!16:.g|
00012ff0  44 25 3c 3e 30 8c 0d 15  ec 43 5f 74 65 6d 70 24  |D%<>0....C_temp$|
00013000  3d a4 73 68 65 6c 6c 5f  49 63 6f 6e 47 65 74 44  |=.shell_IconGetD|
00013010  61 74 61 28 62 25 2c 4c  41 25 21 30 29 3a 55 43  |ata(b%,LA%!0):UC|
00013020  25 3d a0 28 22 46 4e 22  2b 24 67 44 25 2b 22 28  |%=.("FN"+$gD%+"(|
00013030  5f 74 65 6d 70 24 29 22  29 0d 15 ee 28 cc 55 43  |_temp$)")...(.UC|
00013040  25 3d bb 28 a4 73 68 65  6c 6c 5f 49 63 6f 6e 47  |%=.(.shell_IconG|
00013050  65 74 44 61 74 61 28 62  25 2c 4c 41 25 21 30 29  |etData(b%,LA%!0)|
00013060  29 0d 15 f0 12 cd 3a e7  5f 62 75 74 74 6f 6e 25  |).....:._button%|
00013070  3d 31 8c 0d 15 f3 1f 5f  6e 65 77 5f 76 61 6c 25  |=1....._new_val%|
00013080  3d 55 43 25 2b 28 28 6c  25 21 38 29 2a 28 2d 31  |=UC%+((l%!8)*(-1|
00013090  29 29 0d 15 f4 17 cc 5f  6e 65 77 5f 76 61 6c 25  |))....._new_val%|
000130a0  3d 55 43 25 2b 6c 25 21  38 0d 15 f6 10 cd 3a e7  |=UC%+l%!8.....:.|
000130b0  4c 41 25 21 32 30 3d 30  8c 0d 15 f9 24 e7 5f 6e  |LA%!20=0....$._n|
000130c0  65 77 5f 76 61 6c 25 3e  4c 41 25 21 38 8c 5f 6e  |ew_val%>LA%!8._n|
000130d0  65 77 5f 76 61 6c 25 3d  4c 41 25 21 38 0d 15 fa  |ew_val%=LA%!8...|
000130e0  24 e7 5f 6e 65 77 5f 76  61 6c 25 3c 4c 41 25 21  |$._new_val%<LA%!|
000130f0  34 8c 5f 6e 65 77 5f 76  61 6c 25 3d 4c 41 25 21  |4._new_val%=LA%!|
00013100  34 0d 15 fb 25 cc e7 5f  6e 65 77 5f 76 61 6c 25  |4...%.._new_val%|
00013110  3e 4c 41 25 21 38 8c 5f  6e 65 77 5f 76 61 6c 25  |>LA%!8._new_val%|
00013120  3d 4c 41 25 21 34 0d 15  fe 24 e7 5f 6e 65 77 5f  |=LA%!4...$._new_|
00013130  76 61 6c 25 3c 4c 41 25  21 34 8c 5f 6e 65 77 5f  |val%<LA%!4._new_|
00013140  76 61 6c 25 3d 4c 41 25  21 38 0d 15 ff 19 cd 3a  |val%=LA%!8.....:|
00013150  65 42 25 3d 4c 41 25 21  26 43 3a e7 65 42 25 3c  |eB%=LA%!&C:.eB%<|
00013160  3e 30 8c 0d 16 02 31 5f  6e 65 77 5f 76 61 6c 24  |>0....1_new_val$|
00013170  3d a0 28 22 46 4e 22 2b  24 65 42 25 2b 22 28 5f  |=.("FN"+$eB%+"(_|
00013180  6e 65 77 5f 76 61 6c 25  2c 5f 62 75 74 74 6f 6e  |new_val%,_button|
00013190  25 29 22 29 0d 16 03 19  cc 5f 6e 65 77 5f 76 61  |%)")....._new_va|
000131a0  6c 24 3d c3 5f 6e 65 77  5f 76 61 6c 25 0d 16 05  |l$=._new_val%...|
000131b0  16 cd 3a e7 5f 6e 65 77  5f 76 61 6c 25 3c 3e 55  |..:._new_val%<>U|
000131c0  43 25 8c 0d 16 07 2d f2  73 68 65 6c 6c 5f 49 63  |C%....-.shell_Ic|
000131d0  6f 6e 50 75 74 44 61 74  61 28 62 25 2c 4c 41 25  |onPutData(b%,LA%|
000131e0  21 30 2c 5f 6e 65 77 5f  76 61 6c 24 2c 2d 31 29  |!0,_new_val$,-1)|
000131f0  0d 16 08 05 cd 0d 16 09  07 cd 3a e1 0d 16 0f ca  |..........:.....|
00013200  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 53 65  |..shell_WindowSe|
00013210  74 53 70 72 69 74 65 41  72 65 61 28 76 25 2c 68  |tSpriteArea(v%,h|
00013220  44 25 29 3a ea 61 25 2c  4f 41 25 2c 50 43 25 2c  |D%):.a%,OA%,PC%,|
00013230  69 44 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |iD%:a%=.shell_He|
00013240  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 36 34  |apBlockFetch(&64|
00013250  2b 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 43  |+(.shell_WindowC|
00013260  6f 75 6e 74 49 63 6f 6e  73 28 76 25 29 2a 33 32  |ountIcons(v%)*32|
00013270  29 29 3a 21 61 25 3d 76  25 3a c8 99 26 34 30 30  |)):!a%=v%:..&400|
00013280  43 43 2c 2c 61 25 3a 61  25 21 36 38 3d 68 44 25  |CC,,a%:a%!68=hD%|
00013290  3a f2 73 68 65 6c 6c 5f  49 63 6f 6e 53 65 74 53  |:.shell_IconSetS|
000132a0  70 72 69 74 65 41 72 65  61 28 61 25 21 36 30 2c  |priteArea(a%!60,|
000132b0  61 25 2b 37 36 2c 68 44  25 29 3a e7 28 61 25 21  |a%+76,hD%):.(a%!|
000132c0  38 38 29 3e 30 8c 0d 16  17 56 e3 50 43 25 3d 30  |88)>0....V.PC%=0|
000132d0  b8 28 61 25 21 38 38 29  2d 31 3a 69 44 25 3d 61  |.(a%!88)-1:iD%=a|
000132e0  25 2b 39 32 2b 50 43 25  2a 33 32 3a f2 73 68 65  |%+92+PC%*32:.she|
000132f0  6c 6c 5f 49 63 6f 6e 53  65 74 53 70 72 69 74 65  |ll_IconSetSprite|
00013300  41 72 65 61 28 69 44 25  21 31 36 2c 69 44 25 2b  |Area(iD%!16,iD%+|
00013310  32 30 2c 68 44 25 29 3a  ed 50 43 25 0d 16 1b 2f  |20,hD%):.PC%.../|
00013320  cd 3a c8 99 26 34 30 30  43 33 2c 2c 61 25 3a c8  |.:..&400C3,,a%:.|
00013330  99 26 34 30 30 43 31 2c  2c 61 25 2b 34 b8 4f 41  |.&400C1,,a%+4.OA|
00013340  25 3a e7 4f 41 25 3c 3e  76 25 8c 0d 16 1f 2c f2  |%:.OA%<>v%....,.|
00013350  73 68 65 6c 6c 5f 55 70  64 61 74 65 57 69 6e 64  |shell_UpdateWind|
00013360  6f 77 48 61 6e 64 6c 65  28 76 25 2c 4f 41 25 29  |owHandle(v%,OA%)|
00013370  3a 76 25 3d 4f 41 25 0d  16 21 24 cd 3a f2 73 68  |:v%=OA%..!$.:.sh|
00013380  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00013390  75 72 6e 28 61 25 29 3a  3d 76 25 0d 16 28 44 dd  |urn(a%):=v%..(D.|
000133a0  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 53 70  |.shell_IconSetSp|
000133b0  72 69 74 65 41 72 65 61  28 6e 25 2c 56 43 25 2c  |riteArea(n%,VC%,|
000133c0  4a 46 25 29 3a e7 28 28  6e 25 80 33 29 3d 32 29  |JF%):.((n%.3)=2)|
000133d0  80 28 28 6e 25 80 32 35  36 29 3c 3e 30 29 8c 0d  |.((n%.256)<>0)..|
000133e0  16 2a 0d 56 43 25 21 34  3d 4a 46 25 0d 16 2b 07  |.*.VC%!4=JF%..+.|
000133f0  cd 3a e1 0d 16 30 3e dd  a4 73 68 65 6c 6c 5f 53  |.:...0>..shell_S|
00013400  74 72 6f 6e 67 48 6c 70  49 73 41 76 61 69 6c 61  |trongHlpIsAvaila|
00013410  62 6c 65 3a ea 4c 42 25  2c 41 41 25 3a 4c 42 25  |ble:.LB%,AA%:LB%|
00013420  3d a3 3a e7 5f 55 25 21  26 36 34 80 31 3c 3c 37  |=.:._U%!&64.1<<7|
00013430  8c 0d 16 35 6b 41 41 25  3d a4 73 68 65 6c 6c 5f  |...5kAA%=.shell_|
00013440  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 32  |HeapBlockFetch(2|
00013450  35 36 29 3a 4c 42 25 3d  a4 73 68 65 6c 6c 5f 4f  |56):LB%=.shell_O|
00013460  53 56 61 72 45 78 69 73  74 73 28 41 41 25 2c 22  |SVarExists(AA%,"|
00013470  53 74 72 6f 6e 67 48 65  6c 70 24 44 69 72 22 29  |StrongHelp$Dir")|
00013480  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00013490  6b 52 65 74 75 72 6e 28  41 41 25 29 0d 16 38 0a  |kReturn(AA%)..8.|
000134a0  cd 3a 3d 4c 42 25 0d 16  3e 2f dd a4 73 68 65 6c  |.:=LB%..>/..shel|
000134b0  6c 5f 4d 65 6e 75 4e 65  77 28 53 24 29 3a ea 69  |l_MenuNew(S$):.i|
000134c0  25 3a c8 99 26 34 35 42  43 31 2c 2c 53 24 b8 69  |%:..&45BC1,,S$.i|
000134d0  25 3a 3d 69 25 0d 16 46  2c dd a4 73 68 65 6c 6c  |%:=i%..F,..shell|
000134e0  5f 4d 65 6e 75 41 64 64  28 69 25 2c 52 41 24 2c  |_MenuAdd(i%,RA$,|
000134f0  4a 24 29 3a ea 6a 44 25  3a e7 4a 24 3c 3e 22 22  |J$):.jD%:.J$<>""|
00013500  8c 0d 16 49 1a c8 99 26  34 35 42 43 32 2c 69 25  |...I...&45BC2,i%|
00013510  2c 52 41 24 2c 4a 24 b8  6a 44 25 0d 16 4a 18 cc  |,RA$,J$.jD%..J..|
00013520  c8 99 26 34 35 42 43 32  2c 69 25 2c 52 41 24 b8  |..&45BC2,i%,RA$.|
00013530  6a 44 25 0d 16 4c 0a cd  3a 3d 6a 44 25 0d 16 58  |jD%..L..:=jD%..X|
00013540  30 dd f2 73 68 65 6c 6c  5f 4d 65 6e 75 54 69 63  |0..shell_MenuTic|
00013550  6b 28 6e 41 25 2c 5a 41  25 29 3a c8 99 26 34 35  |k(nA%,ZA%):..&45|
00013560  42 43 39 2c 6e 41 25 2c  5a 41 25 3a e1 0d 16 5f  |BC9,nA%,ZA%:..._|
00013570  35 dd f2 73 68 65 6c 6c  5f 4d 65 6e 75 54 69 63  |5..shell_MenuTic|
00013580  6b 4f 6e 6c 79 31 28 57  41 25 2c 46 41 25 29 3a  |kOnly1(WA%,FA%):|
00013590  c8 99 26 34 35 42 44 31  2c 57 41 25 2c 46 41 25  |..&45BD1,WA%,FA%|
000135a0  3a e1 0d 16 66 2d dd f2  73 68 65 6c 6c 5f 4d 65  |:...f-..shell_Me|
000135b0  6e 75 54 69 63 6b 4f 6e  6c 79 32 28 6e 41 25 29  |nuTickOnly2(nA%)|
000135c0  3a c8 99 26 34 35 42 44  31 2c 6e 41 25 3a e1 0d  |:..&45BD1,nA%:..|
000135d0  16 6d 2f dd f2 73 68 65  6c 6c 5f 4d 65 6e 75 53  |.m/..shell_MenuS|
000135e0  68 61 64 65 28 69 25 2c  5a 41 25 29 3a c8 99 26  |hade(i%,ZA%):..&|
000135f0  34 35 42 43 42 2c 69 25  2c 5a 41 25 3a e1 0d 16  |45BCB,i%,ZA%:...|
00013600  74 32 dd f2 73 68 65 6c  6c 5f 4d 65 6e 75 44 6f  |t2..shell_MenuDo|
00013610  74 74 65 64 28 6e 41 25  2c 5a 41 25 29 3a c8 99  |tted(nA%,ZA%):..|
00013620  26 34 35 42 43 41 2c 6e  41 25 2c 5a 41 25 3a e1  |&45BCA,nA%,ZA%:.|
00013630  0d 16 7b 3b dd f2 73 68  65 6c 6c 5f 4d 65 6e 75  |..{;..shell_Menu|
00013640  43 6f 6c 6f 75 72 73 28  6e 41 25 2c 6c 44 25 2c  |Colours(nA%,lD%,|
00013650  74 44 25 29 3a c8 99 26  34 35 42 44 30 2c 6e 41  |tD%):..&45BD0,nA|
00013660  25 2c 6c 44 25 2c 74 44  25 3a e1 0d 16 82 42 dd  |%,lD%,tD%:....B.|
00013670  f2 73 68 65 6c 6c 5f 4d  65 6e 75 57 72 69 74 61  |.shell_MenuWrita|
00013680  62 6c 65 28 6e 41 25 2c  5a 41 25 2c 68 41 25 2c  |ble(nA%,ZA%,hA%,|
00013690  74 24 29 3a c8 99 26 34  35 42 43 44 2c 6e 41 25  |t$):..&45BCD,nA%|
000136a0  2c 5a 41 25 2c 68 41 25  2c 74 24 3a e1 0d 16 89  |,ZA%,hA%,t$:....|
000136b0  31 dd f2 73 68 65 6c 6c  5f 4d 65 6e 75 50 75 74  |1..shell_MenuPut|
000136c0  44 61 74 61 28 6e 41 25  2c 50 24 29 3a c8 99 26  |Data(nA%,P$):..&|
000136d0  34 35 42 43 38 2c 6e 41  25 2c 50 24 3a e1 0d 16  |45BC8,nA%,P$:...|
000136e0  90 33 dd f2 73 68 65 6c  6c 5f 4d 65 6e 75 43 61  |.3..shell_MenuCa|
000136f0  6c 6c 48 61 6e 64 6c 65  72 28 76 25 2c 5f 68 5f  |llHandler(v%,_h_|
00013700  62 6c 6b 25 29 3a ea 85  3a ee 85 ea 3a f7 85 3a  |blk%):..:...:..:|
00013710  e1 0d 16 93 1c e7 a0 28  22 46 4e 22 2b 24 76 25  |.......("FN"+$v%|
00013720  2b 22 28 5f 68 5f 62 6c  6b 25 29 22 29 0d 16 94  |+"(_h_blk%)")...|
00013730  05 e1 0d 16 99 ad dd f2  73 68 65 6c 6c 5f 41 74  |........shell_At|
00013740  74 61 63 68 4f 70 65 6e  57 69 6e 64 6f 77 28 62  |tachOpenWindow(b|
00013750  25 2c 41 24 29 3a ea 61  25 2c 63 25 2c 64 25 3a  |%,A$):.a%,c%,d%:|
00013760  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00013770  41 74 74 61 63 68 4f 70  65 6e 57 69 6e 64 6f 77  |AttachOpenWindow|
00013780  3a 41 74 74 61 63 68 69  6e 67 20 4f 70 65 6e 57  |:Attaching OpenW|
00013790  69 6e 64 6f 77 20 48 61  6e 64 6c 65 72 22 29 3a  |indow Handler"):|
000137a0  e7 62 25 3c 30 8c 85 39  39 2c f2 73 68 65 6c 6c  |.b%<0..99,.shell|
000137b0  5f 4d 65 73 73 61 67 65  4f 6e 65 41 72 67 28 22  |_MessageOneArg("|
000137c0  53 48 45 4c 4c 4d 53 47  32 37 22 2c 22 41 74 74  |SHELLMSG27","Att|
000137d0  61 63 68 4f 70 65 6e 57  69 6e 64 6f 77 22 29 0d  |achOpenWindow").|
000137e0  16 9f 87 64 25 3d a4 73  68 65 6c 6c 5f 47 65 74  |...d%=.shell_Get|
000137f0  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 28  |EventListOffset(|
00013800  62 25 2c 2d 31 2c 5f 55  25 2b 33 30 34 2c 26 43  |b%,-1,_U%+304,&C|
00013810  2c b9 29 3a 61 25 3d 5f  55 25 21 33 30 34 2b 64  |,.):a%=_U%!304+d|
00013820  25 3a 61 25 21 30 3d 62  25 3a 61 25 21 34 3d 2d  |%:a%!0=b%:a%!4=-|
00013830  31 3a 61 25 21 38 3d a4  73 68 65 6c 6c 5f 48 65  |1:a%!8=.shell_He|
00013840  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 a9 28 41  |apBlockFetch(.(A|
00013850  24 29 2b 31 29 3a 63 25  3d 61 25 21 38 3a 24 63  |$)+1):c%=a%!8:$c|
00013860  25 3d 41 24 3a e1 0d 16  a9 bf dd f2 73 68 65 6c  |%=A$:.......shel|
00013870  6c 5f 41 74 74 61 63 68  43 6c 6f 73 65 57 69 6e  |l_AttachCloseWin|
00013880  64 6f 77 48 61 6e 64 6c  65 72 28 62 25 2c 41 24  |dowHandler(b%,A$|
00013890  29 3a ea 61 25 2c 63 25  2c 64 25 3a f2 73 68 65  |):.a%,c%,d%:.she|
000138a0  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 74 74 61  |ll_Tracef0("Atta|
000138b0  63 68 43 6c 6f 73 65 57  69 6e 64 6f 77 48 61 6e  |chCloseWindowHan|
000138c0  64 6c 65 72 3a 41 74 74  61 63 68 69 6e 67 20 43  |dler:Attaching C|
000138d0  6c 6f 73 65 57 69 6e 64  6f 77 20 48 61 6e 64 6c  |loseWindow Handl|
000138e0  65 72 22 29 3a e7 62 25  3c 30 8c 85 39 39 2c f2  |er"):.b%<0..99,.|
000138f0  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4f 6e 65  |shell_MessageOne|
00013900  41 72 67 28 22 53 48 45  4c 4c 4d 53 47 32 37 22  |Arg("SHELLMSG27"|
00013910  2c 22 41 74 74 61 63 68  43 6c 6f 73 65 57 69 6e  |,"AttachCloseWin|
00013920  64 6f 77 22 29 0d 16 af  87 64 25 3d a4 73 68 65  |dow")....d%=.she|
00013930  6c 6c 5f 47 65 74 45 76  65 6e 74 4c 69 73 74 4f  |ll_GetEventListO|
00013940  66 66 73 65 74 28 62 25  2c 2d 31 2c 5f 55 25 2b  |ffset(b%,-1,_U%+|
00013950  33 30 38 2c 26 43 2c b9  29 3a 61 25 3d 5f 55 25  |308,&C,.):a%=_U%|
00013960  21 33 30 38 2b 64 25 3a  61 25 21 30 3d 62 25 3a  |!308+d%:a%!0=b%:|
00013970  61 25 21 34 3d 2d 31 3a  61 25 21 38 3d a4 73 68  |a%!4=-1:a%!8=.sh|
00013980  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00013990  63 68 28 a9 28 41 24 29  2b 31 29 3a 63 25 3d 61  |ch(.(A$)+1):c%=a|
000139a0  25 21 38 3a 24 63 25 3d  41 24 3a e1 0d 16 b9 58  |%!8:$c%=A$:....X|
000139b0  dd f2 73 68 65 6c 6c 5f  53 70 72 69 74 65 52 65  |..shell_SpriteRe|
000139c0  6e 61 6d 65 28 43 43 25  2c 5a 41 24 2c 61 41 24  |name(CC%,ZA$,aA$|
000139d0  29 3a c8 99 34 36 2c 35  31 32 2b 32 36 2c 43 43  |):..46,512+26,CC|
000139e0  25 2c a4 73 68 65 6c 6c  5f 53 70 72 69 74 65 47  |%,.shell_SpriteG|
000139f0  65 74 50 74 72 28 43 43  25 2c 5a 41 24 29 2c 61  |etPtr(CC%,ZA$),a|
00013a00  41 24 3a e1 0d 16 c0 37  dd f2 73 68 65 6c 6c 5f  |A$:....7..shell_|
00013a10  53 70 72 69 74 65 41 72  65 61 53 61 76 65 28 43  |SpriteAreaSave(C|
00013a20  43 25 2c 43 24 29 3a c8  99 34 36 2c 35 31 32 2b  |C%,C$):..46,512+|
00013a30  26 43 2c 43 43 25 2c 43  24 3a e1 0d 16 c7 56 dd  |&C,CC%,C$:....V.|
00013a40  f2 73 68 65 6c 6c 5f 45  6e 73 75 72 65 50 6f 6c  |.shell_EnsurePol|
00013a50  6c 3a ea 44 41 25 3a f5  3a 44 41 25 3d a4 73 68  |l:.DA%:.:DA%=.sh|
00013a60  65 6c 6c 5f 50 6f 6c 6c  5f 49 28 30 2c 5f 55 25  |ell_Poll_I(0,_U%|
00013a70  21 26 39 34 29 3a f2 73  68 65 6c 6c 5f 41 63 74  |!&94):.shell_Act|
00013a80  69 6f 6e 28 44 41 25 29  3a fd 44 41 25 3d 30 3a  |ion(DA%):.DA%=0:|
00013a90  e1 0d 16 d2 23 dd a4 73  68 65 6c 6c 5f 57 69 6d  |....#..shell_Wim|
00013aa0  70 47 65 74 56 65 72 73  69 6f 6e 3a 3d 5f 55 25  |pGetVersion:=_U%|
00013ab0  21 33 31 36 0d 16 d7 51  dd a4 73 68 65 6c 6c 5f  |!316...Q..shell_|
00013ac0  4f 53 43 68 65 63 6b 56  65 72 73 69 6f 6e 28 4c  |OSCheckVersion(L|
00013ad0  46 25 29 3a 3d a4 73 68  65 6c 6c 5f 4f 53 4d 6f  |F%):=.shell_OSMo|
00013ae0  64 75 6c 65 43 68 65 63  6b 56 65 72 73 69 6f 6e  |duleCheckVersion|
00013af0  28 22 55 74 69 6c 69 74  79 4d 6f 64 75 6c 65 22  |("UtilityModule"|
00013b00  2c 4c 46 25 29 0d 16 dc  e6 dd a4 73 68 65 6c 6c  |,LF%)......shell|
00013b10  5f 4f 53 4d 6f 64 75 6c  65 43 68 65 63 6b 56 65  |_OSModuleCheckVe|
00013b20  72 73 69 6f 6e 28 62 41  24 2c 61 29 3a ea 61 25  |rsion(bA$,a):.a%|
00013b30  2c 6e 42 25 2c 4f 24 3a  61 25 3d a4 73 68 65 6c  |,nB%,O$:a%=.shel|
00013b40  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00013b50  28 32 35 36 29 3a ff 28  22 53 65 74 20 4d 6f 64  |(256):.("Set Mod|
00013b60  75 6c 65 24 43 68 65 63  6b 20 59 22 29 3a ff 28  |ule$Check Y"):.(|
00013b70  22 52 4d 45 6e 73 75 72  65 20 22 2b 62 41 24 2b  |"RMEnsure "+bA$+|
00013b80  22 20 22 2b c3 61 2b 22  20 53 65 74 20 4d 6f 64  |" "+.a+" Set Mod|
00013b90  75 6c 65 24 43 68 65 63  6b 20 4e 22 29 3a c8 99  |ule$Check N"):..|
00013ba0  33 35 2c 22 4d 6f 64 75  6c 65 24 43 68 65 63 6b  |35,"Module$Check|
00013bb0  22 2c 61 25 2c 32 35 36  2c 30 2c 30 b8 2c 2c 6e  |",a%,256,0,0.,,n|
00013bc0  42 25 3a 61 25 3f 6e 42  25 3d 26 44 3a ff 28 22  |B%:a%?nB%=&D:.("|
00013bd0  55 6e 73 65 74 20 4d 6f  64 75 6c 65 24 43 68 65  |Unset Module$Che|
00013be0  63 6b 22 29 3a 4f 24 3d  24 61 25 0d 16 e5 2c f2  |ck"):O$=$a%...,.|
00013bf0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00013c00  65 74 75 72 6e 28 61 25  29 3a e7 4f 24 3d 22 4e  |eturn(a%):.O$="N|
00013c10  22 8c 3d a3 8b 3d b9 0d  16 eb d0 dd f2 73 68 65  |".=..=.......she|
00013c20  6c 6c 5f 4d 65 73 73 61  67 65 53 65 6e 64 44 61  |ll_MessageSendDa|
00013c30  74 61 4c 6f 61 64 28 77  25 2c 52 24 29 3a ea 7a  |taLoad(w%,R$):.z|
00013c40  25 3a 7a 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |%:z%=.shell_Heap|
00013c50  42 6c 6f 63 6b 46 65 74  63 68 28 32 35 36 29 3a  |BlockFetch(256):|
00013c60  7a 25 21 30 3d 32 35 36  3a 7a 25 21 34 3d 30 3a  |z%!0=256:z%!4=0:|
00013c70  7a 25 21 26 43 3d 30 3a  7a 25 21 31 36 3d 35 3a  |z%!&C=0:z%!16=5:|
00013c80  7a 25 21 32 30 3d 30 3a  7a 25 21 32 38 3d 30 3a  |z%!20=0:z%!28=0:|
00013c90  7a 25 21 33 32 3d 30 3a  7a 25 21 33 36 3d 30 3a  |z%!32=0:z%!36=0:|
00013ca0  7a 25 21 34 30 3d 77 25  3a 24 28 7a 25 2b 34 34  |z%!40=w%:$(z%+44|
00013cb0  29 3d 52 24 2b bd 28 30  29 3a c8 99 26 34 30 30  |)=R$+.(0):..&400|
00013cc0  45 37 2c 31 37 2c 7a 25  2c 30 3a f2 73 68 65 6c  |E7,17,z%,0:.shel|
00013cd0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00013ce0  6e 28 7a 25 29 3a e1 0d  16 ff 4c dd a4 73 68 65  |n(z%):....L..she|
00013cf0  6c 6c 5f 4d 65 6e 75 4d  61 6b 65 46 72 6f 6d 46  |ll_MenuMakeFromF|
00013d00  69 6c 65 28 53 24 2c 63  41 24 2c 69 24 29 3a ea  |ile(S$,cA$,i$):.|
00013d10  69 25 2c 58 25 2c 42 24  2c 6f 25 3a e7 a4 73 68  |i%,X%,B$,o%:..sh|
00013d20  65 6c 6c 5f 46 69 6c 65  45 78 69 73 74 73 28 69  |ell_FileExists(i|
00013d30  24 29 8c 0d 17 02 54 69  25 3d a4 73 68 65 6c 6c  |$)....Ti%=.shell|
00013d40  5f 4d 65 6e 75 4e 65 77  28 53 24 29 3a 58 25 3d  |_MenuNew(S$):X%=|
00013d50  8e 28 69 24 29 3a f5 3a  42 24 3d be 23 58 25 3a  |.(i$):.:B$=.#X%:|
00013d60  6f 25 3d a4 73 68 65 6c  6c 5f 4d 65 6e 75 41 64  |o%=.shell_MenuAd|
00013d70  64 28 69 25 2c 42 24 2c  63 41 24 29 3a fd c5 23  |d(i%,B$,cA$):..#|
00013d80  58 25 3a d9 23 58 25 0d  17 09 09 cd 3a 3d 69 25  |X%:.#X%.....:=i%|
00013d90  0d 17 0f db dd a4 73 68  65 6c 6c 5f 42 69 6e 61  |......shell_Bina|
00013da0  72 79 53 65 61 72 63 68  28 5f 73 65 61 72 63 68  |rySearch(_search|
00013db0  5f 74 65 72 6d 24 2c 64  41 24 2c 68 24 2c 4e 46  |_term$,dA$,h$,NF|
00013dc0  25 2c 6b 44 25 29 3a ea  5f 70 6f 73 25 2c 72 41  |%,kD%):._pos%,rA|
00013dd0  25 2c 5f 77 70 24 2c 41  44 25 2c 4e 47 25 2c 6d  |%,_wp$,AD%,NG%,m|
00013de0  44 25 2c 6e 44 25 2c 67  45 25 2c 6a 25 2c 6f 44  |D%,nD%,gE%,j%,oD|
00013df0  25 3a 6b 44 25 2b 3d 31  3a 6f 44 25 3d a3 3a 6a  |%:kD%+=1:oD%=.:j|
00013e00  25 3d a3 3a 72 41 25 3d  6b 44 25 3a 41 44 25 3d  |%=.:rA%=kD%:AD%=|
00013e10  30 3a 5f 70 6f 73 25 3d  72 41 25 81 32 3a 6e 44  |0:_pos%=rA%.2:nD|
00013e20  25 3d 4e 46 25 2d 31 3a  6d 44 25 3d 6b 44 25 3a  |%=NF%-1:mD%=kD%:|
00013e30  f5 3a 5f 77 70 24 3d a0  28 22 46 4e 22 2b 64 41  |.:_wp$=.("FN"+dA|
00013e40  24 2b 22 28 5f 70 6f 73  25 29 22 29 3a 70 44 25  |$+"(_pos%)"):pD%|
00013e50  3d 5f 70 6f 73 25 3a e7  5f 73 65 61 72 63 68 5f  |=_pos%:._search_|
00013e60  74 65 72 6d 24 3d 5f 77  70 24 8c 0d 17 1d 08 6a  |term$=_wp$.....j|
00013e70  25 3d b9 0d 17 1e 28 cc  e7 a0 28 22 46 4e 22 2b  |%=....(...("FN"+|
00013e80  68 24 2b 22 28 5f 73 65  61 72 63 68 5f 74 65 72  |h$+"(_search_ter|
00013e90  6d 24 2c 5f 77 70 24 29  22 29 8c 0d 17 21 2b 6d  |m$,_wp$)")...!+m|
00013ea0  44 25 3d 5f 70 6f 73 25  3a 72 41 25 3d 5f 70 6f  |D%=_pos%:rA%=_po|
00013eb0  73 25 2d 6e 44 25 3a 5f  70 6f 73 25 3d 72 41 25  |s%-nD%:_pos%=rA%|
00013ec0  81 32 2b 41 44 25 0d 17  24 36 cc 6e 44 25 3d 5f  |.2+AD%..$6.nD%=_|
00013ed0  70 6f 73 25 3a 41 44 25  3d 5f 70 6f 73 25 3a 72  |pos%:AD%=_pos%:r|
00013ee0  41 25 3d 6d 44 25 2d 5f  70 6f 73 25 3a 5f 70 6f  |A%=mD%-_pos%:_po|
00013ef0  73 25 3d 72 41 25 81 32  2b 41 44 25 0d 17 2a 05  |s%=rA%.2+AD%..*.|
00013f00  cd 0d 17 2b 14 cd 3a e7  67 45 25 3d 70 44 25 8c  |...+..:.gE%=pD%.|
00013f10  6f 44 25 3d b9 0d 17 2d  21 67 45 25 3d 70 44 25  |oD%=...-!gE%=pD%|
00013f20  3a fd 6a 25 84 6f 44 25  3a e7 ac 6a 25 8c 3d 2d  |:.j%.oD%:..j%.=-|
00013f30  31 8b 3d 70 44 25 0d 17  34 23 dd a4 73 68 65 6c  |1.=pD%..4#..shel|
00013f40  6c 5f 49 63 6f 6e 4c 61  73 74 43 6c 69 63 6b 65  |l_IconLastClicke|
00013f50  64 3a 3d 5f 55 25 21 33  32 0d 17 3a 68 dd a4 73  |d:=_U%!32..:h..s|
00013f60  68 65 6c 6c 5f 4d 65 6e  75 47 65 74 4e 72 49 74  |hell_MenuGetNrIt|
00013f70  65 6d 73 28 57 41 25 29  3a ea 6d 25 2c 5f 25 2c  |ems(WA%):.m%,_%,|
00013f80  69 45 25 3a c8 99 26 34  35 42 43 37 2c 57 41 25  |iE%:..&45BC7,WA%|
00013f90  b8 6d 25 3a 6d 25 2b 3d  32 38 3a f5 3a 5f 25 3d  |.m%:m%+=28:.:_%=|
00013fa0  28 6d 25 3f 30 80 26 38  30 29 3a 69 45 25 2b 3d  |(m%?0.&80):iE%+=|
00013fb0  31 3a 6d 25 2b 3d 32 34  3a fd 5f 25 3a 3d 69 45  |1:m%+=24:._%:=iE|
00013fc0  25 0d 17 48 63 dd a4 73  68 65 6c 6c 5f 4d 65 6e  |%..Hc..shell_Men|
00013fd0  75 47 65 74 4e 72 44 6f  74 74 65 64 28 57 41 25  |uGetNrDotted(WA%|
00013fe0  29 3a ea 6d 25 2c 5f 25  2c 71 43 25 3a c8 99 26  |):.m%,_%,qC%:..&|
00013ff0  34 35 42 43 37 2c 57 41  25 b8 6d 25 3a 6d 25 2b  |45BC7,WA%.m%:m%+|
00014000  3d 32 38 3a f5 3a 5f 25  3d 28 6d 25 3f 30 80 26  |=28:.:_%=(m%?0.&|
00014010  38 30 29 3a e7 28 6d 25  3f 30 80 32 29 8c 71 43  |80):.(m%?0.2).qC|
00014020  25 2b 3d 31 0d 17 4f 16  6d 25 2b 3d 32 34 3a fd  |%+=1..O.m%+=24:.|
00014030  5f 25 3d 2d 31 3a 3d 71  43 25 0d 17 56 7e dd a4  |_%=-1:=qC%..V~..|
00014040  73 68 65 6c 6c 5f 4d 65  6e 75 47 65 74 49 74 65  |shell_MenuGetIte|
00014050  6d 48 61 6e 64 6c 65 72  28 57 41 25 2c 58 43 25  |mHandler(WA%,XC%|
00014060  29 3a ea 58 41 25 2c 65  25 2c 48 41 24 3a 58 41  |):.XA%,e%,HA$:XA|
00014070  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00014080  63 6b 46 65 74 63 68 28  38 29 3a 58 41 25 21 30  |ckFetch(8):XA%!0|
00014090  3d 58 43 25 3a 58 41 25  21 34 3d 2d 31 3a c8 99  |=XC%:XA%!4=-1:..|
000140a0  26 34 35 42 43 34 2c 57  41 25 2c 58 41 25 b8 65  |&45BC4,WA%,XA%.e|
000140b0  25 3a e7 65 25 3d 30 8c  0d 17 5d 0a 48 41 24 3d  |%:.e%=0...].HA$=|
000140c0  22 22 0d 17 5e 0e cc 48  41 24 3d 24 28 65 25 29  |""..^..HA$=$(e%)|
000140d0  0d 17 60 26 cd 3a f2 73  68 65 6c 6c 5f 48 65 61  |..`&.:.shell_Hea|
000140e0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 58 41 25  |pBlockReturn(XA%|
000140f0  29 3a 3d 48 41 24 0d 17  67 a1 dd a4 73 68 65 6c  |):=HA$..g...shel|
00014100  6c 5f 4d 65 6e 75 47 65  74 49 74 65 6d 54 65 78  |l_MenuGetItemTex|
00014110  74 28 57 41 25 2c 58 43  25 29 3a ea 58 41 25 2c  |t(WA%,XC%):.XA%,|
00014120  65 25 2c 48 24 3a 58 41  25 3d a4 73 68 65 6c 6c  |e%,H$:XA%=.shell|
00014130  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00014140  38 29 3a 58 41 25 21 30  3d 58 43 25 3a 58 41 25  |8):XA%!0=XC%:XA%|
00014150  21 34 3d 2d 31 3a c8 99  26 34 35 42 43 34 2c 57  |!4=-1:..&45BC4,W|
00014160  41 25 2c 58 41 25 b8 2c  2c 65 25 3a 48 24 3d 24  |A%,XA%.,,e%:H$=$|
00014170  28 65 25 21 26 43 29 3a  f2 73 68 65 6c 6c 5f 48  |(e%!&C):.shell_H|
00014180  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 58  |eapBlockReturn(X|
00014190  41 25 29 3a 3d 48 24 0d  17 74 9f dd a4 73 68 65  |A%):=H$..t...she|
000141a0  6c 6c 5f 4d 65 6e 75 47  65 74 49 74 65 6d 48 61  |ll_MenuGetItemHa|
000141b0  6e 64 6c 65 28 57 41 25  2c 58 43 25 29 3a ea 58  |ndle(WA%,XC%):.X|
000141c0  41 25 2c 65 25 2c 69 25  3a 58 41 25 3d a4 73 68  |A%,e%,i%:XA%=.sh|
000141d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
000141e0  63 68 28 38 29 3a 58 41  25 21 30 3d 58 43 25 3a  |ch(8):XA%!0=XC%:|
000141f0  58 41 25 21 34 3d 2d 31  3a c8 99 26 34 35 42 43  |XA%!4=-1:..&45BC|
00014200  34 2c 57 41 25 2c 58 41  25 b8 2c 2c 65 25 3a 69  |4,WA%,XA%.,,e%:i|
00014210  25 3d 65 25 21 38 3a f2  73 68 65 6c 6c 5f 48 65  |%=e%!8:.shell_He|
00014220  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 58 41  |apBlockReturn(XA|
00014230  25 29 3a 3d 69 25 0d 17  81 3d dd a4 73 68 65 6c  |%):=i%...=..shel|
00014240  6c 5f 4d 65 6e 75 47 65  74 49 74 65 6d 48 65 69  |l_MenuGetItemHei|
00014250  67 68 74 28 57 41 25 29  3a ea 6d 25 3a c8 99 26  |ght(WA%):.m%:..&|
00014260  34 35 42 43 37 2c 57 41  25 b8 6d 25 3a 3d 6d 25  |45BC7,WA%.m%:=m%|
00014270  21 32 30 0d 17 89 8c dd  a4 73 68 65 6c 6c 5f 4d  |!20......shell_M|
00014280  65 6e 75 43 61 6c 63 75  6c 61 74 65 48 65 69 67  |enuCalculateHeig|
00014290  68 74 28 57 41 25 29 3a  ea 55 41 25 3a 55 41 25  |ht(WA%):.UA%:UA%|
000142a0  3d a4 73 68 65 6c 6c 5f  4d 65 6e 75 47 65 74 4e  |=.shell_MenuGetN|
000142b0  72 49 74 65 6d 73 28 57  41 25 29 2a a4 73 68 65  |rItems(WA%)*.she|
000142c0  6c 6c 5f 4d 65 6e 75 47  65 74 49 74 65 6d 48 65  |ll_MenuGetItemHe|
000142d0  69 67 68 74 28 57 41 25  29 3a 3d 55 41 25 2b 28  |ight(WA%):=UA%+(|
000142e0  a4 73 68 65 6c 6c 5f 4d  65 6e 75 47 65 74 4e 72  |.shell_MenuGetNr|
000142f0  44 6f 74 74 65 64 28 57  41 25 29 2a 32 34 29 0d  |Dotted(WA%)*24).|
00014300  17 91 78 dd f2 73 68 65  6c 6c 5f 4d 65 6e 75 53  |..x..shell_MenuS|
00014310  6f 72 74 49 74 65 6d 73  28 6d 25 2c 67 41 24 2c  |ortItems(m%,gA$,|
00014320  57 46 25 2c 54 43 25 2c  72 44 25 29 3a ea 73 44  |WF%,TC%,rD%):.sD|
00014330  25 3a 73 44 25 3d a4 73  68 65 6c 6c 5f 4d 65 6e  |%:sD%=.shell_Men|
00014340  75 47 65 74 4e 72 49 74  65 6d 73 28 6d 25 29 2d  |uGetNrItems(m%)-|
00014350  31 3a 5f 73 68 65 6c 6c  5f 4d 53 5f 68 61 6e 64  |1:_shell_MS_hand|
00014360  6c 65 25 3d 6d 25 3a e7  72 44 25 3e 73 44 25 8c  |le%=m%:.rD%>sD%.|
00014370  72 44 25 3d 73 44 25 0d  17 96 48 c8 99 26 34 30  |rD%=sD%...H..&40|
00014380  36 43 30 3a f2 73 68 65  6c 6c 5f 51 75 69 63 6b  |6C0:.shell_Quick|
00014390  53 6f 72 74 28 67 41 24  2c 22 5f 73 68 65 6c 6c  |Sort(gA$,"_shell|
000143a0  5f 4d 53 5f 73 77 61 70  22 2c 57 46 25 2c 30 2c  |_MS_swap",WF%,0,|
000143b0  72 44 25 29 3a c8 99 26  34 30 36 43 31 3a e1 0d  |rD%):..&406C1:..|
000143c0  17 9e ad dd f2 73 68 65  6c 6c 5f 51 75 69 63 6b  |.....shell_Quick|
000143d0  53 6f 72 74 28 68 24 2c  6b 24 2c 5f 61 73 63 25  |Sort(h$,k$,_asc%|
000143e0  2c 5f 73 74 61 72 74 25  2c 5f 65 6e 64 25 29 3a  |,_start%,_end%):|
000143f0  ea 5f 6c 6f 25 2c 5f 68  25 2c 5f 46 25 2c 5f 74  |._lo%,_h%,_F%,_t|
00014400  65 6d 70 25 2c 6f 25 3a  5f 6c 6f 25 3d 5f 73 74  |emp%,o%:_lo%=_st|
00014410  61 72 74 25 3a 5f 68 69  25 3d 5f 65 6e 64 25 3a  |art%:_hi%=_end%:|
00014420  5f 46 25 3d b9 3a 5f 74  65 6d 70 25 3d 5f 6c 6f  |_F%=.:_temp%=_lo|
00014430  25 2d 31 2b b3 28 5f 68  69 25 2b 31 2d 5f 6c 6f  |%-1+.(_hi%+1-_lo|
00014440  25 29 3a 6f 25 3d a0 28  22 46 4e 22 2b 6b 24 2b  |%):o%=.("FN"+k$+|
00014450  22 28 5f 6c 6f 25 2c 5f  74 65 6d 70 25 29 22 29  |"(_lo%,_temp%)")|
00014460  3a f5 3a e7 5f 61 73 63  25 3d 30 8c 0d 17 a5 1e  |:.:._asc%=0.....|
00014470  e7 a0 28 22 46 4e 22 2b  68 24 2b 22 28 5f 6c 6f  |..("FN"+h$+"(_lo|
00014480  25 2c 5f 68 69 25 29 22  29 8c 0d 17 a6 28 6f 25  |%,_hi%)")....(o%|
00014490  3d a0 28 22 46 4e 22 2b  6b 24 2b 22 28 5f 6c 6f  |=.("FN"+k$+"(_lo|
000144a0  25 2c 5f 68 69 25 29 22  29 3a 5f 46 25 3d ac 5f  |%,_hi%)"):_F%=._|
000144b0  46 25 0d 17 a8 05 cd 0d  17 a9 1f cc e7 a0 28 22  |F%............("|
000144c0  46 4e 22 2b 68 24 2b 22  28 5f 68 69 25 2c 5f 6c  |FN"+h$+"(_hi%,_l|
000144d0  6f 25 29 22 29 8c 0d 17  ab 28 6f 25 3d a0 28 22  |o%)")....(o%=.("|
000144e0  46 4e 22 2b 6b 24 2b 22  28 5f 68 69 25 2c 5f 6c  |FN"+k$+"(_hi%,_l|
000144f0  6f 25 29 22 29 3a 5f 46  25 3d ac 5f 46 25 0d 17  |o%)"):_F%=._F%..|
00014500  ad 05 cd 0d 17 ae 22 cd  3a e7 5f 46 25 8c 5f 68  |......".:._F%._h|
00014510  69 25 3d 5f 68 69 25 2d  31 8b 5f 6c 6f 25 3d 5f  |i%=_hi%-1._lo%=_|
00014520  6c 6f 25 2b 31 0d 17 b0  4b fd 5f 6c 6f 25 3d 5f  |lo%+1...K._lo%=_|
00014530  68 69 25 3a e7 5f 73 74  61 72 74 25 3c 5f 6c 6f  |hi%:._start%<_lo|
00014540  25 2d 31 8c f2 73 68 65  6c 6c 5f 51 75 69 63 6b  |%-1..shell_Quick|
00014550  53 6f 72 74 28 68 24 2c  6b 24 2c 5f 61 73 63 25  |Sort(h$,k$,_asc%|
00014560  2c 5f 73 74 61 72 74 25  2c 5f 6c 6f 25 2d 31 29  |,_start%,_lo%-1)|
00014570  0d 17 b2 3c e7 5f 68 69  25 2b 31 3c 5f 65 6e 64  |...<._hi%+1<_end|
00014580  25 8c f2 73 68 65 6c 6c  5f 51 75 69 63 6b 53 6f  |%..shell_QuickSo|
00014590  72 74 28 68 24 2c 6b 24  2c 5f 61 73 63 25 2c 5f  |rt(h$,k$,_asc%,_|
000145a0  68 69 25 2b 31 2c 5f 65  6e 64 25 29 0d 17 b3 05  |hi%+1,_end%)....|
000145b0  e1 0d 17 b8 f6 dd a4 5f  73 68 65 6c 6c 5f 4d 53  |......._shell_MS|
000145c0  5f 73 77 61 70 28 42 44  25 2c 43 44 25 29 3a ea  |_swap(BD%,CD%):.|
000145d0  6c 24 2c 6d 24 2c 6a 45  25 2c 6b 45 25 3a 6c 24  |l$,m$,jE%,kE%:l$|
000145e0  3d a4 73 68 65 6c 6c 5f  4d 65 6e 75 47 65 74 49  |=.shell_MenuGetI|
000145f0  74 65 6d 54 65 78 74 28  5f 73 68 65 6c 6c 5f 4d  |temText(_shell_M|
00014600  53 5f 68 61 6e 64 6c 65  25 2c 42 44 25 29 3a 6d  |S_handle%,BD%):m|
00014610  24 3d a4 73 68 65 6c 6c  5f 4d 65 6e 75 47 65 74  |$=.shell_MenuGet|
00014620  49 74 65 6d 54 65 78 74  28 5f 73 68 65 6c 6c 5f  |ItemText(_shell_|
00014630  4d 53 5f 68 61 6e 64 6c  65 25 2c 43 44 25 29 3a  |MS_handle%,CD%):|
00014640  6a 45 25 3d a4 73 68 65  6c 6c 5f 4d 65 6e 75 47  |jE%=.shell_MenuG|
00014650  65 74 49 74 65 6d 48 61  6e 64 6c 65 28 5f 73 68  |etItemHandle(_sh|
00014660  65 6c 6c 5f 4d 53 5f 68  61 6e 64 6c 65 25 2c 42  |ell_MS_handle%,B|
00014670  44 25 29 3a 6b 45 25 3d  a4 73 68 65 6c 6c 5f 4d  |D%):kE%=.shell_M|
00014680  65 6e 75 47 65 74 49 74  65 6d 48 61 6e 64 6c 65  |enuGetItemHandle|
00014690  28 5f 73 68 65 6c 6c 5f  4d 53 5f 68 61 6e 64 6c  |(_shell_MS_handl|
000146a0  65 25 2c 43 44 25 29 0d  17 be 3c f2 73 68 65 6c  |e%,CD%)...<.shel|
000146b0  6c 5f 4d 65 6e 75 50 75  74 44 61 74 61 28 6a 45  |l_MenuPutData(jE|
000146c0  25 2c 6d 24 29 3a f2 73  68 65 6c 6c 5f 4d 65 6e  |%,m$):.shell_Men|
000146d0  75 50 75 74 44 61 74 61  28 6b 45 25 2c 6c 24 29  |uPutData(kE%,l$)|
000146e0  3a 3d 30 0d 17 c5 95 dd  a4 5f 73 68 65 6c 6c 5f  |:=0......_shell_|
000146f0  4d 53 5f 63 6f 6d 70 28  42 44 25 2c 43 44 25 29  |MS_comp(BD%,CD%)|
00014700  3a ea 6c 24 2c 6d 24 3a  6c 24 3d a4 73 68 65 6c  |:.l$,m$:l$=.shel|
00014710  6c 5f 4d 65 6e 75 47 65  74 49 74 65 6d 54 65 78  |l_MenuGetItemTex|
00014720  74 28 5f 73 68 65 6c 6c  5f 4d 53 5f 68 61 6e 64  |t(_shell_MS_hand|
00014730  6c 65 25 2c 42 44 25 29  3a 6d 24 3d a4 73 68 65  |le%,BD%):m$=.she|
00014740  6c 6c 5f 4d 65 6e 75 47  65 74 49 74 65 6d 54 65  |ll_MenuGetItemTe|
00014750  78 74 28 5f 73 68 65 6c  6c 5f 4d 53 5f 68 61 6e  |xt(_shell_MS_han|
00014760  64 6c 65 25 2c 43 44 25  29 3a e7 bb 6c 24 3c bb  |dle%,CD%):..l$<.|
00014770  6d 24 8c 3d b9 8b 3d a3  0d 17 ce bf dd f2 73 68  |m$.=..=.......sh|
00014780  65 6c 6c 5f 57 69 6e 64  6f 77 53 65 74 54 69 74  |ell_WindowSetTit|
00014790  6c 65 52 69 67 68 74 4a  75 73 74 28 f8 62 25 29  |leRightJust(.b%)|
000147a0  3a ea 74 25 2c 54 41 25  2c 69 25 2c 5a 43 25 3a  |:.t%,TA%,i%,ZC%:|
000147b0  5a 43 25 3d a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |ZC%=.shell_Windo|
000147c0  77 49 73 4f 70 65 6e 28  62 25 29 3a 74 25 3d a4  |wIsOpen(b%):t%=.|
000147d0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
000147e0  65 74 63 68 28 26 36 34  2b 28 a4 73 68 65 6c 6c  |etch(&64+(.shell|
000147f0  5f 57 69 6e 64 6f 77 43  6f 75 6e 74 49 63 6f 6e  |_WindowCountIcon|
00014800  73 28 62 25 29 2a 33 32  29 29 3a 21 74 25 3d 62  |s(b%)*32)):!t%=b|
00014810  25 3a c8 99 26 34 30 30  43 43 2c 2c 74 25 3a 54  |%:..&400CC,,t%:T|
00014820  41 25 3d 74 25 21 36 30  3a e7 28 54 41 25 80 28  |A%=t%!60:.(TA%.(|
00014830  31 3c 3c 33 29 29 8c 0d  17 d7 ea f2 73 68 65 6c  |1<<3))......shel|
00014840  6c 5f 54 72 61 63 65 66  30 28 22 57 69 6e 64 6f  |l_Tracef0("Windo|
00014850  77 53 65 74 54 69 74 6c  65 52 69 67 68 74 4a 75  |wSetTitleRightJu|
00014860  73 74 3a 74 69 74 6c 65  20 66 6c 61 67 73 20 3d  |st:title flags =|
00014870  20 26 22 2b c3 7e 54 41  25 29 3a f2 73 68 65 6c  | &"+.~TA%):.shel|
00014880  6c 5f 54 72 61 63 65 66  30 28 22 57 69 6e 64 6f  |l_Tracef0("Windo|
00014890  77 53 65 74 54 69 74 6c  65 52 69 67 68 74 4a 75  |wSetTitleRightJu|
000148a0  73 74 3a 48 6f 72 69 7a  6f 6e 74 61 6c 6c 79 20  |st:Horizontally |
000148b0  63 65 6e 74 72 65 64 20  62 69 74 20 73 65 74 2e  |centred bit set.|
000148c0  2e 22 29 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |."):.shell_Trace|
000148d0  66 30 28 22 57 69 6e 64  6f 77 53 65 74 54 69 74  |f0("WindowSetTit|
000148e0  6c 65 52 69 67 68 74 4a  75 73 74 3a 55 6e 73 65  |leRightJust:Unse|
000148f0  74 74 69 6e 67 20 68 6f  72 69 7a 6f 6e 74 61 6c  |tting horizontal|
00014900  6c 79 20 63 65 6e 74 72  65 64 20 62 69 74 2e 2e  |ly centred bit..|
00014910  22 29 3a 54 41 25 3d 54  41 25 82 28 31 3c 3c 33  |"):TA%=TA%.(1<<3|
00014920  29 0d 17 dd 43 f2 73 68  65 6c 6c 5f 54 72 61 63  |)...C.shell_Trac|
00014930  65 66 30 28 22 57 69 6e  64 6f 77 53 65 74 54 69  |ef0("WindowSetTi|
00014940  74 6c 65 52 69 67 68 74  4a 75 73 74 3a 74 69 74  |tleRightJust:tit|
00014950  6c 65 20 66 6c 61 67 73  20 3d 20 26 22 2b c3 7e  |le flags = &"+.~|
00014960  54 41 25 29 0d 17 df 51  cc f2 73 68 65 6c 6c 5f  |TA%)...Q..shell_|
00014970  54 72 61 63 65 66 30 28  22 57 69 6e 64 6f 77 53  |Tracef0("WindowS|
00014980  65 74 54 69 74 6c 65 52  69 67 68 74 4a 75 73 74  |etTitleRightJust|
00014990  3a 48 6f 72 69 7a 6f 6e  74 61 6c 6c 79 20 63 65  |:Horizontally ce|
000149a0  6e 74 72 65 64 20 62 69  74 20 4e 4f 54 20 73 65  |ntred bit NOT se|
000149b0  74 2e 2e 22 29 0d 17 e3  8e cd 3a f2 73 68 65 6c  |t..").....:.shel|
000149c0  6c 5f 54 72 61 63 65 66  30 28 22 57 69 6e 64 6f  |l_Tracef0("Windo|
000149d0  77 53 65 74 54 69 74 6c  65 52 69 67 68 74 4a 75  |wSetTitleRightJu|
000149e0  73 74 3a 53 65 74 74 69  6e 67 20 72 69 67 68 74  |st:Setting right|
000149f0  20 6a 75 73 74 69 66 69  65 64 20 62 69 74 2e 2e  | justified bit..|
00014a00  22 29 3a 54 41 25 3d 54  41 25 84 28 31 3c 3c 39  |"):TA%=TA%.(1<<9|
00014a10  29 3a 74 25 21 36 30 3d  54 41 25 3a c8 99 26 34  |):t%!60=TA%:..&4|
00014a20  30 30 43 33 2c 2c 74 25  3a c8 99 26 34 30 30 43  |00C3,,t%:..&400C|
00014a30  31 2c 2c 74 25 2b 34 b8  69 25 3a e7 62 25 3c 3e  |1,,t%+4.i%:.b%<>|
00014a40  69 25 8c 0d 17 ed 6e f2  73 68 65 6c 6c 5f 54 72  |i%....n.shell_Tr|
00014a50  61 63 65 66 30 28 22 57  69 6e 64 6f 77 53 65 74  |acef0("WindowSet|
00014a60  54 69 74 6c 65 52 69 67  68 74 4a 75 73 74 3a 55  |TitleRightJust:U|
00014a70  70 64 61 74 69 6e 67 20  77 69 6e 64 6f 77 20 68  |pdating window h|
00014a80  61 6e 64 6c 65 2e 2e 2e  22 29 3a f2 73 68 65 6c  |andle..."):.shel|
00014a90  6c 5f 55 70 64 61 74 65  57 69 6e 64 6f 77 48 61  |l_UpdateWindowHa|
00014aa0  6e 64 6c 65 28 62 25 2c  69 25 29 3a 62 25 3d 69  |ndle(b%,i%):b%=i|
00014ab0  25 0d 17 f1 24 cd 3a e7  5a 43 25 8c f2 73 68 65  |%...$.:.ZC%..she|
00014ac0  6c 6c 5f 4f 70 65 6e 57  69 6e 64 6f 77 28 69 25  |ll_OpenWindow(i%|
00014ad0  2c 30 2c 30 29 0d 17 f3  20 f2 73 68 65 6c 6c 5f  |,0,0)... .shell_|
00014ae0  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
00014af0  74 25 29 3a e1 0d 17 f9  f2 dd f2 73 68 65 6c 6c  |t%):.......shell|
00014b00  5f 57 69 6e 64 6f 77 53  65 74 54 69 74 6c 65 43  |_WindowSetTitleC|
00014b10  65 6e 74 72 65 4a 75 73  74 28 f8 62 25 29 3a ea  |entreJust(.b%):.|
00014b20  74 25 2c 54 41 25 2c 69  25 2c 5a 43 25 3a 5a 43  |t%,TA%,i%,ZC%:ZC|
00014b30  25 3d a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 49  |%=.shell_WindowI|
00014b40  73 4f 70 65 6e 28 62 25  29 3a 74 25 3d a4 73 68  |sOpen(b%):t%=.sh|
00014b50  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00014b60  63 68 28 26 36 34 2b 28  a4 73 68 65 6c 6c 5f 57  |ch(&64+(.shell_W|
00014b70  69 6e 64 6f 77 43 6f 75  6e 74 49 63 6f 6e 73 28  |indowCountIcons(|
00014b80  62 25 29 2a 33 32 29 29  3a 21 74 25 3d 62 25 3a  |b%)*32)):!t%=b%:|
00014b90  c8 99 26 34 30 30 43 43  2c 2c 74 25 3a 54 41 25  |..&400CC,,t%:TA%|
00014ba0  3d 74 25 21 36 30 3a f2  73 68 65 6c 6c 5f 54 72  |=t%!60:.shell_Tr|
00014bb0  61 63 65 66 30 28 22 57  69 6e 64 6f 77 53 65 74  |acef0("WindowSet|
00014bc0  54 69 74 6c 65 43 65 6e  74 72 65 4a 75 73 74 3a  |TitleCentreJust:|
00014bd0  74 69 74 6c 65 20 66 6c  61 67 73 20 3d 20 26 22  |title flags = &"|
00014be0  2b c3 7e 54 41 25 29 0d  18 01 67 f2 73 68 65 6c  |+.~TA%)...g.shel|
00014bf0  6c 5f 54 72 61 63 65 66  30 28 22 57 69 6e 64 6f  |l_Tracef0("Windo|
00014c00  77 53 65 74 54 69 74 6c  65 43 65 6e 74 72 65 4a  |wSetTitleCentreJ|
00014c10  75 73 74 3a 74 5f 66 6c  61 67 73 25 20 41 4e 44  |ust:t_flags% AND|
00014c20  20 28 31 20 3c 3c 20 33  29 20 3d 20 22 2b c3 7e  | (1 << 3) = "+.~|
00014c30  28 54 41 25 80 28 31 3c  3c 33 29 29 29 3a e7 28  |(TA%.(1<<3))):.(|
00014c40  54 41 25 80 28 31 3c 3c  33 29 29 3d 30 8c 0d 18  |TA%.(1<<3))=0...|
00014c50  04 f9 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |...shell_Tracef0|
00014c60  28 22 57 69 6e 64 6f 77  53 65 74 54 69 74 6c 65  |("WindowSetTitle|
00014c70  43 65 6e 74 72 65 4a 75  73 74 3a 48 6f 72 69 7a  |CentreJust:Horiz|
00014c80  6f 6e 74 61 6c 6c 79 20  63 65 6e 74 72 65 64 20  |ontally centred |
00014c90  62 69 74 20 6e 6f 74 20  73 65 74 2e 2e 22 29 3a  |bit not set.."):|
00014ca0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00014cb0  57 69 6e 64 6f 77 53 65  74 54 69 74 6c 65 43 65  |WindowSetTitleCe|
00014cc0  6e 74 72 65 4a 75 73 74  3a 53 65 74 74 69 6e 67  |ntreJust:Setting|
00014cd0  20 68 6f 72 69 7a 6f 6e  74 61 6c 6c 79 20 63 65  | horizontally ce|
00014ce0  6e 74 72 65 64 20 62 69  74 2e 2e 22 29 3a 54 41  |ntred bit.."):TA|
00014cf0  25 3d 54 41 25 82 28 31  3c 3c 33 29 3a f2 73 68  |%=TA%.(1<<3):.sh|
00014d00  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 57 69 6e  |ell_Tracef0("Win|
00014d10  64 6f 77 53 65 74 54 69  74 6c 65 43 65 6e 74 72  |dowSetTitleCentr|
00014d20  65 4a 75 73 74 3a 74 69  74 6c 65 20 66 6c 61 67  |eJust:title flag|
00014d30  73 20 3d 20 26 22 2b c3  7e 54 41 25 29 3a 74 25  |s = &"+.~TA%):t%|
00014d40  21 36 30 3d 54 41 25 0d  18 0c 2b c8 99 26 34 30  |!60=TA%...+..&40|
00014d50  30 43 33 2c 2c 74 25 3a  c8 99 26 34 30 30 43 31  |0C3,,t%:..&400C1|
00014d60  2c 2c 74 25 2b 34 b8 69  25 3a e7 62 25 3c 3e 69  |,,t%+4.i%:.b%<>i|
00014d70  25 8c 0d 18 10 6f f2 73  68 65 6c 6c 5f 54 72 61  |%....o.shell_Tra|
00014d80  63 65 66 30 28 22 57 69  6e 64 6f 77 53 65 74 54  |cef0("WindowSetT|
00014d90  69 74 6c 65 43 65 6e 74  72 65 4a 75 73 74 3a 55  |itleCentreJust:U|
00014da0  70 64 61 74 69 6e 67 20  77 69 6e 64 6f 77 20 68  |pdating window h|
00014db0  61 6e 64 6c 65 2e 2e 2e  22 29 3a f2 73 68 65 6c  |andle..."):.shel|
00014dc0  6c 5f 55 70 64 61 74 65  57 69 6e 64 6f 77 48 61  |l_UpdateWindowHa|
00014dd0  6e 64 6c 65 28 62 25 2c  69 25 29 3a 62 25 3d 69  |ndle(b%,i%):b%=i|
00014de0  25 0d 18 14 24 cd 3a e7  5a 43 25 8c f2 73 68 65  |%...$.:.ZC%..she|
00014df0  6c 6c 5f 4f 70 65 6e 57  69 6e 64 6f 77 28 69 25  |ll_OpenWindow(i%|
00014e00  2c 30 2c 30 29 0d 18 16  22 cd 3a f2 73 68 65 6c  |,0,0)...".:.shel|
00014e10  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00014e20  6e 28 74 25 29 3a e1 0d  18 1e 6e dd f2 73 68 65  |n(t%):....n..she|
00014e30  6c 6c 5f 49 63 6f 6e 47  65 74 53 65 6c 65 63 74  |ll_IconGetSelect|
00014e40  65 64 49 63 6f 6e 73 28  62 25 2c 44 43 25 2c f8  |edIcons(b%,DC%,.|
00014e50  72 25 29 3a ea 6e 45 25  3a 6e 45 25 3d 28 44 43  |r%):.nE%:nE%=(DC|
00014e60  25 3c 3c 31 36 29 2b 28  31 3c 3c 32 31 29 3a c8  |%<<16)+(1<<21):.|
00014e70  99 26 34 30 30 44 36 2c  62 25 2c 72 25 2c 6e 45  |.&400D6,b%,r%,nE|
00014e80  25 2c 28 44 43 25 3c 3c  31 36 29 2b 28 31 3c 3c  |%,(DC%<<16)+(1<<|
00014e90  32 31 29 3a e1 0d 18 27  27 dd a4 73 68 65 6c 6c  |21):...''..shell|
00014ea0  5f 47 65 74 4c 61 73 74  4d 6f 75 73 65 42 75 74  |_GetLastMouseBut|
00014eb0  74 6f 6e 3a 3d 5f 55 25  21 33 32 30 0d 18 2d 28  |ton:=_U%!320..-(|
00014ec0  dd a4 73 68 65 6c 6c 5f  47 65 74 4c 61 73 74 57  |..shell_GetLastW|
00014ed0  69 6e 64 6f 77 43 6c 69  63 6b 65 64 3a 3d 5f 55  |indowClicked:=_U|
00014ee0  25 21 32 38 0d 18 33 26  dd a4 73 68 65 6c 6c 5f  |%!28..3&..shell_|
00014ef0  47 65 74 4c 61 73 74 49  63 6f 6e 43 6c 69 63 6b  |GetLastIconClick|
00014f00  65 64 3a 3d 5f 55 25 21  33 32 0d 18 39 4b dd a4  |ed:=_U%!32..9K..|
00014f10  73 68 65 6c 6c 5f 49 63  6f 6e 49 6e 64 69 72 53  |shell_IconIndirS|
00014f20  69 7a 65 28 6a 41 25 2c  6e 25 2c 56 43 25 2c 58  |ize(jA%,n%,VC%,X|
00014f30  25 29 3a ea 68 41 25 2c  6f 45 25 2c 67 25 2c 4e  |%):.hA%,oE%,g%,N|
00014f40  43 25 3a e7 28 6e 25 80  26 38 30 30 31 30 30 29  |C%:.(n%.&800100)|
00014f50  3d 32 35 36 8c 0d 18 3c  22 68 41 25 3d 56 43 25  |=256...<"hA%=VC%|
00014f60  21 38 3a e7 28 6e 25 80  31 29 80 28 56 43 25 21  |!8:.(n%.1).(VC%!|
00014f70  34 3c 3e 2d 31 29 8c 0d  18 3e 41 6f 45 25 3d 56  |4<>-1)...>AoE%=V|
00014f80  43 25 21 34 3a cf 23 58  25 3d 6a 41 25 2b 6f 45  |C%!4:.#X%=jA%+oE|
00014f90  25 3a 67 25 3d 30 3a f5  3a 4e 43 25 3d 9a 23 58  |%:g%=0:.:NC%=.#X|
00014fa0  25 3a 67 25 2b 3d 31 3a  fd 4e 43 25 3c 33 32 3a  |%:g%+=1:.NC%<32:|
00014fb0  68 41 25 2b 3d 2b 67 25  0d 18 46 05 cd 0d 18 47  |hA%+=+g%..F....G|
00014fc0  0a cc 68 41 25 3d 30 0d  18 49 0a cd 3a 3d 68 41  |..hA%=0..I..:=hA|
00014fd0  25 0d 18 4f 4b dd a4 73  68 65 6c 6c 5f 53 74 72  |%..OK..shell_Str|
00014fe0  6f 6e 67 48 6c 70 43 68  6b 46 69 6c 65 73 28 47  |ongHlpChkFiles(G|
00014ff0  24 29 3a ea 5a 42 25 3a  e7 ac a4 73 68 65 6c 6c  |$):.ZB%:...shell|
00015000  5f 46 69 6c 65 45 78 69  73 74 73 28 47 24 2b 22  |_FileExists(G$+"|
00015010  2e 48 65 6c 70 44 61 74  61 22 29 8c 0d 18 53 3c  |.HelpData")...S<|
00015020  5a 42 25 3d 2d 31 3a 85  39 39 2c a4 73 68 65 6c  |ZB%=-1:.99,.shel|
00015030  6c 5f 4d 65 73 73 61 67  65 4f 6e 65 41 72 67 28  |l_MessageOneArg(|
00015040  22 53 48 45 4c 4c 4d 53  47 33 32 22 2c 22 48 65  |"SHELLMSG32","He|
00015050  6c 70 44 61 74 61 22 29  0d 18 55 27 cd 3a e7 ac  |lpData")..U'.:..|
00015060  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
00015070  73 28 47 24 2b 22 2e 49  6e 64 65 78 22 29 8c 0d  |s(G$+".Index")..|
00015080  18 58 39 5a 42 25 3d 2d  31 3a 85 39 39 2c a4 73  |.X9ZB%=-1:.99,.s|
00015090  68 65 6c 6c 5f 4d 65 73  73 61 67 65 4f 6e 65 41  |hell_MessageOneA|
000150a0  72 67 28 22 53 48 45 4c  4c 4d 53 47 33 32 22 2c  |rg("SHELLMSG32",|
000150b0  22 49 6e 64 65 78 22 29  0d 18 5a 12 cd 3a e7 5a  |"Index")..Z..:.Z|
000150c0  42 25 3d a3 8c 3d b9 8b  3d a3 0d 18 60 79 dd f2  |B%=..=..=...`y..|
000150d0  73 68 65 6c 6c 5f 43 61  72 65 74 4d 6f 76 65 43  |shell_CaretMoveC|
000150e0  61 72 65 74 28 62 25 2c  44 41 25 29 3a ea 42 41  |aret(b%,DA%):.BA|
000150f0  25 2c 70 45 25 2c 67 25  2c 65 25 2c 62 42 25 3a  |%,pE%,g%,e%,bB%:|
00015100  67 25 3d 30 3a 65 25 3d  30 3a 42 41 25 3d a4 73  |g%=0:e%=0:BA%=.s|
00015110  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
00015120  74 63 68 28 26 38 30 30  29 3a c8 99 26 34 30 30  |tch(&800):..&400|
00015130  44 33 2c 2c 42 41 25 3a  e7 42 41 25 21 34 3c 3e  |D3,,BA%:.BA%!4<>|
00015140  2d 31 8c 0d 18 68 3f 70  45 25 3d 42 41 25 21 34  |-1...h?pE%=BA%!4|
00015150  3a c8 99 26 34 30 30 44  36 2c 62 25 2c 42 41 25  |:..&400D6,b%,BA%|
00015160  2c 26 34 30 45 30 30 30  2c 26 45 30 30 30 3a f5  |,&40E000,&E000:.|
00015170  3a e7 42 41 25 21 67 25  3d 70 45 25 8c 65 25 3d  |:.BA%!g%=pE%.e%=|
00015180  67 25 0d 18 6d 1b 67 25  2b 3d 34 3a fd 42 41 25  |g%..m.g%+=4:.BA%|
00015190  21 67 25 3d 2d 31 3a c8  8e 44 41 25 ca 0d 18 70  |!g%=-1:..DA%...p|
000151a0  0f c9 30 3a 62 42 25 3d  21 42 41 25 0d 18 73 15  |..0:bB%=!BA%..s.|
000151b0  c9 31 3a 62 42 25 3d 42  41 25 21 28 67 25 2d 34  |.1:bB%=BA%!(g%-4|
000151c0  29 0d 18 76 17 c9 32 3a  e7 42 41 25 21 28 65 25  |)..v..2:.BA%!(e%|
000151d0  2b 34 29 3c 3e 2d 31 8c  0d 18 79 12 62 42 25 3d  |+4)<>-1...y.bB%=|
000151e0  42 41 25 21 28 65 25 2b  34 29 0d 18 7a 0d cc 62  |BA%!(e%+4)..z..b|
000151f0  42 25 3d 21 42 41 25 0d  18 7c 05 cd 0d 18 7d 0d  |B%=!BA%..|....}.|
00015200  c9 33 3a e7 65 25 3e 30  8c 0d 18 80 12 62 42 25  |.3:.e%>0.....bB%|
00015210  3d 42 41 25 21 28 65 25  2d 34 29 0d 18 81 13 cc  |=BA%!(e%-4).....|
00015220  62 42 25 3d 42 41 25 21  28 67 25 2d 34 29 0d 18  |bB%=BA%!(g%-4)..|
00015230  83 05 cd 0d 18 84 3c cb  3a c8 99 26 34 30 30 44  |......<.:..&400D|
00015240  32 2c 62 25 2c 62 42 25  2c 2d 31 2c 2d 31 2c 2d  |2,b%,bB%,-1,-1,-|
00015250  31 2c a9 28 a4 73 68 65  6c 6c 5f 49 63 6f 6e 47  |1,.(.shell_IconG|
00015260  65 74 44 61 74 61 28 62  25 2c 62 42 25 29 29 0d  |etData(b%,bB%)).|
00015270  18 86 23 cd 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |..#.:.shell_Heap|
00015280  42 6c 6f 63 6b 52 65 74  75 72 6e 28 42 41 25 29  |BlockReturn(BA%)|
00015290  3a e1 0d 18 8d 3f dd f2  73 68 65 6c 6c 5f 43 61  |:....?..shell_Ca|
000152a0  72 65 74 50 75 74 46 69  72 73 74 49 63 6f 6e 28  |retPutFirstIcon(|
000152b0  62 25 29 3a f2 73 68 65  6c 6c 5f 43 61 72 65 74  |b%):.shell_Caret|
000152c0  4d 6f 76 65 43 61 72 65  74 28 62 25 2c 30 29 3a  |MoveCaret(b%,0):|
000152d0  e1 0d 18 94 3e dd f2 73  68 65 6c 6c 5f 43 61 72  |....>..shell_Car|
000152e0  65 74 50 75 74 4c 61 73  74 49 63 6f 6e 28 62 25  |etPutLastIcon(b%|
000152f0  29 3a f2 73 68 65 6c 6c  5f 43 61 72 65 74 4d 6f  |):.shell_CaretMo|
00015300  76 65 43 61 72 65 74 28  62 25 2c 31 29 3a e1 0d  |veCaret(b%,1):..|
00015310  18 9b 3e dd f2 73 68 65  6c 6c 5f 43 61 72 65 74  |..>..shell_Caret|
00015320  50 75 74 4e 65 78 74 49  63 6f 6e 28 62 25 29 3a  |PutNextIcon(b%):|
00015330  f2 73 68 65 6c 6c 5f 43  61 72 65 74 4d 6f 76 65  |.shell_CaretMove|
00015340  43 61 72 65 74 28 62 25  2c 32 29 3a e1 0d 18 a2  |Caret(b%,2):....|
00015350  3e dd f2 73 68 65 6c 6c  5f 43 61 72 65 74 50 75  |>..shell_CaretPu|
00015360  74 50 72 65 76 49 63 6f  6e 28 62 25 29 3a f2 73  |tPrevIcon(b%):.s|
00015370  68 65 6c 6c 5f 43 61 72  65 74 4d 6f 76 65 43 61  |hell_CaretMoveCa|
00015380  72 65 74 28 62 25 2c 33  29 3a e1 0d 18 b1 4a dd  |ret(b%,3):....J.|
00015390  f2 73 68 65 6c 6c 5f 54  65 6d 70 6c 61 74 65 46  |.shell_TemplateF|
000153a0  69 6c 65 49 6e 66 6f 28  43 24 2c f8 65 41 25 2c  |ileInfo(C$,.eA%,|
000153b0  f8 53 41 25 2c f8 5f 25  29 3a ea 47 43 25 3a 47  |.SA%,._%):.GC%:G|
000153c0  43 25 3d a4 52 4f 33 5f  50 72 65 73 65 6e 74 3a  |C%=.RO3_Present:|
000153d0  e7 47 43 25 8c 0d 18 b5  2b f2 73 68 65 6c 6c 5f  |.GC%....+.shell_|
000153e0  54 65 6d 70 6c 61 74 65  46 69 6c 65 49 6e 66 6f  |TemplateFileInfo|
000153f0  33 28 43 24 2c 65 41 25  2c 53 41 25 2c 5f 25 29  |3(C$,eA%,SA%,_%)|
00015400  0d 18 b6 2c cc f2 73 68  65 6c 6c 5f 54 65 6d 70  |...,..shell_Temp|
00015410  6c 61 74 65 46 69 6c 65  49 6e 66 6f 32 28 43 24  |lateFileInfo2(C$|
00015420  2c 65 41 25 2c 53 41 25  2c 5f 25 29 0d 18 b8 07  |,eA%,SA%,_%)....|
00015430  cd 3a e1 0d 18 be 9e dd  f2 73 68 65 6c 6c 5f 54  |.:.......shell_T|
00015440  65 6d 70 6c 61 74 65 46  69 6c 65 49 6e 66 6f 32  |emplateFileInfo2|
00015450  28 43 24 2c f8 65 41 25  2c f8 53 41 25 2c f8 5f  |(C$,.eA%,.SA%,._|
00015460  25 29 3a ea 46 41 25 2c  72 42 25 2c 56 42 25 3a  |%):.FA%,rB%,VB%:|
00015470  ea 41 41 25 2c 58 25 2c  44 44 25 2c 4c 45 25 3a  |.AA%,X%,DD%,LE%:|
00015480  ea 67 25 2c 4e 43 25 2c  79 44 25 2c 41 42 25 2c  |.g%,NC%,yD%,AB%,|
00015490  63 43 25 2c 6e 25 3a 46  41 25 3d 30 3a 53 41 25  |cC%,n%:FA%=0:SA%|
000154a0  3d 30 3a 72 42 25 3d 30  3a 56 42 25 3d 30 3a 5f  |=0:rB%=0:VB%=0:_|
000154b0  25 3d 30 3a e7 ac a4 73  68 65 6c 6c 5f 46 69 6c  |%=0:...shell_Fil|
000154c0  65 45 78 69 73 74 73 28  43 24 29 8c 5f 25 3d 2d  |eExists(C$)._%=-|
000154d0  31 0d 18 c5 24 e7 a4 73  68 65 6c 6c 5f 46 69 6c  |1...$..shell_Fil|
000154e0  65 54 79 70 65 28 43 24  29 3c 3e 26 46 45 43 8c  |eType(C$)<>&FEC.|
000154f0  5f 25 3d 2d 32 0d 18 c6  0a e7 5f 25 3d 30 8c 0d  |_%=-2....._%=0..|
00015500  18 c7 55 41 41 25 3d a4  73 68 65 6c 6c 5f 48 65  |..UAA%=.shell_He|
00015510  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 44 29  |apBlockFetch(&D)|
00015520  3a 58 25 3d 8e 28 43 24  29 3a cf 23 58 25 3d 31  |:X%=.(C$):.#X%=1|
00015530  36 3a f5 3a c8 99 26 43  2c 34 2c 58 25 2c 41 41  |6:.:..&C,4,X%,AA|
00015540  25 2c 34 3a 6a 41 25 3d  21 41 41 25 3a e7 6a 41  |%,4:jA%=!AA%:.jA|
00015550  25 3e 30 8c 0d 18 ce f3  53 41 25 2b 3d 31 3a 7a  |%>0.....SA%+=1:z|
00015560  44 25 3d 30 3a c8 99 26  43 2c 34 2c 58 25 2c 41  |D%=0:..&C,4,X%,A|
00015570  41 25 2c 34 3a 44 44 25  3d 21 41 41 25 3a c8 99  |A%,4:DD%=!AA%:..|
00015580  26 43 2c 34 2c 58 25 2c  41 41 25 2c 34 3a 4c 45  |&C,4,X%,AA%,4:LE|
00015590  25 3d 21 41 41 25 3a c8  99 26 43 2c 34 2c 58 25  |%=!AA%:..&C,4,X%|
000155a0  2c 41 41 25 2c 26 43 3a  79 44 25 3d 8f 23 58 25  |,AA%,&C:yD%=.#X%|
000155b0  3a cf 23 58 25 3d 6a 41  25 2b 35 36 3a c8 99 26  |:.#X%=jA%+56:..&|
000155c0  43 2c 34 2c 58 25 2c 41  41 25 2c 34 3a 6e 25 3d  |C,4,X%,AA%,4:n%=|
000155d0  21 41 41 25 3a cf 23 58  25 3d 6a 41 25 2b 37 32  |!AA%:.#X%=jA%+72|
000155e0  3a c8 99 26 43 2c 34 2c  58 25 2c 41 41 25 2c 26  |:..&C,4,X%,AA%,&|
000155f0  43 3a 7a 44 25 2b 3d a4  73 68 65 6c 6c 5f 49 63  |C:zD%+=.shell_Ic|
00015600  6f 6e 49 6e 64 69 72 53  69 7a 65 28 6a 41 25 2c  |onIndirSize(jA%,|
00015610  6e 25 2c 41 41 25 2c 58  25 29 3a cf 23 58 25 3d  |n%,AA%,X%):.#X%=|
00015620  6a 41 25 2b 38 34 3a c8  99 26 43 2c 34 2c 58 25  |jA%+84:..&C,4,X%|
00015630  2c 41 41 25 2c 34 3a 41  42 25 3d 21 41 41 25 3a  |,AA%,4:AB%=!AA%:|
00015640  e7 41 42 25 3e 30 8c 0d  18 e0 97 e3 63 43 25 3d  |.AB%>0......cC%=|
00015650  30 b8 41 42 25 2d 31 3a  cf 23 58 25 3d 6a 41 25  |0.AB%-1:.#X%=jA%|
00015660  2b 38 38 2b 28 63 43 25  2a 33 32 29 2b 31 36 3a  |+88+(cC%*32)+16:|
00015670  c8 99 26 43 2c 34 2c 58  25 2c 41 41 25 2c 34 3a  |..&C,4,X%,AA%,4:|
00015680  6e 25 3d 21 41 41 25 3a  cf 23 58 25 3d 6a 41 25  |n%=!AA%:.#X%=jA%|
00015690  2b 38 38 2b 28 63 43 25  2a 33 32 29 2b 32 30 3a  |+88+(cC%*32)+20:|
000156a0  c8 99 26 43 2c 34 2c 58  25 2c 41 41 25 2c 26 43  |..&C,4,X%,AA%,&C|
000156b0  3a 7a 44 25 2b 3d a4 73  68 65 6c 6c 5f 49 63 6f  |:zD%+=.shell_Ico|
000156c0  6e 49 6e 64 69 72 53 69  7a 65 28 6a 41 25 2c 6e  |nIndirSize(jA%,n|
000156d0  25 2c 41 41 25 2c 58 25  29 3a ed 63 43 25 0d 18  |%,AA%,X%):.cC%..|
000156e0  e8 21 cd 3a cf 23 58 25  3d 79 44 25 3a 72 42 25  |.!.:.#X%=yD%:rB%|
000156f0  2b 3d 7a 44 25 3a e7 44  44 25 3e 56 42 25 8c 0d  |+=zD%:.DD%>VB%..|
00015700  18 ec 0b 56 42 25 3d 44  44 25 0d 18 ed 05 cd 0d  |...VB%=DD%......|
00015710  18 ee 39 cd 3a fd 6a 41  25 3d 30 3a d9 23 58 25  |..9.:.jA%=0:.#X%|
00015720  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00015730  6b 52 65 74 75 72 6e 28  41 41 25 29 3a 65 41 25  |kReturn(AA%):eA%|
00015740  3d 56 42 25 2b 72 42 25  0d 18 f3 07 cd 3a e1 0d  |=VB%+rB%.....:..|
00015750  18 f9 db dd f2 73 68 65  6c 6c 5f 54 65 6d 70 6c  |.....shell_Templ|
00015760  61 74 65 46 69 6c 65 49  6e 66 6f 33 28 43 24 2c  |ateFileInfo3(C$,|
00015770  f8 65 41 25 2c f8 53 41  25 2c f8 5f 25 29 3a ea  |.eA%,.SA%,._%):.|
00015780  46 41 25 2c 72 42 25 2c  56 42 25 2c 6a 41 25 3a  |FA%,rB%,VB%,jA%:|
00015790  ea 41 41 25 3a ea 67 25  2c 4e 43 25 2c 79 44 25  |.AA%:.g%,NC%,yD%|
000157a0  2c 41 42 25 2c 63 43 25  2c 6e 25 3a 46 41 25 3d  |,AB%,cC%,n%:FA%=|
000157b0  30 3a 53 41 25 3d 30 3a  72 42 25 3d 30 3a 56 42  |0:SA%=0:rB%=0:VB|
000157c0  25 3d 30 3a 41 41 25 3d  a4 73 68 65 6c 6c 5f 48  |%=0:AA%=.shell_H|
000157d0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 26 44  |eapBlockFetch(&D|
000157e0  29 3a c8 99 26 34 30 30  44 39 2c 2c 43 24 3a f5  |):..&400D9,,C$:.|
000157f0  3a 24 41 41 25 3d 22 2a  22 3a c8 99 26 34 30 30  |:$AA%="*":..&400|
00015800  44 42 2c 2c 2d 31 2c 2c  2c 2c 41 41 25 2c 46 41  |DB,,-1,,,,AA%,FA|
00015810  25 b8 2c 65 41 25 2c 6a  46 25 2c 2c 2c 2c 46 41  |%.,eA%,jF%,,,,FA|
00015820  25 3a e7 46 41 25 3c 3e  30 8c 0d 19 07 14 e7 65  |%:.FA%<>0......e|
00015830  41 25 3e 56 42 25 8c 56  42 25 3d 65 41 25 0d 19  |A%>VB%.VB%=eA%..|
00015840  08 13 72 42 25 2b 3d 6a  46 25 3a 53 41 25 2b 3d  |..rB%+=jF%:SA%+=|
00015850  31 0d 19 0a 3f cd 3a fd  46 41 25 3d 30 3a c8 99  |1...?.:.FA%=0:..|
00015860  26 34 30 30 44 41 3a 65  41 25 3d 56 42 25 2b 72  |&400DA:eA%=VB%+r|
00015870  42 25 3a f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |B%:.shell_HeapBl|
00015880  6f 63 6b 52 65 74 75 72  6e 28 41 41 25 29 3a e1  |ockReturn(AA%):.|
00015890  0d 19 14 f1 dd a4 52 4f  33 5f 50 72 65 73 65 6e  |......RO3_Presen|
000158a0  74 3a ea 61 25 2c 6e 42  25 2c 4f 24 3a 61 25 3d  |t:.a%,nB%,O$:a%=|
000158b0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000158c0  46 65 74 63 68 28 32 35  36 29 3a ff 28 22 53 65  |Fetch(256):.("Se|
000158d0  74 20 52 4f 33 24 43 68  65 63 6b 20 59 22 29 3a  |t RO3$Check Y"):|
000158e0  ff 28 22 52 4d 45 6e 73  75 72 65 20 55 74 69 6c  |.("RMEnsure Util|
000158f0  69 74 79 4d 6f 64 75 6c  65 20 33 2e 30 30 20 53  |ityModule 3.00 S|
00015900  65 74 20 52 4f 33 24 43  68 65 63 6b 20 4e 22 29  |et RO3$Check N")|
00015910  3a c8 99 33 35 2c 22 52  4f 33 24 43 68 65 63 6b  |:..35,"RO3$Check|
00015920  22 2c 61 25 2c 32 35 36  2c 30 2c 30 b8 2c 2c 6e  |",a%,256,0,0.,,n|
00015930  42 25 3a 61 25 3f 6e 42  25 3d 26 44 3a ff 28 22  |B%:a%?nB%=&D:.("|
00015940  55 6e 73 65 74 20 52 4f  33 24 43 68 65 63 6b 22  |Unset RO3$Check"|
00015950  29 3a 4f 24 3d 24 61 25  3a f2 73 68 65 6c 6c 5f  |):O$=$a%:.shell_|
00015960  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
00015970  61 25 29 3a e7 4f 24 3d  22 4e 22 8c 3d a3 8b 3d  |a%):.O$="N".=..=|
00015980  b9 0d 19 28 4a dd a4 73  68 65 6c 6c 5f 57 69 6e  |...(J..shell_Win|
00015990  64 6f 77 43 6f 75 6e 74  49 63 6f 6e 73 28 62 25  |dowCountIcons(b%|
000159a0  29 3a ea 57 42 25 2c 47  43 25 2c 41 42 25 3a e7  |):.WB%,GC%,AB%:.|
000159b0  28 5f 55 25 21 26 36 34  80 31 3c 3c 26 41 29 8c  |(_U%!&64.1<<&A).|
000159c0  47 43 25 3d b9 8b 47 43  25 3d a3 0d 19 2b 09 e7  |GC%=..GC%=...+..|
000159d0  47 43 25 8c 0d 19 2d 48  f2 73 68 65 6c 6c 5f 54  |GC%...-H.shell_T|
000159e0  72 61 63 65 66 30 28 22  57 69 6e 64 6f 77 43 6f  |racef0("WindowCo|
000159f0  75 6e 74 49 63 6f 6e 73  3a 52 49 53 43 20 4f 53  |untIcons:RISC OS|
00015a00  20 33 20 64 65 74 65 63  74 65 64 2e 2e 22 29 3a  | 3 detected.."):|
00015a10  e7 62 25 3d 2d 31 8c 62  25 3d 2d 32 0d 19 30 79  |.b%=-1.b%=-2..0y|
00015a20  57 42 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |WB%=.shell_HeapB|
00015a30  6c 6f 63 6b 46 65 74 63  68 28 38 38 29 3a 21 57  |lockFetch(88):!W|
00015a40  42 25 3d 62 25 3a c8 99  26 34 30 30 43 43 2c 2c  |B%=b%:..&400CC,,|
00015a50  57 42 25 2b 31 3a 41 42  25 3d 57 42 25 21 38 38  |WB%+1:AB%=WB%!88|
00015a60  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00015a70  22 57 69 6e 64 6f 77 43  6f 75 6e 74 49 63 6f 6e  |"WindowCountIcon|
00015a80  73 3a 6e 72 5f 69 63 6f  6e 73 25 20 3d 20 22 2b  |s:nr_icons% = "+|
00015a90  c3 41 42 25 29 0d 19 37  64 cc f2 73 68 65 6c 6c  |.AB%)..7d..shell|
00015aa0  5f 54 72 61 63 65 66 30  28 22 57 69 6e 64 6f 77  |_Tracef0("Window|
00015ab0  43 6f 75 6e 74 49 63 6f  6e 73 3a 52 49 53 43 20  |CountIcons:RISC |
00015ac0  4f 53 20 33 20 4e 4f 54  20 66 6f 75 6e 64 2e 2e  |OS 3 NOT found..|
00015ad0  22 29 3a 57 42 25 3d a4  73 68 65 6c 6c 5f 48 65  |"):WB%=.shell_He|
00015ae0  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 36 30 30  |apBlockFetch(600|
00015af0  30 29 3a e7 62 25 3e 30  8c 0d 19 3d 24 21 57 42  |0):.b%>0...=$!WB|
00015b00  25 3d 62 25 3a c8 99 26  34 30 30 43 43 2c 2c 57  |%=b%:..&400CC,,W|
00015b10  42 25 3a 41 42 25 3d 57  42 25 21 38 38 0d 19 40  |B%:AB%=WB%!88..@|
00015b20  3a cd 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |:.:.shell_Tracef|
00015b30  30 28 22 57 69 6e 64 6f  77 43 6f 75 6e 74 49 63  |0("WindowCountIc|
00015b40  6f 6e 73 3a 6e 72 5f 69  63 6f 6e 73 25 20 3d 20  |ons:nr_icons% = |
00015b50  22 2b c3 41 42 25 29 0d  19 44 26 cd 3a f2 73 68  |"+.AB%)..D&.:.sh|
00015b60  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00015b70  75 72 6e 28 57 42 25 29  3a 3d 41 42 25 0d 19 4b  |urn(WB%):=AB%..K|
00015b80  2f dd a4 73 68 65 6c 6c  5f 53 6c 69 64 65 72 47  |/..shell_SliderG|
00015b90  65 74 56 61 6c 75 65 28  69 25 29 3a 3d 28 5f 55  |etValue(i%):=(_U|
00015ba0  25 21 33 33 32 2b 69 25  29 21 32 38 0d 19 51 ff  |%!332+i%)!28..Q.|
00015bb0  dd f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 53 6c  |..shell_HandleSl|
00015bc0  69 64 65 72 28 62 25 2c  66 25 2c 6d 41 25 29 3a  |ider(b%,f%,mA%):|
00015bd0  ea 47 41 25 2c 49 41 25  2c 4d 41 25 2c 61 25 2c  |.GA%,IA%,MA%,a%,|
00015be0  6c 25 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |l%:.shell_Tracef|
00015bf0  30 28 22 48 61 6e 64 6c  65 53 6c 69 64 65 72 3a  |0("HandleSlider:|
00015c00  73 6c 69 64 65 72 20 64  72 61 67 20 65 76 65 6e  |slider drag even|
00015c10  74 20 66 6f 75 6e 64 2e  2e 22 29 3a 6c 25 3d 5f  |t found.."):l%=_|
00015c20  55 25 21 33 33 32 2b 6d  41 25 3a 47 41 25 3d a4  |U%!332+mA%:GA%=.|
00015c30  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00015c40  65 74 63 68 28 35 30 29  3a 47 41 25 21 30 3d 62  |etch(50):GA%!0=b|
00015c50  25 3a 47 41 25 21 34 3d  6c 25 21 38 3a c8 99 26  |%:GA%!4=l%!8:..&|
00015c60  34 30 30 43 45 2c 2c 47  41 25 3a 61 25 3d 5f 55  |400CE,,GA%:a%=_U|
00015c70  25 21 33 32 38 3a 61 25  21 30 3d 30 3a 61 25 21  |%!328:a%!0=0:a%!|
00015c80  34 3d 47 41 25 21 31 36  2d 47 41 25 21 38 3a 61  |4=GA%!16-GA%!8:a|
00015c90  25 21 38 3d 66 25 3a 61  25 21 26 43 3d 6c 25 21  |%!8=f%:a%!&C=l%!|
00015ca0  26 43 3a 61 25 21 31 36  3d 6c 25 0d 19 62 fd 61  |&C:a%!16=l%..b.a|
00015cb0  25 21 32 34 3d 6c 25 21  32 34 3a 47 41 25 21 30  |%!24=l%!24:GA%!0|
00015cc0  3d 62 25 3a c8 99 26 34  30 30 43 42 2c 2c 47 41  |=b%:..&400CB,,GA|
00015cd0  25 3a 49 41 25 3d 47 41  25 21 34 2d 47 41 25 21  |%:IA%=GA%!4-GA%!|
00015ce0  32 30 3a 4d 41 25 3d 47  41 25 21 31 36 2d 47 41  |20:MA%=GA%!16-GA|
00015cf0  25 21 32 34 3a 47 41 25  21 34 3d 66 25 3a c8 99  |%!24:GA%!4=f%:..|
00015d00  26 34 30 30 43 45 2c 2c  47 41 25 3a 47 41 25 21  |&400CE,,GA%:GA%!|
00015d10  34 3d 37 3a 47 41 25 21  38 2b 3d 49 41 25 3a 47  |4=7:GA%!8+=IA%:G|
00015d20  41 25 21 26 43 2b 3d 4d  41 25 3a 47 41 25 21 31  |A%!&C+=MA%:GA%!1|
00015d30  36 2b 3d 49 41 25 3a 47  41 25 21 32 30 2b 3d 4d  |6+=IA%:GA%!20+=M|
00015d40  41 25 3a 47 41 25 21 32  34 3d 47 41 25 21 38 3a  |A%:GA%!24=GA%!8:|
00015d50  47 41 25 21 32 38 3d 47  41 25 21 26 43 3a 47 41  |GA%!28=GA%!&C:GA|
00015d60  25 21 33 32 3d 47 41 25  21 32 34 2b 61 25 21 34  |%!32=GA%!24+a%!4|
00015d70  3a 47 41 25 21 33 36 3d  47 41 25 21 32 30 3a c8  |:GA%!36=GA%!20:.|
00015d80  99 26 34 30 30 44 30 2c  2c 47 41 25 3a f2 73 68  |.&400D0,,GA%:.sh|
00015d90  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00015da0  75 72 6e 28 47 41 25 29  0d 19 76 1b 5f 55 25 21  |urn(GA%)..v._U%!|
00015db0  26 36 34 3d 5f 55 25 21  26 36 34 84 31 3c 3c 26  |&64=_U%!&64.1<<&|
00015dc0  42 3a e1 0d 19 7c 9d dd  f2 73 68 65 6c 6c 5f 53  |B:...|...shell_S|
00015dd0  6c 69 64 65 72 3a ea 7a  41 25 2c 61 25 2c 45 44  |lider:.zA%,a%,ED|
00015de0  25 2c 64 43 25 2c 62 25  2c 49 41 25 2c 55 41 24  |%,dC%,b%,IA%,UA$|
00015df0  2c 45 42 25 2c 5f 76 61  6c 75 65 25 2c 6f 25 3a  |,EB%,_value%,o%:|
00015e00  7a 41 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |zA%=.shell_HeapB|
00015e10  6c 6f 63 6b 46 65 74 63  68 28 32 30 29 3a 45 42  |lockFetch(20):EB|
00015e20  25 3d 5f 55 25 21 33 32  38 3a c8 99 26 34 30 30  |%=_U%!328:..&400|
00015e30  43 46 2c 2c 7a 41 25 3a  62 25 3d 7a 41 25 21 26  |CF,,zA%:b%=zA%!&|
00015e40  43 3a 64 43 25 3d 45 42  25 21 38 3a 45 44 25 3d  |C:dC%=EB%!8:ED%=|
00015e50  21 7a 41 25 3a e7 45 44  25 3c 3e 21 45 42 25 8c  |!zA%:.ED%<>!EB%.|
00015e60  0d 19 86 f4 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |....a%=.shell_He|
00015e70  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 35 30 29  |apBlockFetch(50)|
00015e80  3a 21 61 25 3d 62 25 3a  c8 99 26 34 30 30 43 42  |:!a%=b%:..&400CB|
00015e90  2c 2c 61 25 3a 49 41 25  3d 45 44 25 2d 61 25 21  |,,a%:IA%=ED%-a%!|
00015ea0  34 3a 61 25 21 34 3d 64  43 25 3a c8 99 26 34 30  |4:a%!4=dC%:..&40|
00015eb0  30 43 45 2c 2c 61 25 3a  c8 99 26 34 30 30 43 34  |0CE,,a%:..&400C4|
00015ec0  2c 2c 61 25 3a 61 25 21  34 3d 62 25 3a 61 25 21  |,,a%:a%!4=b%:a%!|
00015ed0  31 36 3d 49 41 25 3a c8  99 26 34 30 30 43 32 2c  |16=IA%:..&400C2,|
00015ee0  2c 61 25 2b 34 3a c8 99  26 34 30 30 44 31 2c 62  |,a%+4:..&400D1,b|
00015ef0  25 2c 61 25 21 38 2c 61  25 21 26 43 2c 61 25 21  |%,a%!8,a%!&C,a%!|
00015f00  38 2b 45 42 25 21 34 2c  61 25 21 32 30 3a 5f 76  |8+EB%!4,a%!20:_v|
00015f10  61 6c 75 65 25 3d a8 28  28 28 49 41 25 2d 61 25  |alue%=.(((IA%-a%|
00015f20  21 38 29 2a 26 36 34 29  2f 45 42 25 21 34 29 3a  |!8)*&64)/EB%!4):|
00015f30  63 25 3d 45 42 25 21 31  36 3a 63 25 21 32 38 3d  |c%=EB%!16:c%!28=|
00015f40  5f 76 61 6c 75 65 25 3a  e7 45 42 25 21 32 34 3c  |_value%:.EB%!24<|
00015f50  3e 2d 31 8c 0d 19 95 24  6f 25 3d a0 28 22 46 4e  |>-1....$o%=.("FN|
00015f60  22 2b 24 28 45 42 25 21  32 34 29 2b 22 28 5f 76  |"+$(EB%!24)+"(_v|
00015f70  61 6c 75 65 25 29 22 29  0d 19 96 11 cd 3a e7 45  |alue%)").....:.E|
00015f80  42 25 21 26 43 3e 3d 30  8c 0d 19 98 37 55 41 24  |B%!&C>=0....7UA$|
00015f90  3d c3 28 5f 76 61 6c 75  65 25 29 3a f2 73 68 65  |=.(_value%):.she|
00015fa0  6c 6c 5f 49 63 6f 6e 50  75 74 44 61 74 61 28 62  |ll_IconPutData(b|
00015fb0  25 2c 45 42 25 21 26 43  2c 55 41 24 2c 2d 31 29  |%,EB%!&C,UA$,-1)|
00015fc0  0d 19 9a 2c cd 3a c8 96  3a 21 45 42 25 3d 45 44  |...,.:..:!EB%=ED|
00015fd0  25 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%:.shell_HeapBlo|
00015fe0  63 6b 52 65 74 75 72 6e  28 61 25 29 0d 19 9e 23  |ckReturn(a%)...#|
00015ff0  cd 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.:.shell_HeapBlo|
00016000  63 6b 52 65 74 75 72 6e  28 7a 41 25 29 3a e1 0d  |ckReturn(zA%):..|
00016010  19 a5 58 dd a4 73 68 65  6c 6c 5f 47 65 74 45 76  |..X..shell_GetEv|
00016020  65 6e 74 4c 69 73 74 4f  66 66 73 65 74 32 28 62  |entListOffset2(b|
00016030  25 2c 66 25 2c 68 25 2c  5f 41 25 2c 4d 43 25 29  |%,f%,h%,_A%,MC%)|
00016040  3a ea 70 25 2c 65 25 2c  6a 25 2c 64 25 2c 79 41  |:.p%,e%,j%,d%,yA|
00016050  25 2c 63 25 3a e7 28 21  68 25 3d 30 80 4d 43 25  |%,c%:.(!h%=0.MC%|
00016060  3d a3 29 8c 3d 2d 32 0d  19 ac 0d e7 28 21 68 25  |=.).=-2.....(!h%|
00016070  3d 30 29 8c 0d 19 ae 45  21 68 25 3d a4 73 68 65  |=0)....E!h%=.she|
00016080  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00016090  68 28 5f 41 25 2b 34 29  3a 63 25 3d 21 68 25 3a  |h(_A%+4):c%=!h%:|
000160a0  63 25 21 30 3d 5f 41 25  3a 63 25 21 34 3d 30 3a  |c%!0=_A%:c%!4=0:|
000160b0  63 25 21 38 3d 30 3a 3d  34 0d 19 b4 b1 cd 3a 63  |c%!8=0:=4.....:c|
000160c0  25 3d 21 68 25 3a 70 25  3d 21 63 25 3a f2 73 68  |%=!h%:p%=!c%:.sh|
000160d0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 47 65 74  |ell_Tracef0("Get|
000160e0  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 32  |EventListOffset2|
000160f0  3a 6c 69 73 74 20 73 69  7a 65 20 69 73 20 22 2b  |:list size is "+|
00016100  c3 70 25 29 3a 65 25 3d  34 3a 6a 25 3d a3 3a 64  |.p%):e%=4:j%=.:d|
00016110  25 3d 2d 31 3a 79 41 25  3d 2d 31 3a 63 25 3d 21  |%=-1:yA%=-1:c%=!|
00016120  68 25 3a f5 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |h%:.:.shell_Trac|
00016130  65 66 30 28 22 47 65 74  45 76 65 6e 74 4c 69 73  |ef0("GetEventLis|
00016140  74 4f 66 66 73 65 74 32  3a 77 69 6e 64 6f 77 20  |tOffset2:window |
00016150  68 61 6e 64 6c 65 3d 26  22 2b c3 7e 63 25 21 65  |handle=&"+.~c%!e|
00016160  25 29 3a e7 79 41 25 3c  30 8c 0d 19 c4 1f e7 28  |%):.yA%<0......(|
00016170  63 25 21 65 25 3d 30 80  63 25 21 65 25 2b 34 3d  |c%!e%=0.c%!e%+4=|
00016180  30 29 8c 79 41 25 3d 65  25 0d 19 c5 12 cd 3a e7  |0).yA%=e%.....:.|
00016190  28 63 25 21 65 25 3d 62  25 29 8c 0d 19 ca 0b e7  |(c%!e%=b%)......|
000161a0  66 25 3d 2d 31 8c 0d 19  cd 0e 64 25 3d 65 25 3a  |f%=-1.....d%=e%:|
000161b0  6a 25 3d b9 0d 19 cf 13  cc e7 63 25 21 28 65 25  |j%=.......c%!(e%|
000161c0  2b 34 29 3d 66 25 8c 0d  19 d5 0e 64 25 3d 65 25  |+4)=f%.....d%=e%|
000161d0  3a 6a 25 3d b9 0d 19 d7  0c cc 65 25 2b 3d 5f 41  |:j%=......e%+=_A|
000161e0  25 0d 19 d9 05 cd 0d 19  da 05 cd 0d 19 db 0c cc  |%...............|
000161f0  65 25 2b 3d 5f 41 25 0d  19 de 1d cd 3a fd 28 28  |e%+=_A%.....:.((|
00016200  65 25 3e 3d 28 70 25 2b  34 29 29 84 6a 25 29 3a  |e%>=(p%+4)).j%):|
00016210  e7 6a 25 8c 0d 19 e2 05  cc 0d 19 e4 13 cd 3a e7  |.j%...........:.|
00016220  28 64 25 3d 2d 31 80 4d  43 25 29 8c 0d 19 e6 0b  |(d%=-1.MC%).....|
00016230  e7 79 41 25 3c 30 8c 0d  19 e8 55 64 25 3d 70 25  |.yA%<0....Ud%=p%|
00016240  2b 34 3a 21 68 25 3d a4  73 68 65 6c 6c 5f 48 65  |+4:!h%=.shell_He|
00016250  61 70 42 6c 6f 63 6b 45  78 74 65 6e 64 28 21 68  |apBlockExtend(!h|
00016260  25 2c 5f 41 25 29 3a 63  25 3d 21 68 25 3a 63 25  |%,_A%):c%=!h%:c%|
00016270  21 30 2b 3d 5f 41 25 3a  63 25 2b 3d 64 25 3a 63  |!0+=_A%:c%+=d%:c|
00016280  25 21 34 3d 30 3a 63 25  21 38 3d 30 0d 19 ef 0b  |%!4=0:c%!8=0....|
00016290  cc 64 25 3d 79 41 25 0d  19 f2 05 cd 0d 19 f3 09  |.d%=yA%.........|
000162a0  cd 3a 3d 64 25 0d 19 f9  f4 dd f2 73 68 65 6c 6c  |.:=d%......shell|
000162b0  5f 53 6c 69 64 65 72 53  65 74 56 61 6c 75 65 28  |_SliderSetValue(|
000162c0  69 25 2c 5f 76 61 6c 75  65 25 29 3a ea 6c 25 2c  |i%,_value%):.l%,|
000162d0  64 43 25 2c 61 25 2c 7a  45 25 2c 42 45 25 2c 43  |dC%,a%,zE%,BE%,C|
000162e0  45 25 2c 47 44 25 3a ea  41 46 25 2c 42 46 25 3a  |E%,GD%:.AF%,BF%:|
000162f0  6c 25 3d 5f 55 25 21 33  33 32 2b 69 25 3a 64 43  |l%=_U%!332+i%:dC|
00016300  25 3d 6c 25 21 34 3a 62  25 3d 6c 25 21 30 3a 7a  |%=l%!4:b%=l%!0:z|
00016310  45 25 3d 6c 25 21 38 3a  43 45 25 3d 6c 25 21 26  |E%=l%!8:CE%=l%!&|
00016320  43 3a 61 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |C:a%=.shell_Heap|
00016330  42 6c 6f 63 6b 46 65 74  63 68 28 35 30 29 3a 61  |BlockFetch(50):a|
00016340  25 21 30 3d 62 25 3a 61  25 21 34 3d 7a 45 25 3a  |%!0=b%:a%!4=zE%:|
00016350  c8 99 26 34 30 30 43 45  2c 2c 61 25 3a 42 45 25  |..&400CE,,a%:BE%|
00016360  3d 61 25 21 31 36 3a 47  44 25 3d 61 25 21 38 3a  |=a%!16:GD%=a%!8:|
00016370  41 46 25 3d 61 25 21 26  43 3a 42 46 25 3d 61 25  |AF%=a%!&C:BF%=a%|
00016380  21 32 30 3a 61 25 21 34  3d 64 43 25 3a c8 99 26  |!20:a%!4=dC%:..&|
00016390  34 30 30 43 45 2c 2c 61  25 0d 1a 0b 31 c8 99 26  |400CE,,a%...1..&|
000163a0  34 30 30 43 34 2c 2c 61  25 3a 61 25 21 34 3d 62  |400C4,,a%:a%!4=b|
000163b0  25 3a e7 5f 76 61 6c 75  65 25 3e 26 36 34 8c 5f  |%:._value%>&64._|
000163c0  76 61 6c 75 65 25 3d 26  36 34 0d 1a 0e 10 e7 5f  |value%=&64....._|
000163d0  76 61 6c 75 65 25 3c 3d  30 8c 0d 1a 0f 18 5f 76  |value%<=0....._v|
000163e0  61 6c 75 65 25 3d 30 3a  61 25 21 31 36 3d 61 25  |alue%=0:a%!16=a%|
000163f0  21 38 0d 1a 11 36 cc 61  25 21 31 36 3d 47 44 25  |!8...6.a%!16=GD%|
00016400  2b 28 42 45 25 2a 28 5f  76 61 6c 75 65 25 2f 26  |+(BE%*(_value%/&|
00016410  36 34 29 29 2d 28 47 44  25 2a 28 5f 76 61 6c 75  |64))-(GD%*(_valu|
00016420  65 25 2f 26 36 34 29 29  0d 1a 13 4a cd 3a 6c 25  |e%/&64))...J.:l%|
00016430  21 32 38 3d 5f 76 61 6c  75 65 25 3a c8 99 26 34  |!28=_value%:..&4|
00016440  30 30 43 32 2c 2c 61 25  2b 34 3a c8 99 26 34 30  |00C2,,a%+4:..&40|
00016450  30 44 31 2c 62 25 2c 47  44 25 2c 41 46 25 2c 42  |0D1,b%,GD%,AF%,B|
00016460  45 25 2c 42 46 25 3a e7  6c 25 21 32 34 3c 3e 2d  |E%,BF%:.l%!24<>-|
00016470  31 8c 0d 1a 18 23 6f 25  3d a0 28 22 46 4e 22 2b  |1....#o%=.("FN"+|
00016480  24 28 6c 25 21 32 34 29  2b 22 28 5f 76 61 6c 75  |$(l%!24)+"(_valu|
00016490  65 25 29 22 29 0d 1a 19  0e cd 3a e7 43 45 25 3e  |e%)").....:.CE%>|
000164a0  3d 30 8c 0d 1a 1b 29 f2  73 68 65 6c 6c 5f 49 63  |=0....).shell_Ic|
000164b0  6f 6e 50 75 74 44 61 74  61 28 62 25 2c 43 45 25  |onPutData(b%,CE%|
000164c0  2c c3 5f 76 61 6c 75 65  25 2c b9 29 0d 1a 1c 22  |,._value%,.)..."|
000164d0  cd 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.:.shell_HeapBlo|
000164e0  63 6b 52 65 74 75 72 6e  28 61 25 29 3a e1 0d 1a  |ckReturn(a%):...|
000164f0  23 c3 dd a4 73 68 65 6c  6c 5f 41 74 74 61 63 68  |#...shell_Attach|
00016500  53 6c 69 64 65 72 48 61  6e 64 6c 65 72 28 62 25  |SliderHandler(b%|
00016510  2c 43 46 25 2c 4a 43 25  2c 73 42 25 2c 49 44 25  |,CF%,JC%,sB%,ID%|
00016520  2c 46 45 25 2c 51 24 29  3a ea 6c 25 2c 64 25 3a  |,FE%,Q$):.l%,d%:|
00016530  64 25 3d a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |d%=.shell_GetEve|
00016540  6e 74 4c 69 73 74 4f 66  66 73 65 74 32 28 62 25  |ntListOffset2(b%|
00016550  2c 4a 43 25 2c 5f 55 25  2b 33 33 32 2c 33 32 2c  |,JC%,_U%+332,32,|
00016560  b9 29 3a 6c 25 3d 5f 55  25 21 33 33 32 2b 64 25  |.):l%=_U%!332+d%|
00016570  3a 6c 25 21 30 3d 62 25  3a 6c 25 21 34 3d 4a 43  |:l%!0=b%:l%!4=JC|
00016580  25 3a 6c 25 21 38 3d 43  46 25 3a 6c 25 21 26 43  |%:l%!8=CF%:l%!&C|
00016590  3d 73 42 25 3a 6c 25 21  31 36 3d 49 44 25 3a 6c  |=sB%:l%!16=ID%:l|
000165a0  25 21 32 30 3d 46 45 25  3a e7 51 24 3c 3e 22 22  |%!20=FE%:.Q$<>""|
000165b0  8c 0d 1a 3d 32 6c 25 21  32 34 3d a4 73 68 65 6c  |...=2l%!24=.shel|
000165c0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
000165d0  28 a9 51 24 2b 31 29 3a  24 28 6c 25 21 32 34 29  |(.Q$+1):$(l%!24)|
000165e0  3d 51 24 0d 1a 3f 0d cc  6c 25 21 32 34 3d 2d 31  |=Q$..?..l%!24=-1|
000165f0  0d 1a 41 3a cd 3a 6c 25  21 32 38 3d 30 3a e7 5f  |..A:.:l%!28=0:._|
00016600  55 25 21 33 32 38 3d 30  8c 5f 55 25 21 33 32 38  |U%!328=0._U%!328|
00016610  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00016620  6b 46 65 74 63 68 28 32  34 29 0d 1a 47 73 f2 73  |kFetch(24)..Gs.s|
00016630  68 65 6c 6c 5f 41 74 74  61 63 68 43 6c 69 63 6b  |hell_AttachClick|
00016640  53 65 6c 65 63 74 28 62  25 2c 4a 43 25 2c 22 5f  |Select(b%,JC%,"_|
00016650  73 68 65 6c 6c 5f 69 63  6f 6e 64 72 61 67 22 29  |shell_icondrag")|
00016660  3a f2 73 68 65 6c 6c 5f  41 74 74 61 63 68 43 6c  |:.shell_AttachCl|
00016670  69 63 6b 53 65 6c 65 63  74 28 62 25 2c 43 46 25  |ickSelect(b%,CF%|
00016680  2c 22 5f 73 68 65 6c 6c  5f 69 63 6f 6e 64 72 61  |,"_shell_icondra|
00016690  67 32 22 29 3a e7 49 44  25 3e 3d 30 8c 0d 1a 4c  |g2"):.ID%>=0...L|
000166a0  e7 f2 73 68 65 6c 6c 5f  41 74 74 61 63 68 43 6c  |..shell_AttachCl|
000166b0  69 63 6b 53 65 6c 65 63  74 28 62 25 2c 49 44 25  |ickSelect(b%,ID%|
000166c0  2c 22 5f 73 68 65 6c 6c  5f 73 6c 69 64 65 72 62  |,"_shell_sliderb|
000166d0  75 6d 70 75 70 53 22 29  3a f2 73 68 65 6c 6c 5f  |umpupS"):.shell_|
000166e0  41 74 74 61 63 68 43 6c  69 63 6b 53 65 6c 65 63  |AttachClickSelec|
000166f0  74 28 62 25 2c 46 45 25  2c 22 5f 73 68 65 6c 6c  |t(b%,FE%,"_shell|
00016700  5f 73 6c 69 64 65 72 62  75 6d 70 64 6f 77 6e 53  |_sliderbumpdownS|
00016710  22 29 3a f2 73 68 65 6c  6c 5f 41 74 74 61 63 68  |"):.shell_Attach|
00016720  43 6c 69 63 6b 41 64 6a  75 73 74 28 62 25 2c 49  |ClickAdjust(b%,I|
00016730  44 25 2c 22 5f 73 68 65  6c 6c 5f 73 6c 69 64 65  |D%,"_shell_slide|
00016740  72 62 75 6d 70 64 6f 77  6e 41 22 29 3a f2 73 68  |rbumpdownA"):.sh|
00016750  65 6c 6c 5f 41 74 74 61  63 68 43 6c 69 63 6b 41  |ell_AttachClickA|
00016760  64 6a 75 73 74 28 62 25  2c 46 45 25 2c 22 5f 73  |djust(b%,FE%,"_s|
00016770  68 65 6c 6c 5f 73 6c 69  64 65 72 62 75 6d 70 75  |hell_sliderbumpu|
00016780  70 41 22 29 0d 1a 50 09  cd 3a 3d 64 25 0d 1a 57  |pA")..P..:=d%..W|
00016790  39 dd a4 5f 73 68 65 6c  6c 5f 69 63 6f 6e 64 72  |9.._shell_icondr|
000167a0  61 67 28 62 25 2c 66 25  29 3a f2 73 68 65 6c 6c  |ag(b%,f%):.shell|
000167b0  5f 49 63 6f 6e 44 72 61  67 42 6f 78 28 62 25 2c  |_IconDragBox(b%,|
000167c0  66 25 29 3a 3d 30 0d 1a  5e 87 dd a4 5f 73 68 65  |f%):=0..^..._she|
000167d0  6c 6c 5f 69 63 6f 6e 64  72 61 67 32 28 62 25 2c  |ll_icondrag2(b%,|
000167e0  66 25 29 3a ea 46 42 25  2c 6c 25 2c 59 41 25 2c  |f%):.FB%,l%,YA%,|
000167f0  6a 25 2c 4a 43 25 3a 6c  25 3d 5f 55 25 21 33 33  |j%,JC%:l%=_U%!33|
00016800  32 3a 46 42 25 3d 21 6c  25 3a 59 41 25 3d 34 3a  |2:FB%=!l%:YA%=4:|
00016810  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00016820  45 76 65 6e 74 20 62 6c  6f 63 6b 20 73 69 7a 65  |Event block size|
00016830  20 69 73 20 22 2b c3 46  42 25 29 3a f5 3a e7 6c  | is "+.FB%):.:.l|
00016840  25 21 28 59 41 25 2b 38  29 3d 66 25 8c 0d 1a 67  |%!(YA%+8)=f%...g|
00016850  17 6a 25 3d b9 3a 4a 43  25 3d 6c 25 21 28 59 41  |.j%=.:JC%=l%!(YA|
00016860  25 2b 34 29 0d 1a 68 38  cd 3a 59 41 25 2b 3d 33  |%+4)..h8.:YA%+=3|
00016870  32 3a fd 59 41 25 3e 3d  46 42 25 84 6a 25 3a f2  |2:.YA%>=FB%.j%:.|
00016880  73 68 65 6c 6c 5f 49 63  6f 6e 44 72 61 67 42 6f  |shell_IconDragBo|
00016890  78 28 62 25 2c 4a 43 25  29 3a 3d 30 0d 1a 71 49  |x(b%,JC%):=0..qI|
000168a0  dd a4 5f 73 68 65 6c 6c  5f 73 6c 69 64 65 72 62  |.._shell_sliderb|
000168b0  75 6d 70 75 70 53 28 62  25 2c 66 25 29 3a ea 6f  |umpupS(b%,f%):.o|
000168c0  25 3a 6f 25 3d a4 5f 73  68 65 6c 6c 5f 73 6c 69  |%:o%=._shell_sli|
000168d0  64 65 72 62 75 6d 70 75  70 28 62 25 2c 66 25 2c  |derbumpup(b%,f%,|
000168e0  34 29 3a 3d 30 0d 1a 79  49 dd a4 5f 73 68 65 6c  |4):=0..yI.._shel|
000168f0  6c 5f 73 6c 69 64 65 72  62 75 6d 70 75 70 41 28  |l_sliderbumpupA(|
00016900  62 25 2c 66 25 29 3a ea  6f 25 3a 6f 25 3d a4 5f  |b%,f%):.o%:o%=._|
00016910  73 68 65 6c 6c 5f 73 6c  69 64 65 72 62 75 6d 70  |shell_sliderbump|
00016920  75 70 28 62 25 2c 66 25  2c 31 29 3a 3d 30 0d 1a  |up(b%,f%,1):=0..|
00016930  81 4d dd a4 5f 73 68 65  6c 6c 5f 73 6c 69 64 65  |.M.._shell_slide|
00016940  72 62 75 6d 70 64 6f 77  6e 53 28 62 25 2c 66 25  |rbumpdownS(b%,f%|
00016950  29 3a ea 6f 25 3a 6f 25  3d a4 5f 73 68 65 6c 6c  |):.o%:o%=._shell|
00016960  5f 73 6c 69 64 65 72 62  75 6d 70 64 6f 77 6e 28  |_sliderbumpdown(|
00016970  62 25 2c 66 25 2c 34 29  3a 3d 30 0d 1a 89 4d dd  |b%,f%,4):=0...M.|
00016980  a4 5f 73 68 65 6c 6c 5f  73 6c 69 64 65 72 62 75  |._shell_sliderbu|
00016990  6d 70 64 6f 77 6e 41 28  62 25 2c 66 25 29 3a ea  |mpdownA(b%,f%):.|
000169a0  6f 25 3a 6f 25 3d a4 5f  73 68 65 6c 6c 5f 73 6c  |o%:o%=._shell_sl|
000169b0  69 64 65 72 62 75 6d 70  64 6f 77 6e 28 62 25 2c  |iderbumpdown(b%,|
000169c0  66 25 2c 31 29 3a 3d 30  0d 1a 91 c6 dd a4 5f 73  |f%,1):=0......_s|
000169d0  68 65 6c 6c 5f 73 6c 69  64 65 72 62 75 6d 70 75  |hell_sliderbumpu|
000169e0  70 28 62 25 2c 66 25 2c  59 42 25 29 3a ea 46 42  |p(b%,f%,YB%):.FB|
000169f0  25 2c 6c 25 2c 59 41 25  2c 6a 25 2c 65 25 2c 5f  |%,l%,YA%,j%,e%,_|
00016a00  76 61 6c 75 65 25 2c 75  42 25 3a f2 73 68 65 6c  |value%,uB%:.shel|
00016a10  6c 5f 54 72 61 63 65 66  30 28 22 49 6e 20 73 6c  |l_Tracef0("In sl|
00016a20  69 64 65 72 62 75 6d 70  75 70 20 72 6f 75 74 69  |iderbumpup routi|
00016a30  6e 65 22 29 3a 6c 25 3d  5f 55 25 21 33 33 32 3a  |ne"):l%=_U%!332:|
00016a40  46 42 25 3d 21 6c 25 3a  59 41 25 3d 34 3a f2 73  |FB%=!l%:YA%=4:.s|
00016a50  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 45 76  |hell_Tracef0("Ev|
00016a60  65 6e 74 20 62 6c 6f 63  6b 20 73 69 7a 65 20 69  |ent block size i|
00016a70  73 20 22 2b c3 46 42 25  29 3a e7 59 42 25 3d 34  |s "+.FB%):.YB%=4|
00016a80  8c 75 42 25 3d 31 36 8b  75 42 25 3d 32 30 0d 1a  |.uB%=16.uB%=20..|
00016a90  99 17 f5 3a e7 6c 25 21  28 59 41 25 2b 75 42 25  |...:.l%!(YA%+uB%|
00016aa0  29 3d 66 25 8c 0d 1a 9c  83 6a 25 3d b9 3a 65 25  |)=f%.....j%=.:e%|
00016ab0  3d 59 41 25 3a 5f 76 61  6c 75 65 25 3d 6c 25 21  |=YA%:_value%=l%!|
00016ac0  28 65 25 2b 32 38 29 3a  f2 73 68 65 6c 6c 5f 54  |(e%+28):.shell_T|
00016ad0  72 61 63 65 66 30 28 22  43 75 72 72 65 6e 74 20  |racef0("Current |
00016ae0  73 6c 69 64 65 72 20 76  61 6c 75 65 20 3d 20 22  |slider value = "|
00016af0  2b c3 5f 76 61 6c 75 65  25 29 3a f2 73 68 65 6c  |+._value%):.shel|
00016b00  6c 5f 54 72 61 63 65 66  30 28 22 53 6c 69 64 65  |l_Tracef0("Slide|
00016b10  72 20 68 61 6e 64 6c 65  20 69 73 20 20 20 20 20  |r handle is     |
00016b20  3d 20 22 2b c3 65 25 29  0d 1a 9f 1f cd 3a 59 41  |= "+.e%).....:YA|
00016b30  25 2b 3d 33 32 3a fd 59  41 25 3e 3d 46 42 25 84  |%+=32:.YA%>=FB%.|
00016b40  6a 25 3a e7 6a 25 8c 0d  1a a3 27 f2 73 68 65 6c  |j%:.j%....'.shel|
00016b50  6c 5f 53 6c 69 64 65 72  53 65 74 56 61 6c 75 65  |l_SliderSetValue|
00016b60  28 65 25 2c 5f 76 61 6c  75 65 25 2b 31 29 0d 1a  |(e%,_value%+1)..|
00016b70  a4 08 cd 3a 3d 30 0d 1a  aa ca dd a4 5f 73 68 65  |...:=0......_she|
00016b80  6c 6c 5f 73 6c 69 64 65  72 62 75 6d 70 64 6f 77  |ll_sliderbumpdow|
00016b90  6e 28 62 25 2c 66 25 2c  59 42 25 29 3a ea 46 42  |n(b%,f%,YB%):.FB|
00016ba0  25 2c 6c 25 2c 59 41 25  2c 6a 25 2c 65 25 2c 5f  |%,l%,YA%,j%,e%,_|
00016bb0  76 61 6c 75 65 25 2c 75  42 25 3a f2 73 68 65 6c  |value%,uB%:.shel|
00016bc0  6c 5f 54 72 61 63 65 66  30 28 22 49 6e 20 73 6c  |l_Tracef0("In sl|
00016bd0  69 64 65 72 62 75 6d 70  64 6f 77 6e 20 72 6f 75  |iderbumpdown rou|
00016be0  74 69 6e 65 22 29 3a 6c  25 3d 5f 55 25 21 33 33  |tine"):l%=_U%!33|
00016bf0  32 3a 46 42 25 3d 21 6c  25 3a 59 41 25 3d 34 3a  |2:FB%=!l%:YA%=4:|
00016c00  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00016c10  45 76 65 6e 74 20 62 6c  6f 63 6b 20 73 69 7a 65  |Event block size|
00016c20  20 69 73 20 22 2b c3 46  42 25 29 3a e7 59 42 25  | is "+.FB%):.YB%|
00016c30  3d 34 8c 75 42 25 3d 32  30 8b 75 42 25 3d 31 36  |=4.uB%=20.uB%=16|
00016c40  0d 1a b2 17 f5 3a e7 6c  25 21 28 59 41 25 2b 75  |.....:.l%!(YA%+u|
00016c50  42 25 29 3d 66 25 8c 0d  1a b5 83 6a 25 3d b9 3a  |B%)=f%.....j%=.:|
00016c60  65 25 3d 59 41 25 3a 5f  76 61 6c 75 65 25 3d 6c  |e%=YA%:_value%=l|
00016c70  25 21 28 65 25 2b 32 38  29 3a f2 73 68 65 6c 6c  |%!(e%+28):.shell|
00016c80  5f 54 72 61 63 65 66 30  28 22 43 75 72 72 65 6e  |_Tracef0("Curren|
00016c90  74 20 73 6c 69 64 65 72  20 76 61 6c 75 65 20 3d  |t slider value =|
00016ca0  20 22 2b c3 5f 76 61 6c  75 65 25 29 3a f2 73 68  | "+._value%):.sh|
00016cb0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 53 6c 69  |ell_Tracef0("Sli|
00016cc0  64 65 72 20 68 61 6e 64  6c 65 20 69 73 20 20 20  |der handle is   |
00016cd0  20 20 3d 20 22 2b c3 65  25 29 0d 1a b8 1f cd 3a  |  = "+.e%).....:|
00016ce0  59 41 25 2b 3d 33 32 3a  fd 59 41 25 3e 3d 46 42  |YA%+=32:.YA%>=FB|
00016cf0  25 84 6a 25 3a e7 6a 25  8c 0d 1a bc 27 f2 73 68  |%.j%:.j%....'.sh|
00016d00  65 6c 6c 5f 53 6c 69 64  65 72 53 65 74 56 61 6c  |ell_SliderSetVal|
00016d10  75 65 28 65 25 2c 5f 76  61 6c 75 65 25 2d 31 29  |ue(e%,_value%-1)|
00016d20  0d 1a bd 08 cd 3a 3d 30  0d 1a c3 ae dd f2 73 68  |.....:=0......sh|
00016d30  65 6c 6c 5f 44 65 6c 65  74 65 45 76 65 6e 74 53  |ell_DeleteEventS|
00016d40  6c 69 64 65 72 28 62 25  2c 66 25 29 3a ea 64 25  |lider(b%,f%):.d%|
00016d50  2c 61 25 2c 70 25 2c 68  25 2c 63 25 3a 68 25 3d  |,a%,p%,h%,c%:h%=|
00016d60  5f 55 25 21 33 33 32 3a  f5 3a 64 25 3d a4 73 68  |_U%!332:.:d%=.sh|
00016d70  65 6c 6c 5f 47 65 74 45  76 65 6e 74 4c 69 73 74  |ell_GetEventList|
00016d80  4f 66 66 73 65 74 32 28  62 25 2c 66 25 2c 5f 55  |Offset2(b%,f%,_U|
00016d90  25 2b 33 33 32 2c 33 32  2c a3 29 3a f2 73 68 65  |%+332,32,.):.she|
00016da0  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 65 6c 65  |ll_Tracef0("Dele|
00016db0  74 65 45 76 65 6e 74 53  6c 69 64 65 72 3a 6f 66  |teEventSlider:of|
00016dc0  66 73 65 74 25 20 3d 20  22 2b c3 64 25 29 3a e7  |fset% = "+.d%):.|
00016dd0  64 25 3e 3d 30 8c 0d 1a  d0 0b e7 66 25 3d 2d 31  |d%>=0......f%=-1|
00016de0  8c 0d 1a d2 66 f2 73 68  65 6c 6c 5f 54 72 61 63  |....f.shell_Trac|
00016df0  65 66 30 28 22 44 65 6c  65 74 65 45 76 65 6e 74  |ef0("DeleteEvent|
00016e00  53 6c 69 64 65 72 3a 44  65 6c 65 74 69 6e 67 20  |Slider:Deleting |
00016e10  53 6c 69 64 65 72 20 45  76 65 6e 74 20 28 61 6c  |Slider Event (al|
00016e20  6c 20 65 76 65 6e 74 73  20 66 6f 72 20 77 69 6e  |l events for win|
00016e30  64 6f 77 20 68 61 6e 64  6c 65 20 26 22 2b c3 7e  |dow handle &"+.~|
00016e40  62 25 2b 22 29 22 29 0d  1a d4 74 cc f2 73 68 65  |b%+")")...t..she|
00016e50  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 65 6c 65  |ll_Tracef0("Dele|
00016e60  74 65 45 76 65 6e 74 53  6c 69 64 65 72 3a 44 65  |teEventSlider:De|
00016e70  6c 65 74 69 6e 67 20 53  6c 69 64 65 72 20 45 76  |leting Slider Ev|
00016e80  65 6e 74 20 28 77 69 6e  64 6f 77 20 68 61 6e 64  |ent (window hand|
00016e90  6c 65 20 77 61 73 20 26  22 2b c3 7e 62 25 2b 22  |le was &"+.~b%+"|
00016ea0  20 69 63 6f 6e 20 68 61  6e 64 6c 65 20 77 61 73  | icon handle was|
00016eb0  20 22 2b c3 66 25 2b 22  29 22 29 0d 1a d8 17 cd  | "+.f%+")").....|
00016ec0  3a 70 25 3d 21 68 25 3a  e7 64 25 3d 70 25 2d 33  |:p%=!h%:.d%=p%-3|
00016ed0  32 8c 0d 1a dd 0a e7 64  25 3d 30 8c 0d 1a df 92  |2......d%=0.....|
00016ee0  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00016ef0  52 65 74 75 72 6e 28 68  25 2b 64 25 2b 32 34 29  |Return(h%+d%+24)|
00016f00  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00016f10  6b 52 65 74 75 72 6e 28  5f 55 25 21 33 33 32 29  |kReturn(_U%!332)|
00016f20  3a 5f 55 25 21 33 33 32  3d 30 3a f2 73 68 65 6c  |:_U%!332=0:.shel|
00016f30  6c 5f 54 72 61 63 65 66  30 28 22 44 65 6c 65 74  |l_Tracef0("Delet|
00016f40  65 45 76 65 6e 74 53 6c  69 64 65 72 3a 4e 6f 20  |eEventSlider:No |
00016f50  53 6c 69 64 65 72 20 65  76 65 6e 74 73 20 6e 6f  |Slider events no|
00016f60  77 20 72 65 67 69 73 74  65 72 65 64 22 29 0d 1a  |w registered")..|
00016f70  e5 43 cc 5f 55 25 21 33  33 32 3d a4 73 68 65 6c  |.C._U%!332=.shel|
00016f80  6c 5f 48 65 61 70 42 6c  6f 63 6b 45 78 74 65 6e  |l_HeapBlockExten|
00016f90  64 28 5f 55 25 21 33 33  32 2c 2d 33 32 29 3a 68  |d(_U%!332,-32):h|
00016fa0  25 3d 5f 55 25 21 33 33  32 3a 21 68 25 2d 3d 33  |%=_U%!332:!h%-=3|
00016fb0  32 0d 1a ea 05 cd 0d 1a  eb 39 cc 61 25 3d 68 25  |2........9.a%=h%|
00016fc0  2b 64 25 3a 61 25 21 30  3d 30 3a 61 25 21 34 3d  |+d%:a%!0=0:a%!4=|
00016fd0  30 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |0:.shell_HeapBlo|
00016fe0  63 6b 52 65 74 75 72 6e  28 61 25 2b 32 34 29 0d  |ckReturn(a%+24).|
00016ff0  1a f0 05 cd 0d 1a f1 0d  cd 3a fd 64 25 3c 30 3a  |.........:.d%<0:|
00017000  e1 0d 1a fa f0 dd f2 73  68 65 6c 6c 5f 4f 70 65  |.......shell_Ope|
00017010  6e 57 69 6e 64 6f 77 44  79 6e 61 6d 69 63 28 6c  |nWindowDynamic(l|
00017020  41 24 2c 4c 41 24 2c 4d  41 24 29 3a ea 76 25 2c  |A$,LA$,MA$):.v%,|
00017030  67 41 25 2c 66 41 25 2c  71 25 3a f2 73 68 65 6c  |gA%,fA%,q%:.shel|
00017040  6c 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 28 6c  |l_CreateWindow(l|
00017050  41 24 2c 76 25 29 3a f2  73 68 65 6c 6c 5f 54 72  |A$,v%):.shell_Tr|
00017060  61 63 65 66 30 28 22 4f  70 65 6e 57 69 6e 64 6f  |acef0("OpenWindo|
00017070  77 44 79 6e 61 6d 69 63  3a 43 72 65 61 74 69 6e  |wDynamic:Creatin|
00017080  67 20 6e 65 77 20 64 79  6e 61 6d 69 63 20 77 69  |g new dynamic wi|
00017090  6e 64 6f 77 20 28 68 61  6e 64 6c 65 20 69 73 20  |ndow (handle is |
000170a0  26 22 2b c3 7e 76 25 2b  22 29 22 29 3a 71 25 3d  |&"+.~v%+")"):q%=|
000170b0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000170c0  46 65 74 63 68 28 33 36  29 3a 71 25 21 30 3d 76  |Fetch(36):q%!0=v|
000170d0  25 3a c8 99 26 34 30 30  43 42 2c 2c 71 25 3a 67  |%:..&400CB,,q%:g|
000170e0  41 25 3d 28 71 25 21 34  2d 71 25 21 26 43 29 2f  |A%=(q%!4-q%!&C)/|
000170f0  32 0d 1b 05 3d 66 41 25  3d 28 71 25 21 31 36 2d  |2...=fA%=(q%!16-|
00017100  71 25 21 38 29 2f 32 3a  f2 73 68 65 6c 6c 5f 48  |q%!8)/2:.shell_H|
00017110  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 71  |eapBlockReturn(q|
00017120  25 29 3a e7 5f 55 25 21  32 30 3c 3e 30 8c 0d 1b  |%):._U%!20<>0...|
00017130  09 2f c8 99 26 34 30 30  44 34 2c 2c 2d 31 3a 6f  |./..&400D4,,-1:o|
00017140  25 3d a4 73 68 65 6c 6c  5f 44 65 6c 65 74 65 57  |%=.shell_DeleteW|
00017150  69 6e 64 6f 77 28 5f 55  25 21 32 30 29 0d 1b 0b  |indow(_U%!20)...|
00017160  19 cd 3a 5f 55 25 21 32  30 3d 62 25 3a e7 4c 41  |..:_U%!20=b%:.LA|
00017170  24 3c 3e 22 22 8c 0d 1b  0f 60 f2 73 68 65 6c 6c  |$<>""....`.shell|
00017180  5f 54 72 61 63 65 66 30  28 22 4f 70 65 6e 57 69  |_Tracef0("OpenWi|
00017190  6e 64 6f 77 44 79 6e 61  6d 69 63 3a 43 61 6c 6c  |ndowDynamic:Call|
000171a0  69 6e 67 20 50 72 65 2d  4f 70 65 6e 20 46 4e 20  |ing Pre-Open FN |
000171b0  27 22 2b 4c 41 24 2b 22  27 22 29 3a 6f 25 3d a0  |'"+LA$+"'"):o%=.|
000171c0  28 22 46 4e 22 2b 4c 41  24 2b 22 28 22 2b c3 76  |("FN"+LA$+"("+.v|
000171d0  25 2b 22 29 22 29 0d 1b  12 37 cc f2 73 68 65 6c  |%+")")...7..shel|
000171e0  6c 5f 54 72 61 63 65 66  30 28 22 4f 70 65 6e 57  |l_Tracef0("OpenW|
000171f0  69 6e 64 6f 77 44 79 6e  61 6d 69 63 3a 4e 6f 20  |indowDynamic:No |
00017200  50 72 65 2d 4f 70 65 6e  20 46 4e 22 29 0d 1b 16  |Pre-Open FN")...|
00017210  35 cd 3a f2 73 68 65 6c  6c 5f 4f 70 65 6e 57 69  |5.:.shell_OpenWi|
00017220  6e 64 6f 77 44 79 6e 61  6d 69 63 32 28 76 25 2c  |ndowDynamic2(v%,|
00017230  67 41 25 2c 66 41 25 29  3a e7 4d 41 24 3c 3e 22  |gA%,fA%):.MA$<>"|
00017240  22 8c 0d 1b 1a 61 f2 73  68 65 6c 6c 5f 54 72 61  |"....a.shell_Tra|
00017250  63 65 66 30 28 22 4f 70  65 6e 57 69 6e 64 6f 77  |cef0("OpenWindow|
00017260  44 79 6e 61 6d 69 63 3a  43 61 6c 6c 69 6e 67 20  |Dynamic:Calling |
00017270  50 6f 73 74 2d 4f 70 65  6e 20 46 4e 20 27 22 2b  |Post-Open FN '"+|
00017280  4d 41 24 2b 22 27 22 29  3a 6f 25 3d a0 28 22 46  |MA$+"'"):o%=.("F|
00017290  4e 22 2b 4d 41 24 2b 22  28 22 2b c3 76 25 2b 22  |N"+MA$+"("+.v%+"|
000172a0  29 22 29 0d 1b 1d 38 cc  f2 73 68 65 6c 6c 5f 54  |)")...8..shell_T|
000172b0  72 61 63 65 66 30 28 22  4f 70 65 6e 57 69 6e 64  |racef0("OpenWind|
000172c0  6f 77 44 79 6e 61 6d 69  63 3a 4e 6f 20 50 6f 73  |owDynamic:No Pos|
000172d0  74 2d 4f 70 65 6e 20 46  4e 22 29 0d 1b 21 07 cd  |t-Open FN")..!..|
000172e0  3a e1 0d 1b 27 32 dd f2  73 68 65 6c 6c 5f 49 6e  |:...'2..shell_In|
000172f0  74 65 72 61 63 74 69 76  65 48 65 6c 70 4f 6e 3a  |teractiveHelpOn:|
00017300  e7 28 5f 55 25 21 26 36  34 80 31 3c 3c 26 43 29  |.(_U%!&64.1<<&C)|
00017310  3c 3e 30 8c 0d 1b 29 1a  cc 5f 55 25 21 26 36 34  |<>0...).._U%!&64|
00017320  3d 5f 55 25 21 26 36 34  82 31 3c 3c 26 43 0d 1b  |=_U%!&64.1<<&C..|
00017330  2b 07 cd 3a e1 0d 1b 31  33 dd f2 73 68 65 6c 6c  |+..:...13..shell|
00017340  5f 49 6e 74 65 72 61 63  74 69 76 65 48 65 6c 70  |_InteractiveHelp|
00017350  4f 66 66 3a e7 28 5f 55  25 21 26 36 34 80 31 3c  |Off:.(_U%!&64.1<|
00017360  3c 26 43 29 3c 3e 30 8c  0d 1b 33 19 5f 55 25 21  |<&C)<>0...3._U%!|
00017370  26 36 34 3d 5f 55 25 21  26 36 34 82 31 3c 3c 26  |&64=_U%!&64.1<<&|
00017380  43 0d 1b 34 07 cd 3a e1  0d 1b 3a 48 dd f2 73 68  |C..4..:...:H..sh|
00017390  65 6c 6c 5f 4d 65 73 73  61 67 65 53 65 6e 64 50  |ell_MessageSendP|
000173a0  72 69 6e 74 53 61 76 65  28 48 45 25 2c 47 46 25  |rintSave(HE%,GF%|
000173b0  29 3a e7 47 46 25 3e 31  8c 5f 55 25 21 33 33 36  |):.GF%>1._U%!336|
000173c0  3d 47 46 25 2d 31 8b 5f  55 25 21 33 33 36 3d 30  |=GF%-1._U%!336=0|
000173d0  0d 1b 3c 21 f2 73 68 65  6c 6c 5f 44 6f 53 65 6e  |..<!.shell_DoSen|
000173e0  64 50 72 69 6e 74 53 61  76 65 28 48 45 25 29 3a  |dPrintSave(HE%):|
000173f0  e1 0d 1b 42 fc dd f2 73  68 65 6c 6c 5f 44 6f 53  |...B...shell_DoS|
00017400  65 6e 64 50 72 69 6e 74  53 61 76 65 28 48 45 25  |endPrintSave(HE%|
00017410  29 3a ea 45 41 25 3a 45  41 25 3d a4 73 68 65 6c  |):.EA%:EA%=.shel|
00017420  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00017430  28 32 35 36 29 3a 45 41  25 21 30 3d 32 35 36 3a  |(256):EA%!0=256:|
00017440  45 41 25 21 26 43 3d 30  3a 45 41 25 21 31 36 3d  |EA%!&C=0:EA%!16=|
00017450  26 38 30 31 34 32 3a 45  41 25 21 32 30 3d 30 3a  |&80142:EA%!20=0:|
00017460  45 41 25 21 32 34 3d 30  3a 45 41 25 21 32 38 3d  |EA%!24=0:EA%!28=|
00017470  30 3a 45 41 25 21 33 32  3d 30 3a 45 41 25 21 33  |0:EA%!32=0:EA%!3|
00017480  36 3d 32 35 36 3a 45 41  25 21 34 30 3d 48 45 25  |6=256:EA%!40=HE%|
00017490  3a 24 28 45 41 25 2b 34  34 29 3d 22 50 72 69 6e  |:$(EA%+44)="Prin|
000174a0  74 4f 75 74 22 2b bd 28  30 29 3a f2 73 68 65 6c  |tOut"+.(0):.shel|
000174b0  6c 5f 54 72 61 63 65 66  30 28 22 4d 65 73 73 61  |l_Tracef0("Messa|
000174c0  67 65 53 65 6e 64 50 72  69 6e 74 53 61 76 65 3a  |geSendPrintSave:|
000174d0  53 65 6e 64 69 6e 67 20  50 72 69 6e 74 53 61 76  |Sending PrintSav|
000174e0  65 20 6d 65 73 73 61 67  65 2e 2e 22 29 0d 1b 52  |e message..")..R|
000174f0  3f c8 99 26 34 30 30 45  37 2c 31 38 2c 45 41 25  |?..&400E7,18,EA%|
00017500  2c 45 41 25 21 32 30 2c  45 41 25 21 32 34 3a f2  |,EA%!20,EA%!24:.|
00017510  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00017520  65 74 75 72 6e 28 45 41  25 29 3a e1 0d 1b 59 5f  |eturn(EA%):...Y_|
00017530  dd f2 73 68 65 6c 6c 5f  48 61 6e 64 6c 65 50 72  |..shell_HandlePr|
00017540  69 6e 74 46 69 6c 65 28  5f 51 25 29 3a f2 73 68  |intFile(_Q%):.sh|
00017550  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 48 61 6e  |ell_Tracef0("Han|
00017560  64 6c 65 50 72 69 6e 74  46 69 6c 65 3a 4d 65 73  |dlePrintFile:Mes|
00017570  73 61 67 65 5f 50 72 69  6e 74 46 69 6c 65 20 72  |sage_PrintFile r|
00017580  65 63 65 69 76 65 64 22  29 3a e1 0d 1b 62 62 dd  |eceived"):...bb.|
00017590  f2 73 68 65 6c 6c 5f 48  61 6e 64 6c 65 50 72 69  |.shell_HandlePri|
000175a0  6e 74 45 72 72 6f 72 28  5f 51 25 29 3a f2 73 68  |ntError(_Q%):.sh|
000175b0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 48 61 6e  |ell_Tracef0("Han|
000175c0  64 6c 65 50 72 69 6e 74  45 72 72 6f 72 3a 4d 65  |dlePrintError:Me|
000175d0  73 73 61 67 65 5f 50 72  69 6e 74 45 72 72 6f 72  |ssage_PrintError|
000175e0  20 72 65 63 65 69 76 65  64 22 29 3a e1 0d 1b 6b  | received"):...k|
000175f0  68 dd f2 73 68 65 6c 6c  5f 48 61 6e 64 6c 65 50  |h..shell_HandleP|
00017600  72 69 6e 74 54 79 70 65  4f 64 64 28 5f 51 25 29  |rintTypeOdd(_Q%)|
00017610  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00017620  22 48 61 6e 64 6c 65 50  72 69 6e 74 54 79 70 65  |"HandlePrintType|
00017630  4f 64 64 3a 4d 65 73 73  61 67 65 5f 50 72 69 6e  |Odd:Message_Prin|
00017640  74 54 79 70 65 4f 64 64  20 72 65 63 65 69 76 65  |tTypeOdd receive|
00017650  64 22 29 3a e1 0d 1b 74  62 dd f2 73 68 65 6c 6c  |d"):...tb..shell|
00017660  5f 48 61 6e 64 6c 65 53  65 74 50 72 69 6e 74 65  |_HandleSetPrinte|
00017670  72 28 5f 51 25 29 3a f2  73 68 65 6c 6c 5f 54 72  |r(_Q%):.shell_Tr|
00017680  61 63 65 66 30 28 22 48  61 6e 64 6c 65 53 65 74  |acef0("HandleSet|
00017690  50 72 69 6e 74 65 72 3a  4d 65 73 73 61 67 65 5f  |Printer:Message_|
000176a0  53 65 74 50 72 69 6e 74  65 72 20 72 65 63 65 69  |SetPrinter recei|
000176b0  76 65 64 22 29 3a e1 0d  1b 7d 3f dd a4 73 68 65  |ved"):...}?..she|
000176c0  6c 6c 5f 50 72 69 6e 74  65 72 44 72 69 76 65 72  |ll_PrinterDriver|
000176d0  4c 6f 61 64 65 64 3a ea  61 42 25 3a c8 99 26 41  |Loaded:.aB%:..&A|
000176e0  30 31 34 30 b8 3b 61 42  25 3a e7 61 42 25 80 31  |0140.;aB%:.aB%.1|
000176f0  8c 3d a3 8b 3d b9 0d 1b  85 60 dd a4 73 68 65 6c  |.=..=....`..shel|
00017700  6c 5f 50 72 69 6e 74 65  72 44 72 69 76 65 72 47  |l_PrinterDriverG|
00017710  65 74 4e 61 6d 65 3a ea  61 42 25 2c 48 46 25 3a  |etName:.aB%,HF%:|
00017720  c8 99 26 41 30 31 34 30  b8 2c 2c 2c 2c 48 46 25  |..&A0140.,,,,HF%|
00017730  3b 61 42 25 3a e7 61 42  25 80 31 8c 3d 22 22 8b  |;aB%:.aB%.1.="".|
00017740  3d a4 73 68 65 6c 6c 5f  47 65 74 53 74 72 69 6e  |=.shell_GetStrin|
00017750  67 28 48 46 25 29 0d 1b  8d 97 dd a4 73 68 65 6c  |g(HF%)......shel|
00017760  6c 5f 49 63 6f 6e 47 65  74 42 47 43 6f 6c 6f 75  |l_IconGetBGColou|
00017770  72 28 62 25 2c 66 25 29  3a ea 6f 41 25 2c 6b 25  |r(b%,f%):.oA%,k%|
00017780  3a 6b 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:k%=.shell_HeapB|
00017790  6c 6f 63 6b 46 65 74 63  68 28 34 30 29 3a 6b 25  |lockFetch(40):k%|
000177a0  21 30 3d 62 25 3a 6b 25  21 34 3d 66 25 3a c8 99  |!0=b%:k%!4=f%:..|
000177b0  26 34 30 30 43 45 2c 2c  6b 25 3a 6f 41 25 3d 28  |&400CE,,k%:oA%=(|
000177c0  6b 25 21 32 34 3e 3e 32  38 29 80 26 46 3a f2 73  |k%!24>>28).&F:.s|
000177d0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
000177e0  74 75 72 6e 28 6b 25 29  3a 3d 6f 41 25 0d 1b 9a  |turn(k%):=oA%...|
000177f0  97 dd a4 73 68 65 6c 6c  5f 49 63 6f 6e 47 65 74  |...shell_IconGet|
00017800  46 47 43 6f 6c 6f 75 72  28 62 25 2c 66 25 29 3a  |FGColour(b%,f%):|
00017810  ea 6f 41 25 2c 6b 25 3a  6b 25 3d a4 73 68 65 6c  |.oA%,k%:k%=.shel|
00017820  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00017830  28 34 30 29 3a 6b 25 21  30 3d 62 25 3a 6b 25 21  |(40):k%!0=b%:k%!|
00017840  34 3d 66 25 3a c8 99 26  34 30 30 43 45 2c 2c 6b  |4=f%:..&400CE,,k|
00017850  25 3a 6f 41 25 3d 28 6b  25 21 32 34 3e 3e 32 34  |%:oA%=(k%!24>>24|
00017860  29 80 26 46 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |).&F:.shell_Heap|
00017870  42 6c 6f 63 6b 52 65 74  75 72 6e 28 6b 25 29 3a  |BlockReturn(k%):|
00017880  3d 6f 41 25 0d 1b a7 5f  dd f2 73 68 65 6c 6c 5f  |=oA%..._..shell_|
00017890  41 74 74 61 63 68 50 6f  70 75 70 4d 65 6e 75 28  |AttachPopupMenu(|
000178a0  62 25 2c 63 42 25 2c 73  42 25 2c 6d 25 2c 51 24  |b%,cB%,sB%,m%,Q$|
000178b0  29 3a f2 73 68 65 6c 6c  5f 44 6f 41 74 74 61 63  |):.shell_DoAttac|
000178c0  68 50 6f 70 75 70 48 61  6e 64 6c 65 72 28 62 25  |hPopupHandler(b%|
000178d0  2c 63 42 25 2c 73 42 25  2c 6d 25 2c 51 24 2c 30  |,cB%,sB%,m%,Q$,0|
000178e0  29 3a e1 0d 1b ae 65 dd  f2 73 68 65 6c 6c 5f 41  |):....e..shell_A|
000178f0  74 74 61 63 68 43 6f 6c  6f 75 72 50 6f 70 75 70  |ttachColourPopup|
00017900  4d 65 6e 75 28 62 25 2c  63 42 25 2c 73 42 25 2c  |Menu(b%,cB%,sB%,|
00017910  6d 25 2c 51 24 29 3a f2  73 68 65 6c 6c 5f 44 6f  |m%,Q$):.shell_Do|
00017920  41 74 74 61 63 68 50 6f  70 75 70 48 61 6e 64 6c  |AttachPopupHandl|
00017930  65 72 28 62 25 2c 63 42  25 2c 73 42 25 2c 6d 25  |er(b%,cB%,sB%,m%|
00017940  2c 51 24 2c 31 29 3a e1  0d 1b b5 a1 dd f2 73 68  |,Q$,1):.......sh|
00017950  65 6c 6c 5f 44 6f 41 74  74 61 63 68 50 6f 70 75  |ell_DoAttachPopu|
00017960  70 48 61 6e 64 6c 65 72  28 62 25 2c 63 42 25 2c  |pHandler(b%,cB%,|
00017970  73 42 25 2c 6d 25 2c 51  24 2c 76 42 25 29 3a ea  |sB%,m%,Q$,vB%):.|
00017980  6c 25 2c 64 25 3a 64 25  3d a4 73 68 65 6c 6c 5f  |l%,d%:d%=.shell_|
00017990  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
000179a0  65 74 32 28 62 25 2c 63  42 25 2c 5f 55 25 2b 33  |et2(b%,cB%,_U%+3|
000179b0  34 30 2c 32 34 2c b9 29  3a 6c 25 3d 5f 55 25 21  |40,24,.):l%=_U%!|
000179c0  33 34 30 2b 64 25 3a 6c  25 21 30 3d 62 25 3a 6c  |340+d%:l%!0=b%:l|
000179d0  25 21 34 3d 63 42 25 3a  6c 25 21 38 3d 73 42 25  |%!4=cB%:l%!8=sB%|
000179e0  3a e7 51 24 3c 3e 22 22  8c 0d 1b c9 32 6c 25 21  |:.Q$<>""....2l%!|
000179f0  26 43 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |&C=.shell_HeapBl|
00017a00  6f 63 6b 46 65 74 63 68  28 a9 51 24 2b 31 29 3a  |ockFetch(.Q$+1):|
00017a10  24 28 6c 25 21 26 43 29  3d 51 24 0d 1b cb 0d cc  |$(l%!&C)=Q$.....|
00017a20  6c 25 21 26 43 3d 2d 31  0d 1b cd 48 cd 3a 6c 25  |l%!&C=-1...H.:l%|
00017a30  21 31 36 3d 76 42 25 3a  6c 25 21 32 30 3d 6d 25  |!16=vB%:l%!20=m%|
00017a40  3a e7 62 25 3e 30 80 63  42 25 3e 3d 30 8c f2 73  |:.b%>0.cB%>=0..s|
00017a50  68 65 6c 6c 5f 49 63 6f  6e 53 65 74 42 75 74 74  |hell_IconSetButt|
00017a60  6f 6e 54 79 70 65 28 62  25 2c 63 42 25 2c 33 29  |onType(b%,cB%,3)|
00017a70  0d 1b d2 05 e1 0d 1b d7  41 dd f2 73 68 65 6c 6c  |........A..shell|
00017a80  5f 44 6f 50 6f 70 75 70  53 65 6c 65 63 74 28 5f  |_DoPopupSelect(_|
00017a90  51 25 2c 64 25 29 3a ea  6c 25 2c 51 24 3a 6c 25  |Q%,d%):.l%,Q$:l%|
00017aa0  3d 5f 55 25 21 33 34 30  2b 64 25 3a e7 6c 25 21  |=_U%!340+d%:.l%!|
00017ab0  26 43 3d 2d 31 8c 0d 1b  e7 0d e7 6c 25 21 31 36  |&C=-1......l%!16|
00017ac0  3d 30 8c 0d 1b e8 45 f2  73 68 65 6c 6c 5f 49 63  |=0....E.shell_Ic|
00017ad0  6f 6e 50 75 74 44 61 74  61 28 21 6c 25 2c 6c 25  |onPutData(!l%,l%|
00017ae0  21 38 2c a4 73 68 65 6c  6c 5f 4d 65 6e 75 47 65  |!8,.shell_MenuGe|
00017af0  74 49 74 65 6d 54 65 78  74 28 6c 25 21 32 30 2c  |tItemText(l%!20,|
00017b00  21 5f 51 25 29 2c b9 29  0d 1b e9 2a cc f2 73 68  |!_Q%),.)...*..sh|
00017b10  65 6c 6c 5f 49 63 6f 6e  53 65 74 42 47 43 6f 6c  |ell_IconSetBGCol|
00017b20  6f 75 72 28 21 6c 25 2c  6c 25 21 38 2c 21 5f 51  |our(!l%,l%!8,!_Q|
00017b30  25 29 0d 1b eb 05 cd 0d  1b ec 10 cc 51 24 3d 24  |%)..........Q$=$|
00017b40  28 6c 25 21 26 43 29 0d  1b ee 07 cd 3a e1 0d 1b  |(l%!&C).....:...|
00017b50  f4 31 dd a4 73 68 65 6c  6c 5f 33 44 45 6e 61 62  |.1..shell_3DEnab|
00017b60  6c 65 64 3a ea 49 46 25  2c 5f 33 64 25 3a e7 5f  |led:.IF%,_3d%:._|
00017b70  55 25 21 26 36 34 80 28  31 3c 3c 26 41 29 8c 0d  |U%!&64.(1<<&A)..|
00017b80  1b f8 2c c8 99 36 2c 26  41 31 2c 26 38 43 b8 2c  |..,..6,&A1,&8C.,|
00017b90  2c 49 46 25 3a e7 28 49  46 25 80 31 29 8c 5f 33  |,IF%:.(IF%.1)._3|
00017ba0  64 25 3d b9 8b 5f 33 64  25 3d a3 0d 1b fa 0b cc  |d%=.._3d%=......|
00017bb0  5f 33 64 25 3d a3 0d 1b  fd 0b cd 3a 3d 5f 33 64  |_3d%=......:=_3d|
00017bc0  25 0d 1c 03 30 dd f2 73  68 65 6c 6c 5f 4d 65 6e  |%...0..shell_Men|
00017bd0  75 44 65 6c 65 74 65 28  69 25 2c 41 47 25 29 3a  |uDelete(i%,AG%):|
00017be0  ea 65 25 2c 70 25 2c 68  25 3a e7 69 25 3c 3e 30  |.e%,p%,h%:.i%<>0|
00017bf0  8c 0d 1c 06 52 c8 99 26  36 35 42 43 33 2c 69 25  |....R..&65BC3,i%|
00017c00  2c 41 47 25 3a 70 25 3d  a4 73 68 65 6c 6c 5f 48  |,AG%:p%=.shell_H|
00017c10  65 61 70 42 6c 6f 63 6b  49 6e 66 6f 28 5f 55 25  |eapBlockInfo(_U%|
00017c20  21 26 43 29 2d 38 3a 68  25 3d 5f 55 25 21 26 43  |!&C)-8:h%=_U%!&C|
00017c30  3a f5 3a e7 28 68 25 21  28 65 25 2b 38 29 3d 69  |:.:.(h%!(e%+8)=i|
00017c40  25 29 8c 0d 1c 0b 0f 68  25 21 28 65 25 2b 38 29  |%).....h%!(e%+8)|
00017c50  3d 30 0d 1c 0c 0b cc 65  25 2b 3d 34 38 0d 1c 0e  |=0.....e%+=48...|
00017c60  0f cd 3a fd 28 65 25 3e  3d 70 25 29 0d 1c 10 07  |..:.(e%>=p%)....|
00017c70  cd 3a e1 0d 1c 16 a0 dd  f2 73 68 65 6c 6c 5f 48  |.:.......shell_H|
00017c80  61 6e 64 6c 65 41 74 74  61 63 68 65 64 44 61 74  |andleAttachedDat|
00017c90  61 53 61 76 65 28 5f 51  25 2c 62 25 2c 66 25 29  |aSave(_Q%,b%,f%)|
00017ca0  3a ea 6d 41 25 2c 61 25  2c 69 42 25 2c 5f 6e 61  |:.mA%,a%,iB%,_na|
00017cb0  6d 65 24 2c 63 25 2c 6f  25 3a f2 73 68 65 6c 6c  |me$,c%,o%:.shell|
00017cc0  5f 44 61 74 61 53 61 76  65 43 68 65 63 6b 4e 61  |_DataSaveCheckNa|
00017cd0  6d 65 28 62 25 2c 66 25  29 3a 6d 41 25 3d a4 73  |me(b%,f%):mA%=.s|
00017ce0  68 65 6c 6c 5f 47 65 74  45 76 65 6e 74 4c 69 73  |hell_GetEventLis|
00017cf0  74 4f 66 66 73 65 74 28  62 25 2c 2d 31 2c 5f 55  |tOffset(b%,-1,_U|
00017d00  25 2b 37 32 2c 32 34 2c  a3 29 3a e7 6d 41 25 3e  |%+72,24,.):.mA%>|
00017d10  3d 30 8c 0d 1c 1e 69 61  25 3d 5f 55 25 21 37 32  |=0....ia%=_U%!72|
00017d20  2b 6d 41 25 3a 69 42 25  3d 61 25 21 31 36 3a 5f  |+mA%:iB%=a%!16:_|
00017d30  6e 61 6d 65 24 3d a4 73  68 65 6c 6c 5f 49 63 6f  |name$=.shell_Ico|
00017d40  6e 47 65 74 44 61 74 61  28 62 25 2c 69 42 25 29  |nGetData(b%,iB%)|
00017d50  3a 63 25 3d 61 25 21 32  30 3a e7 24 63 25 3c 3e  |:c%=a%!20:.$c%<>|
00017d60  22 22 8c 6f 25 3d a0 28  22 46 4e 22 2b 24 63 25  |"".o%=.("FN"+$c%|
00017d70  2b 22 28 5f 6e 61 6d 65  24 29 22 29 0d 1c 23 07  |+"(_name$)")..#.|
00017d80  cd 3a e1 0d ff                                    |.:...|
00017d85