>EvntShell:ShellLib Squished by Lofty's !Shrink vsn 3.01 on 05-Feb-95 shell_LibraryVersion:=1.40*&64 shell_DefineConstants:G=&D00:M=&903:_MSE_SELECTBUT=4:_MSE_MENUBUT=2:_MSE_ADJUSTBUT=1:t=0:r=1:w=2:x=3:Z=0:a=1:b=2:c=3:d=4:e=6:W=7:Y=8:n=9:o=&A:s=&E:X=&502:R=&400C0:S=&400C1:T=&400C2:U=&400C3:V=&400C7:_POPUP_TYPE_TEXT=0:_POPUP_TYPE_WIMPCOLOUR=1 BJ_POPUP_TYPE_DATEPICK=2:_POPUP_TYPE_FONTPICK=4:_POPUP_TYPE_COLOUR24=8: shell_Error: FA%,EA$: &606C2: 1<<31) shell_FatalError shell_OSCheckVersion(3) shell_FileExists("Resources:$.Resources.Edit.ThrowBack") ("Set Basic$File <"+ shell_GetAppName+"$BasicFile>"): "Edit:ThrowBack" shell_ErrorBox("Unexpected error:- "+ $+" (Internal error code "+ +")") $:FA%= $,"in "+ 34+"EvntShell:ShellLib"): FA%>0 $,FA%-1) shell_ErrorBox(EA$) shell_OK(fA$): G,fA$ shell_FatalError: &606C2: shell_OSCheckVersion(3) shell_FileExists("Resources:$.Resources.Edit.ThrowBack") 1<<31) shell_Exit ("Set Basic$File <"+ shell_GetAppName+"$BasicFile>"): "Edit:ThrowBack" shell_ErrorBox("Unexpected error:- "+ $+" Internal error code "+ shell_ErrorBox(rA$): SB%,_A%:_A%=_shell_blk%:!_A%= :$(_A%+4)=rA$+ &600DF,_A%,17,"XMessage from "+ shell_GetAppName &600DF,_A%,1, shell_GetAppName shell_GetLastSecureFileName: c%:c%=_U%!80: shell_GetString(_E%): aA$,zC%: ((_E%?zC%)>31 zC%<&FF):aA$+= (_E%?zC%):zC%+=1: :=aA$ shell_GetEventHandler(b%,_%,UC%): e%,i%,m%,q%,A$: b%=-1 b%=-2 shell_HeapBlockInfo(_U%!&C)-8:e%=0:m%= :i%=_U%!&C:A$="": (i%!e%=b%) i%!(e%+4) i%!(e%+(&C+(UC%*4)))>&8000 #A$=$(i%!(e%+(&C+(UC%*4)))):m%= e%+=48 i%!(e%+4)=_% i%!(e%+(&C+(UC%*4)))>&8000 #A$=$(i%!(e%+(&C+(UC%*4)))):m%= e%+=48 e%+=48 e%+=48 ((e%>=q%) m%):=A$ shell_GetEventMenu(kB%,b%,_%): e%,i%,m%,q%,n%: b%=-1 b%=-2 shell_HeapBlockInfo(_U%!&C)-8:e%=0:m%= :i%=_U%!&C:A$="": (i%!e%=b%) shell_Tracef0("GetEventMenu:window handle matched.."): i%!(e%+4)=_% "n%=i%!(e%+8): n%=-2 n%=_U%!&FC :e%+=48: (e%>=q% m%):=n% shell_GetEventListOffset(b%,f%,i%,GB%,aC%): q%,e%,m%,d%,JB%,c%: (!i%=0 (!i%=0) A:!i%= shell_HeapBlockFetch(GB%):c%=!i%:c%!0=0:c%!4=0:=0 shell_HeapBlockInfo(!i%)-8:e%=0:m%= :d%=-1:JB%=-1:c%=!i%: JB%<0 (c%!e%=0 c%!e%+4=0) JB%=e% (c%!e%=b%) f%=-1 d%=e%:m%= shell_Tracef0("GetEventListOffset:icon handle is not -1"): c%!(e%+4)=f% d%=e%:m%= e%+=GB% e%+=GB% ((e%>=q%) (d%=-1 JB%<0 rId%=q%:!i%= shell_HeapBlockExtend(!i%,GB%):c%=!i%:c%+=d%:c%!0=0:c%!4=0 d%=JB% shell_AttachPane(b%, cD%,l%,mA%,pA%): a%,d%,c%,QB%,OE%: shell_Tracef0("AttachPane:Attaching Pane Handler"):OE%= shell_WindowGetFlags(cD%): 1<<5)=0 shell_Tracef0("AttachPane:'Pane' bit of pane window is not set, fixing.."): shell_WindowToggleFlags(cD%,1<<5) 1<<1) shell_Tracef0("AttachPane:'Moveable' bit of pane window is set, fixing.."): shell_WindowToggleFlags(cD%,1<<1) shell_GetEventListOffset(b%,-1,_U%+92,24, shell_Tracef0("AttachPane:Creating pane event block"):d%= shell_GetEventListOffset(b%,-1,_U%+92,24, ):a%=_U%!92+d%:a%!0=b%:a%!4=-1:a%!8= shell_HeapBlockFetch(4):a%!&C= shell_HeapBlockFetch(4):a%!16= shell_HeapBlockFetch(4) aa%!20= shell_HeapBlockFetch(4):c%=a%!8:!c%=-1:c%=a%!&C:!c%=-1:c%=a%!16:!c%=-1:c%=a%!20:!c%=-1 :a%=_U%!92+d%:c%=a%!8:g%=0:QB%=0: c%!g%<>-1:g%+=4:QB%+=1: :a%!8= shell_HeapBlockExtend(a%!8,4):c%=a%!8:c%!(QB%*4)=cD%:c%!((QB%+1)*4)=-1:a%!&C= shell_HeapBlockExtend(a%!&C,4):c%=a%!&C:c%!(QB%*4)=l%:c%!((QB%+1)*4)=-1 a%!16= shell_HeapBlockExtend(a%!16,4):c%=a%!16:c%!(QB%*4)=mA%:c%!((QB%+1)*4)=-1:a%!20= shell_HeapBlockExtend(a%!20,4):c%=a%!20:c%!(QB%*4)=pA%:c%!((QB%+1)*4)=-1: shell_AttachDataLoad(b%,f%,x%,A$,aG%): a%,c%,d%,P$: shell_Tracef0("AttachDataLoad:Attaching DataLoad Handler"): b%=-1 b%=-2 x%=x% 1<<31 shell_GetEventListOffset(b%,f%,_U%+96,16, ):a%=_U%!96+d%: a%!0=0 a%!4=0 shell_Tracef0("AttachDataLoad:This is the first DataLoad Event..."):a%!0=b%:a%!4=f%:a%!8= shell_HeapBlockFetch(8):c%=a%!8:c%!0=x%:c%!4=-1:a%!&C= shell_HeapBlockFetch(8):c%=a%!&C:c%!0= shell_HeapBlockFetch( (A$)+1):c%!4=-1:c%=c%!0:$c%=A$ shell_Tracef0("AttachDataLoad:This is another DataLoad Event..."):a%!8= shell_HeapBlockExtend(a%!8,4):a%!&C= shell_HeapBlockExtend(a%!&C,4):g%=0:c%=a%!8: c%!g%<>-1:g%+=4: :c%!g%=x%:c%!(g%+4)=-1:c%=a%!&C:c%!g%= shell_HeapBlockFetch( A$+1) c%=c%!g%:$c%=A$ shell_GetCmdLineArgs: shell_Tracef0("AttachDataLoad:cmdline ="+P$): shell_Tracef0("AttachDataLoad:flag bit ="+ ((_U%!&64 1<<5))): shell_Tracef0("AttachDataLoad:wh% ="+ ~b%): shell_Tracef0("AttachDataLoad:type% ="+ P$<>"" (_U%!&64 1<<5) 1<<31 c%=x% 1<<31 c%=x% shell_FileType(P$)=c% shell_Tracef0("AttachDataLoad:Loading file.."): shell_MessageSendDataLoad(c%,P$):_U%!&64=_U%!&64 (1<<5) shell_AttachDataSave(b%,f%,TB%,x%,CC%,A$): a%,c%,d%: shell_IconIsSprite(b%,f%) shell_OK( shell_MessageNoArgs("SHELLMSG29")) shell_IconSetButtonType(b%,f%,6): TB%=0 TB%=&64 shell_Tracef0("AttachDataSave:Attaching DataSave Handler to icon "+ f%+" in window &"+ ~b%): shell_Tracef0("AttachDataSave:Handler function is '"+A$+"'"):d%= shell_GetEventListOffset(b%,f%,_U%+72,24, ):a%=_U%!72+d%:a%!0=b%:a%!4=f%:a%!8=TB%:a%!&C=x% Ha%!16=CC%:a%!20= shell_HeapBlockFetch( (A$)+1):c%=a%!20:$c%=A$: &FF9: TB%>&8000 '_U%!&88= shell_HeapBlockInfo(TB%)-8 _U%!&88=TB% TB%>&8000 '_U%!&88= shell_HeapBlockInfo(TB%)-4 _U%!&88=TB% :_U%!&8C=x%:_U%!&90=TB%: shell_AttachMenu(b%,_%,n%,QC%,LC%,pC%): _%>=0 shell_IconSetButtonType(b%,_%,3) shell_IsWindowStatic(b%)= shell_OK( shell_MessageNoArgs("SHELLMSG30")) shell_Tracef0("AttachMenu:Attaching menu handle &"+ ~n%+" to window handle &"+ ~b%): shell_EventAdd(b%,_%,0,n%,""): shell_AttachMenuMaker(b%,_%,A$): shell_Tracef0("AttachMenuMaker:Attaching menumaker function '"+A$+"'"): shell_EventAdd(b%,_%,1,0,A$): shell_AttachMenuDBox(UB%,d$,bA$,YA$): a%,c%,DB%: shell_WindowLoaded(d$) shell_MessageOneArg("SHELLMSG03",d$) shell_HeapBlockFetch(&C):a%!0= shell_HeapBlockFetch( d$+1):c%=a%!0:$c%=d$:a%!4= shell_HeapBlockFetch( bA$+1):c%=a%!4:$c%=bA$:a%!8= shell_HeapBlockFetch( YA$+1):c%=a%!8:$c%=YA$: &45BCE,UB%,a%: &45BCC,, shell_AttachClickSelect(b%,_%,A$): shell_EventAdd(b%,_%,2,0,A$): shell_AttachClickAdjust(b%,_%,A$): shell_EventAdd(b%,_%,3,0,A$): shell_AttachUserRedraw( b%,A$): a%,YA%:a%= shell_HeapBlockFetch(40):!a%=b%: &400CB,,a%:YA%=a%!32: shell_HeapBlockReturn(a%): 1<<4) shell_Tracef0("AttachUserRedraw:auto redraw set!!"): shell_WindowToggleFlags(b%,1<<4) shell_EventAdd(b%,-1,4,0,A$): shell_AttachDrag(b%,_%,GH%,A$): shell_EventAdd(b%,_%,6,0,A$): shell_AttachHelpTag(b%,_%,G$): shell_EventAdd(b%,_%,8,0,G$): shell_EventAdd(b%,_%,UC%,n%,A$): e%,DC%,i%,q%,m%: yC%:e%=0:m%= b%=-1 b%=-2 y>q%= shell_HeapBlockInfo(_U%!&C)-8:i%=_U%!&C: (i%!e%=b%) i%!(e%+4)=_% e%+=48 e%+=48 (e%>=q% %e%=0: (i%!e%<>0):e%+=48: e%>=q% _U%!&C= shell_HeapBlockExtend(_U%!&C,48):i%=_U%!&C:i%!(e%+0)=0:i%!(e%+4)=0:i%!(e%+8)=0:i%!(e%+&C)=0:i%!(e%+16)=0:i%!(e%+20)=0:i%!(e%+24)=0:i%!(e%+28)=0:i%!(e%+32)=0:i%!(e%+36)=0:i%!(e%+40)=0:i%!(e%+44)=0 :i%!(e%+0)=b%:i%!(e%+4)=_%: n%<>0 i%!(e%+8)=n% :yC%=e%+(&C+(UC%*4)): i%!yC%<>0 shell_HeapBlockReturn(i%!yC%) :DC%= shell_HeapBlockFetch( A$+1):$DC%=A$:i%!yC%=DC%: shell_EventDeleteAll(b%): e%,n%,m%,q%,i%,y%:e%=0:n%=0:m%= b%=-1 b%=-2 shell_HeapBlockInfo(_U%!&C)-8:i%=_U%!&C: (i%!e%=b%) e%+=48 (e%>=q% Ci%!(e%+0)=0:i%!(e%+4)=0:i%!(e%+8)=0: y%=&C i%!(e%+y%)<>0 shell_HeapBlockReturn(i%!(e%+y%)):i%!(e%+y%)=0 shell_Tracef0("EventDeleteAll:wh%=&"+ ~b%): shell_DeleteEventDataSave(b%,-1): shell_DeleteEventBump(b%,-1): shell_DeleteEventSlider(b%,-1): shell_DeleteEventBump(b%,f%): d%,a%,q%,i%,c%:i%=_U%!&68: shell_GetEventListOffset(b%,f%,_U%+&68,16, shell_Tracef0("DeleteEventBump:offset%="+ d%>=0 f%=-1 shell_Tracef0("DeleteEventBump:Deleting Bump Event (all events for window handle &"+ ~b%+")") shell_Tracef0("DeleteEventBump:Deleting Bump Event (window handle was &"+ ~b%+" icon handle was "+ f%+")") shell_HeapBlockInfo(_U%!&68)-8: d%=q%-16 SA%=i%!&C:c%=SA%!&C: shell_HeapBlockReturn(c%!&C): shell_HeapBlockReturn(c%!16): shell_HeapBlockReturn(c%): shell_HeapBlockReturn(_U%!&68):_U%!&68=0: shell_Tracef0("DeleteEventBump:No Bump events now registered") _U%!&68= shell_HeapBlockExtend(_U%!&68,-16) a%=i%+d%:a%!0=0:a%!4=0:a%!8=0:SA%=a%!&C: shell_HeapBlockReturn(SA%!&C): shell_HeapBlockReturn(SA%!16): shell_HeapBlockReturn(SA%) d%<0: shell_DeleteEventDataSave(b%,f%): d%,a%,q%: shell_GetEventListOffset(b%,f%,_U%+72,24, d%>=0 f%=-1 shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (all events for window handle &"+ ~b%+")") shell_Tracef0("DeleteEventDataSave:Deleting DataSave Event (window handle was &"+ ~b%+" icon handle was "+ f%+")") shell_HeapBlockInfo(_U%!72)-8: d%=q%-24 shell_HeapBlockReturn(_U%!72):_U%!72=0: shell_Tracef0("DeleteEventDataSave:No DataSave events now registered") _U%!72= shell_HeapBlockExtend(_U%!72,-24) a%=i%+d%:a%!0=0:a%!4=0:a%!8=0:a%!&C=0:a%!16=0: shell_HeapBlockReturn(a%!20):a%!20=0 d%<0: shell_MessageNoArgs(G$):= shell_MessageLookup(G$,"","") shell_MessageOneArg(G$,n$):= shell_MessageLookup(G$,n$,"") shell_MessageTwoArgs(G$,n$,CA$):= shell_MessageLookup(G$,n$,CA$) shell_MessageLookup(G$,n$,CA$): l%,L%,j$,wC%,xB%: G$,8)="SHELLMSG" wC%=_U%!284:xB%=_U%!280 wC%=_U%!64:xB%=_U%!68 &61502,xB%,G$,wC%,256,n$,CA$ ,,,L%;l%: wC%?L%=&D:j$=$(wC%) shell_WimpInit(iC%,SA$): &400C0,iC%,&4B534154,SA$ iC%,hA%: _U%!&64 "WimpExt_Initialise",&E,hA% :_U%!&94=hA%:=hA% shell_WimpInit_I(iC%,SA$): &400C0,iC%,&4B534154,SA$ iC%,hA%: _U%!&64 "WimpExt_Initialise",&E,hA% :_U%!&94=hA%: &81682,hA%:=hA% shell_WimpCloseDown_I(hA%): shell_LoseFonts: _U%!&F0<>-1 "XFontMenu_Release" _U%!&64 "WimpExt_Initialise",&E,hA% &600DD,hA%,&4B534154: &A1683,hA%: _U%!&64 "XImpulse_CloseDown",_U%!&94 WimpCloseDown(hA%): shell_LoseFonts: _U%!&F0<>-1 "XFontMenu_Release" _U%!&64 "WimpExt_Initialise",&E,hA% &600DD,hA%,&4B534154: _U%!&64 "XImpulse_CloseDown",_U%!&94 ("Unset "+_shell_AppName$+"$BasicFile"): shell_LoseFonts: y%,c%:c%=_U%!&E8: c%?y%>0: &40082,y%:c%?y%-=1: shell_FindFont(e$,xG%): YA%,xD%:xD%=_U%!&E8: &40081,,e$,xG%*16,_*16,0,0 YA%:xD%?YA%+=1: xD%?YA%>=&FF shell_OK( shell_MessageNoArgs("SHELLMSG18")) shell_Init: nA%,y%,c%,P$: wA%,C$,D$,UD%: shell_DefineConstants:_SHELL_SENDDATALOAD_MY_REF%=0:_SHELL_SENDDATALOAD_TIME%=0:_SHELL_SENDDATALOAD_FILE$="": _U%360,_shell_blk%260:_Q%= shell_HeapBlockFetch(&BB8):nA%= shell_HeapBlockFetch(48):nA%!0=0 nA%!4=0:nA%!8=0:nA%!&C=0:nA%!16=0:nA%!20=0:nA%!24=0:nA%!28=0:nA%!32=0:nA%!36=0:nA%!40=0:nA%!44=0:_U%!0=0:_U%!4=0:_U%!8=0:_U%!&C=nA%:_U%!16=1:_U%!20=0:_U%!24=0:_U%!28=0:_U%!32=-1:_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:_U%!320=0 _U%!324=0:_U%!328=0:_U%!332=0:_U%!336=0:_U%!340=0:_U%!344=0: shell_MemFill(_U%!&E8,256,0): shell_MemFill(_U%!&EC,256,0):wA%= shell_HeapBlockFetch(256):C$= shell_OSVarGetVal(wA%,256,"Obey$Dir",1): shell_HeapBlockReturn(wA%):D$= shell_Leaf(C$),2) _U%!&BC= shell_HeapBlockFetch(( C$)+1):_U%!&C4= shell_HeapBlockFetch(( D$)+1):c%=_U%!&BC:$c%=C$:c%=_U%!&C4:$c%=D$:P$= shell_OSReadCommandArg(1): P$<>"" LL_U%!&64=_U%!&64 1<<5:c%= shell_HeapBlockFetch( P$+1):$(c%)=P$:_U%!324=c% shell_OSModuleCheckVersion("WimpExtension",1.98): _U%!&64=_U%!&64 V/c%= RO3_Present: _U%!&64=_U%!&64 1<<&A _U%!&64=_U%!&64 1<<&C:UD%=&64: shell_PollSetInterval(UD%): shell_PollSetPrevInterval(UD%): ZD%:ZD%+=UD%: shell_InitModules: shell_InitModules: k%:k%= _shell_StaticList_Init: shell_GetCmdLineArgs: _U%!324<>0 P$=$(_U%!324) shell_Tracef0("GetCmdLineArgs:cmdline was "+P$):=P$ shell_FileType(W$): 8,5,W$ ,,x%:x%=(x% &FFF00)>>>8:=x% shell_FileExists(W$): x%,B:B=5: 8,B,W$ shell_CatInfoRead(W$): x%,CD%,ID%,IB%,TC%,B$: 8,5,W$ x%,,CD%,ID%,IB%,TC%: ="Not Found" TC%=51 B$+="WR " TC%=&BB B$+="LWR" TC%=&88 B$+="DL " B$+=" "+ shell_StringPadLeading( ~CD%,"0",8):B$+=" "+ shell_StringPadLeading( ~ID%,"0",8):B$+=" "+ shell_StringPadLeading( ~IB%,"0",8):=B$ shell_FileGetDateStamp(W$): x%,dF%,B:B=5: 8,B,W$ x%,,,dF%: shell_GetAppDir: c%:c%=_U%!&BC:=$c% shell_GetAppDataDir: c%:c%=_U%!&C0:=$c% shell_GetAppName: c%:c%=_U%!&C4:=$c% shell_ResourcesInit: FA$,c%,D$,C$,dD%: wA%,EC%,bC%:D$= shell_GetAppName:C$= shell_GetAppDir:wA%= shell_HeapBlockFetch(256): shell_OSVarExists(wA%,D$+"Res$Path") _U%!&64=_U%!&64 shell_OSVarExists(wA%,D$+"Data$Dir") nFA$= shell_OSVarGetVal(wA%,256,D$+"Data$Dir",1):_U%!&C0= shell_HeapBlockFetch(( FA$)+1):c%=_U%!&C0:$c%=FA$ _U%!&C0= shell_HeapBlockFetch(( C$)+1):c%=_U%!&C0:$c%=C$ _U%!&64 shell_FileExists(D$+"Res:Messages") shell_MessagesInit(D$+"Res:Messages",_U%!68,_U%!64) shell_FileExists(D$+"Res:ShellMsgs") shell_MessagesInit(D$+"Res:ShellMsgs",_U%!280,_U%!284) shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284) &20035,-1,4 ,,bC%: &20035,-1,5 ,,EC%: EC%=1 shell_FileExists(D$+"Res:Sprites22") 4_U%!16= shell_SpriteAreaLoad(D$+"Res:Sprites22") shell_FileExists(D$+"Res:Sprites") 2_U%!16= shell_SpriteAreaLoad(D$+"Res:Sprites") _U%!16=1 :dD%= shell_3DEnabled: shell_FileExists(D$+"Res:Templates3") shell_TemplatesInit(D$+"Res:Templates3",k%) shell_FileExists(D$+"Res:Templates") shell_TemplatesInit(D$+"Res:Templates",k%) shell_FileExists(C$+".Messages") shell_MessagesInit(C$+".Messages",_U%!68,_U%!64) shell_FileExists(C$+".ShellMsgs") shell_MessagesInit(C$+".ShellMsgs",_U%!280,_U%!284) shell_MessagesInit("EvntShellRes:ShellMsgs",_U%!280,_U%!284) &20035,-1,4 ,,bC%: &20035,-1,5 ,,EC%: EC%=1 shell_FileExists(C$+".Sprites22") 1_U%!16= shell_SpriteAreaLoad(C$+".Sprites22") shell_FileExists(C$+".Sprites") /_U%!16= shell_SpriteAreaLoad(C$+".Sprites") _U%!16=1 :dD%= shell_3DEnabled: shell_FileExists(C$+".Templates3") shell_TemplatesInit(C$+".Templates3",k%) shell_FileExists(C$+".Templates") shell_TemplatesInit(C$+".Templates",k%) &45BC0: shell_HeapBlockReturn(_Q%):_Q%= shell_HeapBlockFetch(&400): shell_HeapBlockReturn(wA%): shell_SpriteAreaLoad(H$): fB%,S%,T%:S%= (H$):T%= #S%+16: #S%:fB%= shell_HeapBlockFetch(T%):!fB%=T%:fB%!4=0:fB%!8=16:fB%!&C=16: 46,521,fB%: 46,522,fB%,H$: shell_Tracef0("SpriteLoad:Sprite file loaded at &"+ ~fB%):=fB% shell_UserSpritesBase:=_U%!16 shell_SpriteGetPtr(XC%,R$): VB%,e%:VB%= shell_HeapBlockFetch(21):$VB%=R$: 46,280,XC%,VB% ,,e%: shell_HeapBlockReturn(VB%):=e% shell_MessageExpand(g$): L$,j$,sA%:L$="": g$,"\")>0:sA%= g$,"\"):L$+= g$,sA%-1):j$= g$,sA%+1,1):g$= g$,sA%+2): "A":L$+="Click ADJUST to" "a":L$+="ADJUST" "D":L$+="Drag with SELECT to" "d":L$+="Drag with ADJUST to" "G":L$+="This option is greyed out because" "R":L$+="Move the pointer right" "S":L$+="Click SELECT to" "s":L$+="SELECT" "T":L$+="This is the" "W":L$+="This window is" "w":L$+="window" L$+="\"+j$ :=L$+g$ shell_OpenMenu(LA%,RA%,CB%): A$:A$= shell_GetEventHandler(_U%!28,_U%!32,1): A$<>"" shell_Tracef0("OpenMenu:About to call "+"FN"+A$+"("+ _U%!28+","+ _U%!32+")"):k%= ("FN"+A$+"(_U%!28,_U%!32)") shell_Tracef0("OpenMenu:no menumaker function registered") CB%<>_U%!24 shell_HeapBlockExists(_U%!256) shell_HeapBlockReturn(_U%!256):_U%!256=0 shell_HeapBlockExists(_U%!&F4) shell_HeapBlockReturn(_U%!&F4):_U%!&F4=0 CB%=_U%!&FC &400D4,,CB%,LA%-64,RA%:_U%!264=1 _Q%!0=LA%:_Q%!4=RA%: &45BC5,CB%,_Q%:_U%!264=0 :_U%!24=CB%:_U%!36=LA%:_U%!40=RA%:_U%!52=_U%!28:_U%!56=_U%!32: shell_MenuLastXPos:=_U%!36 shell_MenuLastYPos:=_U%!40 shell_MenuAttachDbox(h$): "Menu_SetSubHandle",_U%!8, shell_MenuString(h$),1: shell_Tracef0("MenuAttachDbox:Dialog box ("+h$+") attached"): shell_MessageWindow(I$,XG%,mA$,w$): NE%,_A%:_A%= shell_HeapBlockFetch(260):!_A%=0:$(_A%+4)=I$+ w$="" w$="Message from "+mA$ &400DF,_A%,19,w$ &400DF,_A%,17,w$ shell_HeapBlockReturn(_A%):=NE% shell_CreateWindow(nA$, IC%:IC%= shell_GetWB(nA$):IC%!64=_U%!16: &400C1,,IC% shell_CreateWindow2(N,l%,OG%,jG%,vG%,rA%,eE%,kA%,SB%,YB%): Q%:Q%= shell_HeapBlockFetch(&BB8):Q%!0=eE%:Q%!4=kA%:Q%!8=SB%:Q%!&C=YB%:Q%!16=0:Q%!20=0:Q%!24=-1:Q%!28=l%:Q%?32=7:Q%?33=2:Q%?34=OG%:Q%?35=jG%:Q%?36=3:Q%?37=1:Q%?38=2:Q%?39=0:Q%!40=0:Q%!44=rA% Q%!48=vG%: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% shell_HeapBlockReturn(Q%):=h% shell_WindowHasTitleBar(b%):=( shell_WindowGetFlags(b%) 1<<26) shell_WindowIsMoveable(b%):=( shell_WindowGetFlags(b%) 1<<1) shell_WindowIsAPane(b%):=( shell_WindowGetFlags(b%) 1<<5) shell_WindowIsNotBounded(b%):=( shell_WindowGetFlags(b%) 1<<6) shell_WindowTrapsHotKeys(b%):=( shell_WindowGetFlags(b%) 1<<&C) shell_WindowIsOpen(b%):=( shell_WindowGetFlags(b%) 1<<16) shell_WindowIsOnTop(b%):=( shell_WindowGetFlags(b%) 1<<17) shell_WindowHasBeenToggled(b%):=( shell_WindowGetFlags(b%) 1<<18) shell_WindowHasInputFocus(b%):=( shell_WindowGetFlags(b%) 1<<20) shell_WindowHasBackIcon(b%):=( shell_WindowGetFlags(b%) 1<<24) shell_WindowHasCloseIcon(b%):=( shell_WindowGetFlags(b%) 1<<25) shell_WindowHasToggleIcon(b%):=( shell_WindowGetFlags(b%) 1<<27) shell_WindowHasVScrollBar(b%):=( shell_WindowGetFlags(b%) 1<<28) shell_WindowHasAdjustSizeIcon(b%):=( shell_WindowGetFlags(b%) 1<<29) shell_WindowHasHScrollBar(b%):=( shell_WindowGetFlags(b%) 1<<30) shell_WindowGetFlags(b%): l%,a%:a%= shell_HeapBlockFetch(36):a%!0=b%: &400CB,,a%:l%=a%!32: shell_HeapBlockReturn(a%):=l% shell_WindowGetTitleFlags(b%): l%,a%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%:l%=a%!60: shell_HeapBlockReturn(a%):=l% shell_IconGetFlags(b%,f%): l%,a%:a%= shell_HeapBlockFetch(50):a%!0=b%:a%!4=f%: &400CE,,a%:l%=a%!24: shell_HeapBlockReturn(a%):=l% shell_WindowTitleFlags(b%): l%,a%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%:l%=a%!60: shell_HeapBlockReturn(a%):=l% shell_WindowTitleHasBorder(b%):=( shell_WindowTitleFlags(b%) 1<<2) shell_WindowTitleIsSprite(b%):=( shell_WindowTitleFlags(b%) 1<<1) shell_WindowTitleIsText(b%):=( shell_WindowTitleFlags(b%) 1<<0) shell_WindowTitleIsHCentred(b%):=( shell_WindowTitleFlags(b%) 1<<3) shell_WindowTitleIsVCentred(b%):=( shell_WindowTitleFlags(b%) 1<<4) shell_WindowTitleIsFilled(b%):=( shell_WindowTitleFlags(b%) 1<<5) shell_WindowTitleIsAAliased(b%):=( shell_WindowTitleFlags(b%) 1<<6) shell_WindowTitleIsIndirected(b%):=( shell_WindowTitleFlags(b%) 1<<8) shell_WindowGetTitle(b%): T$,a%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%: (a%!32 1<<26) ((a%!60) 256)=0 T$=$(a%+76) T$=$(!(a%+76)) shell_HeapBlockReturn(a%):=T$ shell_WindowTitleBufferLength(b%): w%,a%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%: ((a%!60) 256)=0 w%=&C w%=a%!84 shell_HeapBlockReturn(a%):=w% shell_WindowMoveToIcon(b%,kE%,f%,mA%,pA%): s%,p%:s%= shell_HeapBlockFetch(50):p%= shell_HeapBlockFetch(36):p%!20=0: shell_OSCheckVersion(3) kE%=-1 !p%=-2 !p%=kE% &400CB,,p% :s%!0=kE%:s%!4=f%: &400CE,,s%: shell_WindowMoveTo(b%,s%!8+mA%-p%!20,s%!20+pA%): shell_HeapBlockReturn(s%): shell_HeapBlockReturn(p%): shell_WindowMoveTo(b%,LA%,RA%): OF%,EF%,d%,a%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%:OF%=a%!&C-a%!4:EF%=a%!16-a%!8:a%!4=LA%:a%!8=RA%:a%!&C=LA%+OF%:a%!16=RA%+EF%: &400C5,,a%: &400C6,,a% shell_IsWindowStatic(b%) shell_OpenWindowStatic(b%) shell_OpenWindowDynamic2(b%,0,0) shell_HeapBlockReturn(a%): shell_WindowBringToTop(b%): AC%:AC%= shell_HeapBlockFetch(256):AC%!0=b%: &400CB,,AC%:AC%!28=-1: &400E7,2,AC%,b%: &400C7,0,AC%: shell_HeapBlockReturn(AC%): shell_UpdateWindow(h%,eE%,kA%,SB%,YB%): a%:a%= shell_HeapBlockFetch(a%):a%!0=h%:a%!4=eE%:a%!8=kA%:a%!&C=SB%:a%!16=YB%: &400C9,,a% &400CB,,a%: shell_HeapBlockReturn(a%): shell_OpenWindowDynamic2(b%,mA%,pA%): k%,FB%:FB%= shell_HeapBlockFetch(20):_U%!20=b%: &400CF,,FB%: &400D4,,b%,FB%!0+mA%,FB%!4+pA%: shell_HeapBlockReturn(FB%): shell_ClaimKeypress: _U%!20<>0 &400D4,,-1:k%= shell_DeleteWindow(_U%!20):_U%!20=0 shell_OpenWindow(b%,iE%,ZC%): d%,a%,v%,g%,XF%,HB%,bA%,AB%: vB%,NC%,YB%,qE%,xF%,xC%,mC%:d%= shell_GetEventListOffset(b%,-1,_U%+304,&C, d%>=0 /ga%=_U%!304+d%:c%=a%!8: shell_Tracef0("OpenWindow:About to call "+"FN"+$c%):xC%= ("FN"+$c%): xC%=0 :NC%= :YB%= shell_HeapBlockFetch(40):YB%!0=b%: &400CB,,YB%: (YB%!32 &80000)=&80000 shell_HeapBlockReturn(YB%):mC%= shell_HeapBlockFetch(20): &400CF,,mC%:_Q%!0=b%: &400CB,,_Q% &400C5,,_Q% shell_GetEventListOffset(b%,-1,_U%+92,24, d%>-1 IJa%=(_U%!92)+d%:MC%=a%!8:hD%=a%!&C:yB%=a%!16:RC%=a%!20:_Q%!0=b%: ZC%>0 HB%=ZC% HB%=-1 HB%=_Q%!28 &400C5,,_Q%: &400CB,,_Q%: &400C6,,_Q% shell_HeapBlockFetch(40):g%=0: MC%!g%<>-1:v%!0=MC%!g%: XF%=0 XF%=v%!0 c7qE%=v%!0: &400CB,,v%: mC%!16=-9 mC%!16>-5 vB%=hD%!g%: 0,1:bA%=v%!16-v%!8:AB%=v%!&C-v%!4:v%!4=_Q%!4+yB%!g%:v%!&C=v%!4+AB%:v%!16=_Q%!16+RC%!g%:v%!8=v%!16-bA% 2:bA%=v%!16-v%!8:AB%=_Q%!&C-_Q%!4:v%!4=_Q%!4+yB%!g%:v%!&C=_Q%!&C:v%!16=_Q%!16+RC%!g%:v%!8=v%!16-bA% 3:bA%=_Q%!16-_Q%!8:AB%=v%!&C-v%!4:v%!4=_Q%!4+yB%!g%:v%!&C=v%!4+AB%:v%!16=_Q%!16:v%!8=_Q%!8+RC%!g% 4:bA%=v%!16-v%!8:AB%=_Q%!&C-_Q%!4:v%!4=_Q%!4+yB%!g%:v%!&C=_Q%!&C:v%!16=_Q%!8+bA%+RC%!g%:v%!8=v%!16+bA% 5:bA%=_Q%!16-_Q%!8:AB%=v%!&C-v%!4:v%!4=_Q%!&C-AB%+yB%!g%:v%!&C=v%!4+AB%:v%!16=_Q%!16:v%!8=_Q%!8 v%!28=HB% v%!28=xF% &400C5,,v% :xF%=v%!0:g%+=4: _Q%!28=qE%: &400C5,,_Q% shell_HeapBlockReturn(v%) _Q%!0=b%: &400CB,,_Q% HB%=-2 _Q%!28=-2 ZC%=-1 _Q%!28=-1 &400C5,,_Q% shell_HeapBlockReturn(mC%): shell_CloseWindow(b%): d%,a%,MC%,hD%,yB%,RC%,r%,xC%:d%= shell_GetEventListOffset(b%,-1,_U%+308,&C, d%>=0 ha%=_U%!308+d%:c%=a%!8: shell_Tracef0("CloseWindow:About to call "+"FN"+$c%):xC%= ("FN"+$c%): xC%=0 shell_HeapBlockFetch(60): shell_GetEventListOffset(b%,-1,_U%+92,24, d%>-1 la%=(_U%!92)+d%:hD%=a%!&C:yB%=a%!16:RC%=a%!20:g%=0:MC%=a%!8: MC%!g%<>-1:r%!0=MC%!g%: &400C6,,r%:g%+=4: :r%!0=b%: &400C6,,r% shell_HeapBlockReturn(r%): shell_GetDynamicWindowHandle:=_U%!20 shell_DeleteWindow(h%): r%:r%= shell_HeapBlockFetch(20): h%<>0 oktodeletew(h%) shell_EventDeleteAll(h%): shell_RemoveHandleFromWindowList(h%): h%=_U%!20 _U%!20=0 shell_RemoveStaticWindowFromList(h%) :r%!0=h%: &400C3,,r%:h%=0 shell_HeapBlockReturn(r%):=h% oktodeletew(h%):=-1 oktoclosew(h%):=-1 cliprect(A, HG%): QA%,TA%: lwaorigin(A,QA%,TA%):cA%=A!24-QA%:lA%=A!28-TA%:wG%=A!32-QA%:HG%=A!36-TA%: poll(qB%,lD%): _U%!&64 "WimpExt_PrePoll" &400C7,qB%,_Q% _U%!&64 "WimpExt_Action",_U%!&94,_Q%,PA% shell_Poll_I(qB%,lD%): _U%!&64 "WimpExt_PrePoll" &400C7,qB%,_Q% _U%!&64 "WimpExt_Action",_U%!&94,_Q%,gB% &81686,gB%,,lD%:=gB% shell_PollIdle(qB%,lD%): _U%!&64 "WimpExt_PrePoll" &400E1,qB%,_Q%,ZD% _U%!&64 "WimpExt_Action",_U%!&94,_Q%,gB% shell_PollSetInterval(ME%):SF%=ME%: shell_PollSetPrevInterval(ME%):ZG%=ME%: shell_PollReadInterval:=SF% shell_PollReadPrevInterval:=ZG% shell_DoBackgroundTask: shell_IconIsDraggable(b%,f%): l%:l%= shell_IconGetFlags(b%,f%):c%=(l% &6000): c%=&6000= shell_IconIsSprite(b%,f%): l%,c%:l%= shell_IconGetFlags(b%,f%):c%=(l% 1<<1): c%=(1<<1) shell_IconDragBox(b%,f%): a%,H,I,tA%,l%,YA%,VF%,iF%,KC%,IA$: CC%,R$:tA%= shell_GetEventListOffset(b%,f%,_U%+72,24, tA%>=0 xna%=_U%!72+tA%:CC%=a%!16:R$= shell_IconGetData(b%,CC%): R$="" shell_OK( shell_MessageNoArgs("SHELLMSG28")) shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):!a%=b%: &400CC,,a%:H=a%!4-a%!20:I=a%!16-a%!24:iF%=a%!68:a%!4=f%: &400CE,,a%:!a%=b%:a%!4=5:l%=a%!24:KC%=a%!32:a%!8=a%!8+H:a%!&C=a%!&C+I:a%!16=a%!16+H:a%!20=a%!20+I:a%!24=0:a%!28=0 Ja%!32=&7FFFFFFF:a%!36=&7FFFFFFF: 6,&A1,28 ,,YA%:VF%=((YA% 2)=2): YA%=l%: &IA$= shell_IconGetCommand(KC%,"s") shell_OK( shell_MessageNoArgs("SHELLMSG19")) IA$<>"" &42400,&85,iF%,IA$,a%+8:_U%!&64=_U%!&64 &400D0,,a% &400D0,,a% shell_HeapBlockReturn(a%) shell_Tracef0("IconDragBox:WARNING! no user drag handler registered for this icon!"): shell_Tracef0("IconDragBox:now checking for a slider drag event.."):tA%= shell_GetEventListOffset2(b%,f%,_U%+332,32, shell_Tracef0("IconDragBox:event offset is "+ tA%): tA%>=0 shell_HandleSlider(b%,f%,tA%) shell_HandleAttachedMenu(_Q%,b%,f%): f%<>-1 b%>-1 shell_GetEventMenu(_Q%!8,b%,f%): n%<>0 shell_HandleMenuOpen(_Q%,n%,b%,f%, shell_DoOLEHandling: shell_OLEInProgress shell_OLEScanLinkedFiles shell_Action(sG%): A$,n%,h$,tA$,WB%,BB%,OB%,eD%: b%,f%,k%,_temp28%,_temp32%,_temp24%,_temp%,IE%: YC%,d%,AG%: (AG%-ZD%)>0:ZD%+=SF%: shell_DoOLEHandling: shell_DoBackgroundTask: (_U%!&64 1<<&B) shell_Slider shell_RedrawWindow(_Q%!0) shell_OpenWindow(_Q%!0, shell_CloseWindow(_Q%!0) shell_PointerLeavingWindow(_Q%) shell_PointerEnteringWindow(_Q%) 6:_U%!28=_Q%!&C:_U%!32=_Q%!16:BB%=_Q%!0:OB%=_Q%!4:_U%!272=_Q%!0:_U%!276=_Q%!4:_U%!320=_Q%!8:_temp28%=_Q%!&C:_temp32%=_Q%!16:f%=_Q%!16: shell_Tracef0("Action:Mouse_Click event detected") shell_Tracef0("Action:Window Handle was &"+ ~_Q%!&C+" Icon Handle was "+ _Q%!16): _Q%!&C=_U%!288 _Q%!16=_U%!292 shell_HandleBumpIcons(_U%!296,_Q%!&C,_Q%!16,_Q%!8) _U%!288=-1:_U%!292=-1:_U%!296=-1: _Q%!16>=0 shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+&68,16,0): shell_Tracef0("DEBUG::bump event offset is "+ d%>=0 shell_HandleBumpIcons(d%,_Q%!&C,_Q%!16,_Q%!8) (_Q%!8=64) shell_IconIsDraggable(_Q%!&C,_Q%!16): "" shell_Tracef0("Action:Drag event detected - function is "+A$):k%= ("FN"+A$+"(_temp28%,_temp32%)") shell_Tracef0("Action:Drag event detected - no handler function"): shell_SendDataSave(_U%!28,_U%!32) _U%!&64=_U%!&64 1<<&B shell_Tracef0("Action:keypress is="+ _Q%!24): _Q%!24 &D,394,398,399,410,430,431:eD%= shell_WritableIconHandler(_Q%!0,_Q%!4,_Q%!24) shell_HotKeyProcess(_Q%!24) shell_Tracef0("Action:Keypress not claimed, passing it on"): &400DC,_Q%!24 shell_Tracef0("Action:Keypress claimed by this application") shell_ActionMenuSelect(_Q%) 17,18: shell_Receive(_Q%) shell_UserMessageAcknowledge(_Q%) shell_ActionSelectButton: d%,NA%,S$,DF%: shell_Tracef0("ActionSelectButton:Mouse Button was SELECT"): _U%!32>=0 A=d%= shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24, d%=-1 d%>=0 DF%=!(_U%!340+d%+16): _POPUP_TYPE_DATEPICK:NA%=_U%!340+d%: NA%!&C=-1 S$="" S$=$(NA%!&C) shell_DatePickerOpen(NA%!0,NA%!8,NA%!4,S$) _POPUP_TYPE_FONTPICK:NA%=_U%!340+d%: NA%!&C=-1 S$="" S$=$(NA%!&C) shell_FontPickerOpen(NA%!0,NA%!8,NA%!4,S$) _POPUP_TYPE_COLOUR24:NA%=_U%!340+d%: NA%!&C=-1 S$="" S$=$(NA%!&C) shell_ColourPickerOpen(NA%!0,NA%!8,NA%!4,S$) _POPUP_TYPE_TEXT: shell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16, _POPUP_TYPE_WIMPCOLOUR: shell_MenuTickOnly1(!(_U%!340+d%+20), shell_IconGetBGColour(_Q%!&C,!(_U%!340+d%+8))) 99,"Unknown popup type detected" shell_HandleAttachedMenu(_Q%,_U%!28,_U%!32): _U%!32=0 shell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32) m7A$= shell_GetEventHandler(_U%!28,_U%!32,2): A$<>"" shell_IconSlab(4,_U%!28,_U%!32): shell_Tracef0("ActionSelectButton:About to call "+"FN"+A$+"(&"+ ~_temp28%+","+ _temp32%+")"):k%= ("FN"+A$+"(_temp28%,_temp32%)") _U%!32=0 _U%!28=_U%!20 &400D4,,-1 shell_ActionMenuButton: c%,n%,gC%,d%:gC%= shell_Tracef0("ActionMenuButton:Mouse Button was MENU"): _Q%!16>=0 shell_GetEventListOffset2(_Q%!&C,_Q%!16,_U%+340,24, !(_U%!340+d%+16)=1 shell_MenuTickOnly1(!(_U%!340+d%+20), shell_IconGetBGColour(_Q%!&C,!(_U%!340+d%+8))) !(_U%!340+d%+16)=2 0NA%=_U%!340+d%: NA%!&C=-1 S$="" S$=$(NA%!&C) shell_DatePickerOpen(NA%!0,NA%!8,NA%!4,S$) shell_HandleMenuOpen(_Q%,!(_U%!340+d%+20),_Q%!&C,_Q%!16, shiftmenuclick(_Q%!&C,_Q%!16) shell_Tracef0("ActionMenuButton:Checking menu events.."): shell_Tracef0("ActionMenuButton:button="+ _Q%!8+" _Q%!12="+ _Q%!&C+" _Q%!16="+ _Q%!16): _Q%!16>=0 shell_GetEventMenu(_Q%!8,_Q%!&C,_Q%!16) (n%<>0 _Q%!&C>0 _Q%!16>=0) shell_GetEventMenu(_Q%!8,_Q%!&C,-1) shell_Tracef0("ActionMenuButton:Menu handle is:&"+ ~n%): n%<>0 shell_HandleMenuOpen(_Q%,n%,_Q%!&C,_Q%!16,gC%) shell_HandleMenuOpen(_Q%,n%,b%,f%,gC%): s%,p%: shell_OpenMenu(_Q%!0,_Q%!4,n%) shell_HeapBlockFetch(50):p%= shell_HeapBlockFetch(36):s%!0=b%:s%!4=f%: &400CE,,s%:p%!0=b%: &400CB,,p%: shell_OpenMenu(p%!4+s%!16+64,_Q%!4,n%): p%!4+s%!16+64,_Q%!4: shell_HeapBlockReturn(s%): shell_HeapBlockReturn(p%) shell_ActionMenuSelect(_Q%): rD%,WB%,YC%,IE%,k%,ND%,d%:d%= shell_GetEventListOffset2(_U%!28,_U%!32,_U%+340,24, d%>=0 shell_DoPopupSelect(_Q%,d%) shell_HeapBlockFetch(256): shell_Tracef0("ActionMenuSelect:Menu_Select event detected"): &400CF,,_shell_blk%:WB%= shell_HeapBlockFetch(256): _U%!24=_U%!&FC YC%=0:_U%!264=1 shell_CheckSelection(_Q%): YC%>-1 _U%!264=1 _U%!264=0 _U%!264>0 "FontMenu_DecodeFontMenu",_Q%+YC%,WB% IE%=1 shell_Tracef0("ActionMenuSelect:FontMenu selection ("+ shell_GetString(WB%)+")"): shell_FontMenuSelectFont( shell_GetString(WB%),_U%!260): _shell_FontMenuSelFN$="" &400D5,,_U%!24,_Q%,WB%:A$= shell_GetEventHandler(_U%!52,_U%!56,0):_temp%=WB%:$_temp%= shell_StringStripTrailing($_temp%," "): A$<>"" ("FN"+A$+"($_temp%)") _shell_FontMenuSelFN$<>"" ("FN"+_shell_FontMenuSelFN$+"(FNshell_FontMenuGetLastSelectedFont)") shell_HeapBlockReturn(WB%): _U%!264=0 &45BC4,_U%!24,_Q% rD%,,ND%: shell_MenuCallHandler(rD%,ND%) _shell_blk%!8=1 shell_HeapBlockExists(_U%!&E0) _temp%=_U%!&E0: $_temp%<>"" ("FN"+$_temp%+"(_U%!52,_U%!56)") shell_OpenMenu(_U%!36,_U%!40,_U%!24) _shell_FontMenuSelFN$="" shell_HeapBlockReturn(ND%): shell_ActionAdjustButton: l%,A$,k%,kC%,g%:kC%= shell_HeapBlockFetch(&C+( shell_WindowCountIcons(_U%!28)*32)): shell_Tracef0("Action:Mouse Button was ADJUST"): _U%!28>0 &400D6,_U%!28,kC%,&F000,&B000:g%=0: kC%!g%<>-1: kC%!g%=_U%!32 shell_IconSet(_U%!28,_U%!32,1) g%+=4: _U%!32=0 shell_HandleAttachedDataSave(_Q%,_U%!28,_U%!32) )7A$= shell_GetEventHandler(_U%!28,_U%!32,3): A$<>"" shell_IconSlab(1,_U%!28,_U%!32):k%= ("FN"+A$+"(_temp28%,_temp32%)") shell_HeapBlockReturn(kC%): shiftmenuclick(b%,f%):= shell_IconSlab(kB%,b%,f%): a%:a%= shell_HeapBlockFetch(50):a%!8=kB%:a%!&C=b%:a%!16=f%: &81680,,a%:a%!8=0: &81680,,a%: shell_HeapBlockReturn(a%): shell_PointerLeavingWindow(_Q%): s%,k%:s%= shell_HeapBlockFetch(&C): &400D6,!_Q%,s%,&3F0000,&F<<16: !s%<>-1 K+k%= ("FN"+ shell_IconGetData(!_Q%,!s%)) shell_HeapBlockReturn(s%): shell_PointerEnteringWindow(_Q%): s%,k%,b%:b%=_Q%!0:s%= shell_HeapBlockFetch(&C): &400D6,b%,s%,&3F0000,&E<<16: !s%<>-1 [)k%= ("FN"+ shell_IconGetData(b%,!s%)) shell_HeapBlockReturn(s%): shell_RedrawWindow(h%): YD%,A$,QA%,TA%,a%,s%: shell_HeapBlockFetch(&C): &400D6,h%,s%,&3F0000,&D<<16: !s%<>-1 m!A$= shell_IconGetData(h%,!s%) shell_HeapBlockReturn(s%):a%= shell_HeapBlockFetch(&64): A$="" t&A$= shell_GetEventHandler(h%,-1,4) shell_FatalError wWa%!0=h%: &400C8,,a% YD%:QA%=a%!4-a%!20:TA%=a%!16-a%!24: &81681,,a%: A$<>"" }/k%= ("FN"+A$+"("+ a%+","+ QA%+","+ TA%+")") &400CA,,a% shell_HeapBlockReturn(a%): shell_Receive(_Q%): c%,k%: _Q%!16 shell_Exit: shell_DataSave(_Q%) shell_DataSaveAck(_Q%) shell_DataLoad(_Q%, shell_DataLoadAck(_Q%) shell_DataLoad(_Q%, shell_RAMFetch(_Q%) shell_RAMTransmit(_Q%) shell_Message_PreQuit(_Q%) _U%!&A4>0 shell_Tracef0("Receive:PaletteChange message received"):c%=_U%!&A4:k%= ("FN"+$c%) shell_Message_SaveDesktop(_Q%) shell_Message_Shutdown(_Q%) shell_InteractiveHelp(_Q%) shell_MenuWarning(_Q%) shell_Message_ModeChange(_Q%) _U%!&A8>0 shell_Tracef0("Receive:TaskInitialise message received"):c%=_U%!&A8:k%= ("FN"+$c%+"("+ (_Q%!4)+","+ shell_GetString(_Q%+28)+ 34+")") _U%!&D0=-1 shell_GetString(_Q%+28)="StrongHelp" _U%!&D0=_Q%!4: shell_StrongHlpMsg("Help_Install -DieWithTask "+ shell_GetAppDir+"."+ shell_GetAppName):c%=_U%!&D8: $c%<>"" shell_HelpWord($c%): shell_HeapBlockReturn(_U%!&D8):_U%!&D8=0 _U%!&AC>0 shell_Tracef0("Receive:TaskCloseDown message received"):c%=_U%!&AC:k%= ("FN"+$c%) _Q%!4=_U%!&D0 _U%!&D0=-1 shell_Tracef0("Receive:TaskNameIs message received"): shell_GetString(_Q%+28)="StrongHelp" _U%!&D0=_Q%!20 shell_ScanForHelp &80140: shell_HandlePrintFile(_Q%) &80143: shell_HandlePrintError(_Q%) &80145: shell_HandlePrintTypeOdd(_Q%) &80147: shell_HandleSetPrinter(_Q%) shell_HandleUnknownMessage2(_Q%) shell_Message_ModeChange(_Q%): d%,g%,pB%,p%:pB%=_U%!&B8: _U%!&A0>0 shell_Tracef0("Message_ModeChange:ModeChange message received"):c%=_U%!&A0:k%= ("FN"+$c%) shell_HeapBlockFetch(&64): pB%<>0 shell_Tracef0("Message_ModeChange:Checking static window list for pane events"): pB%!g%<>-1:d%= shell_GetEventListOffset(pB%!g%,-1,_U%+92,24, d%>-1 shell_Tracef0("Message_ModeChange:Static window handle found"): shell_WindowIsOpen(pB%!g%) shell_Tracef0("Message_ModeChange:Window is open.."):!p%=pB%!g%: &400C6,,p%: shell_OpenWindow(pB%!g%,0,-1) :g%+=4: shell_HeapBlockReturn(p%): shell_Message_Shutdown(_Q%): _U%!312>0 shell_Tracef0("Message_Shutdown:Shutdown message received"):c%=_U%!312:k%= ("FN"+$c%) shell_HandleUnknownMessage2(_Q%): _Q%!16 &43B00:b$=$(_Q%+20): b$,30)="EvntShellLib:ShellDBug started" _U%!&64 0 shell_HeapBlockReturn(_U%!300) h<_U%!300= shell_HeapBlockFetch( A$+1):c%=_U%!300:$c%=A$: shell_AttachShutdownHandler(A$): c%,k%: _U%!312>0 shell_HeapBlockReturn(_U%!312) t<_U%!312= shell_HeapBlockFetch( A$+1):c%=_U%!312:$c%=A$: shell_AttachModeChangeHandler(A$): c%,k%: _U%!&A0>0 shell_HeapBlockReturn(_U%!&A0) J_U%!&A0= shell_HeapBlockFetch( A$+1):c%=_U%!&A0:$c%=A$:k%= ("FN"+A$): shell_AttachPaletteChangeHandler(A$): c%,k%: _U%!&A4>0 shell_HeapBlockReturn(_U%!&A4) J_U%!&A4= shell_HeapBlockFetch( A$+1):c%=_U%!&A4:$c%=A$:k%= ("FN"+A$): shell_AttachTaskInitialiseHandler(A$): c%,k%: _U%!&A8>0 shell_HeapBlockReturn(_U%!&A8) <_U%!&A8= shell_HeapBlockFetch( A$+1):c%=_U%!&A8:$c%=A$: shell_AttachTaskCloseDownHandler(A$): c%,k%: _U%!&AC>0 shell_HeapBlockReturn(_U%!&AC) <_U%!&AC= shell_HeapBlockFetch( A$+1):c%=_U%!&AC:$c%=A$: shell_RAMFetch(_Q%): KH%,XE%,ZE%:ZE%= _U%!&90>&8000 shell_Tracef0("RAMFetch:RAMFetch called.."):_Q%!&C=_Q%!8:_Q%!16=7:XE%=_U%!&88: _U%!&8C=&FF9 _U%!&90+=4 (XE%-_U%!&80)<_Q%!24 _Q%!24=XE%-_U%!&80:ZE%= 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: _U%!&80=0 shell_RAMTransmit(_Q%): d%,a%,cA$,c%: _Q%!&C=_U%!&70 $_U%!&80+=_Q%!24: _Q%!24<_U%!&84 shell_Tracef0("RAMTransmit:Last block received"):d%= shell_GetEventListOffset(_U%!28,_U%!32,_U%+96,16, ):a%=_U%!96+d%: shell_Tracef0("RAMTransmit:_U%!28="+ _U%!28): shell_Tracef0("RAMTransmit:_U%!32="+ _U%!32) shell_Tracef0("RAMTransmit:offset%="+ d%):c%=_U%!&9C:cA$= shell_GetString(c%+44): shell_UserFNLoadFile(c%!40,_U%!&98,a%!8,cA$,_U%!&84,a%) shell_Tracef0("RAMTransmit:Block received"): _U%!&80>_U%!&84 shell_Tracef0("RAMTransmit:Increasing buffer size.."):_U%!&98= shell_HeapBlockExtend(_U%!&98,_U%!&80,_U%!&84) :_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(_G%): v$,hB%,SD%,PB%:v$= shell_GetString(_Q%+44):hB%= shell_FileLength(v$): hB%<0 shell_OK( shell_MessageNoArgs("SHELLMSG16")) PPB%= shell_HeapBlockFetch(hB%): &20008,16,v$,PB%,0 ;SD%: shell_VFlag(SD%) shell_HeapBlockReturn(PB%): shell_OK( shell_MessageNoArgs("SHELLMSG17")) shell_Tracef0("LoadFile:File "+v$+" loaded ok at &"+ ~PB%) :=PB% shell_VFlag(SD%):=((SD% 1)=1) shell_CheckType(x%,rB%,sB%): AH%,g%,m%,c%,AD%:g%=0:m%=-1:AD%= _U%!&64 _U%!&64=_U%!&64 rB%!g%<>-1:c%=rB%!g%: 1<<31 c%=c% 1<<31:AD%= c%=x% m%=g%: BL_U%!&64=_U%!&64 1<<1: shell_Tracef0("CheckType:Top Bit Load detected..") :g%+=4: (x%>=4096) m%=-1 m%>-1 shell_Tracef0("CheckType:File type OK "+ ~rB%!m%) shell_Tracef0("CheckType:File type NOT ok "+ m%<>-1 shell_Exit: xB%:xB%=_U%!68: &61504,xB%: &2001E,7,,xB%: shell_Tracef0("Exit:Application closing down"): shell_TraceExit: &606C2: &600D0,,-1: shell_WimpCloseDown_I(_U%!&94): shell_DataLoad(_Q%,sB%): MH%,d%,a%,_temp%,rB%,x%,i$: shell_DataOpenOKToLoad(sB%,_Q%!40) kdx%=_Q%!40:i$= shell_GetString(_Q%+44): shell_Tracef0("DataLoad:DataLoad message received"): _U%!96<>0 d%=-1 shell_GetEventListOffset(_Q%!20,_Q%!24,_U%+96,16, d%=-1 shell_GetEventListOffset(_Q%!20,-1,_U%+96,16, d%>-1 4a%=_U%!96+d%: shell_CheckType(_Q%!40,a%!8,sB%) shell_Tracef0("DataLoad:File type recognised (&"+ ~_Q%!40+")"):WG%=_Q%!&C:_Q%!&C=_Q%!8:_Q%!16=4: &400E7,18,_Q%,_Q%!4: _U%!&64 PB%=-1:_U%!&64=_U%!&64 shell_LoadFile(WG%=_U%!&6C) shell_UserFNLoadFile(x%,PB%,a%!8,i$,_Q%!36,a%): _U%!&9C<>0 shell_HeapBlockReturn(_U%!&9C):_U%!&9C=0 shell_Tracef0("DataLoad:File type NOT recognised (&"+ ~_Q%!40+")") shell_DataOpenOKToLoad(sB%,x%): w%,JE%,TA$,OA$: shell_Tracef0("DataOpenOKToLoad:Message reason code was 3, normal drag load..") shell_Tracef0("DataOpenOKToLoad:Message reason code was 5, double click load.."):JE%= shell_HeapBlockFetch(256):TA$= shell_OSVarGetVal(JE%,256,"Alias$@RunType_"+ ~x%,1): shell_Tracef0("DataOpenOKToLoad:Alias$@RunType="+TA$) shell_HeapBlockReturn(JE%):OA$= shell_Branch(TA$): shell_Tracef0("DataOpenOKToLoad:dbug "+OA$): shell_Leaf(OA$)="!"+ shell_GetAppName shell_UserFNLoadFile(x%,PB%,rB%,_filename$,_file_size%,a%): g%,m%,c%,k%:g%=0:m%=-1: rB%!g%<>-1:c%=rB%!g%: 1<<31 c%=c% 1<<31 c%=x% m%=g% [g%+=4: :c%=a%!&C:k%= ("FN"+$(c%!m%)+"("+ PB%+","+ x%+",_filename$,"+ _file_size%+")"): shell_DataSave(_Q%): c%,d%,a%,y%: shell_Tracef0("DataSave:DataSave message received"): _Q%!4<>_U%!&94 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"+ &400E7,18,_Q%,_Q%!4 shell_HeapBlockReturn(_U%!&9C):_U%!&9C= shell_HeapBlockFetch((_Q%!0)+8):c%=_U%!&9C: _Q%!0 4:c%!y%=_Q%!y%: y%:_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") shell_Tracef0("DataSave:Filetype NOT recognized") shell_TopBitLoadInProgress: _U%!&64 shell_SendDataSave(b%,f%): a%,GA%,tB%,d%,hB%,k%:tB%= shell_HeapBlockFetch(30): &400CF,,tB%:d%= shell_GetEventListOffset(b%,f%,_U%+72,24, d%=-1 d%=-2 0dk%= shell_MessageWindow( shell_MessageNoArgs("SHELLMSG13"),0,"", shell_MessageNoArgs("warning")) a%=(_U%!72)+d%: a%!8>&8000 4$hB%= shell_HeapBlockInfo(a%!8)-4 hB%=a%!8 :GA%=_U%!76:GA%!0=256:GA%!&C=0:GA%!16=1:GA%!20=tB%!&C:GA%!24=tB%!16:GA%!28=tB%!0:GA%!32=tB%!4:GA%!36=hB%:GA%!40=a%!&C:$(GA%+44)= shell_Leaf( shell_IconGetData(b%,a%!16)): &400E7,18,GA%,GA%!20,GA%!24:_U%!&78=_Q%!8:_U%!&88=hB%:_U%!&8C=a%!&C G;_U%!&90=a%!8:_U%!&9C=a%!4:_U%!&C8=GA%!20:_U%!&CC=GA%!24 shell_HeapBlockReturn(tB%): shell_DataSaveAck(_Q%): _fullname$,PA%,kA%,a%,c%,k%: shell_Tracef0("DataSaveAck:DataSaveAck message received"):PA%=0:kA%=_Q%?(44+PA%): kA%<>0:_fullname$+= (kA%):PA%+=1:kA%=_Q%?(44+PA%): shell_Tracef0("DataSaveAck:Full save name is: "+_fullname$) shell_Tracef0("DataSaveAck:task = &"+ _Q%!4): shell_Tracef0("DataSaveAck:mytask = &"+ _U%!&94):d%= shell_GetEventListOffset(_U%!28,_U%!32,_U%+72,24, shell_Tracef0("DataSaveAck:offset% = "+ d%>=0 f%a%=(_U%!72)+d%:c%=a%!20: $c%<>"" j!k%= ("FN"+$c%+"(_fullname$)") shell_HeapBlockExists(a%!8) 8,&A,_fullname$,a%!&C,,a%!8,a%!8+ shell_HeapBlockInfo(a%!8)+1 shell_MessageNoArgs("SHELLMSG21") _Q%!36>-1 _U%!80<>0 shell_HeapBlockReturn(_U%!80) yH_U%!80= shell_HeapBlockFetch( _fullname$+1):c%=_U%!80:$c%=_fullname$ :_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 shell_Tracef0("DataSaveAck:Sending DataLoad Message"): &400E7,18,_Q%,_Q%!20,_Q%!24: _U%!28<>_U%!20 shell_CloseWindow(_U%!28) &400D4,,-1 shell_PrintSave(_fullname$,_Q%!20,_Q%!24,_Q%!8,_Q%!40): shell_Tracef0("DEBUG:: copies = "+ (_U%!336)): _U%!336>0 +_U%!336-=1: shell_DoSendPrintSave(&FFF) shell_DataSaveCheckName(b%,f%): d%,a%,q%:a%=_U%!72:d%=0: a%<>0 shell_HeapBlockInfo(a%)-8: !(a%+d%)=b% shell_IconGetData(!a%,a%!16): R$,".")=0 shell_OK( shell_MessageNoArgs("SHELLMSG01")) d%=q% :d%+=24: d%>=q% shell_DataLoadAck(_Q%): shell_Tracef0("DataLoadAck:DataLoadAck message received (file received ok)"): shell_UserMessageAcknowledge(_Q%): _Q%!16 shell_AckDataLoad(_Q%) shell_AckRAMFetch(_Q%) _Q%!8=_SHELL_SENDDATALOAD_MY_REF% RO3_Present ("Filer_Run "+_SHELL_SENDDATALOAD_FILE$) ("Run "+_SHELL_SENDDATALOAD_FILE$) shell_AckDataLoad(_Q%): _Q%!&C<>_U%!84 &20008,6,"": &FF,"Data Transfer failed: Receiver died" shell_AckRAMFetch(_Q%): cF%,c%:c%=_U%!&9C: shell_Tracef0("AckRAMFetch:AckRAMFetch called...."): _Q%!&C<>_U%!&70 _U%!&80=0 shell_Tracef0("AckRAMFetch:Receiver does not support RAM transfer"): &20023,"Wimp$Scrap",,-1,0,3 ,,cF%: cF%<>0 $(c%+44)=""+ (0):c%!0=(49+ shell_GetString(c%+44))) 3:c%!&C=c%!8:c%!16=2:c%!36=-1: &400E7,18,c%,c%!4:_U%!&6C=c%!8 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") shell_MenuWarning(_Q%): A$,WB%,LA%,RA%,k%,_temp%,PA%,E$,uB%,a%:LA%=_Q%!24:RA%=_Q%!28:_U%!264=0: _U%!20<>0 shell_Tracef0("MenuWarning:Removing last dynamic dbox (handle=&"+ ~_U%!20+")"):k%= shell_DeleteWindow(_U%!20): shell_Tracef0("MenuWarning:Last dynamic dbox removed") _Q%!20 _U%!&E4: shell_WindowRetitle(_U%!&E4, shell_MessageNoArgs("warning")): shell_IconPutData(_U%!&E4,1, shell_MessageNoArgs("SHELLMSG07"),0): &400E8,,_U%!&E4,LA%,RA% shell_MenuGetItemAddress(_U%!24,_Q%+32): shell_HeapBlockExists(uB%!4) shell_MenuWarnDBox(uB%,LA%,RA%) shell_HeapBlockFetch(32): &45BC4,_U%!24,_Q%+32 ,,a%: shell_FindMenuWarnEvent(a%!8,E$,J$): shell_HeapBlockReturn(a%): shell_MenuWarnSubMenu(_Q%!20,LA%,RA%,E$,J$) shell_MenuWarnDBox(DB%,LA%,RA%): c%,u%,k%: c%=DB%!4: shell_CreateWindow($c%!0,u%): shell_Tracef0("MenuWarnDBox:Creating new dynamic dbox (handle=&"+ ~u%+")"): $c%!4<>"" shell_Tracef0("MenuWarnDBox:Calling preopen FN '"+$c%!4+"'"):k%= ("FN"+$c%!4+"("+ u%+")") $c%!8<>"" shell_Tracef0("MenuWarnDBox:Calling postopen FN '"+$c%!8+"'"):k%= ("FN"+$c%!8+"("+ u%+")") shell_Tracef0("MenuWarnDBox:Opening dbox.."):_U%!20=u%: &400E8,,u%,LA%,RA%: shell_FindMenuWarnEvent(dA%, w%,z%,c%,d%,m%,q%,CA%,g%: wB%:wB%=0:z%=_U%!&DC:d%=0:m%= :E$="":wB%=0: shell_HeapBlockExists(z%) :g%+=4: z%!g%=-1:q%=g%:g%=0: shell_Tracef0("FindMenuWarnEvent:list_size%="+ :c%=!(z%+d%+0): c%<>-1 c%=dA% gum%= :CA%=z%!(d%+4):E$=$CA%:wB%=z%!(d%+8):CA%=z%!(d%+&C):J$=$CA%: shell_Tracef0("FindMenuWarnEvent:submenu found") :d%+=16 d%=q% d%>=q% E$="":J$="" wB%=0 shell_Tracef0("FindMenuWarnEvent:warn fn not found..") shell_MenuWarnSubMenu(fD%,LA%,RA%,E$,J$): k%,c%,RB%,g%:_shell_FontMenuSelFN$=J$: shell_HeapBlockExists(_U%!&E0) shell_HeapBlockReturn(_U%!&E0) C_U%!&E0= shell_HeapBlockFetch( E$+1):c%=_U%!&E0:$c%=E$: E$<>"" ("FN"+E$+"(_U%!52,_U%!56)"): shell_Tracef0("MenuWarnSubMenu:Calling FN"+E$) fD%=_U%!&FC shell_Tracef0("MenuWarnSubMenu:FontMenu opening.."): shell_HeapBlockExists(_U%!256) shell_HeapBlockReturn(_U%!256) g%=0: :g%+=4: !(_Q%+32+g%)=-1:g%+=4:_U%!256= shell_HeapBlockFetch(g%):c%=_U%!256:g%=0: :c%!g%=!(_Q%+32+g%):g%+=4: !(_Q%+32+g%)=-1:c%!g%=!(_Q%+32+g%):c%=_U%!256 shell_Tracef0("MenuWarnSubMenu:Selecting '"+ shell_FontMenuGetLastSelectedFont+"' in FontMenu.."): "FontMenu_Select", shell_FontMenuGetLastSelectedFont,_U%!260 ,RB%:_U%!264=1: RB%<>_U%!&FC shell_FontMenuUpdatePtr(RB%):_U%!&FC=RB%:fD%=RB% _U%!264=0 &400E8,,fD%,LA%,RA%: shell_AttachSubMenu(UB%,wB%,E$): &45BCE,UB%,wB%: E$<>"" &45BCC,, shell_EventListMenuWarn(UB%,wB%,E$,"") shell_EventListMenuWarn(UB%,lF%,E$,J$): c%,CA%,g%,z%: _U%!&DC=0 _U%!&DC= shell_HeapBlockFetch(32):c%=_U%!&DC:c%!0=UB%:c%!4= shell_HeapBlockFetch( E$+1):$(c%!4)=E$:c%!8=lF%:c%!&C= shell_HeapBlockFetch( J$+1):$(c%!&C)=J$:c%!16=-1:c%!20=-1:c%!24=-1:c%!28=-1 shell_HeapBlockExtend(_U%!&DC,32):_U%!&DC=z%:g%=0: :g%+=16: z%!g%=-1:c%=_U%!&DC:c%!g%=UB%:c%!(g%+4)= shell_HeapBlockFetch( E$+1):CA%=c%!(g%+4):$(CA%)=E$:c%!(g%+8)=lF%:c%!(g%+&C)= shell_HeapBlockFetch( J$+1):CA%=c%!(g%+&C):$(CA%)=J$ ;c%!(g%+16)=-1:c%!(g%+20)=-1:c%!(g%+24)=-1:c%!(g%+28)=-1 shell_InteractiveHelp(_Q%): G$,a$,K$,XB%,nD%,sA$,s%,l%:s%= shell_HeapBlockFetch(&C): &600D6,_Q%!32,s%,&3F0000,&C<<16 !s%<>-1 shell_IconGetData(_Q%!32,!s%) shell_HeapBlockReturn(s%): G$="" shell_GetEventHandler(_Q%!32,_Q%!36,8) shell_IconGetValidation(_Q%!32,_Q%!36): K$<>"" shell_StringUpperCase( K$,1))="I" K$,";"): XB%=0 K$,2) K$,2,XB%-2) shell_StringUpperCase(K$), shell_StringUpperCase(";i")):nD%= shell_StringUpperCase(K$), shell_StringUpperCase(";"),XB%+1): XB%>0 nD%>0 K$,XB%+2,nD%-XB%-2) K$,XB%+2) G$<>"" _Q%!16=&503:_Q%!&C=_Q%!8:a$= shell_MessageLookup(G$,"",""):a$= shell_MessageExpand(a$):$(_Q%+20)=a$:!_Q%=( a$+25) &400E7,17,_Q%,_Q%!4 shell_Message_PreQuit(_Q%): c%,qD%,a%,y%,tD%: _U%!300>0 shell_HeapBlockFetch(256): _Q%!0 4:a%!y%=_Q%!y%: shell_Tracef0("Message_PreQuit:PreQuit message received"):c%=_U%!300:qD%=a%!4: !a%<24 tD%=0 tD%=a%!20 -2a%!&C=a%!8: &400E7,19,a%,qD%: ("FN"+$c%)<>0 _closedown%= !a%=24:a%!24=508: &400E7,8,a%,qD%:_closedown%= shell_HeapBlockReturn(a%) lwaorigin(A, RA%):LA%=A!0-A!16:RA%=A!&C-A!20: shell_Iconbar(FA%,PA$,I$,yD%,n%,QC%,LC%,pC%): I$="" KK!_Q%=FA%:_Q%!4=0:_Q%!8=0:_Q%!&C=70:_Q%!16=70:_Q%!20=&301A:$(_Q%+24)=PA$ !_Q%=FA%:_Q%!4=0:_Q%!8=-16:_Q%!&C=yD%:_Q%!16=90:_Q%!20=&1700210B: _Q%!24&C: _Q%!28 (PA$)+2:$(_Q%!24)=I$:$(_Q%!28)="S"+PA$:_Q%!32=&C &400C2,,_Q% shell_AttachMenu(-2,h%,n%,QC%,LC%,pC%):=h% shell_IconbarSetText(u%,kG%,L$): j%,p%:j%= shell_HeapBlockFetch(40):p%= shell_HeapBlockFetch(36):p%!20=0: shell_OSCheckVersion(3) u%=-1 !p%=-2 !p%=u% &400CB,,p% :!j%=u%:j%!4=kG%: &400CE,,j%:$(j%!28)=L$: &400D1,-1,j%!8-&64-p%!20,j%!&C,j%!16+&64-p%!20,j%!20: shell_HeapBlockReturn(j%): shell_HeapBlockReturn(p%): shell_WritableIconHandler(b%,f%,WA%): oA%,OC%,PC%,g%: TE%,aE%,sA%,BB%,OB%,zG%,t%:t%= shell_HeapBlockFetch(&400): &400D3,,t%: !t%=-1 shell_HeapBlockReturn(t%):= &400D6,b%,t%,&40E000,&E000:OC%=!t%:g%=0: t%!g%=f% TE%=t%!(g%-4):aE%=t%!(g%+4) :g%+=4: t%!g%=-1:PC%=t%!(g%-4): shell_FakeMouseClick(b%,0,4) 398,394: f%=PC% &400D2,b%,OC%,-1,-1,-1, shell_IconGetData(b%,OC%)) &400D2,b%,aE%,-1,-1,-1, shell_IconGetData(b%,aE%)) 399,410: f%=OC% &400D2,b%,PC%,-1,-1,-1, shell_IconGetData(b%,PC%)) &400D2,b%,TE%,-1,-1,-1, shell_IconGetData(b%,TE%)) &400D2,b%,OC%,-1,-1,-1, shell_IconGetData(b%,OC%)) &400D2,b%,PC%,-1,-1,-1, shell_IconGetData(b%,PC%)) shell_HeapBlockReturn(t%):= shell_FakeMouseClick(b%,f%,kB%): 6,&F,1:_Q%!8=kB%:_Q%!&C=b%:_Q%!16=f%: shell_Action(6): shell_IconHasCaret(BA%,zB%): t%,UA%,JA%:t%= shell_HeapBlockFetch(24): &400D3,,t%:JA%=t%!0:UA%=t%!4: shell_HeapBlockReturn(t%): (UA%=zB% JA%=BA%) shell_IconCreate(b%,KB%,rA%,yD%,u%,oD%,fE%,dG%,O$,DB%,_B%,K$): YG%,h%,KC%,j%:j%= shell_HeapBlockFetch(40):j%!0=b%:j%!4=KB%:j%!8=rA%:j%!&C=KB%+yD%:j%!16=rA%+u%:j%!20=dG% fE%<<28 oD%<<24: j%!20 #YG%= O$,","):j%!24=DB%: K$<>"" 6KC%= shell_HeapBlockFetch( K$+1):$KC%=K$:j%!28=KC% j%!28=-1 :j%!32=_B% $(j%+24)= O$,&B) &400C2,,j% shell_HeapBlockReturn(j%):=h% shell_IconDelete(b%,f%): shell_DoIconDelete(b%,f%, shell_IconDelete2(b%,f%): shell_DoIconDelete(b%,f%, shell_DoIconDelete(b%,f%,EG%): a%,QA%,TA%,cA%,lA%:a%= shell_HeapBlockFetch(40):a%!0=b%:a%!4=f%: &400CE,,a%: &8168A,,a%+8:QA%=a%!8:TA%=a%!&C:cA%=a%!16:lA%=a%!20: &400CE,,a%: shell_HeapBlockExists(a%!28) shell_HeapBlockReturn(a%!28) shell_HeapBlockExists(a%!32) shell_HeapBlockReturn(a%!32) &400C4,,a%: &400D1,b%,QA%,TA%,cA%,lA% shell_HeapBlockReturn(a%): shell_IconRadioSelection(BA%,iB%): fF%,_C%,rF%,sF%:_C%= shell_HeapBlockFetch(8):fF%=(iB%<<16)+(1<<21):sF%=(31<<16)+(1<<21): &400D6,BA%,_C%,sF%,fF%:rF%=!_C%: shell_HeapBlockReturn(_C%):=rF% shell_IconPutData(JA%,UA%,O$,J): a%,UA$: _U%!&64 "WimpExt_SetIconString",,,JA%,UA%,O$+ shell_IconGetData(JA%,UA%): O$<>UA$ (Sa%= shell_HeapBlockFetch(40):a%!0=JA%:a%!4=UA%: &400CE,,a%: (a%!24 (1<<8))<>0 O$>a%!36 shell_MessageNoArgs("SHELLMSG12") $(a%!28)=O$ $(a%+28)= O$,&B) a%!8=0:a%!&C=0: &400CD,,a% shell_HeapBlockReturn(a%) shell_IconPutDataNow(JA%,UA%,O$): a%:a%= shell_HeapBlockFetch(50):a%!0=JA%:a%!4=UA%: &400CE,,a%: (a%!24 (1<<8))<>0 O$>a%!36 shell_MessageNoArgs("SHELLMSG12") $(a%!28)=O$ $(a%+28)= O$,&B) :a%!8=0:a%!&C=0: &400CD,,a%: shell_EnsurePoll: shell_HeapBlockReturn(a%): shell_IconNewSprite(JA%,UA%,eA$,J): j%:j%= shell_HeapBlockFetch(40):j%!0=JA%:j%!4=UA%: &400CE,,j%: &400C4,,j%:j%!4=j%!8:j%!8=j%!&C:j%!&C=j%!16:j%!16=j%!20:j%!20=j%!24:$(j%+24)=eA$: &400C2,,j% &400D1,j%!0,j%!4,j%!8,j%!&C,j%!16 shell_HeapBlockReturn(j%):=UA% shell_IconGetData(JA%,UA%): M$,j%: UA%<0 JA%<-2 _U%!&64 "WimpExt_GetIcon",,,JA%,UA% ,,,M$ shell_HeapBlockFetch(40):j%!0=JA%:j%!4=UA%: &400CE,,j%: (j%!24 (1<<8))<>0 M$=$(j%!28) M$=$(j%+28) shell_HeapBlockReturn(j%) shell_IconMove2(b%,f%,lE%,pE%): AA%:AA%= shell_HeapBlockFetch(40):!AA%=b%:AA%!4=f%: &400CE,,AA%:AA%!8+=lE%:AA%!16+=lE%:AA%!&C+=pE%:AA%!20+=pE%:f%= shell_IconMove(b%,f%,AA%!8,AA%!&C,AA%!16,AA%!20): shell_HeapBlockReturn(AA%):=f% shell_IconResize(b%,f%,QA%,TA%,cA%,lA%):= shell_IconMove(b%,f%,QA%,TA%,cA%,lA%) shell_IconMove(b%,f%,QA%,TA%,cA%,lA%): s%,EH%,JH%,LB%,a%: IF%,JF%,MF%,QF%:s%= shell_HeapBlockFetch(40):a%= shell_HeapBlockFetch(40):!s%=b%:s%!4=f%: &400CE,,s%:!a%=b%:a%!4=f%: &400CE,,a%: &8168A,,a%+8:IG%=s%!24:SE%=s%+28 IF%=IG%:JF%=SE%!0:MF%=SE%!4:QF%=SE%!8:LB%=s%!8-a%!8: &400C4,,s%: &400D1,!s%,s%!8-LB%,s%!&C-LB%,s%!16+LB%,s%!20+LB%:f%= shell_CreateIcon2(b%,QA%,TA%,cA%,lA%,IF%,JF%,MF%,QF%,LB%): shell_HeapBlockReturn(s%): shell_HeapBlockReturn(a%):=f% shell_CreateIcon2(h%,QA%,TA%,cA%,lA%,l%,PG%,SG%,TG%,LB%): _%,OA%,I$,f$,KB%,rA%:OA%= shell_HeapBlockFetch(60):!OA%=h%:OA%!20=l%:OA%!24=PG%:OA%!28=SG%:OA%!32=TG%:I$="":f$="": 256I$=$(OA%!24) I$=$(OA%+24) shell_IconGetCommand(OA%!28,"S") f$=$(OA%+24) shell_GetMinXY(l%,I$,f$): cA%-QA%"" &40084,l%>>24 ,,TA%,,lA%: &40097,, (l%>>24)+I$ ,QA%,,cA%: &40088,,QA% ,QA%: &40088,,cA% ,cA%:KB%=cA%-QA%:rA%=lA%-TA% KB%=6*NH%+16* I$:rA%=32 4rA%+=2*CH% f$<>"" &2002E,296, shell_UserSpritesBase,f$ ,,,BB%,OB%,,yF%;P%: &20035,yF%,4 ,,yG%:BB%=BB%<KB%KB%=BB% OB%>rA%rA%=OB% shell_IconGetCommand(BD%,iA$): I%,M$: BD%<=0 M$="" shell_StringUpperCase($BD%),";"+ shell_StringUpperCase(iA$)): M$="" $(BD%+I%), $(BD%+I%)+";",";")-1) shell_IconRedraw(b%,f%): a%:a%= shell_HeapBlockFetch(40):!a%=b%:a%!4=f%: &400CE,,a%: &8168A,,a%+8: &400D1,b%,a%!8,a%!&C,a%!16,a%!20: shell_Action( shell_Poll_I(0,_U%!&94)): shell_HeapBlockReturn(a%): shell_IconGetValidation(b%,f%): a%,K$,l%: f%=-1 UK$="":a%= shell_HeapBlockFetch(40):a%!0=b%:a%!4=f%: &400CE,,a%:l%=a%!24: a%!32>0 K$=$(a%!32) shell_HeapBlockReturn(a%):=K$ shell_IconPutValidation(b%,f%,x$): a%,l%:a%= shell_HeapBlockFetch(&64):a%!0=b%:a%!4=f%: &400CE,,a%:l%=a%!24: $(a%!32)=x$ shell_HeapBlockReturn(a%): shell_IsIconSelected(ZB%,aB%): shell_IconGetState(ZB%,aB%):l%=_Q%!24:c%=(l% &200000): shell_IconSelect(ZB%,aB%): shell_IconSetState(ZB%,aB%,&200000,&200000): shell_IconDeselect(ZB%,aB%): shell_IconSetState(ZB%,aB%,0,&200000): shell_IconGetState(ZB%,aB%):!_Q%=ZB%:_Q%!4=aB%: &400CE,,_Q%: shell_IconSetSelected(b%,f%,iA%): iA%=0 shell_IconDeselect(b%,f%) shell_IconSelect(b%,f%) shell_IconSet(b%,f%,iA%): iA%=0 shell_IconDeselect(b%,f%) shell_IconSelect(b%,f%) shell_IconSetState(ZB%,aB%,lG%,DG%): j%:j%= shell_HeapBlockFetch(16):!j%=ZB%:j%!4=aB%:j%!8=lG%:j%!&C=DG%: &400CD,,j%: shell_HeapBlockReturn(j%): shell_IconUnselectable(h%,cC%): shell_IconSetState(h%,cC%,&400000,&40000): shell_IconSetBGColour(b%,f%,uA%): uA%<0 uA%>&F shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetBGColour") shell_IconSetState(b%,f%,uA%<<28,&F0000000): shell_IconSetFGColour(b%,f%,uA%): uA%<0 uA%>&F shell_MessageOneArg("SHELLMSG24","PROCshell_IconSetFGColour") shell_IconSetState(b%,f%,uA%<<24,&F000000): shell_CaretSetPosition(JA%,UA%,VG%,bG%,bA%,sA%): &400D2,JA%,UA%,VG%,bG%,bA%,sA%: shell_CaretReadPosition( sA%): t%:t%= shell_HeapBlockFetch(24): &400D3,,t%:JA%=t%!0:UA%=t%!4:dC%=t%!8:eC%=t%!&C:sA%=t%!20: shell_HeapBlockReturn(t%): shell_IconSetButtonType(b%,f%,fC%): fC%=&C fC%=&D shell_MessageOneArg("SHELLMSG23","PROCshell_IconSetButtonType") fC%<0 fC%>&F shell_MessageOneArg("SHELLMSG22","PROCshell_IconSetButtonType") shell_IconSetState(b%,f%,fC%<<&C,&F000): shell_IconSetESG(b%,f%,iB%): iB%<0 iB%>31 shell_MessageOneArg("SHELLMSG25","PROCshell_IconSetESG") shell_IconSetState(b%,f%,iB%<<16,&1F0000): shell_IconSetText(b%,f%,DA%): DA%<>0 DA%=1<<0 shell_IconSetState(b%,f%,DA%,1<<0): shell_IconSetSprite(BA%,zB%,DA%): DA%<>0 DA%=1<<1 shell_IconSetState(BA%,zB%,DA%,1<<1): shell_IconSetBorder(BA%,zB%,DA%): DA%<>0 DA%=1<<2 shell_IconSetState(BA%,zB%,DA%,1<<2): shell_IconSetHCentred(b%,f%,DA%): shell_IconSetState(b%,f%,0,1<<9): DA%<>0 DA%=1<<3 shell_IconSetState(b%,f%,DA%,1<<3): shell_IconSetVCentred(b%,f%,DA%): DA%<>0 DA%=1<<4 shell_IconSetState(b%,f%,DA%,1<<4): shell_IconSetFilled(b%,f%,DA%): DA%<>0 DA%=1<<5 shell_IconSetState(b%,f%,DA%,1<<5): shell_IconSetRightJust(b%,f%,DA%): shell_IconSetHCentred(b%,f%,0): DA%<>0 DA%=1<<9 shell_IconSetState(b%,f%,DA%,1<<9): shell_IconSetLeftJust(b%,f%): shell_IconSetHCentred(b%,f%,0): shell_IconSetRightJust(b%,f%,0): shell_IconSetUnselectable(b%,f%,iA%): iA%<>0 iA%=1<<22 shell_IconSetState(b%,f%,iA%,1<<22): iA%<>0 shell_HeapBlockFetch(24): &400D3,,t%: !t%=b% t%!4=f% &400D2,-1 shell_HeapBlockReturn(t%) shell_CaretSetRight(b%,f%): &400D2,b%,f%,-1,-1,-1, shell_IconGetData(b%,f%)): print_text(K,L,I$): in(K,L-32,K+16* (I$),L) in(A%,B%,C%,D%): newvals:f=_Q%!28:i=_Q%!32:g=_Q%!36:h=_Q%!40:j=_Q%!4:k=_Q%!8:l=_Q%!&C:m=_Q%!16:O=_Q%!20:P=_Q%!24:p=l-j:q=m-k:AA=O:BA=O+p:CA=P:z=P-q: max(PA%,kA%): PA%0 ?D<>&D:z$=z$+ ?D:D+=1: shell_WindowResize(JA%,tG%,pG%,mG%,qG%,DD%):!_Q%=tG%:_Q%!4=pG%:_Q%!8=mG%:_Q%!&C=qG%: &400D7,JA%,_Q%: v)_Q%!0=JA%: &400CC,,_Q%: &400C5,,_Q% shell_WindowRetitle( JA%,T$): c%,r%,h%,yE%:r%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(JA%)*32)):r%!0=JA%: &400CC,,r%: ((r%!60) 256)=0 Ac%=r%+76:$c%= T$,&B): &400C3,,r%: &400C1,,r%+4 h%<>JA% shell_UpdateWindowHandle(JA%,h%):JA%=h% yE%=r%!84:$(!(r%+76))= T$,yE%-1): ((r%!32) (1<<16))<>0 &400D1,-1,r%!4,r%!16,r%!&C,r%!16+44 shell_HeapBlockReturn(r%) shell_WindowTitleIndirected(vB%): (1<<8))=(1<<8) shell_ScreenToWindowCoords(zE%, gD%,AF%,DH%,BF%,CF%,BC%:BC%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(zE%)*32)):gD%=BC%:!gD%=zE%: &400CC,,gD%:AF%=BC%!4:RG%=BC%!16:BF%=BC%!20:CF%=BC%!24:X%=X%+(BF%-AF%):Y%=Y%+(CF%-RG%) shell_HeapBlockReturn(BC%): shell_WimpSlotReadEnd: &400EC,-1,-1 SC%:=SC% shell_WimpSlotClaimMemory(SC%,qA%): &400EC,SC%+qA%,-1 iD%0:V$+= (kD%?d%):d%+=1: 1:V$= 34)+1):V$= 34)+2) shell_StringStripTrailing(B$,X$): B$,1)=X$:B$= (B$)-1): shell_StringStripLeading(B$,X$): B$,1)=X$:B$= B$,2): shell_StringStripAll(B$,X$): E,F:E= B$,X$): B$,F-1)+ B$,F+1) E:=B$ shell_StringPadTrailing(B$,X$,IB%): (B$)0 (B$): B$,y%,1)>="a" B$,y%,1)<="z" B$,y%,1)= B$,y%,1)) shell_StringExchange(B$,DA$,hA$): B$,DA$) 0sA%= B$,DA$):B$= B$,sA%-1)+hA$+ B$,sA%+ shell_StringArrayGetLongest(A$(),ED%): y%,FD%:FD%=0: (A$(y%))>FD% (A$(y%)) y%:=FD% mem_to_string(WF%,d%,NG%): WF%?d%<>NG%:B$+= (WF%?d%):d%+=1: shell_FileLength(W$): x%,CD%,ID%,IB%,TC%,B$: 8,5,W$ x%,,CD%,ID%,IB%,TC%:=IB% shell_TraceOn:_U%!&64=_U%!&64 1<<9: shell_BroadcastMessage(&43B00,"ShellDBug:TraceOn"): shell_TraceOff: (_U%!&64 (1<<9)) _U%!&64=_U%!&64 (1<<9) shell_BroadcastMessage(&43B00,"ShellDBug:TraceOff"): shell_TraceInit(o$): YA%,a%,D$,C$: o$<>"" (o$):_U%!44=YA% shell_HeapBlockFetch(256):C$= shell_OSVarGetVal(a%,256,"Obey$Dir",1):D$= shell_Leaf(C$),2): shell_BroadcastMessage(&43B00,"ShellDBug:Init Debug messages from "+D$): shell_HeapBlockReturn(a%): _U%!&64 _U%!&64=(_U%!&64 1<<4) shell_TraceIsOn: _U%!&64 (1<<9) shell_Tracef0(VA$): shell_TraceIsOn) _U%!44<>-1 YA%=_U%!44: #YA%,VA$ _U%!&94>0 shell_BroadcastMessage(&43B00,"ShellDBug:Trace "+VA$) shell_Tracef2(DB%): ("MEDIT "+ ~DB%): shell_TraceExit: _U%!44<>-1 #(_U%!44):_U%!44=-1 shell_AttachHotKey(XA$,QC%,LC%,pC%,d$,b%,Y$,Z$): z%,d%,c%,CA%,WA%,mD%:mD%= _U%!60=0 W3_U%!60= shell_HeapBlockFetch(24):d%=0:_U%!&B4=1 d%=_U%!&B4*24:_U%!60= shell_HeapBlockExtend(_U%!60,24):_U%!&B4=(_U%!&B4)+1 :z%=_U%!60: "F1":WA%=385 "F2":WA%=386 "F3":WA%=387 "F4":WA%=388 "F5":WA%=389 "F6":WA%=390 "F7":WA%=391 "F8":WA%=392 "F9":WA%=393 "F10":WA%=458 "F11":WA%=459 WA%=( XA$)-64:mD%= WA%+=16 WA%+=32 :c%=z%+d%:c%!0=WA%:c%?4=QC%:c%?5=LC%:c%?6=pC%:c%!8= shell_HeapBlockFetch( d$+1):CA%=c%!8:$CA%=d$: shell_IsWindowStatic(b%)= shell_MessageNoArgs("SHELLMSG09") :c%!&C=b%:c%!16= shell_HeapBlockFetch( Y$+1):CA%=c%!16:$CA%=Y$:c%!20= shell_HeapBlockFetch( Z$+1):CA%=c%!20:$CA%=Z$: shell_HotKeyProcess(WA%): z%,q%,m%,e%,u%,p$,Y$,Z$: LC%,QC%,pC%,mA%,pA%,vB%,OH%,d%: w%,r%:z%=_U%!60:q%=_U%!&B4*24:m%= :e%=0: z%!e%=WA% e%+=24 e%>=q%: dc%=z%+e%:p$=$(c%!8): shell_Tracef0("HotKeyProcess:Template name is '"+p$+"'"): (p$<>"" c%!&C=0) shell_CreateWindow(p$,u%): shell_Tracef0("HotKeyProcess:Creating new dynamic window (handle is &"+ ~u%+")"):r%= shell_HeapBlockFetch(36):r%!0=u%: &400CB,,r%:mA%=(r%!4-r%!&C)/2:pA%=(r%!16-r%!8)/2: shell_HeapBlockReturn(r%) :Y$=$(c%!16): Y$<>"" shell_Tracef0("HotKeyProcess:Calling Pre-Open FN '"+Y$+"'"): c%!&C>0 ("FN"+Y$+"("+ c%!&C+")") ("FN"+Y$+"("+ u%+")") shell_Tracef0("HotKeyProcess:No Pre-Open FN registered") shell_IsWindowStatic(c%!&C) shell_OpenWindowStatic(c%!&C) c%!&C>0 shell_MessageNoArgs("SHELLMSG09") shell_OpenWindowDynamic2(u%,mA%,pA%) :Z$=$(c%!20): Z$<>"" shell_Tracef0("HotKeyProcess:Calling Post-Open FN '"+Z$+"'"): c%!&C>0 ("FN"+Z$+"("+ c%!&C+")") ("FN"+Z$+"("+ u%+")") shell_Tracef0("HotKeyProcess:No Post-Open FN registered") p$="":Y$="":Z$="":w%= shell_WindowCentreOnPointer(u%): p%,hC%,mA%,pA%:hC%= shell_HeapBlockFetch(20): &400CF,,hC%:r%= shell_HeapBlockFetch(36):r%!0=u%: &400CB,,r%:mA%=(r%!4-r%!&C)/2:pA%=(r%!16-r%!8)/2: shell_WindowMoveTo(u%,hC%!0+mA%,hC%!4-pA%) shell_HeapBlockReturn(r%): shell_HeapBlockReturn(hC%): shell_WindowCentreOnScreen(u%): p%,GD%,HD%,AB%,bA%,bC%,EC%: &20035,-1,4 ,,bC%: &20035,-1,5 ,,EC%: &20035,-1,&B ,,GD%: &20035,-1,&C ,,HD%:GD%=GD%<0 shell_HeapBlockReturn(_U%!&D8) @_U%!&D8=0: shell_ScanForHelp: GA$=" -DieWithTask" GA$="" _U%!&64 F$="":wA%= shell_HeapBlockFetch(256):c$= shell_OSVarGetVal(wA%,256, shell_GetAppName+"Res$Path",-1): shell_HeapBlockReturn(wA%): :FA%= c$,","): FA%>0 shell_FileExists( c$,FA%-1)+ shell_GetAppName) !GF$= c$,FA%-1)+ shell_GetAppName: shell_StrongHlpChkFiles(F$) c$,FA%+1) shell_FileExists(c$+ shell_GetAppName) (?F$=c$+ shell_GetAppName: shell_StrongHlpChkFiles(F$) shell_OK( shell_MessageOneArg("SHELLMSG26", shell_GetAppName)) F$<>"" shell_FileExists(F$) shell_StrongHlpChkFiles(F$) shell_MessageOneArg("SHELLMSG33",F$) jB%=0 shell_StrongHlpMsg("Help_Install "+F$+GA$):_U%!&64=_U%!&64 shell_HelpWord(HA$): IH%,c%,EA%:EA%= shell_HeapBlockFetch(512): _U%!&D0=-1 shell_OSVarExists(EA%,"StrongHelp$Dir") &600DE,"": _U%!&D8<>0 shell_HeapBlockReturn(_U%!&D8) K<_U%!&D8= shell_HeapBlockFetch( HA$+1):c%=_U%!&D8:$c%=HA$ shell_HeapBlockReturn(EA%): shell_OK( shell_MessageNoArgs("SHELLMSG11")) shell_StrongHlpMsg("Help_Word "+HA$) shell_HeapBlockReturn(EA%): shell_StrongHlpMsg(t$): shell_BroadcastMessage(&43B00,t$): shell_ScanForHelp: bB%,JD%:bB%= shell_HeapBlockFetch(256): :bB%!&C=0: &400E7,19,bB%,-2,_U%!&D4 ,,JD%:_U%!&D4=_U%!&D4+1: JD%<>-1 (_U%!&D4)>64: JD%<>-1 w@bB%!0=24:bB%!&C=0:bB%!16=&400C6:bB%!20=JD%: &400E7,17,bB%,0 shell_HeapBlockReturn(bB%): shell_BroadcastMessage(oG%,t$): AA%,sD%:sD%=( t$+30) 3:AA%= shell_HeapBlockFetch(sD%):AA%!&C=0:AA%!16=oG%:$(AA%+20)=t$+ (0):AA%!0=sD%: &600E7,17,AA%,0: shell_HeapBlockReturn(AA%): shell_WindowToggleBackIcon( shell_WindowToggleFlags(b%,1<<24): shell_WindowToggleCloseIcon( shell_WindowToggleFlags(b%,1<<25): shell_WindowToggleTitleBar( shell_WindowToggleFlags(b%,1<<26): shell_WindowToggleToggleIcon( shell_WindowToggleFlags(b%,1<<27): shell_WindowToggleHScrollBar( shell_WindowToggleFlags(b%,1<<30): shell_WindowToggleAdjustSizeIcon( shell_WindowToggleFlags(b%,1<<29): shell_WindowToggleVScrollBar( shell_WindowToggleFlags(b%,1<<28): shell_WindowToggleFlags( b%,qB%): a%,l%,DD%,h%: shell_Tracef0("WindowToggleFlags:wh%=&"+ ~b%):DD%= shell_WindowIsOpen(b%):a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):a%!0=b%: &400CC,,a%:l%=a%!32:l%=(l% qB%):a%!32=l%: &400C3,,a% &400C1,,a%+4 h%:!a%=h%: &400C5,,a% shell_HeapBlockReturn(a%): h%<>b% shell_UpdateWindowHandle(b%,h%):b%=h% shell_ListClickSelect: z%,e%,q%,c%,CA%:z%=_U%!&C:q%= shell_HeapBlockInfo(z%): shell_Tracef0(" "): shell_Tracef0("List of ClickSelect events:"): shell_Tracef0(" "): shell_Tracef0("Window Icon FN") shell_Tracef0("-----------------------------------------------------------"):e%=0: :c%=z%!(e%+20):CA%=z%+e%: shell_HeapBlockExists(c%) $c%<>"" shell_Tracef0( shell_StringPadTrailing( shell_GetWindowIdentifier(CA%!0),".",&C)+" "+ shell_StringPadLeading( CA%!4," ",6)+" "+$c%) :e%+=48: (e%>=q%): shell_Tracef0(" "): shell_ListClickAdjust: z%,e%,q%,c%,CA%:z%=_U%!&C:q%= shell_HeapBlockInfo(z%): shell_Tracef0(" "): shell_Tracef0("List of ClickAdjust events:"): shell_Tracef0(" "): shell_Tracef0("Window Icon FN") shell_Tracef0("-----------------------------------------------------------"):e%=0: :c%=z%!(e%+24):CA%=z%+e%: shell_HeapBlockExists(c%) $c%<>"" shell_Tracef0( shell_StringPadTrailing( shell_GetWindowIdentifier(CA%!0),".",&C)+" "+ shell_StringPadLeading( CA%!4," ",6)+" "+$c%) :e%+=48: (e%>=q%): shell_Tracef0(" "): shell_ListHelpTags: z%,e%,q%,c%,CA%:z%=_U%!&C:q%= shell_HeapBlockInfo(z%): shell_Tracef0(" "): shell_Tracef0("List of attached help tags:"): shell_Tracef0(" "): shell_Tracef0("Window Icon Tag") shell_Tracef0("-----------------------------------------------------------"):e%=0: :c%=z%!(e%+44):CA%=z%+e%: shell_HeapBlockExists(c%) $c%<>"" shell_Tracef0( shell_StringPadTrailing( shell_GetWindowIdentifier(CA%!0),".",&C)+" "+ shell_StringPadLeading( CA%!4," ",6)+" "+$c%) :e%+=48: (e%>=q%): shell_Tracef0(" "): shell_MemFill(jC%,_F%,nE%): I%,KD%,uD%:KD%=_F% 4:uD%=_F% KD%>0 (KD%*4) 4:jC%!(I%-1)=nE%: uD%>0 >.jC%=jC%+(KD%*4): uD%-1:jC%?I%=nE%: shell_AttachFontMenu(b%,f%,J$,WA$): shell_FontMenuInit: "FontMenu_Select",""+ 0,_U%!260 ,n%:_U%!&FC=n%: shell_EventAdd(b%,f%,0,-2,J$): shell_Tracef0("AttachFontMenu:Attaching font menu"): WA$<>"" shell_AttachMenuMaker(b%,f%,WA$) shell_AttachFontSubMenu(UB%,E$,J$): FH%,n%,c%,g%: shell_FontMenuInit: "FontMenu_Select",""+ 0,_U%!260 &45BCE,UB%,n%: &45BCC,, :_U%!&FC=n%: shell_EventListMenuWarn(UB%,n%,E$,J$): shell_Tracef0("AttachFontSubMenu:Attaching font menu &"+ ~n%): shell_FontMenuInit: ("RMEnsure FontMenu 1.16 RMLoad FontMenu"): ("RMEnsure FontMenu 1.16 Error Couldn't load FontMenu module"): _U%!&F0=-1 "FontMenu_Create" _U%!&F0 shell_FontMenuSelectFont("", shell_FontMenuSelectFont(u$,vD%): c%,RB%: shell_HeapBlockExists(_U%!&F4) shell_HeapBlockReturn(_U%!&F4) |H_U%!&F4= shell_HeapBlockFetch( u$+1):c%=_U%!&F4:$c%=u$: vD%<>0 vD%=1 B_U%!260=vD%: "FontMenu_Select",u$,_U%!260 ,RB%: RB%<>_U%!&FC shell_FontMenuUpdatePtr(RB%):_U%!&FC=RB% shell_Tracef0("FontMenuSelectFont:Font is '"+u$+"'"): shell_FontMenuGetLastSelectedFont: shell_HeapBlockExists(_U%!&F4) c%=_U%!&F4:=$c% shell_FontMenuUpdatePtr(e%): z%,g%: shell_Tracef0("FontMenuUpdatePtr:Started.."): shell_HeapBlockExists(_U%!&DC) shell_Tracef0("FontMenuUpdatePtr:HeapBlock found.."):z%=_U%!&DC:g%=0: shell_Tracef0("FontMenuUpdatePtr:Substituting ptr.."):z%!(g%+8)=e%:g%+=&C: z%!g%=-1 shell_MenuUpdateHandle(mE%,oE%): q%,e%,i%,n%:q%= shell_HeapBlockInfo(_U%!&C)-8:e%=0:m%= :i%=_U%!&C: :n%=i%!(e%+8): n%=mE% i%!(e%+8)=oE% +e%+=48: (e%>=q%): _U%!24=mE% _U%!24=oE% shell_FindFont( e$,LD%,MD%, wD%): shell_FontIsAvailable(e$,LD%,MD%) e$="Trinity.Medium" &40081,,e$,LD%*16,MD%*16,0,0 shell_FontIsAvailable(e$,LD%,MD%): &40081,0,e$,LD%*16,MD%*16,0,0 &40082,wD%:= shell_CheckSelection(MG%): c%,g%:c%=_U%!256: _U%!24=_U%!&FC MG%!g%<>c%!g% g%+=4: c%!g%=-1:=g% shell_MenuGetItemAddress(n%,rE%): g%,uB%: &45BC7,n% :uB%=n%+28+((rE%!g%)*24):n%=uB%!4:g%+=4: rE%!g%=-1:=uB% shell_GetLastMouseXPos:=_U%!272 shell_GetLastMouseYPos:=_U%!276 shell_UpdateWindowHandle(VA%,MA%): shell_Tracef0("UpdateWindowHandle:Updating stored window handles"): shell_Tracef0("UpdateWindowHandle:old handle=&"+ ~VA%): shell_Tracef0("UpdateWindowHandle:new handle=&"+ ~MA%): MA%<>VA% _U%!28=VA% _U%!28=MA% !_Q%=VA% !_Q%=MA% shell_FixEventBlock(VA%,MA%,_U%!&C,48): shell_FixEventBlock(VA%,MA%,_U%!96,16): shell_FixEventBlock(VA%,MA%,_U%!72,24): shell_FixEventBlock(VA%,MA%,_U%!92,24): shell_FixEventBlock2(VA%,MA%,_U%!&68,16): shell_FixEventBlock2(VA%,MA%,_U%!332,32) shell_UpdateStaticWindowHandle(VA%,MA%): shell_UpdateWindowHandleList(VA%,MA%) shell_FixEventBlock(VA%,MA%,i%,d%): e%,q%: shell_HeapBlockExists(i%) shell_HeapBlockInfo(i%)-8: (i%!e%=VA%) i%!e%=MA% :e%+=d%: (e%>=q%) shell_FixEventBlock2(VA%,MA%,i%,d%): e%,q%:e%=4: shell_HeapBlockExists(i%) q%=!i%: (i%!e%=VA%) i%!e%=MA% :e%+=d%: (e%>=q%) shell_IconSelectAll(b%): a%,I%:a%= shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=1<<21:a%!&C=1<<21: &400D6,!a%,I%,5<<21,0<<21: !I%>-1:a%!4=!I%: &400CD,,a%:I%+=4: shell_HeapBlockReturn(a%): shell_IconDeselectAll(b%): a%,I%:a%= shell_HeapBlockFetch(&7D0):I%=a%+64:!a%=b%:a%!8=0:a%!&C=1<<21: &400D6,!a%,I%,5<<21,1<<21: !I%>-1:a%!4=!I%: &400CD,,a%:I%+=4: shell_HeapBlockReturn(a%): shell_Message_SaveDesktop(Q%): JA$:JA$="Run "+ shell_GetAppDir+ &C,2,Q%!20,JA$, shell_MessagesInit(H$, sE%): qA%,l%: 3,"Cannot open message file '"+H$+"'" &41500,,H$ l%,,qA%: sE%=0 shell_HeapBlockFetch(qA%) 30,6,,,17+ ,,OD%:$(OD%+16)=H$: &41501,OD%,OD%+16: shell_Tracef0("MessagesInit:Message resource file '"+H$+"' loaded"): shell_PrinterOnLine: tE%,uE%:tE%= (-4): 2,1,0,1,0,1,0: >30:uE%= (-4)0 >vA%!&C= shell_HeapBlockFetch(( KA$)+1):CA%=vA%!&C:$CA%=KA$ vA%!&C=0 LA$>0 >vA%!16= shell_HeapBlockFetch(( LA$)+1):CA%=vA%!16:$CA%=LA$ vA%!16=0 iG%=-1 vA%!20=1 vA%!20=0 shell_GetEventListOffset2(b%,wE%,_U%+&68,16, ):o%=_U%!&68+d%:o%!0=b%:o%!4=wE%:o%!8=xE%*(-1):o%!&C=vA%: shell_HandleBumpIcons(d%,b%,f%,_button%): HH%,SA%,o%,lC%,_temp$,zD%: cB%,_D%,AE%: BH%,DC%: _button%<>2 Yo%=_U%!&68+d%:_U%!288=b%:_U%!292=f%:_U%!296=d%:cB%=o%!8:_D%= (-1):AE%= (-2): cB%=cB%*8 cB%=cB%*2 cB%=cB%*4 :SA%=o%!&C:zD%=SA%!16: zD%<>0 C_temp$= shell_IconGetData(b%,SA%!0):lC%= ("FN"+$zD%+"(_temp$)") shell_IconGetData(b%,SA%!0)) _button%=1 _new_val%=lC%+((cB%)*(-1)) _new_val%=lC%+cB% SA%!20=0 _new_val%>SA%!8 _new_val%=SA%!8 _new_val%SA%!8 _new_val%=SA%!4 _new_val%0 1_new_val$= ("FN"+$DC%+"(_new_val%,_button%)") _new_val$= _new_val% _new_val%<>lC% shell_IconPutData(b%,SA%!0,_new_val$,-1) shell_WindowSetSpriteArea(u%,BE%): a%,MA%,cC%,CE%:a%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(u%)*32)):!a%=u%: &400CC,,a%:a%!68=BE%: shell_IconSetSpriteArea(a%!60,a%+76,BE%): (a%!88)>0 cC%=0 (a%!88)-1:CE%=a%+92+cC%*32: shell_IconSetSpriteArea(CE%!16,CE%+20,BE%): &400C3,,a%: &400C1,,a%+4 MA%<>u% shell_UpdateWindowHandle(u%,MA%):u%=MA% shell_HeapBlockReturn(a%):=u% shell_IconSetSpriteArea(l%,nC%,uG%): 3)=2) 256)<>0) nC%!4=uG% shell_StrongHlpIsAvailable: SB%,EA%:SB%= _U%!&64 kEA%= shell_HeapBlockFetch(256):SB%= shell_OSVarExists(EA%,"StrongHelp$Dir"): shell_HeapBlockReturn(EA%) :=SB% shell_MenuNew(T$): shell_Tracef0("MenuNew:Creating new menu (title is '"+T$+"')"): &45BC1,,T$ h%:=h% shell_MenuAdd(h%,MA$,J$): shell_Tracef0("MenuAdd:Adding item ("+MA$+")"): J$<>"" &45BC2,h%,MA$,J$ &45BC2,h%,MA$ :=dA% shell_MenuTick(dA%,iA%): &45BC9,dA%,iA%: shell_MenuTickOnly1(XA%,FA%): &45BD1,XA%,FA%: shell_MenuTickOnly2(dA%): &45BD1,dA%: shell_MenuShade(h%,iA%): &45BCB,h%,iA%: shell_MenuDotted(dA%,iA%): &45BCA,dA%,iA%: shell_MenuColours(dA%,oD%,fE%): &45BD0,dA%,oD%,fE%: shell_MenuWritable(dA%,iA%,qA%,x$): &45BCD,dA%,iA%,qA%,x$: shell_MenuPutData(dA%,O$): &45BC8,dA%,O$: shell_MenuCallHandler(u%,_h_blk%): ("FN"+$u%+"(_h_blk%)") shell_AttachOpenWindow(b%,A$): a%,c%,d%: shell_Tracef0("AttachOpenWindow:Attaching OpenWindow Handler"): shell_MessageOneArg("SHELLMSG27","AttachOpenWindow") shell_GetEventListOffset(b%,-1,_U%+304,&C, ):a%=_U%!304+d%:a%!0=b%:a%!4=-1:a%!8= shell_HeapBlockFetch( (A$)+1):c%=a%!8:$c%=A$: shell_AttachCloseWindowHandler(b%,A$): a%,c%,d%: shell_Tracef0("AttachCloseWindowHandler:Attaching CloseWindow Handler"): shell_MessageOneArg("SHELLMSG27","AttachCloseWindow") shell_GetEventListOffset(b%,-1,_U%+308,&C, ):a%=_U%!308+d%:a%!0=b%:a%!4=-1:a%!8= shell_HeapBlockFetch( (A$)+1):c%=a%!8:$c%=A$: shell_SpriteRename(XC%,kA$,oA$): 46,512+26,XC%, shell_SpriteGetPtr(XC%,kA$),oA$: shell_SpriteAreaSave(XC%,H$): 46,512+&C,XC%,H$: shell_EnsurePoll: :DA%= shell_Poll_I(0,_U%!&94): shell_Action(DA%): DA%=0: shell_WimpGetVersion:=_U%!316 shell_OSCheckVersion(KG%):= shell_OSModuleCheckVersion("UtilityModule",KG%) shell_OSModuleCheckVersion(pA$,y): a%,_B%,M$:a%= shell_HeapBlockFetch(256): ("Set Module$Check Y"): ("RMEnsure "+pA$+" "+ y+" Set Module$Check N"): 35,"Module$Check",a%,256,0,0 ,,_B%:a%?_B%=&D: ("Unset Module$Check"):M$=$a% shell_HeapBlockReturn(a%): M$="N" shell_MessageSendDataLoad(x%,R$): AA%:AA%= shell_HeapBlockFetch(256):AA%!0=256:AA%!4=0:AA%!&C=0:AA%!16=5:AA%!20=0:AA%!28=0:AA%!32=0:AA%!36=0:AA%!40=x%:$(AA%+44)=R$+ &400E7,18,AA%,0:_SHELL_SENDDATALOAD_MY_REF%=AA%!8:_SHELL_SENDDATALOAD_FILE$=R$ shell_HeapBlockReturn(AA%): shell_MenuMakeFromFile(T$,jA$,o$): h%,X%,B$,k%: shell_FileExists(o$) shell_MenuNew(T$):X%= (o$): #X%:k%= shell_MenuAdd(h%,B$,jA$): shell_BinarySearch(_search_term$,dA$,k$,LG%,DE%): _pos%,CB%,_wp$,PD%,LH%,EE%,FE%,FF%,m%,GE%:DE%+=1:GE%= :CB%=DE%:PD%=0:_pos%=CB% 2:FE%=LG%-1:EE%=DE%: :_wp$= ("FN"+dA$+"(_pos%)"):HE%=_pos%: _search_term$=_wp$ ("FN"+k$+"(_search_term$,_wp$)") +EE%=_pos%:CB%=_pos%-FE%:_pos%=CB% 2+PD% FE%=_pos%:PD%=_pos%:CB%=EE%-_pos%:_pos%=CB% 2+PD% FF%=HE% !FF%=HE%: shell_IconLastClicked:=_U%!32 shell_MenuGetNrItems(XA%): n%,w%,GF%: &45BC7,XA% n%:n%+=28: :w%=(n%?0 &80):GF%+=1:n%+=24: w%:=GF% shell_MenuGetNrDotted(XA%): n%,w%,ED%: &45BC7,XA% n%:n%+=28: :w%=(n%?0 &80): (n%?0 ED%+=1 n%+=24: w%=-1:=ED% shell_MenuGetItemHandler(XA%,oC%): eA%,e%,NA$:eA%= shell_HeapBlockFetch(8):eA%!0=oC%:eA%!4=-1: &45BC4,XA%,eA% NA$="" NA$=$(e%) shell_HeapBlockReturn(eA%):=NA$ shell_MenuGetItemText(XA%,oC%): eA%,e%,I$:eA%= shell_HeapBlockFetch(8):eA%!0=oC%:eA%!4=-1: &45BC4,XA%,eA% ,,e%:I$=$(e%!&C): shell_HeapBlockReturn(eA%):=I$ shell_MenuGetItemHandle(XA%,oC%): eA%,e%,h%:eA%= shell_HeapBlockFetch(8):eA%!0=oC%:eA%!4=-1: &45BC4,XA%,eA% ,,e%:h%=e%!8: shell_HeapBlockReturn(eA%):=h% shell_MenuGetItemHeight(XA%): &45BC7,XA% n%:=n%!20 shell_MenuCalculateHeight(XA%): bA%:bA%= shell_MenuGetNrItems(XA%)* shell_MenuGetItemHeight(XA%):=bA%+( shell_MenuGetNrDotted(XA%)*24) shell_MenuSortItems(n%,gA$,fG%,jC%,KE%): LE%:LE%= shell_MenuGetNrItems(n%)-1:_shell_MS_handle%=n%: KE%>LE% KE%=LE% &406C0: shell_QuickSort(gA$,"_shell_MS_swap",fG%,0,KE%): &406C1: shell_QuickSort(k$,q$,_asc%,_start%,_end%): _lo%,_h%,_F%,_temp%,k%:_lo%=_start%:_hi%=_end%:_F%= :_temp%=_lo%-1+ (_hi%+1-_lo%):k%= ("FN"+q$+"(_lo%,_temp%)"): _asc%=0 ("FN"+k$+"(_lo%,_hi%)") ("FN"+q$+"(_lo%,_hi%)"):_F%= ("FN"+k$+"(_hi%,_lo%)") ("FN"+q$+"(_hi%,_lo%)"):_F%= _hi%=_hi%-1 _lo%=_lo%+1 _lo%=_hi%: _start%<_lo%-1 shell_QuickSort(k$,q$,_asc%,_start%,_lo%-1) _hi%+1<_end% shell_QuickSort(k$,q$,_asc%,_hi%+1,_end%) _shell_MS_swap(QD%,RD%): r$,s$,KF%,LF%:r$= shell_MenuGetItemText(_shell_MS_handle%,QD%):s$= shell_MenuGetItemText(_shell_MS_handle%,RD%):KF%= shell_MenuGetItemHandle(_shell_MS_handle%,QD%):LF%= shell_MenuGetItemHandle(_shell_MS_handle%,RD%) shell_MenuPutData(KF%,s$): shell_MenuPutData(LF%,r$):=0 _shell_MS_comp(QD%,RD%): r$,s$:r$= shell_MenuGetItemText(_shell_MS_handle%,QD%):s$= shell_MenuGetItemText(_shell_MS_handle%,RD%): shell_WindowSetTitleRightJust( p%,aA%,h%,lB%:lB%= shell_WindowIsOpen(b%):p%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):!p%=b%: &400CC,,p%:aA%=p%!60: (1<<3)) shell_Tracef0("WindowSetTitleRightJust:title flags = &"+ ~aA%): shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit set.."): shell_Tracef0("WindowSetTitleRightJust:Unsetting horizontally centred bit.."):aA%=aA% (1<<3) shell_Tracef0("WindowSetTitleRightJust:title flags = &"+ ~aA%) shell_Tracef0("WindowSetTitleRightJust:Horizontally centred bit NOT set..") shell_Tracef0("WindowSetTitleRightJust:Setting right justified bit.."):aA%=aA% (1<<9):p%!60=aA%: &400C3,,p%: &400C1,,p%+4 b%<>h% shell_Tracef0("WindowSetTitleRightJust:Updating window handle..."): shell_UpdateWindowHandle(b%,h%):b%=h% shell_OpenWindow(h%,0,0) shell_HeapBlockReturn(p%): shell_WindowSetTitleCentreJust( p%,aA%,h%,lB%:lB%= shell_WindowIsOpen(b%):p%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(b%)*32)):!p%=b%: &400CC,,p%:aA%=p%!60: shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+ ~aA%) shell_Tracef0("WindowSetTitleCentreJust:t_flags% AND (1 << 3) = "+ ~(aA% (1<<3))): (1<<3))=0 shell_Tracef0("WindowSetTitleCentreJust:Horizontally centred bit not set.."): shell_Tracef0("WindowSetTitleCentreJust:Setting horizontally centred bit.."):aA%=aA% (1<<3): shell_Tracef0("WindowSetTitleCentreJust:title flags = &"+ ~aA%):p%!60=aA% &400C3,,p%: &400C1,,p%+4 b%<>h% shell_Tracef0("WindowSetTitleCentreJust:Updating window handle..."): shell_UpdateWindowHandle(b%,h%):b%=h% shell_OpenWindow(h%,0,0) shell_HeapBlockReturn(p%): shell_IconGetSelectedIcons(b%,iB%, NF%:NF%=(iB%<<16)+(1<<21): &400D6,b%,s%,NF%,(iB%<<16)+(1<<21): shell_GetLastMouseButton:=_U%!320 shell_GetLastWindowClicked:=_U%!28 shell_GetLastIconClicked:=_U%!32 shell_IconIndirSize(EB%,l%,nC%,X%): qA%,PF%,g%,TD%: &800100)=256 "qA%=nC%!8: (nC%!4<>-1) APF%=nC%!4: #X%=EB%+PF%:g%=0: :TD%= #X%:g%+=1: TD%<32:qA%+=+g% qA%=0 :=qA% shell_StrongHlpChkFiles(F$): shell_FileExists(F$+".HelpData") 0-1 E-1 mB%=t%!(e%+4) mB%=!t% mB%=t%!(e%-4) mB%=t%!(g%-4) &400D2,b%,mB%,-1,-1,-1, shell_IconGetData(b%,mB%)) shell_HeapBlockReturn(t%): shell_CaretPutFirstIcon(b%): t%:t%= shell_HeapBlockFetch(&800): &400D6,b%,t%,&40E000,&E000: !t%<>-1 shell_CaretSetRight(b%,!t%) shell_HeapBlockReturn(t%): shell_CaretPutLastIcon(b%): shell_CaretMoveCaret(b%,1): shell_CaretPutNextIcon(b%): shell_CaretMoveCaret(b%,2): shell_CaretPutPrevIcon(b%): shell_CaretMoveCaret(b%,3): shell_TemplateFileInfo(H$, VC%:VC%= RO3_Present: shell_TemplateFileInfo3(H$,xA%,HA%,w%) shell_TemplateFileInfo2(H$,xA%,HA%,w%) shell_TemplateFileInfo2(H$, FA%,FC%,dB%: EA%,X%,PE%,CG%: g%,TD%,QE%,oA%,qC%,l%:FA%=0:HA%=0:FC%=0:dB%=0:w%=0: shell_FileExists(H$) w%=-1 shell_FileType(H$)<>&FEC w%=-2 UEA%= shell_HeapBlockFetch(&D):X%= (H$): #X%=16: &C,4,X%,EA%,4:EB%=!EA%: EB%>0 HA%+=1:RE%=0: &C,4,X%,EA%,4:PE%=!EA%: &C,4,X%,EA%,4:CG%=!EA%: &C,4,X%,EA%,&C:QE%= #X%=EB%+56: &C,4,X%,EA%,4:l%=!EA%: #X%=EB%+72: &C,4,X%,EA%,&C:RE%+= shell_IconIndirSize(EB%,l%,EA%,X%): #X%=EB%+84: &C,4,X%,EA%,4:oA%=!EA%: oA%>0 qC%=0 oA%-1: #X%=EB%+88+(qC%*32)+16: &C,4,X%,EA%,4:l%=!EA%: #X%=EB%+88+(qC%*32)+20: &C,4,X%,EA%,&C:RE%+= shell_IconIndirSize(EB%,l%,EA%,X%): #X%=QE%:FC%+=RE%: PE%>dB% dB%=PE% EB%=0: shell_HeapBlockReturn(EA%):xA%=dB%+FC% shell_TemplateFileInfo3(H$, FA%,FC%,dB%,EB%: g%,TD%,QE%,oA%,qC%,l%:FA%=0:HA%=0:FC%=0:dB%=0:EA%= shell_HeapBlockFetch(&D): &400D9,,H$: :$EA%="*": &400DB,,-1,,,,EA%,FA% ,xA%,GG%,,,,FA%: FA%<>0 xA%>dB% dB%=xA% FC%+=GG%:HA%+=1 FA%=0: &400DA:xA%=dB%+FC%: shell_HeapBlockReturn(EA%): RO3_Present: a%,_B%,M$:a%= shell_HeapBlockFetch(256): ("Set RO3$Check Y"): ("RMEnsure UtilityModule 3.00 Set RO3$Check N"): 35,"RO3$Check",a%,256,0,0 ,,_B%:a%?_B%=&D: ("Unset RO3$Check"):M$=$a%: shell_HeapBlockReturn(a%): M$="N" shell_WindowCountIcons(b%): eB%,VC%,oA%: (_U%!&64 1<<&A) shell_Tracef0("WindowCountIcons:RISC OS 3 detected.."): b%=-1 b%=-2 yeB%= shell_HeapBlockFetch(88):!eB%=b%: &400CC,,eB%+1:oA%=eB%!88: shell_Tracef0("WindowCountIcons:nr_icons% = "+ shell_Tracef0("WindowCountIcons:RISC OS 3 NOT found.."):eB%= shell_HeapBlockFetch(6000): $$!eB%=b%: &400CC,,eB%:oA%=eB%!88 shell_Tracef0("WindowCountIcons:nr_icons% = "+ shell_HeapBlockReturn(eB%):=oA% shell_SliderGetValue(h%):=(_U%!332+h%)!28 shell_HandleSlider(b%,f%,tA%): KA%,LA%,RA%,a%,o%: shell_Tracef0("HandleSlider:slider drag event found.."):o%=_U%!332+tA%:KA%= shell_HeapBlockFetch(50):KA%!0=b%:KA%!4=o%!8: &400CE,,KA%:a%=_U%!328:a%!0=0:a%!4=KA%!16-KA%!8:a%!8=f%:a%!&C=o%!&C:a%!16=o% a%!24=o%!24:KA%!0=b%: &400CB,,KA%:LA%=KA%!4-KA%!20:RA%=KA%!16-KA%!24:KA%!4=f%: &400CE,,KA%:KA%!4=7:KA%!8+=LA%:KA%!&C+=RA%:KA%!16+=LA%:KA%!20+=RA%:KA%!24=KA%!8:KA%!28=KA%!&C:KA%!32=KA%!24+a%!4:KA%!36=KA%!20: &400D0,,KA%: shell_HeapBlockReturn(KA%) _U%!&64=_U%!&64 1<<&B: shell_Slider: FB%,a%,VD%,rC%,b%,LA%,ZA$,MB%,_value%,k%:FB%= shell_HeapBlockFetch(20):MB%=_U%!328: &400CF,,FB%:b%=FB%!&C:rC%=MB%!8:VD%=!FB%: VD%<>!MB% shell_HeapBlockFetch(50):!a%=b%: &400CB,,a%:LA%=VD%-a%!4:a%!4=rC%: &400CE,,a%: &400C4,,a%:a%!4=b%:a%!16=LA%: &400C2,,a%+4: &400D1,b%,a%!8,a%!&C,a%!8+MB%!4,a%!20:_value%= (((LA%-a%!8)*&64)/MB%!4):c%=MB%!16:c%!28=_value%: MB%!24<>-1 |$k%= ("FN"+$(MB%!24)+"(_value%)") MB%!&C>=0 7ZA$= (_value%): shell_IconPutData(b%,MB%!&C,ZA$,-1) :!MB%=VD%: shell_HeapBlockReturn(a%) shell_HeapBlockReturn(FB%): shell_GetEventListOffset2(b%,f%,i%,GB%,aC%): q%,e%,m%,d%,JB%,c%: (!i%=0 (!i%=0) E!i%= shell_HeapBlockFetch(GB%+4):c%=!i%:c%!0=GB%:c%!4=0:c%!8=0:=4 :c%=!i%:q%=!c%: shell_Tracef0("GetEventListOffset2:list size is "+ q%):e%=4:m%= :d%=-1:JB%=-1:c%=!i%: shell_Tracef0("GetEventListOffset2:window handle=&"+ ~c%!e%): JB%<0 (c%!e%=0 c%!e%+4=0) JB%=e% (c%!e%=b%) f%=-1 d%=e%:m%= c%!(e%+4)=f% d%=e%:m%= e%+=GB% e%+=GB% ((e%>=(q%+4)) (d%=-1 JB%<0 Ud%=q%+4:!i%= shell_HeapBlockExtend(!i%,GB%):c%=!i%:c%!0+=GB%:c%+=d%:c%!4=0:c%!8=0 d%=JB% shell_SliderSetValue(h%,_value%): o%,rC%,a%,YF%,UE%,VE%,WD%: ZF%,aF%:o%=_U%!332+h%:rC%=o%!4:b%=o%!0:YF%=o%!8:VE%=o%!&C:a%= shell_HeapBlockFetch(50):a%!0=b%:a%!4=YF%: &400CE,,a%:UE%=a%!16:WD%=a%!8:ZF%=a%!&C:aF%=a%!20:a%!4=rC%: &400CE,,a% &400C4,,a%:a%!4=b%: _value%>&64 _value%=&64 _value%<=0 _value%=0:a%!16=a%!8 a%!16=WD%+(UE%*(_value%/&64))-(WD%*(_value%/&64)) :o%!28=_value%: &400C2,,a%+4: &400D1,b%,WD%,ZF%,UE%,aF%: o%!24<>-1 ("FN"+$(o%!24)+"(_value%)") VE%>=0 shell_IconPutData(b%,VE%, _value%, shell_HeapBlockReturn(a%): shell_AttachSliderHandler(b%,bF%,WC%,GC%,XD%,WE%,Q$): o%,d%:d%= shell_GetEventListOffset2(b%,WC%,_U%+332,32, ):o%=_U%!332+d%:o%!0=b%:o%!4=WC%:o%!8=bF%:o%!&C=GC%:o%!16=XD%:o%!20=WE%: Q$<>"" $2o%!24= shell_HeapBlockFetch( Q$+1):$(o%!24)=Q$ o%!24=-1 :o%!28=0: _U%!328=0 _U%!328= shell_HeapBlockFetch(24) shell_AttachClickSelect(b%,WC%,"_shell_icondrag"): shell_AttachClickSelect(b%,bF%,"_shell_icondrag2"): XD%>=0 shell_AttachClickSelect(b%,XD%,"_shell_sliderbumpupS"): shell_AttachClickSelect(b%,WE%,"_shell_sliderbumpdownS"): shell_AttachClickAdjust(b%,XD%,"_shell_sliderbumpdownA"): shell_AttachClickAdjust(b%,WE%,"_shell_sliderbumpupA") _shell_icondrag(b%,f%): shell_IconDragBox(b%,f%):=0 _shell_icondrag2(b%,f%): NB%,o%,fA%,m%,WC%:o%=_U%!332:NB%=!o%:fA%=4: shell_Tracef0("Event block size is "+ NB%): o%!(fA%+8)=f% :WC%=o%!(fA%+4) :fA%+=32: fA%>=NB% shell_IconDragBox(b%,WC%):=0 _shell_sliderbumpupS(b%,f%): k%:k%= _shell_sliderbumpup(b%,f%,4):=0 _shell_sliderbumpupA(b%,f%): k%:k%= _shell_sliderbumpup(b%,f%,1):=0 _shell_sliderbumpdownS(b%,f%): k%:k%= _shell_sliderbumpdown(b%,f%,4):=0 _shell_sliderbumpdownA(b%,f%): k%:k%= _shell_sliderbumpdown(b%,f%,1):=0 _shell_sliderbumpup(b%,f%,kB%): NB%,o%,fA%,m%,e%,_value%,HC%: shell_Tracef0("In sliderbumpup routine"):o%=_U%!332:NB%=!o%:fA%=4: shell_Tracef0("Event block size is "+ NB%): kB%=4 HC%=16 HC%=20 o%!(fA%+HC%)=f% :e%=fA%:_value%=o%!(e%+28): shell_Tracef0("Current slider value = "+ _value%): shell_Tracef0("Slider handle is = "+ :fA%+=32: fA%>=NB% shell_SliderSetValue(e%,_value%+1) _shell_sliderbumpdown(b%,f%,kB%): NB%,o%,fA%,m%,e%,_value%,HC%: shell_Tracef0("In sliderbumpdown routine"):o%=_U%!332:NB%=!o%:fA%=4: shell_Tracef0("Event block size is "+ NB%): kB%=4 HC%=20 HC%=16 o%!(fA%+HC%)=f% :e%=fA%:_value%=o%!(e%+28): shell_Tracef0("Current slider value = "+ _value%): shell_Tracef0("Slider handle is = "+ :fA%+=32: fA%>=NB% shell_SliderSetValue(e%,_value%-1) shell_DeleteEventSlider(b%,f%): d%,a%,q%,i%,c%,eF%:i%=_U%!332: shell_GetEventListOffset2(b%,f%,_U%+332,32, shell_Tracef0("DeleteEventSlider:offset% = "+ d%>=0 f%=-1 shell_Tracef0("DeleteEventSlider:Deleting Slider Event (all events for window handle &"+ ~b%+")") shell_Tracef0("DeleteEventSlider:Deleting Slider Event (window handle was &"+ ~b%+" icon handle was "+ f%+")") :q%=!i%: d%=q%-32 shell_HeapBlockReturn(i%+d%+24): shell_HeapBlockReturn(_U%!332):_U%!332=0: shell_Tracef0("DeleteEventSlider:No Slider events now registered") _U%!332= shell_HeapBlockExtend(_U%!332,-32):i%=_U%!332:!i%-=32 a%=i%+d%:a%!0=0:a%!4=0:eF%=a%+24: shell_HeapBlockReturn(eF%) d%<0: shell_OpenWindowDynamic(lA$,QA$,RA$): u%,mA%,pA%,r%: shell_CreateWindow(lA$,u%): shell_Tracef0("OpenWindowDynamic:Creating new dynamic window (handle is &"+ ~u%+")"):r%= shell_HeapBlockFetch(36):r%!0=u%: &400CB,,r%:mA%=(r%!4-r%!&C)/2 =pA%=(r%!16-r%!8)/2: shell_HeapBlockReturn(r%): _U%!20<>0 &400D4,,-1:k%= shell_DeleteWindow(_U%!20) :_U%!20=b%: QA$<>"" shell_Tracef0("OpenWindowDynamic:Calling Pre-Open FN '"+QA$+"'"):k%= ("FN"+QA$+"("+ u%+")") shell_Tracef0("OpenWindowDynamic:No Pre-Open FN") shell_OpenWindowDynamic2(u%,mA%,pA%): RA$<>"" shell_Tracef0("OpenWindowDynamic:Calling Post-Open FN '"+RA$+"'"):k%= ("FN"+RA$+"("+ u%+")") shell_Tracef0("OpenWindowDynamic:No Post-Open FN") shell_InteractiveHelpOn: (_U%!&64 1<<&C)<>0 _U%!&64=_U%!&64 1<<&C shell_InteractiveHelpOff: (_U%!&64 1<<&C)<>0 _U%!&64=_U%!&64 1<<&C shell_MessageSendPrintSave(YE%,gF%): gF%>1 _U%!336=gF%-1 _U%!336=0 shell_DoSendPrintSave(YE%): shell_DoSendPrintSave(YE%): GA%:GA%= shell_HeapBlockFetch(256):GA%!0=256:GA%!&C=0:GA%!16=&80142:GA%!20=0:GA%!24=0:GA%!28=0:GA%!32=0:GA%!36=256:GA%!40=YE%:$(GA%+44)="PrintOut"+ shell_Tracef0("MessageSendPrintSave:Sending PrintSave message..") &400E7,18,GA%,GA%!20,GA%!24: shell_HeapBlockReturn(GA%): shell_HandlePrintFile(_Q%): shell_Tracef0("HandlePrintFile:Message_PrintFile received"): shell_HandlePrintError(_Q%): shell_Tracef0("HandlePrintError:Message_PrintError received"): shell_HandlePrintTypeOdd(_Q%): shell_Tracef0("HandlePrintTypeOdd:Message_PrintTypeOdd received"): shell_HandleSetPrinter(_Q%): shell_Tracef0("HandleSetPrinter:Message_SetPrinter received"): shell_PrinterDriverLoaded: "XPDriver_Info" ;nB%: shell_PrinterDriverGetName: nB%,hF%: "XPDriver_Info" ,,,,hF%;nB%: shell_GetString(hF%) shell_IconGetBGColour(b%,f%): uA%,j%:j%= shell_HeapBlockFetch(40):j%!0=b%:j%!4=f%: &400CE,,j%:uA%=(j%!24>>28) shell_HeapBlockReturn(j%):=uA% shell_IconGetFGColour(b%,f%): uA%,j%:j%= shell_HeapBlockFetch(40):j%!0=b%:j%!4=f%: &400CE,,j%:uA%=(j%!24>>24) shell_HeapBlockReturn(j%):=uA% shell_AttachPopupMenu(b%,oB%,GC%,n%,Q$): shell_DoAttachPopupHandler(b%,oB%,GC%,n%,Q$,0): shell_AttachColourPopupMenu(b%,oB%,GC%,n%,Q$): shell_DoAttachPopupHandler(b%,oB%,GC%,n%,Q$,1): shell_DoAttachPopupHandler(b%,oB%,GC%,n%,Q$,vB%): o%,d%:d%= shell_GetEventListOffset2(b%,oB%,_U%+340,24, ):o%=_U%!340+d%:o%!0=b%:o%!4=oB%:o%!8=GC%: Q$<>"" 2o%!&C= shell_HeapBlockFetch( Q$+1):$(o%!&C)=Q$ o%!&C=-1 :o%!16=vB%:o%!20=n%: oB%>=0 shell_IconSetButtonType(b%,oB%,3) shell_DoPopupSelect(_Q%,d%): o%,Q$,_item_text$,w%,sC%: BA%,bE%,cE%:o%=_U%!340+d%:BA%=!o%:sC%=o%!8:dE%=o%!&C:bE%=o%!16:XA%=o%!20:cE%=!_Q%:_item_text$= shell_MenuGetItemText(XA%,cE%):w%=0: dE%<>-1 =Q$=$(dE%):w%= ("FN"+Q$+"("+ BA%+","+ sC%+",_item_text$)") w%<>0 dE%=-1 sC%>=0 _POPUP_TYPE_TEXT: shell_IconPutData(BA%,sC%,_item_text$, _POPUP_TYPE_WIMPCOLOUR: shell_IconSetBGColour(BA%,sC%,cE%) 99,"Unknown Popup type in DoPopupSelect (type was "+ bE%+")" shell_3DEnabled: jF%,_3d%: _U%!&64 (1<<&A) 6,&A1,&8C ,,jF%: _3d%= _3d%= _3d%= :=_3d% shell_MenuDelete(h%,gG%): e%,q%,i%: h%<>0 &65BC3,h%,gG%:q%= shell_HeapBlockInfo(_U%!&C)-8:i%=_U%!&C: (i%!(e%+8)=h%) i%!(e%+8)=0 e%+=48 (e%>=q%) shell_HandleAttachedDataSave(_Q%,b%,f%): tA%,a%,CC%,_name$,c%,k%: shell_DataSaveCheckName(b%,f%):tA%= shell_GetEventListOffset(b%,-1,_U%+72,24, tA%>=0 6ia%=_U%!72+tA%:CC%=a%!16:_name$= shell_IconGetData(b%,CC%):c%=a%!20: $c%<>"" ("FN"+$c%+"(_name$)") shell_WindowMoveToPopUpPos(BA%,zB%,kF%): JC%,yA%,mF%,nF%,oF%,pF%: qF%:JC%= shell_HeapBlockFetch(40):JC%!0=BA%:JC%!4=zB%: &400CE,,JC%:mF%=JC%!16:nF%=JC%!20:yA%= shell_HeapBlockFetch(40):yA%!0=BA%: &400CB,,yA%:oF%=yA%!4:pF%=yA%!16:yA%!0=kF% &400CB,,yA%:qF%=yA%!16-yA%!8: shell_WindowMoveTo(kF%,oF%+mF%,pF%+nF%-(qF%/2)): shell_HeapBlockReturn(JC%): shell_HeapBlockReturn(yA%): shell_WindowScrollTo(BA%,dC%,eC%): ZA%:ZA%= shell_HeapBlockFetch(36):!ZA%=BA%: &400CB,,ZA%:ZA%!20=dC%:ZA%!24=eC%: shell_WindowIsOpen(BA%) &400C5,,ZA% &400C5,,ZA%: &400C6,,ZA% shell_HeapBlockReturn(ZA%): shell_WindowScrollBy(BA%,dC%,eC%): ZA%:ZA%= shell_HeapBlockFetch(36):!ZA%=BA%: &400CB,,ZA%:ZA%!20+=dC%:ZA%!24+=eC%: shell_WindowIsOpen(BA%) &400C5,,ZA% &400C5,,ZA%: &400C6,,ZA% shell_HeapBlockReturn(ZA%): shell_WindowSetBackgroundColour( u%,gE%): p%,h%,tF%,HB%,oA%:oA%= shell_WindowCountIcons(u%):tF%= shell_WindowIsOpen(u%):p%= shell_HeapBlockFetch(&64+(oA%*32)):p%!0=u%: &400CC,,p%:p%?39=gE%:_shell_open_behind%=p%!28:HB%=p%!28: &400C3,,p% &400C1,,p%+4 h%:p%!0=h%: &400CC,,p%: u%<>h% shell_UpdateWindowHandle(u%,h%):u%=h% shell_OpenWindow(h%,0,HB%) shell_HeapBlockReturn(p%): shell_WindowSetForegroundColour( u%,gE%): p%,h%,lB%,HB%:lB%= shell_WindowIsOpen(b%):p%= shell_HeapBlockFetch(&64+( shell_WindowCountIcons(u%)*32)):p%!0=u%: &400CC,,p%:p%?38=gE%:_shell_open_behind%=p%!28:HB%=p%!28: &400C3,,p%: &400C1,,p%+4 u%<>h% shell_Tracef0("WindowSetForegroundColour:Updating window handle..."): shell_UpdateWindowHandle(u%,h%):u%=h% shell_OpenWindow(h%,0,HB%) shell_HeapBlockReturn(p%): shell_InstallLib(U$): aD%:aD%= (U$): aD%=0 #aD%: 1,"Unable to install "+U$ #aD%: U$:U$= U$,&A): U$,"."):U$= U$,".")+1): ("FN_shell_"+U$+"Init") shell_TemplatesInit(l$, nG%): tC%,hE%,uF%,xA%: vF%,FA%,bD%,R$,HA%,nB%,w%: wF%,uC%:bD%= shell_HeapBlockFetch(&C):FA%=0:HA%=0:vF%= shell_FileLength(l$):rG%= shell_HeapBlockFetch(vF%):tC%=rG%: shell_TemplateFileInfo(l$,xA%,HA%,w%): shell_HeapBlockFetch(4+(20*HA%)):_U%!4=vC%:zF%= shell_HeapBlockFetch(xA%):hE%=zF%:uF%=zF%+xA%:HA%=0:uC%=4: &600D9,,l$ ;nB%: shell_MessageTwoArgs("SHELLMSG34","template",l$) :$bD%="*": &400DB,,tC%,hE%,uF%,_U%!&E8,bD%,FA% ,,hE%,,,R$,FA%: FA%<>0 vC%!uC%=tC%:$(vC%+uC%+4)=R$:vC%!(uC%+16)=-1:uC%+=20: shell_Tracef0("TemplatesInit: Template Loaded: "+R$):wF%=(tC%!84)*32:tC%+=(88+wF%):HA%+=1 FA%=0: &400DA:_U%!0=HA% shell_MessageTwoArgs("SHELLMSG35","template",l$) shell_MessageTwoArgs("SHELLMSG36",l$,"template") shell_HeapBlockReturn(bD%):nG%=0:!vC%=HA%: shell_WindowLoaded(N$): d%,jE%:d%= shell_GetWindowListOffset(N$): d%>=0 shell_GetWindowListOffset(N$): d%,HA%,zA%,g%: (N$)>&B shell_MessageOneArg("SHELLMSG02",N$) NiHA%= shell_GetNrTemplatesLoaded:zA%= shell_WindowListGetAddr+4:g%=0:d%=-1: $(((zA%)+(20*g%))+4)=N$ d%=g%*20 :g%+=1: d%<>-1 g%>(HA%-1):=d% shell_GetWB(N$): d%,yA%,zA%:d%= shell_GetWindowListOffset(N$):zA%= shell_WindowListGetAddr+4: d%>=0 yA%=zA%!d% shell_MessageOneArg("SHELLMSG03",N$) :=yA% shell_GetWindowHandleList(N$): d%,jA%,zA%:d%= shell_GetWindowListOffset(N$):zA%= shell_WindowListGetAddr+4: d%>=0 jA%=!(zA%+d%+16) shell_MessageOneArg("SHELLMSG03",N$) :=jA% shell_CreateWindowStatic(N$, BA%): IC%:IC%= shell_GetWB(N$):IC%!64=_U%!16: &400C1,,IC% shell_StaticWindowListAddHandle(BA%): shell_WindowListAddHandle(BA%): shell_WindowListAddHandle(BA%): BG%,IA%,e%: zA%:BG%= shell_GetWindowListOffset(N$)+16:IA%= shell_WindowListGetAddr+4+BG%: !IA%=-1 :!IA%= shell_HeapBlockFetch(8):e%=!IA%:e%!0=BA%:e%!4=-1 shell_Tracef0("DEBUG::Extending window handle list for window '"+N$+"'"): shell_Tracef0("DEBUG::Window handle is &"+ BA%):!IA%= shell_HeapBlockExtend(!IA%,4):zA%=!IA%:e%=0: zA%!e%<>-1:e%+=4: :zA%!(e%+0)=BA%:zA%!(e%+4)=-1 shell_GetWindowIdentifier(h%): IA%,HA%,e%,g%,m$:HA%= shell_GetNrTemplatesLoaded:IA%= shell_WindowListGetAddr+4:m$="": -1,-2:m$="iconbar" IA%!16<>-1 7jA%=IA%!16:e%=0: jA%!e%<>-1: jA%!e%=h% m$=$(IA%+4) e%+=4: :g%+=1:IA%+=20: m$<>"" g%=HA% m$="" shell_MessageOneArg("SHELLMSG38", shell_RemoveHandleFromWindowList(h%): IA%,HA%,I%,e%:HA%= shell_GetNrTemplatesLoaded:IA%= shell_WindowListGetAddr+4: IA%!16<>-1 4jA%=IA%!16:e%=0: jA%!e%<>-1: jA%!e%=h% jA%!e%=0 e%+=4: :IA%+=20: shell_UpdateWindowHandleList(VA%,MA%): IA%,HA%,I%,e%:HA%= shell_GetNrTemplatesLoaded:IA%= shell_WindowListGetAddr+4: IA%!16<>-1 7jA%=IA%!16:e%=0: jA%!e%<>-1: jA%!e%=VA% jA%!e%=MA% e%+=4: :IA%+=20: shell_GetNrTemplatesLoaded: IA%:IA%= shell_WindowListGetAddr:=!IA% shell_WindowListGetAddr:=_U%!4 shell_WindowListPrint: IA%,HA%,I%,e%:HA%= shell_GetNrTemplatesLoaded: shell_TraceOn:IA%= shell_WindowListGetAddr+4: shell_Tracef0(""): shell_Tracef0("Current Window List ("+ (HA%)+" templates)") shell_Tracef0("-----------------------------------------"): shell_Tracef0($(IA%+4)+":"): IA%!16=-1 shell_Tracef0("No windows defined for this identifier") jA%=IA%!16:e%=0: jA%!e%<>-1: shell_Tracef0(" window handle &"+ ~(jA%!e%)):e%+=4: :IA%+=20: shell_Tracef0(""): shell_TraceOff: _shell_StaticList_Init:gA%=0:=0 shell_StaticWindowListAddHandle(h%): d%,g%,c%: gA%=0 shell_Tracef0("StaticWindowListAddHandle:Creating new list"): shell_Tracef0("StaticWindowListAddHandle:Window handle is &"+ ~h%):gA%= shell_HeapBlockFetch(8):gA%!0=h%:gA%!4=-1 shell_Tracef0("StaticWindowListAddHandle:Searching for window handle &"+ ~h%):d%= shell_SearchStatic(h%): d%=-1 shell_Tracef0("StaticWindowListAddHandle:Not found - adding window handle to list"): shell_Tracef0("StaticWindowListAddHandle:Window handle is &"+ ~h%):d%= shell_SearchStatic(0): d%=-1 shell_Tracef0("StaticWindowListAddHandle:Extending window handle list"):g%=0: gA%!g%<>-1:g%+=4: :gA%= shell_HeapBlockExtend(gA%,4):c%=gA%+g%:c%!0=h%:c%!4=-1 shell_Tracef0("StaticWindowListAddHandle:Found unused space in list"):c%=gA%+d%:c%!0=h% shell_RemoveStaticWindowFromList(BA%): d%,g%,m%:m%= :g%=0: gA%>0 gA%!g%=BA% :gA%!g%=0 :g%+=4: gA%!g%<>-1 shell_UpdateStaticWindowHandle(VA%,MA%): shell_Tracef0("UpdateStaticWindowHandle:Correcting static window list.."):d%= shell_SearchStatic(VA%):gA%!d%=MA%: shell_SearchStatic(h%): m%,g%:m%=-1:g%=0: gA%<>0 gA%!g%<>-1: gA%!g%=h% m%=g%:=m% :g%+=4: shell_IsWindowStatic(BA%): -1,-2:w%= _U%!20:w%= shell_SearchStatic(BA%)>-1