Woohoo - found the Archimidies version of Walker today too... That'll be going on my web site shortly.
For those interested, the WIMP section looks like :
REM>Ex2
ON ERRORPROCError:END
*RMEnsure FASTSPR 3.01 RMLoad <Walker2$Dir>.MODULES.FASTSPR
*RMEnsure FASTSPR 3.01 Error Walker 2 needs FASTSPR 3.01 or later
*RMEnsure MENUUTILS 0.10 RMLoad <Walker2$Dir>.MODULES.MENUUTILS
*RMEnsure MENUUTILS 0.10 Error Walker 2 needs MENUUTILS 0.10 or later
PROCinit("Walker 2")
infoW%=FNwindow("info")
PROCinit("")
REM.....Initialise MenuUtils module
SYS "MenuUtil_Initialise"
REM.....Create menu
SYS "MenuUtil_New",,"Walker 2"
SYS "MenuUtil_Add",,"Info":SYS "MenuUtil_SubMenu",,infoW%
SYS "MenuUtil_Add",,"Run Intro","li"
SYS "MenuUtil_Add",,"Play Game","lg"
SYS "MenuUtil_Dots",,TRUE
SYS "MenuUtil_Add",,"Quit","quit"
REPEAT
SYS "Wimp_Poll",,q% TO action%
CASE action% OF
WHEN 2:SYS "Wimp_OpenWindow",,q%
WHEN 3:SYS "Wimp_CloseWindow",,q%
WHEN 6:IF q%!8=2 SYS "MenuUtil_Show",,q%
WHEN 9:SYS "MenuUtil_Decode",,q% TO handler%,adjust%
IF handler% THEN
IF $handler%="quit" PROCquit
IF $handler%="li" PROCLoadIntro
IF $handler%="lg" PROCLoadGame
ENDIF
IF adjust% SYS "MenuUtil_Show"
WHEN 17,18:PROCmessage
ENDCASE
UNTILFALSE
+++ Item handlers +++
--------------------------------------
DEFFNquit PROCquit:=TRUE
REM>"<MenuExamples$Dir>.Library"
DEFPROCinit(name$)
ON ERROR:ON ERROR OFF:PROCerror:PROCquit
IF name$<>"" THEN
*fx 229,27
myName$=name$
maxws%=&400
DIMq%&400,b%&400,err%&200,ws%maxws%:curws%=ws%
$b%="TASK":SYS "Wimp_Initialise",200,!b%,name$ TO ,task%
PROCiconBar("!walker2")
SYS "Wimp_OpenTemplate",,"<Walker2$Dir>.Templates"
ELSE
SYS "Wimp_CloseTemplate"
ENDIF
ENDPROC
DEFPROCiconBar(sprite$)
P%=b%:[OPT2
EQUD -1
EQUD 0
EQUD 0
EQUD 68
EQUD 68
EQUD &7000002
EQUS sprite$:EQUB &0D
]:SYS "Wimp_CreateIcon",,b% TO icon%
ENDPROC
DEFFNwindow(w$)
SYS "Wimp_LoadTemplate",,q%,curws%,ws%+maxws%,-1,w$ TO ,,curws%
SYS "Wimp_CreateWindow",,q% TO !b%:=!b%
DEFPROCerror:!err%=ERR:$(err%+4)=REPORT$+" at line "+STR$ERL+CHR$0
SYS "Wimp_ReportError",err%,1,myName$:ENDPROC
DEFPROCquit
SYS"OS_Byte",114,1
SYS"OS_Byte",229,0
*fx 25
*RMKill MenuUtils
*RMKill FastSpr
*Remove <Walker2$Dir>.TEMP
*Unset Walker2$Dir
VOICES8
FORA%=1TO8:VOICEA%,"WaveSynth-Beep":NEXT
SYS"Sound_Enable",2
SYS "Wimp_CloseDown",task%,&4B534154
END
ENDPROC
DEFPROCmessage IFq%!16=0 PROCquit
ENDPROC
DEFPROCLoadIntro
SYS"OS_Byte",114,0
MODE13
OFF
*Run <Walker2$Dir>.SCRIPTS.RUNINTRO
ENDPROC
DEFPROCLoadGame
SYS"OS_Byte",114,0
MODE13
OFF
*Run <Walker2$Dir>.SCRIPTS.RUNTITLE
ENDPROC
DEFPROCError
MODE13
PRINT"The WIMP part of Walker 2 has suffered"
PRINT"an internal error."
PRINT"At line : ";ERL
PRINT"Message :":REPORT
ENDPROC
According to my copyright, I made it in 1995... Probably second year at University...
Mirrors are more fun than television. Well, that was fun, in a not-so-fun sort of way...