Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s » Shareware/Event/!ShellSys/ShellLibRT

Shareware/Event/!ShellSys/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 » Acorn Computing » 1994 08 subscription disc.adf » 9408s
Filename: Shareware/Event/!ShellSys/ShellLibRT
Read OK:
File size: 1130B bytes
Load address: 0000
Exec address: 0000
File contents
    2DEFFNshell_LibraryVersion:=1.20*&64
    8DEFPROCshell_Error:IF_error_flag%=3THEN
   10PROCshell_ErrorBox("Unexpected error:- "+REPORT$+" Internal error code "+STR$ERL):PROCshell_TraceOff:PROCshell_TraceExit
   13ELSEPROCshell_ErrorBox(REPORT$)
   15ENDIF:_error_flag%=3:SYS&406C2:ENDPROC
   23DEFPROCshell_OK(KA$):_error_flag%=1:ERROR1,KA$
   26ENDPROC
   30DEFPROCshell_ErrorBox(QA$):LOCALrA%,aA%:aA%=FNshell_HeapBlockFetch(260):!aA%=ERR:$(aA%+4)=QA$+CHR$(0):SYS&400DF,aA%,_error_flag%,FNshell_GetAppNameTOrA%:IFrA%=2THEN_closedown%=TRUE
   36PROCshell_HeapBlockReturn(aA%):ENDPROC
   41DEFFNshell_GetLastSecureFileName:LOCALb%:b%=_U%!80:IFb%=0THEN=""
   45=$b%
   49DEFFNshell_GetString(JD%):LOCALGA$,xB%:WHILE((JD%?xB%)>31ANDxB%<&FF):GA$+=CHR$(JD%?xB%):xB%+=1:ENDWHILE:=GA$
   59DEFFNshell_GetEventHandler(c%,r%,XB%):LOCALf%,h%,j%,o%,A$:IFc%=-1THENc%=-2
   62o%=FNshell_HeapBlockInfo(_U%!&C)-8:f%=0:j%=FALSE:h%=_U%!&C:A$="":REPEAT:IF(h%!f%=c%)THEN
   69CASEh%!(f%+4)OF
   70WHEN-1:IFh%!(f%+(&C+(XB%*4)))>&8000THEN
   76A$=$(h%!(f%+(&C+(XB%*4)))):j%=TRUE
   78ELSEf%+=48
   80ENDIF
   81OTHERWISEIFh%!(f%+4)=r%THEN
   88IFh%!(f%+(&C+(XB%*4)))>&8000THEN
   89A$=$(h%!(f%+(&C+(XB%*4)))):j%=TRUE
   91ELSEf%+=48
   93ENDIF
   94ELSEf%+=48
   96ENDIF
   97ENDCASE
   98ELSEf%+=48
  100ENDIF:UNTIL((f%>=o%)ORj%):=A$
  107DEFFNshell_GetEventMenu(pB%,c%,r%):LOCALf%,h%,j%,o%,q%:IFc%=-1THENc%=-2
  110o%=FNshell_HeapBlockInfo(_U%!&C)-8:f%=0:j%=FALSE:h%=_U%!&C:A$="":REPEAT:IF(h%!f%=c%)THEN
  117IFh%!(f%+4)=r%THEN
  118q%=h%!(f%+8):IFq%=-2THENq%=_U%!&FC
  120j%=TRUE
  121ELSEIFh%!(f%+4)=-1THEN
  123IFpB%=2THEN
  124q%=h%!(f%+8):IFq%=-2THENq%=_U%!&FC
  126j%=TRUE
  127ELSEf%+=48
  129ENDIF
  130ELSEf%+=48
  132ENDIF
  133ENDIF
  134ELSEf%+=48
  136ENDIF:UNTIL(f%>=o%ORj%):=q%
  143DEFFNshell_GetEventListOffset(c%,e%,h%,HC%,GD%):LOCALo%,f%,j%,d%,gB%,b%:IF(!h%=0ANDGD%=FALSE)THEN=-2
  150IF(!h%=0)THEN
  152!h%=FNshell_HeapBlockFetch(HC%):b%=!h%:b%!0=0:b%!4=0:=0
  155ENDIF:o%=FNshell_HeapBlockInfo(!h%)-8:f%=0:j%=FALSE:d%=-1:gB%=-1:b%=!h%:REPEAT:IFgB%<0THEN
  165IF(b%!f%=0ANDb%!f%+4=0)THENgB%=f%
  166ENDIF:IF(b%!f%=c%)THEN
  171IFe%=-1THEN
  174d%=f%:j%=TRUE
  176ELSEPROCshell_Tracef0("GetEventListOffset:icon handle is not -1"):IFb%!(f%+4)=e%THEN
  182d%=f%:j%=TRUE
  184ELSEf%+=HC%
  186ENDIF
  187ENDIF
  188ELSEf%+=HC%
  191ENDIF:UNTIL((f%>=o%)ORj%):IFj%THEN
  195ELSE
  197ENDIF:IF(d%=-1ANDGD%)THEN
  199IFgB%<0THEN
  201d%=o%:!h%=FNshell_HeapBlockExtend(!h%,HC%):b%=!h%:b%+=d%:b%!0=0:b%!4=0
  205ELSEd%=gB%
  208ENDIF
  209ENDIF:=d%
  214DEFPROCshell_AttachPane(c%,RETURNJC%,l%,BB%,DB%):LOCALa%,d%,b%,nA%,tC%:PROCshell_Tracef0("AttachPane:Attaching Pane Handler"):tC%=FNshell_WindowGetFlags(JC%):IF(tC%AND1<<5)=0THEN
  220PROCshell_Tracef0("AttachPane:'Pane' bit of pane window is not set, fixing.."):PROCshell_WindowToggleFlags(JC%,1<<5)
  222ENDIF:IF(tC%AND1<<1)THEN
  224PROCshell_Tracef0("AttachPane:'Moveable' bit of pane window is set, fixing.."):PROCshell_WindowToggleFlags(JC%,1<<1)
  226ENDIF:d%=FNshell_GetEventListOffset(c%,-1,_U%+92,24,FALSE):IFd%<0THEN
  230PROCshell_Tracef0("AttachPane:Creating pane event block"):d%=FNshell_GetEventListOffset(c%,-1,_U%+92,24,TRUE):a%=_U%!92+d%:a%!0=c%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(4):a%!&C=FNshell_HeapBlockFetch(4):a%!16=FNshell_HeapBlockFetch(4)
  237a%!20=FNshell_HeapBlockFetch(4):b%=a%!8:!b%=-1:b%=a%!&C:!b%=-1:b%=a%!16:!b%=-1:b%=a%!20:!b%=-1
  242ENDIF:a%=_U%!92+d%:b%=a%!8:g%=0:nA%=0:WHILEb%!g%<>-1:g%+=4:nA%+=1:ENDWHILE:a%!8=FNshell_HeapBlockExtend(a%!8,4):b%=a%!8:b%!(nA%*4)=JC%:b%!((nA%+1)*4)=-1:a%!&C=FNshell_HeapBlockExtend(a%!&C,4):b%=a%!&C:b%!(nA%*4)=l%:b%!((nA%+1)*4)=-1
  255a%!16=FNshell_HeapBlockExtend(a%!16,4):b%=a%!16:b%!(nA%*4)=BB%:b%!((nA%+1)*4)=-1:a%!20=FNshell_HeapBlockExtend(a%!20,4):b%=a%!20:b%!(nA%*4)=DB%:b%!((nA%+1)*4)=-1:ENDPROC
  266DEFPROCshell_AttachDataLoad(c%,e%,w%,A$,AE%):LOCALa%,b%,d%:PROCshell_Tracef0("AttachDataLoad:Attaching DataLoad Handler"):IFc%=-1THENc%=-2
  270IFAE%THENw%=w%OR1<<31
  271d%=FNshell_GetEventListOffset(c%,e%,_U%+96,16,TRUE):a%=_U%!96+d%:IFa%!0=0ANDa%!4=0THEN
  278PROCshell_Tracef0("AttachDataLoad:This is the first DataLoad Event..."):a%!0=c%:a%!4=e%:a%!8=FNshell_HeapBlockFetch(8):b%=a%!8:b%!0=w%:b%!4=-1:a%!&C=FNshell_HeapBlockFetch(8):b%=a%!&C:b%!0=FNshell_HeapBlockFetch(LEN(A$)+1):b%!4=-1:b%=b%!0:$b%=A$
  288ELSEPROCshell_Tracef0("AttachDataLoad:This is another DataLoad Event..."):a%!8=FNshell_HeapBlockExtend(a%!8,4):a%!&C=FNshell_HeapBlockExtend(a%!&C,4):g%=0:b%=a%!8:WHILEb%!g%<>-1:g%+=4:ENDWHILE:b%!g%=w%:b%!(g%+4)=-1:b%=a%!&C:b%!g%=FNshell_HeapBlockFetch(LENA$+1)
  303b%=b%!g%:$b%=A$
  304ENDIF:ENDPROC
  310DEFPROCshell_AttachDataSave(c%,e%,hA%,w%,YE%,A$):LOCALa%,b%,d%:IFhA%=0THENhA%=&64
  313PROCshell_Tracef0("AttachDataSave:Attaching DataSave Handler to icon "+STR$e%+" in window &"+STR$~c%):PROCshell_Tracef0("AttachDataSave:Handler function is '"+A$+"'"):d%=FNshell_GetEventListOffset(c%,e%,_U%+72,24,TRUE):a%=_U%!72+d%:a%!0=c%:a%!4=e%:a%!8=hA%:a%!&C=w%
  318a%!16=YE%:a%!20=FNshell_HeapBlockFetch(LEN(A$)+1):b%=a%!20:$b%=A$:CASEw%OF
  322WHEN&FF9:IFhA%>&8000THEN
  326_U%!&88=FNshell_HeapBlockInfo(hA%)-8
  327ELSE_U%!&88=hA%
  329ENDIF
  330OTHERWISEIFhA%>&8000THEN
  332_U%!&88=FNshell_HeapBlockInfo(hA%)-4
  333ELSE_U%!&88=hA%
  335ENDIF
  336ENDCASE:_U%!&8C=w%:_U%!&90=hA%:ENDPROC
  346DEFPROCshell_AttachMenu(c%,r%,q%,VB%,WB%,qB%):IFc%>0ANDr%>=0THENPROCshell_IconSetButtonType(c%,r%,1)
  348PROCshell_EventAdd(c%,r%,0,q%,""):ENDPROC
  354DEFPROCshell_AttachMenuMaker(c%,r%,A$):PROCshell_Tracef0("AttachMenuMaker:Attaching menumaker function '"+A$+"'"):PROCshell_EventAdd(c%,r%,1,0,A$):ENDPROC
  362DEFPROCshell_AttachMenuDBox(iA%,K$,CA$,IA$):LOCALa%,b%,YA%:IFNOTFNshell_WindowLoaded(K$)THENERROR99,FNshell_MessageOneArg("SHELLMSG03",K$)
  367a%=FNshell_HeapBlockFetch(&C):a%!0=FNshell_HeapBlockFetch(LENK$+1):b%=a%!0:$b%=K$:a%!4=FNshell_HeapBlockFetch(LENCA$+1):b%=a%!4:$b%=CA$:a%!8=FNshell_HeapBlockFetch(LENIA$+1):b%=a%!8:$b%=IA$:SYS&45BCE,iA%,a%:SYS&45BCC,,TRUE:ENDPROC
  383DEFPROCshell_AttachClickSelect(c%,r%,A$):PROCshell_EventAdd(c%,r%,2,0,A$):ENDPROC
  389DEFPROCshell_AttachClickAdjust(c%,r%,A$):PROCshell_EventAdd(c%,r%,3,0,A$):ENDPROC
  395DEFPROCshell_AttachUserRedraw(RETURNc%,A$):LOCALa%,BA%,HA%:a%=FNshell_HeapBlockFetch(40):!a%=c%:SYS&400CB,,a%:BA%=a%!32:PROCshell_HeapBlockReturn(a%):PROCshell_Tracef0("AttachUserRedraw:flag%=&"+STR$~BA%):IF(BA%AND1<<4)THEN
  403PROCshell_Tracef0("AttachUserRedraw:auto redraw set!!"):HA%=c%:PROCshell_WindowToggleFlags(c%,1<<4):IFc%<>HA%THEN
  408PROCshell_UpdateWindowHandle(HA%,c%)
  409ENDIF
  410ENDIF:PROCshell_EventAdd(c%,-1,4,0,A$):ENDPROC
  416DEFPROCshell_AttachKeypress(c%,r%,A$):PROCshell_EventAdd(c%,r%,5,0,A$):ENDPROC
  422DEFPROCshell_AttachDrag(c%,r%,dE%,A$):PROCshell_EventAdd(c%,r%,6,0,A$):ENDPROC
  428DEFPROCshell_AttachHelpTag(c%,r%,I$):PROCshell_EventAdd(c%,r%,8,0,I$):ENDPROC
  434DEFPROCshell_EventAdd(c%,r%,XB%,q%,A$):LOCALf%,MB%,h%,o%,j%:LOCAL_B%:f%=0:j%=FALSE:IFc%=-1THENc%=-2
  439o%=FNshell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:REPEAT:IF(h%!f%=c%)THEN
  443CASEh%!(f%+4)OF
  444WHEN-1:j%=TRUE
  446OTHERWISEIFh%!(f%+4)=r%THEN
  448j%=TRUE
  449ELSEf%+=48
  451ENDIF
  452ENDCASE
  453ELSEf%+=48
  455ENDIF:UNTIL(f%>=o%ORj%):IFj%=FALSETHEN
  458f%=0:WHILE(h%!f%<>0):f%+=48:IFf%>=o%THEN
  462_U%!&C=FNshell_HeapBlockExtend(_U%!&C,48):h%=_U%!&C:h%!(f%+0)=0:h%!(f%+4)=0:h%!(f%+8)=0:h%!(f%+&C)=0:h%!(f%+16)=0:h%!(f%+20)=0:h%!(f%+24)=0:h%!(f%+28)=0:h%!(f%+32)=0:h%!(f%+36)=0:h%!(f%+40)=0:h%!(f%+44)=0
  476ENDIF:ENDWHILE
  478ENDIF:h%!(f%+0)=c%:h%!(f%+4)=r%:IFq%<>0THEN
  482h%!(f%+8)=q%
  483ENDIF:_B%=f%+(&C+(XB%*4)):IFh%!_B%<>0THEN
  486PROCshell_HeapBlockReturn(h%!_B%)
  487ENDIF:MB%=FNshell_HeapBlockFetch(LENA$+1):$MB%=A$:h%!_B%=MB%:ENDPROC
  495DEFPROCshell_EventDeleteAll(c%):LOCALf%,q%,j%,o%,h%,m%:f%=0:q%=0:j%=FALSE:IFc%=-1THENc%=-2
  499o%=FNshell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:REPEAT:IF(h%!f%=c%)THEN
  503j%=TRUE
  504ELSEf%+=48
  506ENDIF:UNTIL(f%>=o%ORj%):IFj%THEN
  509h%!(f%+0)=0:h%!(f%+4)=0:h%!(f%+8)=0:FORm%=&CTO44STEP4:IFh%!(f%+m%)<>0THEN
  514PROCshell_HeapBlockReturn(h%!(f%+m%)):h%!(f%+m%)=0
  516ENDIF:NEXTm%
  518ENDIF:PROCshell_Tracef0("EventDeleteAll:wh%=&"+STR$~c%):PROCshell_DeleteEventDataSave(c%,-1):PROCshell_DeleteEventBump(c%,-1):ENDPROC
  528DEFPROCshell_DeleteEventBump(c%,e%):LOCALd%,a%,o%,h%,b%:h%=_U%!&68:REPEAT:d%=FNshell_GetEventListOffset(c%,e%,_U%+&68,16,FALSE):PROCshell_Tracef0("DeleteEventBump:offset%="+STR$d%):IFd%>=0THEN
  539IFe%=-1THEN
  540PROCshell_Tracef0("DeleteEventBump:Deleting Bump Event (all events for window handle &"+STR$~c%+")")
  541ELSEPROCshell_Tracef0("DeleteEventBump:Deleting Bump Event (window handle was &"+STR$~c%+" icon handle was "+STR$e%+")")
  543ENDIF:o%=FNshell_HeapBlockInfo(_U%!&68)-8:IFd%=o%-16THEN
  548IFd%=0THEN
  550AA%=h%!&C:b%=AA%!&C:PROCshell_HeapBlockReturn(b%!&C):PROCshell_HeapBlockReturn(b%!16):PROCshell_HeapBlockReturn(b%):PROCshell_HeapBlockReturn(_U%!&68):_U%!&68=0:PROCshell_Tracef0("DeleteEventDataSave:No Bump events now registered")
  558ELSE_U%!&68=FNshell_HeapBlockExtend(_U%!&68,-16)
  561ENDIF
  562ELSEa%=h%+d%:a%!0=0:a%!4=0:a%!8=0:AA%=a%!&C:PROCshell_HeapBlockReturn(AA%!&C):PROCshell_HeapBlockReturn(AA%!16):PROCshell_HeapBlockReturn(AA%)
  570ENDIF
  571ENDIF:UNTILd%<0:ENDPROC
  579DEFPROCshell_DeleteEventDataSave(c%,e%):LOCALd%,a%,o%:REPEAT:d%=FNshell_GetEventListOffset(c%,e%,_U%+72,24,FALSE):IFd%>=0THEN
  591IFe%=-1THEN
  592PROCshell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (all events for window handle &"+STR$~c%+")")
  593ELSEPROCshell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (window handle was &"+STR$~c%+" icon handle was "+STR$e%+")")
  595ENDIF:o%=FNshell_HeapBlockInfo(_U%!72)-8:IFd%=o%-24THEN
  600IFd%=0THEN
  602PROCshell_HeapBlockReturn(_U%!72):_U%!72=0:PROCshell_Tracef0("DeleteEventDataSave:No DataSave events now registered")
  606ELSE_U%!72=FNshell_HeapBlockExtend(_U%!72,-24)
  609ENDIF
  610ELSEa%=h%+d%:a%!0=0:a%!4=0:a%!8=0:a%!&C=0:a%!16=0:PROCshell_HeapBlockReturn(a%!20):a%!20=0
  615ENDIF
  616ENDIF:UNTILd%<0:ENDPROC
  624DEFFNshell_MessageNoArgs(I$):=FNshell_MessageLookup(I$,"","")
  629DEFFNshell_MessageOneArg(I$,w$):=FNshell_MessageLookup(I$,w$,"")
  634DEFFNshell_MessageLookup(I$,w$,OA$):LOCALl%,L%,d$,mB%,KB%:IFLEFT$(I$,8)="SHELLMSG"THEN
  637mB%=_U%!284:KB%=_U%!280
  638ELSEmB%=_U%!64:KB%=_U%!68
  640ENDIF:SYS&61502,KB%,I$,mB%,256,w$,OA$TO,,,L%;l%:IFl%AND1THEN
  644ELSEmB%?L%=&D:d$=$(mB%)
  647ENDIF:=d$
  653DEFFNshell_WimpInit(rB%,k$):LOCALXA%:SYS&400C0,rB%,&4B534154,k$TOrB%,XA%:_U%!&94=XA%:=XA%
  662DEFFNshell_WimpInit_I(rB%,k$):SYS&400C0,rB%,&4B534154,k$TOrB%,XA%:_U%!&94=XA%:SYS&81682,XA%:=XA%
  671DEFPROCshell_WimpCloseDown_I(XA%):PROCshell_LoseFonts:IF_U%!&F0<>-1THENSYS&8D081
  676SYS&400DD,XA%,&4B534154:SYS&81683,XA%:IF_U%!&64AND1<<2THENSYS"Impulse_CloseDown",_U%!&94
  679ENDPROC
  683DEFPROCWimpCloseDown(XA%):PROCshell_LoseFonts:IF_U%!&F0<>-1THENSYS&8D081
  688SYS&400DD,XA%,&4B534154:IF_U%!&64AND1<<2THENSYS"Impulse_CloseDown",_U%!&94
  691ENDPROC
  695DEFPROCshell_LoseFonts:LOCALm%,b%:b%=_U%!&E8:FORm%=0TO&FF:WHILEb%?m%>0:SYS&40082,m%:b%?m%-=1:ENDWHILE:NEXTm%:ENDPROC
  708DEFFNshell_FindFont(Y$,OE%):LOCALBA%,eC%:eC%=_U%!&E8:SYS&40081,,Y$,OE%*16,c*16,0,0TOBA%:eC%?BA%+=1:IFeC%?BA%>=&FFTHENERROR99,FNshell_MessageNoArgs("SHELLMSG18")
  714=BA%
  719DEFPROCshell_Init:LOCALbA%,m%,b%:DIM_U%320,_shell_blk%&64:_Q%=FNshell_HeapBlockFetch(&BB8):bA%=FNshell_HeapBlockFetch(48):bA%!0=0:bA%!&C=0:bA%!16=0:bA%!20=0:bA%!24=0:bA%!28=0:bA%!32=0:bA%!36=0:bA%!40=0:bA%!44=0:_U%!0=0:_U%!4=0:_U%!8=0:_U%!&C=bA%:_U%!16=1:_U%!20=0
  740_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:_U%!&6C=-1:_U%!&70=-1:_U%!&74=-1
  768_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
  793_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:_U%!280=0:_U%!284=0:_U%!288=-1
  814_U%!292=-1:_U%!296=-1:_U%!300=0:_U%!304=0:_U%!308=0:_U%!312=0:_U%!316=0:PROCshell_MemFill(_U%!&E8,256,0):PROCshell_MemFill(_U%!&EC,256,0):_error_flag%=3:ENDPROC
  829DEFFNshell_FileType(Z$):LOCALw%:SYS8,5,Z$TO,,w%:w%=(w%AND&FFF00)>>>8:=w%
  838DEFFNshell_FileExists(Z$):IFFNshell_CatInfoRead(Z$)="Not Found":=FALSE
  840=TRUE
  845DEFFNshell_CatInfoRead(Z$):LOCALw%,DC%,yB%,eA%,UB%,B$:SYS8,5,Z$TOw%,,DC%,yB%,eA%,UB%:IFw%=0THEN="Not Found"
  849IFUB%=51THENB$+="WR "
  850IFUB%=&BBTHENB$+="LWR"
  851IFUB%=&88THENB$+="DL "
  852B$+=" "+FNshell_StringPadLeading(STR$~DC%,"0",8):B$+=" "+FNshell_StringPadLeading(STR$~yB%,"0",8):B$+=" "+FNshell_StringPadLeading(STR$~eA%,"0",8):=B$
  859DEFFNshell_GetAppDir:LOCALb%:b%=_U%!&BC:=$b%
  866DEFFNshell_GetAppDataDir:LOCALb%:b%=_U%!&C0:=$b%
  873DEFFNshell_GetAppName:LOCALb%:b%=_U%!&C4:=$b%
  881DEFPROCshell_ResourcesInit:LOCALF$,G$,u$,b%:LOCALoA%:oA%=FNshell_HeapBlockFetch(256):F$=FNshell_OSVarGetVal(oA%,256,"Obey$Dir",1):G$=MID$(FNshell_Leaf(F$),2):_U%!&BC=FNshell_HeapBlockFetch((LENF$)+1):_U%!&C4=FNshell_HeapBlockFetch((LENG$)+1):b%=_U%!&BC:$b%=F$:b%=_U%!&C4:$b%=G$
  891IFFNshell_OSVarExists(oA%,G$+"Res$Path")THEN
  892_U%!&64=_U%!&64OR1<<3
  893ENDIF:IFFNshell_OSVarExists(oA%,G$+"Data$Dir")THEN
  895u$=FNshell_OSVarGetVal(oA%,256,G$+"Data$Dir",1):_U%!&C0=FNshell_HeapBlockFetch((LENu$)+1):b%=_U%!&C0:$b%=u$
  898ELSE_U%!&C0=FNshell_HeapBlockFetch((LENF$)+1):b%=_U%!&C0:$b%=F$
  901ENDIF:IF_U%!&64AND1<<3THEN
  905IFFNshell_FileExists(G$+"Res:Messages")THEN
  906PROCshell_MessagesInit(G$+"Res:Messages",_U%!68,_U%!64)
  907ENDIF:IFFNshell_FileExists(G$+"Res:ShellMsgs")THEN
  909PROCshell_MessagesInit(G$+"Res:ShellMsgs",_U%!280,_U%!284)
  910ELSEPROCshell_MessagesInit("ShellSysRes:ShellMsgs",_U%!280,_U%!284)
  912ENDIF:IFFNshell_FileExists(G$+"Res:Sprites")THEN
  914_U%!16=FNshell_SpriteAreaLoad(G$+"Res:Sprites")
  915ELSE_U%!16=1
  917ENDIF:IFFNshell_FileExists(G$+"Res:Templates")THEN
  920PROCshell_TemplatesInit(G$+"Res:Templates")
  921ENDIF
  922ELSEIFFNshell_FileExists(F$+".Messages")THEN
  925PROCshell_MessagesInit(F$+".Messages",_U%!68,_U%!64)
  926ENDIF:IFFNshell_FileExists(F$+".ShellMsgs")THEN
  928PROCshell_MessagesInit(F$+".ShellMsgs",_U%!280,_U%!284)
  929ELSEPROCshell_MessagesInit("ShellSysRes:ShellMsgs",_U%!280,_U%!284)
  931ENDIF:IFFNshell_FileExists(F$+".Sprites")THEN
  934_U%!16=FNshell_SpriteAreaLoad(F$+".Sprites")
  935ELSE_U%!16=1
  937ENDIF:IFFNshell_FileExists(F$+".Templates")THEN
  940PROCshell_TemplatesInit(F$+".Templates")
  941ENDIF
  942ENDIF:SYS&45BC0:PROCshell_HeapBlockReturn(_Q%):_Q%=FNshell_HeapBlockFetch(&400):PROCshell_HeapBlockReturn(oA%):ENDPROC
  952DEFFNshell_SpriteAreaLoad(L$):LOCAL_A%,S%,T%:S%=OPENIN(L$):T%=EXT#S%+16:CLOSE#S%:_A%=FNshell_HeapBlockFetch(T%):!_A%=T%:_A%!4=0:_A%!8=16:_A%!&C=16:SYS46,521,_A%:SYS46,522,_A%,L$:PROCshell_Tracef0("SpriteLoad:Sprite file loaded at &"+STR$~_A%):=_A%
  968DEFFNshell_UserSpritesBase:=_U%!16
  974DEFFNshell_SpriteGetPtr(aB%,W$):LOCALtA%,f%:tA%=FNshell_HeapBlockFetch(21):$tA%=W$:SYS46,280,aB%,tA%TO,,f%:PROCshell_HeapBlockReturn(tA%):=f%
  985DEFPROCshell_TemplatesInit(L$):LOCALlB%,gC%,gD%:LOCALAC%,CA%,eB%,W$,TB%:DIMeB%20:WHILE(eB%MOD4):eB%+=1:ENDWHILE:CA%=0:TB%=0:AC%=FNshell_FileLength(L$):KD%=FNshell_HeapBlockFetch(AC%):lB%=KD%:_U%!4=FNshell_HeapBlockFetch(20*64):CD%=FNshell_HeapBlockFetch(AC%):gC%=CD%:gD%=CD%+AC%
 1004SYS&400D9,,L$:REPEAT:$eB%="*":SYS&400DB,,lB%,gC%,gD%,_U%!&E8,eB%,CA%TO,,gC%,,,W$,CA%:IFCA%<>0THEN
 1009!((_U%!4)+(16*TB%))=lB%:$(((_U%!4)+(16*TB%))+4)=W$:PROCshell_Tracef0("TemplatesInit:  Template Loaded: "+W$):lB%+=(88+(lB%!84)*32):TB%+=1
 1016ENDIF:UNTILCA%=0:SYS&400DA:_U%!0=TB%:PROCshell_Tracef0("TemplatesInit:Templates resource file loaded at &"+STR$~KD%+" ("+STR$TB%+" templates)"):ENDPROC
 1028DEFFNshell_WindowLoaded(K$):LOCALm%,j%:IFLEN(K$)>&CTHENERROR99,FNshell_MessageOneArg("SHELLMSG02",K$)
 1031j%=FALSE:FORm%=0TO(_U%!0)-1:IF$(((_U%!4)+(16*m%))+4)=K$THEN
 1034j%=TRUE:m%=(_U%!0)-1
 1035ENDIF:NEXTm%:=j%
 1041DEFFNshell_GetWB(K$):LOCALm%,j%:IFLEN(K$)>&CTHENERROR99,FNshell_MessageOneArg("SHELLMSG02",K$)
 1044j%=-1:FORm%=0TO(_U%!0)-1:IF$(((_U%!4)+(16*m%))+4)=K$THEN
 1047j%=m%:m%=(_U%!0)-1
 1048ENDIF:NEXTm%:IFj%>-1THEN
 1051=!((_U%!4)+(16*j%))
 1052ELSEERROR99,FNshell_MessageOneArg("SHELLMSG03",K$)
 1054ENDIF:=FALSE
 1060DEFFNshell_MessageExpand(a$):LOCALH$,d$,cA%:H$="":WHILEINSTR(a$,"\")>0:cA%=INSTR(a$,"\"):H$+=LEFT$(a$,cA%-1):d$=MID$(a$,cA%+1,1):a$=MID$(a$,cA%+2):CASEd$OF
 1069WHEN"A":H$+="Click ADJUST to"
 1070WHEN"a":H$+="ADJUST"
 1071WHEN"D":H$+="Drag with SELECT to"
 1072WHEN"d":H$+="Drag with ADJUST to"
 1073WHEN"G":H$+="This option is greyed out because"
 1074WHEN"R":H$+="Move the pointer right"
 1075WHEN"S":H$+="Click SELECT to"
 1076WHEN"s":H$+="SELECT"
 1077WHEN"T":H$+="This is the"
 1078WHEN"W":H$+="This window is"
 1079WHEN"w":H$+="window"
 1080OTHERWISEH$+="\"+d$
 1082ENDCASE:ENDWHILE:=H$+a$
 1094DEFPROCshell_OpenMenu(JA%,KA%,cB%):LOCALA$:A$=FNshell_GetEventHandler(_U%!28,_U%!32,1):IFA$<>""THEN
 1099PROCshell_Tracef0("OpenMenu:About to call "+"FN"+A$+"("+STR$_U%!28+","+STR$_U%!32+")"):p%=EVAL("FN"+A$+"(_U%!28,_U%!32)")
 1102ELSEPROCshell_Tracef0("OpenMenu:no menumaker function registered")
 1104ENDIF:IFcB%<>_U%!24THEN
 1108IFFNshell_HeapBlockExists(_U%!256)THEN
 1109PROCshell_HeapBlockReturn(_U%!256):_U%!256=0
 1110ENDIF:IFFNshell_HeapBlockExists(_U%!&F4)THEN
 1113PROCshell_HeapBlockReturn(_U%!&F4):_U%!&F4=0
 1114ENDIF
 1115ENDIF:IFcB%=_U%!&FCTHEN
 1117SYS&400D4,,cB%,JA%,KA%:_U%!264=1
 1119ELSESYS&45BC5,cB%,_Q%:_U%!264=0
 1122ENDIF:_U%!24=cB%:_U%!36=JA%:_U%!40=KA%:_U%!52=_U%!28:_U%!56=_U%!32:ENDPROC
 1133DEFFNshell_MenuLastXPos:=_U%!36
 1139DEFFNshell_MenuLastYPos:=_U%!40
 1145DEFPROCshell_MenuAttachDbox(l$):SYS"Menu_SetSubHandle",_U%!8,FNshell_MenuString(l$),1:PROCshell_Tracef0("MenuAttachDbox:Dialog box ("+l$+") attached"):ENDPROC
 1155DEFFNshell_MessageWindow(J$,NE%,RA$,g$):LOCALSC%,aA%:aA%=FNshell_HeapBlockFetch(260):!aA%=0:$(aA%+4)=J$+CHR$(0):IFg$=""THENg$="Message from "+RA$
 1160IFNE%THEN
 1161SYS&400DF,aA%,19,g$TO,SC%
 1162ELSESYS&400DF,aA%,17,g$TO,SC%
 1164ENDIF:PROCshell_HeapBlockReturn(aA%):=SC%
 1171DEFPROCshell_CreateWindow(t$,RETURNk%):LOCALLB%:LB%=FNshell_GetWB(t$):LB%!64=_U%!16:SYS&400C1,,LB%TOk%:ENDPROC
 1181DEFFNshell_CreateWindow2(N,l%,uD%,mD%,BE%,SA%,ZC%,TA%,rA%,pA%):LOCALQ%:Q%=FNshell_HeapBlockFetch(&BB8):Q%!0=ZC%:Q%!4=TA%:Q%!8=rA%:Q%!&C=pA%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=l%:Q%?32=7:Q%?33=2:Q%?34=uD%:Q%?35=mD%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=SA%
 1189Q%!48=BE%: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%TOk%:PROCshell_HeapBlockReturn(Q%):=k%
 1197DEFFNshell_WindowHasTitleBar(c%):=(FNshell_WindowGetFlags(c%)AND1<<26)
 1202DEFFNshell_WindowIsMoveable(c%):=(FNshell_WindowGetFlags(c%)AND1<<1)
 1207DEFFNshell_WindowIsAPane(c%):=(FNshell_WindowGetFlags(c%)AND1<<5)
 1212DEFFNshell_WindowIsNotBounded(c%):=(FNshell_WindowGetFlags(c%)AND1<<6)
 1217DEFFNshell_WindowTrapsHotKeys(c%):=(FNshell_WindowGetFlags(c%)AND1<<&C)
 1222DEFFNshell_WindowIsOpen(c%):=(FNshell_WindowGetFlags(c%)AND1<<16)
 1227DEFFNshell_WindowIsOnTop(c%):=(FNshell_WindowGetFlags(c%)AND1<<17)
 1232DEFFNshell_WindowHasBeenToggled(c%):=(FNshell_WindowGetFlags(c%)AND1<<18)
 1237DEFFNshell_WindowHasInputFocus(c%):=(FNshell_WindowGetFlags(c%)AND1<<20)
 1242DEFFNshell_WindowHasBackIcon(c%):=(FNshell_WindowGetFlags(c%)AND1<<24)
 1247DEFFNshell_WindowHasCloseIcon(c%):=(FNshell_WindowGetFlags(c%)AND1<<25)
 1252DEFFNshell_WindowHasToggleIcon(c%):=(FNshell_WindowGetFlags(c%)AND1<<27)
 1257DEFFNshell_WindowHasVScrollBar(c%):=(FNshell_WindowGetFlags(c%)AND1<<28)
 1262DEFFNshell_WindowHasAdjustSizeIcon(c%):=(FNshell_WindowGetFlags(c%)AND1<<29)
 1267DEFFNshell_WindowHasHScrollBar(c%):=(FNshell_WindowGetFlags(c%)AND1<<30)
 1272DEFFNshell_WindowGetFlags(c%):LOCALl%,a%:a%=FNshell_HeapBlockFetch(36):a%!0=c%:SYS&400CB,,a%:l%=a%!32:PROCshell_HeapBlockReturn(a%):=l%
 1283DEFFNshell_WindowTitleFlags(c%):LOCALl%,a%:a%=FNshell_HeapBlockFetch(&BB8):a%!0=c%:SYS&400CC,,a%:l%=a%!60:PROCshell_HeapBlockReturn(a%):=l%
 1295DEFFNshell_WindowTitleHasBorder(c%):=(FNshell_WindowTitleFlags(c%)AND1<<2)
 1300DEFFNshell_WindowTitleIsSprite(c%):=(FNshell_WindowTitleFlags(c%)AND1<<1)
 1305DEFFNshell_WindowTitleIsText(c%):=(FNshell_WindowTitleFlags(c%)AND1<<0)
 1310DEFFNshell_WindowTitleIsHCentred(c%):=(FNshell_WindowTitleFlags(c%)AND1<<3)
 1315DEFFNshell_WindowTitleIsVCentred(c%):=(FNshell_WindowTitleFlags(c%)AND1<<4)
 1320DEFFNshell_WindowTitleIsFilled(c%):=(FNshell_WindowTitleFlags(c%)AND1<<5)
 1325DEFFNshell_WindowTitleIsAAliased(c%):=(FNshell_WindowTitleFlags(c%)AND1<<6)
 1330DEFFNshell_WindowTitleIsIndirected(c%):=(FNshell_WindowTitleFlags(c%)AND1<<8)
 1335DEFFNshell_WindowGetTitle(c%):LOCALQ$,a%:a%=FNshell_HeapBlockFetch(&BB8):a%!0=c%:SYS&400CC,,a%:IF(a%!32AND1<<26)THEN
 1342IF((a%!60)AND256)=0THEN
 1344Q$=$(a%+76)
 1345ELSEQ$=$(!(a%+76))
 1348ENDIF
 1349ENDIF:PROCshell_HeapBlockReturn(a%):=Q$
 1355DEFFNshell_WindowTitleBufferLength(c%):LOCALjA%,a%:a%=FNshell_HeapBlockFetch(&BB8):a%!0=c%:SYS&400CC,,a%:IF((a%!60)AND256)=0THEN
 1361jA%=&C
 1362ELSEjA%=a%!84
 1364ENDIF:PROCshell_HeapBlockReturn(a%):=jA%
 1370DEFPROCshell_WindowMoveToIcon(c%,EE%,e%,BB%,DB%):LOCALa%:a%=FNshell_HeapBlockFetch(50):a%!0=EE%:a%!4=e%:SYS&400CE,,a%:PROCshell_WindowMoveTo(c%,a%!8+BB%,a%!20+DB%):PROCshell_HeapBlockReturn(a%):ENDPROC
 1381DEFPROCshell_WindowMoveTo(c%,JA%,KA%):LOCALOD%,ID%,d%,a%:a%=FNshell_HeapBlockFetch(&BB8):a%!0=c%:SYS&400CC,,a%:OD%=a%!&C-a%!4:ID%=a%!16-a%!8:a%!4=JA%:a%!8=KA%:a%!&C=JA%+OD%:a%!16=KA%+ID%:SYS&400C5,,a%:SYS&400C6,,a%:d%=FNshell_SearchStatic(_U%!&B8,c%):IFd%>-1THEN
 1400PROCshell_OpenWindowStatic(c%)
 1401ELSEPROCshell_OpenWindowDynamic(c%,0,0)
 1403ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 1409DEFPROCshell_WindowBringToTop(c%):LOCALEB%:EB%=FNshell_HeapBlockFetch(256):EB%!0=c%:SYS&400CB,,EB%:EB%!28=-1:SYS&400E7,2,EB%,c%:SYS&400C7,0,EB%:PROCshell_HeapBlockReturn(EB%):ENDPROC
 1424DEFPROCshell_UpdateWindow(k%,ZC%,TA%,rA%,pA%):LOCALa%:a%=FNshell_HeapBlockFetch(a%):a%!0=k%:a%!4=ZC%:a%!8=TA%:a%!&C=rA%:a%!16=pA%:SYS&400C9,,a%TOwB%:SYS&400CB,,a%:PROCshell_HeapBlockReturn(a%):ENDPROC
 1435DEFPROCshell_OpenWindowDynamic(c%,BB%,DB%):LOCALp%,hB%:hB%=FNshell_HeapBlockFetch(20):_U%!20=c%:SYS&400CF,,hB%:SYS&400D4,,c%,hB%!0+BB%,hB%!4+DB%:PROCshell_HeapBlockReturn(hB%):ENDPROC
 1446DEFFNshell_ClaimKeypress:IF_U%!20<>0THEN
 1449SYS&400D4,,-1:p%=FNshell_DeleteWindow(_U%!20):_U%!20=0
 1452ENDIF:=TRUE
 1458DEFPROCshell_OpenWindow(c%,fC%,FD%):LOCALd%,a%,n%,g%,HD%,FC%,dA%,qA%:LOCALoB%,dB%,pA%,ED%,QD%,iB%:d%=FNshell_GetEventListOffset(c%,-1,_U%+304,&C,FALSE):IFd%>=0THEN
 1463a%=_U%!304+d%:b%=a%!8:PROCshell_Tracef0("OpenWindow:About to call "+"FN"+$b%):iB%=EVAL("FN"+$b%):IFiB%=0THENENDPROC
 1470ENDIF:dB%=FALSE:pA%=FNshell_HeapBlockFetch(&64):pA%!0=c%:SYS&400CB,,pA%:IF(pA%!32AND&80000)=&80000THENdB%=TRUEELSEdB%=FALSE
 1475PROCshell_HeapBlockReturn(pA%):_Q%!0=c%:IFNOTfC%THENSYS&400CB,,_Q%
 1478IFdB%THEN
 1479SYS&400C5,,_Q%
 1480ENDIF:d%=FNshell_GetEventListOffset(c%,-1,_U%+92,24,FALSE):IFd%>-1THEN
 1483a%=(_U%!92)+d%:QB%=a%!8:dC%=a%!&C:FB%=a%!16:RB%=a%!20:_Q%!0=c%:IFFD%THENFC%=-1ELSEFC%=_Q%!28
 1488IFNOTfC%THEN
 1489SYS&400CB,,_Q%
 1490ENDIF:n%=FNshell_HeapBlockFetch(&400):g%=0:WHILEQB%!g%<>-1:n%!0=QB%!g%:IFHD%=0THENHD%=n%!0
 1497ED%=n%!0:SYS&400CB,,n%:oB%=dC%!g%:CASEoB%OF
 1502WHEN0,1:dA%=n%!16-n%!8:qA%=n%!&C-n%!4:n%!4=_Q%!4+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16+RB%!g%:n%!8=n%!16-dA%
 1509WHEN2:dA%=n%!16-n%!8:qA%=_Q%!&C-_Q%!4:n%!4=_Q%!4+FB%!g%:n%!&C=_Q%!&C:n%!16=_Q%!16+RB%!g%:n%!8=n%!16-dA%
 1517WHEN3:dA%=_Q%!16-_Q%!8:qA%=n%!&C-n%!4:n%!4=_Q%!4+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16:n%!8=_Q%!8+RB%!g%
 1525WHEN4:dA%=n%!16-n%!8:qA%=_Q%!&C-_Q%!4:n%!4=_Q%!4+FB%!g%:n%!&C=_Q%!&C:n%!16=_Q%!8+dA%+RB%!g%:n%!8=n%!16+dA%
 1533WHEN5:dA%=_Q%!16-_Q%!8:qA%=n%!&C-n%!4:n%!4=_Q%!&C-qA%+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16:n%!8=_Q%!8
 1541ENDCASE:IFg%=0THEN
 1543n%!28=FC%
 1544ELSEn%!28=QD%
 1546ENDIF:SYS&400C5,,n%:QD%=n%!0:g%+=4:ENDWHILE:IFNOTdB%THEN
 1552_Q%!28=ED%:SYS&400C5,,_Q%
 1554ENDIF:PROCshell_HeapBlockReturn(n%)
 1556ELSE_Q%!0=c%:IFNOTfC%THENSYS&400CB,,_Q%
 1560IFFC%=-2THEN_Q%!28=-2
 1561IFFD%=-1THEN_Q%!28=-1
 1562SYS&400C5,,_Q%
 1563ENDIF:ENDPROC
 1569DEFPROCshell_CloseWindow(c%):LOCALd%,a%,QB%,dC%,FB%,RB%,t%,iB%:d%=FNshell_GetEventListOffset(c%,-1,_U%+308,&C,FALSE):IFd%>=0THEN
 1573a%=_U%!308+d%:b%=a%!8:PROCshell_Tracef0("CloseWindow:About to call "+"FN"+$b%):iB%=EVAL("FN"+$b%):IFiB%=0THENENDPROC
 1580ENDIF:t%=FNshell_HeapBlockFetch(60):IFc%>0THEN
 1583d%=FNshell_GetEventListOffset(c%,-1,_U%+92,24,FALSE):IFd%>-1THEN
 1585a%=(_U%!92)+d%:dC%=a%!&C:FB%=a%!16:RB%=a%!20:g%=0:QB%=a%!8:WHILEQB%!g%<>-1:t%!0=QB%!g%:SYS&400C6,,t%:g%+=4:ENDWHILE
 1598ENDIF:t%!0=c%:SYS&400C6,,t%
 1601ENDIF:PROCshell_HeapBlockReturn(t%):ENDPROC
 1608DEFFNshell_DeleteWindow(k%):LOCALt%:t%=FNshell_HeapBlockFetch(20):IFk%<>0THEN
 1612IFFNoktodeletew(k%)THEN
 1613PROCshell_EventDeleteAll(k%):IFk%=_U%!20THEN_U%!20=0
 1615d%=FNshell_SearchStatic(_U%!&B8,k%):IFd%>-1THEN
 1617b%=_U%!&B8+d%:b%!0=0
 1619ENDIF:t%!0=k%:SYS&400C3,,t%:k%=0
 1624ENDIF
 1625ENDIF:PROCshell_HeapBlockReturn(t%):=k%
 1631DEFFNoktodeletew(k%):=-1
 1636DEFFNoktoclosew(k%):=-1
 1641DEFPROCcliprect(A,RETURNIA%,RETURNNA%,RETURNLE%,RETURNXE%):LOCAL_%,DA%:PROClwaorigin(A,_%,DA%):IA%=A!24-_%:NA%=A!28-DA%:LE%=A!32-_%:XE%=A!36-DA%:ENDPROC
 1649DEFFNpoll(bB%,SD%):SYS&400C7,bB%,_Q%TOx%:=x%
 1655DEFFNshell_Poll_I(bB%,SD%):SYS&400C7,bB%,_Q%TOx%:SYS&81686,x%,,SD%:=x%
 1661DEFPROCshell_DoBackgroundTask:ENDPROC
 1665DEFFNshell_IconIsDraggable(c%,e%):LOCALl%,b%,a%:a%=FNshell_HeapBlockFetch(50):a%!0=c%:a%!4=e%:SYS&400CE,,a%:l%=a%!24:b%=(l%AND&6000):PROCshell_HeapBlockReturn(a%):IFb%=&6000=TRUEELSE=FALSE
 1676=0
 1680DEFPROCshell_IconDragBox(c%,e%):LOCALa%,H,J,BD%,l%,BA%,PD%,WD%,SB%,j$:BD%=FNshell_GetEventListOffset(c%,e%,_U%+72,24,FALSE):IFBD%>=0THEN
 1686a%=FNshell_HeapBlockFetch(6000):!a%=c%:SYS&400CC,,a%:H=a%!4-a%!20:J=a%!16-a%!24:WD%=a%!68:a%!4=e%:SYS&400CE,,a%:!a%=c%:a%!4=5:l%=a%!24:SB%=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:a%!32=&7FFFFFFF:a%!36=&7FFFFFFF
 1701SYS6,&A1,28TO,,BA%:PD%=((BA%AND2)=2):IFPD%THEN
 1704BA%=l%:IF(BA%AND256)THEN
 1706j$=FNshell_IconGetCommand(SB%,"s")
 1707ENDIF:IF(BA%AND2)=0THENERROR99,FNshell_MessageNoArgs("SHELLMSG19")
 1709IFj$<>""THEN
 1710SYS&42400,&85,WD%,j$,a%+8:_U%!&64=_U%!&64OR1
 1712ELSESYS&400D0,,a%
 1714ENDIF
 1715ELSESYS&400D0,,a%
 1717ENDIF:PROCshell_HeapBlockReturn(a%)
 1719ELSEPROCshell_Tracef0("IconDragBox:WARNING! no drag handler registered for this icon!")
 1721ENDIF:ENDPROC
 1727DEFPROCshell_HandleAttachedMenu(_Q%,c%,e%):LOCALq%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 1731IFe%<>-1ANDc%>-1THEN
 1732q%=FNshell_GetEventMenu(_Q%!8,c%,e%):IFq%<>0THEN
 1734PROCshell_OpenMenu(_Q%!0-64,_Q%!4,q%)
 1735ENDIF
 1736ENDIF:ENDPROC
 1742DEFPROCshell_Action(qD%):LOCALA$,q%,l$,VA$,sA%,ZA%,kA%,sC%:LOCALc%,e%,p%,_temp28%,_temp32%,_temp24%,_temp%,cC%:LOCALfB%,d%:CASEqD%OF
 1748WHEN0:PROCshell_DoBackgroundTask
 1750WHEN1:PROCshell_RedrawWindow(_Q%!0)
 1751WHEN2:PROCshell_OpenWindow(_Q%!0,TRUE,0)
 1752WHEN3:PROCshell_CloseWindow(_Q%!0)
 1754WHEN4:PROCshell_PointerLeavingWindow
 1757WHEN5:PROCshell_PointerEnteringWindow
 1759WHEN6:_U%!28=_Q%!&C:_U%!32=_Q%!16:ZA%=_Q%!0:kA%=_Q%!4:_U%!272=_Q%!0:_U%!276=_Q%!4:_temp28%=_Q%!&C:_temp32%=_Q%!16:e%=_Q%!16:PROCshell_Tracef0("Action:Mouse_Click event detected")
 1764PROCshell_Tracef0("Action:Window Handle was &"+STR$~_Q%!&C+" Icon Handle was "+STR$_Q%!16):IF_Q%!&C=_U%!288AND_Q%!16=_U%!292THEN
 1768PROCshell_HandleBumpIcons(_U%!296,_Q%!&C,_Q%!16)
 1769ELSE_U%!288=-1:_U%!292=-1:_U%!296=-1:IF_Q%!16>=0THEN
 1772d%=FNshell_GetEventListOffset(_Q%!&C,_Q%!16,_U%+&68,16,0):IFd%>=0THENPROCshell_HandleBumpIcons(d%,_Q%!&C,_Q%!16)
 1774ENDIF
 1775ENDIF:IF(_Q%!8=64)THEN
 1779jA%=FNshell_IconIsDraggable(_Q%!&C,_Q%!16):IFjA%THEN
 1781R$="Icon is draggable":PROCshell_IconDragBox(_Q%!&C,_Q%!16)
 1784ELSER$="Icon is not draggable"
 1786ENDIF:PROCshell_Tracef0("Action:"+R$)
 1788ENDIF:CASE_Q%!8OF
 1790WHEN4:PROCshell_ActionSelectButton
 1791WHEN2:PROCshell_ActionMenuButton
 1792WHEN1:PROCshell_ActionAdjustButton
 1793ENDCASE
 1794WHEN7:IF_U%!&64AND1THEN
 1795SYS&42401:_U%!&64=_U%!&64EOR1
 1797ENDIF:_U%!&80=0:A$=FNshell_GetEventHandler(_U%!28,_U%!32,6):IFA$<>""THEN
 1803PROCshell_Tracef0("Action:Drag event detected - function is "+A$):p%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 1805ELSEPROCshell_Tracef0("Action:Drag event detected - no handler function"):PROCshell_SendDataSave(_U%!28,_U%!32)
 1809ENDIF
 1810WHEN8:PROCshell_Tracef0("Action:keypress is="+STR$_Q%!24):CASE_Q%!24OF
 1813WHEN&D,398,399:sC%=FNshell_WriteableIconHandler(_Q%!0,_Q%!4,_Q%!24)
 1815OTHERWISEsC%=FNshell_HotKeyProcess(_Q%!24)
 1817ENDCASE:IFNOTsC%THEN
 1819PROCshell_Tracef0("Action:Keypress not claimed, passing it on"):SYS&400DC,_Q%!24
 1821ELSEPROCshell_Tracef0("Action:Keypress claimed by this application")
 1823ENDIF
 1824WHEN9:PROCshell_ActionMenuSelect(_Q%)
 1825WHEN17,18:PROCshell_Receive(_Q%)
 1826WHEN19:PROCshell_UserMessageAcknowledge(_Q%)
 1827ENDCASE:ENDPROC
 1833DEFPROCshell_ActionSelectButton:PROCshell_Tracef0("ActionSelectButton:Mouse Button was SELECT"):PROCshell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):A$=FNshell_GetEventHandler(_U%!28,_U%!32,2):IF_U%!32=0THEN
 1840PROCshell_DataSaveCheckName(_U%!28,_U%!32)
 1841ENDIF:IFA$<>""THEN
 1843PROCshell_IconSlab(4,_U%!28,_U%!32):PROCshell_Tracef0("ActionSelectButton:About to call "+"FN"+A$+"("+STR$_temp28%+","+STR$_temp32%+")"):p%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 1848ENDIF:IF_U%!32=0THEN
 1851IF_U%!28=_U%!20THEN
 1852SYS&400D4,,-1
 1853ENDIF
 1854ENDIF:ENDPROC
 1859DEFPROCshell_ActionMenuButton:LOCALb%,q%:PROCshell_Tracef0("ActionMenuButton:Mouse Button was MENU"):b%=TRUE:IFINKEY(-1)THENb%=FNshiftmenuclick(_Q%!&C,_Q%!16)
 1866IFb%THEN
 1867PROCshell_Tracef0("ActionMenuButton:Checking menu events.."):q%=FNshell_GetEventMenu(_Q%!8,_Q%!&C,_Q%!16):PROCshell_Tracef0("ActionMenuButton:Menu handle is:"+STR$q%):IFq%<>0THEN
 1871PROCshell_OpenMenu(_Q%!0,_Q%!4,q%):_U%!24=q%:_U%!36=_Q%!0:_U%!40=_Q%!4:_U%!52=_U%!28:_U%!56=_U%!32
 1877ENDIF
 1878ENDIF:ENDPROC
 1884DEFPROCshell_ActionMenuSelect(_Q%):LOCALmC%,sA%,fB%,cC%,p%,sB%:sB%=FNshell_HeapBlockFetch(256):PROCshell_Tracef0("ActionMenuSelect:Menu_Select event detected"):SYS&400CF,,_shell_blk%:sA%=FNshell_HeapBlockFetch(256):IF_U%!24=_U%!&FCTHEN
 1895fB%=0:_U%!264=1
 1896ELSEfB%=FNshell_CheckSelection(_Q%):IFfB%>-1THEN_U%!264=1ELSE_U%!264=0
 1899ENDIF:IF_U%!264>0THEN
 1901SYS&8D084,_Q%+fB%,sA%TOcC%:IFcC%=1THEN
 1905PROCshell_Tracef0("ActionMenuSelect:FontMenu selection ("+FNshell_GetString(sA%)+")"):PROCshell_FontMenuSelectFont(FNshell_GetString(sA%),_U%!260):IF_shell_FontMenuSelFN$=""THEN
 1909SYS&400D5,,_U%!24,_Q%,sA%:A$=FNshell_GetEventHandler(_U%!52,_U%!56,0):_temp%=sA%:$_temp%=FNshell_StringStripTrailing($_temp%," "):IFA$<>""THENp%=EVAL("FN"+A$+"($_temp%)")
 1914ELSEIF_shell_FontMenuSelFN$<>""THEN
 1916p%=EVAL("FN"+_shell_FontMenuSelFN$+"(FNshell_FontMenuGetLastSelectedFont)")
 1917ENDIF
 1918ENDIF
 1919ENDIF
 1920ENDIF:PROCshell_HeapBlockReturn(sA%):IF_U%!264=0THEN
 1924SYS&45BC4,_U%!24,_Q%TOmC%,,sB%:IFmC%THENPROCshell_MenuCallHandler(mC%,sB%)
 1926ENDIF:IF_shell_blk%!8=1THEN
 1928PROCshell_Tracef0("HILKE::Adjust button"):IFFNshell_HeapBlockExists(_U%!&E0)THEN
 1930PROCshell_Tracef0("HILKE::Stored warn_fn exists"):_temp%=_U%!&E0:IF$_temp%<>""THEN
 1934PROCshell_Tracef0("HILKE::Calling last warn_fn ("+$_temp%+")"):p%=EVAL("FN"+$_temp%+"(_U%!52,_U%!56)")
 1936ENDIF
 1937ENDIF:PROCshell_OpenMenu(_U%!36,_U%!40,_U%!24)
 1939ELSE_shell_FontMenuSelFN$=""
 1941ENDIF:PROCshell_HeapBlockReturn(sB%):ENDPROC
 1948DEFPROCshell_ActionAdjustButton:PROCshell_Tracef0("Action:Mouse Button was ADJUST"):PROCshell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):A$=FNshell_GetEventHandler(_U%!28,_U%!32,3):IFA$<>""THEN
 1953PROCshell_IconSlab(1,_U%!28,_U%!32):p%=EVAL("FN"+A$+"(_temp28%,_temp32%)")
 1955ENDIF:ENDPROC
 1959DEFFNshiftmenuclick(c%,e%):=TRUE
 1964DEFPROCshell_IconSlab(pB%,c%,e%):LOCALa%:a%=FNshell_HeapBlockFetch(50):a%!8=pB%:a%!&C=c%:a%!16=e%:SYS&81680,,a%:a%!8=0:SYS&81680,,a%:PROCshell_HeapBlockReturn(a%):ENDPROC
 1975DEFPROCshell_PointerLeavingWindow:ENDPROC
 1978DEFPROCshell_PointerEnteringWindow:ENDPROC
 1982DEFPROCshell_RedrawWindow(k%):LOCALwB%,A$,_%,DA%,a%:a%=FNshell_HeapBlockFetch(&64):A$=FNshell_GetEventHandler(k%,-1,4):a%!0=k%:SYS&400C8,,a%TOwB%:_%=a%!4-a%!20:DA%=a%!16-a%!24:WHILEwB%:SYS&81681,,a%:IFA$<>""THENp%=EVAL("FN"+A$+"("+STR$a%+","+STR$_%+","+STR$DA%+")")
 1992SYS&400CA,,a%TOwB%:ENDWHILE:PROCshell_HeapBlockReturn(a%):ENDPROC
 2000DEFPROCshell_Receive(_Q%):LOCALb%,p%:CASE_Q%!16OF
 2003WHEN0:PROCshell_Exit:END
 2004WHEN1:PROCshell_DataSave(_Q%)
 2005WHEN2:PROCshell_DataSaveAck(_Q%)
 2006WHEN3:PROCshell_DataLoad(_Q%,FALSE)
 2007WHEN4:PROCshell_DataLoadAck(_Q%)
 2008WHEN5:PROCshell_DataLoad(_Q%,TRUE)
 2009WHEN6:PROCshell_RAMFetch(_Q%)
 2010WHEN7:PROCshell_RAMTransmit(_Q%)
 2011WHEN8:PROCshell_Message_PreQuit(_Q%)
 2012WHEN9:IF_U%!&A4>0THEN
 2014PROCshell_Tracef0("Receive:PaletteChange message received"):b%=_U%!&A4:p%=EVAL("FN"+$b%)
 2018ENDIF
 2019WHEN&A:PROCshell_Message_SaveDesktop(_Q%)
 2020WHEN&E:PROCshell_Message_Shutdown(_Q%)
 2021WHEN&502:PROCshell_InteractiveHelp(_Q%)
 2022WHEN&400C0:PROCshell_MenuWarning(_Q%)
 2023WHEN&400C1:PROCshell_Message_ModeChange(_Q%)
 2024WHEN&400C2:IF_U%!&A8>0THEN
 2027PROCshell_Tracef0("Receive:TaskInitialise message received"):b%=_U%!&A8:p%=EVAL("FN"+$b%)
 2031ENDIF:IF_U%!&D0=-1ANDFNshell_GetString(_Q%+28)="StrongHelp"THEN
 2033_U%!&D0=_Q%!4:PROCshell_StrongHlpMsg("Help_Install -DieWithTask "+FNshell_GetAppDir+"."+FNshell_GetAppName):b%=_U%!&D8:IF$b%<>""THEN
 2037PROCshell_HelpWord($b%):PROCshell_HeapBlockReturn(_U%!&D8):_U%!&D8=0
 2040ENDIF
 2041ENDIF
 2042WHEN&400C3:IF_U%!&AC>0THEN
 2045PROCshell_Tracef0("Receive:TaskCloseDown message received"):b%=_U%!&AC:p%=EVAL("FN"+$b%)
 2049ENDIF:IF_Q%!4=_U%!&D0THEN_U%!&D0=-1
 2051WHEN&400C7:PROCshell_Tracef0("Receive:TaskNameIs message received"):IFFNshell_GetString(_Q%+28)="StrongHelp"THEN
 2056_U%!&D0=_Q%!20
 2057ELSEPROCshell_ScanForHelp
 2059ENDIF
 2060OTHERWISEPROCshell_HandleUnknownMessage2(_Q%)
 2061ENDCASE:ENDPROC
 2067DEFPROCshell_Message_ModeChange(_Q%):IF_U%!&A0>0THEN
 2069PROCshell_Tracef0("Message_ModeChange:ModeChange message received"):b%=_U%!&A0:p%=EVAL("FN"+$b%)
 2072ENDIF:ENDPROC
 2078DEFPROCshell_Message_Shutdown(_Q%):IF_U%!312>0THEN
 2080PROCshell_Tracef0("Message_Shutdown:Shutdown message received"):b%=_U%!312:p%=EVAL("FN"+$b%)
 2083ENDIF:ENDPROC
 2088DEFPROCshell_HandleUnknownMessage2(_Q%):LOCALb$:CASE_Q%!16OF
 2093WHEN&43B00:b$=$(_Q%+20):IFLEFT$(b$,20)="EvntShellLib:TraceOn"THEN
 2096PROCshell_TraceOn
 2097ENDIF:IFLEFT$(b$,21)="EvntShellLib:TraceOff"THEN
 2099PROCshell_TraceOff
 2100ENDIF:IFLEFT$(b$,28)="EvntShellLib:ListClickSelect"THEN
 2102PROCshell_ListClickSelect
 2103ENDIF:IFLEFT$(b$,28)="EvntShellLib:ListClickAdjust"THEN
 2105PROCshell_ListClickAdjust
 2106ENDIF:IFLEFT$(b$,25)="EvntShellLib:ListHelpTags"THEN
 2108PROCshell_ListHelpTags
 2109ENDIF
 2110ENDCASE:PROCshell_HandleUnknownMessage(_Q%):ENDPROC
 2118DEFPROCshell_HandleUnknownMessage(_Q%):ENDPROC
 2124DEFPROCshell_AttachPreQuitHandler(A$):LOCALb%,p%:IF_U%!300>0THENPROCshell_HeapBlockReturn(_U%!300)
 2127_U%!300=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!300:$b%=A$:ENDPROC
 2134DEFPROCshell_AttachShutdownHandler(A$):LOCALb%,p%:IF_U%!312>0THENPROCshell_HeapBlockReturn(_U%!312)
 2137_U%!312=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!312:$b%=A$:ENDPROC
 2144DEFPROCshell_AttachModeChangeHandler(A$):LOCALb%,p%:IF_U%!&A0>0THENPROCshell_HeapBlockReturn(_U%!&A0)
 2147_U%!&A0=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!&A0:$b%=A$:p%=EVAL("FN"+A$):ENDPROC
 2155DEFPROCshell_AttachPaletteChangeHandler(A$):LOCALb%,p%:IF_U%!&A4>0THENPROCshell_HeapBlockReturn(_U%!&A4)
 2158_U%!&A4=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!&A4:$b%=A$:p%=EVAL("FN"+A$):ENDPROC
 2166DEFPROCshell_AttachTaskInitialiseHandler(A$):LOCALb%,p%:IF_U%!&A8>0THENPROCshell_HeapBlockReturn(_U%!&A8)
 2169_U%!&A8=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!&A8:$b%=A$:ENDPROC
 2176DEFPROCshell_AttachTaskCloseDownHandler(A$):LOCALb%,p%:IF_U%!&AC>0THENPROCshell_HeapBlockReturn(_U%!&AC)
 2179_U%!&AC=FNshell_HeapBlockFetch(LENA$+1):b%=_U%!&AC:$b%=A$:ENDPROC
 2186DEFPROCshell_RAMFetch(_Q%):LOCALnE%,QC%,XC%:XC%=FALSE:IF_U%!&90>&8000THEN
 2197PROCshell_Tracef0("RAMFetch:RAMFetch called.."):_Q%!&C=_Q%!8:_Q%!16=7:QC%=_U%!&88:IF_U%!&8C=&FF9THEN
 2208_U%!&90+=4
 2209ENDIF:IF(QC%-_U%!&80)<_Q%!24THEN
 2212_Q%!24=QC%-_U%!&80:XC%=TRUE
 2214ELSEPROCshell_Tracef0("RAMFetch:Sending block")
 2218ENDIF: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:IFXC%THEN_U%!&80=0
 2224ENDIF:ENDPROC
 2229DEFPROCshell_RAMTransmit(_Q%):LOCALd%,a%,FA$,b%:IF_Q%!&C=_U%!&70THEN
 2233_U%!&80+=_Q%!24:IF_Q%!24<_U%!&84THEN
 2237PROCshell_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)
 2244PROCshell_Tracef0("RAMTransmit:offset%="+STR$d%):b%=_U%!&9C:FA$=FNshell_GetString(b%+44):PROCshell_UserFNLoadFile(b%!40,_U%!&98,a%!8,FA$,_U%!&84,a%)
 2251ELSEPROCshell_Tracef0("RAMTransmit:Block received"):IF_U%!&80>_U%!&84THEN
 2260PROCshell_Tracef0("RAMTransmit:Increasing buffer size.."):_U%!&98=FNshell_HeapBlockExtend(_U%!&98,_U%!&80,_U%!&84)
 2263ENDIF:_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
 2270ENDIF
 2271ELSEPROCshell_HeapBlockReturn(_U%!&98):_U%!&98=0:PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG15"))
 2276ENDIF:ENDPROC
 2281DEFFNshell_LoadFile(oE%):LOCALf$,AB%,tB%,lA%:f$=FNshell_GetString(_Q%+44):AB%=FNshell_FileLength(f$):IFAB%<0THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG16"))
 2286lA%=FNshell_HeapBlockFetch(AB%):SYS&20008,16,f$,lA%,0TO;tB%:IFFNshell_VFlag(tB%)THEN
 2289PROCshell_HeapBlockReturn(lA%):PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG17"))
 2291ELSEPROCshell_Tracef0("LoadFile:File "+f$+" loaded ok at &"+STR$~lA%)
 2295ENDIF:=lA%
 2312DEFFNshell_VFlag(tB%):=((tB%AND1)=1)
 2318DEFFNshell_CheckType(w%,GB%,uB%):LOCALpE%,g%,j%,b%,vB%:g%=0:j%=-1:vB%=FALSE:IF_U%!&64AND1<<1THEN_U%!&64=_U%!&64EOR1<<1
 2325WHILEGB%!g%<>-1:b%=GB%!g%:IFb%AND1<<31THEN
 2328b%=b%EOR1<<31:vB%=TRUE
 2330ELSEvB%=FALSE
 2332ENDIF:IFb%=w%THEN
 2334j%=g%:IFvB%THEN
 2336_U%!&64=_U%!&64OR1<<1:PROCshell_Tracef0("CheckType:Top Bit Load detected..")
 2340ENDIF
 2341ENDIF:g%+=4:ENDWHILE:IFuB%AND(w%>=4096)THENj%=-1
 2346IFj%>-1THEN
 2347PROCshell_Tracef0("CheckType:File type OK "+STR$~GB%!j%)
 2348ELSEPROCshell_Tracef0("CheckType:File type NOT ok "+STR$~w%)
 2350ENDIF:IFj%<>-1THEN=TRUEELSE=FALSE
 2357DEFPROCshell_Exit:LOCALKB%:KB%=_U%!68:SYS&61504,KB%:SYS&2001E,7,,KB%:PROCshell_Tracef0("Exit:Application closing down"):PROCshell_TraceExit:SYS&406C2:SYS&400D0,,-1:PROCshell_WimpCloseDown_I(_U%!&94):ENDPROC
 2374DEFPROCshell_DataLoad(_Q%,uB%):LOCALkE%,d%,a%,_temp%,GB%,w%,c$:w%=_Q%!40:c$=FNshell_GetString(_Q%+44):PROCshell_Tracef0("DataLoad:DataLoad message received"):IFuB%THEN
 2387IF_U%!96<>0THEN
 2388d%=0
 2389ELSEd%=-1
 2391ENDIF
 2392ELSEd%=FNshell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,FALSE):IFd%=-1THEN
 2397d%=FNshell_GetEventListOffset(_Q%!20,-1,_U%+96,16,FALSE)
 2398ENDIF
 2399ENDIF:IFd%>-1THEN
 2402a%=_U%!96+d%:IFFNshell_CheckType(_Q%!40,a%!8,uB%)THEN
 2406PROCshell_Tracef0("DataLoad:File type recognised (&"+STR$~_Q%!40+")"):CE%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4:SYS&400E7,18,_Q%,_Q%!4:IF_U%!&64AND1<<1THEN
 2413lA%=-1:_U%!&64=_U%!&64EOR1<<1
 2415ELSElA%=FNshell_LoadFile(CE%=_U%!&6C)
 2417ENDIF:PROCshell_UserFNLoadFile(w%,lA%,a%!8,c$,_Q%!36,a%):IF_U%!&9C<>0THEN
 2421PROCshell_HeapBlockReturn(_U%!&9C):_U%!&9C=0
 2423ENDIF
 2424ELSEPROCshell_Tracef0("DataLoad:File type NOT recognised (&"+STR$~_Q%!40+")")
 2428ENDIF
 2429ENDIF:ENDPROC
 2436DEFPROCshell_UserFNLoadFile(w%,lA%,GB%,_filename$,_file_size%,a%):LOCALg%,j%,b%,p%:g%=0:j%=-1:WHILEGB%!g%<>-1:b%=GB%!g%:IFb%AND1<<31THENb%=b%EOR1<<31
 2443IFb%=w%THENj%=g%
 2444g%+=4:ENDWHILE:b%=a%!&C:p%=EVAL("FN"+$(b%!j%)+"("+STR$lA%+","+STR$w%+",_filename$,"+STR$_file_size%+")"):ENDPROC
 2453DEFPROCshell_DataSave(_Q%):LOCALb%,d%,a%,m%:PROCshell_Tracef0("DataSave:DataSave message received"):IF_Q%!4<>_U%!&94THEN
 2464d%=FNshell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,FALSE):IFd%>-1THEN
 2466a%=_U%!96+d%:IFFNshell_CheckType(_Q%!40,a%!8,FALSE)THEN
 2469PROCshell_Tracef0("DataSave:Filetype recognized (&"+STR$~_Q%!40+")"):IFFNshell_TopBitLoadInProgressTHEN
 2476PROCshell_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
 2483ELSEPROCshell_HeapBlockReturn(_U%!&9C):_U%!&9C=FNshell_HeapBlockFetch((_Q%!0)+8):b%=_U%!&9C:FORm%=0TO_Q%!0STEP4:b%!m%=_Q%!m%:NEXTm%:_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
 2504_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")
 2511ENDIF
 2512ELSEPROCshell_Tracef0("DataSave:Filetype NOT recognized")
 2516ENDIF
 2517ENDIF
 2518ENDIF:ENDPROC
 2530DEFFNshell_TopBitLoadInProgress:IF_U%!&64AND1<<1THEN=TRUEELSE=FALSE
 2535DEFPROCshell_SendDataSave(c%,e%):LOCALa%,LA%,HB%,d%,AB%,p%:HB%=FNshell_HeapBlockFetch(30):SYS&400CF,,HB%:d%=FNshell_GetEventListOffset(c%,e%,_U%+72,24,FALSE):IFd%=-1ORd%=-2THEN
 2543p%=FNshell_MessageWindow(FNshell_MessageNoArgs("SHELLMSG13"),0,"",FNshell_MessageNoArgs("warning"))
 2544ELSEa%=(_U%!72)+d%:IFa%!8>&8000THEN
 2547AB%=FNshell_HeapBlockInfo(a%!8)-4
 2548ELSEAB%=a%!8
 2550ENDIF:LA%=_U%!76:LA%!0=256:LA%!&C=0:LA%!16=1:LA%!20=HB%!&C:LA%!24=HB%!16:LA%!28=HB%!0:LA%!32=HB%!4:LA%!36=AB%:LA%!40=a%!&C:$(LA%+44)=FNshell_Leaf(FNshell_IconGetData(c%,a%!16)):SYS&400E7,18,LA%,LA%!20,LA%!24:_U%!&78=_Q%!8:_U%!&88=AB%:_U%!&8C=a%!&C
 2566_U%!&90=a%!8:_U%!&9C=a%!4:_U%!&C8=LA%!20:_U%!&CC=LA%!24
 2570ENDIF:PROCshell_HeapBlockReturn(HB%):ENDPROC
 2576DEFPROCshell_DataSaveAck(_Q%):LOCAL_fullname$,x%,TA%,a%,b%,p%:PROCshell_Tracef0("DataSaveAck:DataSaveAck message received"):x%=0:TA%=_Q%?(44+x%):WHILETA%<>0:_fullname$+=CHR$(TA%):x%+=1:TA%=_Q%?(44+x%):ENDWHILE:PROCshell_Tracef0("DataSaveAck:Full save name is: "+_fullname$)
 2589PROCshell_Tracef0("DataSaveAck:task="+STR$_Q%!4):PROCshell_Tracef0("DataSaveAck:mytask="+STR$_U%!&94):d%=FNshell_GetEventListOffset(_U%!28,_U%!32,_U%+72,24,FALSE):IFd%=-1ORd%=-2THENERROR99,FNshell_MessageNoArgs("SHELLMSG05")
 2594a%=(_U%!72)+d%:b%=a%!20:IF$b%<>""THEN
 2598p%=EVAL("FN"+$b%+"(_fullname$)")
 2599ELSEIFFNshell_HeapBlockExists(a%!8)THEN
 2604SYS8,&A,_fullname$,a%!&C,,a%!8,a%!8+FNshell_HeapBlockInfo(a%!8)+1
 2605ELSEERROR99,FNshell_MessageNoArgs("SHELLMSG21")
 2608ENDIF
 2609ENDIF:IF_Q%!36>-1THEN
 2612IF_U%!80<>0THENPROCshell_HeapBlockReturn(_U%!80)
 2613_U%!80=FNshell_HeapBlockFetch(LEN_fullname$+1):b%=_U%!80:$b%=_fullname$
 2616ENDIF:_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
 2627PROCshell_Tracef0("DataSaveAck:Sending DataLoad Message"):SYS&400E7,18,_Q%,_Q%!20,_Q%!24:IF_U%!28<>_U%!20THEN
 2633PROCshell_CloseWindow(_U%!28)
 2634ENDIF:SYS&400D4,,-1:ENDPROC
 2640DEFPROCshell_DataSaveCheckName(c%,e%):LOCALd%,a%,o%:a%=_U%!72:d%=0:IFa%<>0THEN
 2648o%=FNshell_HeapBlockInfo(a%)-8:REPEAT:IF!(a%+d%)=c%THEN
 2654W$=FNshell_IconGetData(!a%,a%!16):IFINSTR(W$,".")=0THENPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG01"))
 2656d%=o%
 2657ENDIF:d%+=24:UNTILd%>=o%
 2660ENDIF:ENDPROC
 2665DEFPROCshell_DataLoadAck(_Q%):PROCshell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)"):ENDPROC
 2673DEFPROCshell_UserMessageAcknowledge(_Q%):CASE_Q%!16OF
 2675WHEN3:PROCshell_AckDataLoad(_Q%)
 2676WHEN6:PROCshell_AckRAMFetch(_Q%)
 2677ENDCASE:ENDPROC
 2682DEFPROCshell_AckDataLoad(_Q%):IF_Q%!&C<>_U%!84THEN
 2687SYS&20008,6,"<Wimp$Scrap>":ERROR&FF,"Data Transfer failed: Receiver died"
 2689ENDIF:ENDPROC
 2694DEFPROCshell_AckRAMFetch(_Q%):LOCALVD%,b%:b%=_U%!&9C:PROCshell_Tracef0("AckRAMFetch:AckRAMFetch called...."):IF_Q%!&C<>_U%!&70THEN
 2703IF_U%!&80=0THEN
 2706PROCshell_Tracef0("AckRAMFetch:Receiver does not support RAM transfer"):SYS&20023,"Wimp$Scrap",,-1,0,3TO,,VD%:IFVD%<>0THEN
 2710$(b%+44)="<Wimp$Scrap>"+CHR$(0):b%!0=(49+LEN(FNshell_GetString(b%+44)))ANDNOT3:b%!&C=b%!8:b%!16=2:b%!36=-1:SYS&400E7,18,b%,b%!4:_U%!&6C=b%!8
 2717ELSEPROCshell_OK(FNshell_MessageNoArgs("SHELLMSG14"))
 2719ENDIF
 2720ELSEPROCshell_Tracef0("AckRAMFetch:RAM transfer started, but not enough data sent. Sender died?"):PROCshell_HeapBlockReturn(_U%!&98):_U%!&98=0:PROCshell_OK("SHELLMSG06")
 2729ENDIF
 2730ENDIF:ENDPROC
 2736DEFPROCshell_MenuWarning(_Q%):LOCALA$,sA%,JA%,KA%,p%,_temp%,x%,C$,IB%,a%:JA%=_Q%!24:KA%=_Q%!28:_U%!264=0:IF_U%!20<>0THEN
 2741PROCshell_Tracef0("MenuWarning:Removing last dynamic dbox (handle=&"+STR$~_U%!20+")"):p%=FNshell_DeleteWindow(_U%!20):PROCshell_Tracef0("MenuWarning:Last dynamic dbox removed")
 2747ENDIF:CASE_Q%!20OF
 2753WHEN_U%!&E4:PROCshell_WindowRetitle(_U%!&E4,FNshell_MessageNoArgs("warning")):PROCshell_IconPutData(_U%!&E4,1,FNshell_MessageNoArgs("SHELLMSG07"),0):VDU7:SYS&400E8,,_U%!&E4,JA%,KA%
 2761OTHERWISEIB%=FNshell_MenuGetItemAddress(_U%!24,_Q%+32):IFFNshell_HeapBlockExists(IB%!4)THEN
 2766PROCshell_MenuWarnDBox(IB%,JA%,KA%)
 2767ELSEa%=FNshell_HeapBlockFetch(32):SYS&45BC4,_U%!24,_Q%+32TO,,a%:PROCshell_FindMenuWarnEvent(a%!8,C$,D$):PROCshell_HeapBlockReturn(a%):PROCshell_MenuWarnSubMenu(_Q%!20,JA%,KA%,C$,D$)
 2774ENDIF
 2775ENDCASE:ENDPROC
 2781DEFPROCshell_MenuWarnDBox(YA%,JA%,KA%):LOCALb%,z%,p%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 2785b%=YA%!4:PROCshell_CreateWindow($b%!0,z%):RESTOREERROR:PROCshell_Tracef0("MenuWarnDBox:Creating new dynamic dbox (handle=&"+STR$~z%+")"):IF$b%!4<>""THEN
 2793PROCshell_Tracef0("MenuWarnDBox:Calling preopen FN '"+$b%!4+"'"):p%=EVAL("FN"+$b%!4+"("+STR$z%+")")
 2796ENDIF:IF$b%!8<>""THEN
 2799PROCshell_Tracef0("MenuWarnDBox:Calling postopen FN '"+$b%!8+"'"):p%=EVAL("FN"+$b%!8+"("+STR$z%+")")
 2802ENDIF:SYS&400E8,,z%,JA%,KA%:_U%!20=z%:ENDPROC
 2811DEFPROCshell_FindMenuWarnEvent(UA%,RETURNC$,RETURND$):LOCALjA%,s%,b%,d%,j%,o%,u%,g%:LOCALJB%:JB%=0:s%=_U%!&DC:d%=0:j%=FALSE:C$="":JB%=0:IFFNshell_HeapBlockExists(s%)THEN
 2817REPEAT:g%+=4:UNTILs%!g%=-1:o%=g%:g%=0:PROCshell_Tracef0("FindMenuWarnEvent:list_size%="+STR$o%):REPEAT:b%=!(s%+d%+0):IFb%<>-1THEN
 2827IFb%=UA%THEN
 2828j%=TRUE:u%=s%!(d%+4):C$=$u%:JB%=s%!(d%+8):u%=s%!(d%+&C):D$=$u%:PROCshell_Tracef0("FindMenuWarnEvent:submenu found")
 2835ENDIF:d%+=16
 2837ELSEd%=o%
 2839ENDIF:UNTILj%ORd%>=o%
 2841ELSEC$="":D$=""
 2843ENDIF:IFJB%=0THENPROCshell_Tracef0("FindMenuWarnEvent:warn fn not found..")
 2847ENDPROC
 2852DEFPROCshell_MenuWarnSubMenu(RC%,JA%,KA%,C$,D$):LOCALp%,b%,mA%,g%:_shell_FontMenuSelFN$=D$:IFFNshell_HeapBlockExists(_U%!&E0)THENPROCshell_HeapBlockReturn(_U%!&E0)
 2856_U%!&E0=FNshell_HeapBlockFetch(LENC$+1):b%=_U%!&E0:$b%=C$:IFC$<>""THEN
 2859p%=EVAL("FN"+C$+"(_U%!52,_U%!56)"):PROCshell_Tracef0("MenuWarnSubMenu:Calling FN"+C$)
 2863ENDIF:IFRC%=_U%!&FCTHEN
 2868PROCshell_Tracef0("MenuWarnSubMenu:FontMenu opening.."):IFFNshell_HeapBlockExists(_U%!256)THENPROCshell_HeapBlockReturn(_U%!256)
 2873g%=0:REPEAT:g%+=4:UNTIL!(_Q%+32+g%)=-1:g%+=4:_U%!256=FNshell_HeapBlockFetch(g%):b%=_U%!256:g%=0:REPEAT:b%!g%=!(_Q%+32+g%):g%+=4:UNTIL!(_Q%+32+g%)=-1:b%!g%=!(_Q%+32+g%):b%=_U%!256
 2883PROCshell_Tracef0("MenuWarnSubMenu:Selecting '"+FNshell_FontMenuGetLastSelectedFont+"' in FontMenu.."):SYS&8D082,FNshell_FontMenuGetLastSelectedFont,_U%!260TO,mA%:_U%!264=1:IFmA%<>_U%!&FCTHEN
 2889PROCshell_FontMenuUpdatePtr(mA%):_U%!&FC=mA%:RC%=mA%
 2891ENDIF
 2892ELSE_U%!264=0
 2894ENDIF:SYS&400E8,,RC%,JA%,KA%:ENDPROC
 2902DEFPROCshell_AttachSubMenu(iA%,JB%,C$):SYS&45BCE,iA%,JB%:IFC$<>""THEN
 2905SYS&45BCC,,TRUE:PROCshell_EventListMenuWarn(iA%,JB%,C$,"")
 2907ENDIF:ENDPROC
 2913DEFPROCshell_EventListMenuWarn(iA%,hD%,C$,D$):LOCALb%,u%,g%,s%:IF_U%!&DC=0THEN
 2917_U%!&DC=FNshell_HeapBlockFetch(32):b%=_U%!&DC:b%!0=iA%:b%!4=FNshell_HeapBlockFetch(LENC$+1):$(b%!4)=C$:b%!8=hD%:b%!&C=FNshell_HeapBlockFetch(LEND$+1):$(b%!&C)=D$:b%!16=-1:b%!20=-1:b%!24=-1:b%!28=-1
 2926ELSEs%=FNshell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=s%:g%=0:REPEAT:g%+=16:UNTILs%!g%=-1:b%=_U%!&DC:b%!g%=iA%:b%!(g%+4)=FNshell_HeapBlockFetch(LENC$+1):u%=b%!(g%+4):$(u%)=C$:b%!(g%+8)=hD%:b%!(g%+&C)=FNshell_HeapBlockFetch(LEND$+1):u%=b%!(g%+&C):$(u%)=D$
 2940b%!(g%+16)=-1:b%!(g%+20)=-1:b%!(g%+24)=-1:b%!(g%+28)=-1
 2942ENDIF:ENDPROC
 2948DEFPROCshell_InteractiveHelp(_Q%):LOCALI$,R$,E$,uA%,TC%,WA$:I$=FNshell_GetEventHandler(_Q%!32,_Q%!36,8):E$=FNshell_IconGetValidation(_Q%!32,_Q%!36):IFE$<>""THEN
 2954IFFNshell_StringUpperCase(LEFT$(E$,1))="I"THEN
 2955uA%=INSTR(E$,";"):IFuA%=0THEN
 2958I$=MID$(E$,2)
 2959ELSEI$=MID$(E$,2,uA%-2)
 2961ENDIF
 2962ELSEuA%=INSTR(FNshell_StringUpperCase(E$),FNshell_StringUpperCase(";i")):TC%=INSTR(FNshell_StringUpperCase(E$),FNshell_StringUpperCase(";"),uA%+1):IFuA%>0THEN
 2966IFTC%>0THEN
 2967I$=MID$(E$,uA%+2,TC%-uA%-2)
 2968ELSEI$=MID$(E$,uA%+2)
 2970ENDIF
 2971ENDIF
 2972ENDIF
 2973ENDIF:IFI$<>""THEN
 2975_Q%!16=&503:_Q%!&C=_Q%!8:R$=FNshell_MessageLookup(I$,"",""):R$=FNshell_MessageExpand(R$):$(_Q%+20)=R$:!_Q%=(LENR$+25)ANDNOT3:SYS&400E7,17,_Q%,_Q%!4
 2981ENDIF:ENDPROC
 2986DEFPROCack:ENDPROC
 2992DEFPROCshell_Message_PreQuit(_Q%):LOCALb%,UC%,a%,m%,VC%:IF_U%!300>0THEN
 2995a%=FNshell_HeapBlockFetch(256):FORm%=0TO_Q%!0STEP4:a%!m%=_Q%!m%:NEXTm%:PROCshell_Tracef0("Message_PreQuit:PreQuit message received"):b%=_U%!300:UC%=a%!4:IF!a%<24THENVC%=0ELSEVC%=a%!20
 3007a%!&C=a%!8:SYS&400E7,19,a%,UC%:IFEVAL("FN"+$b%)<>0THEN
 3010IFVC%AND1THEN
 3012_closedown%=TRUE
 3013ELSE!a%=24:a%!24=508:SYS&400E7,8,a%,UC%:_closedown%=TRUE
 3018ENDIF
 3019ENDIF:PROCshell_HeapBlockReturn(a%)
 3021ENDIF:ENDPROC
 3027DEFPROClwaorigin(A,RETURNJA%,RETURNKA%):JA%=A!0-A!16:KA%=A!&C-A!20:ENDPROC
 3034DEFFNshell_Iconbar(CA%,i$,J$,WC%,q%,VB%,WB%,qB%):LOCALk%:IFJ$=""THEN
 3037!_Q%=CA%:_Q%!4=0:_Q%!8=0:_Q%!&C=70:_Q%!16=70:_Q%!20=&301A:$(_Q%+24)=i$
 3038ELSE!_Q%=CA%:_Q%!4=0:_Q%!8=-16:_Q%!&C=WC%:_Q%!16=90:_Q%!20=&1700210B:DIM_Q%!24&C:DIM_Q%!28LEN(i$)+2:$(_Q%!24)=J$:$(_Q%!28)="S"+i$:_Q%!32=&C
 3045ENDIF:SYS&400C2,,_Q%TOk%:PROCshell_AttachMenu(-2,k%,q%,VB%,WB%,qB%):=k%
 3053DEFPROCshell_IconbarSetText(z%,sD%,H$):LOCALi%:i%=FNshell_HeapBlockFetch(40):!i%=z%:i%!4=sD%:SYS&400CE,,i%:$(i%!28)=H$:SYS&400D1,-1,i%!8-&C8,i%!&C,i%!16+&C8,i%!20:PROCshell_HeapBlockReturn(i%):ENDPROC
 3066DEFFNshell_WriteableIconHandler(c%,e%,EA%):LOCALcE%,zB%,jB%,g%:LOCALYC%,kB%,cA%,ZA%,kA%,hE%,FA%:FA%=FNshell_HeapBlockFetch(24):SYS&400D3,,FA%:IFFA%!0=-1THEN
 3072PROCshell_HeapBlockReturn(FA%):=FALSE
 3074ENDIF:SYS&400D6,c%,FA%,&40E000,&E000:zB%=FA%!0:g%=0:REPEAT:IFFA%!g%=e%THEN
 3080YC%=FA%!(g%-4):kB%=FA%!(g%+4)
 3081ENDIF:g%+=4:UNTILFA%!g%=-1:jB%=FA%!(g%-4):CASEEA%OF
 3086WHEN&D:IFe%=jB%THEN
 3089SYS&400DC,&D
 3091ELSESYS&400D2,c%,kB%,-1,-1,-1,LEN(FNshell_IconGetData(c%,kB%))
 3093ENDIF
 3094WHEN398:IFe%=jB%THEN
 3096SYS&400D2,c%,zB%,-1,-1,-1,LEN(FNshell_IconGetData(c%,zB%))
 3097ELSESYS&400D2,c%,kB%,-1,-1,-1,LEN(FNshell_IconGetData(c%,kB%))
 3099ENDIF
 3100WHEN399:IFe%=zB%THEN
 3102SYS&400D2,c%,jB%,-1,-1,-1,LEN(FNshell_IconGetData(c%,jB%))
 3103ELSESYS&400D2,c%,YC%,-1,-1,-1,LEN(FNshell_IconGetData(c%,YC%))
 3105ENDIF
 3106ENDCASE:PROCshell_HeapBlockReturn(FA%):=TRUE
 3112DEFPROCshell_FakeMouseClick(c%,e%,pB%):SYS6,&F,1:_Q%!8=pB%:_Q%!&C=c%:_Q%!16=e%:PROCshell_Action(6):ENDPROC
 3120DEFFNshell_IconCreate(c%,fA%,SA%,WC%,z%,aC%,bC%,xD%,S$,YA%,BC%,E$):LOCAL_D%,k%,SB%,i%:i%=FNshell_HeapBlockFetch(40):i%!0=c%:i%!4=fA%:i%!8=SA%:i%!&C=fA%+WC%:i%!16=SA%+z%:i%!20=xD%ORbC%<<28ORaC%<<24:IFi%!20AND256THEN
 3128_D%=INSTR(S$,","):i%!24=YA%:IFE$<>""THEN
 3131SB%=FNshell_HeapBlockFetch(LENE$+1):$SB%=E$:i%!28=SB%
 3134ELSEi%!28=-1
 3136ENDIF:i%!32=BC%
 3138ELSE$(i%+24)=LEFT$(S$,&B)
 3140ENDIF:SYS&400C2,,i%TOk%:PROCshell_HeapBlockReturn(i%):=k%
 3147DEFPROCshell_IconDelete(c%,e%):PROCshell_DoIconDelete(c%,e%,FALSE):ENDPROC
 3153DEFPROCshell_IconDelete2(c%,e%):PROCshell_DoIconDelete(c%,e%,TRUE):ENDPROC
 3159DEFPROCshell_DoIconDelete(c%,e%,IE%):LOCALa%,_%,DA%,IA%,NA%:a%=FNshell_HeapBlockFetch(40):a%!0=c%:a%!4=e%:SYS&400CE,,a%:SYS&8168A,,a%+8:_%=a%!8:DA%=a%!&C:IA%=a%!16:NA%=a%!20:SYS&400CE,,a%:IFFNshell_HeapBlockExists(a%!28)THENPROCshell_HeapBlockReturn(a%!28)
 3168IFFNshell_HeapBlockExists(a%!32)THENPROCshell_HeapBlockReturn(a%!32)
 3169SYS&400C4,,a%:IFIE%THEN
 3171SYS&400D1,c%,_%,DA%,IA%,NA%
 3172ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 3178DEFPROCshell_IconPutData(QA%,vA%,S$,I):LOCALa%:a%=FNshell_HeapBlockFetch(50):a%!0=QA%:a%!4=vA%:SYS&400CE,,a%:IF(a%!24AND(1<<8))<>0THEN
 3185IFLENS$>a%!36THENERROR99,FNshell_MessageNoArgs("SHELLMSG12")
 3186$(a%!28)=S$
 3187ELSE$(a%+28)=LEFT$(S$,&B)
 3189ENDIF:IFI<>0THEN
 3191a%!8=0:a%!&C=0:SYS&400CD,,a%:PROCshell_EnsurePoll
 3195ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 3201DEFFNshell_IconNewSprite(QA%,vA%,MA$,I):LOCALi%:i%=FNshell_HeapBlockFetch(40):i%!0=QA%:i%!4=vA%:SYS&400CE,,i%:SYS&400C4,,i%:i%!4=i%!8:i%!8=i%!&C:i%!&C=i%!16:i%!16=i%!20:i%!20=i%!24:$(i%+24)=MA$:SYS&400C2,,i%TOvA%:IFITHENSYS&400D1,i%!0,i%!4,i%!8,i%!&C,i%!16
 3211PROCshell_HeapBlockReturn(i%):=vA%
 3216DEFFNshell_IconGetData(QA%,vA%):LOCALT$,i%:i%=FNshell_HeapBlockFetch(40):i%!0=QA%:i%!4=vA%:SYS&400CE,,i%:IF(i%!24AND(1<<8))<>0THENT$=$(i%!28)ELSET$=$(i%+28)
 3223PROCshell_HeapBlockReturn(i%):=T$
 3228DEFFNshell_IconMove2(c%,e%,XD%,YD%):LOCALVA%:VA%=FNshell_HeapBlockFetch(40):!VA%=c%:VA%!4=e%:SYS&400CE,,VA%:VA%!8+=XD%:VA%!16+=XD%:VA%!&C+=YD%:VA%!20+=YD%:e%=FNshell_IconMove(c%,e%,VA%!8,VA%!&C,VA%!16,VA%!20):PROCshell_HeapBlockReturn(VA%):=e%
 3241DEFFNshell_IconResize(c%,e%,_%,DA%,IA%,NA%):=FNshell_IconMove(c%,e%,_%,DA%,IA%,NA%)
 3246DEFFNshell_IconMove(c%,e%,_%,DA%,IA%,NA%):LOCALRA%,qE%,eE%,gA%,a%:LOCALyC%,zC%,_C%,AD%:RA%=FNshell_HeapBlockFetch(40):a%=FNshell_HeapBlockFetch(40):!RA%=c%:RA%!4=e%:SYS&400CE,,RA%:!a%=c%:a%!4=e%:SYS&400CE,,a%:SYS&8168A,,a%+8:jD%=RA%!24:hC%=RA%+28
 3256yC%=jD%:zC%=hC%!0:_C%=hC%!4:AD%=hC%!8:gA%=RA%!8-a%!8:SYS&400C4,,RA%:SYS&400D1,!RA%,RA%!8-gA%,RA%!&C-gA%,RA%!16+gA%,RA%!20+gA%:e%=FNshell_CreateIcon2(c%,_%,DA%,IA%,NA%,yC%,zC%,_C%,AD%,gA%):PROCshell_HeapBlockReturn(RA%):PROCshell_HeapBlockReturn(a%):=e%
 3267DEFFNshell_CreateIcon2(k%,_%,DA%,IA%,NA%,l%,nD%,vD%,HE%,gA%):LOCALr%,y%,J$,X$,fA%,SA%:y%=FNshell_HeapBlockFetch(60):!y%=k%:y%!20=l%:y%!24=nD%:y%!28=vD%:y%!32=HE%:J$="":X$="":IFl%AND1THEN
 3274IFl%AND256J$=$(y%!24)ELSEJ$=$(y%+24)
 3275ENDIF:IFl%AND2THEN
 3277IFl%AND256THEN
 3278X$=FNshell_IconGetCommand(y%!28,"S")
 3279ELSEX$=$(y%+24)
 3281ENDIF
 3282ENDIF:PROCshell_GetMinXY(l%,J$,X$):IFIA%-_%<fA%THENIA%=_%+fA%
 3285IFNA%-DA%<SA%THENNA%=DA%+SA%
 3286y%!4=_%:y%!8=DA%:y%!&C=IA%:y%!16=NA%:SYS&400C2,,y%TOr%:SYS&400D1,!y%,y%!4-gA%,y%!8-gA%,y%!&C+gA%,y%!16+gA%:SYS&400D3,,y%:IF!y%=k%:IFy%!4=r%:SYS&400D2,k%,r%,0,0,-1,0
 3291PROCshell_HeapBlockReturn(y%):=r%
 3296DEFPROCshell_GetMinXY(l%,J$,X$):LOCAL_%,DA%,IA%,NA%,ZA%,kA%:fA%=0:SA%=0:IFl%AND1ANDJ$<>""THEN
 3300IFl%AND64THEN
 3301SYS&40084,l%>>24TO,,DA%,,NA%:SYS&40097,,CHR$26+CHR$(l%>>24)+J$TO,_%,,IA%:SYS&40088,,_%TO,_%:SYS&40088,,IA%TO,IA%:fA%=IA%-_%:SA%=NA%-DA%
 3306ELSEfA%=6*fE%+16*LENJ$:SA%=32
 3307ENDIF:IFl%AND4SA%+=2*lE%
 3309ENDIF:IFl%AND2ANDX$<>""THEN
 3311SYS&2002E,296,FNshell_UserSpritesBase,X$TO,,,ZA%,kA%,,DD%;P%:IF(P%AND1)=0THEN
 3313SYS&20035,DD%,4TO,,iD%:ZA%=ZA%<<iD%:SYS&20035,DD%,5TO,,kD%:kA%=kA%<<kD%:IFl%AND&800ZA%=ZA%/2:kA%=kA%/2
 3316IF(l%AND539)=19ZA%=fA%+ZA%
 3317IFZA%>fA%fA%=ZA%
 3318IFkA%>SA%SA%=kA%
 3319ENDIF
 3320ENDIF:ENDPROC
 3325DEFFNshell_IconGetCommand(CC%,PA$):LOCALI%,T$:IFCC%<=0THEN
 3328T$=""
 3329ELSEI%=INSTR(";"+FNshell_StringUpperCase($CC%),";"+FNshell_StringUpperCase(PA$)):IFI%=0THEN
 3332T$=""
 3333ELSET$=LEFT$($(CC%+I%),INSTR($(CC%+I%)+";",";")-1)
 3335ENDIF
 3336ENDIF:=T$
 3341DEFPROCshell_IconRedraw(c%,e%):LOCALa%:a%=FNshell_HeapBlockFetch(40):!a%=c%:a%!4=e%:SYS&400CE,,a%:SYS&8168A,,a%+8:SYS&400D1,c%,a%!8,a%!&C,a%!16,a%!20:PROCshell_Action(FNshell_Poll_I(0,_U%!&94)):PROCshell_HeapBlockReturn(a%):ENDPROC
 3354DEFFNshell_IconGetValidation(c%,e%):LOCALa%,E$,l%:IFe%=-1THEN=""
 3357E$="":a%=FNshell_HeapBlockFetch(&64):a%!0=c%:a%!4=e%:SYS&400CE,,a%:l%=a%!24:IFl%AND256THEN
 3365IFa%!32>0THENE$=$(a%!32)
 3366ENDIF:PROCshell_HeapBlockReturn(a%):=E$
 3372DEFPROCshell_IconPutValidation(c%,e%,m$):LOCALa%,l%:a%=FNshell_HeapBlockFetch(&64):a%!0=c%:a%!4=e%:SYS&400CE,,a%:l%=a%!24:IFl%AND256THEN
 3379$(a%!32)=m$
 3380ENDIF:PROCshell_HeapBlockReturn(a%):ENDPROC
 3386DEFFNshell_IsIconSelected(wA%,xA%):LOCALb%:PROCshell_IconGetState(wA%,xA%):l%=_Q%!24:b%=(l%AND&200000):IFb%=0THEN=FALSE
 3392=TRUE
 3397DEFPROCshell_IconSelect(wA%,xA%):PROCshell_IconSetState(wA%,xA%,&200000,&200000):ENDPROC
 3404DEFPROCshell_IconDeselect(wA%,xA%):PROCshell_IconSetState(wA%,xA%,0,&200000):ENDPROC
 3411DEFPROCshell_IconGetState(wA%,xA%):!_Q%=wA%:_Q%!4=xA%:SYS&400CE,,_Q%:ENDPROC
 3420DEFPROCshell_IconSetSelected(c%,e%,MA%):IFMA%=0THEN
 3422PROCshell_IconDeselect(c%,e%)
 3423ELSEPROCshell_IconSelect(c%,e%)
 3425ENDIF:ENDPROC
 3431DEFPROCshell_IconSet(c%,e%,MA%):IFMA%=0THEN
 3433PROCshell_IconDeselect(c%,e%)
 3434ELSEPROCshell_IconSelect(c%,e%)
 3436ENDIF:ENDPROC
 3441DEFPROCshell_IconSetState(wA%,xA%,zD%,FE%):LOCALi%:i%=FNshell_HeapBlockFetch(16):!i%=wA%:i%!4=xA%:i%!8=zD%:i%!&C=FE%:SYS&400CD,,i%:PROCshell_HeapBlockReturn(i%):ENDPROC
 3454DEFPROCshell_IconUnselectable(k%,GE%):PROCshell_IconSetState(k%,GE%,&400000,&40000):ENDPROC
 3460DEFPROCshell_IconSetBGColour(c%,e%,NB%):IFNB%<0ORNB%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG24","PROCshell_IconSetBGColour")
 3462PROCshell_IconSetState(c%,e%,NB%<<28,&F0000000):ENDPROC
 3467DEFPROCshell_IconSetFGColour(c%,e%,NB%):IFNB%<0ORNB%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG24","PROCshell_IconSetFGColour")
 3469PROCshell_IconSetState(c%,e%,NB%<<24,&F000000):ENDPROC
 3475DEFPROCshell_CaretSetPosition(QA%,vA%,JE%,KE%,dA%,cA%):SYS&400D2,QA%,vA%,JE%,KE%,dA%,cA%:ENDPROC
 3482DEFPROCshell_IconSetButtonType(c%,e%,nB%):IFnB%=&CORnB%=&DTHENERROR99,FNshell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType")
 3484IFnB%<0ORnB%>&FTHENERROR99,FNshell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType")
 3485PROCshell_IconSetState(c%,e%,nB%<<&C,&F000):ENDPROC
 3490DEFPROCshell_IconSetESG(c%,e%,iC%):IFiC%<0ORiC%>31THENERROR99,FNshell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG")
 3492PROCshell_IconSetState(c%,e%,iC%<<16,&1F0000):ENDPROC
 3498DEFPROCshell_IconSetText(c%,e%,v%):IFv%<>0THENv%=1<<0
 3500PROCshell_IconSetState(c%,e%,v%,1<<0):ENDPROC
 3506DEFPROCshell_IconSetSprite(c%,e%,v%):IFv%<>0THENv%=1<<1
 3508PROCshell_IconSetState(c%,e%,v%,1<<1):ENDPROC
 3513DEFPROCshell_IconSetBorder(c%,e%,v%):IFv%<>0THENv%=1<<2
 3515PROCshell_IconSetState(c%,e%,v%,1<<2):ENDPROC
 3521DEFPROCshell_IconSetHCentred(c%,e%,v%):PROCshell_IconSetState(c%,e%,0,1<<9):IFv%<>0THENv%=1<<3
 3524PROCshell_IconSetState(c%,e%,v%,1<<3):ENDPROC
 3530DEFPROCshell_IconSetVCentred(c%,e%,v%):IFv%<>0THENv%=1<<4
 3532PROCshell_IconSetState(c%,e%,v%,1<<4):ENDPROC
 3538DEFPROCshell_IconSetFilled(c%,e%,v%):IFv%<>0THENv%=1<<5
 3540PROCshell_IconSetState(c%,e%,v%,1<<5):ENDPROC
 3546DEFPROCshell_IconSetRightJust(c%,e%,v%):PROCshell_IconSetHCentred(c%,e%,0):IFv%<>0THENv%=1<<9
 3549PROCshell_IconSetState(c%,e%,v%,1<<9):ENDPROC
 3555DEFPROCshell_IconSetLeftJust(c%,e%):PROCshell_IconSetHCentred(c%,e%,0):PROCshell_IconSetRightJust(c%,e%,0):ENDPROC
 3563DEFPROCshell_IconSetUnselectable(c%,e%,MA%):LOCALFA%:IFMA%<>0THENMA%=1<<22
 3566PROCshell_IconSetState(c%,e%,MA%,1<<22):IFMA%<>0THEN
 3569FA%=FNshell_HeapBlockFetch(24):SYS&400D3,,FA%:IF!FA%=c%ANDFA%!4=e%THEN
 3572SYS&400D2,-1
 3573ENDIF:PROCshell_HeapBlockReturn(FA%)
 3575ENDIF:ENDPROC
 3581DEFPROCshell_CaretSetRight(c%,e%):SYS&400D2,c%,e%,-1,-1,-1,LEN(FNshell_IconGetData(c%,e%)):ENDPROC
 3588DEFPROCprint_text(F,G,J$):IFFNin(F,G-32,F+16*LEN(J$),G)THEN
 3590MOVEF,G:PRINTJ$
 3592ENDIF:ENDPROC
 3597DEFFNin(A%,B%,C%,D%):IFC%<YTHEN=FALSE
 3599IFA%>ZTHEN=FALSE
 3600IFB%>PTHEN=FALSE
 3601IFD%<QTHEN=FALSE
 3602=TRUE
 3606DEFPROCnewvals: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:a=L:b=L-S:ENDPROC
 3617DEFFNmax(x%,TA%):IFx%<TA%THEN=TA%
 3619=x%
 3622DEFFNshell_Leaf(M$):WHILEINSTR(M$,"."):M$=MID$(M$,INSTR(M$,".")+1):ENDWHILE:=M$
 3630DEFFNshell_Branch(c$):LOCALCA%,n$,b%:IFINSTR(c$,".")=0THEN
 3633n$=""
 3634ELSEb%=0:REPEAT:CA%=b%+1:b%=INSTR(c$,".",CA%):UNTILb%=0:n$=LEFT$(c$,CA%-2)
 3641ENDIF:=n$
 3646DEFFNgname(C):o$="":WHILE?C<>0AND?C<>&D:o$=o$+CHR$?C:C+=1:ENDWHILE:=o$
 3655DEFPROCshell_WindowResize(QA%,PE%,QE%,RE%,SE%,EC%):!_Q%=PE%:_Q%!4=QE%:_Q%!8=RE%:_Q%!&C=SE%:SYS&400D7,QA%,_Q%:IFEC%THEN
 3659_Q%!0=QA%:SYS&400CC,,_Q%:SYS&400C5,,_Q%
 3662ENDIF:ENDPROC
 3667DEFPROCshell_WindowRetitle(QA%,Q$):LOCALb%,t%:t%=FNshell_HeapBlockFetch(6000):t%!0=QA%:SYS&400CC,,t%:IF((t%!60)AND256)=0THEN
 3674b%=t%+76:$b%=LEFT$(Q$,&B):SYS&400C3,,t%:SYS&400C1,,t%+4
 3678ELSE$(!(t%+76))=Q$:IF((t%!32)AND(1<<16))<>0THEN
 3683SYS&400D1,-1,t%!4,t%!16,t%!&C,t%!16+44
 3684ENDIF:PROCshell_HeapBlockReturn(t%)
 3686ENDIF:ENDPROC
 3691DEFFNshell_WindowTitleIndirected(oB%):IF(oB%AND(1<<8))=(1<<8)THEN=TRUE
 3693=FALSE
 3697DEFPROCshell_ScreenToWindowCoords(WE%,RETURNX%,RETURNY%):LOCALjC%,LD%,bE%,MD%,ND%,OB%:OB%=FNshell_HeapBlockFetch(600):jC%=OB%:!jC%=WE%:SYS&400CC,,jC%:LD%=OB%!4:lD%=OB%!16:MD%=OB%!20:ND%=OB%!24:X%=X%+(MD%-LD%):Y%=Y%+(ND%-lD%):PROCshell_HeapBlockReturn(OB%):ENDPROC
 3714DEFFNshell_WimpSlotReadEnd:LOCALYB%:SYS&400EC,-1,-1TOYB%:=YB%
 3721DEFFNshell_WimpSlotClaimMemory(YB%,yA%):LOCALkC%:SYS&400EC,YB%+yA%,-1TOkC%:IFkC%<YB%+yA%THEN=-1
 3725=kC%
 3729DEFPROCshell_WimpSlotReleaseMemory:SYS&400EC,YB%,-1:ENDPROC
 3735DEFPROCshell_MouseLimit(A,QA%):A!0=QA%:SYS&400CB,,A:PROCmouse_rectangle(A!4,A!8,A!&C-A!4,A!16-A!8):ENDPROC
 3742DEFFNshell_NameOfFirstSprite(LA$):LOCALX%,N%,p$:X%=OPENIN(LA$):PTR#X%=4:N%=BGET#X%:N%+=BGET#X%*256:N%+=BGET#X%*65536:N%+=BGET#X%*&1000000:PTR#X%=N%:p$="":FORN%=0TO&B:p$+=CHR$(BGET#X%):NEXT:CLOSE#X%:=p$
 3760DEFPROCInitialiseSpriteArea(S%,oD%):!S%=oD%:S%!8=16:SYS46,9+256,S%:ENDPROC
 3767DEFPROCshell_ListEvents(c%,r%):IFc%=-1THENc%=-2
 3769PRINT"MenuSelection="+FNshell_GetEventHandler(c%,r%,0):PRINT"MenuMaker    ="+FNshell_GetEventHandler(c%,r%,1):PRINT"ClickSelect  ="+FNshell_GetEventHandler(c%,r%,2):PRINT"ClickAdjust  ="+FNshell_GetEventHandler(c%,r%,3):PRINT"Redraw       ="+FNshell_GetEventHandler(c%,r%,4)
 3774PRINT"Keypress     ="+FNshell_GetEventHandler(c%,r%,5):PRINT"Drag         ="+FNshell_GetEventHandler(c%,r%,6):PRINT"Menu Warning ="+FNshell_GetEventHandler(c%,r%,7):PRINT"HelpTag      ="+FNshell_GetEventHandler(c%,r%,8):q%=FNshell_GetEventMenu(2,c%,r%):PRINT"Menu Address =";
 3780IFq%=0THEN
 3781PRINT" None"
 3782ELSEPRINTSTR$q%
 3784ENDIF:ENDPROC
 3792DEFPROCshell_HeapManagerInit(M$,pD%):DIMZB%900:OSCLI("LOAD "+M$+"heapcode "+STR$~ZB%):CALLZB%+0,pD%:ENDPROC
 3800DEFFNshell_HeapBlockExists(YA%):LOCALp%:LOCALERROR:ONERRORLOCAL:RESTOREERROR:=FALSE
 3804IFYA%<&8000THENERROR99,"No heapblock defined at this address"
 3805p%=FNshell_HeapBlockInfo(YA%):RESTOREERROR:=TRUE
 3814DEFFNshell_HeapBlockExtend(x%,TA%):CALLZB%+&C,x%,TA%:=x%
 3822DEFFNshell_HeapBlockFetch(x%):LOCALYA%:CALLZB%+4,YA%,x%:=YA%
 3830DEFPROCshell_HeapBlockReturn(RETURNx%):IFFNshell_HeapBlockExists(x%)THENCALLZB%+8,x%
 3832x%=0:ENDPROC
 3838DEFFNshell_HeapBlockInfo(x%):LOCALM:SYS29,6,!(ZB%+28),x%TO,,,M:=M
 3846DEFFNshell_OSVarExists(tA%,q$):LOCALB:SYS&20023,q$,tA%,-1,0,0TO,,B:IFB<0THEN=TRUE
 3850=FALSE
 3854DEFFNshell_OSVarGetVal(tA%,yA%,q$,W):LOCALr$,B,rD%:SYS&20023,q$,tA%,yA%,0,-3*(W=TRUE)TO,,B,rD%,w%:FORm%=0TOB-1:r$=r$+CHR$(tA%?m%):NEXTm%:=r$
 3864DEFFNshell_OSReadCommandArg(X):LOCALlC%,O$,d%:O$="":d%=0:SYS16TOlC%:WHILElC%?d%<>0:O$+=CHR$(lC%?d%):d%+=1:ENDWHILE:CASEXOF
 3873WHEN0
 3874WHEN1:O$=MID$(O$,INSTR(O$,CHR$34)+1):O$=MID$(O$,INSTR(O$,CHR$34)+2)
 3877ENDCASE:=O$
 3882DEFFNshell_StringStripTrailing(B$,P$):WHILERIGHT$(B$,1)=P$:B$=LEFT$(B$,LEN(B$)-1):ENDWHILE:=B$
 3890DEFFNshell_StringStripLeading(B$,P$):WHILELEFT$(B$,1)=P$:B$=MID$(B$,2):ENDWHILE:=B$
 3898DEFFNshell_StringStripAll(B$,P$):LOCALD,E:D=TRUE:REPEAT:E=INSTR(B$,P$):IFETHEN
 3904D=FALSE:B$=LEFT$(B$,E-1)+MID$(B$,E+1)
 3906ELSED=TRUE
 3908ENDIF:UNTILD:=B$
 3914DEFFNshell_StringPadTrailing(B$,P$,eA%):WHILELEN(B$)<eA%:B$=B$+STRING$(eA%-LEN(B$),P$):ENDWHILE:=B$
 3922DEFFNshell_StringPadLeading(B$,P$,eA%):WHILELEN(B$)<eA%:B$=STRING$(eA%-LEN(B$),P$)+B$:ENDWHILE:=B$
 3930DEFFNshell_StringUpperCase(B$):LOCALm%:IFLEN(B$)>0THEN
 3933FORm%=1TOLEN(B$):IFMID$(B$,m%,1)>="a"ANDMID$(B$,m%,1)<="z"THEN
 3935MID$(B$,m%,1)=CHR$(ASC(MID$(B$,m%,1))AND&DF)
 3936ENDIF:NEXTm%
 3938ENDIF:=B$
 3943DEFFNshell_StringExchange(B$,s$,NA$):LOCALcA%:IFINSTR(B$,s$)THEN
 3946cA%=INSTR(B$,s$):B$=LEFT$(B$,cA%-1)+NA$+MID$(B$,cA%+LENs$)
 3948ENDIF:=B$
 3953DEFFNshell_StringArrayGetLongest(A$(),tD%):LOCALm%,GC%:GC%=0:FORm%=0TOtD%:IFLEN(A$(m%))>GC%THEN
 3958GC%=LEN(A$(m%))
 3959ENDIF:NEXTm%:=GC%
 3965DEFFNmem_to_string(RD%,d%,wD%):LOCALB$:WHILERD%?d%<>wD%:B$+=CHR$(RD%?d%):d%+=1:ENDWHILE:=B$
 3975DEFFNshell_FileLength(Z$):LOCALw%,DC%,yB%,eA%,UB%,B$:SYS8,5,Z$TOw%,,DC%,yB%,eA%,UB%:=eA%
 3982DEFPROCshell_TraceOn:_U%!48=TRUE:PROCshell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"):ENDPROC
 3989DEFPROCshell_TraceOff:_U%!48=FALSE:PROCshell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"):ENDPROC
 3997DEFPROCshell_TraceInit(BA$):LOCALBA%,a%,G$,F$:IFBA$<>""THEN
 4000BA%=OPENOUT(BA$):_U%!44=BA%
 4002ENDIF:a%=FNshell_HeapBlockFetch(&400):F$=FNshell_OSVarGetVal(a%,&400,"Obey$Dir",1):G$=MID$(FNshell_Leaf(F$),2):PROCshell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+G$):PROCshell_HeapBlockReturn(a%):ENDPROC
 4013DEFFNshell_TraceIsOn:=_U%!48
 4018DEFPROCshell_Tracef0(DA$):LOCALBA%:IFNOT(FNshell_TraceIsOn)THENENDPROC
 4021IF_U%!44<>-1THEN
 4022BA%=_U%!44:BPUT#BA%,DA$
 4024ENDIF:IF_U%!&94>0THENPROCshell_BroadcastMessage(&43B00,"ShellDBug:Trace "+DA$)
 4027ENDPROC
 4031DEFPROCshell_Tracef2(YA%):OSCLI("MEDIT "+STR$~YA%):ENDPROC
 4037DEFPROCshell_TraceExit:IF_U%!44<>-1THENCLOSE#(_U%!44):_U%!44=-1
 4040ENDPROC
 4044DEFPROCshell_AttachHotKey(EA$,VB%,WB%,qB%,K$,c%,N$,U$):LOCALs%,d%,b%,u%,EA%,nC%:nC%=TRUE:IF_U%!60=0THEN
 4048_U%!60=FNshell_HeapBlockFetch(24):d%=0:_U%!&B4=1
 4050ELSEd%=_U%!&B4*24:_U%!60=FNshell_HeapBlockExtend(_U%!60,24):_U%!&B4=(_U%!&B4)+1
 4054ENDIF:s%=_U%!60:CASEEA$OF
 4057WHEN"F1":EA%=385
 4058WHEN"F2":EA%=386
 4059WHEN"F3":EA%=387
 4060WHEN"F4":EA%=388
 4061WHEN"F5":EA%=389
 4062WHEN"F6":EA%=390
 4063WHEN"F7":EA%=391
 4064WHEN"F8":EA%=392
 4065WHEN"F9":EA%=393
 4066WHEN"F10":EA%=458
 4067WHEN"F11":EA%=459
 4068OTHERWISEEA%=(ASCEA$)-64:nC%=FALSE
 4070ENDCASE:IFnC%THEN
 4072IFVB%THENEA%+=16
 4073IFWB%THENEA%+=32
 4074ENDIF:b%=s%+d%:b%!0=EA%:b%?4=VB%:b%?5=WB%:b%?6=qB%:b%!8=FNshell_HeapBlockFetch(LENK$+1):u%=b%!8:$u%=K$:IFc%>0THEN
 4084d%=FNshell_SearchStatic(_U%!&B8,c%):IFd%=-1THENERROR99,FNshell_MessageNoArgs("SHELLMSG09")
 4086ENDIF:b%!&C=c%:b%!16=FNshell_HeapBlockFetch(LENN$+1):u%=b%!16:$u%=N$:b%!20=FNshell_HeapBlockFetch(LENU$+1):u%=b%!20:$u%=U$:ENDPROC
 4097DEFFNshell_HotKeyProcess(EA%):LOCALs%,o%,j%,f%,z%,e$,N$,U$:LOCALWB%,VB%,qB%,BB%,DB%,oB%,iE%,d%:LOCALjA%,t%:s%=_U%!60:o%=_U%!&B4*24:j%=FALSE:f%=0:REPEAT:IFs%!f%=EA%THEN
 4106j%=TRUE
 4107ELSEf%+=24
 4109ENDIF:UNTILj%ORf%>=o%:IFj%THEN
 4112b%=s%+f%:e$=$(b%!8):PROCshell_Tracef0("HotKeyProcess:Template name is '"+e$+"'"):IF(e$<>""ANDb%!&C=0)THEN
 4120PROCshell_CreateWindow(e$,z%):PROCshell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+STR$~z%+")"):t%=FNshell_HeapBlockFetch(36):t%!0=z%:SYS&400CB,,t%:BB%=(t%!4-t%!&C)/2:DB%=(t%!16-t%!8)/2:PROCshell_HeapBlockReturn(t%)
 4130ENDIF:N$=$(b%!16):IFN$<>""THEN
 4134PROCshell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+N$+"'"):IFb%!&C>0THEN
 4137p%=EVAL("FN"+N$+"("+STR$b%!&C+")")
 4138ELSEp%=EVAL("FN"+N$+"("+STR$z%+")")
 4140ENDIF
 4141ELSEPROCshell_Tracef0("HotKeyProcess:No Pre-Open FN registered")
 4145ENDIF:d%=FNshell_SearchStatic(_U%!&B8,b%!&C):IFd%>-1THEN
 4148PROCshell_OpenWindowStatic(b%!&C)
 4149ELSEIFb%!&C>0THEN
 4153ERROR99,FNshell_MessageNoArgs("SHELLMSG09")
 4154ELSEPROCshell_OpenWindowDynamic(z%,BB%,DB%)
 4157ENDIF
 4158ENDIF:U$=$(b%!20):IFU$<>""THEN
 4162PROCshell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+U$+"'"):IFb%!&C>0THEN
 4165p%=EVAL("FN"+N$+"("+STR$b%!&C+")")
 4166ELSEp%=EVAL("FN"+U$+"("+STR$z%+")")
 4168ENDIF
 4169ELSEPROCshell_Tracef0("HotKeyProcess:No Post-Open FN registered")
 4173ENDIF:jA%=TRUE
 4175ELSEe$="":N$="":U$="":jA%=FALSE
 4177ENDIF:=jA%
 4183DEFPROCshell_OpenWindowStaticNewView(c%):PROCshell_OpenWindow(c%,FALSE,-1):ENDPROC
 4189DEFPROCshell_OpenWindowStatic(k%):IFFNshell_SearchStatic(_U%!&B8,k%)>-1THEN
 4191PROCshell_OpenWindow(k%,0,-1)
 4192ELSEERROR99,FNshell_MessageNoArgs("SHELLMSG09")
 4194ENDIF:ENDPROC
 4200DEFFNshell_SearchStatic(OA%,k%):LOCALj%,g%:j%=-1:g%=0:IFOA%<>0THEN
 4205WHILEOA%!g%<>-1:IFOA%!g%=k%THENj%=g%
 4207g%+=4:ENDWHILE
 4209ENDIF:=j%
 4215DEFPROCshell_CreateWindowStatic(t$,RETURNk%):LOCALLB%,OA%,b%,d%:LB%=FNshell_GetWB(t$):LB%!64=_U%!16:SYS&400C1,,LB%TOk%:OA%=_U%!&B8:IFOA%=0THEN
 4225PROCshell_Tracef0("CreateWindowStatic:Empty List"):_U%!&B8=FNshell_HeapBlockFetch(8):OA%=_U%!&B8:OA%!0=k%:OA%!4=-1
 4230ELSEPROCshell_Tracef0("CreateWindowStatic:Searching for window handle"):d%=FNshell_SearchStatic(_U%!&B8,k%):IFd%=-1THEN
 4239PROCshell_Tracef0("CreateWindowStatic:Not found - adding window handle to list"):d%=FNshell_SearchStatic(_U%!&B8,0):IFd%=-1THEN
 4244PROCshell_Tracef0("CreateWindowStatic:Extending window handle list"):g%=0:WHILEOA%!g%<>-1:g%+=4:ENDWHILE:_U%!&B8=FNshell_HeapBlockExtend(_U%!&B8,4):OA%=_U%!&B8
 4252ELSEPROCshell_Tracef0("CreateWindowStatic:Found unused space in list"):g%=d%
 4257ENDIF:b%=OA%+g%:b%!0=k%:b%!4=-1
 4260ENDIF
 4261ENDIF:ENDPROC
 4267DEFPROCshell_InitHelpSystem(M$,yD%):LOCALv$,CA%,oA%,V$,oC%,pC%:_U%!&D4=0:IF_U%!&D8<>0THENPROCshell_HeapBlockReturn(_U%!&D8)
 4270_U%!&D8=0:PROCshell_ScanForHelp:IFyD%THENv$=" -DieWithTask"ELSEv$=""
 4274IF_U%!&64AND1<<3THEN
 4276M$="":oA%=FNshell_HeapBlockFetch(256):V$=FNshell_OSVarGetVal(oA%,256,FNshell_GetAppName+"Res$Path",-1):PROCshell_HeapBlockReturn(oA%):REPEAT:CA%=INSTR(V$,","):IFCA%>0THEN
 4283IFFNshell_FileExists(LEFT$(V$,CA%-1)+FNshell_GetAppName)THEN
 4284M$=LEFT$(V$,CA%-1)+FNshell_GetAppName:oC%=TRUE
 4286ELSEV$=MID$(V$,CA%+1)
 4288ENDIF
 4289ELSEIFFNshell_FileExists(V$+FNshell_GetAppName)THEN
 4291M$=V$+FNshell_GetAppName:oC%=TRUE
 4293ELSEpC%=TRUE:PROCshell_OK(FNshell_MessageOneArg("SHELLMSG26",FNshell_GetAppName))
 4296ENDIF
 4297ENDIF:UNTILM$<>""ORoC%ORpC%
 4299ENDIF:IFpC%=0THENPROCshell_StrongHlpMsg("Help_Install "+M$+v$)
 4302ENDPROC
 4307DEFPROCshell_HelpWord(x$):LOCALgE%,b%,CB%:CB%=FNshell_HeapBlockFetch(512):IF_U%!&D0=-1THEN
 4312IFFNshell_OSVarExists(CB%,"StrongHelp$Dir")THEN
 4314SYS&600DE,"<StrongHelp$Dir>":IF_U%!&D8<>0THENPROCshell_HeapBlockReturn(_U%!&D8)
 4316_U%!&D8=FNshell_HeapBlockFetch(LENx$+1):b%=_U%!&D8:$b%=x$
 4319ELSEPROCshell_HeapBlockReturn(CB%):PROCshell_OK(FNshell_MessageNoArgs("SHELLMSG11"))
 4324ENDIF
 4325ELSEPROCshell_StrongHlpMsg("Help_Word "+x$)
 4327ENDIF:PROCshell_HeapBlockReturn(CB%):ENDPROC
 4333DEFPROCshell_StrongHlpMsg(y$):PROCshell_BroadcastMessage(&43B00,y$):ENDPROC
 4339DEFPROCshell_ScanForHelp:LOCALzA%,IC%:zA%=FNshell_HeapBlockFetch(256):REPEAT:zA%!&C=0:SYS&400E7,19,zA%,-2,_U%!&D4TO,,IC%:_U%!&D4=_U%!&D4+1:UNTILIC%<>-1OR(_U%!&D4)>64:IFIC%<>-1THEN
 4359zA%!0=24:zA%!&C=0:zA%!16=&400C6:zA%!20=IC%:SYS&400E7,17,zA%,0
 4364ENDIF:PROCshell_HeapBlockReturn(zA%):ENDPROC
 4370DEFPROCshell_BroadcastMessage(DE%,y$):LOCALPB%:PB%=FNshell_HeapBlockFetch(256):PB%!&C=0:PB%!16=DE%:$(PB%+20)=y$+CHR$(0):PB%!0=256:SYS&400E7,17,PB%,0:PROCshell_HeapBlockReturn(PB%):ENDPROC
 4382DEFPROCshell_WindowToggleBackIcon(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<24):ENDPROC
 4388DEFPROCshell_WindowToggleCloseIcon(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<25):ENDPROC
 4394DEFPROCshell_WindowToggleTitleBar(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<26):ENDPROC
 4400DEFPROCshell_WindowToggleToggleIcon(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<27):ENDPROC
 4406DEFPROCshell_WindowToggleHScrollBar(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<30):ENDPROC
 4412DEFPROCshell_WindowToggleAdjustSizeIcon(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<29):ENDPROC
 4418DEFPROCshell_WindowToggleVScrollBar(RETURNc%):PROCshell_WindowToggleFlags(c%,1<<28):ENDPROC
 4424DEFPROCshell_WindowToggleFlags(RETURNc%,bB%):LOCALa%,l%,EC%,k%:PROCshell_Tracef0("WindowToggleFlags:wh%=&"+STR$~c%):EC%=FNshell_WindowIsOpen(c%):a%=FNshell_HeapBlockFetch(6000):a%!0=c%:SYS&400CC,,a%:l%=a%!32:l%=(l%EORbB%):a%!32=l%:SYS&400C3,,a%:SYS&400C1,,a%+4TOk%:!a%=k%:IFEC%THEN
 4441SYS&400C5,,a%
 4442ENDIF:PROCshell_HeapBlockReturn(a%):IFk%<>c%THEN
 4445PROCshell_UpdateWindowHandle(c%,k%):c%=k%
 4447ENDIF:ENDPROC
 4452DEFPROCshell_ListClickSelect:LOCALs%,f%,o%,b%,u%:s%=_U%!&C:o%=FNshell_HeapBlockInfo(s%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of ClickSelect events:"):f%=0:REPEAT:b%=s%!(f%+20):u%=s%+f%:IFFNshell_HeapBlockExists(b%)THEN
 4464IF$b%<>""THEN
 4466PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~u%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~u%!4," ",8)+"   "+$b%)
 4468ENDIF
 4469ENDIF:f%+=48:UNTIL(f%>=o%):PROCshell_Tracef0(" "):ENDPROC
 4479DEFPROCshell_ListClickAdjust:LOCALs%,f%,o%,b%,u%:s%=_U%!&C:o%=FNshell_HeapBlockInfo(s%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of ClickAdjust events:"):f%=0:REPEAT:b%=s%!(f%+24):u%=s%+f%:IFFNshell_HeapBlockExists(b%)THEN
 4491IF$b%<>""THEN
 4493PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~u%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~u%!4," ",8)+"   "+$b%)
 4495ENDIF
 4496ENDIF:f%+=48:UNTIL(f%>=o%):PROCshell_Tracef0(" "):ENDPROC
 4506DEFPROCshell_ListHelpTags:LOCALs%,f%,o%,b%,u%:s%=_U%!&C:o%=FNshell_HeapBlockInfo(s%):PROCshell_Tracef0(" "):PROCshell_Tracef0("List of attached help tags:"):f%=0:REPEAT:b%=s%!(f%+44):u%=s%+f%:IFFNshell_HeapBlockExists(b%)THEN
 4518IF$b%<>""THEN
 4520PROCshell_Tracef0("&"+FNshell_StringPadTrailing(STR$~u%!0," ",8)+" &"+FNshell_StringPadTrailing(STR$~u%!4," ",8)+"   "+$b%)
 4522ENDIF
 4523ENDIF:f%+=48:UNTIL(f%>=o%):PROCshell_Tracef0(" "):ENDPROC
 4533DEFPROCshell_MemFill(KC%,TD%,UD%):LOCALI%,LC%,qC%:LC%=TD%DIV4:qC%=TD%MOD4:IFLC%>0THEN
 4538FORI%=1TO(LC%*4)STEP4:KC%!(I%-1)=UD%:NEXTI%
 4541ENDIF:IFqC%>0THEN
 4543KC%=KC%+(LC%*4):FORI%=0TOqC%-1:KC%?I%=UD%:NEXTI%
 4547ENDIF:ENDPROC
 4554DEFPROCshell_AttachFontMenu(c%,e%,D$,HA$):LOCALq%:PROCshell_FontMenuInit:SYS&8D082,""+CHR$0,_U%!260TO,q%:_U%!&FC=q%:PROCshell_EventAdd(c%,e%,0,-2,D$):PROCshell_Tracef0("AttachFontMenu:Attaching font menu"):IFHA$<>""THENPROCshell_AttachMenuMaker(c%,e%,HA$)
 4565ENDPROC
 4571DEFPROCshell_AttachFontSubMenu(iA%,C$,D$):LOCALrE%,q%,b%,g%:PROCshell_FontMenuInit:SYS&8D082,""+CHR$0,_U%!260TO,q%:SYS&45BCE,iA%,q%:SYS&45BCC,,TRUE:_U%!&FC=q%:PROCshell_EventListMenuWarn(iA%,q%,C$,D$):PROCshell_Tracef0("AttachFontSubMenu:Attaching font menu &"+STR$~q%):ENDPROC
 4588DEFPROCshell_FontMenuInit:OSCLI("RMEnsure FontMenu 1.16 RMLoad <EvntShellSystem$Path>FontMenu"):OSCLI("RMEnsure FontMenu 1.16 Error Couldn't load FontMenu module"):IF_U%!&F0=-1THEN
 4595SYS&8D080TO_U%!&F0
 4596ENDIF:PROCshell_FontMenuSelectFont("",TRUE):ENDPROC
 4602DEFPROCshell_FontMenuSelectFont(h$,rC%):LOCALb%,mA%:IFFNshell_HeapBlockExists(_U%!&F4)THENPROCshell_HeapBlockReturn(_U%!&F4)
 4605_U%!&F4=FNshell_HeapBlockFetch(LENh$+1):b%=_U%!&F4:$b%=h$:IFrC%<>0THENrC%=1
 4608_U%!260=rC%:SYS&8D082,h$,_U%!260TO,mA%:IFmA%<>_U%!&FCTHEN
 4612PROCshell_FontMenuUpdatePtr(mA%):_U%!&FC=mA%
 4614ENDIF:PROCshell_Tracef0("FontMenuSelectFont:Font is '"+h$+"'"):ENDPROC
 4622DEFFNshell_FontMenuGetLastSelectedFont:LOCALb%:IFNOTFNshell_HeapBlockExists(_U%!&F4)THEN=""
 4625b%=_U%!&F4:=$b%
 4629DEFPROCshell_FontMenuUpdatePtr(f%):LOCALs%,g%:PROCshell_Tracef0("FontMenuUpdatePtr:Started.."):IFFNshell_HeapBlockExists(_U%!&DC)THEN
 4636PROCshell_Tracef0("FontMenuUpdatePtr:HeapBlock found.."):s%=_U%!&DC:g%=0:REPEAT:PROCshell_Tracef0("FontMenuUpdatePtr:Substituting ptr.."):s%!(g%+8)=f%:g%+=&C:UNTILs%!g%=-1
 4646ENDIF:ENDPROC
 4651DEFPROCshell_FindFont(RETURNY$,MC%,NC%,RETURNuC%):IFNOTFNshell_FontIsAvailable(Y$,MC%,NC%)THEN
 4653Y$="Trinity.Medium"
 4654ENDIF:SYS&40081,,Y$,MC%*16,NC%*16,0,0TOuC%:ENDPROC
 4660DEFFNshell_FontIsAvailable(Y$,MC%,NC%):LOCALERROR:ONERRORLOCAL:RESTOREERROR:=FALSE
 4663SYS&40081,0,Y$,MC%*16,NC%*16,0,0TOuC%:SYS&40082,uC%:=TRUE
 4670DEFFNshell_CheckSelection(ME%):LOCALb%,g%:b%=_U%!256:IFb%=0THEN=-1
 4674IF_U%!24=_U%!&FCTHEN=0
 4675REPEAT:IFME%!g%<>b%!g%THEN=-1
 4677g%+=4:UNTILb%!g%=-1:=g%
 4684DEFFNshell_MenuGetItemAddress(q%,ZD%):LOCALg%,IB%:SYS&45BC7,q%TOq%:REPEAT:IB%=q%+28+((ZD%!g%)*24):q%=IB%!4:g%+=4:UNTILZD%!g%=-1:=IB%
 4697DEFFNshell_GetLastMouseXPos:=_U%!272
 4702DEFFNshell_GetLastMouseYPos:=_U%!276
 4707DEFPROCshell_UpdateWindowHandle(HA%,GA%):PROCshell_Tracef0("UpdateWindowHandle:Updating stored window handles"):PROCshell_Tracef0("UpdateWindowHandle:old handle=&"+STR$~HA%):PROCshell_Tracef0("UpdateWindowHandle:new handle=&"+STR$~GA%):IFGA%<>HA%THEN
 4714IF_U%!28=HA%THEN_U%!28=GA%
 4715PROCshell_FixEventBlock(HA%,GA%,_U%!&C,48):PROCshell_FixEventBlock(HA%,GA%,_U%!96,16):PROCshell_FixEventBlock(HA%,GA%,_U%!72,24):PROCshell_FixEventBlock(HA%,GA%,_U%!92,24):PROCshell_FixEventBlock(HA%,GA%,_U%!&68,16):PROCshell_UpdateStaticWindows(HA%,GA%)
 4721ENDIF:ENDPROC
 4726DEFPROCshell_UpdateStaticWindows(HA%,GA%):LOCALd%,OA%:PROCshell_Tracef0("UpdateStaticWindows:Correcting static window list.."):OA%=_U%!&B8:d%=FNshell_SearchStatic(_U%!&B8,HA%):OA%!d%=GA%:ENDPROC
 4738DEFPROCshell_FixEventBlock(HA%,GA%,h%,d%):LOCALf%,o%:IFFNshell_HeapBlockExists(h%)THEN
 4741o%=FNshell_HeapBlockInfo(h%)-8:REPEAT:IF(h%!f%=HA%)THEN
 4744h%!f%=GA%
 4745ENDIF:f%+=d%:UNTIL(f%>=o%)
 4748ENDIF:ENDPROC
 4753DEFPROCshell_IconSelectAll(c%):LOCALa%,I%:a%=FNshell_HeapBlockFetch(&7D0):I%=a%+64:!a%=c%: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
 4769DEFPROCshell_IconDeselectAll(c%):LOCALa%,I%:a%=FNshell_HeapBlockFetch(&7D0):I%=a%+64:!a%=c%: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
 4785DEFPROCshell_Message_SaveDesktop(Q%):LOCALz$:z$="Run "+FNshell_GetAppDir+CHR$&A:SYS&C,2,Q%!20,z$,LENz$:ENDPROC
 4794DEFPROCshell_MessagesInit(L$,RETURNOC%,RETURNaD%):LOCALyA%,l%:LOCALERROR:ONERRORLOCALRESTOREERROR:ERROR3,"Cannot open message file '"+L$+"'"
 4798SYS&41500,,L$TOl%,,yA%:IFl%AND1THENaD%=0ELSEaD%=FNshell_HeapBlockFetch(yA%)
 4800SYS30,6,,,17+LEN(L$)TO,,OC%:$(OC%+16)=L$:SYS&41501,OC%,OC%+16:PROCshell_Tracef0("MessagesInit:Message resource file '"+L$+"' loaded"):ENDPROC
 4810DEFFNshell_PrinterOnLine:LOCALbD%,cD%:bD%=ADVAL(-4):VDU2,1,0,1,0,1,0:TIME=0:REPEAT:UNTILTIME>30:cD%=NOT(ADVAL(-4)<bD%):*FX21,3
 4817VDU3:=cD%
 4822DEFPROCshell_AttachBumpHandler(c%,e%,dD%,eD%,TE%,UE%,fD%,VE%,_$,AA$):LOCALPA%,d%,b%,u%,WA%:d%=FNshell_GetEventListOffset(c%,dD%,_U%+&68,16,TRUE):PA%=_U%!&68+d%:PA%!0=c%:PA%!4=dD%:PA%!8=fD%:PA%!&C=FNshell_HeapBlockFetch(24):WA%=PA%!&C:WA%!0=e%:WA%!4=TE%:WA%!8=UE%
 4851IFLEN_$>0THEN
 4852WA%!&C=FNshell_HeapBlockFetch((LEN_$)+1):u%=WA%!&C:$u%=_$
 4854ELSEWA%!&C=0
 4856ENDIF:IFLENAA$>0THEN
 4858WA%!16=FNshell_HeapBlockFetch((LENAA$)+1):u%=WA%!16:$u%=AA$
 4860ELSEWA%!16=0
 4862ENDIF:IFVE%=-1THENWA%!20=1ELSEWA%!20=0
 4865d%=FNshell_GetEventListOffset(c%,eD%,_U%+&68,16,TRUE):PA%=_U%!&68+d%:PA%!0=c%:PA%!4=eD%:PA%!8=fD%*(-1):PA%!&C=WA%:ENDPROC
 4876DEFPROCshell_HandleBumpIcons(d%,c%,e%):LOCALjE%,AA%,PA%,PC%,_temp$,vC%:LOCALmE%,MB%:PA%=_U%!&68+d%:_U%!288=c%:_U%!292=e%:_U%!296=d%:AA%=PA%!&C:vC%=AA%!16:IFvC%<>0THEN
 4889_temp$=FNshell_IconGetData(c%,AA%!0):PC%=EVAL("FN"+$vC%+"(_temp$)")
 4891ELSEPC%=VAL(FNshell_IconGetData(c%,AA%!0))
 4893ENDIF:_new_val%=PC%+PA%!8:IFAA%!20=0THEN
 4897IF_new_val%>AA%!8THEN_new_val%=AA%!8
 4898IF_new_val%<AA%!4THEN_new_val%=AA%!4
 4899ELSEIF_new_val%>AA%!8THEN_new_val%=AA%!4
 4902IF_new_val%<AA%!4THEN_new_val%=AA%!8
 4903ENDIF:MB%=AA%!&C:IFMB%<>0THEN
 4906_new_val$=EVAL("FN"+$MB%+"(_new_val%)")
 4907ELSE_new_val$=STR$_new_val%
 4909ENDIF:IF_new_val%<>PC%THEN
 4911PROCshell_IconPutData(c%,AA%!0,_new_val$,-1)
 4912ENDIF:ENDPROC
 4918DEFFNshell_WindowSetSpriteArea(z%,ZE%):LOCALa%,GA%:a%=FNshell_HeapBlockFetch(6000):!a%=z%:SYS&400CC,,a%:a%!68=ZE%:SYS&400C3,,a%:SYS&400C1,,a%+4TOGA%:IFGA%<>z%THENPROCshell_UpdateWindowHandle(z%,GA%)
 4927PROCshell_HeapBlockReturn(a%):=GA%
 4933DEFFNshell_StrongHlpIsAvailable:LOCALrA%,CB%:CB%=FNshell_HeapBlockFetch(256):rA%=FNshell_OSVarExists(CB%,"StrongHelp$Dir"):PROCshell_HeapBlockReturn(CB%):=rA%
 4942DEFFNshell_MenuNew(Q$):LOCALk%:SYS&45BC1,,Q$TOk%:=k%
 4950DEFFNshell_MenuAdd(k%,JA$,D$):LOCALwC%:IFD$<>""THEN
 4953SYS&45BC2,k%,JA$,D$TOwC%
 4954ELSESYS&45BC2,k%,JA$TOwC%
 4956ENDIF:=wC%
 4962DEFPROCshell_MenuTick(UA%,MA%):SYS&45BC9,UA%,MA%:ENDPROC
 4969DEFPROCshell_MenuTickOnly1(aE%,CA%):SYS&45BD1,aE%,CA%:ENDPROC
 4976DEFPROCshell_MenuTickOnly2(UA%):SYS&45BD1,UA%:ENDPROC
 4983DEFPROCshell_MenuShade(k%,MA%):SYS&45BCB,k%,MA%:ENDPROC
 4990DEFPROCshell_MenuDotted(UA%,MA%):SYS&45BCA,UA%,MA%:ENDPROC
 4997DEFPROCshell_MenuColours(UA%,aC%,bC%):SYS&45BD0,UA%,aC%,bC%:ENDPROC
 5004DEFPROCshell_MenuWritable(UA%,MA%,yA%,m$):SYS&45BCD,UA%,MA%,yA%,m$:ENDPROC
 5011DEFPROCshell_MenuPutData(UA%,S$):SYS&45BC8,UA%,S$:ENDPROC
 5018DEFPROCshell_MenuCallHandler(z%,_h_blk%):LOCALERROR:ONERRORLOCAL:RESTOREERROR:ENDPROC
 5021IFEVAL("FN"+$z%+"(_h_blk%)")
 5022ENDPROC
 5027DEFPROCshell_AttachOpenWindow(c%,A$):LOCALa%,b%,d%:PROCshell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler"):IFc%<0THENERROR99,PROCshell_MessageOneArg("SHELLMSG27","AttachOpenWindow")
 5033d%=FNshell_GetEventListOffset(c%,-1,_U%+304,&C,TRUE):a%=_U%!304+d%:a%!0=c%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(LEN(A$)+1):b%=a%!8:$b%=A$:ENDPROC
 5043DEFPROCshell_AttachCloseWindow(c%,A$):LOCALa%,b%,d%:PROCshell_Tracef0("AttachCloseWindow:Attaching CloseWindow Handler"):IFc%<0THENERROR99,PROCshell_MessageOneArg("SHELLMSG27","AttachCloseWindow")
 5049d%=FNshell_GetEventListOffset(c%,-1,_U%+308,&C,TRUE):a%=_U%!308+d%:a%!0=c%:a%!4=-1:a%!8=FNshell_HeapBlockFetch(LEN(A$)+1):b%=a%!8:$b%=A$:ENDPROC
 5059DEFPROCshell_SpriteRename(aB%,SA$,TA$):SYS46,512+26,aB%,FNshell_SpriteGetPtr(aB%,SA$),TA$:ENDPROC
 5066DEFPROCshell_SpriteAreaSave(aB%,L$):SYS46,512+&C,aB%,L$:ENDPROC
 5073DEFPROCshell_EnsurePoll:LOCALv%:REPEAT:v%=FNshell_Poll_I(0,_U%!&94):PROCshell_Action(v%):UNTILv%=0:ENDPROC
 5084DEFFNshell_WimpGetVersion:=_U%!316
 5089DEFFNshell_OSCheckVersion(xC%):=FNshell_OSModuleCheckVersion("UtilityModule",xC%)
 5094DEFFNshell_OSModuleCheckVersion(UA$,xC%):LOCALa%,BC%:a%=FNshell_HeapBlockFetch(256):OSCLI("Set AppName$RISCOS Y"):OSCLI("RMEnsure "+UA$+" "+STR$xC%+" Set AppName$RISCOS N"):SYS&20023,"AppName$RISCOS",a%,256,0,0TO,,BC%:a%?BC%=&D:OSCLI("Unset AppName$RISCOS")
 5102PROCshell_HeapBlockReturn(a%):IF$a%="N"THEN=FALSE
 5104=TRUE
$ݤshell_LibraryVersion:=1.20*&64
"��shell_Error:�_error_flag%=3�

i�shell_ErrorBox("Unexpected error:- "+�$+" Internal error code "+Þ):�shell_TraceOff:�shell_TraceExit

��shell_ErrorBox(�$)
�:_error_flag%=3:ș&406C2:�
)��shell_OK(KA$):_error_flag%=1:�1,KA$
�
���shell_ErrorBox(QA$):�rA%,aA%:aA%=�shell_HeapBlockFetch(260):!aA%=�:$(aA%+4)=QA$+�(0):ș&400DF,aA%,_error_flag%,�shell_GetAppName�rA%:�rA%=2�_closedown%=�
$!�shell_HeapBlockReturn(aA%):�
)9ݤshell_GetLastSecureFileName:�b%:b%=_U%!80:�b%=0�=""
-=$b%
1Zݤshell_GetString(JD%):�GA$,xB%:ȕ((JD%?xB%)>31�xB%<&FF):GA$+=�(JD%?xB%):xB%+=1:�:=GA$
;Cݤshell_GetEventHandler(c%,r%,XB%):�f%,h%,j%,o%,A$:�c%=-1�c%=-2
>No%=�shell_HeapBlockInfo(_U%!&C)-8:f%=0:j%=�:h%=_U%!&C:A$="":�:�(h%!f%=c%)�
EȎh%!(f%+4)�
F$�-1:�h%!(f%+(&C+(XB%*4)))>&8000�
L#A$=$(h%!(f%+(&C+(XB%*4)))):j%=�
N�f%+=48
P�
Q�h%!(f%+4)=r%�
X �h%!(f%+(&C+(XB%*4)))>&8000�
Y#A$=$(h%!(f%+(&C+(XB%*4)))):j%=�
[�f%+=48
]�
^�f%+=48
`�
a�
b�f%+=48
d�:�((f%>=o%)�j%):=A$
k@ݤshell_GetEventMenu(pB%,c%,r%):�f%,h%,j%,o%,q%:�c%=-1�c%=-2
nNo%=�shell_HeapBlockInfo(_U%!&C)-8:f%=0:j%=�:h%=_U%!&C:A$="":�:�(h%!f%=c%)�
u�h%!(f%+4)=r%�
v"q%=h%!(f%+8):�q%=-2�q%=_U%!&FC
xj%=�
y��h%!(f%+4)=-1�
{�pB%=2�
|"q%=h%!(f%+8):�q%=-2�q%=_U%!&FC
~j%=�
�f%+=48
��
��f%+=48
��
��
��f%+=48
��:�(f%>=o%�j%):=q%
�Wݤshell_GetEventListOffset(c%,e%,h%,HC%,GD%):�o%,f%,j%,d%,gB%,b%:�(!h%=0�GD%=�)�=-2
�
�(!h%=0)�
�:!h%=�shell_HeapBlockFetch(HC%):b%=!h%:b%!0=0:b%!4=0:=0
�L�:o%=�shell_HeapBlockInfo(!h%)-8:f%=0:j%=�:d%=-1:gB%=-1:b%=!h%:�:�gB%<0�
��(b%!f%=0�b%!f%+4=0)�gB%=f%
��:�(b%!f%=c%)�
��e%=-1�
�d%=f%:j%=�
�N��shell_Tracef0("GetEventListOffset:icon handle is not -1"):�b%!(f%+4)=e%�
�d%=f%:j%=�
��f%+=HC%
��
��
��f%+=HC%
��:�((f%>=o%)�j%):�j%�
��
��:�(d%=-1�GD%)�
��gB%<0�
�Id%=o%:!h%=�shell_HeapBlockExtend(!h%,HC%):b%=!h%:b%+=d%:b%!0=0:b%!4=0
��d%=gB%
��
�	�:=d%
֞��shell_AttachPane(c%,�JC%,l%,BB%,DB%):�a%,d%,b%,nA%,tC%:�shell_Tracef0("AttachPane:Attaching Pane Handler"):tC%=�shell_WindowGetFlags(JC%):�(tC%�1<<5)=0�
�r�shell_Tracef0("AttachPane:'Pane' bit of pane window is not set, fixing.."):�shell_WindowToggleFlags(JC%,1<<5)
��:�(tC%�1<<1)�
�r�shell_Tracef0("AttachPane:'Moveable' bit of pane window is set, fixing.."):�shell_WindowToggleFlags(JC%,1<<1)
�<�:d%=�shell_GetEventListOffset(c%,-1,_U%+92,24,�):�d%<0�
���shell_Tracef0("AttachPane:Creating pane event block"):d%=�shell_GetEventListOffset(c%,-1,_U%+92,24,�):a%=_U%!92+d%:a%!0=c%:a%!4=-1:a%!8=�shell_HeapBlockFetch(4):a%!&C=�shell_HeapBlockFetch(4):a%!16=�shell_HeapBlockFetch(4)
�aa%!20=�shell_HeapBlockFetch(4):b%=a%!8:!b%=-1:b%=a%!&C:!b%=-1:b%=a%!16:!b%=-1:b%=a%!20:!b%=-1
���:a%=_U%!92+d%:b%=a%!8:g%=0:nA%=0:ȕb%!g%<>-1:g%+=4:nA%+=1:�:a%!8=�shell_HeapBlockExtend(a%!8,4):b%=a%!8:b%!(nA%*4)=JC%:b%!((nA%+1)*4)=-1:a%!&C=�shell_HeapBlockExtend(a%!&C,4):b%=a%!&C:b%!(nA%*4)=l%:b%!((nA%+1)*4)=-1
��a%!16=�shell_HeapBlockExtend(a%!16,4):b%=a%!16:b%!(nA%*4)=BB%:b%!((nA%+1)*4)=-1:a%!20=�shell_HeapBlockExtend(a%!20,4):b%=a%!20:b%!(nA%*4)=DB%:b%!((nA%+1)*4)=-1:�

~��shell_AttachDataLoad(c%,e%,w%,A$,AE%):�a%,b%,d%:�shell_Tracef0("AttachDataLoad:Attaching DataLoad Handler"):�c%=-1�c%=-2
�AE%�w%=w%�1<<31
Pd%=�shell_GetEventListOffset(c%,e%,_U%+96,16,�):a%=_U%!96+d%:�a%!0=0�a%!4=0�
��shell_Tracef0("AttachDataLoad:This is the first DataLoad Event..."):a%!0=c%:a%!4=e%:a%!8=�shell_HeapBlockFetch(8):b%=a%!8:b%!0=w%:b%!4=-1:a%!&C=�shell_HeapBlockFetch(8):b%=a%!&C:b%!0=�shell_HeapBlockFetch(�(A$)+1):b%!4=-1:b%=b%!0:$b%=A$
 ���shell_Tracef0("AttachDataLoad:This is another DataLoad Event..."):a%!8=�shell_HeapBlockExtend(a%!8,4):a%!&C=�shell_HeapBlockExtend(a%!&C,4):g%=0:b%=a%!8:ȕb%!g%<>-1:g%+=4:�:b%!g%=w%:b%!(g%+4)=-1:b%=a%!&C:b%!g%=�shell_HeapBlockFetch(�A$+1)
/b%=b%!g%:$b%=A$
0�:�
6H��shell_AttachDataSave(c%,e%,hA%,w%,YE%,A$):�a%,b%,d%:�hA%=0�hA%=&64
9��shell_Tracef0("AttachDataSave:Attaching DataSave Handler to icon "+�e%+" in window &"+�~c%):�shell_Tracef0("AttachDataSave:Handler function is '"+A$+"'"):d%=�shell_GetEventListOffset(c%,e%,_U%+72,24,�):a%=_U%!72+d%:a%!0=c%:a%!4=e%:a%!8=hA%:a%!&C=w%
>Ha%!16=YE%:a%!20=�shell_HeapBlockFetch(�(A$)+1):b%=a%!20:$b%=A$:Ȏw%�
B�&FF9:�hA%>&8000�
F'_U%!&88=�shell_HeapBlockInfo(hA%)-8
G�_U%!&88=hA%
I�
J�hA%>&8000�
L'_U%!&88=�shell_HeapBlockInfo(hA%)-4
M�_U%!&88=hA%
O�
P�:_U%!&8C=w%:_U%!&90=hA%:�
ZZ��shell_AttachMenu(c%,r%,q%,VB%,WB%,qB%):�c%>0�r%>=0��shell_IconSetButtonType(c%,r%,1)
\$�shell_EventAdd(c%,r%,0,q%,""):�
b���shell_AttachMenuMaker(c%,r%,A$):�shell_Tracef0("AttachMenuMaker:Attaching menumaker function '"+A$+"'"):�shell_EventAdd(c%,r%,1,0,A$):�
jy��shell_AttachMenuDBox(iA%,K$,CA$,IA$):�a%,b%,YA%:笤shell_WindowLoaded(K$)��99,�shell_MessageOneArg("SHELLMSG03",K$)
o�a%=�shell_HeapBlockFetch(&C):a%!0=�shell_HeapBlockFetch(�K$+1):b%=a%!0:$b%=K$:a%!4=�shell_HeapBlockFetch(�CA$+1):b%=a%!4:$b%=CA$:a%!8=�shell_HeapBlockFetch(�IA$+1):b%=a%!8:$b%=IA$:ș&45BCE,iA%,a%:ș&45BCC,,�:�
G��shell_AttachClickSelect(c%,r%,A$):�shell_EventAdd(c%,r%,2,0,A$):�
�G��shell_AttachClickAdjust(c%,r%,A$):�shell_EventAdd(c%,r%,3,0,A$):�
����shell_AttachUserRedraw(�c%,A$):�a%,BA%,HA%:a%=�shell_HeapBlockFetch(40):!a%=c%:ș&400CB,,a%:BA%=a%!32:�shell_HeapBlockReturn(a%):�shell_Tracef0("AttachUserRedraw:flag%=&"+�~BA%):�(BA%�1<<4)�
�k�shell_Tracef0("AttachUserRedraw:auto redraw set!!"):HA%=c%:�shell_WindowToggleFlags(c%,1<<4):�c%<>HA%�
�%�shell_UpdateWindowHandle(HA%,c%)
��
�%�:�shell_EventAdd(c%,-1,4,0,A$):�
�D��shell_AttachKeypress(c%,r%,A$):�shell_EventAdd(c%,r%,5,0,A$):�
�D��shell_AttachDrag(c%,r%,dE%,A$):�shell_EventAdd(c%,r%,6,0,A$):�
�C��shell_AttachHelpTag(c%,r%,I$):�shell_EventAdd(c%,r%,8,0,I$):�
�R��shell_EventAdd(c%,r%,XB%,q%,A$):�f%,MB%,h%,o%,j%:�_B%:f%=0:j%=�:�c%=-1�c%=-2
�>o%=�shell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:�:�(h%!f%=c%)�
�Ȏh%!(f%+4)�
��-1:j%=�
��h%!(f%+4)=r%�
�j%=�
��f%+=48
��
��
��f%+=48
��:�(f%>=o%�j%):�j%=��
�%f%=0:ȕ(h%!f%<>0):f%+=48:�f%>=o%�
��_U%!&C=�shell_HeapBlockExtend(_U%!&C,48):h%=_U%!&C:h%!(f%+0)=0:h%!(f%+4)=0:h%!(f%+8)=0:h%!(f%+&C)=0:h%!(f%+16)=0:h%!(f%+20)=0:h%!(f%+24)=0:h%!(f%+28)=0:h%!(f%+32)=0:h%!(f%+36)=0:h%!(f%+40)=0:h%!(f%+44)=0
��:�
�'�:h%!(f%+0)=c%:h%!(f%+4)=r%:�q%<>0�
�h%!(f%+8)=q%
�%�:_B%=f%+(&C+(XB%*4)):�h%!_B%<>0�
�"�shell_HeapBlockReturn(h%!_B%)
�;�:MB%=�shell_HeapBlockFetch(�A$+1):$MB%=A$:h%!_B%=MB%:�
�M��shell_EventDeleteAll(c%):�f%,q%,j%,o%,h%,m%:f%=0:q%=0:j%=�:�c%=-1�c%=-2
�>o%=�shell_HeapBlockInfo(_U%!&C)-8:h%=_U%!&C:�:�(h%!f%=c%)�
�j%=�
��f%+=48
��:�(f%>=o%�j%):�j%�
�Ch%!(f%+0)=0:h%!(f%+4)=0:h%!(f%+8)=0:�m%=&C�44�4:�h%!(f%+m%)<>0�
3�shell_HeapBlockReturn(h%!(f%+m%)):h%!(f%+m%)=0
	�:�m%
s�:�shell_Tracef0("EventDeleteAll:wh%=&"+�~c%):�shell_DeleteEventDataSave(c%,-1):�shell_DeleteEventBump(c%,-1):�
���shell_DeleteEventBump(c%,e%):�d%,a%,o%,h%,b%:h%=_U%!&68:�:d%=�shell_GetEventListOffset(c%,e%,_U%+&68,16,�):�shell_Tracef0("DeleteEventBump:offset%="+�d%):�d%>=0�
�e%=-1�
b�shell_Tracef0("DeleteEventBump:Deleting Bump Event (all events for window handle &"+�~c%+")")
p��shell_Tracef0("DeleteEventBump:Deleting Bump Event (window handle was &"+�~c%+" icon handle was "+�e%+")")
3�:o%=�shell_HeapBlockInfo(_U%!&68)-8:�d%=o%-16�
$
�d%=0�
&�AA%=h%!&C:b%=AA%!&C:�shell_HeapBlockReturn(b%!&C):�shell_HeapBlockReturn(b%!16):�shell_HeapBlockReturn(b%):�shell_HeapBlockReturn(_U%!&68):_U%!&68=0:�shell_Tracef0("DeleteEventDataSave:No Bump events now registered")
.0�_U%!&68=�shell_HeapBlockExtend(_U%!&68,-16)
1�
2��a%=h%+d%:a%!0=0:a%!4=0:a%!8=0:AA%=a%!&C:�shell_HeapBlockReturn(AA%!&C):�shell_HeapBlockReturn(AA%!16):�shell_HeapBlockReturn(AA%)
:�
;
�:�d%<0:�
Cj��shell_DeleteEventDataSave(c%,e%):�d%,a%,o%:�:d%=�shell_GetEventListOffset(c%,e%,_U%+72,24,�):�d%>=0�
O�e%=-1�
Pj�shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (all events for window handle &"+�~c%+")")
Qx��shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (window handle was &"+�~c%+" icon handle was "+�e%+")")
S2�:o%=�shell_HeapBlockInfo(_U%!72)-8:�d%=o%-24�
X
�d%=0�
Zs�shell_HeapBlockReturn(_U%!72):_U%!72=0:�shell_Tracef0("DeleteEventDataSave:No DataSave events now registered")
^.�_U%!72=�shell_HeapBlockExtend(_U%!72,-24)
a�
bX�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
g�
h
�:�d%<0:�
p=ݤshell_MessageNoArgs(I$):=�shell_MessageLookup(I$,"","")
u@ݤshell_MessageOneArg(I$,w$):=�shell_MessageLookup(I$,w$,"")
zJݤshell_MessageLookup(I$,w$,OA$):�l%,L%,d$,mB%,KB%:�I$,8)="SHELLMSG"�
}mB%=_U%!284:KB%=_U%!280
~�mB%=_U%!64:KB%=_U%!68
�4�:ș&61502,KB%,I$,mB%,256,w$,OA$�,,,L%;l%:�l%�1�
��mB%?L%=&D:d$=$(mB%)
�	�:=d$
�Tݤshell_WimpInit(rB%,k$):�XA%:ș&400C0,rB%,&4B534154,k$�rB%,XA%:_U%!&94=XA%:=XA%
�^ݤshell_WimpInit_I(rB%,k$):ș&400C0,rB%,&4B534154,k$�rB%,XA%:_U%!&94=XA%:ș&81682,XA%:=XA%
�G��shell_WimpCloseDown_I(XA%):�shell_LoseFonts:�_U%!&F0<>-1�ș&8D081
�Sș&400DD,XA%,&4B534154:ș&81683,XA%:�_U%!&64�1<<2�ș"Impulse_CloseDown",_U%!&94
��
�?��WimpCloseDown(XA%):�shell_LoseFonts:�_U%!&F0<>-1�ș&8D081
�Fș&400DD,XA%,&4B534154:�_U%!&64�1<<2�ș"Impulse_CloseDown",_U%!&94
��
�X��shell_LoseFonts:�m%,b%:b%=_U%!&E8:�m%=0�&FF:ȕb%?m%>0:ș&40082,m%:b%?m%-=1:�:�m%:�
Ēݤshell_FindFont(Y$,OE%):�BA%,eC%:eC%=_U%!&E8:ș&40081,,Y$,OE%*16,c*16,0,0�BA%:eC%?BA%+=1:�eC%?BA%>=&FF��99,�shell_MessageNoArgs("SHELLMSG18")
�=BA%
���shell_Init:�bA%,m%,b%:�_U%320,_shell_blk%&64:_Q%=�shell_HeapBlockFetch(&BB8):bA%=�shell_HeapBlockFetch(48):bA%!0=0:bA%!&C=0:bA%!16=0:bA%!20=0:bA%!24=0:bA%!28=0:bA%!32=0:bA%!36=0:bA%!40=0:bA%!44=0:_U%!0=0:_U%!4=0:_U%!8=0:_U%!&C=bA%:_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:_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:�shell_MemFill(_U%!&E8,256,0):�shell_MemFill(_U%!&EC,256,0):_error_flag%=3:�
=Aݤshell_FileType(Z$):�w%:ș8,5,Z$�,,w%:w%=(w%�&FFF00)>>>8:=w%
FAݤshell_FileExists(Z$):�shell_CatInfoRead(Z$)="Not Found":=�
H=�
Mbݤshell_CatInfoRead(Z$):�w%,DC%,yB%,eA%,UB%,B$:ș8,5,Z$�w%,,DC%,yB%,eA%,UB%:�w%=0�="Not Found"
Q�UB%=51�B$+="WR "
R�UB%=&BB�B$+="LWR"
S�UB%=&88�B$+="DL "
T�B$+=" "+�shell_StringPadLeading(�~DC%,"0",8):B$+=" "+�shell_StringPadLeading(�~yB%,"0",8):B$+=" "+�shell_StringPadLeading(�~eA%,"0",8):=B$
[)ݤshell_GetAppDir:�b%:b%=_U%!&BC:=$b%
b-ݤshell_GetAppDataDir:�b%:b%=_U%!&C0:=$b%
i*ݤshell_GetAppName:�b%:b%=_U%!&C4:=$b%
q���shell_ResourcesInit:�F$,G$,u$,b%:�oA%:oA%=�shell_HeapBlockFetch(256):F$=�shell_OSVarGetVal(oA%,256,"Obey$Dir",1):G$=��shell_Leaf(F$),2):_U%!&BC=�shell_HeapBlockFetch((�F$)+1):_U%!&C4=�shell_HeapBlockFetch((�G$)+1):b%=_U%!&BC:$b%=F$:b%=_U%!&C4:$b%=G$
{+�shell_OSVarExists(oA%,G$+"Res$Path")�
|_U%!&64=_U%!&64�1<<3
}-�:�shell_OSVarExists(oA%,G$+"Data$Dir")�
ku$=�shell_OSVarGetVal(oA%,256,G$+"Data$Dir",1):_U%!&C0=�shell_HeapBlockFetch((�u$)+1):b%=_U%!&C0:$b%=u$
�=�_U%!&C0=�shell_HeapBlockFetch((�F$)+1):b%=_U%!&C0:$b%=F$
��:�_U%!&64�1<<3�
�*�shell_FileExists(G$+"Res:Messages")�
�8�shell_MessagesInit(G$+"Res:Messages",_U%!68,_U%!64)
�-�:�shell_FileExists(G$+"Res:ShellMsgs")�
�;�shell_MessagesInit(G$+"Res:ShellMsgs",_U%!280,_U%!284)
�A��shell_MessagesInit("ShellSysRes:ShellMsgs",_U%!280,_U%!284)
�+�:�shell_FileExists(G$+"Res:Sprites")�
�2_U%!16=�shell_SpriteAreaLoad(G$+"Res:Sprites")
�
�_U%!16=1
�-�:�shell_FileExists(G$+"Res:Templates")�
�,�shell_TemplatesInit(G$+"Res:Templates")
��
�(��shell_FileExists(F$+".Messages")�
�5�shell_MessagesInit(F$+".Messages",_U%!68,_U%!64)
�*�:�shell_FileExists(F$+".ShellMsgs")�
�8�shell_MessagesInit(F$+".ShellMsgs",_U%!280,_U%!284)
�A��shell_MessagesInit("ShellSysRes:ShellMsgs",_U%!280,_U%!284)
�(�:�shell_FileExists(F$+".Sprites")�
�/_U%!16=�shell_SpriteAreaLoad(F$+".Sprites")
�
�_U%!16=1
�*�:�shell_FileExists(F$+".Templates")�
�)�shell_TemplatesInit(F$+".Templates")
��
�h�:ș&45BC0:�shell_HeapBlockReturn(_Q%):_Q%=�shell_HeapBlockFetch(&400):�shell_HeapBlockReturn(oA%):�
��ݤshell_SpriteAreaLoad(L$):�_A%,S%,T%:S%=�(L$):T%=�#S%+16:�#S%:_A%=�shell_HeapBlockFetch(T%):!_A%=T%:_A%!4=0:_A%!8=16:_A%!&C=16:ș46,521,_A%:ș46,522,_A%,L$:�shell_Tracef0("SpriteLoad:Sprite file loaded at &"+�~_A%):=_A%
�#ݤshell_UserSpritesBase:=_U%!16
΄ݤshell_SpriteGetPtr(aB%,W$):�tA%,f%:tA%=�shell_HeapBlockFetch(21):$tA%=W$:ș46,280,aB%,tA%�,,f%:�shell_HeapBlockReturn(tA%):=f%
���shell_TemplatesInit(L$):�lB%,gC%,gD%:�AC%,CA%,eB%,W$,TB%:�eB%20:ȕ(eB%�4):eB%+=1:�:CA%=0:TB%=0:AC%=�shell_FileLength(L$):KD%=�shell_HeapBlockFetch(AC%):lB%=KD%:_U%!4=�shell_HeapBlockFetch(20*64):CD%=�shell_HeapBlockFetch(AC%):gC%=CD%:gD%=CD%+AC%
�Yș&400D9,,L$:�:$eB%="*":ș&400DB,,lB%,gC%,gD%,_U%!&E8,eB%,CA%�,,gC%,,,W$,CA%:�CA%<>0�
�!((_U%!4)+(16*TB%))=lB%:$(((_U%!4)+(16*TB%))+4)=W$:�shell_Tracef0("TemplatesInit:  Template Loaded: "+W$):lB%+=(88+(lB%!84)*32):TB%+=1
���:�CA%=0:ș&400DA:_U%!0=TB%:�shell_Tracef0("TemplatesInit:Templates resource file loaded at &"+�~KD%+" ("+�TB%+" templates)"):�
Wݤshell_WindowLoaded(K$):�m%,j%:�(K$)>&C��99,�shell_MessageOneArg("SHELLMSG02",K$)
4j%=�:�m%=0�(_U%!0)-1:�$(((_U%!4)+(16*m%))+4)=K$�

j%=�:m%=(_U%!0)-1

�:�m%:=j%
Pݤshell_GetWB(K$):�m%,j%:�(K$)>&C��99,�shell_MessageOneArg("SHELLMSG02",K$)
5j%=-1:�m%=0�(_U%!0)-1:�$(((_U%!4)+(16*m%))+4)=K$�
j%=m%:m%=(_U%!0)-1
�:�m%:�j%>-1�
=!((_U%!4)+(16*j%))
.̅99,�shell_MessageOneArg("SHELLMSG03",K$)
�:=�
${ݤshell_MessageExpand(a$):�H$,d$,cA%:H$="":ȕ�a$,"\")>0:cA%=�a$,"\"):H$+=�a$,cA%-1):d$=�a$,cA%+1,1):a$=�a$,cA%+2):Ȏd$�
-�"A":H$+="Click ADJUST to"
.�"a":H$+="ADJUST"
/"�"D":H$+="Drag with SELECT to"
0"�"d":H$+="Drag with ADJUST to"
10�"G":H$+="This option is greyed out because"
2%�"R":H$+="Move the pointer right"
3�"S":H$+="Click SELECT to"
4�"s":H$+="SELECT"
5�"T":H$+="This is the"
6�"W":H$+="This window is"
7�"w":H$+="window"
8H$+="\"+d$
:�:�:=H$+a$
FY��shell_OpenMenu(JA%,KA%,cB%):�A$:A$=�shell_GetEventHandler(_U%!28,_U%!32,1):�A$<>""�
Kq�shell_Tracef0("OpenMenu:About to call "+"FN"+A$+"("+�_U%!28+","+�_U%!32+")"):p%=�("FN"+A$+"(_U%!28,_U%!32)")
N@��shell_Tracef0("OpenMenu:no menumaker function registered")
P�:�cB%<>_U%!24�
T%�shell_HeapBlockExists(_U%!256)�
U-�shell_HeapBlockReturn(_U%!256):_U%!256=0
V'�:�shell_HeapBlockExists(_U%!&F4)�
Y-�shell_HeapBlockReturn(_U%!&F4):_U%!&F4=0
Z�
[�:�cB%=_U%!&FC�
]#ș&400D4,,cB%,JA%,KA%:_U%!264=1
_�ș&45BC5,cB%,_Q%:_U%!264=0
bD�:_U%!24=cB%:_U%!36=JA%:_U%!40=KA%:_U%!52=_U%!28:_U%!56=_U%!32:�
m ݤshell_MenuLastXPos:=_U%!36
s ݤshell_MenuLastYPos:=_U%!40
y���shell_MenuAttachDbox(l$):ș"Menu_SetSubHandle",_U%!8,�shell_MenuString(l$),1:�shell_Tracef0("MenuAttachDbox:Dialog box ("+l$+") attached"):�
��ݤshell_MessageWindow(J$,NE%,RA$,g$):�SC%,aA%:aA%=�shell_HeapBlockFetch(260):!aA%=0:$(aA%+4)=J$+�(0):�g$=""�g$="Message from "+RA$
�	�NE%�
�ș&400DF,aA%,19,g$�,SC%
��ș&400DF,aA%,17,g$�,SC%
�&�:�shell_HeapBlockReturn(aA%):=SC%
�[��shell_CreateWindow(t$,�k%):�LB%:LB%=�shell_GetWB(t$):LB%!64=_U%!16:ș&400C1,,LB%�k%:�
��ݤshell_CreateWindow2(N,l%,uD%,mD%,BE%,SA%,ZC%,TA%,rA%,pA%):�Q%:Q%=�shell_HeapBlockFetch(&BB8):Q%!0=ZC%:Q%!4=TA%:Q%!8=rA%:Q%!&C=pA%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=l%:Q%?32=7:Q%?33=2:Q%?34=uD%:Q%?35=mD%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=SA%
��Q%!48=BE%: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%�k%:�shell_HeapBlockReturn(Q%):=k%
�Dݤshell_WindowHasTitleBar(c%):=(�shell_WindowGetFlags(c%)�1<<26)
�Bݤshell_WindowIsMoveable(c%):=(�shell_WindowGetFlags(c%)�1<<1)
�?ݤshell_WindowIsAPane(c%):=(�shell_WindowGetFlags(c%)�1<<5)
�Dݤshell_WindowIsNotBounded(c%):=(�shell_WindowGetFlags(c%)�1<<6)
�Eݤshell_WindowTrapsHotKeys(c%):=(�shell_WindowGetFlags(c%)�1<<&C)
�?ݤshell_WindowIsOpen(c%):=(�shell_WindowGetFlags(c%)�1<<16)
�@ݤshell_WindowIsOnTop(c%):=(�shell_WindowGetFlags(c%)�1<<17)
�Gݤshell_WindowHasBeenToggled(c%):=(�shell_WindowGetFlags(c%)�1<<18)
�Fݤshell_WindowHasInputFocus(c%):=(�shell_WindowGetFlags(c%)�1<<20)
�Dݤshell_WindowHasBackIcon(c%):=(�shell_WindowGetFlags(c%)�1<<24)
�Eݤshell_WindowHasCloseIcon(c%):=(�shell_WindowGetFlags(c%)�1<<25)
�Fݤshell_WindowHasToggleIcon(c%):=(�shell_WindowGetFlags(c%)�1<<27)
�Fݤshell_WindowHasVScrollBar(c%):=(�shell_WindowGetFlags(c%)�1<<28)
�Jݤshell_WindowHasAdjustSizeIcon(c%):=(�shell_WindowGetFlags(c%)�1<<29)
�Fݤshell_WindowHasHScrollBar(c%):=(�shell_WindowGetFlags(c%)�1<<30)
�ݤshell_WindowGetFlags(c%):�l%,a%:a%=�shell_HeapBlockFetch(36):a%!0=c%:ș&400CB,,a%:l%=a%!32:�shell_HeapBlockReturn(a%):=l%
�ݤshell_WindowTitleFlags(c%):�l%,a%:a%=�shell_HeapBlockFetch(&BB8):a%!0=c%:ș&400CC,,a%:l%=a%!60:�shell_HeapBlockReturn(a%):=l%
Hݤshell_WindowTitleHasBorder(c%):=(�shell_WindowTitleFlags(c%)�1<<2)
Gݤshell_WindowTitleIsSprite(c%):=(�shell_WindowTitleFlags(c%)�1<<1)
Eݤshell_WindowTitleIsText(c%):=(�shell_WindowTitleFlags(c%)�1<<0)
Iݤshell_WindowTitleIsHCentred(c%):=(�shell_WindowTitleFlags(c%)�1<<3)
#Iݤshell_WindowTitleIsVCentred(c%):=(�shell_WindowTitleFlags(c%)�1<<4)
(Gݤshell_WindowTitleIsFilled(c%):=(�shell_WindowTitleFlags(c%)�1<<5)
-Iݤshell_WindowTitleIsAAliased(c%):=(�shell_WindowTitleFlags(c%)�1<<6)
2Kݤshell_WindowTitleIsIndirected(c%):=(�shell_WindowTitleFlags(c%)�1<<8)
7iݤshell_WindowGetTitle(c%):�Q$,a%:a%=�shell_HeapBlockFetch(&BB8):a%!0=c%:ș&400CC,,a%:�(a%!32�1<<26)�
>�((a%!60)�256)=0�
@Q$=$(a%+76)
A�Q$=$(!(a%+76))
D�
E$�:�shell_HeapBlockReturn(a%):=Q$
Kuݤshell_WindowTitleBufferLength(c%):�jA%,a%:a%=�shell_HeapBlockFetch(&BB8):a%!0=c%:ș&400CC,,a%:�((a%!60)�256)=0�
Q
jA%=&C
R�jA%=a%!84
T%�:�shell_HeapBlockReturn(a%):=jA%
Z���shell_WindowMoveToIcon(c%,EE%,e%,BB%,DB%):�a%:a%=�shell_HeapBlockFetch(50):a%!0=EE%:a%!4=e%:ș&400CE,,a%:�shell_WindowMoveTo(c%,a%!8+BB%,a%!20+DB%):�shell_HeapBlockReturn(a%):�
e���shell_WindowMoveTo(c%,JA%,KA%):�OD%,ID%,d%,a%:a%=�shell_HeapBlockFetch(&BB8):a%!0=c%:ș&400CC,,a%:OD%=a%!&C-a%!4:ID%=a%!16-a%!8:a%!4=JA%:a%!8=KA%:a%!&C=JA%+OD%:a%!16=KA%+ID%:ș&400C5,,a%:ș&400C6,,a%:d%=�shell_SearchStatic(_U%!&B8,c%):�d%>-1�
x�shell_OpenWindowStatic(c%)
y%��shell_OpenWindowDynamic(c%,0,0)
{"�:�shell_HeapBlockReturn(a%):�
����shell_WindowBringToTop(c%):�EB%:EB%=�shell_HeapBlockFetch(256):EB%!0=c%:ș&400CB,,EB%:EB%!28=-1:ș&400E7,2,EB%,c%:ș&400C7,0,EB%:�shell_HeapBlockReturn(EB%):�
����shell_UpdateWindow(k%,ZC%,TA%,rA%,pA%):�a%:a%=�shell_HeapBlockFetch(a%):a%!0=k%:a%!4=ZC%:a%!8=TA%:a%!&C=rA%:a%!16=pA%:ș&400C9,,a%�wB%:ș&400CB,,a%:�shell_HeapBlockReturn(a%):�
����shell_OpenWindowDynamic(c%,BB%,DB%):�p%,hB%:hB%=�shell_HeapBlockFetch(20):_U%!20=c%:ș&400CF,,hB%:ș&400D4,,c%,hB%!0+BB%,hB%!4+DB%:�shell_HeapBlockReturn(hB%):�
�%ݤshell_ClaimKeypress:�_U%!20<>0�
�8ș&400D4,,-1:p%=�shell_DeleteWindow(_U%!20):_U%!20=0
��:=�
����shell_OpenWindow(c%,fC%,FD%):�d%,a%,n%,g%,HD%,FC%,dA%,qA%:�oB%,dB%,pA%,ED%,QD%,iB%:d%=�shell_GetEventListOffset(c%,-1,_U%+304,&C,�):�d%>=0�
�ga%=_U%!304+d%:b%=a%!8:�shell_Tracef0("OpenWindow:About to call "+"FN"+$b%):iB%=�("FN"+$b%):�iB%=0��
�e�:dB%=�:pA%=�shell_HeapBlockFetch(&64):pA%!0=c%:ș&400CB,,pA%:�(pA%!32�&80000)=&80000�dB%=��dB%=�
�<�shell_HeapBlockReturn(pA%):_Q%!0=c%:�fC%�ș&400CB,,_Q%
�	�dB%�
�ș&400C5,,_Q%
�=�:d%=�shell_GetEventListOffset(c%,-1,_U%+92,24,�):�d%>-1�
�Ya%=(_U%!92)+d%:QB%=a%!8:dC%=a%!&C:FB%=a%!16:RB%=a%!20:_Q%!0=c%:�FD%�FC%=-1�FC%=_Q%!28
�
�fC%�
�ș&400CB,,_Q%
�R�:n%=�shell_HeapBlockFetch(&400):g%=0:ȕQB%!g%<>-1:n%!0=QB%!g%:�HD%=0�HD%=n%!0
�+ED%=n%!0:ș&400CB,,n%:oB%=dC%!g%:ȎoB%�
�j�0,1:dA%=n%!16-n%!8:qA%=n%!&C-n%!4:n%!4=_Q%!4+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16+RB%!g%:n%!8=n%!16-dA%
�h�2:dA%=n%!16-n%!8:qA%=_Q%!&C-_Q%!4:n%!4=_Q%!4+FB%!g%:n%!&C=_Q%!&C:n%!16=_Q%!16+RB%!g%:n%!8=n%!16-dA%
�f�3:dA%=_Q%!16-_Q%!8:qA%=n%!&C-n%!4:n%!4=_Q%!4+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16:n%!8=_Q%!8+RB%!g%
�k�4:dA%=n%!16-n%!8:qA%=_Q%!&C-_Q%!4:n%!4=_Q%!4+FB%!g%:n%!&C=_Q%!&C:n%!16=_Q%!8+dA%+RB%!g%:n%!8=n%!16+dA%
�d�5:dA%=_Q%!16-_Q%!8:qA%=n%!&C-n%!4:n%!4=_Q%!&C-qA%+FB%!g%:n%!&C=n%!4+qA%:n%!16=_Q%!16:n%!8=_Q%!8
�:�g%=0�

n%!28=FC%
�n%!28=QD%

*�:ș&400C5,,n%:QD%=n%!0:g%+=4:�:�dB%�
_Q%!28=ED%:ș&400C5,,_Q%
 �:�shell_HeapBlockReturn(n%)
!�_Q%!0=c%:�fC%�ș&400CB,,_Q%
�FC%=-2�_Q%!28=-2
�FD%=-1�_Q%!28=-1
ș&400C5,,_Q%
�:�
!r��shell_CloseWindow(c%):�d%,a%,QB%,dC%,FB%,RB%,t%,iB%:d%=�shell_GetEventListOffset(c%,-1,_U%+308,&C,�):�d%>=0�
%ha%=_U%!308+d%:b%=a%!8:�shell_Tracef0("CloseWindow:About to call "+"FN"+$b%):iB%=�("FN"+$b%):�iB%=0��
,)�:t%=�shell_HeapBlockFetch(60):�c%>0�
/;d%=�shell_GetEventListOffset(c%,-1,_U%+92,24,�):�d%>-1�
1la%=(_U%!92)+d%:dC%=a%!&C:FB%=a%!16:RB%=a%!20:g%=0:QB%=a%!8:ȕQB%!g%<>-1:t%!0=QB%!g%:ș&400C6,,t%:g%+=4:�
>�:t%!0=c%:ș&400C6,,t%
A"�:�shell_HeapBlockReturn(t%):�
HEݤshell_DeleteWindow(k%):�t%:t%=�shell_HeapBlockFetch(20):�k%<>0�
L�oktodeletew(k%)�
M1�shell_EventDeleteAll(k%):�k%=_U%!20�_U%!20=0
O.d%=�shell_SearchStatic(_U%!&B8,k%):�d%>-1�
Qb%=_U%!&B8+d%:b%!0=0
S�:t%!0=k%:ș&400C3,,t%:k%=0
X�
Y$�:�shell_HeapBlockReturn(t%):=k%
_ݤoktodeletew(k%):=-1
dݤoktoclosew(k%):=-1
iv��cliprect(A,�IA%,�NA%,�LE%,�XE%):�_%,DA%:�lwaorigin(A,_%,DA%):IA%=A!24-_%:NA%=A!28-DA%:LE%=A!32-_%:XE%=A!36-DA%:�
q+ݤpoll(bB%,SD%):ș&400C7,bB%,_Q%�x%:=x%
wDݤshell_Poll_I(bB%,SD%):ș&400C7,bB%,_Q%�x%:ș&81686,x%,,SD%:=x%
}��shell_DoBackgroundTask:�
��ݤshell_IconIsDraggable(c%,e%):�l%,b%,a%:a%=�shell_HeapBlockFetch(50):a%!0=c%:a%!4=e%:ș&400CE,,a%:l%=a%!24:b%=(l%�&6000):�shell_HeapBlockReturn(a%):�b%=&6000=��=�
�=0
�z��shell_IconDragBox(c%,e%):�a%,H,J,BD%,l%,BA%,PD%,WD%,SB%,j$:BD%=�shell_GetEventListOffset(c%,e%,_U%+72,24,�):�BD%>=0�
��a%=�shell_HeapBlockFetch(6000):!a%=c%:ș&400CC,,a%:H=a%!4-a%!20:J=a%!16-a%!24:WD%=a%!68:a%!4=e%:ș&400CE,,a%:!a%=c%:a%!4=5:l%=a%!24:SB%=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:a%!32=&7FFFFFFF:a%!36=&7FFFFFFF
�*ș6,&A1,28�,,BA%:PD%=((BA%�2)=2):�PD%�
�BA%=l%:�(BA%�256)�
�%j$=�shell_IconGetCommand(SB%,"s")
�7�:�(BA%�2)=0��99,�shell_MessageNoArgs("SHELLMSG19")
��j$<>""�
�.ș&42400,&85,WD%,j$,a%+8:_U%!&64=_U%!&64�1
��ș&400D0,,a%
��
��ș&400D0,,a%
� �:�shell_HeapBlockReturn(a%)
�U��shell_Tracef0("IconDragBox:WARNING! no drag handler registered for this icon!")
��:�
�9��shell_HandleAttachedMenu(_Q%,c%,e%):�q%:�:��:��:�
��e%<>-1�c%>-1�
�/q%=�shell_GetEventMenu(_Q%!8,c%,e%):�q%<>0�
�&�shell_OpenMenu(_Q%!0-64,_Q%!4,q%)
��
��:�
�t��shell_Action(qD%):�A$,q%,l$,VA$,sA%,ZA%,kA%,sC%:�c%,e%,p%,_temp28%,_temp32%,_temp24%,_temp%,cC%:�fB%,d%:ȎqD%�
��0:�shell_DoBackgroundTask
�!�1:�shell_RedrawWindow(_Q%!0)
�#�2:�shell_OpenWindow(_Q%!0,�,0)
� �3:�shell_CloseWindow(_Q%!0)
�"�4:�shell_PointerLeavingWindow
�#�5:�shell_PointerEnteringWindow
߰�6:_U%!28=_Q%!&C:_U%!32=_Q%!16:ZA%=_Q%!0:kA%=_Q%!4:_U%!272=_Q%!0:_U%!276=_Q%!4:_temp28%=_Q%!&C:_temp32%=_Q%!16:e%=_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�
�1�shell_HandleBumpIcons(_U%!296,_Q%!&C,_Q%!16)
�1�_U%!288=-1:_U%!292=-1:_U%!296=-1:�_Q%!16>=0�
�ld%=�shell_GetEventListOffset(_Q%!&C,_Q%!16,_U%+&68,16,0):�d%>=0��shell_HandleBumpIcons(d%,_Q%!&C,_Q%!16)
��
��:�(_Q%!8=64)�
�3jA%=�shell_IconIsDraggable(_Q%!&C,_Q%!16):�jA%�
�<R$="Icon is draggable":�shell_IconDragBox(_Q%!&C,_Q%!16)
��R$="Icon is not draggable"
�"�:�shell_Tracef0("Action:"+R$)
��:Ȏ_Q%!8�
� �4:�shell_ActionSelectButton
��2:�shell_ActionMenuButton
 �1:�shell_ActionAdjustButton
�
�7:�_U%!&64�1�
ș&42401:_U%!&64=_U%!&64�1
C�:_U%!&80=0:A$=�shell_GetEventHandler(_U%!28,_U%!32,6):�A$<>""�
f�shell_Tracef0("Action:Drag event detected - function is "+A$):p%=�("FN"+A$+"(_temp28%,_temp32%)")

j��shell_Tracef0("Action:Drag event detected - no handler function"):�shell_SendDataSave(_U%!28,_U%!32)
�
>�8:�shell_Tracef0("Action:keypress is="+�_Q%!24):Ȏ_Q%!24�
C�&D,398,399:sC%=�shell_WriteableIconHandler(_Q%!0,_Q%!4,_Q%!24)
%sC%=�shell_HotKeyProcess(_Q%!24)
�:�sC%�
P�shell_Tracef0("Action:Keypress not claimed, passing it on"):ș&400DC,_Q%!24
B��shell_Tracef0("Action:Keypress claimed by this application")
�
 #�9:�shell_ActionMenuSelect(_Q%)
!�17,18:�shell_Receive(_Q%)
"*�19:�shell_UserMessageAcknowledge(_Q%)
#�:�
)���shell_ActionSelectButton:�shell_Tracef0("ActionSelectButton:Mouse Button was SELECT"):�shell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):A$=�shell_GetEventHandler(_U%!28,_U%!32,2):�_U%!32=0�
0+�shell_DataSaveCheckName(_U%!28,_U%!32)
1�:�A$<>""�
3��shell_IconSlab(4,_U%!28,_U%!32):�shell_Tracef0("ActionSelectButton:About to call "+"FN"+A$+"("+�_temp28%+","+�_temp32%+")"):p%=�("FN"+A$+"(_temp28%,_temp32%)")
8�:�_U%!32=0�
;�_U%!28=_U%!20�
<ș&400D4,,-1
=�
>�:�
C���shell_ActionMenuButton:�b%,q%:�shell_Tracef0("ActionMenuButton:Mouse Button was MENU"):b%=�:�(-1)�b%=�shiftmenuclick(_Q%!&C,_Q%!16)
J�b%�
K��shell_Tracef0("ActionMenuButton:Checking menu events.."):q%=�shell_GetEventMenu(_Q%!8,_Q%!&C,_Q%!16):�shell_Tracef0("ActionMenuButton:Menu handle is:"+�q%):�q%<>0�
Oc�shell_OpenMenu(_Q%!0,_Q%!4,q%):_U%!24=q%:_U%!36=_Q%!0:_U%!40=_Q%!4:_U%!52=_U%!28:_U%!56=_U%!32
U�
V�:�
\���shell_ActionMenuSelect(_Q%):�mC%,sA%,fB%,cC%,p%,sB%:sB%=�shell_HeapBlockFetch(256):�shell_Tracef0("ActionMenuSelect:Menu_Select event detected"):ș&400CF,,_shell_blk%:sA%=�shell_HeapBlockFetch(256):�_U%!24=_U%!&FC�
gfB%=0:_U%!264=1
h?�fB%=�shell_CheckSelection(_Q%):�fB%>-1�_U%!264=1�_U%!264=0
k�:�_U%!264>0�
m$ș&8D084,_Q%+fB%,sA%�cC%:�cC%=1�
q��shell_Tracef0("ActionMenuSelect:FontMenu selection ("+�shell_GetString(sA%)+")"):�shell_FontMenuSelectFont(�shell_GetString(sA%),_U%!260):�_shell_FontMenuSelFN$=""�
u�ș&400D5,,_U%!24,_Q%,sA%:A$=�shell_GetEventHandler(_U%!52,_U%!56,0):_temp%=sA%:$_temp%=�shell_StringStripTrailing($_temp%," "):�A$<>""�p%=�("FN"+A$+"($_temp%)")
z ��_shell_FontMenuSelFN$<>""�
|Lp%=�("FN"+_shell_FontMenuSelFN$+"(FNshell_FontMenuGetLastSelectedFont)")
}�
~�
�
�-�:�shell_HeapBlockReturn(sA%):�_U%!264=0�
�Eș&45BC4,_U%!24,_Q%�mC%,,sB%:�mC%��shell_MenuCallHandler(mC%,sB%)
��:�_shell_blk%!8=1�
�L�shell_Tracef0("HILKE::Adjust button"):�shell_HeapBlockExists(_U%!&E0)�
�O�shell_Tracef0("HILKE::Stored warn_fn exists"):_temp%=_U%!&E0:�$_temp%<>""�
�d�shell_Tracef0("HILKE::Calling last warn_fn ("+$_temp%+")"):p%=�("FN"+$_temp%+"(_U%!52,_U%!56)")
��
�+�:�shell_OpenMenu(_U%!36,_U%!40,_U%!24)
��_shell_FontMenuSelFN$=""
�#�:�shell_HeapBlockReturn(sB%):�
����shell_ActionAdjustButton:�shell_Tracef0("Action:Mouse Button was ADJUST"):�shell_HandleAttachedMenu(_Q%,_U%!28,_U%!32):A$=�shell_GetEventHandler(_U%!28,_U%!32,3):�A$<>""�
�H�shell_IconSlab(1,_U%!28,_U%!32):p%=�("FN"+A$+"(_temp28%,_temp32%)")
��:�
�ݤshiftmenuclick(c%,e%):=�
����shell_IconSlab(pB%,c%,e%):�a%:a%=�shell_HeapBlockFetch(50):a%!8=pB%:a%!&C=c%:a%!16=e%:ș&81680,,a%:a%!8=0:ș&81680,,a%:�shell_HeapBlockReturn(a%):�
�"��shell_PointerLeavingWindow:�
�#��shell_PointerEnteringWindow:�
����shell_RedrawWindow(k%):�wB%,A$,_%,DA%,a%:a%=�shell_HeapBlockFetch(&64):A$=�shell_GetEventHandler(k%,-1,4):a%!0=k%:ș&400C8,,a%�wB%:_%=a%!4-a%!20:DA%=a%!16-a%!24:ȕwB%:ș&81681,,a%:�A$<>""�p%=�("FN"+A$+"("+�a%+","+�_%+","+�DA%+")")
�3ș&400CA,,a%�wB%:�:�shell_HeapBlockReturn(a%):�
�)��shell_Receive(_Q%):�b%,p%:Ȏ_Q%!16�
��0:�shell_Exit:�
��1:�shell_DataSave(_Q%)
��2:�shell_DataSaveAck(_Q%)
��3:�shell_DataLoad(_Q%,�)
��4:�shell_DataLoadAck(_Q%)
��5:�shell_DataLoad(_Q%,�)
��6:�shell_RAMFetch(_Q%)
��7:�shell_RAMTransmit(_Q%)
�"�8:�shell_Message_PreQuit(_Q%)
��9:�_U%!&A4>0�
�V�shell_Tracef0("Receive:PaletteChange message received"):b%=_U%!&A4:p%=�("FN"+$b%)
��
�'�&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�
�W�shell_Tracef0("Receive:TaskInitialise message received"):b%=_U%!&A8:p%=�("FN"+$b%)
�8�:�_U%!&D0=-1��shell_GetString(_Q%+28)="StrongHelp"�
�_U%!&D0=_Q%!4:�shell_StrongHlpMsg("Help_Install -DieWithTask "+�shell_GetAppDir+"."+�shell_GetAppName):b%=_U%!&D8:�$b%<>""�
�B�shell_HelpWord($b%):�shell_HeapBlockReturn(_U%!&D8):_U%!&D8=0
��
��
��&400C3:�_U%!&AC>0�
�V�shell_Tracef0("Receive:TaskCloseDown message received"):b%=_U%!&AC:p%=�("FN"+$b%)
�:�_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
�
&�shell_HandleUnknownMessage2(_Q%)

�:�
/��shell_Message_ModeChange(_Q%):�_U%!&A0>0�
^�shell_Tracef0("Message_ModeChange:ModeChange message received"):b%=_U%!&A0:p%=�("FN"+$b%)
�:�
-��shell_Message_Shutdown(_Q%):�_U%!312>0�
 Z�shell_Tracef0("Message_Shutdown:Shutdown message received"):b%=_U%!312:p%=�("FN"+$b%)
#�:�
(4��shell_HandleUnknownMessage2(_Q%):�b$:Ȏ_Q%!16�
-9�&43B00:b$=$(_Q%+20):�b$,20)="EvntShellLib:TraceOn"�
0�shell_TraceOn
1'�:�b$,21)="EvntShellLib:TraceOff"�
3�shell_TraceOff
4.�:�b$,28)="EvntShellLib:ListClickSelect"�
6�shell_ListClickSelect
7.�:�b$,28)="EvntShellLib:ListClickAdjust"�
9�shell_ListClickAdjust
:+�:�b$,25)="EvntShellLib:ListHelpTags"�
<�shell_ListHelpTags
=�
>(�:�shell_HandleUnknownMessage(_Q%):�
F'��shell_HandleUnknownMessage(_Q%):�
LV��shell_AttachPreQuitHandler(A$):�b%,p%:�_U%!300>0��shell_HeapBlockReturn(_U%!300)
O<_U%!300=�shell_HeapBlockFetch(�A$+1):b%=_U%!300:$b%=A$:�
VW��shell_AttachShutdownHandler(A$):�b%,p%:�_U%!312>0��shell_HeapBlockReturn(_U%!312)
Y<_U%!312=�shell_HeapBlockFetch(�A$+1):b%=_U%!312:$b%=A$:�
`Y��shell_AttachModeChangeHandler(A$):�b%,p%:�_U%!&A0>0��shell_HeapBlockReturn(_U%!&A0)
cJ_U%!&A0=�shell_HeapBlockFetch(�A$+1):b%=_U%!&A0:$b%=A$:p%=�("FN"+A$):�
k\��shell_AttachPaletteChangeHandler(A$):�b%,p%:�_U%!&A4>0��shell_HeapBlockReturn(_U%!&A4)
nJ_U%!&A4=�shell_HeapBlockFetch(�A$+1):b%=_U%!&A4:$b%=A$:p%=�("FN"+A$):�
v]��shell_AttachTaskInitialiseHandler(A$):�b%,p%:�_U%!&A8>0��shell_HeapBlockReturn(_U%!&A8)
y<_U%!&A8=�shell_HeapBlockFetch(�A$+1):b%=_U%!&A8:$b%=A$:�
�\��shell_AttachTaskCloseDownHandler(A$):�b%,p%:�_U%!&AC>0��shell_HeapBlockReturn(_U%!&AC)
�<_U%!&AC=�shell_HeapBlockFetch(�A$+1):b%=_U%!&AC:$b%=A$:�
�<��shell_RAMFetch(_Q%):�nE%,QC%,XC%:XC%=�:�_U%!&90>&8000�
�a�shell_Tracef0("RAMFetch:RAMFetch called.."):_Q%!&C=_Q%!8:_Q%!16=7:QC%=_U%!&88:�_U%!&8C=&FF9�
�_U%!&90+=4
��:�(QC%-_U%!&80)<_Q%!24�
�_Q%!24=QC%-_U%!&80:XC%=�
�-��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:�XC%�_U%!&80=0
��:�
�;��shell_RAMTransmit(_Q%):�d%,a%,FA$,b%:�_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%):b%=_U%!&9C:FA$=�shell_GetString(b%+44):�shell_UserFNLoadFile(b%!40,_U%!&98,a%!8,FA$,_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(oE%):�f$,AB%,tB%,lA%:f$=�shell_GetString(_Q%+44):AB%=�shell_FileLength(f$):�AB%<0��shell_OK(�shell_MessageNoArgs("SHELLMSG16"))
�PlA%=�shell_HeapBlockFetch(AB%):ș&20008,16,f$,lA%,0�;tB%:�shell_VFlag(tB%)�
�M�shell_HeapBlockReturn(lA%):�shell_OK(�shell_MessageNoArgs("SHELLMSG17"))
�@��shell_Tracef0("LoadFile:File "+f$+" loaded ok at &"+�~lA%)
�
�:=lA%
	#ݤshell_VFlag(tB%):=((tB%�1)=1)
	gݤshell_CheckType(w%,GB%,uB%):�pE%,g%,j%,b%,vB%:g%=0:j%=-1:vB%=�:�_U%!&64�1<<1�_U%!&64=_U%!&64�1<<1
	%ȕGB%!g%<>-1:b%=GB%!g%:�b%�1<<31�
	b%=b%�1<<31:vB%=�
	
�vB%=�
	
�:�b%=w%�
	j%=g%:�vB%�
	 L_U%!&64=_U%!&64�1<<1:�shell_Tracef0("CheckType:Top Bit Load detected..")
	$�
	%#�:g%+=4:�:�uB%�(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�=��=�
	5���shell_Exit:�KB%:KB%=_U%!68:ș&61504,KB%:ș&2001E,7,,KB%:�shell_Tracef0("Exit:Application closing down"):�shell_TraceExit:ș&406C2:ș&400D0,,-1:�shell_WimpCloseDown_I(_U%!&94):�
	F���shell_DataLoad(_Q%,uB%):�kE%,d%,a%,_temp%,GB%,w%,c$:w%=_Q%!40:c$=�shell_GetString(_Q%+44):�shell_Tracef0("DataLoad:DataLoad message received"):�uB%�
	S�_U%!96<>0�
	Td%=0
	U
�d%=-1
	W�
	XD�d%=�shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16,�):�d%=-1�
	]7d%=�shell_GetEventListOffset(_Q%!20,-1,_U%+96,16,�)
	^�
	_
�:�d%>-1�
	b4a%=_U%!96+d%:�shell_CheckType(_Q%!40,a%!8,uB%)�
	f��shell_Tracef0("DataLoad:File type recognised (&"+�~_Q%!40+")"):CE%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4:ș&400E7,18,_Q%,_Q%!4:�_U%!&64�1<<1�
	mlA%=-1:_U%!&64=_U%!&64�1<<1
	o%�lA%=�shell_LoadFile(CE%=_U%!&6C)
	qB�:�shell_UserFNLoadFile(w%,lA%,a%!8,c$,_Q%!36,a%):�_U%!&9C<>0�
	u-�shell_HeapBlockReturn(_U%!&9C):_U%!&9C=0
	w�
	xH��shell_Tracef0("DataLoad:File type NOT recognised (&"+�~_Q%!40+")")
	|�
	}�:�
	����shell_UserFNLoadFile(w%,lA%,GB%,_filename$,_file_size%,a%):�g%,j%,b%,p%:g%=0:j%=-1:ȕGB%!g%<>-1:b%=GB%!g%:�b%�1<<31�b%=b%�1<<31
	��b%=w%�j%=g%
	�[g%+=4:�:b%=a%!&C:p%=�("FN"+$(b%!j%)+"("+�lA%+","+�w%+",_filename$,"+�_file_size%+")"):�
	�l��shell_DataSave(_Q%):�b%,d%,a%,m%:�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):b%=_U%!&9C:�m%=0�_Q%!0�4:b%!m%=_Q%!m%:�m%:_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(c%,e%):�a%,LA%,HB%,d%,AB%,p%:HB%=�shell_HeapBlockFetch(30):ș&400CF,,HB%:d%=�shell_GetEventListOffset(c%,e%,_U%+72,24,�):�d%=-1�d%=-2�
	�dp%=�shell_MessageWindow(�shell_MessageNoArgs("SHELLMSG13"),0,"",�shell_MessageNoArgs("warning"))
	� �a%=(_U%!72)+d%:�a%!8>&8000�
	�$AB%=�shell_HeapBlockInfo(a%!8)-4
	�
�AB%=a%!8
	���:LA%=_U%!76:LA%!0=256:LA%!&C=0:LA%!16=1:LA%!20=HB%!&C:LA%!24=HB%!16:LA%!28=HB%!0:LA%!32=HB%!4:LA%!36=AB%:LA%!40=a%!&C:$(LA%+44)=�shell_Leaf(�shell_IconGetData(c%,a%!16)):ș&400E7,18,LA%,LA%!20,LA%!24:_U%!&78=_Q%!8:_U%!&88=AB%:_U%!&8C=a%!&C
;_U%!&90=a%!8:_U%!&9C=a%!4:_U%!&C8=LA%!20:_U%!&CC=LA%!24

#�:�shell_HeapBlockReturn(HB%):�
���shell_DataSaveAck(_Q%):�_fullname$,x%,TA%,a%,b%,p%:�shell_Tracef0("DataSaveAck:DataSaveAck message received"):x%=0:TA%=_Q%?(44+x%):ȕTA%<>0:_fullname$+=�(TA%):x%+=1:TA%=_Q%?(44+x%):�:�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,�):�d%=-1�d%=-2��99,�shell_MessageNoArgs("SHELLMSG05")
"%a%=(_U%!72)+d%:b%=a%!20:�$b%<>""�
&!p%=�("FN"+$b%+"(_fullname$)")
'#��shell_HeapBlockExists(a%!8)�
,Cș8,&A,_fullname$,a%!&C,,a%!8,a%!8+�shell_HeapBlockInfo(a%!8)+1
-+̅99,�shell_MessageNoArgs("SHELLMSG21")
0�
1�:�_Q%!36>-1�
4-�_U%!80<>0��shell_HeapBlockReturn(_U%!80)
5H_U%!80=�shell_HeapBlockFetch(�_fullname$+1):b%=_U%!80:$b%=_fullname$
8��:_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
Ci�shell_Tracef0("DataSaveAck:Sending DataLoad Message"):ș&400E7,18,_Q%,_Q%!20,_Q%!24:�_U%!28<>_U%!20�
I�shell_CloseWindow(_U%!28)
J�:ș&400D4,,-1:�
PE��shell_DataSaveCheckName(c%,e%):�d%,a%,o%:a%=_U%!72:d%=0:�a%<>0�
X1o%=�shell_HeapBlockInfo(a%)-8:�:�!(a%+d%)=c%�
^^W$=�shell_IconGetData(!a%,a%!16):�W$,".")=0��shell_OK(�shell_MessageNoArgs("SHELLMSG01"))
`	d%=o%
a�:d%+=24:�d%>=o%
d�:�
il��shell_DataLoadAck(_Q%):�shell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)"):�
q1��shell_UserMessageAcknowledge(_Q%):Ȏ_Q%!16�
s�3:�shell_AckDataLoad(_Q%)
t�6:�shell_AckRAMFetch(_Q%)
u�:�
z-��shell_AckDataLoad(_Q%):�_Q%!&C<>_U%!84�
Hș&20008,6,"<Wimp$Scrap>":�&FF,"Data Transfer failed: Receiver died"
��:�
�v��shell_AckRAMFetch(_Q%):�VD%,b%:b%=_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�,,VD%:�VD%<>0�
��$(b%+44)="<Wimp$Scrap>"+�(0):b%!0=(49+�(�shell_GetString(b%+44)))��3:b%!&C=b%!8:b%!16=2:b%!36=-1:ș&400E7,18,b%,b%!4:_U%!&6C=b%!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")
��
��:�
�o��shell_MenuWarning(_Q%):�A$,sA%,JA%,KA%,p%,_temp%,x%,C$,IB%,a%:JA%=_Q%!24:KA%=_Q%!28:_U%!264=0:�_U%!20<>0�
���shell_Tracef0("MenuWarning:Removing last dynamic dbox (handle=&"+�~_U%!20+")"):p%=�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):�7:ș&400E8,,_U%!&E4,JA%,KA%
�QIB%=�shell_MenuGetItemAddress(_U%!24,_Q%+32):�shell_HeapBlockExists(IB%!4)�
�$�shell_MenuWarnDBox(IB%,JA%,KA%)
Ϫ�a%=�shell_HeapBlockFetch(32):ș&45BC4,_U%!24,_Q%+32�,,a%:�shell_FindMenuWarnEvent(a%!8,C$,D$):�shell_HeapBlockReturn(a%):�shell_MenuWarnSubMenu(_Q%!20,JA%,KA%,C$,D$)
��
��:�
�;��shell_MenuWarnDBox(YA%,JA%,KA%):�b%,z%,p%:�:��:��:�
�b%=YA%!4:�shell_CreateWindow($b%!0,z%):��:�shell_Tracef0("MenuWarnDBox:Creating new dynamic dbox (handle=&"+�~z%+")"):�$b%!4<>""�
�^�shell_Tracef0("MenuWarnDBox:Calling preopen FN '"+$b%!4+"'"):p%=�("FN"+$b%!4+"("+�z%+")")
��:�$b%!8<>""�
�_�shell_Tracef0("MenuWarnDBox:Calling postopen FN '"+$b%!8+"'"):p%=�("FN"+$b%!8+"("+�z%+")")
�&�:ș&400E8,,z%,JA%,KA%:_U%!20=z%:�
����shell_FindMenuWarnEvent(UA%,�C$,�D$):�jA%,s%,b%,d%,j%,o%,u%,g%:�JB%:JB%=0:s%=_U%!&DC:d%=0:j%=�:C$="":JB%=0:�shell_HeapBlockExists(s%)�
m�:g%+=4:�s%!g%=-1:o%=g%:g%=0:�shell_Tracef0("FindMenuWarnEvent:list_size%="+�o%):�:b%=!(s%+d%+0):�b%<>-1�
�b%=UA%�
qj%=�:u%=s%!(d%+4):C$=$u%:JB%=s%!(d%+8):u%=s%!(d%+&C):D$=$u%:�shell_Tracef0("FindMenuWarnEvent:submenu found")
�:d%+=16

�d%=o%
�:�j%�d%>=o%
�C$="":D$=""
D�:�JB%=0��shell_Tracef0("FindMenuWarnEvent:warn fn not found..")
�
$���shell_MenuWarnSubMenu(RC%,JA%,KA%,C$,D$):�p%,b%,mA%,g%:_shell_FontMenuSelFN$=D$:�shell_HeapBlockExists(_U%!&E0)��shell_HeapBlockReturn(_U%!&E0)
(C_U%!&E0=�shell_HeapBlockFetch(�C$+1):b%=_U%!&E0:$b%=C$:�C$<>""�
+Sp%=�("FN"+C$+"(_U%!52,_U%!56)"):�shell_Tracef0("MenuWarnSubMenu:Calling FN"+C$)
/�:�RC%=_U%!&FC�
4y�shell_Tracef0("MenuWarnSubMenu:FontMenu opening.."):�shell_HeapBlockExists(_U%!256)��shell_HeapBlockReturn(_U%!256)
9�g%=0:�:g%+=4:�!(_Q%+32+g%)=-1:g%+=4:_U%!256=�shell_HeapBlockFetch(g%):b%=_U%!256:g%=0:�:b%!g%=!(_Q%+32+g%):g%+=4:�!(_Q%+32+g%)=-1:b%!g%=!(_Q%+32+g%):b%=_U%!256
C��shell_Tracef0("MenuWarnSubMenu:Selecting '"+�shell_FontMenuGetLastSelectedFont+"' in FontMenu.."):ș&8D082,�shell_FontMenuGetLastSelectedFont,_U%!260�,mA%:_U%!264=1:�mA%<>_U%!&FC�
I5�shell_FontMenuUpdatePtr(mA%):_U%!&FC=mA%:RC%=mA%
K�
L�_U%!264=0
N�:ș&400E8,,RC%,JA%,KA%:�
V?��shell_AttachSubMenu(iA%,JB%,C$):ș&45BCE,iA%,JB%:�C$<>""�
Y7ș&45BCC,,�:�shell_EventListMenuWarn(iA%,JB%,C$,"")
[�:�
aE��shell_EventListMenuWarn(iA%,hD%,C$,D$):�b%,u%,g%,s%:�_U%!&DC=0�
e�_U%!&DC=�shell_HeapBlockFetch(32):b%=_U%!&DC:b%!0=iA%:b%!4=�shell_HeapBlockFetch(�C$+1):$(b%!4)=C$:b%!8=hD%:b%!&C=�shell_HeapBlockFetch(�D$+1):$(b%!&C)=D$:b%!16=-1:b%!20=-1:b%!24=-1:b%!28=-1
n��s%=�shell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=s%:g%=0:�:g%+=16:�s%!g%=-1:b%=_U%!&DC:b%!g%=iA%:b%!(g%+4)=�shell_HeapBlockFetch(�C$+1):u%=b%!(g%+4):$(u%)=C$:b%!(g%+8)=hD%:b%!(g%+&C)=�shell_HeapBlockFetch(�D$+1):u%=b%!(g%+&C):$(u%)=D$
|;b%!(g%+16)=-1:b%!(g%+20)=-1:b%!(g%+24)=-1:b%!(g%+28)=-1
~�:�
����shell_InteractiveHelp(_Q%):�I$,R$,E$,uA%,TC%,WA$:I$=�shell_GetEventHandler(_Q%!32,_Q%!36,8):E$=�shell_IconGetValidation(_Q%!32,_Q%!36):�E$<>""�
�(�shell_StringUpperCase(�E$,1))="I"�
�uA%=�E$,";"):�uA%=0�
�
I$=�E$,2)
��I$=�E$,2,uA%-2)
��
���uA%=��shell_StringUpperCase(E$),�shell_StringUpperCase(";i")):TC%=��shell_StringUpperCase(E$),�shell_StringUpperCase(";"),uA%+1):�uA%>0�
��TC%>0�
�I$=�E$,uA%+2,TC%-uA%-2)
��I$=�E$,uA%+2)
��
��
��
��:�I$<>""�
��_Q%!16=&503:_Q%!&C=_Q%!8:R$=�shell_MessageLookup(I$,"",""):R$=�shell_MessageExpand(R$):$(_Q%+20)=R$:!_Q%=(�R$+25)��3:ș&400E7,17,_Q%,_Q%!4
��:�
���ack:�
�>��shell_Message_PreQuit(_Q%):�b%,UC%,a%,m%,VC%:�_U%!300>0�
��a%=�shell_HeapBlockFetch(256):�m%=0�_Q%!0�4:a%!m%=_Q%!m%:�m%:�shell_Tracef0("Message_PreQuit:PreQuit message received"):b%=_U%!300:UC%=a%!4:�!a%<24�VC%=0�VC%=a%!20
�2a%!&C=a%!8:ș&400E7,19,a%,UC%:�("FN"+$b%)<>0�
��VC%�1�
�_closedown%=�
�5�!a%=24:a%!24=508:ș&400E7,8,a%,UC%:_closedown%=�
��
� �:�shell_HeapBlockReturn(a%)
��:�
�9��lwaorigin(A,�JA%,�KA%):JA%=A!0-A!16:KA%=A!&C-A!20:�
�=ݤshell_Iconbar(CA%,i$,J$,WC%,q%,VB%,WB%,qB%):�k%:�J$=""�
�J!_Q%=CA%:_Q%!4=0:_Q%!8=0:_Q%!&C=70:_Q%!16=70:_Q%!20=&301A:$(_Q%+24)=i$
ކ�!_Q%=CA%:_Q%!4=0:_Q%!8=-16:_Q%!&C=WC%:_Q%!16=90:_Q%!20=&1700210B:�_Q%!24&C:�_Q%!28�(i$)+2:$(_Q%!24)=J$:$(_Q%!28)="S"+i$:_Q%!32=&C
�B�:ș&400C2,,_Q%�k%:�shell_AttachMenu(-2,k%,q%,VB%,WB%,qB%):=k%
���shell_IconbarSetText(z%,sD%,H$):�i%:i%=�shell_HeapBlockFetch(40):!i%=z%:i%!4=sD%:ș&400CE,,i%:$(i%!28)=H$:ș&400D1,-1,i%!8-&C8,i%!&C,i%!16+&C8,i%!20:�shell_HeapBlockReturn(i%):�
��ݤshell_WriteableIconHandler(c%,e%,EA%):�cE%,zB%,jB%,g%:�YC%,kB%,cA%,ZA%,kA%,hE%,FA%:FA%=�shell_HeapBlockFetch(24):ș&400D3,,FA%:�FA%!0=-1�
"�shell_HeapBlockReturn(FA%):=�
@�:ș&400D6,c%,FA%,&40E000,&E000:zB%=FA%!0:g%=0:�:�FA%!g%=e%�
!YC%=FA%!(g%-4):kB%=FA%!(g%+4)
	,�:g%+=4:�FA%!g%=-1:jB%=FA%!(g%-4):ȎEA%�
�&D:�e%=jB%�
ș&400DC,&D
;�ș&400D2,c%,kB%,-1,-1,-1,�(�shell_IconGetData(c%,kB%))
�
�398:�e%=jB%�
:ș&400D2,c%,zB%,-1,-1,-1,�(�shell_IconGetData(c%,zB%))
;�ș&400D2,c%,kB%,-1,-1,-1,�(�shell_IconGetData(c%,kB%))
�
�399:�e%=zB%�
:ș&400D2,c%,jB%,-1,-1,-1,�(�shell_IconGetData(c%,jB%))
;�ș&400D2,c%,YC%,-1,-1,-1,�(�shell_IconGetData(c%,YC%))
!�
"$�:�shell_HeapBlockReturn(FA%):=�
(_��shell_FakeMouseClick(c%,e%,pB%):ș6,&F,1:_Q%!8=pB%:_Q%!&C=c%:_Q%!16=e%:�shell_Action(6):�
0�ݤshell_IconCreate(c%,fA%,SA%,WC%,z%,aC%,bC%,xD%,S$,YA%,BC%,E$):�_D%,k%,SB%,i%:i%=�shell_HeapBlockFetch(40):i%!0=c%:i%!4=fA%:i%!8=SA%:i%!&C=fA%+WC%:i%!16=SA%+z%:i%!20=xD%�bC%<<28�aC%<<24:�i%!20�256�
8#_D%=�S$,","):i%!24=YA%:�E$<>""�
;6SB%=�shell_HeapBlockFetch(�E$+1):$SB%=E$:i%!28=SB%
>
�i%!28=-1
@�:i%!32=BC%
B�$(i%+24)=�S$,&B)
D4�:ș&400C2,,i%�k%:�shell_HeapBlockReturn(i%):=k%
K<��shell_IconDelete(c%,e%):�shell_DoIconDelete(c%,e%,�):�
Q=��shell_IconDelete2(c%,e%):�shell_DoIconDelete(c%,e%,�):�
W���shell_DoIconDelete(c%,e%,IE%):�a%,_%,DA%,IA%,NA%:a%=�shell_HeapBlockFetch(40):a%!0=c%:a%!4=e%:ș&400CE,,a%:ș&8168A,,a%+8:_%=a%!8:DA%=a%!&C:IA%=a%!16:NA%=a%!20:ș&400CE,,a%:�shell_HeapBlockExists(a%!28)��shell_HeapBlockReturn(a%!28)
`@�shell_HeapBlockExists(a%!32)��shell_HeapBlockReturn(a%!32)
aș&400C4,,a%:�IE%�
cș&400D1,c%,_%,DA%,IA%,NA%
d"�:�shell_HeapBlockReturn(a%):�
jy��shell_IconPutData(QA%,vA%,S$,I):�a%:a%=�shell_HeapBlockFetch(50):a%!0=QA%:a%!4=vA%:ș&400CE,,a%:�(a%!24�(1<<8))<>0�
q5�S$>a%!36��99,�shell_MessageNoArgs("SHELLMSG12")
r$(a%!28)=S$
s�$(a%+28)=�S$,&B)
u�:�I<>0�
w1a%!8=0:a%!&C=0:ș&400CD,,a%:�shell_EnsurePoll
{"�:�shell_HeapBlockReturn(a%):�
��ݤshell_IconNewSprite(QA%,vA%,MA$,I):�i%:i%=�shell_HeapBlockFetch(40):i%!0=QA%:i%!4=vA%:ș&400CE,,i%:ș&400C4,,i%:i%!4=i%!8:i%!8=i%!&C:i%!&C=i%!16:i%!16=i%!20:i%!20=i%!24:$(i%+24)=MA$:ș&400C2,,i%�vA%:�I�ș&400D1,i%!0,i%!4,i%!8,i%!&C,i%!16
�#�shell_HeapBlockReturn(i%):=vA%
��ݤshell_IconGetData(QA%,vA%):�T$,i%:i%=�shell_HeapBlockFetch(40):i%!0=QA%:i%!4=vA%:ș&400CE,,i%:�(i%!24�(1<<8))<>0�T$=$(i%!28)�T$=$(i%+28)
�"�shell_HeapBlockReturn(i%):=T$
��ݤshell_IconMove2(c%,e%,XD%,YD%):�VA%:VA%=�shell_HeapBlockFetch(40):!VA%=c%:VA%!4=e%:ș&400CE,,VA%:VA%!8+=XD%:VA%!16+=XD%:VA%!&C+=YD%:VA%!20+=YD%:e%=�shell_IconMove(c%,e%,VA%!8,VA%!&C,VA%!16,VA%!20):�shell_HeapBlockReturn(VA%):=e%
�Sݤshell_IconResize(c%,e%,_%,DA%,IA%,NA%):=�shell_IconMove(c%,e%,_%,DA%,IA%,NA%)
��ݤshell_IconMove(c%,e%,_%,DA%,IA%,NA%):�RA%,qE%,eE%,gA%,a%:�yC%,zC%,_C%,AD%:RA%=�shell_HeapBlockFetch(40):a%=�shell_HeapBlockFetch(40):!RA%=c%:RA%!4=e%:ș&400CE,,RA%:!a%=c%:a%!4=e%:ș&400CE,,a%:ș&8168A,,a%+8:jD%=RA%!24:hC%=RA%+28
��yC%=jD%:zC%=hC%!0:_C%=hC%!4:AD%=hC%!8:gA%=RA%!8-a%!8:ș&400C4,,RA%:ș&400D1,!RA%,RA%!8-gA%,RA%!&C-gA%,RA%!16+gA%,RA%!20+gA%:e%=�shell_CreateIcon2(c%,_%,DA%,IA%,NA%,yC%,zC%,_C%,AD%,gA%):�shell_HeapBlockReturn(RA%):�shell_HeapBlockReturn(a%):=e%
ðݤshell_CreateIcon2(k%,_%,DA%,IA%,NA%,l%,nD%,vD%,HE%,gA%):�r%,y%,J$,X$,fA%,SA%:y%=�shell_HeapBlockFetch(60):!y%=k%:y%!20=l%:y%!24=nD%:y%!28=vD%:y%!32=HE%:J$="":X$="":�l%�1�
�"�l%�256J$=$(y%!24)�J$=$(y%+24)
��:�l%�2�
��l%�256�
�'X$=�shell_IconGetCommand(y%!28,"S")
��X$=$(y%+24)
��
�6�:�shell_GetMinXY(l%,J$,X$):�IA%-_%<fA%�IA%=_%+fA%
��NA%-DA%<SA%�NA%=DA%+SA%
֡y%!4=_%:y%!8=DA%:y%!&C=IA%:y%!16=NA%:ș&400C2,,y%�r%:ș&400D1,!y%,y%!4-gA%,y%!8-gA%,y%!&C+gA%,y%!16+gA%:ș&400D3,,y%:�!y%=k%:�y%!4=r%:ș&400D2,k%,r%,0,0,-1,0
�"�shell_HeapBlockReturn(y%):=r%
�P��shell_GetMinXY(l%,J$,X$):�_%,DA%,IA%,NA%,ZA%,kA%:fA%=0:SA%=0:�l%�1�J$<>""�
��l%�64�
�}ș&40084,l%>>24�,,DA%,,NA%:ș&40097,,�26+�(l%>>24)+J$�,_%,,IA%:ș&40088,,_%�,_%:ș&40088,,IA%�,IA%:fA%=IA%-_%:SA%=NA%-DA%
��fA%=6*fE%+16*�J$:SA%=32
��:�l%�4SA%+=2*lE%
��:�l%�2�X$<>""�
�Hș&2002E,296,�shell_UserSpritesBase,X$�,,,ZA%,kA%,,DD%;P%:�(P%�1)=0�
�cș&20035,DD%,4�,,iD%:ZA%=ZA%<<iD%:ș&20035,DD%,5�,,kD%:kA%=kA%<<kD%:�l%�&800ZA%=ZA%/2:kA%=kA%/2
��(l%�539)=19ZA%=fA%+ZA%
��ZA%>fA%fA%=ZA%
��kA%>SA%SA%=kA%
��
��:�
�3ݤshell_IconGetCommand(CC%,PA$):�I%,T$:�CC%<=0�

	T$=""

Q�I%=�";"+�shell_StringUpperCase($CC%),";"+�shell_StringUpperCase(PA$)):�I%=0�

	T$=""

)�T$=�$(CC%+I%),�$(CC%+I%)+";",";")-1)

�

	�:=T$


���shell_IconRedraw(c%,e%):�a%:a%=�shell_HeapBlockFetch(40):!a%=c%:a%!4=e%:ș&400CE,,a%:ș&8168A,,a%+8:ș&400D1,c%,a%!8,a%!&C,a%!16,a%!20:�shell_Action(�shell_Poll_I(0,_U%!&94)):�shell_HeapBlockReturn(a%):�

9ݤshell_IconGetValidation(c%,e%):�a%,E$,l%:�e%=-1�=""

VE$="":a%=�shell_HeapBlockFetch(&64):a%!0=c%:a%!4=e%:ș&400CE,,a%:l%=a%!24:�l%�256�

%�a%!32>0�E$=$(a%!32)

&$�:�shell_HeapBlockReturn(a%):=E$

,{��shell_IconPutValidation(c%,e%,m$):�a%,l%:a%=�shell_HeapBlockFetch(&64):a%!0=c%:a%!4=e%:ș&400CE,,a%:l%=a%!24:�l%�256�

3$(a%!32)=m$

4"�:�shell_HeapBlockReturn(a%):�

:gݤshell_IsIconSelected(wA%,xA%):�b%:�shell_IconGetState(wA%,xA%):l%=_Q%!24:b%=(l%�&200000):�b%=0�=�

@=�

EN��shell_IconSelect(wA%,xA%):�shell_IconSetState(wA%,xA%,&200000,&200000):�

LJ��shell_IconDeselect(wA%,xA%):�shell_IconSetState(wA%,xA%,0,&200000):�

SD��shell_IconGetState(wA%,xA%):!_Q%=wA%:_Q%!4=xA%:ș&400CE,,_Q%:�

\.��shell_IconSetSelected(c%,e%,MA%):�MA%=0�

^�shell_IconDeselect(c%,e%)

_��shell_IconSelect(c%,e%)

a�:�

g&��shell_IconSet(c%,e%,MA%):�MA%=0�

i�shell_IconDeselect(c%,e%)

j��shell_IconSelect(c%,e%)

l�:�

q���shell_IconSetState(wA%,xA%,zD%,FE%):�i%:i%=�shell_HeapBlockFetch(16):!i%=wA%:i%!4=xA%:i%!8=zD%:i%!&C=FE%:ș&400CD,,i%:�shell_HeapBlockReturn(i%):�

~Q��shell_IconUnselectable(k%,GE%):�shell_IconSetState(k%,GE%,&400000,&40000):�

�w��shell_IconSetBGColour(c%,e%,NB%):�NB%<0�NB%>&F��99,�shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetBGColour")

�2�shell_IconSetState(c%,e%,NB%<<28,&F0000000):�

�w��shell_IconSetFGColour(c%,e%,NB%):�NB%<0�NB%>&F��99,�shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetFGColour")

�1�shell_IconSetState(c%,e%,NB%<<24,&F000000):�

�X��shell_CaretSetPosition(QA%,vA%,JE%,KE%,dA%,cA%):ș&400D2,QA%,vA%,JE%,KE%,dA%,cA%:�

�|��shell_IconSetButtonType(c%,e%,nB%):�nB%=&C�nB%=&D��99,�shell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType")

�V�nB%<0�nB%>&F��99,�shell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType")

�.�shell_IconSetState(c%,e%,nB%<<&C,&F000):�

�m��shell_IconSetESG(c%,e%,iC%):�iC%<0�iC%>31��99,�shell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG")

�0�shell_IconSetState(c%,e%,iC%<<16,&1F0000):�

�0��shell_IconSetText(c%,e%,v%):�v%<>0�v%=1<<0

�(�shell_IconSetState(c%,e%,v%,1<<0):�

�2��shell_IconSetSprite(c%,e%,v%):�v%<>0�v%=1<<1

�(�shell_IconSetState(c%,e%,v%,1<<1):�

�2��shell_IconSetBorder(c%,e%,v%):�v%<>0�v%=1<<2

�(�shell_IconSetState(c%,e%,v%,1<<2):�

�V��shell_IconSetHCentred(c%,e%,v%):�shell_IconSetState(c%,e%,0,1<<9):�v%<>0�v%=1<<3

�(�shell_IconSetState(c%,e%,v%,1<<3):�

�4��shell_IconSetVCentred(c%,e%,v%):�v%<>0�v%=1<<4

�(�shell_IconSetState(c%,e%,v%,1<<4):�

�2��shell_IconSetFilled(c%,e%,v%):�v%<>0�v%=1<<5

�(�shell_IconSetState(c%,e%,v%,1<<5):�

�U��shell_IconSetRightJust(c%,e%,v%):�shell_IconSetHCentred(c%,e%,0):�v%<>0�v%=1<<9

�(�shell_IconSetState(c%,e%,v%,1<<9):�

�e��shell_IconSetLeftJust(c%,e%):�shell_IconSetHCentred(c%,e%,0):�shell_IconSetRightJust(c%,e%,0):�

�A��shell_IconSetUnselectable(c%,e%,MA%):�FA%:�MA%<>0�MA%=1<<22

�1�shell_IconSetState(c%,e%,MA%,1<<22):�MA%<>0�

�BFA%=�shell_HeapBlockFetch(24):ș&400D3,,FA%:�!FA%=c%�FA%!4=e%�

�ș&400D2,-1

�!�:�shell_HeapBlockReturn(FA%)

��:�

�W��shell_CaretSetRight(c%,e%):ș&400D2,c%,e%,-1,-1,-1,�(�shell_IconGetData(c%,e%)):�
3��print_text(F,G,J$):�in(F,G-32,F+16*�(J$),G)�
�F,G:�J$
�:�

ݤin(A%,B%,C%,D%):�C%<Y�=�
�A%>Z�=�
�B%>P�=�
�D%<Q�=�
=�
���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:a=L:b=L-S:�
!ݤmax(x%,TA%):�x%<TA%�=TA%
#=x%
&8ݤshell_Leaf(M$):ȕ�M$,"."):M$=�M$,�M$,".")+1):�:=M$
..ݤshell_Branch(c$):�CA%,n$,b%:�c$,".")=0�
1	n$=""
28�b%=0:�:CA%=b%+1:b%=�c$,".",CA%):�b%=0:n$=�c$,CA%-2)
9	�:=n$
>8ݤgname(C):o$="":ȕ?C<>0�?C<>&D:o$=o$+�?C:C+=1:�:=o$
Gp��shell_WindowResize(QA%,PE%,QE%,RE%,SE%,EC%):!_Q%=PE%:_Q%!4=QE%:_Q%!8=RE%:_Q%!&C=SE%:ș&400D7,QA%,_Q%:�EC%�
K)_Q%!0=QA%:ș&400CC,,_Q%:ș&400C5,,_Q%
N�:�
So��shell_WindowRetitle(QA%,Q$):�b%,t%:t%=�shell_HeapBlockFetch(6000):t%!0=QA%:ș&400CC,,t%:�((t%!60)�256)=0�
Z4b%=t%+76:$b%=�Q$,&B):ș&400C3,,t%:ș&400C1,,t%+4
^*�$(!(t%+76))=Q$:�((t%!32)�(1<<16))<>0�
c)ș&400D1,-1,t%!4,t%!16,t%!&C,t%!16+44
d �:�shell_HeapBlockReturn(t%)
f�:�
k>ݤshell_WindowTitleIndirected(oB%):�(oB%�(1<<8))=(1<<8)�=�
m=�
q���shell_ScreenToWindowCoords(WE%,�X%,�Y%):�jC%,LD%,bE%,MD%,ND%,OB%:OB%=�shell_HeapBlockFetch(600):jC%=OB%:!jC%=WE%:ș&400CC,,jC%:LD%=OB%!4:lD%=OB%!16:MD%=OB%!20:ND%=OB%!24:X%=X%+(MD%-LD%):Y%=Y%+(ND%-lD%):�shell_HeapBlockReturn(OB%):�
�8ݤshell_WimpSlotReadEnd:�YB%:ș&400EC,-1,-1�YB%:=YB%
�Vݤshell_WimpSlotClaimMemory(YB%,yA%):�kC%:ș&400EC,YB%+yA%,-1�kC%:�kC%<YB%+yA%�=-1
�=kC%
�3��shell_WimpSlotReleaseMemory:ș&400EC,YB%,-1:�
�_��shell_MouseLimit(A,QA%):A!0=QA%:ș&400CB,,A:�mouse_rectangle(A!4,A!8,A!&C-A!4,A!16-A!8):�
��ݤshell_NameOfFirstSprite(LA$):�X%,N%,p$:X%=�(LA$):�#X%=4:N%=�#X%:N%+=�#X%*256:N%+=�#X%*65536:N%+=�#X%*&1000000:�#X%=N%:p$="":�N%=0�&B:p$+=�(�#X%):�:�#X%:=p$
�B��InitialiseSpriteArea(S%,oD%):!S%=oD%:S%!8=16:ș46,9+256,S%:�
�*��shell_ListEvents(c%,r%):�c%=-1�c%=-2
���"MenuSelection="+�shell_GetEventHandler(c%,r%,0):�"MenuMaker    ="+�shell_GetEventHandler(c%,r%,1):�"ClickSelect  ="+�shell_GetEventHandler(c%,r%,2):�"ClickAdjust  ="+�shell_GetEventHandler(c%,r%,3):�"Redraw       ="+�shell_GetEventHandler(c%,r%,4)
���"Keypress     ="+�shell_GetEventHandler(c%,r%,5):�"Drag         ="+�shell_GetEventHandler(c%,r%,6):�"Menu Warning ="+�shell_GetEventHandler(c%,r%,7):�"HelpTag      ="+�shell_GetEventHandler(c%,r%,8):q%=�shell_GetEventMenu(2,c%,r%):�"Menu Address =";
�
�q%=0�
��" None"
�	���q%
��:�
�X��shell_HeapManagerInit(M$,pD%):�ZB%900:�("LOAD "+M$+"heapcode "+�~ZB%):�ZB%+0,pD%:�
�1ݤshell_HeapBlockExists(YA%):�p%:�:��:��:=�
�9�YA%<&8000��99,"No heapblock defined at this address"
�&p%=�shell_HeapBlockInfo(YA%):��:=�
�6ݤshell_HeapBlockExtend(x%,TA%):�ZB%+&C,x%,TA%:=x%
�6ݤshell_HeapBlockFetch(x%):�YA%:�ZB%+4,YA%,x%:=YA%
�F��shell_HeapBlockReturn(�x%):�shell_HeapBlockExists(x%)��ZB%+8,x%
�
x%=0:�
�<ݤshell_HeapBlockInfo(x%):�M:ș29,6,!(ZB%+28),x%�,,,M:=M
Eݤshell_OSVarExists(tA%,q$):�B:ș&20023,q$,tA%,-1,0,0�,,B:�B<0�=�

=�
{ݤshell_OSVarGetVal(tA%,yA%,q$,W):�r$,B,rD%:ș&20023,q$,tA%,yA%,0,-3*(W=�)�,,B,rD%,w%:�m%=0�B-1:r$=r$+�(tA%?m%):�m%:=r$
eݤshell_OSReadCommandArg(X):�lC%,O$,d%:O$="":d%=0:ș16�lC%:ȕlC%?d%<>0:O$+=�(lC%?d%):d%+=1:�:ȎX�
!�0
",�1:O$=�O$,�O$,�34)+1):O$=�O$,�O$,�34)+2)
%	�:=O$
*Hݤshell_StringStripTrailing(B$,P$):ȕ�B$,1)=P$:B$=�B$,�(B$)-1):�:=B$
2Aݤshell_StringStripLeading(B$,P$):ȕ�B$,1)=P$:B$=�B$,2):�:=B$
::ݤshell_StringStripAll(B$,P$):�D,E:D=�:�:E=�B$,P$):�E�
@D=�:B$=�B$,E-1)+�B$,E+1)
B�D=�
D�:�D:=B$
JOݤshell_StringPadTrailing(B$,P$,eA%):ȕ�(B$)<eA%:B$=B$+�eA%-�(B$),P$):�:=B$
RNݤshell_StringPadLeading(B$,P$,eA%):ȕ�(B$)<eA%:B$=�eA%-�(B$),P$)+B$:�:=B$
Z-ݤshell_StringUpperCase(B$):�m%:�(B$)>0�
]/�m%=1��(B$):�B$,m%,1)>="a"��B$,m%,1)<="z"�
_!�B$,m%,1)=�(�(�B$,m%,1))�&DF)
`	�:�m%
b	�:=B$
g4ݤshell_StringExchange(B$,s$,NA$):�cA%:�B$,s$)�
j.cA%=�B$,s$):B$=�B$,cA%-1)+NA$+�B$,cA%+�s$)
l	�:=B$
qSݤshell_StringArrayGetLongest(A$(),tD%):�m%,GC%:GC%=0:�m%=0�tD%:�(A$(m%))>GC%�
vGC%=�(A$(m%))
w�:�m%:=GC%
}Kݤmem_to_string(RD%,d%,wD%):�B$:ȕRD%?d%<>wD%:B$+=�(RD%?d%):d%+=1:�:=B$
�Sݤshell_FileLength(Z$):�w%,DC%,yB%,eA%,UB%,B$:ș8,5,Z$�w%,,DC%,yB%,eA%,UB%:=eA%
�R��shell_TraceOn:_U%!48=�:�shell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"):�
�T��shell_TraceOff:_U%!48=�:�shell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"):�
�2��shell_TraceInit(BA$):�BA%,a%,G$,F$:�BA$<>""�
�BA%=�(BA$):_U%!44=BA%
���:a%=�shell_HeapBlockFetch(&400):F$=�shell_OSVarGetVal(a%,&400,"Obey$Dir",1):G$=��shell_Leaf(F$),2):�shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+G$):�shell_HeapBlockReturn(a%):�
�ݤshell_TraceIsOn:=_U%!48
�4��shell_Tracef0(DA$):�BA%:�(�shell_TraceIsOn)��
��_U%!44<>-1�
�BA%=_U%!44:�#BA%,DA$
�G�:�_U%!&94>0��shell_BroadcastMessage(&43B00,"ShellDBug:Trace "+DA$)
��
�,��shell_Tracef2(YA%):�("MEDIT "+�~YA%):�
�6��shell_TraceExit:�_U%!44<>-1��#(_U%!44):_U%!44=-1
��
�[��shell_AttachHotKey(EA$,VB%,WB%,qB%,K$,c%,N$,U$):�s%,d%,b%,u%,EA%,nC%:nC%=�:�_U%!60=0�
�3_U%!60=�shell_HeapBlockFetch(24):d%=0:_U%!&B4=1
�O�d%=_U%!&B4*24:_U%!60=�shell_HeapBlockExtend(_U%!60,24):_U%!&B4=(_U%!&B4)+1
��:s%=_U%!60:ȎEA$�
��"F1":EA%=385
��"F2":EA%=386
��"F3":EA%=387
��"F4":EA%=388
��"F5":EA%=389
��"F6":EA%=390
��"F7":EA%=391
��"F8":EA%=392
��"F9":EA%=393
��"F10":EA%=458
��"F11":EA%=459
�EA%=(�EA$)-64:nC%=�
��:�nC%�
��VB%�EA%+=16
��WB%�EA%+=32
�j�:b%=s%+d%:b%!0=EA%:b%?4=VB%:b%?5=WB%:b%?6=qB%:b%!8=�shell_HeapBlockFetch(�K$+1):u%=b%!8:$u%=K$:�c%>0�
�Td%=�shell_SearchStatic(_U%!&B8,c%):�d%=-1��99,�shell_MessageNoArgs("SHELLMSG09")
�v�:b%!&C=c%:b%!16=�shell_HeapBlockFetch(�N$+1):u%=b%!16:$u%=N$:b%!20=�shell_HeapBlockFetch(�U$+1):u%=b%!20:$u%=U$:�
�ݤshell_HotKeyProcess(EA%):�s%,o%,j%,f%,z%,e$,N$,U$:�WB%,VB%,qB%,BB%,DB%,oB%,iE%,d%:�jA%,t%:s%=_U%!60:o%=_U%!&B4*24:j%=�:f%=0:�:�s%!f%=EA%�

j%=�
�f%+=24

�:�j%�f%>=o%:�j%�
db%=s%+f%:e$=$(b%!8):�shell_Tracef0("HotKeyProcess:Template name is '"+e$+"'"):�(e$<>""�b%!&C=0)�
��shell_CreateWindow(e$,z%):�shell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+�~z%+")"):t%=�shell_HeapBlockFetch(36):t%!0=z%:ș&400CB,,t%:BB%=(t%!4-t%!&C)/2:DB%=(t%!16-t%!8)/2:�shell_HeapBlockReturn(t%)
"�:N$=$(b%!16):�N$<>""�
&J�shell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+N$+"'"):�b%!&C>0�
) p%=�("FN"+N$+"("+�b%!&C+")")
*�p%=�("FN"+N$+"("+�z%+")")
,�
->��shell_Tracef0("HotKeyProcess:No Pre-Open FN registered")
13�:d%=�shell_SearchStatic(_U%!&B8,b%!&C):�d%>-1�
4"�shell_OpenWindowStatic(b%!&C)
5��b%!&C>0�
9*�99,�shell_MessageNoArgs("SHELLMSG09")
:)��shell_OpenWindowDynamic(z%,BB%,DB%)
=�
>�:U$=$(b%!20):�U$<>""�
BK�shell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+U$+"'"):�b%!&C>0�
E p%=�("FN"+N$+"("+�b%!&C+")")
F�p%=�("FN"+U$+"("+�z%+")")
H�
I?��shell_Tracef0("HotKeyProcess:No Post-Open FN registered")
M�:jA%=�
O�e$="":N$="":U$="":jA%=�
Q
�:=jA%
WD��shell_OpenWindowStaticNewView(c%):�shell_OpenWindow(c%,�,-1):�
]E��shell_OpenWindowStatic(k%):�shell_SearchStatic(_U%!&B8,k%)>-1�
_�shell_OpenWindow(k%,0,-1)
`+̅99,�shell_MessageNoArgs("SHELLMSG09")
b�:�
h;ݤshell_SearchStatic(OA%,k%):�j%,g%:j%=-1:g%=0:�OA%<>0�
m!ȕOA%!g%<>-1:�OA%!g%=k%�j%=g%
og%+=4:�
q	�:=j%
w}��shell_CreateWindowStatic(t$,�k%):�LB%,OA%,b%,d%:LB%=�shell_GetWB(t$):LB%!64=_U%!16:ș&400C1,,LB%�k%:OA%=_U%!&B8:�OA%=0�
�r�shell_Tracef0("CreateWindowStatic:Empty List"):_U%!&B8=�shell_HeapBlockFetch(8):OA%=_U%!&B8:OA%!0=k%:OA%!4=-1
�p��shell_Tracef0("CreateWindowStatic:Searching for window handle"):d%=�shell_SearchStatic(_U%!&B8,k%):�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:ȕOA%!g%<>-1:g%+=4:�:_U%!&B8=�shell_HeapBlockExtend(_U%!&B8,4):OA%=_U%!&B8
�J��shell_Tracef0("CreateWindowStatic:Found unused space in list"):g%=d%
��:b%=OA%+g%:b%!0=k%:b%!4=-1
��
��:�
�o��shell_InitHelpSystem(M$,yD%):�v$,CA%,oA%,V$,oC%,pC%:_U%!&D4=0:�_U%!&D8<>0��shell_HeapBlockReturn(_U%!&D8)
�>_U%!&D8=0:�shell_ScanForHelp:�yD%�v$=" -DieWithTask"�v$=""
��_U%!&64�1<<3�
��M$="":oA%=�shell_HeapBlockFetch(256):V$=�shell_OSVarGetVal(oA%,256,�shell_GetAppName+"Res$Path",-1):�shell_HeapBlockReturn(oA%):�:CA%=�V$,","):�CA%>0�
�5�shell_FileExists(�V$,CA%-1)+�shell_GetAppName)�
�)M$=�V$,CA%-1)+�shell_GetAppName:oC%=�
��V$=�V$,CA%+1)
��
�.��shell_FileExists(V$+�shell_GetAppName)�
�!M$=V$+�shell_GetAppName:oC%=�
�J�pC%=�:�shell_OK(�shell_MessageOneArg("SHELLMSG26",�shell_GetAppName))
��
��:�M$<>""�oC%�pC%
�7�:�pC%=0��shell_StrongHlpMsg("Help_Install "+M$+v$)
��
�P��shell_HelpWord(x$):�gE%,b%,CB%:CB%=�shell_HeapBlockFetch(512):�_U%!&D0=-1�
�.�shell_OSVarExists(CB%,"StrongHelp$Dir")�
�Kș&600DE,"<StrongHelp$Dir>":�_U%!&D8<>0��shell_HeapBlockReturn(_U%!&D8)
�:_U%!&D8=�shell_HeapBlockFetch(�x$+1):b%=_U%!&D8:$b%=x$
�N��shell_HeapBlockReturn(CB%):�shell_OK(�shell_MessageNoArgs("SHELLMSG11"))
��
�)��shell_StrongHlpMsg("Help_Word "+x$)
�#�:�shell_HeapBlockReturn(CB%):�
�A��shell_StrongHlpMsg(y$):�shell_BroadcastMessage(&43B00,y$):�
���shell_ScanForHelp:�zA%,IC%:zA%=�shell_HeapBlockFetch(256):�:zA%!&C=0:ș&400E7,19,zA%,-2,_U%!&D4�,,IC%:_U%!&D4=_U%!&D4+1:�IC%<>-1�(_U%!&D4)>64:�IC%<>-1�
@zA%!0=24:zA%!&C=0:zA%!16=&400C6:zA%!20=IC%:ș&400E7,17,zA%,0
#�:�shell_HeapBlockReturn(zA%):�
���shell_BroadcastMessage(DE%,y$):�PB%:PB%=�shell_HeapBlockFetch(256):PB%!&C=0:PB%!16=DE%:$(PB%+20)=y$+�(0):PB%!0=256:ș&400E7,17,PB%,0:�shell_HeapBlockReturn(PB%):�
J��shell_WindowToggleBackIcon(�c%):�shell_WindowToggleFlags(c%,1<<24):�
$K��shell_WindowToggleCloseIcon(�c%):�shell_WindowToggleFlags(c%,1<<25):�
*J��shell_WindowToggleTitleBar(�c%):�shell_WindowToggleFlags(c%,1<<26):�
0L��shell_WindowToggleToggleIcon(�c%):�shell_WindowToggleFlags(c%,1<<27):�
6L��shell_WindowToggleHScrollBar(�c%):�shell_WindowToggleFlags(c%,1<<30):�
<P��shell_WindowToggleAdjustSizeIcon(�c%):�shell_WindowToggleFlags(c%,1<<29):�
BL��shell_WindowToggleVScrollBar(�c%):�shell_WindowToggleFlags(c%,1<<28):�
H���shell_WindowToggleFlags(�c%,bB%):�a%,l%,EC%,k%:�shell_Tracef0("WindowToggleFlags:wh%=&"+�~c%):EC%=�shell_WindowIsOpen(c%):a%=�shell_HeapBlockFetch(6000):a%!0=c%:ș&400CC,,a%:l%=a%!32:l%=(l%�bB%):a%!32=l%:ș&400C3,,a%:ș&400C1,,a%+4�k%:!a%=k%:�EC%�
Yș&400C5,,a%
Z)�:�shell_HeapBlockReturn(a%):�k%<>c%�
]*�shell_UpdateWindowHandle(c%,k%):c%=k%
_�:�
d���shell_ListClickSelect:�s%,f%,o%,b%,u%:s%=_U%!&C:o%=�shell_HeapBlockInfo(s%):�shell_Tracef0(" "):�shell_Tracef0("List of ClickSelect events:"):f%=0:�:b%=s%!(f%+20):u%=s%+f%:�shell_HeapBlockExists(b%)�
p
�$b%<>""�
rt�shell_Tracef0("&"+�shell_StringPadTrailing(�~u%!0," ",8)+" &"+�shell_StringPadTrailing(�~u%!4," ",8)+"   "+$b%)
t�
u,�:f%+=48:�(f%>=o%):�shell_Tracef0(" "):�
���shell_ListClickAdjust:�s%,f%,o%,b%,u%:s%=_U%!&C:o%=�shell_HeapBlockInfo(s%):�shell_Tracef0(" "):�shell_Tracef0("List of ClickAdjust events:"):f%=0:�:b%=s%!(f%+24):u%=s%+f%:�shell_HeapBlockExists(b%)�
�
�$b%<>""�
�t�shell_Tracef0("&"+�shell_StringPadTrailing(�~u%!0," ",8)+" &"+�shell_StringPadTrailing(�~u%!4," ",8)+"   "+$b%)
��
�,�:f%+=48:�(f%>=o%):�shell_Tracef0(" "):�
����shell_ListHelpTags:�s%,f%,o%,b%,u%:s%=_U%!&C:o%=�shell_HeapBlockInfo(s%):�shell_Tracef0(" "):�shell_Tracef0("List of attached help tags:"):f%=0:�:b%=s%!(f%+44):u%=s%+f%:�shell_HeapBlockExists(b%)�
�
�$b%<>""�
�t�shell_Tracef0("&"+�shell_StringPadTrailing(�~u%!0," ",8)+" &"+�shell_StringPadTrailing(�~u%!4," ",8)+"   "+$b%)
��
�,�:f%+=48:�(f%>=o%):�shell_Tracef0(" "):�
�H��shell_MemFill(KC%,TD%,UD%):�I%,LC%,qC%:LC%=TD%�4:qC%=TD%�4:�LC%>0�
�&�I%=1�(LC%*4)�4:KC%!(I%-1)=UD%:�I%
�
�:�qC%>0�
�.KC%=KC%+(LC%*4):�I%=0�qC%-1:KC%?I%=UD%:�I%
��:�
����shell_AttachFontMenu(c%,e%,D$,HA$):�q%:�shell_FontMenuInit:ș&8D082,""+�0,_U%!260�,q%:_U%!&FC=q%:�shell_EventAdd(c%,e%,0,-2,D$):�shell_Tracef0("AttachFontMenu:Attaching font menu"):�HA$<>""��shell_AttachMenuMaker(c%,e%,HA$)
��
����shell_AttachFontSubMenu(iA%,C$,D$):�rE%,q%,b%,g%:�shell_FontMenuInit:ș&8D082,""+�0,_U%!260�,q%:ș&45BCE,iA%,q%:ș&45BCC,,�:_U%!&FC=q%:�shell_EventListMenuWarn(iA%,q%,C$,D$):�shell_Tracef0("AttachFontSubMenu:Attaching font menu &"+�~q%):�
���shell_FontMenuInit:�("RMEnsure FontMenu 1.16 RMLoad <EvntShellSystem$Path>FontMenu"):�("RMEnsure FontMenu 1.16 Error Couldn't load FontMenu module"):�_U%!&F0=-1�
�ș&8D080�_U%!&F0
�'�:�shell_FontMenuSelectFont("",�):�
�o��shell_FontMenuSelectFont(h$,rC%):�b%,mA%:�shell_HeapBlockExists(_U%!&F4)��shell_HeapBlockReturn(_U%!&F4)
�H_U%!&F4=�shell_HeapBlockFetch(�h$+1):b%=_U%!&F4:$b%=h$:�rC%<>0�rC%=1
7_U%!260=rC%:ș&8D082,h$,_U%!260�,mA%:�mA%<>_U%!&FC�
-�shell_FontMenuUpdatePtr(mA%):_U%!&FC=mA%
=�:�shell_Tracef0("FontMenuSelectFont:Font is '"+h$+"'"):�
Qݤshell_FontMenuGetLastSelectedFont:�b%:笤shell_HeapBlockExists(_U%!&F4)�=""
b%=_U%!&F4:=$b%
x��shell_FontMenuUpdatePtr(f%):�s%,g%:�shell_Tracef0("FontMenuUpdatePtr:Started.."):�shell_HeapBlockExists(_U%!&DC)�
��shell_Tracef0("FontMenuUpdatePtr:HeapBlock found.."):s%=_U%!&DC:g%=0:�:�shell_Tracef0("FontMenuUpdatePtr:Substituting ptr.."):s%!(g%+8)=f%:g%+=&C:�s%!g%=-1
&�:�
+L��shell_FindFont(�Y$,MC%,NC%,�uC%):笤shell_FontIsAvailable(Y$,MC%,NC%)�
-Y$="Trinity.Medium"
.*�:ș&40081,,Y$,MC%*16,NC%*16,0,0�uC%:�
44ݤshell_FontIsAvailable(Y$,MC%,NC%):�:��:��:=�
77ș&40081,0,Y$,MC%*16,NC%*16,0,0�uC%:ș&40082,uC%:=�
>;ݤshell_CheckSelection(ME%):�b%,g%:b%=_U%!256:�b%=0�=-1
B�_U%!24=_U%!&FC�=0
C�:�ME%!g%<>b%!g%�=-1
Eg%+=4:�b%!g%=-1:=g%
Lvݤshell_MenuGetItemAddress(q%,ZD%):�g%,IB%:ș&45BC7,q%�q%:�:IB%=q%+28+((ZD%!g%)*24):q%=IB%!4:g%+=4:�ZD%!g%=-1:=IB%
Y%ݤshell_GetLastMouseXPos:=_U%!272
^%ݤshell_GetLastMouseYPos:=_U%!276
c���shell_UpdateWindowHandle(HA%,GA%):�shell_Tracef0("UpdateWindowHandle:Updating stored window handles"):�shell_Tracef0("UpdateWindowHandle:old handle=&"+�~HA%):�shell_Tracef0("UpdateWindowHandle:new handle=&"+�~GA%):�GA%<>HA%�
j�_U%!28=HA%�_U%!28=GA%
k��shell_FixEventBlock(HA%,GA%,_U%!&C,48):�shell_FixEventBlock(HA%,GA%,_U%!96,16):�shell_FixEventBlock(HA%,GA%,_U%!72,24):�shell_FixEventBlock(HA%,GA%,_U%!92,24):�shell_FixEventBlock(HA%,GA%,_U%!&68,16):�shell_UpdateStaticWindows(HA%,GA%)
q�:�
v���shell_UpdateStaticWindows(HA%,GA%):�d%,OA%:�shell_Tracef0("UpdateStaticWindows:Correcting static window list.."):OA%=_U%!&B8:d%=�shell_SearchStatic(_U%!&B8,HA%):OA%!d%=GA%:�
�L��shell_FixEventBlock(HA%,GA%,h%,d%):�f%,o%:�shell_HeapBlockExists(h%)�
�1o%=�shell_HeapBlockInfo(h%)-8:�:�(h%!f%=HA%)�
�
h%!f%=GA%
��:f%+=d%:�(f%>=o%)
��:�
����shell_IconSelectAll(c%):�a%,I%:a%=�shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=c%: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%):�
����shell_IconDeselectAll(c%):�a%,I%:a%=�shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=c%: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%):�z$:z$="Run "+�shell_GetAppDir+�&A:ș&C,2,Q%!20,z$,�z$:�
�^��shell_MessagesInit(L$,�OC%,�aD%):�yA%,l%:�:��:�3,"Cannot open message file '"+L$+"'"
�Cș&41500,,L$�l%,,yA%:�l%�1�aD%=0�aD%=�shell_HeapBlockFetch(yA%)
��ș30,6,,,17+�(L$)�,,OC%:$(OC%+16)=L$:ș&41501,OC%,OC%+16:�shell_Tracef0("MessagesInit:Message resource file '"+L$+"' loaded"):�
�`ݤshell_PrinterOnLine:�bD%,cD%:bD%=�(-4):�2,1,0,1,0,1,0:�=0:�:��>30:cD%=�(�(-4)<bD%):*FX21,3
��3:=cD%
���shell_AttachBumpHandler(c%,e%,dD%,eD%,TE%,UE%,fD%,VE%,_$,AA$):�PA%,d%,b%,u%,WA%:d%=�shell_GetEventListOffset(c%,dD%,_U%+&68,16,�):PA%=_U%!&68+d%:PA%!0=c%:PA%!4=dD%:PA%!8=fD%:PA%!&C=�shell_HeapBlockFetch(24):WA%=PA%!&C:WA%!0=e%:WA%!4=TE%:WA%!8=UE%
��_$>0�
�:WA%!&C=�shell_HeapBlockFetch((�_$)+1):u%=WA%!&C:$u%=_$
�
�WA%!&C=0
��:�AA$>0�
�<WA%!16=�shell_HeapBlockFetch((�AA$)+1):u%=WA%!16:$u%=AA$
�
�WA%!16=0
��:�VE%=-1�WA%!20=1�WA%!20=0
sd%=�shell_GetEventListOffset(c%,eD%,_U%+&68,16,�):PA%=_U%!&68+d%:PA%!0=c%:PA%!4=eD%:PA%!8=fD%*(-1):PA%!&C=WA%:�
���shell_HandleBumpIcons(d%,c%,e%):�jE%,AA%,PA%,PC%,_temp$,vC%:�mE%,MB%:PA%=_U%!&68+d%:_U%!288=c%:_U%!292=e%:_U%!296=d%:AA%=PA%!&C:vC%=AA%!16:�vC%<>0�
C_temp$=�shell_IconGetData(c%,AA%!0):PC%=�("FN"+$vC%+"(_temp$)")
(�PC%=�(�shell_IconGetData(c%,AA%!0))
$�:_new_val%=PC%+PA%!8:�AA%!20=0�
!$�_new_val%>AA%!8�_new_val%=AA%!8
"$�_new_val%<AA%!4�_new_val%=AA%!4
#%��_new_val%>AA%!8�_new_val%=AA%!4
&$�_new_val%<AA%!4�_new_val%=AA%!8
'�:MB%=AA%!&C:�MB%<>0�
*(_new_val$=�("FN"+$MB%+"(_new_val%)")
+�_new_val$=�_new_val%
-�:�_new_val%<>PC%�
/-�shell_IconPutData(c%,AA%!0,_new_val$,-1)
0�:�
6�ݤshell_WindowSetSpriteArea(z%,ZE%):�a%,GA%:a%=�shell_HeapBlockFetch(6000):!a%=z%:ș&400CC,,a%:a%!68=ZE%:ș&400C3,,a%:ș&400C1,,a%+4�GA%:�GA%<>z%��shell_UpdateWindowHandle(z%,GA%)
?#�shell_HeapBlockReturn(a%):=GA%
E�ݤshell_StrongHlpIsAvailable:�rA%,CB%:CB%=�shell_HeapBlockFetch(256):rA%=�shell_OSVarExists(CB%,"StrongHelp$Dir"):�shell_HeapBlockReturn(CB%):=rA%
N/ݤshell_MenuNew(Q$):�k%:ș&45BC1,,Q$�k%:=k%
V,ݤshell_MenuAdd(k%,JA$,D$):�wC%:�D$<>""�
Yș&45BC2,k%,JA$,D$�wC%
Z�ș&45BC2,k%,JA$�wC%
\
�:=wC%
b0��shell_MenuTick(UA%,MA%):ș&45BC9,UA%,MA%:�
i5��shell_MenuTickOnly1(aE%,CA%):ș&45BD1,aE%,CA%:�
p-��shell_MenuTickOnly2(UA%):ș&45BD1,UA%:�
w/��shell_MenuShade(k%,MA%):ș&45BCB,k%,MA%:�
~2��shell_MenuDotted(UA%,MA%):ș&45BCA,UA%,MA%:�
�;��shell_MenuColours(UA%,aC%,bC%):ș&45BD0,UA%,aC%,bC%:�
�B��shell_MenuWritable(UA%,MA%,yA%,m$):ș&45BCD,UA%,MA%,yA%,m$:�
�1��shell_MenuPutData(UA%,S$):ș&45BC8,UA%,S$:�
�3��shell_MenuCallHandler(z%,_h_blk%):�:��:��:�
��("FN"+$z%+"(_h_blk%)")
��
����shell_AttachOpenWindow(c%,A$):�a%,b%,d%:�shell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler"):�c%<0��99,�shell_MessageOneArg("SHELLMSG27","AttachOpenWindow")
��d%=�shell_GetEventListOffset(c%,-1,_U%+304,&C,�):a%=_U%!304+d%:a%!0=c%:a%!4=-1:a%!8=�shell_HeapBlockFetch(�(A$)+1):b%=a%!8:$b%=A$:�
����shell_AttachCloseWindow(c%,A$):�a%,b%,d%:�shell_Tracef0("AttachCloseWindow:Attaching CloseWindow Handler"):�c%<0��99,�shell_MessageOneArg("SHELLMSG27","AttachCloseWindow")
��d%=�shell_GetEventListOffset(c%,-1,_U%+308,&C,�):a%=_U%!308+d%:a%!0=c%:a%!4=-1:a%!8=�shell_HeapBlockFetch(�(A$)+1):b%=a%!8:$b%=A$:�
�X��shell_SpriteRename(aB%,SA$,TA$):ș46,512+26,aB%,�shell_SpriteGetPtr(aB%,SA$),TA$:�
�7��shell_SpriteAreaSave(aB%,L$):ș46,512+&C,aB%,L$:�
�R��shell_EnsurePoll:�v%:�:v%=�shell_Poll_I(0,_U%!&94):�shell_Action(v%):�v%=0:�
�#ݤshell_WimpGetVersion:=_U%!316
�Qݤshell_OSCheckVersion(xC%):=�shell_OSModuleCheckVersion("UtilityModule",xC%)
��ݤshell_OSModuleCheckVersion(UA$,xC%):�a%,BC%:a%=�shell_HeapBlockFetch(256):�("Set AppName$RISCOS Y"):�("RMEnsure "+UA$+" "+�xC%+" Set AppName$RISCOS N"):ș&20023,"AppName$RISCOS",a%,256,0,0�,,BC%:a%?BC%=&D:�("Unset AppName$RISCOS")
�*�shell_HeapBlockReturn(a%):�$a%="N"�=�
�=�
�
00000000  0d 00 02 24 dd a4 73 68  65 6c 6c 5f 4c 69 62 72  |...$..shell_Libr|
00000010  61 72 79 56 65 72 73 69  6f 6e 3a 3d 31 2e 32 30  |aryVersion:=1.20|
00000020  2a 26 36 34 0d 00 08 22  dd f2 73 68 65 6c 6c 5f  |*&64..."..shell_|
00000030  45 72 72 6f 72 3a e7 5f  65 72 72 6f 72 5f 66 6c  |Error:._error_fl|
00000040  61 67 25 3d 33 8c 0d 00  0a 69 f2 73 68 65 6c 6c  |ag%=3....i.shell|
00000050  5f 45 72 72 6f 72 42 6f  78 28 22 55 6e 65 78 70  |_ErrorBox("Unexp|
00000060  65 63 74 65 64 20 65 72  72 6f 72 3a 2d 20 22 2b  |ected error:- "+|
00000070  f6 24 2b 22 20 49 6e 74  65 72 6e 61 6c 20 65 72  |.$+" Internal er|
00000080  72 6f 72 20 63 6f 64 65  20 22 2b c3 9e 29 3a f2  |ror code "+..):.|
00000090  73 68 65 6c 6c 5f 54 72  61 63 65 4f 66 66 3a f2  |shell_TraceOff:.|
000000a0  73 68 65 6c 6c 5f 54 72  61 63 65 45 78 69 74 0d  |shell_TraceExit.|
000000b0  00 0d 18 cc f2 73 68 65  6c 6c 5f 45 72 72 6f 72  |.....shell_Error|
000000c0  42 6f 78 28 f6 24 29 0d  00 0f 1f cd 3a 5f 65 72  |Box(.$).....:_er|
000000d0  72 6f 72 5f 66 6c 61 67  25 3d 33 3a c8 99 26 34  |ror_flag%=3:..&4|
000000e0  30 36 43 32 3a e1 0d 00  17 29 dd f2 73 68 65 6c  |06C2:....)..shel|
000000f0  6c 5f 4f 4b 28 4b 41 24  29 3a 5f 65 72 72 6f 72  |l_OK(KA$):_error|
00000100  5f 66 6c 61 67 25 3d 31  3a 85 31 2c 4b 41 24 0d  |_flag%=1:.1,KA$.|
00000110  00 1a 05 e1 0d 00 1e 9f  dd f2 73 68 65 6c 6c 5f  |..........shell_|
00000120  45 72 72 6f 72 42 6f 78  28 51 41 24 29 3a ea 72  |ErrorBox(QA$):.r|
00000130  41 25 2c 61 41 25 3a 61  41 25 3d a4 73 68 65 6c  |A%,aA%:aA%=.shel|
00000140  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00000150  28 32 36 30 29 3a 21 61  41 25 3d 9f 3a 24 28 61  |(260):!aA%=.:$(a|
00000160  41 25 2b 34 29 3d 51 41  24 2b bd 28 30 29 3a c8  |A%+4)=QA$+.(0):.|
00000170  99 26 34 30 30 44 46 2c  61 41 25 2c 5f 65 72 72  |.&400DF,aA%,_err|
00000180  6f 72 5f 66 6c 61 67 25  2c a4 73 68 65 6c 6c 5f  |or_flag%,.shell_|
00000190  47 65 74 41 70 70 4e 61  6d 65 b8 72 41 25 3a e7  |GetAppName.rA%:.|
000001a0  72 41 25 3d 32 8c 5f 63  6c 6f 73 65 64 6f 77 6e  |rA%=2._closedown|
000001b0  25 3d b9 0d 00 24 21 f2  73 68 65 6c 6c 5f 48 65  |%=...$!.shell_He|
000001c0  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 61 41  |apBlockReturn(aA|
000001d0  25 29 3a e1 0d 00 29 39  dd a4 73 68 65 6c 6c 5f  |%):...)9..shell_|
000001e0  47 65 74 4c 61 73 74 53  65 63 75 72 65 46 69 6c  |GetLastSecureFil|
000001f0  65 4e 61 6d 65 3a ea 62  25 3a 62 25 3d 5f 55 25  |eName:.b%:b%=_U%|
00000200  21 38 30 3a e7 62 25 3d  30 8c 3d 22 22 0d 00 2d  |!80:.b%=0.=""..-|
00000210  08 3d 24 62 25 0d 00 31  5a dd a4 73 68 65 6c 6c  |.=$b%..1Z..shell|
00000220  5f 47 65 74 53 74 72 69  6e 67 28 4a 44 25 29 3a  |_GetString(JD%):|
00000230  ea 47 41 24 2c 78 42 25  3a c8 95 28 28 4a 44 25  |.GA$,xB%:..((JD%|
00000240  3f 78 42 25 29 3e 33 31  80 78 42 25 3c 26 46 46  |?xB%)>31.xB%<&FF|
00000250  29 3a 47 41 24 2b 3d bd  28 4a 44 25 3f 78 42 25  |):GA$+=.(JD%?xB%|
00000260  29 3a 78 42 25 2b 3d 31  3a ce 3a 3d 47 41 24 0d  |):xB%+=1:.:=GA$.|
00000270  00 3b 43 dd a4 73 68 65  6c 6c 5f 47 65 74 45 76  |.;C..shell_GetEv|
00000280  65 6e 74 48 61 6e 64 6c  65 72 28 63 25 2c 72 25  |entHandler(c%,r%|
00000290  2c 58 42 25 29 3a ea 66  25 2c 68 25 2c 6a 25 2c  |,XB%):.f%,h%,j%,|
000002a0  6f 25 2c 41 24 3a e7 63  25 3d 2d 31 8c 63 25 3d  |o%,A$:.c%=-1.c%=|
000002b0  2d 32 0d 00 3e 4e 6f 25  3d a4 73 68 65 6c 6c 5f  |-2..>No%=.shell_|
000002c0  48 65 61 70 42 6c 6f 63  6b 49 6e 66 6f 28 5f 55  |HeapBlockInfo(_U|
000002d0  25 21 26 43 29 2d 38 3a  66 25 3d 30 3a 6a 25 3d  |%!&C)-8:f%=0:j%=|
000002e0  a3 3a 68 25 3d 5f 55 25  21 26 43 3a 41 24 3d 22  |.:h%=_U%!&C:A$="|
000002f0  22 3a f5 3a e7 28 68 25  21 66 25 3d 63 25 29 8c  |":.:.(h%!f%=c%).|
00000300  0d 00 45 10 c8 8e 68 25  21 28 66 25 2b 34 29 ca  |..E...h%!(f%+4).|
00000310  0d 00 46 24 c9 2d 31 3a  e7 68 25 21 28 66 25 2b  |..F$.-1:.h%!(f%+|
00000320  28 26 43 2b 28 58 42 25  2a 34 29 29 29 3e 26 38  |(&C+(XB%*4)))>&8|
00000330  30 30 30 8c 0d 00 4c 23  41 24 3d 24 28 68 25 21  |000...L#A$=$(h%!|
00000340  28 66 25 2b 28 26 43 2b  28 58 42 25 2a 34 29 29  |(f%+(&C+(XB%*4))|
00000350  29 29 3a 6a 25 3d b9 0d  00 4e 0b cc 66 25 2b 3d  |)):j%=...N..f%+=|
00000360  34 38 0d 00 50 05 cd 0d  00 51 13 7f e7 68 25 21  |48..P....Q...h%!|
00000370  28 66 25 2b 34 29 3d 72  25 8c 0d 00 58 20 e7 68  |(f%+4)=r%...X .h|
00000380  25 21 28 66 25 2b 28 26  43 2b 28 58 42 25 2a 34  |%!(f%+(&C+(XB%*4|
00000390  29 29 29 3e 26 38 30 30  30 8c 0d 00 59 23 41 24  |)))>&8000...Y#A$|
000003a0  3d 24 28 68 25 21 28 66  25 2b 28 26 43 2b 28 58  |=$(h%!(f%+(&C+(X|
000003b0  42 25 2a 34 29 29 29 29  3a 6a 25 3d b9 0d 00 5b  |B%*4)))):j%=...[|
000003c0  0b cc 66 25 2b 3d 34 38  0d 00 5d 05 cd 0d 00 5e  |..f%+=48..]....^|
000003d0  0b cc 66 25 2b 3d 34 38  0d 00 60 05 cd 0d 00 61  |..f%+=48..`....a|
000003e0  05 cb 0d 00 62 0b cc 66  25 2b 3d 34 38 0d 00 64  |....b..f%+=48..d|
000003f0  18 cd 3a fd 28 28 66 25  3e 3d 6f 25 29 84 6a 25  |..:.((f%>=o%).j%|
00000400  29 3a 3d 41 24 0d 00 6b  40 dd a4 73 68 65 6c 6c  |):=A$..k@..shell|
00000410  5f 47 65 74 45 76 65 6e  74 4d 65 6e 75 28 70 42  |_GetEventMenu(pB|
00000420  25 2c 63 25 2c 72 25 29  3a ea 66 25 2c 68 25 2c  |%,c%,r%):.f%,h%,|
00000430  6a 25 2c 6f 25 2c 71 25  3a e7 63 25 3d 2d 31 8c  |j%,o%,q%:.c%=-1.|
00000440  63 25 3d 2d 32 0d 00 6e  4e 6f 25 3d a4 73 68 65  |c%=-2..nNo%=.she|
00000450  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 49 6e 66 6f  |ll_HeapBlockInfo|
00000460  28 5f 55 25 21 26 43 29  2d 38 3a 66 25 3d 30 3a  |(_U%!&C)-8:f%=0:|
00000470  6a 25 3d a3 3a 68 25 3d  5f 55 25 21 26 43 3a 41  |j%=.:h%=_U%!&C:A|
00000480  24 3d 22 22 3a f5 3a e7  28 68 25 21 66 25 3d 63  |$="":.:.(h%!f%=c|
00000490  25 29 8c 0d 00 75 12 e7  68 25 21 28 66 25 2b 34  |%)...u..h%!(f%+4|
000004a0  29 3d 72 25 8c 0d 00 76  22 71 25 3d 68 25 21 28  |)=r%...v"q%=h%!(|
000004b0  66 25 2b 38 29 3a e7 71  25 3d 2d 32 8c 71 25 3d  |f%+8):.q%=-2.q%=|
000004c0  5f 55 25 21 26 46 43 0d  00 78 08 6a 25 3d b9 0d  |_U%!&FC..x.j%=..|
000004d0  00 79 13 cc e7 68 25 21  28 66 25 2b 34 29 3d 2d  |.y...h%!(f%+4)=-|
000004e0  31 8c 0d 00 7b 0b e7 70  42 25 3d 32 8c 0d 00 7c  |1...{..pB%=2...||
000004f0  22 71 25 3d 68 25 21 28  66 25 2b 38 29 3a e7 71  |"q%=h%!(f%+8):.q|
00000500  25 3d 2d 32 8c 71 25 3d  5f 55 25 21 26 46 43 0d  |%=-2.q%=_U%!&FC.|
00000510  00 7e 08 6a 25 3d b9 0d  00 7f 0b cc 66 25 2b 3d  |.~.j%=......f%+=|
00000520  34 38 0d 00 81 05 cd 0d  00 82 0b cc 66 25 2b 3d  |48..........f%+=|
00000530  34 38 0d 00 84 05 cd 0d  00 85 05 cd 0d 00 86 0b  |48..............|
00000540  cc 66 25 2b 3d 34 38 0d  00 88 16 cd 3a fd 28 66  |.f%+=48.....:.(f|
00000550  25 3e 3d 6f 25 84 6a 25  29 3a 3d 71 25 0d 00 8f  |%>=o%.j%):=q%...|
00000560  57 dd a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |W..shell_GetEven|
00000570  74 4c 69 73 74 4f 66 66  73 65 74 28 63 25 2c 65  |tListOffset(c%,e|
00000580  25 2c 68 25 2c 48 43 25  2c 47 44 25 29 3a ea 6f  |%,h%,HC%,GD%):.o|
00000590  25 2c 66 25 2c 6a 25 2c  64 25 2c 67 42 25 2c 62  |%,f%,j%,d%,gB%,b|
000005a0  25 3a e7 28 21 68 25 3d  30 80 47 44 25 3d a3 29  |%:.(!h%=0.GD%=.)|
000005b0  8c 3d 2d 32 0d 00 96 0d  e7 28 21 68 25 3d 30 29  |.=-2.....(!h%=0)|
000005c0  8c 0d 00 98 3a 21 68 25  3d a4 73 68 65 6c 6c 5f  |....:!h%=.shell_|
000005d0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 48  |HeapBlockFetch(H|
000005e0  43 25 29 3a 62 25 3d 21  68 25 3a 62 25 21 30 3d  |C%):b%=!h%:b%!0=|
000005f0  30 3a 62 25 21 34 3d 30  3a 3d 30 0d 00 9b 4c cd  |0:b%!4=0:=0...L.|
00000600  3a 6f 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:o%=.shell_HeapB|
00000610  6c 6f 63 6b 49 6e 66 6f  28 21 68 25 29 2d 38 3a  |lockInfo(!h%)-8:|
00000620  66 25 3d 30 3a 6a 25 3d  a3 3a 64 25 3d 2d 31 3a  |f%=0:j%=.:d%=-1:|
00000630  67 42 25 3d 2d 31 3a 62  25 3d 21 68 25 3a f5 3a  |gB%=-1:b%=!h%:.:|
00000640  e7 67 42 25 3c 30 8c 0d  00 a5 1f e7 28 62 25 21  |.gB%<0......(b%!|
00000650  66 25 3d 30 80 62 25 21  66 25 2b 34 3d 30 29 8c  |f%=0.b%!f%+4=0).|
00000660  67 42 25 3d 66 25 0d 00  a6 12 cd 3a e7 28 62 25  |gB%=f%.....:.(b%|
00000670  21 66 25 3d 63 25 29 8c  0d 00 ab 0b e7 65 25 3d  |!f%=c%)......e%=|
00000680  2d 31 8c 0d 00 ae 0e 64  25 3d 66 25 3a 6a 25 3d  |-1.....d%=f%:j%=|
00000690  b9 0d 00 b0 4e cc f2 73  68 65 6c 6c 5f 54 72 61  |....N..shell_Tra|
000006a0  63 65 66 30 28 22 47 65  74 45 76 65 6e 74 4c 69  |cef0("GetEventLi|
000006b0  73 74 4f 66 66 73 65 74  3a 69 63 6f 6e 20 68 61  |stOffset:icon ha|
000006c0  6e 64 6c 65 20 69 73 20  6e 6f 74 20 2d 31 22 29  |ndle is not -1")|
000006d0  3a e7 62 25 21 28 66 25  2b 34 29 3d 65 25 8c 0d  |:.b%!(f%+4)=e%..|
000006e0  00 b6 0e 64 25 3d 66 25  3a 6a 25 3d b9 0d 00 b8  |...d%=f%:j%=....|
000006f0  0c cc 66 25 2b 3d 48 43  25 0d 00 ba 05 cd 0d 00  |..f%+=HC%.......|
00000700  bb 05 cd 0d 00 bc 0c cc  66 25 2b 3d 48 43 25 0d  |........f%+=HC%.|
00000710  00 bf 19 cd 3a fd 28 28  66 25 3e 3d 6f 25 29 84  |....:.((f%>=o%).|
00000720  6a 25 29 3a e7 6a 25 8c  0d 00 c3 05 cc 0d 00 c5  |j%):.j%.........|
00000730  13 cd 3a e7 28 64 25 3d  2d 31 80 47 44 25 29 8c  |..:.(d%=-1.GD%).|
00000740  0d 00 c7 0b e7 67 42 25  3c 30 8c 0d 00 c9 49 64  |.....gB%<0....Id|
00000750  25 3d 6f 25 3a 21 68 25  3d a4 73 68 65 6c 6c 5f  |%=o%:!h%=.shell_|
00000760  48 65 61 70 42 6c 6f 63  6b 45 78 74 65 6e 64 28  |HeapBlockExtend(|
00000770  21 68 25 2c 48 43 25 29  3a 62 25 3d 21 68 25 3a  |!h%,HC%):b%=!h%:|
00000780  62 25 2b 3d 64 25 3a 62  25 21 30 3d 30 3a 62 25  |b%+=d%:b%!0=0:b%|
00000790  21 34 3d 30 0d 00 cd 0b  cc 64 25 3d 67 42 25 0d  |!4=0.....d%=gB%.|
000007a0  00 d0 05 cd 0d 00 d1 09  cd 3a 3d 64 25 0d 00 d6  |.........:=d%...|
000007b0  9e dd f2 73 68 65 6c 6c  5f 41 74 74 61 63 68 50  |...shell_AttachP|
000007c0  61 6e 65 28 63 25 2c f8  4a 43 25 2c 6c 25 2c 42  |ane(c%,.JC%,l%,B|
000007d0  42 25 2c 44 42 25 29 3a  ea 61 25 2c 64 25 2c 62  |B%,DB%):.a%,d%,b|
000007e0  25 2c 6e 41 25 2c 74 43  25 3a f2 73 68 65 6c 6c  |%,nA%,tC%:.shell|
000007f0  5f 54 72 61 63 65 66 30  28 22 41 74 74 61 63 68  |_Tracef0("Attach|
00000800  50 61 6e 65 3a 41 74 74  61 63 68 69 6e 67 20 50  |Pane:Attaching P|
00000810  61 6e 65 20 48 61 6e 64  6c 65 72 22 29 3a 74 43  |ane Handler"):tC|
00000820  25 3d a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |%=.shell_WindowG|
00000830  65 74 46 6c 61 67 73 28  4a 43 25 29 3a e7 28 74  |etFlags(JC%):.(t|
00000840  43 25 80 31 3c 3c 35 29  3d 30 8c 0d 00 dc 72 f2  |C%.1<<5)=0....r.|
00000850  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
00000860  74 74 61 63 68 50 61 6e  65 3a 27 50 61 6e 65 27  |ttachPane:'Pane'|
00000870  20 62 69 74 20 6f 66 20  70 61 6e 65 20 77 69 6e  | bit of pane win|
00000880  64 6f 77 20 69 73 20 6e  6f 74 20 73 65 74 2c 20  |dow is not set, |
00000890  66 69 78 69 6e 67 2e 2e  22 29 3a f2 73 68 65 6c  |fixing.."):.shel|
000008a0  6c 5f 57 69 6e 64 6f 77  54 6f 67 67 6c 65 46 6c  |l_WindowToggleFl|
000008b0  61 67 73 28 4a 43 25 2c  31 3c 3c 35 29 0d 00 de  |ags(JC%,1<<5)...|
000008c0  12 cd 3a e7 28 74 43 25  80 31 3c 3c 31 29 8c 0d  |..:.(tC%.1<<1)..|
000008d0  00 e0 72 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |..r.shell_Tracef|
000008e0  30 28 22 41 74 74 61 63  68 50 61 6e 65 3a 27 4d  |0("AttachPane:'M|
000008f0  6f 76 65 61 62 6c 65 27  20 62 69 74 20 6f 66 20  |oveable' bit of |
00000900  70 61 6e 65 20 77 69 6e  64 6f 77 20 69 73 20 73  |pane window is s|
00000910  65 74 2c 20 66 69 78 69  6e 67 2e 2e 22 29 3a f2  |et, fixing.."):.|
00000920  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 54 6f 67 67  |shell_WindowTogg|
00000930  6c 65 46 6c 61 67 73 28  4a 43 25 2c 31 3c 3c 31  |leFlags(JC%,1<<1|
00000940  29 0d 00 e2 3c cd 3a 64  25 3d a4 73 68 65 6c 6c  |)...<.:d%=.shell|
00000950  5f 47 65 74 45 76 65 6e  74 4c 69 73 74 4f 66 66  |_GetEventListOff|
00000960  73 65 74 28 63 25 2c 2d  31 2c 5f 55 25 2b 39 32  |set(c%,-1,_U%+92|
00000970  2c 32 34 2c a3 29 3a e7  64 25 3c 30 8c 0d 00 e6  |,24,.):.d%<0....|
00000980  e3 f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |..shell_Tracef0(|
00000990  22 41 74 74 61 63 68 50  61 6e 65 3a 43 72 65 61  |"AttachPane:Crea|
000009a0  74 69 6e 67 20 70 61 6e  65 20 65 76 65 6e 74 20  |ting pane event |
000009b0  62 6c 6f 63 6b 22 29 3a  64 25 3d a4 73 68 65 6c  |block"):d%=.shel|
000009c0  6c 5f 47 65 74 45 76 65  6e 74 4c 69 73 74 4f 66  |l_GetEventListOf|
000009d0  66 73 65 74 28 63 25 2c  2d 31 2c 5f 55 25 2b 39  |fset(c%,-1,_U%+9|
000009e0  32 2c 32 34 2c b9 29 3a  61 25 3d 5f 55 25 21 39  |2,24,.):a%=_U%!9|
000009f0  32 2b 64 25 3a 61 25 21  30 3d 63 25 3a 61 25 21  |2+d%:a%!0=c%:a%!|
00000a00  34 3d 2d 31 3a 61 25 21  38 3d a4 73 68 65 6c 6c  |4=-1:a%!8=.shell|
00000a10  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00000a20  34 29 3a 61 25 21 26 43  3d a4 73 68 65 6c 6c 5f  |4):a%!&C=.shell_|
00000a30  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 34  |HeapBlockFetch(4|
00000a40  29 3a 61 25 21 31 36 3d  a4 73 68 65 6c 6c 5f 48  |):a%!16=.shell_H|
00000a50  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 34 29  |eapBlockFetch(4)|
00000a60  0d 00 ed 61 61 25 21 32  30 3d a4 73 68 65 6c 6c  |...aa%!20=.shell|
00000a70  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00000a80  34 29 3a 62 25 3d 61 25  21 38 3a 21 62 25 3d 2d  |4):b%=a%!8:!b%=-|
00000a90  31 3a 62 25 3d 61 25 21  26 43 3a 21 62 25 3d 2d  |1:b%=a%!&C:!b%=-|
00000aa0  31 3a 62 25 3d 61 25 21  31 36 3a 21 62 25 3d 2d  |1:b%=a%!16:!b%=-|
00000ab0  31 3a 62 25 3d 61 25 21  32 30 3a 21 62 25 3d 2d  |1:b%=a%!20:!b%=-|
00000ac0  31 0d 00 f2 dc cd 3a 61  25 3d 5f 55 25 21 39 32  |1.....:a%=_U%!92|
00000ad0  2b 64 25 3a 62 25 3d 61  25 21 38 3a 67 25 3d 30  |+d%:b%=a%!8:g%=0|
00000ae0  3a 6e 41 25 3d 30 3a c8  95 62 25 21 67 25 3c 3e  |:nA%=0:..b%!g%<>|
00000af0  2d 31 3a 67 25 2b 3d 34  3a 6e 41 25 2b 3d 31 3a  |-1:g%+=4:nA%+=1:|
00000b00  ce 3a 61 25 21 38 3d a4  73 68 65 6c 6c 5f 48 65  |.:a%!8=.shell_He|
00000b10  61 70 42 6c 6f 63 6b 45  78 74 65 6e 64 28 61 25  |apBlockExtend(a%|
00000b20  21 38 2c 34 29 3a 62 25  3d 61 25 21 38 3a 62 25  |!8,4):b%=a%!8:b%|
00000b30  21 28 6e 41 25 2a 34 29  3d 4a 43 25 3a 62 25 21  |!(nA%*4)=JC%:b%!|
00000b40  28 28 6e 41 25 2b 31 29  2a 34 29 3d 2d 31 3a 61  |((nA%+1)*4)=-1:a|
00000b50  25 21 26 43 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |%!&C=.shell_Heap|
00000b60  42 6c 6f 63 6b 45 78 74  65 6e 64 28 61 25 21 26  |BlockExtend(a%!&|
00000b70  43 2c 34 29 3a 62 25 3d  61 25 21 26 43 3a 62 25  |C,4):b%=a%!&C:b%|
00000b80  21 28 6e 41 25 2a 34 29  3d 6c 25 3a 62 25 21 28  |!(nA%*4)=l%:b%!(|
00000b90  28 6e 41 25 2b 31 29 2a  34 29 3d 2d 31 0d 00 ff  |(nA%+1)*4)=-1...|
00000ba0  a5 61 25 21 31 36 3d a4  73 68 65 6c 6c 5f 48 65  |.a%!16=.shell_He|
00000bb0  61 70 42 6c 6f 63 6b 45  78 74 65 6e 64 28 61 25  |apBlockExtend(a%|
00000bc0  21 31 36 2c 34 29 3a 62  25 3d 61 25 21 31 36 3a  |!16,4):b%=a%!16:|
00000bd0  62 25 21 28 6e 41 25 2a  34 29 3d 42 42 25 3a 62  |b%!(nA%*4)=BB%:b|
00000be0  25 21 28 28 6e 41 25 2b  31 29 2a 34 29 3d 2d 31  |%!((nA%+1)*4)=-1|
00000bf0  3a 61 25 21 32 30 3d a4  73 68 65 6c 6c 5f 48 65  |:a%!20=.shell_He|
00000c00  61 70 42 6c 6f 63 6b 45  78 74 65 6e 64 28 61 25  |apBlockExtend(a%|
00000c10  21 32 30 2c 34 29 3a 62  25 3d 61 25 21 32 30 3a  |!20,4):b%=a%!20:|
00000c20  62 25 21 28 6e 41 25 2a  34 29 3d 44 42 25 3a 62  |b%!(nA%*4)=DB%:b|
00000c30  25 21 28 28 6e 41 25 2b  31 29 2a 34 29 3d 2d 31  |%!((nA%+1)*4)=-1|
00000c40  3a e1 0d 01 0a 7e dd f2  73 68 65 6c 6c 5f 41 74  |:....~..shell_At|
00000c50  74 61 63 68 44 61 74 61  4c 6f 61 64 28 63 25 2c  |tachDataLoad(c%,|
00000c60  65 25 2c 77 25 2c 41 24  2c 41 45 25 29 3a ea 61  |e%,w%,A$,AE%):.a|
00000c70  25 2c 62 25 2c 64 25 3a  f2 73 68 65 6c 6c 5f 54  |%,b%,d%:.shell_T|
00000c80  72 61 63 65 66 30 28 22  41 74 74 61 63 68 44 61  |racef0("AttachDa|
00000c90  74 61 4c 6f 61 64 3a 41  74 74 61 63 68 69 6e 67  |taLoad:Attaching|
00000ca0  20 44 61 74 61 4c 6f 61  64 20 48 61 6e 64 6c 65  | DataLoad Handle|
00000cb0  72 22 29 3a e7 63 25 3d  2d 31 8c 63 25 3d 2d 32  |r"):.c%=-1.c%=-2|
00000cc0  0d 01 0e 14 e7 41 45 25  8c 77 25 3d 77 25 84 31  |.....AE%.w%=w%.1|
00000cd0  3c 3c 33 31 0d 01 0f 50  64 25 3d a4 73 68 65 6c  |<<31...Pd%=.shel|
00000ce0  6c 5f 47 65 74 45 76 65  6e 74 4c 69 73 74 4f 66  |l_GetEventListOf|
00000cf0  66 73 65 74 28 63 25 2c  65 25 2c 5f 55 25 2b 39  |fset(c%,e%,_U%+9|
00000d00  36 2c 31 36 2c b9 29 3a  61 25 3d 5f 55 25 21 39  |6,16,.):a%=_U%!9|
00000d10  36 2b 64 25 3a e7 61 25  21 30 3d 30 80 61 25 21  |6+d%:.a%!0=0.a%!|
00000d20  34 3d 30 8c 0d 01 16 f1  f2 73 68 65 6c 6c 5f 54  |4=0......shell_T|
00000d30  72 61 63 65 66 30 28 22  41 74 74 61 63 68 44 61  |racef0("AttachDa|
00000d40  74 61 4c 6f 61 64 3a 54  68 69 73 20 69 73 20 74  |taLoad:This is t|
00000d50  68 65 20 66 69 72 73 74  20 44 61 74 61 4c 6f 61  |he first DataLoa|
00000d60  64 20 45 76 65 6e 74 2e  2e 2e 22 29 3a 61 25 21  |d Event..."):a%!|
00000d70  30 3d 63 25 3a 61 25 21  34 3d 65 25 3a 61 25 21  |0=c%:a%!4=e%:a%!|
00000d80  38 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |8=.shell_HeapBlo|
00000d90  63 6b 46 65 74 63 68 28  38 29 3a 62 25 3d 61 25  |ckFetch(8):b%=a%|
00000da0  21 38 3a 62 25 21 30 3d  77 25 3a 62 25 21 34 3d  |!8:b%!0=w%:b%!4=|
00000db0  2d 31 3a 61 25 21 26 43  3d a4 73 68 65 6c 6c 5f  |-1:a%!&C=.shell_|
00000dc0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 38  |HeapBlockFetch(8|
00000dd0  29 3a 62 25 3d 61 25 21  26 43 3a 62 25 21 30 3d  |):b%=a%!&C:b%!0=|
00000de0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00000df0  46 65 74 63 68 28 a9 28  41 24 29 2b 31 29 3a 62  |Fetch(.(A$)+1):b|
00000e00  25 21 34 3d 2d 31 3a 62  25 3d 62 25 21 30 3a 24  |%!4=-1:b%=b%!0:$|
00000e10  62 25 3d 41 24 0d 01 20  f4 cc f2 73 68 65 6c 6c  |b%=A$.. ...shell|
00000e20  5f 54 72 61 63 65 66 30  28 22 41 74 74 61 63 68  |_Tracef0("Attach|
00000e30  44 61 74 61 4c 6f 61 64  3a 54 68 69 73 20 69 73  |DataLoad:This is|
00000e40  20 61 6e 6f 74 68 65 72  20 44 61 74 61 4c 6f 61  | another DataLoa|
00000e50  64 20 45 76 65 6e 74 2e  2e 2e 22 29 3a 61 25 21  |d Event..."):a%!|
00000e60  38 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |8=.shell_HeapBlo|
00000e70  63 6b 45 78 74 65 6e 64  28 61 25 21 38 2c 34 29  |ckExtend(a%!8,4)|
00000e80  3a 61 25 21 26 43 3d a4  73 68 65 6c 6c 5f 48 65  |:a%!&C=.shell_He|
00000e90  61 70 42 6c 6f 63 6b 45  78 74 65 6e 64 28 61 25  |apBlockExtend(a%|
00000ea0  21 26 43 2c 34 29 3a 67  25 3d 30 3a 62 25 3d 61  |!&C,4):g%=0:b%=a|
00000eb0  25 21 38 3a c8 95 62 25  21 67 25 3c 3e 2d 31 3a  |%!8:..b%!g%<>-1:|
00000ec0  67 25 2b 3d 34 3a ce 3a  62 25 21 67 25 3d 77 25  |g%+=4:.:b%!g%=w%|
00000ed0  3a 62 25 21 28 67 25 2b  34 29 3d 2d 31 3a 62 25  |:b%!(g%+4)=-1:b%|
00000ee0  3d 61 25 21 26 43 3a 62  25 21 67 25 3d a4 73 68  |=a%!&C:b%!g%=.sh|
00000ef0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00000f00  63 68 28 a9 41 24 2b 31  29 0d 01 2f 13 62 25 3d  |ch(.A$+1)../.b%=|
00000f10  62 25 21 67 25 3a 24 62  25 3d 41 24 0d 01 30 07  |b%!g%:$b%=A$..0.|
00000f20  cd 3a e1 0d 01 36 48 dd  f2 73 68 65 6c 6c 5f 41  |.:...6H..shell_A|
00000f30  74 74 61 63 68 44 61 74  61 53 61 76 65 28 63 25  |ttachDataSave(c%|
00000f40  2c 65 25 2c 68 41 25 2c  77 25 2c 59 45 25 2c 41  |,e%,hA%,w%,YE%,A|
00000f50  24 29 3a ea 61 25 2c 62  25 2c 64 25 3a e7 68 41  |$):.a%,b%,d%:.hA|
00000f60  25 3d 30 8c 68 41 25 3d  26 36 34 0d 01 39 fd f2  |%=0.hA%=&64..9..|
00000f70  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
00000f80  74 74 61 63 68 44 61 74  61 53 61 76 65 3a 41 74  |ttachDataSave:At|
00000f90  74 61 63 68 69 6e 67 20  44 61 74 61 53 61 76 65  |taching DataSave|
00000fa0  20 48 61 6e 64 6c 65 72  20 74 6f 20 69 63 6f 6e  | Handler to icon|
00000fb0  20 22 2b c3 65 25 2b 22  20 69 6e 20 77 69 6e 64  | "+.e%+" in wind|
00000fc0  6f 77 20 26 22 2b c3 7e  63 25 29 3a f2 73 68 65  |ow &"+.~c%):.she|
00000fd0  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 74 74 61  |ll_Tracef0("Atta|
00000fe0  63 68 44 61 74 61 53 61  76 65 3a 48 61 6e 64 6c  |chDataSave:Handl|
00000ff0  65 72 20 66 75 6e 63 74  69 6f 6e 20 69 73 20 27  |er function is '|
00001000  22 2b 41 24 2b 22 27 22  29 3a 64 25 3d a4 73 68  |"+A$+"'"):d%=.sh|
00001010  65 6c 6c 5f 47 65 74 45  76 65 6e 74 4c 69 73 74  |ell_GetEventList|
00001020  4f 66 66 73 65 74 28 63  25 2c 65 25 2c 5f 55 25  |Offset(c%,e%,_U%|
00001030  2b 37 32 2c 32 34 2c b9  29 3a 61 25 3d 5f 55 25  |+72,24,.):a%=_U%|
00001040  21 37 32 2b 64 25 3a 61  25 21 30 3d 63 25 3a 61  |!72+d%:a%!0=c%:a|
00001050  25 21 34 3d 65 25 3a 61  25 21 38 3d 68 41 25 3a  |%!4=e%:a%!8=hA%:|
00001060  61 25 21 26 43 3d 77 25  0d 01 3e 48 61 25 21 31  |a%!&C=w%..>Ha%!1|
00001070  36 3d 59 45 25 3a 61 25  21 32 30 3d a4 73 68 65  |6=YE%:a%!20=.she|
00001080  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00001090  68 28 a9 28 41 24 29 2b  31 29 3a 62 25 3d 61 25  |h(.(A$)+1):b%=a%|
000010a0  21 32 30 3a 24 62 25 3d  41 24 3a c8 8e 77 25 ca  |!20:$b%=A$:..w%.|
000010b0  0d 01 42 15 c9 26 46 46  39 3a e7 68 41 25 3e 26  |..B..&FF9:.hA%>&|
000010c0  38 30 30 30 8c 0d 01 46  27 5f 55 25 21 26 38 38  |8000...F'_U%!&88|
000010d0  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
000010e0  6b 49 6e 66 6f 28 68 41  25 29 2d 38 0d 01 47 10  |kInfo(hA%)-8..G.|
000010f0  cc 5f 55 25 21 26 38 38  3d 68 41 25 0d 01 49 05  |._U%!&88=hA%..I.|
00001100  cd 0d 01 4a 10 7f e7 68  41 25 3e 26 38 30 30 30  |...J...hA%>&8000|
00001110  8c 0d 01 4c 27 5f 55 25  21 26 38 38 3d a4 73 68  |...L'_U%!&88=.sh|
00001120  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 49 6e 66  |ell_HeapBlockInf|
00001130  6f 28 68 41 25 29 2d 34  0d 01 4d 10 cc 5f 55 25  |o(hA%)-4..M.._U%|
00001140  21 26 38 38 3d 68 41 25  0d 01 4f 05 cd 0d 01 50  |!&88=hA%..O....P|
00001150  1e cb 3a 5f 55 25 21 26  38 43 3d 77 25 3a 5f 55  |..:_U%!&8C=w%:_U|
00001160  25 21 26 39 30 3d 68 41  25 3a e1 0d 01 5a 5a dd  |%!&90=hA%:...ZZ.|
00001170  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 4d 65 6e  |.shell_AttachMen|
00001180  75 28 63 25 2c 72 25 2c  71 25 2c 56 42 25 2c 57  |u(c%,r%,q%,VB%,W|
00001190  42 25 2c 71 42 25 29 3a  e7 63 25 3e 30 80 72 25  |B%,qB%):.c%>0.r%|
000011a0  3e 3d 30 8c f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |>=0..shell_IconS|
000011b0  65 74 42 75 74 74 6f 6e  54 79 70 65 28 63 25 2c  |etButtonType(c%,|
000011c0  72 25 2c 31 29 0d 01 5c  24 f2 73 68 65 6c 6c 5f  |r%,1)..\$.shell_|
000011d0  45 76 65 6e 74 41 64 64  28 63 25 2c 72 25 2c 30  |EventAdd(c%,r%,0|
000011e0  2c 71 25 2c 22 22 29 3a  e1 0d 01 62 8d dd f2 73  |,q%,""):...b...s|
000011f0  68 65 6c 6c 5f 41 74 74  61 63 68 4d 65 6e 75 4d  |hell_AttachMenuM|
00001200  61 6b 65 72 28 63 25 2c  72 25 2c 41 24 29 3a f2  |aker(c%,r%,A$):.|
00001210  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
00001220  74 74 61 63 68 4d 65 6e  75 4d 61 6b 65 72 3a 41  |ttachMenuMaker:A|
00001230  74 74 61 63 68 69 6e 67  20 6d 65 6e 75 6d 61 6b  |ttaching menumak|
00001240  65 72 20 66 75 6e 63 74  69 6f 6e 20 27 22 2b 41  |er function '"+A|
00001250  24 2b 22 27 22 29 3a f2  73 68 65 6c 6c 5f 45 76  |$+"'"):.shell_Ev|
00001260  65 6e 74 41 64 64 28 63  25 2c 72 25 2c 31 2c 30  |entAdd(c%,r%,1,0|
00001270  2c 41 24 29 3a e1 0d 01  6a 79 dd f2 73 68 65 6c  |,A$):...jy..shel|
00001280  6c 5f 41 74 74 61 63 68  4d 65 6e 75 44 42 6f 78  |l_AttachMenuDBox|
00001290  28 69 41 25 2c 4b 24 2c  43 41 24 2c 49 41 24 29  |(iA%,K$,CA$,IA$)|
000012a0  3a ea 61 25 2c 62 25 2c  59 41 25 3a e7 ac a4 73  |:.a%,b%,YA%:...s|
000012b0  68 65 6c 6c 5f 57 69 6e  64 6f 77 4c 6f 61 64 65  |hell_WindowLoade|
000012c0  64 28 4b 24 29 8c 85 39  39 2c a4 73 68 65 6c 6c  |d(K$)..99,.shell|
000012d0  5f 4d 65 73 73 61 67 65  4f 6e 65 41 72 67 28 22  |_MessageOneArg("|
000012e0  53 48 45 4c 4c 4d 53 47  30 33 22 2c 4b 24 29 0d  |SHELLMSG03",K$).|
000012f0  01 6f d5 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |.o.a%=.shell_Hea|
00001300  70 42 6c 6f 63 6b 46 65  74 63 68 28 26 43 29 3a  |pBlockFetch(&C):|
00001310  61 25 21 30 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |a%!0=.shell_Heap|
00001320  42 6c 6f 63 6b 46 65 74  63 68 28 a9 4b 24 2b 31  |BlockFetch(.K$+1|
00001330  29 3a 62 25 3d 61 25 21  30 3a 24 62 25 3d 4b 24  |):b%=a%!0:$b%=K$|
00001340  3a 61 25 21 34 3d a4 73  68 65 6c 6c 5f 48 65 61  |:a%!4=.shell_Hea|
00001350  70 42 6c 6f 63 6b 46 65  74 63 68 28 a9 43 41 24  |pBlockFetch(.CA$|
00001360  2b 31 29 3a 62 25 3d 61  25 21 34 3a 24 62 25 3d  |+1):b%=a%!4:$b%=|
00001370  43 41 24 3a 61 25 21 38  3d a4 73 68 65 6c 6c 5f  |CA$:a%!8=.shell_|
00001380  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 a9  |HeapBlockFetch(.|
00001390  49 41 24 2b 31 29 3a 62  25 3d 61 25 21 38 3a 24  |IA$+1):b%=a%!8:$|
000013a0  62 25 3d 49 41 24 3a c8  99 26 34 35 42 43 45 2c  |b%=IA$:..&45BCE,|
000013b0  69 41 25 2c 61 25 3a c8  99 26 34 35 42 43 43 2c  |iA%,a%:..&45BCC,|
000013c0  2c b9 3a e1 0d 01 7f 47  dd f2 73 68 65 6c 6c 5f  |,.:....G..shell_|
000013d0  41 74 74 61 63 68 43 6c  69 63 6b 53 65 6c 65 63  |AttachClickSelec|
000013e0  74 28 63 25 2c 72 25 2c  41 24 29 3a f2 73 68 65  |t(c%,r%,A$):.she|
000013f0  6c 6c 5f 45 76 65 6e 74  41 64 64 28 63 25 2c 72  |ll_EventAdd(c%,r|
00001400  25 2c 32 2c 30 2c 41 24  29 3a e1 0d 01 85 47 dd  |%,2,0,A$):....G.|
00001410  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 43 6c 69  |.shell_AttachCli|
00001420  63 6b 41 64 6a 75 73 74  28 63 25 2c 72 25 2c 41  |ckAdjust(c%,r%,A|
00001430  24 29 3a f2 73 68 65 6c  6c 5f 45 76 65 6e 74 41  |$):.shell_EventA|
00001440  64 64 28 63 25 2c 72 25  2c 33 2c 30 2c 41 24 29  |dd(c%,r%,3,0,A$)|
00001450  3a e1 0d 01 8b c4 dd f2  73 68 65 6c 6c 5f 41 74  |:.......shell_At|
00001460  74 61 63 68 55 73 65 72  52 65 64 72 61 77 28 f8  |tachUserRedraw(.|
00001470  63 25 2c 41 24 29 3a ea  61 25 2c 42 41 25 2c 48  |c%,A$):.a%,BA%,H|
00001480  41 25 3a 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |A%:a%=.shell_Hea|
00001490  70 42 6c 6f 63 6b 46 65  74 63 68 28 34 30 29 3a  |pBlockFetch(40):|
000014a0  21 61 25 3d 63 25 3a c8  99 26 34 30 30 43 42 2c  |!a%=c%:..&400CB,|
000014b0  2c 61 25 3a 42 41 25 3d  61 25 21 33 32 3a f2 73  |,a%:BA%=a%!32:.s|
000014c0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
000014d0  74 75 72 6e 28 61 25 29  3a f2 73 68 65 6c 6c 5f  |turn(a%):.shell_|
000014e0  54 72 61 63 65 66 30 28  22 41 74 74 61 63 68 55  |Tracef0("AttachU|
000014f0  73 65 72 52 65 64 72 61  77 3a 66 6c 61 67 25 3d  |serRedraw:flag%=|
00001500  26 22 2b c3 7e 42 41 25  29 3a e7 28 42 41 25 80  |&"+.~BA%):.(BA%.|
00001510  31 3c 3c 34 29 8c 0d 01  93 6b f2 73 68 65 6c 6c  |1<<4)....k.shell|
00001520  5f 54 72 61 63 65 66 30  28 22 41 74 74 61 63 68  |_Tracef0("Attach|
00001530  55 73 65 72 52 65 64 72  61 77 3a 61 75 74 6f 20  |UserRedraw:auto |
00001540  72 65 64 72 61 77 20 73  65 74 21 21 22 29 3a 48  |redraw set!!"):H|
00001550  41 25 3d 63 25 3a f2 73  68 65 6c 6c 5f 57 69 6e  |A%=c%:.shell_Win|
00001560  64 6f 77 54 6f 67 67 6c  65 46 6c 61 67 73 28 63  |dowToggleFlags(c|
00001570  25 2c 31 3c 3c 34 29 3a  e7 63 25 3c 3e 48 41 25  |%,1<<4):.c%<>HA%|
00001580  8c 0d 01 98 25 f2 73 68  65 6c 6c 5f 55 70 64 61  |....%.shell_Upda|
00001590  74 65 57 69 6e 64 6f 77  48 61 6e 64 6c 65 28 48  |teWindowHandle(H|
000015a0  41 25 2c 63 25 29 0d 01  99 05 cd 0d 01 9a 25 cd  |A%,c%)........%.|
000015b0  3a f2 73 68 65 6c 6c 5f  45 76 65 6e 74 41 64 64  |:.shell_EventAdd|
000015c0  28 63 25 2c 2d 31 2c 34  2c 30 2c 41 24 29 3a e1  |(c%,-1,4,0,A$):.|
000015d0  0d 01 a0 44 dd f2 73 68  65 6c 6c 5f 41 74 74 61  |...D..shell_Atta|
000015e0  63 68 4b 65 79 70 72 65  73 73 28 63 25 2c 72 25  |chKeypress(c%,r%|
000015f0  2c 41 24 29 3a f2 73 68  65 6c 6c 5f 45 76 65 6e  |,A$):.shell_Even|
00001600  74 41 64 64 28 63 25 2c  72 25 2c 35 2c 30 2c 41  |tAdd(c%,r%,5,0,A|
00001610  24 29 3a e1 0d 01 a6 44  dd f2 73 68 65 6c 6c 5f  |$):....D..shell_|
00001620  41 74 74 61 63 68 44 72  61 67 28 63 25 2c 72 25  |AttachDrag(c%,r%|
00001630  2c 64 45 25 2c 41 24 29  3a f2 73 68 65 6c 6c 5f  |,dE%,A$):.shell_|
00001640  45 76 65 6e 74 41 64 64  28 63 25 2c 72 25 2c 36  |EventAdd(c%,r%,6|
00001650  2c 30 2c 41 24 29 3a e1  0d 01 ac 43 dd f2 73 68  |,0,A$):....C..sh|
00001660  65 6c 6c 5f 41 74 74 61  63 68 48 65 6c 70 54 61  |ell_AttachHelpTa|
00001670  67 28 63 25 2c 72 25 2c  49 24 29 3a f2 73 68 65  |g(c%,r%,I$):.she|
00001680  6c 6c 5f 45 76 65 6e 74  41 64 64 28 63 25 2c 72  |ll_EventAdd(c%,r|
00001690  25 2c 38 2c 30 2c 49 24  29 3a e1 0d 01 b2 52 dd  |%,8,0,I$):....R.|
000016a0  f2 73 68 65 6c 6c 5f 45  76 65 6e 74 41 64 64 28  |.shell_EventAdd(|
000016b0  63 25 2c 72 25 2c 58 42  25 2c 71 25 2c 41 24 29  |c%,r%,XB%,q%,A$)|
000016c0  3a ea 66 25 2c 4d 42 25  2c 68 25 2c 6f 25 2c 6a  |:.f%,MB%,h%,o%,j|
000016d0  25 3a ea 5f 42 25 3a 66  25 3d 30 3a 6a 25 3d a3  |%:._B%:f%=0:j%=.|
000016e0  3a e7 63 25 3d 2d 31 8c  63 25 3d 2d 32 0d 01 b7  |:.c%=-1.c%=-2...|
000016f0  3e 6f 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |>o%=.shell_HeapB|
00001700  6c 6f 63 6b 49 6e 66 6f  28 5f 55 25 21 26 43 29  |lockInfo(_U%!&C)|
00001710  2d 38 3a 68 25 3d 5f 55  25 21 26 43 3a f5 3a e7  |-8:h%=_U%!&C:.:.|
00001720  28 68 25 21 66 25 3d 63  25 29 8c 0d 01 bb 10 c8  |(h%!f%=c%)......|
00001730  8e 68 25 21 28 66 25 2b  34 29 ca 0d 01 bc 0c c9  |.h%!(f%+4)......|
00001740  2d 31 3a 6a 25 3d b9 0d  01 be 13 7f e7 68 25 21  |-1:j%=.......h%!|
00001750  28 66 25 2b 34 29 3d 72  25 8c 0d 01 c0 08 6a 25  |(f%+4)=r%.....j%|
00001760  3d b9 0d 01 c1 0b cc 66  25 2b 3d 34 38 0d 01 c3  |=......f%+=48...|
00001770  05 cd 0d 01 c4 05 cb 0d  01 c5 0b cc 66 25 2b 3d  |............f%+=|
00001780  34 38 0d 01 c7 19 cd 3a  fd 28 66 25 3e 3d 6f 25  |48.....:.(f%>=o%|
00001790  84 6a 25 29 3a e7 6a 25  3d a3 8c 0d 01 ca 25 66  |.j%):.j%=.....%f|
000017a0  25 3d 30 3a c8 95 28 68  25 21 66 25 3c 3e 30 29  |%=0:..(h%!f%<>0)|
000017b0  3a 66 25 2b 3d 34 38 3a  e7 66 25 3e 3d 6f 25 8c  |:f%+=48:.f%>=o%.|
000017c0  0d 01 ce cf 5f 55 25 21  26 43 3d a4 73 68 65 6c  |...._U%!&C=.shel|
000017d0  6c 5f 48 65 61 70 42 6c  6f 63 6b 45 78 74 65 6e  |l_HeapBlockExten|
000017e0  64 28 5f 55 25 21 26 43  2c 34 38 29 3a 68 25 3d  |d(_U%!&C,48):h%=|
000017f0  5f 55 25 21 26 43 3a 68  25 21 28 66 25 2b 30 29  |_U%!&C:h%!(f%+0)|
00001800  3d 30 3a 68 25 21 28 66  25 2b 34 29 3d 30 3a 68  |=0:h%!(f%+4)=0:h|
00001810  25 21 28 66 25 2b 38 29  3d 30 3a 68 25 21 28 66  |%!(f%+8)=0:h%!(f|
00001820  25 2b 26 43 29 3d 30 3a  68 25 21 28 66 25 2b 31  |%+&C)=0:h%!(f%+1|
00001830  36 29 3d 30 3a 68 25 21  28 66 25 2b 32 30 29 3d  |6)=0:h%!(f%+20)=|
00001840  30 3a 68 25 21 28 66 25  2b 32 34 29 3d 30 3a 68  |0:h%!(f%+24)=0:h|
00001850  25 21 28 66 25 2b 32 38  29 3d 30 3a 68 25 21 28  |%!(f%+28)=0:h%!(|
00001860  66 25 2b 33 32 29 3d 30  3a 68 25 21 28 66 25 2b  |f%+32)=0:h%!(f%+|
00001870  33 36 29 3d 30 3a 68 25  21 28 66 25 2b 34 30 29  |36)=0:h%!(f%+40)|
00001880  3d 30 3a 68 25 21 28 66  25 2b 34 34 29 3d 30 0d  |=0:h%!(f%+44)=0.|
00001890  01 dc 07 cd 3a ce 0d 01  de 27 cd 3a 68 25 21 28  |....:....'.:h%!(|
000018a0  66 25 2b 30 29 3d 63 25  3a 68 25 21 28 66 25 2b  |f%+0)=c%:h%!(f%+|
000018b0  34 29 3d 72 25 3a e7 71  25 3c 3e 30 8c 0d 01 e2  |4)=r%:.q%<>0....|
000018c0  10 68 25 21 28 66 25 2b  38 29 3d 71 25 0d 01 e3  |.h%!(f%+8)=q%...|
000018d0  25 cd 3a 5f 42 25 3d 66  25 2b 28 26 43 2b 28 58  |%.:_B%=f%+(&C+(X|
000018e0  42 25 2a 34 29 29 3a e7  68 25 21 5f 42 25 3c 3e  |B%*4)):.h%!_B%<>|
000018f0  30 8c 0d 01 e6 22 f2 73  68 65 6c 6c 5f 48 65 61  |0....".shell_Hea|
00001900  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 68 25 21  |pBlockReturn(h%!|
00001910  5f 42 25 29 0d 01 e7 3b  cd 3a 4d 42 25 3d a4 73  |_B%)...;.:MB%=.s|
00001920  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
00001930  74 63 68 28 a9 41 24 2b  31 29 3a 24 4d 42 25 3d  |tch(.A$+1):$MB%=|
00001940  41 24 3a 68 25 21 5f 42  25 3d 4d 42 25 3a e1 0d  |A$:h%!_B%=MB%:..|
00001950  01 ef 4d dd f2 73 68 65  6c 6c 5f 45 76 65 6e 74  |..M..shell_Event|
00001960  44 65 6c 65 74 65 41 6c  6c 28 63 25 29 3a ea 66  |DeleteAll(c%):.f|
00001970  25 2c 71 25 2c 6a 25 2c  6f 25 2c 68 25 2c 6d 25  |%,q%,j%,o%,h%,m%|
00001980  3a 66 25 3d 30 3a 71 25  3d 30 3a 6a 25 3d a3 3a  |:f%=0:q%=0:j%=.:|
00001990  e7 63 25 3d 2d 31 8c 63  25 3d 2d 32 0d 01 f3 3e  |.c%=-1.c%=-2...>|
000019a0  6f 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |o%=.shell_HeapBl|
000019b0  6f 63 6b 49 6e 66 6f 28  5f 55 25 21 26 43 29 2d  |ockInfo(_U%!&C)-|
000019c0  38 3a 68 25 3d 5f 55 25  21 26 43 3a f5 3a e7 28  |8:h%=_U%!&C:.:.(|
000019d0  68 25 21 66 25 3d 63 25  29 8c 0d 01 f7 08 6a 25  |h%!f%=c%).....j%|
000019e0  3d b9 0d 01 f8 0b cc 66  25 2b 3d 34 38 0d 01 fa  |=......f%+=48...|
000019f0  17 cd 3a fd 28 66 25 3e  3d 6f 25 84 6a 25 29 3a  |..:.(f%>=o%.j%):|
00001a00  e7 6a 25 8c 0d 01 fd 43  68 25 21 28 66 25 2b 30  |.j%....Ch%!(f%+0|
00001a10  29 3d 30 3a 68 25 21 28  66 25 2b 34 29 3d 30 3a  |)=0:h%!(f%+4)=0:|
00001a20  68 25 21 28 66 25 2b 38  29 3d 30 3a e3 6d 25 3d  |h%!(f%+8)=0:.m%=|
00001a30  26 43 b8 34 34 88 34 3a  e7 68 25 21 28 66 25 2b  |&C.44.4:.h%!(f%+|
00001a40  6d 25 29 3c 3e 30 8c 0d  02 02 33 f2 73 68 65 6c  |m%)<>0....3.shel|
00001a50  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00001a60  6e 28 68 25 21 28 66 25  2b 6d 25 29 29 3a 68 25  |n(h%!(f%+m%)):h%|
00001a70  21 28 66 25 2b 6d 25 29  3d 30 0d 02 04 09 cd 3a  |!(f%+m%)=0.....:|
00001a80  ed 6d 25 0d 02 06 73 cd  3a f2 73 68 65 6c 6c 5f  |.m%...s.:.shell_|
00001a90  54 72 61 63 65 66 30 28  22 45 76 65 6e 74 44 65  |Tracef0("EventDe|
00001aa0  6c 65 74 65 41 6c 6c 3a  77 68 25 3d 26 22 2b c3  |leteAll:wh%=&"+.|
00001ab0  7e 63 25 29 3a f2 73 68  65 6c 6c 5f 44 65 6c 65  |~c%):.shell_Dele|
00001ac0  74 65 45 76 65 6e 74 44  61 74 61 53 61 76 65 28  |teEventDataSave(|
00001ad0  63 25 2c 2d 31 29 3a f2  73 68 65 6c 6c 5f 44 65  |c%,-1):.shell_De|
00001ae0  6c 65 74 65 45 76 65 6e  74 42 75 6d 70 28 63 25  |leteEventBump(c%|
00001af0  2c 2d 31 29 3a e1 0d 02  10 a7 dd f2 73 68 65 6c  |,-1):.......shel|
00001b00  6c 5f 44 65 6c 65 74 65  45 76 65 6e 74 42 75 6d  |l_DeleteEventBum|
00001b10  70 28 63 25 2c 65 25 29  3a ea 64 25 2c 61 25 2c  |p(c%,e%):.d%,a%,|
00001b20  6f 25 2c 68 25 2c 62 25  3a 68 25 3d 5f 55 25 21  |o%,h%,b%:h%=_U%!|
00001b30  26 36 38 3a f5 3a 64 25  3d a4 73 68 65 6c 6c 5f  |&68:.:d%=.shell_|
00001b40  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
00001b50  65 74 28 63 25 2c 65 25  2c 5f 55 25 2b 26 36 38  |et(c%,e%,_U%+&68|
00001b60  2c 31 36 2c a3 29 3a f2  73 68 65 6c 6c 5f 54 72  |,16,.):.shell_Tr|
00001b70  61 63 65 66 30 28 22 44  65 6c 65 74 65 45 76 65  |acef0("DeleteEve|
00001b80  6e 74 42 75 6d 70 3a 6f  66 66 73 65 74 25 3d 22  |ntBump:offset%="|
00001b90  2b c3 64 25 29 3a e7 64  25 3e 3d 30 8c 0d 02 1b  |+.d%):.d%>=0....|
00001ba0  0b e7 65 25 3d 2d 31 8c  0d 02 1c 62 f2 73 68 65  |..e%=-1....b.she|
00001bb0  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 65 6c 65  |ll_Tracef0("Dele|
00001bc0  74 65 45 76 65 6e 74 42  75 6d 70 3a 44 65 6c 65  |teEventBump:Dele|
00001bd0  74 69 6e 67 20 42 75 6d  70 20 45 76 65 6e 74 20  |ting Bump Event |
00001be0  28 61 6c 6c 20 65 76 65  6e 74 73 20 66 6f 72 20  |(all events for |
00001bf0  77 69 6e 64 6f 77 20 68  61 6e 64 6c 65 20 26 22  |window handle &"|
00001c00  2b c3 7e 63 25 2b 22 29  22 29 0d 02 1d 70 cc f2  |+.~c%+")")...p..|
00001c10  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 44  |shell_Tracef0("D|
00001c20  65 6c 65 74 65 45 76 65  6e 74 42 75 6d 70 3a 44  |eleteEventBump:D|
00001c30  65 6c 65 74 69 6e 67 20  42 75 6d 70 20 45 76 65  |eleting Bump Eve|
00001c40  6e 74 20 28 77 69 6e 64  6f 77 20 68 61 6e 64 6c  |nt (window handl|
00001c50  65 20 77 61 73 20 26 22  2b c3 7e 63 25 2b 22 20  |e was &"+.~c%+" |
00001c60  69 63 6f 6e 20 68 61 6e  64 6c 65 20 77 61 73 20  |icon handle was |
00001c70  22 2b c3 65 25 2b 22 29  22 29 0d 02 1f 33 cd 3a  |"+.e%+")")...3.:|
00001c80  6f 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |o%=.shell_HeapBl|
00001c90  6f 63 6b 49 6e 66 6f 28  5f 55 25 21 26 36 38 29  |ockInfo(_U%!&68)|
00001ca0  2d 38 3a e7 64 25 3d 6f  25 2d 31 36 8c 0d 02 24  |-8:.d%=o%-16...$|
00001cb0  0a e7 64 25 3d 30 8c 0d  02 26 dc 41 41 25 3d 68  |..d%=0...&.AA%=h|
00001cc0  25 21 26 43 3a 62 25 3d  41 41 25 21 26 43 3a f2  |%!&C:b%=AA%!&C:.|
00001cd0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00001ce0  65 74 75 72 6e 28 62 25  21 26 43 29 3a f2 73 68  |eturn(b%!&C):.sh|
00001cf0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00001d00  75 72 6e 28 62 25 21 31  36 29 3a f2 73 68 65 6c  |urn(b%!16):.shel|
00001d10  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00001d20  6e 28 62 25 29 3a f2 73  68 65 6c 6c 5f 48 65 61  |n(b%):.shell_Hea|
00001d30  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
00001d40  21 26 36 38 29 3a 5f 55  25 21 26 36 38 3d 30 3a  |!&68):_U%!&68=0:|
00001d50  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00001d60  44 65 6c 65 74 65 45 76  65 6e 74 44 61 74 61 53  |DeleteEventDataS|
00001d70  61 76 65 3a 4e 6f 20 42  75 6d 70 20 65 76 65 6e  |ave:No Bump even|
00001d80  74 73 20 6e 6f 77 20 72  65 67 69 73 74 65 72 65  |ts now registere|
00001d90  64 22 29 0d 02 2e 30 cc  5f 55 25 21 26 36 38 3d  |d")...0._U%!&68=|
00001da0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00001db0  45 78 74 65 6e 64 28 5f  55 25 21 26 36 38 2c 2d  |Extend(_U%!&68,-|
00001dc0  31 36 29 0d 02 31 05 cd  0d 02 32 86 cc 61 25 3d  |16)..1....2..a%=|
00001dd0  68 25 2b 64 25 3a 61 25  21 30 3d 30 3a 61 25 21  |h%+d%:a%!0=0:a%!|
00001de0  34 3d 30 3a 61 25 21 38  3d 30 3a 41 41 25 3d 61  |4=0:a%!8=0:AA%=a|
00001df0  25 21 26 43 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |%!&C:.shell_Heap|
00001e00  42 6c 6f 63 6b 52 65 74  75 72 6e 28 41 41 25 21  |BlockReturn(AA%!|
00001e10  26 43 29 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |&C):.shell_HeapB|
00001e20  6c 6f 63 6b 52 65 74 75  72 6e 28 41 41 25 21 31  |lockReturn(AA%!1|
00001e30  36 29 3a f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |6):.shell_HeapBl|
00001e40  6f 63 6b 52 65 74 75 72  6e 28 41 41 25 29 0d 02  |ockReturn(AA%)..|
00001e50  3a 05 cd 0d 02 3b 0d cd  3a fd 64 25 3c 30 3a e1  |:....;..:.d%<0:.|
00001e60  0d 02 43 6a dd f2 73 68  65 6c 6c 5f 44 65 6c 65  |..Cj..shell_Dele|
00001e70  74 65 45 76 65 6e 74 44  61 74 61 53 61 76 65 28  |teEventDataSave(|
00001e80  63 25 2c 65 25 29 3a ea  64 25 2c 61 25 2c 6f 25  |c%,e%):.d%,a%,o%|
00001e90  3a f5 3a 64 25 3d a4 73  68 65 6c 6c 5f 47 65 74  |:.:d%=.shell_Get|
00001ea0  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 28  |EventListOffset(|
00001eb0  63 25 2c 65 25 2c 5f 55  25 2b 37 32 2c 32 34 2c  |c%,e%,_U%+72,24,|
00001ec0  a3 29 3a e7 64 25 3e 3d  30 8c 0d 02 4f 0b e7 65  |.):.d%>=0...O..e|
00001ed0  25 3d 2d 31 8c 0d 02 50  6a f2 73 68 65 6c 6c 5f  |%=-1...Pj.shell_|
00001ee0  54 72 61 63 65 66 30 28  22 44 65 6c 65 74 65 45  |Tracef0("DeleteE|
00001ef0  76 65 6e 74 44 61 74 61  53 61 76 65 3a 44 65 6c  |ventDataSave:Del|
00001f00  65 74 69 6e 67 20 44 61  74 61 53 61 76 65 20 45  |eting DataSave E|
00001f10  76 65 6e 74 20 28 61 6c  6c 20 65 76 65 6e 74 73  |vent (all events|
00001f20  20 66 6f 72 20 77 69 6e  64 6f 77 20 68 61 6e 64  | for window hand|
00001f30  6c 65 20 26 22 2b c3 7e  63 25 2b 22 29 22 29 0d  |le &"+.~c%+")").|
00001f40  02 51 78 cc f2 73 68 65  6c 6c 5f 54 72 61 63 65  |.Qx..shell_Trace|
00001f50  66 30 28 22 44 65 6c 65  74 65 45 76 65 6e 74 44  |f0("DeleteEventD|
00001f60  61 74 61 53 61 76 65 3a  44 65 6c 65 74 69 6e 67  |ataSave:Deleting|
00001f70  20 44 61 74 61 53 61 76  65 20 45 76 65 6e 74 20  | DataSave Event |
00001f80  28 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 77  |(window handle w|
00001f90  61 73 20 26 22 2b c3 7e  63 25 2b 22 20 69 63 6f  |as &"+.~c%+" ico|
00001fa0  6e 20 68 61 6e 64 6c 65  20 77 61 73 20 22 2b c3  |n handle was "+.|
00001fb0  65 25 2b 22 29 22 29 0d  02 53 32 cd 3a 6f 25 3d  |e%+")")..S2.:o%=|
00001fc0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00001fd0  49 6e 66 6f 28 5f 55 25  21 37 32 29 2d 38 3a e7  |Info(_U%!72)-8:.|
00001fe0  64 25 3d 6f 25 2d 32 34  8c 0d 02 58 0a e7 64 25  |d%=o%-24...X..d%|
00001ff0  3d 30 8c 0d 02 5a 73 f2  73 68 65 6c 6c 5f 48 65  |=0...Zs.shell_He|
00002000  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 5f 55  |apBlockReturn(_U|
00002010  25 21 37 32 29 3a 5f 55  25 21 37 32 3d 30 3a f2  |%!72):_U%!72=0:.|
00002020  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 44  |shell_Tracef0("D|
00002030  65 6c 65 74 65 45 76 65  6e 74 44 61 74 61 53 61  |eleteEventDataSa|
00002040  76 65 3a 4e 6f 20 44 61  74 61 53 61 76 65 20 65  |ve:No DataSave e|
00002050  76 65 6e 74 73 20 6e 6f  77 20 72 65 67 69 73 74  |vents now regist|
00002060  65 72 65 64 22 29 0d 02  5e 2e cc 5f 55 25 21 37  |ered")..^.._U%!7|
00002070  32 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |2=.shell_HeapBlo|
00002080  63 6b 45 78 74 65 6e 64  28 5f 55 25 21 37 32 2c  |ckExtend(_U%!72,|
00002090  2d 32 34 29 0d 02 61 05  cd 0d 02 62 58 cc 61 25  |-24)..a....bX.a%|
000020a0  3d 68 25 2b 64 25 3a 61  25 21 30 3d 30 3a 61 25  |=h%+d%:a%!0=0:a%|
000020b0  21 34 3d 30 3a 61 25 21  38 3d 30 3a 61 25 21 26  |!4=0:a%!8=0:a%!&|
000020c0  43 3d 30 3a 61 25 21 31  36 3d 30 3a f2 73 68 65  |C=0:a%!16=0:.she|
000020d0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
000020e0  72 6e 28 61 25 21 32 30  29 3a 61 25 21 32 30 3d  |rn(a%!20):a%!20=|
000020f0  30 0d 02 67 05 cd 0d 02  68 0d cd 3a fd 64 25 3c  |0..g....h..:.d%<|
00002100  30 3a e1 0d 02 70 3d dd  a4 73 68 65 6c 6c 5f 4d  |0:...p=..shell_M|
00002110  65 73 73 61 67 65 4e 6f  41 72 67 73 28 49 24 29  |essageNoArgs(I$)|
00002120  3a 3d a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |:=.shell_Message|
00002130  4c 6f 6f 6b 75 70 28 49  24 2c 22 22 2c 22 22 29  |Lookup(I$,"","")|
00002140  0d 02 75 40 dd a4 73 68  65 6c 6c 5f 4d 65 73 73  |..u@..shell_Mess|
00002150  61 67 65 4f 6e 65 41 72  67 28 49 24 2c 77 24 29  |ageOneArg(I$,w$)|
00002160  3a 3d a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |:=.shell_Message|
00002170  4c 6f 6f 6b 75 70 28 49  24 2c 77 24 2c 22 22 29  |Lookup(I$,w$,"")|
00002180  0d 02 7a 4a dd a4 73 68  65 6c 6c 5f 4d 65 73 73  |..zJ..shell_Mess|
00002190  61 67 65 4c 6f 6f 6b 75  70 28 49 24 2c 77 24 2c  |ageLookup(I$,w$,|
000021a0  4f 41 24 29 3a ea 6c 25  2c 4c 25 2c 64 24 2c 6d  |OA$):.l%,L%,d$,m|
000021b0  42 25 2c 4b 42 25 3a e7  c0 49 24 2c 38 29 3d 22  |B%,KB%:..I$,8)="|
000021c0  53 48 45 4c 4c 4d 53 47  22 8c 0d 02 7d 1b 6d 42  |SHELLMSG"...}.mB|
000021d0  25 3d 5f 55 25 21 32 38  34 3a 4b 42 25 3d 5f 55  |%=_U%!284:KB%=_U|
000021e0  25 21 32 38 30 0d 02 7e  1a cc 6d 42 25 3d 5f 55  |%!280..~..mB%=_U|
000021f0  25 21 36 34 3a 4b 42 25  3d 5f 55 25 21 36 38 0d  |%!64:KB%=_U%!68.|
00002200  02 80 34 cd 3a c8 99 26  36 31 35 30 32 2c 4b 42  |..4.:..&61502,KB|
00002210  25 2c 49 24 2c 6d 42 25  2c 32 35 36 2c 77 24 2c  |%,I$,mB%,256,w$,|
00002220  4f 41 24 b8 2c 2c 2c 4c  25 3b 6c 25 3a e7 6c 25  |OA$.,,,L%;l%:.l%|
00002230  80 31 8c 0d 02 84 18 cc  6d 42 25 3f 4c 25 3d 26  |.1......mB%?L%=&|
00002240  44 3a 64 24 3d 24 28 6d  42 25 29 0d 02 87 09 cd  |D:d$=$(mB%).....|
00002250  3a 3d 64 24 0d 02 8d 54  dd a4 73 68 65 6c 6c 5f  |:=d$...T..shell_|
00002260  57 69 6d 70 49 6e 69 74  28 72 42 25 2c 6b 24 29  |WimpInit(rB%,k$)|
00002270  3a ea 58 41 25 3a c8 99  26 34 30 30 43 30 2c 72  |:.XA%:..&400C0,r|
00002280  42 25 2c 26 34 42 35 33  34 31 35 34 2c 6b 24 b8  |B%,&4B534154,k$.|
00002290  72 42 25 2c 58 41 25 3a  5f 55 25 21 26 39 34 3d  |rB%,XA%:_U%!&94=|
000022a0  58 41 25 3a 3d 58 41 25  0d 02 96 5e dd a4 73 68  |XA%:=XA%...^..sh|
000022b0  65 6c 6c 5f 57 69 6d 70  49 6e 69 74 5f 49 28 72  |ell_WimpInit_I(r|
000022c0  42 25 2c 6b 24 29 3a c8  99 26 34 30 30 43 30 2c  |B%,k$):..&400C0,|
000022d0  72 42 25 2c 26 34 42 35  33 34 31 35 34 2c 6b 24  |rB%,&4B534154,k$|
000022e0  b8 72 42 25 2c 58 41 25  3a 5f 55 25 21 26 39 34  |.rB%,XA%:_U%!&94|
000022f0  3d 58 41 25 3a c8 99 26  38 31 36 38 32 2c 58 41  |=XA%:..&81682,XA|
00002300  25 3a 3d 58 41 25 0d 02  9f 47 dd f2 73 68 65 6c  |%:=XA%...G..shel|
00002310  6c 5f 57 69 6d 70 43 6c  6f 73 65 44 6f 77 6e 5f  |l_WimpCloseDown_|
00002320  49 28 58 41 25 29 3a f2  73 68 65 6c 6c 5f 4c 6f  |I(XA%):.shell_Lo|
00002330  73 65 46 6f 6e 74 73 3a  e7 5f 55 25 21 26 46 30  |seFonts:._U%!&F0|
00002340  3c 3e 2d 31 8c c8 99 26  38 44 30 38 31 0d 02 a4  |<>-1...&8D081...|
00002350  53 c8 99 26 34 30 30 44  44 2c 58 41 25 2c 26 34  |S..&400DD,XA%,&4|
00002360  42 35 33 34 31 35 34 3a  c8 99 26 38 31 36 38 33  |B534154:..&81683|
00002370  2c 58 41 25 3a e7 5f 55  25 21 26 36 34 80 31 3c  |,XA%:._U%!&64.1<|
00002380  3c 32 8c c8 99 22 49 6d  70 75 6c 73 65 5f 43 6c  |<2..."Impulse_Cl|
00002390  6f 73 65 44 6f 77 6e 22  2c 5f 55 25 21 26 39 34  |oseDown",_U%!&94|
000023a0  0d 02 a7 05 e1 0d 02 ab  3f dd f2 57 69 6d 70 43  |........?..WimpC|
000023b0  6c 6f 73 65 44 6f 77 6e  28 58 41 25 29 3a f2 73  |loseDown(XA%):.s|
000023c0  68 65 6c 6c 5f 4c 6f 73  65 46 6f 6e 74 73 3a e7  |hell_LoseFonts:.|
000023d0  5f 55 25 21 26 46 30 3c  3e 2d 31 8c c8 99 26 38  |_U%!&F0<>-1...&8|
000023e0  44 30 38 31 0d 02 b0 46  c8 99 26 34 30 30 44 44  |D081...F..&400DD|
000023f0  2c 58 41 25 2c 26 34 42  35 33 34 31 35 34 3a e7  |,XA%,&4B534154:.|
00002400  5f 55 25 21 26 36 34 80  31 3c 3c 32 8c c8 99 22  |_U%!&64.1<<2..."|
00002410  49 6d 70 75 6c 73 65 5f  43 6c 6f 73 65 44 6f 77  |Impulse_CloseDow|
00002420  6e 22 2c 5f 55 25 21 26  39 34 0d 02 b3 05 e1 0d  |n",_U%!&94......|
00002430  02 b7 58 dd f2 73 68 65  6c 6c 5f 4c 6f 73 65 46  |..X..shell_LoseF|
00002440  6f 6e 74 73 3a ea 6d 25  2c 62 25 3a 62 25 3d 5f  |onts:.m%,b%:b%=_|
00002450  55 25 21 26 45 38 3a e3  6d 25 3d 30 b8 26 46 46  |U%!&E8:.m%=0.&FF|
00002460  3a c8 95 62 25 3f 6d 25  3e 30 3a c8 99 26 34 30  |:..b%?m%>0:..&40|
00002470  30 38 32 2c 6d 25 3a 62  25 3f 6d 25 2d 3d 31 3a  |082,m%:b%?m%-=1:|
00002480  ce 3a ed 6d 25 3a e1 0d  02 c4 92 dd a4 73 68 65  |.:.m%:.......she|
00002490  6c 6c 5f 46 69 6e 64 46  6f 6e 74 28 59 24 2c 4f  |ll_FindFont(Y$,O|
000024a0  45 25 29 3a ea 42 41 25  2c 65 43 25 3a 65 43 25  |E%):.BA%,eC%:eC%|
000024b0  3d 5f 55 25 21 26 45 38  3a c8 99 26 34 30 30 38  |=_U%!&E8:..&4008|
000024c0  31 2c 2c 59 24 2c 4f 45  25 2a 31 36 2c 63 2a 31  |1,,Y$,OE%*16,c*1|
000024d0  36 2c 30 2c 30 b8 42 41  25 3a 65 43 25 3f 42 41  |6,0,0.BA%:eC%?BA|
000024e0  25 2b 3d 31 3a e7 65 43  25 3f 42 41 25 3e 3d 26  |%+=1:.eC%?BA%>=&|
000024f0  46 46 8c 85 39 39 2c a4  73 68 65 6c 6c 5f 4d 65  |FF..99,.shell_Me|
00002500  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
00002510  4c 4c 4d 53 47 31 38 22  29 0d 02 ca 08 3d 42 41  |LLMSG18")....=BA|
00002520  25 0d 02 cf fe dd f2 73  68 65 6c 6c 5f 49 6e 69  |%......shell_Ini|
00002530  74 3a ea 62 41 25 2c 6d  25 2c 62 25 3a de 5f 55  |t:.bA%,m%,b%:._U|
00002540  25 33 32 30 2c 5f 73 68  65 6c 6c 5f 62 6c 6b 25  |%320,_shell_blk%|
00002550  26 36 34 3a 5f 51 25 3d  a4 73 68 65 6c 6c 5f 48  |&64:_Q%=.shell_H|
00002560  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 26 42  |eapBlockFetch(&B|
00002570  42 38 29 3a 62 41 25 3d  a4 73 68 65 6c 6c 5f 48  |B8):bA%=.shell_H|
00002580  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 34 38  |eapBlockFetch(48|
00002590  29 3a 62 41 25 21 30 3d  30 3a 62 41 25 21 26 43  |):bA%!0=0:bA%!&C|
000025a0  3d 30 3a 62 41 25 21 31  36 3d 30 3a 62 41 25 21  |=0:bA%!16=0:bA%!|
000025b0  32 30 3d 30 3a 62 41 25  21 32 34 3d 30 3a 62 41  |20=0:bA%!24=0:bA|
000025c0  25 21 32 38 3d 30 3a 62  41 25 21 33 32 3d 30 3a  |%!28=0:bA%!32=0:|
000025d0  62 41 25 21 33 36 3d 30  3a 62 41 25 21 34 30 3d  |bA%!36=0:bA%!40=|
000025e0  30 3a 62 41 25 21 34 34  3d 30 3a 5f 55 25 21 30  |0:bA%!44=0:_U%!0|
000025f0  3d 30 3a 5f 55 25 21 34  3d 30 3a 5f 55 25 21 38  |=0:_U%!4=0:_U%!8|
00002600  3d 30 3a 5f 55 25 21 26  43 3d 62 41 25 3a 5f 55  |=0:_U%!&C=bA%:_U|
00002610  25 21 31 36 3d 31 3a 5f  55 25 21 32 30 3d 30 0d  |%!16=1:_U%!20=0.|
00002620  02 e4 fe 5f 55 25 21 32  34 3d 30 3a 5f 55 25 21  |..._U%!24=0:_U%!|
00002630  32 38 3d 30 3a 5f 55 25  21 33 32 3d 30 3a 5f 55  |28=0:_U%!32=0:_U|
00002640  25 21 33 36 3d 30 3a 5f  55 25 21 34 30 3d 30 3a  |%!36=0:_U%!40=0:|
00002650  5f 55 25 21 34 34 3d 2d  31 3a 5f 55 25 21 34 38  |_U%!44=-1:_U%!48|
00002660  3d 30 3a 5f 55 25 21 35  32 3d 30 3a 5f 55 25 21  |=0:_U%!52=0:_U%!|
00002670  35 36 3d 30 3a 5f 55 25  21 36 30 3d 30 3a 5f 55  |56=0:_U%!60=0:_U|
00002680  25 21 36 34 3d 30 3a 5f  55 25 21 36 38 3d 30 3a  |%!64=0:_U%!68=0:|
00002690  5f 55 25 21 37 32 3d 30  3a 5f 55 25 21 37 36 3d  |_U%!72=0:_U%!76=|
000026a0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000026b0  46 65 74 63 68 28 32 35  36 29 3a 5f 55 25 21 38  |Fetch(256):_U%!8|
000026c0  30 3d 30 3a 5f 55 25 21  38 34 3d 2d 31 3a 5f 55  |0=0:_U%!84=-1:_U|
000026d0  25 21 38 38 3d 30 3a 5f  55 25 21 39 32 3d 30 3a  |%!88=0:_U%!92=0:|
000026e0  5f 55 25 21 39 36 3d 30  3a 5f 55 25 21 26 36 34  |_U%!96=0:_U%!&64|
000026f0  3d 30 3a 5f 55 25 21 26  36 38 3d 30 3a 5f 55 25  |=0:_U%!&68=0:_U%|
00002700  21 26 36 43 3d 2d 31 3a  5f 55 25 21 26 37 30 3d  |!&6C=-1:_U%!&70=|
00002710  2d 31 3a 5f 55 25 21 26  37 34 3d 2d 31 0d 03 00  |-1:_U%!&74=-1...|
00002720  fa 5f 55 25 21 26 37 38  3d 2d 31 3a 5f 55 25 21  |._U%!&78=-1:_U%!|
00002730  26 37 43 3d 2d 31 3a 5f  55 25 21 26 38 30 3d 30  |&7C=-1:_U%!&80=0|
00002740  3a 5f 55 25 21 26 38 34  3d 30 3a 5f 55 25 21 26  |:_U%!&84=0:_U%!&|
00002750  38 38 3d 2d 31 3a 5f 55  25 21 26 38 43 3d 2d 31  |88=-1:_U%!&8C=-1|
00002760  3a 5f 55 25 21 26 39 30  3d 2d 31 3a 5f 55 25 21  |:_U%!&90=-1:_U%!|
00002770  26 39 34 3d 30 3a 5f 55  25 21 26 39 38 3d 30 3a  |&94=0:_U%!&98=0:|
00002780  5f 55 25 21 26 39 43 3d  30 3a 5f 55 25 21 26 41  |_U%!&9C=0:_U%!&A|
00002790  30 3d 30 3a 5f 55 25 21  26 41 34 3d 30 3a 5f 55  |0=0:_U%!&A4=0:_U|
000027a0  25 21 26 41 38 3d 30 3a  5f 55 25 21 26 41 43 3d  |%!&A8=0:_U%!&AC=|
000027b0  30 3a 5f 55 25 21 26 42  30 3d 30 3a 5f 55 25 21  |0:_U%!&B0=0:_U%!|
000027c0  26 42 34 3d 30 3a 5f 55  25 21 26 42 38 3d 30 3a  |&B4=0:_U%!&B8=0:|
000027d0  5f 55 25 21 26 42 43 3d  30 3a 5f 55 25 21 26 43  |_U%!&BC=0:_U%!&C|
000027e0  30 3d 30 3a 5f 55 25 21  26 43 34 3d 30 3a 5f 55  |0=0:_U%!&C4=0:_U|
000027f0  25 21 26 43 38 3d 30 3a  5f 55 25 21 26 43 43 3d  |%!&C8=0:_U%!&CC=|
00002800  30 3a 5f 55 25 21 26 44  30 3d 2d 31 3a 5f 55 25  |0:_U%!&D0=-1:_U%|
00002810  21 26 44 34 3d 2d 31 0d  03 19 f5 5f 55 25 21 26  |!&D4=-1...._U%!&|
00002820  44 38 3d 30 3a 5f 55 25  21 26 44 43 3d 30 3a 5f  |D8=0:_U%!&DC=0:_|
00002830  55 25 21 26 45 30 3d 30  3a 5f 55 25 21 26 45 34  |U%!&E0=0:_U%!&E4|
00002840  3d 30 3a 5f 55 25 21 26  45 38 3d a4 73 68 65 6c  |=0:_U%!&E8=.shel|
00002850  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
00002860  28 32 35 36 29 3a 5f 55  25 21 26 45 43 3d a4 73  |(256):_U%!&EC=.s|
00002870  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
00002880  74 63 68 28 32 35 36 29  3a 5f 55 25 21 26 46 30  |tch(256):_U%!&F0|
00002890  3d 2d 31 3a 5f 55 25 21  26 46 34 3d 30 3a 5f 55  |=-1:_U%!&F4=0:_U|
000028a0  25 21 26 46 38 3d 30 3a  5f 55 25 21 26 46 43 3d  |%!&F8=0:_U%!&FC=|
000028b0  30 3a 5f 55 25 21 32 35  36 3d 30 3a 5f 55 25 21  |0:_U%!256=0:_U%!|
000028c0  32 36 30 3d 31 3a 5f 55  25 21 32 36 34 3d 30 3a  |260=1:_U%!264=0:|
000028d0  5f 55 25 21 32 36 38 3d  30 3a 5f 55 25 21 32 37  |_U%!268=0:_U%!27|
000028e0  32 3d 30 3a 5f 55 25 21  32 37 36 3d 30 3a 5f 55  |2=0:_U%!276=0:_U|
000028f0  25 21 32 38 30 3d 30 3a  5f 55 25 21 32 38 34 3d  |%!280=0:_U%!284=|
00002900  30 3a 5f 55 25 21 32 38  38 3d 2d 31 0d 03 2e 98  |0:_U%!288=-1....|
00002910  5f 55 25 21 32 39 32 3d  2d 31 3a 5f 55 25 21 32  |_U%!292=-1:_U%!2|
00002920  39 36 3d 2d 31 3a 5f 55  25 21 33 30 30 3d 30 3a  |96=-1:_U%!300=0:|
00002930  5f 55 25 21 33 30 34 3d  30 3a 5f 55 25 21 33 30  |_U%!304=0:_U%!30|
00002940  38 3d 30 3a 5f 55 25 21  33 31 32 3d 30 3a 5f 55  |8=0:_U%!312=0:_U|
00002950  25 21 33 31 36 3d 30 3a  f2 73 68 65 6c 6c 5f 4d  |%!316=0:.shell_M|
00002960  65 6d 46 69 6c 6c 28 5f  55 25 21 26 45 38 2c 32  |emFill(_U%!&E8,2|
00002970  35 36 2c 30 29 3a f2 73  68 65 6c 6c 5f 4d 65 6d  |56,0):.shell_Mem|
00002980  46 69 6c 6c 28 5f 55 25  21 26 45 43 2c 32 35 36  |Fill(_U%!&EC,256|
00002990  2c 30 29 3a 5f 65 72 72  6f 72 5f 66 6c 61 67 25  |,0):_error_flag%|
000029a0  3d 33 3a e1 0d 03 3d 41  dd a4 73 68 65 6c 6c 5f  |=3:...=A..shell_|
000029b0  46 69 6c 65 54 79 70 65  28 5a 24 29 3a ea 77 25  |FileType(Z$):.w%|
000029c0  3a c8 99 38 2c 35 2c 5a  24 b8 2c 2c 77 25 3a 77  |:..8,5,Z$.,,w%:w|
000029d0  25 3d 28 77 25 80 26 46  46 46 30 30 29 3e 3e 3e  |%=(w%.&FFF00)>>>|
000029e0  38 3a 3d 77 25 0d 03 46  41 dd a4 73 68 65 6c 6c  |8:=w%..FA..shell|
000029f0  5f 46 69 6c 65 45 78 69  73 74 73 28 5a 24 29 3a  |_FileExists(Z$):|
00002a00  e7 a4 73 68 65 6c 6c 5f  43 61 74 49 6e 66 6f 52  |..shell_CatInfoR|
00002a10  65 61 64 28 5a 24 29 3d  22 4e 6f 74 20 46 6f 75  |ead(Z$)="Not Fou|
00002a20  6e 64 22 3a 3d a3 0d 03  48 06 3d b9 0d 03 4d 62  |nd":=...H.=...Mb|
00002a30  dd a4 73 68 65 6c 6c 5f  43 61 74 49 6e 66 6f 52  |..shell_CatInfoR|
00002a40  65 61 64 28 5a 24 29 3a  ea 77 25 2c 44 43 25 2c  |ead(Z$):.w%,DC%,|
00002a50  79 42 25 2c 65 41 25 2c  55 42 25 2c 42 24 3a c8  |yB%,eA%,UB%,B$:.|
00002a60  99 38 2c 35 2c 5a 24 b8  77 25 2c 2c 44 43 25 2c  |.8,5,Z$.w%,,DC%,|
00002a70  79 42 25 2c 65 41 25 2c  55 42 25 3a e7 77 25 3d  |yB%,eA%,UB%:.w%=|
00002a80  30 8c 3d 22 4e 6f 74 20  46 6f 75 6e 64 22 0d 03  |0.="Not Found"..|
00002a90  51 15 e7 55 42 25 3d 35  31 8c 42 24 2b 3d 22 57  |Q..UB%=51.B$+="W|
00002aa0  52 20 22 0d 03 52 16 e7  55 42 25 3d 26 42 42 8c  |R "..R..UB%=&BB.|
00002ab0  42 24 2b 3d 22 4c 57 52  22 0d 03 53 16 e7 55 42  |B$+="LWR"..S..UB|
00002ac0  25 3d 26 38 38 8c 42 24  2b 3d 22 44 4c 20 22 0d  |%=&88.B$+="DL ".|
00002ad0  03 54 8e 42 24 2b 3d 22  20 22 2b a4 73 68 65 6c  |.T.B$+=" "+.shel|
00002ae0  6c 5f 53 74 72 69 6e 67  50 61 64 4c 65 61 64 69  |l_StringPadLeadi|
00002af0  6e 67 28 c3 7e 44 43 25  2c 22 30 22 2c 38 29 3a  |ng(.~DC%,"0",8):|
00002b00  42 24 2b 3d 22 20 22 2b  a4 73 68 65 6c 6c 5f 53  |B$+=" "+.shell_S|
00002b10  74 72 69 6e 67 50 61 64  4c 65 61 64 69 6e 67 28  |tringPadLeading(|
00002b20  c3 7e 79 42 25 2c 22 30  22 2c 38 29 3a 42 24 2b  |.~yB%,"0",8):B$+|
00002b30  3d 22 20 22 2b a4 73 68  65 6c 6c 5f 53 74 72 69  |=" "+.shell_Stri|
00002b40  6e 67 50 61 64 4c 65 61  64 69 6e 67 28 c3 7e 65  |ngPadLeading(.~e|
00002b50  41 25 2c 22 30 22 2c 38  29 3a 3d 42 24 0d 03 5b  |A%,"0",8):=B$..[|
00002b60  29 dd a4 73 68 65 6c 6c  5f 47 65 74 41 70 70 44  |)..shell_GetAppD|
00002b70  69 72 3a ea 62 25 3a 62  25 3d 5f 55 25 21 26 42  |ir:.b%:b%=_U%!&B|
00002b80  43 3a 3d 24 62 25 0d 03  62 2d dd a4 73 68 65 6c  |C:=$b%..b-..shel|
00002b90  6c 5f 47 65 74 41 70 70  44 61 74 61 44 69 72 3a  |l_GetAppDataDir:|
00002ba0  ea 62 25 3a 62 25 3d 5f  55 25 21 26 43 30 3a 3d  |.b%:b%=_U%!&C0:=|
00002bb0  24 62 25 0d 03 69 2a dd  a4 73 68 65 6c 6c 5f 47  |$b%..i*..shell_G|
00002bc0  65 74 41 70 70 4e 61 6d  65 3a ea 62 25 3a 62 25  |etAppName:.b%:b%|
00002bd0  3d 5f 55 25 21 26 43 34  3a 3d 24 62 25 0d 03 71  |=_U%!&C4:=$b%..q|
00002be0  ff dd f2 73 68 65 6c 6c  5f 52 65 73 6f 75 72 63  |...shell_Resourc|
00002bf0  65 73 49 6e 69 74 3a ea  46 24 2c 47 24 2c 75 24  |esInit:.F$,G$,u$|
00002c00  2c 62 25 3a ea 6f 41 25  3a 6f 41 25 3d a4 73 68  |,b%:.oA%:oA%=.sh|
00002c10  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00002c20  63 68 28 32 35 36 29 3a  46 24 3d a4 73 68 65 6c  |ch(256):F$=.shel|
00002c30  6c 5f 4f 53 56 61 72 47  65 74 56 61 6c 28 6f 41  |l_OSVarGetVal(oA|
00002c40  25 2c 32 35 36 2c 22 4f  62 65 79 24 44 69 72 22  |%,256,"Obey$Dir"|
00002c50  2c 31 29 3a 47 24 3d c1  a4 73 68 65 6c 6c 5f 4c  |,1):G$=..shell_L|
00002c60  65 61 66 28 46 24 29 2c  32 29 3a 5f 55 25 21 26  |eaf(F$),2):_U%!&|
00002c70  42 43 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |BC=.shell_HeapBl|
00002c80  6f 63 6b 46 65 74 63 68  28 28 a9 46 24 29 2b 31  |ockFetch((.F$)+1|
00002c90  29 3a 5f 55 25 21 26 43  34 3d a4 73 68 65 6c 6c  |):_U%!&C4=.shell|
00002ca0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00002cb0  28 a9 47 24 29 2b 31 29  3a 62 25 3d 5f 55 25 21  |(.G$)+1):b%=_U%!|
00002cc0  26 42 43 3a 24 62 25 3d  46 24 3a 62 25 3d 5f 55  |&BC:$b%=F$:b%=_U|
00002cd0  25 21 26 43 34 3a 24 62  25 3d 47 24 0d 03 7b 2b  |%!&C4:$b%=G$..{+|
00002ce0  e7 a4 73 68 65 6c 6c 5f  4f 53 56 61 72 45 78 69  |..shell_OSVarExi|
00002cf0  73 74 73 28 6f 41 25 2c  47 24 2b 22 52 65 73 24  |sts(oA%,G$+"Res$|
00002d00  50 61 74 68 22 29 8c 0d  03 7c 18 5f 55 25 21 26  |Path")...|._U%!&|
00002d10  36 34 3d 5f 55 25 21 26  36 34 84 31 3c 3c 33 0d  |64=_U%!&64.1<<3.|
00002d20  03 7d 2d cd 3a e7 a4 73  68 65 6c 6c 5f 4f 53 56  |.}-.:..shell_OSV|
00002d30  61 72 45 78 69 73 74 73  28 6f 41 25 2c 47 24 2b  |arExists(oA%,G$+|
00002d40  22 44 61 74 61 24 44 69  72 22 29 8c 0d 03 7f 6b  |"Data$Dir")....k|
00002d50  75 24 3d a4 73 68 65 6c  6c 5f 4f 53 56 61 72 47  |u$=.shell_OSVarG|
00002d60  65 74 56 61 6c 28 6f 41  25 2c 32 35 36 2c 47 24  |etVal(oA%,256,G$|
00002d70  2b 22 44 61 74 61 24 44  69 72 22 2c 31 29 3a 5f  |+"Data$Dir",1):_|
00002d80  55 25 21 26 43 30 3d a4  73 68 65 6c 6c 5f 48 65  |U%!&C0=.shell_He|
00002d90  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 28 a9 75  |apBlockFetch((.u|
00002da0  24 29 2b 31 29 3a 62 25  3d 5f 55 25 21 26 43 30  |$)+1):b%=_U%!&C0|
00002db0  3a 24 62 25 3d 75 24 0d  03 82 3d cc 5f 55 25 21  |:$b%=u$...=._U%!|
00002dc0  26 43 30 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |&C0=.shell_HeapB|
00002dd0  6c 6f 63 6b 46 65 74 63  68 28 28 a9 46 24 29 2b  |lockFetch((.F$)+|
00002de0  31 29 3a 62 25 3d 5f 55  25 21 26 43 30 3a 24 62  |1):b%=_U%!&C0:$b|
00002df0  25 3d 46 24 0d 03 85 14  cd 3a e7 5f 55 25 21 26  |%=F$.....:._U%!&|
00002e00  36 34 80 31 3c 3c 33 8c  0d 03 89 2a e7 a4 73 68  |64.1<<3....*..sh|
00002e10  65 6c 6c 5f 46 69 6c 65  45 78 69 73 74 73 28 47  |ell_FileExists(G|
00002e20  24 2b 22 52 65 73 3a 4d  65 73 73 61 67 65 73 22  |$+"Res:Messages"|
00002e30  29 8c 0d 03 8a 38 f2 73  68 65 6c 6c 5f 4d 65 73  |)....8.shell_Mes|
00002e40  73 61 67 65 73 49 6e 69  74 28 47 24 2b 22 52 65  |sagesInit(G$+"Re|
00002e50  73 3a 4d 65 73 73 61 67  65 73 22 2c 5f 55 25 21  |s:Messages",_U%!|
00002e60  36 38 2c 5f 55 25 21 36  34 29 0d 03 8b 2d cd 3a  |68,_U%!64)...-.:|
00002e70  e7 a4 73 68 65 6c 6c 5f  46 69 6c 65 45 78 69 73  |..shell_FileExis|
00002e80  74 73 28 47 24 2b 22 52  65 73 3a 53 68 65 6c 6c  |ts(G$+"Res:Shell|
00002e90  4d 73 67 73 22 29 8c 0d  03 8d 3b f2 73 68 65 6c  |Msgs")....;.shel|
00002ea0  6c 5f 4d 65 73 73 61 67  65 73 49 6e 69 74 28 47  |l_MessagesInit(G|
00002eb0  24 2b 22 52 65 73 3a 53  68 65 6c 6c 4d 73 67 73  |$+"Res:ShellMsgs|
00002ec0  22 2c 5f 55 25 21 32 38  30 2c 5f 55 25 21 32 38  |",_U%!280,_U%!28|
00002ed0  34 29 0d 03 8e 41 cc f2  73 68 65 6c 6c 5f 4d 65  |4)...A..shell_Me|
00002ee0  73 73 61 67 65 73 49 6e  69 74 28 22 53 68 65 6c  |ssagesInit("Shel|
00002ef0  6c 53 79 73 52 65 73 3a  53 68 65 6c 6c 4d 73 67  |lSysRes:ShellMsg|
00002f00  73 22 2c 5f 55 25 21 32  38 30 2c 5f 55 25 21 32  |s",_U%!280,_U%!2|
00002f10  38 34 29 0d 03 90 2b cd  3a e7 a4 73 68 65 6c 6c  |84)...+.:..shell|
00002f20  5f 46 69 6c 65 45 78 69  73 74 73 28 47 24 2b 22  |_FileExists(G$+"|
00002f30  52 65 73 3a 53 70 72 69  74 65 73 22 29 8c 0d 03  |Res:Sprites")...|
00002f40  92 32 5f 55 25 21 31 36  3d a4 73 68 65 6c 6c 5f  |.2_U%!16=.shell_|
00002f50  53 70 72 69 74 65 41 72  65 61 4c 6f 61 64 28 47  |SpriteAreaLoad(G|
00002f60  24 2b 22 52 65 73 3a 53  70 72 69 74 65 73 22 29  |$+"Res:Sprites")|
00002f70  0d 03 93 0d cc 5f 55 25  21 31 36 3d 31 0d 03 95  |....._U%!16=1...|
00002f80  2d cd 3a e7 a4 73 68 65  6c 6c 5f 46 69 6c 65 45  |-.:..shell_FileE|
00002f90  78 69 73 74 73 28 47 24  2b 22 52 65 73 3a 54 65  |xists(G$+"Res:Te|
00002fa0  6d 70 6c 61 74 65 73 22  29 8c 0d 03 98 2c f2 73  |mplates")....,.s|
00002fb0  68 65 6c 6c 5f 54 65 6d  70 6c 61 74 65 73 49 6e  |hell_TemplatesIn|
00002fc0  69 74 28 47 24 2b 22 52  65 73 3a 54 65 6d 70 6c  |it(G$+"Res:Templ|
00002fd0  61 74 65 73 22 29 0d 03  99 05 cd 0d 03 9a 28 cc  |ates")........(.|
00002fe0  e7 a4 73 68 65 6c 6c 5f  46 69 6c 65 45 78 69 73  |..shell_FileExis|
00002ff0  74 73 28 46 24 2b 22 2e  4d 65 73 73 61 67 65 73  |ts(F$+".Messages|
00003000  22 29 8c 0d 03 9d 35 f2  73 68 65 6c 6c 5f 4d 65  |")....5.shell_Me|
00003010  73 73 61 67 65 73 49 6e  69 74 28 46 24 2b 22 2e  |ssagesInit(F$+".|
00003020  4d 65 73 73 61 67 65 73  22 2c 5f 55 25 21 36 38  |Messages",_U%!68|
00003030  2c 5f 55 25 21 36 34 29  0d 03 9e 2a cd 3a e7 a4  |,_U%!64)...*.:..|
00003040  73 68 65 6c 6c 5f 46 69  6c 65 45 78 69 73 74 73  |shell_FileExists|
00003050  28 46 24 2b 22 2e 53 68  65 6c 6c 4d 73 67 73 22  |(F$+".ShellMsgs"|
00003060  29 8c 0d 03 a0 38 f2 73  68 65 6c 6c 5f 4d 65 73  |)....8.shell_Mes|
00003070  73 61 67 65 73 49 6e 69  74 28 46 24 2b 22 2e 53  |sagesInit(F$+".S|
00003080  68 65 6c 6c 4d 73 67 73  22 2c 5f 55 25 21 32 38  |hellMsgs",_U%!28|
00003090  30 2c 5f 55 25 21 32 38  34 29 0d 03 a1 41 cc f2  |0,_U%!284)...A..|
000030a0  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 73 49 6e  |shell_MessagesIn|
000030b0  69 74 28 22 53 68 65 6c  6c 53 79 73 52 65 73 3a  |it("ShellSysRes:|
000030c0  53 68 65 6c 6c 4d 73 67  73 22 2c 5f 55 25 21 32  |ShellMsgs",_U%!2|
000030d0  38 30 2c 5f 55 25 21 32  38 34 29 0d 03 a3 28 cd  |80,_U%!284)...(.|
000030e0  3a e7 a4 73 68 65 6c 6c  5f 46 69 6c 65 45 78 69  |:..shell_FileExi|
000030f0  73 74 73 28 46 24 2b 22  2e 53 70 72 69 74 65 73  |sts(F$+".Sprites|
00003100  22 29 8c 0d 03 a6 2f 5f  55 25 21 31 36 3d a4 73  |")..../_U%!16=.s|
00003110  68 65 6c 6c 5f 53 70 72  69 74 65 41 72 65 61 4c  |hell_SpriteAreaL|
00003120  6f 61 64 28 46 24 2b 22  2e 53 70 72 69 74 65 73  |oad(F$+".Sprites|
00003130  22 29 0d 03 a7 0d cc 5f  55 25 21 31 36 3d 31 0d  |")....._U%!16=1.|
00003140  03 a9 2a cd 3a e7 a4 73  68 65 6c 6c 5f 46 69 6c  |..*.:..shell_Fil|
00003150  65 45 78 69 73 74 73 28  46 24 2b 22 2e 54 65 6d  |eExists(F$+".Tem|
00003160  70 6c 61 74 65 73 22 29  8c 0d 03 ac 29 f2 73 68  |plates")....).sh|
00003170  65 6c 6c 5f 54 65 6d 70  6c 61 74 65 73 49 6e 69  |ell_TemplatesIni|
00003180  74 28 46 24 2b 22 2e 54  65 6d 70 6c 61 74 65 73  |t(F$+".Templates|
00003190  22 29 0d 03 ad 05 cd 0d  03 ae 68 cd 3a c8 99 26  |")........h.:..&|
000031a0  34 35 42 43 30 3a f2 73  68 65 6c 6c 5f 48 65 61  |45BC0:.shell_Hea|
000031b0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 51 25  |pBlockReturn(_Q%|
000031c0  29 3a 5f 51 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |):_Q%=.shell_Hea|
000031d0  70 42 6c 6f 63 6b 46 65  74 63 68 28 26 34 30 30  |pBlockFetch(&400|
000031e0  29 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |):.shell_HeapBlo|
000031f0  63 6b 52 65 74 75 72 6e  28 6f 41 25 29 3a e1 0d  |ckReturn(oA%):..|
00003200  03 b8 e0 dd a4 73 68 65  6c 6c 5f 53 70 72 69 74  |.....shell_Sprit|
00003210  65 41 72 65 61 4c 6f 61  64 28 4c 24 29 3a ea 5f  |eAreaLoad(L$):._|
00003220  41 25 2c 53 25 2c 54 25  3a 53 25 3d 8e 28 4c 24  |A%,S%,T%:S%=.(L$|
00003230  29 3a 54 25 3d a2 23 53  25 2b 31 36 3a d9 23 53  |):T%=.#S%+16:.#S|
00003240  25 3a 5f 41 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |%:_A%=.shell_Hea|
00003250  70 42 6c 6f 63 6b 46 65  74 63 68 28 54 25 29 3a  |pBlockFetch(T%):|
00003260  21 5f 41 25 3d 54 25 3a  5f 41 25 21 34 3d 30 3a  |!_A%=T%:_A%!4=0:|
00003270  5f 41 25 21 38 3d 31 36  3a 5f 41 25 21 26 43 3d  |_A%!8=16:_A%!&C=|
00003280  31 36 3a c8 99 34 36 2c  35 32 31 2c 5f 41 25 3a  |16:..46,521,_A%:|
00003290  c8 99 34 36 2c 35 32 32  2c 5f 41 25 2c 4c 24 3a  |..46,522,_A%,L$:|
000032a0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
000032b0  53 70 72 69 74 65 4c 6f  61 64 3a 53 70 72 69 74  |SpriteLoad:Sprit|
000032c0  65 20 66 69 6c 65 20 6c  6f 61 64 65 64 20 61 74  |e file loaded at|
000032d0  20 26 22 2b c3 7e 5f 41  25 29 3a 3d 5f 41 25 0d  | &"+.~_A%):=_A%.|
000032e0  03 c8 23 dd a4 73 68 65  6c 6c 5f 55 73 65 72 53  |..#..shell_UserS|
000032f0  70 72 69 74 65 73 42 61  73 65 3a 3d 5f 55 25 21  |pritesBase:=_U%!|
00003300  31 36 0d 03 ce 84 dd a4  73 68 65 6c 6c 5f 53 70  |16......shell_Sp|
00003310  72 69 74 65 47 65 74 50  74 72 28 61 42 25 2c 57  |riteGetPtr(aB%,W|
00003320  24 29 3a ea 74 41 25 2c  66 25 3a 74 41 25 3d a4  |$):.tA%,f%:tA%=.|
00003330  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00003340  65 74 63 68 28 32 31 29  3a 24 74 41 25 3d 57 24  |etch(21):$tA%=W$|
00003350  3a c8 99 34 36 2c 32 38  30 2c 61 42 25 2c 74 41  |:..46,280,aB%,tA|
00003360  25 b8 2c 2c 66 25 3a f2  73 68 65 6c 6c 5f 48 65  |%.,,f%:.shell_He|
00003370  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 74 41  |apBlockReturn(tA|
00003380  25 29 3a 3d 66 25 0d 03  d9 fb dd f2 73 68 65 6c  |%):=f%......shel|
00003390  6c 5f 54 65 6d 70 6c 61  74 65 73 49 6e 69 74 28  |l_TemplatesInit(|
000033a0  4c 24 29 3a ea 6c 42 25  2c 67 43 25 2c 67 44 25  |L$):.lB%,gC%,gD%|
000033b0  3a ea 41 43 25 2c 43 41  25 2c 65 42 25 2c 57 24  |:.AC%,CA%,eB%,W$|
000033c0  2c 54 42 25 3a de 65 42  25 32 30 3a c8 95 28 65  |,TB%:.eB%20:..(e|
000033d0  42 25 83 34 29 3a 65 42  25 2b 3d 31 3a ce 3a 43  |B%.4):eB%+=1:.:C|
000033e0  41 25 3d 30 3a 54 42 25  3d 30 3a 41 43 25 3d a4  |A%=0:TB%=0:AC%=.|
000033f0  73 68 65 6c 6c 5f 46 69  6c 65 4c 65 6e 67 74 68  |shell_FileLength|
00003400  28 4c 24 29 3a 4b 44 25  3d a4 73 68 65 6c 6c 5f  |(L$):KD%=.shell_|
00003410  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 41  |HeapBlockFetch(A|
00003420  43 25 29 3a 6c 42 25 3d  4b 44 25 3a 5f 55 25 21  |C%):lB%=KD%:_U%!|
00003430  34 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |4=.shell_HeapBlo|
00003440  63 6b 46 65 74 63 68 28  32 30 2a 36 34 29 3a 43  |ckFetch(20*64):C|
00003450  44 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |D%=.shell_HeapBl|
00003460  6f 63 6b 46 65 74 63 68  28 41 43 25 29 3a 67 43  |ockFetch(AC%):gC|
00003470  25 3d 43 44 25 3a 67 44  25 3d 43 44 25 2b 41 43  |%=CD%:gD%=CD%+AC|
00003480  25 0d 03 ec 59 c8 99 26  34 30 30 44 39 2c 2c 4c  |%...Y..&400D9,,L|
00003490  24 3a f5 3a 24 65 42 25  3d 22 2a 22 3a c8 99 26  |$:.:$eB%="*":..&|
000034a0  34 30 30 44 42 2c 2c 6c  42 25 2c 67 43 25 2c 67  |400DB,,lB%,gC%,g|
000034b0  44 25 2c 5f 55 25 21 26  45 38 2c 65 42 25 2c 43  |D%,_U%!&E8,eB%,C|
000034c0  41 25 b8 2c 2c 67 43 25  2c 2c 2c 57 24 2c 43 41  |A%.,,gC%,,,W$,CA|
000034d0  25 3a e7 43 41 25 3c 3e  30 8c 0d 03 f1 8a 21 28  |%:.CA%<>0.....!(|
000034e0  28 5f 55 25 21 34 29 2b  28 31 36 2a 54 42 25 29  |(_U%!4)+(16*TB%)|
000034f0  29 3d 6c 42 25 3a 24 28  28 28 5f 55 25 21 34 29  |)=lB%:$(((_U%!4)|
00003500  2b 28 31 36 2a 54 42 25  29 29 2b 34 29 3d 57 24  |+(16*TB%))+4)=W$|
00003510  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00003520  22 54 65 6d 70 6c 61 74  65 73 49 6e 69 74 3a 20  |"TemplatesInit: |
00003530  20 54 65 6d 70 6c 61 74  65 20 4c 6f 61 64 65 64  | Template Loaded|
00003540  3a 20 22 2b 57 24 29 3a  6c 42 25 2b 3d 28 38 38  |: "+W$):lB%+=(88|
00003550  2b 28 6c 42 25 21 38 34  29 2a 33 32 29 3a 54 42  |+(lB%!84)*32):TB|
00003560  25 2b 3d 31 0d 03 f8 83  cd 3a fd 43 41 25 3d 30  |%+=1.....:.CA%=0|
00003570  3a c8 99 26 34 30 30 44  41 3a 5f 55 25 21 30 3d  |:..&400DA:_U%!0=|
00003580  54 42 25 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |TB%:.shell_Trace|
00003590  66 30 28 22 54 65 6d 70  6c 61 74 65 73 49 6e 69  |f0("TemplatesIni|
000035a0  74 3a 54 65 6d 70 6c 61  74 65 73 20 72 65 73 6f  |t:Templates reso|
000035b0  75 72 63 65 20 66 69 6c  65 20 6c 6f 61 64 65 64  |urce file loaded|
000035c0  20 61 74 20 26 22 2b c3  7e 4b 44 25 2b 22 20 28  | at &"+.~KD%+" (|
000035d0  22 2b c3 54 42 25 2b 22  20 74 65 6d 70 6c 61 74  |"+.TB%+" templat|
000035e0  65 73 29 22 29 3a e1 0d  04 04 57 dd a4 73 68 65  |es)"):....W..she|
000035f0  6c 6c 5f 57 69 6e 64 6f  77 4c 6f 61 64 65 64 28  |ll_WindowLoaded(|
00003600  4b 24 29 3a ea 6d 25 2c  6a 25 3a e7 a9 28 4b 24  |K$):.m%,j%:..(K$|
00003610  29 3e 26 43 8c 85 39 39  2c a4 73 68 65 6c 6c 5f  |)>&C..99,.shell_|
00003620  4d 65 73 73 61 67 65 4f  6e 65 41 72 67 28 22 53  |MessageOneArg("S|
00003630  48 45 4c 4c 4d 53 47 30  32 22 2c 4b 24 29 0d 04  |HELLMSG02",K$)..|
00003640  07 34 6a 25 3d a3 3a e3  6d 25 3d 30 b8 28 5f 55  |.4j%=.:.m%=0.(_U|
00003650  25 21 30 29 2d 31 3a e7  24 28 28 28 5f 55 25 21  |%!0)-1:.$(((_U%!|
00003660  34 29 2b 28 31 36 2a 6d  25 29 29 2b 34 29 3d 4b  |4)+(16*m%))+4)=K|
00003670  24 8c 0d 04 0a 15 6a 25  3d b9 3a 6d 25 3d 28 5f  |$.....j%=.:m%=(_|
00003680  55 25 21 30 29 2d 31 0d  04 0b 0d cd 3a ed 6d 25  |U%!0)-1.....:.m%|
00003690  3a 3d 6a 25 0d 04 11 50  dd a4 73 68 65 6c 6c 5f  |:=j%...P..shell_|
000036a0  47 65 74 57 42 28 4b 24  29 3a ea 6d 25 2c 6a 25  |GetWB(K$):.m%,j%|
000036b0  3a e7 a9 28 4b 24 29 3e  26 43 8c 85 39 39 2c a4  |:..(K$)>&C..99,.|
000036c0  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4f 6e 65  |shell_MessageOne|
000036d0  41 72 67 28 22 53 48 45  4c 4c 4d 53 47 30 32 22  |Arg("SHELLMSG02"|
000036e0  2c 4b 24 29 0d 04 14 35  6a 25 3d 2d 31 3a e3 6d  |,K$)...5j%=-1:.m|
000036f0  25 3d 30 b8 28 5f 55 25  21 30 29 2d 31 3a e7 24  |%=0.(_U%!0)-1:.$|
00003700  28 28 28 5f 55 25 21 34  29 2b 28 31 36 2a 6d 25  |(((_U%!4)+(16*m%|
00003710  29 29 2b 34 29 3d 4b 24  8c 0d 04 17 16 6a 25 3d  |))+4)=K$.....j%=|
00003720  6d 25 3a 6d 25 3d 28 5f  55 25 21 30 29 2d 31 0d  |m%:m%=(_U%!0)-1.|
00003730  04 18 11 cd 3a ed 6d 25  3a e7 6a 25 3e 2d 31 8c  |....:.m%:.j%>-1.|
00003740  0d 04 1b 17 3d 21 28 28  5f 55 25 21 34 29 2b 28  |....=!((_U%!4)+(|
00003750  31 36 2a 6a 25 29 29 0d  04 1c 2e cc 85 39 39 2c  |16*j%))......99,|
00003760  a4 73 68 65 6c 6c 5f 4d  65 73 73 61 67 65 4f 6e  |.shell_MessageOn|
00003770  65 41 72 67 28 22 53 48  45 4c 4c 4d 53 47 30 33  |eArg("SHELLMSG03|
00003780  22 2c 4b 24 29 0d 04 1e  08 cd 3a 3d a3 0d 04 24  |",K$).....:=...$|
00003790  7b dd a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |{..shell_Message|
000037a0  45 78 70 61 6e 64 28 61  24 29 3a ea 48 24 2c 64  |Expand(a$):.H$,d|
000037b0  24 2c 63 41 25 3a 48 24  3d 22 22 3a c8 95 a7 61  |$,cA%:H$="":...a|
000037c0  24 2c 22 5c 22 29 3e 30  3a 63 41 25 3d a7 61 24  |$,"\")>0:cA%=.a$|
000037d0  2c 22 5c 22 29 3a 48 24  2b 3d c0 61 24 2c 63 41  |,"\"):H$+=.a$,cA|
000037e0  25 2d 31 29 3a 64 24 3d  c1 61 24 2c 63 41 25 2b  |%-1):d$=.a$,cA%+|
000037f0  31 2c 31 29 3a 61 24 3d  c1 61 24 2c 63 41 25 2b  |1,1):a$=.a$,cA%+|
00003800  32 29 3a c8 8e 64 24 ca  0d 04 2d 1e c9 22 41 22  |2):..d$...-.."A"|
00003810  3a 48 24 2b 3d 22 43 6c  69 63 6b 20 41 44 4a 55  |:H$+="Click ADJU|
00003820  53 54 20 74 6f 22 0d 04  2e 15 c9 22 61 22 3a 48  |ST to"....."a":H|
00003830  24 2b 3d 22 41 44 4a 55  53 54 22 0d 04 2f 22 c9  |$+="ADJUST"../".|
00003840  22 44 22 3a 48 24 2b 3d  22 44 72 61 67 20 77 69  |"D":H$+="Drag wi|
00003850  74 68 20 53 45 4c 45 43  54 20 74 6f 22 0d 04 30  |th SELECT to"..0|
00003860  22 c9 22 64 22 3a 48 24  2b 3d 22 44 72 61 67 20  |"."d":H$+="Drag |
00003870  77 69 74 68 20 41 44 4a  55 53 54 20 74 6f 22 0d  |with ADJUST to".|
00003880  04 31 30 c9 22 47 22 3a  48 24 2b 3d 22 54 68 69  |.10."G":H$+="Thi|
00003890  73 20 6f 70 74 69 6f 6e  20 69 73 20 67 72 65 79  |s option is grey|
000038a0  65 64 20 6f 75 74 20 62  65 63 61 75 73 65 22 0d  |ed out because".|
000038b0  04 32 25 c9 22 52 22 3a  48 24 2b 3d 22 4d 6f 76  |.2%."R":H$+="Mov|
000038c0  65 20 74 68 65 20 70 6f  69 6e 74 65 72 20 72 69  |e the pointer ri|
000038d0  67 68 74 22 0d 04 33 1e  c9 22 53 22 3a 48 24 2b  |ght"..3.."S":H$+|
000038e0  3d 22 43 6c 69 63 6b 20  53 45 4c 45 43 54 20 74  |="Click SELECT t|
000038f0  6f 22 0d 04 34 15 c9 22  73 22 3a 48 24 2b 3d 22  |o"..4.."s":H$+="|
00003900  53 45 4c 45 43 54 22 0d  04 35 1a c9 22 54 22 3a  |SELECT"..5.."T":|
00003910  48 24 2b 3d 22 54 68 69  73 20 69 73 20 74 68 65  |H$+="This is the|
00003920  22 0d 04 36 1d c9 22 57  22 3a 48 24 2b 3d 22 54  |"..6.."W":H$+="T|
00003930  68 69 73 20 77 69 6e 64  6f 77 20 69 73 22 0d 04  |his window is"..|
00003940  37 15 c9 22 77 22 3a 48  24 2b 3d 22 77 69 6e 64  |7.."w":H$+="wind|
00003950  6f 77 22 0d 04 38 0f 7f  48 24 2b 3d 22 5c 22 2b  |ow"..8..H$+="\"+|
00003960  64 24 0d 04 3a 0e cb 3a  ce 3a 3d 48 24 2b 61 24  |d$..:..:.:=H$+a$|
00003970  0d 04 46 59 dd f2 73 68  65 6c 6c 5f 4f 70 65 6e  |..FY..shell_Open|
00003980  4d 65 6e 75 28 4a 41 25  2c 4b 41 25 2c 63 42 25  |Menu(JA%,KA%,cB%|
00003990  29 3a ea 41 24 3a 41 24  3d a4 73 68 65 6c 6c 5f  |):.A$:A$=.shell_|
000039a0  47 65 74 45 76 65 6e 74  48 61 6e 64 6c 65 72 28  |GetEventHandler(|
000039b0  5f 55 25 21 32 38 2c 5f  55 25 21 33 32 2c 31 29  |_U%!28,_U%!32,1)|
000039c0  3a e7 41 24 3c 3e 22 22  8c 0d 04 4b 71 f2 73 68  |:.A$<>""...Kq.sh|
000039d0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 4f 70 65  |ell_Tracef0("Ope|
000039e0  6e 4d 65 6e 75 3a 41 62  6f 75 74 20 74 6f 20 63  |nMenu:About to c|
000039f0  61 6c 6c 20 22 2b 22 46  4e 22 2b 41 24 2b 22 28  |all "+"FN"+A$+"(|
00003a00  22 2b c3 5f 55 25 21 32  38 2b 22 2c 22 2b c3 5f  |"+._U%!28+","+._|
00003a10  55 25 21 33 32 2b 22 29  22 29 3a 70 25 3d a0 28  |U%!32+")"):p%=.(|
00003a20  22 46 4e 22 2b 41 24 2b  22 28 5f 55 25 21 32 38  |"FN"+A$+"(_U%!28|
00003a30  2c 5f 55 25 21 33 32 29  22 29 0d 04 4e 40 cc f2  |,_U%!32)")..N@..|
00003a40  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 4f  |shell_Tracef0("O|
00003a50  70 65 6e 4d 65 6e 75 3a  6e 6f 20 6d 65 6e 75 6d  |penMenu:no menum|
00003a60  61 6b 65 72 20 66 75 6e  63 74 69 6f 6e 20 72 65  |aker function re|
00003a70  67 69 73 74 65 72 65 64  22 29 0d 04 50 13 cd 3a  |gistered")..P..:|
00003a80  e7 63 42 25 3c 3e 5f 55  25 21 32 34 8c 0d 04 54  |.cB%<>_U%!24...T|
00003a90  25 e7 a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%..shell_HeapBlo|
00003aa0  63 6b 45 78 69 73 74 73  28 5f 55 25 21 32 35 36  |ckExists(_U%!256|
00003ab0  29 8c 0d 04 55 2d f2 73  68 65 6c 6c 5f 48 65 61  |)...U-.shell_Hea|
00003ac0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
00003ad0  21 32 35 36 29 3a 5f 55  25 21 32 35 36 3d 30 0d  |!256):_U%!256=0.|
00003ae0  04 56 27 cd 3a e7 a4 73  68 65 6c 6c 5f 48 65 61  |.V'.:..shell_Hea|
00003af0  70 42 6c 6f 63 6b 45 78  69 73 74 73 28 5f 55 25  |pBlockExists(_U%|
00003b00  21 26 46 34 29 8c 0d 04  59 2d f2 73 68 65 6c 6c  |!&F4)...Y-.shell|
00003b10  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
00003b20  28 5f 55 25 21 26 46 34  29 3a 5f 55 25 21 26 46  |(_U%!&F4):_U%!&F|
00003b30  34 3d 30 0d 04 5a 05 cd  0d 04 5b 13 cd 3a e7 63  |4=0..Z....[..:.c|
00003b40  42 25 3d 5f 55 25 21 26  46 43 8c 0d 04 5d 23 c8  |B%=_U%!&FC...]#.|
00003b50  99 26 34 30 30 44 34 2c  2c 63 42 25 2c 4a 41 25  |.&400D4,,cB%,JA%|
00003b60  2c 4b 41 25 3a 5f 55 25  21 32 36 34 3d 31 0d 04  |,KA%:_U%!264=1..|
00003b70  5f 1f cc c8 99 26 34 35  42 43 35 2c 63 42 25 2c  |_....&45BC5,cB%,|
00003b80  5f 51 25 3a 5f 55 25 21  32 36 34 3d 30 0d 04 62  |_Q%:_U%!264=0..b|
00003b90  44 cd 3a 5f 55 25 21 32  34 3d 63 42 25 3a 5f 55  |D.:_U%!24=cB%:_U|
00003ba0  25 21 33 36 3d 4a 41 25  3a 5f 55 25 21 34 30 3d  |%!36=JA%:_U%!40=|
00003bb0  4b 41 25 3a 5f 55 25 21  35 32 3d 5f 55 25 21 32  |KA%:_U%!52=_U%!2|
00003bc0  38 3a 5f 55 25 21 35 36  3d 5f 55 25 21 33 32 3a  |8:_U%!56=_U%!32:|
00003bd0  e1 0d 04 6d 20 dd a4 73  68 65 6c 6c 5f 4d 65 6e  |...m ..shell_Men|
00003be0  75 4c 61 73 74 58 50 6f  73 3a 3d 5f 55 25 21 33  |uLastXPos:=_U%!3|
00003bf0  36 0d 04 73 20 dd a4 73  68 65 6c 6c 5f 4d 65 6e  |6..s ..shell_Men|
00003c00  75 4c 61 73 74 59 50 6f  73 3a 3d 5f 55 25 21 34  |uLastYPos:=_U%!4|
00003c10  30 0d 04 79 92 dd f2 73  68 65 6c 6c 5f 4d 65 6e  |0..y...shell_Men|
00003c20  75 41 74 74 61 63 68 44  62 6f 78 28 6c 24 29 3a  |uAttachDbox(l$):|
00003c30  c8 99 22 4d 65 6e 75 5f  53 65 74 53 75 62 48 61  |.."Menu_SetSubHa|
00003c40  6e 64 6c 65 22 2c 5f 55  25 21 38 2c a4 73 68 65  |ndle",_U%!8,.she|
00003c50  6c 6c 5f 4d 65 6e 75 53  74 72 69 6e 67 28 6c 24  |ll_MenuString(l$|
00003c60  29 2c 31 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  |),1:.shell_Trace|
00003c70  66 30 28 22 4d 65 6e 75  41 74 74 61 63 68 44 62  |f0("MenuAttachDb|
00003c80  6f 78 3a 44 69 61 6c 6f  67 20 62 6f 78 20 28 22  |ox:Dialog box ("|
00003c90  2b 6c 24 2b 22 29 20 61  74 74 61 63 68 65 64 22  |+l$+") attached"|
00003ca0  29 3a e1 0d 04 83 86 dd  a4 73 68 65 6c 6c 5f 4d  |):.......shell_M|
00003cb0  65 73 73 61 67 65 57 69  6e 64 6f 77 28 4a 24 2c  |essageWindow(J$,|
00003cc0  4e 45 25 2c 52 41 24 2c  67 24 29 3a ea 53 43 25  |NE%,RA$,g$):.SC%|
00003cd0  2c 61 41 25 3a 61 41 25  3d a4 73 68 65 6c 6c 5f  |,aA%:aA%=.shell_|
00003ce0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 32  |HeapBlockFetch(2|
00003cf0  36 30 29 3a 21 61 41 25  3d 30 3a 24 28 61 41 25  |60):!aA%=0:$(aA%|
00003d00  2b 34 29 3d 4a 24 2b bd  28 30 29 3a e7 67 24 3d  |+4)=J$+.(0):.g$=|
00003d10  22 22 8c 67 24 3d 22 4d  65 73 73 61 67 65 20 66  |"".g$="Message f|
00003d20  72 6f 6d 20 22 2b 52 41  24 0d 04 88 09 e7 4e 45  |rom "+RA$.....NE|
00003d30  25 8c 0d 04 89 1b c8 99  26 34 30 30 44 46 2c 61  |%.......&400DF,a|
00003d40  41 25 2c 31 39 2c 67 24  b8 2c 53 43 25 0d 04 8a  |A%,19,g$.,SC%...|
00003d50  1c cc c8 99 26 34 30 30  44 46 2c 61 41 25 2c 31  |....&400DF,aA%,1|
00003d60  37 2c 67 24 b8 2c 53 43  25 0d 04 8c 26 cd 3a f2  |7,g$.,SC%...&.:.|
00003d70  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00003d80  65 74 75 72 6e 28 61 41  25 29 3a 3d 53 43 25 0d  |eturn(aA%):=SC%.|
00003d90  04 93 5b dd f2 73 68 65  6c 6c 5f 43 72 65 61 74  |..[..shell_Creat|
00003da0  65 57 69 6e 64 6f 77 28  74 24 2c f8 6b 25 29 3a  |eWindow(t$,.k%):|
00003db0  ea 4c 42 25 3a 4c 42 25  3d a4 73 68 65 6c 6c 5f  |.LB%:LB%=.shell_|
00003dc0  47 65 74 57 42 28 74 24  29 3a 4c 42 25 21 36 34  |GetWB(t$):LB%!64|
00003dd0  3d 5f 55 25 21 31 36 3a  c8 99 26 34 30 30 43 31  |=_U%!16:..&400C1|
00003de0  2c 2c 4c 42 25 b8 6b 25  3a e1 0d 04 9d ff dd a4  |,,LB%.k%:.......|
00003df0  73 68 65 6c 6c 5f 43 72  65 61 74 65 57 69 6e 64  |shell_CreateWind|
00003e00  6f 77 32 28 4e 2c 6c 25  2c 75 44 25 2c 6d 44 25  |ow2(N,l%,uD%,mD%|
00003e10  2c 42 45 25 2c 53 41 25  2c 5a 43 25 2c 54 41 25  |,BE%,SA%,ZC%,TA%|
00003e20  2c 72 41 25 2c 70 41 25  29 3a ea 51 25 3a 51 25  |,rA%,pA%):.Q%:Q%|
00003e30  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00003e40  6b 46 65 74 63 68 28 26  42 42 38 29 3a 51 25 21  |kFetch(&BB8):Q%!|
00003e50  30 3d 5a 43 25 3a 51 25  21 34 3d 54 41 25 3a 51  |0=ZC%:Q%!4=TA%:Q|
00003e60  25 21 38 3d 72 41 25 3a  51 25 21 26 43 3d 70 41  |%!8=rA%:Q%!&C=pA|
00003e70  25 3a 51 25 21 31 36 3d  30 3a 51 25 21 32 30 3d  |%:Q%!16=0:Q%!20=|
00003e80  30 3a 51 25 21 32 34 3d  2d 31 3a 51 25 21 32 38  |0:Q%!24=-1:Q%!28|
00003e90  3d 6c 25 3a 51 25 3f 33  32 3d 37 3a 51 25 3f 33  |=l%:Q%?32=7:Q%?3|
00003ea0  33 3d 32 3a 51 25 3f 33  34 3d 75 44 25 3a 51 25  |3=2:Q%?34=uD%:Q%|
00003eb0  3f 33 35 3d 6d 44 25 3a  51 25 3f 33 36 3d 33 3a  |?35=mD%:Q%?36=3:|
00003ec0  51 25 3f 33 37 3d 31 3a  51 25 3f 33 38 3d 32 3a  |Q%?37=1:Q%?38=2:|
00003ed0  51 25 3f 33 39 3d 30 3a  51 25 21 34 30 3d 30 3a  |Q%?39=0:Q%!40=0:|
00003ee0  51 25 21 34 34 3d 53 41  25 0d 04 a5 85 51 25 21  |Q%!44=SA%....Q%!|
00003ef0  34 38 3d 42 45 25 3a 51  25 21 35 32 3d 30 3a 51  |48=BE%:Q%!52=0:Q|
00003f00  25 21 35 36 3d 33 31 37  3a 51 25 21 36 30 3d 26  |%!56=317:Q%!60=&|
00003f10  33 30 30 30 3a 51 25 21  36 38 3d 31 3a 51 25 21  |3000:Q%!68=1:Q%!|
00003f20  37 32 3d 4e 3a 51 25 21  37 36 3d 2d 31 3a 51 25  |72=N:Q%!76=-1:Q%|
00003f30  21 38 30 3d a9 24 4e 3a  51 25 21 38 34 3d 30 3a  |!80=.$N:Q%!84=0:|
00003f40  c8 99 26 34 30 30 43 31  2c 2c 51 25 b8 6b 25 3a  |..&400C1,,Q%.k%:|
00003f50  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00003f60  52 65 74 75 72 6e 28 51  25 29 3a 3d 6b 25 0d 04  |Return(Q%):=k%..|
00003f70  ad 44 dd a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |.D..shell_Window|
00003f80  48 61 73 54 69 74 6c 65  42 61 72 28 63 25 29 3a  |HasTitleBar(c%):|
00003f90  3d 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |=(.shell_WindowG|
00003fa0  65 74 46 6c 61 67 73 28  63 25 29 80 31 3c 3c 32  |etFlags(c%).1<<2|
00003fb0  36 29 0d 04 b2 42 dd a4  73 68 65 6c 6c 5f 57 69  |6)...B..shell_Wi|
00003fc0  6e 64 6f 77 49 73 4d 6f  76 65 61 62 6c 65 28 63  |ndowIsMoveable(c|
00003fd0  25 29 3a 3d 28 a4 73 68  65 6c 6c 5f 57 69 6e 64  |%):=(.shell_Wind|
00003fe0  6f 77 47 65 74 46 6c 61  67 73 28 63 25 29 80 31  |owGetFlags(c%).1|
00003ff0  3c 3c 31 29 0d 04 b7 3f  dd a4 73 68 65 6c 6c 5f  |<<1)...?..shell_|
00004000  57 69 6e 64 6f 77 49 73  41 50 61 6e 65 28 63 25  |WindowIsAPane(c%|
00004010  29 3a 3d 28 a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |):=(.shell_Windo|
00004020  77 47 65 74 46 6c 61 67  73 28 63 25 29 80 31 3c  |wGetFlags(c%).1<|
00004030  3c 35 29 0d 04 bc 44 dd  a4 73 68 65 6c 6c 5f 57  |<5)...D..shell_W|
00004040  69 6e 64 6f 77 49 73 4e  6f 74 42 6f 75 6e 64 65  |indowIsNotBounde|
00004050  64 28 63 25 29 3a 3d 28  a4 73 68 65 6c 6c 5f 57  |d(c%):=(.shell_W|
00004060  69 6e 64 6f 77 47 65 74  46 6c 61 67 73 28 63 25  |indowGetFlags(c%|
00004070  29 80 31 3c 3c 36 29 0d  04 c1 45 dd a4 73 68 65  |).1<<6)...E..she|
00004080  6c 6c 5f 57 69 6e 64 6f  77 54 72 61 70 73 48 6f  |ll_WindowTrapsHo|
00004090  74 4b 65 79 73 28 63 25  29 3a 3d 28 a4 73 68 65  |tKeys(c%):=(.she|
000040a0  6c 6c 5f 57 69 6e 64 6f  77 47 65 74 46 6c 61 67  |ll_WindowGetFlag|
000040b0  73 28 63 25 29 80 31 3c  3c 26 43 29 0d 04 c6 3f  |s(c%).1<<&C)...?|
000040c0  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 49 73  |..shell_WindowIs|
000040d0  4f 70 65 6e 28 63 25 29  3a 3d 28 a4 73 68 65 6c  |Open(c%):=(.shel|
000040e0  6c 5f 57 69 6e 64 6f 77  47 65 74 46 6c 61 67 73  |l_WindowGetFlags|
000040f0  28 63 25 29 80 31 3c 3c  31 36 29 0d 04 cb 40 dd  |(c%).1<<16)...@.|
00004100  a4 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 49 73 4f  |.shell_WindowIsO|
00004110  6e 54 6f 70 28 63 25 29  3a 3d 28 a4 73 68 65 6c  |nTop(c%):=(.shel|
00004120  6c 5f 57 69 6e 64 6f 77  47 65 74 46 6c 61 67 73  |l_WindowGetFlags|
00004130  28 63 25 29 80 31 3c 3c  31 37 29 0d 04 d0 47 dd  |(c%).1<<17)...G.|
00004140  a4 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 48 61 73  |.shell_WindowHas|
00004150  42 65 65 6e 54 6f 67 67  6c 65 64 28 63 25 29 3a  |BeenToggled(c%):|
00004160  3d 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |=(.shell_WindowG|
00004170  65 74 46 6c 61 67 73 28  63 25 29 80 31 3c 3c 31  |etFlags(c%).1<<1|
00004180  38 29 0d 04 d5 46 dd a4  73 68 65 6c 6c 5f 57 69  |8)...F..shell_Wi|
00004190  6e 64 6f 77 48 61 73 49  6e 70 75 74 46 6f 63 75  |ndowHasInputFocu|
000041a0  73 28 63 25 29 3a 3d 28  a4 73 68 65 6c 6c 5f 57  |s(c%):=(.shell_W|
000041b0  69 6e 64 6f 77 47 65 74  46 6c 61 67 73 28 63 25  |indowGetFlags(c%|
000041c0  29 80 31 3c 3c 32 30 29  0d 04 da 44 dd a4 73 68  |).1<<20)...D..sh|
000041d0  65 6c 6c 5f 57 69 6e 64  6f 77 48 61 73 42 61 63  |ell_WindowHasBac|
000041e0  6b 49 63 6f 6e 28 63 25  29 3a 3d 28 a4 73 68 65  |kIcon(c%):=(.she|
000041f0  6c 6c 5f 57 69 6e 64 6f  77 47 65 74 46 6c 61 67  |ll_WindowGetFlag|
00004200  73 28 63 25 29 80 31 3c  3c 32 34 29 0d 04 df 45  |s(c%).1<<24)...E|
00004210  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 48 61  |..shell_WindowHa|
00004220  73 43 6c 6f 73 65 49 63  6f 6e 28 63 25 29 3a 3d  |sCloseIcon(c%):=|
00004230  28 a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 47 65  |(.shell_WindowGe|
00004240  74 46 6c 61 67 73 28 63  25 29 80 31 3c 3c 32 35  |tFlags(c%).1<<25|
00004250  29 0d 04 e4 46 dd a4 73  68 65 6c 6c 5f 57 69 6e  |)...F..shell_Win|
00004260  64 6f 77 48 61 73 54 6f  67 67 6c 65 49 63 6f 6e  |dowHasToggleIcon|
00004270  28 63 25 29 3a 3d 28 a4  73 68 65 6c 6c 5f 57 69  |(c%):=(.shell_Wi|
00004280  6e 64 6f 77 47 65 74 46  6c 61 67 73 28 63 25 29  |ndowGetFlags(c%)|
00004290  80 31 3c 3c 32 37 29 0d  04 e9 46 dd a4 73 68 65  |.1<<27)...F..she|
000042a0  6c 6c 5f 57 69 6e 64 6f  77 48 61 73 56 53 63 72  |ll_WindowHasVScr|
000042b0  6f 6c 6c 42 61 72 28 63  25 29 3a 3d 28 a4 73 68  |ollBar(c%):=(.sh|
000042c0  65 6c 6c 5f 57 69 6e 64  6f 77 47 65 74 46 6c 61  |ell_WindowGetFla|
000042d0  67 73 28 63 25 29 80 31  3c 3c 32 38 29 0d 04 ee  |gs(c%).1<<28)...|
000042e0  4a dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 48  |J..shell_WindowH|
000042f0  61 73 41 64 6a 75 73 74  53 69 7a 65 49 63 6f 6e  |asAdjustSizeIcon|
00004300  28 63 25 29 3a 3d 28 a4  73 68 65 6c 6c 5f 57 69  |(c%):=(.shell_Wi|
00004310  6e 64 6f 77 47 65 74 46  6c 61 67 73 28 63 25 29  |ndowGetFlags(c%)|
00004320  80 31 3c 3c 32 39 29 0d  04 f3 46 dd a4 73 68 65  |.1<<29)...F..she|
00004330  6c 6c 5f 57 69 6e 64 6f  77 48 61 73 48 53 63 72  |ll_WindowHasHScr|
00004340  6f 6c 6c 42 61 72 28 63  25 29 3a 3d 28 a4 73 68  |ollBar(c%):=(.sh|
00004350  65 6c 6c 5f 57 69 6e 64  6f 77 47 65 74 46 6c 61  |ell_WindowGetFla|
00004360  67 73 28 63 25 29 80 31  3c 3c 33 30 29 0d 04 f8  |gs(c%).1<<30)...|
00004370  7f dd a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 47  |...shell_WindowG|
00004380  65 74 46 6c 61 67 73 28  63 25 29 3a ea 6c 25 2c  |etFlags(c%):.l%,|
00004390  61 25 3a 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |a%:a%=.shell_Hea|
000043a0  70 42 6c 6f 63 6b 46 65  74 63 68 28 33 36 29 3a  |pBlockFetch(36):|
000043b0  61 25 21 30 3d 63 25 3a  c8 99 26 34 30 30 43 42  |a%!0=c%:..&400CB|
000043c0  2c 2c 61 25 3a 6c 25 3d  61 25 21 33 32 3a f2 73  |,,a%:l%=a%!32:.s|
000043d0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
000043e0  74 75 72 6e 28 61 25 29  3a 3d 6c 25 0d 05 03 83  |turn(a%):=l%....|
000043f0  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 69  |..shell_WindowTi|
00004400  74 6c 65 46 6c 61 67 73  28 63 25 29 3a ea 6c 25  |tleFlags(c%):.l%|
00004410  2c 61 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |,a%:a%=.shell_He|
00004420  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 42 42  |apBlockFetch(&BB|
00004430  38 29 3a 61 25 21 30 3d  63 25 3a c8 99 26 34 30  |8):a%!0=c%:..&40|
00004440  30 43 43 2c 2c 61 25 3a  6c 25 3d 61 25 21 36 30  |0CC,,a%:l%=a%!60|
00004450  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
00004460  6b 52 65 74 75 72 6e 28  61 25 29 3a 3d 6c 25 0d  |kReturn(a%):=l%.|
00004470  05 0f 48 dd a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |..H..shell_Windo|
00004480  77 54 69 74 6c 65 48 61  73 42 6f 72 64 65 72 28  |wTitleHasBorder(|
00004490  63 25 29 3a 3d 28 a4 73  68 65 6c 6c 5f 57 69 6e  |c%):=(.shell_Win|
000044a0  64 6f 77 54 69 74 6c 65  46 6c 61 67 73 28 63 25  |dowTitleFlags(c%|
000044b0  29 80 31 3c 3c 32 29 0d  05 14 47 dd a4 73 68 65  |).1<<2)...G..she|
000044c0  6c 6c 5f 57 69 6e 64 6f  77 54 69 74 6c 65 49 73  |ll_WindowTitleIs|
000044d0  53 70 72 69 74 65 28 63  25 29 3a 3d 28 a4 73 68  |Sprite(c%):=(.sh|
000044e0  65 6c 6c 5f 57 69 6e 64  6f 77 54 69 74 6c 65 46  |ell_WindowTitleF|
000044f0  6c 61 67 73 28 63 25 29  80 31 3c 3c 31 29 0d 05  |lags(c%).1<<1)..|
00004500  19 45 dd a4 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |.E..shell_Window|
00004510  54 69 74 6c 65 49 73 54  65 78 74 28 63 25 29 3a  |TitleIsText(c%):|
00004520  3d 28 a4 73 68 65 6c 6c  5f 57 69 6e 64 6f 77 54  |=(.shell_WindowT|
00004530  69 74 6c 65 46 6c 61 67  73 28 63 25 29 80 31 3c  |itleFlags(c%).1<|
00004540  3c 30 29 0d 05 1e 49 dd  a4 73 68 65 6c 6c 5f 57  |<0)...I..shell_W|
00004550  69 6e 64 6f 77 54 69 74  6c 65 49 73 48 43 65 6e  |indowTitleIsHCen|
00004560  74 72 65 64 28 63 25 29  3a 3d 28 a4 73 68 65 6c  |tred(c%):=(.shel|
00004570  6c 5f 57 69 6e 64 6f 77  54 69 74 6c 65 46 6c 61  |l_WindowTitleFla|
00004580  67 73 28 63 25 29 80 31  3c 3c 33 29 0d 05 23 49  |gs(c%).1<<3)..#I|
00004590  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 69  |..shell_WindowTi|
000045a0  74 6c 65 49 73 56 43 65  6e 74 72 65 64 28 63 25  |tleIsVCentred(c%|
000045b0  29 3a 3d 28 a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |):=(.shell_Windo|
000045c0  77 54 69 74 6c 65 46 6c  61 67 73 28 63 25 29 80  |wTitleFlags(c%).|
000045d0  31 3c 3c 34 29 0d 05 28  47 dd a4 73 68 65 6c 6c  |1<<4)..(G..shell|
000045e0  5f 57 69 6e 64 6f 77 54  69 74 6c 65 49 73 46 69  |_WindowTitleIsFi|
000045f0  6c 6c 65 64 28 63 25 29  3a 3d 28 a4 73 68 65 6c  |lled(c%):=(.shel|
00004600  6c 5f 57 69 6e 64 6f 77  54 69 74 6c 65 46 6c 61  |l_WindowTitleFla|
00004610  67 73 28 63 25 29 80 31  3c 3c 35 29 0d 05 2d 49  |gs(c%).1<<5)..-I|
00004620  dd a4 73 68 65 6c 6c 5f  57 69 6e 64 6f 77 54 69  |..shell_WindowTi|
00004630  74 6c 65 49 73 41 41 6c  69 61 73 65 64 28 63 25  |tleIsAAliased(c%|
00004640  29 3a 3d 28 a4 73 68 65  6c 6c 5f 57 69 6e 64 6f  |):=(.shell_Windo|
00004650  77 54 69 74 6c 65 46 6c  61 67 73 28 63 25 29 80  |wTitleFlags(c%).|
00004660  31 3c 3c 36 29 0d 05 32  4b dd a4 73 68 65 6c 6c  |1<<6)..2K..shell|
00004670  5f 57 69 6e 64 6f 77 54  69 74 6c 65 49 73 49 6e  |_WindowTitleIsIn|
00004680  64 69 72 65 63 74 65 64  28 63 25 29 3a 3d 28 a4  |directed(c%):=(.|
00004690  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 54 69 74 6c  |shell_WindowTitl|
000046a0  65 46 6c 61 67 73 28 63  25 29 80 31 3c 3c 38 29  |eFlags(c%).1<<8)|
000046b0  0d 05 37 69 dd a4 73 68  65 6c 6c 5f 57 69 6e 64  |..7i..shell_Wind|
000046c0  6f 77 47 65 74 54 69 74  6c 65 28 63 25 29 3a ea  |owGetTitle(c%):.|
000046d0  51 24 2c 61 25 3a 61 25  3d a4 73 68 65 6c 6c 5f  |Q$,a%:a%=.shell_|
000046e0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 26  |HeapBlockFetch(&|
000046f0  42 42 38 29 3a 61 25 21  30 3d 63 25 3a c8 99 26  |BB8):a%!0=c%:..&|
00004700  34 30 30 43 43 2c 2c 61  25 3a e7 28 61 25 21 33  |400CC,,a%:.(a%!3|
00004710  32 80 31 3c 3c 32 36 29  8c 0d 05 3e 15 e7 28 28  |2.1<<26)...>..((|
00004720  61 25 21 36 30 29 80 32  35 36 29 3d 30 8c 0d 05  |a%!60).256)=0...|
00004730  40 0f 51 24 3d 24 28 61  25 2b 37 36 29 0d 05 41  |@.Q$=$(a%+76)..A|
00004740  13 cc 51 24 3d 24 28 21  28 61 25 2b 37 36 29 29  |..Q$=$(!(a%+76))|
00004750  0d 05 44 05 cd 0d 05 45  24 cd 3a f2 73 68 65 6c  |..D....E$.:.shel|
00004760  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00004770  6e 28 61 25 29 3a 3d 51  24 0d 05 4b 75 dd a4 73  |n(a%):=Q$..Ku..s|
00004780  68 65 6c 6c 5f 57 69 6e  64 6f 77 54 69 74 6c 65  |hell_WindowTitle|
00004790  42 75 66 66 65 72 4c 65  6e 67 74 68 28 63 25 29  |BufferLength(c%)|
000047a0  3a ea 6a 41 25 2c 61 25  3a 61 25 3d a4 73 68 65  |:.jA%,a%:a%=.she|
000047b0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
000047c0  68 28 26 42 42 38 29 3a  61 25 21 30 3d 63 25 3a  |h(&BB8):a%!0=c%:|
000047d0  c8 99 26 34 30 30 43 43  2c 2c 61 25 3a e7 28 28  |..&400CC,,a%:.((|
000047e0  61 25 21 36 30 29 80 32  35 36 29 3d 30 8c 0d 05  |a%!60).256)=0...|
000047f0  51 0a 6a 41 25 3d 26 43  0d 05 52 0e cc 6a 41 25  |Q.jA%=&C..R..jA%|
00004800  3d 61 25 21 38 34 0d 05  54 25 cd 3a f2 73 68 65  |=a%!84..T%.:.she|
00004810  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
00004820  72 6e 28 61 25 29 3a 3d  6a 41 25 0d 05 5a b6 dd  |rn(a%):=jA%..Z..|
00004830  f2 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 4d 6f 76  |.shell_WindowMov|
00004840  65 54 6f 49 63 6f 6e 28  63 25 2c 45 45 25 2c 65  |eToIcon(c%,EE%,e|
00004850  25 2c 42 42 25 2c 44 42  25 29 3a ea 61 25 3a 61  |%,BB%,DB%):.a%:a|
00004860  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00004870  63 6b 46 65 74 63 68 28  35 30 29 3a 61 25 21 30  |ckFetch(50):a%!0|
00004880  3d 45 45 25 3a 61 25 21  34 3d 65 25 3a c8 99 26  |=EE%:a%!4=e%:..&|
00004890  34 30 30 43 45 2c 2c 61  25 3a f2 73 68 65 6c 6c  |400CE,,a%:.shell|
000048a0  5f 57 69 6e 64 6f 77 4d  6f 76 65 54 6f 28 63 25  |_WindowMoveTo(c%|
000048b0  2c 61 25 21 38 2b 42 42  25 2c 61 25 21 32 30 2b  |,a%!8+BB%,a%!20+|
000048c0  44 42 25 29 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |DB%):.shell_Heap|
000048d0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 61 25 29 3a  |BlockReturn(a%):|
000048e0  e1 0d 05 65 f8 dd f2 73  68 65 6c 6c 5f 57 69 6e  |...e...shell_Win|
000048f0  64 6f 77 4d 6f 76 65 54  6f 28 63 25 2c 4a 41 25  |dowMoveTo(c%,JA%|
00004900  2c 4b 41 25 29 3a ea 4f  44 25 2c 49 44 25 2c 64  |,KA%):.OD%,ID%,d|
00004910  25 2c 61 25 3a 61 25 3d  a4 73 68 65 6c 6c 5f 48  |%,a%:a%=.shell_H|
00004920  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 26 42  |eapBlockFetch(&B|
00004930  42 38 29 3a 61 25 21 30  3d 63 25 3a c8 99 26 34  |B8):a%!0=c%:..&4|
00004940  30 30 43 43 2c 2c 61 25  3a 4f 44 25 3d 61 25 21  |00CC,,a%:OD%=a%!|
00004950  26 43 2d 61 25 21 34 3a  49 44 25 3d 61 25 21 31  |&C-a%!4:ID%=a%!1|
00004960  36 2d 61 25 21 38 3a 61  25 21 34 3d 4a 41 25 3a  |6-a%!8:a%!4=JA%:|
00004970  61 25 21 38 3d 4b 41 25  3a 61 25 21 26 43 3d 4a  |a%!8=KA%:a%!&C=J|
00004980  41 25 2b 4f 44 25 3a 61  25 21 31 36 3d 4b 41 25  |A%+OD%:a%!16=KA%|
00004990  2b 49 44 25 3a c8 99 26  34 30 30 43 35 2c 2c 61  |+ID%:..&400C5,,a|
000049a0  25 3a c8 99 26 34 30 30  43 36 2c 2c 61 25 3a 64  |%:..&400C6,,a%:d|
000049b0  25 3d a4 73 68 65 6c 6c  5f 53 65 61 72 63 68 53  |%=.shell_SearchS|
000049c0  74 61 74 69 63 28 5f 55  25 21 26 42 38 2c 63 25  |tatic(_U%!&B8,c%|
000049d0  29 3a e7 64 25 3e 2d 31  8c 0d 05 78 1f f2 73 68  |):.d%>-1...x..sh|
000049e0  65 6c 6c 5f 4f 70 65 6e  57 69 6e 64 6f 77 53 74  |ell_OpenWindowSt|
000049f0  61 74 69 63 28 63 25 29  0d 05 79 25 cc f2 73 68  |atic(c%)..y%..sh|
00004a00  65 6c 6c 5f 4f 70 65 6e  57 69 6e 64 6f 77 44 79  |ell_OpenWindowDy|
00004a10  6e 61 6d 69 63 28 63 25  2c 30 2c 30 29 0d 05 7b  |namic(c%,0,0)..{|
00004a20  22 cd 3a f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |".:.shell_HeapBl|
00004a30  6f 63 6b 52 65 74 75 72  6e 28 61 25 29 3a e1 0d  |ockReturn(a%):..|
00004a40  05 81 a4 dd f2 73 68 65  6c 6c 5f 57 69 6e 64 6f  |.....shell_Windo|
00004a50  77 42 72 69 6e 67 54 6f  54 6f 70 28 63 25 29 3a  |wBringToTop(c%):|
00004a60  ea 45 42 25 3a 45 42 25  3d a4 73 68 65 6c 6c 5f  |.EB%:EB%=.shell_|
00004a70  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 32  |HeapBlockFetch(2|
00004a80  35 36 29 3a 45 42 25 21  30 3d 63 25 3a c8 99 26  |56):EB%!0=c%:..&|
00004a90  34 30 30 43 42 2c 2c 45  42 25 3a 45 42 25 21 32  |400CB,,EB%:EB%!2|
00004aa0  38 3d 2d 31 3a c8 99 26  34 30 30 45 37 2c 32 2c  |8=-1:..&400E7,2,|
00004ab0  45 42 25 2c 63 25 3a c8  99 26 34 30 30 43 37 2c  |EB%,c%:..&400C7,|
00004ac0  30 2c 45 42 25 3a f2 73  68 65 6c 6c 5f 48 65 61  |0,EB%:.shell_Hea|
00004ad0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 45 42 25  |pBlockReturn(EB%|
00004ae0  29 3a e1 0d 05 90 b6 dd  f2 73 68 65 6c 6c 5f 55  |):.......shell_U|
00004af0  70 64 61 74 65 57 69 6e  64 6f 77 28 6b 25 2c 5a  |pdateWindow(k%,Z|
00004b00  43 25 2c 54 41 25 2c 72  41 25 2c 70 41 25 29 3a  |C%,TA%,rA%,pA%):|
00004b10  ea 61 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |.a%:a%=.shell_He|
00004b20  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 61 25 29  |apBlockFetch(a%)|
00004b30  3a 61 25 21 30 3d 6b 25  3a 61 25 21 34 3d 5a 43  |:a%!0=k%:a%!4=ZC|
00004b40  25 3a 61 25 21 38 3d 54  41 25 3a 61 25 21 26 43  |%:a%!8=TA%:a%!&C|
00004b50  3d 72 41 25 3a 61 25 21  31 36 3d 70 41 25 3a c8  |=rA%:a%!16=pA%:.|
00004b60  99 26 34 30 30 43 39 2c  2c 61 25 b8 77 42 25 3a  |.&400C9,,a%.wB%:|
00004b70  c8 99 26 34 30 30 43 42  2c 2c 61 25 3a f2 73 68  |..&400CB,,a%:.sh|
00004b80  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
00004b90  75 72 6e 28 61 25 29 3a  e1 0d 05 9b a6 dd f2 73  |urn(a%):.......s|
00004ba0  68 65 6c 6c 5f 4f 70 65  6e 57 69 6e 64 6f 77 44  |hell_OpenWindowD|
00004bb0  79 6e 61 6d 69 63 28 63  25 2c 42 42 25 2c 44 42  |ynamic(c%,BB%,DB|
00004bc0  25 29 3a ea 70 25 2c 68  42 25 3a 68 42 25 3d a4  |%):.p%,hB%:hB%=.|
00004bd0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00004be0  65 74 63 68 28 32 30 29  3a 5f 55 25 21 32 30 3d  |etch(20):_U%!20=|
00004bf0  63 25 3a c8 99 26 34 30  30 43 46 2c 2c 68 42 25  |c%:..&400CF,,hB%|
00004c00  3a c8 99 26 34 30 30 44  34 2c 2c 63 25 2c 68 42  |:..&400D4,,c%,hB|
00004c10  25 21 30 2b 42 42 25 2c  68 42 25 21 34 2b 44 42  |%!0+BB%,hB%!4+DB|
00004c20  25 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%:.shell_HeapBlo|
00004c30  63 6b 52 65 74 75 72 6e  28 68 42 25 29 3a e1 0d  |ckReturn(hB%):..|
00004c40  05 a6 25 dd a4 73 68 65  6c 6c 5f 43 6c 61 69 6d  |..%..shell_Claim|
00004c50  4b 65 79 70 72 65 73 73  3a e7 5f 55 25 21 32 30  |Keypress:._U%!20|
00004c60  3c 3e 30 8c 0d 05 a9 38  c8 99 26 34 30 30 44 34  |<>0....8..&400D4|
00004c70  2c 2c 2d 31 3a 70 25 3d  a4 73 68 65 6c 6c 5f 44  |,,-1:p%=.shell_D|
00004c80  65 6c 65 74 65 57 69 6e  64 6f 77 28 5f 55 25 21  |eleteWindow(_U%!|
00004c90  32 30 29 3a 5f 55 25 21  32 30 3d 30 0d 05 ac 08  |20):_U%!20=0....|
00004ca0  cd 3a 3d b9 0d 05 b2 91  dd f2 73 68 65 6c 6c 5f  |.:=.......shell_|
00004cb0  4f 70 65 6e 57 69 6e 64  6f 77 28 63 25 2c 66 43  |OpenWindow(c%,fC|
00004cc0  25 2c 46 44 25 29 3a ea  64 25 2c 61 25 2c 6e 25  |%,FD%):.d%,a%,n%|
00004cd0  2c 67 25 2c 48 44 25 2c  46 43 25 2c 64 41 25 2c  |,g%,HD%,FC%,dA%,|
00004ce0  71 41 25 3a ea 6f 42 25  2c 64 42 25 2c 70 41 25  |qA%:.oB%,dB%,pA%|
00004cf0  2c 45 44 25 2c 51 44 25  2c 69 42 25 3a 64 25 3d  |,ED%,QD%,iB%:d%=|
00004d00  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00004d10  69 73 74 4f 66 66 73 65  74 28 63 25 2c 2d 31 2c  |istOffset(c%,-1,|
00004d20  5f 55 25 2b 33 30 34 2c  26 43 2c a3 29 3a e7 64  |_U%+304,&C,.):.d|
00004d30  25 3e 3d 30 8c 0d 05 b7  67 61 25 3d 5f 55 25 21  |%>=0....ga%=_U%!|
00004d40  33 30 34 2b 64 25 3a 62  25 3d 61 25 21 38 3a f2  |304+d%:b%=a%!8:.|
00004d50  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 4f  |shell_Tracef0("O|
00004d60  70 65 6e 57 69 6e 64 6f  77 3a 41 62 6f 75 74 20  |penWindow:About |
00004d70  74 6f 20 63 61 6c 6c 20  22 2b 22 46 4e 22 2b 24  |to call "+"FN"+$|
00004d80  62 25 29 3a 69 42 25 3d  a0 28 22 46 4e 22 2b 24  |b%):iB%=.("FN"+$|
00004d90  62 25 29 3a e7 69 42 25  3d 30 8c e1 0d 05 be 65  |b%):.iB%=0.....e|
00004da0  cd 3a 64 42 25 3d a3 3a  70 41 25 3d a4 73 68 65  |.:dB%=.:pA%=.she|
00004db0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 46 65 74 63  |ll_HeapBlockFetc|
00004dc0  68 28 26 36 34 29 3a 70  41 25 21 30 3d 63 25 3a  |h(&64):pA%!0=c%:|
00004dd0  c8 99 26 34 30 30 43 42  2c 2c 70 41 25 3a e7 28  |..&400CB,,pA%:.(|
00004de0  70 41 25 21 33 32 80 26  38 30 30 30 30 29 3d 26  |pA%!32.&80000)=&|
00004df0  38 30 30 30 30 8c 64 42  25 3d b9 8b 64 42 25 3d  |80000.dB%=..dB%=|
00004e00  a3 0d 05 c3 3c f2 73 68  65 6c 6c 5f 48 65 61 70  |....<.shell_Heap|
00004e10  42 6c 6f 63 6b 52 65 74  75 72 6e 28 70 41 25 29  |BlockReturn(pA%)|
00004e20  3a 5f 51 25 21 30 3d 63  25 3a e7 ac 66 43 25 8c  |:_Q%!0=c%:..fC%.|
00004e30  c8 99 26 34 30 30 43 42  2c 2c 5f 51 25 0d 05 c6  |..&400CB,,_Q%...|
00004e40  09 e7 64 42 25 8c 0d 05  c7 11 c8 99 26 34 30 30  |..dB%.......&400|
00004e50  43 35 2c 2c 5f 51 25 0d  05 c8 3d cd 3a 64 25 3d  |C5,,_Q%...=.:d%=|
00004e60  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00004e70  69 73 74 4f 66 66 73 65  74 28 63 25 2c 2d 31 2c  |istOffset(c%,-1,|
00004e80  5f 55 25 2b 39 32 2c 32  34 2c a3 29 3a e7 64 25  |_U%+92,24,.):.d%|
00004e90  3e 2d 31 8c 0d 05 cb 59  61 25 3d 28 5f 55 25 21  |>-1....Ya%=(_U%!|
00004ea0  39 32 29 2b 64 25 3a 51  42 25 3d 61 25 21 38 3a  |92)+d%:QB%=a%!8:|
00004eb0  64 43 25 3d 61 25 21 26  43 3a 46 42 25 3d 61 25  |dC%=a%!&C:FB%=a%|
00004ec0  21 31 36 3a 52 42 25 3d  61 25 21 32 30 3a 5f 51  |!16:RB%=a%!20:_Q|
00004ed0  25 21 30 3d 63 25 3a e7  46 44 25 8c 46 43 25 3d  |%!0=c%:.FD%.FC%=|
00004ee0  2d 31 8b 46 43 25 3d 5f  51 25 21 32 38 0d 05 d0  |-1.FC%=_Q%!28...|
00004ef0  0a e7 ac 66 43 25 8c 0d  05 d1 11 c8 99 26 34 30  |...fC%.......&40|
00004f00  30 43 42 2c 2c 5f 51 25  0d 05 d2 52 cd 3a 6e 25  |0CB,,_Q%...R.:n%|
00004f10  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00004f20  6b 46 65 74 63 68 28 26  34 30 30 29 3a 67 25 3d  |kFetch(&400):g%=|
00004f30  30 3a c8 95 51 42 25 21  67 25 3c 3e 2d 31 3a 6e  |0:..QB%!g%<>-1:n|
00004f40  25 21 30 3d 51 42 25 21  67 25 3a e7 48 44 25 3d  |%!0=QB%!g%:.HD%=|
00004f50  30 8c 48 44 25 3d 6e 25  21 30 0d 05 d9 2b 45 44  |0.HD%=n%!0...+ED|
00004f60  25 3d 6e 25 21 30 3a c8  99 26 34 30 30 43 42 2c  |%=n%!0:..&400CB,|
00004f70  2c 6e 25 3a 6f 42 25 3d  64 43 25 21 67 25 3a c8  |,n%:oB%=dC%!g%:.|
00004f80  8e 6f 42 25 ca 0d 05 de  6a c9 30 2c 31 3a 64 41  |.oB%....j.0,1:dA|
00004f90  25 3d 6e 25 21 31 36 2d  6e 25 21 38 3a 71 41 25  |%=n%!16-n%!8:qA%|
00004fa0  3d 6e 25 21 26 43 2d 6e  25 21 34 3a 6e 25 21 34  |=n%!&C-n%!4:n%!4|
00004fb0  3d 5f 51 25 21 34 2b 46  42 25 21 67 25 3a 6e 25  |=_Q%!4+FB%!g%:n%|
00004fc0  21 26 43 3d 6e 25 21 34  2b 71 41 25 3a 6e 25 21  |!&C=n%!4+qA%:n%!|
00004fd0  31 36 3d 5f 51 25 21 31  36 2b 52 42 25 21 67 25  |16=_Q%!16+RB%!g%|
00004fe0  3a 6e 25 21 38 3d 6e 25  21 31 36 2d 64 41 25 0d  |:n%!8=n%!16-dA%.|
00004ff0  05 e5 68 c9 32 3a 64 41  25 3d 6e 25 21 31 36 2d  |..h.2:dA%=n%!16-|
00005000  6e 25 21 38 3a 71 41 25  3d 5f 51 25 21 26 43 2d  |n%!8:qA%=_Q%!&C-|
00005010  5f 51 25 21 34 3a 6e 25  21 34 3d 5f 51 25 21 34  |_Q%!4:n%!4=_Q%!4|
00005020  2b 46 42 25 21 67 25 3a  6e 25 21 26 43 3d 5f 51  |+FB%!g%:n%!&C=_Q|
00005030  25 21 26 43 3a 6e 25 21  31 36 3d 5f 51 25 21 31  |%!&C:n%!16=_Q%!1|
00005040  36 2b 52 42 25 21 67 25  3a 6e 25 21 38 3d 6e 25  |6+RB%!g%:n%!8=n%|
00005050  21 31 36 2d 64 41 25 0d  05 ed 66 c9 33 3a 64 41  |!16-dA%...f.3:dA|
00005060  25 3d 5f 51 25 21 31 36  2d 5f 51 25 21 38 3a 71  |%=_Q%!16-_Q%!8:q|
00005070  41 25 3d 6e 25 21 26 43  2d 6e 25 21 34 3a 6e 25  |A%=n%!&C-n%!4:n%|
00005080  21 34 3d 5f 51 25 21 34  2b 46 42 25 21 67 25 3a  |!4=_Q%!4+FB%!g%:|
00005090  6e 25 21 26 43 3d 6e 25  21 34 2b 71 41 25 3a 6e  |n%!&C=n%!4+qA%:n|
000050a0  25 21 31 36 3d 5f 51 25  21 31 36 3a 6e 25 21 38  |%!16=_Q%!16:n%!8|
000050b0  3d 5f 51 25 21 38 2b 52  42 25 21 67 25 0d 05 f5  |=_Q%!8+RB%!g%...|
000050c0  6b c9 34 3a 64 41 25 3d  6e 25 21 31 36 2d 6e 25  |k.4:dA%=n%!16-n%|
000050d0  21 38 3a 71 41 25 3d 5f  51 25 21 26 43 2d 5f 51  |!8:qA%=_Q%!&C-_Q|
000050e0  25 21 34 3a 6e 25 21 34  3d 5f 51 25 21 34 2b 46  |%!4:n%!4=_Q%!4+F|
000050f0  42 25 21 67 25 3a 6e 25  21 26 43 3d 5f 51 25 21  |B%!g%:n%!&C=_Q%!|
00005100  26 43 3a 6e 25 21 31 36  3d 5f 51 25 21 38 2b 64  |&C:n%!16=_Q%!8+d|
00005110  41 25 2b 52 42 25 21 67  25 3a 6e 25 21 38 3d 6e  |A%+RB%!g%:n%!8=n|
00005120  25 21 31 36 2b 64 41 25  0d 05 fd 64 c9 35 3a 64  |%!16+dA%...d.5:d|
00005130  41 25 3d 5f 51 25 21 31  36 2d 5f 51 25 21 38 3a  |A%=_Q%!16-_Q%!8:|
00005140  71 41 25 3d 6e 25 21 26  43 2d 6e 25 21 34 3a 6e  |qA%=n%!&C-n%!4:n|
00005150  25 21 34 3d 5f 51 25 21  26 43 2d 71 41 25 2b 46  |%!4=_Q%!&C-qA%+F|
00005160  42 25 21 67 25 3a 6e 25  21 26 43 3d 6e 25 21 34  |B%!g%:n%!&C=n%!4|
00005170  2b 71 41 25 3a 6e 25 21  31 36 3d 5f 51 25 21 31  |+qA%:n%!16=_Q%!1|
00005180  36 3a 6e 25 21 38 3d 5f  51 25 21 38 0d 06 05 0c  |6:n%!8=_Q%!8....|
00005190  cb 3a e7 67 25 3d 30 8c  0d 06 07 0d 6e 25 21 32  |.:.g%=0.....n%!2|
000051a0  38 3d 46 43 25 0d 06 08  0e cc 6e 25 21 32 38 3d  |8=FC%.....n%!28=|
000051b0  51 44 25 0d 06 0a 2a cd  3a c8 99 26 34 30 30 43  |QD%...*.:..&400C|
000051c0  35 2c 2c 6e 25 3a 51 44  25 3d 6e 25 21 30 3a 67  |5,,n%:QD%=n%!0:g|
000051d0  25 2b 3d 34 3a ce 3a e7  ac 64 42 25 8c 0d 06 10  |%+=4:.:..dB%....|
000051e0  1c 5f 51 25 21 32 38 3d  45 44 25 3a c8 99 26 34  |._Q%!28=ED%:..&4|
000051f0  30 30 43 35 2c 2c 5f 51  25 0d 06 12 20 cd 3a f2  |00C5,,_Q%... .:.|
00005200  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
00005210  65 74 75 72 6e 28 6e 25  29 0d 06 14 21 cc 5f 51  |eturn(n%)...!._Q|
00005220  25 21 30 3d 63 25 3a e7  ac 66 43 25 8c c8 99 26  |%!0=c%:..fC%...&|
00005230  34 30 30 43 42 2c 2c 5f  51 25 0d 06 18 15 e7 46  |400CB,,_Q%.....F|
00005240  43 25 3d 2d 32 8c 5f 51  25 21 32 38 3d 2d 32 0d  |C%=-2._Q%!28=-2.|
00005250  06 19 15 e7 46 44 25 3d  2d 31 8c 5f 51 25 21 32  |....FD%=-1._Q%!2|
00005260  38 3d 2d 31 0d 06 1a 11  c8 99 26 34 30 30 43 35  |8=-1......&400C5|
00005270  2c 2c 5f 51 25 0d 06 1b  07 cd 3a e1 0d 06 21 72  |,,_Q%.....:...!r|
00005280  dd f2 73 68 65 6c 6c 5f  43 6c 6f 73 65 57 69 6e  |..shell_CloseWin|
00005290  64 6f 77 28 63 25 29 3a  ea 64 25 2c 61 25 2c 51  |dow(c%):.d%,a%,Q|
000052a0  42 25 2c 64 43 25 2c 46  42 25 2c 52 42 25 2c 74  |B%,dC%,FB%,RB%,t|
000052b0  25 2c 69 42 25 3a 64 25  3d a4 73 68 65 6c 6c 5f  |%,iB%:d%=.shell_|
000052c0  47 65 74 45 76 65 6e 74  4c 69 73 74 4f 66 66 73  |GetEventListOffs|
000052d0  65 74 28 63 25 2c 2d 31  2c 5f 55 25 2b 33 30 38  |et(c%,-1,_U%+308|
000052e0  2c 26 43 2c a3 29 3a e7  64 25 3e 3d 30 8c 0d 06  |,&C,.):.d%>=0...|
000052f0  25 68 61 25 3d 5f 55 25  21 33 30 38 2b 64 25 3a  |%ha%=_U%!308+d%:|
00005300  62 25 3d 61 25 21 38 3a  f2 73 68 65 6c 6c 5f 54  |b%=a%!8:.shell_T|
00005310  72 61 63 65 66 30 28 22  43 6c 6f 73 65 57 69 6e  |racef0("CloseWin|
00005320  64 6f 77 3a 41 62 6f 75  74 20 74 6f 20 63 61 6c  |dow:About to cal|
00005330  6c 20 22 2b 22 46 4e 22  2b 24 62 25 29 3a 69 42  |l "+"FN"+$b%):iB|
00005340  25 3d a0 28 22 46 4e 22  2b 24 62 25 29 3a e7 69  |%=.("FN"+$b%):.i|
00005350  42 25 3d 30 8c e1 0d 06  2c 29 cd 3a 74 25 3d a4  |B%=0....,).:t%=.|
00005360  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00005370  65 74 63 68 28 36 30 29  3a e7 63 25 3e 30 8c 0d  |etch(60):.c%>0..|
00005380  06 2f 3b 64 25 3d a4 73  68 65 6c 6c 5f 47 65 74  |./;d%=.shell_Get|
00005390  45 76 65 6e 74 4c 69 73  74 4f 66 66 73 65 74 28  |EventListOffset(|
000053a0  63 25 2c 2d 31 2c 5f 55  25 2b 39 32 2c 32 34 2c  |c%,-1,_U%+92,24,|
000053b0  a3 29 3a e7 64 25 3e 2d  31 8c 0d 06 31 6c 61 25  |.):.d%>-1...1la%|
000053c0  3d 28 5f 55 25 21 39 32  29 2b 64 25 3a 64 43 25  |=(_U%!92)+d%:dC%|
000053d0  3d 61 25 21 26 43 3a 46  42 25 3d 61 25 21 31 36  |=a%!&C:FB%=a%!16|
000053e0  3a 52 42 25 3d 61 25 21  32 30 3a 67 25 3d 30 3a  |:RB%=a%!20:g%=0:|
000053f0  51 42 25 3d 61 25 21 38  3a c8 95 51 42 25 21 67  |QB%=a%!8:..QB%!g|
00005400  25 3c 3e 2d 31 3a 74 25  21 30 3d 51 42 25 21 67  |%<>-1:t%!0=QB%!g|
00005410  25 3a c8 99 26 34 30 30  43 36 2c 2c 74 25 3a 67  |%:..&400C6,,t%:g|
00005420  25 2b 3d 34 3a ce 0d 06  3e 1a cd 3a 74 25 21 30  |%+=4:...>..:t%!0|
00005430  3d 63 25 3a c8 99 26 34  30 30 43 36 2c 2c 74 25  |=c%:..&400C6,,t%|
00005440  0d 06 41 22 cd 3a f2 73  68 65 6c 6c 5f 48 65 61  |..A".:.shell_Hea|
00005450  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 74 25 29  |pBlockReturn(t%)|
00005460  3a e1 0d 06 48 45 dd a4  73 68 65 6c 6c 5f 44 65  |:...HE..shell_De|
00005470  6c 65 74 65 57 69 6e 64  6f 77 28 6b 25 29 3a ea  |leteWindow(k%):.|
00005480  74 25 3a 74 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |t%:t%=.shell_Hea|
00005490  70 42 6c 6f 63 6b 46 65  74 63 68 28 32 30 29 3a  |pBlockFetch(20):|
000054a0  e7 6b 25 3c 3e 30 8c 0d  06 4c 16 e7 a4 6f 6b 74  |.k%<>0...L...okt|
000054b0  6f 64 65 6c 65 74 65 77  28 6b 25 29 8c 0d 06 4d  |odeletew(k%)...M|
000054c0  31 f2 73 68 65 6c 6c 5f  45 76 65 6e 74 44 65 6c  |1.shell_EventDel|
000054d0  65 74 65 41 6c 6c 28 6b  25 29 3a e7 6b 25 3d 5f  |eteAll(k%):.k%=_|
000054e0  55 25 21 32 30 8c 5f 55  25 21 32 30 3d 30 0d 06  |U%!20._U%!20=0..|
000054f0  4f 2e 64 25 3d a4 73 68  65 6c 6c 5f 53 65 61 72  |O.d%=.shell_Sear|
00005500  63 68 53 74 61 74 69 63  28 5f 55 25 21 26 42 38  |chStatic(_U%!&B8|
00005510  2c 6b 25 29 3a e7 64 25  3e 2d 31 8c 0d 06 51 18  |,k%):.d%>-1...Q.|
00005520  62 25 3d 5f 55 25 21 26  42 38 2b 64 25 3a 62 25  |b%=_U%!&B8+d%:b%|
00005530  21 30 3d 30 0d 06 53 1f  cd 3a 74 25 21 30 3d 6b  |!0=0..S..:t%!0=k|
00005540  25 3a c8 99 26 34 30 30  43 33 2c 2c 74 25 3a 6b  |%:..&400C3,,t%:k|
00005550  25 3d 30 0d 06 58 05 cd  0d 06 59 24 cd 3a f2 73  |%=0..X....Y$.:.s|
00005560  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00005570  74 75 72 6e 28 74 25 29  3a 3d 6b 25 0d 06 5f 19  |turn(t%):=k%.._.|
00005580  dd a4 6f 6b 74 6f 64 65  6c 65 74 65 77 28 6b 25  |..oktodeletew(k%|
00005590  29 3a 3d 2d 31 0d 06 64  18 dd a4 6f 6b 74 6f 63  |):=-1..d...oktoc|
000055a0  6c 6f 73 65 77 28 6b 25  29 3a 3d 2d 31 0d 06 69  |losew(k%):=-1..i|
000055b0  76 dd f2 63 6c 69 70 72  65 63 74 28 41 2c f8 49  |v..cliprect(A,.I|
000055c0  41 25 2c f8 4e 41 25 2c  f8 4c 45 25 2c f8 58 45  |A%,.NA%,.LE%,.XE|
000055d0  25 29 3a ea 5f 25 2c 44  41 25 3a f2 6c 77 61 6f  |%):._%,DA%:.lwao|
000055e0  72 69 67 69 6e 28 41 2c  5f 25 2c 44 41 25 29 3a  |rigin(A,_%,DA%):|
000055f0  49 41 25 3d 41 21 32 34  2d 5f 25 3a 4e 41 25 3d  |IA%=A!24-_%:NA%=|
00005600  41 21 32 38 2d 44 41 25  3a 4c 45 25 3d 41 21 33  |A!28-DA%:LE%=A!3|
00005610  32 2d 5f 25 3a 58 45 25  3d 41 21 33 36 2d 44 41  |2-_%:XE%=A!36-DA|
00005620  25 3a e1 0d 06 71 2b dd  a4 70 6f 6c 6c 28 62 42  |%:...q+..poll(bB|
00005630  25 2c 53 44 25 29 3a c8  99 26 34 30 30 43 37 2c  |%,SD%):..&400C7,|
00005640  62 42 25 2c 5f 51 25 b8  78 25 3a 3d 78 25 0d 06  |bB%,_Q%.x%:=x%..|
00005650  77 44 dd a4 73 68 65 6c  6c 5f 50 6f 6c 6c 5f 49  |wD..shell_Poll_I|
00005660  28 62 42 25 2c 53 44 25  29 3a c8 99 26 34 30 30  |(bB%,SD%):..&400|
00005670  43 37 2c 62 42 25 2c 5f  51 25 b8 78 25 3a c8 99  |C7,bB%,_Q%.x%:..|
00005680  26 38 31 36 38 36 2c 78  25 2c 2c 53 44 25 3a 3d  |&81686,x%,,SD%:=|
00005690  78 25 0d 06 7d 1e dd f2  73 68 65 6c 6c 5f 44 6f  |x%..}...shell_Do|
000056a0  42 61 63 6b 67 72 6f 75  6e 64 54 61 73 6b 3a e1  |BackgroundTask:.|
000056b0  0d 06 81 a7 dd a4 73 68  65 6c 6c 5f 49 63 6f 6e  |......shell_Icon|
000056c0  49 73 44 72 61 67 67 61  62 6c 65 28 63 25 2c 65  |IsDraggable(c%,e|
000056d0  25 29 3a ea 6c 25 2c 62  25 2c 61 25 3a 61 25 3d  |%):.l%,b%,a%:a%=|
000056e0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000056f0  46 65 74 63 68 28 35 30  29 3a 61 25 21 30 3d 63  |Fetch(50):a%!0=c|
00005700  25 3a 61 25 21 34 3d 65  25 3a c8 99 26 34 30 30  |%:a%!4=e%:..&400|
00005710  43 45 2c 2c 61 25 3a 6c  25 3d 61 25 21 32 34 3a  |CE,,a%:l%=a%!24:|
00005720  62 25 3d 28 6c 25 80 26  36 30 30 30 29 3a f2 73  |b%=(l%.&6000):.s|
00005730  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
00005740  74 75 72 6e 28 61 25 29  3a e7 62 25 3d 26 36 30  |turn(a%):.b%=&60|
00005750  30 30 3d b9 8b 3d a3 0d  06 8c 06 3d 30 0d 06 90  |00=..=.....=0...|
00005760  7a dd f2 73 68 65 6c 6c  5f 49 63 6f 6e 44 72 61  |z..shell_IconDra|
00005770  67 42 6f 78 28 63 25 2c  65 25 29 3a ea 61 25 2c  |gBox(c%,e%):.a%,|
00005780  48 2c 4a 2c 42 44 25 2c  6c 25 2c 42 41 25 2c 50  |H,J,BD%,l%,BA%,P|
00005790  44 25 2c 57 44 25 2c 53  42 25 2c 6a 24 3a 42 44  |D%,WD%,SB%,j$:BD|
000057a0  25 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |%=.shell_GetEven|
000057b0  74 4c 69 73 74 4f 66 66  73 65 74 28 63 25 2c 65  |tListOffset(c%,e|
000057c0  25 2c 5f 55 25 2b 37 32  2c 32 34 2c a3 29 3a e7  |%,_U%+72,24,.):.|
000057d0  42 44 25 3e 3d 30 8c 0d  06 96 f7 61 25 3d a4 73  |BD%>=0.....a%=.s|
000057e0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
000057f0  74 63 68 28 36 30 30 30  29 3a 21 61 25 3d 63 25  |tch(6000):!a%=c%|
00005800  3a c8 99 26 34 30 30 43  43 2c 2c 61 25 3a 48 3d  |:..&400CC,,a%:H=|
00005810  61 25 21 34 2d 61 25 21  32 30 3a 4a 3d 61 25 21  |a%!4-a%!20:J=a%!|
00005820  31 36 2d 61 25 21 32 34  3a 57 44 25 3d 61 25 21  |16-a%!24:WD%=a%!|
00005830  36 38 3a 61 25 21 34 3d  65 25 3a c8 99 26 34 30  |68:a%!4=e%:..&40|
00005840  30 43 45 2c 2c 61 25 3a  21 61 25 3d 63 25 3a 61  |0CE,,a%:!a%=c%:a|
00005850  25 21 34 3d 35 3a 6c 25  3d 61 25 21 32 34 3a 53  |%!4=5:l%=a%!24:S|
00005860  42 25 3d 61 25 21 33 32  3a 61 25 21 38 3d 61 25  |B%=a%!32:a%!8=a%|
00005870  21 38 2b 48 3a 61 25 21  26 43 3d 61 25 21 26 43  |!8+H:a%!&C=a%!&C|
00005880  2b 4a 3a 61 25 21 31 36  3d 61 25 21 31 36 2b 48  |+J:a%!16=a%!16+H|
00005890  3a 61 25 21 32 30 3d 61  25 21 32 30 2b 4a 3a 61  |:a%!20=a%!20+J:a|
000058a0  25 21 32 34 3d 30 3a 61  25 21 32 38 3d 30 3a 61  |%!24=0:a%!28=0:a|
000058b0  25 21 33 32 3d 26 37 46  46 46 46 46 46 46 3a 61  |%!32=&7FFFFFFF:a|
000058c0  25 21 33 36 3d 26 37 46  46 46 46 46 46 46 0d 06  |%!36=&7FFFFFFF..|
000058d0  a5 2a c8 99 36 2c 26 41  31 2c 32 38 b8 2c 2c 42  |.*..6,&A1,28.,,B|
000058e0  41 25 3a 50 44 25 3d 28  28 42 41 25 80 32 29 3d  |A%:PD%=((BA%.2)=|
000058f0  32 29 3a e7 50 44 25 8c  0d 06 a8 16 42 41 25 3d  |2):.PD%.....BA%=|
00005900  6c 25 3a e7 28 42 41 25  80 32 35 36 29 8c 0d 06  |l%:.(BA%.256)...|
00005910  aa 25 6a 24 3d a4 73 68  65 6c 6c 5f 49 63 6f 6e  |.%j$=.shell_Icon|
00005920  47 65 74 43 6f 6d 6d 61  6e 64 28 53 42 25 2c 22  |GetCommand(SB%,"|
00005930  73 22 29 0d 06 ab 37 cd  3a e7 28 42 41 25 80 32  |s")...7.:.(BA%.2|
00005940  29 3d 30 8c 85 39 39 2c  a4 73 68 65 6c 6c 5f 4d  |)=0..99,.shell_M|
00005950  65 73 73 61 67 65 4e 6f  41 72 67 73 28 22 53 48  |essageNoArgs("SH|
00005960  45 4c 4c 4d 53 47 31 39  22 29 0d 06 ad 0c e7 6a  |ELLMSG19").....j|
00005970  24 3c 3e 22 22 8c 0d 06  ae 2e c8 99 26 34 32 34  |$<>"".......&424|
00005980  30 30 2c 26 38 35 2c 57  44 25 2c 6a 24 2c 61 25  |00,&85,WD%,j$,a%|
00005990  2b 38 3a 5f 55 25 21 26  36 34 3d 5f 55 25 21 26  |+8:_U%!&64=_U%!&|
000059a0  36 34 84 31 0d 06 b0 11  cc c8 99 26 34 30 30 44  |64.1.......&400D|
000059b0  30 2c 2c 61 25 0d 06 b2  05 cd 0d 06 b3 11 cc c8  |0,,a%...........|
000059c0  99 26 34 30 30 44 30 2c  2c 61 25 0d 06 b5 20 cd  |.&400D0,,a%... .|
000059d0  3a f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |:.shell_HeapBloc|
000059e0  6b 52 65 74 75 72 6e 28  61 25 29 0d 06 b7 55 cc  |kReturn(a%)...U.|
000059f0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00005a00  49 63 6f 6e 44 72 61 67  42 6f 78 3a 57 41 52 4e  |IconDragBox:WARN|
00005a10  49 4e 47 21 20 6e 6f 20  64 72 61 67 20 68 61 6e  |ING! no drag han|
00005a20  64 6c 65 72 20 72 65 67  69 73 74 65 72 65 64 20  |dler registered |
00005a30  66 6f 72 20 74 68 69 73  20 69 63 6f 6e 21 22 29  |for this icon!")|
00005a40  0d 06 b9 07 cd 3a e1 0d  06 bf 39 dd f2 73 68 65  |.....:....9..she|
00005a50  6c 6c 5f 48 61 6e 64 6c  65 41 74 74 61 63 68 65  |ll_HandleAttache|
00005a60  64 4d 65 6e 75 28 5f 51  25 2c 63 25 2c 65 25 29  |dMenu(_Q%,c%,e%)|
00005a70  3a ea 71 25 3a ea 85 3a  ee 85 ea 3a f7 85 3a e1  |:.q%:..:...:..:.|
00005a80  0d 06 c3 12 e7 65 25 3c  3e 2d 31 80 63 25 3e 2d  |.....e%<>-1.c%>-|
00005a90  31 8c 0d 06 c4 2f 71 25  3d a4 73 68 65 6c 6c 5f  |1..../q%=.shell_|
00005aa0  47 65 74 45 76 65 6e 74  4d 65 6e 75 28 5f 51 25  |GetEventMenu(_Q%|
00005ab0  21 38 2c 63 25 2c 65 25  29 3a e7 71 25 3c 3e 30  |!8,c%,e%):.q%<>0|
00005ac0  8c 0d 06 c6 26 f2 73 68  65 6c 6c 5f 4f 70 65 6e  |....&.shell_Open|
00005ad0  4d 65 6e 75 28 5f 51 25  21 30 2d 36 34 2c 5f 51  |Menu(_Q%!0-64,_Q|
00005ae0  25 21 34 2c 71 25 29 0d  06 c7 05 cd 0d 06 c8 07  |%!4,q%).........|
00005af0  cd 3a e1 0d 06 ce 74 dd  f2 73 68 65 6c 6c 5f 41  |.:....t..shell_A|
00005b00  63 74 69 6f 6e 28 71 44  25 29 3a ea 41 24 2c 71  |ction(qD%):.A$,q|
00005b10  25 2c 6c 24 2c 56 41 24  2c 73 41 25 2c 5a 41 25  |%,l$,VA$,sA%,ZA%|
00005b20  2c 6b 41 25 2c 73 43 25  3a ea 63 25 2c 65 25 2c  |,kA%,sC%:.c%,e%,|
00005b30  70 25 2c 5f 74 65 6d 70  32 38 25 2c 5f 74 65 6d  |p%,_temp28%,_tem|
00005b40  70 33 32 25 2c 5f 74 65  6d 70 32 34 25 2c 5f 74  |p32%,_temp24%,_t|
00005b50  65 6d 70 25 2c 63 43 25  3a ea 66 42 25 2c 64 25  |emp%,cC%:.fB%,d%|
00005b60  3a c8 8e 71 44 25 ca 0d  06 d4 1e c9 30 3a f2 73  |:..qD%......0:.s|
00005b70  68 65 6c 6c 5f 44 6f 42  61 63 6b 67 72 6f 75 6e  |hell_DoBackgroun|
00005b80  64 54 61 73 6b 0d 06 d6  21 c9 31 3a f2 73 68 65  |dTask...!.1:.she|
00005b90  6c 6c 5f 52 65 64 72 61  77 57 69 6e 64 6f 77 28  |ll_RedrawWindow(|
00005ba0  5f 51 25 21 30 29 0d 06  d7 23 c9 32 3a f2 73 68  |_Q%!0)...#.2:.sh|
00005bb0  65 6c 6c 5f 4f 70 65 6e  57 69 6e 64 6f 77 28 5f  |ell_OpenWindow(_|
00005bc0  51 25 21 30 2c b9 2c 30  29 0d 06 d8 20 c9 33 3a  |Q%!0,.,0)... .3:|
00005bd0  f2 73 68 65 6c 6c 5f 43  6c 6f 73 65 57 69 6e 64  |.shell_CloseWind|
00005be0  6f 77 28 5f 51 25 21 30  29 0d 06 da 22 c9 34 3a  |ow(_Q%!0)...".4:|
00005bf0  f2 73 68 65 6c 6c 5f 50  6f 69 6e 74 65 72 4c 65  |.shell_PointerLe|
00005c00  61 76 69 6e 67 57 69 6e  64 6f 77 0d 06 dd 23 c9  |avingWindow...#.|
00005c10  35 3a f2 73 68 65 6c 6c  5f 50 6f 69 6e 74 65 72  |5:.shell_Pointer|
00005c20  45 6e 74 65 72 69 6e 67  57 69 6e 64 6f 77 0d 06  |EnteringWindow..|
00005c30  df b0 c9 36 3a 5f 55 25  21 32 38 3d 5f 51 25 21  |...6:_U%!28=_Q%!|
00005c40  26 43 3a 5f 55 25 21 33  32 3d 5f 51 25 21 31 36  |&C:_U%!32=_Q%!16|
00005c50  3a 5a 41 25 3d 5f 51 25  21 30 3a 6b 41 25 3d 5f  |:ZA%=_Q%!0:kA%=_|
00005c60  51 25 21 34 3a 5f 55 25  21 32 37 32 3d 5f 51 25  |Q%!4:_U%!272=_Q%|
00005c70  21 30 3a 5f 55 25 21 32  37 36 3d 5f 51 25 21 34  |!0:_U%!276=_Q%!4|
00005c80  3a 5f 74 65 6d 70 32 38  25 3d 5f 51 25 21 26 43  |:_temp28%=_Q%!&C|
00005c90  3a 5f 74 65 6d 70 33 32  25 3d 5f 51 25 21 31 36  |:_temp32%=_Q%!16|
00005ca0  3a 65 25 3d 5f 51 25 21  31 36 3a f2 73 68 65 6c  |:e%=_Q%!16:.shel|
00005cb0  6c 5f 54 72 61 63 65 66  30 28 22 41 63 74 69 6f  |l_Tracef0("Actio|
00005cc0  6e 3a 4d 6f 75 73 65 5f  43 6c 69 63 6b 20 65 76  |n:Mouse_Click ev|
00005cd0  65 6e 74 20 64 65 74 65  63 74 65 64 22 29 0d 06  |ent detected")..|
00005ce0  e4 75 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |.u.shell_Tracef0|
00005cf0  28 22 41 63 74 69 6f 6e  3a 57 69 6e 64 6f 77 20  |("Action:Window |
00005d00  48 61 6e 64 6c 65 20 77  61 73 20 26 22 2b c3 7e  |Handle was &"+.~|
00005d10  5f 51 25 21 26 43 2b 22  20 49 63 6f 6e 20 48 61  |_Q%!&C+" Icon Ha|
00005d20  6e 64 6c 65 20 77 61 73  20 22 2b c3 5f 51 25 21  |ndle was "+._Q%!|
00005d30  31 36 29 3a e7 5f 51 25  21 26 43 3d 5f 55 25 21  |16):._Q%!&C=_U%!|
00005d40  32 38 38 80 5f 51 25 21  31 36 3d 5f 55 25 21 32  |288._Q%!16=_U%!2|
00005d50  39 32 8c 0d 06 e8 31 f2  73 68 65 6c 6c 5f 48 61  |92....1.shell_Ha|
00005d60  6e 64 6c 65 42 75 6d 70  49 63 6f 6e 73 28 5f 55  |ndleBumpIcons(_U|
00005d70  25 21 32 39 36 2c 5f 51  25 21 26 43 2c 5f 51 25  |%!296,_Q%!&C,_Q%|
00005d80  21 31 36 29 0d 06 e9 31  cc 5f 55 25 21 32 38 38  |!16)...1._U%!288|
00005d90  3d 2d 31 3a 5f 55 25 21  32 39 32 3d 2d 31 3a 5f  |=-1:_U%!292=-1:_|
00005da0  55 25 21 32 39 36 3d 2d  31 3a e7 5f 51 25 21 31  |U%!296=-1:._Q%!1|
00005db0  36 3e 3d 30 8c 0d 06 ec  6c 64 25 3d a4 73 68 65  |6>=0....ld%=.she|
00005dc0  6c 6c 5f 47 65 74 45 76  65 6e 74 4c 69 73 74 4f  |ll_GetEventListO|
00005dd0  66 66 73 65 74 28 5f 51  25 21 26 43 2c 5f 51 25  |ffset(_Q%!&C,_Q%|
00005de0  21 31 36 2c 5f 55 25 2b  26 36 38 2c 31 36 2c 30  |!16,_U%+&68,16,0|
00005df0  29 3a e7 64 25 3e 3d 30  8c f2 73 68 65 6c 6c 5f  |):.d%>=0..shell_|
00005e00  48 61 6e 64 6c 65 42 75  6d 70 49 63 6f 6e 73 28  |HandleBumpIcons(|
00005e10  64 25 2c 5f 51 25 21 26  43 2c 5f 51 25 21 31 36  |d%,_Q%!&C,_Q%!16|
00005e20  29 0d 06 ee 05 cd 0d 06  ef 12 cd 3a e7 28 5f 51  |)..........:.(_Q|
00005e30  25 21 38 3d 36 34 29 8c  0d 06 f3 33 6a 41 25 3d  |%!8=64)....3jA%=|
00005e40  a4 73 68 65 6c 6c 5f 49  63 6f 6e 49 73 44 72 61  |.shell_IconIsDra|
00005e50  67 67 61 62 6c 65 28 5f  51 25 21 26 43 2c 5f 51  |ggable(_Q%!&C,_Q|
00005e60  25 21 31 36 29 3a e7 6a  41 25 8c 0d 06 f5 3c 52  |%!16):.jA%....<R|
00005e70  24 3d 22 49 63 6f 6e 20  69 73 20 64 72 61 67 67  |$="Icon is dragg|
00005e80  61 62 6c 65 22 3a f2 73  68 65 6c 6c 5f 49 63 6f  |able":.shell_Ico|
00005e90  6e 44 72 61 67 42 6f 78  28 5f 51 25 21 26 43 2c  |nDragBox(_Q%!&C,|
00005ea0  5f 51 25 21 31 36 29 0d  06 f8 1f cc 52 24 3d 22  |_Q%!16).....R$="|
00005eb0  49 63 6f 6e 20 69 73 20  6e 6f 74 20 64 72 61 67  |Icon is not drag|
00005ec0  67 61 62 6c 65 22 0d 06  fa 22 cd 3a f2 73 68 65  |gable"...".:.she|
00005ed0  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 63 74 69  |ll_Tracef0("Acti|
00005ee0  6f 6e 3a 22 2b 52 24 29  0d 06 fc 0e cd 3a c8 8e  |on:"+R$).....:..|
00005ef0  5f 51 25 21 38 ca 0d 06  fe 20 c9 34 3a f2 73 68  |_Q%!8.... .4:.sh|
00005f00  65 6c 6c 5f 41 63 74 69  6f 6e 53 65 6c 65 63 74  |ell_ActionSelect|
00005f10  42 75 74 74 6f 6e 0d 06  ff 1e c9 32 3a f2 73 68  |Button.....2:.sh|
00005f20  65 6c 6c 5f 41 63 74 69  6f 6e 4d 65 6e 75 42 75  |ell_ActionMenuBu|
00005f30  74 74 6f 6e 0d 07 00 20  c9 31 3a f2 73 68 65 6c  |tton... .1:.shel|
00005f40  6c 5f 41 63 74 69 6f 6e  41 64 6a 75 73 74 42 75  |l_ActionAdjustBu|
00005f50  74 74 6f 6e 0d 07 01 05  cb 0d 07 02 12 c9 37 3a  |tton..........7:|
00005f60  e7 5f 55 25 21 26 36 34  80 31 8c 0d 07 03 1e c8  |._U%!&64.1......|
00005f70  99 26 34 32 34 30 31 3a  5f 55 25 21 26 36 34 3d  |.&42401:_U%!&64=|
00005f80  5f 55 25 21 26 36 34 82  31 0d 07 05 43 cd 3a 5f  |_U%!&64.1...C.:_|
00005f90  55 25 21 26 38 30 3d 30  3a 41 24 3d a4 73 68 65  |U%!&80=0:A$=.she|
00005fa0  6c 6c 5f 47 65 74 45 76  65 6e 74 48 61 6e 64 6c  |ll_GetEventHandl|
00005fb0  65 72 28 5f 55 25 21 32  38 2c 5f 55 25 21 33 32  |er(_U%!28,_U%!32|
00005fc0  2c 36 29 3a e7 41 24 3c  3e 22 22 8c 0d 07 0b 66  |,6):.A$<>""....f|
00005fd0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00005fe0  41 63 74 69 6f 6e 3a 44  72 61 67 20 65 76 65 6e  |Action:Drag even|
00005ff0  74 20 64 65 74 65 63 74  65 64 20 2d 20 66 75 6e  |t detected - fun|
00006000  63 74 69 6f 6e 20 69 73  20 22 2b 41 24 29 3a 70  |ction is "+A$):p|
00006010  25 3d a0 28 22 46 4e 22  2b 41 24 2b 22 28 5f 74  |%=.("FN"+A$+"(_t|
00006020  65 6d 70 32 38 25 2c 5f  74 65 6d 70 33 32 25 29  |emp28%,_temp32%)|
00006030  22 29 0d 07 0d 6a cc f2  73 68 65 6c 6c 5f 54 72  |")...j..shell_Tr|
00006040  61 63 65 66 30 28 22 41  63 74 69 6f 6e 3a 44 72  |acef0("Action:Dr|
00006050  61 67 20 65 76 65 6e 74  20 64 65 74 65 63 74 65  |ag event detecte|
00006060  64 20 2d 20 6e 6f 20 68  61 6e 64 6c 65 72 20 66  |d - no handler f|
00006070  75 6e 63 74 69 6f 6e 22  29 3a f2 73 68 65 6c 6c  |unction"):.shell|
00006080  5f 53 65 6e 64 44 61 74  61 53 61 76 65 28 5f 55  |_SendDataSave(_U|
00006090  25 21 32 38 2c 5f 55 25  21 33 32 29 0d 07 11 05  |%!28,_U%!32)....|
000060a0  cd 0d 07 12 3e c9 38 3a  f2 73 68 65 6c 6c 5f 54  |....>.8:.shell_T|
000060b0  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 3a 6b  |racef0("Action:k|
000060c0  65 79 70 72 65 73 73 20  69 73 3d 22 2b c3 5f 51  |eypress is="+._Q|
000060d0  25 21 32 34 29 3a c8 8e  5f 51 25 21 32 34 ca 0d  |%!24):.._Q%!24..|
000060e0  07 15 43 c9 26 44 2c 33  39 38 2c 33 39 39 3a 73  |..C.&D,398,399:s|
000060f0  43 25 3d a4 73 68 65 6c  6c 5f 57 72 69 74 65 61  |C%=.shell_Writea|
00006100  62 6c 65 49 63 6f 6e 48  61 6e 64 6c 65 72 28 5f  |bleIconHandler(_|
00006110  51 25 21 30 2c 5f 51 25  21 34 2c 5f 51 25 21 32  |Q%!0,_Q%!4,_Q%!2|
00006120  34 29 0d 07 17 25 7f 73  43 25 3d a4 73 68 65 6c  |4)...%.sC%=.shel|
00006130  6c 5f 48 6f 74 4b 65 79  50 72 6f 63 65 73 73 28  |l_HotKeyProcess(|
00006140  5f 51 25 21 32 34 29 0d  07 19 0c cb 3a e7 ac 73  |_Q%!24).....:..s|
00006150  43 25 8c 0d 07 1b 50 f2  73 68 65 6c 6c 5f 54 72  |C%....P.shell_Tr|
00006160  61 63 65 66 30 28 22 41  63 74 69 6f 6e 3a 4b 65  |acef0("Action:Ke|
00006170  79 70 72 65 73 73 20 6e  6f 74 20 63 6c 61 69 6d  |ypress not claim|
00006180  65 64 2c 20 70 61 73 73  69 6e 67 20 69 74 20 6f  |ed, passing it o|
00006190  6e 22 29 3a c8 99 26 34  30 30 44 43 2c 5f 51 25  |n"):..&400DC,_Q%|
000061a0  21 32 34 0d 07 1d 42 cc  f2 73 68 65 6c 6c 5f 54  |!24...B..shell_T|
000061b0  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 3a 4b  |racef0("Action:K|
000061c0  65 79 70 72 65 73 73 20  63 6c 61 69 6d 65 64 20  |eypress claimed |
000061d0  62 79 20 74 68 69 73 20  61 70 70 6c 69 63 61 74  |by this applicat|
000061e0  69 6f 6e 22 29 0d 07 1f  05 cd 0d 07 20 23 c9 39  |ion")....... #.9|
000061f0  3a f2 73 68 65 6c 6c 5f  41 63 74 69 6f 6e 4d 65  |:.shell_ActionMe|
00006200  6e 75 53 65 6c 65 63 74  28 5f 51 25 29 0d 07 21  |nuSelect(_Q%)..!|
00006210  1e c9 31 37 2c 31 38 3a  f2 73 68 65 6c 6c 5f 52  |..17,18:.shell_R|
00006220  65 63 65 69 76 65 28 5f  51 25 29 0d 07 22 2a c9  |eceive(_Q%).."*.|
00006230  31 39 3a f2 73 68 65 6c  6c 5f 55 73 65 72 4d 65  |19:.shell_UserMe|
00006240  73 73 61 67 65 41 63 6b  6e 6f 77 6c 65 64 67 65  |ssageAcknowledge|
00006250  28 5f 51 25 29 0d 07 23  07 cb 3a e1 0d 07 29 be  |(_Q%)..#..:...).|
00006260  dd f2 73 68 65 6c 6c 5f  41 63 74 69 6f 6e 53 65  |..shell_ActionSe|
00006270  6c 65 63 74 42 75 74 74  6f 6e 3a f2 73 68 65 6c  |lectButton:.shel|
00006280  6c 5f 54 72 61 63 65 66  30 28 22 41 63 74 69 6f  |l_Tracef0("Actio|
00006290  6e 53 65 6c 65 63 74 42  75 74 74 6f 6e 3a 4d 6f  |nSelectButton:Mo|
000062a0  75 73 65 20 42 75 74 74  6f 6e 20 77 61 73 20 53  |use Button was S|
000062b0  45 4c 45 43 54 22 29 3a  f2 73 68 65 6c 6c 5f 48  |ELECT"):.shell_H|
000062c0  61 6e 64 6c 65 41 74 74  61 63 68 65 64 4d 65 6e  |andleAttachedMen|
000062d0  75 28 5f 51 25 2c 5f 55  25 21 32 38 2c 5f 55 25  |u(_Q%,_U%!28,_U%|
000062e0  21 33 32 29 3a 41 24 3d  a4 73 68 65 6c 6c 5f 47  |!32):A$=.shell_G|
000062f0  65 74 45 76 65 6e 74 48  61 6e 64 6c 65 72 28 5f  |etEventHandler(_|
00006300  55 25 21 32 38 2c 5f 55  25 21 33 32 2c 32 29 3a  |U%!28,_U%!32,2):|
00006310  e7 5f 55 25 21 33 32 3d  30 8c 0d 07 30 2b f2 73  |._U%!32=0...0+.s|
00006320  68 65 6c 6c 5f 44 61 74  61 53 61 76 65 43 68 65  |hell_DataSaveChe|
00006330  63 6b 4e 61 6d 65 28 5f  55 25 21 32 38 2c 5f 55  |ckName(_U%!28,_U|
00006340  25 21 33 32 29 0d 07 31  0e cd 3a e7 41 24 3c 3e  |%!32)..1..:.A$<>|
00006350  22 22 8c 0d 07 33 a4 f2  73 68 65 6c 6c 5f 49 63  |""...3..shell_Ic|
00006360  6f 6e 53 6c 61 62 28 34  2c 5f 55 25 21 32 38 2c  |onSlab(4,_U%!28,|
00006370  5f 55 25 21 33 32 29 3a  f2 73 68 65 6c 6c 5f 54  |_U%!32):.shell_T|
00006380  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 53 65  |racef0("ActionSe|
00006390  6c 65 63 74 42 75 74 74  6f 6e 3a 41 62 6f 75 74  |lectButton:About|
000063a0  20 74 6f 20 63 61 6c 6c  20 22 2b 22 46 4e 22 2b  | to call "+"FN"+|
000063b0  41 24 2b 22 28 22 2b c3  5f 74 65 6d 70 32 38 25  |A$+"("+._temp28%|
000063c0  2b 22 2c 22 2b c3 5f 74  65 6d 70 33 32 25 2b 22  |+","+._temp32%+"|
000063d0  29 22 29 3a 70 25 3d a0  28 22 46 4e 22 2b 41 24  |)"):p%=.("FN"+A$|
000063e0  2b 22 28 5f 74 65 6d 70  32 38 25 2c 5f 74 65 6d  |+"(_temp28%,_tem|
000063f0  70 33 32 25 29 22 29 0d  07 38 10 cd 3a e7 5f 55  |p32%)")..8..:._U|
00006400  25 21 33 32 3d 30 8c 0d  07 3b 13 e7 5f 55 25 21  |%!32=0...;.._U%!|
00006410  32 38 3d 5f 55 25 21 32  30 8c 0d 07 3c 10 c8 99  |28=_U%!20...<...|
00006420  26 34 30 30 44 34 2c 2c  2d 31 0d 07 3d 05 cd 0d  |&400D4,,-1..=...|
00006430  07 3e 07 cd 3a e1 0d 07  43 8a dd f2 73 68 65 6c  |.>..:...C...shel|
00006440  6c 5f 41 63 74 69 6f 6e  4d 65 6e 75 42 75 74 74  |l_ActionMenuButt|
00006450  6f 6e 3a ea 62 25 2c 71  25 3a f2 73 68 65 6c 6c  |on:.b%,q%:.shell|
00006460  5f 54 72 61 63 65 66 30  28 22 41 63 74 69 6f 6e  |_Tracef0("Action|
00006470  4d 65 6e 75 42 75 74 74  6f 6e 3a 4d 6f 75 73 65  |MenuButton:Mouse|
00006480  20 42 75 74 74 6f 6e 20  77 61 73 20 4d 45 4e 55  | Button was MENU|
00006490  22 29 3a 62 25 3d b9 3a  e7 a6 28 2d 31 29 8c 62  |"):b%=.:..(-1).b|
000064a0  25 3d a4 73 68 69 66 74  6d 65 6e 75 63 6c 69 63  |%=.shiftmenuclic|
000064b0  6b 28 5f 51 25 21 26 43  2c 5f 51 25 21 31 36 29  |k(_Q%!&C,_Q%!16)|
000064c0  0d 07 4a 08 e7 62 25 8c  0d 07 4b a8 f2 73 68 65  |..J..b%...K..she|
000064d0  6c 6c 5f 54 72 61 63 65  66 30 28 22 41 63 74 69  |ll_Tracef0("Acti|
000064e0  6f 6e 4d 65 6e 75 42 75  74 74 6f 6e 3a 43 68 65  |onMenuButton:Che|
000064f0  63 6b 69 6e 67 20 6d 65  6e 75 20 65 76 65 6e 74  |cking menu event|
00006500  73 2e 2e 22 29 3a 71 25  3d a4 73 68 65 6c 6c 5f  |s.."):q%=.shell_|
00006510  47 65 74 45 76 65 6e 74  4d 65 6e 75 28 5f 51 25  |GetEventMenu(_Q%|
00006520  21 38 2c 5f 51 25 21 26  43 2c 5f 51 25 21 31 36  |!8,_Q%!&C,_Q%!16|
00006530  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
00006540  28 22 41 63 74 69 6f 6e  4d 65 6e 75 42 75 74 74  |("ActionMenuButt|
00006550  6f 6e 3a 4d 65 6e 75 20  68 61 6e 64 6c 65 20 69  |on:Menu handle i|
00006560  73 3a 22 2b c3 71 25 29  3a e7 71 25 3c 3e 30 8c  |s:"+.q%):.q%<>0.|
00006570  0d 07 4f 63 f2 73 68 65  6c 6c 5f 4f 70 65 6e 4d  |..Oc.shell_OpenM|
00006580  65 6e 75 28 5f 51 25 21  30 2c 5f 51 25 21 34 2c  |enu(_Q%!0,_Q%!4,|
00006590  71 25 29 3a 5f 55 25 21  32 34 3d 71 25 3a 5f 55  |q%):_U%!24=q%:_U|
000065a0  25 21 33 36 3d 5f 51 25  21 30 3a 5f 55 25 21 34  |%!36=_Q%!0:_U%!4|
000065b0  30 3d 5f 51 25 21 34 3a  5f 55 25 21 35 32 3d 5f  |0=_Q%!4:_U%!52=_|
000065c0  55 25 21 32 38 3a 5f 55  25 21 35 36 3d 5f 55 25  |U%!28:_U%!56=_U%|
000065d0  21 33 32 0d 07 55 05 cd  0d 07 56 07 cd 3a e1 0d  |!32..U....V..:..|
000065e0  07 5c dc dd f2 73 68 65  6c 6c 5f 41 63 74 69 6f  |.\...shell_Actio|
000065f0  6e 4d 65 6e 75 53 65 6c  65 63 74 28 5f 51 25 29  |nMenuSelect(_Q%)|
00006600  3a ea 6d 43 25 2c 73 41  25 2c 66 42 25 2c 63 43  |:.mC%,sA%,fB%,cC|
00006610  25 2c 70 25 2c 73 42 25  3a 73 42 25 3d a4 73 68  |%,p%,sB%:sB%=.sh|
00006620  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00006630  63 68 28 32 35 36 29 3a  f2 73 68 65 6c 6c 5f 54  |ch(256):.shell_T|
00006640  72 61 63 65 66 30 28 22  41 63 74 69 6f 6e 4d 65  |racef0("ActionMe|
00006650  6e 75 53 65 6c 65 63 74  3a 4d 65 6e 75 5f 53 65  |nuSelect:Menu_Se|
00006660  6c 65 63 74 20 65 76 65  6e 74 20 64 65 74 65 63  |lect event detec|
00006670  74 65 64 22 29 3a c8 99  26 34 30 30 43 46 2c 2c  |ted"):..&400CF,,|
00006680  5f 73 68 65 6c 6c 5f 62  6c 6b 25 3a 73 41 25 3d  |_shell_blk%:sA%=|
00006690  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000066a0  46 65 74 63 68 28 32 35  36 29 3a e7 5f 55 25 21  |Fetch(256):._U%!|
000066b0  32 34 3d 5f 55 25 21 26  46 43 8c 0d 07 67 13 66  |24=_U%!&FC...g.f|
000066c0  42 25 3d 30 3a 5f 55 25  21 32 36 34 3d 31 0d 07  |B%=0:_U%!264=1..|
000066d0  68 3f cc 66 42 25 3d a4  73 68 65 6c 6c 5f 43 68  |h?.fB%=.shell_Ch|
000066e0  65 63 6b 53 65 6c 65 63  74 69 6f 6e 28 5f 51 25  |eckSelection(_Q%|
000066f0  29 3a e7 66 42 25 3e 2d  31 8c 5f 55 25 21 32 36  |):.fB%>-1._U%!26|
00006700  34 3d 31 8b 5f 55 25 21  32 36 34 3d 30 0d 07 6b  |4=1._U%!264=0..k|
00006710  11 cd 3a e7 5f 55 25 21  32 36 34 3e 30 8c 0d 07  |..:._U%!264>0...|
00006720  6d 24 c8 99 26 38 44 30  38 34 2c 5f 51 25 2b 66  |m$..&8D084,_Q%+f|
00006730  42 25 2c 73 41 25 b8 63  43 25 3a e7 63 43 25 3d  |B%,sA%.cC%:.cC%=|
00006740  31 8c 0d 07 71 a9 f2 73  68 65 6c 6c 5f 54 72 61  |1...q..shell_Tra|
00006750  63 65 66 30 28 22 41 63  74 69 6f 6e 4d 65 6e 75  |cef0("ActionMenu|
00006760  53 65 6c 65 63 74 3a 46  6f 6e 74 4d 65 6e 75 20  |Select:FontMenu |
00006770  73 65 6c 65 63 74 69 6f  6e 20 28 22 2b a4 73 68  |selection ("+.sh|
00006780  65 6c 6c 5f 47 65 74 53  74 72 69 6e 67 28 73 41  |ell_GetString(sA|
00006790  25 29 2b 22 29 22 29 3a  f2 73 68 65 6c 6c 5f 46  |%)+")"):.shell_F|
000067a0  6f 6e 74 4d 65 6e 75 53  65 6c 65 63 74 46 6f 6e  |ontMenuSelectFon|
000067b0  74 28 a4 73 68 65 6c 6c  5f 47 65 74 53 74 72 69  |t(.shell_GetStri|
000067c0  6e 67 28 73 41 25 29 2c  5f 55 25 21 32 36 30 29  |ng(sA%),_U%!260)|
000067d0  3a e7 5f 73 68 65 6c 6c  5f 46 6f 6e 74 4d 65 6e  |:._shell_FontMen|
000067e0  75 53 65 6c 46 4e 24 3d  22 22 8c 0d 07 75 a4 c8  |uSelFN$=""...u..|
000067f0  99 26 34 30 30 44 35 2c  2c 5f 55 25 21 32 34 2c  |.&400D5,,_U%!24,|
00006800  5f 51 25 2c 73 41 25 3a  41 24 3d a4 73 68 65 6c  |_Q%,sA%:A$=.shel|
00006810  6c 5f 47 65 74 45 76 65  6e 74 48 61 6e 64 6c 65  |l_GetEventHandle|
00006820  72 28 5f 55 25 21 35 32  2c 5f 55 25 21 35 36 2c  |r(_U%!52,_U%!56,|
00006830  30 29 3a 5f 74 65 6d 70  25 3d 73 41 25 3a 24 5f  |0):_temp%=sA%:$_|
00006840  74 65 6d 70 25 3d a4 73  68 65 6c 6c 5f 53 74 72  |temp%=.shell_Str|
00006850  69 6e 67 53 74 72 69 70  54 72 61 69 6c 69 6e 67  |ingStripTrailing|
00006860  28 24 5f 74 65 6d 70 25  2c 22 20 22 29 3a e7 41  |($_temp%," "):.A|
00006870  24 3c 3e 22 22 8c 70 25  3d a0 28 22 46 4e 22 2b  |$<>"".p%=.("FN"+|
00006880  41 24 2b 22 28 24 5f 74  65 6d 70 25 29 22 29 0d  |A$+"($_temp%)").|
00006890  07 7a 20 cc e7 5f 73 68  65 6c 6c 5f 46 6f 6e 74  |.z .._shell_Font|
000068a0  4d 65 6e 75 53 65 6c 46  4e 24 3c 3e 22 22 8c 0d  |MenuSelFN$<>""..|
000068b0  07 7c 4c 70 25 3d a0 28  22 46 4e 22 2b 5f 73 68  |.|Lp%=.("FN"+_sh|
000068c0  65 6c 6c 5f 46 6f 6e 74  4d 65 6e 75 53 65 6c 46  |ell_FontMenuSelF|
000068d0  4e 24 2b 22 28 46 4e 73  68 65 6c 6c 5f 46 6f 6e  |N$+"(FNshell_Fon|
000068e0  74 4d 65 6e 75 47 65 74  4c 61 73 74 53 65 6c 65  |tMenuGetLastSele|
000068f0  63 74 65 64 46 6f 6e 74  29 22 29 0d 07 7d 05 cd  |ctedFont)")..}..|
00006900  0d 07 7e 05 cd 0d 07 7f  05 cd 0d 07 80 2d cd 3a  |..~..........-.:|
00006910  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00006920  52 65 74 75 72 6e 28 73  41 25 29 3a e7 5f 55 25  |Return(sA%):._U%|
00006930  21 32 36 34 3d 30 8c 0d  07 84 45 c8 99 26 34 35  |!264=0....E..&45|
00006940  42 43 34 2c 5f 55 25 21  32 34 2c 5f 51 25 b8 6d  |BC4,_U%!24,_Q%.m|
00006950  43 25 2c 2c 73 42 25 3a  e7 6d 43 25 8c f2 73 68  |C%,,sB%:.mC%..sh|
00006960  65 6c 6c 5f 4d 65 6e 75  43 61 6c 6c 48 61 6e 64  |ell_MenuCallHand|
00006970  6c 65 72 28 6d 43 25 2c  73 42 25 29 0d 07 86 17  |ler(mC%,sB%)....|
00006980  cd 3a e7 5f 73 68 65 6c  6c 5f 62 6c 6b 25 21 38  |.:._shell_blk%!8|
00006990  3d 31 8c 0d 07 88 4c f2  73 68 65 6c 6c 5f 54 72  |=1....L.shell_Tr|
000069a0  61 63 65 66 30 28 22 48  49 4c 4b 45 3a 3a 41 64  |acef0("HILKE::Ad|
000069b0  6a 75 73 74 20 62 75 74  74 6f 6e 22 29 3a e7 a4  |just button"):..|
000069c0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
000069d0  78 69 73 74 73 28 5f 55  25 21 26 45 30 29 8c 0d  |xists(_U%!&E0)..|
000069e0  07 8a 4f f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |..O.shell_Tracef|
000069f0  30 28 22 48 49 4c 4b 45  3a 3a 53 74 6f 72 65 64  |0("HILKE::Stored|
00006a00  20 77 61 72 6e 5f 66 6e  20 65 78 69 73 74 73 22  | warn_fn exists"|
00006a10  29 3a 5f 74 65 6d 70 25  3d 5f 55 25 21 26 45 30  |):_temp%=_U%!&E0|
00006a20  3a e7 24 5f 74 65 6d 70  25 3c 3e 22 22 8c 0d 07  |:.$_temp%<>""...|
00006a30  8e 64 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |.d.shell_Tracef0|
00006a40  28 22 48 49 4c 4b 45 3a  3a 43 61 6c 6c 69 6e 67  |("HILKE::Calling|
00006a50  20 6c 61 73 74 20 77 61  72 6e 5f 66 6e 20 28 22  | last warn_fn ("|
00006a60  2b 24 5f 74 65 6d 70 25  2b 22 29 22 29 3a 70 25  |+$_temp%+")"):p%|
00006a70  3d a0 28 22 46 4e 22 2b  24 5f 74 65 6d 70 25 2b  |=.("FN"+$_temp%+|
00006a80  22 28 5f 55 25 21 35 32  2c 5f 55 25 21 35 36 29  |"(_U%!52,_U%!56)|
00006a90  22 29 0d 07 90 05 cd 0d  07 91 2b cd 3a f2 73 68  |")........+.:.sh|
00006aa0  65 6c 6c 5f 4f 70 65 6e  4d 65 6e 75 28 5f 55 25  |ell_OpenMenu(_U%|
00006ab0  21 33 36 2c 5f 55 25 21  34 30 2c 5f 55 25 21 32  |!36,_U%!40,_U%!2|
00006ac0  34 29 0d 07 93 1d cc 5f  73 68 65 6c 6c 5f 46 6f  |4)....._shell_Fo|
00006ad0  6e 74 4d 65 6e 75 53 65  6c 46 4e 24 3d 22 22 0d  |ntMenuSelFN$="".|
00006ae0  07 95 23 cd 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |..#.:.shell_Heap|
00006af0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 73 42 25 29  |BlockReturn(sB%)|
00006b00  3a e1 0d 07 9c b0 dd f2  73 68 65 6c 6c 5f 41 63  |:.......shell_Ac|
00006b10  74 69 6f 6e 41 64 6a 75  73 74 42 75 74 74 6f 6e  |tionAdjustButton|
00006b20  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00006b30  22 41 63 74 69 6f 6e 3a  4d 6f 75 73 65 20 42 75  |"Action:Mouse Bu|
00006b40  74 74 6f 6e 20 77 61 73  20 41 44 4a 55 53 54 22  |tton was ADJUST"|
00006b50  29 3a f2 73 68 65 6c 6c  5f 48 61 6e 64 6c 65 41  |):.shell_HandleA|
00006b60  74 74 61 63 68 65 64 4d  65 6e 75 28 5f 51 25 2c  |ttachedMenu(_Q%,|
00006b70  5f 55 25 21 32 38 2c 5f  55 25 21 33 32 29 3a 41  |_U%!28,_U%!32):A|
00006b80  24 3d a4 73 68 65 6c 6c  5f 47 65 74 45 76 65 6e  |$=.shell_GetEven|
00006b90  74 48 61 6e 64 6c 65 72  28 5f 55 25 21 32 38 2c  |tHandler(_U%!28,|
00006ba0  5f 55 25 21 33 32 2c 33  29 3a e7 41 24 3c 3e 22  |_U%!32,3):.A$<>"|
00006bb0  22 8c 0d 07 a1 48 f2 73  68 65 6c 6c 5f 49 63 6f  |"....H.shell_Ico|
00006bc0  6e 53 6c 61 62 28 31 2c  5f 55 25 21 32 38 2c 5f  |nSlab(1,_U%!28,_|
00006bd0  55 25 21 33 32 29 3a 70  25 3d a0 28 22 46 4e 22  |U%!32):p%=.("FN"|
00006be0  2b 41 24 2b 22 28 5f 74  65 6d 70 32 38 25 2c 5f  |+A$+"(_temp28%,_|
00006bf0  74 65 6d 70 33 32 25 29  22 29 0d 07 a3 07 cd 3a  |temp32%)").....:|
00006c00  e1 0d 07 a7 1e dd a4 73  68 69 66 74 6d 65 6e 75  |.......shiftmenu|
00006c10  63 6c 69 63 6b 28 63 25  2c 65 25 29 3a 3d b9 0d  |click(c%,e%):=..|
00006c20  07 ac 99 dd f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |.....shell_IconS|
00006c30  6c 61 62 28 70 42 25 2c  63 25 2c 65 25 29 3a ea  |lab(pB%,c%,e%):.|
00006c40  61 25 3a 61 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |a%:a%=.shell_Hea|
00006c50  70 42 6c 6f 63 6b 46 65  74 63 68 28 35 30 29 3a  |pBlockFetch(50):|
00006c60  61 25 21 38 3d 70 42 25  3a 61 25 21 26 43 3d 63  |a%!8=pB%:a%!&C=c|
00006c70  25 3a 61 25 21 31 36 3d  65 25 3a c8 99 26 38 31  |%:a%!16=e%:..&81|
00006c80  36 38 30 2c 2c 61 25 3a  61 25 21 38 3d 30 3a c8  |680,,a%:a%!8=0:.|
00006c90  99 26 38 31 36 38 30 2c  2c 61 25 3a f2 73 68 65  |.&81680,,a%:.she|
00006ca0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
00006cb0  72 6e 28 61 25 29 3a e1  0d 07 b7 22 dd f2 73 68  |rn(a%):...."..sh|
00006cc0  65 6c 6c 5f 50 6f 69 6e  74 65 72 4c 65 61 76 69  |ell_PointerLeavi|
00006cd0  6e 67 57 69 6e 64 6f 77  3a e1 0d 07 ba 23 dd f2  |ngWindow:....#..|
00006ce0  73 68 65 6c 6c 5f 50 6f  69 6e 74 65 72 45 6e 74  |shell_PointerEnt|
00006cf0  65 72 69 6e 67 57 69 6e  64 6f 77 3a e1 0d 07 be  |eringWindow:....|
00006d00  ec dd f2 73 68 65 6c 6c  5f 52 65 64 72 61 77 57  |...shell_RedrawW|
00006d10  69 6e 64 6f 77 28 6b 25  29 3a ea 77 42 25 2c 41  |indow(k%):.wB%,A|
00006d20  24 2c 5f 25 2c 44 41 25  2c 61 25 3a 61 25 3d a4  |$,_%,DA%,a%:a%=.|
00006d30  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
00006d40  65 74 63 68 28 26 36 34  29 3a 41 24 3d a4 73 68  |etch(&64):A$=.sh|
00006d50  65 6c 6c 5f 47 65 74 45  76 65 6e 74 48 61 6e 64  |ell_GetEventHand|
00006d60  6c 65 72 28 6b 25 2c 2d  31 2c 34 29 3a 61 25 21  |ler(k%,-1,4):a%!|
00006d70  30 3d 6b 25 3a c8 99 26  34 30 30 43 38 2c 2c 61  |0=k%:..&400C8,,a|
00006d80  25 b8 77 42 25 3a 5f 25  3d 61 25 21 34 2d 61 25  |%.wB%:_%=a%!4-a%|
00006d90  21 32 30 3a 44 41 25 3d  61 25 21 31 36 2d 61 25  |!20:DA%=a%!16-a%|
00006da0  21 32 34 3a c8 95 77 42  25 3a c8 99 26 38 31 36  |!24:..wB%:..&816|
00006db0  38 31 2c 2c 61 25 3a e7  41 24 3c 3e 22 22 8c 70  |81,,a%:.A$<>"".p|
00006dc0  25 3d a0 28 22 46 4e 22  2b 41 24 2b 22 28 22 2b  |%=.("FN"+A$+"("+|
00006dd0  c3 61 25 2b 22 2c 22 2b  c3 5f 25 2b 22 2c 22 2b  |.a%+","+._%+","+|
00006de0  c3 44 41 25 2b 22 29 22  29 0d 07 c8 33 c8 99 26  |.DA%+")")...3..&|
00006df0  34 30 30 43 41 2c 2c 61  25 b8 77 42 25 3a ce 3a  |400CA,,a%.wB%:.:|
00006e00  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00006e10  52 65 74 75 72 6e 28 61  25 29 3a e1 0d 07 d0 29  |Return(a%):....)|
00006e20  dd f2 73 68 65 6c 6c 5f  52 65 63 65 69 76 65 28  |..shell_Receive(|
00006e30  5f 51 25 29 3a ea 62 25  2c 70 25 3a c8 8e 5f 51  |_Q%):.b%,p%:.._Q|
00006e40  25 21 31 36 ca 0d 07 d3  14 c9 30 3a f2 73 68 65  |%!16......0:.she|
00006e50  6c 6c 5f 45 78 69 74 3a  e0 0d 07 d4 1b c9 31 3a  |ll_Exit:......1:|
00006e60  f2 73 68 65 6c 6c 5f 44  61 74 61 53 61 76 65 28  |.shell_DataSave(|
00006e70  5f 51 25 29 0d 07 d5 1e  c9 32 3a f2 73 68 65 6c  |_Q%).....2:.shel|
00006e80  6c 5f 44 61 74 61 53 61  76 65 41 63 6b 28 5f 51  |l_DataSaveAck(_Q|
00006e90  25 29 0d 07 d6 1d c9 33  3a f2 73 68 65 6c 6c 5f  |%).....3:.shell_|
00006ea0  44 61 74 61 4c 6f 61 64  28 5f 51 25 2c a3 29 0d  |DataLoad(_Q%,.).|
00006eb0  07 d7 1e c9 34 3a f2 73  68 65 6c 6c 5f 44 61 74  |....4:.shell_Dat|
00006ec0  61 4c 6f 61 64 41 63 6b  28 5f 51 25 29 0d 07 d8  |aLoadAck(_Q%)...|
00006ed0  1d c9 35 3a f2 73 68 65  6c 6c 5f 44 61 74 61 4c  |..5:.shell_DataL|
00006ee0  6f 61 64 28 5f 51 25 2c  b9 29 0d 07 d9 1b c9 36  |oad(_Q%,.).....6|
00006ef0  3a f2 73 68 65 6c 6c 5f  52 41 4d 46 65 74 63 68  |:.shell_RAMFetch|
00006f00  28 5f 51 25 29 0d 07 da  1e c9 37 3a f2 73 68 65  |(_Q%).....7:.she|
00006f10  6c 6c 5f 52 41 4d 54 72  61 6e 73 6d 69 74 28 5f  |ll_RAMTransmit(_|
00006f20  51 25 29 0d 07 db 22 c9  38 3a f2 73 68 65 6c 6c  |Q%)...".8:.shell|
00006f30  5f 4d 65 73 73 61 67 65  5f 50 72 65 51 75 69 74  |_Message_PreQuit|
00006f40  28 5f 51 25 29 0d 07 dc  12 c9 39 3a e7 5f 55 25  |(_Q%).....9:._U%|
00006f50  21 26 41 34 3e 30 8c 0d  07 de 56 f2 73 68 65 6c  |!&A4>0....V.shel|
00006f60  6c 5f 54 72 61 63 65 66  30 28 22 52 65 63 65 69  |l_Tracef0("Recei|
00006f70  76 65 3a 50 61 6c 65 74  74 65 43 68 61 6e 67 65  |ve:PaletteChange|
00006f80  20 6d 65 73 73 61 67 65  20 72 65 63 65 69 76 65  | message receive|
00006f90  64 22 29 3a 62 25 3d 5f  55 25 21 26 41 34 3a 70  |d"):b%=_U%!&A4:p|
00006fa0  25 3d a0 28 22 46 4e 22  2b 24 62 25 29 0d 07 e2  |%=.("FN"+$b%)...|
00006fb0  05 cd 0d 07 e3 27 c9 26  41 3a f2 73 68 65 6c 6c  |.....'.&A:.shell|
00006fc0  5f 4d 65 73 73 61 67 65  5f 53 61 76 65 44 65 73  |_Message_SaveDes|
00006fd0  6b 74 6f 70 28 5f 51 25  29 0d 07 e4 24 c9 26 45  |ktop(_Q%)...$.&E|
00006fe0  3a f2 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 5f  |:.shell_Message_|
00006ff0  53 68 75 74 64 6f 77 6e  28 5f 51 25 29 0d 07 e5  |Shutdown(_Q%)...|
00007000  25 c9 26 35 30 32 3a f2  73 68 65 6c 6c 5f 49 6e  |%.&502:.shell_In|
00007010  74 65 72 61 63 74 69 76  65 48 65 6c 70 28 5f 51  |teractiveHelp(_Q|
00007020  25 29 0d 07 e6 23 c9 26  34 30 30 43 30 3a f2 73  |%)...#.&400C0:.s|
00007030  68 65 6c 6c 5f 4d 65 6e  75 57 61 72 6e 69 6e 67  |hell_MenuWarning|
00007040  28 5f 51 25 29 0d 07 e7  2a c9 26 34 30 30 43 31  |(_Q%)...*.&400C1|
00007050  3a f2 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 5f  |:.shell_Message_|
00007060  4d 6f 64 65 43 68 61 6e  67 65 28 5f 51 25 29 0d  |ModeChange(_Q%).|
00007070  07 e8 17 c9 26 34 30 30  43 32 3a e7 5f 55 25 21  |....&400C2:._U%!|
00007080  26 41 38 3e 30 8c 0d 07  eb 57 f2 73 68 65 6c 6c  |&A8>0....W.shell|
00007090  5f 54 72 61 63 65 66 30  28 22 52 65 63 65 69 76  |_Tracef0("Receiv|
000070a0  65 3a 54 61 73 6b 49 6e  69 74 69 61 6c 69 73 65  |e:TaskInitialise|
000070b0  20 6d 65 73 73 61 67 65  20 72 65 63 65 69 76 65  | message receive|
000070c0  64 22 29 3a 62 25 3d 5f  55 25 21 26 41 38 3a 70  |d"):b%=_U%!&A8:p|
000070d0  25 3d a0 28 22 46 4e 22  2b 24 62 25 29 0d 07 ef  |%=.("FN"+$b%)...|
000070e0  38 cd 3a e7 5f 55 25 21  26 44 30 3d 2d 31 80 a4  |8.:._U%!&D0=-1..|
000070f0  73 68 65 6c 6c 5f 47 65  74 53 74 72 69 6e 67 28  |shell_GetString(|
00007100  5f 51 25 2b 32 38 29 3d  22 53 74 72 6f 6e 67 48  |_Q%+28)="StrongH|
00007110  65 6c 70 22 8c 0d 07 f1  7f 5f 55 25 21 26 44 30  |elp"....._U%!&D0|
00007120  3d 5f 51 25 21 34 3a f2  73 68 65 6c 6c 5f 53 74  |=_Q%!4:.shell_St|
00007130  72 6f 6e 67 48 6c 70 4d  73 67 28 22 48 65 6c 70  |rongHlpMsg("Help|
00007140  5f 49 6e 73 74 61 6c 6c  20 2d 44 69 65 57 69 74  |_Install -DieWit|
00007150  68 54 61 73 6b 20 22 2b  a4 73 68 65 6c 6c 5f 47  |hTask "+.shell_G|
00007160  65 74 41 70 70 44 69 72  2b 22 2e 22 2b a4 73 68  |etAppDir+"."+.sh|
00007170  65 6c 6c 5f 47 65 74 41  70 70 4e 61 6d 65 29 3a  |ell_GetAppName):|
00007180  62 25 3d 5f 55 25 21 26  44 38 3a e7 24 62 25 3c  |b%=_U%!&D8:.$b%<|
00007190  3e 22 22 8c 0d 07 f5 42  f2 73 68 65 6c 6c 5f 48  |>""....B.shell_H|
000071a0  65 6c 70 57 6f 72 64 28  24 62 25 29 3a f2 73 68  |elpWord($b%):.sh|
000071b0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
000071c0  75 72 6e 28 5f 55 25 21  26 44 38 29 3a 5f 55 25  |urn(_U%!&D8):_U%|
000071d0  21 26 44 38 3d 30 0d 07  f8 05 cd 0d 07 f9 05 cd  |!&D8=0..........|
000071e0  0d 07 fa 17 c9 26 34 30  30 43 33 3a e7 5f 55 25  |.....&400C3:._U%|
000071f0  21 26 41 43 3e 30 8c 0d  07 fd 56 f2 73 68 65 6c  |!&AC>0....V.shel|
00007200  6c 5f 54 72 61 63 65 66  30 28 22 52 65 63 65 69  |l_Tracef0("Recei|
00007210  76 65 3a 54 61 73 6b 43  6c 6f 73 65 44 6f 77 6e  |ve:TaskCloseDown|
00007220  20 6d 65 73 73 61 67 65  20 72 65 63 65 69 76 65  | message receive|
00007230  64 22 29 3a 62 25 3d 5f  55 25 21 26 41 43 3a 70  |d"):b%=_U%!&AC:p|
00007240  25 3d a0 28 22 46 4e 22  2b 24 62 25 29 0d 08 01  |%=.("FN"+$b%)...|
00007250  1f cd 3a e7 5f 51 25 21  34 3d 5f 55 25 21 26 44  |..:._Q%!4=_U%!&D|
00007260  30 8c 5f 55 25 21 26 44  30 3d 2d 31 0d 08 03 69  |0._U%!&D0=-1...i|
00007270  c9 26 34 30 30 43 37 3a  f2 73 68 65 6c 6c 5f 54  |.&400C7:.shell_T|
00007280  72 61 63 65 66 30 28 22  52 65 63 65 69 76 65 3a  |racef0("Receive:|
00007290  54 61 73 6b 4e 61 6d 65  49 73 20 6d 65 73 73 61  |TaskNameIs messa|
000072a0  67 65 20 72 65 63 65 69  76 65 64 22 29 3a e7 a4  |ge received"):..|
000072b0  73 68 65 6c 6c 5f 47 65  74 53 74 72 69 6e 67 28  |shell_GetString(|
000072c0  5f 51 25 2b 32 38 29 3d  22 53 74 72 6f 6e 67 48  |_Q%+28)="StrongH|
000072d0  65 6c 70 22 8c 0d 08 08  12 5f 55 25 21 26 44 30  |elp"....._U%!&D0|
000072e0  3d 5f 51 25 21 32 30 0d  08 09 17 cc f2 73 68 65  |=_Q%!20......she|
000072f0  6c 6c 5f 53 63 61 6e 46  6f 72 48 65 6c 70 0d 08  |ll_ScanForHelp..|
00007300  0b 05 cd 0d 08 0c 26 7f  f2 73 68 65 6c 6c 5f 48  |......&..shell_H|
00007310  61 6e 64 6c 65 55 6e 6b  6e 6f 77 6e 4d 65 73 73  |andleUnknownMess|
00007320  61 67 65 32 28 5f 51 25  29 0d 08 0d 07 cb 3a e1  |age2(_Q%).....:.|
00007330  0d 08 13 2f dd f2 73 68  65 6c 6c 5f 4d 65 73 73  |.../..shell_Mess|
00007340  61 67 65 5f 4d 6f 64 65  43 68 61 6e 67 65 28 5f  |age_ModeChange(_|
00007350  51 25 29 3a e7 5f 55 25  21 26 41 30 3e 30 8c 0d  |Q%):._U%!&A0>0..|
00007360  08 15 5e f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |..^.shell_Tracef|
00007370  30 28 22 4d 65 73 73 61  67 65 5f 4d 6f 64 65 43  |0("Message_ModeC|
00007380  68 61 6e 67 65 3a 4d 6f  64 65 43 68 61 6e 67 65  |hange:ModeChange|
00007390  20 6d 65 73 73 61 67 65  20 72 65 63 65 69 76 65  | message receive|
000073a0  64 22 29 3a 62 25 3d 5f  55 25 21 26 41 30 3a 70  |d"):b%=_U%!&A0:p|
000073b0  25 3d a0 28 22 46 4e 22  2b 24 62 25 29 0d 08 18  |%=.("FN"+$b%)...|
000073c0  07 cd 3a e1 0d 08 1e 2d  dd f2 73 68 65 6c 6c 5f  |..:....-..shell_|
000073d0  4d 65 73 73 61 67 65 5f  53 68 75 74 64 6f 77 6e  |Message_Shutdown|
000073e0  28 5f 51 25 29 3a e7 5f  55 25 21 33 31 32 3e 30  |(_Q%):._U%!312>0|
000073f0  8c 0d 08 20 5a f2 73 68  65 6c 6c 5f 54 72 61 63  |... Z.shell_Trac|
00007400  65 66 30 28 22 4d 65 73  73 61 67 65 5f 53 68 75  |ef0("Message_Shu|
00007410  74 64 6f 77 6e 3a 53 68  75 74 64 6f 77 6e 20 6d  |tdown:Shutdown m|
00007420  65 73 73 61 67 65 20 72  65 63 65 69 76 65 64 22  |essage received"|
00007430  29 3a 62 25 3d 5f 55 25  21 33 31 32 3a 70 25 3d  |):b%=_U%!312:p%=|
00007440  a0 28 22 46 4e 22 2b 24  62 25 29 0d 08 23 07 cd  |.("FN"+$b%)..#..|
00007450  3a e1 0d 08 28 34 dd f2  73 68 65 6c 6c 5f 48 61  |:...(4..shell_Ha|
00007460  6e 64 6c 65 55 6e 6b 6e  6f 77 6e 4d 65 73 73 61  |ndleUnknownMessa|
00007470  67 65 32 28 5f 51 25 29  3a ea 62 24 3a c8 8e 5f  |ge2(_Q%):.b$:.._|
00007480  51 25 21 31 36 ca 0d 08  2d 39 c9 26 34 33 42 30  |Q%!16...-9.&43B0|
00007490  30 3a 62 24 3d 24 28 5f  51 25 2b 32 30 29 3a e7  |0:b$=$(_Q%+20):.|
000074a0  c0 62 24 2c 32 30 29 3d  22 45 76 6e 74 53 68 65  |.b$,20)="EvntShe|
000074b0  6c 6c 4c 69 62 3a 54 72  61 63 65 4f 6e 22 8c 0d  |llLib:TraceOn"..|
000074c0  08 30 12 f2 73 68 65 6c  6c 5f 54 72 61 63 65 4f  |.0..shell_TraceO|
000074d0  6e 0d 08 31 27 cd 3a e7  c0 62 24 2c 32 31 29 3d  |n..1'.:..b$,21)=|
000074e0  22 45 76 6e 74 53 68 65  6c 6c 4c 69 62 3a 54 72  |"EvntShellLib:Tr|
000074f0  61 63 65 4f 66 66 22 8c  0d 08 33 13 f2 73 68 65  |aceOff"...3..she|
00007500  6c 6c 5f 54 72 61 63 65  4f 66 66 0d 08 34 2e cd  |ll_TraceOff..4..|
00007510  3a e7 c0 62 24 2c 32 38  29 3d 22 45 76 6e 74 53  |:..b$,28)="EvntS|
00007520  68 65 6c 6c 4c 69 62 3a  4c 69 73 74 43 6c 69 63  |hellLib:ListClic|
00007530  6b 53 65 6c 65 63 74 22  8c 0d 08 36 1a f2 73 68  |kSelect"...6..sh|
00007540  65 6c 6c 5f 4c 69 73 74  43 6c 69 63 6b 53 65 6c  |ell_ListClickSel|
00007550  65 63 74 0d 08 37 2e cd  3a e7 c0 62 24 2c 32 38  |ect..7..:..b$,28|
00007560  29 3d 22 45 76 6e 74 53  68 65 6c 6c 4c 69 62 3a  |)="EvntShellLib:|
00007570  4c 69 73 74 43 6c 69 63  6b 41 64 6a 75 73 74 22  |ListClickAdjust"|
00007580  8c 0d 08 39 1a f2 73 68  65 6c 6c 5f 4c 69 73 74  |...9..shell_List|
00007590  43 6c 69 63 6b 41 64 6a  75 73 74 0d 08 3a 2b cd  |ClickAdjust..:+.|
000075a0  3a e7 c0 62 24 2c 32 35  29 3d 22 45 76 6e 74 53  |:..b$,25)="EvntS|
000075b0  68 65 6c 6c 4c 69 62 3a  4c 69 73 74 48 65 6c 70  |hellLib:ListHelp|
000075c0  54 61 67 73 22 8c 0d 08  3c 17 f2 73 68 65 6c 6c  |Tags"...<..shell|
000075d0  5f 4c 69 73 74 48 65 6c  70 54 61 67 73 0d 08 3d  |_ListHelpTags..=|
000075e0  05 cd 0d 08 3e 28 cb 3a  f2 73 68 65 6c 6c 5f 48  |....>(.:.shell_H|
000075f0  61 6e 64 6c 65 55 6e 6b  6e 6f 77 6e 4d 65 73 73  |andleUnknownMess|
00007600  61 67 65 28 5f 51 25 29  3a e1 0d 08 46 27 dd f2  |age(_Q%):...F'..|
00007610  73 68 65 6c 6c 5f 48 61  6e 64 6c 65 55 6e 6b 6e  |shell_HandleUnkn|
00007620  6f 77 6e 4d 65 73 73 61  67 65 28 5f 51 25 29 3a  |ownMessage(_Q%):|
00007630  e1 0d 08 4c 56 dd f2 73  68 65 6c 6c 5f 41 74 74  |...LV..shell_Att|
00007640  61 63 68 50 72 65 51 75  69 74 48 61 6e 64 6c 65  |achPreQuitHandle|
00007650  72 28 41 24 29 3a ea 62  25 2c 70 25 3a e7 5f 55  |r(A$):.b%,p%:._U|
00007660  25 21 33 30 30 3e 30 8c  f2 73 68 65 6c 6c 5f 48  |%!300>0..shell_H|
00007670  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 5f  |eapBlockReturn(_|
00007680  55 25 21 33 30 30 29 0d  08 4f 3c 5f 55 25 21 33  |U%!300)..O<_U%!3|
00007690  30 30 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |00=.shell_HeapBl|
000076a0  6f 63 6b 46 65 74 63 68  28 a9 41 24 2b 31 29 3a  |ockFetch(.A$+1):|
000076b0  62 25 3d 5f 55 25 21 33  30 30 3a 24 62 25 3d 41  |b%=_U%!300:$b%=A|
000076c0  24 3a e1 0d 08 56 57 dd  f2 73 68 65 6c 6c 5f 41  |$:...VW..shell_A|
000076d0  74 74 61 63 68 53 68 75  74 64 6f 77 6e 48 61 6e  |ttachShutdownHan|
000076e0  64 6c 65 72 28 41 24 29  3a ea 62 25 2c 70 25 3a  |dler(A$):.b%,p%:|
000076f0  e7 5f 55 25 21 33 31 32  3e 30 8c f2 73 68 65 6c  |._U%!312>0..shel|
00007700  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00007710  6e 28 5f 55 25 21 33 31  32 29 0d 08 59 3c 5f 55  |n(_U%!312)..Y<_U|
00007720  25 21 33 31 32 3d a4 73  68 65 6c 6c 5f 48 65 61  |%!312=.shell_Hea|
00007730  70 42 6c 6f 63 6b 46 65  74 63 68 28 a9 41 24 2b  |pBlockFetch(.A$+|
00007740  31 29 3a 62 25 3d 5f 55  25 21 33 31 32 3a 24 62  |1):b%=_U%!312:$b|
00007750  25 3d 41 24 3a e1 0d 08  60 59 dd f2 73 68 65 6c  |%=A$:...`Y..shel|
00007760  6c 5f 41 74 74 61 63 68  4d 6f 64 65 43 68 61 6e  |l_AttachModeChan|
00007770  67 65 48 61 6e 64 6c 65  72 28 41 24 29 3a ea 62  |geHandler(A$):.b|
00007780  25 2c 70 25 3a e7 5f 55  25 21 26 41 30 3e 30 8c  |%,p%:._U%!&A0>0.|
00007790  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000077a0  52 65 74 75 72 6e 28 5f  55 25 21 26 41 30 29 0d  |Return(_U%!&A0).|
000077b0  08 63 4a 5f 55 25 21 26  41 30 3d a4 73 68 65 6c  |.cJ_U%!&A0=.shel|
000077c0  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
000077d0  28 a9 41 24 2b 31 29 3a  62 25 3d 5f 55 25 21 26  |(.A$+1):b%=_U%!&|
000077e0  41 30 3a 24 62 25 3d 41  24 3a 70 25 3d a0 28 22  |A0:$b%=A$:p%=.("|
000077f0  46 4e 22 2b 41 24 29 3a  e1 0d 08 6b 5c dd f2 73  |FN"+A$):...k\..s|
00007800  68 65 6c 6c 5f 41 74 74  61 63 68 50 61 6c 65 74  |hell_AttachPalet|
00007810  74 65 43 68 61 6e 67 65  48 61 6e 64 6c 65 72 28  |teChangeHandler(|
00007820  41 24 29 3a ea 62 25 2c  70 25 3a e7 5f 55 25 21  |A$):.b%,p%:._U%!|
00007830  26 41 34 3e 30 8c f2 73  68 65 6c 6c 5f 48 65 61  |&A4>0..shell_Hea|
00007840  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
00007850  21 26 41 34 29 0d 08 6e  4a 5f 55 25 21 26 41 34  |!&A4)..nJ_U%!&A4|
00007860  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00007870  6b 46 65 74 63 68 28 a9  41 24 2b 31 29 3a 62 25  |kFetch(.A$+1):b%|
00007880  3d 5f 55 25 21 26 41 34  3a 24 62 25 3d 41 24 3a  |=_U%!&A4:$b%=A$:|
00007890  70 25 3d a0 28 22 46 4e  22 2b 41 24 29 3a e1 0d  |p%=.("FN"+A$):..|
000078a0  08 76 5d dd f2 73 68 65  6c 6c 5f 41 74 74 61 63  |.v]..shell_Attac|
000078b0  68 54 61 73 6b 49 6e 69  74 69 61 6c 69 73 65 48  |hTaskInitialiseH|
000078c0  61 6e 64 6c 65 72 28 41  24 29 3a ea 62 25 2c 70  |andler(A$):.b%,p|
000078d0  25 3a e7 5f 55 25 21 26  41 38 3e 30 8c f2 73 68  |%:._U%!&A8>0..sh|
000078e0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
000078f0  75 72 6e 28 5f 55 25 21  26 41 38 29 0d 08 79 3c  |urn(_U%!&A8)..y<|
00007900  5f 55 25 21 26 41 38 3d  a4 73 68 65 6c 6c 5f 48  |_U%!&A8=.shell_H|
00007910  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 a9 41  |eapBlockFetch(.A|
00007920  24 2b 31 29 3a 62 25 3d  5f 55 25 21 26 41 38 3a  |$+1):b%=_U%!&A8:|
00007930  24 62 25 3d 41 24 3a e1  0d 08 80 5c dd f2 73 68  |$b%=A$:....\..sh|
00007940  65 6c 6c 5f 41 74 74 61  63 68 54 61 73 6b 43 6c  |ell_AttachTaskCl|
00007950  6f 73 65 44 6f 77 6e 48  61 6e 64 6c 65 72 28 41  |oseDownHandler(A|
00007960  24 29 3a ea 62 25 2c 70  25 3a e7 5f 55 25 21 26  |$):.b%,p%:._U%!&|
00007970  41 43 3e 30 8c f2 73 68  65 6c 6c 5f 48 65 61 70  |AC>0..shell_Heap|
00007980  42 6c 6f 63 6b 52 65 74  75 72 6e 28 5f 55 25 21  |BlockReturn(_U%!|
00007990  26 41 43 29 0d 08 83 3c  5f 55 25 21 26 41 43 3d  |&AC)...<_U%!&AC=|
000079a0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
000079b0  46 65 74 63 68 28 a9 41  24 2b 31 29 3a 62 25 3d  |Fetch(.A$+1):b%=|
000079c0  5f 55 25 21 26 41 43 3a  24 62 25 3d 41 24 3a e1  |_U%!&AC:$b%=A$:.|
000079d0  0d 08 8a 3c dd f2 73 68  65 6c 6c 5f 52 41 4d 46  |...<..shell_RAMF|
000079e0  65 74 63 68 28 5f 51 25  29 3a ea 6e 45 25 2c 51  |etch(_Q%):.nE%,Q|
000079f0  43 25 2c 58 43 25 3a 58  43 25 3d a3 3a e7 5f 55  |C%,XC%:XC%=.:._U|
00007a00  25 21 26 39 30 3e 26 38  30 30 30 8c 0d 08 95 61  |%!&90>&8000....a|
00007a10  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00007a20  52 41 4d 46 65 74 63 68  3a 52 41 4d 46 65 74 63  |RAMFetch:RAMFetc|
00007a30  68 20 63 61 6c 6c 65 64  2e 2e 22 29 3a 5f 51 25  |h called.."):_Q%|
00007a40  21 26 43 3d 5f 51 25 21  38 3a 5f 51 25 21 31 36  |!&C=_Q%!8:_Q%!16|
00007a50  3d 37 3a 51 43 25 3d 5f  55 25 21 26 38 38 3a e7  |=7:QC%=_U%!&88:.|
00007a60  5f 55 25 21 26 38 43 3d  26 46 46 39 8c 0d 08 a0  |_U%!&8C=&FF9....|
00007a70  0e 5f 55 25 21 26 39 30  2b 3d 34 0d 08 a1 1c cd  |._U%!&90+=4.....|
00007a80  3a e7 28 51 43 25 2d 5f  55 25 21 26 38 30 29 3c  |:.(QC%-_U%!&80)<|
00007a90  5f 51 25 21 32 34 8c 0d  08 a4 1c 5f 51 25 21 32  |_Q%!24....._Q%!2|
00007aa0  34 3d 51 43 25 2d 5f 55  25 21 26 38 30 3a 58 43  |4=QC%-_U%!&80:XC|
00007ab0  25 3d b9 0d 08 a6 2d cc  f2 73 68 65 6c 6c 5f 54  |%=....-..shell_T|
00007ac0  72 61 63 65 66 30 28 22  52 41 4d 46 65 74 63 68  |racef0("RAMFetch|
00007ad0  3a 53 65 6e 64 69 6e 67  20 62 6c 6f 63 6b 22 29  |:Sending block")|
00007ae0  0d 08 aa 7d cd 3a c8 99  26 34 30 30 46 31 2c 5f  |...}.:..&400F1,_|
00007af0  55 25 21 26 39 34 2c 5f  55 25 21 26 39 30 2b 5f  |U%!&94,_U%!&90+_|
00007b00  55 25 21 26 38 30 2c 5f  51 25 21 34 2c 5f 51 25  |U%!&80,_Q%!4,_Q%|
00007b10  21 32 30 2c 5f 51 25 21  32 34 3a c8 99 26 34 30  |!20,_Q%!24:..&40|
00007b20  30 45 37 2c 31 37 2c 5f  51 25 2c 5f 51 25 21 34  |0E7,17,_Q%,_Q%!4|
00007b30  3a 5f 55 25 21 26 37 38  3d 5f 51 25 21 38 3a 5f  |:_U%!&78=_Q%!8:_|
00007b40  55 25 21 26 38 30 2b 3d  5f 51 25 21 32 34 3a e7  |U%!&80+=_Q%!24:.|
00007b50  58 43 25 8c 5f 55 25 21  26 38 30 3d 30 0d 08 b0  |XC%._U%!&80=0...|
00007b60  07 cd 3a e1 0d 08 b5 3b  dd f2 73 68 65 6c 6c 5f  |..:....;..shell_|
00007b70  52 41 4d 54 72 61 6e 73  6d 69 74 28 5f 51 25 29  |RAMTransmit(_Q%)|
00007b80  3a ea 64 25 2c 61 25 2c  46 41 24 2c 62 25 3a e7  |:.d%,a%,FA$,b%:.|
00007b90  5f 51 25 21 26 43 3d 5f  55 25 21 26 37 30 8c 0d  |_Q%!&C=_U%!&70..|
00007ba0  08 b9 24 5f 55 25 21 26  38 30 2b 3d 5f 51 25 21  |..$_U%!&80+=_Q%!|
00007bb0  32 34 3a e7 5f 51 25 21  32 34 3c 5f 55 25 21 26  |24:._Q%!24<_U%!&|
00007bc0  38 34 8c 0d 08 bd d6 f2  73 68 65 6c 6c 5f 54 72  |84......shell_Tr|
00007bd0  61 63 65 66 30 28 22 52  41 4d 54 72 61 6e 73 6d  |acef0("RAMTransm|
00007be0  69 74 3a 4c 61 73 74 20  62 6c 6f 63 6b 20 72 65  |it:Last block re|
00007bf0  63 65 69 76 65 64 22 29  3a 64 25 3d a4 73 68 65  |ceived"):d%=.she|
00007c00  6c 6c 5f 47 65 74 45 76  65 6e 74 4c 69 73 74 4f  |ll_GetEventListO|
00007c10  66 66 73 65 74 28 5f 55  25 21 32 38 2c 5f 55 25  |ffset(_U%!28,_U%|
00007c20  21 33 32 2c 5f 55 25 2b  39 36 2c 31 36 2c a3 29  |!32,_U%+96,16,.)|
00007c30  3a 61 25 3d 5f 55 25 21  39 36 2b 64 25 3a f2 73  |:a%=_U%!96+d%:.s|
00007c40  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 52 41  |hell_Tracef0("RA|
00007c50  4d 54 72 61 6e 73 6d 69  74 3a 5f 55 25 21 32 38  |MTransmit:_U%!28|
00007c60  3d 22 2b c3 5f 55 25 21  32 38 29 3a f2 73 68 65  |="+._U%!28):.she|
00007c70  6c 6c 5f 54 72 61 63 65  66 30 28 22 52 41 4d 54  |ll_Tracef0("RAMT|
00007c80  72 61 6e 73 6d 69 74 3a  5f 55 25 21 33 32 3d 22  |ransmit:_U%!32="|
00007c90  2b c3 5f 55 25 21 33 32  29 0d 08 c4 8e f2 73 68  |+._U%!32).....sh|
00007ca0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 52 41 4d  |ell_Tracef0("RAM|
00007cb0  54 72 61 6e 73 6d 69 74  3a 6f 66 66 73 65 74 25  |Transmit:offset%|
00007cc0  3d 22 2b c3 64 25 29 3a  62 25 3d 5f 55 25 21 26  |="+.d%):b%=_U%!&|
00007cd0  39 43 3a 46 41 24 3d a4  73 68 65 6c 6c 5f 47 65  |9C:FA$=.shell_Ge|
00007ce0  74 53 74 72 69 6e 67 28  62 25 2b 34 34 29 3a f2  |tString(b%+44):.|
00007cf0  73 68 65 6c 6c 5f 55 73  65 72 46 4e 4c 6f 61 64  |shell_UserFNLoad|
00007d00  46 69 6c 65 28 62 25 21  34 30 2c 5f 55 25 21 26  |File(b%!40,_U%!&|
00007d10  39 38 2c 61 25 21 38 2c  46 41 24 2c 5f 55 25 21  |98,a%!8,FA$,_U%!|
00007d20  26 38 34 2c 61 25 29 0d  08 cb 43 cc f2 73 68 65  |&84,a%)...C..she|
00007d30  6c 6c 5f 54 72 61 63 65  66 30 28 22 52 41 4d 54  |ll_Tracef0("RAMT|
00007d40  72 61 6e 73 6d 69 74 3a  42 6c 6f 63 6b 20 72 65  |ransmit:Block re|
00007d50  63 65 69 76 65 64 22 29  3a e7 5f 55 25 21 26 38  |ceived"):._U%!&8|
00007d60  30 3e 5f 55 25 21 26 38  34 8c 0d 08 d4 72 f2 73  |0>_U%!&84....r.s|
00007d70  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 52 41  |hell_Tracef0("RA|
00007d80  4d 54 72 61 6e 73 6d 69  74 3a 49 6e 63 72 65 61  |MTransmit:Increa|
00007d90  73 69 6e 67 20 62 75 66  66 65 72 20 73 69 7a 65  |sing buffer size|
00007da0  2e 2e 22 29 3a 5f 55 25  21 26 39 38 3d a4 73 68  |.."):_U%!&98=.sh|
00007db0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 45 78 74  |ell_HeapBlockExt|
00007dc0  65 6e 64 28 5f 55 25 21  26 39 38 2c 5f 55 25 21  |end(_U%!&98,_U%!|
00007dd0  26 38 30 2c 5f 55 25 21  26 38 34 29 0d 08 d7 65  |&80,_U%!&84)...e|
00007de0  cd 3a 5f 51 25 21 26 43  3d 5f 51 25 21 38 3a 5f  |.:_Q%!&C=_Q%!8:_|
00007df0  51 25 21 31 36 3d 36 3a  5f 51 25 21 32 30 3d 5f  |Q%!16=6:_Q%!20=_|
00007e00  55 25 21 26 39 38 2b 5f  55 25 21 26 38 30 3a 5f  |U%!&98+_U%!&80:_|
00007e10  51 25 21 32 34 3d 5f 55  25 21 26 38 34 3a c8 99  |Q%!24=_U%!&84:..|
00007e20  26 34 30 30 45 37 2c 31  38 2c 5f 51 25 2c 5f 51  |&400E7,18,_Q%,_Q|
00007e30  25 21 34 3a 5f 55 25 21  26 37 30 3d 5f 51 25 21  |%!4:_U%!&70=_Q%!|
00007e40  38 0d 08 de 05 cd 0d 08  df 5c cc f2 73 68 65 6c  |8........\..shel|
00007e50  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00007e60  6e 28 5f 55 25 21 26 39  38 29 3a 5f 55 25 21 26  |n(_U%!&98):_U%!&|
00007e70  39 38 3d 30 3a f2 73 68  65 6c 6c 5f 4f 4b 28 a4  |98=0:.shell_OK(.|
00007e80  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4e 6f 41  |shell_MessageNoA|
00007e90  72 67 73 28 22 53 48 45  4c 4c 4d 53 47 31 35 22  |rgs("SHELLMSG15"|
00007ea0  29 29 0d 08 e4 07 cd 3a  e1 0d 08 e9 94 dd a4 73  |)).....:.......s|
00007eb0  68 65 6c 6c 5f 4c 6f 61  64 46 69 6c 65 28 6f 45  |hell_LoadFile(oE|
00007ec0  25 29 3a ea 66 24 2c 41  42 25 2c 74 42 25 2c 6c  |%):.f$,AB%,tB%,l|
00007ed0  41 25 3a 66 24 3d a4 73  68 65 6c 6c 5f 47 65 74  |A%:f$=.shell_Get|
00007ee0  53 74 72 69 6e 67 28 5f  51 25 2b 34 34 29 3a 41  |String(_Q%+44):A|
00007ef0  42 25 3d a4 73 68 65 6c  6c 5f 46 69 6c 65 4c 65  |B%=.shell_FileLe|
00007f00  6e 67 74 68 28 66 24 29  3a e7 41 42 25 3c 30 8c  |ngth(f$):.AB%<0.|
00007f10  f2 73 68 65 6c 6c 5f 4f  4b 28 a4 73 68 65 6c 6c  |.shell_OK(.shell|
00007f20  5f 4d 65 73 73 61 67 65  4e 6f 41 72 67 73 28 22  |_MessageNoArgs("|
00007f30  53 48 45 4c 4c 4d 53 47  31 36 22 29 29 0d 08 ee  |SHELLMSG16"))...|
00007f40  50 6c 41 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |PlA%=.shell_Heap|
00007f50  42 6c 6f 63 6b 46 65 74  63 68 28 41 42 25 29 3a  |BlockFetch(AB%):|
00007f60  c8 99 26 32 30 30 30 38  2c 31 36 2c 66 24 2c 6c  |..&20008,16,f$,l|
00007f70  41 25 2c 30 b8 3b 74 42  25 3a e7 a4 73 68 65 6c  |A%,0.;tB%:..shel|
00007f80  6c 5f 56 46 6c 61 67 28  74 42 25 29 8c 0d 08 f1  |l_VFlag(tB%)....|
00007f90  4d f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |M.shell_HeapBloc|
00007fa0  6b 52 65 74 75 72 6e 28  6c 41 25 29 3a f2 73 68  |kReturn(lA%):.sh|
00007fb0  65 6c 6c 5f 4f 4b 28 a4  73 68 65 6c 6c 5f 4d 65  |ell_OK(.shell_Me|
00007fc0  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
00007fd0  4c 4c 4d 53 47 31 37 22  29 29 0d 08 f3 40 cc f2  |LLMSG17"))...@..|
00007fe0  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 4c  |shell_Tracef0("L|
00007ff0  6f 61 64 46 69 6c 65 3a  46 69 6c 65 20 22 2b 66  |oadFile:File "+f|
00008000  24 2b 22 20 6c 6f 61 64  65 64 20 6f 6b 20 61 74  |$+" loaded ok at|
00008010  20 26 22 2b c3 7e 6c 41  25 29 0d 08 f7 0a cd 3a  | &"+.~lA%).....:|
00008020  3d 6c 41 25 0d 09 08 23  dd a4 73 68 65 6c 6c 5f  |=lA%...#..shell_|
00008030  56 46 6c 61 67 28 74 42  25 29 3a 3d 28 28 74 42  |VFlag(tB%):=((tB|
00008040  25 80 31 29 3d 31 29 0d  09 0e 67 dd a4 73 68 65  |%.1)=1)...g..she|
00008050  6c 6c 5f 43 68 65 63 6b  54 79 70 65 28 77 25 2c  |ll_CheckType(w%,|
00008060  47 42 25 2c 75 42 25 29  3a ea 70 45 25 2c 67 25  |GB%,uB%):.pE%,g%|
00008070  2c 6a 25 2c 62 25 2c 76  42 25 3a 67 25 3d 30 3a  |,j%,b%,vB%:g%=0:|
00008080  6a 25 3d 2d 31 3a 76 42  25 3d a3 3a e7 5f 55 25  |j%=-1:vB%=.:._U%|
00008090  21 26 36 34 80 31 3c 3c  31 8c 5f 55 25 21 26 36  |!&64.1<<1._U%!&6|
000080a0  34 3d 5f 55 25 21 26 36  34 82 31 3c 3c 31 0d 09  |4=_U%!&64.1<<1..|
000080b0  15 25 c8 95 47 42 25 21  67 25 3c 3e 2d 31 3a 62  |.%..GB%!g%<>-1:b|
000080c0  25 3d 47 42 25 21 67 25  3a e7 62 25 80 31 3c 3c  |%=GB%!g%:.b%.1<<|
000080d0  33 31 8c 0d 09 18 15 62  25 3d 62 25 82 31 3c 3c  |31.....b%=b%.1<<|
000080e0  33 31 3a 76 42 25 3d b9  0d 09 1a 0a cc 76 42 25  |31:vB%=......vB%|
000080f0  3d a3 0d 09 1c 0d cd 3a  e7 62 25 3d 77 25 8c 0d  |=......:.b%=w%..|
00008100  09 1e 0f 6a 25 3d 67 25  3a e7 76 42 25 8c 0d 09  |...j%=g%:.vB%...|
00008110  20 4c 5f 55 25 21 26 36  34 3d 5f 55 25 21 26 36  | L_U%!&64=_U%!&6|
00008120  34 84 31 3c 3c 31 3a f2  73 68 65 6c 6c 5f 54 72  |4.1<<1:.shell_Tr|
00008130  61 63 65 66 30 28 22 43  68 65 63 6b 54 79 70 65  |acef0("CheckType|
00008140  3a 54 6f 70 20 42 69 74  20 4c 6f 61 64 20 64 65  |:Top Bit Load de|
00008150  74 65 63 74 65 64 2e 2e  22 29 0d 09 24 05 cd 0d  |tected..")..$...|
00008160  09 25 23 cd 3a 67 25 2b  3d 34 3a ce 3a e7 75 42  |.%#.:g%+=4:.:.uB|
00008170  25 80 28 77 25 3e 3d 34  30 39 36 29 8c 6a 25 3d  |%.(w%>=4096).j%=|
00008180  2d 31 0d 09 2a 0b e7 6a  25 3e 2d 31 8c 0d 09 2b  |-1..*..j%>-1...+|
00008190  36 f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |6.shell_Tracef0(|
000081a0  22 43 68 65 63 6b 54 79  70 65 3a 46 69 6c 65 20  |"CheckType:File |
000081b0  74 79 70 65 20 4f 4b 20  22 2b c3 7e 47 42 25 21  |type OK "+.~GB%!|
000081c0  6a 25 29 0d 09 2c 37 cc  f2 73 68 65 6c 6c 5f 54  |j%)..,7..shell_T|
000081d0  72 61 63 65 66 30 28 22  43 68 65 63 6b 54 79 70  |racef0("CheckTyp|
000081e0  65 3a 46 69 6c 65 20 74  79 70 65 20 4e 4f 54 20  |e:File type NOT |
000081f0  6f 6b 20 22 2b c3 7e 77  25 29 0d 09 2e 13 cd 3a  |ok "+.~w%).....:|
00008200  e7 6a 25 3c 3e 2d 31 8c  3d b9 8b 3d a3 0d 09 35  |.j%<>-1.=..=...5|
00008210  b6 dd f2 73 68 65 6c 6c  5f 45 78 69 74 3a ea 4b  |...shell_Exit:.K|
00008220  42 25 3a 4b 42 25 3d 5f  55 25 21 36 38 3a c8 99  |B%:KB%=_U%!68:..|
00008230  26 36 31 35 30 34 2c 4b  42 25 3a c8 99 26 32 30  |&61504,KB%:..&20|
00008240  30 31 45 2c 37 2c 2c 4b  42 25 3a f2 73 68 65 6c  |01E,7,,KB%:.shel|
00008250  6c 5f 54 72 61 63 65 66  30 28 22 45 78 69 74 3a  |l_Tracef0("Exit:|
00008260  41 70 70 6c 69 63 61 74  69 6f 6e 20 63 6c 6f 73  |Application clos|
00008270  69 6e 67 20 64 6f 77 6e  22 29 3a f2 73 68 65 6c  |ing down"):.shel|
00008280  6c 5f 54 72 61 63 65 45  78 69 74 3a c8 99 26 34  |l_TraceExit:..&4|
00008290  30 36 43 32 3a c8 99 26  34 30 30 44 30 2c 2c 2d  |06C2:..&400D0,,-|
000082a0  31 3a f2 73 68 65 6c 6c  5f 57 69 6d 70 43 6c 6f  |1:.shell_WimpClo|
000082b0  73 65 44 6f 77 6e 5f 49  28 5f 55 25 21 26 39 34  |seDown_I(_U%!&94|
000082c0  29 3a e1 0d 09 46 9a dd  f2 73 68 65 6c 6c 5f 44  |):...F...shell_D|
000082d0  61 74 61 4c 6f 61 64 28  5f 51 25 2c 75 42 25 29  |ataLoad(_Q%,uB%)|
000082e0  3a ea 6b 45 25 2c 64 25  2c 61 25 2c 5f 74 65 6d  |:.kE%,d%,a%,_tem|
000082f0  70 25 2c 47 42 25 2c 77  25 2c 63 24 3a 77 25 3d  |p%,GB%,w%,c$:w%=|
00008300  5f 51 25 21 34 30 3a 63  24 3d a4 73 68 65 6c 6c  |_Q%!40:c$=.shell|
00008310  5f 47 65 74 53 74 72 69  6e 67 28 5f 51 25 2b 34  |_GetString(_Q%+4|
00008320  34 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |4):.shell_Tracef|
00008330  30 28 22 44 61 74 61 4c  6f 61 64 3a 44 61 74 61  |0("DataLoad:Data|
00008340  4c 6f 61 64 20 6d 65 73  73 61 67 65 20 72 65 63  |Load message rec|
00008350  65 69 76 65 64 22 29 3a  e7 75 42 25 8c 0d 09 53  |eived"):.uB%...S|
00008360  0f e7 5f 55 25 21 39 36  3c 3e 30 8c 0d 09 54 08  |.._U%!96<>0...T.|
00008370  64 25 3d 30 0d 09 55 0a  cc 64 25 3d 2d 31 0d 09  |d%=0..U..d%=-1..|
00008380  57 05 cd 0d 09 58 44 cc  64 25 3d a4 73 68 65 6c  |W....XD.d%=.shel|
00008390  6c 5f 47 65 74 45 76 65  6e 74 4c 69 73 74 4f 66  |l_GetEventListOf|
000083a0  66 73 65 74 28 5f 51 25  21 32 30 2c 5f 51 25 21  |fset(_Q%!20,_Q%!|
000083b0  32 34 2c 5f 55 25 2b 39  36 2c 31 36 2c a3 29 3a  |24,_U%+96,16,.):|
000083c0  e7 64 25 3d 2d 31 8c 0d  09 5d 37 64 25 3d a4 73  |.d%=-1...]7d%=.s|
000083d0  68 65 6c 6c 5f 47 65 74  45 76 65 6e 74 4c 69 73  |hell_GetEventLis|
000083e0  74 4f 66 66 73 65 74 28  5f 51 25 21 32 30 2c 2d  |tOffset(_Q%!20,-|
000083f0  31 2c 5f 55 25 2b 39 36  2c 31 36 2c a3 29 0d 09  |1,_U%+96,16,.)..|
00008400  5e 05 cd 0d 09 5f 0d cd  3a e7 64 25 3e 2d 31 8c  |^...._..:.d%>-1.|
00008410  0d 09 62 34 61 25 3d 5f  55 25 21 39 36 2b 64 25  |..b4a%=_U%!96+d%|
00008420  3a e7 a4 73 68 65 6c 6c  5f 43 68 65 63 6b 54 79  |:..shell_CheckTy|
00008430  70 65 28 5f 51 25 21 34  30 2c 61 25 21 38 2c 75  |pe(_Q%!40,a%!8,u|
00008440  42 25 29 8c 0d 09 66 89  f2 73 68 65 6c 6c 5f 54  |B%)...f..shell_T|
00008450  72 61 63 65 66 30 28 22  44 61 74 61 4c 6f 61 64  |racef0("DataLoad|
00008460  3a 46 69 6c 65 20 74 79  70 65 20 72 65 63 6f 67  |:File type recog|
00008470  6e 69 73 65 64 20 28 26  22 2b c3 7e 5f 51 25 21  |nised (&"+.~_Q%!|
00008480  34 30 2b 22 29 22 29 3a  43 45 25 3d 5f 51 25 21  |40+")"):CE%=_Q%!|
00008490  26 43 3a 5f 51 25 21 26  43 3d 5f 51 25 21 38 3a  |&C:_Q%!&C=_Q%!8:|
000084a0  5f 51 25 21 31 36 3d 34  3a c8 99 26 34 30 30 45  |_Q%!16=4:..&400E|
000084b0  37 2c 31 38 2c 5f 51 25  2c 5f 51 25 21 34 3a e7  |7,18,_Q%,_Q%!4:.|
000084c0  5f 55 25 21 26 36 34 80  31 3c 3c 31 8c 0d 09 6d  |_U%!&64.1<<1...m|
000084d0  1f 6c 41 25 3d 2d 31 3a  5f 55 25 21 26 36 34 3d  |.lA%=-1:_U%!&64=|
000084e0  5f 55 25 21 26 36 34 82  31 3c 3c 31 0d 09 6f 25  |_U%!&64.1<<1..o%|
000084f0  cc 6c 41 25 3d a4 73 68  65 6c 6c 5f 4c 6f 61 64  |.lA%=.shell_Load|
00008500  46 69 6c 65 28 43 45 25  3d 5f 55 25 21 26 36 43  |File(CE%=_U%!&6C|
00008510  29 0d 09 71 42 cd 3a f2  73 68 65 6c 6c 5f 55 73  |)..qB.:.shell_Us|
00008520  65 72 46 4e 4c 6f 61 64  46 69 6c 65 28 77 25 2c  |erFNLoadFile(w%,|
00008530  6c 41 25 2c 61 25 21 38  2c 63 24 2c 5f 51 25 21  |lA%,a%!8,c$,_Q%!|
00008540  33 36 2c 61 25 29 3a e7  5f 55 25 21 26 39 43 3c  |36,a%):._U%!&9C<|
00008550  3e 30 8c 0d 09 75 2d f2  73 68 65 6c 6c 5f 48 65  |>0...u-.shell_He|
00008560  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 5f 55  |apBlockReturn(_U|
00008570  25 21 26 39 43 29 3a 5f  55 25 21 26 39 43 3d 30  |%!&9C):_U%!&9C=0|
00008580  0d 09 77 05 cd 0d 09 78  48 cc f2 73 68 65 6c 6c  |..w....xH..shell|
00008590  5f 54 72 61 63 65 66 30  28 22 44 61 74 61 4c 6f  |_Tracef0("DataLo|
000085a0  61 64 3a 46 69 6c 65 20  74 79 70 65 20 4e 4f 54  |ad:File type NOT|
000085b0  20 72 65 63 6f 67 6e 69  73 65 64 20 28 26 22 2b  | recognised (&"+|
000085c0  c3 7e 5f 51 25 21 34 30  2b 22 29 22 29 0d 09 7c  |.~_Q%!40+")")..||
000085d0  05 cd 0d 09 7d 07 cd 3a  e1 0d 09 84 85 dd f2 73  |....}..:.......s|
000085e0  68 65 6c 6c 5f 55 73 65  72 46 4e 4c 6f 61 64 46  |hell_UserFNLoadF|
000085f0  69 6c 65 28 77 25 2c 6c  41 25 2c 47 42 25 2c 5f  |ile(w%,lA%,GB%,_|
00008600  66 69 6c 65 6e 61 6d 65  24 2c 5f 66 69 6c 65 5f  |filename$,_file_|
00008610  73 69 7a 65 25 2c 61 25  29 3a ea 67 25 2c 6a 25  |size%,a%):.g%,j%|
00008620  2c 62 25 2c 70 25 3a 67  25 3d 30 3a 6a 25 3d 2d  |,b%,p%:g%=0:j%=-|
00008630  31 3a c8 95 47 42 25 21  67 25 3c 3e 2d 31 3a 62  |1:..GB%!g%<>-1:b|
00008640  25 3d 47 42 25 21 67 25  3a e7 62 25 80 31 3c 3c  |%=GB%!g%:.b%.1<<|
00008650  33 31 8c 62 25 3d 62 25  82 31 3c 3c 33 31 0d 09  |31.b%=b%.1<<31..|
00008660  8b 10 e7 62 25 3d 77 25  8c 6a 25 3d 67 25 0d 09  |...b%=w%.j%=g%..|
00008670  8c 5b 67 25 2b 3d 34 3a  ce 3a 62 25 3d 61 25 21  |.[g%+=4:.:b%=a%!|
00008680  26 43 3a 70 25 3d a0 28  22 46 4e 22 2b 24 28 62  |&C:p%=.("FN"+$(b|
00008690  25 21 6a 25 29 2b 22 28  22 2b c3 6c 41 25 2b 22  |%!j%)+"("+.lA%+"|
000086a0  2c 22 2b c3 77 25 2b 22  2c 5f 66 69 6c 65 6e 61  |,"+.w%+",_filena|
000086b0  6d 65 24 2c 22 2b c3 5f  66 69 6c 65 5f 73 69 7a  |me$,"+._file_siz|
000086c0  65 25 2b 22 29 22 29 3a  e1 0d 09 95 6c dd f2 73  |e%+")"):....l..s|
000086d0  68 65 6c 6c 5f 44 61 74  61 53 61 76 65 28 5f 51  |hell_DataSave(_Q|
000086e0  25 29 3a ea 62 25 2c 64  25 2c 61 25 2c 6d 25 3a  |%):.b%,d%,a%,m%:|
000086f0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00008700  44 61 74 61 53 61 76 65  3a 44 61 74 61 53 61 76  |DataSave:DataSav|
00008710  65 20 6d 65 73 73 61 67  65 20 72 65 63 65 69 76  |e message receiv|
00008720  65 64 22 29 3a e7 5f 51  25 21 34 3c 3e 5f 55 25  |ed"):._Q%!4<>_U%|
00008730  21 26 39 34 8c 0d 09 a0  43 64 25 3d a4 73 68 65  |!&94....Cd%=.she|
00008740  6c 6c 5f 47 65 74 45 76  65 6e 74 4c 69 73 74 4f  |ll_GetEventListO|
00008750  66 66 73 65 74 28 5f 51  25 21 32 30 2c 5f 51 25  |ffset(_Q%!20,_Q%|
00008760  21 32 34 2c 5f 55 25 2b  39 36 2c 31 36 2c a3 29  |!24,_U%+96,16,.)|
00008770  3a e7 64 25 3e 2d 31 8c  0d 09 a2 32 61 25 3d 5f  |:.d%>-1....2a%=_|
00008780  55 25 21 39 36 2b 64 25  3a e7 a4 73 68 65 6c 6c  |U%!96+d%:..shell|
00008790  5f 43 68 65 63 6b 54 79  70 65 28 5f 51 25 21 34  |_CheckType(_Q%!4|
000087a0  30 2c 61 25 21 38 2c a3  29 8c 0d 09 a5 60 f2 73  |0,a%!8,.)....`.s|
000087b0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 44 61  |hell_Tracef0("Da|
000087c0  74 61 53 61 76 65 3a 46  69 6c 65 74 79 70 65 20  |taSave:Filetype |
000087d0  72 65 63 6f 67 6e 69 7a  65 64 20 28 26 22 2b c3  |recognized (&"+.|
000087e0  7e 5f 51 25 21 34 30 2b  22 29 22 29 3a e7 a4 73  |~_Q%!40+")"):..s|
000087f0  68 65 6c 6c 5f 54 6f 70  42 69 74 4c 6f 61 64 49  |hell_TopBitLoadI|
00008800  6e 50 72 6f 67 72 65 73  73 8c 0d 09 ac d3 f2 73  |nProgress......s|
00008810  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 44 61  |hell_Tracef0("Da|
00008820  74 61 53 61 76 65 3a 27  6e 6f 20 6c 6f 61 64 27  |taSave:'no load'|
00008830  20 66 6c 61 67 20 73 65  74 22 29 3a f2 73 68 65  | flag set"):.she|
00008840  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
00008850  53 61 76 65 3a 53 65 6e  64 69 6e 67 20 4d 65 73  |Save:Sending Mes|
00008860  73 61 67 65 5f 44 61 74  61 53 61 76 65 41 63 6b  |sage_DataSaveAck|
00008870  22 29 3a 5f 51 25 21 30  3d 32 35 36 3a 5f 51 25  |"):_Q%!0=256:_Q%|
00008880  21 26 43 3d 5f 51 25 21  38 3a 5f 51 25 21 33 36  |!&C=_Q%!8:_Q%!36|
00008890  3d 2d 31 3a 5f 51 25 21  31 36 3d 32 3a 24 28 5f  |=-1:_Q%!16=2:$(_|
000088a0  51 25 2b 34 34 29 3d a4  73 68 65 6c 6c 5f 47 65  |Q%+44)=.shell_Ge|
000088b0  74 41 70 70 44 69 72 2b  22 2e 53 63 72 61 70 46  |tAppDir+".ScrapF|
000088c0  69 6c 65 22 2b bd 30 3a  c8 99 26 34 30 30 45 37  |ile"+.0:..&400E7|
000088d0  2c 31 38 2c 5f 51 25 2c  5f 51 25 21 34 0d 09 b3  |,18,_Q%,_Q%!4...|
000088e0  f1 cc f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |...shell_HeapBlo|
000088f0  63 6b 52 65 74 75 72 6e  28 5f 55 25 21 26 39 43  |ckReturn(_U%!&9C|
00008900  29 3a 5f 55 25 21 26 39  43 3d a4 73 68 65 6c 6c  |):_U%!&9C=.shell|
00008910  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00008920  28 5f 51 25 21 30 29 2b  38 29 3a 62 25 3d 5f 55  |(_Q%!0)+8):b%=_U|
00008930  25 21 26 39 43 3a e3 6d  25 3d 30 b8 5f 51 25 21  |%!&9C:.m%=0._Q%!|
00008940  30 88 34 3a 62 25 21 6d  25 3d 5f 51 25 21 6d 25  |0.4:b%!m%=_Q%!m%|
00008950  3a ed 6d 25 3a 5f 55 25  21 32 38 3d 5f 51 25 21  |:.m%:_U%!28=_Q%!|
00008960  32 30 3a 5f 55 25 21 33  32 3d 5f 51 25 21 32 34  |20:_U%!32=_Q%!24|
00008970  3a 5f 55 25 21 26 38 30  3d 30 3a 5f 55 25 21 26  |:_U%!&80=0:_U%!&|
00008980  38 34 3d 5f 51 25 21 33  36 3a 5f 55 25 21 26 39  |84=_Q%!36:_U%!&9|
00008990  38 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |8=.shell_HeapBlo|
000089a0  63 6b 46 65 74 63 68 28  5f 51 25 21 33 36 29 3a  |ckFetch(_Q%!36):|
000089b0  5f 51 25 21 30 3d 32 38  3a 5f 51 25 21 26 43 3d  |_Q%!0=28:_Q%!&C=|
000089c0  5f 51 25 21 38 3a 5f 51  25 21 31 36 3d 36 0d 09  |_Q%!8:_Q%!16=6..|
000089d0  c8 81 5f 51 25 21 32 30  3d 5f 55 25 21 26 39 38  |.._Q%!20=_U%!&98|
000089e0  2b 5f 55 25 21 26 38 30  3a 5f 51 25 21 32 34 3d  |+_U%!&80:_Q%!24=|
000089f0  5f 55 25 21 26 38 34 3a  c8 99 26 34 30 30 45 37  |_U%!&84:..&400E7|
00008a00  2c 31 38 2c 5f 51 25 2c  5f 51 25 21 34 3a 5f 55  |,18,_Q%,_Q%!4:_U|
00008a10  25 21 26 37 30 3d 5f 51  25 21 38 3a f2 73 68 65  |%!&70=_Q%!8:.she|
00008a20  6c 6c 5f 54 72 61 63 65  66 30 28 22 44 61 74 61  |ll_Tracef0("Data|
00008a30  53 61 76 65 3a 53 65 6e  64 69 6e 67 20 4d 65 73  |Save:Sending Mes|
00008a40  73 61 67 65 5f 52 41 4d  46 65 74 63 68 22 29 0d  |sage_RAMFetch").|
00008a50  09 cf 05 cd 0d 09 d0 37  cc f2 73 68 65 6c 6c 5f  |.......7..shell_|
00008a60  54 72 61 63 65 66 30 28  22 44 61 74 61 53 61 76  |Tracef0("DataSav|
00008a70  65 3a 46 69 6c 65 74 79  70 65 20 4e 4f 54 20 72  |e:Filetype NOT r|
00008a80  65 63 6f 67 6e 69 7a 65  64 22 29 0d 09 d4 05 cd  |ecognized").....|
00008a90  0d 09 d5 05 cd 0d 09 d6  07 cd 3a e1 0d 09 e2 34  |..........:....4|
00008aa0  dd a4 73 68 65 6c 6c 5f  54 6f 70 42 69 74 4c 6f  |..shell_TopBitLo|
00008ab0  61 64 49 6e 50 72 6f 67  72 65 73 73 3a e7 5f 55  |adInProgress:._U|
00008ac0  25 21 26 36 34 80 31 3c  3c 31 8c 3d b9 8b 3d a3  |%!&64.1<<1.=..=.|
00008ad0  0d 09 e7 9f dd f2 73 68  65 6c 6c 5f 53 65 6e 64  |......shell_Send|
00008ae0  44 61 74 61 53 61 76 65  28 63 25 2c 65 25 29 3a  |DataSave(c%,e%):|
00008af0  ea 61 25 2c 4c 41 25 2c  48 42 25 2c 64 25 2c 41  |.a%,LA%,HB%,d%,A|
00008b00  42 25 2c 70 25 3a 48 42  25 3d a4 73 68 65 6c 6c  |B%,p%:HB%=.shell|
00008b10  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
00008b20  33 30 29 3a c8 99 26 34  30 30 43 46 2c 2c 48 42  |30):..&400CF,,HB|
00008b30  25 3a 64 25 3d a4 73 68  65 6c 6c 5f 47 65 74 45  |%:d%=.shell_GetE|
00008b40  76 65 6e 74 4c 69 73 74  4f 66 66 73 65 74 28 63  |ventListOffset(c|
00008b50  25 2c 65 25 2c 5f 55 25  2b 37 32 2c 32 34 2c a3  |%,e%,_U%+72,24,.|
00008b60  29 3a e7 64 25 3d 2d 31  84 64 25 3d 2d 32 8c 0d  |):.d%=-1.d%=-2..|
00008b70  09 ef 64 70 25 3d a4 73  68 65 6c 6c 5f 4d 65 73  |..dp%=.shell_Mes|
00008b80  73 61 67 65 57 69 6e 64  6f 77 28 a4 73 68 65 6c  |sageWindow(.shel|
00008b90  6c 5f 4d 65 73 73 61 67  65 4e 6f 41 72 67 73 28  |l_MessageNoArgs(|
00008ba0  22 53 48 45 4c 4c 4d 53  47 31 33 22 29 2c 30 2c  |"SHELLMSG13"),0,|
00008bb0  22 22 2c a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |"",.shell_Messag|
00008bc0  65 4e 6f 41 72 67 73 28  22 77 61 72 6e 69 6e 67  |eNoArgs("warning|
00008bd0  22 29 29 0d 09 f0 20 cc  61 25 3d 28 5f 55 25 21  |"))... .a%=(_U%!|
00008be0  37 32 29 2b 64 25 3a e7  61 25 21 38 3e 26 38 30  |72)+d%:.a%!8>&80|
00008bf0  30 30 8c 0d 09 f3 24 41  42 25 3d a4 73 68 65 6c  |00....$AB%=.shel|
00008c00  6c 5f 48 65 61 70 42 6c  6f 63 6b 49 6e 66 6f 28  |l_HeapBlockInfo(|
00008c10  61 25 21 38 29 2d 34 0d  09 f4 0d cc 41 42 25 3d  |a%!8)-4.....AB%=|
00008c20  61 25 21 38 0d 09 f6 f4  cd 3a 4c 41 25 3d 5f 55  |a%!8.....:LA%=_U|
00008c30  25 21 37 36 3a 4c 41 25  21 30 3d 32 35 36 3a 4c  |%!76:LA%!0=256:L|
00008c40  41 25 21 26 43 3d 30 3a  4c 41 25 21 31 36 3d 31  |A%!&C=0:LA%!16=1|
00008c50  3a 4c 41 25 21 32 30 3d  48 42 25 21 26 43 3a 4c  |:LA%!20=HB%!&C:L|
00008c60  41 25 21 32 34 3d 48 42  25 21 31 36 3a 4c 41 25  |A%!24=HB%!16:LA%|
00008c70  21 32 38 3d 48 42 25 21  30 3a 4c 41 25 21 33 32  |!28=HB%!0:LA%!32|
00008c80  3d 48 42 25 21 34 3a 4c  41 25 21 33 36 3d 41 42  |=HB%!4:LA%!36=AB|
00008c90  25 3a 4c 41 25 21 34 30  3d 61 25 21 26 43 3a 24  |%:LA%!40=a%!&C:$|
00008ca0  28 4c 41 25 2b 34 34 29  3d a4 73 68 65 6c 6c 5f  |(LA%+44)=.shell_|
00008cb0  4c 65 61 66 28 a4 73 68  65 6c 6c 5f 49 63 6f 6e  |Leaf(.shell_Icon|
00008cc0  47 65 74 44 61 74 61 28  63 25 2c 61 25 21 31 36  |GetData(c%,a%!16|
00008cd0  29 29 3a c8 99 26 34 30  30 45 37 2c 31 38 2c 4c  |)):..&400E7,18,L|
00008ce0  41 25 2c 4c 41 25 21 32  30 2c 4c 41 25 21 32 34  |A%,LA%!20,LA%!24|
00008cf0  3a 5f 55 25 21 26 37 38  3d 5f 51 25 21 38 3a 5f  |:_U%!&78=_Q%!8:_|
00008d00  55 25 21 26 38 38 3d 41  42 25 3a 5f 55 25 21 26  |U%!&88=AB%:_U%!&|
00008d10  38 43 3d 61 25 21 26 43  0d 0a 06 3b 5f 55 25 21  |8C=a%!&C...;_U%!|
00008d20  26 39 30 3d 61 25 21 38  3a 5f 55 25 21 26 39 43  |&90=a%!8:_U%!&9C|
00008d30  3d 61 25 21 34 3a 5f 55  25 21 26 43 38 3d 4c 41  |=a%!4:_U%!&C8=LA|
00008d40  25 21 32 30 3a 5f 55 25  21 26 43 43 3d 4c 41 25  |%!20:_U%!&CC=LA%|
00008d50  21 32 34 0d 0a 0a 23 cd  3a f2 73 68 65 6c 6c 5f  |!24...#.:.shell_|
00008d60  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
00008d70  48 42 25 29 3a e1 0d 0a  10 f9 dd f2 73 68 65 6c  |HB%):.......shel|
00008d80  6c 5f 44 61 74 61 53 61  76 65 41 63 6b 28 5f 51  |l_DataSaveAck(_Q|
00008d90  25 29 3a ea 5f 66 75 6c  6c 6e 61 6d 65 24 2c 78  |%):._fullname$,x|
00008da0  25 2c 54 41 25 2c 61 25  2c 62 25 2c 70 25 3a f2  |%,TA%,a%,b%,p%:.|
00008db0  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 44  |shell_Tracef0("D|
00008dc0  61 74 61 53 61 76 65 41  63 6b 3a 44 61 74 61 53  |ataSaveAck:DataS|
00008dd0  61 76 65 41 63 6b 20 6d  65 73 73 61 67 65 20 72  |aveAck message r|
00008de0  65 63 65 69 76 65 64 22  29 3a 78 25 3d 30 3a 54  |eceived"):x%=0:T|
00008df0  41 25 3d 5f 51 25 3f 28  34 34 2b 78 25 29 3a c8  |A%=_Q%?(44+x%):.|
00008e00  95 54 41 25 3c 3e 30 3a  5f 66 75 6c 6c 6e 61 6d  |.TA%<>0:_fullnam|
00008e10  65 24 2b 3d bd 28 54 41  25 29 3a 78 25 2b 3d 31  |e$+=.(TA%):x%+=1|
00008e20  3a 54 41 25 3d 5f 51 25  3f 28 34 34 2b 78 25 29  |:TA%=_Q%?(44+x%)|
00008e30  3a ce 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |:.:.shell_Tracef|
00008e40  30 28 22 44 61 74 61 53  61 76 65 41 63 6b 3a 46  |0("DataSaveAck:F|
00008e50  75 6c 6c 20 73 61 76 65  20 6e 61 6d 65 20 69 73  |ull save name is|
00008e60  3a 20 22 2b 5f 66 75 6c  6c 6e 61 6d 65 24 29 0d  |: "+_fullname$).|
00008e70  0a 1d c9 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |....shell_Tracef|
00008e80  30 28 22 44 61 74 61 53  61 76 65 41 63 6b 3a 74  |0("DataSaveAck:t|
00008e90  61 73 6b 3d 22 2b c3 5f  51 25 21 34 29 3a f2 73  |ask="+._Q%!4):.s|
00008ea0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 44 61  |hell_Tracef0("Da|
00008eb0  74 61 53 61 76 65 41 63  6b 3a 6d 79 74 61 73 6b  |taSaveAck:mytask|
00008ec0  3d 22 2b c3 5f 55 25 21  26 39 34 29 3a 64 25 3d  |="+._U%!&94):d%=|
00008ed0  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00008ee0  69 73 74 4f 66 66 73 65  74 28 5f 55 25 21 32 38  |istOffset(_U%!28|
00008ef0  2c 5f 55 25 21 33 32 2c  5f 55 25 2b 37 32 2c 32  |,_U%!32,_U%+72,2|
00008f00  34 2c a3 29 3a e7 64 25  3d 2d 31 84 64 25 3d 2d  |4,.):.d%=-1.d%=-|
00008f10  32 8c 85 39 39 2c a4 73  68 65 6c 6c 5f 4d 65 73  |2..99,.shell_Mes|
00008f20  73 61 67 65 4e 6f 41 72  67 73 28 22 53 48 45 4c  |sageNoArgs("SHEL|
00008f30  4c 4d 53 47 30 35 22 29  0d 0a 22 25 61 25 3d 28  |LMSG05").."%a%=(|
00008f40  5f 55 25 21 37 32 29 2b  64 25 3a 62 25 3d 61 25  |_U%!72)+d%:b%=a%|
00008f50  21 32 30 3a e7 24 62 25  3c 3e 22 22 8c 0d 0a 26  |!20:.$b%<>""...&|
00008f60  21 70 25 3d a0 28 22 46  4e 22 2b 24 62 25 2b 22  |!p%=.("FN"+$b%+"|
00008f70  28 5f 66 75 6c 6c 6e 61  6d 65 24 29 22 29 0d 0a  |(_fullname$)")..|
00008f80  27 23 cc e7 a4 73 68 65  6c 6c 5f 48 65 61 70 42  |'#...shell_HeapB|
00008f90  6c 6f 63 6b 45 78 69 73  74 73 28 61 25 21 38 29  |lockExists(a%!8)|
00008fa0  8c 0d 0a 2c 43 c8 99 38  2c 26 41 2c 5f 66 75 6c  |...,C..8,&A,_ful|
00008fb0  6c 6e 61 6d 65 24 2c 61  25 21 26 43 2c 2c 61 25  |lname$,a%!&C,,a%|
00008fc0  21 38 2c 61 25 21 38 2b  a4 73 68 65 6c 6c 5f 48  |!8,a%!8+.shell_H|
00008fd0  65 61 70 42 6c 6f 63 6b  49 6e 66 6f 28 61 25 21  |eapBlockInfo(a%!|
00008fe0  38 29 2b 31 0d 0a 2d 2b  cc 85 39 39 2c a4 73 68  |8)+1..-+..99,.sh|
00008ff0  65 6c 6c 5f 4d 65 73 73  61 67 65 4e 6f 41 72 67  |ell_MessageNoArg|
00009000  73 28 22 53 48 45 4c 4c  4d 53 47 32 31 22 29 0d  |s("SHELLMSG21").|
00009010  0a 30 05 cd 0d 0a 31 11  cd 3a e7 5f 51 25 21 33  |.0....1..:._Q%!3|
00009020  36 3e 2d 31 8c 0d 0a 34  2d e7 5f 55 25 21 38 30  |6>-1...4-._U%!80|
00009030  3c 3e 30 8c f2 73 68 65  6c 6c 5f 48 65 61 70 42  |<>0..shell_HeapB|
00009040  6c 6f 63 6b 52 65 74 75  72 6e 28 5f 55 25 21 38  |lockReturn(_U%!8|
00009050  30 29 0d 0a 35 48 5f 55  25 21 38 30 3d a4 73 68  |0)..5H_U%!80=.sh|
00009060  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
00009070  63 68 28 a9 5f 66 75 6c  6c 6e 61 6d 65 24 2b 31  |ch(._fullname$+1|
00009080  29 3a 62 25 3d 5f 55 25  21 38 30 3a 24 62 25 3d  |):b%=_U%!80:$b%=|
00009090  5f 66 75 6c 6c 6e 61 6d  65 24 0d 0a 38 dc cd 3a  |_fullname$..8..:|
000090a0  5f 51 25 21 31 36 3d 33  3a 21 5f 51 25 3d 32 35  |_Q%!16=3:!_Q%=25|
000090b0  36 3a 5f 51 25 21 32 30  3d 5f 55 25 21 26 43 38  |6:_Q%!20=_U%!&C8|
000090c0  3a 5f 51 25 21 32 34 3d  5f 55 25 21 26 43 43 3a  |:_Q%!24=_U%!&CC:|
000090d0  5f 51 25 21 34 30 3d 5f  55 25 21 26 38 43 3a 5f  |_Q%!40=_U%!&8C:_|
000090e0  51 25 21 33 36 3d a4 73  68 65 6c 6c 5f 46 69 6c  |Q%!36=.shell_Fil|
000090f0  65 4c 65 6e 67 74 68 28  5f 66 75 6c 6c 6e 61 6d  |eLength(_fullnam|
00009100  65 24 29 3a 5f 51 25 21  26 43 3d 5f 51 25 21 38  |e$):_Q%!&C=_Q%!8|
00009110  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
00009120  22 44 61 74 61 53 61 76  65 41 63 6b 3a 46 69 6c  |"DataSaveAck:Fil|
00009130  65 20 6c 65 6e 67 74 68  20 69 73 20 22 2b c3 5f  |e length is "+._|
00009140  51 25 21 33 36 2b 22 20  62 79 74 65 73 22 29 3a  |Q%!36+" bytes"):|
00009150  24 28 5f 51 25 2b 34 34  29 3d 5f 66 75 6c 6c 6e  |$(_Q%+44)=_fulln|
00009160  61 6d 65 24 2b bd 28 30  29 3a 5f 55 25 21 38 34  |ame$+.(0):_U%!84|
00009170  3d 5f 51 25 21 38 0d 0a  43 69 f2 73 68 65 6c 6c  |=_Q%!8..Ci.shell|
00009180  5f 54 72 61 63 65 66 30  28 22 44 61 74 61 53 61  |_Tracef0("DataSa|
00009190  76 65 41 63 6b 3a 53 65  6e 64 69 6e 67 20 44 61  |veAck:Sending Da|
000091a0  74 61 4c 6f 61 64 20 4d  65 73 73 61 67 65 22 29  |taLoad Message")|
000091b0  3a c8 99 26 34 30 30 45  37 2c 31 38 2c 5f 51 25  |:..&400E7,18,_Q%|
000091c0  2c 5f 51 25 21 32 30 2c  5f 51 25 21 32 34 3a e7  |,_Q%!20,_Q%!24:.|
000091d0  5f 55 25 21 32 38 3c 3e  5f 55 25 21 32 30 8c 0d  |_U%!28<>_U%!20..|
000091e0  0a 49 1e f2 73 68 65 6c  6c 5f 43 6c 6f 73 65 57  |.I..shell_CloseW|
000091f0  69 6e 64 6f 77 28 5f 55  25 21 32 38 29 0d 0a 4a  |indow(_U%!28)..J|
00009200  14 cd 3a c8 99 26 34 30  30 44 34 2c 2c 2d 31 3a  |..:..&400D4,,-1:|
00009210  e1 0d 0a 50 45 dd f2 73  68 65 6c 6c 5f 44 61 74  |...PE..shell_Dat|
00009220  61 53 61 76 65 43 68 65  63 6b 4e 61 6d 65 28 63  |aSaveCheckName(c|
00009230  25 2c 65 25 29 3a ea 64  25 2c 61 25 2c 6f 25 3a  |%,e%):.d%,a%,o%:|
00009240  61 25 3d 5f 55 25 21 37  32 3a 64 25 3d 30 3a e7  |a%=_U%!72:d%=0:.|
00009250  61 25 3c 3e 30 8c 0d 0a  58 31 6f 25 3d a4 73 68  |a%<>0...X1o%=.sh|
00009260  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 49 6e 66  |ell_HeapBlockInf|
00009270  6f 28 61 25 29 2d 38 3a  f5 3a e7 21 28 61 25 2b  |o(a%)-8:.:.!(a%+|
00009280  64 25 29 3d 63 25 8c 0d  0a 5e 5e 57 24 3d a4 73  |d%)=c%...^^W$=.s|
00009290  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 44 61 74 61  |hell_IconGetData|
000092a0  28 21 61 25 2c 61 25 21  31 36 29 3a e7 a7 57 24  |(!a%,a%!16):..W$|
000092b0  2c 22 2e 22 29 3d 30 8c  f2 73 68 65 6c 6c 5f 4f  |,".")=0..shell_O|
000092c0  4b 28 a4 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |K(.shell_Message|
000092d0  4e 6f 41 72 67 73 28 22  53 48 45 4c 4c 4d 53 47  |NoArgs("SHELLMSG|
000092e0  30 31 22 29 29 0d 0a 60  09 64 25 3d 6f 25 0d 0a  |01"))..`.d%=o%..|
000092f0  61 14 cd 3a 64 25 2b 3d  32 34 3a fd 64 25 3e 3d  |a..:d%+=24:.d%>=|
00009300  6f 25 0d 0a 64 07 cd 3a  e1 0d 0a 69 6c dd f2 73  |o%..d..:...il..s|
00009310  68 65 6c 6c 5f 44 61 74  61 4c 6f 61 64 41 63 6b  |hell_DataLoadAck|
00009320  28 5f 51 25 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |(_Q%):.shell_Tra|
00009330  63 65 66 30 28 22 44 61  74 61 4c 6f 61 64 41 63  |cef0("DataLoadAc|
00009340  6b 3a 44 61 74 61 4c 6f  61 64 41 63 6b 20 6d 65  |k:DataLoadAck me|
00009350  73 73 61 67 65 20 72 65  63 65 69 76 65 64 20 28  |ssage received (|
00009360  66 69 6c 65 20 72 65 63  65 69 76 65 64 20 6f 6b  |file received ok|
00009370  29 22 29 3a e1 0d 0a 71  31 dd f2 73 68 65 6c 6c  |)"):...q1..shell|
00009380  5f 55 73 65 72 4d 65 73  73 61 67 65 41 63 6b 6e  |_UserMessageAckn|
00009390  6f 77 6c 65 64 67 65 28  5f 51 25 29 3a c8 8e 5f  |owledge(_Q%):.._|
000093a0  51 25 21 31 36 ca 0d 0a  73 1e c9 33 3a f2 73 68  |Q%!16...s..3:.sh|
000093b0  65 6c 6c 5f 41 63 6b 44  61 74 61 4c 6f 61 64 28  |ell_AckDataLoad(|
000093c0  5f 51 25 29 0d 0a 74 1e  c9 36 3a f2 73 68 65 6c  |_Q%)..t..6:.shel|
000093d0  6c 5f 41 63 6b 52 41 4d  46 65 74 63 68 28 5f 51  |l_AckRAMFetch(_Q|
000093e0  25 29 0d 0a 75 07 cb 3a  e1 0d 0a 7a 2d dd f2 73  |%)..u..:...z-..s|
000093f0  68 65 6c 6c 5f 41 63 6b  44 61 74 61 4c 6f 61 64  |hell_AckDataLoad|
00009400  28 5f 51 25 29 3a e7 5f  51 25 21 26 43 3c 3e 5f  |(_Q%):._Q%!&C<>_|
00009410  55 25 21 38 34 8c 0d 0a  7f 48 c8 99 26 32 30 30  |U%!84....H..&200|
00009420  30 38 2c 36 2c 22 3c 57  69 6d 70 24 53 63 72 61  |08,6,"<Wimp$Scra|
00009430  70 3e 22 3a 85 26 46 46  2c 22 44 61 74 61 20 54  |p>":.&FF,"Data T|
00009440  72 61 6e 73 66 65 72 20  66 61 69 6c 65 64 3a 20  |ransfer failed: |
00009450  52 65 63 65 69 76 65 72  20 64 69 65 64 22 0d 0a  |Receiver died"..|
00009460  81 07 cd 3a e1 0d 0a 86  76 dd f2 73 68 65 6c 6c  |...:....v..shell|
00009470  5f 41 63 6b 52 41 4d 46  65 74 63 68 28 5f 51 25  |_AckRAMFetch(_Q%|
00009480  29 3a ea 56 44 25 2c 62  25 3a 62 25 3d 5f 55 25  |):.VD%,b%:b%=_U%|
00009490  21 26 39 43 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |!&9C:.shell_Trac|
000094a0  65 66 30 28 22 41 63 6b  52 41 4d 46 65 74 63 68  |ef0("AckRAMFetch|
000094b0  3a 41 63 6b 52 41 4d 46  65 74 63 68 20 63 61 6c  |:AckRAMFetch cal|
000094c0  6c 65 64 2e 2e 2e 2e 22  29 3a e7 5f 51 25 21 26  |led...."):._Q%!&|
000094d0  43 3c 3e 5f 55 25 21 26  37 30 8c 0d 0a 8f 0f e7  |C<>_U%!&70......|
000094e0  5f 55 25 21 26 38 30 3d  30 8c 0d 0a 92 75 f2 73  |_U%!&80=0....u.s|
000094f0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 41 63  |hell_Tracef0("Ac|
00009500  6b 52 41 4d 46 65 74 63  68 3a 52 65 63 65 69 76  |kRAMFetch:Receiv|
00009510  65 72 20 64 6f 65 73 20  6e 6f 74 20 73 75 70 70  |er does not supp|
00009520  6f 72 74 20 52 41 4d 20  74 72 61 6e 73 66 65 72  |ort RAM transfer|
00009530  22 29 3a c8 99 26 32 30  30 32 33 2c 22 57 69 6d  |"):..&20023,"Wim|
00009540  70 24 53 63 72 61 70 22  2c 2c 2d 31 2c 30 2c 33  |p$Scrap",,-1,0,3|
00009550  b8 2c 2c 56 44 25 3a e7  56 44 25 3c 3e 30 8c 0d  |.,,VD%:.VD%<>0..|
00009560  0a 96 85 24 28 62 25 2b  34 34 29 3d 22 3c 57 69  |...$(b%+44)="<Wi|
00009570  6d 70 24 53 63 72 61 70  3e 22 2b bd 28 30 29 3a  |mp$Scrap>"+.(0):|
00009580  62 25 21 30 3d 28 34 39  2b a9 28 a4 73 68 65 6c  |b%!0=(49+.(.shel|
00009590  6c 5f 47 65 74 53 74 72  69 6e 67 28 62 25 2b 34  |l_GetString(b%+4|
000095a0  34 29 29 29 80 ac 33 3a  62 25 21 26 43 3d 62 25  |4)))..3:b%!&C=b%|
000095b0  21 38 3a 62 25 21 31 36  3d 32 3a 62 25 21 33 36  |!8:b%!16=2:b%!36|
000095c0  3d 2d 31 3a c8 99 26 34  30 30 45 37 2c 31 38 2c  |=-1:..&400E7,18,|
000095d0  62 25 2c 62 25 21 34 3a  5f 55 25 21 26 36 43 3d  |b%,b%!4:_U%!&6C=|
000095e0  62 25 21 38 0d 0a 9d 32  cc f2 73 68 65 6c 6c 5f  |b%!8...2..shell_|
000095f0  4f 4b 28 a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |OK(.shell_Messag|
00009600  65 4e 6f 41 72 67 73 28  22 53 48 45 4c 4c 4d 53  |eNoArgs("SHELLMS|
00009610  47 31 34 22 29 29 0d 0a  9f 05 cd 0d 0a a0 a1 cc  |G14"))..........|
00009620  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
00009630  41 63 6b 52 41 4d 46 65  74 63 68 3a 52 41 4d 20  |AckRAMFetch:RAM |
00009640  74 72 61 6e 73 66 65 72  20 73 74 61 72 74 65 64  |transfer started|
00009650  2c 20 62 75 74 20 6e 6f  74 20 65 6e 6f 75 67 68  |, but not enough|
00009660  20 64 61 74 61 20 73 65  6e 74 2e 20 53 65 6e 64  | data sent. Send|
00009670  65 72 20 64 69 65 64 3f  22 29 3a f2 73 68 65 6c  |er died?"):.shel|
00009680  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00009690  6e 28 5f 55 25 21 26 39  38 29 3a 5f 55 25 21 26  |n(_U%!&98):_U%!&|
000096a0  39 38 3d 30 3a f2 73 68  65 6c 6c 5f 4f 4b 28 22  |98=0:.shell_OK("|
000096b0  53 48 45 4c 4c 4d 53 47  30 36 22 29 0d 0a a9 05  |SHELLMSG06")....|
000096c0  cd 0d 0a aa 07 cd 3a e1  0d 0a b0 6f dd f2 73 68  |......:....o..sh|
000096d0  65 6c 6c 5f 4d 65 6e 75  57 61 72 6e 69 6e 67 28  |ell_MenuWarning(|
000096e0  5f 51 25 29 3a ea 41 24  2c 73 41 25 2c 4a 41 25  |_Q%):.A$,sA%,JA%|
000096f0  2c 4b 41 25 2c 70 25 2c  5f 74 65 6d 70 25 2c 78  |,KA%,p%,_temp%,x|
00009700  25 2c 43 24 2c 49 42 25  2c 61 25 3a 4a 41 25 3d  |%,C$,IB%,a%:JA%=|
00009710  5f 51 25 21 32 34 3a 4b  41 25 3d 5f 51 25 21 32  |_Q%!24:KA%=_Q%!2|
00009720  38 3a 5f 55 25 21 32 36  34 3d 30 3a e7 5f 55 25  |8:_U%!264=0:._U%|
00009730  21 32 30 3c 3e 30 8c 0d  0a b5 aa f2 73 68 65 6c  |!20<>0......shel|
00009740  6c 5f 54 72 61 63 65 66  30 28 22 4d 65 6e 75 57  |l_Tracef0("MenuW|
00009750  61 72 6e 69 6e 67 3a 52  65 6d 6f 76 69 6e 67 20  |arning:Removing |
00009760  6c 61 73 74 20 64 79 6e  61 6d 69 63 20 64 62 6f  |last dynamic dbo|
00009770  78 20 28 68 61 6e 64 6c  65 3d 26 22 2b c3 7e 5f  |x (handle=&"+.~_|
00009780  55 25 21 32 30 2b 22 29  22 29 3a 70 25 3d a4 73  |U%!20+")"):p%=.s|
00009790  68 65 6c 6c 5f 44 65 6c  65 74 65 57 69 6e 64 6f  |hell_DeleteWindo|
000097a0  77 28 5f 55 25 21 32 30  29 3a f2 73 68 65 6c 6c  |w(_U%!20):.shell|
000097b0  5f 54 72 61 63 65 66 30  28 22 4d 65 6e 75 57 61  |_Tracef0("MenuWa|
000097c0  72 6e 69 6e 67 3a 4c 61  73 74 20 64 79 6e 61 6d  |rning:Last dynam|
000097d0  69 63 20 64 62 6f 78 20  72 65 6d 6f 76 65 64 22  |ic dbox removed"|
000097e0  29 0d 0a bb 0f cd 3a c8  8e 5f 51 25 21 32 30 ca  |).....:.._Q%!20.|
000097f0  0d 0a c1 aa c9 5f 55 25  21 26 45 34 3a f2 73 68  |....._U%!&E4:.sh|
00009800  65 6c 6c 5f 57 69 6e 64  6f 77 52 65 74 69 74 6c  |ell_WindowRetitl|
00009810  65 28 5f 55 25 21 26 45  34 2c a4 73 68 65 6c 6c  |e(_U%!&E4,.shell|
00009820  5f 4d 65 73 73 61 67 65  4e 6f 41 72 67 73 28 22  |_MessageNoArgs("|
00009830  77 61 72 6e 69 6e 67 22  29 29 3a f2 73 68 65 6c  |warning")):.shel|
00009840  6c 5f 49 63 6f 6e 50 75  74 44 61 74 61 28 5f 55  |l_IconPutData(_U|
00009850  25 21 26 45 34 2c 31 2c  a4 73 68 65 6c 6c 5f 4d  |%!&E4,1,.shell_M|
00009860  65 73 73 61 67 65 4e 6f  41 72 67 73 28 22 53 48  |essageNoArgs("SH|
00009870  45 4c 4c 4d 53 47 30 37  22 29 2c 30 29 3a ef 37  |ELLMSG07"),0):.7|
00009880  3a c8 99 26 34 30 30 45  38 2c 2c 5f 55 25 21 26  |:..&400E8,,_U%!&|
00009890  45 34 2c 4a 41 25 2c 4b  41 25 0d 0a c9 51 7f 49  |E4,JA%,KA%...Q.I|
000098a0  42 25 3d a4 73 68 65 6c  6c 5f 4d 65 6e 75 47 65  |B%=.shell_MenuGe|
000098b0  74 49 74 65 6d 41 64 64  72 65 73 73 28 5f 55 25  |tItemAddress(_U%|
000098c0  21 32 34 2c 5f 51 25 2b  33 32 29 3a e7 a4 73 68  |!24,_Q%+32):..sh|
000098d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 45 78 69  |ell_HeapBlockExi|
000098e0  73 74 73 28 49 42 25 21  34 29 8c 0d 0a ce 24 f2  |sts(IB%!4)....$.|
000098f0  73 68 65 6c 6c 5f 4d 65  6e 75 57 61 72 6e 44 42  |shell_MenuWarnDB|
00009900  6f 78 28 49 42 25 2c 4a  41 25 2c 4b 41 25 29 0d  |ox(IB%,JA%,KA%).|
00009910  0a cf aa cc 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |....a%=.shell_He|
00009920  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 33 32 29  |apBlockFetch(32)|
00009930  3a c8 99 26 34 35 42 43  34 2c 5f 55 25 21 32 34  |:..&45BC4,_U%!24|
00009940  2c 5f 51 25 2b 33 32 b8  2c 2c 61 25 3a f2 73 68  |,_Q%+32.,,a%:.sh|
00009950  65 6c 6c 5f 46 69 6e 64  4d 65 6e 75 57 61 72 6e  |ell_FindMenuWarn|
00009960  45 76 65 6e 74 28 61 25  21 38 2c 43 24 2c 44 24  |Event(a%!8,C$,D$|
00009970  29 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |):.shell_HeapBlo|
00009980  63 6b 52 65 74 75 72 6e  28 61 25 29 3a f2 73 68  |ckReturn(a%):.sh|
00009990  65 6c 6c 5f 4d 65 6e 75  57 61 72 6e 53 75 62 4d  |ell_MenuWarnSubM|
000099a0  65 6e 75 28 5f 51 25 21  32 30 2c 4a 41 25 2c 4b  |enu(_Q%!20,JA%,K|
000099b0  41 25 2c 43 24 2c 44 24  29 0d 0a d6 05 cd 0d 0a  |A%,C$,D$).......|
000099c0  d7 07 cb 3a e1 0d 0a dd  3b dd f2 73 68 65 6c 6c  |...:....;..shell|
000099d0  5f 4d 65 6e 75 57 61 72  6e 44 42 6f 78 28 59 41  |_MenuWarnDBox(YA|
000099e0  25 2c 4a 41 25 2c 4b 41  25 29 3a ea 62 25 2c 7a  |%,JA%,KA%):.b%,z|
000099f0  25 2c 70 25 3a ea 85 3a  ee 85 ea 3a f7 85 3a e1  |%,p%:..:...:..:.|
00009a00  0d 0a e1 85 62 25 3d 59  41 25 21 34 3a f2 73 68  |....b%=YA%!4:.sh|
00009a10  65 6c 6c 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |ell_CreateWindow|
00009a20  28 24 62 25 21 30 2c 7a  25 29 3a f7 85 3a f2 73  |($b%!0,z%):..:.s|
00009a30  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 4d 65  |hell_Tracef0("Me|
00009a40  6e 75 57 61 72 6e 44 42  6f 78 3a 43 72 65 61 74  |nuWarnDBox:Creat|
00009a50  69 6e 67 20 6e 65 77 20  64 79 6e 61 6d 69 63 20  |ing new dynamic |
00009a60  64 62 6f 78 20 28 68 61  6e 64 6c 65 3d 26 22 2b  |dbox (handle=&"+|
00009a70  c3 7e 7a 25 2b 22 29 22  29 3a e7 24 62 25 21 34  |.~z%+")"):.$b%!4|
00009a80  3c 3e 22 22 8c 0d 0a e9  5e f2 73 68 65 6c 6c 5f  |<>""....^.shell_|
00009a90  54 72 61 63 65 66 30 28  22 4d 65 6e 75 57 61 72  |Tracef0("MenuWar|
00009aa0  6e 44 42 6f 78 3a 43 61  6c 6c 69 6e 67 20 70 72  |nDBox:Calling pr|
00009ab0  65 6f 70 65 6e 20 46 4e  20 27 22 2b 24 62 25 21  |eopen FN '"+$b%!|
00009ac0  34 2b 22 27 22 29 3a 70  25 3d a0 28 22 46 4e 22  |4+"'"):p%=.("FN"|
00009ad0  2b 24 62 25 21 34 2b 22  28 22 2b c3 7a 25 2b 22  |+$b%!4+"("+.z%+"|
00009ae0  29 22 29 0d 0a ec 11 cd  3a e7 24 62 25 21 38 3c  |)").....:.$b%!8<|
00009af0  3e 22 22 8c 0d 0a ef 5f  f2 73 68 65 6c 6c 5f 54  |>""...._.shell_T|
00009b00  72 61 63 65 66 30 28 22  4d 65 6e 75 57 61 72 6e  |racef0("MenuWarn|
00009b10  44 42 6f 78 3a 43 61 6c  6c 69 6e 67 20 70 6f 73  |DBox:Calling pos|
00009b20  74 6f 70 65 6e 20 46 4e  20 27 22 2b 24 62 25 21  |topen FN '"+$b%!|
00009b30  38 2b 22 27 22 29 3a 70  25 3d a0 28 22 46 4e 22  |8+"'"):p%=.("FN"|
00009b40  2b 24 62 25 21 38 2b 22  28 22 2b c3 7a 25 2b 22  |+$b%!8+"("+.z%+"|
00009b50  29 22 29 0d 0a f2 26 cd  3a c8 99 26 34 30 30 45  |)")...&.:..&400E|
00009b60  38 2c 2c 7a 25 2c 4a 41  25 2c 4b 41 25 3a 5f 55  |8,,z%,JA%,KA%:_U|
00009b70  25 21 32 30 3d 7a 25 3a  e1 0d 0a fb 8d dd f2 73  |%!20=z%:.......s|
00009b80  68 65 6c 6c 5f 46 69 6e  64 4d 65 6e 75 57 61 72  |hell_FindMenuWar|
00009b90  6e 45 76 65 6e 74 28 55  41 25 2c f8 43 24 2c f8  |nEvent(UA%,.C$,.|
00009ba0  44 24 29 3a ea 6a 41 25  2c 73 25 2c 62 25 2c 64  |D$):.jA%,s%,b%,d|
00009bb0  25 2c 6a 25 2c 6f 25 2c  75 25 2c 67 25 3a ea 4a  |%,j%,o%,u%,g%:.J|
00009bc0  42 25 3a 4a 42 25 3d 30  3a 73 25 3d 5f 55 25 21  |B%:JB%=0:s%=_U%!|
00009bd0  26 44 43 3a 64 25 3d 30  3a 6a 25 3d a3 3a 43 24  |&DC:d%=0:j%=.:C$|
00009be0  3d 22 22 3a 4a 42 25 3d  30 3a e7 a4 73 68 65 6c  |="":JB%=0:..shel|
00009bf0  6c 5f 48 65 61 70 42 6c  6f 63 6b 45 78 69 73 74  |l_HeapBlockExist|
00009c00  73 28 73 25 29 8c 0d 0b  01 6d f5 3a 67 25 2b 3d  |s(s%)....m.:g%+=|
00009c10  34 3a fd 73 25 21 67 25  3d 2d 31 3a 6f 25 3d 67  |4:.s%!g%=-1:o%=g|
00009c20  25 3a 67 25 3d 30 3a f2  73 68 65 6c 6c 5f 54 72  |%:g%=0:.shell_Tr|
00009c30  61 63 65 66 30 28 22 46  69 6e 64 4d 65 6e 75 57  |acef0("FindMenuW|
00009c40  61 72 6e 45 76 65 6e 74  3a 6c 69 73 74 5f 73 69  |arnEvent:list_si|
00009c50  7a 65 25 3d 22 2b c3 6f  25 29 3a f5 3a 62 25 3d  |ze%="+.o%):.:b%=|
00009c60  21 28 73 25 2b 64 25 2b  30 29 3a e7 62 25 3c 3e  |!(s%+d%+0):.b%<>|
00009c70  2d 31 8c 0d 0b 0b 0c e7  62 25 3d 55 41 25 8c 0d  |-1......b%=UA%..|
00009c80  0b 0c 71 6a 25 3d b9 3a  75 25 3d 73 25 21 28 64  |..qj%=.:u%=s%!(d|
00009c90  25 2b 34 29 3a 43 24 3d  24 75 25 3a 4a 42 25 3d  |%+4):C$=$u%:JB%=|
00009ca0  73 25 21 28 64 25 2b 38  29 3a 75 25 3d 73 25 21  |s%!(d%+8):u%=s%!|
00009cb0  28 64 25 2b 26 43 29 3a  44 24 3d 24 75 25 3a f2  |(d%+&C):D$=$u%:.|
00009cc0  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 46  |shell_Tracef0("F|
00009cd0  69 6e 64 4d 65 6e 75 57  61 72 6e 45 76 65 6e 74  |indMenuWarnEvent|
00009ce0  3a 73 75 62 6d 65 6e 75  20 66 6f 75 6e 64 22 29  |:submenu found")|
00009cf0  0d 0b 13 0c cd 3a 64 25  2b 3d 31 36 0d 0b 15 0a  |.....:d%+=16....|
00009d00  cc 64 25 3d 6f 25 0d 0b  17 10 cd 3a fd 6a 25 84  |.d%=o%.....:.j%.|
00009d10  64 25 3e 3d 6f 25 0d 0b  19 10 cc 43 24 3d 22 22  |d%>=o%.....C$=""|
00009d20  3a 44 24 3d 22 22 0d 0b  1b 44 cd 3a e7 4a 42 25  |:D$=""...D.:.JB%|
00009d30  3d 30 8c f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |=0..shell_Tracef|
00009d40  30 28 22 46 69 6e 64 4d  65 6e 75 57 61 72 6e 45  |0("FindMenuWarnE|
00009d50  76 65 6e 74 3a 77 61 72  6e 20 66 6e 20 6e 6f 74  |vent:warn fn not|
00009d60  20 66 6f 75 6e 64 2e 2e  22 29 0d 0b 1f 05 e1 0d  | found..")......|
00009d70  0b 24 96 dd f2 73 68 65  6c 6c 5f 4d 65 6e 75 57  |.$...shell_MenuW|
00009d80  61 72 6e 53 75 62 4d 65  6e 75 28 52 43 25 2c 4a  |arnSubMenu(RC%,J|
00009d90  41 25 2c 4b 41 25 2c 43  24 2c 44 24 29 3a ea 70  |A%,KA%,C$,D$):.p|
00009da0  25 2c 62 25 2c 6d 41 25  2c 67 25 3a 5f 73 68 65  |%,b%,mA%,g%:_she|
00009db0  6c 6c 5f 46 6f 6e 74 4d  65 6e 75 53 65 6c 46 4e  |ll_FontMenuSelFN|
00009dc0  24 3d 44 24 3a e7 a4 73  68 65 6c 6c 5f 48 65 61  |$=D$:..shell_Hea|
00009dd0  70 42 6c 6f 63 6b 45 78  69 73 74 73 28 5f 55 25  |pBlockExists(_U%|
00009de0  21 26 45 30 29 8c f2 73  68 65 6c 6c 5f 48 65 61  |!&E0)..shell_Hea|
00009df0  70 42 6c 6f 63 6b 52 65  74 75 72 6e 28 5f 55 25  |pBlockReturn(_U%|
00009e00  21 26 45 30 29 0d 0b 28  43 5f 55 25 21 26 45 30  |!&E0)..(C_U%!&E0|
00009e10  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00009e20  6b 46 65 74 63 68 28 a9  43 24 2b 31 29 3a 62 25  |kFetch(.C$+1):b%|
00009e30  3d 5f 55 25 21 26 45 30  3a 24 62 25 3d 43 24 3a  |=_U%!&E0:$b%=C$:|
00009e40  e7 43 24 3c 3e 22 22 8c  0d 0b 2b 53 70 25 3d a0  |.C$<>""...+Sp%=.|
00009e50  28 22 46 4e 22 2b 43 24  2b 22 28 5f 55 25 21 35  |("FN"+C$+"(_U%!5|
00009e60  32 2c 5f 55 25 21 35 36  29 22 29 3a f2 73 68 65  |2,_U%!56)"):.she|
00009e70  6c 6c 5f 54 72 61 63 65  66 30 28 22 4d 65 6e 75  |ll_Tracef0("Menu|
00009e80  57 61 72 6e 53 75 62 4d  65 6e 75 3a 43 61 6c 6c  |WarnSubMenu:Call|
00009e90  69 6e 67 20 46 4e 22 2b  43 24 29 0d 0b 2f 13 cd  |ing FN"+C$)../..|
00009ea0  3a e7 52 43 25 3d 5f 55  25 21 26 46 43 8c 0d 0b  |:.RC%=_U%!&FC...|
00009eb0  34 79 f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |4y.shell_Tracef0|
00009ec0  28 22 4d 65 6e 75 57 61  72 6e 53 75 62 4d 65 6e  |("MenuWarnSubMen|
00009ed0  75 3a 46 6f 6e 74 4d 65  6e 75 20 6f 70 65 6e 69  |u:FontMenu openi|
00009ee0  6e 67 2e 2e 22 29 3a e7  a4 73 68 65 6c 6c 5f 48  |ng.."):..shell_H|
00009ef0  65 61 70 42 6c 6f 63 6b  45 78 69 73 74 73 28 5f  |eapBlockExists(_|
00009f00  55 25 21 32 35 36 29 8c  f2 73 68 65 6c 6c 5f 48  |U%!256)..shell_H|
00009f10  65 61 70 42 6c 6f 63 6b  52 65 74 75 72 6e 28 5f  |eapBlockReturn(_|
00009f20  55 25 21 32 35 36 29 0d  0b 39 a3 67 25 3d 30 3a  |U%!256)..9.g%=0:|
00009f30  f5 3a 67 25 2b 3d 34 3a  fd 21 28 5f 51 25 2b 33  |.:g%+=4:.!(_Q%+3|
00009f40  32 2b 67 25 29 3d 2d 31  3a 67 25 2b 3d 34 3a 5f  |2+g%)=-1:g%+=4:_|
00009f50  55 25 21 32 35 36 3d a4  73 68 65 6c 6c 5f 48 65  |U%!256=.shell_He|
00009f60  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 67 25 29  |apBlockFetch(g%)|
00009f70  3a 62 25 3d 5f 55 25 21  32 35 36 3a 67 25 3d 30  |:b%=_U%!256:g%=0|
00009f80  3a f5 3a 62 25 21 67 25  3d 21 28 5f 51 25 2b 33  |:.:b%!g%=!(_Q%+3|
00009f90  32 2b 67 25 29 3a 67 25  2b 3d 34 3a fd 21 28 5f  |2+g%):g%+=4:.!(_|
00009fa0  51 25 2b 33 32 2b 67 25  29 3d 2d 31 3a 62 25 21  |Q%+32+g%)=-1:b%!|
00009fb0  67 25 3d 21 28 5f 51 25  2b 33 32 2b 67 25 29 3a  |g%=!(_Q%+32+g%):|
00009fc0  62 25 3d 5f 55 25 21 32  35 36 0d 0b 43 b8 f2 73  |b%=_U%!256..C..s|
00009fd0  68 65 6c 6c 5f 54 72 61  63 65 66 30 28 22 4d 65  |hell_Tracef0("Me|
00009fe0  6e 75 57 61 72 6e 53 75  62 4d 65 6e 75 3a 53 65  |nuWarnSubMenu:Se|
00009ff0  6c 65 63 74 69 6e 67 20  27 22 2b a4 73 68 65 6c  |lecting '"+.shel|
0000a000  6c 5f 46 6f 6e 74 4d 65  6e 75 47 65 74 4c 61 73  |l_FontMenuGetLas|
0000a010  74 53 65 6c 65 63 74 65  64 46 6f 6e 74 2b 22 27  |tSelectedFont+"'|
0000a020  20 69 6e 20 46 6f 6e 74  4d 65 6e 75 2e 2e 22 29  | in FontMenu..")|
0000a030  3a c8 99 26 38 44 30 38  32 2c a4 73 68 65 6c 6c  |:..&8D082,.shell|
0000a040  5f 46 6f 6e 74 4d 65 6e  75 47 65 74 4c 61 73 74  |_FontMenuGetLast|
0000a050  53 65 6c 65 63 74 65 64  46 6f 6e 74 2c 5f 55 25  |SelectedFont,_U%|
0000a060  21 32 36 30 b8 2c 6d 41  25 3a 5f 55 25 21 32 36  |!260.,mA%:_U%!26|
0000a070  34 3d 31 3a e7 6d 41 25  3c 3e 5f 55 25 21 26 46  |4=1:.mA%<>_U%!&F|
0000a080  43 8c 0d 0b 49 35 f2 73  68 65 6c 6c 5f 46 6f 6e  |C...I5.shell_Fon|
0000a090  74 4d 65 6e 75 55 70 64  61 74 65 50 74 72 28 6d  |tMenuUpdatePtr(m|
0000a0a0  41 25 29 3a 5f 55 25 21  26 46 43 3d 6d 41 25 3a  |A%):_U%!&FC=mA%:|
0000a0b0  52 43 25 3d 6d 41 25 0d  0b 4b 05 cd 0d 0b 4c 0e  |RC%=mA%..K....L.|
0000a0c0  cc 5f 55 25 21 32 36 34  3d 30 0d 0b 4e 1d cd 3a  |._U%!264=0..N..:|
0000a0d0  c8 99 26 34 30 30 45 38  2c 2c 52 43 25 2c 4a 41  |..&400E8,,RC%,JA|
0000a0e0  25 2c 4b 41 25 3a e1 0d  0b 56 3f dd f2 73 68 65  |%,KA%:...V?..she|
0000a0f0  6c 6c 5f 41 74 74 61 63  68 53 75 62 4d 65 6e 75  |ll_AttachSubMenu|
0000a100  28 69 41 25 2c 4a 42 25  2c 43 24 29 3a c8 99 26  |(iA%,JB%,C$):..&|
0000a110  34 35 42 43 45 2c 69 41  25 2c 4a 42 25 3a e7 43  |45BCE,iA%,JB%:.C|
0000a120  24 3c 3e 22 22 8c 0d 0b  59 37 c8 99 26 34 35 42  |$<>""...Y7..&45B|
0000a130  43 43 2c 2c b9 3a f2 73  68 65 6c 6c 5f 45 76 65  |CC,,.:.shell_Eve|
0000a140  6e 74 4c 69 73 74 4d 65  6e 75 57 61 72 6e 28 69  |ntListMenuWarn(i|
0000a150  41 25 2c 4a 42 25 2c 43  24 2c 22 22 29 0d 0b 5b  |A%,JB%,C$,"")..[|
0000a160  07 cd 3a e1 0d 0b 61 45  dd f2 73 68 65 6c 6c 5f  |..:...aE..shell_|
0000a170  45 76 65 6e 74 4c 69 73  74 4d 65 6e 75 57 61 72  |EventListMenuWar|
0000a180  6e 28 69 41 25 2c 68 44  25 2c 43 24 2c 44 24 29  |n(iA%,hD%,C$,D$)|
0000a190  3a ea 62 25 2c 75 25 2c  67 25 2c 73 25 3a e7 5f  |:.b%,u%,g%,s%:._|
0000a1a0  55 25 21 26 44 43 3d 30  8c 0d 0b 65 c2 5f 55 25  |U%!&DC=0...e._U%|
0000a1b0  21 26 44 43 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |!&DC=.shell_Heap|
0000a1c0  42 6c 6f 63 6b 46 65 74  63 68 28 33 32 29 3a 62  |BlockFetch(32):b|
0000a1d0  25 3d 5f 55 25 21 26 44  43 3a 62 25 21 30 3d 69  |%=_U%!&DC:b%!0=i|
0000a1e0  41 25 3a 62 25 21 34 3d  a4 73 68 65 6c 6c 5f 48  |A%:b%!4=.shell_H|
0000a1f0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 a9 43  |eapBlockFetch(.C|
0000a200  24 2b 31 29 3a 24 28 62  25 21 34 29 3d 43 24 3a  |$+1):$(b%!4)=C$:|
0000a210  62 25 21 38 3d 68 44 25  3a 62 25 21 26 43 3d a4  |b%!8=hD%:b%!&C=.|
0000a220  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
0000a230  65 74 63 68 28 a9 44 24  2b 31 29 3a 24 28 62 25  |etch(.D$+1):$(b%|
0000a240  21 26 43 29 3d 44 24 3a  62 25 21 31 36 3d 2d 31  |!&C)=D$:b%!16=-1|
0000a250  3a 62 25 21 32 30 3d 2d  31 3a 62 25 21 32 34 3d  |:b%!20=-1:b%!24=|
0000a260  2d 31 3a 62 25 21 32 38  3d 2d 31 0d 0b 6e ec cc  |-1:b%!28=-1..n..|
0000a270  73 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |s%=.shell_HeapBl|
0000a280  6f 63 6b 45 78 74 65 6e  64 28 5f 55 25 21 26 44  |ockExtend(_U%!&D|
0000a290  43 2c 33 32 29 3a 5f 55  25 21 26 44 43 3d 73 25  |C,32):_U%!&DC=s%|
0000a2a0  3a 67 25 3d 30 3a f5 3a  67 25 2b 3d 31 36 3a fd  |:g%=0:.:g%+=16:.|
0000a2b0  73 25 21 67 25 3d 2d 31  3a 62 25 3d 5f 55 25 21  |s%!g%=-1:b%=_U%!|
0000a2c0  26 44 43 3a 62 25 21 67  25 3d 69 41 25 3a 62 25  |&DC:b%!g%=iA%:b%|
0000a2d0  21 28 67 25 2b 34 29 3d  a4 73 68 65 6c 6c 5f 48  |!(g%+4)=.shell_H|
0000a2e0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 a9 43  |eapBlockFetch(.C|
0000a2f0  24 2b 31 29 3a 75 25 3d  62 25 21 28 67 25 2b 34  |$+1):u%=b%!(g%+4|
0000a300  29 3a 24 28 75 25 29 3d  43 24 3a 62 25 21 28 67  |):$(u%)=C$:b%!(g|
0000a310  25 2b 38 29 3d 68 44 25  3a 62 25 21 28 67 25 2b  |%+8)=hD%:b%!(g%+|
0000a320  26 43 29 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |&C)=.shell_HeapB|
0000a330  6c 6f 63 6b 46 65 74 63  68 28 a9 44 24 2b 31 29  |lockFetch(.D$+1)|
0000a340  3a 75 25 3d 62 25 21 28  67 25 2b 26 43 29 3a 24  |:u%=b%!(g%+&C):$|
0000a350  28 75 25 29 3d 44 24 0d  0b 7c 3b 62 25 21 28 67  |(u%)=D$..|;b%!(g|
0000a360  25 2b 31 36 29 3d 2d 31  3a 62 25 21 28 67 25 2b  |%+16)=-1:b%!(g%+|
0000a370  32 30 29 3d 2d 31 3a 62  25 21 28 67 25 2b 32 34  |20)=-1:b%!(g%+24|
0000a380  29 3d 2d 31 3a 62 25 21  28 67 25 2b 32 38 29 3d  |)=-1:b%!(g%+28)=|
0000a390  2d 31 0d 0b 7e 07 cd 3a  e1 0d 0b 84 95 dd f2 73  |-1..~..:.......s|
0000a3a0  68 65 6c 6c 5f 49 6e 74  65 72 61 63 74 69 76 65  |hell_Interactive|
0000a3b0  48 65 6c 70 28 5f 51 25  29 3a ea 49 24 2c 52 24  |Help(_Q%):.I$,R$|
0000a3c0  2c 45 24 2c 75 41 25 2c  54 43 25 2c 57 41 24 3a  |,E$,uA%,TC%,WA$:|
0000a3d0  49 24 3d a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |I$=.shell_GetEve|
0000a3e0  6e 74 48 61 6e 64 6c 65  72 28 5f 51 25 21 33 32  |ntHandler(_Q%!32|
0000a3f0  2c 5f 51 25 21 33 36 2c  38 29 3a 45 24 3d a4 73  |,_Q%!36,8):E$=.s|
0000a400  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 56 61 6c 69  |hell_IconGetVali|
0000a410  64 61 74 69 6f 6e 28 5f  51 25 21 33 32 2c 5f 51  |dation(_Q%!32,_Q|
0000a420  25 21 33 36 29 3a e7 45  24 3c 3e 22 22 8c 0d 0b  |%!36):.E$<>""...|
0000a430  8a 28 e7 a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |.(..shell_String|
0000a440  55 70 70 65 72 43 61 73  65 28 c0 45 24 2c 31 29  |UpperCase(.E$,1)|
0000a450  29 3d 22 49 22 8c 0d 0b  8b 18 75 41 25 3d a7 45  |)="I".....uA%=.E|
0000a460  24 2c 22 3b 22 29 3a e7  75 41 25 3d 30 8c 0d 0b  |$,";"):.uA%=0...|
0000a470  8e 0d 49 24 3d c1 45 24  2c 32 29 0d 0b 8f 14 cc  |..I$=.E$,2).....|
0000a480  49 24 3d c1 45 24 2c 32  2c 75 41 25 2d 32 29 0d  |I$=.E$,2,uA%-2).|
0000a490  0b 91 05 cd 0d 0b 92 8d  cc 75 41 25 3d a7 a4 73  |.........uA%=..s|
0000a4a0  68 65 6c 6c 5f 53 74 72  69 6e 67 55 70 70 65 72  |hell_StringUpper|
0000a4b0  43 61 73 65 28 45 24 29  2c a4 73 68 65 6c 6c 5f  |Case(E$),.shell_|
0000a4c0  53 74 72 69 6e 67 55 70  70 65 72 43 61 73 65 28  |StringUpperCase(|
0000a4d0  22 3b 69 22 29 29 3a 54  43 25 3d a7 a4 73 68 65  |";i")):TC%=..she|
0000a4e0  6c 6c 5f 53 74 72 69 6e  67 55 70 70 65 72 43 61  |ll_StringUpperCa|
0000a4f0  73 65 28 45 24 29 2c a4  73 68 65 6c 6c 5f 53 74  |se(E$),.shell_St|
0000a500  72 69 6e 67 55 70 70 65  72 43 61 73 65 28 22 3b  |ringUpperCase(";|
0000a510  22 29 2c 75 41 25 2b 31  29 3a e7 75 41 25 3e 30  |"),uA%+1):.uA%>0|
0000a520  8c 0d 0b 96 0b e7 54 43  25 3e 30 8c 0d 0b 97 1b  |......TC%>0.....|
0000a530  49 24 3d c1 45 24 2c 75  41 25 2b 32 2c 54 43 25  |I$=.E$,uA%+2,TC%|
0000a540  2d 75 41 25 2d 32 29 0d  0b 98 12 cc 49 24 3d c1  |-uA%-2).....I$=.|
0000a550  45 24 2c 75 41 25 2b 32  29 0d 0b 9a 05 cd 0d 0b  |E$,uA%+2).......|
0000a560  9b 05 cd 0d 0b 9c 05 cd  0d 0b 9d 0e cd 3a e7 49  |.............:.I|
0000a570  24 3c 3e 22 22 8c 0d 0b  9f 8e 5f 51 25 21 31 36  |$<>""....._Q%!16|
0000a580  3d 26 35 30 33 3a 5f 51  25 21 26 43 3d 5f 51 25  |=&503:_Q%!&C=_Q%|
0000a590  21 38 3a 52 24 3d a4 73  68 65 6c 6c 5f 4d 65 73  |!8:R$=.shell_Mes|
0000a5a0  73 61 67 65 4c 6f 6f 6b  75 70 28 49 24 2c 22 22  |sageLookup(I$,""|
0000a5b0  2c 22 22 29 3a 52 24 3d  a4 73 68 65 6c 6c 5f 4d  |,""):R$=.shell_M|
0000a5c0  65 73 73 61 67 65 45 78  70 61 6e 64 28 52 24 29  |essageExpand(R$)|
0000a5d0  3a 24 28 5f 51 25 2b 32  30 29 3d 52 24 3a 21 5f  |:$(_Q%+20)=R$:!_|
0000a5e0  51 25 3d 28 a9 52 24 2b  32 35 29 80 ac 33 3a c8  |Q%=(.R$+25)..3:.|
0000a5f0  99 26 34 30 30 45 37 2c  31 37 2c 5f 51 25 2c 5f  |.&400E7,17,_Q%,_|
0000a600  51 25 21 34 0d 0b a5 07  cd 3a e1 0d 0b aa 0b dd  |Q%!4.....:......|
0000a610  f2 61 63 6b 3a e1 0d 0b  b0 3e dd f2 73 68 65 6c  |.ack:....>..shel|
0000a620  6c 5f 4d 65 73 73 61 67  65 5f 50 72 65 51 75 69  |l_Message_PreQui|
0000a630  74 28 5f 51 25 29 3a ea  62 25 2c 55 43 25 2c 61  |t(_Q%):.b%,UC%,a|
0000a640  25 2c 6d 25 2c 56 43 25  3a e7 5f 55 25 21 33 30  |%,m%,VC%:._U%!30|
0000a650  30 3e 30 8c 0d 0b b3 a7  61 25 3d a4 73 68 65 6c  |0>0.....a%=.shel|
0000a660  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000a670  28 32 35 36 29 3a e3 6d  25 3d 30 b8 5f 51 25 21  |(256):.m%=0._Q%!|
0000a680  30 88 34 3a 61 25 21 6d  25 3d 5f 51 25 21 6d 25  |0.4:a%!m%=_Q%!m%|
0000a690  3a ed 6d 25 3a f2 73 68  65 6c 6c 5f 54 72 61 63  |:.m%:.shell_Trac|
0000a6a0  65 66 30 28 22 4d 65 73  73 61 67 65 5f 50 72 65  |ef0("Message_Pre|
0000a6b0  51 75 69 74 3a 50 72 65  51 75 69 74 20 6d 65 73  |Quit:PreQuit mes|
0000a6c0  73 61 67 65 20 72 65 63  65 69 76 65 64 22 29 3a  |sage received"):|
0000a6d0  62 25 3d 5f 55 25 21 33  30 30 3a 55 43 25 3d 61  |b%=_U%!300:UC%=a|
0000a6e0  25 21 34 3a e7 21 61 25  3c 32 34 8c 56 43 25 3d  |%!4:.!a%<24.VC%=|
0000a6f0  30 8b 56 43 25 3d 61 25  21 32 30 0d 0b bf 32 61  |0.VC%=a%!20...2a|
0000a700  25 21 26 43 3d 61 25 21  38 3a c8 99 26 34 30 30  |%!&C=a%!8:..&400|
0000a710  45 37 2c 31 39 2c 61 25  2c 55 43 25 3a e7 a0 28  |E7,19,a%,UC%:..(|
0000a720  22 46 4e 22 2b 24 62 25  29 3c 3e 30 8c 0d 0b c2  |"FN"+$b%)<>0....|
0000a730  0b e7 56 43 25 80 31 8c  0d 0b c4 11 5f 63 6c 6f  |..VC%.1....._clo|
0000a740  73 65 64 6f 77 6e 25 3d  b9 0d 0b c5 35 cc 21 61  |sedown%=....5.!a|
0000a750  25 3d 32 34 3a 61 25 21  32 34 3d 35 30 38 3a c8  |%=24:a%!24=508:.|
0000a760  99 26 34 30 30 45 37 2c  38 2c 61 25 2c 55 43 25  |.&400E7,8,a%,UC%|
0000a770  3a 5f 63 6c 6f 73 65 64  6f 77 6e 25 3d b9 0d 0b  |:_closedown%=...|
0000a780  ca 05 cd 0d 0b cb 20 cd  3a f2 73 68 65 6c 6c 5f  |...... .:.shell_|
0000a790  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000a7a0  61 25 29 0d 0b cd 07 cd  3a e1 0d 0b d3 39 dd f2  |a%).....:....9..|
0000a7b0  6c 77 61 6f 72 69 67 69  6e 28 41 2c f8 4a 41 25  |lwaorigin(A,.JA%|
0000a7c0  2c f8 4b 41 25 29 3a 4a  41 25 3d 41 21 30 2d 41  |,.KA%):JA%=A!0-A|
0000a7d0  21 31 36 3a 4b 41 25 3d  41 21 26 43 2d 41 21 32  |!16:KA%=A!&C-A!2|
0000a7e0  30 3a e1 0d 0b da 3d dd  a4 73 68 65 6c 6c 5f 49  |0:....=..shell_I|
0000a7f0  63 6f 6e 62 61 72 28 43  41 25 2c 69 24 2c 4a 24  |conbar(CA%,i$,J$|
0000a800  2c 57 43 25 2c 71 25 2c  56 42 25 2c 57 42 25 2c  |,WC%,q%,VB%,WB%,|
0000a810  71 42 25 29 3a ea 6b 25  3a e7 4a 24 3d 22 22 8c  |qB%):.k%:.J$="".|
0000a820  0d 0b dd 4a 21 5f 51 25  3d 43 41 25 3a 5f 51 25  |...J!_Q%=CA%:_Q%|
0000a830  21 34 3d 30 3a 5f 51 25  21 38 3d 30 3a 5f 51 25  |!4=0:_Q%!8=0:_Q%|
0000a840  21 26 43 3d 37 30 3a 5f  51 25 21 31 36 3d 37 30  |!&C=70:_Q%!16=70|
0000a850  3a 5f 51 25 21 32 30 3d  26 33 30 31 41 3a 24 28  |:_Q%!20=&301A:$(|
0000a860  5f 51 25 2b 32 34 29 3d  69 24 0d 0b de 86 cc 21  |_Q%+24)=i$.....!|
0000a870  5f 51 25 3d 43 41 25 3a  5f 51 25 21 34 3d 30 3a  |_Q%=CA%:_Q%!4=0:|
0000a880  5f 51 25 21 38 3d 2d 31  36 3a 5f 51 25 21 26 43  |_Q%!8=-16:_Q%!&C|
0000a890  3d 57 43 25 3a 5f 51 25  21 31 36 3d 39 30 3a 5f  |=WC%:_Q%!16=90:_|
0000a8a0  51 25 21 32 30 3d 26 31  37 30 30 32 31 30 42 3a  |Q%!20=&1700210B:|
0000a8b0  de 5f 51 25 21 32 34 26  43 3a de 5f 51 25 21 32  |._Q%!24&C:._Q%!2|
0000a8c0  38 a9 28 69 24 29 2b 32  3a 24 28 5f 51 25 21 32  |8.(i$)+2:$(_Q%!2|
0000a8d0  34 29 3d 4a 24 3a 24 28  5f 51 25 21 32 38 29 3d  |4)=J$:$(_Q%!28)=|
0000a8e0  22 53 22 2b 69 24 3a 5f  51 25 21 33 32 3d 26 43  |"S"+i$:_Q%!32=&C|
0000a8f0  0d 0b e5 42 cd 3a c8 99  26 34 30 30 43 32 2c 2c  |...B.:..&400C2,,|
0000a900  5f 51 25 b8 6b 25 3a f2  73 68 65 6c 6c 5f 41 74  |_Q%.k%:.shell_At|
0000a910  74 61 63 68 4d 65 6e 75  28 2d 32 2c 6b 25 2c 71  |tachMenu(-2,k%,q|
0000a920  25 2c 56 42 25 2c 57 42  25 2c 71 42 25 29 3a 3d  |%,VB%,WB%,qB%):=|
0000a930  6b 25 0d 0b ed b7 dd f2  73 68 65 6c 6c 5f 49 63  |k%......shell_Ic|
0000a940  6f 6e 62 61 72 53 65 74  54 65 78 74 28 7a 25 2c  |onbarSetText(z%,|
0000a950  73 44 25 2c 48 24 29 3a  ea 69 25 3a 69 25 3d a4  |sD%,H$):.i%:i%=.|
0000a960  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 46  |shell_HeapBlockF|
0000a970  65 74 63 68 28 34 30 29  3a 21 69 25 3d 7a 25 3a  |etch(40):!i%=z%:|
0000a980  69 25 21 34 3d 73 44 25  3a c8 99 26 34 30 30 43  |i%!4=sD%:..&400C|
0000a990  45 2c 2c 69 25 3a 24 28  69 25 21 32 38 29 3d 48  |E,,i%:$(i%!28)=H|
0000a9a0  24 3a c8 99 26 34 30 30  44 31 2c 2d 31 2c 69 25  |$:..&400D1,-1,i%|
0000a9b0  21 38 2d 26 43 38 2c 69  25 21 26 43 2c 69 25 21  |!8-&C8,i%!&C,i%!|
0000a9c0  31 36 2b 26 43 38 2c 69  25 21 32 30 3a f2 73 68  |16+&C8,i%!20:.sh|
0000a9d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
0000a9e0  75 72 6e 28 69 25 29 3a  e1 0d 0b fa 8f dd a4 73  |urn(i%):.......s|
0000a9f0  68 65 6c 6c 5f 57 72 69  74 65 61 62 6c 65 49 63  |hell_WriteableIc|
0000aa00  6f 6e 48 61 6e 64 6c 65  72 28 63 25 2c 65 25 2c  |onHandler(c%,e%,|
0000aa10  45 41 25 29 3a ea 63 45  25 2c 7a 42 25 2c 6a 42  |EA%):.cE%,zB%,jB|
0000aa20  25 2c 67 25 3a ea 59 43  25 2c 6b 42 25 2c 63 41  |%,g%:.YC%,kB%,cA|
0000aa30  25 2c 5a 41 25 2c 6b 41  25 2c 68 45 25 2c 46 41  |%,ZA%,kA%,hE%,FA|
0000aa40  25 3a 46 41 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |%:FA%=.shell_Hea|
0000aa50  70 42 6c 6f 63 6b 46 65  74 63 68 28 32 34 29 3a  |pBlockFetch(24):|
0000aa60  c8 99 26 34 30 30 44 33  2c 2c 46 41 25 3a e7 46  |..&400D3,,FA%:.F|
0000aa70  41 25 21 30 3d 2d 31 8c  0d 0c 00 22 f2 73 68 65  |A%!0=-1....".she|
0000aa80  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
0000aa90  72 6e 28 46 41 25 29 3a  3d a3 0d 0c 02 40 cd 3a  |rn(FA%):=....@.:|
0000aaa0  c8 99 26 34 30 30 44 36  2c 63 25 2c 46 41 25 2c  |..&400D6,c%,FA%,|
0000aab0  26 34 30 45 30 30 30 2c  26 45 30 30 30 3a 7a 42  |&40E000,&E000:zB|
0000aac0  25 3d 46 41 25 21 30 3a  67 25 3d 30 3a f5 3a e7  |%=FA%!0:g%=0:.:.|
0000aad0  46 41 25 21 67 25 3d 65  25 8c 0d 0c 08 21 59 43  |FA%!g%=e%....!YC|
0000aae0  25 3d 46 41 25 21 28 67  25 2d 34 29 3a 6b 42 25  |%=FA%!(g%-4):kB%|
0000aaf0  3d 46 41 25 21 28 67 25  2b 34 29 0d 0c 09 2c cd  |=FA%!(g%+4)...,.|
0000ab00  3a 67 25 2b 3d 34 3a fd  46 41 25 21 67 25 3d 2d  |:g%+=4:.FA%!g%=-|
0000ab10  31 3a 6a 42 25 3d 46 41  25 21 28 67 25 2d 34 29  |1:jB%=FA%!(g%-4)|
0000ab20  3a c8 8e 45 41 25 ca 0d  0c 0e 10 c9 26 44 3a e7  |:..EA%......&D:.|
0000ab30  65 25 3d 6a 42 25 8c 0d  0c 11 0f c8 99 26 34 30  |e%=jB%.......&40|
0000ab40  30 44 43 2c 26 44 0d 0c  13 3b cc c8 99 26 34 30  |0DC,&D...;...&40|
0000ab50  30 44 32 2c 63 25 2c 6b  42 25 2c 2d 31 2c 2d 31  |0D2,c%,kB%,-1,-1|
0000ab60  2c 2d 31 2c a9 28 a4 73  68 65 6c 6c 5f 49 63 6f  |,-1,.(.shell_Ico|
0000ab70  6e 47 65 74 44 61 74 61  28 63 25 2c 6b 42 25 29  |nGetData(c%,kB%)|
0000ab80  29 0d 0c 15 05 cd 0d 0c  16 11 c9 33 39 38 3a e7  |)..........398:.|
0000ab90  65 25 3d 6a 42 25 8c 0d  0c 18 3a c8 99 26 34 30  |e%=jB%....:..&40|
0000aba0  30 44 32 2c 63 25 2c 7a  42 25 2c 2d 31 2c 2d 31  |0D2,c%,zB%,-1,-1|
0000abb0  2c 2d 31 2c a9 28 a4 73  68 65 6c 6c 5f 49 63 6f  |,-1,.(.shell_Ico|
0000abc0  6e 47 65 74 44 61 74 61  28 63 25 2c 7a 42 25 29  |nGetData(c%,zB%)|
0000abd0  29 0d 0c 19 3b cc c8 99  26 34 30 30 44 32 2c 63  |)...;...&400D2,c|
0000abe0  25 2c 6b 42 25 2c 2d 31  2c 2d 31 2c 2d 31 2c a9  |%,kB%,-1,-1,-1,.|
0000abf0  28 a4 73 68 65 6c 6c 5f  49 63 6f 6e 47 65 74 44  |(.shell_IconGetD|
0000ac00  61 74 61 28 63 25 2c 6b  42 25 29 29 0d 0c 1b 05  |ata(c%,kB%))....|
0000ac10  cd 0d 0c 1c 11 c9 33 39  39 3a e7 65 25 3d 7a 42  |......399:.e%=zB|
0000ac20  25 8c 0d 0c 1e 3a c8 99  26 34 30 30 44 32 2c 63  |%....:..&400D2,c|
0000ac30  25 2c 6a 42 25 2c 2d 31  2c 2d 31 2c 2d 31 2c a9  |%,jB%,-1,-1,-1,.|
0000ac40  28 a4 73 68 65 6c 6c 5f  49 63 6f 6e 47 65 74 44  |(.shell_IconGetD|
0000ac50  61 74 61 28 63 25 2c 6a  42 25 29 29 0d 0c 1f 3b  |ata(c%,jB%))...;|
0000ac60  cc c8 99 26 34 30 30 44  32 2c 63 25 2c 59 43 25  |...&400D2,c%,YC%|
0000ac70  2c 2d 31 2c 2d 31 2c 2d  31 2c a9 28 a4 73 68 65  |,-1,-1,-1,.(.she|
0000ac80  6c 6c 5f 49 63 6f 6e 47  65 74 44 61 74 61 28 63  |ll_IconGetData(c|
0000ac90  25 2c 59 43 25 29 29 0d  0c 21 05 cd 0d 0c 22 24  |%,YC%))..!...."$|
0000aca0  cb 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.:.shell_HeapBlo|
0000acb0  63 6b 52 65 74 75 72 6e  28 46 41 25 29 3a 3d b9  |ckReturn(FA%):=.|
0000acc0  0d 0c 28 5f dd f2 73 68  65 6c 6c 5f 46 61 6b 65  |..(_..shell_Fake|
0000acd0  4d 6f 75 73 65 43 6c 69  63 6b 28 63 25 2c 65 25  |MouseClick(c%,e%|
0000ace0  2c 70 42 25 29 3a c8 99  36 2c 26 46 2c 31 3a 5f  |,pB%):..6,&F,1:_|
0000acf0  51 25 21 38 3d 70 42 25  3a 5f 51 25 21 26 43 3d  |Q%!8=pB%:_Q%!&C=|
0000ad00  63 25 3a 5f 51 25 21 31  36 3d 65 25 3a f2 73 68  |c%:_Q%!16=e%:.sh|
0000ad10  65 6c 6c 5f 41 63 74 69  6f 6e 28 36 29 3a e1 0d  |ell_Action(6):..|
0000ad20  0c 30 ca dd a4 73 68 65  6c 6c 5f 49 63 6f 6e 43  |.0...shell_IconC|
0000ad30  72 65 61 74 65 28 63 25  2c 66 41 25 2c 53 41 25  |reate(c%,fA%,SA%|
0000ad40  2c 57 43 25 2c 7a 25 2c  61 43 25 2c 62 43 25 2c  |,WC%,z%,aC%,bC%,|
0000ad50  78 44 25 2c 53 24 2c 59  41 25 2c 42 43 25 2c 45  |xD%,S$,YA%,BC%,E|
0000ad60  24 29 3a ea 5f 44 25 2c  6b 25 2c 53 42 25 2c 69  |$):._D%,k%,SB%,i|
0000ad70  25 3a 69 25 3d a4 73 68  65 6c 6c 5f 48 65 61 70  |%:i%=.shell_Heap|
0000ad80  42 6c 6f 63 6b 46 65 74  63 68 28 34 30 29 3a 69  |BlockFetch(40):i|
0000ad90  25 21 30 3d 63 25 3a 69  25 21 34 3d 66 41 25 3a  |%!0=c%:i%!4=fA%:|
0000ada0  69 25 21 38 3d 53 41 25  3a 69 25 21 26 43 3d 66  |i%!8=SA%:i%!&C=f|
0000adb0  41 25 2b 57 43 25 3a 69  25 21 31 36 3d 53 41 25  |A%+WC%:i%!16=SA%|
0000adc0  2b 7a 25 3a 69 25 21 32  30 3d 78 44 25 84 62 43  |+z%:i%!20=xD%.bC|
0000add0  25 3c 3c 32 38 84 61 43  25 3c 3c 32 34 3a e7 69  |%<<28.aC%<<24:.i|
0000ade0  25 21 32 30 80 32 35 36  8c 0d 0c 38 23 5f 44 25  |%!20.256...8#_D%|
0000adf0  3d a7 53 24 2c 22 2c 22  29 3a 69 25 21 32 34 3d  |=.S$,","):i%!24=|
0000ae00  59 41 25 3a e7 45 24 3c  3e 22 22 8c 0d 0c 3b 36  |YA%:.E$<>""...;6|
0000ae10  53 42 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |SB%=.shell_HeapB|
0000ae20  6c 6f 63 6b 46 65 74 63  68 28 a9 45 24 2b 31 29  |lockFetch(.E$+1)|
0000ae30  3a 24 53 42 25 3d 45 24  3a 69 25 21 32 38 3d 53  |:$SB%=E$:i%!28=S|
0000ae40  42 25 0d 0c 3e 0d cc 69  25 21 32 38 3d 2d 31 0d  |B%..>..i%!28=-1.|
0000ae50  0c 40 0f cd 3a 69 25 21  33 32 3d 42 43 25 0d 0c  |.@..:i%!32=BC%..|
0000ae60  42 15 cc 24 28 69 25 2b  32 34 29 3d c0 53 24 2c  |B..$(i%+24)=.S$,|
0000ae70  26 42 29 0d 0c 44 34 cd  3a c8 99 26 34 30 30 43  |&B)..D4.:..&400C|
0000ae80  32 2c 2c 69 25 b8 6b 25  3a f2 73 68 65 6c 6c 5f  |2,,i%.k%:.shell_|
0000ae90  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000aea0  69 25 29 3a 3d 6b 25 0d  0c 4b 3c dd f2 73 68 65  |i%):=k%..K<..she|
0000aeb0  6c 6c 5f 49 63 6f 6e 44  65 6c 65 74 65 28 63 25  |ll_IconDelete(c%|
0000aec0  2c 65 25 29 3a f2 73 68  65 6c 6c 5f 44 6f 49 63  |,e%):.shell_DoIc|
0000aed0  6f 6e 44 65 6c 65 74 65  28 63 25 2c 65 25 2c a3  |onDelete(c%,e%,.|
0000aee0  29 3a e1 0d 0c 51 3d dd  f2 73 68 65 6c 6c 5f 49  |):...Q=..shell_I|
0000aef0  63 6f 6e 44 65 6c 65 74  65 32 28 63 25 2c 65 25  |conDelete2(c%,e%|
0000af00  29 3a f2 73 68 65 6c 6c  5f 44 6f 49 63 6f 6e 44  |):.shell_DoIconD|
0000af10  65 6c 65 74 65 28 63 25  2c 65 25 2c b9 29 3a e1  |elete(c%,e%,.):.|
0000af20  0d 0c 57 ef dd f2 73 68  65 6c 6c 5f 44 6f 49 63  |..W...shell_DoIc|
0000af30  6f 6e 44 65 6c 65 74 65  28 63 25 2c 65 25 2c 49  |onDelete(c%,e%,I|
0000af40  45 25 29 3a ea 61 25 2c  5f 25 2c 44 41 25 2c 49  |E%):.a%,_%,DA%,I|
0000af50  41 25 2c 4e 41 25 3a 61  25 3d a4 73 68 65 6c 6c  |A%,NA%:a%=.shell|
0000af60  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000af70  34 30 29 3a 61 25 21 30  3d 63 25 3a 61 25 21 34  |40):a%!0=c%:a%!4|
0000af80  3d 65 25 3a c8 99 26 34  30 30 43 45 2c 2c 61 25  |=e%:..&400CE,,a%|
0000af90  3a c8 99 26 38 31 36 38  41 2c 2c 61 25 2b 38 3a  |:..&8168A,,a%+8:|
0000afa0  5f 25 3d 61 25 21 38 3a  44 41 25 3d 61 25 21 26  |_%=a%!8:DA%=a%!&|
0000afb0  43 3a 49 41 25 3d 61 25  21 31 36 3a 4e 41 25 3d  |C:IA%=a%!16:NA%=|
0000afc0  61 25 21 32 30 3a c8 99  26 34 30 30 43 45 2c 2c  |a%!20:..&400CE,,|
0000afd0  61 25 3a e7 a4 73 68 65  6c 6c 5f 48 65 61 70 42  |a%:..shell_HeapB|
0000afe0  6c 6f 63 6b 45 78 69 73  74 73 28 61 25 21 32 38  |lockExists(a%!28|
0000aff0  29 8c f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |)..shell_HeapBlo|
0000b000  63 6b 52 65 74 75 72 6e  28 61 25 21 32 38 29 0d  |ckReturn(a%!28).|
0000b010  0c 60 40 e7 a4 73 68 65  6c 6c 5f 48 65 61 70 42  |.`@..shell_HeapB|
0000b020  6c 6f 63 6b 45 78 69 73  74 73 28 61 25 21 33 32  |lockExists(a%!32|
0000b030  29 8c f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |)..shell_HeapBlo|
0000b040  63 6b 52 65 74 75 72 6e  28 61 25 21 33 32 29 0d  |ckReturn(a%!32).|
0000b050  0c 61 16 c8 99 26 34 30  30 43 34 2c 2c 61 25 3a  |.a...&400C4,,a%:|
0000b060  e7 49 45 25 8c 0d 0c 63  1e c8 99 26 34 30 30 44  |.IE%...c...&400D|
0000b070  31 2c 63 25 2c 5f 25 2c  44 41 25 2c 49 41 25 2c  |1,c%,_%,DA%,IA%,|
0000b080  4e 41 25 0d 0c 64 22 cd  3a f2 73 68 65 6c 6c 5f  |NA%..d".:.shell_|
0000b090  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000b0a0  61 25 29 3a e1 0d 0c 6a  79 dd f2 73 68 65 6c 6c  |a%):...jy..shell|
0000b0b0  5f 49 63 6f 6e 50 75 74  44 61 74 61 28 51 41 25  |_IconPutData(QA%|
0000b0c0  2c 76 41 25 2c 53 24 2c  49 29 3a ea 61 25 3a 61  |,vA%,S$,I):.a%:a|
0000b0d0  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
0000b0e0  63 6b 46 65 74 63 68 28  35 30 29 3a 61 25 21 30  |ckFetch(50):a%!0|
0000b0f0  3d 51 41 25 3a 61 25 21  34 3d 76 41 25 3a c8 99  |=QA%:a%!4=vA%:..|
0000b100  26 34 30 30 43 45 2c 2c  61 25 3a e7 28 61 25 21  |&400CE,,a%:.(a%!|
0000b110  32 34 80 28 31 3c 3c 38  29 29 3c 3e 30 8c 0d 0c  |24.(1<<8))<>0...|
0000b120  71 35 e7 a9 53 24 3e 61  25 21 33 36 8c 85 39 39  |q5..S$>a%!36..99|
0000b130  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4e  |,.shell_MessageN|
0000b140  6f 41 72 67 73 28 22 53  48 45 4c 4c 4d 53 47 31  |oArgs("SHELLMSG1|
0000b150  32 22 29 0d 0c 72 0f 24  28 61 25 21 32 38 29 3d  |2")..r.$(a%!28)=|
0000b160  53 24 0d 0c 73 15 cc 24  28 61 25 2b 32 38 29 3d  |S$..s..$(a%+28)=|
0000b170  c0 53 24 2c 26 42 29 0d  0c 75 0c cd 3a e7 49 3c  |.S$,&B)..u..:.I<|
0000b180  3e 30 8c 0d 0c 77 31 61  25 21 38 3d 30 3a 61 25  |>0...w1a%!8=0:a%|
0000b190  21 26 43 3d 30 3a c8 99  26 34 30 30 43 44 2c 2c  |!&C=0:..&400CD,,|
0000b1a0  61 25 3a f2 73 68 65 6c  6c 5f 45 6e 73 75 72 65  |a%:.shell_Ensure|
0000b1b0  50 6f 6c 6c 0d 0c 7b 22  cd 3a f2 73 68 65 6c 6c  |Poll..{".:.shell|
0000b1c0  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
0000b1d0  28 61 25 29 3a e1 0d 0c  81 f3 dd a4 73 68 65 6c  |(a%):.......shel|
0000b1e0  6c 5f 49 63 6f 6e 4e 65  77 53 70 72 69 74 65 28  |l_IconNewSprite(|
0000b1f0  51 41 25 2c 76 41 25 2c  4d 41 24 2c 49 29 3a ea  |QA%,vA%,MA$,I):.|
0000b200  69 25 3a 69 25 3d a4 73  68 65 6c 6c 5f 48 65 61  |i%:i%=.shell_Hea|
0000b210  70 42 6c 6f 63 6b 46 65  74 63 68 28 34 30 29 3a  |pBlockFetch(40):|
0000b220  69 25 21 30 3d 51 41 25  3a 69 25 21 34 3d 76 41  |i%!0=QA%:i%!4=vA|
0000b230  25 3a c8 99 26 34 30 30  43 45 2c 2c 69 25 3a c8  |%:..&400CE,,i%:.|
0000b240  99 26 34 30 30 43 34 2c  2c 69 25 3a 69 25 21 34  |.&400C4,,i%:i%!4|
0000b250  3d 69 25 21 38 3a 69 25  21 38 3d 69 25 21 26 43  |=i%!8:i%!8=i%!&C|
0000b260  3a 69 25 21 26 43 3d 69  25 21 31 36 3a 69 25 21  |:i%!&C=i%!16:i%!|
0000b270  31 36 3d 69 25 21 32 30  3a 69 25 21 32 30 3d 69  |16=i%!20:i%!20=i|
0000b280  25 21 32 34 3a 24 28 69  25 2b 32 34 29 3d 4d 41  |%!24:$(i%+24)=MA|
0000b290  24 3a c8 99 26 34 30 30  43 32 2c 2c 69 25 b8 76  |$:..&400C2,,i%.v|
0000b2a0  41 25 3a e7 49 8c c8 99  26 34 30 30 44 31 2c 69  |A%:.I...&400D1,i|
0000b2b0  25 21 30 2c 69 25 21 34  2c 69 25 21 38 2c 69 25  |%!0,i%!4,i%!8,i%|
0000b2c0  21 26 43 2c 69 25 21 31  36 0d 0c 8b 23 f2 73 68  |!&C,i%!16...#.sh|
0000b2d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
0000b2e0  75 72 6e 28 69 25 29 3a  3d 76 41 25 0d 0c 90 8e  |urn(i%):=vA%....|
0000b2f0  dd a4 73 68 65 6c 6c 5f  49 63 6f 6e 47 65 74 44  |..shell_IconGetD|
0000b300  61 74 61 28 51 41 25 2c  76 41 25 29 3a ea 54 24  |ata(QA%,vA%):.T$|
0000b310  2c 69 25 3a 69 25 3d a4  73 68 65 6c 6c 5f 48 65  |,i%:i%=.shell_He|
0000b320  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 34 30 29  |apBlockFetch(40)|
0000b330  3a 69 25 21 30 3d 51 41  25 3a 69 25 21 34 3d 76  |:i%!0=QA%:i%!4=v|
0000b340  41 25 3a c8 99 26 34 30  30 43 45 2c 2c 69 25 3a  |A%:..&400CE,,i%:|
0000b350  e7 28 69 25 21 32 34 80  28 31 3c 3c 38 29 29 3c  |.(i%!24.(1<<8))<|
0000b360  3e 30 8c 54 24 3d 24 28  69 25 21 32 38 29 8b 54  |>0.T$=$(i%!28).T|
0000b370  24 3d 24 28 69 25 2b 32  38 29 0d 0c 97 22 f2 73  |$=$(i%+28)...".s|
0000b380  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
0000b390  74 75 72 6e 28 69 25 29  3a 3d 54 24 0d 0c 9c ea  |turn(i%):=T$....|
0000b3a0  dd a4 73 68 65 6c 6c 5f  49 63 6f 6e 4d 6f 76 65  |..shell_IconMove|
0000b3b0  32 28 63 25 2c 65 25 2c  58 44 25 2c 59 44 25 29  |2(c%,e%,XD%,YD%)|
0000b3c0  3a ea 56 41 25 3a 56 41  25 3d a4 73 68 65 6c 6c  |:.VA%:VA%=.shell|
0000b3d0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000b3e0  34 30 29 3a 21 56 41 25  3d 63 25 3a 56 41 25 21  |40):!VA%=c%:VA%!|
0000b3f0  34 3d 65 25 3a c8 99 26  34 30 30 43 45 2c 2c 56  |4=e%:..&400CE,,V|
0000b400  41 25 3a 56 41 25 21 38  2b 3d 58 44 25 3a 56 41  |A%:VA%!8+=XD%:VA|
0000b410  25 21 31 36 2b 3d 58 44  25 3a 56 41 25 21 26 43  |%!16+=XD%:VA%!&C|
0000b420  2b 3d 59 44 25 3a 56 41  25 21 32 30 2b 3d 59 44  |+=YD%:VA%!20+=YD|
0000b430  25 3a 65 25 3d a4 73 68  65 6c 6c 5f 49 63 6f 6e  |%:e%=.shell_Icon|
0000b440  4d 6f 76 65 28 63 25 2c  65 25 2c 56 41 25 21 38  |Move(c%,e%,VA%!8|
0000b450  2c 56 41 25 21 26 43 2c  56 41 25 21 31 36 2c 56  |,VA%!&C,VA%!16,V|
0000b460  41 25 21 32 30 29 3a f2  73 68 65 6c 6c 5f 48 65  |A%!20):.shell_He|
0000b470  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 56 41  |apBlockReturn(VA|
0000b480  25 29 3a 3d 65 25 0d 0c  a9 53 dd a4 73 68 65 6c  |%):=e%...S..shel|
0000b490  6c 5f 49 63 6f 6e 52 65  73 69 7a 65 28 63 25 2c  |l_IconResize(c%,|
0000b4a0  65 25 2c 5f 25 2c 44 41  25 2c 49 41 25 2c 4e 41  |e%,_%,DA%,IA%,NA|
0000b4b0  25 29 3a 3d a4 73 68 65  6c 6c 5f 49 63 6f 6e 4d  |%):=.shell_IconM|
0000b4c0  6f 76 65 28 63 25 2c 65  25 2c 5f 25 2c 44 41 25  |ove(c%,e%,_%,DA%|
0000b4d0  2c 49 41 25 2c 4e 41 25  29 0d 0c ae ea dd a4 73  |,IA%,NA%)......s|
0000b4e0  68 65 6c 6c 5f 49 63 6f  6e 4d 6f 76 65 28 63 25  |hell_IconMove(c%|
0000b4f0  2c 65 25 2c 5f 25 2c 44  41 25 2c 49 41 25 2c 4e  |,e%,_%,DA%,IA%,N|
0000b500  41 25 29 3a ea 52 41 25  2c 71 45 25 2c 65 45 25  |A%):.RA%,qE%,eE%|
0000b510  2c 67 41 25 2c 61 25 3a  ea 79 43 25 2c 7a 43 25  |,gA%,a%:.yC%,zC%|
0000b520  2c 5f 43 25 2c 41 44 25  3a 52 41 25 3d a4 73 68  |,_C%,AD%:RA%=.sh|
0000b530  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000b540  63 68 28 34 30 29 3a 61  25 3d a4 73 68 65 6c 6c  |ch(40):a%=.shell|
0000b550  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000b560  34 30 29 3a 21 52 41 25  3d 63 25 3a 52 41 25 21  |40):!RA%=c%:RA%!|
0000b570  34 3d 65 25 3a c8 99 26  34 30 30 43 45 2c 2c 52  |4=e%:..&400CE,,R|
0000b580  41 25 3a 21 61 25 3d 63  25 3a 61 25 21 34 3d 65  |A%:!a%=c%:a%!4=e|
0000b590  25 3a c8 99 26 34 30 30  43 45 2c 2c 61 25 3a c8  |%:..&400CE,,a%:.|
0000b5a0  99 26 38 31 36 38 41 2c  2c 61 25 2b 38 3a 6a 44  |.&8168A,,a%+8:jD|
0000b5b0  25 3d 52 41 25 21 32 34  3a 68 43 25 3d 52 41 25  |%=RA%!24:hC%=RA%|
0000b5c0  2b 32 38 0d 0c b8 f7 79  43 25 3d 6a 44 25 3a 7a  |+28....yC%=jD%:z|
0000b5d0  43 25 3d 68 43 25 21 30  3a 5f 43 25 3d 68 43 25  |C%=hC%!0:_C%=hC%|
0000b5e0  21 34 3a 41 44 25 3d 68  43 25 21 38 3a 67 41 25  |!4:AD%=hC%!8:gA%|
0000b5f0  3d 52 41 25 21 38 2d 61  25 21 38 3a c8 99 26 34  |=RA%!8-a%!8:..&4|
0000b600  30 30 43 34 2c 2c 52 41  25 3a c8 99 26 34 30 30  |00C4,,RA%:..&400|
0000b610  44 31 2c 21 52 41 25 2c  52 41 25 21 38 2d 67 41  |D1,!RA%,RA%!8-gA|
0000b620  25 2c 52 41 25 21 26 43  2d 67 41 25 2c 52 41 25  |%,RA%!&C-gA%,RA%|
0000b630  21 31 36 2b 67 41 25 2c  52 41 25 21 32 30 2b 67  |!16+gA%,RA%!20+g|
0000b640  41 25 3a 65 25 3d a4 73  68 65 6c 6c 5f 43 72 65  |A%:e%=.shell_Cre|
0000b650  61 74 65 49 63 6f 6e 32  28 63 25 2c 5f 25 2c 44  |ateIcon2(c%,_%,D|
0000b660  41 25 2c 49 41 25 2c 4e  41 25 2c 79 43 25 2c 7a  |A%,IA%,NA%,yC%,z|
0000b670  43 25 2c 5f 43 25 2c 41  44 25 2c 67 41 25 29 3a  |C%,_C%,AD%,gA%):|
0000b680  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000b690  52 65 74 75 72 6e 28 52  41 25 29 3a f2 73 68 65  |Return(RA%):.she|
0000b6a0  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
0000b6b0  72 6e 28 61 25 29 3a 3d  65 25 0d 0c c3 b0 dd a4  |rn(a%):=e%......|
0000b6c0  73 68 65 6c 6c 5f 43 72  65 61 74 65 49 63 6f 6e  |shell_CreateIcon|
0000b6d0  32 28 6b 25 2c 5f 25 2c  44 41 25 2c 49 41 25 2c  |2(k%,_%,DA%,IA%,|
0000b6e0  4e 41 25 2c 6c 25 2c 6e  44 25 2c 76 44 25 2c 48  |NA%,l%,nD%,vD%,H|
0000b6f0  45 25 2c 67 41 25 29 3a  ea 72 25 2c 79 25 2c 4a  |E%,gA%):.r%,y%,J|
0000b700  24 2c 58 24 2c 66 41 25  2c 53 41 25 3a 79 25 3d  |$,X$,fA%,SA%:y%=|
0000b710  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000b720  46 65 74 63 68 28 36 30  29 3a 21 79 25 3d 6b 25  |Fetch(60):!y%=k%|
0000b730  3a 79 25 21 32 30 3d 6c  25 3a 79 25 21 32 34 3d  |:y%!20=l%:y%!24=|
0000b740  6e 44 25 3a 79 25 21 32  38 3d 76 44 25 3a 79 25  |nD%:y%!28=vD%:y%|
0000b750  21 33 32 3d 48 45 25 3a  4a 24 3d 22 22 3a 58 24  |!32=HE%:J$="":X$|
0000b760  3d 22 22 3a e7 6c 25 80  31 8c 0d 0c ca 22 e7 6c  |="":.l%.1....".l|
0000b770  25 80 32 35 36 4a 24 3d  24 28 79 25 21 32 34 29  |%.256J$=$(y%!24)|
0000b780  8b 4a 24 3d 24 28 79 25  2b 32 34 29 0d 0c cb 0c  |.J$=$(y%+24)....|
0000b790  cd 3a e7 6c 25 80 32 8c  0d 0c cd 0c e7 6c 25 80  |.:.l%.2......l%.|
0000b7a0  32 35 36 8c 0d 0c ce 27  58 24 3d a4 73 68 65 6c  |256....'X$=.shel|
0000b7b0  6c 5f 49 63 6f 6e 47 65  74 43 6f 6d 6d 61 6e 64  |l_IconGetCommand|
0000b7c0  28 79 25 21 32 38 2c 22  53 22 29 0d 0c cf 10 cc  |(y%!28,"S").....|
0000b7d0  58 24 3d 24 28 79 25 2b  32 34 29 0d 0c d1 05 cd  |X$=$(y%+24).....|
0000b7e0  0d 0c d2 36 cd 3a f2 73  68 65 6c 6c 5f 47 65 74  |...6.:.shell_Get|
0000b7f0  4d 69 6e 58 59 28 6c 25  2c 4a 24 2c 58 24 29 3a  |MinXY(l%,J$,X$):|
0000b800  e7 49 41 25 2d 5f 25 3c  66 41 25 8c 49 41 25 3d  |.IA%-_%<fA%.IA%=|
0000b810  5f 25 2b 66 41 25 0d 0c  d5 1c e7 4e 41 25 2d 44  |_%+fA%.....NA%-D|
0000b820  41 25 3c 53 41 25 8c 4e  41 25 3d 44 41 25 2b 53  |A%<SA%.NA%=DA%+S|
0000b830  41 25 0d 0c d6 a1 79 25  21 34 3d 5f 25 3a 79 25  |A%....y%!4=_%:y%|
0000b840  21 38 3d 44 41 25 3a 79  25 21 26 43 3d 49 41 25  |!8=DA%:y%!&C=IA%|
0000b850  3a 79 25 21 31 36 3d 4e  41 25 3a c8 99 26 34 30  |:y%!16=NA%:..&40|
0000b860  30 43 32 2c 2c 79 25 b8  72 25 3a c8 99 26 34 30  |0C2,,y%.r%:..&40|
0000b870  30 44 31 2c 21 79 25 2c  79 25 21 34 2d 67 41 25  |0D1,!y%,y%!4-gA%|
0000b880  2c 79 25 21 38 2d 67 41  25 2c 79 25 21 26 43 2b  |,y%!8-gA%,y%!&C+|
0000b890  67 41 25 2c 79 25 21 31  36 2b 67 41 25 3a c8 99  |gA%,y%!16+gA%:..|
0000b8a0  26 34 30 30 44 33 2c 2c  79 25 3a e7 21 79 25 3d  |&400D3,,y%:.!y%=|
0000b8b0  6b 25 3a e7 79 25 21 34  3d 72 25 3a c8 99 26 34  |k%:.y%!4=r%:..&4|
0000b8c0  30 30 44 32 2c 6b 25 2c  72 25 2c 30 2c 30 2c 2d  |00D2,k%,r%,0,0,-|
0000b8d0  31 2c 30 0d 0c db 22 f2  73 68 65 6c 6c 5f 48 65  |1,0...".shell_He|
0000b8e0  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 79 25  |apBlockReturn(y%|
0000b8f0  29 3a 3d 72 25 0d 0c e0  50 dd f2 73 68 65 6c 6c  |):=r%...P..shell|
0000b900  5f 47 65 74 4d 69 6e 58  59 28 6c 25 2c 4a 24 2c  |_GetMinXY(l%,J$,|
0000b910  58 24 29 3a ea 5f 25 2c  44 41 25 2c 49 41 25 2c  |X$):._%,DA%,IA%,|
0000b920  4e 41 25 2c 5a 41 25 2c  6b 41 25 3a 66 41 25 3d  |NA%,ZA%,kA%:fA%=|
0000b930  30 3a 53 41 25 3d 30 3a  e7 6c 25 80 31 80 4a 24  |0:SA%=0:.l%.1.J$|
0000b940  3c 3e 22 22 8c 0d 0c e4  0b e7 6c 25 80 36 34 8c  |<>""......l%.64.|
0000b950  0d 0c e5 7d c8 99 26 34  30 30 38 34 2c 6c 25 3e  |...}..&40084,l%>|
0000b960  3e 32 34 b8 2c 2c 44 41  25 2c 2c 4e 41 25 3a c8  |>24.,,DA%,,NA%:.|
0000b970  99 26 34 30 30 39 37 2c  2c bd 32 36 2b bd 28 6c  |.&40097,,.26+.(l|
0000b980  25 3e 3e 32 34 29 2b 4a  24 b8 2c 5f 25 2c 2c 49  |%>>24)+J$.,_%,,I|
0000b990  41 25 3a c8 99 26 34 30  30 38 38 2c 2c 5f 25 b8  |A%:..&40088,,_%.|
0000b9a0  2c 5f 25 3a c8 99 26 34  30 30 38 38 2c 2c 49 41  |,_%:..&40088,,IA|
0000b9b0  25 b8 2c 49 41 25 3a 66  41 25 3d 49 41 25 2d 5f  |%.,IA%:fA%=IA%-_|
0000b9c0  25 3a 53 41 25 3d 4e 41  25 2d 44 41 25 0d 0c ea  |%:SA%=NA%-DA%...|
0000b9d0  1c cc 66 41 25 3d 36 2a  66 45 25 2b 31 36 2a a9  |..fA%=6*fE%+16*.|
0000b9e0  4a 24 3a 53 41 25 3d 33  32 0d 0c eb 15 cd 3a e7  |J$:SA%=32.....:.|
0000b9f0  6c 25 80 34 53 41 25 2b  3d 32 2a 6c 45 25 0d 0c  |l%.4SA%+=2*lE%..|
0000ba00  ed 13 cd 3a e7 6c 25 80  32 80 58 24 3c 3e 22 22  |...:.l%.2.X$<>""|
0000ba10  8c 0d 0c ef 48 c8 99 26  32 30 30 32 45 2c 32 39  |....H..&2002E,29|
0000ba20  36 2c a4 73 68 65 6c 6c  5f 55 73 65 72 53 70 72  |6,.shell_UserSpr|
0000ba30  69 74 65 73 42 61 73 65  2c 58 24 b8 2c 2c 2c 5a  |itesBase,X$.,,,Z|
0000ba40  41 25 2c 6b 41 25 2c 2c  44 44 25 3b 50 25 3a e7  |A%,kA%,,DD%;P%:.|
0000ba50  28 50 25 80 31 29 3d 30  8c 0d 0c f1 63 c8 99 26  |(P%.1)=0....c..&|
0000ba60  32 30 30 33 35 2c 44 44  25 2c 34 b8 2c 2c 69 44  |20035,DD%,4.,,iD|
0000ba70  25 3a 5a 41 25 3d 5a 41  25 3c 3c 69 44 25 3a c8  |%:ZA%=ZA%<<iD%:.|
0000ba80  99 26 32 30 30 33 35 2c  44 44 25 2c 35 b8 2c 2c  |.&20035,DD%,5.,,|
0000ba90  6b 44 25 3a 6b 41 25 3d  6b 41 25 3c 3c 6b 44 25  |kD%:kA%=kA%<<kD%|
0000baa0  3a e7 6c 25 80 26 38 30  30 5a 41 25 3d 5a 41 25  |:.l%.&800ZA%=ZA%|
0000bab0  2f 32 3a 6b 41 25 3d 6b  41 25 2f 32 0d 0c f4 1b  |/2:kA%=kA%/2....|
0000bac0  e7 28 6c 25 80 35 33 39  29 3d 31 39 5a 41 25 3d  |.(l%.539)=19ZA%=|
0000bad0  66 41 25 2b 5a 41 25 0d  0c f5 13 e7 5a 41 25 3e  |fA%+ZA%.....ZA%>|
0000bae0  66 41 25 66 41 25 3d 5a  41 25 0d 0c f6 13 e7 6b  |fA%fA%=ZA%.....k|
0000baf0  41 25 3e 53 41 25 53 41  25 3d 6b 41 25 0d 0c f7  |A%>SA%SA%=kA%...|
0000bb00  05 cd 0d 0c f8 07 cd 3a  e1 0d 0c fd 33 dd a4 73  |.......:....3..s|
0000bb10  68 65 6c 6c 5f 49 63 6f  6e 47 65 74 43 6f 6d 6d  |hell_IconGetComm|
0000bb20  61 6e 64 28 43 43 25 2c  50 41 24 29 3a ea 49 25  |and(CC%,PA$):.I%|
0000bb30  2c 54 24 3a e7 43 43 25  3c 3d 30 8c 0d 0d 00 09  |,T$:.CC%<=0.....|
0000bb40  54 24 3d 22 22 0d 0d 01  51 cc 49 25 3d a7 22 3b  |T$=""...Q.I%=.";|
0000bb50  22 2b a4 73 68 65 6c 6c  5f 53 74 72 69 6e 67 55  |"+.shell_StringU|
0000bb60  70 70 65 72 43 61 73 65  28 24 43 43 25 29 2c 22  |pperCase($CC%),"|
0000bb70  3b 22 2b a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |;"+.shell_String|
0000bb80  55 70 70 65 72 43 61 73  65 28 50 41 24 29 29 3a  |UpperCase(PA$)):|
0000bb90  e7 49 25 3d 30 8c 0d 0d  04 09 54 24 3d 22 22 0d  |.I%=0.....T$="".|
0000bba0  0d 05 29 cc 54 24 3d c0  24 28 43 43 25 2b 49 25  |..).T$=.$(CC%+I%|
0000bbb0  29 2c a7 24 28 43 43 25  2b 49 25 29 2b 22 3b 22  |),.$(CC%+I%)+";"|
0000bbc0  2c 22 3b 22 29 2d 31 29  0d 0d 07 05 cd 0d 0d 08  |,";")-1)........|
0000bbd0  09 cd 3a 3d 54 24 0d 0d  0d d1 dd f2 73 68 65 6c  |..:=T$......shel|
0000bbe0  6c 5f 49 63 6f 6e 52 65  64 72 61 77 28 63 25 2c  |l_IconRedraw(c%,|
0000bbf0  65 25 29 3a ea 61 25 3a  61 25 3d a4 73 68 65 6c  |e%):.a%:a%=.shel|
0000bc00  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000bc10  28 34 30 29 3a 21 61 25  3d 63 25 3a 61 25 21 34  |(40):!a%=c%:a%!4|
0000bc20  3d 65 25 3a c8 99 26 34  30 30 43 45 2c 2c 61 25  |=e%:..&400CE,,a%|
0000bc30  3a c8 99 26 38 31 36 38  41 2c 2c 61 25 2b 38 3a  |:..&8168A,,a%+8:|
0000bc40  c8 99 26 34 30 30 44 31  2c 63 25 2c 61 25 21 38  |..&400D1,c%,a%!8|
0000bc50  2c 61 25 21 26 43 2c 61  25 21 31 36 2c 61 25 21  |,a%!&C,a%!16,a%!|
0000bc60  32 30 3a f2 73 68 65 6c  6c 5f 41 63 74 69 6f 6e  |20:.shell_Action|
0000bc70  28 a4 73 68 65 6c 6c 5f  50 6f 6c 6c 5f 49 28 30  |(.shell_Poll_I(0|
0000bc80  2c 5f 55 25 21 26 39 34  29 29 3a f2 73 68 65 6c  |,_U%!&94)):.shel|
0000bc90  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
0000bca0  6e 28 61 25 29 3a e1 0d  0d 1a 39 dd a4 73 68 65  |n(a%):....9..she|
0000bcb0  6c 6c 5f 49 63 6f 6e 47  65 74 56 61 6c 69 64 61  |ll_IconGetValida|
0000bcc0  74 69 6f 6e 28 63 25 2c  65 25 29 3a ea 61 25 2c  |tion(c%,e%):.a%,|
0000bcd0  45 24 2c 6c 25 3a e7 65  25 3d 2d 31 8c 3d 22 22  |E$,l%:.e%=-1.=""|
0000bce0  0d 0d 1d 56 45 24 3d 22  22 3a 61 25 3d a4 73 68  |...VE$="":a%=.sh|
0000bcf0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000bd00  63 68 28 26 36 34 29 3a  61 25 21 30 3d 63 25 3a  |ch(&64):a%!0=c%:|
0000bd10  61 25 21 34 3d 65 25 3a  c8 99 26 34 30 30 43 45  |a%!4=e%:..&400CE|
0000bd20  2c 2c 61 25 3a 6c 25 3d  61 25 21 32 34 3a e7 6c  |,,a%:l%=a%!24:.l|
0000bd30  25 80 32 35 36 8c 0d 0d  25 18 e7 61 25 21 33 32  |%.256...%..a%!32|
0000bd40  3e 30 8c 45 24 3d 24 28  61 25 21 33 32 29 0d 0d  |>0.E$=$(a%!32)..|
0000bd50  26 24 cd 3a f2 73 68 65  6c 6c 5f 48 65 61 70 42  |&$.:.shell_HeapB|
0000bd60  6c 6f 63 6b 52 65 74 75  72 6e 28 61 25 29 3a 3d  |lockReturn(a%):=|
0000bd70  45 24 0d 0d 2c 7b dd f2  73 68 65 6c 6c 5f 49 63  |E$..,{..shell_Ic|
0000bd80  6f 6e 50 75 74 56 61 6c  69 64 61 74 69 6f 6e 28  |onPutValidation(|
0000bd90  63 25 2c 65 25 2c 6d 24  29 3a ea 61 25 2c 6c 25  |c%,e%,m$):.a%,l%|
0000bda0  3a 61 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:a%=.shell_HeapB|
0000bdb0  6c 6f 63 6b 46 65 74 63  68 28 26 36 34 29 3a 61  |lockFetch(&64):a|
0000bdc0  25 21 30 3d 63 25 3a 61  25 21 34 3d 65 25 3a c8  |%!0=c%:a%!4=e%:.|
0000bdd0  99 26 34 30 30 43 45 2c  2c 61 25 3a 6c 25 3d 61  |.&400CE,,a%:l%=a|
0000bde0  25 21 32 34 3a e7 6c 25  80 32 35 36 8c 0d 0d 33  |%!24:.l%.256...3|
0000bdf0  0f 24 28 61 25 21 33 32  29 3d 6d 24 0d 0d 34 22  |.$(a%!32)=m$..4"|
0000be00  cd 3a f2 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |.:.shell_HeapBlo|
0000be10  63 6b 52 65 74 75 72 6e  28 61 25 29 3a e1 0d 0d  |ckReturn(a%):...|
0000be20  3a 67 dd a4 73 68 65 6c  6c 5f 49 73 49 63 6f 6e  |:g..shell_IsIcon|
0000be30  53 65 6c 65 63 74 65 64  28 77 41 25 2c 78 41 25  |Selected(wA%,xA%|
0000be40  29 3a ea 62 25 3a f2 73  68 65 6c 6c 5f 49 63 6f  |):.b%:.shell_Ico|
0000be50  6e 47 65 74 53 74 61 74  65 28 77 41 25 2c 78 41  |nGetState(wA%,xA|
0000be60  25 29 3a 6c 25 3d 5f 51  25 21 32 34 3a 62 25 3d  |%):l%=_Q%!24:b%=|
0000be70  28 6c 25 80 26 32 30 30  30 30 30 29 3a e7 62 25  |(l%.&200000):.b%|
0000be80  3d 30 8c 3d a3 0d 0d 40  06 3d b9 0d 0d 45 4e dd  |=0.=...@.=...EN.|
0000be90  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 6c 65 63  |.shell_IconSelec|
0000bea0  74 28 77 41 25 2c 78 41  25 29 3a f2 73 68 65 6c  |t(wA%,xA%):.shel|
0000beb0  6c 5f 49 63 6f 6e 53 65  74 53 74 61 74 65 28 77  |l_IconSetState(w|
0000bec0  41 25 2c 78 41 25 2c 26  32 30 30 30 30 30 2c 26  |A%,xA%,&200000,&|
0000bed0  32 30 30 30 30 30 29 3a  e1 0d 0d 4c 4a dd f2 73  |200000):...LJ..s|
0000bee0  68 65 6c 6c 5f 49 63 6f  6e 44 65 73 65 6c 65 63  |hell_IconDeselec|
0000bef0  74 28 77 41 25 2c 78 41  25 29 3a f2 73 68 65 6c  |t(wA%,xA%):.shel|
0000bf00  6c 5f 49 63 6f 6e 53 65  74 53 74 61 74 65 28 77  |l_IconSetState(w|
0000bf10  41 25 2c 78 41 25 2c 30  2c 26 32 30 30 30 30 30  |A%,xA%,0,&200000|
0000bf20  29 3a e1 0d 0d 53 44 dd  f2 73 68 65 6c 6c 5f 49  |):...SD..shell_I|
0000bf30  63 6f 6e 47 65 74 53 74  61 74 65 28 77 41 25 2c  |conGetState(wA%,|
0000bf40  78 41 25 29 3a 21 5f 51  25 3d 77 41 25 3a 5f 51  |xA%):!_Q%=wA%:_Q|
0000bf50  25 21 34 3d 78 41 25 3a  c8 99 26 34 30 30 43 45  |%!4=xA%:..&400CE|
0000bf60  2c 2c 5f 51 25 3a e1 0d  0d 5c 2e dd f2 73 68 65  |,,_Q%:...\...she|
0000bf70  6c 6c 5f 49 63 6f 6e 53  65 74 53 65 6c 65 63 74  |ll_IconSetSelect|
0000bf80  65 64 28 63 25 2c 65 25  2c 4d 41 25 29 3a e7 4d  |ed(c%,e%,MA%):.M|
0000bf90  41 25 3d 30 8c 0d 0d 5e  1e f2 73 68 65 6c 6c 5f  |A%=0...^..shell_|
0000bfa0  49 63 6f 6e 44 65 73 65  6c 65 63 74 28 63 25 2c  |IconDeselect(c%,|
0000bfb0  65 25 29 0d 0d 5f 1d cc  f2 73 68 65 6c 6c 5f 49  |e%).._...shell_I|
0000bfc0  63 6f 6e 53 65 6c 65 63  74 28 63 25 2c 65 25 29  |conSelect(c%,e%)|
0000bfd0  0d 0d 61 07 cd 3a e1 0d  0d 67 26 dd f2 73 68 65  |..a..:...g&..she|
0000bfe0  6c 6c 5f 49 63 6f 6e 53  65 74 28 63 25 2c 65 25  |ll_IconSet(c%,e%|
0000bff0  2c 4d 41 25 29 3a e7 4d  41 25 3d 30 8c 0d 0d 69  |,MA%):.MA%=0...i|
0000c000  1e f2 73 68 65 6c 6c 5f  49 63 6f 6e 44 65 73 65  |..shell_IconDese|
0000c010  6c 65 63 74 28 63 25 2c  65 25 29 0d 0d 6a 1d cc  |lect(c%,e%)..j..|
0000c020  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 6c 65 63  |.shell_IconSelec|
0000c030  74 28 63 25 2c 65 25 29  0d 0d 6c 07 cd 3a e1 0d  |t(c%,e%)..l..:..|
0000c040  0d 71 98 dd f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |.q...shell_IconS|
0000c050  65 74 53 74 61 74 65 28  77 41 25 2c 78 41 25 2c  |etState(wA%,xA%,|
0000c060  7a 44 25 2c 46 45 25 29  3a ea 69 25 3a 69 25 3d  |zD%,FE%):.i%:i%=|
0000c070  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000c080  46 65 74 63 68 28 31 36  29 3a 21 69 25 3d 77 41  |Fetch(16):!i%=wA|
0000c090  25 3a 69 25 21 34 3d 78  41 25 3a 69 25 21 38 3d  |%:i%!4=xA%:i%!8=|
0000c0a0  7a 44 25 3a 69 25 21 26  43 3d 46 45 25 3a c8 99  |zD%:i%!&C=FE%:..|
0000c0b0  26 34 30 30 43 44 2c 2c  69 25 3a f2 73 68 65 6c  |&400CD,,i%:.shel|
0000c0c0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
0000c0d0  6e 28 69 25 29 3a e1 0d  0d 7e 51 dd f2 73 68 65  |n(i%):...~Q..she|
0000c0e0  6c 6c 5f 49 63 6f 6e 55  6e 73 65 6c 65 63 74 61  |ll_IconUnselecta|
0000c0f0  62 6c 65 28 6b 25 2c 47  45 25 29 3a f2 73 68 65  |ble(k%,GE%):.she|
0000c100  6c 6c 5f 49 63 6f 6e 53  65 74 53 74 61 74 65 28  |ll_IconSetState(|
0000c110  6b 25 2c 47 45 25 2c 26  34 30 30 30 30 30 2c 26  |k%,GE%,&400000,&|
0000c120  34 30 30 30 30 29 3a e1  0d 0d 84 77 dd f2 73 68  |40000):....w..sh|
0000c130  65 6c 6c 5f 49 63 6f 6e  53 65 74 42 47 43 6f 6c  |ell_IconSetBGCol|
0000c140  6f 75 72 28 63 25 2c 65  25 2c 4e 42 25 29 3a e7  |our(c%,e%,NB%):.|
0000c150  4e 42 25 3c 30 84 4e 42  25 3e 26 46 8c 85 39 39  |NB%<0.NB%>&F..99|
0000c160  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4f  |,.shell_MessageO|
0000c170  6e 65 41 72 67 28 22 53  48 45 4c 4c 4d 53 47 32  |neArg("SHELLMSG2|
0000c180  34 22 2c 22 50 52 4f 43  73 68 65 6c 6c 5f 49 63  |4","PROCshell_Ic|
0000c190  6f 6e 53 65 74 42 47 43  6f 6c 6f 75 72 22 29 0d  |onSetBGColour").|
0000c1a0  0d 86 32 f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |..2.shell_IconSe|
0000c1b0  74 53 74 61 74 65 28 63  25 2c 65 25 2c 4e 42 25  |tState(c%,e%,NB%|
0000c1c0  3c 3c 32 38 2c 26 46 30  30 30 30 30 30 30 29 3a  |<<28,&F0000000):|
0000c1d0  e1 0d 0d 8b 77 dd f2 73  68 65 6c 6c 5f 49 63 6f  |....w..shell_Ico|
0000c1e0  6e 53 65 74 46 47 43 6f  6c 6f 75 72 28 63 25 2c  |nSetFGColour(c%,|
0000c1f0  65 25 2c 4e 42 25 29 3a  e7 4e 42 25 3c 30 84 4e  |e%,NB%):.NB%<0.N|
0000c200  42 25 3e 26 46 8c 85 39  39 2c a4 73 68 65 6c 6c  |B%>&F..99,.shell|
0000c210  5f 4d 65 73 73 61 67 65  4f 6e 65 41 72 67 28 22  |_MessageOneArg("|
0000c220  53 48 45 4c 4c 4d 53 47  32 34 22 2c 22 50 52 4f  |SHELLMSG24","PRO|
0000c230  43 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 46 47  |Cshell_IconSetFG|
0000c240  43 6f 6c 6f 75 72 22 29  0d 0d 8d 31 f2 73 68 65  |Colour")...1.she|
0000c250  6c 6c 5f 49 63 6f 6e 53  65 74 53 74 61 74 65 28  |ll_IconSetState(|
0000c260  63 25 2c 65 25 2c 4e 42  25 3c 3c 32 34 2c 26 46  |c%,e%,NB%<<24,&F|
0000c270  30 30 30 30 30 30 29 3a  e1 0d 0d 93 58 dd f2 73  |000000):....X..s|
0000c280  68 65 6c 6c 5f 43 61 72  65 74 53 65 74 50 6f 73  |hell_CaretSetPos|
0000c290  69 74 69 6f 6e 28 51 41  25 2c 76 41 25 2c 4a 45  |ition(QA%,vA%,JE|
0000c2a0  25 2c 4b 45 25 2c 64 41  25 2c 63 41 25 29 3a c8  |%,KE%,dA%,cA%):.|
0000c2b0  99 26 34 30 30 44 32 2c  51 41 25 2c 76 41 25 2c  |.&400D2,QA%,vA%,|
0000c2c0  4a 45 25 2c 4b 45 25 2c  64 41 25 2c 63 41 25 3a  |JE%,KE%,dA%,cA%:|
0000c2d0  e1 0d 0d 9a 7c dd f2 73  68 65 6c 6c 5f 49 63 6f  |....|..shell_Ico|
0000c2e0  6e 53 65 74 42 75 74 74  6f 6e 54 79 70 65 28 63  |nSetButtonType(c|
0000c2f0  25 2c 65 25 2c 6e 42 25  29 3a e7 6e 42 25 3d 26  |%,e%,nB%):.nB%=&|
0000c300  43 84 6e 42 25 3d 26 44  8c 85 39 39 2c a4 73 68  |C.nB%=&D..99,.sh|
0000c310  65 6c 6c 5f 4d 65 73 73  61 67 65 4f 6e 65 41 72  |ell_MessageOneAr|
0000c320  67 28 22 53 48 45 4c 4c  4d 53 47 32 33 22 2c 22  |g("SHELLMSG23","|
0000c330  50 52 4f 43 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |PROCshell_IconSe|
0000c340  74 42 75 74 74 6f 6e 54  79 70 65 22 29 0d 0d 9c  |tButtonType")...|
0000c350  56 e7 6e 42 25 3c 30 84  6e 42 25 3e 26 46 8c 85  |V.nB%<0.nB%>&F..|
0000c360  39 39 2c a4 73 68 65 6c  6c 5f 4d 65 73 73 61 67  |99,.shell_Messag|
0000c370  65 4f 6e 65 41 72 67 28  22 53 48 45 4c 4c 4d 53  |eOneArg("SHELLMS|
0000c380  47 32 32 22 2c 22 50 52  4f 43 73 68 65 6c 6c 5f  |G22","PROCshell_|
0000c390  49 63 6f 6e 53 65 74 42  75 74 74 6f 6e 54 79 70  |IconSetButtonTyp|
0000c3a0  65 22 29 0d 0d 9d 2e f2  73 68 65 6c 6c 5f 49 63  |e").....shell_Ic|
0000c3b0  6f 6e 53 65 74 53 74 61  74 65 28 63 25 2c 65 25  |onSetState(c%,e%|
0000c3c0  2c 6e 42 25 3c 3c 26 43  2c 26 46 30 30 30 29 3a  |,nB%<<&C,&F000):|
0000c3d0  e1 0d 0d a2 6d dd f2 73  68 65 6c 6c 5f 49 63 6f  |....m..shell_Ico|
0000c3e0  6e 53 65 74 45 53 47 28  63 25 2c 65 25 2c 69 43  |nSetESG(c%,e%,iC|
0000c3f0  25 29 3a e7 69 43 25 3c  30 84 69 43 25 3e 33 31  |%):.iC%<0.iC%>31|
0000c400  8c 85 39 39 2c a4 73 68  65 6c 6c 5f 4d 65 73 73  |..99,.shell_Mess|
0000c410  61 67 65 4f 6e 65 41 72  67 28 22 53 48 45 4c 4c  |ageOneArg("SHELL|
0000c420  4d 53 47 32 35 22 2c 22  50 52 4f 43 73 68 65 6c  |MSG25","PROCshel|
0000c430  6c 5f 49 63 6f 6e 53 65  74 45 53 47 22 29 0d 0d  |l_IconSetESG")..|
0000c440  a4 30 f2 73 68 65 6c 6c  5f 49 63 6f 6e 53 65 74  |.0.shell_IconSet|
0000c450  53 74 61 74 65 28 63 25  2c 65 25 2c 69 43 25 3c  |State(c%,e%,iC%<|
0000c460  3c 31 36 2c 26 31 46 30  30 30 30 29 3a e1 0d 0d  |<16,&1F0000):...|
0000c470  aa 30 dd f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |.0..shell_IconSe|
0000c480  74 54 65 78 74 28 63 25  2c 65 25 2c 76 25 29 3a  |tText(c%,e%,v%):|
0000c490  e7 76 25 3c 3e 30 8c 76  25 3d 31 3c 3c 30 0d 0d  |.v%<>0.v%=1<<0..|
0000c4a0  ac 28 f2 73 68 65 6c 6c  5f 49 63 6f 6e 53 65 74  |.(.shell_IconSet|
0000c4b0  53 74 61 74 65 28 63 25  2c 65 25 2c 76 25 2c 31  |State(c%,e%,v%,1|
0000c4c0  3c 3c 30 29 3a e1 0d 0d  b2 32 dd f2 73 68 65 6c  |<<0):....2..shel|
0000c4d0  6c 5f 49 63 6f 6e 53 65  74 53 70 72 69 74 65 28  |l_IconSetSprite(|
0000c4e0  63 25 2c 65 25 2c 76 25  29 3a e7 76 25 3c 3e 30  |c%,e%,v%):.v%<>0|
0000c4f0  8c 76 25 3d 31 3c 3c 31  0d 0d b4 28 f2 73 68 65  |.v%=1<<1...(.she|
0000c500  6c 6c 5f 49 63 6f 6e 53  65 74 53 74 61 74 65 28  |ll_IconSetState(|
0000c510  63 25 2c 65 25 2c 76 25  2c 31 3c 3c 31 29 3a e1  |c%,e%,v%,1<<1):.|
0000c520  0d 0d b9 32 dd f2 73 68  65 6c 6c 5f 49 63 6f 6e  |...2..shell_Icon|
0000c530  53 65 74 42 6f 72 64 65  72 28 63 25 2c 65 25 2c  |SetBorder(c%,e%,|
0000c540  76 25 29 3a e7 76 25 3c  3e 30 8c 76 25 3d 31 3c  |v%):.v%<>0.v%=1<|
0000c550  3c 32 0d 0d bb 28 f2 73  68 65 6c 6c 5f 49 63 6f  |<2...(.shell_Ico|
0000c560  6e 53 65 74 53 74 61 74  65 28 63 25 2c 65 25 2c  |nSetState(c%,e%,|
0000c570  76 25 2c 31 3c 3c 32 29  3a e1 0d 0d c1 56 dd f2  |v%,1<<2):....V..|
0000c580  73 68 65 6c 6c 5f 49 63  6f 6e 53 65 74 48 43 65  |shell_IconSetHCe|
0000c590  6e 74 72 65 64 28 63 25  2c 65 25 2c 76 25 29 3a  |ntred(c%,e%,v%):|
0000c5a0  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 53 74  |.shell_IconSetSt|
0000c5b0  61 74 65 28 63 25 2c 65  25 2c 30 2c 31 3c 3c 39  |ate(c%,e%,0,1<<9|
0000c5c0  29 3a e7 76 25 3c 3e 30  8c 76 25 3d 31 3c 3c 33  |):.v%<>0.v%=1<<3|
0000c5d0  0d 0d c4 28 f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |...(.shell_IconS|
0000c5e0  65 74 53 74 61 74 65 28  63 25 2c 65 25 2c 76 25  |etState(c%,e%,v%|
0000c5f0  2c 31 3c 3c 33 29 3a e1  0d 0d ca 34 dd f2 73 68  |,1<<3):....4..sh|
0000c600  65 6c 6c 5f 49 63 6f 6e  53 65 74 56 43 65 6e 74  |ell_IconSetVCent|
0000c610  72 65 64 28 63 25 2c 65  25 2c 76 25 29 3a e7 76  |red(c%,e%,v%):.v|
0000c620  25 3c 3e 30 8c 76 25 3d  31 3c 3c 34 0d 0d cc 28  |%<>0.v%=1<<4...(|
0000c630  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 53 74  |.shell_IconSetSt|
0000c640  61 74 65 28 63 25 2c 65  25 2c 76 25 2c 31 3c 3c  |ate(c%,e%,v%,1<<|
0000c650  34 29 3a e1 0d 0d d2 32  dd f2 73 68 65 6c 6c 5f  |4):....2..shell_|
0000c660  49 63 6f 6e 53 65 74 46  69 6c 6c 65 64 28 63 25  |IconSetFilled(c%|
0000c670  2c 65 25 2c 76 25 29 3a  e7 76 25 3c 3e 30 8c 76  |,e%,v%):.v%<>0.v|
0000c680  25 3d 31 3c 3c 35 0d 0d  d4 28 f2 73 68 65 6c 6c  |%=1<<5...(.shell|
0000c690  5f 49 63 6f 6e 53 65 74  53 74 61 74 65 28 63 25  |_IconSetState(c%|
0000c6a0  2c 65 25 2c 76 25 2c 31  3c 3c 35 29 3a e1 0d 0d  |,e%,v%,1<<5):...|
0000c6b0  da 55 dd f2 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |.U..shell_IconSe|
0000c6c0  74 52 69 67 68 74 4a 75  73 74 28 63 25 2c 65 25  |tRightJust(c%,e%|
0000c6d0  2c 76 25 29 3a f2 73 68  65 6c 6c 5f 49 63 6f 6e  |,v%):.shell_Icon|
0000c6e0  53 65 74 48 43 65 6e 74  72 65 64 28 63 25 2c 65  |SetHCentred(c%,e|
0000c6f0  25 2c 30 29 3a e7 76 25  3c 3e 30 8c 76 25 3d 31  |%,0):.v%<>0.v%=1|
0000c700  3c 3c 39 0d 0d dd 28 f2  73 68 65 6c 6c 5f 49 63  |<<9...(.shell_Ic|
0000c710  6f 6e 53 65 74 53 74 61  74 65 28 63 25 2c 65 25  |onSetState(c%,e%|
0000c720  2c 76 25 2c 31 3c 3c 39  29 3a e1 0d 0d e3 65 dd  |,v%,1<<9):....e.|
0000c730  f2 73 68 65 6c 6c 5f 49  63 6f 6e 53 65 74 4c 65  |.shell_IconSetLe|
0000c740  66 74 4a 75 73 74 28 63  25 2c 65 25 29 3a f2 73  |ftJust(c%,e%):.s|
0000c750  68 65 6c 6c 5f 49 63 6f  6e 53 65 74 48 43 65 6e  |hell_IconSetHCen|
0000c760  74 72 65 64 28 63 25 2c  65 25 2c 30 29 3a f2 73  |tred(c%,e%,0):.s|
0000c770  68 65 6c 6c 5f 49 63 6f  6e 53 65 74 52 69 67 68  |hell_IconSetRigh|
0000c780  74 4a 75 73 74 28 63 25  2c 65 25 2c 30 29 3a e1  |tJust(c%,e%,0):.|
0000c790  0d 0d eb 41 dd f2 73 68  65 6c 6c 5f 49 63 6f 6e  |...A..shell_Icon|
0000c7a0  53 65 74 55 6e 73 65 6c  65 63 74 61 62 6c 65 28  |SetUnselectable(|
0000c7b0  63 25 2c 65 25 2c 4d 41  25 29 3a ea 46 41 25 3a  |c%,e%,MA%):.FA%:|
0000c7c0  e7 4d 41 25 3c 3e 30 8c  4d 41 25 3d 31 3c 3c 32  |.MA%<>0.MA%=1<<2|
0000c7d0  32 0d 0d ee 31 f2 73 68  65 6c 6c 5f 49 63 6f 6e  |2...1.shell_Icon|
0000c7e0  53 65 74 53 74 61 74 65  28 63 25 2c 65 25 2c 4d  |SetState(c%,e%,M|
0000c7f0  41 25 2c 31 3c 3c 32 32  29 3a e7 4d 41 25 3c 3e  |A%,1<<22):.MA%<>|
0000c800  30 8c 0d 0d f1 42 46 41  25 3d a4 73 68 65 6c 6c  |0....BFA%=.shell|
0000c810  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000c820  32 34 29 3a c8 99 26 34  30 30 44 33 2c 2c 46 41  |24):..&400D3,,FA|
0000c830  25 3a e7 21 46 41 25 3d  63 25 80 46 41 25 21 34  |%:.!FA%=c%.FA%!4|
0000c840  3d 65 25 8c 0d 0d f4 0f  c8 99 26 34 30 30 44 32  |=e%.......&400D2|
0000c850  2c 2d 31 0d 0d f5 21 cd  3a f2 73 68 65 6c 6c 5f  |,-1...!.:.shell_|
0000c860  48 65 61 70 42 6c 6f 63  6b 52 65 74 75 72 6e 28  |HeapBlockReturn(|
0000c870  46 41 25 29 0d 0d f7 07  cd 3a e1 0d 0d fd 57 dd  |FA%).....:....W.|
0000c880  f2 73 68 65 6c 6c 5f 43  61 72 65 74 53 65 74 52  |.shell_CaretSetR|
0000c890  69 67 68 74 28 63 25 2c  65 25 29 3a c8 99 26 34  |ight(c%,e%):..&4|
0000c8a0  30 30 44 32 2c 63 25 2c  65 25 2c 2d 31 2c 2d 31  |00D2,c%,e%,-1,-1|
0000c8b0  2c 2d 31 2c a9 28 a4 73  68 65 6c 6c 5f 49 63 6f  |,-1,.(.shell_Ico|
0000c8c0  6e 47 65 74 44 61 74 61  28 63 25 2c 65 25 29 29  |nGetData(c%,e%))|
0000c8d0  3a e1 0d 0e 04 33 dd f2  70 72 69 6e 74 5f 74 65  |:....3..print_te|
0000c8e0  78 74 28 46 2c 47 2c 4a  24 29 3a e7 a4 69 6e 28  |xt(F,G,J$):..in(|
0000c8f0  46 2c 47 2d 33 32 2c 46  2b 31 36 2a a9 28 4a 24  |F,G-32,F+16*.(J$|
0000c900  29 2c 47 29 8c 0d 0e 06  0c ec 46 2c 47 3a f1 4a  |),G)......F,G:.J|
0000c910  24 0d 0e 08 07 cd 3a e1  0d 0e 0d 1e dd a4 69 6e  |$.....:.......in|
0000c920  28 41 25 2c 42 25 2c 43  25 2c 44 25 29 3a e7 43  |(A%,B%,C%,D%):.C|
0000c930  25 3c 59 8c 3d a3 0d 0e  0f 0c e7 41 25 3e 5a 8c  |%<Y.=......A%>Z.|
0000c940  3d a3 0d 0e 10 0c e7 42  25 3e 50 8c 3d a3 0d 0e  |=......B%>P.=...|
0000c950  11 0c e7 44 25 3c 51 8c  3d a3 0d 0e 12 06 3d b9  |...D%<Q.=.....=.|
0000c960  0d 0e 16 87 dd f2 6e 65  77 76 61 6c 73 3a 59 3d  |......newvals:Y=|
0000c970  5f 51 25 21 32 38 3a 51  3d 5f 51 25 21 33 32 3a  |_Q%!28:Q=_Q%!32:|
0000c980  5a 3d 5f 51 25 21 33 36  3a 50 3d 5f 51 25 21 34  |Z=_Q%!36:P=_Q%!4|
0000c990  30 3a 54 3d 5f 51 25 21  34 3a 56 3d 5f 51 25 21  |0:T=_Q%!4:V=_Q%!|
0000c9a0  38 3a 55 3d 5f 51 25 21  26 43 3a 4f 3d 5f 51 25  |8:U=_Q%!&C:O=_Q%|
0000c9b0  21 31 36 3a 4b 3d 5f 51  25 21 32 30 3a 4c 3d 5f  |!16:K=_Q%!20:L=_|
0000c9c0  51 25 21 32 34 3a 52 3d  55 2d 54 3a 53 3d 4f 2d  |Q%!24:R=U-T:S=O-|
0000c9d0  56 3a 64 3d 4b 3a 65 3d  4b 2b 52 3a 61 3d 4c 3a  |V:d=K:e=K+R:a=L:|
0000c9e0  62 3d 4c 2d 53 3a e1 0d  0e 21 1e dd a4 6d 61 78  |b=L-S:...!...max|
0000c9f0  28 78 25 2c 54 41 25 29  3a e7 78 25 3c 54 41 25  |(x%,TA%):.x%<TA%|
0000ca00  8c 3d 54 41 25 0d 0e 23  07 3d 78 25 0d 0e 26 38  |.=TA%..#.=x%..&8|
0000ca10  dd a4 73 68 65 6c 6c 5f  4c 65 61 66 28 4d 24 29  |..shell_Leaf(M$)|
0000ca20  3a c8 95 a7 4d 24 2c 22  2e 22 29 3a 4d 24 3d c1  |:...M$,"."):M$=.|
0000ca30  4d 24 2c a7 4d 24 2c 22  2e 22 29 2b 31 29 3a ce  |M$,.M$,".")+1):.|
0000ca40  3a 3d 4d 24 0d 0e 2e 2e  dd a4 73 68 65 6c 6c 5f  |:=M$......shell_|
0000ca50  42 72 61 6e 63 68 28 63  24 29 3a ea 43 41 25 2c  |Branch(c$):.CA%,|
0000ca60  6e 24 2c 62 25 3a e7 a7  63 24 2c 22 2e 22 29 3d  |n$,b%:..c$,".")=|
0000ca70  30 8c 0d 0e 31 09 6e 24  3d 22 22 0d 0e 32 38 cc  |0...1.n$=""..28.|
0000ca80  62 25 3d 30 3a f5 3a 43  41 25 3d 62 25 2b 31 3a  |b%=0:.:CA%=b%+1:|
0000ca90  62 25 3d a7 63 24 2c 22  2e 22 2c 43 41 25 29 3a  |b%=.c$,".",CA%):|
0000caa0  fd 62 25 3d 30 3a 6e 24  3d c0 63 24 2c 43 41 25  |.b%=0:n$=.c$,CA%|
0000cab0  2d 32 29 0d 0e 39 09 cd  3a 3d 6e 24 0d 0e 3e 38  |-2)..9..:=n$..>8|
0000cac0  dd a4 67 6e 61 6d 65 28  43 29 3a 6f 24 3d 22 22  |..gname(C):o$=""|
0000cad0  3a c8 95 3f 43 3c 3e 30  80 3f 43 3c 3e 26 44 3a  |:..?C<>0.?C<>&D:|
0000cae0  6f 24 3d 6f 24 2b bd 3f  43 3a 43 2b 3d 31 3a ce  |o$=o$+.?C:C+=1:.|
0000caf0  3a 3d 6f 24 0d 0e 47 70  dd f2 73 68 65 6c 6c 5f  |:=o$..Gp..shell_|
0000cb00  57 69 6e 64 6f 77 52 65  73 69 7a 65 28 51 41 25  |WindowResize(QA%|
0000cb10  2c 50 45 25 2c 51 45 25  2c 52 45 25 2c 53 45 25  |,PE%,QE%,RE%,SE%|
0000cb20  2c 45 43 25 29 3a 21 5f  51 25 3d 50 45 25 3a 5f  |,EC%):!_Q%=PE%:_|
0000cb30  51 25 21 34 3d 51 45 25  3a 5f 51 25 21 38 3d 52  |Q%!4=QE%:_Q%!8=R|
0000cb40  45 25 3a 5f 51 25 21 26  43 3d 53 45 25 3a c8 99  |E%:_Q%!&C=SE%:..|
0000cb50  26 34 30 30 44 37 2c 51  41 25 2c 5f 51 25 3a e7  |&400D7,QA%,_Q%:.|
0000cb60  45 43 25 8c 0d 0e 4b 29  5f 51 25 21 30 3d 51 41  |EC%...K)_Q%!0=QA|
0000cb70  25 3a c8 99 26 34 30 30  43 43 2c 2c 5f 51 25 3a  |%:..&400CC,,_Q%:|
0000cb80  c8 99 26 34 30 30 43 35  2c 2c 5f 51 25 0d 0e 4e  |..&400C5,,_Q%..N|
0000cb90  07 cd 3a e1 0d 0e 53 6f  dd f2 73 68 65 6c 6c 5f  |..:...So..shell_|
0000cba0  57 69 6e 64 6f 77 52 65  74 69 74 6c 65 28 51 41  |WindowRetitle(QA|
0000cbb0  25 2c 51 24 29 3a ea 62  25 2c 74 25 3a 74 25 3d  |%,Q$):.b%,t%:t%=|
0000cbc0  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000cbd0  46 65 74 63 68 28 36 30  30 30 29 3a 74 25 21 30  |Fetch(6000):t%!0|
0000cbe0  3d 51 41 25 3a c8 99 26  34 30 30 43 43 2c 2c 74  |=QA%:..&400CC,,t|
0000cbf0  25 3a e7 28 28 74 25 21  36 30 29 80 32 35 36 29  |%:.((t%!60).256)|
0000cc00  3d 30 8c 0d 0e 5a 34 62  25 3d 74 25 2b 37 36 3a  |=0...Z4b%=t%+76:|
0000cc10  24 62 25 3d c0 51 24 2c  26 42 29 3a c8 99 26 34  |$b%=.Q$,&B):..&4|
0000cc20  30 30 43 33 2c 2c 74 25  3a c8 99 26 34 30 30 43  |00C3,,t%:..&400C|
0000cc30  31 2c 2c 74 25 2b 34 0d  0e 5e 2a cc 24 28 21 28  |1,,t%+4..^*.$(!(|
0000cc40  74 25 2b 37 36 29 29 3d  51 24 3a e7 28 28 74 25  |t%+76))=Q$:.((t%|
0000cc50  21 33 32 29 80 28 31 3c  3c 31 36 29 29 3c 3e 30  |!32).(1<<16))<>0|
0000cc60  8c 0d 0e 63 29 c8 99 26  34 30 30 44 31 2c 2d 31  |...c)..&400D1,-1|
0000cc70  2c 74 25 21 34 2c 74 25  21 31 36 2c 74 25 21 26  |,t%!4,t%!16,t%!&|
0000cc80  43 2c 74 25 21 31 36 2b  34 34 0d 0e 64 20 cd 3a  |C,t%!16+44..d .:|
0000cc90  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000cca0  52 65 74 75 72 6e 28 74  25 29 0d 0e 66 07 cd 3a  |Return(t%)..f..:|
0000ccb0  e1 0d 0e 6b 3e dd a4 73  68 65 6c 6c 5f 57 69 6e  |...k>..shell_Win|
0000ccc0  64 6f 77 54 69 74 6c 65  49 6e 64 69 72 65 63 74  |dowTitleIndirect|
0000ccd0  65 64 28 6f 42 25 29 3a  e7 28 6f 42 25 80 28 31  |ed(oB%):.(oB%.(1|
0000cce0  3c 3c 38 29 29 3d 28 31  3c 3c 38 29 8c 3d b9 0d  |<<8))=(1<<8).=..|
0000ccf0  0e 6d 06 3d a3 0d 0e 71  ed dd f2 73 68 65 6c 6c  |.m.=...q...shell|
0000cd00  5f 53 63 72 65 65 6e 54  6f 57 69 6e 64 6f 77 43  |_ScreenToWindowC|
0000cd10  6f 6f 72 64 73 28 57 45  25 2c f8 58 25 2c f8 59  |oords(WE%,.X%,.Y|
0000cd20  25 29 3a ea 6a 43 25 2c  4c 44 25 2c 62 45 25 2c  |%):.jC%,LD%,bE%,|
0000cd30  4d 44 25 2c 4e 44 25 2c  4f 42 25 3a 4f 42 25 3d  |MD%,ND%,OB%:OB%=|
0000cd40  a4 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
0000cd50  46 65 74 63 68 28 36 30  30 29 3a 6a 43 25 3d 4f  |Fetch(600):jC%=O|
0000cd60  42 25 3a 21 6a 43 25 3d  57 45 25 3a c8 99 26 34  |B%:!jC%=WE%:..&4|
0000cd70  30 30 43 43 2c 2c 6a 43  25 3a 4c 44 25 3d 4f 42  |00CC,,jC%:LD%=OB|
0000cd80  25 21 34 3a 6c 44 25 3d  4f 42 25 21 31 36 3a 4d  |%!4:lD%=OB%!16:M|
0000cd90  44 25 3d 4f 42 25 21 32  30 3a 4e 44 25 3d 4f 42  |D%=OB%!20:ND%=OB|
0000cda0  25 21 32 34 3a 58 25 3d  58 25 2b 28 4d 44 25 2d  |%!24:X%=X%+(MD%-|
0000cdb0  4c 44 25 29 3a 59 25 3d  59 25 2b 28 4e 44 25 2d  |LD%):Y%=Y%+(ND%-|
0000cdc0  6c 44 25 29 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |lD%):.shell_Heap|
0000cdd0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 4f 42 25 29  |BlockReturn(OB%)|
0000cde0  3a e1 0d 0e 82 38 dd a4  73 68 65 6c 6c 5f 57 69  |:....8..shell_Wi|
0000cdf0  6d 70 53 6c 6f 74 52 65  61 64 45 6e 64 3a ea 59  |mpSlotReadEnd:.Y|
0000ce00  42 25 3a c8 99 26 34 30  30 45 43 2c 2d 31 2c 2d  |B%:..&400EC,-1,-|
0000ce10  31 b8 59 42 25 3a 3d 59  42 25 0d 0e 89 56 dd a4  |1.YB%:=YB%...V..|
0000ce20  73 68 65 6c 6c 5f 57 69  6d 70 53 6c 6f 74 43 6c  |shell_WimpSlotCl|
0000ce30  61 69 6d 4d 65 6d 6f 72  79 28 59 42 25 2c 79 41  |aimMemory(YB%,yA|
0000ce40  25 29 3a ea 6b 43 25 3a  c8 99 26 34 30 30 45 43  |%):.kC%:..&400EC|
0000ce50  2c 59 42 25 2b 79 41 25  2c 2d 31 b8 6b 43 25 3a  |,YB%+yA%,-1.kC%:|
0000ce60  e7 6b 43 25 3c 59 42 25  2b 79 41 25 8c 3d 2d 31  |.kC%<YB%+yA%.=-1|
0000ce70  0d 0e 8d 08 3d 6b 43 25  0d 0e 91 33 dd f2 73 68  |....=kC%...3..sh|
0000ce80  65 6c 6c 5f 57 69 6d 70  53 6c 6f 74 52 65 6c 65  |ell_WimpSlotRele|
0000ce90  61 73 65 4d 65 6d 6f 72  79 3a c8 99 26 34 30 30  |aseMemory:..&400|
0000cea0  45 43 2c 59 42 25 2c 2d  31 3a e1 0d 0e 97 5f dd  |EC,YB%,-1:...._.|
0000ceb0  f2 73 68 65 6c 6c 5f 4d  6f 75 73 65 4c 69 6d 69  |.shell_MouseLimi|
0000cec0  74 28 41 2c 51 41 25 29  3a 41 21 30 3d 51 41 25  |t(A,QA%):A!0=QA%|
0000ced0  3a c8 99 26 34 30 30 43  42 2c 2c 41 3a f2 6d 6f  |:..&400CB,,A:.mo|
0000cee0  75 73 65 5f 72 65 63 74  61 6e 67 6c 65 28 41 21  |use_rectangle(A!|
0000cef0  34 2c 41 21 38 2c 41 21  26 43 2d 41 21 34 2c 41  |4,A!8,A!&C-A!4,A|
0000cf00  21 31 36 2d 41 21 38 29  3a e1 0d 0e 9e a1 dd a4  |!16-A!8):.......|
0000cf10  73 68 65 6c 6c 5f 4e 61  6d 65 4f 66 46 69 72 73  |shell_NameOfFirs|
0000cf20  74 53 70 72 69 74 65 28  4c 41 24 29 3a ea 58 25  |tSprite(LA$):.X%|
0000cf30  2c 4e 25 2c 70 24 3a 58  25 3d 8e 28 4c 41 24 29  |,N%,p$:X%=.(LA$)|
0000cf40  3a cf 23 58 25 3d 34 3a  4e 25 3d 9a 23 58 25 3a  |:.#X%=4:N%=.#X%:|
0000cf50  4e 25 2b 3d 9a 23 58 25  2a 32 35 36 3a 4e 25 2b  |N%+=.#X%*256:N%+|
0000cf60  3d 9a 23 58 25 2a 36 35  35 33 36 3a 4e 25 2b 3d  |=.#X%*65536:N%+=|
0000cf70  9a 23 58 25 2a 26 31 30  30 30 30 30 30 3a cf 23  |.#X%*&1000000:.#|
0000cf80  58 25 3d 4e 25 3a 70 24  3d 22 22 3a e3 4e 25 3d  |X%=N%:p$="":.N%=|
0000cf90  30 b8 26 42 3a 70 24 2b  3d bd 28 9a 23 58 25 29  |0.&B:p$+=.(.#X%)|
0000cfa0  3a ed 3a d9 23 58 25 3a  3d 70 24 0d 0e b0 42 dd  |:.:.#X%:=p$...B.|
0000cfb0  f2 49 6e 69 74 69 61 6c  69 73 65 53 70 72 69 74  |.InitialiseSprit|
0000cfc0  65 41 72 65 61 28 53 25  2c 6f 44 25 29 3a 21 53  |eArea(S%,oD%):!S|
0000cfd0  25 3d 6f 44 25 3a 53 25  21 38 3d 31 36 3a c8 99  |%=oD%:S%!8=16:..|
0000cfe0  34 36 2c 39 2b 32 35 36  2c 53 25 3a e1 0d 0e b7  |46,9+256,S%:....|
0000cff0  2a dd f2 73 68 65 6c 6c  5f 4c 69 73 74 45 76 65  |*..shell_ListEve|
0000d000  6e 74 73 28 63 25 2c 72  25 29 3a e7 63 25 3d 2d  |nts(c%,r%):.c%=-|
0000d010  31 8c 63 25 3d 2d 32 0d  0e b9 fd f1 22 4d 65 6e  |1.c%=-2....."Men|
0000d020  75 53 65 6c 65 63 74 69  6f 6e 3d 22 2b a4 73 68  |uSelection="+.sh|
0000d030  65 6c 6c 5f 47 65 74 45  76 65 6e 74 48 61 6e 64  |ell_GetEventHand|
0000d040  6c 65 72 28 63 25 2c 72  25 2c 30 29 3a f1 22 4d  |ler(c%,r%,0):."M|
0000d050  65 6e 75 4d 61 6b 65 72  20 20 20 20 3d 22 2b a4  |enuMaker    ="+.|
0000d060  73 68 65 6c 6c 5f 47 65  74 45 76 65 6e 74 48 61  |shell_GetEventHa|
0000d070  6e 64 6c 65 72 28 63 25  2c 72 25 2c 31 29 3a f1  |ndler(c%,r%,1):.|
0000d080  22 43 6c 69 63 6b 53 65  6c 65 63 74 20 20 3d 22  |"ClickSelect  ="|
0000d090  2b a4 73 68 65 6c 6c 5f  47 65 74 45 76 65 6e 74  |+.shell_GetEvent|
0000d0a0  48 61 6e 64 6c 65 72 28  63 25 2c 72 25 2c 32 29  |Handler(c%,r%,2)|
0000d0b0  3a f1 22 43 6c 69 63 6b  41 64 6a 75 73 74 20 20  |:."ClickAdjust  |
0000d0c0  3d 22 2b a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |="+.shell_GetEve|
0000d0d0  6e 74 48 61 6e 64 6c 65  72 28 63 25 2c 72 25 2c  |ntHandler(c%,r%,|
0000d0e0  33 29 3a f1 22 52 65 64  72 61 77 20 20 20 20 20  |3):."Redraw     |
0000d0f0  20 20 3d 22 2b a4 73 68  65 6c 6c 5f 47 65 74 45  |  ="+.shell_GetE|
0000d100  76 65 6e 74 48 61 6e 64  6c 65 72 28 63 25 2c 72  |ventHandler(c%,r|
0000d110  25 2c 34 29 0d 0e be fe  f1 22 4b 65 79 70 72 65  |%,4)....."Keypre|
0000d120  73 73 20 20 20 20 20 3d  22 2b a4 73 68 65 6c 6c  |ss     ="+.shell|
0000d130  5f 47 65 74 45 76 65 6e  74 48 61 6e 64 6c 65 72  |_GetEventHandler|
0000d140  28 63 25 2c 72 25 2c 35  29 3a f1 22 44 72 61 67  |(c%,r%,5):."Drag|
0000d150  20 20 20 20 20 20 20 20  20 3d 22 2b a4 73 68 65  |         ="+.she|
0000d160  6c 6c 5f 47 65 74 45 76  65 6e 74 48 61 6e 64 6c  |ll_GetEventHandl|
0000d170  65 72 28 63 25 2c 72 25  2c 36 29 3a f1 22 4d 65  |er(c%,r%,6):."Me|
0000d180  6e 75 20 57 61 72 6e 69  6e 67 20 3d 22 2b a4 73  |nu Warning ="+.s|
0000d190  68 65 6c 6c 5f 47 65 74  45 76 65 6e 74 48 61 6e  |hell_GetEventHan|
0000d1a0  64 6c 65 72 28 63 25 2c  72 25 2c 37 29 3a f1 22  |dler(c%,r%,7):."|
0000d1b0  48 65 6c 70 54 61 67 20  20 20 20 20 20 3d 22 2b  |HelpTag      ="+|
0000d1c0  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 48  |.shell_GetEventH|
0000d1d0  61 6e 64 6c 65 72 28 63  25 2c 72 25 2c 38 29 3a  |andler(c%,r%,8):|
0000d1e0  71 25 3d a4 73 68 65 6c  6c 5f 47 65 74 45 76 65  |q%=.shell_GetEve|
0000d1f0  6e 74 4d 65 6e 75 28 32  2c 63 25 2c 72 25 29 3a  |ntMenu(2,c%,r%):|
0000d200  f1 22 4d 65 6e 75 20 41  64 64 72 65 73 73 20 3d  |."Menu Address =|
0000d210  22 3b 0d 0e c4 0a e7 71  25 3d 30 8c 0d 0e c5 0c  |";.....q%=0.....|
0000d220  f1 22 20 4e 6f 6e 65 22  0d 0e c6 09 cc f1 c3 71  |." None".......q|
0000d230  25 0d 0e c8 07 cd 3a e1  0d 0e d0 58 dd f2 73 68  |%.....:....X..sh|
0000d240  65 6c 6c 5f 48 65 61 70  4d 61 6e 61 67 65 72 49  |ell_HeapManagerI|
0000d250  6e 69 74 28 4d 24 2c 70  44 25 29 3a de 5a 42 25  |nit(M$,pD%):.ZB%|
0000d260  39 30 30 3a ff 28 22 4c  4f 41 44 20 22 2b 4d 24  |900:.("LOAD "+M$|
0000d270  2b 22 68 65 61 70 63 6f  64 65 20 22 2b c3 7e 5a  |+"heapcode "+.~Z|
0000d280  42 25 29 3a d6 5a 42 25  2b 30 2c 70 44 25 3a e1  |B%):.ZB%+0,pD%:.|
0000d290  0d 0e d8 31 dd a4 73 68  65 6c 6c 5f 48 65 61 70  |...1..shell_Heap|
0000d2a0  42 6c 6f 63 6b 45 78 69  73 74 73 28 59 41 25 29  |BlockExists(YA%)|
0000d2b0  3a ea 70 25 3a ea 85 3a  ee 85 ea 3a f7 85 3a 3d  |:.p%:..:...:..:=|
0000d2c0  a3 0d 0e dc 39 e7 59 41  25 3c 26 38 30 30 30 8c  |....9.YA%<&8000.|
0000d2d0  85 39 39 2c 22 4e 6f 20  68 65 61 70 62 6c 6f 63  |.99,"No heapbloc|
0000d2e0  6b 20 64 65 66 69 6e 65  64 20 61 74 20 74 68 69  |k defined at thi|
0000d2f0  73 20 61 64 64 72 65 73  73 22 0d 0e dd 26 70 25  |s address"...&p%|
0000d300  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000d310  6b 49 6e 66 6f 28 59 41  25 29 3a f7 85 3a 3d b9  |kInfo(YA%):..:=.|
0000d320  0d 0e e6 36 dd a4 73 68  65 6c 6c 5f 48 65 61 70  |...6..shell_Heap|
0000d330  42 6c 6f 63 6b 45 78 74  65 6e 64 28 78 25 2c 54  |BlockExtend(x%,T|
0000d340  41 25 29 3a d6 5a 42 25  2b 26 43 2c 78 25 2c 54  |A%):.ZB%+&C,x%,T|
0000d350  41 25 3a 3d 78 25 0d 0e  ee 36 dd a4 73 68 65 6c  |A%:=x%...6..shel|
0000d360  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000d370  28 78 25 29 3a ea 59 41  25 3a d6 5a 42 25 2b 34  |(x%):.YA%:.ZB%+4|
0000d380  2c 59 41 25 2c 78 25 3a  3d 59 41 25 0d 0e f6 46  |,YA%,x%:=YA%...F|
0000d390  dd f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000d3a0  6b 52 65 74 75 72 6e 28  f8 78 25 29 3a e7 a4 73  |kReturn(.x%):..s|
0000d3b0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
0000d3c0  69 73 74 73 28 78 25 29  8c d6 5a 42 25 2b 38 2c  |ists(x%)..ZB%+8,|
0000d3d0  78 25 0d 0e f8 0a 78 25  3d 30 3a e1 0d 0e fe 3c  |x%....x%=0:....<|
0000d3e0  dd a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000d3f0  6b 49 6e 66 6f 28 78 25  29 3a ea 4d 3a c8 99 32  |kInfo(x%):.M:..2|
0000d400  39 2c 36 2c 21 28 5a 42  25 2b 32 38 29 2c 78 25  |9,6,!(ZB%+28),x%|
0000d410  b8 2c 2c 2c 4d 3a 3d 4d  0d 0f 06 45 dd a4 73 68  |.,,,M:=M...E..sh|
0000d420  65 6c 6c 5f 4f 53 56 61  72 45 78 69 73 74 73 28  |ell_OSVarExists(|
0000d430  74 41 25 2c 71 24 29 3a  ea 42 3a c8 99 26 32 30  |tA%,q$):.B:..&20|
0000d440  30 32 33 2c 71 24 2c 74  41 25 2c 2d 31 2c 30 2c  |023,q$,tA%,-1,0,|
0000d450  30 b8 2c 2c 42 3a e7 42  3c 30 8c 3d b9 0d 0f 0a  |0.,,B:.B<0.=....|
0000d460  06 3d a3 0d 0f 0e 7b dd  a4 73 68 65 6c 6c 5f 4f  |.=....{..shell_O|
0000d470  53 56 61 72 47 65 74 56  61 6c 28 74 41 25 2c 79  |SVarGetVal(tA%,y|
0000d480  41 25 2c 71 24 2c 57 29  3a ea 72 24 2c 42 2c 72  |A%,q$,W):.r$,B,r|
0000d490  44 25 3a c8 99 26 32 30  30 32 33 2c 71 24 2c 74  |D%:..&20023,q$,t|
0000d4a0  41 25 2c 79 41 25 2c 30  2c 2d 33 2a 28 57 3d b9  |A%,yA%,0,-3*(W=.|
0000d4b0  29 b8 2c 2c 42 2c 72 44  25 2c 77 25 3a e3 6d 25  |).,,B,rD%,w%:.m%|
0000d4c0  3d 30 b8 42 2d 31 3a 72  24 3d 72 24 2b bd 28 74  |=0.B-1:r$=r$+.(t|
0000d4d0  41 25 3f 6d 25 29 3a ed  6d 25 3a 3d 72 24 0d 0f  |A%?m%):.m%:=r$..|
0000d4e0  18 65 dd a4 73 68 65 6c  6c 5f 4f 53 52 65 61 64  |.e..shell_OSRead|
0000d4f0  43 6f 6d 6d 61 6e 64 41  72 67 28 58 29 3a ea 6c  |CommandArg(X):.l|
0000d500  43 25 2c 4f 24 2c 64 25  3a 4f 24 3d 22 22 3a 64  |C%,O$,d%:O$="":d|
0000d510  25 3d 30 3a c8 99 31 36  b8 6c 43 25 3a c8 95 6c  |%=0:..16.lC%:..l|
0000d520  43 25 3f 64 25 3c 3e 30  3a 4f 24 2b 3d bd 28 6c  |C%?d%<>0:O$+=.(l|
0000d530  43 25 3f 64 25 29 3a 64  25 2b 3d 31 3a ce 3a c8  |C%?d%):d%+=1:.:.|
0000d540  8e 58 ca 0d 0f 21 06 c9  30 0d 0f 22 2c c9 31 3a  |.X...!..0..",.1:|
0000d550  4f 24 3d c1 4f 24 2c a7  4f 24 2c bd 33 34 29 2b  |O$=.O$,.O$,.34)+|
0000d560  31 29 3a 4f 24 3d c1 4f  24 2c a7 4f 24 2c bd 33  |1):O$=.O$,.O$,.3|
0000d570  34 29 2b 32 29 0d 0f 25  09 cb 3a 3d 4f 24 0d 0f  |4)+2)..%..:=O$..|
0000d580  2a 48 dd a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |*H..shell_String|
0000d590  53 74 72 69 70 54 72 61  69 6c 69 6e 67 28 42 24  |StripTrailing(B$|
0000d5a0  2c 50 24 29 3a c8 95 c2  42 24 2c 31 29 3d 50 24  |,P$):...B$,1)=P$|
0000d5b0  3a 42 24 3d c0 42 24 2c  a9 28 42 24 29 2d 31 29  |:B$=.B$,.(B$)-1)|
0000d5c0  3a ce 3a 3d 42 24 0d 0f  32 41 dd a4 73 68 65 6c  |:.:=B$..2A..shel|
0000d5d0  6c 5f 53 74 72 69 6e 67  53 74 72 69 70 4c 65 61  |l_StringStripLea|
0000d5e0  64 69 6e 67 28 42 24 2c  50 24 29 3a c8 95 c0 42  |ding(B$,P$):...B|
0000d5f0  24 2c 31 29 3d 50 24 3a  42 24 3d c1 42 24 2c 32  |$,1)=P$:B$=.B$,2|
0000d600  29 3a ce 3a 3d 42 24 0d  0f 3a 3a dd a4 73 68 65  |):.:=B$..::..she|
0000d610  6c 6c 5f 53 74 72 69 6e  67 53 74 72 69 70 41 6c  |ll_StringStripAl|
0000d620  6c 28 42 24 2c 50 24 29  3a ea 44 2c 45 3a 44 3d  |l(B$,P$):.D,E:D=|
0000d630  b9 3a f5 3a 45 3d a7 42  24 2c 50 24 29 3a e7 45  |.:.:E=.B$,P$):.E|
0000d640  8c 0d 0f 40 1c 44 3d a3  3a 42 24 3d c0 42 24 2c  |...@.D=.:B$=.B$,|
0000d650  45 2d 31 29 2b c1 42 24  2c 45 2b 31 29 0d 0f 42  |E-1)+.B$,E+1)..B|
0000d660  08 cc 44 3d b9 0d 0f 44  0c cd 3a fd 44 3a 3d 42  |..D=...D..:.D:=B|
0000d670  24 0d 0f 4a 4f dd a4 73  68 65 6c 6c 5f 53 74 72  |$..JO..shell_Str|
0000d680  69 6e 67 50 61 64 54 72  61 69 6c 69 6e 67 28 42  |ingPadTrailing(B|
0000d690  24 2c 50 24 2c 65 41 25  29 3a c8 95 a9 28 42 24  |$,P$,eA%):...(B$|
0000d6a0  29 3c 65 41 25 3a 42 24  3d 42 24 2b c4 65 41 25  |)<eA%:B$=B$+.eA%|
0000d6b0  2d a9 28 42 24 29 2c 50  24 29 3a ce 3a 3d 42 24  |-.(B$),P$):.:=B$|
0000d6c0  0d 0f 52 4e dd a4 73 68  65 6c 6c 5f 53 74 72 69  |..RN..shell_Stri|
0000d6d0  6e 67 50 61 64 4c 65 61  64 69 6e 67 28 42 24 2c  |ngPadLeading(B$,|
0000d6e0  50 24 2c 65 41 25 29 3a  c8 95 a9 28 42 24 29 3c  |P$,eA%):...(B$)<|
0000d6f0  65 41 25 3a 42 24 3d c4  65 41 25 2d a9 28 42 24  |eA%:B$=.eA%-.(B$|
0000d700  29 2c 50 24 29 2b 42 24  3a ce 3a 3d 42 24 0d 0f  |),P$)+B$:.:=B$..|
0000d710  5a 2d dd a4 73 68 65 6c  6c 5f 53 74 72 69 6e 67  |Z-..shell_String|
0000d720  55 70 70 65 72 43 61 73  65 28 42 24 29 3a ea 6d  |UpperCase(B$):.m|
0000d730  25 3a e7 a9 28 42 24 29  3e 30 8c 0d 0f 5d 2f e3  |%:..(B$)>0...]/.|
0000d740  6d 25 3d 31 b8 a9 28 42  24 29 3a e7 c1 42 24 2c  |m%=1..(B$):..B$,|
0000d750  6d 25 2c 31 29 3e 3d 22  61 22 80 c1 42 24 2c 6d  |m%,1)>="a"..B$,m|
0000d760  25 2c 31 29 3c 3d 22 7a  22 8c 0d 0f 5f 21 c1 42  |%,1)<="z"..._!.B|
0000d770  24 2c 6d 25 2c 31 29 3d  bd 28 97 28 c1 42 24 2c  |$,m%,1)=.(.(.B$,|
0000d780  6d 25 2c 31 29 29 80 26  44 46 29 0d 0f 60 09 cd  |m%,1)).&DF)..`..|
0000d790  3a ed 6d 25 0d 0f 62 09  cd 3a 3d 42 24 0d 0f 67  |:.m%..b..:=B$..g|
0000d7a0  34 dd a4 73 68 65 6c 6c  5f 53 74 72 69 6e 67 45  |4..shell_StringE|
0000d7b0  78 63 68 61 6e 67 65 28  42 24 2c 73 24 2c 4e 41  |xchange(B$,s$,NA|
0000d7c0  24 29 3a ea 63 41 25 3a  e7 a7 42 24 2c 73 24 29  |$):.cA%:..B$,s$)|
0000d7d0  8c 0d 0f 6a 2e 63 41 25  3d a7 42 24 2c 73 24 29  |...j.cA%=.B$,s$)|
0000d7e0  3a 42 24 3d c0 42 24 2c  63 41 25 2d 31 29 2b 4e  |:B$=.B$,cA%-1)+N|
0000d7f0  41 24 2b c1 42 24 2c 63  41 25 2b a9 73 24 29 0d  |A$+.B$,cA%+.s$).|
0000d800  0f 6c 09 cd 3a 3d 42 24  0d 0f 71 53 dd a4 73 68  |.l..:=B$..qS..sh|
0000d810  65 6c 6c 5f 53 74 72 69  6e 67 41 72 72 61 79 47  |ell_StringArrayG|
0000d820  65 74 4c 6f 6e 67 65 73  74 28 41 24 28 29 2c 74  |etLongest(A$(),t|
0000d830  44 25 29 3a ea 6d 25 2c  47 43 25 3a 47 43 25 3d  |D%):.m%,GC%:GC%=|
0000d840  30 3a e3 6d 25 3d 30 b8  74 44 25 3a e7 a9 28 41  |0:.m%=0.tD%:..(A|
0000d850  24 28 6d 25 29 29 3e 47  43 25 8c 0d 0f 76 11 47  |$(m%))>GC%...v.G|
0000d860  43 25 3d a9 28 41 24 28  6d 25 29 29 0d 0f 77 0e  |C%=.(A$(m%))..w.|
0000d870  cd 3a ed 6d 25 3a 3d 47  43 25 0d 0f 7d 4b dd a4  |.:.m%:=GC%..}K..|
0000d880  6d 65 6d 5f 74 6f 5f 73  74 72 69 6e 67 28 52 44  |mem_to_string(RD|
0000d890  25 2c 64 25 2c 77 44 25  29 3a ea 42 24 3a c8 95  |%,d%,wD%):.B$:..|
0000d8a0  52 44 25 3f 64 25 3c 3e  77 44 25 3a 42 24 2b 3d  |RD%?d%<>wD%:B$+=|
0000d8b0  bd 28 52 44 25 3f 64 25  29 3a 64 25 2b 3d 31 3a  |.(RD%?d%):d%+=1:|
0000d8c0  ce 3a 3d 42 24 0d 0f 87  53 dd a4 73 68 65 6c 6c  |.:=B$...S..shell|
0000d8d0  5f 46 69 6c 65 4c 65 6e  67 74 68 28 5a 24 29 3a  |_FileLength(Z$):|
0000d8e0  ea 77 25 2c 44 43 25 2c  79 42 25 2c 65 41 25 2c  |.w%,DC%,yB%,eA%,|
0000d8f0  55 42 25 2c 42 24 3a c8  99 38 2c 35 2c 5a 24 b8  |UB%,B$:..8,5,Z$.|
0000d900  77 25 2c 2c 44 43 25 2c  79 42 25 2c 65 41 25 2c  |w%,,DC%,yB%,eA%,|
0000d910  55 42 25 3a 3d 65 41 25  0d 0f 8e 52 dd f2 73 68  |UB%:=eA%...R..sh|
0000d920  65 6c 6c 5f 54 72 61 63  65 4f 6e 3a 5f 55 25 21  |ell_TraceOn:_U%!|
0000d930  34 38 3d b9 3a f2 73 68  65 6c 6c 5f 42 72 6f 61  |48=.:.shell_Broa|
0000d940  64 63 61 73 74 4d 65 73  73 61 67 65 28 26 34 33  |dcastMessage(&43|
0000d950  42 30 30 2c 22 53 68 65  6c 6c 44 42 75 67 3a 54  |B00,"ShellDBug:T|
0000d960  72 61 63 65 4f 6e 22 29  3a e1 0d 0f 95 54 dd f2  |raceOn"):....T..|
0000d970  73 68 65 6c 6c 5f 54 72  61 63 65 4f 66 66 3a 5f  |shell_TraceOff:_|
0000d980  55 25 21 34 38 3d a3 3a  f2 73 68 65 6c 6c 5f 42  |U%!48=.:.shell_B|
0000d990  72 6f 61 64 63 61 73 74  4d 65 73 73 61 67 65 28  |roadcastMessage(|
0000d9a0  26 34 33 42 30 30 2c 22  53 68 65 6c 6c 44 42 75  |&43B00,"ShellDBu|
0000d9b0  67 3a 54 72 61 63 65 4f  66 66 22 29 3a e1 0d 0f  |g:TraceOff"):...|
0000d9c0  9d 32 dd f2 73 68 65 6c  6c 5f 54 72 61 63 65 49  |.2..shell_TraceI|
0000d9d0  6e 69 74 28 42 41 24 29  3a ea 42 41 25 2c 61 25  |nit(BA$):.BA%,a%|
0000d9e0  2c 47 24 2c 46 24 3a e7  42 41 24 3c 3e 22 22 8c  |,G$,F$:.BA$<>"".|
0000d9f0  0d 0f a0 19 42 41 25 3d  ae 28 42 41 24 29 3a 5f  |....BA%=.(BA$):_|
0000da00  55 25 21 34 34 3d 42 41  25 0d 0f a2 cd cd 3a 61  |U%!44=BA%.....:a|
0000da10  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
0000da20  63 6b 46 65 74 63 68 28  26 34 30 30 29 3a 46 24  |ckFetch(&400):F$|
0000da30  3d a4 73 68 65 6c 6c 5f  4f 53 56 61 72 47 65 74  |=.shell_OSVarGet|
0000da40  56 61 6c 28 61 25 2c 26  34 30 30 2c 22 4f 62 65  |Val(a%,&400,"Obe|
0000da50  79 24 44 69 72 22 2c 31  29 3a 47 24 3d c1 a4 73  |y$Dir",1):G$=..s|
0000da60  68 65 6c 6c 5f 4c 65 61  66 28 46 24 29 2c 32 29  |hell_Leaf(F$),2)|
0000da70  3a f2 73 68 65 6c 6c 5f  42 72 6f 61 64 63 61 73  |:.shell_Broadcas|
0000da80  74 4d 65 73 73 61 67 65  28 26 34 33 42 30 30 2c  |tMessage(&43B00,|
0000da90  22 53 68 65 6c 6c 44 42  75 67 3a 49 6e 69 74 20  |"ShellDBug:Init |
0000daa0  44 65 62 75 67 20 6d 65  73 73 61 67 65 73 20 66  |Debug messages f|
0000dab0  72 6f 6d 20 22 2b 47 24  29 3a f2 73 68 65 6c 6c  |rom "+G$):.shell|
0000dac0  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
0000dad0  28 61 25 29 3a e1 0d 0f  ad 1d dd a4 73 68 65 6c  |(a%):.......shel|
0000dae0  6c 5f 54 72 61 63 65 49  73 4f 6e 3a 3d 5f 55 25  |l_TraceIsOn:=_U%|
0000daf0  21 34 38 0d 0f b2 34 dd  f2 73 68 65 6c 6c 5f 54  |!48...4..shell_T|
0000db00  72 61 63 65 66 30 28 44  41 24 29 3a ea 42 41 25  |racef0(DA$):.BA%|
0000db10  3a e7 ac 28 a4 73 68 65  6c 6c 5f 54 72 61 63 65  |:..(.shell_Trace|
0000db20  49 73 4f 6e 29 8c e1 0d  0f b5 10 e7 5f 55 25 21  |IsOn)......._U%!|
0000db30  34 34 3c 3e 2d 31 8c 0d  0f b6 18 42 41 25 3d 5f  |44<>-1.....BA%=_|
0000db40  55 25 21 34 34 3a d5 23  42 41 25 2c 44 41 24 0d  |U%!44:.#BA%,DA$.|
0000db50  0f b8 47 cd 3a e7 5f 55  25 21 26 39 34 3e 30 8c  |..G.:._U%!&94>0.|
0000db60  f2 73 68 65 6c 6c 5f 42  72 6f 61 64 63 61 73 74  |.shell_Broadcast|
0000db70  4d 65 73 73 61 67 65 28  26 34 33 42 30 30 2c 22  |Message(&43B00,"|
0000db80  53 68 65 6c 6c 44 42 75  67 3a 54 72 61 63 65 20  |ShellDBug:Trace |
0000db90  22 2b 44 41 24 29 0d 0f  bb 05 e1 0d 0f bf 2c dd  |"+DA$)........,.|
0000dba0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 32 28 59  |.shell_Tracef2(Y|
0000dbb0  41 25 29 3a ff 28 22 4d  45 44 49 54 20 22 2b c3  |A%):.("MEDIT "+.|
0000dbc0  7e 59 41 25 29 3a e1 0d  0f c5 36 dd f2 73 68 65  |~YA%):....6..she|
0000dbd0  6c 6c 5f 54 72 61 63 65  45 78 69 74 3a e7 5f 55  |ll_TraceExit:._U|
0000dbe0  25 21 34 34 3c 3e 2d 31  8c d9 23 28 5f 55 25 21  |%!44<>-1..#(_U%!|
0000dbf0  34 34 29 3a 5f 55 25 21  34 34 3d 2d 31 0d 0f c8  |44):_U%!44=-1...|
0000dc00  05 e1 0d 0f cc 5b dd f2  73 68 65 6c 6c 5f 41 74  |.....[..shell_At|
0000dc10  74 61 63 68 48 6f 74 4b  65 79 28 45 41 24 2c 56  |tachHotKey(EA$,V|
0000dc20  42 25 2c 57 42 25 2c 71  42 25 2c 4b 24 2c 63 25  |B%,WB%,qB%,K$,c%|
0000dc30  2c 4e 24 2c 55 24 29 3a  ea 73 25 2c 64 25 2c 62  |,N$,U$):.s%,d%,b|
0000dc40  25 2c 75 25 2c 45 41 25  2c 6e 43 25 3a 6e 43 25  |%,u%,EA%,nC%:nC%|
0000dc50  3d b9 3a e7 5f 55 25 21  36 30 3d 30 8c 0d 0f d0  |=.:._U%!60=0....|
0000dc60  33 5f 55 25 21 36 30 3d  a4 73 68 65 6c 6c 5f 48  |3_U%!60=.shell_H|
0000dc70  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 34  |eapBlockFetch(24|
0000dc80  29 3a 64 25 3d 30 3a 5f  55 25 21 26 42 34 3d 31  |):d%=0:_U%!&B4=1|
0000dc90  0d 0f d2 4f cc 64 25 3d  5f 55 25 21 26 42 34 2a  |...O.d%=_U%!&B4*|
0000dca0  32 34 3a 5f 55 25 21 36  30 3d a4 73 68 65 6c 6c  |24:_U%!60=.shell|
0000dcb0  5f 48 65 61 70 42 6c 6f  63 6b 45 78 74 65 6e 64  |_HeapBlockExtend|
0000dcc0  28 5f 55 25 21 36 30 2c  32 34 29 3a 5f 55 25 21  |(_U%!60,24):_U%!|
0000dcd0  26 42 34 3d 28 5f 55 25  21 26 42 34 29 2b 31 0d  |&B4=(_U%!&B4)+1.|
0000dce0  0f d6 16 cd 3a 73 25 3d  5f 55 25 21 36 30 3a c8  |....:s%=_U%!60:.|
0000dcf0  8e 45 41 24 ca 0d 0f d9  11 c9 22 46 31 22 3a 45  |.EA$......"F1":E|
0000dd00  41 25 3d 33 38 35 0d 0f  da 11 c9 22 46 32 22 3a  |A%=385....."F2":|
0000dd10  45 41 25 3d 33 38 36 0d  0f db 11 c9 22 46 33 22  |EA%=386....."F3"|
0000dd20  3a 45 41 25 3d 33 38 37  0d 0f dc 11 c9 22 46 34  |:EA%=387....."F4|
0000dd30  22 3a 45 41 25 3d 33 38  38 0d 0f dd 11 c9 22 46  |":EA%=388....."F|
0000dd40  35 22 3a 45 41 25 3d 33  38 39 0d 0f de 11 c9 22  |5":EA%=389....."|
0000dd50  46 36 22 3a 45 41 25 3d  33 39 30 0d 0f df 11 c9  |F6":EA%=390.....|
0000dd60  22 46 37 22 3a 45 41 25  3d 33 39 31 0d 0f e0 11  |"F7":EA%=391....|
0000dd70  c9 22 46 38 22 3a 45 41  25 3d 33 39 32 0d 0f e1  |."F8":EA%=392...|
0000dd80  11 c9 22 46 39 22 3a 45  41 25 3d 33 39 33 0d 0f  |.."F9":EA%=393..|
0000dd90  e2 12 c9 22 46 31 30 22  3a 45 41 25 3d 34 35 38  |..."F10":EA%=458|
0000dda0  0d 0f e3 12 c9 22 46 31  31 22 3a 45 41 25 3d 34  |....."F11":EA%=4|
0000ddb0  35 39 0d 0f e4 18 7f 45  41 25 3d 28 97 45 41 24  |59.....EA%=(.EA$|
0000ddc0  29 2d 36 34 3a 6e 43 25  3d a3 0d 0f e6 0b cb 3a  |)-64:nC%=......:|
0000ddd0  e7 6e 43 25 8c 0d 0f e8  10 e7 56 42 25 8c 45 41  |.nC%......VB%.EA|
0000dde0  25 2b 3d 31 36 0d 0f e9  10 e7 57 42 25 8c 45 41  |%+=16.....WB%.EA|
0000ddf0  25 2b 3d 33 32 0d 0f ea  6a cd 3a 62 25 3d 73 25  |%+=32...j.:b%=s%|
0000de00  2b 64 25 3a 62 25 21 30  3d 45 41 25 3a 62 25 3f  |+d%:b%!0=EA%:b%?|
0000de10  34 3d 56 42 25 3a 62 25  3f 35 3d 57 42 25 3a 62  |4=VB%:b%?5=WB%:b|
0000de20  25 3f 36 3d 71 42 25 3a  62 25 21 38 3d a4 73 68  |%?6=qB%:b%!8=.sh|
0000de30  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000de40  63 68 28 a9 4b 24 2b 31  29 3a 75 25 3d 62 25 21  |ch(.K$+1):u%=b%!|
0000de50  38 3a 24 75 25 3d 4b 24  3a e7 63 25 3e 30 8c 0d  |8:$u%=K$:.c%>0..|
0000de60  0f f4 54 64 25 3d a4 73  68 65 6c 6c 5f 53 65 61  |..Td%=.shell_Sea|
0000de70  72 63 68 53 74 61 74 69  63 28 5f 55 25 21 26 42  |rchStatic(_U%!&B|
0000de80  38 2c 63 25 29 3a e7 64  25 3d 2d 31 8c 85 39 39  |8,c%):.d%=-1..99|
0000de90  2c a4 73 68 65 6c 6c 5f  4d 65 73 73 61 67 65 4e  |,.shell_MessageN|
0000dea0  6f 41 72 67 73 28 22 53  48 45 4c 4c 4d 53 47 30  |oArgs("SHELLMSG0|
0000deb0  39 22 29 0d 0f f6 76 cd  3a 62 25 21 26 43 3d 63  |9")...v.:b%!&C=c|
0000dec0  25 3a 62 25 21 31 36 3d  a4 73 68 65 6c 6c 5f 48  |%:b%!16=.shell_H|
0000ded0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 a9 4e  |eapBlockFetch(.N|
0000dee0  24 2b 31 29 3a 75 25 3d  62 25 21 31 36 3a 24 75  |$+1):u%=b%!16:$u|
0000def0  25 3d 4e 24 3a 62 25 21  32 30 3d a4 73 68 65 6c  |%=N$:b%!20=.shel|
0000df00  6c 5f 48 65 61 70 42 6c  6f 63 6b 46 65 74 63 68  |l_HeapBlockFetch|
0000df10  28 a9 55 24 2b 31 29 3a  75 25 3d 62 25 21 32 30  |(.U$+1):u%=b%!20|
0000df20  3a 24 75 25 3d 55 24 3a  e1 0d 10 01 8f dd a4 73  |:$u%=U$:.......s|
0000df30  68 65 6c 6c 5f 48 6f 74  4b 65 79 50 72 6f 63 65  |hell_HotKeyProce|
0000df40  73 73 28 45 41 25 29 3a  ea 73 25 2c 6f 25 2c 6a  |ss(EA%):.s%,o%,j|
0000df50  25 2c 66 25 2c 7a 25 2c  65 24 2c 4e 24 2c 55 24  |%,f%,z%,e$,N$,U$|
0000df60  3a ea 57 42 25 2c 56 42  25 2c 71 42 25 2c 42 42  |:.WB%,VB%,qB%,BB|
0000df70  25 2c 44 42 25 2c 6f 42  25 2c 69 45 25 2c 64 25  |%,DB%,oB%,iE%,d%|
0000df80  3a ea 6a 41 25 2c 74 25  3a 73 25 3d 5f 55 25 21  |:.jA%,t%:s%=_U%!|
0000df90  36 30 3a 6f 25 3d 5f 55  25 21 26 42 34 2a 32 34  |60:o%=_U%!&B4*24|
0000dfa0  3a 6a 25 3d a3 3a 66 25  3d 30 3a f5 3a e7 73 25  |:j%=.:f%=0:.:.s%|
0000dfb0  21 66 25 3d 45 41 25 8c  0d 10 0a 08 6a 25 3d b9  |!f%=EA%.....j%=.|
0000dfc0  0d 10 0b 0b cc 66 25 2b  3d 32 34 0d 10 0d 15 cd  |.....f%+=24.....|
0000dfd0  3a fd 6a 25 84 66 25 3e  3d 6f 25 3a e7 6a 25 8c  |:.j%.f%>=o%:.j%.|
0000dfe0  0d 10 10 64 62 25 3d 73  25 2b 66 25 3a 65 24 3d  |...db%=s%+f%:e$=|
0000dff0  24 28 62 25 21 38 29 3a  f2 73 68 65 6c 6c 5f 54  |$(b%!8):.shell_T|
0000e000  72 61 63 65 66 30 28 22  48 6f 74 4b 65 79 50 72  |racef0("HotKeyPr|
0000e010  6f 63 65 73 73 3a 54 65  6d 70 6c 61 74 65 20 6e  |ocess:Template n|
0000e020  61 6d 65 20 69 73 20 27  22 2b 65 24 2b 22 27 22  |ame is '"+e$+"'"|
0000e030  29 3a e7 28 65 24 3c 3e  22 22 80 62 25 21 26 43  |):.(e$<>"".b%!&C|
0000e040  3d 30 29 8c 0d 10 18 e3  f2 73 68 65 6c 6c 5f 43  |=0)......shell_C|
0000e050  72 65 61 74 65 57 69 6e  64 6f 77 28 65 24 2c 7a  |reateWindow(e$,z|
0000e060  25 29 3a f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |%):.shell_Tracef|
0000e070  30 28 22 48 6f 74 4b 65  79 50 72 6f 63 65 73 73  |0("HotKeyProcess|
0000e080  3a 43 72 65 61 74 69 6e  67 20 6e 65 77 20 64 79  |:Creating new dy|
0000e090  6e 61 6d 69 63 20 77 69  6e 64 6f 77 20 28 68 61  |namic window (ha|
0000e0a0  6e 64 6c 65 20 69 73 20  26 22 2b c3 7e 7a 25 2b  |ndle is &"+.~z%+|
0000e0b0  22 29 22 29 3a 74 25 3d  a4 73 68 65 6c 6c 5f 48  |")"):t%=.shell_H|
0000e0c0  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 33 36  |eapBlockFetch(36|
0000e0d0  29 3a 74 25 21 30 3d 7a  25 3a c8 99 26 34 30 30  |):t%!0=z%:..&400|
0000e0e0  43 42 2c 2c 74 25 3a 42  42 25 3d 28 74 25 21 34  |CB,,t%:BB%=(t%!4|
0000e0f0  2d 74 25 21 26 43 29 2f  32 3a 44 42 25 3d 28 74  |-t%!&C)/2:DB%=(t|
0000e100  25 21 31 36 2d 74 25 21  38 29 2f 32 3a f2 73 68  |%!16-t%!8)/2:.sh|
0000e110  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
0000e120  75 72 6e 28 74 25 29 0d  10 22 1a cd 3a 4e 24 3d  |urn(t%).."..:N$=|
0000e130  24 28 62 25 21 31 36 29  3a e7 4e 24 3c 3e 22 22  |$(b%!16):.N$<>""|
0000e140  8c 0d 10 26 4a f2 73 68  65 6c 6c 5f 54 72 61 63  |...&J.shell_Trac|
0000e150  65 66 30 28 22 48 6f 74  4b 65 79 50 72 6f 63 65  |ef0("HotKeyProce|
0000e160  73 73 3a 43 61 6c 6c 69  6e 67 20 50 72 65 2d 4f  |ss:Calling Pre-O|
0000e170  70 65 6e 20 46 4e 20 27  22 2b 4e 24 2b 22 27 22  |pen FN '"+N$+"'"|
0000e180  29 3a e7 62 25 21 26 43  3e 30 8c 0d 10 29 20 70  |):.b%!&C>0...) p|
0000e190  25 3d a0 28 22 46 4e 22  2b 4e 24 2b 22 28 22 2b  |%=.("FN"+N$+"("+|
0000e1a0  c3 62 25 21 26 43 2b 22  29 22 29 0d 10 2a 1e cc  |.b%!&C+")")..*..|
0000e1b0  70 25 3d a0 28 22 46 4e  22 2b 4e 24 2b 22 28 22  |p%=.("FN"+N$+"("|
0000e1c0  2b c3 7a 25 2b 22 29 22  29 0d 10 2c 05 cd 0d 10  |+.z%+")")..,....|
0000e1d0  2d 3e cc f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |->..shell_Tracef|
0000e1e0  30 28 22 48 6f 74 4b 65  79 50 72 6f 63 65 73 73  |0("HotKeyProcess|
0000e1f0  3a 4e 6f 20 50 72 65 2d  4f 70 65 6e 20 46 4e 20  |:No Pre-Open FN |
0000e200  72 65 67 69 73 74 65 72  65 64 22 29 0d 10 31 33  |registered")..13|
0000e210  cd 3a 64 25 3d a4 73 68  65 6c 6c 5f 53 65 61 72  |.:d%=.shell_Sear|
0000e220  63 68 53 74 61 74 69 63  28 5f 55 25 21 26 42 38  |chStatic(_U%!&B8|
0000e230  2c 62 25 21 26 43 29 3a  e7 64 25 3e 2d 31 8c 0d  |,b%!&C):.d%>-1..|
0000e240  10 34 22 f2 73 68 65 6c  6c 5f 4f 70 65 6e 57 69  |.4".shell_OpenWi|
0000e250  6e 64 6f 77 53 74 61 74  69 63 28 62 25 21 26 43  |ndowStatic(b%!&C|
0000e260  29 0d 10 35 0e cc e7 62  25 21 26 43 3e 30 8c 0d  |)..5...b%!&C>0..|
0000e270  10 39 2a 85 39 39 2c a4  73 68 65 6c 6c 5f 4d 65  |.9*.99,.shell_Me|
0000e280  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
0000e290  4c 4c 4d 53 47 30 39 22  29 0d 10 3a 29 cc f2 73  |LLMSG09")..:)..s|
0000e2a0  68 65 6c 6c 5f 4f 70 65  6e 57 69 6e 64 6f 77 44  |hell_OpenWindowD|
0000e2b0  79 6e 61 6d 69 63 28 7a  25 2c 42 42 25 2c 44 42  |ynamic(z%,BB%,DB|
0000e2c0  25 29 0d 10 3d 05 cd 0d  10 3e 1a cd 3a 55 24 3d  |%)..=....>..:U$=|
0000e2d0  24 28 62 25 21 32 30 29  3a e7 55 24 3c 3e 22 22  |$(b%!20):.U$<>""|
0000e2e0  8c 0d 10 42 4b f2 73 68  65 6c 6c 5f 54 72 61 63  |...BK.shell_Trac|
0000e2f0  65 66 30 28 22 48 6f 74  4b 65 79 50 72 6f 63 65  |ef0("HotKeyProce|
0000e300  73 73 3a 43 61 6c 6c 69  6e 67 20 50 6f 73 74 2d  |ss:Calling Post-|
0000e310  4f 70 65 6e 20 46 4e 20  27 22 2b 55 24 2b 22 27  |Open FN '"+U$+"'|
0000e320  22 29 3a e7 62 25 21 26  43 3e 30 8c 0d 10 45 20  |"):.b%!&C>0...E |
0000e330  70 25 3d a0 28 22 46 4e  22 2b 4e 24 2b 22 28 22  |p%=.("FN"+N$+"("|
0000e340  2b c3 62 25 21 26 43 2b  22 29 22 29 0d 10 46 1e  |+.b%!&C+")")..F.|
0000e350  cc 70 25 3d a0 28 22 46  4e 22 2b 55 24 2b 22 28  |.p%=.("FN"+U$+"(|
0000e360  22 2b c3 7a 25 2b 22 29  22 29 0d 10 48 05 cd 0d  |"+.z%+")")..H...|
0000e370  10 49 3f cc f2 73 68 65  6c 6c 5f 54 72 61 63 65  |.I?..shell_Trace|
0000e380  66 30 28 22 48 6f 74 4b  65 79 50 72 6f 63 65 73  |f0("HotKeyProces|
0000e390  73 3a 4e 6f 20 50 6f 73  74 2d 4f 70 65 6e 20 46  |s:No Post-Open F|
0000e3a0  4e 20 72 65 67 69 73 74  65 72 65 64 22 29 0d 10  |N registered")..|
0000e3b0  4d 0b cd 3a 6a 41 25 3d  b9 0d 10 4f 1c cc 65 24  |M..:jA%=...O..e$|
0000e3c0  3d 22 22 3a 4e 24 3d 22  22 3a 55 24 3d 22 22 3a  |="":N$="":U$="":|
0000e3d0  6a 41 25 3d a3 0d 10 51  0a cd 3a 3d 6a 41 25 0d  |jA%=...Q..:=jA%.|
0000e3e0  10 57 44 dd f2 73 68 65  6c 6c 5f 4f 70 65 6e 57  |.WD..shell_OpenW|
0000e3f0  69 6e 64 6f 77 53 74 61  74 69 63 4e 65 77 56 69  |indowStaticNewVi|
0000e400  65 77 28 63 25 29 3a f2  73 68 65 6c 6c 5f 4f 70  |ew(c%):.shell_Op|
0000e410  65 6e 57 69 6e 64 6f 77  28 63 25 2c a3 2c 2d 31  |enWindow(c%,.,-1|
0000e420  29 3a e1 0d 10 5d 45 dd  f2 73 68 65 6c 6c 5f 4f  |):...]E..shell_O|
0000e430  70 65 6e 57 69 6e 64 6f  77 53 74 61 74 69 63 28  |penWindowStatic(|
0000e440  6b 25 29 3a e7 a4 73 68  65 6c 6c 5f 53 65 61 72  |k%):..shell_Sear|
0000e450  63 68 53 74 61 74 69 63  28 5f 55 25 21 26 42 38  |chStatic(_U%!&B8|
0000e460  2c 6b 25 29 3e 2d 31 8c  0d 10 5f 1e f2 73 68 65  |,k%)>-1..._..she|
0000e470  6c 6c 5f 4f 70 65 6e 57  69 6e 64 6f 77 28 6b 25  |ll_OpenWindow(k%|
0000e480  2c 30 2c 2d 31 29 0d 10  60 2b cc 85 39 39 2c a4  |,0,-1)..`+..99,.|
0000e490  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 4e 6f 41  |shell_MessageNoA|
0000e4a0  72 67 73 28 22 53 48 45  4c 4c 4d 53 47 30 39 22  |rgs("SHELLMSG09"|
0000e4b0  29 0d 10 62 07 cd 3a e1  0d 10 68 3b dd a4 73 68  |)..b..:...h;..sh|
0000e4c0  65 6c 6c 5f 53 65 61 72  63 68 53 74 61 74 69 63  |ell_SearchStatic|
0000e4d0  28 4f 41 25 2c 6b 25 29  3a ea 6a 25 2c 67 25 3a  |(OA%,k%):.j%,g%:|
0000e4e0  6a 25 3d 2d 31 3a 67 25  3d 30 3a e7 4f 41 25 3c  |j%=-1:g%=0:.OA%<|
0000e4f0  3e 30 8c 0d 10 6d 21 c8  95 4f 41 25 21 67 25 3c  |>0...m!..OA%!g%<|
0000e500  3e 2d 31 3a e7 4f 41 25  21 67 25 3d 6b 25 8c 6a  |>-1:.OA%!g%=k%.j|
0000e510  25 3d 67 25 0d 10 6f 0b  67 25 2b 3d 34 3a ce 0d  |%=g%..o.g%+=4:..|
0000e520  10 71 09 cd 3a 3d 6a 25  0d 10 77 7d dd f2 73 68  |.q..:=j%..w}..sh|
0000e530  65 6c 6c 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |ell_CreateWindow|
0000e540  53 74 61 74 69 63 28 74  24 2c f8 6b 25 29 3a ea  |Static(t$,.k%):.|
0000e550  4c 42 25 2c 4f 41 25 2c  62 25 2c 64 25 3a 4c 42  |LB%,OA%,b%,d%:LB|
0000e560  25 3d a4 73 68 65 6c 6c  5f 47 65 74 57 42 28 74  |%=.shell_GetWB(t|
0000e570  24 29 3a 4c 42 25 21 36  34 3d 5f 55 25 21 31 36  |$):LB%!64=_U%!16|
0000e580  3a c8 99 26 34 30 30 43  31 2c 2c 4c 42 25 b8 6b  |:..&400C1,,LB%.k|
0000e590  25 3a 4f 41 25 3d 5f 55  25 21 26 42 38 3a e7 4f  |%:OA%=_U%!&B8:.O|
0000e5a0  41 25 3d 30 8c 0d 10 81  72 f2 73 68 65 6c 6c 5f  |A%=0....r.shell_|
0000e5b0  54 72 61 63 65 66 30 28  22 43 72 65 61 74 65 57  |Tracef0("CreateW|
0000e5c0  69 6e 64 6f 77 53 74 61  74 69 63 3a 45 6d 70 74  |indowStatic:Empt|
0000e5d0  79 20 4c 69 73 74 22 29  3a 5f 55 25 21 26 42 38  |y List"):_U%!&B8|
0000e5e0  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000e5f0  6b 46 65 74 63 68 28 38  29 3a 4f 41 25 3d 5f 55  |kFetch(8):OA%=_U|
0000e600  25 21 26 42 38 3a 4f 41  25 21 30 3d 6b 25 3a 4f  |%!&B8:OA%!0=k%:O|
0000e610  41 25 21 34 3d 2d 31 0d  10 86 70 cc f2 73 68 65  |A%!4=-1...p..she|
0000e620  6c 6c 5f 54 72 61 63 65  66 30 28 22 43 72 65 61  |ll_Tracef0("Crea|
0000e630  74 65 57 69 6e 64 6f 77  53 74 61 74 69 63 3a 53  |teWindowStatic:S|
0000e640  65 61 72 63 68 69 6e 67  20 66 6f 72 20 77 69 6e  |earching for win|
0000e650  64 6f 77 20 68 61 6e 64  6c 65 22 29 3a 64 25 3d  |dow handle"):d%=|
0000e660  a4 73 68 65 6c 6c 5f 53  65 61 72 63 68 53 74 61  |.shell_SearchSta|
0000e670  74 69 63 28 5f 55 25 21  26 42 38 2c 6b 25 29 3a  |tic(_U%!&B8,k%):|
0000e680  e7 64 25 3d 2d 31 8c 0d  10 8f 7b f2 73 68 65 6c  |.d%=-1....{.shel|
0000e690  6c 5f 54 72 61 63 65 66  30 28 22 43 72 65 61 74  |l_Tracef0("Creat|
0000e6a0  65 57 69 6e 64 6f 77 53  74 61 74 69 63 3a 4e 6f  |eWindowStatic:No|
0000e6b0  74 20 66 6f 75 6e 64 20  2d 20 61 64 64 69 6e 67  |t found - adding|
0000e6c0  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 74  | window handle t|
0000e6d0  6f 20 6c 69 73 74 22 29  3a 64 25 3d a4 73 68 65  |o list"):d%=.she|
0000e6e0  6c 6c 5f 53 65 61 72 63  68 53 74 61 74 69 63 28  |ll_SearchStatic(|
0000e6f0  5f 55 25 21 26 42 38 2c  30 29 3a e7 64 25 3d 2d  |_U%!&B8,0):.d%=-|
0000e700  31 8c 0d 10 94 95 f2 73  68 65 6c 6c 5f 54 72 61  |1......shell_Tra|
0000e710  63 65 66 30 28 22 43 72  65 61 74 65 57 69 6e 64  |cef0("CreateWind|
0000e720  6f 77 53 74 61 74 69 63  3a 45 78 74 65 6e 64 69  |owStatic:Extendi|
0000e730  6e 67 20 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  |ng window handle|
0000e740  20 6c 69 73 74 22 29 3a  67 25 3d 30 3a c8 95 4f  | list"):g%=0:..O|
0000e750  41 25 21 67 25 3c 3e 2d  31 3a 67 25 2b 3d 34 3a  |A%!g%<>-1:g%+=4:|
0000e760  ce 3a 5f 55 25 21 26 42  38 3d a4 73 68 65 6c 6c  |.:_U%!&B8=.shell|
0000e770  5f 48 65 61 70 42 6c 6f  63 6b 45 78 74 65 6e 64  |_HeapBlockExtend|
0000e780  28 5f 55 25 21 26 42 38  2c 34 29 3a 4f 41 25 3d  |(_U%!&B8,4):OA%=|
0000e790  5f 55 25 21 26 42 38 0d  10 9c 4a cc f2 73 68 65  |_U%!&B8...J..she|
0000e7a0  6c 6c 5f 54 72 61 63 65  66 30 28 22 43 72 65 61  |ll_Tracef0("Crea|
0000e7b0  74 65 57 69 6e 64 6f 77  53 74 61 74 69 63 3a 46  |teWindowStatic:F|
0000e7c0  6f 75 6e 64 20 75 6e 75  73 65 64 20 73 70 61 63  |ound unused spac|
0000e7d0  65 20 69 6e 20 6c 69 73  74 22 29 3a 67 25 3d 64  |e in list"):g%=d|
0000e7e0  25 0d 10 a1 1f cd 3a 62  25 3d 4f 41 25 2b 67 25  |%.....:b%=OA%+g%|
0000e7f0  3a 62 25 21 30 3d 6b 25  3a 62 25 21 34 3d 2d 31  |:b%!0=k%:b%!4=-1|
0000e800  0d 10 a4 05 cd 0d 10 a5  07 cd 3a e1 0d 10 ab 6f  |..........:....o|
0000e810  dd f2 73 68 65 6c 6c 5f  49 6e 69 74 48 65 6c 70  |..shell_InitHelp|
0000e820  53 79 73 74 65 6d 28 4d  24 2c 79 44 25 29 3a ea  |System(M$,yD%):.|
0000e830  76 24 2c 43 41 25 2c 6f  41 25 2c 56 24 2c 6f 43  |v$,CA%,oA%,V$,oC|
0000e840  25 2c 70 43 25 3a 5f 55  25 21 26 44 34 3d 30 3a  |%,pC%:_U%!&D4=0:|
0000e850  e7 5f 55 25 21 26 44 38  3c 3e 30 8c f2 73 68 65  |._U%!&D8<>0..she|
0000e860  6c 6c 5f 48 65 61 70 42  6c 6f 63 6b 52 65 74 75  |ll_HeapBlockRetu|
0000e870  72 6e 28 5f 55 25 21 26  44 38 29 0d 10 ae 3e 5f  |rn(_U%!&D8)...>_|
0000e880  55 25 21 26 44 38 3d 30  3a f2 73 68 65 6c 6c 5f  |U%!&D8=0:.shell_|
0000e890  53 63 61 6e 46 6f 72 48  65 6c 70 3a e7 79 44 25  |ScanForHelp:.yD%|
0000e8a0  8c 76 24 3d 22 20 2d 44  69 65 57 69 74 68 54 61  |.v$=" -DieWithTa|
0000e8b0  73 6b 22 8b 76 24 3d 22  22 0d 10 b2 12 e7 5f 55  |sk".v$=""....._U|
0000e8c0  25 21 26 36 34 80 31 3c  3c 33 8c 0d 10 b4 9a 4d  |%!&64.1<<3.....M|
0000e8d0  24 3d 22 22 3a 6f 41 25  3d a4 73 68 65 6c 6c 5f  |$="":oA%=.shell_|
0000e8e0  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 32  |HeapBlockFetch(2|
0000e8f0  35 36 29 3a 56 24 3d a4  73 68 65 6c 6c 5f 4f 53  |56):V$=.shell_OS|
0000e900  56 61 72 47 65 74 56 61  6c 28 6f 41 25 2c 32 35  |VarGetVal(oA%,25|
0000e910  36 2c a4 73 68 65 6c 6c  5f 47 65 74 41 70 70 4e  |6,.shell_GetAppN|
0000e920  61 6d 65 2b 22 52 65 73  24 50 61 74 68 22 2c 2d  |ame+"Res$Path",-|
0000e930  31 29 3a f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |1):.shell_HeapBl|
0000e940  6f 63 6b 52 65 74 75 72  6e 28 6f 41 25 29 3a f5  |ockReturn(oA%):.|
0000e950  3a 43 41 25 3d a7 56 24  2c 22 2c 22 29 3a e7 43  |:CA%=.V$,","):.C|
0000e960  41 25 3e 30 8c 0d 10 bb  35 e7 a4 73 68 65 6c 6c  |A%>0....5..shell|
0000e970  5f 46 69 6c 65 45 78 69  73 74 73 28 c0 56 24 2c  |_FileExists(.V$,|
0000e980  43 41 25 2d 31 29 2b a4  73 68 65 6c 6c 5f 47 65  |CA%-1)+.shell_Ge|
0000e990  74 41 70 70 4e 61 6d 65  29 8c 0d 10 bc 29 4d 24  |tAppName)....)M$|
0000e9a0  3d c0 56 24 2c 43 41 25  2d 31 29 2b a4 73 68 65  |=.V$,CA%-1)+.she|
0000e9b0  6c 6c 5f 47 65 74 41 70  70 4e 61 6d 65 3a 6f 43  |ll_GetAppName:oC|
0000e9c0  25 3d b9 0d 10 be 12 cc  56 24 3d c1 56 24 2c 43  |%=......V$=.V$,C|
0000e9d0  41 25 2b 31 29 0d 10 c0  05 cd 0d 10 c1 2e cc e7  |A%+1)...........|
0000e9e0  a4 73 68 65 6c 6c 5f 46  69 6c 65 45 78 69 73 74  |.shell_FileExist|
0000e9f0  73 28 56 24 2b a4 73 68  65 6c 6c 5f 47 65 74 41  |s(V$+.shell_GetA|
0000ea00  70 70 4e 61 6d 65 29 8c  0d 10 c3 21 4d 24 3d 56  |ppName)....!M$=V|
0000ea10  24 2b a4 73 68 65 6c 6c  5f 47 65 74 41 70 70 4e  |$+.shell_GetAppN|
0000ea20  61 6d 65 3a 6f 43 25 3d  b9 0d 10 c5 4a cc 70 43  |ame:oC%=....J.pC|
0000ea30  25 3d b9 3a f2 73 68 65  6c 6c 5f 4f 4b 28 a4 73  |%=.:.shell_OK(.s|
0000ea40  68 65 6c 6c 5f 4d 65 73  73 61 67 65 4f 6e 65 41  |hell_MessageOneA|
0000ea50  72 67 28 22 53 48 45 4c  4c 4d 53 47 32 36 22 2c  |rg("SHELLMSG26",|
0000ea60  a4 73 68 65 6c 6c 5f 47  65 74 41 70 70 4e 61 6d  |.shell_GetAppNam|
0000ea70  65 29 29 0d 10 c8 05 cd  0d 10 c9 15 cd 3a fd 4d  |e))..........:.M|
0000ea80  24 3c 3e 22 22 84 6f 43  25 84 70 43 25 0d 10 cb  |$<>"".oC%.pC%...|
0000ea90  37 cd 3a e7 70 43 25 3d  30 8c f2 73 68 65 6c 6c  |7.:.pC%=0..shell|
0000eaa0  5f 53 74 72 6f 6e 67 48  6c 70 4d 73 67 28 22 48  |_StrongHlpMsg("H|
0000eab0  65 6c 70 5f 49 6e 73 74  61 6c 6c 20 22 2b 4d 24  |elp_Install "+M$|
0000eac0  2b 76 24 29 0d 10 ce 05  e1 0d 10 d3 50 dd f2 73  |+v$)........P..s|
0000ead0  68 65 6c 6c 5f 48 65 6c  70 57 6f 72 64 28 78 24  |hell_HelpWord(x$|
0000eae0  29 3a ea 67 45 25 2c 62  25 2c 43 42 25 3a 43 42  |):.gE%,b%,CB%:CB|
0000eaf0  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
0000eb00  63 6b 46 65 74 63 68 28  35 31 32 29 3a e7 5f 55  |ckFetch(512):._U|
0000eb10  25 21 26 44 30 3d 2d 31  8c 0d 10 d8 2e e7 a4 73  |%!&D0=-1.......s|
0000eb20  68 65 6c 6c 5f 4f 53 56  61 72 45 78 69 73 74 73  |hell_OSVarExists|
0000eb30  28 43 42 25 2c 22 53 74  72 6f 6e 67 48 65 6c 70  |(CB%,"StrongHelp|
0000eb40  24 44 69 72 22 29 8c 0d  10 da 4b c8 99 26 36 30  |$Dir")....K..&60|
0000eb50  30 44 45 2c 22 3c 53 74  72 6f 6e 67 48 65 6c 70  |0DE,"<StrongHelp|
0000eb60  24 44 69 72 3e 22 3a e7  5f 55 25 21 26 44 38 3c  |$Dir>":._U%!&D8<|
0000eb70  3e 30 8c f2 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |>0..shell_HeapBl|
0000eb80  6f 63 6b 52 65 74 75 72  6e 28 5f 55 25 21 26 44  |ockReturn(_U%!&D|
0000eb90  38 29 0d 10 dc 3a 5f 55  25 21 26 44 38 3d a4 73  |8)...:_U%!&D8=.s|
0000eba0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
0000ebb0  74 63 68 28 a9 78 24 2b  31 29 3a 62 25 3d 5f 55  |tch(.x$+1):b%=_U|
0000ebc0  25 21 26 44 38 3a 24 62  25 3d 78 24 0d 10 df 4e  |%!&D8:$b%=x$...N|
0000ebd0  cc f2 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000ebe0  6b 52 65 74 75 72 6e 28  43 42 25 29 3a f2 73 68  |kReturn(CB%):.sh|
0000ebf0  65 6c 6c 5f 4f 4b 28 a4  73 68 65 6c 6c 5f 4d 65  |ell_OK(.shell_Me|
0000ec00  73 73 61 67 65 4e 6f 41  72 67 73 28 22 53 48 45  |ssageNoArgs("SHE|
0000ec10  4c 4c 4d 53 47 31 31 22  29 29 0d 10 e4 05 cd 0d  |LLMSG11"))......|
0000ec20  10 e5 29 cc f2 73 68 65  6c 6c 5f 53 74 72 6f 6e  |..)..shell_Stron|
0000ec30  67 48 6c 70 4d 73 67 28  22 48 65 6c 70 5f 57 6f  |gHlpMsg("Help_Wo|
0000ec40  72 64 20 22 2b 78 24 29  0d 10 e7 23 cd 3a f2 73  |rd "+x$)...#.:.s|
0000ec50  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 52 65  |hell_HeapBlockRe|
0000ec60  74 75 72 6e 28 43 42 25  29 3a e1 0d 10 ed 41 dd  |turn(CB%):....A.|
0000ec70  f2 73 68 65 6c 6c 5f 53  74 72 6f 6e 67 48 6c 70  |.shell_StrongHlp|
0000ec80  4d 73 67 28 79 24 29 3a  f2 73 68 65 6c 6c 5f 42  |Msg(y$):.shell_B|
0000ec90  72 6f 61 64 63 61 73 74  4d 65 73 73 61 67 65 28  |roadcastMessage(|
0000eca0  26 34 33 42 30 30 2c 79  24 29 3a e1 0d 10 f3 9d  |&43B00,y$):.....|
0000ecb0  dd f2 73 68 65 6c 6c 5f  53 63 61 6e 46 6f 72 48  |..shell_ScanForH|
0000ecc0  65 6c 70 3a ea 7a 41 25  2c 49 43 25 3a 7a 41 25  |elp:.zA%,IC%:zA%|
0000ecd0  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
0000ece0  6b 46 65 74 63 68 28 32  35 36 29 3a f5 3a 7a 41  |kFetch(256):.:zA|
0000ecf0  25 21 26 43 3d 30 3a c8  99 26 34 30 30 45 37 2c  |%!&C=0:..&400E7,|
0000ed00  31 39 2c 7a 41 25 2c 2d  32 2c 5f 55 25 21 26 44  |19,zA%,-2,_U%!&D|
0000ed10  34 b8 2c 2c 49 43 25 3a  5f 55 25 21 26 44 34 3d  |4.,,IC%:_U%!&D4=|
0000ed20  5f 55 25 21 26 44 34 2b  31 3a fd 49 43 25 3c 3e  |_U%!&D4+1:.IC%<>|
0000ed30  2d 31 84 28 5f 55 25 21  26 44 34 29 3e 36 34 3a  |-1.(_U%!&D4)>64:|
0000ed40  e7 49 43 25 3c 3e 2d 31  8c 0d 11 07 40 7a 41 25  |.IC%<>-1....@zA%|
0000ed50  21 30 3d 32 34 3a 7a 41  25 21 26 43 3d 30 3a 7a  |!0=24:zA%!&C=0:z|
0000ed60  41 25 21 31 36 3d 26 34  30 30 43 36 3a 7a 41 25  |A%!16=&400C6:zA%|
0000ed70  21 32 30 3d 49 43 25 3a  c8 99 26 34 30 30 45 37  |!20=IC%:..&400E7|
0000ed80  2c 31 37 2c 7a 41 25 2c  30 0d 11 0c 23 cd 3a f2  |,17,zA%,0...#.:.|
0000ed90  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 52  |shell_HeapBlockR|
0000eda0  65 74 75 72 6e 28 7a 41  25 29 3a e1 0d 11 12 a8  |eturn(zA%):.....|
0000edb0  dd f2 73 68 65 6c 6c 5f  42 72 6f 61 64 63 61 73  |..shell_Broadcas|
0000edc0  74 4d 65 73 73 61 67 65  28 44 45 25 2c 79 24 29  |tMessage(DE%,y$)|
0000edd0  3a ea 50 42 25 3a 50 42  25 3d a4 73 68 65 6c 6c  |:.PB%:PB%=.shell|
0000ede0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000edf0  32 35 36 29 3a 50 42 25  21 26 43 3d 30 3a 50 42  |256):PB%!&C=0:PB|
0000ee00  25 21 31 36 3d 44 45 25  3a 24 28 50 42 25 2b 32  |%!16=DE%:$(PB%+2|
0000ee10  30 29 3d 79 24 2b bd 28  30 29 3a 50 42 25 21 30  |0)=y$+.(0):PB%!0|
0000ee20  3d 32 35 36 3a c8 99 26  34 30 30 45 37 2c 31 37  |=256:..&400E7,17|
0000ee30  2c 50 42 25 2c 30 3a f2  73 68 65 6c 6c 5f 48 65  |,PB%,0:.shell_He|
0000ee40  61 70 42 6c 6f 63 6b 52  65 74 75 72 6e 28 50 42  |apBlockReturn(PB|
0000ee50  25 29 3a e1 0d 11 1e 4a  dd f2 73 68 65 6c 6c 5f  |%):....J..shell_|
0000ee60  57 69 6e 64 6f 77 54 6f  67 67 6c 65 42 61 63 6b  |WindowToggleBack|
0000ee70  49 63 6f 6e 28 f8 63 25  29 3a f2 73 68 65 6c 6c  |Icon(.c%):.shell|
0000ee80  5f 57 69 6e 64 6f 77 54  6f 67 67 6c 65 46 6c 61  |_WindowToggleFla|
0000ee90  67 73 28 63 25 2c 31 3c  3c 32 34 29 3a e1 0d 11  |gs(c%,1<<24):...|
0000eea0  24 4b dd f2 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |$K..shell_Window|
0000eeb0  54 6f 67 67 6c 65 43 6c  6f 73 65 49 63 6f 6e 28  |ToggleCloseIcon(|
0000eec0  f8 63 25 29 3a f2 73 68  65 6c 6c 5f 57 69 6e 64  |.c%):.shell_Wind|
0000eed0  6f 77 54 6f 67 67 6c 65  46 6c 61 67 73 28 63 25  |owToggleFlags(c%|
0000eee0  2c 31 3c 3c 32 35 29 3a  e1 0d 11 2a 4a dd f2 73  |,1<<25):...*J..s|
0000eef0  68 65 6c 6c 5f 57 69 6e  64 6f 77 54 6f 67 67 6c  |hell_WindowToggl|
0000ef00  65 54 69 74 6c 65 42 61  72 28 f8 63 25 29 3a f2  |eTitleBar(.c%):.|
0000ef10  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 54 6f 67 67  |shell_WindowTogg|
0000ef20  6c 65 46 6c 61 67 73 28  63 25 2c 31 3c 3c 32 36  |leFlags(c%,1<<26|
0000ef30  29 3a e1 0d 11 30 4c dd  f2 73 68 65 6c 6c 5f 57  |):...0L..shell_W|
0000ef40  69 6e 64 6f 77 54 6f 67  67 6c 65 54 6f 67 67 6c  |indowToggleToggl|
0000ef50  65 49 63 6f 6e 28 f8 63  25 29 3a f2 73 68 65 6c  |eIcon(.c%):.shel|
0000ef60  6c 5f 57 69 6e 64 6f 77  54 6f 67 67 6c 65 46 6c  |l_WindowToggleFl|
0000ef70  61 67 73 28 63 25 2c 31  3c 3c 32 37 29 3a e1 0d  |ags(c%,1<<27):..|
0000ef80  11 36 4c dd f2 73 68 65  6c 6c 5f 57 69 6e 64 6f  |.6L..shell_Windo|
0000ef90  77 54 6f 67 67 6c 65 48  53 63 72 6f 6c 6c 42 61  |wToggleHScrollBa|
0000efa0  72 28 f8 63 25 29 3a f2  73 68 65 6c 6c 5f 57 69  |r(.c%):.shell_Wi|
0000efb0  6e 64 6f 77 54 6f 67 67  6c 65 46 6c 61 67 73 28  |ndowToggleFlags(|
0000efc0  63 25 2c 31 3c 3c 33 30  29 3a e1 0d 11 3c 50 dd  |c%,1<<30):...<P.|
0000efd0  f2 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 54 6f 67  |.shell_WindowTog|
0000efe0  67 6c 65 41 64 6a 75 73  74 53 69 7a 65 49 63 6f  |gleAdjustSizeIco|
0000eff0  6e 28 f8 63 25 29 3a f2  73 68 65 6c 6c 5f 57 69  |n(.c%):.shell_Wi|
0000f000  6e 64 6f 77 54 6f 67 67  6c 65 46 6c 61 67 73 28  |ndowToggleFlags(|
0000f010  63 25 2c 31 3c 3c 32 39  29 3a e1 0d 11 42 4c dd  |c%,1<<29):...BL.|
0000f020  f2 73 68 65 6c 6c 5f 57  69 6e 64 6f 77 54 6f 67  |.shell_WindowTog|
0000f030  67 6c 65 56 53 63 72 6f  6c 6c 42 61 72 28 f8 63  |gleVScrollBar(.c|
0000f040  25 29 3a f2 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |%):.shell_Window|
0000f050  54 6f 67 67 6c 65 46 6c  61 67 73 28 63 25 2c 31  |ToggleFlags(c%,1|
0000f060  3c 3c 32 38 29 3a e1 0d  11 48 fd dd f2 73 68 65  |<<28):...H...she|
0000f070  6c 6c 5f 57 69 6e 64 6f  77 54 6f 67 67 6c 65 46  |ll_WindowToggleF|
0000f080  6c 61 67 73 28 f8 63 25  2c 62 42 25 29 3a ea 61  |lags(.c%,bB%):.a|
0000f090  25 2c 6c 25 2c 45 43 25  2c 6b 25 3a f2 73 68 65  |%,l%,EC%,k%:.she|
0000f0a0  6c 6c 5f 54 72 61 63 65  66 30 28 22 57 69 6e 64  |ll_Tracef0("Wind|
0000f0b0  6f 77 54 6f 67 67 6c 65  46 6c 61 67 73 3a 77 68  |owToggleFlags:wh|
0000f0c0  25 3d 26 22 2b c3 7e 63  25 29 3a 45 43 25 3d a4  |%=&"+.~c%):EC%=.|
0000f0d0  73 68 65 6c 6c 5f 57 69  6e 64 6f 77 49 73 4f 70  |shell_WindowIsOp|
0000f0e0  65 6e 28 63 25 29 3a 61  25 3d a4 73 68 65 6c 6c  |en(c%):a%=.shell|
0000f0f0  5f 48 65 61 70 42 6c 6f  63 6b 46 65 74 63 68 28  |_HeapBlockFetch(|
0000f100  36 30 30 30 29 3a 61 25  21 30 3d 63 25 3a c8 99  |6000):a%!0=c%:..|
0000f110  26 34 30 30 43 43 2c 2c  61 25 3a 6c 25 3d 61 25  |&400CC,,a%:l%=a%|
0000f120  21 33 32 3a 6c 25 3d 28  6c 25 82 62 42 25 29 3a  |!32:l%=(l%.bB%):|
0000f130  61 25 21 33 32 3d 6c 25  3a c8 99 26 34 30 30 43  |a%!32=l%:..&400C|
0000f140  33 2c 2c 61 25 3a c8 99  26 34 30 30 43 31 2c 2c  |3,,a%:..&400C1,,|
0000f150  61 25 2b 34 b8 6b 25 3a  21 61 25 3d 6b 25 3a e7  |a%+4.k%:!a%=k%:.|
0000f160  45 43 25 8c 0d 11 59 10  c8 99 26 34 30 30 43 35  |EC%...Y...&400C5|
0000f170  2c 2c 61 25 0d 11 5a 29  cd 3a f2 73 68 65 6c 6c  |,,a%..Z).:.shell|
0000f180  5f 48 65 61 70 42 6c 6f  63 6b 52 65 74 75 72 6e  |_HeapBlockReturn|
0000f190  28 61 25 29 3a e7 6b 25  3c 3e 63 25 8c 0d 11 5d  |(a%):.k%<>c%...]|
0000f1a0  2a f2 73 68 65 6c 6c 5f  55 70 64 61 74 65 57 69  |*.shell_UpdateWi|
0000f1b0  6e 64 6f 77 48 61 6e 64  6c 65 28 63 25 2c 6b 25  |ndowHandle(c%,k%|
0000f1c0  29 3a 63 25 3d 6b 25 0d  11 5f 07 cd 3a e1 0d 11  |):c%=k%.._..:...|
0000f1d0  64 ce dd f2 73 68 65 6c  6c 5f 4c 69 73 74 43 6c  |d...shell_ListCl|
0000f1e0  69 63 6b 53 65 6c 65 63  74 3a ea 73 25 2c 66 25  |ickSelect:.s%,f%|
0000f1f0  2c 6f 25 2c 62 25 2c 75  25 3a 73 25 3d 5f 55 25  |,o%,b%,u%:s%=_U%|
0000f200  21 26 43 3a 6f 25 3d a4  73 68 65 6c 6c 5f 48 65  |!&C:o%=.shell_He|
0000f210  61 70 42 6c 6f 63 6b 49  6e 66 6f 28 73 25 29 3a  |apBlockInfo(s%):|
0000f220  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000f230  20 22 29 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  | "):.shell_Trace|
0000f240  66 30 28 22 4c 69 73 74  20 6f 66 20 43 6c 69 63  |f0("List of Clic|
0000f250  6b 53 65 6c 65 63 74 20  65 76 65 6e 74 73 3a 22  |kSelect events:"|
0000f260  29 3a 66 25 3d 30 3a f5  3a 62 25 3d 73 25 21 28  |):f%=0:.:b%=s%!(|
0000f270  66 25 2b 32 30 29 3a 75  25 3d 73 25 2b 66 25 3a  |f%+20):u%=s%+f%:|
0000f280  e7 a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000f290  6b 45 78 69 73 74 73 28  62 25 29 8c 0d 11 70 0d  |kExists(b%)...p.|
0000f2a0  e7 24 62 25 3c 3e 22 22  8c 0d 11 72 74 f2 73 68  |.$b%<>""...rt.sh|
0000f2b0  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 26 22 2b  |ell_Tracef0("&"+|
0000f2c0  a4 73 68 65 6c 6c 5f 53  74 72 69 6e 67 50 61 64  |.shell_StringPad|
0000f2d0  54 72 61 69 6c 69 6e 67  28 c3 7e 75 25 21 30 2c  |Trailing(.~u%!0,|
0000f2e0  22 20 22 2c 38 29 2b 22  20 26 22 2b a4 73 68 65  |" ",8)+" &"+.she|
0000f2f0  6c 6c 5f 53 74 72 69 6e  67 50 61 64 54 72 61 69  |ll_StringPadTrai|
0000f300  6c 69 6e 67 28 c3 7e 75  25 21 34 2c 22 20 22 2c  |ling(.~u%!4," ",|
0000f310  38 29 2b 22 20 20 20 22  2b 24 62 25 29 0d 11 74  |8)+"   "+$b%)..t|
0000f320  05 cd 0d 11 75 2c cd 3a  66 25 2b 3d 34 38 3a fd  |....u,.:f%+=48:.|
0000f330  28 66 25 3e 3d 6f 25 29  3a f2 73 68 65 6c 6c 5f  |(f%>=o%):.shell_|
0000f340  54 72 61 63 65 66 30 28  22 20 22 29 3a e1 0d 11  |Tracef0(" "):...|
0000f350  7f ce dd f2 73 68 65 6c  6c 5f 4c 69 73 74 43 6c  |....shell_ListCl|
0000f360  69 63 6b 41 64 6a 75 73  74 3a ea 73 25 2c 66 25  |ickAdjust:.s%,f%|
0000f370  2c 6f 25 2c 62 25 2c 75  25 3a 73 25 3d 5f 55 25  |,o%,b%,u%:s%=_U%|
0000f380  21 26 43 3a 6f 25 3d a4  73 68 65 6c 6c 5f 48 65  |!&C:o%=.shell_He|
0000f390  61 70 42 6c 6f 63 6b 49  6e 66 6f 28 73 25 29 3a  |apBlockInfo(s%):|
0000f3a0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000f3b0  20 22 29 3a f2 73 68 65  6c 6c 5f 54 72 61 63 65  | "):.shell_Trace|
0000f3c0  66 30 28 22 4c 69 73 74  20 6f 66 20 43 6c 69 63  |f0("List of Clic|
0000f3d0  6b 41 64 6a 75 73 74 20  65 76 65 6e 74 73 3a 22  |kAdjust events:"|
0000f3e0  29 3a 66 25 3d 30 3a f5  3a 62 25 3d 73 25 21 28  |):f%=0:.:b%=s%!(|
0000f3f0  66 25 2b 32 34 29 3a 75  25 3d 73 25 2b 66 25 3a  |f%+24):u%=s%+f%:|
0000f400  e7 a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000f410  6b 45 78 69 73 74 73 28  62 25 29 8c 0d 11 8b 0d  |kExists(b%).....|
0000f420  e7 24 62 25 3c 3e 22 22  8c 0d 11 8d 74 f2 73 68  |.$b%<>""....t.sh|
0000f430  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 26 22 2b  |ell_Tracef0("&"+|
0000f440  a4 73 68 65 6c 6c 5f 53  74 72 69 6e 67 50 61 64  |.shell_StringPad|
0000f450  54 72 61 69 6c 69 6e 67  28 c3 7e 75 25 21 30 2c  |Trailing(.~u%!0,|
0000f460  22 20 22 2c 38 29 2b 22  20 26 22 2b a4 73 68 65  |" ",8)+" &"+.she|
0000f470  6c 6c 5f 53 74 72 69 6e  67 50 61 64 54 72 61 69  |ll_StringPadTrai|
0000f480  6c 69 6e 67 28 c3 7e 75  25 21 34 2c 22 20 22 2c  |ling(.~u%!4," ",|
0000f490  38 29 2b 22 20 20 20 22  2b 24 62 25 29 0d 11 8f  |8)+"   "+$b%)...|
0000f4a0  05 cd 0d 11 90 2c cd 3a  66 25 2b 3d 34 38 3a fd  |.....,.:f%+=48:.|
0000f4b0  28 66 25 3e 3d 6f 25 29  3a f2 73 68 65 6c 6c 5f  |(f%>=o%):.shell_|
0000f4c0  54 72 61 63 65 66 30 28  22 20 22 29 3a e1 0d 11  |Tracef0(" "):...|
0000f4d0  9a cb dd f2 73 68 65 6c  6c 5f 4c 69 73 74 48 65  |....shell_ListHe|
0000f4e0  6c 70 54 61 67 73 3a ea  73 25 2c 66 25 2c 6f 25  |lpTags:.s%,f%,o%|
0000f4f0  2c 62 25 2c 75 25 3a 73  25 3d 5f 55 25 21 26 43  |,b%,u%:s%=_U%!&C|
0000f500  3a 6f 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |:o%=.shell_HeapB|
0000f510  6c 6f 63 6b 49 6e 66 6f  28 73 25 29 3a f2 73 68  |lockInfo(s%):.sh|
0000f520  65 6c 6c 5f 54 72 61 63  65 66 30 28 22 20 22 29  |ell_Tracef0(" ")|
0000f530  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
0000f540  22 4c 69 73 74 20 6f 66  20 61 74 74 61 63 68 65  |"List of attache|
0000f550  64 20 68 65 6c 70 20 74  61 67 73 3a 22 29 3a 66  |d help tags:"):f|
0000f560  25 3d 30 3a f5 3a 62 25  3d 73 25 21 28 66 25 2b  |%=0:.:b%=s%!(f%+|
0000f570  34 34 29 3a 75 25 3d 73  25 2b 66 25 3a e7 a4 73  |44):u%=s%+f%:..s|
0000f580  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 45 78  |hell_HeapBlockEx|
0000f590  69 73 74 73 28 62 25 29  8c 0d 11 a6 0d e7 24 62  |ists(b%)......$b|
0000f5a0  25 3c 3e 22 22 8c 0d 11  a8 74 f2 73 68 65 6c 6c  |%<>""....t.shell|
0000f5b0  5f 54 72 61 63 65 66 30  28 22 26 22 2b a4 73 68  |_Tracef0("&"+.sh|
0000f5c0  65 6c 6c 5f 53 74 72 69  6e 67 50 61 64 54 72 61  |ell_StringPadTra|
0000f5d0  69 6c 69 6e 67 28 c3 7e  75 25 21 30 2c 22 20 22  |iling(.~u%!0," "|
0000f5e0  2c 38 29 2b 22 20 26 22  2b a4 73 68 65 6c 6c 5f  |,8)+" &"+.shell_|
0000f5f0  53 74 72 69 6e 67 50 61  64 54 72 61 69 6c 69 6e  |StringPadTrailin|
0000f600  67 28 c3 7e 75 25 21 34  2c 22 20 22 2c 38 29 2b  |g(.~u%!4," ",8)+|
0000f610  22 20 20 20 22 2b 24 62  25 29 0d 11 aa 05 cd 0d  |"   "+$b%)......|
0000f620  11 ab 2c cd 3a 66 25 2b  3d 34 38 3a fd 28 66 25  |..,.:f%+=48:.(f%|
0000f630  3e 3d 6f 25 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |>=o%):.shell_Tra|
0000f640  63 65 66 30 28 22 20 22  29 3a e1 0d 11 b5 48 dd  |cef0(" "):....H.|
0000f650  f2 73 68 65 6c 6c 5f 4d  65 6d 46 69 6c 6c 28 4b  |.shell_MemFill(K|
0000f660  43 25 2c 54 44 25 2c 55  44 25 29 3a ea 49 25 2c  |C%,TD%,UD%):.I%,|
0000f670  4c 43 25 2c 71 43 25 3a  4c 43 25 3d 54 44 25 81  |LC%,qC%:LC%=TD%.|
0000f680  34 3a 71 43 25 3d 54 44  25 83 34 3a e7 4c 43 25  |4:qC%=TD%.4:.LC%|
0000f690  3e 30 8c 0d 11 ba 26 e3  49 25 3d 31 b8 28 4c 43  |>0....&.I%=1.(LC|
0000f6a0  25 2a 34 29 88 34 3a 4b  43 25 21 28 49 25 2d 31  |%*4).4:KC%!(I%-1|
0000f6b0  29 3d 55 44 25 3a ed 49  25 0d 11 bd 0d cd 3a e7  |)=UD%:.I%.....:.|
0000f6c0  71 43 25 3e 30 8c 0d 11  bf 2e 4b 43 25 3d 4b 43  |qC%>0.....KC%=KC|
0000f6d0  25 2b 28 4c 43 25 2a 34  29 3a e3 49 25 3d 30 b8  |%+(LC%*4):.I%=0.|
0000f6e0  71 43 25 2d 31 3a 4b 43  25 3f 49 25 3d 55 44 25  |qC%-1:KC%?I%=UD%|
0000f6f0  3a ed 49 25 0d 11 c3 07  cd 3a e1 0d 11 ca e5 dd  |:.I%.....:......|
0000f700  f2 73 68 65 6c 6c 5f 41  74 74 61 63 68 46 6f 6e  |.shell_AttachFon|
0000f710  74 4d 65 6e 75 28 63 25  2c 65 25 2c 44 24 2c 48  |tMenu(c%,e%,D$,H|
0000f720  41 24 29 3a ea 71 25 3a  f2 73 68 65 6c 6c 5f 46  |A$):.q%:.shell_F|
0000f730  6f 6e 74 4d 65 6e 75 49  6e 69 74 3a c8 99 26 38  |ontMenuInit:..&8|
0000f740  44 30 38 32 2c 22 22 2b  bd 30 2c 5f 55 25 21 32  |D082,""+.0,_U%!2|
0000f750  36 30 b8 2c 71 25 3a 5f  55 25 21 26 46 43 3d 71  |60.,q%:_U%!&FC=q|
0000f760  25 3a f2 73 68 65 6c 6c  5f 45 76 65 6e 74 41 64  |%:.shell_EventAd|
0000f770  64 28 63 25 2c 65 25 2c  30 2c 2d 32 2c 44 24 29  |d(c%,e%,0,-2,D$)|
0000f780  3a f2 73 68 65 6c 6c 5f  54 72 61 63 65 66 30 28  |:.shell_Tracef0(|
0000f790  22 41 74 74 61 63 68 46  6f 6e 74 4d 65 6e 75 3a  |"AttachFontMenu:|
0000f7a0  41 74 74 61 63 68 69 6e  67 20 66 6f 6e 74 20 6d  |Attaching font m|
0000f7b0  65 6e 75 22 29 3a e7 48  41 24 3c 3e 22 22 8c f2  |enu"):.HA$<>""..|
0000f7c0  73 68 65 6c 6c 5f 41 74  74 61 63 68 4d 65 6e 75  |shell_AttachMenu|
0000f7d0  4d 61 6b 65 72 28 63 25  2c 65 25 2c 48 41 24 29  |Maker(c%,e%,HA$)|
0000f7e0  0d 11 d5 05 e1 0d 11 db  f4 dd f2 73 68 65 6c 6c  |...........shell|
0000f7f0  5f 41 74 74 61 63 68 46  6f 6e 74 53 75 62 4d 65  |_AttachFontSubMe|
0000f800  6e 75 28 69 41 25 2c 43  24 2c 44 24 29 3a ea 72  |nu(iA%,C$,D$):.r|
0000f810  45 25 2c 71 25 2c 62 25  2c 67 25 3a f2 73 68 65  |E%,q%,b%,g%:.she|
0000f820  6c 6c 5f 46 6f 6e 74 4d  65 6e 75 49 6e 69 74 3a  |ll_FontMenuInit:|
0000f830  c8 99 26 38 44 30 38 32  2c 22 22 2b bd 30 2c 5f  |..&8D082,""+.0,_|
0000f840  55 25 21 32 36 30 b8 2c  71 25 3a c8 99 26 34 35  |U%!260.,q%:..&45|
0000f850  42 43 45 2c 69 41 25 2c  71 25 3a c8 99 26 34 35  |BCE,iA%,q%:..&45|
0000f860  42 43 43 2c 2c b9 3a 5f  55 25 21 26 46 43 3d 71  |BCC,,.:_U%!&FC=q|
0000f870  25 3a f2 73 68 65 6c 6c  5f 45 76 65 6e 74 4c 69  |%:.shell_EventLi|
0000f880  73 74 4d 65 6e 75 57 61  72 6e 28 69 41 25 2c 71  |stMenuWarn(iA%,q|
0000f890  25 2c 43 24 2c 44 24 29  3a f2 73 68 65 6c 6c 5f  |%,C$,D$):.shell_|
0000f8a0  54 72 61 63 65 66 30 28  22 41 74 74 61 63 68 46  |Tracef0("AttachF|
0000f8b0  6f 6e 74 53 75 62 4d 65  6e 75 3a 41 74 74 61 63  |ontSubMenu:Attac|
0000f8c0  68 69 6e 67 20 66 6f 6e  74 20 6d 65 6e 75 20 26  |hing font menu &|
0000f8d0  22 2b c3 7e 71 25 29 3a  e1 0d 11 ec a7 dd f2 73  |"+.~q%):.......s|
0000f8e0  68 65 6c 6c 5f 46 6f 6e  74 4d 65 6e 75 49 6e 69  |hell_FontMenuIni|
0000f8f0  74 3a ff 28 22 52 4d 45  6e 73 75 72 65 20 46 6f  |t:.("RMEnsure Fo|
0000f900  6e 74 4d 65 6e 75 20 31  2e 31 36 20 52 4d 4c 6f  |ntMenu 1.16 RMLo|
0000f910  61 64 20 3c 45 76 6e 74  53 68 65 6c 6c 53 79 73  |ad <EvntShellSys|
0000f920  74 65 6d 24 50 61 74 68  3e 46 6f 6e 74 4d 65 6e  |tem$Path>FontMen|
0000f930  75 22 29 3a ff 28 22 52  4d 45 6e 73 75 72 65 20  |u"):.("RMEnsure |
0000f940  46 6f 6e 74 4d 65 6e 75  20 31 2e 31 36 20 45 72  |FontMenu 1.16 Er|
0000f950  72 6f 72 20 43 6f 75 6c  64 6e 27 74 20 6c 6f 61  |ror Couldn't loa|
0000f960  64 20 46 6f 6e 74 4d 65  6e 75 20 6d 6f 64 75 6c  |d FontMenu modul|
0000f970  65 22 29 3a e7 5f 55 25  21 26 46 30 3d 2d 31 8c  |e"):._U%!&F0=-1.|
0000f980  0d 11 f3 14 c8 99 26 38  44 30 38 30 b8 5f 55 25  |......&8D080._U%|
0000f990  21 26 46 30 0d 11 f4 27  cd 3a f2 73 68 65 6c 6c  |!&F0...'.:.shell|
0000f9a0  5f 46 6f 6e 74 4d 65 6e  75 53 65 6c 65 63 74 46  |_FontMenuSelectF|
0000f9b0  6f 6e 74 28 22 22 2c b9  29 3a e1 0d 11 fa 6f dd  |ont("",.):....o.|
0000f9c0  f2 73 68 65 6c 6c 5f 46  6f 6e 74 4d 65 6e 75 53  |.shell_FontMenuS|
0000f9d0  65 6c 65 63 74 46 6f 6e  74 28 68 24 2c 72 43 25  |electFont(h$,rC%|
0000f9e0  29 3a ea 62 25 2c 6d 41  25 3a e7 a4 73 68 65 6c  |):.b%,mA%:..shel|
0000f9f0  6c 5f 48 65 61 70 42 6c  6f 63 6b 45 78 69 73 74  |l_HeapBlockExist|
0000fa00  73 28 5f 55 25 21 26 46  34 29 8c f2 73 68 65 6c  |s(_U%!&F4)..shel|
0000fa10  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
0000fa20  6e 28 5f 55 25 21 26 46  34 29 0d 11 fd 48 5f 55  |n(_U%!&F4)...H_U|
0000fa30  25 21 26 46 34 3d a4 73  68 65 6c 6c 5f 48 65 61  |%!&F4=.shell_Hea|
0000fa40  70 42 6c 6f 63 6b 46 65  74 63 68 28 a9 68 24 2b  |pBlockFetch(.h$+|
0000fa50  31 29 3a 62 25 3d 5f 55  25 21 26 46 34 3a 24 62  |1):b%=_U%!&F4:$b|
0000fa60  25 3d 68 24 3a e7 72 43  25 3c 3e 30 8c 72 43 25  |%=h$:.rC%<>0.rC%|
0000fa70  3d 31 0d 12 00 37 5f 55  25 21 32 36 30 3d 72 43  |=1...7_U%!260=rC|
0000fa80  25 3a c8 99 26 38 44 30  38 32 2c 68 24 2c 5f 55  |%:..&8D082,h$,_U|
0000fa90  25 21 32 36 30 b8 2c 6d  41 25 3a e7 6d 41 25 3c  |%!260.,mA%:.mA%<|
0000faa0  3e 5f 55 25 21 26 46 43  8c 0d 12 04 2d f2 73 68  |>_U%!&FC....-.sh|
0000fab0  65 6c 6c 5f 46 6f 6e 74  4d 65 6e 75 55 70 64 61  |ell_FontMenuUpda|
0000fac0  74 65 50 74 72 28 6d 41  25 29 3a 5f 55 25 21 26  |tePtr(mA%):_U%!&|
0000fad0  46 43 3d 6d 41 25 0d 12  06 3d cd 3a f2 73 68 65  |FC=mA%...=.:.she|
0000fae0  6c 6c 5f 54 72 61 63 65  66 30 28 22 46 6f 6e 74  |ll_Tracef0("Font|
0000faf0  4d 65 6e 75 53 65 6c 65  63 74 46 6f 6e 74 3a 46  |MenuSelectFont:F|
0000fb00  6f 6e 74 20 69 73 20 27  22 2b 68 24 2b 22 27 22  |ont is '"+h$+"'"|
0000fb10  29 3a e1 0d 12 0e 51 dd  a4 73 68 65 6c 6c 5f 46  |):....Q..shell_F|
0000fb20  6f 6e 74 4d 65 6e 75 47  65 74 4c 61 73 74 53 65  |ontMenuGetLastSe|
0000fb30  6c 65 63 74 65 64 46 6f  6e 74 3a ea 62 25 3a e7  |lectedFont:.b%:.|
0000fb40  ac a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |..shell_HeapBloc|
0000fb50  6b 45 78 69 73 74 73 28  5f 55 25 21 26 46 34 29  |kExists(_U%!&F4)|
0000fb60  8c 3d 22 22 0d 12 11 13  62 25 3d 5f 55 25 21 26  |.=""....b%=_U%!&|
0000fb70  46 34 3a 3d 24 62 25 0d  12 15 78 dd f2 73 68 65  |F4:=$b%...x..she|
0000fb80  6c 6c 5f 46 6f 6e 74 4d  65 6e 75 55 70 64 61 74  |ll_FontMenuUpdat|
0000fb90  65 50 74 72 28 66 25 29  3a ea 73 25 2c 67 25 3a  |ePtr(f%):.s%,g%:|
0000fba0  f2 73 68 65 6c 6c 5f 54  72 61 63 65 66 30 28 22  |.shell_Tracef0("|
0000fbb0  46 6f 6e 74 4d 65 6e 75  55 70 64 61 74 65 50 74  |FontMenuUpdatePt|
0000fbc0  72 3a 53 74 61 72 74 65  64 2e 2e 22 29 3a e7 a4  |r:Started.."):..|
0000fbd0  73 68 65 6c 6c 5f 48 65  61 70 42 6c 6f 63 6b 45  |shell_HeapBlockE|
0000fbe0  78 69 73 74 73 28 5f 55  25 21 26 44 43 29 8c 0d  |xists(_U%!&DC)..|
0000fbf0  12 1c a0 f2 73 68 65 6c  6c 5f 54 72 61 63 65 66  |....shell_Tracef|
0000fc00  30 28 22 46 6f 6e 74 4d  65 6e 75 55 70 64 61 74  |0("FontMenuUpdat|
0000fc10  65 50 74 72 3a 48 65 61  70 42 6c 6f 63 6b 20 66  |ePtr:HeapBlock f|
0000fc20  6f 75 6e 64 2e 2e 22 29  3a 73 25 3d 5f 55 25 21  |ound.."):s%=_U%!|
0000fc30  26 44 43 3a 67 25 3d 30  3a f5 3a f2 73 68 65 6c  |&DC:g%=0:.:.shel|
0000fc40  6c 5f 54 72 61 63 65 66  30 28 22 46 6f 6e 74 4d  |l_Tracef0("FontM|
0000fc50  65 6e 75 55 70 64 61 74  65 50 74 72 3a 53 75 62  |enuUpdatePtr:Sub|
0000fc60  73 74 69 74 75 74 69 6e  67 20 70 74 72 2e 2e 22  |stituting ptr.."|
0000fc70  29 3a 73 25 21 28 67 25  2b 38 29 3d 66 25 3a 67  |):s%!(g%+8)=f%:g|
0000fc80  25 2b 3d 26 43 3a fd 73  25 21 67 25 3d 2d 31 0d  |%+=&C:.s%!g%=-1.|
0000fc90  12 26 07 cd 3a e1 0d 12  2b 4c dd f2 73 68 65 6c  |.&..:...+L..shel|
0000fca0  6c 5f 46 69 6e 64 46 6f  6e 74 28 f8 59 24 2c 4d  |l_FindFont(.Y$,M|
0000fcb0  43 25 2c 4e 43 25 2c f8  75 43 25 29 3a e7 ac a4  |C%,NC%,.uC%):...|
0000fcc0  73 68 65 6c 6c 5f 46 6f  6e 74 49 73 41 76 61 69  |shell_FontIsAvai|
0000fcd0  6c 61 62 6c 65 28 59 24  2c 4d 43 25 2c 4e 43 25  |lable(Y$,MC%,NC%|
0000fce0  29 8c 0d 12 2d 17 59 24  3d 22 54 72 69 6e 69 74  |)...-.Y$="Trinit|
0000fcf0  79 2e 4d 65 64 69 75 6d  22 0d 12 2e 2a cd 3a c8  |y.Medium"...*.:.|
0000fd00  99 26 34 30 30 38 31 2c  2c 59 24 2c 4d 43 25 2a  |.&40081,,Y$,MC%*|
0000fd10  31 36 2c 4e 43 25 2a 31  36 2c 30 2c 30 b8 75 43  |16,NC%*16,0,0.uC|
0000fd20  25 3a e1 0d 12 34 34 dd  a4 73 68 65 6c 6c 5f 46  |%:...44..shell_F|
0000fd30  6f 6e 74 49 73 41 76 61  69 6c 61 62 6c 65 28 59  |ontIsAvailable(Y|
0000fd40  24 2c 4d 43 25 2c 4e 43  25 29 3a ea 85 3a ee 85  |$,MC%,NC%):..:..|
0000fd50  ea 3a f7 85 3a 3d a3 0d  12 37 37 c8 99 26 34 30  |.:..:=...77..&40|
0000fd60  30 38 31 2c 30 2c 59 24  2c 4d 43 25 2a 31 36 2c  |081,0,Y$,MC%*16,|
0000fd70  4e 43 25 2a 31 36 2c 30  2c 30 b8 75 43 25 3a c8  |NC%*16,0,0.uC%:.|
0000fd80  99 26 34 30 30 38 32 2c  75 43 25 3a 3d b9 0d 12  |.&40082,uC%:=...|
0000fd90  3e 3b dd a4 73 68 65 6c  6c 5f 43 68 65 63 6b 53  |>;..shell_CheckS|
0000fda0  65 6c 65 63 74 69 6f 6e  28 4d 45 25 29 3a ea 62  |election(ME%):.b|
0000fdb0  25 2c 67 25 3a 62 25 3d  5f 55 25 21 32 35 36 3a  |%,g%:b%=_U%!256:|
0000fdc0  e7 62 25 3d 30 8c 3d 2d  31 0d 12 42 16 e7 5f 55  |.b%=0.=-1..B.._U|
0000fdd0  25 21 32 34 3d 5f 55 25  21 26 46 43 8c 3d 30 0d  |%!24=_U%!&FC.=0.|
0000fde0  12 43 18 f5 3a e7 4d 45  25 21 67 25 3c 3e 62 25  |.C..:.ME%!g%<>b%|
0000fdf0  21 67 25 8c 3d 2d 31 0d  12 45 17 67 25 2b 3d 34  |!g%.=-1..E.g%+=4|
0000fe00  3a fd 62 25 21 67 25 3d  2d 31 3a 3d 67 25 0d 12  |:.b%!g%=-1:=g%..|
0000fe10  4c 76 dd a4 73 68 65 6c  6c 5f 4d 65 6e 75 47 65  |Lv..shell_MenuGe|
0000fe20  74 49 74 65 6d 41 64 64  72 65 73 73 28 71 25 2c  |tItemAddress(q%,|
0000fe30  5a 44 25 29 3a ea 67 25  2c 49 42 25 3a c8 99 26  |ZD%):.g%,IB%:..&|
0000fe40  34 35 42 43 37 2c 71 25  b8 71 25 3a f5 3a 49 42  |45BC7,q%.q%:.:IB|
0000fe50  25 3d 71 25 2b 32 38 2b  28 28 5a 44 25 21 67 25  |%=q%+28+((ZD%!g%|
0000fe60  29 2a 32 34 29 3a 71 25  3d 49 42 25 21 34 3a 67  |)*24):q%=IB%!4:g|
0000fe70  25 2b 3d 34 3a fd 5a 44  25 21 67 25 3d 2d 31 3a  |%+=4:.ZD%!g%=-1:|
0000fe80  3d 49 42 25 0d 12 59 25  dd a4 73 68 65 6c 6c 5f  |=IB%..Y%..shell_|
0000fe90  47 65 74 4c 61 73 74 4d  6f 75 73 65 58 50 6f 73  |GetLastMouseXPos|
0000fea0  3a 3d 5f 55 25 21 32 37  32 0d 12 5e 25 dd a4 73  |:=_U%!272..^%..s|
0000feb0  68 65 6c 6c 5f 47 65 74  4c 61 73 74 4d 6f 75 73  |hell_GetLastMous|
0000fec0  65 59 50 6f 73 3a 3d 5f  55 25 21 32 37 36 0d 12  |eYPos:=_U%!276..|
0000fed0  63 e6 dd f2 73 68 65 6c  6c 5f 55 70 64 61 74 65  |c...shell_Update|
0000fee0  57 69 6e 64 6f 77 48 61  6e 64 6c 65 28 48 41 25  |WindowHandle(HA%|
0000fef0  2c 47 41 25 29 3a f2 73  68 65 6c 6c 5f 54 72 61  |,GA%):.shell_Tra|
0000ff00  63 65 66 30 28 22 55 70  64 61 74 65 57 69 6e 64  |cef0("UpdateWind|
0000ff10  6f 77 48 61 6e 64 6c 65  3a 55 70 64 61 74 69 6e  |owHandle:Updatin|
0000ff20  67 20 73 74 6f 72 65 64  20 77 69 6e 64 6f 77 20  |g stored window |
0000ff30  68 61 6e 64 6c 65 73 22  29 3a f2 73 68 65 6c 6c  |handles"):.shell|
0000ff40  5f 54 72 61 63 65 66 30  28 22 55 70 64 61 74 65  |_Tracef0("Update|
0000ff50  57 69 6e 64 6f 77 48 61  6e 64 6c 65 3a 6f 6c 64  |WindowHandle:old|
0000ff60  20 68 61 6e 64 6c 65 3d  26 22 2b c3 7e 48 41 25  | handle=&"+.~HA%|
0000ff70  29 3a f2 73 68 65 6c 6c  5f 54 72 61 63 65 66 30  |):.shell_Tracef0|
0000ff80  28 22 55 70 64 61 74 65  57 69 6e 64 6f 77 48 61  |("UpdateWindowHa|
0000ff90  6e 64 6c 65 3a 6e 65 77  20 68 61 6e 64 6c 65 3d  |ndle:new handle=|
0000ffa0  26 22 2b c3 7e 47 41 25  29 3a e7 47 41 25 3c 3e  |&"+.~GA%):.GA%<>|
0000ffb0  48 41 25 8c 0d 12 6a 1a  e7 5f 55 25 21 32 38 3d  |HA%...j.._U%!28=|
0000ffc0  48 41 25 8c 5f 55 25 21  32 38 3d 47 41 25 0d 12  |HA%._U%!28=GA%..|
0000ffd0  6b f0 f2 73 68 65 6c 6c  5f 46 69 78 45 76 65 6e  |k..shell_FixEven|
0000ffe0  74 42 6c 6f 63 6b 28 48  41 25 2c 47 41 25 2c 5f  |tBlock(HA%,GA%,_|
0000fff0  55 25 21 26 43 2c 34 38  29 3a f2 73 68 65 6c 6c  |U%!&C,48):.shell|
00010000  5f 46 69 78 45 76 65 6e  74 42 6c 6f 63 6b 28 48  |_FixEventBlock(H|
00010010  41 25 2c 47 41 25 2c 5f  55 25 21 39 36 2c 31 36  |A%,GA%,_U%!96,16|
00010020  29 3a f2 73 68 65 6c 6c  5f 46 69 78 45 76 65 6e  |):.shell_FixEven|
00010030  74 42 6c 6f 63 6b 28 48  41 25 2c 47 41 25 2c 5f  |tBlock(HA%,GA%,_|
00010040  55 25 21 37 32 2c 32 34  29 3a f2 73 68 65 6c 6c  |U%!72,24):.shell|
00010050  5f 46 69 78 45 76 65 6e  74 42 6c 6f 63 6b 28 48  |_FixEventBlock(H|
00010060  41 25 2c 47 41 25 2c 5f  55 25 21 39 32 2c 32 34  |A%,GA%,_U%!92,24|
00010070  29 3a f2 73 68 65 6c 6c  5f 46 69 78 45 76 65 6e  |):.shell_FixEven|
00010080  74 42 6c 6f 63 6b 28 48  41 25 2c 47 41 25 2c 5f  |tBlock(HA%,GA%,_|
00010090  55 25 21 26 36 38 2c 31  36 29 3a f2 73 68 65 6c  |U%!&68,16):.shel|
000100a0  6c 5f 55 70 64 61 74 65  53 74 61 74 69 63 57 69  |l_UpdateStaticWi|
000100b0  6e 64 6f 77 73 28 48 41  25 2c 47 41 25 29 0d 12  |ndows(HA%,GA%)..|
000100c0  71 07 cd 3a e1 0d 12 76  b3 dd f2 73 68 65 6c 6c  |q..:...v...shell|
000100d0  5f 55 70 64 61 74 65 53  74 61 74 69 63 57 69 6e  |_UpdateStaticWin|
000100e0  64 6f 77 73 28 48 41 25  2c 47 41 25 29 3a ea 64  |dows(HA%,GA%):.d|
000100f0  25 2c 4f 41 25 3a f2 73  68 65 6c 6c 5f 54 72 61  |%,OA%:.shell_Tra|
00010100  63 65 66 30 28 22 55 70  64 61 74 65 53 74 61 74  |cef0("UpdateStat|
00010110  69 63 57 69 6e 64 6f 77  73 3a 43 6f 72 72 65 63  |icWindows:Correc|
00010120  74 69 6e 67 20 73 74 61  74 69 63 20 77 69 6e 64  |ting static wind|
00010130  6f 77 20 6c 69 73 74 2e  2e 22 29 3a 4f 41 25 3d  |ow list.."):OA%=|
00010140  5f 55 25 21 26 42 38 3a  64 25 3d a4 73 68 65 6c  |_U%!&B8:d%=.shel|
00010150  6c 5f 53 65 61 72 63 68  53 74 61 74 69 63 28 5f  |l_SearchStatic(_|
00010160  55 25 21 26 42 38 2c 48  41 25 29 3a 4f 41 25 21  |U%!&B8,HA%):OA%!|
00010170  64 25 3d 47 41 25 3a e1  0d 12 82 4c dd f2 73 68  |d%=GA%:....L..sh|
00010180  65 6c 6c 5f 46 69 78 45  76 65 6e 74 42 6c 6f 63  |ell_FixEventBloc|
00010190  6b 28 48 41 25 2c 47 41  25 2c 68 25 2c 64 25 29  |k(HA%,GA%,h%,d%)|
000101a0  3a ea 66 25 2c 6f 25 3a  e7 a4 73 68 65 6c 6c 5f  |:.f%,o%:..shell_|
000101b0  48 65 61 70 42 6c 6f 63  6b 45 78 69 73 74 73 28  |HeapBlockExists(|
000101c0  68 25 29 8c 0d 12 85 31  6f 25 3d a4 73 68 65 6c  |h%)....1o%=.shel|
000101d0  6c 5f 48 65 61 70 42 6c  6f 63 6b 49 6e 66 6f 28  |l_HeapBlockInfo(|
000101e0  68 25 29 2d 38 3a f5 3a  e7 28 68 25 21 66 25 3d  |h%)-8:.:.(h%!f%=|
000101f0  48 41 25 29 8c 0d 12 88  0d 68 25 21 66 25 3d 47  |HA%).....h%!f%=G|
00010200  41 25 0d 12 89 16 cd 3a  66 25 2b 3d 64 25 3a fd  |A%.....:f%+=d%:.|
00010210  28 66 25 3e 3d 6f 25 29  0d 12 8c 07 cd 3a e1 0d  |(f%>=o%).....:..|
00010220  12 91 ca dd f2 73 68 65  6c 6c 5f 49 63 6f 6e 53  |.....shell_IconS|
00010230  65 6c 65 63 74 41 6c 6c  28 63 25 29 3a ea 61 25  |electAll(c%):.a%|
00010240  2c 49 25 3a 61 25 3d a4  73 68 65 6c 6c 5f 48 65  |,I%:a%=.shell_He|
00010250  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 26 37 44  |apBlockFetch(&7D|
00010260  30 29 3a 49 25 3d 61 25  2b 36 34 3a 21 61 25 3d  |0):I%=a%+64:!a%=|
00010270  63 25 3a 61 25 21 38 3d  31 3c 3c 32 31 3a 61 25  |c%:a%!8=1<<21:a%|
00010280  21 26 43 3d 31 3c 3c 32  31 3a c8 99 26 34 30 30  |!&C=1<<21:..&400|
00010290  44 36 2c 21 61 25 2c 49  25 2c 35 3c 3c 32 31 2c  |D6,!a%,I%,5<<21,|
000102a0  30 3c 3c 32 31 3a c8 95  21 49 25 3e 2d 31 3a 61  |0<<21:..!I%>-1:a|
000102b0  25 21 34 3d 21 49 25 3a  c8 99 26 34 30 30 43 44  |%!4=!I%:..&400CD|
000102c0  2c 2c 61 25 3a 49 25 2b  3d 34 3a ce 3a f2 73 68  |,,a%:I%+=4:.:.sh|
000102d0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
000102e0  75 72 6e 28 61 25 29 3a  e1 0d 12 a1 c8 dd f2 73  |urn(a%):.......s|
000102f0  68 65 6c 6c 5f 49 63 6f  6e 44 65 73 65 6c 65 63  |hell_IconDeselec|
00010300  74 41 6c 6c 28 63 25 29  3a ea 61 25 2c 49 25 3a  |tAll(c%):.a%,I%:|
00010310  61 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |a%=.shell_HeapBl|
00010320  6f 63 6b 46 65 74 63 68  28 26 37 44 30 29 3a 49  |ockFetch(&7D0):I|
00010330  25 3d 61 25 2b 36 34 3a  21 61 25 3d 63 25 3a 61  |%=a%+64:!a%=c%:a|
00010340  25 21 38 3d 30 3a 61 25  21 26 43 3d 31 3c 3c 32  |%!8=0:a%!&C=1<<2|
00010350  31 3a c8 99 26 34 30 30  44 36 2c 21 61 25 2c 49  |1:..&400D6,!a%,I|
00010360  25 2c 35 3c 3c 32 31 2c  31 3c 3c 32 31 3a c8 95  |%,5<<21,1<<21:..|
00010370  21 49 25 3e 2d 31 3a 61  25 21 34 3d 21 49 25 3a  |!I%>-1:a%!4=!I%:|
00010380  c8 99 26 34 30 30 43 44  2c 2c 61 25 3a 49 25 2b  |..&400CD,,a%:I%+|
00010390  3d 34 3a ce 3a f2 73 68  65 6c 6c 5f 48 65 61 70  |=4:.:.shell_Heap|
000103a0  42 6c 6f 63 6b 52 65 74  75 72 6e 28 61 25 29 3a  |BlockReturn(a%):|
000103b0  e1 0d 12 b1 5c dd f2 73  68 65 6c 6c 5f 4d 65 73  |....\..shell_Mes|
000103c0  73 61 67 65 5f 53 61 76  65 44 65 73 6b 74 6f 70  |sage_SaveDesktop|
000103d0  28 51 25 29 3a ea 7a 24  3a 7a 24 3d 22 52 75 6e  |(Q%):.z$:z$="Run|
000103e0  20 22 2b a4 73 68 65 6c  6c 5f 47 65 74 41 70 70  | "+.shell_GetApp|
000103f0  44 69 72 2b bd 26 41 3a  c8 99 26 43 2c 32 2c 51  |Dir+.&A:..&C,2,Q|
00010400  25 21 32 30 2c 7a 24 2c  a9 7a 24 3a e1 0d 12 ba  |%!20,z$,.z$:....|
00010410  5e dd f2 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |^..shell_Message|
00010420  73 49 6e 69 74 28 4c 24  2c f8 4f 43 25 2c f8 61  |sInit(L$,.OC%,.a|
00010430  44 25 29 3a ea 79 41 25  2c 6c 25 3a ea 85 3a ee  |D%):.yA%,l%:..:.|
00010440  85 ea f7 85 3a 85 33 2c  22 43 61 6e 6e 6f 74 20  |....:.3,"Cannot |
00010450  6f 70 65 6e 20 6d 65 73  73 61 67 65 20 66 69 6c  |open message fil|
00010460  65 20 27 22 2b 4c 24 2b  22 27 22 0d 12 be 43 c8  |e '"+L$+"'"...C.|
00010470  99 26 34 31 35 30 30 2c  2c 4c 24 b8 6c 25 2c 2c  |.&41500,,L$.l%,,|
00010480  79 41 25 3a e7 6c 25 80  31 8c 61 44 25 3d 30 8b  |yA%:.l%.1.aD%=0.|
00010490  61 44 25 3d a4 73 68 65  6c 6c 5f 48 65 61 70 42  |aD%=.shell_HeapB|
000104a0  6c 6f 63 6b 46 65 74 63  68 28 79 41 25 29 0d 12  |lockFetch(yA%)..|
000104b0  c0 83 c8 99 33 30 2c 36  2c 2c 2c 31 37 2b a9 28  |....30,6,,,17+.(|
000104c0  4c 24 29 b8 2c 2c 4f 43  25 3a 24 28 4f 43 25 2b  |L$).,,OC%:$(OC%+|
000104d0  31 36 29 3d 4c 24 3a c8  99 26 34 31 35 30 31 2c  |16)=L$:..&41501,|
000104e0  4f 43 25 2c 4f 43 25 2b  31 36 3a f2 73 68 65 6c  |OC%,OC%+16:.shel|
000104f0  6c 5f 54 72 61 63 65 66  30 28 22 4d 65 73 73 61  |l_Tracef0("Messa|
00010500  67 65 73 49 6e 69 74 3a  4d 65 73 73 61 67 65 20  |gesInit:Message |
00010510  72 65 73 6f 75 72 63 65  20 66 69 6c 65 20 27 22  |resource file '"|
00010520  2b 4c 24 2b 22 27 20 6c  6f 61 64 65 64 22 29 3a  |+L$+"' loaded"):|
00010530  e1 0d 12 ca 60 dd a4 73  68 65 6c 6c 5f 50 72 69  |....`..shell_Pri|
00010540  6e 74 65 72 4f 6e 4c 69  6e 65 3a ea 62 44 25 2c  |nterOnLine:.bD%,|
00010550  63 44 25 3a 62 44 25 3d  96 28 2d 34 29 3a ef 32  |cD%:bD%=.(-4):.2|
00010560  2c 31 2c 30 2c 31 2c 30  2c 31 2c 30 3a d1 3d 30  |,1,0,1,0,1,0:.=0|
00010570  3a f5 3a fd 91 3e 33 30  3a 63 44 25 3d ac 28 96  |:.:..>30:cD%=.(.|
00010580  28 2d 34 29 3c 62 44 25  29 3a 2a 46 58 32 31 2c  |(-4)<bD%):*FX21,|
00010590  33 0d 12 d1 0b ef 33 3a  3d 63 44 25 0d 12 d6 fc  |3.....3:=cD%....|
000105a0  dd f2 73 68 65 6c 6c 5f  41 74 74 61 63 68 42 75  |..shell_AttachBu|
000105b0  6d 70 48 61 6e 64 6c 65  72 28 63 25 2c 65 25 2c  |mpHandler(c%,e%,|
000105c0  64 44 25 2c 65 44 25 2c  54 45 25 2c 55 45 25 2c  |dD%,eD%,TE%,UE%,|
000105d0  66 44 25 2c 56 45 25 2c  5f 24 2c 41 41 24 29 3a  |fD%,VE%,_$,AA$):|
000105e0  ea 50 41 25 2c 64 25 2c  62 25 2c 75 25 2c 57 41  |.PA%,d%,b%,u%,WA|
000105f0  25 3a 64 25 3d a4 73 68  65 6c 6c 5f 47 65 74 45  |%:d%=.shell_GetE|
00010600  76 65 6e 74 4c 69 73 74  4f 66 66 73 65 74 28 63  |ventListOffset(c|
00010610  25 2c 64 44 25 2c 5f 55  25 2b 26 36 38 2c 31 36  |%,dD%,_U%+&68,16|
00010620  2c b9 29 3a 50 41 25 3d  5f 55 25 21 26 36 38 2b  |,.):PA%=_U%!&68+|
00010630  64 25 3a 50 41 25 21 30  3d 63 25 3a 50 41 25 21  |d%:PA%!0=c%:PA%!|
00010640  34 3d 64 44 25 3a 50 41  25 21 38 3d 66 44 25 3a  |4=dD%:PA%!8=fD%:|
00010650  50 41 25 21 26 43 3d a4  73 68 65 6c 6c 5f 48 65  |PA%!&C=.shell_He|
00010660  61 70 42 6c 6f 63 6b 46  65 74 63 68 28 32 34 29  |apBlockFetch(24)|
00010670  3a 57 41 25 3d 50 41 25  21 26 43 3a 57 41 25 21  |:WA%=PA%!&C:WA%!|
00010680  30 3d 65 25 3a 57 41 25  21 34 3d 54 45 25 3a 57  |0=e%:WA%!4=TE%:W|
00010690  41 25 21 38 3d 55 45 25  0d 12 f3 0b e7 a9 5f 24  |A%!8=UE%......_$|
000106a0  3e 30 8c 0d 12 f4 3a 57  41 25 21 26 43 3d a4 73  |>0....:WA%!&C=.s|
000106b0  68 65 6c 6c 5f 48 65 61  70 42 6c 6f 63 6b 46 65  |hell_HeapBlockFe|
000106c0  74 63 68 28 28 a9 5f 24  29 2b 31 29 3a 75 25 3d  |tch((._$)+1):u%=|
000106d0  57 41 25 21 26 43 3a 24  75 25 3d 5f 24 0d 12 f6  |WA%!&C:$u%=_$...|
000106e0  0d cc 57 41 25 21 26 43  3d 30 0d 12 f8 0e cd 3a  |..WA%!&C=0.....:|
000106f0  e7 a9 41 41 24 3e 30 8c  0d 12 fa 3c 57 41 25 21  |..AA$>0....<WA%!|
00010700  31 36 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |16=.shell_HeapBl|
00010710  6f 63 6b 46 65 74 63 68  28 28 a9 41 41 24 29 2b  |ockFetch((.AA$)+|
00010720  31 29 3a 75 25 3d 57 41  25 21 31 36 3a 24 75 25  |1):u%=WA%!16:$u%|
00010730  3d 41 41 24 0d 12 fc 0d  cc 57 41 25 21 31 36 3d  |=AA$.....WA%!16=|
00010740  30 0d 12 fe 1f cd 3a e7  56 45 25 3d 2d 31 8c 57  |0.....:.VE%=-1.W|
00010750  41 25 21 32 30 3d 31 8b  57 41 25 21 32 30 3d 30  |A%!20=1.WA%!20=0|
00010760  0d 13 01 73 64 25 3d a4  73 68 65 6c 6c 5f 47 65  |...sd%=.shell_Ge|
00010770  74 45 76 65 6e 74 4c 69  73 74 4f 66 66 73 65 74  |tEventListOffset|
00010780  28 63 25 2c 65 44 25 2c  5f 55 25 2b 26 36 38 2c  |(c%,eD%,_U%+&68,|
00010790  31 36 2c b9 29 3a 50 41  25 3d 5f 55 25 21 26 36  |16,.):PA%=_U%!&6|
000107a0  38 2b 64 25 3a 50 41 25  21 30 3d 63 25 3a 50 41  |8+d%:PA%!0=c%:PA|
000107b0  25 21 34 3d 65 44 25 3a  50 41 25 21 38 3d 66 44  |%!4=eD%:PA%!8=fD|
000107c0  25 2a 28 2d 31 29 3a 50  41 25 21 26 43 3d 57 41  |%*(-1):PA%!&C=WA|
000107d0  25 3a e1 0d 13 0c 99 dd  f2 73 68 65 6c 6c 5f 48  |%:.......shell_H|
000107e0  61 6e 64 6c 65 42 75 6d  70 49 63 6f 6e 73 28 64  |andleBumpIcons(d|
000107f0  25 2c 63 25 2c 65 25 29  3a ea 6a 45 25 2c 41 41  |%,c%,e%):.jE%,AA|
00010800  25 2c 50 41 25 2c 50 43  25 2c 5f 74 65 6d 70 24  |%,PA%,PC%,_temp$|
00010810  2c 76 43 25 3a ea 6d 45  25 2c 4d 42 25 3a 50 41  |,vC%:.mE%,MB%:PA|
00010820  25 3d 5f 55 25 21 26 36  38 2b 64 25 3a 5f 55 25  |%=_U%!&68+d%:_U%|
00010830  21 32 38 38 3d 63 25 3a  5f 55 25 21 32 39 32 3d  |!288=c%:_U%!292=|
00010840  65 25 3a 5f 55 25 21 32  39 36 3d 64 25 3a 41 41  |e%:_U%!296=d%:AA|
00010850  25 3d 50 41 25 21 26 43  3a 76 43 25 3d 41 41 25  |%=PA%!&C:vC%=AA%|
00010860  21 31 36 3a e7 76 43 25  3c 3e 30 8c 0d 13 19 43  |!16:.vC%<>0....C|
00010870  5f 74 65 6d 70 24 3d a4  73 68 65 6c 6c 5f 49 63  |_temp$=.shell_Ic|
00010880  6f 6e 47 65 74 44 61 74  61 28 63 25 2c 41 41 25  |onGetData(c%,AA%|
00010890  21 30 29 3a 50 43 25 3d  a0 28 22 46 4e 22 2b 24  |!0):PC%=.("FN"+$|
000108a0  76 43 25 2b 22 28 5f 74  65 6d 70 24 29 22 29 0d  |vC%+"(_temp$)").|
000108b0  13 1b 28 cc 50 43 25 3d  bb 28 a4 73 68 65 6c 6c  |..(.PC%=.(.shell|
000108c0  5f 49 63 6f 6e 47 65 74  44 61 74 61 28 63 25 2c  |_IconGetData(c%,|
000108d0  41 41 25 21 30 29 29 0d  13 1d 24 cd 3a 5f 6e 65  |AA%!0))...$.:_ne|
000108e0  77 5f 76 61 6c 25 3d 50  43 25 2b 50 41 25 21 38  |w_val%=PC%+PA%!8|
000108f0  3a e7 41 41 25 21 32 30  3d 30 8c 0d 13 21 24 e7  |:.AA%!20=0...!$.|
00010900  5f 6e 65 77 5f 76 61 6c  25 3e 41 41 25 21 38 8c  |_new_val%>AA%!8.|
00010910  5f 6e 65 77 5f 76 61 6c  25 3d 41 41 25 21 38 0d  |_new_val%=AA%!8.|
00010920  13 22 24 e7 5f 6e 65 77  5f 76 61 6c 25 3c 41 41  |."$._new_val%<AA|
00010930  25 21 34 8c 5f 6e 65 77  5f 76 61 6c 25 3d 41 41  |%!4._new_val%=AA|
00010940  25 21 34 0d 13 23 25 cc  e7 5f 6e 65 77 5f 76 61  |%!4..#%.._new_va|
00010950  6c 25 3e 41 41 25 21 38  8c 5f 6e 65 77 5f 76 61  |l%>AA%!8._new_va|
00010960  6c 25 3d 41 41 25 21 34  0d 13 26 24 e7 5f 6e 65  |l%=AA%!4..&$._ne|
00010970  77 5f 76 61 6c 25 3c 41  41 25 21 34 8c 5f 6e 65  |w_val%<AA%!4._ne|
00010980  77 5f 76 61 6c 25 3d 41  41 25 21 38 0d 13 27 19  |w_val%=AA%!8..'.|
00010990  cd 3a 4d 42 25 3d 41 41  25 21 26 43 3a e7 4d 42  |.:MB%=AA%!&C:.MB|
000109a0  25 3c 3e 30 8c 0d 13 2a  28 5f 6e 65 77 5f 76 61  |%<>0...*(_new_va|
000109b0  6c 24 3d a0 28 22 46 4e  22 2b 24 4d 42 25 2b 22  |l$=.("FN"+$MB%+"|
000109c0  28 5f 6e 65 77 5f 76 61  6c 25 29 22 29 0d 13 2b  |(_new_val%)")..+|
000109d0  19 cc 5f 6e 65 77 5f 76  61 6c 24 3d c3 5f 6e 65  |.._new_val$=._ne|
000109e0  77 5f 76 61 6c 25 0d 13  2d 16 cd 3a e7 5f 6e 65  |w_val%..-..:._ne|
000109f0  77 5f 76 61 6c 25 3c 3e  50 43 25 8c 0d 13 2f 2d  |w_val%<>PC%.../-|
00010a00  f2 73 68 65 6c 6c 5f 49  63 6f 6e 50 75 74 44 61  |.shell_IconPutDa|
00010a10  74 61 28 63 25 2c 41 41  25 21 30 2c 5f 6e 65 77  |ta(c%,AA%!0,_new|
00010a20  5f 76 61 6c 24 2c 2d 31  29 0d 13 30 07 cd 3a e1  |_val$,-1)..0..:.|
00010a30  0d 13 36 b7 dd a4 73 68  65 6c 6c 5f 57 69 6e 64  |..6...shell_Wind|
00010a40  6f 77 53 65 74 53 70 72  69 74 65 41 72 65 61 28  |owSetSpriteArea(|
00010a50  7a 25 2c 5a 45 25 29 3a  ea 61 25 2c 47 41 25 3a  |z%,ZE%):.a%,GA%:|
00010a60  61 25 3d a4 73 68 65 6c  6c 5f 48 65 61 70 42 6c  |a%=.shell_HeapBl|
00010a70  6f 63 6b 46 65 74 63 68  28 36 30 30 30 29 3a 21  |ockFetch(6000):!|
00010a80  61 25 3d 7a 25 3a c8 99  26 34 30 30 43 43 2c 2c  |a%=z%:..&400CC,,|
00010a90  61 25 3a 61 25 21 36 38  3d 5a 45 25 3a c8 99 26  |a%:a%!68=ZE%:..&|
00010aa0  34 30 30 43 33 2c 2c 61  25 3a c8 99 26 34 30 30  |400C3,,a%:..&400|
00010ab0  43 31 2c 2c 61 25 2b 34  b8 47 41 25 3a e7 47 41  |C1,,a%+4.GA%:.GA|
00010ac0  25 3c 3e 7a 25 8c f2 73  68 65 6c 6c 5f 55 70 64  |%<>z%..shell_Upd|
00010ad0  61 74 65 57 69 6e 64 6f  77 48 61 6e 64 6c 65 28  |ateWindowHandle(|
00010ae0  7a 25 2c 47 41 25 29 0d  13 3f 23 f2 73 68 65 6c  |z%,GA%)..?#.shel|
00010af0  6c 5f 48 65 61 70 42 6c  6f 63 6b 52 65 74 75 72  |l_HeapBlockRetur|
00010b00  6e 28 61 25 29 3a 3d 47  41 25 0d 13 45 96 dd a4  |n(a%):=GA%..E...|
00010b10  73 68 65 6c 6c 5f 53 74  72 6f 6e 67 48 6c 70 49  |shell_StrongHlpI|
00010b20  73 41 76 61 69 6c 61 62  6c 65 3a ea 72 41 25 2c  |sAvailable:.rA%,|
00010b30  43 42 25 3a 43 42 25 3d  a4 73 68 65 6c 6c 5f 48  |CB%:CB%=.shell_H|
00010b40  65 61 70 42 6c 6f 63 6b  46 65 74 63 68 28 32 35  |eapBlockFetch(25|
00010b50  36 29 3a 72 41 25 3d a4  73 68 65 6c 6c 5f 4f 53  |6):rA%=.shell_OS|
00010b60  56 61 72 45 78 69 73 74  73 28 43 42 25 2c 22 53  |VarExists(CB%,"S|
00010b70  74 72 6f 6e 67 48 65 6c  70 24 44 69 72 22 29 3a  |trongHelp$Dir"):|
00010b80  f2 73 68 65 6c 6c 5f 48  65 61 70 42 6c 6f 63 6b  |.shell_HeapBlock|
00010b90  52 65 74 75 72 6e 28 43  42 25 29 3a 3d 72 41 25  |Return(CB%):=rA%|
00010ba0  0d 13 4e 2f dd a4 73 68  65 6c 6c 5f 4d 65 6e 75  |..N/..shell_Menu|
00010bb0  4e 65 77 28 51 24 29 3a  ea 6b 25 3a c8 99 26 34  |New(Q$):.k%:..&4|
00010bc0  35 42 43 31 2c 2c 51 24  b8 6b 25 3a 3d 6b 25 0d  |5BC1,,Q$.k%:=k%.|
00010bd0  13 56 2c dd a4 73 68 65  6c 6c 5f 4d 65 6e 75 41  |.V,..shell_MenuA|
00010be0  64 64 28 6b 25 2c 4a 41  24 2c 44 24 29 3a ea 77  |dd(k%,JA$,D$):.w|
00010bf0  43 25 3a e7 44 24 3c 3e  22 22 8c 0d 13 59 1a c8  |C%:.D$<>""...Y..|
00010c00  99 26 34 35 42 43 32 2c  6b 25 2c 4a 41 24 2c 44  |.&45BC2,k%,JA$,D|
00010c10  24 b8 77 43 25 0d 13 5a  18 cc c8 99 26 34 35 42  |$.wC%..Z....&45B|
00010c20  43 32 2c 6b 25 2c 4a 41  24 b8 77 43 25 0d 13 5c  |C2,k%,JA$.wC%..\|
00010c30  0a cd 3a 3d 77 43 25 0d  13 62 30 dd f2 73 68 65  |..:=wC%..b0..she|
00010c40  6c 6c 5f 4d 65 6e 75 54  69 63 6b 28 55 41 25 2c  |ll_MenuTick(UA%,|
00010c50  4d 41 25 29 3a c8 99 26  34 35 42 43 39 2c 55 41  |MA%):..&45BC9,UA|
00010c60  25 2c 4d 41 25 3a e1 0d  13 69 35 dd f2 73 68 65  |%,MA%:...i5..she|
00010c70  6c 6c 5f 4d 65 6e 75 54  69 63 6b 4f 6e 6c 79 31  |ll_MenuTickOnly1|
00010c80  28 61 45 25 2c 43 41 25  29 3a c8 99 26 34 35 42  |(aE%,CA%):..&45B|
00010c90  44 31 2c 61 45 25 2c 43  41 25 3a e1 0d 13 70 2d  |D1,aE%,CA%:...p-|
00010ca0  dd f2 73 68 65 6c 6c 5f  4d 65 6e 75 54 69 63 6b  |..shell_MenuTick|
00010cb0  4f 6e 6c 79 32 28 55 41  25 29 3a c8 99 26 34 35  |Only2(UA%):..&45|
00010cc0  42 44 31 2c 55 41 25 3a  e1 0d 13 77 2f dd f2 73  |BD1,UA%:...w/..s|
00010cd0  68 65 6c 6c 5f 4d 65 6e  75 53 68 61 64 65 28 6b  |hell_MenuShade(k|
00010ce0  25 2c 4d 41 25 29 3a c8  99 26 34 35 42 43 42 2c  |%,MA%):..&45BCB,|
00010cf0  6b 25 2c 4d 41 25 3a e1  0d 13 7e 32 dd f2 73 68  |k%,MA%:...~2..sh|
00010d00  65 6c 6c 5f 4d 65 6e 75  44 6f 74 74 65 64 28 55  |ell_MenuDotted(U|
00010d10  41 25 2c 4d 41 25 29 3a  c8 99 26 34 35 42 43 41  |A%,MA%):..&45BCA|
00010d20  2c 55 41 25 2c 4d 41 25  3a e1 0d 13 85 3b dd f2  |,UA%,MA%:....;..|
00010d30  73 68 65 6c 6c 5f 4d 65  6e 75 43 6f 6c 6f 75 72  |shell_MenuColour|
00010d40  73 28 55 41 25 2c 61 43  25 2c 62 43 25 29 3a c8  |s(UA%,aC%,bC%):.|
00010d50  99 26 34 35 42 44 30 2c  55 41 25 2c 61 43 25 2c  |.&45BD0,UA%,aC%,|
00010d60  62 43 25 3a e1 0d 13 8c  42 dd f2 73 68 65 6c 6c  |bC%:....B..shell|
00010d70  5f 4d 65 6e 75 57 72 69  74 61 62 6c 65 28 55 41  |_MenuWritable(UA|
00010d80  25 2c 4d 41 25 2c 79 41  25 2c 6d 24 29 3a c8 99  |%,MA%,yA%,m$):..|
00010d90  26 34 35 42 43 44 2c 55  41 25 2c 4d 41 25 2c 79  |&45BCD,UA%,MA%,y|
00010da0  41 25 2c 6d 24 3a e1 0d  13 93 31 dd f2 73 68 65  |A%,m$:....1..she|
00010db0  6c 6c 5f 4d 65 6e 75 50  75 74 44 61 74 61 28 55  |ll_MenuPutData(U|
00010dc0  41 25 2c 53 24 29 3a c8  99 26 34 35 42 43 38 2c  |A%,S$):..&45BC8,|
00010dd0  55 41 25 2c 53 24 3a e1  0d 13 9a 33 dd f2 73 68  |UA%,S$:....3..sh|
00010de0  65 6c 6c 5f 4d 65 6e 75  43 61 6c 6c 48 61 6e 64  |ell_MenuCallHand|
00010df0  6c 65 72 28 7a 25 2c 5f  68 5f 62 6c 6b 25 29 3a  |ler(z%,_h_blk%):|
00010e00  ea 85 3a ee 85 ea 3a f7  85 3a e1 0d 13 9d 1c e7  |..:...:..:......|
00010e10  a0 28 22 46 4e 22 2b 24  7a 25 2b 22 28 5f 68 5f  |.("FN"+$z%+"(_h_|
00010e20  62 6c 6b 25 29 22 29 0d  13 9e 05 e1 0d 13 a3 ad  |blk%)").........|
00010e30  dd f2 73 68 65 6c 6c 5f  41 74 74 61 63 68 4f 70  |..shell_AttachOp|
00010e40  65 6e 57 69 6e 64 6f 77  28 63 25 2c 41 24 29 3a  |enWindow(c%,A$):|
00010e50  ea 61 25 2c 62 25 2c 64  25 3a f2 73 68 65 6c 6c  |.a%,b%,d%:.shell|
00010e60  5f 54 72 61 63 65 66 30  28 22 41 74 74 61 63 68  |_Tracef0("Attach|
00010e70  4f 70 65 6e 57 69 6e 64  6f 77 3a 41 74 74 61 63  |OpenWindow:Attac|
00010e80  68 69 6e 67 20 4f 70 65  6e 57 69 6e 64 6f 77 20  |hing OpenWindow |
00010e90  48 61 6e 64 6c 65 72 22  29 3a e7 63 25 3c 30 8c  |Handler"):.c%<0.|
00010ea0  85 39 39 2c f2 73 68 65  6c 6c 5f 4d 65 73 73 61  |.99,.shell_Messa|
00010eb0  67 65 4f 6e 65 41 72 67  28 22 53 48 45 4c 4c 4d  |geOneArg("SHELLM|
00010ec0  53 47 32 37 22 2c 22 41  74 74 61 63 68 4f 70 65  |SG27","AttachOpe|
00010ed0  6e 57 69 6e 64 6f 77 22  29 0d 13 a9 87 64 25 3d  |nWindow")....d%=|
00010ee0  a4 73 68 65 6c 6c 5f 47  65 74 45 76 65 6e 74 4c  |.shell_GetEventL|
00010ef0  69 73 74 4f 66 66 73 65  74 28 63 25 2c 2d 31 2c  |istOffset(c%,-1,|
00010f00  5f 55 25 2b 33 30 34 2c  26 43 2c b9 29 3a 61 25  |_U%+304,&C,.):a%|
00010f10  3d 5f 55 25 21 33 30 34  2b 64 25 3a 61 25 21 30  |=_U%!304+d%:a%!0|
00010f20  3d 63 25 3a 61 25 21 34  3d 2d 31 3a 61 25 21 38  |=c%:a%!4=-1:a%!8|
00010f30  3d a4 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |=.shell_HeapBloc|
00010f40  6b 46 65 74 63 68 28 a9  28 41 24 29 2b 31 29 3a  |kFetch(.(A$)+1):|
00010f50  62 25 3d 61 25 21 38 3a  24 62 25 3d 41 24 3a e1  |b%=a%!8:$b%=A$:.|
00010f60  0d 13 b3 b1 dd f2 73 68  65 6c 6c 5f 41 74 74 61  |......shell_Atta|
00010f70  63 68 43 6c 6f 73 65 57  69 6e 64 6f 77 28 63 25  |chCloseWindow(c%|
00010f80  2c 41 24 29 3a ea 61 25  2c 62 25 2c 64 25 3a f2  |,A$):.a%,b%,d%:.|
00010f90  73 68 65 6c 6c 5f 54 72  61 63 65 66 30 28 22 41  |shell_Tracef0("A|
00010fa0  74 74 61 63 68 43 6c 6f  73 65 57 69 6e 64 6f 77  |ttachCloseWindow|
00010fb0  3a 41 74 74 61 63 68 69  6e 67 20 43 6c 6f 73 65  |:Attaching Close|
00010fc0  57 69 6e 64 6f 77 20 48  61 6e 64 6c 65 72 22 29  |Window Handler")|
00010fd0  3a e7 63 25 3c 30 8c 85  39 39 2c f2 73 68 65 6c  |:.c%<0..99,.shel|
00010fe0  6c 5f 4d 65 73 73 61 67  65 4f 6e 65 41 72 67 28  |l_MessageOneArg(|
00010ff0  22 53 48 45 4c 4c 4d 53  47 32 37 22 2c 22 41 74  |"SHELLMSG27","At|
00011000  74 61 63 68 43 6c 6f 73  65 57 69 6e 64 6f 77 22  |tachCloseWindow"|
00011010  29 0d 13 b9 87 64 25 3d  a4 73 68 65 6c 6c 5f 47  |)....d%=.shell_G|
00011020  65 74 45 76 65 6e 74 4c  69 73 74 4f 66 66 73 65  |etEventListOffse|
00011030  74 28 63 25 2c 2d 31 2c  5f 55 25 2b 33 30 38 2c  |t(c%,-1,_U%+308,|
00011040  26 43 2c b9 29 3a 61 25  3d 5f 55 25 21 33 30 38  |&C,.):a%=_U%!308|
00011050  2b 64 25 3a 61 25 21 30  3d 63 25 3a 61 25 21 34  |+d%:a%!0=c%:a%!4|
00011060  3d 2d 31 3a 61 25 21 38  3d a4 73 68 65 6c 6c 5f  |=-1:a%!8=.shell_|
00011070  48 65 61 70 42 6c 6f 63  6b 46 65 74 63 68 28 a9  |HeapBlockFetch(.|
00011080  28 41 24 29 2b 31 29 3a  62 25 3d 61 25 21 38 3a  |(A$)+1):b%=a%!8:|
00011090  24 62 25 3d 41 24 3a e1  0d 13 c3 58 dd f2 73 68  |$b%=A$:....X..sh|
000110a0  65 6c 6c 5f 53 70 72 69  74 65 52 65 6e 61 6d 65  |ell_SpriteRename|
000110b0  28 61 42 25 2c 53 41 24  2c 54 41 24 29 3a c8 99  |(aB%,SA$,TA$):..|
000110c0  34 36 2c 35 31 32 2b 32  36 2c 61 42 25 2c a4 73  |46,512+26,aB%,.s|
000110d0  68 65 6c 6c 5f 53 70 72  69 74 65 47 65 74 50 74  |hell_SpriteGetPt|
000110e0  72 28 61 42 25 2c 53 41  24 29 2c 54 41 24 3a e1  |r(aB%,SA$),TA$:.|
000110f0  0d 13 ca 37 dd f2 73 68  65 6c 6c 5f 53 70 72 69  |...7..shell_Spri|
00011100  74 65 41 72 65 61 53 61  76 65 28 61 42 25 2c 4c  |teAreaSave(aB%,L|
00011110  24 29 3a c8 99 34 36 2c  35 31 32 2b 26 43 2c 61  |$):..46,512+&C,a|
00011120  42 25 2c 4c 24 3a e1 0d  13 d1 52 dd f2 73 68 65  |B%,L$:....R..she|
00011130  6c 6c 5f 45 6e 73 75 72  65 50 6f 6c 6c 3a ea 76  |ll_EnsurePoll:.v|
00011140  25 3a f5 3a 76 25 3d a4  73 68 65 6c 6c 5f 50 6f  |%:.:v%=.shell_Po|
00011150  6c 6c 5f 49 28 30 2c 5f  55 25 21 26 39 34 29 3a  |ll_I(0,_U%!&94):|
00011160  f2 73 68 65 6c 6c 5f 41  63 74 69 6f 6e 28 76 25  |.shell_Action(v%|
00011170  29 3a fd 76 25 3d 30 3a  e1 0d 13 dc 23 dd a4 73  |):.v%=0:....#..s|
00011180  68 65 6c 6c 5f 57 69 6d  70 47 65 74 56 65 72 73  |hell_WimpGetVers|
00011190  69 6f 6e 3a 3d 5f 55 25  21 33 31 36 0d 13 e1 51  |ion:=_U%!316...Q|
000111a0  dd a4 73 68 65 6c 6c 5f  4f 53 43 68 65 63 6b 56  |..shell_OSCheckV|
000111b0  65 72 73 69 6f 6e 28 78  43 25 29 3a 3d a4 73 68  |ersion(xC%):=.sh|
000111c0  65 6c 6c 5f 4f 53 4d 6f  64 75 6c 65 43 68 65 63  |ell_OSModuleChec|
000111d0  6b 56 65 72 73 69 6f 6e  28 22 55 74 69 6c 69 74  |kVersion("Utilit|
000111e0  79 4d 6f 64 75 6c 65 22  2c 78 43 25 29 0d 13 e6  |yModule",xC%)...|
000111f0  ec dd a4 73 68 65 6c 6c  5f 4f 53 4d 6f 64 75 6c  |...shell_OSModul|
00011200  65 43 68 65 63 6b 56 65  72 73 69 6f 6e 28 55 41  |eCheckVersion(UA|
00011210  24 2c 78 43 25 29 3a ea  61 25 2c 42 43 25 3a 61  |$,xC%):.a%,BC%:a|
00011220  25 3d a4 73 68 65 6c 6c  5f 48 65 61 70 42 6c 6f  |%=.shell_HeapBlo|
00011230  63 6b 46 65 74 63 68 28  32 35 36 29 3a ff 28 22  |ckFetch(256):.("|
00011240  53 65 74 20 41 70 70 4e  61 6d 65 24 52 49 53 43  |Set AppName$RISC|
00011250  4f 53 20 59 22 29 3a ff  28 22 52 4d 45 6e 73 75  |OS Y"):.("RMEnsu|
00011260  72 65 20 22 2b 55 41 24  2b 22 20 22 2b c3 78 43  |re "+UA$+" "+.xC|
00011270  25 2b 22 20 53 65 74 20  41 70 70 4e 61 6d 65 24  |%+" Set AppName$|
00011280  52 49 53 43 4f 53 20 4e  22 29 3a c8 99 26 32 30  |RISCOS N"):..&20|
00011290  30 32 33 2c 22 41 70 70  4e 61 6d 65 24 52 49 53  |023,"AppName$RIS|
000112a0  43 4f 53 22 2c 61 25 2c  32 35 36 2c 30 2c 30 b8  |COS",a%,256,0,0.|
000112b0  2c 2c 42 43 25 3a 61 25  3f 42 43 25 3d 26 44 3a  |,,BC%:a%?BC%=&D:|
000112c0  ff 28 22 55 6e 73 65 74  20 41 70 70 4e 61 6d 65  |.("Unset AppName|
000112d0  24 52 49 53 43 4f 53 22  29 0d 13 ee 2a f2 73 68  |$RISCOS")...*.sh|
000112e0  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 52 65 74  |ell_HeapBlockRet|
000112f0  75 72 6e 28 61 25 29 3a  e7 24 61 25 3d 22 4e 22  |urn(a%):.$a%="N"|
00011300  8c 3d a3 0d 13 f0 06 3d  b9 0d ff                 |.=.....=...|
0001130b