Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Regulars1 » MikeC/Software/!Sim84/Simulate
MikeC/Software/!Sim84/Simulate
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Regulars1 |
Filename: | MikeC/Software/!Sim84/Simulate |
Read OK: | ✔ |
File size: | 7382 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM Pic 18C84 Simulator 20REM Version 1.0 By Mike Cook 30REM All rights reserved 40DIM q% &300,qc% 80, Wn% &2500,temp% 256,buffers% 512,menu% 256,SW% 2096,cb% 18,SWM% 2096,WnM% &2500 50DIM TextWarn% 100, ww% 256 60 70ON ERROR PROCerrorbox 80DIM taskid% 4,intmess% 20:$taskid%="TASK" 90intmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0 100SYS "Wimp_Initialise",300,!taskid%,"PIC18C84-Simulator",intmess% TO version%,taskhand% 110 120MxL%=300 130DIM Mne$(38),Op%(38),It%(38),Reg%(&FF) 140Ni%=44:NiM%=72 150DIM SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%),Stack%(7) 160DIM SPointM%(NiM%),IXM%(NiM%),IYM%(NiM%),IX1M%(NiM%),IY1M%(NiM%) 170DIM Break%(3) 180DIM ProgMemS% &800,DataMemS% 128, ConfigMem% 16 190 200SYS "Wimp_OpenTemplate",,"<EM84$Dir>.Templates" 210ON ERROR SYS "Wimp_CloseTemplate":PROCerrorbox 220SYS "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0 230SYS "Wimp_CreateWindow",,q% TO info% 240 250SYS "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+2096,-1,"Control",0 260Wn%!28=-1 270FOR A%=0 TO Ni% 280SPoint%(A%)=!(Wn%+4+88+20+32*A%) 290IX%(A%)=!(Wn%+4+88+32*A%):IY%(A%)=!(Wn%+4+88+4+32*A%) 300IX1%(A%)=!(Wn%+4+88+8+32*A%):IY1%(A%)=!(Wn%+4+88+12+32*A%) 310NEXT 320 330SYS "Wimp_CreateWindow",,Wn%+4 TO conW% 340Wn%!0=conW%:Wn%!28=-1 350 360SYS "Wimp_LoadTemplate",,WnM%+4,SWM%,SWM%+2096,-1,"Monitor",0 370WnM%!28=-1 380FOR A%=0 TO NiM% 390SPointM%(A%)=!(WnM%+4+88+20+32*A%) 400IXM%(A%)=!(WnM%+4+88+32*A%):IYM%(A%)=!(WnM%+4+88+4+32*A%) 410IX1M%(A%)=!(WnM%+4+88+8+32*A%):IY1M%(A%)=!(WnM%+4+88+12+32*A%) 420NEXT 430 440SYS "Wimp_CreateWindow",,WnM%+4 TO monW% 450WnM%!0=monW%:WnM%!28=-1 460 470SYS "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0 480q%!108=TextWarn%:q%!112=-1:q%!116=300 490XQ%=q%!8-q%!0:YQ%=q%!12-q%!4 500SYS "Wimp_CreateWindow",,q% TO warningW% 510SYS "Wimp_CloseTemplate" 520 530smpicon%=FNicon 540wopen%=FALSE:warnOn%=FALSE:Mopen%=FALSE 550InWin%=FALSE 560PROC_PutPramsS(0,"Drag File Here") 570Step%=TRUE:Running%=FALSE 580Watchdog%=FALSE:Merge%=FALSE:OscOpt%=0 590Reseting%=FALSE:HiPC%=0:Wreg%=0:OPcode%=0 600Status%=0:goto%=FALSE:Sleep%=FALSE 610Reg%()=0:WatchdogTime%=0:WatchLimit%=1800 611Reg%(5)=&1F:Reg%(6)=&FF 620Smon%=FALSE:Scont%=TRUE:RB0%=0:PBchange%=0 630EtimeOut%=0:Etime%=100:Prescale%=0 640ProgMem%=TRUE:Skip%=FALSE 650PROCwipeProg:PROCwipeData 660PROCsetupmenu 670PROC_INIT 680 690REPEAT 700 SYS "Wimp_Poll",0,q% TO A% 710 CASE A% OF 720 WHEN 0:PROC_Null 730 WHEN 1:VDU7 740 WHEN 2:SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%: SYS "Wimp_OpenWindow",,q% 750 WHEN 3:PROC_close 760 WHEN 4:InWin%=FALSE:LX%=-1:LY%=-1 770 WHEN 5:InWin%=TRUE 780 WHEN 6:PROC_do_click(q%) 790 WHEN 7:PROC_PutDown(q%) 800 WHEN 8:PROC_KeyPress 810 WHEN 9:PROC_SORT_Menu 820 WHEN 17,18:PROCreceive(q%) 830 ENDCASE 840 UNTIL FALSE 850 860END 870 880DEF PROC_Null 890LOCAL X%,Y%,B% 900IF wopen% THEN 910MOUSE X%,Y%,B% 920IF Reseting%=TRUE AND B%=0 THEN $SPoint%(8)="radiooff":Reseting%=FALSE:SYS"Wimp_ForceRedraw",conW%,IX%(8),IY%(8),IX1%(8),IY1%(8):PROCreset 930IF Running% THEN PROCcycle 940IF Running% AND Step% THEN Running%=FALSE:$SPoint%(10)="Go":SYS"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) 950ENDIF 960ENDPROC 970 980DEF PROC_SORT_Menu 990CASE !q% OF 1000 WHEN 1: Scont%=NOT(Scont%):IF Scont% THEN menu%?52=menu%?52 OR 1 ELSE menu%?52=menu%?52 AND &FE 1010 IF Scont%=FALSE AND wopen%=TRUE THEN q%!0=conW%:PROC_close 1020 IF Scont%=TRUE AND wopen%=FALSE THEN PROC_Open 1030 WHEN 2: Smon%=NOT(Smon%):IF Smon% THEN menu%?76=menu%?76 OR 1 ELSE menu%?76=menu%?76 AND &FE:Merge%=TRUE 1040 IF Smon%=FALSE AND Mopen%=TRUE THEN q%!0=monW%:PROC_close 1050 IF Smon%=TRUE AND Mopen%=FALSE THEN PROC_Open 1060 WHEN 3: PROCdie 1070 1080ENDCASE 1090ENDPROC 1100DEF PROC_close 1110IF q%!0=conW% THEN SYS"Wimp_GetWindowInfo",,Wn%:wopen%=FALSE 1120IF q%!0=monW% THEN SYS"Wimp_GetWindowInfo",,WnM%:Mopen%=FALSE 1130IF q%!0=warningW% THEN warnOn%=FALSE 1140SYS "Wimp_CloseWindow",,q% 1150ENDPROC 1160 1170DEF PROC_do_click(q%) 1180i%=q%!16 1190CASE q%!12 OF 1200WHEN warningW%: q%!0=warningW% :PROC_close 1210WHEN -2: REM Look first at Icon Bar Click 1220 IF q%!16=smpicon% THEN 1230 IF q%!8=2 THEN SYS"Wimp_CreateMenu",,menu%,q%!0-74,310:IconMenu%=TRUE 1240 IF q%!8=4 THEN PROC_Open 1250 ENDIF 1260WHEN monW%: IF q%!8=4 THEN PROC_Click 1270WHEN conW%: 1280 IF q%!8=4 THEN PROC_MonClick 1290 IF q%!8=2 THEN SYS"Wimp_CreateMenu",,menu%,q%!0-96,q%!4:IconMenu%=FALSE 1300 1310WHEN saveW%: DragOn%=TRUE: SaveProg%=TRUE : PROC_DoSave 1320WHEN saveD%: DragOn%=TRUE: SaveProg%=FALSE : PROC_DoSave 1330 1340ENDCASE 1350ENDPROC 1360 1370DEF PROC_Click 1380LOCAL A%,C%,B% 1390 IF i%<23 AND i%>-1 THEN 1400 A%=i%-9 1410 C%=&B 1420 IF i%<8 THEN C%=&81:A%=i% 1430 IF i%>17 THEN C%=&88:A%=i%-18 1440 B%=2^A% 1450 Reg%(C%)=Reg%(C%) EOR B% 1460 IF (Reg%(C%) AND B%)=0 THEN $SPointM%(i%)="emzero" ELSE $SPointM%(i%)="emone" 1470 SYS"Wimp_ForceRedraw",monW%,IXM%(i%),IYM%(i%),IX1M%(i%),IY1M%(i%) 1480ENDIF 1490ENDPROC 1500 1510DEF PROCupRad 1520SYS"Wimp_ForceRedraw",conW%,IX%(6),IY%(6),IX1%(6),IY1%(6) 1530SYS"Wimp_ForceRedraw",conW%,IX%(7),IY%(7),IX1%(7),IY1%(7) 1540SYS"Wimp_ForceRedraw",conW%,IX%(44),IY%(44),IX1%(44),IY1%(44) 1550ENDPROC 1560 1570DEF PROC_MonClick 1580LOCAL A%,C%,B% 1590REM Do the action for a window click 1600CASE i% OF 1610 1620 WHEN 5: Watchdog%=NOT(Watchdog%) 1630 IF Watchdog%=TRUE THEN $SPoint%(5)="yes" ELSE $SPoint%(5)="no" 1640 SYS"Wimp_ForceRedraw",conW%,IX%(5),IY%(5),IX1%(5),IY1%(5) 1650 1660 WHEN 6: 1670 IF Step%=FALSE THEN Step%=TRUE:Skip%=FALSE 1680 IF Step% THEN $SPoint%(6)="radioon":$SPoint%(7)="radiooff":$SPoint%(44)="radiooff" 1690 PROCupRad 1700 1710 WHEN 7: 1720 IF Step%=TRUE OR Skip%=TRUE THEN Step%=FALSE:Skip%=FALSE 1730 IF Step%=FALSE THEN $SPoint%(7)="radioon":$SPoint%(6)="radiooff":$SPoint%(44)="radiooff" 1740 PROCupRad 1750 1760 WHEN 44: IF Skip%=FALSE THEN Skip%=TRUE:Step%=TRUE 1770 IF Skip% THEN $SPoint%(44)="radioon":$SPoint%(6)="radiooff":$SPoint%(7)="radiooff" 1780 PROCupRad 1790 1800 WHEN 8: $SPoint%(8)="radioon" 1810 Reseting%=TRUE 1820 SYS"Wimp_ForceRedraw",conW%,IX%(8),IY%(8),IX1%(8),IY1%(8) 1830 1840 WHEN 10: Running%=NOT(Running%) 1850 IF Running% THEN $SPoint%(10)="Stop" ELSE $SPoint%(10)="Go" 1860 SYS"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) 1870 1880 ENDCASE 1890 1900 IF i%>23 AND i%<32 THEN 1910 A%=i%-24 1920 B%=2^A% 1930 Reg%(3)=Reg%(3) EOR B% 1940 IF (Reg%(3) AND B%)=0 THEN $SPoint%(i%)="emzero" ELSE $SPoint%(i%)="emone" 1950 SYS"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) 1960 ENDIF 1970 1980 IF i%>10 AND i%<19 THEN 1990 A%=i%-11 2000 B%=2^A% 2010 Reg%(6)=Reg%(6) EOR B% 2020 IF (Reg%(&86) AND B%)<>0 THEN 2030 IF (Reg%(6) AND B%)=0 THEN $SPoint%(i%)="emswoff" ELSE $SPoint%(i%)="emswon" 2040 ELSE 2050 IF (Reg%(6) AND B%)=0 THEN $SPoint%(i%)="emledoff" ELSE $SPoint%(i%)="emledon" 2060 2070 ENDIF 2080 SYS"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) 2090 ENDIF 2100 2110 IF i%>18 AND i%<24 THEN 2120 A%=i%-19 2130 B%=2^A% 2140 Reg%(5)=Reg%(5) EOR B% 2150 IF (Reg%(&85) AND B%)<>0 THEN 2160 IF (Reg%(5) AND B%)=0 THEN $SPoint%(i%)="emswoff" ELSE $SPoint%(i%)="emswon" 2170 ELSE 2180 IF (Reg%(5) AND B%)=0 THEN $SPoint%(i%)="emledoff" ELSE $SPoint%(i%)="emledon" 2190 ENDIF 2200 SYS"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) 2210 ENDIF 2220 2230ENDPROC 2240 2250DEF PROC_Open 2260SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours% 2270REM OPEN UP WINDOW HERE 2280IF Smon% THEN 2290IF Mopen% THEN 2300q%!0=monW% 2310SYS"Wimp_GetWindowState",,q% 2320 IF q%!28<>-1 THEN q%!28=-1: SYS "Wimp_OpenWindow",,q% 2330ELSE 2340SYS "Wimp_OpenWindow",,WnM% 2350Mopen%=TRUE 2360ENDIF 2370ENDIF 2380 2390IF Scont% THEN 2400IF wopen% THEN 2410q%!0=conW% 2420SYS"Wimp_GetWindowState",,q% 2430 IF q%!28<>-1 THEN q%!28=-1: SYS "Wimp_OpenWindow",,q% 2440ELSE 2450SYS "Wimp_OpenWindow",,Wn% 2460wopen%=TRUE 2470ENDIF 2480ENDIF 2490 2500ENDPROC 2510 2520DEFPROCsetupmenu 2530LOCAL m% 2540 2550$menu%="Simulate" 2560menu%?12=7 2570menu%?13=2 2580menu%?14=7 2590menu%?15=0 2600menu%!16=128 2610menu%!20=40 2620menu%!24=0 2630m%=menu%+28 2640m%!0=2 2650m%!4=info% 2660m%!8=(7<<24)OR %10001 2670$(m%+12)="Info" 2680 2690m%+=24 2700m%!0=1 2710m%!4=0 2720m%!8=(7<<24)OR %10001 2730$(m%+12)="Control" 2740 2750m%+=24 2760m%!0=2 2770m%!4=0 2780m%!8=(7<<24)OR %10001 2790$(m%+12)="Monitor" 2800 2810m%+=24 2820m%!0=&80 2830m%!4=0 2840m%!8=(7<<24)OR %10001 2850$(m%+12)="Quit" 2860 2870ENDPROC 2880 2890DEF PROCreceive(q%) 2900LOCAL A% 2910A%=q%!16 2920CASE A% OF 2930WHEN 0:PROCdie 2940 2950WHEN 3:n$=FNsget(q%+44) 2960 sendth%=q%!4:icontype%=q%!40 2970 myref%=q%!8 2980 IF icontype%=&84 AND ( (q%!20=-2 AND q%!24=smpicon%) OR q%!20=conW%) THEN 2990 PROC_Fname(n$) 3000 PROC_Dack 3010 PROC_Load(n$) 3020 IF wopen%=FALSE THEN PROC_Open 3030 ELSE 3040 IF icontype%<>&84 THEN PROC_setupW("Need a 16C84 object file") 3050 ENDIF 3060WHEN &502: CASE TRUE OF 3070 WHEN q%!32=-2 AND q%!36=smpicon%:mes$="This is the PIC Simulator icon.|MRun PIC chip programmes" 3080 OTHERWISE:mes$="" 3090 ENDCASE 3100 IF mes$<>"" THEN 3110 q%!12=q%!8 3120 $(q%+20)=mes$+CHR$0 3130 q%!0=(20+LENmes$+4)AND NOT 3 3140 q%!16=&503 3150 SYS "Wimp_SendMessage",18,q%,q%!4 3160ENDCASE 3170ENDPROC 3180 3190DEF PROC_Dack 3200sendth%=q%!4 3210myref%=q%!8 3220SYS "Wimp_GetPointerInfo",,q%+8 3230q%!28=q%!8 3240q%!32=q%!12 3250q%!0=(44+LENn$+4)AND NOT 3 3260q%!12=myref% 3270q%!16=4 3280q%!36=-1 3290q%!40=&FF9 3300$(q%+44)=n$+CHR$0 3310SYS "Wimp_SendMessage",17,q%,sendth% 3320ENDIF 3330ENDPROC 3340 3350DEFFNsget(x%) 3360LOCAL x$ 3370WHILE ?x%>&1F x$+=CHR$(?x%):x%+=1:ENDWHILE 3380=x$ 3390 3400DEFFNicon 3410q%!0=-1 3420q%!4=0 3430q%!8=10 : REM Y DIRECTION 3440q%!12=70 : REM X DIRECTION 3450q%!16=96 3460q%!20=&2002 3470$(q%+24)="!sim84" 3480SYS "Wimp_CreateIcon",,q% TO icon% 3490=icon% 3500 3510DEF PROCdragicon(mousex%,mousey%,handle%,icon%) 3520LOCAL bx%,by%,ix0%,iy0%,ix1%,iy1% 3530PROCgetw(handle%) 3540PROCgeti(handle%,icon%) 3550!q%=handle%:q%!4=5 3560q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1% 3570q%!24=q%!8-mousex%:q%!28=q%!12-mousey% 3580SYS "Wimp_DragBox",,q% 3590SFLAG%=TRUE 3600ENDPROC 3610 3620DEF PROCinfo(p%) 3630LOCAL x0%,y0% 3640x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12 3650scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28 3660bx%=x0%-scx%:by%=y1%-scy% 3670ENDPROC 3680 3690DEF PROCgetw(handle%) 3700!q%=handle%:SYS "Wimp_GetWindowState",,q%:PROCinfo(q%+4) 3710ENDPROC 3720DEF PROCgeti(h%,i%) 3730!q%=h%:q%!4=i%:SYS "Wimp_GetIconState",,q% 3740ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20 3750iflags%=q%!24:idata%=q%+28 3760ENDPROC 3770 3780DEFFNhpg(n%) 3790LOCAL A$,B%,V%,W%,T% 3800A$=FNsget(SPoint%(n%)) 3810IF ASC(A$)=&20 THEN A$=RIGHT$(A$) 3820IF RIGHT$(A$,1)=" " THEN A$=LEFT$(A$) 3830V%=0:W%=1 3840FOR B%=LEN(A$) TO 1 STEP -1 3850T%=ASC(MID$(A$,B%,1)) 3860IF T%>&39 THEN T%=(T%-&40)+9 ELSE T%=T% AND &F 3870V%=V%+T%*W% 3880W%=W%<<4 3890NEXT 3900=V% 3910 3920DEFFNhpgM(n%) 3930LOCAL A$,B%,V%,W%,T% 3940A$=FNsget(SPointM%(n%)) 3950IF ASC(A$)=&20 THEN A$=RIGHT$(A$) 3960IF RIGHT$(A$,1)=" " THEN A$=LEFT$(A$) 3970V%=0:W%=1 3980FOR B%=LEN(A$) TO 1 STEP -1 3990T%=ASC(MID$(A$,B%,1)) 4000IF T%>&39 THEN T%=(T%-&40)+9 ELSE T%=T% AND &F 4010V%=V%+T%*W% 4020W%=W%<<4 4030NEXT 4040=V% 4050 4060DEF PROC_setupW(t$) 4070!q%=warningW%:q%!4=200:q%!8=200:q%!12=200+XQ%:q%!16=200+YQ%:q%!20=0:q%!24=0:q%!28=-1 4080$TextWarn%=t$ 4090TextWarn%?LEN(t$)=0 4100VDU 7 4110warnOn%=TRUE 4120SYS "Wimp_OpenWindow",,q% 4130ENDPROC 4140 4150DEF PROCerrorbox 4160REM SYS "Wimp_DragBox",,-1 4170!buffers%=ERR:$(buffers%+4)=REPORT$+" at line "+STR$ERL+CHR$0 4180SYS "Wimp_ReportError",buffers%,1,"PIC" 4190PROCdie 4200ENDPROC 4210 4220DEFPROCdie 4230SYS "Wimp_CloseDown",taskhand%,!taskid% 4240END 4250ENDPROC 4260 4270DEF PROC_KeyPress 4280LOCAL A%,K%,i% 4290i%=q%!4 4300K%=q%!24 4310IF K%=13 THEN 4320CASE q%!0 OF 4330WHEN conW%: IF i%>31 AND i%<40 THEN Stack%(i%-32)=FNhpg(i%) 4340 IF i%=4 THEN Wreg%=FNhpg(4) 4350 IF i%>39 AND i%<44 THEN 4360 Break%(i%-40)=FNhpg(i%) 4370 IF Break%(i%-40)>&3FF THEN PROC_PutPramsS(i%," ") 4380 ENDIF 4390 4400 IF i%=1 THEN A%=FNhpg(1):Reg%(2)=A% AND &FF:HiPC%=A% AND &FF00:PROCfetchN 4410 IF i%=0 THEN PROC_GetinName: PROC_Load(fn$) 4420WHEN monW%: A%=FNhpgM(i%) 4430 IF i%>25 AND i%<>27 THEN 4440 IF A%>255 THEN A%=A% AND &FF:PROC_PPHm(i%,A%) 4450 IF i%=30 OR i%=31 THEN 4460 IF i%=30 THEN PROC_upIO(Reg%(&85),A%,19,5,5) 4470 IF i%=31 THEN PROC_upIO(Reg%(&86),A%,11,8,6) 4480 Reg%(i%+103)=A% 4490 ELSE 4500 Reg%(i%-25)=A% 4510 ENDIF 4520 ENDIF 4530 IF i%=23 THEN Prescale%=A% 4540 IF i%=24 THEN WatchLimit%=A% 4550 IF i%=25 THEN WatchdogTime%=A% 4560 IF i%=27 THEN EtimeOut%=A%:Etime%=A% 4570 IF i%=34 THEN Reg%(8)=DataMemS%?(((Reg%(9) AND &3F)<<1)+1):PROC_PPHm(33,Reg%(8)) 4580ENDCASE 4590ELSE 4600SYS"Wimp_ProcessKey",K% 4610ENDIF 4620ENDPROC 4630 4640DEF FN_spath(n$) 4650WHILE INSTR(n$,".") 4660n$=RIGHT$(n$,LEN(n$)-1) 4670ENDWHILE 4680IF LEN(n$)>10 THEN n$=RIGHT$(n$,10) 4690=n$ 4700 4710DEF PROC_GetName 4720LOCAL T%,A%,F$ 4730F$="":fn$="" 4740q%!0=saveW%:q%!4=1 4750SYS "Wimp_GetIconState",,q% 4760T%=q%!28 4770T%-=1 4780REPEAT 4790T%+=1 4800F$=F$+CHR$(?T%) 4810UNTIL ?T%=0 4820fn$=MID$(F$,1,LEN(F$)-1) 4830ENDPROC 4840 4850DEF PROC_GetinName 4860LOCAL T%,A%,F$ 4870F$="":fn$="" 4880q%!0=conW%:q%!4=0 4890SYS "Wimp_GetIconState",,q% 4900T%=q%!28 4910T%-=1 4920REPEAT 4930T%+=1 4940F$=F$+CHR$(?T%) 4950UNTIL ?T%=0 4960fn$=MID$(F$,1,LEN(F$)-1) 4970ENDPROC 4980 4990DEF PROC_GetPrams 5000LOCAL A$ 5010q%!0=Wn%!0 5020InFile$=FNsget(SPoint%(0)) 5030ENDPROC 5040 5050REM Verify file names 5060DEF FNvfn 5070LOCAL V% 5080V%=1 5090IF INSTR(InFile$,"$")=0 THEN V%=0 5100=V% 5110 5120DEF FNopf 5130LOCAL V% 5140V%=1 5150F%=OPENIN(InFile$) 5160IF F%=0 THEN 5170V%=0 5180ELSE 5190REM Load in the object file 5200CLOSE#F% 5210ENDIF 5220=V% 5230 5240DEF PROC_PutPrams(n%,V%) 5250PROC_sput(SPoint%(n%),STR$(V%)) 5260SYS"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) 5270ENDPROC 5280 5290DEF PROC_PutPramHex(n%,V%) 5300LOCAL H$ 5310H$=STR$~(V%) 5320WHILE LEN(H$)<4 5330H$="0"+H$ 5340ENDWHILE 5350PROC_sput(SPoint%(n%),H$) 5360SYS"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) 5370ENDPROC 5380 5390DEF PROC_PPHm(n%,V%) 5400LOCAL H$ 5410H$=STR$~(V%) 5420WHILE LEN(H$)<2 5430H$="0"+H$ 5440ENDWHILE 5450PROC_sput(SPointM%(n%),H$) 5460SYS"Wimp_ForceRedraw",monW%,IXM%(n%),IYM%(n%),IX1M%(n%),IY1M%(n%) 5470ENDPROC 5480 5490DEF PROC_PutPramHex2(n%,V%) 5500LOCAL H$ 5510H$=STR$~(V%) 5520WHILE LEN(H$)<2 5530H$="0"+H$ 5540ENDWHILE 5550PROC_sput(SPoint%(n%),H$) 5560SYS"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) 5570ENDPROC 5580 5590DEF PROC_PutPramsS(n%,V$) 5600PROC_sput(SPoint%(n%),V$) 5610SYS"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) 5620ENDPROC 5630 5640DEF PROC_sput(x%,X$) 5650LOCAL A% 5660FOR A%=1 TO LEN(X$) 5670?x%=ASC(MID$(X$,A%,1)) 5680x%+=1 5690NEXT 5700?x%=0 5710ENDPROC 5720 5730DEF PROC_Fname(n$) 5740InFile$=n$ 5750PROC_PutPramsS(0,n$) 5760ENDPROC 5770 5780DEF PROCwipeProg 5790LOCAL A% 5800FOR A%=0 TO &800 STEP 4 5810ProgMemS%!A%=&FF3FFF3F 5820NEXT 5830ENDPROC 5840 5850DEF PROCwipeData 5860LOCAL A% 5870FOR A%=0 TO 128 STEP 4 5880DataMemS%!A%=&FF00FF00 5890NEXT 5900FOR A%=0 TO 15 5910ConfigMem%?A%=0 5920NEXT 5930ENDPROC 5940 5950DEF PROC_Load(F$) 5960LOCAL A%,B%,C%,F% 5970F%=OPENIN(F$) 5980IF F%<>0 THEN 5990IF NOT(Merge%) THEN PROCwipeData:PROCwipeProg 6000PROCreadHF 6010CLOSE#F% 6020PROCPUPreset 6030PROCsetConfig 6040Stack%()=0 6050PROCudStack 6060Sleep%=FALSE 6070ELSE 6080PROC_setupW("Can't open this file") 6090ENDIF 6100ENDPROC 6110 6120DEF PROCreadHF 6130LOCAL P%,Base%,B%,C%,CB%,Limit%,Line% 6140Line%=0 6150REPEAT 6160REPEAT 6170IF NOT(EOF#F%) THEN B%=BGET#F% ELSE PROC_setupW("Unexpected end of file"):ENDPROC 6180UNTIL CHR$(B%)=":" 6190Check%=0:Line%+=1 6200L%=FNrb>>1 6210P%=(FNrb<<8 OR FNrb)>>1 6220Base%=ProgMemS% 6230IF P%>&3FF AND P%<&2000 THEN P%=P% AND &3FF 6240IF P%>&1FFF AND P%<&2010 THEN Base%=ConfigMem%:P%=P% AND &F 6250IF P%>&20FF THEN Base%=DataMemS%:P%=P% AND &3F 6260B%=FNrb 6270IF B%=1 THEN ENDPROC 6280A%=0 6290FOR B%=1 TO L% 6300Base%?(A%+1+(P%<<1))=FNrb 6310Base%?(A%+(P%<<1))=FNrb 6320A%+=2 6330NEXT 6340C%=(NOT(Check%)+1) AND &FF 6350CB%=FNrb 6360IF CB%<>C% THEN PROC_setupW("Check sum error line "+STR$(Line%)):ENDPROC 6370UNTIL FALSE 6380ENDPROC 6390 6400DEF FNrb 6410LOCAL B%,C%,D% 6420IF NOT(EOF#F%) THEN B%=BGET#F% ELSE B%=ASC("F") 6430IF NOT(EOF#F%) THEN C%=BGET#F% ELSE C%=ASC("F") 6440D%=FNth(B%,C%) 6450Check%+=D% 6460=D% 6470 6480REM Convert two digit hex text into a number 6490DEF FNth(M%,K%) 6500=FNh(M%)<<4 OR FNh(K%) 6510 6520DEF FNh(n%) 6530IF n%>&39 THEN n%=9 + (n% AND &F) ELSE n%=n% AND &F 6540=n% 6550 6560DEF FNincR(n%) 6570Reg%(n%)+=1 6580IF Reg%(n%)>255 THEN Reg%(n%)=Reg%(n%)-256 6590=Reg%(n%) 6600 6610DEF PROCudStack 6620LOCAL A% 6630FOR A%=32 TO 39 6640PROC_PutPramHex(A%,Stack%(A%-32)) 6650NEXT 6660ENDPROC 6670 6680REM ----------------------------------------------------------- 6690DEF PROC_INIT 6700FOR A%=1 TO 37 6710 READ Mne$(A%),Op%(A%),It%(A%) 6720NEXT 6730Reg%(5)=&1F:Reg%(6)=&FF:Reg%(&85)=&1F:Reg%(&86)=&FF 6740Break%(0)=&400:Break%(1)=&400:Break%(2)=&400:Break%(3)=&400 6750ENDPROC 6760 6770REM Mnemonic, opcode, type 6780DATA addwf,&700,1, andwf, &500,1, clrf,&180,4, clrw,&100,0 6790DATA comf,&900,1, decf,&300,1, decfsz,&B00,1, incf,&A00,1 6800DATA incfsz,&F00,1, iorwf,&400,1, movf,&800,1, movwf,&080,4 6810DATA nop,0,0, rlf,&D00,1, rrf,&C00,1, subwf,&200,1 6820DATA swapf,&E00,1, xorwf,&600,1, bcf,&1000,2, bsf,&1400,2 6830DATA btfsc,&1800,2, btfss,&1C00,2, addlw,&3E00,3, andlw,&3900,3, call,&2000,3 6840DATA clrwdt,&64,0, goto,&2800,5, iorlw,&3800,3, movlw,&3000,3 6850DATA retfie, &9,0, retlw,&3400,3, return,&8,0, sleep,&063,0 6860DATA sublw,&3C00,3, xorlw,&3A00,3 6870REM Instructions to phase out 6880DATA tris,&60,4, option,&062,0 6890 6900 6910REM ----------------------------------------------------------- 6920DEF PROCPUPreset 6930LOCAL A% 6940REM PROC_upIO(Reg%(&85),&1F,19,5,5):PROC_upIO(Reg%(&86),&FF,11,8,6) 6950 6960Reg%(&85)=&1F:Reg%(&86)=&FF:Reg%(3)=(Reg%(3) AND 7) OR &18 6970Reg%(&81)=&FF:Reg%(&88)=0:Reg%(&A)=0:Reg%(&B)=Reg%(&B) AND 1 6980PROC_upIO(0,&1F,19,5,5):PROC_upIO(0,&FF,11,8,6) 6990 7000PROCupStat(Reg%(3) EOR &FF,Reg%(3)) 7010PROCupB(Reg%(&81) EOR &FF,Reg%(&81),0,8) 7020PROCupB(Reg%(&B) EOR &FF,Reg%(&B),9,8) 7030PROCupB(Reg%(&88) EOR &FF,Reg%(&88),18,5) 7040WatchdogTime%=0 7050PROC_PPHm(25,WatchdogTime%):PROC_PPHm(24,WatchLimit%) 7060FOR A%=26 TO 72 7070IF NOT(A%=28 OR A%=32 OR A%=35 OR A%=36) THEN PROC_sput(SPointM%(A%)," ") 7080SYS"Wimp_ForceRedraw",monW%,IXM%(A%),IYM%(A%),IX1M%(A%),IY1M%(A%) 7090NEXT 7100FOR A%=0 TO 3 7110Break%(A%)=&400 7120PROC_PutPramsS(A%+40," ") 7130NEXT 7140REM PROCreset 7150Reg%(2)=0:HiPC%=0:PROC_PutPramHex(1,Reg%(2)+HiPC%):PROCfetchN 7160t%=(Reg%(3) AND &7) OR &18:PROCupStat(Reg%(3),t%):Reg%(3)=t% 7170Sleep%=FALSE:$SPoint%(9)="emledoff" 7180SYS"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) 7190ENDPROC 7200 7210DEF PROCreset 7220LOCAL t% 7230Reg%(2)=0:HiPC%=0:PROC_PutPramHex(1,Reg%(2)+HiPC%):PROCfetchN 7240t%=Reg%(3):Reg%(3)=t% AND &1F:PROCupStat(t%,Reg%(3)) 7250t%=Reg%(&85):Reg%(&85)=&1F:PROC_upIO(t%,Reg%(&85),19,5,5) 7260t%=Reg%(&86):Reg%(&86)=&FF:PROC_upIO(t%,Reg%(&86),11,8,6) 7270t%=Reg%(&81):Reg%(&81)=&FF:PROCupB(t%,Reg%(&81),0,8) 7280 7290IF Sleep% THEN 7300t%=(Reg%(3) AND &7) OR &10:PROCupStat(Reg%(3),t%):Reg%(3)=t% 7310Sleep%=FALSE:$SPoint%(9)="emledoff" 7320SYS"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) 7330ENDIF 7340ENDPROC 7350 7360REM Set the watchdog bit 7370DEF PROCsetConfig 7380LOCAL A%,B% 7390A%=(ConfigMem%?15) AND &4 7400IF A%=0 THEN B%=FALSE ELSE B%=TRUE 7410IF B%<>Watchdog% THEN 7420Watchdog%=B% 7430IF B% THEN $SPoint%(5)="yes" ELSE $SPoint%(5)="no" 7440SYS"Wimp_ForceRedraw",conW%,IX%(5),IY%(5),IX1%(5),IY1%(5) 7450ENDIF 7460ENDPROC 7470 7480DEF PROCcycle 7490LOCAL P% 7500IF NOT(Sleep%) AND NOT(Skip%) THEN PROCexe 7510PROCincPC 7520PROCchkInt 7530IF NOT(Sleep%) THEN PROCfetchN 7540IF NOT(Step%) AND NOT(Sleep%) THEN 7550P%=FNhpg(1) 7560FOR A%=0 TO 3 7570IF Break%(A%)=P% THEN 7580Step%=TRUE:$SPoint%(10)="Go":SYS"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) 7590$SPoint%(6)="radioon":$SPoint%(7)="radiooff" 7600SYS"Wimp_ForceRedraw",conW%,IX%(6),IY%(6),IX1%(6),IY1%(6) 7610SYS"Wimp_ForceRedraw",conW%,IX%(7),IY%(7),IX1%(7),IY1%(7) 7620ENDIF 7630NEXT 7640ENDIF 7650ENDPROC 7660 7670DEF PROCfetchN 7680LOCAL A% 7690A%=(Reg%(2)+HiPC%) AND &3FF 7700OPcode%=((ProgMemS%?(A%<<1))<<8) + (ProgMemS%?(1+(A%<<1))) 7710PROC_PutPramHex(2,OPcode%) 7720PROCdiss 7730ENDPROC 7740 7750DEF PROCchkInt 7760LOCAL F%,t%,E% 7770 7780F%=Reg%(&B) 7790 7800REM Check INT 7810IF (F% AND &10)<>0 AND ((Reg%(&86) AND 1)<>0) THEN 7820 IF RB0% <>(Reg%(6) AND 1) THEN 7830 t%=Reg%(&81) AND &40 7840 IF (t%=0 AND RB0%=1) OR (t%<>0 AND RB0%=0) THEN t%=Reg%(&B) OR &2:PROCupB(Reg%(&B),t%,9,8):Reg%(&B)=t% 7850 ENDIF 7860ENDIF 7870 7880 REM Check Prort RB 7890t%=(Reg%(6) AND &F0) AND Reg%(&86) 7900 IF t%<>PBchange% AND (F% AND &8)<>0 THEN 7910 t%=Reg%(&B) OR &1:PROCupB(Reg%(&B),t%,9,8):Reg%(&B)=t% 7920 ENDIF 7930 7940 REM Eprom write interrupt 7950 IF EtimeOut%<>0 THEN 7960 EtimeOut%-=1 7970 PROC_PPHm(27,EtimeOut%) 7980 IF EtimeOut%=0 THEN 7990 t%=Reg%(&B) OR &8:PROCupB(Reg%(&B),t%,9,8):Reg%(&B)=t% 8000 t%=Reg%(&88) AND &1D:PROCupB(Reg%(&88),t%,18,5):Reg%(&88)=t% 8010 ENDIF 8020 ENDIF 8030 8040REM now respond to any interrupt flags 8050E%=(Reg%(&B)>>3) AND 7 8060 IF ((Reg%(&B) AND E%)<>0 OR (Reg%(&88) AND &10)<>0) AND (Reg%(&B) AND &80)<>0 THEN 8070 IF Sleep% AND ((Reg%(&B) AND 2)<>0) THEN 8080 REM Wake up from sleep 8090 Sleep%=FALSE 8100 t%=(Reg%(3) AND &F7) OR &10 8110 PROCupStat(Reg%(3),t%) 8120 Reg%(3)=t% 8130 $SPoint%(9)="emledoff" 8140 SYS"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) 8150 ELSE 8160 PROCpush:Stack%(0)=Reg%(2)+HiPC%:PROCudStack 8170 Reg%(2)=4:HiPC%=0 8180 PROC_PutPramHex(1,4) 8190 ENDIF 8200 t%=Reg%(&B) AND &7F 8210 PROCupB(Reg%(&B),t%,9,8) 8220 Reg%(&B)=t% 8230 ENDIF 8240RB0%=Reg%(6) AND 1 8250PBchange%=(Reg%(6) AND &F0) AND Reg%(&86) 8260ENDPROC 8270 8280DEF PROCincTimer 8290LOCAL pst%,psi% 8300IF Sleep% THEN ENDPROC 8310pst%=FALSE 8320IF (Reg%(&81) AND 8)=0 THEN 8330psi%=Reg%(&81) AND 7 8340psi%=2^(psi% EOR 7) 8350Prescale%+=psi% 8360IF Prescale%>&FF THEN Prescale%=0:pst%=TRUE 8370PROC_PPHm(23,Prescale%) 8380ELSE 8390pst%=TRUE 8400ENDIF 8410 8420IF pst% THEN 8430Reg%(1)+=1 8440IF Reg%(1)>&FF THEN 8450Reg%(1)=0 8460t%=Reg%(&B) OR &4:PROCupB(Reg%(&B),t%,9,8):Reg%(&B)=t% 8470ENDIF 8480PROC_PPHm(26,Reg%(1)) 8490ENDIF 8500ENDPROC 8510 8520DEF PROCincPC 8530LOCAL A%,t% 8540IF (Reg%(&81) AND &20)=0 THEN 8550PROCincTimer 8560ELSE 8570 IF (Reg%(&B) AND &A0)=&A0 THEN 8580 IF (Reg%(5) AND &10)<>RA4% THEN 8590 IF RA4%=0 AND (Reg%(&81) AND &10)=0 THEN PROCincTimer 8600 IF RA4%<>0 AND (Reg%(&81) AND &10)<>0 THEN PROCincTimer 8610 ENDIF 8620 ENDIF 8630ENDIF 8640 8650RA4%=Reg%(5) AND &10 8660 8670IF goto%=FALSE AND Sleep%=FALSE THEN 8680A%=FNincR(2) 8690IF A%=0 THEN HiPC%=(HiPC%+256) AND &1F00 8700PROC_PutPramHex(1,A%+HiPC%) 8710ELSE 8720goto%=FALSE 8730PROC_PutPramHex(1,Reg%(2)+HiPC%) 8740ENDIF 8750 8760IF Watchdog% THEN 8770WatchdogTime%+=1 8780PROC_PPHm(25,WatchdogTime%) 8790 8800IF WatchdogTime%>WatchLimit% THEN 8810 WatchdogTime%=0:PROC_PPHm(25,WatchdogTime%) 8820 IF (Reg%(&81) AND 8)<>0 THEN 8830 A%=FALSE 8840 t%=(Reg%(&81) AND 7) EOR 7 8850 t%=(2^t%)<<1 8860 Prescale%+=t% 8870 IF Prescale%>&FF THEN A%=TRUE:Prescale%=0 8880 PROC_PPHm(23,Prescale%) 8890 ELSE 8900 A%=TRUE 8910 ENDIF 8920 8930 IF A% AND NOT(Sleep%) THEN 8940 t%=(Reg%(3) AND &7) OR &8:PROCupStat(Reg%(3),t%):Reg%(3)=t% 8950 HiPC%=0:Reg%(2)=0 8960 PROC_PutPramHex(1,Reg%(2)+HiPC%) 8970 ENDIF 8980 8990 IF Sleep% AND A% THEN 9000 t%=Reg%(3) AND &EF:PROCupStat(Reg%(3),t%):Reg%(3)=t% 9010 Sleep%=FALSE:$SPoint%(9)="emledoff" 9020 SYS"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) 9030 ENDIF 9040ENDIF 9050ENDIF 9060 9070ENDPROC 9080 9090DEF PROCdiss 9100LOCAL op$ 9110Found%=FALSE 9120IF (OPcode% AND &3000) = 0 THEN PROCfbyte 9130IF NOT(Found%) AND (OPcode% AND &3000) =&1000 THEN PROCfbit 9140IF NOT(Found%) THEN PROCfcont 9150IF NOT(Found%) THEN PROC_setupW("Unimplemented Op-code at "+STR$~(Reg%(2)+HiPC%)):PROC_PutPramsS(3,"Unimplemented") 9160ENDPROC 9170 9180DEF PROCfcont 9190LOCAL T% 9200CASE OPcode% OF 9210WHEN &64: PROCsmake(26,&F00,FALSE) 9220WHEN &63: PROCsmake(33,&F00,FALSE) 9230WHEN &9: PROCsmake(30,&F00,FALSE) 9240WHEN &8: PROCsmake(32,&F00,FALSE) 9250OTHERWISE 9260IF (OPcode% AND &3800)=&2000 THEN PROCgmake(25,OPcode% AND &3FF,"address") 9270IF (OPcode% AND &3800)=&2800 THEN PROCgmake(27,OPcode% AND &3FF,"address") 9280 IF NOT(Found%) THEN 9290 T%=(OPcode% AND &3F00)>>8 9300 CASE T% OF 9310 WHEN &39:PROCgmake(24,OPcode% AND &FF,"value") 9320 WHEN &38:PROCgmake(28,OPcode% AND &FF,"value") 9330 WHEN &3A:PROCgmake(35,OPcode% AND &FF,"value") 9340 ENDCASE 9350 IF NOT(Found%) THEN 9360 IF (OPcode% AND &3E00)=&3E00 THEN PROCgmake(23,OPcode% AND &FF,"value") 9370 IF (OPcode% AND &3C00)=&3000 THEN PROCgmake(29,OPcode% AND &FF,"value") 9380 IF (OPcode% AND &3C00)=&3400 THEN PROCgmake(31,OPcode% AND &FF,"value") 9390 IF (OPcode% AND &3E00)=&3C00 THEN PROCgmake(34,OPcode% AND &FF,"value") 9400 ENDIF 9410 ENDIF 9420ENDCASE 9430ENDPROC 9440 9450DEF PROCfbit 9460LOCAL A%,p$ 9470A%=((OPcode% AND &C00)>>10)+19 9480p$=Mne$(A%)+" file "+STR$~(OPcode% AND &7F)+"h, bit "+STR$((OPcode% AND &380)>>7) 9490PROC_PutPramsS(3,p$) 9500Found%=TRUE:OPnumber%=A% 9510ENDPROC 9520 9530DEF PROCfbyte 9540LOCAL Trial%,A% 9550Trial%=OPcode% AND &3F80 9560IF Trial%=&180 THEN PROCsmake(3,OPcode% AND &7F,FALSE):ENDPROC 9570IF Trial%=&100 THEN PROCsmake(4,&F00,FALSE):ENDPROC 9580IF Trial%=0 AND (OPcode% AND &9F)=0 THEN PROCsmake(13,&F00,FALSE):ENDPROC 9590IF Trial%=&80 THEN PROCsmake(12,OPcode% AND &7F,FALSE):ENDPROC 9600Trial%=OPcode% AND &3F00 9610A%=0 9620REPEAT 9630A%+=1 9640IF A%=13 THEN A%+=1 9650UNTIL Op%(A%)=Trial% OR A%=23 9660IF A%<>23 THEN PROCsmake(A%,OPcode% AND &7F,TRUE) 9670IF OPcode%=&66 THEN PROCsmake(36,&86,FALSE) 9680IF OPcode%=&65 THEN PROCsmake(36,&85,FALSE) 9690IF OPcode%=&62 THEN PROCsmake(37,&F00,FALSE) 9700ENDPROC 9710 9720DEF PROCsmake(o%,v%,d%) 9730LOCAL p$ 9740IF v%>&800 THEN p$="" ELSE p$="file "+STR$~(v%)+"h" 9750IF d% THEN 9760IF (OPcode% AND &80)=0 THEN p$=p$+", w" ELSE p$=p$+", f" 9770ENDIF 9780PROC_PutPramsS(3,Mne$(o%)+" "+p$) 9790Found%=TRUE 9800OPnumber%=o% 9810ENDPROC 9820 9830DEF PROCgmake(o%,v%,a$) 9840LOCAL p$ 9850IF v%>&800 THEN p$="" ELSE p$=a$+" "+STR$~(v%)+"h" 9860PROC_PutPramsS(3,Mne$(o%)+" "+p$) 9870Found%=TRUE 9880OPnumber%=o% 9890ENDPROC 9900 9910DEF PROC_upIO(o%,new%,s%,n%,r%) 9920LOCAL B%,A% 9930FOR A%=s% TO s%+n%-1 9940B%=2^(A%-s%) 9950IF (o% AND B%) <> (new% AND B%) THEN 9960 IF (new% AND B%)=0 THEN 9970 IF (Reg%(r%) AND B%)=0 THEN $SPoint%(A%)="emledoff" ELSE $SPoint%(A%)="emledon" 9980 ELSE 9990 IF (Reg%(r%) AND B%)=0 THEN $SPoint%(A%)="emswoff" ELSE $SPoint%(A%)="emswon" 10000 ENDIF 10010 SYS"Wimp_ForceRedraw",conW%,IX%(A%),IY%(A%),IX1%(A%),IY1%(A%) 10020ENDIF 10030 10040NEXT 10050ENDPROC 10060 10070DEF PROCupPb(old%,new%) 10080LOCAL A%,B% 10090FOR A%=0 TO 7 10100B%=2^A% 10110IF ((old% AND B%) <> (new% AND B%)) AND ((Reg%(&86) AND B%)=0) THEN 10120IF (new% AND B%)=0 THEN $SPoint%(A%+11)="emledoff" ELSE $SPoint%(A%+11)="emledon" 10130SYS"Wimp_ForceRedraw",conW%,IX%(A%+11),IY%(A%+11),IX1%(A%+11),IY1%(A%+11) 10140ENDIF 10150NEXT 10160ENDPROC 10170 10180DEF PROCupStat(old%,new%) 10190LOCAL A%,B% 10200FOR A%=0 TO 7 10210B%=2^A% 10220IF (old% AND B%) <> (new% AND B%) THEN 10230IF (new% AND B%)=0 THEN $SPoint%(A%+24)="emzero" ELSE $SPoint%(A%+24)="emone" 10240SYS"Wimp_ForceRedraw",conW%,IX%(A%+24),IY%(A%+24),IX1%(A%+24),IY1%(A%+24) 10250ENDIF 10260NEXT 10270ENDPROC 10280 10290DEF PROCupPa(old%,new%) 10300LOCAL A%,B% 10310FOR A%=0 TO 4 10320B%=2^A% 10330IF ((old% AND B%) <> (new% AND B%)) AND ((Reg%(&85) AND B%)=0) THEN 10340IF (new% AND B%)=0 THEN $SPoint%(A%+19)="emledoff" ELSE $SPoint%(A%+19)="emledon" 10350SYS"Wimp_ForceRedraw",conW%,IX%(A%+19),IY%(A%+19),IX1%(A%+19),IY1%(A%+19) 10351ENDIF 10370NEXT 10380ENDPROC 10390 10400DEF PROCupB(old%,new%,i%,n%) 10410LOCAL A%,B% 10420FOR A%=0 TO n%-1 10430B%=2^A% 10440IF (old% AND B%) <> (new% AND B%) THEN 10450IF (new% AND B%)=0 THEN $SPointM%(A%+i%)="emzero" ELSE $SPointM%(A%+i%)="emone" 10460SYS"Wimp_ForceRedraw",monW%,IXM%(A%+i%),IYM%(A%+i%),IX1M%(A%+i%),IY1M%(A%+i%) 10470ENDIF 10480NEXT 10490ENDPROC 10500 10510REM ----------------------------------------------------------- 10520DEF FNfile 10530LOCAL f%,s% 10540f%=OPcode% AND &7F 10550s%=(Reg%(3) AND &20)<<2 10560f%=f% OR s% 10570IF f%=0 OR f%=&80 THEN f%=Reg%(4) 10580IF f%>&89 THEN f%=f% AND &7F 10590IF f%>&81 AND f%<&85 THEN f%=f% AND &7F 10600=f% 10610 10620DEF FNbn 10630=2^((OPcode% AND &380)>>7) 10640 10650DEF PROCput 10660LOCAL o%,d%,s% 10670IF (OPcode% AND &80)=0 THEN 10680Wreg%=t%:PROC_PutPramHex2(4,t%) 10690s%=Reg%(3):Reg%(3)=(s% AND &F8) OR NewStat% 10700IF s%<>Reg%(3) THEN PROCupStat(s%,Reg%(3)) 10710ELSE 10720o%=Reg%(r%) 10730Reg%(r%)=t% 10740CASE r% OF 10750WHEN 3: Reg%(3)=(t% AND &E7) OR (o% AND &18):PROCupStat(o%,Reg%(3)) 10760WHEN 1: IF (Reg%(&81) AND 8)=0 THEN Prescale%=0:PROC_PPHm(23,Prescale%) 10770WHEN 5: Reg%(5)=(Reg%(&85) AND o%) OR ((Reg%(&85) EOR &1F) AND t%) :PROCupPa(o%,t%) 10780WHEN 6: Reg%(6)=(Reg%(&86) AND o%) OR ((Reg%(&86) EOR &FF) AND t%) :PROCupPb(o%,t%) 10790WHEN 7: PROC_setupW("Can't write to register 7") 10800WHEN 9: Reg%(8)=DataMemS%?(((t% AND &3F)<<1)+1):PROC_PPHm(33,Reg%(8)) 10810WHEN &87: PROC_setupW("Can't write to register 87") 10820WHEN 10: PROC_setupW("Can't write to register 0A") 10830WHEN &85: PROC_upIO(o%,t%,19,5,5) 10840WHEN &86: PROC_upIO(o%,t%,11,8,6) 10850WHEN &88: IF (t% AND 6)=6 AND (o% AND 2)=0 THEN 10860 EtimeOut%=Etime% 10870 DataMemS%?(((Reg%(9) AND &3F)<<1)+1)=Reg%(8) 10880 ENDIF 10890ENDCASE 10900s%=Reg%(3):Reg%(3)=(s% AND &F8) OR NewStat% 10910IF s%<>Reg%(3) THEN PROCupStat(s%,Reg%(3)) 10920 10930 IF Mopen% THEN 10940 CASE r% OF 10950 WHEN &81: PROCupB(o%,t%,0,8) 10960 WHEN &0B: PROCupB(o%,t%,9,8) 10970 WHEN &88: PROCupB(o%,t%,18,5) 10980 WHEN &85: PROC_PPHm(30,t%) 10990 WHEN &86: PROC_PPHm(31,t%) 11000 OTHERWISE 11010 IF NOT(r%=3 OR r%=5 OR r%=6 OR r%=7 OR r%=10 OR r%=2) AND r% <&30 THEN 11020 PROC_PPHm(r%+25,t%) 11030 ENDIF 11040 ENDCASE 11050 ENDIF 11060ENDIF 11070ENDPROC 11080 11090 11100DEF PROCbput 11110OPcode%=OPcode% OR &80 11120PROCput 11130ENDPROC 11140 11150DEF PROCwput 11160OPcode%=OPcode% AND NOT(&80) 11170PROCput 11180ENDPROC 11190 11200DEF PROCcarry 11210LOCAL s% 11220s%=0 11230IF t%>&FF THEN s%=1:t%=t% AND &FF 11240NewStat%=(NewStat% AND &FE) OR s% 11250ENDPROC 11260 11270DEF PROCzero 11280LOCAL s% 11290s%=0 11300IF t%=0 THEN s%=4 11310NewStat%=(NewStat% AND &FB) OR s% 11320ENDPROC 11330 11340DEF PROCdc 11350LOCAL s% 11360s%=0 11370IF t%>&F THEN s%=2 11380NewStat%=(NewStat% AND &FD) OR s% 11390ENDPROC 11400 11410DEF PROCpop 11420LOCAL A% 11430FOR A%=1 TO 7 11440Stack%(A%-1)=Stack%(A%) 11450NEXT 11460Stack%(7)=0 11470PROCudStack 11480ENDPROC 11490 11500DEF PROCpush 11510LOCAL A% 11520FOR A%=6 TO 0 STEP -1 11530Stack%(A%+1)=Stack%(A%) 11540NEXT 11550ENDPROC 11560 11570REM Execuite a command 11580DEF PROCexe 11590LOCAL r%,t%,b% 11600NewStat%=Reg%(3) AND 7 11610r%=FNfile 11620CASE OPnumber% OF 11630WHEN 1: t%=(Wreg% AND &F) + (Reg%(r%) AND &F) :PROCdc 11640 t%=Wreg% + Reg%(r%):PROCcarry:PROCzero:PROCput 11650WHEN 2: t%=Wreg% AND Reg%(r%):PROCzero:PROCput 11660WHEN 3: t%=0:IF r%=3 THEN NewStat%=0 11670 PROCzero:PROCput 11680WHEN 4: t%=0:OPcode%=OPcode% AND &3F7F:PROCzero:PROCput 11690WHEN 5: t%=Reg%(r%) EOR &FF:PROCzero:PROCput 11700WHEN 6: t%=(Reg%(r%)-1) AND &FF:PROCzero:PROCput 11710WHEN 7: t%=(Reg%(r%)-1) AND &FF:PROCzero:PROCput 11720 IF t%=0 THEN PROCincPC 11730WHEN 8: t%=(Reg%(r%)+1) AND &FF:PROCzero:PROCput 11740WHEN 9: t%=(Reg%(r%)+1) AND &FF:PROCzero:PROCput 11750 IF t%=0 THEN PROCincPC 11760WHEN 10: t%=Wreg% EOR Reg%(r%):PROCzero:PROCput 11770WHEN 11: t%=Reg%(r%):PROCzero:PROCput 11780WHEN 12: t%=Wreg%: IF r%=2 THEN goto%=TRUE 11790 IF r%=3 THEN NewStat%=t% AND 7 11800 PROCput 11810WHEN 14: t%=(Reg%(r%)<<1) OR (Reg%(3) AND 1):PROCcarry:PROCput 11820WHEN 15: t%=(Reg%(r%)>>1) OR ((Reg%(3) AND 1)<<7) OR ((Reg%(r%) AND 1)<<8) 11830 PROCcarry:PROCput 11840WHEN 16: t%=((Reg%(r%) AND &F)-(Wreg% AND &F)) AND &FF :PROCdc 11850 t%=((Reg%(r%)-Wreg%) AND &1FF):PROCcarry:PROCzero 11860 NewStat%=NewStat% EOR 1:PROCput 11870WHEN 17: t%=((Reg%(r%) AND &F)<<4) OR ((Reg%(r%) AND &F0)>>4) 11880 IF ((OPcode% AND &80)<>0) AND r%=3 THEN NewStat%=t% AND 7 11890 PROCput 11900WHEN 18: t%=Reg%(r%) EOR Wreg%:PROCzero:PROCput 11910WHEN 19: b%=(NOT(FNbn)) AND &FF:t%=Reg%(r%) AND b% 11920 IF r%=3 THEN NewStat%=NewStat% AND b% OR (Reg%(3) AND &18) 11930 PROCbput 11940WHEN 20: b%=FNbn:t%=Reg%(r%) OR b% 11950 IF r%=3 THEN NewStat%=NewStat% AND b% OR (Reg%(3) AND &18) 11960 PROCbput 11970WHEN 21: b%=FNbn:IF (b% AND Reg%(r%))=0 THEN PROCincPC 11980WHEN 22: b%=FNbn:IF (b% AND Reg%(r%))<>0 THEN PROCincPC 11990WHEN 23: b%=OPcode% AND &FF:t%=(Wreg% AND &F) + (b% AND &F) :PROCdc 12000 t%=Wreg%+b%:PROCcarry:PROCzero:PROCwput 12010WHEN 24: b%=OPcode% AND &FF :t%=Wreg% AND b%:PROCzero:PROCwput 12020WHEN 25: PROCpush:PROCincPC:Stack%(0)=Reg%(2)+HiPC%:PROCudStack 12030 goto%=TRUE:Reg%(2)=OPcode% AND &FF:HiPC%=(OPcode% AND &700) OR (HiPC% AND &1800) 12040WHEN 26: WatchdogTime%=0:t%=Reg%(3) OR &18:PROCupStat(Reg%(3),t%):Reg%(3)=t% 12050WHEN 27: goto%=TRUE:Reg%(2)=OPcode% AND &FF:HiPC%=(OPcode% AND &700) OR (HiPC% AND &1800) 12060WHEN 28: b%=OPcode% AND &FF :t%=Wreg% OR b%:PROCzero:PROCwput 12070WHEN 29: Wreg%=OPcode% AND &FF:PROC_PutPramHex2(4,Wreg%) 12080WHEN 30: Reg%(2)=Stack%(0) AND &FF:HiPC%=Stack%(0) AND &700:goto%=TRUE:PROCpop 12090 t%=Reg%(&B) OR &80:PROCupB(Reg%(&B),t%,9,8):Reg%(&B)=t% 12100WHEN 31: Reg%(2)=Stack%(0) AND &FF:HiPC%=Stack%(0) AND &700:goto%=TRUE:PROCpop 12110 t%=OPcode% AND &FF:OPcode%=OPcode% AND &3F7F:PROCput 12120WHEN 32: Reg%(2)=Stack%(0) AND &FF:HiPC%=Stack%(0) AND &700:goto%=TRUE:PROCpop 12130WHEN 33: PROCincPC:PROCfetchN:Sleep%=TRUE:$SPoint%(9)="emledon" 12140 SYS"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) 12150 t%=(Reg%(3) OR &10) AND &F7:r%=3:PROCupStat(Reg%(3),t%):Reg%(3)=t% 12160WHEN 34: b%=OPcode% AND &FF:t%=(b% AND &F)-(Wreg% AND &F):PROCdc 12170 t%=((b%-Wreg%) AND &1FF):PROCcarry:PROCzero 12180 NewStat%=NewStat% EOR 1:PROCwput 12190WHEN 35: b%=OPcode% AND &FF :t%=Wreg% EOR b%:PROCzero:PROCwput 12200WHEN 37: r%=&81:t%=Wreg%:PROCbput 12210WHEN 36: r%=(OPcode% AND 7) OR &80:PROCbput 12220ENDCASE 12230ENDPROC
� Pic 18C84 Simulator � Version 1.0 By Mike Cook � All rights reserved (e� q% &300,qc% 80, Wn% &2500,temp% 256,buffers% 512,menu% 256,SW% 2096,cb% 18,SWM% 2096,WnM% &2500 2� TextWarn% 100, ww% 256 < F� � �errorbox P+� taskid% 4,intmess% 20:$taskid%="TASK" ZIintmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0 dXș "Wimp_Initialise",300,!taskid%,"PIC18C84-Simulator",intmess% � version%,taskhand% n xMxL%=300 �(� Mne$(38),Op%(38),It%(38),Reg%(&FF) �Ni%=44:NiM%=72 �B� SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%),Stack%(7) �B� SPointM%(NiM%),IXM%(NiM%),IYM%(NiM%),IX1M%(NiM%),IY1M%(NiM%) �� Break%(3) �1� ProgMemS% &800,DataMemS% 128, ConfigMem% 16 � �2ș "Wimp_OpenTemplate",,"<EM84$Dir>.Templates" �)� � ș "Wimp_CloseTemplate":�errorbox �:ș "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0 �&ș "Wimp_CreateWindow",,q% � info% � �=ș "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+2096,-1,"Control",0 Wn%!28=-1 � A%=0 � Ni% $SPoint%(A%)=!(Wn%+4+88+20+32*A%) "9IX%(A%)=!(Wn%+4+88+32*A%):IY%(A%)=!(Wn%+4+88+4+32*A%) ,>IX1%(A%)=!(Wn%+4+88+8+32*A%):IY1%(A%)=!(Wn%+4+88+12+32*A%) 6� @ J)ș "Wimp_CreateWindow",,Wn%+4 � conW% TWn%!0=conW%:Wn%!28=-1 ^ h@ș "Wimp_LoadTemplate",,WnM%+4,SWM%,SWM%+2096,-1,"Monitor",0 rWnM%!28=-1 |� A%=0 � NiM% �&SPointM%(A%)=!(WnM%+4+88+20+32*A%) �=IXM%(A%)=!(WnM%+4+88+32*A%):IYM%(A%)=!(WnM%+4+88+4+32*A%) �BIX1M%(A%)=!(WnM%+4+88+8+32*A%):IY1M%(A%)=!(WnM%+4+88+12+32*A%) �� � �*ș "Wimp_CreateWindow",,WnM%+4 � monW% �WnM%!0=monW%:WnM%!28=-1 � �9ș "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0 �)q%!108=TextWarn%:q%!112=-1:q%!116=300 � XQ%=q%!8-q%!0:YQ%=q%!12-q%!4 �*ș "Wimp_CreateWindow",,q% � warningW% �ș "Wimp_CloseTemplate" smpicon%=�icon wopen%=�:warnOn%=�:Mopen%=� &InWin%=� 0#�_PutPramsS(0,"Drag File Here") :Step%=�:Running%=� D"Watchdog%=�:Merge%=�:OscOpt%=0 N)Reseting%=�:HiPC%=0:Wreg%=0:OPcode%=0 XStatus%=0:goto%=�:Sleep%=� b-Reg%()=0:WatchdogTime%=0:WatchLimit%=1800 cReg%(5)=&1F:Reg%(6)=&FF l'Smon%=�:Scont%=�:RB0%=0:PBchange%=0 v&EtimeOut%=0:Etime%=100:Prescale%=0 �ProgMem%=�:Skip%=� ��wipeProg:�wipeData ��setupmenu � �_INIT � �� � ș "Wimp_Poll",0,q% � A% � Ȏ A% � � � 0:�_Null � � 1:�7 �O � 2:ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%: ș "Wimp_OpenWindow",,q% � � 3:�_close �! � 4:InWin%=�:LX%=-1:LY%=-1 � 5:InWin%=� � 6:�_do_click(q%) � 7:�_PutDown(q%) � 8:�_KeyPress * � 9:�_SORT_Menu 4 � 17,18:�receive(q%) > � H � � R \� f p� �_Null z� X%,Y%,B% �� wopen% � �ȗ X%,Y%,B% �}� Reseting%=� � B%=0 � $SPoint%(8)="radiooff":Reseting%=�:ș"Wimp_ForceRedraw",conW%,IX%(8),IY%(8),IX1%(8),IY1%(8):�reset �� Running% � �cycle �r� Running% � Step% � Running%=�:$SPoint%(10)="Go":ș"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) �� �� � �� �_SORT_Menu �Ȏ !q% � �U � 1: Scont%=�(Scont%):� Scont% � menu%?52=menu%?52 � 1 � menu%?52=menu%?52 � &FE �7 � Scont%=� � wopen%=� � q%!0=conW%:�_close �+ � Scont%=� � wopen%=� � �_Open [ � 2: Smon%=�(Smon%):� Smon% � menu%?76=menu%?76 � 1 � menu%?76=menu%?76 � &FE:Merge%=� 6 � Smon%=� � Mopen%=� � q%!0=monW%:�_close * � Smon%=� � Mopen%=� � �_Open $ � 3: �die . 8� B� L � �_close V7� q%!0=conW% � ș"Wimp_GetWindowInfo",,Wn%:wopen%=� `8� q%!0=monW% � ș"Wimp_GetWindowInfo",,WnM%:Mopen%=� j � q%!0=warningW% � warnOn%=� tș "Wimp_CloseWindow",,q% ~� � �� �_do_click(q%) �i%=q%!16 �Ȏ q%!12 � �(� warningW%: q%!0=warningW% :�_close �(� -2: � Look first at Icon Bar Click � � q%!16=smpicon% � �I � q%!8=2 � ș"Wimp_CreateMenu",,menu%,q%!0-74,310:IconMenu%=� � � q%!8=4 � �_Open � � �� monW%: � q%!8=4 � �_Click �� conW%: � q%!8=4 � �_MonClick G � q%!8=2 � ș"Wimp_CreateMenu",,menu%,q%!0-96,q%!4:IconMenu%=� 0� saveW%: DragOn%=�: SaveProg%=� : �_DoSave (/� saveD%: DragOn%=�: SaveProg%=� : �_DoSave 2 <� F� P Z � �_Click d� A%,C%,B% n � i%<23 � i%>-1 � x A%=i%-9 � C%=&B � � i%<8 � C%=&81:A%=i% � � i%>17 � C%=&88:A%=i%-18 � B%=2^A% � Reg%(C%)=Reg%(C%) � B% �I � (Reg%(C%) � B%)=0 � $SPointM%(i%)="emzero" � $SPointM%(i%)="emone" �E ș"Wimp_ForceRedraw",monW%,IXM%(i%),IYM%(i%),IX1M%(i%),IY1M%(i%) �� �� � �� �upRad �<ș"Wimp_ForceRedraw",conW%,IX%(6),IY%(6),IX1%(6),IY1%(6) �<ș"Wimp_ForceRedraw",conW%,IX%(7),IY%(7),IX1%(7),IY1%(7) @ș"Wimp_ForceRedraw",conW%,IX%(44),IY%(44),IX1%(44),IY1%(44) � "� �_MonClick ,� A%,C%,B% 6&� Do the action for a window click @Ȏ i% � J T" � 5: Watchdog%=�(Watchdog%) ^C � Watchdog%=� � $SPoint%(5)="yes" � $SPoint%(5)="no" hG ș"Wimp_ForceRedraw",conW%,IX%(5),IY%(5),IX1%(5),IY1%(5) r | � 6: �* � Step%=� � Step%=�:Skip%=� �] � Step% � $SPoint%(6)="radioon":$SPoint%(7)="radiooff":$SPoint%(44)="radiooff" � �upRad � � � 7: �4 � Step%=� � Skip%=� � Step%=�:Skip%=� �_ � Step%=� � $SPoint%(7)="radioon":$SPoint%(6)="radiooff":$SPoint%(44)="radiooff" � �upRad � �( � 44: � Skip%=� � Skip%=�:Step%=� �^ � Skip% � $SPoint%(44)="radioon":$SPoint%(6)="radiooff":$SPoint%(7)="radiooff" � �upRad � ! � 8: $SPoint%(8)="radioon" Reseting%=� G ș"Wimp_ForceRedraw",conW%,IX%(8),IY%(8),IX1%(8),IY1%(8) & 0! � 10: Running%=�(Running%) :C � Running% � $SPoint%(10)="Stop" � $SPoint%(10)="Go" DK ș"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) N X � b l � i%>23 � i%<32 � v A%=i%-24 � B%=2^A% � Reg%(3)=Reg%(3) � B% �F � (Reg%(3) � B%)=0 � $SPoint%(i%)="emzero" � $SPoint%(i%)="emone" �A ș"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) � � � � � i%>10 � i%<19 � � A%=i%-11 � B%=2^A% � Reg%(6)=Reg%(6) � B% � � (Reg%(&86) � B%)<>0 � �H � (Reg%(6) � B%)=0 � $SPoint%(i%)="emswoff" � $SPoint%(i%)="emswon" � � J � (Reg%(6) � B%)=0 � $SPoint%(i%)="emledoff" � $SPoint%(i%)="emledon" � A ș"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) * � 4 > � i%>18 � i%<24 � H A%=i%-19 R B%=2^A% \ Reg%(5)=Reg%(5) � B% f � (Reg%(&85) � B%)<>0 � pH � (Reg%(5) � B%)=0 � $SPoint%(i%)="emswoff" � $SPoint%(i%)="emswon" z � �J � (Reg%(5) � B%)=0 � $SPoint%(i%)="emledoff" � $SPoint%(i%)="emledon" � � �A ș"Wimp_ForceRedraw",conW%,IX%(i%),IY%(i%),IX1%(i%),IY1%(i%) � � � �� � �� �_Open �.ș"OS_ReadModeVariable",-1,3 � ,,Ncolours% �� OPEN UP WINDOW HERE � � Smon% � �� Mopen% � �q%!0=monW% ș"Wimp_GetWindowState",,q% 6 � q%!28<>-1 � q%!28=-1: ș "Wimp_OpenWindow",,q% � $ș "Wimp_OpenWindow",,WnM% .Mopen%=� 8� B� L V� Scont% � `� wopen% � jq%!0=conW% tș"Wimp_GetWindowState",,q% ~6 � q%!28<>-1 � q%!28=-1: ș "Wimp_OpenWindow",,q% �� �ș "Wimp_OpenWindow",,Wn% �wopen%=� �� �� � �� � ���setupmenu �� m% � �$menu%="Simulate" menu%?12=7 menu%?13=2 menu%?14=7 menu%?15=0 (menu%!16=128 2menu%!20=40 <menu%!24=0 Fm%=menu%+28 P m%!0=2 Zm%!4=info% dm%!8=(7<<24)� %10001 n$(m%+12)="Info" x � m%+=24 � m%!0=1 � m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="Control" � � m%+=24 � m%!0=2 � m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="Monitor" � � m%+=24 m%!0=&80 m%!4=0 m%!8=(7<<24)� %10001 "$(m%+12)="Quit" , 6� @ J� �receive(q%) T� A% ^A%=q%!16 hȎ A% � r� 0:�die | �� 3:n$=�sget(q%+44) �' sendth%=q%!4:icontype%=q%!40 � myref%=q%!8 �K � icontype%=&84 � ( (q%!20=-2 � q%!24=smpicon%) � q%!20=conW%) � � �_Fname(n$) � �_Dack � �_Load(n$) � � wopen%=� � �_Open � � �C � icontype%<>&84 � �_setupW("Need a 16C84 object file") � � �� &502: Ȏ � � �l � q%!32=-2 � q%!36=smpicon%:mes$="This is the PIC Simulator icon.|MRun PIC chip programmes" :mes$="" � � mes$<>"" � & q%!12=q%!8 0 $(q%+20)=mes$+�0 : q%!0=(20+�mes$+4)� � 3 D q%!16=&503 N( ș "Wimp_SendMessage",18,q%,q%!4 X� b� l v� �_Dack �sendth%=q%!4 �myref%=q%!8 �"ș "Wimp_GetPointerInfo",,q%+8 �q%!28=q%!8 �q%!32=q%!12 �q%!0=(44+�n$+4)� � 3 �q%!12=myref% �q%!16=4 �q%!36=-1 �q%!40=&FF9 �$(q%+44)=n$+�0 �'ș "Wimp_SendMessage",17,q%,sendth% �� � ݤsget(x%) � x$ *!ȕ ?x%>&1F x$+=�(?x%):x%+=1:� 4=x$ > H ݤicon Rq%!0=-1 \ q%!4=0 fq%!8=10 : � Y DIRECTION pq%!12=70 : � X DIRECTION zq%!16=96 �q%!20=&2002 �$(q%+24)="!sim84" �$ș "Wimp_CreateIcon",,q% � icon% � =icon% � �.� �dragicon(mousex%,mousey%,handle%,icon%) �!� bx%,by%,ix0%,iy0%,ix1%,iy1% ��getw(handle%) ��geti(handle%,icon%) �!q%=handle%:q%!4=5 �>q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1% �*q%!24=q%!8-mousex%:q%!28=q%!12-mousey% �ș "Wimp_DragBox",,q% SFLAG%=� � $� �info(p%) . � x0%,y0% 8'x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12 B5scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28 Lbx%=x0%-scx%:by%=y1%-scy% V� ` j� �getw(handle%) t8!q%=handle%:ș "Wimp_GetWindowState",,q%:�info(q%+4) ~� �� �geti(h%,i%) �-!q%=h%:q%!4=i%:ș "Wimp_GetIconState",,q% �.ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20 �iflags%=q%!24:idata%=q%+28 �� � � ݤhpg(n%) �� A$,B%,V%,W%,T% �A$=�sget(SPoint%(n%)) �� �(A$)=&20 � A$=�A$) �� �A$,1)=" " � A$=�A$) � V%=0:W%=1 � B%=�(A$) � 1 � -1 T%=�(�A$,B%,1)) )� T%>&39 � T%=(T%-&40)+9 � T%=T% � &F V%=V%+T%*W% (W%=W%<<4 2� <=V% F PݤhpgM(n%) Z� A$,B%,V%,W%,T% dA$=�sget(SPointM%(n%)) n� �(A$)=&20 � A$=�A$) x� �A$,1)=" " � A$=�A$) � V%=0:W%=1 �� B%=�(A$) � 1 � -1 �T%=�(�A$,B%,1)) �)� T%>&39 � T%=(T%-&40)+9 � T%=T% � &F �V%=V%+T%*W% �W%=W%<<4 �� �=V% � �� �_setupW(t$) �X!q%=warningW%:q%!4=200:q%!8=200:q%!12=200+XQ%:q%!16=200+YQ%:q%!20=0:q%!24=0:q%!28=-1 �$TextWarn%=t$ �TextWarn%?�(t$)=0 � 7 warnOn%=� ș "Wimp_OpenWindow",,q% "� , 6� �errorbox @� SYS "Wimp_DragBox",,-1 J2!buffers%=�:$(buffers%+4)=�$+" at line "+Þ+�0 T*ș "Wimp_ReportError",buffers%,1,"PIC" ^�die h� r | ��die �*ș "Wimp_CloseDown",taskhand%,!taskid% �� �� � �� �_KeyPress �� A%,K%,i% �i%=q%!4 �K%=q%!24 � � K%=13 � � Ȏ q%!0 � �6� conW%: � i%>31 � i%<40 � Stack%(i%-32)=�hpg(i%) �' � i%=4 � Wreg%=�hpg(4) �" � i%>39 � i%<44 � ' Break%(i%-40)=�hpg(i%) ; � Break%(i%-40)>&3FF � �_PutPramsS(i%," ") � & 0N � i%=1 � A%=�hpg(1):Reg%(2)=A% � &FF:HiPC%=A% � &FF00:�fetchN :2 � i%=0 � �_GetinName: �_Load(fn$) D� monW%: A%=�hpgM(i%) N# � i%>25 � i%<>27 � X5 � A%>255 � A%=A% � &FF:�_PPHm(i%,A%) b" � i%=30 � i%=31 � l8 � i%=30 � �_upIO(Reg%(&85),A%,19,5,5) v8 � i%=31 � �_upIO(Reg%(&86),A%,11,8,6) �" Reg%(i%+103)=A% � � �! Reg%(i%-25)=A% � � � � �' � i%=23 � Prescale%=A% �) � i%=24 � WatchLimit%=A% �+ � i%=25 � WatchdogTime%=A% �1 � i%=27 � EtimeOut%=A%:Etime%=A% �X � i%=34 � Reg%(8)=DataMemS%?(((Reg%(9) � &3F)<<1)+1):�_PPHm(33,Reg%(8)) �� �� �ș"Wimp_ProcessKey",K% � � � �_spath(n$) *ȕ �n$,".") 4n$=�n$,�(n$)-1) >� H� �(n$)>10 � n$=�n$,10) R=n$ \ f� �_GetName p� T%,A%,F$ zF$="":fn$="" �q%!0=saveW%:q%!4=1 �ș "Wimp_GetIconState",,q% �T%=q%!28 � T%-=1 �� � T%+=1 �F$=F$+�(?T%) �� ?T%=0 �fn$=�F$,1,�(F$)-1) �� � �� �_GetinName �� T%,A%,F$ F$="":fn$="" q%!0=conW%:q%!4=0 ș "Wimp_GetIconState",,q% $T%=q%!28 . T%-=1 8� B T%+=1 LF$=F$+�(?T%) V� ?T%=0 `fn$=�F$,1,�(F$)-1) j� t ~� �_GetPrams �� A$ �q%!0=Wn%!0 �InFile$=�sget(SPoint%(0)) �� � �� Verify file names � � �vfn �� V% �V%=1 �� �InFile$,"$")=0 � V%=0 �=V% � � �opf � V% V%=1 F%=�(InFile$) (� F%=0 � 2V%=0 <� F� Load in the object file P�#F% Z� d=V% n x� �_PutPrams(n%,V%) ��_sput(SPoint%(n%),�(V%)) �@ș"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) �� � �� �_PutPramHex(n%,V%) �� H$ � H$=�~(V%) �ȕ �(H$)<4 � H$="0"+H$ �� ��_sput(SPoint%(n%),H$) �@ș"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) �� � �_PPHm(n%,V%) � H$ " H$=�~(V%) ,ȕ �(H$)<2 6 H$="0"+H$ @� J�_sput(SPointM%(n%),H$) TDș"Wimp_ForceRedraw",monW%,IXM%(n%),IYM%(n%),IX1M%(n%),IY1M%(n%) ^� h r� �_PutPramHex2(n%,V%) |� H$ � H$=�~(V%) �ȕ �(H$)<2 � H$="0"+H$ �� ��_sput(SPoint%(n%),H$) �@ș"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) �� � �� �_PutPramsS(n%,V$) ��_sput(SPoint%(n%),V$) �@ș"Wimp_ForceRedraw",conW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%) �� � � �_sput(x%,X$) � A% � A%=1 � �(X$) &?x%=�(�X$,A%,1)) 0 x%+=1 :� D ?x%=0 N� X b� �_Fname(n$) lInFile$=n$ v�_PutPramsS(0,n$) �� � �� �wipeProg �� A% �� A%=0 � &800 � 4 �ProgMemS%!A%=&FF3FFF3F �� �� � �� �wipeData �� A% �� A%=0 � 128 � 4 �DataMemS%!A%=&FF00FF00 � � A%=0 � 15 ConfigMem%?A%=0 � *� 4 >� �_Load(F$) H� A%,B%,C%,F% RF%=�(F$) \ � F%<>0 � f%� �(Merge%) � �wipeData:�wipeProg p�readHF z�#F% � �PUPreset ��setConfig �Stack%()=0 ��udStack �Sleep%=� �� �$�_setupW("Can't open this file") �� �� � � � �readHF �%� P%,Base%,B%,C%,CB%,Limit%,Line% �Line%=0 � � >� �(�#F%) � B%=�#F% � �_setupW("Unexpected end of file"):� $� �(B%)=":" .Check%=0:Line%+=1 8 L%=�rb>>1 BP%=(�rb<<8 � �rb)>>1 LBase%=ProgMemS% V'� P%>&3FF � P%<&2000 � P%=P% � &3FF `7� P%>&1FFF � P%<&2010 � Base%=ConfigMem%:P%=P% � &F j,� P%>&20FF � Base%=DataMemS%:P%=P% � &3F t B%=�rb ~� B%=1 � � �A%=0 �� B%=1 � L% �Base%?(A%+1+(P%<<1))=�rb �Base%?(A%+(P%<<1))=�rb � A%+=2 �� �C%=(�(Check%)+1) � &FF �CB%=�rb �<� CB%<>C% � �_setupW("Check sum error line "+�(Line%)):� �� � �� � � �rb � B%,C%,D% #� �(�#F%) � B%=�#F% � B%=�("F") #� �(�#F%) � C%=�#F% � C%=�("F") (D%=�th(B%,C%) 2Check%+=D% <=D% F P.� Convert two digit hex text into a number Z� �th(M%,K%) d=�h(M%)<<4 � �h(K%) n x� �h(n%) �,� n%>&39 � n%=9 + (n% � &F) � n%=n% � &F �=n% � �� �incR(n%) �Reg%(n%)+=1 �*� Reg%(n%)>255 � Reg%(n%)=Reg%(n%)-256 � =Reg%(n%) � �� �udStack �� A% �� A%=32 � 39 �"�_PutPramHex(A%,Stack%(A%-32)) �� � A� ----------------------------------------------------------- "� �_INIT ,� A%=1 � 37 6 � Mne$(A%),Op%(A%),It%(A%) @� J7Reg%(5)=&1F:Reg%(6)=&FF:Reg%(&85)=&1F:Reg%(&86)=&FF T?Break%(0)=&400:Break%(1)=&400:Break%(2)=&400:Break%(3)=&400 ^� h r� Mnemonic, opcode, type |<� addwf,&700,1, andwf, &500,1, clrf,&180,4, clrw,&100,0 �:� comf,&900,1, decf,&300,1, decfsz,&B00,1, incf,&A00,1 �<� incfsz,&F00,1, iorwf,&400,1, movf,&800,1, movwf,&080,4 �3� nop,0,0, rlf,&D00,1, rrf,&C00,1, subwf,&200,1 �:� swapf,&E00,1, xorwf,&600,1, bcf,&1000,2, bsf,&1400,2 �N� btfsc,&1800,2, btfss,&1C00,2, addlw,&3E00,3, andlw,&3900,3, call,&2000,3 �>� clrwdt,&64,0, goto,&2800,5, iorlw,&3800,3, movlw,&3000,3 �<� retfie, &9,0, retlw,&3400,3, return,&8,0, sleep,&063,0 �"� sublw,&3C00,3, xorlw,&3A00,3 �� Instructions to phase out � � tris,&60,4, option,&062,0 � � �A� ----------------------------------------------------------- � �PUPreset � A% E� PROC_upIO(Reg%(&85),&1F,19,5,5):PROC_upIO(Reg%(&86),&FF,11,8,6) & 0;Reg%(&85)=&1F:Reg%(&86)=&FF:Reg%(3)=(Reg%(3) � 7) � &18 :>Reg%(&81)=&FF:Reg%(&88)=0:Reg%(&A)=0:Reg%(&B)=Reg%(&B) � 1 D-�_upIO(0,&1F,19,5,5):�_upIO(0,&FF,11,8,6) N X"�upStat(Reg%(3) � &FF,Reg%(3)) b'�upB(Reg%(&81) � &FF,Reg%(&81),0,8) l%�upB(Reg%(&B) � &FF,Reg%(&B),9,8) v(�upB(Reg%(&88) � &FF,Reg%(&88),18,5) �WatchdogTime%=0 �3�_PPHm(25,WatchdogTime%):�_PPHm(24,WatchLimit%) �� A%=26 � 72 �A� �(A%=28 � A%=32 � A%=35 � A%=36) � �_sput(SPointM%(A%)," ") �Dș"Wimp_ForceRedraw",monW%,IXM%(A%),IYM%(A%),IX1M%(A%),IY1M%(A%) �� �� A%=0 � 3 �Break%(A%)=&400 ��_PutPramsS(A%+40," ") �� �� PROCreset �;Reg%(2)=0:HiPC%=0:�_PutPramHex(1,Reg%(2)+HiPC%):�fetchN �:t%=(Reg%(3) � &7) � &18:�upStat(Reg%(3),t%):Reg%(3)=t% #Sleep%=�:$SPoint%(9)="emledoff" <ș"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) � *� �reset 4� t% >;Reg%(2)=0:HiPC%=0:�_PutPramHex(1,Reg%(2)+HiPC%):�fetchN H3t%=Reg%(3):Reg%(3)=t% � &1F:�upStat(t%,Reg%(3)) R:t%=Reg%(&85):Reg%(&85)=&1F:�_upIO(t%,Reg%(&85),19,5,5) \:t%=Reg%(&86):Reg%(&86)=&FF:�_upIO(t%,Reg%(&86),11,8,6) f5t%=Reg%(&81):Reg%(&81)=&FF:�upB(t%,Reg%(&81),0,8) p z� Sleep% � �:t%=(Reg%(3) � &7) � &10:�upStat(Reg%(3),t%):Reg%(3)=t% �#Sleep%=�:$SPoint%(9)="emledoff" �<ș"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) �� �� � �� Set the watchdog bit �� �setConfig �� A%,B% �A%=(ConfigMem%?15) � &4 �� A%=0 � B%=� � B%=� �� B%<>Watchdog% � �Watchdog%=B% /� B% � $SPoint%(5)="yes" � $SPoint%(5)="no" <ș"Wimp_ForceRedraw",conW%,IX%(5),IY%(5),IX1%(5),IY1%(5) � $� . 8� �cycle B� P% L!� �(Sleep%) � �(Skip%) � �exe V �incPC `�chkInt j� �(Sleep%) � �fetchN t� �(Step%) � �(Sleep%) � ~P%=�hpg(1) �� A%=0 � 3 �� Break%(A%)=P% � �ZStep%=�:$SPoint%(10)="Go":ș"Wimp_ForceRedraw",conW%,IX%(10),IY%(10),IX1%(10),IY1%(10) �0$SPoint%(6)="radioon":$SPoint%(7)="radiooff" �<ș"Wimp_ForceRedraw",conW%,IX%(6),IY%(6),IX1%(6),IY1%(6) �<ș"Wimp_ForceRedraw",conW%,IX%(7),IY%(7),IX1%(7),IY1%(7) �� �� �� �� � � � �fetchN � A% A%=(Reg%(2)+HiPC%) � &3FF >OPcode%=((ProgMemS%?(A%<<1))<<8) + (ProgMemS%?(1+(A%<<1))) �_PutPramHex(2,OPcode%) ( �diss 2� < F � �chkInt P� F%,t%,E% Z dF%=Reg%(&B) n x� Check INT �,� (F% � &10)<>0 � ((Reg%(&86) � 1)<>0) � � � RB0% <>(Reg%(6) � 1) � � t%=Reg%(&81) � &40 �b � (t%=0 � RB0%=1) � (t%<>0 � RB0%=0) � t%=Reg%(&B) � &2:�upB(Reg%(&B),t%,9,8):Reg%(&B)=t% � � �� � � � Check Prort RB �"t%=(Reg%(6) � &F0) � Reg%(&86) �% � t%<>PBchange% � (F% � &8)<>0 � �7 t%=Reg%(&B) � &1:�upB(Reg%(&B),t%,9,8):Reg%(&B)=t% � � � � Eprom write interrupt � EtimeOut%<>0 � EtimeOut%-=1 " �_PPHm(27,EtimeOut%) , � EtimeOut%=0 � 68 t%=Reg%(&B) � &8:�upB(Reg%(&B),t%,9,8):Reg%(&B)=t% @= t%=Reg%(&88) � &1D:�upB(Reg%(&88),t%,18,5):Reg%(&88)=t% J � T � ^ h(� now respond to any interrupt flags rE%=(Reg%(&B)>>3) � 7 |J � ((Reg%(&B) � E%)<>0 � (Reg%(&88) � &10)<>0) � (Reg%(&B) � &80)<>0 � �' � Sleep% � ((Reg%(&B) � 2)<>0) � � � Wake up from sleep � Sleep%=� � t%=(Reg%(3) � &F7) � &10 � �upStat(Reg%(3),t%) � Reg%(3)=t% � $SPoint%(9)="emledoff" �@ ș"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) � � �- �push:Stack%(0)=Reg%(2)+HiPC%:�udStack � Reg%(2)=4:HiPC%=0 � �_PutPramHex(1,4) � � t%=Reg%(&B) � &7F �upB(Reg%(&B),t%,9,8) Reg%(&B)=t% & � 0RB0%=Reg%(6) � 1 :)PBchange%=(Reg%(6) � &F0) � Reg%(&86) D� N X� �incTimer b� pst%,psi% l� Sleep% � � v pst%=� �� (Reg%(&81) � 8)=0 � �psi%=Reg%(&81) � 7 �psi%=2^(psi% � 7) �Prescale%+=psi% �(� Prescale%>&FF � Prescale%=0:pst%=� ��_PPHm(23,Prescale%) �� � pst%=� �� � �� pst% � �Reg%(1)+=1 �� Reg%(1)>&FF � ! Reg%(1)=0 !6t%=Reg%(&B) � &4:�upB(Reg%(&B),t%,9,8):Reg%(&B)=t% !� ! �_PPHm(26,Reg%(1)) !*� !4� !> !H� �incPC !R� A%,t% !\� (Reg%(&81) � &20)=0 � !f �incTimer !p� !z � (Reg%(&B) � &A0)=&A0 � !� � (Reg%(5) � &10)<>RA4% � !�1 � RA4%=0 � (Reg%(&81) � &10)=0 � �incTimer !�3 � RA4%<>0 � (Reg%(&81) � &10)<>0 � �incTimer !� � !� � !�� !� !�RA4%=Reg%(5) � &10 !� !�� goto%=� � Sleep%=� � !�A%=�incR(2) !�&� A%=0 � HiPC%=(HiPC%+256) � &1F00 !��_PutPramHex(1,A%+HiPC%) "� "goto%=� "!�_PutPramHex(1,Reg%(2)+HiPC%) "$� ". "8� Watchdog% � "BWatchdogTime%+=1 "L�_PPHm(25,WatchdogTime%) "V "`!� WatchdogTime%>WatchLimit% � "j- WatchdogTime%=0:�_PPHm(25,WatchdogTime%) "t � (Reg%(&81) � 8)<>0 � "~ A%=� "� t%=(Reg%(&81) � 7) � 7 "� t%=(2^t%)<<1 "� Prescale%+=t% "�( � Prescale%>&FF � A%=�:Prescale%=0 "� �_PPHm(23,Prescale%) "� � "� A%=� "� � "� "� � A% � �(Sleep%) � "�; t%=(Reg%(3) � &7) � &8:�upStat(Reg%(3),t%):Reg%(3)=t% "� HiPC%=0:Reg%(2)=0 # # �_PutPramHex(1,Reg%(2)+HiPC%) # � # # � Sleep% � A% � #(5 t%=Reg%(3) � &EF:�upStat(Reg%(3),t%):Reg%(3)=t% #2% Sleep%=�:$SPoint%(9)="emledoff" #<> ș"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) #F � #P� #Z� #d #n� #x #�� �diss #� � op$ #�Found%=� #�$� (OPcode% � &3000) = 0 � �fbyte #�2� �(Found%) � (OPcode% � &3000) =&1000 � �fbit #�� �(Found%) � �fcont #�h� �(Found%) � �_setupW("Unimplemented Op-code at "+�~(Reg%(2)+HiPC%)):�_PutPramsS(3,"Unimplemented") #�� #� #�� �fcont #�� T% #�Ȏ OPcode% � #�� &64: �smake(26,&F00,�) $� &63: �smake(33,&F00,�) $� &9: �smake(30,&F00,�) $� &8: �smake(32,&F00,�) $" $,C� (OPcode% � &3800)=&2000 � �gmake(25,OPcode% � &3FF,"address") $6C� (OPcode% � &3800)=&2800 � �gmake(27,OPcode% � &3FF,"address") $@ � �(Found%) � $J T%=(OPcode% � &3F00)>>8 $T Ȏ T% � $^, � &39:�gmake(24,OPcode% � &FF,"value") $h, � &38:�gmake(28,OPcode% � &FF,"value") $r, � &3A:�gmake(35,OPcode% � &FF,"value") $| � $� � �(Found%) � $�E � (OPcode% � &3E00)=&3E00 � �gmake(23,OPcode% � &FF,"value") $�E � (OPcode% � &3C00)=&3000 � �gmake(29,OPcode% � &FF,"value") $�E � (OPcode% � &3C00)=&3400 � �gmake(31,OPcode% � &FF,"value") $�E � (OPcode% � &3E00)=&3C00 � �gmake(34,OPcode% � &FF,"value") $� � $� � $�� $�� $� $�� �fbit $�� A%,p$ $� A%=((OPcode% � &C00)>>10)+19 %Kp$=Mne$(A%)+" file "+�~(OPcode% � &7F)+"h, bit "+�((OPcode% � &380)>>7) %�_PutPramsS(3,p$) %Found%=�:OPnumber%=A% %&� %0 %:� �fbyte %D� Trial%,A% %NTrial%=OPcode% � &3F80 %X/� Trial%=&180 � �smake(3,OPcode% � &7F,�):� %b&� Trial%=&100 � �smake(4,&F00,�):� %l8� Trial%=0 � (OPcode% � &9F)=0 � �smake(13,&F00,�):� %v/� Trial%=&80 � �smake(12,OPcode% � &7F,�):� %�Trial%=OPcode% � &3F00 %�A%=0 %�� %� A%+=1 %�� A%=13 � A%+=1 %�� Op%(A%)=Trial% � A%=23 %�)� A%<>23 � �smake(A%,OPcode% � &7F,�) %�$� OPcode%=&66 � �smake(36,&86,�) %�$� OPcode%=&65 � �smake(36,&85,�) %�%� OPcode%=&62 � �smake(37,&F00,�) %�� %� %�� �smake(o%,v%,d%) &� p$ &-� v%>&800 � p$="" � p$="file "+�~(v%)+"h" & � d% � & 3� (OPcode% � &80)=0 � p$=p$+", w" � p$=p$+", f" &*� &4"�_PutPramsS(3,Mne$(o%)+" "+p$) &>Found%=� &HOPnumber%=o% &R� &\ &f� �gmake(o%,v%,a$) &p� p$ &z,� v%>&800 � p$="" � p$=a$+" "+�~(v%)+"h" &�"�_PutPramsS(3,Mne$(o%)+" "+p$) &�Found%=� &�OPnumber%=o% &�� &� &�� �_upIO(o%,new%,s%,n%,r%) &�� B%,A% &�� A%=s% � s%+n%-1 &�B%=2^(A%-s%) &� � (o% � B%) <> (new% � B%) � &� � (new% � B%)=0 � &�K � (Reg%(r%) � B%)=0 � $SPoint%(A%)="emledoff" � $SPoint%(A%)="emledon" &� � 'I � (Reg%(r%) � B%)=0 � $SPoint%(A%)="emswoff" � $SPoint%(A%)="emswon" ' � 'A ș"Wimp_ForceRedraw",conW%,IX%(A%),IY%(A%),IX1%(A%),IY1%(A%) '$� '. '8� 'B� 'L 'V� �upPb(old%,new%) '`� A%,B% 'j� A%=0 � 7 'tB%=2^A% '~;� ((old% � B%) <> (new% � B%)) � ((Reg%(&86) � B%)=0) � '�L� (new% � B%)=0 � $SPoint%(A%+11)="emledoff" � $SPoint%(A%+11)="emledon" '�Lș"Wimp_ForceRedraw",conW%,IX%(A%+11),IY%(A%+11),IX1%(A%+11),IY1%(A%+11) '�� '�� '�� '� '�� �upStat(old%,new%) '�� A%,B% '�� A%=0 � 7 '�B%=2^A% '�"� (old% � B%) <> (new% � B%) � '�H� (new% � B%)=0 � $SPoint%(A%+24)="emzero" � $SPoint%(A%+24)="emone" ( Lș"Wimp_ForceRedraw",conW%,IX%(A%+24),IY%(A%+24),IX1%(A%+24),IY1%(A%+24) ( � (� (� (( (2� �upPa(old%,new%) (<� A%,B% (F� A%=0 � 4 (PB%=2^A% (Z;� ((old% � B%) <> (new% � B%)) � ((Reg%(&85) � B%)=0) � (dL� (new% � B%)=0 � $SPoint%(A%+19)="emledoff" � $SPoint%(A%+19)="emledon" (nLș"Wimp_ForceRedraw",conW%,IX%(A%+19),IY%(A%+19),IX1%(A%+19),IY1%(A%+19) (o� (�� (�� (� (�� �upB(old%,new%,i%,n%) (�� A%,B% (�� A%=0 � n%-1 (�B%=2^A% (�"� (old% � B%) <> (new% � B%) � (�J� (new% � B%)=0 � $SPointM%(A%+i%)="emzero" � $SPointM%(A%+i%)="emone" (�Pș"Wimp_ForceRedraw",monW%,IXM%(A%+i%),IYM%(A%+i%),IX1M%(A%+i%),IY1M%(A%+i%) (�� (�� (�� ) )A� ----------------------------------------------------------- )� �file )"� f%,s% ),f%=OPcode% � &7F )6s%=(Reg%(3) � &20)<<2 )@f%=f% � s% )J � f%=0 � f%=&80 � f%=Reg%(4) )T� f%>&89 � f%=f% � &7F )^#� f%>&81 � f%<&85 � f%=f% � &7F )h=f% )r )| � �bn )�=2^((OPcode% � &380)>>7) )� )� � �put )�� o%,d%,s% )�� (OPcode% � &80)=0 � )� Wreg%=t%:�_PutPramHex2(4,t%) )�,s%=Reg%(3):Reg%(3)=(s% � &F8) � NewStat% )�'� s%<>Reg%(3) � �upStat(s%,Reg%(3)) )�� )�o%=Reg%(r%) )�Reg%(r%)=t% )�Ȏ r% � )�>� 3: Reg%(3)=(t% � &E7) � (o% � &18):�upStat(o%,Reg%(3)) *A� 1: � (Reg%(&81) � 8)=0 � Prescale%=0:�_PPHm(23,Prescale%) *L� 5: Reg%(5)=(Reg%(&85) � o%) � ((Reg%(&85) � &1F) � t%) :�upPa(o%,t%) *M� 6: Reg%(6)=(Reg%(&86) � o%) � ((Reg%(&86) � &FF) � t%) :�upPb(o%,t%) *&0� 7: �_setupW("Can't write to register 7") *0C� 9: Reg%(8)=DataMemS%?(((t% � &3F)<<1)+1):�_PPHm(33,Reg%(8)) *:1� &87: �_setupW("Can't write to register 87") *D1� 10: �_setupW("Can't write to register 0A") *N� &85: �_upIO(o%,t%,19,5,5) *X� &86: �_upIO(o%,t%,11,8,6) *b&� &88: � (t% � 6)=6 � (o% � 2)=0 � *l EtimeOut%=Etime% *v8 DataMemS%?(((Reg%(9) � &3F)<<1)+1)=Reg%(8) *� � *�� *�,s%=Reg%(3):Reg%(3)=(s% � &F8) � NewStat% *�'� s%<>Reg%(3) � �upStat(s%,Reg%(3)) *� *� � Mopen% � *� Ȏ r% � *� � &81: �upB(o%,t%,0,8) *� � &0B: �upB(o%,t%,9,8) *� � &88: �upB(o%,t%,18,5) *� � &85: �_PPHm(30,t%) *� � &86: �_PPHm(31,t%) *� +@ � �(r%=3 � r%=5 � r%=6 � r%=7 � r%=10 � r%=2) � r% <&30 � + �_PPHm(r%+25,t%) + � + � +* � +4� +>� +H +R +\� �bput +fOPcode%=OPcode% � &80 +p�put +z� +� +�� �wput +�OPcode%=OPcode% � �(&80) +��put +�� +� +�� �carry +�� s% +�s%=0 +�� t%>&FF � s%=1:t%=t% � &FF +�"NewStat%=(NewStat% � &FE) � s% +�� +� ,� �zero ,� s% ,s%=0 ,$� t%=0 � s%=4 ,."NewStat%=(NewStat% � &FB) � s% ,8� ,B ,L � �dc ,V� s% ,`s%=0 ,j� t%>&F � s%=2 ,t"NewStat%=(NewStat% � &FD) � s% ,~� ,� ,� � �pop ,�� A% ,�� A%=1 � 7 ,�Stack%(A%-1)=Stack%(A%) ,�� ,�Stack%(7)=0 ,��udStack ,�� ,� ,�� �push ,�� A% - � A%=6 � 0 � -1 - Stack%(A%+1)=Stack%(A%) -� -� -( -2� Execuite a command -< � �exe -F� r%,t%,b% -PNewStat%=Reg%(3) � 7 -Zr%=�file -dȎ OPnumber% � -n0� 1: t%=(Wreg% � &F) + (Reg%(r%) � &F) :�dc -x2 t%=Wreg% + Reg%(r%):�carry:�zero:�put -�(� 2: t%=Wreg% � Reg%(r%):�zero:�put -�"� 3: t%=0:� r%=3 � NewStat%=0 -� �zero:�put -�1� 4: t%=0:OPcode%=OPcode% � &3F7F:�zero:�put -�&� 5: t%=Reg%(r%) � &FF:�zero:�put -�*� 6: t%=(Reg%(r%)-1) � &FF:�zero:�put -�*� 7: t%=(Reg%(r%)-1) � &FF:�zero:�put -� � t%=0 � �incPC -�*� 8: t%=(Reg%(r%)+1) � &FF:�zero:�put -�*� 9: t%=(Reg%(r%)+1) � &FF:�zero:�put -� � t%=0 � �incPC -�(� 10: t%=Wreg% � Reg%(r%):�zero:�put -� � 11: t%=Reg%(r%):�zero:�put .$� 12: t%=Wreg%: � r%=2 � goto%=� .% � r%=3 � NewStat%=t% � 7 . �put ."6� 14: t%=(Reg%(r%)<<1) � (Reg%(3) � 1):�carry:�put .,E� 15: t%=(Reg%(r%)>>1) � ((Reg%(3) � 1)<<7) � ((Reg%(r%) � 1)<<8) .6 �carry:�put .@6� 16: t%=((Reg%(r%) � &F)-(Wreg% � &F)) � &FF :�dc .J6 t%=((Reg%(r%)-Wreg%) � &1FF):�carry:�zero .T' NewStat%=NewStat% � 1:�put .^9� 17: t%=((Reg%(r%) � &F)<<4) � ((Reg%(r%) � &F0)>>4) .h< � ((OPcode% � &80)<>0) � r%=3 � NewStat%=t% � 7 .r �put .|(� 18: t%=Reg%(r%) � Wreg%:�zero:�put .�,� 19: b%=(�(�bn)) � &FF:t%=Reg%(r%) � b% .�> � r%=3 � NewStat%=NewStat% � b% � (Reg%(3) � &18) .� �bput .�!� 20: b%=�bn:t%=Reg%(r%) � b% .�> � r%=3 � NewStat%=NewStat% � b% � (Reg%(3) � &18) .� �bput .�-� 21: b%=�bn:� (b% � Reg%(r%))=0 � �incPC .�.� 22: b%=�bn:� (b% � Reg%(r%))<>0 � �incPC .�;� 23: b%=OPcode% � &FF:t%=(Wreg% � &F) + (b% � &F) :�dc .�+ t%=Wreg%+b%:�carry:�zero:�wput .�5� 24: b%=OPcode% � &FF :t%=Wreg% � b%:�zero:�wput .�7� 25: �push:�incPC:Stack%(0)=Reg%(2)+HiPC%:�udStack .�S goto%=�:Reg%(2)=OPcode% � &FF:HiPC%=(OPcode% � &700) � (HiPC% � &1800) /I� 26: WatchdogTime%=0:t%=Reg%(3) � &18:�upStat(Reg%(3),t%):Reg%(3)=t% /P� 27: goto%=�:Reg%(2)=OPcode% � &FF:HiPC%=(OPcode% � &700) � (HiPC% � &1800) /5� 28: b%=OPcode% � &FF :t%=Wreg% � b%:�zero:�wput /&4� 29: Wreg%=OPcode% � &FF:�_PutPramHex2(4,Wreg%) /0E� 30: Reg%(2)=Stack%(0) � &FF:HiPC%=Stack%(0) � &700:goto%=�:�pop /:@ t%=Reg%(&B) � &80:�upB(Reg%(&B),t%,9,8):Reg%(&B)=t% /DE� 31: Reg%(2)=Stack%(0) � &FF:HiPC%=Stack%(0) � &700:goto%=�:�pop /N: t%=OPcode% � &FF:OPcode%=OPcode% � &3F7F:�put /XE� 32: Reg%(2)=Stack%(0) � &FF:HiPC%=Stack%(0) � &700:goto%=�:�pop /b7� 33: �incPC:�fetchN:Sleep%=�:$SPoint%(9)="emledon" /lE ș"Wimp_ForceRedraw",conW%,IX%(9),IY%(9),IX1%(9),IY1%(9) /vI t%=(Reg%(3) � &10) � &F7:r%=3:�upStat(Reg%(3),t%):Reg%(3)=t% /�8� 34: b%=OPcode% � &FF:t%=(b% � &F)-(Wreg% � &F):�dc /�0 t%=((b%-Wreg%) � &1FF):�carry:�zero /�( NewStat%=NewStat% � 1:�wput /�5� 35: b%=OPcode% � &FF :t%=Wreg% � b%:�zero:�wput /�� 37: r%=&81:t%=Wreg%:�bput /�&� 36: r%=(OPcode% � 7) � &80:�bput /�� /�� �
00000000 0d 00 0a 19 f4 20 50 69 63 20 31 38 43 38 34 20 |..... Pic 18C84 | 00000010 53 69 6d 75 6c 61 74 6f 72 0d 00 14 1e f4 20 56 |Simulator..... V| 00000020 65 72 73 69 6f 6e 20 31 2e 30 20 42 79 20 4d 69 |ersion 1.0 By Mi| 00000030 6b 65 20 43 6f 6f 6b 0d 00 1e 19 f4 20 41 6c 6c |ke Cook..... All| 00000040 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 | rights reserved| 00000050 0d 00 28 65 de 20 71 25 20 26 33 30 30 2c 71 63 |..(e. q% &300,qc| 00000060 25 20 38 30 2c 20 57 6e 25 20 26 32 35 30 30 2c |% 80, Wn% &2500,| 00000070 74 65 6d 70 25 20 32 35 36 2c 62 75 66 66 65 72 |temp% 256,buffer| 00000080 73 25 20 35 31 32 2c 6d 65 6e 75 25 20 32 35 36 |s% 512,menu% 256| 00000090 2c 53 57 25 20 32 30 39 36 2c 63 62 25 20 31 38 |,SW% 2096,cb% 18| 000000a0 2c 53 57 4d 25 20 32 30 39 36 2c 57 6e 4d 25 20 |,SWM% 2096,WnM% | 000000b0 26 32 35 30 30 0d 00 32 1c de 20 54 65 78 74 57 |&2500..2.. TextW| 000000c0 61 72 6e 25 20 31 30 30 2c 20 77 77 25 20 32 35 |arn% 100, ww% 25| 000000d0 36 0d 00 3c 04 0d 00 46 11 ee 20 85 20 f2 65 72 |6..<...F.. . .er| 000000e0 72 6f 72 62 6f 78 0d 00 50 2b de 20 74 61 73 6b |rorbox..P+. task| 000000f0 69 64 25 20 34 2c 69 6e 74 6d 65 73 73 25 20 32 |id% 4,intmess% 2| 00000100 30 3a 24 74 61 73 6b 69 64 25 3d 22 54 41 53 4b |0:$taskid%="TASK| 00000110 22 0d 00 5a 49 69 6e 74 6d 65 73 73 25 21 30 3d |"..ZIintmess%!0=| 00000120 31 3a 69 6e 74 6d 65 73 73 25 21 34 3d 32 3a 69 |1:intmess%!4=2:i| 00000130 6e 74 6d 65 73 73 25 21 38 3d 33 3a 69 6e 74 6d |ntmess%!8=3:intm| 00000140 65 73 73 25 21 31 32 3d 26 35 30 32 3a 69 6e 74 |ess%!12=&502:int| 00000150 6d 65 73 73 25 21 31 36 3d 30 0d 00 64 58 c8 99 |mess%!16=0..dX..| 00000160 20 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c 69 73 | "Wimp_Initialis| 00000170 65 22 2c 33 30 30 2c 21 74 61 73 6b 69 64 25 2c |e",300,!taskid%,| 00000180 22 50 49 43 31 38 43 38 34 2d 53 69 6d 75 6c 61 |"PIC18C84-Simula| 00000190 74 6f 72 22 2c 69 6e 74 6d 65 73 73 25 20 b8 20 |tor",intmess% . | 000001a0 76 65 72 73 69 6f 6e 25 2c 74 61 73 6b 68 61 6e |version%,taskhan| 000001b0 64 25 0d 00 6e 04 0d 00 78 0c 4d 78 4c 25 3d 33 |d%..n...x.MxL%=3| 000001c0 30 30 0d 00 82 28 de 20 4d 6e 65 24 28 33 38 29 |00...(. Mne$(38)| 000001d0 2c 4f 70 25 28 33 38 29 2c 49 74 25 28 33 38 29 |,Op%(38),It%(38)| 000001e0 2c 52 65 67 25 28 26 46 46 29 0d 00 8c 12 4e 69 |,Reg%(&FF)....Ni| 000001f0 25 3d 34 34 3a 4e 69 4d 25 3d 37 32 0d 00 96 42 |%=44:NiM%=72...B| 00000200 de 20 53 50 6f 69 6e 74 25 28 4e 69 25 29 2c 49 |. SPoint%(Ni%),I| 00000210 58 25 28 4e 69 25 29 2c 49 59 25 28 4e 69 25 29 |X%(Ni%),IY%(Ni%)| 00000220 2c 49 58 31 25 28 4e 69 25 29 2c 49 59 31 25 28 |,IX1%(Ni%),IY1%(| 00000230 4e 69 25 29 2c 53 74 61 63 6b 25 28 37 29 0d 00 |Ni%),Stack%(7)..| 00000240 a0 42 de 20 53 50 6f 69 6e 74 4d 25 28 4e 69 4d |.B. SPointM%(NiM| 00000250 25 29 2c 49 58 4d 25 28 4e 69 4d 25 29 2c 49 59 |%),IXM%(NiM%),IY| 00000260 4d 25 28 4e 69 4d 25 29 2c 49 58 31 4d 25 28 4e |M%(NiM%),IX1M%(N| 00000270 69 4d 25 29 2c 49 59 31 4d 25 28 4e 69 4d 25 29 |iM%),IY1M%(NiM%)| 00000280 0d 00 aa 0f de 20 42 72 65 61 6b 25 28 33 29 0d |..... Break%(3).| 00000290 00 b4 31 de 20 50 72 6f 67 4d 65 6d 53 25 20 26 |..1. ProgMemS% &| 000002a0 38 30 30 2c 44 61 74 61 4d 65 6d 53 25 20 31 32 |800,DataMemS% 12| 000002b0 38 2c 20 43 6f 6e 66 69 67 4d 65 6d 25 20 31 36 |8, ConfigMem% 16| 000002c0 0d 00 be 04 0d 00 c8 32 c8 99 20 22 57 69 6d 70 |.......2.. "Wimp| 000002d0 5f 4f 70 65 6e 54 65 6d 70 6c 61 74 65 22 2c 2c |_OpenTemplate",,| 000002e0 22 3c 45 4d 38 34 24 44 69 72 3e 2e 54 65 6d 70 |"<EM84$Dir>.Temp| 000002f0 6c 61 74 65 73 22 0d 00 d2 29 ee 20 85 20 c8 99 |lates"...). . ..| 00000300 20 22 57 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 | "Wimp_CloseTemp| 00000310 6c 61 74 65 22 3a f2 65 72 72 6f 72 62 6f 78 0d |late":.errorbox.| 00000320 00 dc 3a c8 99 20 22 57 69 6d 70 5f 4c 6f 61 64 |..:.. "Wimp_Load| 00000330 54 65 6d 70 6c 61 74 65 22 2c 2c 71 25 2c 74 65 |Template",,q%,te| 00000340 6d 70 25 2c 74 65 6d 70 25 2b 32 35 36 2c 2d 31 |mp%,temp%+256,-1| 00000350 2c 22 49 6e 66 6f 22 2c 30 0d 00 e6 26 c8 99 20 |,"Info",0...&.. | 00000360 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 6e 64 |"Wimp_CreateWind| 00000370 6f 77 22 2c 2c 71 25 20 b8 20 69 6e 66 6f 25 0d |ow",,q% . info%.| 00000380 00 f0 04 0d 00 fa 3d c8 99 20 22 57 69 6d 70 5f |......=.. "Wimp_| 00000390 4c 6f 61 64 54 65 6d 70 6c 61 74 65 22 2c 2c 57 |LoadTemplate",,W| 000003a0 6e 25 2b 34 2c 53 57 25 2c 53 57 25 2b 32 30 39 |n%+4,SW%,SW%+209| 000003b0 36 2c 2d 31 2c 22 43 6f 6e 74 72 6f 6c 22 2c 30 |6,-1,"Control",0| 000003c0 0d 01 04 0d 57 6e 25 21 32 38 3d 2d 31 0d 01 0e |....Wn%!28=-1...| 000003d0 10 e3 20 41 25 3d 30 20 b8 20 4e 69 25 0d 01 18 |.. A%=0 . Ni%...| 000003e0 24 53 50 6f 69 6e 74 25 28 41 25 29 3d 21 28 57 |$SPoint%(A%)=!(W| 000003f0 6e 25 2b 34 2b 38 38 2b 32 30 2b 33 32 2a 41 25 |n%+4+88+20+32*A%| 00000400 29 0d 01 22 39 49 58 25 28 41 25 29 3d 21 28 57 |).."9IX%(A%)=!(W| 00000410 6e 25 2b 34 2b 38 38 2b 33 32 2a 41 25 29 3a 49 |n%+4+88+32*A%):I| 00000420 59 25 28 41 25 29 3d 21 28 57 6e 25 2b 34 2b 38 |Y%(A%)=!(Wn%+4+8| 00000430 38 2b 34 2b 33 32 2a 41 25 29 0d 01 2c 3e 49 58 |8+4+32*A%)..,>IX| 00000440 31 25 28 41 25 29 3d 21 28 57 6e 25 2b 34 2b 38 |1%(A%)=!(Wn%+4+8| 00000450 38 2b 38 2b 33 32 2a 41 25 29 3a 49 59 31 25 28 |8+8+32*A%):IY1%(| 00000460 41 25 29 3d 21 28 57 6e 25 2b 34 2b 38 38 2b 31 |A%)=!(Wn%+4+88+1| 00000470 32 2b 33 32 2a 41 25 29 0d 01 36 05 ed 0d 01 40 |2+32*A%)..6....@| 00000480 04 0d 01 4a 29 c8 99 20 22 57 69 6d 70 5f 43 72 |...J).. "Wimp_Cr| 00000490 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c 57 6e 25 |eateWindow",,Wn%| 000004a0 2b 34 20 b8 20 63 6f 6e 57 25 0d 01 54 19 57 6e |+4 . conW%..T.Wn| 000004b0 25 21 30 3d 63 6f 6e 57 25 3a 57 6e 25 21 32 38 |%!0=conW%:Wn%!28| 000004c0 3d 2d 31 0d 01 5e 04 0d 01 68 40 c8 99 20 22 57 |=-1..^...h@.. "W| 000004d0 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 |imp_LoadTemplate| 000004e0 22 2c 2c 57 6e 4d 25 2b 34 2c 53 57 4d 25 2c 53 |",,WnM%+4,SWM%,S| 000004f0 57 4d 25 2b 32 30 39 36 2c 2d 31 2c 22 4d 6f 6e |WM%+2096,-1,"Mon| 00000500 69 74 6f 72 22 2c 30 0d 01 72 0e 57 6e 4d 25 21 |itor",0..r.WnM%!| 00000510 32 38 3d 2d 31 0d 01 7c 11 e3 20 41 25 3d 30 20 |28=-1..|.. A%=0 | 00000520 b8 20 4e 69 4d 25 0d 01 86 26 53 50 6f 69 6e 74 |. NiM%...&SPoint| 00000530 4d 25 28 41 25 29 3d 21 28 57 6e 4d 25 2b 34 2b |M%(A%)=!(WnM%+4+| 00000540 38 38 2b 32 30 2b 33 32 2a 41 25 29 0d 01 90 3d |88+20+32*A%)...=| 00000550 49 58 4d 25 28 41 25 29 3d 21 28 57 6e 4d 25 2b |IXM%(A%)=!(WnM%+| 00000560 34 2b 38 38 2b 33 32 2a 41 25 29 3a 49 59 4d 25 |4+88+32*A%):IYM%| 00000570 28 41 25 29 3d 21 28 57 6e 4d 25 2b 34 2b 38 38 |(A%)=!(WnM%+4+88| 00000580 2b 34 2b 33 32 2a 41 25 29 0d 01 9a 42 49 58 31 |+4+32*A%)...BIX1| 00000590 4d 25 28 41 25 29 3d 21 28 57 6e 4d 25 2b 34 2b |M%(A%)=!(WnM%+4+| 000005a0 38 38 2b 38 2b 33 32 2a 41 25 29 3a 49 59 31 4d |88+8+32*A%):IY1M| 000005b0 25 28 41 25 29 3d 21 28 57 6e 4d 25 2b 34 2b 38 |%(A%)=!(WnM%+4+8| 000005c0 38 2b 31 32 2b 33 32 2a 41 25 29 0d 01 a4 05 ed |8+12+32*A%).....| 000005d0 0d 01 ae 04 0d 01 b8 2a c8 99 20 22 57 69 6d 70 |.......*.. "Wimp| 000005e0 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c |_CreateWindow",,| 000005f0 57 6e 4d 25 2b 34 20 b8 20 6d 6f 6e 57 25 0d 01 |WnM%+4 . monW%..| 00000600 c2 1b 57 6e 4d 25 21 30 3d 6d 6f 6e 57 25 3a 57 |..WnM%!0=monW%:W| 00000610 6e 4d 25 21 32 38 3d 2d 31 0d 01 cc 04 0d 01 d6 |nM%!28=-1.......| 00000620 39 c8 99 20 22 57 69 6d 70 5f 4c 6f 61 64 54 65 |9.. "Wimp_LoadTe| 00000630 6d 70 6c 61 74 65 22 2c 2c 71 25 2c 77 77 25 2c |mplate",,q%,ww%,| 00000640 77 77 25 2b 32 35 36 2c 2d 31 2c 22 57 61 72 6e |ww%+256,-1,"Warn| 00000650 69 6e 67 22 2c 30 0d 01 e0 29 71 25 21 31 30 38 |ing",0...)q%!108| 00000660 3d 54 65 78 74 57 61 72 6e 25 3a 71 25 21 31 31 |=TextWarn%:q%!11| 00000670 32 3d 2d 31 3a 71 25 21 31 31 36 3d 33 30 30 0d |2=-1:q%!116=300.| 00000680 01 ea 20 58 51 25 3d 71 25 21 38 2d 71 25 21 30 |.. XQ%=q%!8-q%!0| 00000690 3a 59 51 25 3d 71 25 21 31 32 2d 71 25 21 34 0d |:YQ%=q%!12-q%!4.| 000006a0 01 f4 2a c8 99 20 22 57 69 6d 70 5f 43 72 65 61 |..*.. "Wimp_Crea| 000006b0 74 65 57 69 6e 64 6f 77 22 2c 2c 71 25 20 b8 20 |teWindow",,q% . | 000006c0 77 61 72 6e 69 6e 67 57 25 0d 01 fe 1b c8 99 20 |warningW%...... | 000006d0 22 57 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c |"Wimp_CloseTempl| 000006e0 61 74 65 22 0d 02 08 04 0d 02 12 12 73 6d 70 69 |ate"........smpi| 000006f0 63 6f 6e 25 3d a4 69 63 6f 6e 0d 02 1c 1f 77 6f |con%=.icon....wo| 00000700 70 65 6e 25 3d a3 3a 77 61 72 6e 4f 6e 25 3d a3 |pen%=.:warnOn%=.| 00000710 3a 4d 6f 70 65 6e 25 3d a3 0d 02 26 0c 49 6e 57 |:Mopen%=...&.InW| 00000720 69 6e 25 3d a3 0d 02 30 23 f2 5f 50 75 74 50 72 |in%=...0#._PutPr| 00000730 61 6d 73 53 28 30 2c 22 44 72 61 67 20 46 69 6c |amsS(0,"Drag Fil| 00000740 65 20 48 65 72 65 22 29 0d 02 3a 16 53 74 65 70 |e Here")..:.Step| 00000750 25 3d b9 3a 52 75 6e 6e 69 6e 67 25 3d a3 0d 02 |%=.:Running%=...| 00000760 44 22 57 61 74 63 68 64 6f 67 25 3d a3 3a 4d 65 |D"Watchdog%=.:Me| 00000770 72 67 65 25 3d a3 3a 4f 73 63 4f 70 74 25 3d 30 |rge%=.:OscOpt%=0| 00000780 0d 02 4e 29 52 65 73 65 74 69 6e 67 25 3d a3 3a |..N)Reseting%=.:| 00000790 48 69 50 43 25 3d 30 3a 57 72 65 67 25 3d 30 3a |HiPC%=0:Wreg%=0:| 000007a0 4f 50 63 6f 64 65 25 3d 30 0d 02 58 1e 53 74 61 |OPcode%=0..X.Sta| 000007b0 74 75 73 25 3d 30 3a 67 6f 74 6f 25 3d a3 3a 53 |tus%=0:goto%=.:S| 000007c0 6c 65 65 70 25 3d a3 0d 02 62 2d 52 65 67 25 28 |leep%=...b-Reg%(| 000007d0 29 3d 30 3a 57 61 74 63 68 64 6f 67 54 69 6d 65 |)=0:WatchdogTime| 000007e0 25 3d 30 3a 57 61 74 63 68 4c 69 6d 69 74 25 3d |%=0:WatchLimit%=| 000007f0 31 38 30 30 0d 02 63 1b 52 65 67 25 28 35 29 3d |1800..c.Reg%(5)=| 00000800 26 31 46 3a 52 65 67 25 28 36 29 3d 26 46 46 0d |&1F:Reg%(6)=&FF.| 00000810 02 6c 27 53 6d 6f 6e 25 3d a3 3a 53 63 6f 6e 74 |.l'Smon%=.:Scont| 00000820 25 3d b9 3a 52 42 30 25 3d 30 3a 50 42 63 68 61 |%=.:RB0%=0:PBcha| 00000830 6e 67 65 25 3d 30 0d 02 76 26 45 74 69 6d 65 4f |nge%=0..v&EtimeO| 00000840 75 74 25 3d 30 3a 45 74 69 6d 65 25 3d 31 30 30 |ut%=0:Etime%=100| 00000850 3a 50 72 65 73 63 61 6c 65 25 3d 30 0d 02 80 16 |:Prescale%=0....| 00000860 50 72 6f 67 4d 65 6d 25 3d b9 3a 53 6b 69 70 25 |ProgMem%=.:Skip%| 00000870 3d a3 0d 02 8a 17 f2 77 69 70 65 50 72 6f 67 3a |=......wipeProg:| 00000880 f2 77 69 70 65 44 61 74 61 0d 02 94 0e f2 73 65 |.wipeData.....se| 00000890 74 75 70 6d 65 6e 75 0d 02 9e 0a f2 5f 49 4e 49 |tupmenu....._INI| 000008a0 54 0d 02 a8 04 0d 02 b2 05 f5 0d 02 bc 1d 20 c8 |T............. .| 000008b0 99 20 22 57 69 6d 70 5f 50 6f 6c 6c 22 2c 30 2c |. "Wimp_Poll",0,| 000008c0 71 25 20 b8 20 41 25 0d 02 c6 0d 20 20 c8 8e 20 |q% . A%.... .. | 000008d0 41 25 20 ca 0d 02 d0 11 20 20 20 c9 20 30 3a f2 |A% ..... . 0:.| 000008e0 5f 4e 75 6c 6c 0d 02 da 0d 20 20 20 c9 20 31 3a |_Null.... . 1:| 000008f0 ef 37 0d 02 e4 4f 20 20 20 c9 20 32 3a c8 99 22 |.7...O . 2:.."| 00000900 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 |OS_ReadModeVaria| 00000910 62 6c 65 22 2c 2d 31 2c 33 20 b8 20 2c 2c 4e 63 |ble",-1,3 . ,,Nc| 00000920 6f 6c 6f 75 72 73 25 3a 20 c8 99 20 22 57 69 6d |olours%: .. "Wim| 00000930 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 71 |p_OpenWindow",,q| 00000940 25 0d 02 ee 12 20 20 20 c9 20 33 3a f2 5f 63 6c |%.... . 3:._cl| 00000950 6f 73 65 0d 02 f8 21 20 20 20 c9 20 34 3a 49 6e |ose...! . 4:In| 00000960 57 69 6e 25 3d a3 3a 4c 58 25 3d 2d 31 3a 4c 59 |Win%=.:LX%=-1:LY| 00000970 25 3d 2d 31 0d 03 02 13 20 20 20 c9 20 35 3a 49 |%=-1.... . 5:I| 00000980 6e 57 69 6e 25 3d b9 0d 03 0c 19 20 20 20 c9 20 |nWin%=..... . | 00000990 36 3a f2 5f 64 6f 5f 63 6c 69 63 6b 28 71 25 29 |6:._do_click(q%)| 000009a0 0d 03 16 18 20 20 20 c9 20 37 3a f2 5f 50 75 74 |.... . 7:._Put| 000009b0 44 6f 77 6e 28 71 25 29 0d 03 20 15 20 20 20 c9 |Down(q%).. . .| 000009c0 20 38 3a f2 5f 4b 65 79 50 72 65 73 73 0d 03 2a | 8:._KeyPress..*| 000009d0 16 20 20 20 c9 20 39 3a f2 5f 53 4f 52 54 5f 4d |. . 9:._SORT_M| 000009e0 65 6e 75 0d 03 34 1b 20 20 20 c9 20 31 37 2c 31 |enu..4. . 17,1| 000009f0 38 3a f2 72 65 63 65 69 76 65 28 71 25 29 0d 03 |8:.receive(q%)..| 00000a00 3e 08 20 20 20 cb 0d 03 48 08 20 fd 20 a3 0d 03 |>. ...H. . ...| 00000a10 52 04 0d 03 5c 05 e0 0d 03 66 04 0d 03 70 0c dd |R...\....f...p..| 00000a20 20 f2 5f 4e 75 6c 6c 0d 03 7a 0e ea 20 58 25 2c | ._Null..z.. X%,| 00000a30 59 25 2c 42 25 0d 03 84 0e e7 20 77 6f 70 65 6e |Y%,B%..... wopen| 00000a40 25 20 8c 0d 03 8e 0f c8 97 20 58 25 2c 59 25 2c |% ....... X%,Y%,| 00000a50 42 25 0d 03 98 7d e7 20 52 65 73 65 74 69 6e 67 |B%...}. Reseting| 00000a60 25 3d b9 20 80 20 42 25 3d 30 20 8c 20 24 53 50 |%=. . B%=0 . $SP| 00000a70 6f 69 6e 74 25 28 38 29 3d 22 72 61 64 69 6f 6f |oint%(8)="radioo| 00000a80 66 66 22 3a 52 65 73 65 74 69 6e 67 25 3d a3 3a |ff":Reseting%=.:| 00000a90 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00000aa0 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 38 |raw",conW%,IX%(8| 00000ab0 29 2c 49 59 25 28 38 29 2c 49 58 31 25 28 38 29 |),IY%(8),IX1%(8)| 00000ac0 2c 49 59 31 25 28 38 29 3a f2 72 65 73 65 74 0d |,IY1%(8):.reset.| 00000ad0 03 a2 17 e7 20 52 75 6e 6e 69 6e 67 25 20 8c 20 |.... Running% . | 00000ae0 f2 63 79 63 6c 65 0d 03 ac 72 e7 20 52 75 6e 6e |.cycle...r. Runn| 00000af0 69 6e 67 25 20 80 20 53 74 65 70 25 20 8c 20 52 |ing% . Step% . R| 00000b00 75 6e 6e 69 6e 67 25 3d a3 3a 24 53 50 6f 69 6e |unning%=.:$SPoin| 00000b10 74 25 28 31 30 29 3d 22 47 6f 22 3a c8 99 22 57 |t%(10)="Go":.."W| 00000b20 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 |imp_ForceRedraw"| 00000b30 2c 63 6f 6e 57 25 2c 49 58 25 28 31 30 29 2c 49 |,conW%,IX%(10),I| 00000b40 59 25 28 31 30 29 2c 49 58 31 25 28 31 30 29 2c |Y%(10),IX1%(10),| 00000b50 49 59 31 25 28 31 30 29 0d 03 b6 05 cd 0d 03 c0 |IY1%(10)........| 00000b60 05 e1 0d 03 ca 04 0d 03 d4 11 dd 20 f2 5f 53 4f |........... ._SO| 00000b70 52 54 5f 4d 65 6e 75 0d 03 de 0c c8 8e 20 21 71 |RT_Menu...... !q| 00000b80 25 20 ca 0d 03 e8 55 20 c9 20 31 3a 20 53 63 6f |% ....U . 1: Sco| 00000b90 6e 74 25 3d ac 28 53 63 6f 6e 74 25 29 3a e7 20 |nt%=.(Scont%):. | 00000ba0 53 63 6f 6e 74 25 20 8c 20 6d 65 6e 75 25 3f 35 |Scont% . menu%?5| 00000bb0 32 3d 6d 65 6e 75 25 3f 35 32 20 84 20 31 20 8b |2=menu%?52 . 1 .| 00000bc0 20 6d 65 6e 75 25 3f 35 32 3d 6d 65 6e 75 25 3f | menu%?52=menu%?| 00000bd0 35 32 20 80 20 26 46 45 0d 03 f2 37 20 20 20 20 |52 . &FE...7 | 00000be0 20 20 20 20 20 e7 20 53 63 6f 6e 74 25 3d a3 20 | . Scont%=. | 00000bf0 80 20 77 6f 70 65 6e 25 3d b9 20 8c 20 71 25 21 |. wopen%=. . q%!| 00000c00 30 3d 63 6f 6e 57 25 3a f2 5f 63 6c 6f 73 65 0d |0=conW%:._close.| 00000c10 03 fc 2b 20 20 20 20 20 20 20 20 20 e7 20 53 63 |..+ . Sc| 00000c20 6f 6e 74 25 3d b9 20 80 20 77 6f 70 65 6e 25 3d |ont%=. . wopen%=| 00000c30 a3 20 8c 20 f2 5f 4f 70 65 6e 0d 04 06 5b 20 c9 |. . ._Open...[ .| 00000c40 20 32 3a 20 53 6d 6f 6e 25 3d ac 28 53 6d 6f 6e | 2: Smon%=.(Smon| 00000c50 25 29 3a e7 20 53 6d 6f 6e 25 20 8c 20 6d 65 6e |%):. Smon% . men| 00000c60 75 25 3f 37 36 3d 6d 65 6e 75 25 3f 37 36 20 84 |u%?76=menu%?76 .| 00000c70 20 31 20 8b 20 6d 65 6e 75 25 3f 37 36 3d 6d 65 | 1 . menu%?76=me| 00000c80 6e 75 25 3f 37 36 20 80 20 26 46 45 3a 4d 65 72 |nu%?76 . &FE:Mer| 00000c90 67 65 25 3d b9 0d 04 10 36 20 20 20 20 20 20 20 |ge%=....6 | 00000ca0 20 20 e7 20 53 6d 6f 6e 25 3d a3 20 80 20 4d 6f | . Smon%=. . Mo| 00000cb0 70 65 6e 25 3d b9 20 8c 20 71 25 21 30 3d 6d 6f |pen%=. . q%!0=mo| 00000cc0 6e 57 25 3a f2 5f 63 6c 6f 73 65 0d 04 1a 2a 20 |nW%:._close...* | 00000cd0 20 20 20 20 20 20 20 20 e7 20 53 6d 6f 6e 25 3d | . Smon%=| 00000ce0 b9 20 80 20 4d 6f 70 65 6e 25 3d a3 20 8c 20 f2 |. . Mopen%=. . .| 00000cf0 5f 4f 70 65 6e 0d 04 24 0e 20 c9 20 33 3a 20 f2 |_Open..$. . 3: .| 00000d00 64 69 65 0d 04 2e 05 20 0d 04 38 05 cb 0d 04 42 |die.... ..8....B| 00000d10 05 e1 0d 04 4c 0d dd 20 f2 5f 63 6c 6f 73 65 0d |....L.. ._close.| 00000d20 04 56 37 e7 20 71 25 21 30 3d 63 6f 6e 57 25 20 |.V7. q%!0=conW% | 00000d30 8c 20 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e |. .."Wimp_GetWin| 00000d40 64 6f 77 49 6e 66 6f 22 2c 2c 57 6e 25 3a 77 6f |dowInfo",,Wn%:wo| 00000d50 70 65 6e 25 3d a3 0d 04 60 38 e7 20 71 25 21 30 |pen%=...`8. q%!0| 00000d60 3d 6d 6f 6e 57 25 20 8c 20 c8 99 22 57 69 6d 70 |=monW% . .."Wimp| 00000d70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 00000d80 2c 57 6e 4d 25 3a 4d 6f 70 65 6e 25 3d a3 0d 04 |,WnM%:Mopen%=...| 00000d90 6a 20 e7 20 71 25 21 30 3d 77 61 72 6e 69 6e 67 |j . q%!0=warning| 00000da0 57 25 20 8c 20 77 61 72 6e 4f 6e 25 3d a3 0d 04 |W% . warnOn%=...| 00000db0 74 1d c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 |t... "Wimp_Close| 00000dc0 57 69 6e 64 6f 77 22 2c 2c 71 25 0d 04 7e 05 e1 |Window",,q%..~..| 00000dd0 0d 04 88 04 0d 04 92 14 dd 20 f2 5f 64 6f 5f 63 |......... ._do_c| 00000de0 6c 69 63 6b 28 71 25 29 0d 04 9c 0c 69 25 3d 71 |lick(q%)....i%=q| 00000df0 25 21 31 36 0d 04 a6 0e c8 8e 20 71 25 21 31 32 |%!16...... q%!12| 00000e00 20 ca 0d 04 b0 28 c9 20 77 61 72 6e 69 6e 67 57 | ....(. warningW| 00000e10 25 3a 20 71 25 21 30 3d 77 61 72 6e 69 6e 67 57 |%: q%!0=warningW| 00000e20 25 20 3a f2 5f 63 6c 6f 73 65 0d 04 ba 28 c9 20 |% :._close...(. | 00000e30 2d 32 3a 20 f4 20 4c 6f 6f 6b 20 66 69 72 73 74 |-2: . Look first| 00000e40 20 61 74 20 49 63 6f 6e 20 42 61 72 20 43 6c 69 | at Icon Bar Cli| 00000e50 63 6b 0d 04 c4 1e 20 20 20 20 20 20 20 20 e7 20 |ck.... . | 00000e60 71 25 21 31 36 3d 73 6d 70 69 63 6f 6e 25 20 8c |q%!16=smpicon% .| 00000e70 0d 04 ce 49 20 20 20 20 20 20 20 20 e7 20 71 25 |...I . q%| 00000e80 21 38 3d 32 20 8c 20 c8 99 22 57 69 6d 70 5f 43 |!8=2 . .."Wimp_C| 00000e90 72 65 61 74 65 4d 65 6e 75 22 2c 2c 6d 65 6e 75 |reateMenu",,menu| 00000ea0 25 2c 71 25 21 30 2d 37 34 2c 33 31 30 3a 49 63 |%,q%!0-74,310:Ic| 00000eb0 6f 6e 4d 65 6e 75 25 3d b9 0d 04 d8 1d 20 20 20 |onMenu%=..... | 00000ec0 20 20 20 20 20 e7 20 71 25 21 38 3d 34 20 8c 20 | . q%!8=4 . | 00000ed0 f2 5f 4f 70 65 6e 0d 04 e2 0d 20 20 20 20 20 20 |._Open.... | 00000ee0 20 20 cd 0d 04 ec 1f c9 20 6d 6f 6e 57 25 3a 20 | ...... monW%: | 00000ef0 e7 20 71 25 21 38 3d 34 20 8c 20 f2 5f 43 6c 69 |. q%!8=4 . ._Cli| 00000f00 63 6b 0d 04 f6 0c c9 20 63 6f 6e 57 25 3a 0d 05 |ck..... conW%:..| 00000f10 00 1e 20 20 20 20 20 e7 20 71 25 21 38 3d 34 20 |.. . q%!8=4 | 00000f20 8c 20 f2 5f 4d 6f 6e 43 6c 69 63 6b 0d 05 0a 47 |. ._MonClick...G| 00000f30 20 20 20 20 20 e7 20 71 25 21 38 3d 32 20 8c 20 | . q%!8=2 . | 00000f40 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 |.."Wimp_CreateMe| 00000f50 6e 75 22 2c 2c 6d 65 6e 75 25 2c 71 25 21 30 2d |nu",,menu%,q%!0-| 00000f60 39 36 2c 71 25 21 34 3a 49 63 6f 6e 4d 65 6e 75 |96,q%!4:IconMenu| 00000f70 25 3d a3 0d 05 14 09 20 20 20 20 20 0d 05 1e 30 |%=..... ...0| 00000f80 c9 20 73 61 76 65 57 25 3a 20 44 72 61 67 4f 6e |. saveW%: DragOn| 00000f90 25 3d b9 3a 20 53 61 76 65 50 72 6f 67 25 3d b9 |%=.: SaveProg%=.| 00000fa0 20 20 3a 20 f2 5f 44 6f 53 61 76 65 0d 05 28 2f | : ._DoSave..(/| 00000fb0 c9 20 73 61 76 65 44 25 3a 20 44 72 61 67 4f 6e |. saveD%: DragOn| 00000fc0 25 3d b9 3a 20 53 61 76 65 50 72 6f 67 25 3d a3 |%=.: SaveProg%=.| 00000fd0 20 3a 20 f2 5f 44 6f 53 61 76 65 0d 05 32 11 20 | : ._DoSave..2. | 00000fe0 20 20 20 20 20 20 20 20 20 20 20 20 0d 05 3c 05 | ..<.| 00000ff0 cb 0d 05 46 05 e1 0d 05 50 04 0d 05 5a 0d dd 20 |...F....P...Z.. | 00001000 f2 5f 43 6c 69 63 6b 0d 05 64 0e ea 20 41 25 2c |._Click..d.. A%,| 00001010 43 25 2c 42 25 0d 05 6e 16 20 e7 20 69 25 3c 32 |C%,B%..n. . i%<2| 00001020 33 20 80 20 69 25 3e 2d 31 20 8c 0d 05 78 0c 20 |3 . i%>-1 ...x. | 00001030 41 25 3d 69 25 2d 39 0d 05 82 0a 20 43 25 3d 26 |A%=i%-9.... C%=&| 00001040 42 0d 05 8c 1a 20 e7 20 69 25 3c 38 20 8c 20 43 |B.... . i%<8 . C| 00001050 25 3d 26 38 31 3a 41 25 3d 69 25 0d 05 96 1e 20 |%=&81:A%=i%.... | 00001060 e7 20 69 25 3e 31 37 20 8c 20 43 25 3d 26 38 38 |. i%>17 . C%=&88| 00001070 3a 41 25 3d 69 25 2d 31 38 0d 05 a0 0c 20 42 25 |:A%=i%-18.... B%| 00001080 3d 32 5e 41 25 0d 05 aa 1b 20 52 65 67 25 28 43 |=2^A%.... Reg%(C| 00001090 25 29 3d 52 65 67 25 28 43 25 29 20 82 20 42 25 |%)=Reg%(C%) . B%| 000010a0 0d 05 b4 49 20 e7 20 28 52 65 67 25 28 43 25 29 |...I . (Reg%(C%)| 000010b0 20 80 20 42 25 29 3d 30 20 8c 20 24 53 50 6f 69 | . B%)=0 . $SPoi| 000010c0 6e 74 4d 25 28 69 25 29 3d 22 65 6d 7a 65 72 6f |ntM%(i%)="emzero| 000010d0 22 20 8b 20 24 53 50 6f 69 6e 74 4d 25 28 69 25 |" . $SPointM%(i%| 000010e0 29 3d 22 65 6d 6f 6e 65 22 0d 05 be 45 20 c8 99 |)="emone"...E ..| 000010f0 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 |"Wimp_ForceRedra| 00001100 77 22 2c 6d 6f 6e 57 25 2c 49 58 4d 25 28 69 25 |w",monW%,IXM%(i%| 00001110 29 2c 49 59 4d 25 28 69 25 29 2c 49 58 31 4d 25 |),IYM%(i%),IX1M%| 00001120 28 69 25 29 2c 49 59 31 4d 25 28 69 25 29 0d 05 |(i%),IY1M%(i%)..| 00001130 c8 05 cd 0d 05 d2 05 e1 0d 05 dc 04 0d 05 e6 0c |................| 00001140 dd 20 f2 75 70 52 61 64 0d 05 f0 3c c8 99 22 57 |. .upRad...<.."W| 00001150 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 |imp_ForceRedraw"| 00001160 2c 63 6f 6e 57 25 2c 49 58 25 28 36 29 2c 49 59 |,conW%,IX%(6),IY| 00001170 25 28 36 29 2c 49 58 31 25 28 36 29 2c 49 59 31 |%(6),IX1%(6),IY1| 00001180 25 28 36 29 0d 05 fa 3c c8 99 22 57 69 6d 70 5f |%(6)...<.."Wimp_| 00001190 46 6f 72 63 65 52 65 64 72 61 77 22 2c 63 6f 6e |ForceRedraw",con| 000011a0 57 25 2c 49 58 25 28 37 29 2c 49 59 25 28 37 29 |W%,IX%(7),IY%(7)| 000011b0 2c 49 58 31 25 28 37 29 2c 49 59 31 25 28 37 29 |,IX1%(7),IY1%(7)| 000011c0 0d 06 04 40 c8 99 22 57 69 6d 70 5f 46 6f 72 63 |...@.."Wimp_Forc| 000011d0 65 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 |eRedraw",conW%,I| 000011e0 58 25 28 34 34 29 2c 49 59 25 28 34 34 29 2c 49 |X%(44),IY%(44),I| 000011f0 58 31 25 28 34 34 29 2c 49 59 31 25 28 34 34 29 |X1%(44),IY1%(44)| 00001200 0d 06 0e 05 e1 0d 06 18 04 0d 06 22 10 dd 20 f2 |...........".. .| 00001210 5f 4d 6f 6e 43 6c 69 63 6b 0d 06 2c 0e ea 20 41 |_MonClick..,.. A| 00001220 25 2c 43 25 2c 42 25 0d 06 36 26 f4 20 44 6f 20 |%,C%,B%..6&. Do | 00001230 74 68 65 20 61 63 74 69 6f 6e 20 66 6f 72 20 61 |the action for a| 00001240 20 77 69 6e 64 6f 77 20 63 6c 69 63 6b 0d 06 40 | window click..@| 00001250 0b c8 8e 20 69 25 20 ca 0d 06 4a 07 20 20 20 0d |... i% ...J. .| 00001260 06 54 22 20 20 20 c9 20 35 3a 20 57 61 74 63 68 |.T" . 5: Watch| 00001270 64 6f 67 25 3d ac 28 57 61 74 63 68 64 6f 67 25 |dog%=.(Watchdog%| 00001280 29 0d 06 5e 43 20 20 20 20 20 20 20 20 20 20 20 |)..^C | 00001290 e7 20 57 61 74 63 68 64 6f 67 25 3d b9 20 8c 20 |. Watchdog%=. . | 000012a0 24 53 50 6f 69 6e 74 25 28 35 29 3d 22 79 65 73 |$SPoint%(5)="yes| 000012b0 22 20 8b 20 24 53 50 6f 69 6e 74 25 28 35 29 3d |" . $SPoint%(5)=| 000012c0 22 6e 6f 22 0d 06 68 47 20 20 20 20 20 20 20 20 |"no"..hG | 000012d0 20 20 20 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 | .."Wimp_Force| 000012e0 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 |Redraw",conW%,IX| 000012f0 25 28 35 29 2c 49 59 25 28 35 29 2c 49 58 31 25 |%(5),IY%(5),IX1%| 00001300 28 35 29 2c 49 59 31 25 28 35 29 0d 06 72 0f 20 |(5),IY1%(5)..r. | 00001310 20 20 20 20 20 20 20 20 20 20 0d 06 7c 0b 20 20 | ..|. | 00001320 20 c9 20 36 3a 0d 06 86 2a 20 20 20 20 20 20 20 | . 6:...* | 00001330 20 20 20 20 e7 20 53 74 65 70 25 3d a3 20 8c 20 | . Step%=. . | 00001340 53 74 65 70 25 3d b9 3a 53 6b 69 70 25 3d a3 0d |Step%=.:Skip%=..| 00001350 06 90 5d 20 20 20 20 20 20 20 20 20 20 20 e7 20 |..] . | 00001360 53 74 65 70 25 20 8c 20 24 53 50 6f 69 6e 74 25 |Step% . $SPoint%| 00001370 28 36 29 3d 22 72 61 64 69 6f 6f 6e 22 3a 24 53 |(6)="radioon":$S| 00001380 50 6f 69 6e 74 25 28 37 29 3d 22 72 61 64 69 6f |Point%(7)="radio| 00001390 6f 66 66 22 3a 24 53 50 6f 69 6e 74 25 28 34 34 |off":$SPoint%(44| 000013a0 29 3d 22 72 61 64 69 6f 6f 66 66 22 0d 06 9a 15 |)="radiooff"....| 000013b0 20 20 20 20 20 20 20 20 20 20 20 f2 75 70 52 61 | .upRa| 000013c0 64 0d 06 a4 0f 20 20 20 20 20 20 20 20 20 20 20 |d.... | 000013d0 0d 06 ae 0b 20 20 20 c9 20 37 3a 0d 06 b8 34 20 |.... . 7:...4 | 000013e0 20 20 20 20 20 20 20 20 20 20 e7 20 53 74 65 70 | . Step| 000013f0 25 3d b9 20 84 20 53 6b 69 70 25 3d b9 20 8c 20 |%=. . Skip%=. . | 00001400 53 74 65 70 25 3d a3 3a 53 6b 69 70 25 3d a3 0d |Step%=.:Skip%=..| 00001410 06 c2 5f 20 20 20 20 20 20 20 20 20 20 20 e7 20 |.._ . | 00001420 53 74 65 70 25 3d a3 20 8c 20 24 53 50 6f 69 6e |Step%=. . $SPoin| 00001430 74 25 28 37 29 3d 22 72 61 64 69 6f 6f 6e 22 3a |t%(7)="radioon":| 00001440 24 53 50 6f 69 6e 74 25 28 36 29 3d 22 72 61 64 |$SPoint%(6)="rad| 00001450 69 6f 6f 66 66 22 3a 24 53 50 6f 69 6e 74 25 28 |iooff":$SPoint%(| 00001460 34 34 29 3d 22 72 61 64 69 6f 6f 66 66 22 0d 06 |44)="radiooff"..| 00001470 cc 15 20 20 20 20 20 20 20 20 20 20 20 f2 75 70 |.. .up| 00001480 52 61 64 0d 06 d6 0f 20 20 20 20 20 20 20 20 20 |Rad.... | 00001490 20 20 0d 06 e0 28 20 20 20 c9 20 34 34 3a 20 e7 | ...( . 44: .| 000014a0 20 53 6b 69 70 25 3d a3 20 8c 20 53 6b 69 70 25 | Skip%=. . Skip%| 000014b0 3d b9 3a 53 74 65 70 25 3d b9 0d 06 ea 5e 20 20 |=.:Step%=....^ | 000014c0 20 20 20 20 20 20 20 20 20 20 e7 20 53 6b 69 70 | . Skip| 000014d0 25 20 8c 20 24 53 50 6f 69 6e 74 25 28 34 34 29 |% . $SPoint%(44)| 000014e0 3d 22 72 61 64 69 6f 6f 6e 22 3a 24 53 50 6f 69 |="radioon":$SPoi| 000014f0 6e 74 25 28 36 29 3d 22 72 61 64 69 6f 6f 66 66 |nt%(6)="radiooff| 00001500 22 3a 24 53 50 6f 69 6e 74 25 28 37 29 3d 22 72 |":$SPoint%(7)="r| 00001510 61 64 69 6f 6f 66 66 22 0d 06 f4 16 20 20 20 20 |adiooff".... | 00001520 20 20 20 20 20 20 20 20 f2 75 70 52 61 64 0d 06 | .upRad..| 00001530 fe 10 20 20 20 20 20 20 20 20 20 20 20 20 0d 07 |.. ..| 00001540 08 21 20 20 20 c9 20 38 3a 20 24 53 50 6f 69 6e |.! . 8: $SPoin| 00001550 74 25 28 38 29 3d 22 72 61 64 69 6f 6f 6e 22 0d |t%(8)="radioon".| 00001560 07 12 1a 20 20 20 20 20 20 20 20 20 20 20 52 65 |... Re| 00001570 73 65 74 69 6e 67 25 3d b9 0d 07 1c 47 20 20 20 |seting%=....G | 00001580 20 20 20 20 20 20 20 20 c8 99 22 57 69 6d 70 5f | .."Wimp_| 00001590 46 6f 72 63 65 52 65 64 72 61 77 22 2c 63 6f 6e |ForceRedraw",con| 000015a0 57 25 2c 49 58 25 28 38 29 2c 49 59 25 28 38 29 |W%,IX%(8),IY%(8)| 000015b0 2c 49 58 31 25 28 38 29 2c 49 59 31 25 28 38 29 |,IX1%(8),IY1%(8)| 000015c0 0d 07 26 04 0d 07 30 21 20 20 20 c9 20 31 30 3a |..&...0! . 10:| 000015d0 20 52 75 6e 6e 69 6e 67 25 3d ac 28 52 75 6e 6e | Running%=.(Runn| 000015e0 69 6e 67 25 29 0d 07 3a 43 20 20 20 20 20 20 20 |ing%)..:C | 000015f0 20 20 20 20 e7 20 52 75 6e 6e 69 6e 67 25 20 8c | . Running% .| 00001600 20 24 53 50 6f 69 6e 74 25 28 31 30 29 3d 22 53 | $SPoint%(10)="S| 00001610 74 6f 70 22 20 8b 20 24 53 50 6f 69 6e 74 25 28 |top" . $SPoint%(| 00001620 31 30 29 3d 22 47 6f 22 0d 07 44 4b 20 20 20 20 |10)="Go"..DK | 00001630 20 20 20 20 20 20 20 c8 99 22 57 69 6d 70 5f 46 | .."Wimp_F| 00001640 6f 72 63 65 52 65 64 72 61 77 22 2c 63 6f 6e 57 |orceRedraw",conW| 00001650 25 2c 49 58 25 28 31 30 29 2c 49 59 25 28 31 30 |%,IX%(10),IY%(10| 00001660 29 2c 49 58 31 25 28 31 30 29 2c 49 59 31 25 28 |),IX1%(10),IY1%(| 00001670 31 30 29 0d 07 4e 0f 20 20 20 20 20 20 20 20 20 |10)..N. | 00001680 20 20 0d 07 58 06 20 cb 0d 07 62 05 20 0d 07 6c | ..X. ...b. ..l| 00001690 16 20 e7 20 69 25 3e 32 33 20 80 20 69 25 3c 33 |. . i%>23 . i%<3| 000016a0 32 20 8c 0d 07 76 0d 20 41 25 3d 69 25 2d 32 34 |2 ...v. A%=i%-24| 000016b0 0d 07 80 0c 20 42 25 3d 32 5e 41 25 0d 07 8a 19 |.... B%=2^A%....| 000016c0 20 52 65 67 25 28 33 29 3d 52 65 67 25 28 33 29 | Reg%(3)=Reg%(3)| 000016d0 20 82 20 42 25 0d 07 94 46 20 e7 20 28 52 65 67 | . B%...F . (Reg| 000016e0 25 28 33 29 20 80 20 42 25 29 3d 30 20 8c 20 24 |%(3) . B%)=0 . $| 000016f0 53 50 6f 69 6e 74 25 28 69 25 29 3d 22 65 6d 7a |SPoint%(i%)="emz| 00001700 65 72 6f 22 20 8b 20 24 53 50 6f 69 6e 74 25 28 |ero" . $SPoint%(| 00001710 69 25 29 3d 22 65 6d 6f 6e 65 22 0d 07 9e 41 20 |i%)="emone"...A | 00001720 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00001730 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 69 |raw",conW%,IX%(i| 00001740 25 29 2c 49 59 25 28 69 25 29 2c 49 58 31 25 28 |%),IY%(i%),IX1%(| 00001750 69 25 29 2c 49 59 31 25 28 69 25 29 0d 07 a8 06 |i%),IY1%(i%)....| 00001760 20 cd 0d 07 b2 05 20 0d 07 bc 16 20 e7 20 69 25 | ..... .... . i%| 00001770 3e 31 30 20 80 20 69 25 3c 31 39 20 8c 0d 07 c6 |>10 . i%<19 ....| 00001780 0d 20 41 25 3d 69 25 2d 31 31 0d 07 d0 0c 20 42 |. A%=i%-11.... B| 00001790 25 3d 32 5e 41 25 0d 07 da 19 20 52 65 67 25 28 |%=2^A%.... Reg%(| 000017a0 36 29 3d 52 65 67 25 28 36 29 20 82 20 42 25 0d |6)=Reg%(6) . B%.| 000017b0 07 e4 1c 20 e7 20 28 52 65 67 25 28 26 38 36 29 |... . (Reg%(&86)| 000017c0 20 80 20 42 25 29 3c 3e 30 20 8c 0d 07 ee 48 20 | . B%)<>0 ....H | 000017d0 e7 20 28 52 65 67 25 28 36 29 20 80 20 42 25 29 |. (Reg%(6) . B%)| 000017e0 3d 30 20 8c 20 24 53 50 6f 69 6e 74 25 28 69 25 |=0 . $SPoint%(i%| 000017f0 29 3d 22 65 6d 73 77 6f 66 66 22 20 8b 20 24 53 |)="emswoff" . $S| 00001800 50 6f 69 6e 74 25 28 69 25 29 3d 22 65 6d 73 77 |Point%(i%)="emsw| 00001810 6f 6e 22 0d 07 f8 06 20 cc 0d 08 02 4a 20 e7 20 |on".... ....J . | 00001820 28 52 65 67 25 28 36 29 20 80 20 42 25 29 3d 30 |(Reg%(6) . B%)=0| 00001830 20 8c 20 24 53 50 6f 69 6e 74 25 28 69 25 29 3d | . $SPoint%(i%)=| 00001840 22 65 6d 6c 65 64 6f 66 66 22 20 8b 20 24 53 50 |"emledoff" . $SP| 00001850 6f 69 6e 74 25 28 69 25 29 3d 22 65 6d 6c 65 64 |oint%(i%)="emled| 00001860 6f 6e 22 0d 08 0c 05 20 0d 08 16 06 20 cd 0d 08 |on".... .... ...| 00001870 20 41 20 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 | A .."Wimp_Force| 00001880 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 |Redraw",conW%,IX| 00001890 25 28 69 25 29 2c 49 59 25 28 69 25 29 2c 49 58 |%(i%),IY%(i%),IX| 000018a0 31 25 28 69 25 29 2c 49 59 31 25 28 69 25 29 0d |1%(i%),IY1%(i%).| 000018b0 08 2a 06 20 cd 0d 08 34 05 20 0d 08 3e 16 20 e7 |.*. ...4. ..>. .| 000018c0 20 69 25 3e 31 38 20 80 20 69 25 3c 32 34 20 8c | i%>18 . i%<24 .| 000018d0 0d 08 48 0d 20 41 25 3d 69 25 2d 31 39 0d 08 52 |..H. A%=i%-19..R| 000018e0 0c 20 42 25 3d 32 5e 41 25 0d 08 5c 19 20 52 65 |. B%=2^A%..\. Re| 000018f0 67 25 28 35 29 3d 52 65 67 25 28 35 29 20 82 20 |g%(5)=Reg%(5) . | 00001900 42 25 0d 08 66 1c 20 e7 20 28 52 65 67 25 28 26 |B%..f. . (Reg%(&| 00001910 38 35 29 20 80 20 42 25 29 3c 3e 30 20 8c 0d 08 |85) . B%)<>0 ...| 00001920 70 48 20 e7 20 28 52 65 67 25 28 35 29 20 80 20 |pH . (Reg%(5) . | 00001930 42 25 29 3d 30 20 8c 20 24 53 50 6f 69 6e 74 25 |B%)=0 . $SPoint%| 00001940 28 69 25 29 3d 22 65 6d 73 77 6f 66 66 22 20 8b |(i%)="emswoff" .| 00001950 20 24 53 50 6f 69 6e 74 25 28 69 25 29 3d 22 65 | $SPoint%(i%)="e| 00001960 6d 73 77 6f 6e 22 0d 08 7a 06 20 cc 0d 08 84 4a |mswon"..z. ....J| 00001970 20 e7 20 28 52 65 67 25 28 35 29 20 80 20 42 25 | . (Reg%(5) . B%| 00001980 29 3d 30 20 8c 20 24 53 50 6f 69 6e 74 25 28 69 |)=0 . $SPoint%(i| 00001990 25 29 3d 22 65 6d 6c 65 64 6f 66 66 22 20 8b 20 |%)="emledoff" . | 000019a0 24 53 50 6f 69 6e 74 25 28 69 25 29 3d 22 65 6d |$SPoint%(i%)="em| 000019b0 6c 65 64 6f 6e 22 0d 08 8e 06 20 cd 0d 08 98 41 |ledon".... ....A| 000019c0 20 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 | .."Wimp_ForceRe| 000019d0 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 |draw",conW%,IX%(| 000019e0 69 25 29 2c 49 59 25 28 69 25 29 2c 49 58 31 25 |i%),IY%(i%),IX1%| 000019f0 28 69 25 29 2c 49 59 31 25 28 69 25 29 0d 08 a2 |(i%),IY1%(i%)...| 00001a00 06 20 cd 0d 08 ac 05 20 0d 08 b6 05 e1 0d 08 c0 |. ..... ........| 00001a10 04 0d 08 ca 0c dd 20 f2 5f 4f 70 65 6e 0d 08 d4 |...... ._Open...| 00001a20 2e c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 |..."OS_ReadModeV| 00001a30 61 72 69 61 62 6c 65 22 2c 2d 31 2c 33 20 b8 20 |ariable",-1,3 . | 00001a40 2c 2c 4e 63 6f 6c 6f 75 72 73 25 0d 08 de 19 f4 |,,Ncolours%.....| 00001a50 20 4f 50 45 4e 20 55 50 20 57 49 4e 44 4f 57 20 | OPEN UP WINDOW | 00001a60 48 45 52 45 0d 08 e8 0d e7 20 53 6d 6f 6e 25 20 |HERE..... Smon% | 00001a70 8c 0d 08 f2 0e e7 20 4d 6f 70 65 6e 25 20 8c 0d |...... Mopen% ..| 00001a80 08 fc 0e 71 25 21 30 3d 6d 6f 6e 57 25 0d 09 06 |...q%!0=monW%...| 00001a90 1f c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |..."Wimp_GetWind| 00001aa0 6f 77 53 74 61 74 65 22 2c 2c 71 25 0d 09 10 36 |owState",,q%...6| 00001ab0 20 20 e7 20 71 25 21 32 38 3c 3e 2d 31 20 8c 20 | . q%!28<>-1 . | 00001ac0 71 25 21 32 38 3d 2d 31 3a 20 c8 99 20 22 57 69 |q%!28=-1: .. "Wi| 00001ad0 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c |mp_OpenWindow",,| 00001ae0 71 25 0d 09 1a 05 cc 0d 09 24 1e c8 99 20 22 57 |q%.......$... "W| 00001af0 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c |imp_OpenWindow",| 00001b00 2c 57 6e 4d 25 0d 09 2e 0c 4d 6f 70 65 6e 25 3d |,WnM%....Mopen%=| 00001b10 b9 0d 09 38 05 cd 0d 09 42 05 cd 0d 09 4c 04 0d |...8....B....L..| 00001b20 09 56 0e e7 20 53 63 6f 6e 74 25 20 8c 0d 09 60 |.V.. Scont% ...`| 00001b30 0e e7 20 77 6f 70 65 6e 25 20 8c 0d 09 6a 0e 71 |.. wopen% ...j.q| 00001b40 25 21 30 3d 63 6f 6e 57 25 0d 09 74 1f c8 99 22 |%!0=conW%..t..."| 00001b50 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 |Wimp_GetWindowSt| 00001b60 61 74 65 22 2c 2c 71 25 0d 09 7e 36 20 20 e7 20 |ate",,q%..~6 . | 00001b70 71 25 21 32 38 3c 3e 2d 31 20 8c 20 71 25 21 32 |q%!28<>-1 . q%!2| 00001b80 38 3d 2d 31 3a 20 c8 99 20 22 57 69 6d 70 5f 4f |8=-1: .. "Wimp_O| 00001b90 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 71 25 0d 09 |penWindow",,q%..| 00001ba0 88 05 cc 0d 09 92 1d c8 99 20 22 57 69 6d 70 5f |......... "Wimp_| 00001bb0 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 57 6e 25 |OpenWindow",,Wn%| 00001bc0 0d 09 9c 0c 77 6f 70 65 6e 25 3d b9 0d 09 a6 05 |....wopen%=.....| 00001bd0 cd 0d 09 b0 05 cd 0d 09 ba 04 0d 09 c4 05 e1 0d |................| 00001be0 09 ce 04 0d 09 d8 0f dd f2 73 65 74 75 70 6d 65 |.........setupme| 00001bf0 6e 75 0d 09 e2 08 ea 20 6d 25 0d 09 ec 04 0d 09 |nu..... m%......| 00001c00 f6 15 24 6d 65 6e 75 25 3d 22 53 69 6d 75 6c 61 |..$menu%="Simula| 00001c10 74 65 22 0d 0a 00 0e 6d 65 6e 75 25 3f 31 32 3d |te"....menu%?12=| 00001c20 37 0d 0a 0a 0e 6d 65 6e 75 25 3f 31 33 3d 32 0d |7....menu%?13=2.| 00001c30 0a 14 0e 6d 65 6e 75 25 3f 31 34 3d 37 0d 0a 1e |...menu%?14=7...| 00001c40 0e 6d 65 6e 75 25 3f 31 35 3d 30 0d 0a 28 10 6d |.menu%?15=0..(.m| 00001c50 65 6e 75 25 21 31 36 3d 31 32 38 0d 0a 32 0f 6d |enu%!16=128..2.m| 00001c60 65 6e 75 25 21 32 30 3d 34 30 0d 0a 3c 0e 6d 65 |enu%!20=40..<.me| 00001c70 6e 75 25 21 32 34 3d 30 0d 0a 46 0f 6d 25 3d 6d |nu%!24=0..F.m%=m| 00001c80 65 6e 75 25 2b 32 38 0d 0a 50 0a 6d 25 21 30 3d |enu%+28..P.m%!0=| 00001c90 32 0d 0a 5a 0e 6d 25 21 34 3d 69 6e 66 6f 25 0d |2..Z.m%!4=info%.| 00001ca0 0a 64 18 6d 25 21 38 3d 28 37 3c 3c 32 34 29 84 |.d.m%!8=(7<<24).| 00001cb0 20 25 31 30 30 30 31 0d 0a 6e 13 24 28 6d 25 2b | %10001..n.$(m%+| 00001cc0 31 32 29 3d 22 49 6e 66 6f 22 0d 0a 78 04 0d 0a |12)="Info"..x...| 00001cd0 82 0a 6d 25 2b 3d 32 34 0d 0a 8c 0a 6d 25 21 30 |..m%+=24....m%!0| 00001ce0 3d 31 0d 0a 96 0a 6d 25 21 34 3d 30 0d 0a a0 18 |=1....m%!4=0....| 00001cf0 6d 25 21 38 3d 28 37 3c 3c 32 34 29 84 20 25 31 |m%!8=(7<<24). %1| 00001d00 30 30 30 31 0d 0a aa 16 24 28 6d 25 2b 31 32 29 |0001....$(m%+12)| 00001d10 3d 22 43 6f 6e 74 72 6f 6c 22 0d 0a b4 04 0d 0a |="Control"......| 00001d20 be 0a 6d 25 2b 3d 32 34 0d 0a c8 0a 6d 25 21 30 |..m%+=24....m%!0| 00001d30 3d 32 0d 0a d2 0a 6d 25 21 34 3d 30 0d 0a dc 18 |=2....m%!4=0....| 00001d40 6d 25 21 38 3d 28 37 3c 3c 32 34 29 84 20 25 31 |m%!8=(7<<24). %1| 00001d50 30 30 30 31 0d 0a e6 16 24 28 6d 25 2b 31 32 29 |0001....$(m%+12)| 00001d60 3d 22 4d 6f 6e 69 74 6f 72 22 0d 0a f0 04 0d 0a |="Monitor"......| 00001d70 fa 0a 6d 25 2b 3d 32 34 0d 0b 04 0c 6d 25 21 30 |..m%+=24....m%!0| 00001d80 3d 26 38 30 0d 0b 0e 0a 6d 25 21 34 3d 30 0d 0b |=&80....m%!4=0..| 00001d90 18 18 6d 25 21 38 3d 28 37 3c 3c 32 34 29 84 20 |..m%!8=(7<<24). | 00001da0 25 31 30 30 30 31 0d 0b 22 13 24 28 6d 25 2b 31 |%10001..".$(m%+1| 00001db0 32 29 3d 22 51 75 69 74 22 0d 0b 2c 04 0d 0b 36 |2)="Quit"..,...6| 00001dc0 05 e1 0d 0b 40 04 0d 0b 4a 12 dd 20 f2 72 65 63 |....@...J.. .rec| 00001dd0 65 69 76 65 28 71 25 29 0d 0b 54 08 ea 20 41 25 |eive(q%)..T.. A%| 00001de0 0d 0b 5e 0c 41 25 3d 71 25 21 31 36 0d 0b 68 0b |..^.A%=q%!16..h.| 00001df0 c8 8e 20 41 25 20 ca 0d 0b 72 0c c9 20 30 3a f2 |.. A% ...r.. 0:.| 00001e00 64 69 65 0d 0b 7c 04 0d 0b 86 17 c9 20 33 3a 6e |die..|...... 3:n| 00001e10 24 3d a4 73 67 65 74 28 71 25 2b 34 34 29 0d 0b |$=.sget(q%+44)..| 00001e20 90 27 20 20 20 20 20 20 20 73 65 6e 64 74 68 25 |.' sendth%| 00001e30 3d 71 25 21 34 3a 69 63 6f 6e 74 79 70 65 25 3d |=q%!4:icontype%=| 00001e40 71 25 21 34 30 0d 0b 9a 16 20 20 20 20 20 20 20 |q%!40.... | 00001e50 6d 79 72 65 66 25 3d 71 25 21 38 0d 0b a4 4b 20 |myref%=q%!8...K | 00001e60 20 20 20 20 20 20 e7 20 69 63 6f 6e 74 79 70 65 | . icontype| 00001e70 25 3d 26 38 34 20 80 20 28 20 28 71 25 21 32 30 |%=&84 . ( (q%!20| 00001e80 3d 2d 32 20 80 20 71 25 21 32 34 3d 73 6d 70 69 |=-2 . q%!24=smpi| 00001e90 63 6f 6e 25 29 20 84 20 71 25 21 32 30 3d 63 6f |con%) . q%!20=co| 00001ea0 6e 57 25 29 20 8c 0d 0b ae 17 20 20 20 20 20 20 |nW%) ..... | 00001eb0 20 20 f2 5f 46 6e 61 6d 65 28 6e 24 29 0d 0b b8 | ._Fname(n$)...| 00001ec0 12 20 20 20 20 20 20 20 20 f2 5f 44 61 63 6b 0d |. ._Dack.| 00001ed0 0b c2 16 20 20 20 20 20 20 20 20 f2 5f 4c 6f 61 |... ._Loa| 00001ee0 64 28 6e 24 29 0d 0b cc 1f 20 20 20 20 20 20 20 |d(n$).... | 00001ef0 20 e7 20 77 6f 70 65 6e 25 3d a3 20 8c 20 f2 5f | . wopen%=. . ._| 00001f00 4f 70 65 6e 0d 0b d6 0d 20 20 20 20 20 20 20 20 |Open.... | 00001f10 cc 0d 0b e0 43 20 20 20 20 20 20 20 20 e7 20 69 |....C . i| 00001f20 63 6f 6e 74 79 70 65 25 3c 3e 26 38 34 20 8c 20 |contype%<>&84 . | 00001f30 f2 5f 73 65 74 75 70 57 28 22 4e 65 65 64 20 61 |._setupW("Need a| 00001f40 20 31 36 43 38 34 20 6f 62 6a 65 63 74 20 66 69 | 16C84 object fi| 00001f50 6c 65 22 29 0d 0b ea 0c 20 20 20 20 20 20 20 cd |le").... .| 00001f60 0d 0b f4 14 c9 20 26 35 30 32 3a 20 20 20 c8 8e |..... &502: ..| 00001f70 20 b9 20 ca 0d 0b fe 6c 20 20 20 20 20 20 20 20 | . ....l | 00001f80 20 20 20 20 20 c9 20 71 25 21 33 32 3d 2d 32 20 | . q%!32=-2 | 00001f90 80 20 71 25 21 33 36 3d 73 6d 70 69 63 6f 6e 25 |. q%!36=smpicon%| 00001fa0 3a 6d 65 73 24 3d 22 54 68 69 73 20 69 73 20 74 |:mes$="This is t| 00001fb0 68 65 20 50 49 43 20 53 69 6d 75 6c 61 74 6f 72 |he PIC Simulator| 00001fc0 20 69 63 6f 6e 2e 7c 4d 52 75 6e 20 50 49 43 20 | icon.|MRun PIC | 00001fd0 63 68 69 70 20 70 72 6f 67 72 61 6d 6d 65 73 22 |chip programmes"| 00001fe0 0d 0c 08 1a 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00001ff0 20 7f 3a 6d 65 73 24 3d 22 22 0d 0c 12 12 20 20 | .:mes$="".... | 00002000 20 20 20 20 20 20 20 20 20 20 20 cb 0d 0c 1c 14 | .....| 00002010 20 20 20 20 e7 20 6d 65 73 24 3c 3e 22 22 20 8c | . mes$<>"" .| 00002020 0d 0c 26 12 20 20 20 20 71 25 21 31 32 3d 71 25 |..&. q%!12=q%| 00002030 21 38 0d 0c 30 18 20 20 20 20 24 28 71 25 2b 32 |!8..0. $(q%+2| 00002040 30 29 3d 6d 65 73 24 2b bd 30 0d 0c 3a 1e 20 20 |0)=mes$+.0..:. | 00002050 20 20 71 25 21 30 3d 28 32 30 2b a9 6d 65 73 24 | q%!0=(20+.mes$| 00002060 2b 34 29 80 20 ac 20 33 0d 0c 44 12 20 20 20 20 |+4). . 3..D. | 00002070 71 25 21 31 36 3d 26 35 30 33 0d 0c 4e 28 20 20 |q%!16=&503..N( | 00002080 20 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d | .. "Wimp_SendM| 00002090 65 73 73 61 67 65 22 2c 31 38 2c 71 25 2c 71 25 |essage",18,q%,q%| 000020a0 21 34 0d 0c 58 05 cb 0d 0c 62 05 e1 0d 0c 6c 04 |!4..X....b....l.| 000020b0 0d 0c 76 0c dd 20 f2 5f 44 61 63 6b 0d 0c 80 10 |..v.. ._Dack....| 000020c0 73 65 6e 64 74 68 25 3d 71 25 21 34 0d 0c 8a 0f |sendth%=q%!4....| 000020d0 6d 79 72 65 66 25 3d 71 25 21 38 0d 0c 94 22 c8 |myref%=q%!8...".| 000020e0 99 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 |. "Wimp_GetPoint| 000020f0 65 72 49 6e 66 6f 22 2c 2c 71 25 2b 38 0d 0c 9e |erInfo",,q%+8...| 00002100 0e 71 25 21 32 38 3d 71 25 21 38 0d 0c a8 0f 71 |.q%!28=q%!8....q| 00002110 25 21 33 32 3d 71 25 21 31 32 0d 0c b2 18 71 25 |%!32=q%!12....q%| 00002120 21 30 3d 28 34 34 2b a9 6e 24 2b 34 29 80 20 ac |!0=(44+.n$+4). .| 00002130 20 33 0d 0c bc 10 71 25 21 31 32 3d 6d 79 72 65 | 3....q%!12=myre| 00002140 66 25 0d 0c c6 0b 71 25 21 31 36 3d 34 0d 0c d0 |f%....q%!16=4...| 00002150 0c 71 25 21 33 36 3d 2d 31 0d 0c da 0e 71 25 21 |.q%!36=-1....q%!| 00002160 34 30 3d 26 46 46 39 0d 0c e4 12 24 28 71 25 2b |40=&FF9....$(q%+| 00002170 34 34 29 3d 6e 24 2b bd 30 0d 0c ee 27 c8 99 20 |44)=n$+.0...'.. | 00002180 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 |"Wimp_SendMessag| 00002190 65 22 2c 31 37 2c 71 25 2c 73 65 6e 64 74 68 25 |e",17,q%,sendth%| 000021a0 0d 0c f8 05 cd 0d 0d 02 05 e1 0d 0d 0c 04 0d 0d |................| 000021b0 16 0e dd a4 73 67 65 74 28 78 25 29 0d 0d 20 08 |....sget(x%).. .| 000021c0 ea 20 78 24 0d 0d 2a 21 c8 95 20 3f 78 25 3e 26 |. x$..*!.. ?x%>&| 000021d0 31 46 20 78 24 2b 3d bd 28 3f 78 25 29 3a 78 25 |1F x$+=.(?x%):x%| 000021e0 2b 3d 31 3a ce 0d 0d 34 07 3d 78 24 0d 0d 3e 04 |+=1:...4.=x$..>.| 000021f0 0d 0d 48 0a dd a4 69 63 6f 6e 0d 0d 52 0b 71 25 |..H...icon..R.q%| 00002200 21 30 3d 2d 31 0d 0d 5c 0a 71 25 21 34 3d 30 0d |!0=-1..\.q%!4=0.| 00002210 0d 66 1b 71 25 21 38 3d 31 30 20 3a 20 f4 20 59 |.f.q%!8=10 : . Y| 00002220 20 44 49 52 45 43 54 49 4f 4e 0d 0d 70 1c 71 25 | DIRECTION..p.q%| 00002230 21 31 32 3d 37 30 20 3a 20 f4 20 58 20 44 49 52 |!12=70 : . X DIR| 00002240 45 43 54 49 4f 4e 0d 0d 7a 0c 71 25 21 31 36 3d |ECTION..z.q%!16=| 00002250 39 36 0d 0d 84 0f 71 25 21 32 30 3d 26 32 30 30 |96....q%!20=&200| 00002260 32 0d 0d 8e 15 24 28 71 25 2b 32 34 29 3d 22 21 |2....$(q%+24)="!| 00002270 73 69 6d 38 34 22 0d 0d 98 24 c8 99 20 22 57 69 |sim84"...$.. "Wi| 00002280 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c |mp_CreateIcon",,| 00002290 71 25 20 b8 20 69 63 6f 6e 25 0d 0d a2 0a 3d 69 |q% . icon%....=i| 000022a0 63 6f 6e 25 0d 0d ac 04 0d 0d b6 2e dd 20 f2 64 |con%......... .d| 000022b0 72 61 67 69 63 6f 6e 28 6d 6f 75 73 65 78 25 2c |ragicon(mousex%,| 000022c0 6d 6f 75 73 65 79 25 2c 68 61 6e 64 6c 65 25 2c |mousey%,handle%,| 000022d0 69 63 6f 6e 25 29 0d 0d c0 21 ea 20 62 78 25 2c |icon%)...!. bx%,| 000022e0 62 79 25 2c 69 78 30 25 2c 69 79 30 25 2c 69 78 |by%,ix0%,iy0%,ix| 000022f0 31 25 2c 69 79 31 25 0d 0d ca 12 f2 67 65 74 77 |1%,iy1%.....getw| 00002300 28 68 61 6e 64 6c 65 25 29 0d 0d d4 18 f2 67 65 |(handle%).....ge| 00002310 74 69 28 68 61 6e 64 6c 65 25 2c 69 63 6f 6e 25 |ti(handle%,icon%| 00002320 29 0d 0d de 16 21 71 25 3d 68 61 6e 64 6c 65 25 |)....!q%=handle%| 00002330 3a 71 25 21 34 3d 35 0d 0d e8 3e 71 25 21 38 3d |:q%!4=5...>q%!8=| 00002340 62 78 25 2b 69 78 30 25 3a 71 25 21 31 32 3d 62 |bx%+ix0%:q%!12=b| 00002350 79 25 2b 69 79 30 25 3a 71 25 21 31 36 3d 62 78 |y%+iy0%:q%!16=bx| 00002360 25 2b 69 78 31 25 3a 71 25 21 32 30 3d 62 79 25 |%+ix1%:q%!20=by%| 00002370 2b 69 79 31 25 0d 0d f2 2a 71 25 21 32 34 3d 71 |+iy1%...*q%!24=q| 00002380 25 21 38 2d 6d 6f 75 73 65 78 25 3a 71 25 21 32 |%!8-mousex%:q%!2| 00002390 38 3d 71 25 21 31 32 2d 6d 6f 75 73 65 79 25 0d |8=q%!12-mousey%.| 000023a0 0d fc 19 c8 99 20 22 57 69 6d 70 5f 44 72 61 67 |..... "Wimp_Drag| 000023b0 42 6f 78 22 2c 2c 71 25 0d 0e 06 0c 53 46 4c 41 |Box",,q%....SFLA| 000023c0 47 25 3d b9 0d 0e 10 05 e1 0d 0e 1a 04 0d 0e 24 |G%=............$| 000023d0 0f dd 20 f2 69 6e 66 6f 28 70 25 29 0d 0e 2e 0d |.. .info(p%)....| 000023e0 ea 20 78 30 25 2c 79 30 25 0d 0e 38 27 78 30 25 |. x0%,y0%..8'x0%| 000023f0 3d 21 70 25 3a 79 30 25 3d 70 25 21 34 3a 78 31 |=!p%:y0%=p%!4:x1| 00002400 25 3d 70 25 21 38 3a 79 31 25 3d 70 25 21 31 32 |%=p%!8:y1%=p%!12| 00002410 0d 0e 42 35 73 63 78 25 3d 70 25 21 31 36 3a 73 |..B5scx%=p%!16:s| 00002420 63 79 25 3d 70 25 21 32 30 3a 62 68 61 6e 64 6c |cy%=p%!20:bhandl| 00002430 65 25 3d 70 25 21 32 34 3a 66 6c 61 67 73 25 3d |e%=p%!24:flags%=| 00002440 70 25 21 32 38 0d 0e 4c 1d 62 78 25 3d 78 30 25 |p%!28..L.bx%=x0%| 00002450 2d 73 63 78 25 3a 62 79 25 3d 79 31 25 2d 73 63 |-scx%:by%=y1%-sc| 00002460 79 25 0d 0e 56 05 e1 0d 0e 60 04 0d 0e 6a 14 dd |y%..V....`...j..| 00002470 20 f2 67 65 74 77 28 68 61 6e 64 6c 65 25 29 0d | .getw(handle%).| 00002480 0e 74 38 21 71 25 3d 68 61 6e 64 6c 65 25 3a c8 |.t8!q%=handle%:.| 00002490 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 000024a0 77 53 74 61 74 65 22 2c 2c 71 25 3a f2 69 6e 66 |wState",,q%:.inf| 000024b0 6f 28 71 25 2b 34 29 0d 0e 7e 05 e1 0d 0e 88 12 |o(q%+4)..~......| 000024c0 dd 20 f2 67 65 74 69 28 68 25 2c 69 25 29 0d 0e |. .geti(h%,i%)..| 000024d0 92 2d 21 71 25 3d 68 25 3a 71 25 21 34 3d 69 25 |.-!q%=h%:q%!4=i%| 000024e0 3a c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f |:.. "Wimp_GetIco| 000024f0 6e 53 74 61 74 65 22 2c 2c 71 25 0d 0e 9c 2e 69 |nState",,q%....i| 00002500 78 30 25 3d 71 25 21 38 3a 69 79 30 25 3d 71 25 |x0%=q%!8:iy0%=q%| 00002510 21 31 32 3a 69 78 31 25 3d 71 25 21 31 36 3a 69 |!12:ix1%=q%!16:i| 00002520 79 31 25 3d 71 25 21 32 30 0d 0e a6 1e 69 66 6c |y1%=q%!20....ifl| 00002530 61 67 73 25 3d 71 25 21 32 34 3a 69 64 61 74 61 |ags%=q%!24:idata| 00002540 25 3d 71 25 2b 32 38 0d 0e b0 05 e1 0d 0e ba 04 |%=q%+28.........| 00002550 0d 0e c4 0d dd a4 68 70 67 28 6e 25 29 0d 0e ce |......hpg(n%)...| 00002560 14 ea 20 41 24 2c 42 25 2c 56 25 2c 57 25 2c 54 |.. A$,B%,V%,W%,T| 00002570 25 0d 0e d8 19 41 24 3d a4 73 67 65 74 28 53 50 |%....A$=.sget(SP| 00002580 6f 69 6e 74 25 28 6e 25 29 29 0d 0e e2 19 e7 20 |oint%(n%))..... | 00002590 97 28 41 24 29 3d 26 32 30 20 8c 20 41 24 3d c2 |.(A$)=&20 . A$=.| 000025a0 41 24 29 0d 0e ec 1a e7 20 c2 41 24 2c 31 29 3d |A$)..... .A$,1)=| 000025b0 22 20 22 20 8c 20 41 24 3d c0 41 24 29 0d 0e f6 |" " . A$=.A$)...| 000025c0 0d 56 25 3d 30 3a 57 25 3d 31 0d 0f 00 17 e3 20 |.V%=0:W%=1..... | 000025d0 42 25 3d a9 28 41 24 29 20 b8 20 31 20 88 20 2d |B%=.(A$) . 1 . -| 000025e0 31 0d 0f 0a 13 54 25 3d 97 28 c1 41 24 2c 42 25 |1....T%=.(.A$,B%| 000025f0 2c 31 29 29 0d 0f 14 29 e7 20 54 25 3e 26 33 39 |,1))...). T%>&39| 00002600 20 8c 20 54 25 3d 28 54 25 2d 26 34 30 29 2b 39 | . T%=(T%-&40)+9| 00002610 20 8b 20 54 25 3d 54 25 20 80 20 26 46 0d 0f 1e | . T%=T% . &F...| 00002620 0f 56 25 3d 56 25 2b 54 25 2a 57 25 0d 0f 28 0c |.V%=V%+T%*W%..(.| 00002630 57 25 3d 57 25 3c 3c 34 0d 0f 32 05 ed 0d 0f 3c |W%=W%<<4..2....<| 00002640 07 3d 56 25 0d 0f 46 04 0d 0f 50 0e dd a4 68 70 |.=V%..F...P...hp| 00002650 67 4d 28 6e 25 29 0d 0f 5a 14 ea 20 41 24 2c 42 |gM(n%)..Z.. A$,B| 00002660 25 2c 56 25 2c 57 25 2c 54 25 0d 0f 64 1a 41 24 |%,V%,W%,T%..d.A$| 00002670 3d a4 73 67 65 74 28 53 50 6f 69 6e 74 4d 25 28 |=.sget(SPointM%(| 00002680 6e 25 29 29 0d 0f 6e 19 e7 20 97 28 41 24 29 3d |n%))..n.. .(A$)=| 00002690 26 32 30 20 8c 20 41 24 3d c2 41 24 29 0d 0f 78 |&20 . A$=.A$)..x| 000026a0 1a e7 20 c2 41 24 2c 31 29 3d 22 20 22 20 8c 20 |.. .A$,1)=" " . | 000026b0 41 24 3d c0 41 24 29 0d 0f 82 0d 56 25 3d 30 3a |A$=.A$)....V%=0:| 000026c0 57 25 3d 31 0d 0f 8c 17 e3 20 42 25 3d a9 28 41 |W%=1..... B%=.(A| 000026d0 24 29 20 b8 20 31 20 88 20 2d 31 0d 0f 96 13 54 |$) . 1 . -1....T| 000026e0 25 3d 97 28 c1 41 24 2c 42 25 2c 31 29 29 0d 0f |%=.(.A$,B%,1))..| 000026f0 a0 29 e7 20 54 25 3e 26 33 39 20 8c 20 54 25 3d |.). T%>&39 . T%=| 00002700 28 54 25 2d 26 34 30 29 2b 39 20 8b 20 54 25 3d |(T%-&40)+9 . T%=| 00002710 54 25 20 80 20 26 46 0d 0f aa 0f 56 25 3d 56 25 |T% . &F....V%=V%| 00002720 2b 54 25 2a 57 25 0d 0f b4 0c 57 25 3d 57 25 3c |+T%*W%....W%=W%<| 00002730 3c 34 0d 0f be 05 ed 0d 0f c8 07 3d 56 25 0d 0f |<4.........=V%..| 00002740 d2 04 0d 0f dc 12 dd 20 f2 5f 73 65 74 75 70 57 |....... ._setupW| 00002750 28 74 24 29 0d 0f e6 58 21 71 25 3d 77 61 72 6e |(t$)...X!q%=warn| 00002760 69 6e 67 57 25 3a 71 25 21 34 3d 32 30 30 3a 71 |ingW%:q%!4=200:q| 00002770 25 21 38 3d 32 30 30 3a 71 25 21 31 32 3d 32 30 |%!8=200:q%!12=20| 00002780 30 2b 58 51 25 3a 71 25 21 31 36 3d 32 30 30 2b |0+XQ%:q%!16=200+| 00002790 59 51 25 3a 71 25 21 32 30 3d 30 3a 71 25 21 32 |YQ%:q%!20=0:q%!2| 000027a0 34 3d 30 3a 71 25 21 32 38 3d 2d 31 0d 0f f0 11 |4=0:q%!28=-1....| 000027b0 24 54 65 78 74 57 61 72 6e 25 3d 74 24 0d 0f fa |$TextWarn%=t$...| 000027c0 15 54 65 78 74 57 61 72 6e 25 3f a9 28 74 24 29 |.TextWarn%?.(t$)| 000027d0 3d 30 0d 10 04 07 ef 20 37 0d 10 0e 0d 77 61 72 |=0..... 7....war| 000027e0 6e 4f 6e 25 3d b9 0d 10 18 1c c8 99 20 22 57 69 |nOn%=....... "Wi| 000027f0 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c |mp_OpenWindow",,| 00002800 71 25 0d 10 22 05 e1 0d 10 2c 04 0d 10 36 0f dd |q%.."....,...6..| 00002810 20 f2 65 72 72 6f 72 62 6f 78 0d 10 40 1c f4 20 | .errorbox..@.. | 00002820 53 59 53 20 22 57 69 6d 70 5f 44 72 61 67 42 6f |SYS "Wimp_DragBo| 00002830 78 22 2c 2c 2d 31 0d 10 4a 32 21 62 75 66 66 65 |x",,-1..J2!buffe| 00002840 72 73 25 3d 9f 3a 24 28 62 75 66 66 65 72 73 25 |rs%=.:$(buffers%| 00002850 2b 34 29 3d f6 24 2b 22 20 61 74 20 6c 69 6e 65 |+4)=.$+" at line| 00002860 20 22 2b c3 9e 2b bd 30 0d 10 54 2a c8 99 20 22 | "+..+.0..T*.. "| 00002870 57 69 6d 70 5f 52 65 70 6f 72 74 45 72 72 6f 72 |Wimp_ReportError| 00002880 22 2c 62 75 66 66 65 72 73 25 2c 31 2c 22 50 49 |",buffers%,1,"PI| 00002890 43 22 0d 10 5e 08 f2 64 69 65 0d 10 68 05 e1 0d |C"..^..die..h...| 000028a0 10 72 04 0d 10 7c 09 dd f2 64 69 65 0d 10 86 2a |.r...|...die...*| 000028b0 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f |.. "Wimp_CloseDo| 000028c0 77 6e 22 2c 74 61 73 6b 68 61 6e 64 25 2c 21 74 |wn",taskhand%,!t| 000028d0 61 73 6b 69 64 25 0d 10 90 05 e0 0d 10 9a 05 e1 |askid%..........| 000028e0 0d 10 a4 04 0d 10 ae 10 dd 20 f2 5f 4b 65 79 50 |......... ._KeyP| 000028f0 72 65 73 73 0d 10 b8 0e ea 20 41 25 2c 4b 25 2c |ress..... A%,K%,| 00002900 69 25 0d 10 c2 0b 69 25 3d 71 25 21 34 0d 10 cc |i%....i%=q%!4...| 00002910 0c 4b 25 3d 71 25 21 32 34 0d 10 d6 0d e7 20 4b |.K%=q%!24..... K| 00002920 25 3d 31 33 20 8c 0d 10 e0 0d c8 8e 20 71 25 21 |%=13 ....... q%!| 00002930 30 20 ca 0d 10 ea 36 c9 20 20 63 6f 6e 57 25 3a |0 ....6. conW%:| 00002940 20 e7 20 69 25 3e 33 31 20 80 20 69 25 3c 34 30 | . i%>31 . i%<40| 00002950 20 8c 20 53 74 61 63 6b 25 28 69 25 2d 33 32 29 | . Stack%(i%-32)| 00002960 3d a4 68 70 67 28 69 25 29 0d 10 f4 27 20 20 20 |=.hpg(i%)...' | 00002970 20 20 20 20 20 20 20 20 20 20 e7 20 69 25 3d 34 | . i%=4| 00002980 20 8c 20 57 72 65 67 25 3d a4 68 70 67 28 34 29 | . Wreg%=.hpg(4)| 00002990 0d 10 fe 22 20 20 20 20 20 20 20 20 20 20 20 20 |..." | 000029a0 20 e7 20 69 25 3e 33 39 20 80 20 69 25 3c 34 34 | . i%>39 . i%<44| 000029b0 20 8c 0d 11 08 27 20 20 20 20 20 20 20 20 20 20 | ....' | 000029c0 20 20 20 42 72 65 61 6b 25 28 69 25 2d 34 30 29 | Break%(i%-40)| 000029d0 3d a4 68 70 67 28 69 25 29 0d 11 12 3b 20 20 20 |=.hpg(i%)...; | 000029e0 20 20 20 20 20 20 20 20 20 20 e7 20 42 72 65 61 | . Brea| 000029f0 6b 25 28 69 25 2d 34 30 29 3e 26 33 46 46 20 8c |k%(i%-40)>&3FF .| 00002a00 20 f2 5f 50 75 74 50 72 61 6d 73 53 28 69 25 2c | ._PutPramsS(i%,| 00002a10 22 20 22 29 0d 11 1c 12 20 20 20 20 20 20 20 20 |" ").... | 00002a20 20 20 20 20 20 cd 0d 11 26 11 20 20 20 20 20 20 | ...&. | 00002a30 20 20 20 20 20 20 20 0d 11 30 4e 20 20 20 20 20 | ..0N | 00002a40 20 20 20 20 20 20 20 20 e7 20 69 25 3d 31 20 8c | . i%=1 .| 00002a50 20 41 25 3d a4 68 70 67 28 31 29 3a 52 65 67 25 | A%=.hpg(1):Reg%| 00002a60 28 32 29 3d 41 25 20 80 20 26 46 46 3a 48 69 50 |(2)=A% . &FF:HiP| 00002a70 43 25 3d 41 25 20 80 20 26 46 46 30 30 3a f2 66 |C%=A% . &FF00:.f| 00002a80 65 74 63 68 4e 0d 11 3a 32 20 20 20 20 20 20 20 |etchN..:2 | 00002a90 20 20 20 20 20 20 e7 20 69 25 3d 30 20 8c 20 f2 | . i%=0 . .| 00002aa0 5f 47 65 74 69 6e 4e 61 6d 65 3a 20 f2 5f 4c 6f |_GetinName: ._Lo| 00002ab0 61 64 28 66 6e 24 29 0d 11 44 1a c9 20 6d 6f 6e |ad(fn$)..D.. mon| 00002ac0 57 25 3a 20 20 41 25 3d a4 68 70 67 4d 28 69 25 |W%: A%=.hpgM(i%| 00002ad0 29 0d 11 4e 23 20 20 20 20 20 20 20 20 20 20 20 |)..N# | 00002ae0 20 20 e7 20 69 25 3e 32 35 20 80 20 69 25 3c 3e | . i%>25 . i%<>| 00002af0 32 37 20 8c 0d 11 58 35 20 20 20 20 20 20 20 20 |27 ...X5 | 00002b00 20 20 20 20 20 e7 20 41 25 3e 32 35 35 20 8c 20 | . A%>255 . | 00002b10 41 25 3d 41 25 20 80 20 26 46 46 3a f2 5f 50 50 |A%=A% . &FF:._PP| 00002b20 48 6d 28 69 25 2c 41 25 29 0d 11 62 22 20 20 20 |Hm(i%,A%)..b" | 00002b30 20 20 20 20 20 20 20 20 20 20 e7 20 69 25 3d 33 | . i%=3| 00002b40 30 20 84 20 69 25 3d 33 31 20 8c 0d 11 6c 38 20 |0 . i%=31 ...l8 | 00002b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 | . | 00002b60 69 25 3d 33 30 20 8c 20 f2 5f 75 70 49 4f 28 52 |i%=30 . ._upIO(R| 00002b70 65 67 25 28 26 38 35 29 2c 41 25 2c 31 39 2c 35 |eg%(&85),A%,19,5| 00002b80 2c 35 29 0d 11 76 38 20 20 20 20 20 20 20 20 20 |,5)..v8 | 00002b90 20 20 20 20 20 20 e7 20 69 25 3d 33 31 20 8c 20 | . i%=31 . | 00002ba0 f2 5f 75 70 49 4f 28 52 65 67 25 28 26 38 36 29 |._upIO(Reg%(&86)| 00002bb0 2c 41 25 2c 31 31 2c 38 2c 36 29 0d 11 80 22 20 |,A%,11,8,6)..." | 00002bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 | Re| 00002bd0 67 25 28 69 25 2b 31 30 33 29 3d 41 25 0d 11 8a |g%(i%+103)=A%...| 00002be0 14 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00002bf0 cc 0d 11 94 21 20 20 20 20 20 20 20 20 20 20 20 |....! | 00002c00 20 20 20 20 52 65 67 25 28 69 25 2d 32 35 29 3d | Reg%(i%-25)=| 00002c10 41 25 0d 11 9e 14 20 20 20 20 20 20 20 20 20 20 |A%.... | 00002c20 20 20 20 20 20 cd 0d 11 a8 12 20 20 20 20 20 20 | ..... | 00002c30 20 20 20 20 20 20 20 cd 0d 11 b2 27 20 20 20 20 | ....' | 00002c40 20 20 20 20 20 20 20 20 20 e7 20 69 25 3d 32 33 | . i%=23| 00002c50 20 8c 20 50 72 65 73 63 61 6c 65 25 3d 41 25 0d | . Prescale%=A%.| 00002c60 11 bc 29 20 20 20 20 20 20 20 20 20 20 20 20 20 |..) | 00002c70 e7 20 69 25 3d 32 34 20 8c 20 57 61 74 63 68 4c |. i%=24 . WatchL| 00002c80 69 6d 69 74 25 3d 41 25 0d 11 c6 2b 20 20 20 20 |imit%=A%...+ | 00002c90 20 20 20 20 20 20 20 20 20 e7 20 69 25 3d 32 35 | . i%=25| 00002ca0 20 8c 20 57 61 74 63 68 64 6f 67 54 69 6d 65 25 | . WatchdogTime%| 00002cb0 3d 41 25 0d 11 d0 31 20 20 20 20 20 20 20 20 20 |=A%...1 | 00002cc0 20 20 20 20 e7 20 69 25 3d 32 37 20 8c 20 45 74 | . i%=27 . Et| 00002cd0 69 6d 65 4f 75 74 25 3d 41 25 3a 45 74 69 6d 65 |imeOut%=A%:Etime| 00002ce0 25 3d 41 25 0d 11 da 58 20 20 20 20 20 20 20 20 |%=A%...X | 00002cf0 20 20 20 20 20 e7 20 69 25 3d 33 34 20 8c 20 52 | . i%=34 . R| 00002d00 65 67 25 28 38 29 3d 44 61 74 61 4d 65 6d 53 25 |eg%(8)=DataMemS%| 00002d10 3f 28 28 28 52 65 67 25 28 39 29 20 80 20 26 33 |?(((Reg%(9) . &3| 00002d20 46 29 3c 3c 31 29 2b 31 29 3a f2 5f 50 50 48 6d |F)<<1)+1):._PPHm| 00002d30 28 33 33 2c 52 65 67 25 28 38 29 29 0d 11 e4 05 |(33,Reg%(8))....| 00002d40 cb 0d 11 ee 05 cc 0d 11 f8 1a c8 99 22 57 69 6d |............"Wim| 00002d50 70 5f 50 72 6f 63 65 73 73 4b 65 79 22 2c 4b 25 |p_ProcessKey",K%| 00002d60 0d 12 02 05 cd 0d 12 0c 05 e1 0d 12 16 04 0d 12 |................| 00002d70 20 11 dd 20 a4 5f 73 70 61 74 68 28 6e 24 29 0d | .. ._spath(n$).| 00002d80 12 2a 0f c8 95 20 a7 6e 24 2c 22 2e 22 29 0d 12 |.*... .n$,".")..| 00002d90 34 13 6e 24 3d c2 6e 24 2c a9 28 6e 24 29 2d 31 |4.n$=.n$,.(n$)-1| 00002da0 29 0d 12 3e 05 ce 0d 12 48 1b e7 20 a9 28 6e 24 |)..>....H.. .(n$| 00002db0 29 3e 31 30 20 8c 20 6e 24 3d c2 6e 24 2c 31 30 |)>10 . n$=.n$,10| 00002dc0 29 0d 12 52 07 3d 6e 24 0d 12 5c 04 0d 12 66 0f |)..R.=n$..\...f.| 00002dd0 dd 20 f2 5f 47 65 74 4e 61 6d 65 0d 12 70 0e ea |. ._GetName..p..| 00002de0 20 54 25 2c 41 25 2c 46 24 0d 12 7a 10 46 24 3d | T%,A%,F$..z.F$=| 00002df0 22 22 3a 66 6e 24 3d 22 22 0d 12 84 16 71 25 21 |"":fn$=""....q%!| 00002e00 30 3d 73 61 76 65 57 25 3a 71 25 21 34 3d 31 0d |0=saveW%:q%!4=1.| 00002e10 12 8e 1e c8 99 20 22 57 69 6d 70 5f 47 65 74 49 |..... "Wimp_GetI| 00002e20 63 6f 6e 53 74 61 74 65 22 2c 2c 71 25 0d 12 98 |conState",,q%...| 00002e30 0c 54 25 3d 71 25 21 32 38 0d 12 a2 09 54 25 2d |.T%=q%!28....T%-| 00002e40 3d 31 0d 12 ac 05 f5 0d 12 b6 09 54 25 2b 3d 31 |=1.........T%+=1| 00002e50 0d 12 c0 10 46 24 3d 46 24 2b bd 28 3f 54 25 29 |....F$=F$+.(?T%)| 00002e60 0d 12 ca 0b fd 20 3f 54 25 3d 30 0d 12 d4 16 66 |..... ?T%=0....f| 00002e70 6e 24 3d c1 46 24 2c 31 2c a9 28 46 24 29 2d 31 |n$=.F$,1,.(F$)-1| 00002e80 29 0d 12 de 05 e1 0d 12 e8 04 0d 12 f2 11 dd 20 |).............. | 00002e90 f2 5f 47 65 74 69 6e 4e 61 6d 65 0d 12 fc 0e ea |._GetinName.....| 00002ea0 20 54 25 2c 41 25 2c 46 24 0d 13 06 10 46 24 3d | T%,A%,F$....F$=| 00002eb0 22 22 3a 66 6e 24 3d 22 22 0d 13 10 15 71 25 21 |"":fn$=""....q%!| 00002ec0 30 3d 63 6f 6e 57 25 3a 71 25 21 34 3d 30 0d 13 |0=conW%:q%!4=0..| 00002ed0 1a 1e c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 |.... "Wimp_GetIc| 00002ee0 6f 6e 53 74 61 74 65 22 2c 2c 71 25 0d 13 24 0c |onState",,q%..$.| 00002ef0 54 25 3d 71 25 21 32 38 0d 13 2e 09 54 25 2d 3d |T%=q%!28....T%-=| 00002f00 31 0d 13 38 05 f5 0d 13 42 09 54 25 2b 3d 31 0d |1..8....B.T%+=1.| 00002f10 13 4c 10 46 24 3d 46 24 2b bd 28 3f 54 25 29 0d |.L.F$=F$+.(?T%).| 00002f20 13 56 0b fd 20 3f 54 25 3d 30 0d 13 60 16 66 6e |.V.. ?T%=0..`.fn| 00002f30 24 3d c1 46 24 2c 31 2c a9 28 46 24 29 2d 31 29 |$=.F$,1,.(F$)-1)| 00002f40 0d 13 6a 05 e1 0d 13 74 04 0d 13 7e 10 dd 20 f2 |..j....t...~.. .| 00002f50 5f 47 65 74 50 72 61 6d 73 0d 13 88 08 ea 20 41 |_GetPrams..... A| 00002f60 24 0d 13 92 0e 71 25 21 30 3d 57 6e 25 21 30 0d |$....q%!0=Wn%!0.| 00002f70 13 9c 1d 49 6e 46 69 6c 65 24 3d a4 73 67 65 74 |...InFile$=.sget| 00002f80 28 53 50 6f 69 6e 74 25 28 30 29 29 0d 13 a6 05 |(SPoint%(0))....| 00002f90 e1 0d 13 b0 04 0d 13 ba 17 f4 20 56 65 72 69 66 |.......... Verif| 00002fa0 79 20 66 69 6c 65 20 6e 61 6d 65 73 0d 13 c4 0a |y file names....| 00002fb0 dd 20 a4 76 66 6e 0d 13 ce 08 ea 20 56 25 0d 13 |. .vfn..... V%..| 00002fc0 d8 08 56 25 3d 31 0d 13 e2 1c e7 20 a7 49 6e 46 |..V%=1..... .InF| 00002fd0 69 6c 65 24 2c 22 24 22 29 3d 30 20 8c 20 56 25 |ile$,"$")=0 . V%| 00002fe0 3d 30 0d 13 ec 07 3d 56 25 0d 13 f6 04 0d 14 00 |=0....=V%.......| 00002ff0 0a dd 20 a4 6f 70 66 0d 14 0a 08 ea 20 56 25 0d |.. .opf..... V%.| 00003000 14 14 08 56 25 3d 31 0d 14 1e 11 46 25 3d 8e 28 |...V%=1....F%=.(| 00003010 49 6e 46 69 6c 65 24 29 0d 14 28 0c e7 20 46 25 |InFile$)..(.. F%| 00003020 3d 30 20 8c 0d 14 32 08 56 25 3d 30 0d 14 3c 05 |=0 ...2.V%=0..<.| 00003030 cc 0d 14 46 1d f4 20 4c 6f 61 64 20 69 6e 20 74 |...F.. Load in t| 00003040 68 65 20 6f 62 6a 65 63 74 20 66 69 6c 65 0d 14 |he object file..| 00003050 50 08 d9 23 46 25 0d 14 5a 05 cd 0d 14 64 07 3d |P..#F%..Z....d.=| 00003060 56 25 0d 14 6e 04 0d 14 78 17 dd 20 f2 5f 50 75 |V%..n...x.. ._Pu| 00003070 74 50 72 61 6d 73 28 6e 25 2c 56 25 29 0d 14 82 |tPrams(n%,V%)...| 00003080 1d f2 5f 73 70 75 74 28 53 50 6f 69 6e 74 25 28 |.._sput(SPoint%(| 00003090 6e 25 29 2c c3 28 56 25 29 29 0d 14 8c 40 c8 99 |n%),.(V%))...@..| 000030a0 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 |"Wimp_ForceRedra| 000030b0 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 6e 25 29 |w",conW%,IX%(n%)| 000030c0 2c 49 59 25 28 6e 25 29 2c 49 58 31 25 28 6e 25 |,IY%(n%),IX1%(n%| 000030d0 29 2c 49 59 31 25 28 6e 25 29 0d 14 96 05 e1 0d |),IY1%(n%)......| 000030e0 14 a0 04 0d 14 aa 19 dd 20 f2 5f 50 75 74 50 72 |........ ._PutPr| 000030f0 61 6d 48 65 78 28 6e 25 2c 56 25 29 0d 14 b4 08 |amHex(n%,V%)....| 00003100 ea 20 48 24 0d 14 be 0d 48 24 3d c3 7e 28 56 25 |. H$....H$=.~(V%| 00003110 29 0d 14 c8 0e c8 95 20 a9 28 48 24 29 3c 34 0d |)...... .(H$)<4.| 00003120 14 d2 0d 48 24 3d 22 30 22 2b 48 24 0d 14 dc 05 |...H$="0"+H$....| 00003130 ce 0d 14 e6 1a f2 5f 73 70 75 74 28 53 50 6f 69 |......_sput(SPoi| 00003140 6e 74 25 28 6e 25 29 2c 48 24 29 0d 14 f0 40 c8 |nt%(n%),H$)...@.| 00003150 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 |."Wimp_ForceRedr| 00003160 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 6e 25 |aw",conW%,IX%(n%| 00003170 29 2c 49 59 25 28 6e 25 29 2c 49 58 31 25 28 6e |),IY%(n%),IX1%(n| 00003180 25 29 2c 49 59 31 25 28 6e 25 29 0d 14 fa 05 e1 |%),IY1%(n%).....| 00003190 0d 15 04 04 0d 15 0e 13 dd 20 f2 5f 50 50 48 6d |......... ._PPHm| 000031a0 28 6e 25 2c 56 25 29 0d 15 18 08 ea 20 48 24 0d |(n%,V%)..... H$.| 000031b0 15 22 0d 48 24 3d c3 7e 28 56 25 29 0d 15 2c 0e |.".H$=.~(V%)..,.| 000031c0 c8 95 20 a9 28 48 24 29 3c 32 0d 15 36 0d 48 24 |.. .(H$)<2..6.H$| 000031d0 3d 22 30 22 2b 48 24 0d 15 40 05 ce 0d 15 4a 1b |="0"+H$..@....J.| 000031e0 f2 5f 73 70 75 74 28 53 50 6f 69 6e 74 4d 25 28 |._sput(SPointM%(| 000031f0 6e 25 29 2c 48 24 29 0d 15 54 44 c8 99 22 57 69 |n%),H$)..TD.."Wi| 00003200 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 00003210 6d 6f 6e 57 25 2c 49 58 4d 25 28 6e 25 29 2c 49 |monW%,IXM%(n%),I| 00003220 59 4d 25 28 6e 25 29 2c 49 58 31 4d 25 28 6e 25 |YM%(n%),IX1M%(n%| 00003230 29 2c 49 59 31 4d 25 28 6e 25 29 0d 15 5e 05 e1 |),IY1M%(n%)..^..| 00003240 0d 15 68 04 0d 15 72 1a dd 20 f2 5f 50 75 74 50 |..h...r.. ._PutP| 00003250 72 61 6d 48 65 78 32 28 6e 25 2c 56 25 29 0d 15 |ramHex2(n%,V%)..| 00003260 7c 08 ea 20 48 24 0d 15 86 0d 48 24 3d c3 7e 28 ||.. H$....H$=.~(| 00003270 56 25 29 0d 15 90 0e c8 95 20 a9 28 48 24 29 3c |V%)...... .(H$)<| 00003280 32 0d 15 9a 0d 48 24 3d 22 30 22 2b 48 24 0d 15 |2....H$="0"+H$..| 00003290 a4 05 ce 0d 15 ae 1a f2 5f 73 70 75 74 28 53 50 |........_sput(SP| 000032a0 6f 69 6e 74 25 28 6e 25 29 2c 48 24 29 0d 15 b8 |oint%(n%),H$)...| 000032b0 40 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 |@.."Wimp_ForceRe| 000032c0 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 |draw",conW%,IX%(| 000032d0 6e 25 29 2c 49 59 25 28 6e 25 29 2c 49 58 31 25 |n%),IY%(n%),IX1%| 000032e0 28 6e 25 29 2c 49 59 31 25 28 6e 25 29 0d 15 c2 |(n%),IY1%(n%)...| 000032f0 05 e1 0d 15 cc 04 0d 15 d6 18 dd 20 f2 5f 50 75 |........... ._Pu| 00003300 74 50 72 61 6d 73 53 28 6e 25 2c 56 24 29 0d 15 |tPramsS(n%,V$)..| 00003310 e0 1a f2 5f 73 70 75 74 28 53 50 6f 69 6e 74 25 |..._sput(SPoint%| 00003320 28 6e 25 29 2c 56 24 29 0d 15 ea 40 c8 99 22 57 |(n%),V$)...@.."W| 00003330 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 |imp_ForceRedraw"| 00003340 2c 63 6f 6e 57 25 2c 49 58 25 28 6e 25 29 2c 49 |,conW%,IX%(n%),I| 00003350 59 25 28 6e 25 29 2c 49 58 31 25 28 6e 25 29 2c |Y%(n%),IX1%(n%),| 00003360 49 59 31 25 28 6e 25 29 0d 15 f4 05 e1 0d 15 fe |IY1%(n%)........| 00003370 04 0d 16 08 13 dd 20 f2 5f 73 70 75 74 28 78 25 |...... ._sput(x%| 00003380 2c 58 24 29 0d 16 12 08 ea 20 41 25 0d 16 1c 12 |,X$)..... A%....| 00003390 e3 20 41 25 3d 31 20 b8 20 a9 28 58 24 29 0d 16 |. A%=1 . .(X$)..| 000033a0 26 14 3f 78 25 3d 97 28 c1 58 24 2c 41 25 2c 31 |&.?x%=.(.X$,A%,1| 000033b0 29 29 0d 16 30 09 78 25 2b 3d 31 0d 16 3a 05 ed |))..0.x%+=1..:..| 000033c0 0d 16 44 09 3f 78 25 3d 30 0d 16 4e 05 e1 0d 16 |..D.?x%=0..N....| 000033d0 58 04 0d 16 62 11 dd 20 f2 5f 46 6e 61 6d 65 28 |X...b.. ._Fname(| 000033e0 6e 24 29 0d 16 6c 0e 49 6e 46 69 6c 65 24 3d 6e |n$)..l.InFile$=n| 000033f0 24 0d 16 76 15 f2 5f 50 75 74 50 72 61 6d 73 53 |$..v.._PutPramsS| 00003400 28 30 2c 6e 24 29 0d 16 80 05 e1 0d 16 8a 04 0d |(0,n$)..........| 00003410 16 94 0f dd 20 f2 77 69 70 65 50 72 6f 67 0d 16 |.... .wipeProg..| 00003420 9e 08 ea 20 41 25 0d 16 a8 15 e3 20 41 25 3d 30 |... A%..... A%=0| 00003430 20 b8 20 26 38 30 30 20 88 20 34 0d 16 b2 1a 50 | . &800 . 4....P| 00003440 72 6f 67 4d 65 6d 53 25 21 41 25 3d 26 46 46 33 |rogMemS%!A%=&FF3| 00003450 46 46 46 33 46 0d 16 bc 05 ed 0d 16 c6 05 e1 0d |FFF3F...........| 00003460 16 d0 04 0d 16 da 0f dd 20 f2 77 69 70 65 44 61 |........ .wipeDa| 00003470 74 61 0d 16 e4 08 ea 20 41 25 0d 16 ee 14 e3 20 |ta..... A%..... | 00003480 41 25 3d 30 20 b8 20 31 32 38 20 88 20 34 0d 16 |A%=0 . 128 . 4..| 00003490 f8 1a 44 61 74 61 4d 65 6d 53 25 21 41 25 3d 26 |..DataMemS%!A%=&| 000034a0 46 46 30 30 46 46 30 30 0d 17 02 05 ed 0d 17 0c |FF00FF00........| 000034b0 0f e3 20 41 25 3d 30 20 b8 20 31 35 0d 17 16 13 |.. A%=0 . 15....| 000034c0 43 6f 6e 66 69 67 4d 65 6d 25 3f 41 25 3d 30 0d |ConfigMem%?A%=0.| 000034d0 17 20 05 ed 0d 17 2a 05 e1 0d 17 34 04 0d 17 3e |. ....*....4...>| 000034e0 10 dd 20 f2 5f 4c 6f 61 64 28 46 24 29 0d 17 48 |.. ._Load(F$)..H| 000034f0 11 ea 20 41 25 2c 42 25 2c 43 25 2c 46 25 0d 17 |.. A%,B%,C%,F%..| 00003500 52 0c 46 25 3d 8e 28 46 24 29 0d 17 5c 0d e7 20 |R.F%=.(F$)..\.. | 00003510 46 25 3c 3e 30 20 8c 0d 17 66 25 e7 20 ac 28 4d |F%<>0 ...f%. .(M| 00003520 65 72 67 65 25 29 20 8c 20 f2 77 69 70 65 44 61 |erge%) . .wipeDa| 00003530 74 61 3a f2 77 69 70 65 50 72 6f 67 0d 17 70 0b |ta:.wipeProg..p.| 00003540 f2 72 65 61 64 48 46 0d 17 7a 08 d9 23 46 25 0d |.readHF..z..#F%.| 00003550 17 84 0d f2 50 55 50 72 65 73 65 74 0d 17 8e 0e |....PUPreset....| 00003560 f2 73 65 74 43 6f 6e 66 69 67 0d 17 98 0e 53 74 |.setConfig....St| 00003570 61 63 6b 25 28 29 3d 30 0d 17 a2 0c f2 75 64 53 |ack%()=0.....udS| 00003580 74 61 63 6b 0d 17 ac 0c 53 6c 65 65 70 25 3d a3 |tack....Sleep%=.| 00003590 0d 17 b6 05 cc 0d 17 c0 24 f2 5f 73 65 74 75 70 |........$._setup| 000035a0 57 28 22 43 61 6e 27 74 20 6f 70 65 6e 20 74 68 |W("Can't open th| 000035b0 69 73 20 66 69 6c 65 22 29 0d 17 ca 05 cd 0d 17 |is file").......| 000035c0 d4 05 e1 0d 17 de 04 0d 17 e8 0d dd 20 f2 72 65 |............ .re| 000035d0 61 64 48 46 0d 17 f2 25 ea 20 50 25 2c 42 61 73 |adHF...%. P%,Bas| 000035e0 65 25 2c 42 25 2c 43 25 2c 43 42 25 2c 4c 69 6d |e%,B%,C%,CB%,Lim| 000035f0 69 74 25 2c 4c 69 6e 65 25 0d 17 fc 0b 4c 69 6e |it%,Line%....Lin| 00003600 65 25 3d 30 0d 18 06 05 f5 0d 18 10 05 f5 0d 18 |e%=0............| 00003610 1a 3e e7 20 ac 28 c5 23 46 25 29 20 8c 20 42 25 |.>. .(.#F%) . B%| 00003620 3d 9a 23 46 25 20 8b 20 f2 5f 73 65 74 75 70 57 |=.#F% . ._setupW| 00003630 28 22 55 6e 65 78 70 65 63 74 65 64 20 65 6e 64 |("Unexpected end| 00003640 20 6f 66 20 66 69 6c 65 22 29 3a e1 0d 18 24 0f | of file"):...$.| 00003650 fd 20 bd 28 42 25 29 3d 22 3a 22 0d 18 2e 15 43 |. .(B%)=":"....C| 00003660 68 65 63 6b 25 3d 30 3a 4c 69 6e 65 25 2b 3d 31 |heck%=0:Line%+=1| 00003670 0d 18 38 0d 4c 25 3d a4 72 62 3e 3e 31 0d 18 42 |..8.L%=.rb>>1..B| 00003680 18 50 25 3d 28 a4 72 62 3c 3c 38 20 84 20 a4 72 |.P%=(.rb<<8 . .r| 00003690 62 29 3e 3e 31 0d 18 4c 13 42 61 73 65 25 3d 50 |b)>>1..L.Base%=P| 000036a0 72 6f 67 4d 65 6d 53 25 0d 18 56 27 e7 20 50 25 |rogMemS%..V'. P%| 000036b0 3e 26 33 46 46 20 80 20 50 25 3c 26 32 30 30 30 |>&3FF . P%<&2000| 000036c0 20 8c 20 50 25 3d 50 25 20 80 20 26 33 46 46 0d | . P%=P% . &3FF.| 000036d0 18 60 37 e7 20 50 25 3e 26 31 46 46 46 20 80 20 |.`7. P%>&1FFF . | 000036e0 50 25 3c 26 32 30 31 30 20 8c 20 42 61 73 65 25 |P%<&2010 . Base%| 000036f0 3d 43 6f 6e 66 69 67 4d 65 6d 25 3a 50 25 3d 50 |=ConfigMem%:P%=P| 00003700 25 20 80 20 26 46 0d 18 6a 2c e7 20 50 25 3e 26 |% . &F..j,. P%>&| 00003710 32 30 46 46 20 8c 20 42 61 73 65 25 3d 44 61 74 |20FF . Base%=Dat| 00003720 61 4d 65 6d 53 25 3a 50 25 3d 50 25 20 80 20 26 |aMemS%:P%=P% . &| 00003730 33 46 0d 18 74 0a 42 25 3d a4 72 62 0d 18 7e 0e |3F..t.B%=.rb..~.| 00003740 e7 20 42 25 3d 31 20 8c 20 e1 0d 18 88 08 41 25 |. B%=1 . .....A%| 00003750 3d 30 0d 18 92 0f e3 20 42 25 3d 31 20 b8 20 4c |=0..... B%=1 . L| 00003760 25 0d 18 9c 1c 42 61 73 65 25 3f 28 41 25 2b 31 |%....Base%?(A%+1| 00003770 2b 28 50 25 3c 3c 31 29 29 3d a4 72 62 0d 18 a6 |+(P%<<1))=.rb...| 00003780 1a 42 61 73 65 25 3f 28 41 25 2b 28 50 25 3c 3c |.Base%?(A%+(P%<<| 00003790 31 29 29 3d a4 72 62 0d 18 b0 09 41 25 2b 3d 32 |1))=.rb....A%+=2| 000037a0 0d 18 ba 05 ed 0d 18 c4 1a 43 25 3d 28 ac 28 43 |.........C%=(.(C| 000037b0 68 65 63 6b 25 29 2b 31 29 20 80 20 26 46 46 0d |heck%)+1) . &FF.| 000037c0 18 ce 0b 43 42 25 3d a4 72 62 0d 18 d8 3c e7 20 |...CB%=.rb...<. | 000037d0 43 42 25 3c 3e 43 25 20 8c 20 f2 5f 73 65 74 75 |CB%<>C% . ._setu| 000037e0 70 57 28 22 43 68 65 63 6b 20 73 75 6d 20 65 72 |pW("Check sum er| 000037f0 72 6f 72 20 6c 69 6e 65 20 22 2b c3 28 4c 69 6e |ror line "+.(Lin| 00003800 65 25 29 29 3a e1 0d 18 e2 07 fd 20 a3 0d 18 ec |e%)):...... ....| 00003810 05 e1 0d 18 f6 04 0d 19 00 09 dd 20 a4 72 62 0d |........... .rb.| 00003820 19 0a 0e ea 20 42 25 2c 43 25 2c 44 25 0d 19 14 |.... B%,C%,D%...| 00003830 23 e7 20 ac 28 c5 23 46 25 29 20 8c 20 42 25 3d |#. .(.#F%) . B%=| 00003840 9a 23 46 25 20 8b 20 42 25 3d 97 28 22 46 22 29 |.#F% . B%=.("F")| 00003850 0d 19 1e 23 e7 20 ac 28 c5 23 46 25 29 20 8c 20 |...#. .(.#F%) . | 00003860 43 25 3d 9a 23 46 25 20 8b 20 43 25 3d 97 28 22 |C%=.#F% . C%=.("| 00003870 46 22 29 0d 19 28 11 44 25 3d a4 74 68 28 42 25 |F")..(.D%=.th(B%| 00003880 2c 43 25 29 0d 19 32 0e 43 68 65 63 6b 25 2b 3d |,C%)..2.Check%+=| 00003890 44 25 0d 19 3c 07 3d 44 25 0d 19 46 04 0d 19 50 |D%..<.=D%..F...P| 000038a0 2e f4 20 43 6f 6e 76 65 72 74 20 74 77 6f 20 64 |.. Convert two d| 000038b0 69 67 69 74 20 68 65 78 20 74 65 78 74 20 69 6e |igit hex text in| 000038c0 74 6f 20 61 20 6e 75 6d 62 65 72 0d 19 5a 10 dd |to a number..Z..| 000038d0 20 a4 74 68 28 4d 25 2c 4b 25 29 0d 19 64 17 3d | .th(M%,K%)..d.=| 000038e0 a4 68 28 4d 25 29 3c 3c 34 20 84 20 a4 68 28 4b |.h(M%)<<4 . .h(K| 000038f0 25 29 0d 19 6e 04 0d 19 78 0c dd 20 a4 68 28 6e |%)..n...x.. .h(n| 00003900 25 29 0d 19 82 2c e7 20 6e 25 3e 26 33 39 20 8c |%)...,. n%>&39 .| 00003910 20 6e 25 3d 39 20 2b 20 28 6e 25 20 80 20 26 46 | n%=9 + (n% . &F| 00003920 29 20 8b 20 6e 25 3d 6e 25 20 80 20 26 46 0d 19 |) . n%=n% . &F..| 00003930 8c 07 3d 6e 25 0d 19 96 04 0d 19 a0 0f dd 20 a4 |..=n%......... .| 00003940 69 6e 63 52 28 6e 25 29 0d 19 aa 0f 52 65 67 25 |incR(n%)....Reg%| 00003950 28 6e 25 29 2b 3d 31 0d 19 b4 2a e7 20 52 65 67 |(n%)+=1...*. Reg| 00003960 25 28 6e 25 29 3e 32 35 35 20 8c 20 52 65 67 25 |%(n%)>255 . Reg%| 00003970 28 6e 25 29 3d 52 65 67 25 28 6e 25 29 2d 32 35 |(n%)=Reg%(n%)-25| 00003980 36 0d 19 be 0d 3d 52 65 67 25 28 6e 25 29 0d 19 |6....=Reg%(n%)..| 00003990 c8 04 0d 19 d2 0e dd 20 f2 75 64 53 74 61 63 6b |....... .udStack| 000039a0 0d 19 dc 08 ea 20 41 25 0d 19 e6 10 e3 20 41 25 |..... A%..... A%| 000039b0 3d 33 32 20 b8 20 33 39 0d 19 f0 22 f2 5f 50 75 |=32 . 39..."._Pu| 000039c0 74 50 72 61 6d 48 65 78 28 41 25 2c 53 74 61 63 |tPramHex(A%,Stac| 000039d0 6b 25 28 41 25 2d 33 32 29 29 0d 19 fa 05 ed 0d |k%(A%-32))......| 000039e0 1a 04 05 e1 0d 1a 0e 04 0d 1a 18 41 f4 20 2d 2d |...........A. --| 000039f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00003a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 1a 22 0c dd 20 f2 |---------..".. .| 00003a30 5f 49 4e 49 54 0d 1a 2c 0f e3 20 41 25 3d 31 20 |_INIT..,.. A%=1 | 00003a40 b8 20 33 37 0d 1a 36 20 20 20 f3 20 4d 6e 65 24 |. 37..6 . Mne$| 00003a50 28 41 25 29 2c 4f 70 25 28 41 25 29 2c 49 74 25 |(A%),Op%(A%),It%| 00003a60 28 41 25 29 0d 1a 40 05 ed 0d 1a 4a 37 52 65 67 |(A%)..@....J7Reg| 00003a70 25 28 35 29 3d 26 31 46 3a 52 65 67 25 28 36 29 |%(5)=&1F:Reg%(6)| 00003a80 3d 26 46 46 3a 52 65 67 25 28 26 38 35 29 3d 26 |=&FF:Reg%(&85)=&| 00003a90 31 46 3a 52 65 67 25 28 26 38 36 29 3d 26 46 46 |1F:Reg%(&86)=&FF| 00003aa0 0d 1a 54 3f 42 72 65 61 6b 25 28 30 29 3d 26 34 |..T?Break%(0)=&4| 00003ab0 30 30 3a 42 72 65 61 6b 25 28 31 29 3d 26 34 30 |00:Break%(1)=&40| 00003ac0 30 3a 42 72 65 61 6b 25 28 32 29 3d 26 34 30 30 |0:Break%(2)=&400| 00003ad0 3a 42 72 65 61 6b 25 28 33 29 3d 26 34 30 30 0d |:Break%(3)=&400.| 00003ae0 1a 5e 05 e1 0d 1a 68 04 0d 1a 72 1c f4 20 4d 6e |.^....h...r.. Mn| 00003af0 65 6d 6f 6e 69 63 2c 20 6f 70 63 6f 64 65 2c 20 |emonic, opcode, | 00003b00 74 79 70 65 0d 1a 7c 3c dc 20 61 64 64 77 66 2c |type..|<. addwf,| 00003b10 26 37 30 30 2c 31 2c 20 61 6e 64 77 66 2c 20 26 |&700,1, andwf, &| 00003b20 35 30 30 2c 31 2c 20 20 63 6c 72 66 2c 26 31 38 |500,1, clrf,&18| 00003b30 30 2c 34 2c 20 63 6c 72 77 2c 26 31 30 30 2c 30 |0,4, clrw,&100,0| 00003b40 0d 1a 86 3a dc 20 63 6f 6d 66 2c 26 39 30 30 2c |...:. comf,&900,| 00003b50 31 2c 20 64 65 63 66 2c 26 33 30 30 2c 31 2c 20 |1, decf,&300,1, | 00003b60 64 65 63 66 73 7a 2c 26 42 30 30 2c 31 2c 20 69 |decfsz,&B00,1, i| 00003b70 6e 63 66 2c 26 41 30 30 2c 31 0d 1a 90 3c dc 20 |ncf,&A00,1...<. | 00003b80 69 6e 63 66 73 7a 2c 26 46 30 30 2c 31 2c 20 69 |incfsz,&F00,1, i| 00003b90 6f 72 77 66 2c 26 34 30 30 2c 31 2c 20 6d 6f 76 |orwf,&400,1, mov| 00003ba0 66 2c 26 38 30 30 2c 31 2c 20 6d 6f 76 77 66 2c |f,&800,1, movwf,| 00003bb0 26 30 38 30 2c 34 0d 1a 9a 33 dc 20 6e 6f 70 2c |&080,4...3. nop,| 00003bc0 30 2c 30 2c 20 72 6c 66 2c 26 44 30 30 2c 31 2c |0,0, rlf,&D00,1,| 00003bd0 20 72 72 66 2c 26 43 30 30 2c 31 2c 20 73 75 62 | rrf,&C00,1, sub| 00003be0 77 66 2c 26 32 30 30 2c 31 0d 1a a4 3a dc 20 73 |wf,&200,1...:. s| 00003bf0 77 61 70 66 2c 26 45 30 30 2c 31 2c 20 78 6f 72 |wapf,&E00,1, xor| 00003c00 77 66 2c 26 36 30 30 2c 31 2c 20 62 63 66 2c 26 |wf,&600,1, bcf,&| 00003c10 31 30 30 30 2c 32 2c 20 62 73 66 2c 26 31 34 30 |1000,2, bsf,&140| 00003c20 30 2c 32 0d 1a ae 4e dc 20 62 74 66 73 63 2c 26 |0,2...N. btfsc,&| 00003c30 31 38 30 30 2c 32 2c 20 62 74 66 73 73 2c 26 31 |1800,2, btfss,&1| 00003c40 43 30 30 2c 32 2c 20 61 64 64 6c 77 2c 26 33 45 |C00,2, addlw,&3E| 00003c50 30 30 2c 33 2c 20 61 6e 64 6c 77 2c 26 33 39 30 |00,3, andlw,&390| 00003c60 30 2c 33 2c 20 63 61 6c 6c 2c 26 32 30 30 30 2c |0,3, call,&2000,| 00003c70 33 0d 1a b8 3e dc 20 63 6c 72 77 64 74 2c 26 36 |3...>. clrwdt,&6| 00003c80 34 2c 30 2c 20 67 6f 74 6f 2c 26 32 38 30 30 2c |4,0, goto,&2800,| 00003c90 35 2c 20 69 6f 72 6c 77 2c 26 33 38 30 30 2c 33 |5, iorlw,&3800,3| 00003ca0 2c 20 6d 6f 76 6c 77 2c 26 33 30 30 30 2c 33 0d |, movlw,&3000,3.| 00003cb0 1a c2 3c dc 20 72 65 74 66 69 65 2c 20 26 39 2c |..<. retfie, &9,| 00003cc0 30 2c 20 72 65 74 6c 77 2c 26 33 34 30 30 2c 33 |0, retlw,&3400,3| 00003cd0 2c 20 72 65 74 75 72 6e 2c 26 38 2c 30 2c 20 73 |, return,&8,0, s| 00003ce0 6c 65 65 70 2c 26 30 36 33 2c 30 0d 1a cc 22 dc |leep,&063,0...".| 00003cf0 20 73 75 62 6c 77 2c 26 33 43 30 30 2c 33 2c 20 | sublw,&3C00,3, | 00003d00 78 6f 72 6c 77 2c 26 33 41 30 30 2c 33 0d 1a d6 |xorlw,&3A00,3...| 00003d10 1f f4 20 49 6e 73 74 72 75 63 74 69 6f 6e 73 20 |.. Instructions | 00003d20 74 6f 20 70 68 61 73 65 20 6f 75 74 0d 1a e0 20 |to phase out... | 00003d30 dc 20 74 72 69 73 2c 26 36 30 2c 34 2c 20 20 6f |. tris,&60,4, o| 00003d40 70 74 69 6f 6e 2c 26 30 36 32 2c 30 0d 1a ea 04 |ption,&062,0....| 00003d50 0d 1a f4 04 0d 1a fe 41 f4 20 2d 2d 2d 2d 2d 2d |.......A. ------| 00003d60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00003d90 2d 2d 2d 2d 2d 0d 1b 08 0f dd 20 f2 50 55 50 72 |-----..... .PUPr| 00003da0 65 73 65 74 0d 1b 12 08 ea 20 41 25 0d 1b 1c 45 |eset..... A%...E| 00003db0 f4 20 50 52 4f 43 5f 75 70 49 4f 28 52 65 67 25 |. PROC_upIO(Reg%| 00003dc0 28 26 38 35 29 2c 26 31 46 2c 31 39 2c 35 2c 35 |(&85),&1F,19,5,5| 00003dd0 29 3a 50 52 4f 43 5f 75 70 49 4f 28 52 65 67 25 |):PROC_upIO(Reg%| 00003de0 28 26 38 36 29 2c 26 46 46 2c 31 31 2c 38 2c 36 |(&86),&FF,11,8,6| 00003df0 29 0d 1b 26 04 0d 1b 30 3b 52 65 67 25 28 26 38 |)..&...0;Reg%(&8| 00003e00 35 29 3d 26 31 46 3a 52 65 67 25 28 26 38 36 29 |5)=&1F:Reg%(&86)| 00003e10 3d 26 46 46 3a 52 65 67 25 28 33 29 3d 28 52 65 |=&FF:Reg%(3)=(Re| 00003e20 67 25 28 33 29 20 80 20 37 29 20 84 20 26 31 38 |g%(3) . 7) . &18| 00003e30 0d 1b 3a 3e 52 65 67 25 28 26 38 31 29 3d 26 46 |..:>Reg%(&81)=&F| 00003e40 46 3a 52 65 67 25 28 26 38 38 29 3d 30 3a 52 65 |F:Reg%(&88)=0:Re| 00003e50 67 25 28 26 41 29 3d 30 3a 52 65 67 25 28 26 42 |g%(&A)=0:Reg%(&B| 00003e60 29 3d 52 65 67 25 28 26 42 29 20 80 20 31 0d 1b |)=Reg%(&B) . 1..| 00003e70 44 2d f2 5f 75 70 49 4f 28 30 2c 26 31 46 2c 31 |D-._upIO(0,&1F,1| 00003e80 39 2c 35 2c 35 29 3a f2 5f 75 70 49 4f 28 30 2c |9,5,5):._upIO(0,| 00003e90 26 46 46 2c 31 31 2c 38 2c 36 29 0d 1b 4e 04 0d |&FF,11,8,6)..N..| 00003ea0 1b 58 22 f2 75 70 53 74 61 74 28 52 65 67 25 28 |.X".upStat(Reg%(| 00003eb0 33 29 20 82 20 26 46 46 2c 52 65 67 25 28 33 29 |3) . &FF,Reg%(3)| 00003ec0 29 0d 1b 62 27 f2 75 70 42 28 52 65 67 25 28 26 |)..b'.upB(Reg%(&| 00003ed0 38 31 29 20 82 20 26 46 46 2c 52 65 67 25 28 26 |81) . &FF,Reg%(&| 00003ee0 38 31 29 2c 30 2c 38 29 0d 1b 6c 25 f2 75 70 42 |81),0,8)..l%.upB| 00003ef0 28 52 65 67 25 28 26 42 29 20 82 20 26 46 46 2c |(Reg%(&B) . &FF,| 00003f00 52 65 67 25 28 26 42 29 2c 39 2c 38 29 0d 1b 76 |Reg%(&B),9,8)..v| 00003f10 28 f2 75 70 42 28 52 65 67 25 28 26 38 38 29 20 |(.upB(Reg%(&88) | 00003f20 82 20 26 46 46 2c 52 65 67 25 28 26 38 38 29 2c |. &FF,Reg%(&88),| 00003f30 31 38 2c 35 29 0d 1b 80 13 57 61 74 63 68 64 6f |18,5)....Watchdo| 00003f40 67 54 69 6d 65 25 3d 30 0d 1b 8a 33 f2 5f 50 50 |gTime%=0...3._PP| 00003f50 48 6d 28 32 35 2c 57 61 74 63 68 64 6f 67 54 69 |Hm(25,WatchdogTi| 00003f60 6d 65 25 29 3a f2 5f 50 50 48 6d 28 32 34 2c 57 |me%):._PPHm(24,W| 00003f70 61 74 63 68 4c 69 6d 69 74 25 29 0d 1b 94 10 e3 |atchLimit%).....| 00003f80 20 41 25 3d 32 36 20 b8 20 37 32 0d 1b 9e 41 e7 | A%=26 . 72...A.| 00003f90 20 ac 28 41 25 3d 32 38 20 84 20 41 25 3d 33 32 | .(A%=28 . A%=32| 00003fa0 20 84 20 41 25 3d 33 35 20 84 20 41 25 3d 33 36 | . A%=35 . A%=36| 00003fb0 29 20 8c 20 f2 5f 73 70 75 74 28 53 50 6f 69 6e |) . ._sput(SPoin| 00003fc0 74 4d 25 28 41 25 29 2c 22 20 22 29 0d 1b a8 44 |tM%(A%)," ")...D| 00003fd0 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00003fe0 72 61 77 22 2c 6d 6f 6e 57 25 2c 49 58 4d 25 28 |raw",monW%,IXM%(| 00003ff0 41 25 29 2c 49 59 4d 25 28 41 25 29 2c 49 58 31 |A%),IYM%(A%),IX1| 00004000 4d 25 28 41 25 29 2c 49 59 31 4d 25 28 41 25 29 |M%(A%),IY1M%(A%)| 00004010 0d 1b b2 05 ed 0d 1b bc 0e e3 20 41 25 3d 30 20 |.......... A%=0 | 00004020 b8 20 33 0d 1b c6 13 42 72 65 61 6b 25 28 41 25 |. 3....Break%(A%| 00004030 29 3d 26 34 30 30 0d 1b d0 1a f2 5f 50 75 74 50 |)=&400....._PutP| 00004040 72 61 6d 73 53 28 41 25 2b 34 30 2c 22 20 22 29 |ramsS(A%+40," ")| 00004050 0d 1b da 05 ed 0d 1b e4 0f f4 20 50 52 4f 43 72 |.......... PROCr| 00004060 65 73 65 74 0d 1b ee 3b 52 65 67 25 28 32 29 3d |eset...;Reg%(2)=| 00004070 30 3a 48 69 50 43 25 3d 30 3a f2 5f 50 75 74 50 |0:HiPC%=0:._PutP| 00004080 72 61 6d 48 65 78 28 31 2c 52 65 67 25 28 32 29 |ramHex(1,Reg%(2)| 00004090 2b 48 69 50 43 25 29 3a f2 66 65 74 63 68 4e 0d |+HiPC%):.fetchN.| 000040a0 1b f8 3a 74 25 3d 28 52 65 67 25 28 33 29 20 80 |..:t%=(Reg%(3) .| 000040b0 20 26 37 29 20 84 20 26 31 38 3a f2 75 70 53 74 | &7) . &18:.upSt| 000040c0 61 74 28 52 65 67 25 28 33 29 2c 74 25 29 3a 52 |at(Reg%(3),t%):R| 000040d0 65 67 25 28 33 29 3d 74 25 0d 1c 02 23 53 6c 65 |eg%(3)=t%...#Sle| 000040e0 65 70 25 3d a3 3a 24 53 50 6f 69 6e 74 25 28 39 |ep%=.:$SPoint%(9| 000040f0 29 3d 22 65 6d 6c 65 64 6f 66 66 22 0d 1c 0c 3c |)="emledoff"...<| 00004100 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00004110 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 39 |raw",conW%,IX%(9| 00004120 29 2c 49 59 25 28 39 29 2c 49 58 31 25 28 39 29 |),IY%(9),IX1%(9)| 00004130 2c 49 59 31 25 28 39 29 0d 1c 16 05 e1 0d 1c 20 |,IY1%(9)....... | 00004140 04 0d 1c 2a 0c dd 20 f2 72 65 73 65 74 0d 1c 34 |...*.. .reset..4| 00004150 08 ea 20 74 25 0d 1c 3e 3b 52 65 67 25 28 32 29 |.. t%..>;Reg%(2)| 00004160 3d 30 3a 48 69 50 43 25 3d 30 3a f2 5f 50 75 74 |=0:HiPC%=0:._Put| 00004170 50 72 61 6d 48 65 78 28 31 2c 52 65 67 25 28 32 |PramHex(1,Reg%(2| 00004180 29 2b 48 69 50 43 25 29 3a f2 66 65 74 63 68 4e |)+HiPC%):.fetchN| 00004190 0d 1c 48 33 74 25 3d 52 65 67 25 28 33 29 3a 52 |..H3t%=Reg%(3):R| 000041a0 65 67 25 28 33 29 3d 74 25 20 80 20 26 31 46 3a |eg%(3)=t% . &1F:| 000041b0 f2 75 70 53 74 61 74 28 74 25 2c 52 65 67 25 28 |.upStat(t%,Reg%(| 000041c0 33 29 29 0d 1c 52 3a 74 25 3d 52 65 67 25 28 26 |3))..R:t%=Reg%(&| 000041d0 38 35 29 3a 52 65 67 25 28 26 38 35 29 3d 26 31 |85):Reg%(&85)=&1| 000041e0 46 3a f2 5f 75 70 49 4f 28 74 25 2c 52 65 67 25 |F:._upIO(t%,Reg%| 000041f0 28 26 38 35 29 2c 31 39 2c 35 2c 35 29 0d 1c 5c |(&85),19,5,5)..\| 00004200 3a 74 25 3d 52 65 67 25 28 26 38 36 29 3a 52 65 |:t%=Reg%(&86):Re| 00004210 67 25 28 26 38 36 29 3d 26 46 46 3a f2 5f 75 70 |g%(&86)=&FF:._up| 00004220 49 4f 28 74 25 2c 52 65 67 25 28 26 38 36 29 2c |IO(t%,Reg%(&86),| 00004230 31 31 2c 38 2c 36 29 0d 1c 66 35 74 25 3d 52 65 |11,8,6)..f5t%=Re| 00004240 67 25 28 26 38 31 29 3a 52 65 67 25 28 26 38 31 |g%(&81):Reg%(&81| 00004250 29 3d 26 46 46 3a f2 75 70 42 28 74 25 2c 52 65 |)=&FF:.upB(t%,Re| 00004260 67 25 28 26 38 31 29 2c 30 2c 38 29 0d 1c 70 04 |g%(&81),0,8)..p.| 00004270 0d 1c 7a 0e e7 20 53 6c 65 65 70 25 20 8c 0d 1c |..z.. Sleep% ...| 00004280 84 3a 74 25 3d 28 52 65 67 25 28 33 29 20 80 20 |.:t%=(Reg%(3) . | 00004290 26 37 29 20 84 20 26 31 30 3a f2 75 70 53 74 61 |&7) . &10:.upSta| 000042a0 74 28 52 65 67 25 28 33 29 2c 74 25 29 3a 52 65 |t(Reg%(3),t%):Re| 000042b0 67 25 28 33 29 3d 74 25 0d 1c 8e 23 53 6c 65 65 |g%(3)=t%...#Slee| 000042c0 70 25 3d a3 3a 24 53 50 6f 69 6e 74 25 28 39 29 |p%=.:$SPoint%(9)| 000042d0 3d 22 65 6d 6c 65 64 6f 66 66 22 0d 1c 98 3c c8 |="emledoff"...<.| 000042e0 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 |."Wimp_ForceRedr| 000042f0 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 39 29 |aw",conW%,IX%(9)| 00004300 2c 49 59 25 28 39 29 2c 49 58 31 25 28 39 29 2c |,IY%(9),IX1%(9),| 00004310 49 59 31 25 28 39 29 0d 1c a2 05 cd 0d 1c ac 05 |IY1%(9).........| 00004320 e1 0d 1c b6 04 0d 1c c0 1a f4 20 53 65 74 20 74 |.......... Set t| 00004330 68 65 20 77 61 74 63 68 64 6f 67 20 62 69 74 0d |he watchdog bit.| 00004340 1c ca 10 dd 20 f2 73 65 74 43 6f 6e 66 69 67 0d |.... .setConfig.| 00004350 1c d4 0b ea 20 41 25 2c 42 25 0d 1c de 1b 41 25 |.... A%,B%....A%| 00004360 3d 28 43 6f 6e 66 69 67 4d 65 6d 25 3f 31 35 29 |=(ConfigMem%?15)| 00004370 20 80 20 26 34 0d 1c e8 18 e7 20 41 25 3d 30 20 | . &4..... A%=0 | 00004380 8c 20 42 25 3d a3 20 8b 20 42 25 3d b9 0d 1c f2 |. B%=. . B%=....| 00004390 15 e7 20 42 25 3c 3e 57 61 74 63 68 64 6f 67 25 |.. B%<>Watchdog%| 000043a0 20 8c 0d 1c fc 10 57 61 74 63 68 64 6f 67 25 3d | .....Watchdog%=| 000043b0 42 25 0d 1d 06 2f e7 20 42 25 20 8c 20 24 53 50 |B%.../. B% . $SP| 000043c0 6f 69 6e 74 25 28 35 29 3d 22 79 65 73 22 20 8b |oint%(5)="yes" .| 000043d0 20 24 53 50 6f 69 6e 74 25 28 35 29 3d 22 6e 6f | $SPoint%(5)="no| 000043e0 22 0d 1d 10 3c c8 99 22 57 69 6d 70 5f 46 6f 72 |"...<.."Wimp_For| 000043f0 63 65 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c |ceRedraw",conW%,| 00004400 49 58 25 28 35 29 2c 49 59 25 28 35 29 2c 49 58 |IX%(5),IY%(5),IX| 00004410 31 25 28 35 29 2c 49 59 31 25 28 35 29 0d 1d 1a |1%(5),IY1%(5)...| 00004420 05 cd 0d 1d 24 05 e1 0d 1d 2e 04 0d 1d 38 0c dd |....$........8..| 00004430 20 f2 63 79 63 6c 65 0d 1d 42 08 ea 20 50 25 0d | .cycle..B.. P%.| 00004440 1d 4c 21 e7 20 ac 28 53 6c 65 65 70 25 29 20 80 |.L!. .(Sleep%) .| 00004450 20 ac 28 53 6b 69 70 25 29 20 8c 20 f2 65 78 65 | .(Skip%) . .exe| 00004460 0d 1d 56 0a f2 69 6e 63 50 43 0d 1d 60 0b f2 63 |..V..incPC..`..c| 00004470 68 6b 49 6e 74 0d 1d 6a 19 e7 20 ac 28 53 6c 65 |hkInt..j.. .(Sle| 00004480 65 70 25 29 20 8c 20 f2 66 65 74 63 68 4e 0d 1d |ep%) . .fetchN..| 00004490 74 1c e7 20 ac 28 53 74 65 70 25 29 20 80 20 ac |t.. .(Step%) . .| 000044a0 28 53 6c 65 65 70 25 29 20 8c 0d 1d 7e 0e 50 25 |(Sleep%) ...~.P%| 000044b0 3d a4 68 70 67 28 31 29 0d 1d 88 0e e3 20 41 25 |=.hpg(1)..... A%| 000044c0 3d 30 20 b8 20 33 0d 1d 92 15 e7 20 42 72 65 61 |=0 . 3..... Brea| 000044d0 6b 25 28 41 25 29 3d 50 25 20 8c 0d 1d 9c 5a 53 |k%(A%)=P% ....ZS| 000044e0 74 65 70 25 3d b9 3a 24 53 50 6f 69 6e 74 25 28 |tep%=.:$SPoint%(| 000044f0 31 30 29 3d 22 47 6f 22 3a c8 99 22 57 69 6d 70 |10)="Go":.."Wimp| 00004500 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c 63 6f |_ForceRedraw",co| 00004510 6e 57 25 2c 49 58 25 28 31 30 29 2c 49 59 25 28 |nW%,IX%(10),IY%(| 00004520 31 30 29 2c 49 58 31 25 28 31 30 29 2c 49 59 31 |10),IX1%(10),IY1| 00004530 25 28 31 30 29 0d 1d a6 30 24 53 50 6f 69 6e 74 |%(10)...0$SPoint| 00004540 25 28 36 29 3d 22 72 61 64 69 6f 6f 6e 22 3a 24 |%(6)="radioon":$| 00004550 53 50 6f 69 6e 74 25 28 37 29 3d 22 72 61 64 69 |SPoint%(7)="radi| 00004560 6f 6f 66 66 22 0d 1d b0 3c c8 99 22 57 69 6d 70 |ooff"...<.."Wimp| 00004570 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c 63 6f |_ForceRedraw",co| 00004580 6e 57 25 2c 49 58 25 28 36 29 2c 49 59 25 28 36 |nW%,IX%(6),IY%(6| 00004590 29 2c 49 58 31 25 28 36 29 2c 49 59 31 25 28 36 |),IX1%(6),IY1%(6| 000045a0 29 0d 1d ba 3c c8 99 22 57 69 6d 70 5f 46 6f 72 |)...<.."Wimp_For| 000045b0 63 65 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c |ceRedraw",conW%,| 000045c0 49 58 25 28 37 29 2c 49 59 25 28 37 29 2c 49 58 |IX%(7),IY%(7),IX| 000045d0 31 25 28 37 29 2c 49 59 31 25 28 37 29 0d 1d c4 |1%(7),IY1%(7)...| 000045e0 05 cd 0d 1d ce 05 ed 0d 1d d8 05 cd 0d 1d e2 05 |................| 000045f0 e1 0d 1d ec 04 0d 1d f6 0d dd 20 f2 66 65 74 63 |.......... .fetc| 00004600 68 4e 0d 1e 00 08 ea 20 41 25 0d 1e 0a 1d 41 25 |hN..... A%....A%| 00004610 3d 28 52 65 67 25 28 32 29 2b 48 69 50 43 25 29 |=(Reg%(2)+HiPC%)| 00004620 20 80 20 26 33 46 46 0d 1e 14 3e 4f 50 63 6f 64 | . &3FF...>OPcod| 00004630 65 25 3d 28 28 50 72 6f 67 4d 65 6d 53 25 3f 28 |e%=((ProgMemS%?(| 00004640 41 25 3c 3c 31 29 29 3c 3c 38 29 20 2b 20 28 50 |A%<<1))<<8) + (P| 00004650 72 6f 67 4d 65 6d 53 25 3f 28 31 2b 28 41 25 3c |rogMemS%?(1+(A%<| 00004660 3c 31 29 29 29 0d 1e 1e 1b f2 5f 50 75 74 50 72 |<1)))....._PutPr| 00004670 61 6d 48 65 78 28 32 2c 4f 50 63 6f 64 65 25 29 |amHex(2,OPcode%)| 00004680 0d 1e 28 09 f2 64 69 73 73 0d 1e 32 05 e1 0d 1e |..(..diss..2....| 00004690 3c 04 0d 1e 46 0d dd 20 f2 63 68 6b 49 6e 74 0d |<...F.. .chkInt.| 000046a0 1e 50 0e ea 20 46 25 2c 74 25 2c 45 25 0d 1e 5a |.P.. F%,t%,E%..Z| 000046b0 04 0d 1e 64 0f 46 25 3d 52 65 67 25 28 26 42 29 |...d.F%=Reg%(&B)| 000046c0 0d 1e 6e 04 0d 1e 78 0f f4 20 43 68 65 63 6b 20 |..n...x.. Check | 000046d0 49 4e 54 0d 1e 82 2c e7 20 28 46 25 20 80 20 26 |INT...,. (F% . &| 000046e0 31 30 29 3c 3e 30 20 80 20 28 28 52 65 67 25 28 |10)<>0 . ((Reg%(| 000046f0 26 38 36 29 20 80 20 31 29 3c 3e 30 29 20 8c 0d |&86) . 1)<>0) ..| 00004700 1e 8c 1f 20 20 20 e7 20 52 42 30 25 20 3c 3e 28 |... . RB0% <>(| 00004710 52 65 67 25 28 36 29 20 80 20 31 29 20 8c 0d 1e |Reg%(6) . 1) ...| 00004720 96 1b 20 20 20 20 20 74 25 3d 52 65 67 25 28 26 |.. t%=Reg%(&| 00004730 38 31 29 20 80 20 26 34 30 0d 1e a0 62 20 20 20 |81) . &40...b | 00004740 20 20 e7 20 28 74 25 3d 30 20 80 20 52 42 30 25 | . (t%=0 . RB0%| 00004750 3d 31 29 20 84 20 28 74 25 3c 3e 30 20 80 20 52 |=1) . (t%<>0 . R| 00004760 42 30 25 3d 30 29 20 8c 20 74 25 3d 52 65 67 25 |B0%=0) . t%=Reg%| 00004770 28 26 42 29 20 84 20 26 32 3a f2 75 70 42 28 52 |(&B) . &2:.upB(R| 00004780 65 67 25 28 26 42 29 2c 74 25 2c 39 2c 38 29 3a |eg%(&B),t%,9,8):| 00004790 52 65 67 25 28 26 42 29 3d 74 25 0d 1e aa 08 20 |Reg%(&B)=t%.... | 000047a0 20 20 cd 0d 1e b4 05 cd 0d 1e be 05 20 0d 1e c8 | .......... ...| 000047b0 15 20 f4 20 43 68 65 63 6b 20 50 72 6f 72 74 20 |. . Check Prort | 000047c0 52 42 0d 1e d2 22 74 25 3d 28 52 65 67 25 28 36 |RB..."t%=(Reg%(6| 000047d0 29 20 80 20 26 46 30 29 20 80 20 52 65 67 25 28 |) . &F0) . Reg%(| 000047e0 26 38 36 29 0d 1e dc 25 20 e7 20 74 25 3c 3e 50 |&86)...% . t%<>P| 000047f0 42 63 68 61 6e 67 65 25 20 80 20 28 46 25 20 80 |Bchange% . (F% .| 00004800 20 26 38 29 3c 3e 30 20 8c 0d 1e e6 37 20 74 25 | &8)<>0 ....7 t%| 00004810 3d 52 65 67 25 28 26 42 29 20 84 20 26 31 3a f2 |=Reg%(&B) . &1:.| 00004820 75 70 42 28 52 65 67 25 28 26 42 29 2c 74 25 2c |upB(Reg%(&B),t%,| 00004830 39 2c 38 29 3a 52 65 67 25 28 26 42 29 3d 74 25 |9,8):Reg%(&B)=t%| 00004840 0d 1e f0 06 20 cd 0d 1e fa 05 20 0d 1f 04 1c 20 |.... ..... .... | 00004850 f4 20 45 70 72 6f 6d 20 77 72 69 74 65 20 69 6e |. Eprom write in| 00004860 74 65 72 72 75 70 74 0d 1f 0e 15 20 e7 20 45 74 |terrupt.... . Et| 00004870 69 6d 65 4f 75 74 25 3c 3e 30 20 8c 0d 1f 18 11 |imeOut%<>0 .....| 00004880 20 45 74 69 6d 65 4f 75 74 25 2d 3d 31 0d 1f 22 | EtimeOut%-=1.."| 00004890 19 20 f2 5f 50 50 48 6d 28 32 37 2c 45 74 69 6d |. ._PPHm(27,Etim| 000048a0 65 4f 75 74 25 29 0d 1f 2c 14 20 e7 20 45 74 69 |eOut%)..,. . Eti| 000048b0 6d 65 4f 75 74 25 3d 30 20 8c 0d 1f 36 38 20 20 |meOut%=0 ...68 | 000048c0 74 25 3d 52 65 67 25 28 26 42 29 20 84 20 26 38 |t%=Reg%(&B) . &8| 000048d0 3a f2 75 70 42 28 52 65 67 25 28 26 42 29 2c 74 |:.upB(Reg%(&B),t| 000048e0 25 2c 39 2c 38 29 3a 52 65 67 25 28 26 42 29 3d |%,9,8):Reg%(&B)=| 000048f0 74 25 0d 1f 40 3d 20 20 74 25 3d 52 65 67 25 28 |t%..@= t%=Reg%(| 00004900 26 38 38 29 20 80 20 26 31 44 3a f2 75 70 42 28 |&88) . &1D:.upB(| 00004910 52 65 67 25 28 26 38 38 29 2c 74 25 2c 31 38 2c |Reg%(&88),t%,18,| 00004920 35 29 3a 52 65 67 25 28 26 38 38 29 3d 74 25 0d |5):Reg%(&88)=t%.| 00004930 1f 4a 07 20 20 cd 0d 1f 54 06 20 cd 0d 1f 5e 05 |.J. ...T. ...^.| 00004940 20 0d 1f 68 28 f4 20 6e 6f 77 20 72 65 73 70 6f | ..h(. now respo| 00004950 6e 64 20 74 6f 20 61 6e 79 20 69 6e 74 65 72 72 |nd to any interr| 00004960 75 70 74 20 66 6c 61 67 73 0d 1f 72 18 45 25 3d |upt flags..r.E%=| 00004970 28 52 65 67 25 28 26 42 29 3e 3e 33 29 20 80 20 |(Reg%(&B)>>3) . | 00004980 37 0d 1f 7c 4a 20 e7 20 28 28 52 65 67 25 28 26 |7..|J . ((Reg%(&| 00004990 42 29 20 80 20 45 25 29 3c 3e 30 20 84 20 28 52 |B) . E%)<>0 . (R| 000049a0 65 67 25 28 26 38 38 29 20 80 20 26 31 30 29 3c |eg%(&88) . &10)<| 000049b0 3e 30 29 20 80 20 28 52 65 67 25 28 26 42 29 20 |>0) . (Reg%(&B) | 000049c0 80 20 26 38 30 29 3c 3e 30 20 8c 0d 1f 86 27 20 |. &80)<>0 ....' | 000049d0 20 20 e7 20 53 6c 65 65 70 25 20 80 20 28 28 52 | . Sleep% . ((R| 000049e0 65 67 25 28 26 42 29 20 80 20 32 29 3c 3e 30 29 |eg%(&B) . 2)<>0)| 000049f0 20 8c 0d 1f 90 1c 20 20 20 20 f4 20 57 61 6b 65 | ..... . Wake| 00004a00 20 75 70 20 66 72 6f 6d 20 73 6c 65 65 70 0d 1f | up from sleep..| 00004a10 9a 10 20 20 20 20 53 6c 65 65 70 25 3d a3 0d 1f |.. Sleep%=...| 00004a20 a4 20 20 20 20 20 74 25 3d 28 52 65 67 25 28 33 |. t%=(Reg%(3| 00004a30 29 20 80 20 26 46 37 29 20 84 20 26 31 30 0d 1f |) . &F7) . &10..| 00004a40 ae 1b 20 20 20 20 f2 75 70 53 74 61 74 28 52 65 |.. .upStat(Re| 00004a50 67 25 28 33 29 2c 74 25 29 0d 1f b8 12 20 20 20 |g%(3),t%).... | 00004a60 20 52 65 67 25 28 33 29 3d 74 25 0d 1f c2 1e 20 | Reg%(3)=t%.... | 00004a70 20 20 20 24 53 50 6f 69 6e 74 25 28 39 29 3d 22 | $SPoint%(9)="| 00004a80 65 6d 6c 65 64 6f 66 66 22 0d 1f cc 40 20 20 20 |emledoff"...@ | 00004a90 20 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 | .."Wimp_ForceRe| 00004aa0 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 |draw",conW%,IX%(| 00004ab0 39 29 2c 49 59 25 28 39 29 2c 49 58 31 25 28 39 |9),IY%(9),IX1%(9| 00004ac0 29 2c 49 59 31 25 28 39 29 0d 1f d6 08 20 20 20 |),IY1%(9).... | 00004ad0 cc 0d 1f e0 2d 20 20 20 f2 70 75 73 68 3a 53 74 |....- .push:St| 00004ae0 61 63 6b 25 28 30 29 3d 52 65 67 25 28 32 29 2b |ack%(0)=Reg%(2)+| 00004af0 48 69 50 43 25 3a f2 75 64 53 74 61 63 6b 0d 1f |HiPC%:.udStack..| 00004b00 ea 18 20 20 20 52 65 67 25 28 32 29 3d 34 3a 48 |.. Reg%(2)=4:H| 00004b10 69 50 43 25 3d 30 0d 1f f4 18 20 20 20 f2 5f 50 |iPC%=0.... ._P| 00004b20 75 74 50 72 61 6d 48 65 78 28 31 2c 34 29 0d 1f |utPramHex(1,4)..| 00004b30 fe 06 20 cd 0d 20 08 17 20 20 74 25 3d 52 65 67 |.. .. .. t%=Reg| 00004b40 25 28 26 42 29 20 80 20 26 37 46 0d 20 12 1b 20 |%(&B) . &7F. .. | 00004b50 20 f2 75 70 42 28 52 65 67 25 28 26 42 29 2c 74 | .upB(Reg%(&B),t| 00004b60 25 2c 39 2c 38 29 0d 20 1c 11 20 20 52 65 67 25 |%,9,8). .. Reg%| 00004b70 28 26 42 29 3d 74 25 0d 20 26 06 20 cd 0d 20 30 |(&B)=t%. &. .. 0| 00004b80 14 52 42 30 25 3d 52 65 67 25 28 36 29 20 80 20 |.RB0%=Reg%(6) . | 00004b90 31 0d 20 3a 29 50 42 63 68 61 6e 67 65 25 3d 28 |1. :)PBchange%=(| 00004ba0 52 65 67 25 28 36 29 20 80 20 26 46 30 29 20 80 |Reg%(6) . &F0) .| 00004bb0 20 52 65 67 25 28 26 38 36 29 0d 20 44 05 e1 0d | Reg%(&86). D...| 00004bc0 20 4e 04 0d 20 58 0f dd 20 f2 69 6e 63 54 69 6d | N.. X.. .incTim| 00004bd0 65 72 0d 20 62 0f ea 20 70 73 74 25 2c 70 73 69 |er. b.. pst%,psi| 00004be0 25 0d 20 6c 10 e7 20 53 6c 65 65 70 25 20 8c 20 |%. l.. Sleep% . | 00004bf0 e1 0d 20 76 0a 70 73 74 25 3d a3 0d 20 80 19 e7 |.. v.pst%=.. ...| 00004c00 20 28 52 65 67 25 28 26 38 31 29 20 80 20 38 29 | (Reg%(&81) . 8)| 00004c10 3d 30 20 8c 0d 20 8a 16 70 73 69 25 3d 52 65 67 |=0 .. ..psi%=Reg| 00004c20 25 28 26 38 31 29 20 80 20 37 0d 20 94 15 70 73 |%(&81) . 7. ..ps| 00004c30 69 25 3d 32 5e 28 70 73 69 25 20 82 20 37 29 0d |i%=2^(psi% . 7).| 00004c40 20 9e 13 50 72 65 73 63 61 6c 65 25 2b 3d 70 73 | ..Prescale%+=ps| 00004c50 69 25 0d 20 a8 28 e7 20 50 72 65 73 63 61 6c 65 |i%. .(. Prescale| 00004c60 25 3e 26 46 46 20 8c 20 50 72 65 73 63 61 6c 65 |%>&FF . Prescale| 00004c70 25 3d 30 3a 70 73 74 25 3d b9 0d 20 b2 18 f2 5f |%=0:pst%=.. ..._| 00004c80 50 50 48 6d 28 32 33 2c 50 72 65 73 63 61 6c 65 |PPHm(23,Prescale| 00004c90 25 29 0d 20 bc 05 cc 0d 20 c6 0a 70 73 74 25 3d |%). .... ..pst%=| 00004ca0 b9 0d 20 d0 05 cd 0d 20 da 04 0d 20 e4 0c e7 20 |.. .... ... ... | 00004cb0 70 73 74 25 20 8c 0d 20 ee 0e 52 65 67 25 28 31 |pst% .. ..Reg%(1| 00004cc0 29 2b 3d 31 0d 20 f8 13 e7 20 52 65 67 25 28 31 |)+=1. ... Reg%(1| 00004cd0 29 3e 26 46 46 20 8c 0d 21 02 0d 52 65 67 25 28 |)>&FF ..!..Reg%(| 00004ce0 31 29 3d 30 0d 21 0c 36 74 25 3d 52 65 67 25 28 |1)=0.!.6t%=Reg%(| 00004cf0 26 42 29 20 84 20 26 34 3a f2 75 70 42 28 52 65 |&B) . &4:.upB(Re| 00004d00 67 25 28 26 42 29 2c 74 25 2c 39 2c 38 29 3a 52 |g%(&B),t%,9,8):R| 00004d10 65 67 25 28 26 42 29 3d 74 25 0d 21 16 05 cd 0d |eg%(&B)=t%.!....| 00004d20 21 20 16 f2 5f 50 50 48 6d 28 32 36 2c 52 65 67 |! .._PPHm(26,Reg| 00004d30 25 28 31 29 29 0d 21 2a 05 cd 0d 21 34 05 e1 0d |%(1)).!*...!4...| 00004d40 21 3e 04 0d 21 48 0c dd 20 f2 69 6e 63 50 43 0d |!>..!H.. .incPC.| 00004d50 21 52 0b ea 20 41 25 2c 74 25 0d 21 5c 1b e7 20 |!R.. A%,t%.!\.. | 00004d60 28 52 65 67 25 28 26 38 31 29 20 80 20 26 32 30 |(Reg%(&81) . &20| 00004d70 29 3d 30 20 8c 0d 21 66 0d f2 69 6e 63 54 69 6d |)=0 ..!f..incTim| 00004d80 65 72 0d 21 70 05 cc 0d 21 7a 1d 20 e7 20 28 52 |er.!p...!z. . (R| 00004d90 65 67 25 28 26 42 29 20 80 20 26 41 30 29 3d 26 |eg%(&B) . &A0)=&| 00004da0 41 30 20 8c 0d 21 84 1f 20 20 e7 20 28 52 65 67 |A0 ..!.. . (Reg| 00004db0 25 28 35 29 20 80 20 26 31 30 29 3c 3e 52 41 34 |%(5) . &10)<>RA4| 00004dc0 25 20 8c 0d 21 8e 31 20 20 20 e7 20 52 41 34 25 |% ..!.1 . RA4%| 00004dd0 3d 30 20 80 20 28 52 65 67 25 28 26 38 31 29 20 |=0 . (Reg%(&81) | 00004de0 80 20 26 31 30 29 3d 30 20 8c 20 f2 69 6e 63 54 |. &10)=0 . .incT| 00004df0 69 6d 65 72 0d 21 98 33 20 20 20 e7 20 52 41 34 |imer.!.3 . RA4| 00004e00 25 3c 3e 30 20 80 20 28 52 65 67 25 28 26 38 31 |%<>0 . (Reg%(&81| 00004e10 29 20 80 20 26 31 30 29 3c 3e 30 20 8c 20 f2 69 |) . &10)<>0 . .i| 00004e20 6e 63 54 69 6d 65 72 0d 21 a2 07 20 20 cd 0d 21 |ncTimer.!.. ..!| 00004e30 ac 06 20 cd 0d 21 b6 05 cd 0d 21 c0 04 0d 21 ca |.. ..!....!...!.| 00004e40 16 52 41 34 25 3d 52 65 67 25 28 35 29 20 80 20 |.RA4%=Reg%(5) . | 00004e50 26 31 30 0d 21 d4 04 0d 21 de 1a e7 20 67 6f 74 |&10.!...!... got| 00004e60 6f 25 3d a3 20 80 20 53 6c 65 65 70 25 3d a3 20 |o%=. . Sleep%=. | 00004e70 8c 0d 21 e8 0f 41 25 3d a4 69 6e 63 52 28 32 29 |..!..A%=.incR(2)| 00004e80 0d 21 f2 26 e7 20 41 25 3d 30 20 8c 20 48 69 50 |.!.&. A%=0 . HiP| 00004e90 43 25 3d 28 48 69 50 43 25 2b 32 35 36 29 20 80 |C%=(HiPC%+256) .| 00004ea0 20 26 31 46 30 30 0d 21 fc 1c f2 5f 50 75 74 50 | &1F00.!..._PutP| 00004eb0 72 61 6d 48 65 78 28 31 2c 41 25 2b 48 69 50 43 |ramHex(1,A%+HiPC| 00004ec0 25 29 0d 22 06 05 cc 0d 22 10 0b 67 6f 74 6f 25 |%)."...."..goto%| 00004ed0 3d a3 0d 22 1a 21 f2 5f 50 75 74 50 72 61 6d 48 |=..".!._PutPramH| 00004ee0 65 78 28 31 2c 52 65 67 25 28 32 29 2b 48 69 50 |ex(1,Reg%(2)+HiP| 00004ef0 43 25 29 0d 22 24 05 cd 0d 22 2e 04 0d 22 38 11 |C%)."$..."..."8.| 00004f00 e7 20 57 61 74 63 68 64 6f 67 25 20 8c 0d 22 42 |. Watchdog% .."B| 00004f10 14 57 61 74 63 68 64 6f 67 54 69 6d 65 25 2b 3d |.WatchdogTime%+=| 00004f20 31 0d 22 4c 1c f2 5f 50 50 48 6d 28 32 35 2c 57 |1."L.._PPHm(25,W| 00004f30 61 74 63 68 64 6f 67 54 69 6d 65 25 29 0d 22 56 |atchdogTime%)."V| 00004f40 04 0d 22 60 21 e7 20 57 61 74 63 68 64 6f 67 54 |.."`!. WatchdogT| 00004f50 69 6d 65 25 3e 57 61 74 63 68 4c 69 6d 69 74 25 |ime%>WatchLimit%| 00004f60 20 8c 0d 22 6a 2d 20 57 61 74 63 68 64 6f 67 54 | .."j- WatchdogT| 00004f70 69 6d 65 25 3d 30 3a f2 5f 50 50 48 6d 28 32 35 |ime%=0:._PPHm(25| 00004f80 2c 57 61 74 63 68 64 6f 67 54 69 6d 65 25 29 0d |,WatchdogTime%).| 00004f90 22 74 1b 20 e7 20 28 52 65 67 25 28 26 38 31 29 |"t. . (Reg%(&81)| 00004fa0 20 80 20 38 29 3c 3e 30 20 8c 0d 22 7e 0a 20 20 | . 8)<>0 .."~. | 00004fb0 41 25 3d a3 0d 22 88 1c 20 20 74 25 3d 28 52 65 |A%=..".. t%=(Re| 00004fc0 67 25 28 26 38 31 29 20 80 20 37 29 20 82 20 37 |g%(&81) . 7) . 7| 00004fd0 0d 22 92 12 20 20 74 25 3d 28 32 5e 74 25 29 3c |.".. t%=(2^t%)<| 00004fe0 3c 31 0d 22 9c 13 20 20 50 72 65 73 63 61 6c 65 |<1.".. Prescale| 00004ff0 25 2b 3d 74 25 0d 22 a6 28 20 20 e7 20 50 72 65 |%+=t%.".( . Pre| 00005000 73 63 61 6c 65 25 3e 26 46 46 20 8c 20 41 25 3d |scale%>&FF . A%=| 00005010 b9 3a 50 72 65 73 63 61 6c 65 25 3d 30 0d 22 b0 |.:Prescale%=0.".| 00005020 1a 20 20 f2 5f 50 50 48 6d 28 32 33 2c 50 72 65 |. ._PPHm(23,Pre| 00005030 73 63 61 6c 65 25 29 0d 22 ba 07 20 20 cc 0d 22 |scale%).".. .."| 00005040 c4 0a 20 20 41 25 3d b9 0d 22 ce 06 20 cd 0d 22 |.. A%=..".. .."| 00005050 d8 05 20 0d 22 e2 17 20 e7 20 41 25 20 80 20 ac |.. .".. . A% . .| 00005060 28 53 6c 65 65 70 25 29 20 8c 0d 22 ec 3b 20 20 |(Sleep%) ..".; | 00005070 74 25 3d 28 52 65 67 25 28 33 29 20 80 20 26 37 |t%=(Reg%(3) . &7| 00005080 29 20 84 20 26 38 3a f2 75 70 53 74 61 74 28 52 |) . &8:.upStat(R| 00005090 65 67 25 28 33 29 2c 74 25 29 3a 52 65 67 25 28 |eg%(3),t%):Reg%(| 000050a0 33 29 3d 74 25 0d 22 f6 17 20 20 48 69 50 43 25 |3)=t%.".. HiPC%| 000050b0 3d 30 3a 52 65 67 25 28 32 29 3d 30 0d 23 00 23 |=0:Reg%(2)=0.#.#| 000050c0 20 20 f2 5f 50 75 74 50 72 61 6d 48 65 78 28 31 | ._PutPramHex(1| 000050d0 2c 52 65 67 25 28 32 29 2b 48 69 50 43 25 29 0d |,Reg%(2)+HiPC%).| 000050e0 23 0a 06 20 cd 0d 23 14 05 20 0d 23 1e 14 20 e7 |#.. ..#.. .#.. .| 000050f0 20 53 6c 65 65 70 25 20 80 20 41 25 20 8c 0d 23 | Sleep% . A% ..#| 00005100 28 35 20 20 74 25 3d 52 65 67 25 28 33 29 20 80 |(5 t%=Reg%(3) .| 00005110 20 26 45 46 3a f2 75 70 53 74 61 74 28 52 65 67 | &EF:.upStat(Reg| 00005120 25 28 33 29 2c 74 25 29 3a 52 65 67 25 28 33 29 |%(3),t%):Reg%(3)| 00005130 3d 74 25 0d 23 32 25 20 20 53 6c 65 65 70 25 3d |=t%.#2% Sleep%=| 00005140 a3 3a 24 53 50 6f 69 6e 74 25 28 39 29 3d 22 65 |.:$SPoint%(9)="e| 00005150 6d 6c 65 64 6f 66 66 22 0d 23 3c 3e 20 20 c8 99 |mledoff".#<> ..| 00005160 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 |"Wimp_ForceRedra| 00005170 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 39 29 2c |w",conW%,IX%(9),| 00005180 49 59 25 28 39 29 2c 49 58 31 25 28 39 29 2c 49 |IY%(9),IX1%(9),I| 00005190 59 31 25 28 39 29 0d 23 46 06 20 cd 0d 23 50 05 |Y1%(9).#F. ..#P.| 000051a0 cd 0d 23 5a 05 cd 0d 23 64 04 0d 23 6e 05 e1 0d |..#Z...#d..#n...| 000051b0 23 78 04 0d 23 82 0b dd 20 f2 64 69 73 73 0d 23 |#x..#... .diss.#| 000051c0 8c 09 ea 20 6f 70 24 0d 23 96 0c 46 6f 75 6e 64 |... op$.#..Found| 000051d0 25 3d a3 0d 23 a0 24 e7 20 28 4f 50 63 6f 64 65 |%=..#.$. (OPcode| 000051e0 25 20 80 20 26 33 30 30 30 29 20 3d 20 30 20 8c |% . &3000) = 0 .| 000051f0 20 f2 66 62 79 74 65 0d 23 aa 32 e7 20 ac 28 46 | .fbyte.#.2. .(F| 00005200 6f 75 6e 64 25 29 20 80 20 28 4f 50 63 6f 64 65 |ound%) . (OPcode| 00005210 25 20 80 20 26 33 30 30 30 29 20 3d 26 31 30 30 |% . &3000) =&100| 00005220 30 20 8c 20 f2 66 62 69 74 0d 23 b4 18 e7 20 ac |0 . .fbit.#... .| 00005230 28 46 6f 75 6e 64 25 29 20 8c 20 f2 66 63 6f 6e |(Found%) . .fcon| 00005240 74 0d 23 be 68 e7 20 ac 28 46 6f 75 6e 64 25 29 |t.#.h. .(Found%)| 00005250 20 8c 20 f2 5f 73 65 74 75 70 57 28 22 55 6e 69 | . ._setupW("Uni| 00005260 6d 70 6c 65 6d 65 6e 74 65 64 20 4f 70 2d 63 6f |mplemented Op-co| 00005270 64 65 20 61 74 20 22 2b c3 7e 28 52 65 67 25 28 |de at "+.~(Reg%(| 00005280 32 29 2b 48 69 50 43 25 29 29 3a f2 5f 50 75 74 |2)+HiPC%)):._Put| 00005290 50 72 61 6d 73 53 28 33 2c 22 55 6e 69 6d 70 6c |PramsS(3,"Unimpl| 000052a0 65 6d 65 6e 74 65 64 22 29 0d 23 c8 05 e1 0d 23 |emented").#....#| 000052b0 d2 04 0d 23 dc 0c dd 20 f2 66 63 6f 6e 74 0d 23 |...#... .fcont.#| 000052c0 e6 08 ea 20 54 25 0d 23 f0 10 c8 8e 20 4f 50 63 |... T%.#.... OPc| 000052d0 6f 64 65 25 20 ca 0d 23 fa 1c c9 20 26 36 34 3a |ode% ..#... &64:| 000052e0 20 f2 73 6d 61 6b 65 28 32 36 2c 26 46 30 30 2c | .smake(26,&F00,| 000052f0 a3 29 0d 24 04 1c c9 20 26 36 33 3a 20 f2 73 6d |.).$... &63: .sm| 00005300 61 6b 65 28 33 33 2c 26 46 30 30 2c a3 29 0d 24 |ake(33,&F00,.).$| 00005310 0e 1c c9 20 20 26 39 3a 20 f2 73 6d 61 6b 65 28 |... &9: .smake(| 00005320 33 30 2c 26 46 30 30 2c a3 29 0d 24 18 1c c9 20 |30,&F00,.).$... | 00005330 20 26 38 3a 20 f2 73 6d 61 6b 65 28 33 32 2c 26 | &8: .smake(32,&| 00005340 46 30 30 2c a3 29 0d 24 22 05 7f 0d 24 2c 43 e7 |F00,.).$"...$,C.| 00005350 20 28 4f 50 63 6f 64 65 25 20 80 20 26 33 38 30 | (OPcode% . &380| 00005360 30 29 3d 26 32 30 30 30 20 8c 20 f2 67 6d 61 6b |0)=&2000 . .gmak| 00005370 65 28 32 35 2c 4f 50 63 6f 64 65 25 20 80 20 26 |e(25,OPcode% . &| 00005380 33 46 46 2c 22 61 64 64 72 65 73 73 22 29 0d 24 |3FF,"address").$| 00005390 36 43 e7 20 28 4f 50 63 6f 64 65 25 20 80 20 26 |6C. (OPcode% . &| 000053a0 33 38 30 30 29 3d 26 32 38 30 30 20 8c 20 f2 67 |3800)=&2800 . .g| 000053b0 6d 61 6b 65 28 32 37 2c 4f 50 63 6f 64 65 25 20 |make(27,OPcode% | 000053c0 80 20 26 33 46 46 2c 22 61 64 64 72 65 73 73 22 |. &3FF,"address"| 000053d0 29 0d 24 40 13 20 20 e7 20 ac 28 46 6f 75 6e 64 |).$@. . .(Found| 000053e0 25 29 20 8c 0d 24 4a 1d 20 20 54 25 3d 28 4f 50 |%) ..$J. T%=(OP| 000053f0 63 6f 64 65 25 20 80 20 26 33 46 30 30 29 3e 3e |code% . &3F00)>>| 00005400 38 0d 24 54 0d 20 20 c8 8e 20 54 25 20 ca 0d 24 |8.$T. .. T% ..$| 00005410 5e 2c 20 20 c9 20 26 33 39 3a f2 67 6d 61 6b 65 |^, . &39:.gmake| 00005420 28 32 34 2c 4f 50 63 6f 64 65 25 20 80 20 26 46 |(24,OPcode% . &F| 00005430 46 2c 22 76 61 6c 75 65 22 29 0d 24 68 2c 20 20 |F,"value").$h, | 00005440 c9 20 26 33 38 3a f2 67 6d 61 6b 65 28 32 38 2c |. &38:.gmake(28,| 00005450 4f 50 63 6f 64 65 25 20 80 20 26 46 46 2c 22 76 |OPcode% . &FF,"v| 00005460 61 6c 75 65 22 29 0d 24 72 2c 20 20 c9 20 26 33 |alue").$r, . &3| 00005470 41 3a f2 67 6d 61 6b 65 28 33 35 2c 4f 50 63 6f |A:.gmake(35,OPco| 00005480 64 65 25 20 80 20 26 46 46 2c 22 76 61 6c 75 65 |de% . &FF,"value| 00005490 22 29 0d 24 7c 07 20 20 cb 0d 24 86 14 20 20 20 |").$|. ..$.. | 000054a0 e7 20 ac 28 46 6f 75 6e 64 25 29 20 8c 0d 24 90 |. .(Found%) ..$.| 000054b0 45 20 20 20 20 20 e7 20 28 4f 50 63 6f 64 65 25 |E . (OPcode%| 000054c0 20 80 20 26 33 45 30 30 29 3d 26 33 45 30 30 20 | . &3E00)=&3E00 | 000054d0 8c 20 f2 67 6d 61 6b 65 28 32 33 2c 4f 50 63 6f |. .gmake(23,OPco| 000054e0 64 65 25 20 80 20 26 46 46 2c 22 76 61 6c 75 65 |de% . &FF,"value| 000054f0 22 29 0d 24 9a 45 20 20 20 20 20 e7 20 28 4f 50 |").$.E . (OP| 00005500 63 6f 64 65 25 20 80 20 26 33 43 30 30 29 3d 26 |code% . &3C00)=&| 00005510 33 30 30 30 20 8c 20 f2 67 6d 61 6b 65 28 32 39 |3000 . .gmake(29| 00005520 2c 4f 50 63 6f 64 65 25 20 80 20 26 46 46 2c 22 |,OPcode% . &FF,"| 00005530 76 61 6c 75 65 22 29 0d 24 a4 45 20 20 20 20 20 |value").$.E | 00005540 e7 20 28 4f 50 63 6f 64 65 25 20 80 20 26 33 43 |. (OPcode% . &3C| 00005550 30 30 29 3d 26 33 34 30 30 20 8c 20 f2 67 6d 61 |00)=&3400 . .gma| 00005560 6b 65 28 33 31 2c 4f 50 63 6f 64 65 25 20 80 20 |ke(31,OPcode% . | 00005570 26 46 46 2c 22 76 61 6c 75 65 22 29 0d 24 ae 45 |&FF,"value").$.E| 00005580 20 20 20 20 20 e7 20 28 4f 50 63 6f 64 65 25 20 | . (OPcode% | 00005590 80 20 26 33 45 30 30 29 3d 26 33 43 30 30 20 8c |. &3E00)=&3C00 .| 000055a0 20 f2 67 6d 61 6b 65 28 33 34 2c 4f 50 63 6f 64 | .gmake(34,OPcod| 000055b0 65 25 20 80 20 26 46 46 2c 22 76 61 6c 75 65 22 |e% . &FF,"value"| 000055c0 29 0d 24 b8 08 20 20 20 cd 0d 24 c2 07 20 20 cd |).$.. ..$.. .| 000055d0 0d 24 cc 05 cb 0d 24 d6 05 e1 0d 24 e0 04 0d 24 |.$....$....$...$| 000055e0 ea 0b dd 20 f2 66 62 69 74 0d 24 f4 0b ea 20 41 |... .fbit.$... A| 000055f0 25 2c 70 24 0d 24 fe 20 41 25 3d 28 28 4f 50 63 |%,p$.$. A%=((OPc| 00005600 6f 64 65 25 20 80 20 26 43 30 30 29 3e 3e 31 30 |ode% . &C00)>>10| 00005610 29 2b 31 39 0d 25 08 4b 70 24 3d 4d 6e 65 24 28 |)+19.%.Kp$=Mne$(| 00005620 41 25 29 2b 22 20 66 69 6c 65 20 22 2b c3 7e 28 |A%)+" file "+.~(| 00005630 4f 50 63 6f 64 65 25 20 80 20 26 37 46 29 2b 22 |OPcode% . &7F)+"| 00005640 68 2c 20 62 69 74 20 22 2b c3 28 28 4f 50 63 6f |h, bit "+.((OPco| 00005650 64 65 25 20 80 20 26 33 38 30 29 3e 3e 37 29 0d |de% . &380)>>7).| 00005660 25 12 15 f2 5f 50 75 74 50 72 61 6d 73 53 28 33 |%..._PutPramsS(3| 00005670 2c 70 24 29 0d 25 1c 19 46 6f 75 6e 64 25 3d b9 |,p$).%..Found%=.| 00005680 3a 4f 50 6e 75 6d 62 65 72 25 3d 41 25 0d 25 26 |:OPnumber%=A%.%&| 00005690 05 e1 0d 25 30 04 0d 25 3a 0c dd 20 f2 66 62 79 |...%0..%:.. .fby| 000056a0 74 65 0d 25 44 0f ea 20 54 72 69 61 6c 25 2c 41 |te.%D.. Trial%,A| 000056b0 25 0d 25 4e 1a 54 72 69 61 6c 25 3d 4f 50 63 6f |%.%N.Trial%=OPco| 000056c0 64 65 25 20 80 20 26 33 46 38 30 0d 25 58 2f e7 |de% . &3F80.%X/.| 000056d0 20 54 72 69 61 6c 25 3d 26 31 38 30 20 8c 20 f2 | Trial%=&180 . .| 000056e0 73 6d 61 6b 65 28 33 2c 4f 50 63 6f 64 65 25 20 |smake(3,OPcode% | 000056f0 80 20 26 37 46 2c a3 29 3a e1 0d 25 62 26 e7 20 |. &7F,.):..%b&. | 00005700 54 72 69 61 6c 25 3d 26 31 30 30 20 8c 20 f2 73 |Trial%=&100 . .s| 00005710 6d 61 6b 65 28 34 2c 26 46 30 30 2c a3 29 3a e1 |make(4,&F00,.):.| 00005720 0d 25 6c 38 e7 20 54 72 69 61 6c 25 3d 30 20 80 |.%l8. Trial%=0 .| 00005730 20 28 4f 50 63 6f 64 65 25 20 80 20 26 39 46 29 | (OPcode% . &9F)| 00005740 3d 30 20 8c 20 f2 73 6d 61 6b 65 28 31 33 2c 26 |=0 . .smake(13,&| 00005750 46 30 30 2c a3 29 3a e1 0d 25 76 2f e7 20 54 72 |F00,.):..%v/. Tr| 00005760 69 61 6c 25 3d 26 38 30 20 8c 20 f2 73 6d 61 6b |ial%=&80 . .smak| 00005770 65 28 31 32 2c 4f 50 63 6f 64 65 25 20 80 20 26 |e(12,OPcode% . &| 00005780 37 46 2c a3 29 3a e1 0d 25 80 1a 54 72 69 61 6c |7F,.):..%..Trial| 00005790 25 3d 4f 50 63 6f 64 65 25 20 80 20 26 33 46 30 |%=OPcode% . &3F0| 000057a0 30 0d 25 8a 08 41 25 3d 30 0d 25 94 05 f5 0d 25 |0.%..A%=0.%....%| 000057b0 9e 09 41 25 2b 3d 31 0d 25 a8 13 e7 20 41 25 3d |..A%+=1.%... A%=| 000057c0 31 33 20 8c 20 41 25 2b 3d 31 0d 25 b2 1c fd 20 |13 . A%+=1.%... | 000057d0 4f 70 25 28 41 25 29 3d 54 72 69 61 6c 25 20 84 |Op%(A%)=Trial% .| 000057e0 20 41 25 3d 32 33 0d 25 bc 29 e7 20 41 25 3c 3e | A%=23.%.). A%<>| 000057f0 32 33 20 8c 20 f2 73 6d 61 6b 65 28 41 25 2c 4f |23 . .smake(A%,O| 00005800 50 63 6f 64 65 25 20 80 20 26 37 46 2c b9 29 0d |Pcode% . &7F,.).| 00005810 25 c6 24 e7 20 4f 50 63 6f 64 65 25 3d 26 36 36 |%.$. OPcode%=&66| 00005820 20 8c 20 f2 73 6d 61 6b 65 28 33 36 2c 26 38 36 | . .smake(36,&86| 00005830 2c a3 29 0d 25 d0 24 e7 20 4f 50 63 6f 64 65 25 |,.).%.$. OPcode%| 00005840 3d 26 36 35 20 8c 20 f2 73 6d 61 6b 65 28 33 36 |=&65 . .smake(36| 00005850 2c 26 38 35 2c a3 29 0d 25 da 25 e7 20 4f 50 63 |,&85,.).%.%. OPc| 00005860 6f 64 65 25 3d 26 36 32 20 8c 20 f2 73 6d 61 6b |ode%=&62 . .smak| 00005870 65 28 33 37 2c 26 46 30 30 2c a3 29 0d 25 e4 05 |e(37,&F00,.).%..| 00005880 e1 0d 25 ee 04 0d 25 f8 16 dd 20 f2 73 6d 61 6b |..%...%... .smak| 00005890 65 28 6f 25 2c 76 25 2c 64 25 29 0d 26 02 08 ea |e(o%,v%,d%).&...| 000058a0 20 70 24 0d 26 0c 2d e7 20 76 25 3e 26 38 30 30 | p$.&.-. v%>&800| 000058b0 20 8c 20 70 24 3d 22 22 20 8b 20 70 24 3d 22 66 | . p$="" . p$="f| 000058c0 69 6c 65 20 22 2b c3 7e 28 76 25 29 2b 22 68 22 |ile "+.~(v%)+"h"| 000058d0 0d 26 16 0a e7 20 64 25 20 8c 0d 26 20 33 e7 20 |.&... d% ..& 3. | 000058e0 28 4f 50 63 6f 64 65 25 20 80 20 26 38 30 29 3d |(OPcode% . &80)=| 000058f0 30 20 8c 20 70 24 3d 70 24 2b 22 2c 20 77 22 20 |0 . p$=p$+", w" | 00005900 8b 20 70 24 3d 70 24 2b 22 2c 20 66 22 0d 26 2a |. p$=p$+", f".&*| 00005910 05 cd 0d 26 34 22 f2 5f 50 75 74 50 72 61 6d 73 |...&4"._PutPrams| 00005920 53 28 33 2c 4d 6e 65 24 28 6f 25 29 2b 22 20 22 |S(3,Mne$(o%)+" "| 00005930 2b 70 24 29 0d 26 3e 0c 46 6f 75 6e 64 25 3d b9 |+p$).&>.Found%=.| 00005940 0d 26 48 10 4f 50 6e 75 6d 62 65 72 25 3d 6f 25 |.&H.OPnumber%=o%| 00005950 0d 26 52 05 e1 0d 26 5c 04 0d 26 66 16 dd 20 f2 |.&R...&\..&f.. .| 00005960 67 6d 61 6b 65 28 6f 25 2c 76 25 2c 61 24 29 0d |gmake(o%,v%,a$).| 00005970 26 70 08 ea 20 70 24 0d 26 7a 2c e7 20 76 25 3e |&p.. p$.&z,. v%>| 00005980 26 38 30 30 20 8c 20 70 24 3d 22 22 20 8b 20 70 |&800 . p$="" . p| 00005990 24 3d 61 24 2b 22 20 22 2b c3 7e 28 76 25 29 2b |$=a$+" "+.~(v%)+| 000059a0 22 68 22 0d 26 84 22 f2 5f 50 75 74 50 72 61 6d |"h".&."._PutPram| 000059b0 73 53 28 33 2c 4d 6e 65 24 28 6f 25 29 2b 22 20 |sS(3,Mne$(o%)+" | 000059c0 22 2b 70 24 29 0d 26 8e 0c 46 6f 75 6e 64 25 3d |"+p$).&..Found%=| 000059d0 b9 0d 26 98 10 4f 50 6e 75 6d 62 65 72 25 3d 6f |..&..OPnumber%=o| 000059e0 25 0d 26 a2 05 e1 0d 26 ac 04 0d 26 b6 1e dd 20 |%.&....&...&... | 000059f0 f2 5f 75 70 49 4f 28 6f 25 2c 6e 65 77 25 2c 73 |._upIO(o%,new%,s| 00005a00 25 2c 6e 25 2c 72 25 29 0d 26 c0 0b ea 20 42 25 |%,n%,r%).&... B%| 00005a10 2c 41 25 0d 26 ca 15 e3 20 41 25 3d 73 25 20 b8 |,A%.&... A%=s% .| 00005a20 20 73 25 2b 6e 25 2d 31 0d 26 d4 10 42 25 3d 32 | s%+n%-1.&..B%=2| 00005a30 5e 28 41 25 2d 73 25 29 0d 26 de 20 e7 20 28 6f |^(A%-s%).&. . (o| 00005a40 25 20 80 20 42 25 29 20 3c 3e 20 28 6e 65 77 25 |% . B%) <> (new%| 00005a50 20 80 20 42 25 29 20 8c 0d 26 e8 16 20 e7 20 28 | . B%) ..&.. . (| 00005a60 6e 65 77 25 20 80 20 42 25 29 3d 30 20 8c 0d 26 |new% . B%)=0 ..&| 00005a70 f2 4b 20 e7 20 28 52 65 67 25 28 72 25 29 20 80 |.K . (Reg%(r%) .| 00005a80 20 42 25 29 3d 30 20 8c 20 24 53 50 6f 69 6e 74 | B%)=0 . $SPoint| 00005a90 25 28 41 25 29 3d 22 65 6d 6c 65 64 6f 66 66 22 |%(A%)="emledoff"| 00005aa0 20 8b 20 24 53 50 6f 69 6e 74 25 28 41 25 29 3d | . $SPoint%(A%)=| 00005ab0 22 65 6d 6c 65 64 6f 6e 22 0d 26 fc 06 20 cc 0d |"emledon".&.. ..| 00005ac0 27 06 49 20 e7 20 28 52 65 67 25 28 72 25 29 20 |'.I . (Reg%(r%) | 00005ad0 80 20 42 25 29 3d 30 20 8c 20 24 53 50 6f 69 6e |. B%)=0 . $SPoin| 00005ae0 74 25 28 41 25 29 3d 22 65 6d 73 77 6f 66 66 22 |t%(A%)="emswoff"| 00005af0 20 8b 20 24 53 50 6f 69 6e 74 25 28 41 25 29 3d | . $SPoint%(A%)=| 00005b00 22 65 6d 73 77 6f 6e 22 0d 27 10 06 20 cd 0d 27 |"emswon".'.. ..'| 00005b10 1a 41 20 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 |.A .."Wimp_Force| 00005b20 52 65 64 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 |Redraw",conW%,IX| 00005b30 25 28 41 25 29 2c 49 59 25 28 41 25 29 2c 49 58 |%(A%),IY%(A%),IX| 00005b40 31 25 28 41 25 29 2c 49 59 31 25 28 41 25 29 0d |1%(A%),IY1%(A%).| 00005b50 27 24 05 cd 0d 27 2e 04 0d 27 38 05 ed 0d 27 42 |'$...'...'8...'B| 00005b60 05 e1 0d 27 4c 04 0d 27 56 16 dd 20 f2 75 70 50 |...'L..'V.. .upP| 00005b70 62 28 6f 6c 64 25 2c 6e 65 77 25 29 0d 27 60 0b |b(old%,new%).'`.| 00005b80 ea 20 41 25 2c 42 25 0d 27 6a 0e e3 20 41 25 3d |. A%,B%.'j.. A%=| 00005b90 30 20 b8 20 37 0d 27 74 0b 42 25 3d 32 5e 41 25 |0 . 7.'t.B%=2^A%| 00005ba0 0d 27 7e 3b e7 20 28 28 6f 6c 64 25 20 80 20 42 |.'~;. ((old% . B| 00005bb0 25 29 20 3c 3e 20 28 6e 65 77 25 20 80 20 42 25 |%) <> (new% . B%| 00005bc0 29 29 20 80 20 28 28 52 65 67 25 28 26 38 36 29 |)) . ((Reg%(&86)| 00005bd0 20 80 20 42 25 29 3d 30 29 20 8c 0d 27 88 4c e7 | . B%)=0) ..'.L.| 00005be0 20 28 6e 65 77 25 20 80 20 42 25 29 3d 30 20 8c | (new% . B%)=0 .| 00005bf0 20 24 53 50 6f 69 6e 74 25 28 41 25 2b 31 31 29 | $SPoint%(A%+11)| 00005c00 3d 22 65 6d 6c 65 64 6f 66 66 22 20 8b 20 24 53 |="emledoff" . $S| 00005c10 50 6f 69 6e 74 25 28 41 25 2b 31 31 29 3d 22 65 |Point%(A%+11)="e| 00005c20 6d 6c 65 64 6f 6e 22 0d 27 92 4c c8 99 22 57 69 |mledon".'.L.."Wi| 00005c30 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 00005c40 63 6f 6e 57 25 2c 49 58 25 28 41 25 2b 31 31 29 |conW%,IX%(A%+11)| 00005c50 2c 49 59 25 28 41 25 2b 31 31 29 2c 49 58 31 25 |,IY%(A%+11),IX1%| 00005c60 28 41 25 2b 31 31 29 2c 49 59 31 25 28 41 25 2b |(A%+11),IY1%(A%+| 00005c70 31 31 29 0d 27 9c 05 cd 0d 27 a6 05 ed 0d 27 b0 |11).'....'....'.| 00005c80 05 e1 0d 27 ba 04 0d 27 c4 18 dd 20 f2 75 70 53 |...'...'... .upS| 00005c90 74 61 74 28 6f 6c 64 25 2c 6e 65 77 25 29 0d 27 |tat(old%,new%).'| 00005ca0 ce 0b ea 20 41 25 2c 42 25 0d 27 d8 0e e3 20 41 |... A%,B%.'... A| 00005cb0 25 3d 30 20 b8 20 37 0d 27 e2 0b 42 25 3d 32 5e |%=0 . 7.'..B%=2^| 00005cc0 41 25 0d 27 ec 22 e7 20 28 6f 6c 64 25 20 80 20 |A%.'.". (old% . | 00005cd0 42 25 29 20 3c 3e 20 28 6e 65 77 25 20 80 20 42 |B%) <> (new% . B| 00005ce0 25 29 20 8c 0d 27 f6 48 e7 20 28 6e 65 77 25 20 |%) ..'.H. (new% | 00005cf0 80 20 42 25 29 3d 30 20 8c 20 24 53 50 6f 69 6e |. B%)=0 . $SPoin| 00005d00 74 25 28 41 25 2b 32 34 29 3d 22 65 6d 7a 65 72 |t%(A%+24)="emzer| 00005d10 6f 22 20 8b 20 24 53 50 6f 69 6e 74 25 28 41 25 |o" . $SPoint%(A%| 00005d20 2b 32 34 29 3d 22 65 6d 6f 6e 65 22 0d 28 00 4c |+24)="emone".(.L| 00005d30 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00005d40 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 41 |raw",conW%,IX%(A| 00005d50 25 2b 32 34 29 2c 49 59 25 28 41 25 2b 32 34 29 |%+24),IY%(A%+24)| 00005d60 2c 49 58 31 25 28 41 25 2b 32 34 29 2c 49 59 31 |,IX1%(A%+24),IY1| 00005d70 25 28 41 25 2b 32 34 29 0d 28 0a 05 cd 0d 28 14 |%(A%+24).(....(.| 00005d80 05 ed 0d 28 1e 05 e1 0d 28 28 04 0d 28 32 16 dd |...(....((..(2..| 00005d90 20 f2 75 70 50 61 28 6f 6c 64 25 2c 6e 65 77 25 | .upPa(old%,new%| 00005da0 29 0d 28 3c 0b ea 20 41 25 2c 42 25 0d 28 46 0e |).(<.. A%,B%.(F.| 00005db0 e3 20 41 25 3d 30 20 b8 20 34 0d 28 50 0b 42 25 |. A%=0 . 4.(P.B%| 00005dc0 3d 32 5e 41 25 0d 28 5a 3b e7 20 28 28 6f 6c 64 |=2^A%.(Z;. ((old| 00005dd0 25 20 80 20 42 25 29 20 3c 3e 20 28 6e 65 77 25 |% . B%) <> (new%| 00005de0 20 80 20 42 25 29 29 20 80 20 28 28 52 65 67 25 | . B%)) . ((Reg%| 00005df0 28 26 38 35 29 20 80 20 42 25 29 3d 30 29 20 8c |(&85) . B%)=0) .| 00005e00 0d 28 64 4c e7 20 28 6e 65 77 25 20 80 20 42 25 |.(dL. (new% . B%| 00005e10 29 3d 30 20 8c 20 24 53 50 6f 69 6e 74 25 28 41 |)=0 . $SPoint%(A| 00005e20 25 2b 31 39 29 3d 22 65 6d 6c 65 64 6f 66 66 22 |%+19)="emledoff"| 00005e30 20 8b 20 24 53 50 6f 69 6e 74 25 28 41 25 2b 31 | . $SPoint%(A%+1| 00005e40 39 29 3d 22 65 6d 6c 65 64 6f 6e 22 0d 28 6e 4c |9)="emledon".(nL| 00005e50 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00005e60 72 61 77 22 2c 63 6f 6e 57 25 2c 49 58 25 28 41 |raw",conW%,IX%(A| 00005e70 25 2b 31 39 29 2c 49 59 25 28 41 25 2b 31 39 29 |%+19),IY%(A%+19)| 00005e80 2c 49 58 31 25 28 41 25 2b 31 39 29 2c 49 59 31 |,IX1%(A%+19),IY1| 00005e90 25 28 41 25 2b 31 39 29 0d 28 6f 05 cd 0d 28 82 |%(A%+19).(o...(.| 00005ea0 05 ed 0d 28 8c 05 e1 0d 28 96 04 0d 28 a0 1b dd |...(....(...(...| 00005eb0 20 f2 75 70 42 28 6f 6c 64 25 2c 6e 65 77 25 2c | .upB(old%,new%,| 00005ec0 69 25 2c 6e 25 29 0d 28 aa 0b ea 20 41 25 2c 42 |i%,n%).(... A%,B| 00005ed0 25 0d 28 b4 11 e3 20 41 25 3d 30 20 b8 20 6e 25 |%.(... A%=0 . n%| 00005ee0 2d 31 0d 28 be 0b 42 25 3d 32 5e 41 25 0d 28 c8 |-1.(..B%=2^A%.(.| 00005ef0 22 e7 20 28 6f 6c 64 25 20 80 20 42 25 29 20 3c |". (old% . B%) <| 00005f00 3e 20 28 6e 65 77 25 20 80 20 42 25 29 20 8c 0d |> (new% . B%) ..| 00005f10 28 d2 4a e7 20 28 6e 65 77 25 20 80 20 42 25 29 |(.J. (new% . B%)| 00005f20 3d 30 20 8c 20 24 53 50 6f 69 6e 74 4d 25 28 41 |=0 . $SPointM%(A| 00005f30 25 2b 69 25 29 3d 22 65 6d 7a 65 72 6f 22 20 8b |%+i%)="emzero" .| 00005f40 20 24 53 50 6f 69 6e 74 4d 25 28 41 25 2b 69 25 | $SPointM%(A%+i%| 00005f50 29 3d 22 65 6d 6f 6e 65 22 0d 28 dc 50 c8 99 22 |)="emone".(.P.."| 00005f60 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 |Wimp_ForceRedraw| 00005f70 22 2c 6d 6f 6e 57 25 2c 49 58 4d 25 28 41 25 2b |",monW%,IXM%(A%+| 00005f80 69 25 29 2c 49 59 4d 25 28 41 25 2b 69 25 29 2c |i%),IYM%(A%+i%),| 00005f90 49 58 31 4d 25 28 41 25 2b 69 25 29 2c 49 59 31 |IX1M%(A%+i%),IY1| 00005fa0 4d 25 28 41 25 2b 69 25 29 0d 28 e6 05 cd 0d 28 |M%(A%+i%).(....(| 00005fb0 f0 05 ed 0d 28 fa 05 e1 0d 29 04 04 0d 29 0e 41 |....(....)...).A| 00005fc0 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |. --------------| 00005fd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00005ff0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 29 18 |-------------.).| 00006000 0b dd 20 a4 66 69 6c 65 0d 29 22 0b ea 20 66 25 |.. .file.)".. f%| 00006010 2c 73 25 0d 29 2c 14 66 25 3d 4f 50 63 6f 64 65 |,s%.),.f%=OPcode| 00006020 25 20 80 20 26 37 46 0d 29 36 19 73 25 3d 28 52 |% . &7F.)6.s%=(R| 00006030 65 67 25 28 33 29 20 80 20 26 32 30 29 3c 3c 32 |eg%(3) . &20)<<2| 00006040 0d 29 40 0e 66 25 3d 66 25 20 84 20 73 25 0d 29 |.)@.f%=f% . s%.)| 00006050 4a 20 e7 20 66 25 3d 30 20 84 20 66 25 3d 26 38 |J . f%=0 . f%=&8| 00006060 30 20 8c 20 66 25 3d 52 65 67 25 28 34 29 0d 29 |0 . f%=Reg%(4).)| 00006070 54 1a e7 20 66 25 3e 26 38 39 20 8c 20 66 25 3d |T.. f%>&89 . f%=| 00006080 66 25 20 80 20 26 37 46 0d 29 5e 23 e7 20 66 25 |f% . &7F.)^#. f%| 00006090 3e 26 38 31 20 80 20 66 25 3c 26 38 35 20 8c 20 |>&81 . f%<&85 . | 000060a0 66 25 3d 66 25 20 80 20 26 37 46 0d 29 68 07 3d |f%=f% . &7F.)h.=| 000060b0 66 25 0d 29 72 04 0d 29 7c 09 dd 20 a4 62 6e 0d |f%.)r..)|.. .bn.| 000060c0 29 86 1c 3d 32 5e 28 28 4f 50 63 6f 64 65 25 20 |)..=2^((OPcode% | 000060d0 80 20 26 33 38 30 29 3e 3e 37 29 0d 29 90 04 0d |. &380)>>7).)...| 000060e0 29 9a 0a dd 20 f2 70 75 74 0d 29 a4 0e ea 20 6f |)... .put.)... o| 000060f0 25 2c 64 25 2c 73 25 0d 29 ae 19 e7 20 28 4f 50 |%,d%,s%.)... (OP| 00006100 63 6f 64 65 25 20 80 20 26 38 30 29 3d 30 20 8c |code% . &80)=0 .| 00006110 0d 29 b8 20 57 72 65 67 25 3d 74 25 3a f2 5f 50 |.). Wreg%=t%:._P| 00006120 75 74 50 72 61 6d 48 65 78 32 28 34 2c 74 25 29 |utPramHex2(4,t%)| 00006130 0d 29 c2 2c 73 25 3d 52 65 67 25 28 33 29 3a 52 |.).,s%=Reg%(3):R| 00006140 65 67 25 28 33 29 3d 28 73 25 20 80 20 26 46 38 |eg%(3)=(s% . &F8| 00006150 29 20 84 20 4e 65 77 53 74 61 74 25 0d 29 cc 27 |) . NewStat%.).'| 00006160 e7 20 73 25 3c 3e 52 65 67 25 28 33 29 20 8c 20 |. s%<>Reg%(3) . | 00006170 f2 75 70 53 74 61 74 28 73 25 2c 52 65 67 25 28 |.upStat(s%,Reg%(| 00006180 33 29 29 0d 29 d6 05 cc 0d 29 e0 0f 6f 25 3d 52 |3)).)....)..o%=R| 00006190 65 67 25 28 72 25 29 0d 29 ea 0f 52 65 67 25 28 |eg%(r%).)..Reg%(| 000061a0 72 25 29 3d 74 25 0d 29 f4 0b c8 8e 20 72 25 20 |r%)=t%.).... r% | 000061b0 ca 0d 29 fe 3e c9 20 20 20 33 3a 20 52 65 67 25 |..).>. 3: Reg%| 000061c0 28 33 29 3d 28 74 25 20 80 20 26 45 37 29 20 84 |(3)=(t% . &E7) .| 000061d0 20 28 6f 25 20 80 20 26 31 38 29 3a f2 75 70 53 | (o% . &18):.upS| 000061e0 74 61 74 28 6f 25 2c 52 65 67 25 28 33 29 29 0d |tat(o%,Reg%(3)).| 000061f0 2a 08 41 c9 20 20 20 31 3a 20 e7 20 28 52 65 67 |*.A. 1: . (Reg| 00006200 25 28 26 38 31 29 20 80 20 38 29 3d 30 20 8c 20 |%(&81) . 8)=0 . | 00006210 50 72 65 73 63 61 6c 65 25 3d 30 3a f2 5f 50 50 |Prescale%=0:._PP| 00006220 48 6d 28 32 33 2c 50 72 65 73 63 61 6c 65 25 29 |Hm(23,Prescale%)| 00006230 0d 2a 12 4c c9 20 20 20 35 3a 20 52 65 67 25 28 |.*.L. 5: Reg%(| 00006240 35 29 3d 28 52 65 67 25 28 26 38 35 29 20 80 20 |5)=(Reg%(&85) . | 00006250 6f 25 29 20 84 20 28 28 52 65 67 25 28 26 38 35 |o%) . ((Reg%(&85| 00006260 29 20 82 20 26 31 46 29 20 80 20 74 25 29 20 3a |) . &1F) . t%) :| 00006270 f2 75 70 50 61 28 6f 25 2c 74 25 29 0d 2a 1c 4d |.upPa(o%,t%).*.M| 00006280 c9 20 20 20 36 3a 20 20 52 65 67 25 28 36 29 3d |. 6: Reg%(6)=| 00006290 28 52 65 67 25 28 26 38 36 29 20 80 20 6f 25 29 |(Reg%(&86) . o%)| 000062a0 20 84 20 28 28 52 65 67 25 28 26 38 36 29 20 82 | . ((Reg%(&86) .| 000062b0 20 26 46 46 29 20 80 20 74 25 29 20 3a f2 75 70 | &FF) . t%) :.up| 000062c0 50 62 28 6f 25 2c 74 25 29 0d 2a 26 30 c9 20 20 |Pb(o%,t%).*&0. | 000062d0 20 37 3a 20 f2 5f 73 65 74 75 70 57 28 22 43 61 | 7: ._setupW("Ca| 000062e0 6e 27 74 20 77 72 69 74 65 20 74 6f 20 72 65 67 |n't write to reg| 000062f0 69 73 74 65 72 20 37 22 29 0d 2a 30 43 c9 20 20 |ister 7").*0C. | 00006300 20 39 3a 20 52 65 67 25 28 38 29 3d 44 61 74 61 | 9: Reg%(8)=Data| 00006310 4d 65 6d 53 25 3f 28 28 28 74 25 20 80 20 26 33 |MemS%?(((t% . &3| 00006320 46 29 3c 3c 31 29 2b 31 29 3a f2 5f 50 50 48 6d |F)<<1)+1):._PPHm| 00006330 28 33 33 2c 52 65 67 25 28 38 29 29 0d 2a 3a 31 |(33,Reg%(8)).*:1| 00006340 c9 20 26 38 37 3a 20 f2 5f 73 65 74 75 70 57 28 |. &87: ._setupW(| 00006350 22 43 61 6e 27 74 20 77 72 69 74 65 20 74 6f 20 |"Can't write to | 00006360 72 65 67 69 73 74 65 72 20 38 37 22 29 0d 2a 44 |register 87").*D| 00006370 31 c9 20 20 31 30 3a 20 f2 5f 73 65 74 75 70 57 |1. 10: ._setupW| 00006380 28 22 43 61 6e 27 74 20 77 72 69 74 65 20 74 6f |("Can't write to| 00006390 20 72 65 67 69 73 74 65 72 20 30 41 22 29 0d 2a | register 0A").*| 000063a0 4e 1f c9 20 26 38 35 3a 20 f2 5f 75 70 49 4f 28 |N.. &85: ._upIO(| 000063b0 6f 25 2c 74 25 2c 31 39 2c 35 2c 35 29 0d 2a 58 |o%,t%,19,5,5).*X| 000063c0 1f c9 20 26 38 36 3a 20 f2 5f 75 70 49 4f 28 6f |.. &86: ._upIO(o| 000063d0 25 2c 74 25 2c 31 31 2c 38 2c 36 29 0d 2a 62 26 |%,t%,11,8,6).*b&| 000063e0 c9 20 26 38 38 3a 20 e7 20 28 74 25 20 80 20 36 |. &88: . (t% . 6| 000063f0 29 3d 36 20 80 20 28 6f 25 20 80 20 32 29 3d 30 |)=6 . (o% . 2)=0| 00006400 20 8c 0d 2a 6c 1e 20 20 20 20 20 20 20 20 20 20 | ..*l. | 00006410 45 74 69 6d 65 4f 75 74 25 3d 45 74 69 6d 65 25 |EtimeOut%=Etime%| 00006420 0d 2a 76 38 20 20 20 20 20 20 20 20 20 20 44 61 |.*v8 Da| 00006430 74 61 4d 65 6d 53 25 3f 28 28 28 52 65 67 25 28 |taMemS%?(((Reg%(| 00006440 39 29 20 80 20 26 33 46 29 3c 3c 31 29 2b 31 29 |9) . &3F)<<1)+1)| 00006450 3d 52 65 67 25 28 38 29 0d 2a 80 0f 20 20 20 20 |=Reg%(8).*.. | 00006460 20 20 20 20 20 20 cd 0d 2a 8a 05 cb 0d 2a 94 2c | ..*....*.,| 00006470 73 25 3d 52 65 67 25 28 33 29 3a 52 65 67 25 28 |s%=Reg%(3):Reg%(| 00006480 33 29 3d 28 73 25 20 80 20 26 46 38 29 20 84 20 |3)=(s% . &F8) . | 00006490 4e 65 77 53 74 61 74 25 0d 2a 9e 27 e7 20 73 25 |NewStat%.*.'. s%| 000064a0 3c 3e 52 65 67 25 28 33 29 20 8c 20 f2 75 70 53 |<>Reg%(3) . .upS| 000064b0 74 61 74 28 73 25 2c 52 65 67 25 28 33 29 29 0d |tat(s%,Reg%(3)).| 000064c0 2a a8 04 0d 2a b2 0f 20 e7 20 4d 6f 70 65 6e 25 |*...*.. . Mopen%| 000064d0 20 8c 0d 2a bc 0c 20 c8 8e 20 72 25 20 ca 0d 2a | ..*.. .. r% ..*| 000064e0 c6 1b 20 c9 20 26 38 31 3a 20 f2 75 70 42 28 6f |.. . &81: .upB(o| 000064f0 25 2c 74 25 2c 30 2c 38 29 0d 2a d0 1b 20 c9 20 |%,t%,0,8).*.. . | 00006500 26 30 42 3a 20 f2 75 70 42 28 6f 25 2c 74 25 2c |&0B: .upB(o%,t%,| 00006510 39 2c 38 29 0d 2a da 1c 20 c9 20 26 38 38 3a 20 |9,8).*.. . &88: | 00006520 f2 75 70 42 28 6f 25 2c 74 25 2c 31 38 2c 35 29 |.upB(o%,t%,18,5)| 00006530 0d 2a e4 19 20 c9 20 26 38 35 3a 20 f2 5f 50 50 |.*.. . &85: ._PP| 00006540 48 6d 28 33 30 2c 74 25 29 0d 2a ee 19 20 c9 20 |Hm(30,t%).*.. . | 00006550 26 38 36 3a 20 f2 5f 50 50 48 6d 28 33 31 2c 74 |&86: ._PPHm(31,t| 00006560 25 29 0d 2a f8 06 20 7f 0d 2b 02 40 20 20 20 e7 |%).*.. ..+.@ .| 00006570 20 ac 28 72 25 3d 33 20 84 20 72 25 3d 35 20 84 | .(r%=3 . r%=5 .| 00006580 20 72 25 3d 36 20 84 20 72 25 3d 37 20 84 20 72 | r%=6 . r%=7 . r| 00006590 25 3d 31 30 20 84 20 72 25 3d 32 29 20 80 20 72 |%=10 . r%=2) . r| 000065a0 25 20 3c 26 33 30 20 8c 0d 2b 0c 17 20 20 20 f2 |% <&30 ..+.. .| 000065b0 5f 50 50 48 6d 28 72 25 2b 32 35 2c 74 25 29 0d |_PPHm(r%+25,t%).| 000065c0 2b 16 08 20 20 20 cd 0d 2b 20 07 20 20 cb 0d 2b |+.. ..+ . ..+| 000065d0 2a 06 20 cd 0d 2b 34 05 cd 0d 2b 3e 05 e1 0d 2b |*. ..+4...+>...+| 000065e0 48 04 0d 2b 52 04 0d 2b 5c 0b dd 20 f2 62 70 75 |H..+R..+\.. .bpu| 000065f0 74 0d 2b 66 19 4f 50 63 6f 64 65 25 3d 4f 50 63 |t.+f.OPcode%=OPc| 00006600 6f 64 65 25 20 84 20 26 38 30 0d 2b 70 08 f2 70 |ode% . &80.+p..p| 00006610 75 74 0d 2b 7a 05 e1 0d 2b 84 04 0d 2b 8e 0b dd |ut.+z...+...+...| 00006620 20 f2 77 70 75 74 0d 2b 98 1c 4f 50 63 6f 64 65 | .wput.+..OPcode| 00006630 25 3d 4f 50 63 6f 64 65 25 20 80 20 ac 28 26 38 |%=OPcode% . .(&8| 00006640 30 29 0d 2b a2 08 f2 70 75 74 0d 2b ac 05 e1 0d |0).+...put.+....| 00006650 2b b6 04 0d 2b c0 0c dd 20 f2 63 61 72 72 79 0d |+...+... .carry.| 00006660 2b ca 08 ea 20 73 25 0d 2b d4 08 73 25 3d 30 0d |+... s%.+..s%=0.| 00006670 2b de 1f e7 20 74 25 3e 26 46 46 20 8c 20 73 25 |+... t%>&FF . s%| 00006680 3d 31 3a 74 25 3d 74 25 20 80 20 26 46 46 0d 2b |=1:t%=t% . &FF.+| 00006690 e8 22 4e 65 77 53 74 61 74 25 3d 28 4e 65 77 53 |."NewStat%=(NewS| 000066a0 74 61 74 25 20 80 20 26 46 45 29 20 84 20 73 25 |tat% . &FE) . s%| 000066b0 0d 2b f2 05 e1 0d 2b fc 04 0d 2c 06 0b dd 20 f2 |.+....+...,... .| 000066c0 7a 65 72 6f 0d 2c 10 08 ea 20 73 25 0d 2c 1a 08 |zero.,... s%.,..| 000066d0 73 25 3d 30 0d 2c 24 11 e7 20 74 25 3d 30 20 8c |s%=0.,$.. t%=0 .| 000066e0 20 73 25 3d 34 0d 2c 2e 22 4e 65 77 53 74 61 74 | s%=4.,."NewStat| 000066f0 25 3d 28 4e 65 77 53 74 61 74 25 20 80 20 26 46 |%=(NewStat% . &F| 00006700 42 29 20 84 20 73 25 0d 2c 38 05 e1 0d 2c 42 04 |B) . s%.,8...,B.| 00006710 0d 2c 4c 09 dd 20 f2 64 63 0d 2c 56 08 ea 20 73 |.,L.. .dc.,V.. s| 00006720 25 0d 2c 60 08 73 25 3d 30 0d 2c 6a 12 e7 20 74 |%.,`.s%=0.,j.. t| 00006730 25 3e 26 46 20 8c 20 73 25 3d 32 0d 2c 74 22 4e |%>&F . s%=2.,t"N| 00006740 65 77 53 74 61 74 25 3d 28 4e 65 77 53 74 61 74 |ewStat%=(NewStat| 00006750 25 20 80 20 26 46 44 29 20 84 20 73 25 0d 2c 7e |% . &FD) . s%.,~| 00006760 05 e1 0d 2c 88 04 0d 2c 92 0a dd 20 f2 70 6f 70 |...,...,... .pop| 00006770 0d 2c 9c 08 ea 20 41 25 0d 2c a6 0e e3 20 41 25 |.,... A%.,... A%| 00006780 3d 31 20 b8 20 37 0d 2c b0 1b 53 74 61 63 6b 25 |=1 . 7.,..Stack%| 00006790 28 41 25 2d 31 29 3d 53 74 61 63 6b 25 28 41 25 |(A%-1)=Stack%(A%| 000067a0 29 0d 2c ba 05 ed 0d 2c c4 0f 53 74 61 63 6b 25 |).,....,..Stack%| 000067b0 28 37 29 3d 30 0d 2c ce 0c f2 75 64 53 74 61 63 |(7)=0.,...udStac| 000067c0 6b 0d 2c d8 05 e1 0d 2c e2 04 0d 2c ec 0b dd 20 |k.,....,...,... | 000067d0 f2 70 75 73 68 0d 2c f6 08 ea 20 41 25 0d 2d 00 |.push.,... A%.-.| 000067e0 13 e3 20 41 25 3d 36 20 b8 20 30 20 88 20 2d 31 |.. A%=6 . 0 . -1| 000067f0 0d 2d 0a 1b 53 74 61 63 6b 25 28 41 25 2b 31 29 |.-..Stack%(A%+1)| 00006800 3d 53 74 61 63 6b 25 28 41 25 29 0d 2d 14 05 ed |=Stack%(A%).-...| 00006810 0d 2d 1e 05 e1 0d 2d 28 04 0d 2d 32 18 f4 20 45 |.-....-(..-2.. E| 00006820 78 65 63 75 69 74 65 20 61 20 63 6f 6d 6d 61 6e |xecuite a comman| 00006830 64 0d 2d 3c 0a dd 20 f2 65 78 65 0d 2d 46 0e ea |d.-<.. .exe.-F..| 00006840 20 72 25 2c 74 25 2c 62 25 0d 2d 50 18 4e 65 77 | r%,t%,b%.-P.New| 00006850 53 74 61 74 25 3d 52 65 67 25 28 33 29 20 80 20 |Stat%=Reg%(3) . | 00006860 37 0d 2d 5a 0c 72 25 3d a4 66 69 6c 65 0d 2d 64 |7.-Z.r%=.file.-d| 00006870 12 c8 8e 20 4f 50 6e 75 6d 62 65 72 25 20 ca 0d |... OPnumber% ..| 00006880 2d 6e 30 c9 20 20 31 3a 20 74 25 3d 28 57 72 65 |-n0. 1: t%=(Wre| 00006890 67 25 20 80 20 26 46 29 20 2b 20 28 52 65 67 25 |g% . &F) + (Reg%| 000068a0 28 72 25 29 20 80 20 26 46 29 20 3a f2 64 63 0d |(r%) . &F) :.dc.| 000068b0 2d 78 32 20 20 20 20 20 20 20 20 20 74 25 3d 57 |-x2 t%=W| 000068c0 72 65 67 25 20 2b 20 52 65 67 25 28 72 25 29 3a |reg% + Reg%(r%):| 000068d0 f2 63 61 72 72 79 3a f2 7a 65 72 6f 3a f2 70 75 |.carry:.zero:.pu| 000068e0 74 0d 2d 82 28 c9 20 20 32 3a 20 74 25 3d 57 72 |t.-.(. 2: t%=Wr| 000068f0 65 67 25 20 80 20 52 65 67 25 28 72 25 29 3a f2 |eg% . Reg%(r%):.| 00006900 7a 65 72 6f 3a f2 70 75 74 0d 2d 8c 22 c9 20 20 |zero:.put.-.". | 00006910 33 3a 20 74 25 3d 30 3a e7 20 72 25 3d 33 20 8c |3: t%=0:. r%=3 .| 00006920 20 4e 65 77 53 74 61 74 25 3d 30 0d 2d 96 17 20 | NewStat%=0.-.. | 00006930 20 20 20 20 20 20 20 20 f2 7a 65 72 6f 3a f2 70 | .zero:.p| 00006940 75 74 0d 2d a0 31 c9 20 20 34 3a 20 74 25 3d 30 |ut.-.1. 4: t%=0| 00006950 3a 4f 50 63 6f 64 65 25 3d 4f 50 63 6f 64 65 25 |:OPcode%=OPcode%| 00006960 20 80 20 26 33 46 37 46 3a f2 7a 65 72 6f 3a f2 | . &3F7F:.zero:.| 00006970 70 75 74 0d 2d aa 26 c9 20 20 35 3a 20 74 25 3d |put.-.&. 5: t%=| 00006980 52 65 67 25 28 72 25 29 20 82 20 26 46 46 3a f2 |Reg%(r%) . &FF:.| 00006990 7a 65 72 6f 3a f2 70 75 74 0d 2d b4 2a c9 20 20 |zero:.put.-.*. | 000069a0 36 3a 20 74 25 3d 28 52 65 67 25 28 72 25 29 2d |6: t%=(Reg%(r%)-| 000069b0 31 29 20 80 20 26 46 46 3a f2 7a 65 72 6f 3a f2 |1) . &FF:.zero:.| 000069c0 70 75 74 0d 2d be 2a c9 20 20 37 3a 20 74 25 3d |put.-.*. 7: t%=| 000069d0 28 52 65 67 25 28 72 25 29 2d 31 29 20 80 20 26 |(Reg%(r%)-1) . &| 000069e0 46 46 3a f2 7a 65 72 6f 3a f2 70 75 74 0d 2d c8 |FF:.zero:.put.-.| 000069f0 1c 20 20 20 20 20 20 20 20 20 e7 20 74 25 3d 30 |. . t%=0| 00006a00 20 8c 20 f2 69 6e 63 50 43 0d 2d d2 2a c9 20 20 | . .incPC.-.*. | 00006a10 38 3a 20 74 25 3d 28 52 65 67 25 28 72 25 29 2b |8: t%=(Reg%(r%)+| 00006a20 31 29 20 80 20 26 46 46 3a f2 7a 65 72 6f 3a f2 |1) . &FF:.zero:.| 00006a30 70 75 74 0d 2d dc 2a c9 20 20 39 3a 20 74 25 3d |put.-.*. 9: t%=| 00006a40 28 52 65 67 25 28 72 25 29 2b 31 29 20 80 20 26 |(Reg%(r%)+1) . &| 00006a50 46 46 3a f2 7a 65 72 6f 3a f2 70 75 74 0d 2d e6 |FF:.zero:.put.-.| 00006a60 1c 20 20 20 20 20 20 20 20 20 e7 20 74 25 3d 30 |. . t%=0| 00006a70 20 8c 20 f2 69 6e 63 50 43 0d 2d f0 28 c9 20 31 | . .incPC.-.(. 1| 00006a80 30 3a 20 74 25 3d 57 72 65 67 25 20 82 20 52 65 |0: t%=Wreg% . Re| 00006a90 67 25 28 72 25 29 3a f2 7a 65 72 6f 3a f2 70 75 |g%(r%):.zero:.pu| 00006aa0 74 0d 2d fa 20 c9 20 31 31 3a 20 74 25 3d 52 65 |t.-. . 11: t%=Re| 00006ab0 67 25 28 72 25 29 3a f2 7a 65 72 6f 3a f2 70 75 |g%(r%):.zero:.pu| 00006ac0 74 0d 2e 04 24 c9 20 31 32 3a 20 74 25 3d 57 72 |t...$. 12: t%=Wr| 00006ad0 65 67 25 3a 20 e7 20 72 25 3d 32 20 8c 20 67 6f |eg%: . r%=2 . go| 00006ae0 74 6f 25 3d b9 0d 2e 0e 25 20 20 20 20 20 20 20 |to%=....% | 00006af0 20 20 e7 20 72 25 3d 33 20 8c 20 4e 65 77 53 74 | . r%=3 . NewSt| 00006b00 61 74 25 3d 74 25 20 80 20 37 0d 2e 18 11 20 20 |at%=t% . 7.... | 00006b10 20 20 20 20 20 20 20 f2 70 75 74 0d 2e 22 36 c9 | .put.."6.| 00006b20 20 31 34 3a 20 74 25 3d 28 52 65 67 25 28 72 25 | 14: t%=(Reg%(r%| 00006b30 29 3c 3c 31 29 20 84 20 28 52 65 67 25 28 33 29 |)<<1) . (Reg%(3)| 00006b40 20 80 20 31 29 3a f2 63 61 72 72 79 3a f2 70 75 | . 1):.carry:.pu| 00006b50 74 0d 2e 2c 45 c9 20 31 35 3a 20 74 25 3d 28 52 |t..,E. 15: t%=(R| 00006b60 65 67 25 28 72 25 29 3e 3e 31 29 20 84 20 28 28 |eg%(r%)>>1) . ((| 00006b70 52 65 67 25 28 33 29 20 80 20 31 29 3c 3c 37 29 |Reg%(3) . 1)<<7)| 00006b80 20 84 20 28 28 52 65 67 25 28 72 25 29 20 80 20 | . ((Reg%(r%) . | 00006b90 31 29 3c 3c 38 29 0d 2e 36 18 20 20 20 20 20 20 |1)<<8)..6. | 00006ba0 20 20 20 f2 63 61 72 72 79 3a f2 70 75 74 0d 2e | .carry:.put..| 00006bb0 40 36 c9 20 31 36 3a 20 74 25 3d 28 28 52 65 67 |@6. 16: t%=((Reg| 00006bc0 25 28 72 25 29 20 80 20 26 46 29 2d 28 57 72 65 |%(r%) . &F)-(Wre| 00006bd0 67 25 20 80 20 26 46 29 29 20 80 20 26 46 46 20 |g% . &F)) . &FF | 00006be0 3a f2 64 63 0d 2e 4a 36 20 20 20 20 20 20 20 20 |:.dc..J6 | 00006bf0 20 74 25 3d 28 28 52 65 67 25 28 72 25 29 2d 57 | t%=((Reg%(r%)-W| 00006c00 72 65 67 25 29 20 80 20 26 31 46 46 29 3a f2 63 |reg%) . &1FF):.c| 00006c10 61 72 72 79 3a f2 7a 65 72 6f 0d 2e 54 27 20 20 |arry:.zero..T' | 00006c20 20 20 20 20 20 20 20 4e 65 77 53 74 61 74 25 3d | NewStat%=| 00006c30 4e 65 77 53 74 61 74 25 20 82 20 31 3a f2 70 75 |NewStat% . 1:.pu| 00006c40 74 0d 2e 5e 39 c9 20 31 37 3a 20 74 25 3d 28 28 |t..^9. 17: t%=((| 00006c50 52 65 67 25 28 72 25 29 20 80 20 26 46 29 3c 3c |Reg%(r%) . &F)<<| 00006c60 34 29 20 84 20 28 28 52 65 67 25 28 72 25 29 20 |4) . ((Reg%(r%) | 00006c70 80 20 26 46 30 29 3e 3e 34 29 0d 2e 68 3c 20 20 |. &F0)>>4)..h< | 00006c80 20 20 20 20 20 20 20 e7 20 28 28 4f 50 63 6f 64 | . ((OPcod| 00006c90 65 25 20 80 20 26 38 30 29 3c 3e 30 29 20 80 20 |e% . &80)<>0) . | 00006ca0 72 25 3d 33 20 8c 20 4e 65 77 53 74 61 74 25 3d |r%=3 . NewStat%=| 00006cb0 74 25 20 80 20 37 0d 2e 72 11 20 20 20 20 20 20 |t% . 7..r. | 00006cc0 20 20 20 f2 70 75 74 0d 2e 7c 28 c9 20 31 38 3a | .put..|(. 18:| 00006cd0 20 74 25 3d 52 65 67 25 28 72 25 29 20 82 20 57 | t%=Reg%(r%) . W| 00006ce0 72 65 67 25 3a f2 7a 65 72 6f 3a f2 70 75 74 0d |reg%:.zero:.put.| 00006cf0 2e 86 2c c9 20 31 39 3a 20 62 25 3d 28 ac 28 a4 |..,. 19: b%=(.(.| 00006d00 62 6e 29 29 20 80 20 26 46 46 3a 74 25 3d 52 65 |bn)) . &FF:t%=Re| 00006d10 67 25 28 72 25 29 20 80 20 62 25 0d 2e 90 3e 20 |g%(r%) . b%...> | 00006d20 20 20 20 20 20 20 20 20 e7 20 72 25 3d 33 20 8c | . r%=3 .| 00006d30 20 4e 65 77 53 74 61 74 25 3d 4e 65 77 53 74 61 | NewStat%=NewSta| 00006d40 74 25 20 80 20 62 25 20 84 20 28 52 65 67 25 28 |t% . b% . (Reg%(| 00006d50 33 29 20 80 20 26 31 38 29 0d 2e 9a 12 20 20 20 |3) . &18).... | 00006d60 20 20 20 20 20 20 f2 62 70 75 74 0d 2e a4 21 c9 | .bput...!.| 00006d70 20 32 30 3a 20 62 25 3d a4 62 6e 3a 74 25 3d 52 | 20: b%=.bn:t%=R| 00006d80 65 67 25 28 72 25 29 20 84 20 62 25 0d 2e ae 3e |eg%(r%) . b%...>| 00006d90 20 20 20 20 20 20 20 20 20 e7 20 72 25 3d 33 20 | . r%=3 | 00006da0 8c 20 4e 65 77 53 74 61 74 25 3d 4e 65 77 53 74 |. NewStat%=NewSt| 00006db0 61 74 25 20 80 20 62 25 20 84 20 28 52 65 67 25 |at% . b% . (Reg%| 00006dc0 28 33 29 20 80 20 26 31 38 29 0d 2e b8 12 20 20 |(3) . &18).... | 00006dd0 20 20 20 20 20 20 20 f2 62 70 75 74 0d 2e c2 2d | .bput...-| 00006de0 c9 20 32 31 3a 20 62 25 3d a4 62 6e 3a e7 20 28 |. 21: b%=.bn:. (| 00006df0 62 25 20 80 20 52 65 67 25 28 72 25 29 29 3d 30 |b% . Reg%(r%))=0| 00006e00 20 8c 20 f2 69 6e 63 50 43 0d 2e cc 2e c9 20 32 | . .incPC..... 2| 00006e10 32 3a 20 62 25 3d a4 62 6e 3a e7 20 28 62 25 20 |2: b%=.bn:. (b% | 00006e20 80 20 52 65 67 25 28 72 25 29 29 3c 3e 30 20 8c |. Reg%(r%))<>0 .| 00006e30 20 f2 69 6e 63 50 43 0d 2e d6 3b c9 20 32 33 3a | .incPC...;. 23:| 00006e40 20 62 25 3d 4f 50 63 6f 64 65 25 20 80 20 26 46 | b%=OPcode% . &F| 00006e50 46 3a 74 25 3d 28 57 72 65 67 25 20 80 20 26 46 |F:t%=(Wreg% . &F| 00006e60 29 20 2b 20 28 62 25 20 80 20 26 46 29 20 3a f2 |) + (b% . &F) :.| 00006e70 64 63 0d 2e e0 2b 20 20 20 20 20 20 20 20 20 74 |dc...+ t| 00006e80 25 3d 57 72 65 67 25 2b 62 25 3a f2 63 61 72 72 |%=Wreg%+b%:.carr| 00006e90 79 3a f2 7a 65 72 6f 3a f2 77 70 75 74 0d 2e ea |y:.zero:.wput...| 00006ea0 35 c9 20 32 34 3a 20 62 25 3d 4f 50 63 6f 64 65 |5. 24: b%=OPcode| 00006eb0 25 20 80 20 26 46 46 20 3a 74 25 3d 57 72 65 67 |% . &FF :t%=Wreg| 00006ec0 25 20 80 20 62 25 3a f2 7a 65 72 6f 3a f2 77 70 |% . b%:.zero:.wp| 00006ed0 75 74 0d 2e f4 37 c9 20 32 35 3a 20 f2 70 75 73 |ut...7. 25: .pus| 00006ee0 68 3a f2 69 6e 63 50 43 3a 53 74 61 63 6b 25 28 |h:.incPC:Stack%(| 00006ef0 30 29 3d 52 65 67 25 28 32 29 2b 48 69 50 43 25 |0)=Reg%(2)+HiPC%| 00006f00 3a f2 75 64 53 74 61 63 6b 0d 2e fe 53 20 20 20 |:.udStack...S | 00006f10 20 20 20 20 20 20 67 6f 74 6f 25 3d b9 3a 52 65 | goto%=.:Re| 00006f20 67 25 28 32 29 3d 4f 50 63 6f 64 65 25 20 80 20 |g%(2)=OPcode% . | 00006f30 26 46 46 3a 48 69 50 43 25 3d 28 4f 50 63 6f 64 |&FF:HiPC%=(OPcod| 00006f40 65 25 20 80 20 26 37 30 30 29 20 84 20 28 48 69 |e% . &700) . (Hi| 00006f50 50 43 25 20 80 20 26 31 38 30 30 29 0d 2f 08 49 |PC% . &1800)./.I| 00006f60 c9 20 32 36 3a 20 57 61 74 63 68 64 6f 67 54 69 |. 26: WatchdogTi| 00006f70 6d 65 25 3d 30 3a 74 25 3d 52 65 67 25 28 33 29 |me%=0:t%=Reg%(3)| 00006f80 20 84 20 26 31 38 3a f2 75 70 53 74 61 74 28 52 | . &18:.upStat(R| 00006f90 65 67 25 28 33 29 2c 74 25 29 3a 52 65 67 25 28 |eg%(3),t%):Reg%(| 00006fa0 33 29 3d 74 25 0d 2f 12 50 c9 20 32 37 3a 20 67 |3)=t%./.P. 27: g| 00006fb0 6f 74 6f 25 3d b9 3a 52 65 67 25 28 32 29 3d 4f |oto%=.:Reg%(2)=O| 00006fc0 50 63 6f 64 65 25 20 80 20 26 46 46 3a 48 69 50 |Pcode% . &FF:HiP| 00006fd0 43 25 3d 28 4f 50 63 6f 64 65 25 20 80 20 26 37 |C%=(OPcode% . &7| 00006fe0 30 30 29 20 84 20 28 48 69 50 43 25 20 80 20 26 |00) . (HiPC% . &| 00006ff0 31 38 30 30 29 0d 2f 1c 35 c9 20 32 38 3a 20 62 |1800)./.5. 28: b| 00007000 25 3d 4f 50 63 6f 64 65 25 20 80 20 26 46 46 20 |%=OPcode% . &FF | 00007010 3a 74 25 3d 57 72 65 67 25 20 84 20 62 25 3a f2 |:t%=Wreg% . b%:.| 00007020 7a 65 72 6f 3a f2 77 70 75 74 0d 2f 26 34 c9 20 |zero:.wput./&4. | 00007030 32 39 3a 20 57 72 65 67 25 3d 4f 50 63 6f 64 65 |29: Wreg%=OPcode| 00007040 25 20 80 20 26 46 46 3a f2 5f 50 75 74 50 72 61 |% . &FF:._PutPra| 00007050 6d 48 65 78 32 28 34 2c 57 72 65 67 25 29 0d 2f |mHex2(4,Wreg%)./| 00007060 30 45 c9 20 33 30 3a 20 52 65 67 25 28 32 29 3d |0E. 30: Reg%(2)=| 00007070 53 74 61 63 6b 25 28 30 29 20 80 20 26 46 46 3a |Stack%(0) . &FF:| 00007080 48 69 50 43 25 3d 53 74 61 63 6b 25 28 30 29 20 |HiPC%=Stack%(0) | 00007090 80 20 26 37 30 30 3a 67 6f 74 6f 25 3d b9 3a f2 |. &700:goto%=.:.| 000070a0 70 6f 70 0d 2f 3a 40 20 20 20 20 20 20 20 20 20 |pop./:@ | 000070b0 74 25 3d 52 65 67 25 28 26 42 29 20 84 20 26 38 |t%=Reg%(&B) . &8| 000070c0 30 3a f2 75 70 42 28 52 65 67 25 28 26 42 29 2c |0:.upB(Reg%(&B),| 000070d0 74 25 2c 39 2c 38 29 3a 52 65 67 25 28 26 42 29 |t%,9,8):Reg%(&B)| 000070e0 3d 74 25 0d 2f 44 45 c9 20 33 31 3a 20 52 65 67 |=t%./DE. 31: Reg| 000070f0 25 28 32 29 3d 53 74 61 63 6b 25 28 30 29 20 80 |%(2)=Stack%(0) .| 00007100 20 26 46 46 3a 48 69 50 43 25 3d 53 74 61 63 6b | &FF:HiPC%=Stack| 00007110 25 28 30 29 20 80 20 26 37 30 30 3a 67 6f 74 6f |%(0) . &700:goto| 00007120 25 3d b9 3a f2 70 6f 70 0d 2f 4e 3a 20 20 20 20 |%=.:.pop./N: | 00007130 20 20 20 20 20 74 25 3d 4f 50 63 6f 64 65 25 20 | t%=OPcode% | 00007140 80 20 26 46 46 3a 4f 50 63 6f 64 65 25 3d 4f 50 |. &FF:OPcode%=OP| 00007150 63 6f 64 65 25 20 80 20 26 33 46 37 46 3a f2 70 |code% . &3F7F:.p| 00007160 75 74 0d 2f 58 45 c9 20 33 32 3a 20 52 65 67 25 |ut./XE. 32: Reg%| 00007170 28 32 29 3d 53 74 61 63 6b 25 28 30 29 20 80 20 |(2)=Stack%(0) . | 00007180 26 46 46 3a 48 69 50 43 25 3d 53 74 61 63 6b 25 |&FF:HiPC%=Stack%| 00007190 28 30 29 20 80 20 26 37 30 30 3a 67 6f 74 6f 25 |(0) . &700:goto%| 000071a0 3d b9 3a f2 70 6f 70 0d 2f 62 37 c9 20 33 33 3a |=.:.pop./b7. 33:| 000071b0 20 f2 69 6e 63 50 43 3a f2 66 65 74 63 68 4e 3a | .incPC:.fetchN:| 000071c0 53 6c 65 65 70 25 3d b9 3a 24 53 50 6f 69 6e 74 |Sleep%=.:$SPoint| 000071d0 25 28 39 29 3d 22 65 6d 6c 65 64 6f 6e 22 0d 2f |%(9)="emledon"./| 000071e0 6c 45 20 20 20 20 20 20 20 20 20 c8 99 22 57 69 |lE .."Wi| 000071f0 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 00007200 63 6f 6e 57 25 2c 49 58 25 28 39 29 2c 49 59 25 |conW%,IX%(9),IY%| 00007210 28 39 29 2c 49 58 31 25 28 39 29 2c 49 59 31 25 |(9),IX1%(9),IY1%| 00007220 28 39 29 0d 2f 76 49 20 20 20 20 20 20 20 20 20 |(9)./vI | 00007230 74 25 3d 28 52 65 67 25 28 33 29 20 84 20 26 31 |t%=(Reg%(3) . &1| 00007240 30 29 20 80 20 26 46 37 3a 72 25 3d 33 3a f2 75 |0) . &F7:r%=3:.u| 00007250 70 53 74 61 74 28 52 65 67 25 28 33 29 2c 74 25 |pStat(Reg%(3),t%| 00007260 29 3a 52 65 67 25 28 33 29 3d 74 25 0d 2f 80 38 |):Reg%(3)=t%./.8| 00007270 c9 20 33 34 3a 20 62 25 3d 4f 50 63 6f 64 65 25 |. 34: b%=OPcode%| 00007280 20 80 20 26 46 46 3a 74 25 3d 28 62 25 20 80 20 | . &FF:t%=(b% . | 00007290 26 46 29 2d 28 57 72 65 67 25 20 80 20 26 46 29 |&F)-(Wreg% . &F)| 000072a0 3a f2 64 63 0d 2f 8a 30 20 20 20 20 20 20 20 20 |:.dc./.0 | 000072b0 20 74 25 3d 28 28 62 25 2d 57 72 65 67 25 29 20 | t%=((b%-Wreg%) | 000072c0 80 20 26 31 46 46 29 3a f2 63 61 72 72 79 3a f2 |. &1FF):.carry:.| 000072d0 7a 65 72 6f 0d 2f 94 28 20 20 20 20 20 20 20 20 |zero./.( | 000072e0 20 4e 65 77 53 74 61 74 25 3d 4e 65 77 53 74 61 | NewStat%=NewSta| 000072f0 74 25 20 82 20 31 3a f2 77 70 75 74 0d 2f 9e 35 |t% . 1:.wput./.5| 00007300 c9 20 33 35 3a 20 62 25 3d 4f 50 63 6f 64 65 25 |. 35: b%=OPcode%| 00007310 20 80 20 26 46 46 20 3a 74 25 3d 57 72 65 67 25 | . &FF :t%=Wreg%| 00007320 20 82 20 62 25 3a f2 7a 65 72 6f 3a f2 77 70 75 | . b%:.zero:.wpu| 00007330 74 0d 2f a8 1f c9 20 33 37 3a 20 72 25 3d 26 38 |t./... 37: r%=&8| 00007340 31 3a 74 25 3d 57 72 65 67 25 3a f2 62 70 75 74 |1:t%=Wreg%:.bput| 00007350 0d 2f b2 26 c9 20 33 36 3a 20 72 25 3d 28 4f 50 |./.&. 36: r%=(OP| 00007360 63 6f 64 65 25 20 80 20 37 29 20 84 20 26 38 30 |code% . 7) . &80| 00007370 3a f2 62 70 75 74 0d 2f bc 05 cb 0d 2f c6 05 e1 |:.bput./..../...| 00007380 0d ff |..| 00007382