Home » Archimedes archive » Archimedes World » AW-1994-02-Disc1.adf » Disk1Feb94 » !AWFeb94/Goodies/PocketM/!PocketM/!RunImage
!AWFeb94/Goodies/PocketM/!PocketM/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1994-02-Disc1.adf » Disk1Feb94 |
Filename: | !AWFeb94/Goodies/PocketM/!PocketM/!RunImage |
Read OK: | ✔ |
File size: | A707 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10SYS "OS_GetEnv" TO env$ 20IF INSTR(env$," -quit ") THEN 30fileload$=MID$(env$,INSTR(env$,CHR$(34),INSTR(env$,CHR$(34))+1)+1) 40ENDIF 50 PROCWimp_Start("PocketM",4990,3913) 60 PROCUser_SetInitialData 70 PROCCreate_Windows 80 PROCCreate_Menus 90IF fileload$<>" " THEN 100PROCEvent_LoadFile(fileload$,"file_faf") 110PROCWimp_IconPutText(Save_Window%,1,fileload$) 120ENDIF 130 PROCWimp_WaitForEvent 140 PROCWimp_CloseDown 150 END 160 : 170 DEF PROCUser_SetInitialData 180DOSAVE%=TRUE 190SA%=FALSE 200UPDATE%=FALSE 210CD%=FALSE 220PRT%=FALSE 230DIM title% 256 240PSEL%=1 250EE%=TRUE 260PASSALLOW%=FALSE 270PCOVER$="***************" 280correct%=FALSE 290PASS$="POO" 300MONEY%=0 310DD%=27 320MM%=04 330YY%=1993 340STATUS$="Save" 350COL%=TRUE 360POUNDVAL%=156 370DIM A%(15) 380total%=1 390cur%=1 400totpage%=0 410curpage%=0 420DIM AMMOUNT(999) 430DIM STATUS$(999) 440DIM DATE$(999) 450DIM WHO$(999) 460DIM CURTOT(999) 470DIM DD$(999) 480DIM MM$(999) 490DIM YY$(999) 500AMMOUNT()=0 510STATUS$()="" 520DATE$()="" 530WHO$()="" 540CURTOT()=0 550EDII%=FALSE 560 ENDPROC 570 : 580 DEF PROCCreate_Windows 590 PROCWimp_SpritesLoad 600 Info_Window%=FNWimp_WindowLoad("Info") 610 Entry_Window%=FNWimp_WindowLoad("Entry") 620 Main_Window%=FNWimp_WindowLoad("Main") 630 Delete_Window%=FNWimp_WindowLoad("Delete") 640 Options_Window%=FNWimp_WindowLoad("Options") 650 Save_Window%=FNWimp_WindowLoad("Save") 660 Password_Window%=FNWimp_WindowLoad("Password") 670 Save2_Window%=FNWimp_WindowLoad("Save2") 680 Print_Window%=FNWimp_WindowLoad("Print") 690 Close_Window%=FNWimp_WindowLoad("Close") 700 Bar_Icon%=FNWimp_IconBar("!PocketM") 710PROCWimp_IconPutText(Options_Window%,3,"") 720PROCresetentry 730 ENDPROC 740 : 750 DEF FNEvent_Save(window%) 760 CASE window% OF 770 WHEN Save_Window% :=TRUE 780 WHEN Save2_Window% : =TRUE 790 OTHERWISE :=FALSE 800 ENDCASE 810 : 820 DEF FNEvent_Sprites(window%)=sprites% 830 : 840 DEF PROCCreate_Menus 850 Save_Menu%=FNWimp_MenuCreate("Save\Pocket>Save_Window%\Text>Save2_Window%") 860 Bar_Menu%=FNWimp_MenuCreate("PocketM\Info>Info_Window%\Password>Options_Window%\Save>Save_Menu%\Clear Data\Quit") 870 Main_Menu%=FNWimp_MenuCreate("PocketM\Start\Back\Print\Add\Delete\Next\End") 880PROCWimp_MenuDisable(Bar_Menu%,3) 890PROCWimp_MenuDottedLine(Bar_Menu%,1) 900PROCWimp_MenuDottedLine(Bar_Menu%,3) 910PROCWimp_MenuDottedLine(Bar_Menu%,4) 920PROCWimp_MenuDottedLine(Main_Menu%,2) 930PROCWimp_MenuDottedLine(Main_Menu%,5) 940 ENDPROC 950 : 960 DEF FNEvent_Menu(window%) 970 CASE window% OF 980 WHEN Bar_Window% : =Bar_Menu% 990 WHEN Main_Window% : =Main_Menu% 1000 OTHERWISE : =FALSE 1010 ENDCASE 1020 : 1030 DEF PROCEvent_WindowClose(window%,buttons%) 1040 CASE window% OF 1050 WHEN Entry_Window% : PROCWimp_WindowBringToTop(Main_Window%) 1060 ENDCASE 1070 ENDPROC 1080 : 1090 DEF PROCEvent_Draw(window%,x_origin%,y_origin%) 1100 CASE window% OF 1110 WHEN Info_Window% : PROCUser_DrawInfoWindow 1120 ENDCASE 1130 ENDPROC 1140 : 1150 DEF PROCUser_DrawInfoWindow 1160 ENDPROC 1170 : 1180 DEF PROCEvent_MouseClick(window%,icon%,button%,x%,y%) 1190 CASE window% OF 1200 WHEN Bar_Window% : PROCUser_MouseBar 1210 WHEN Info_Window% : PROCUser_MouseInfo( button%,icon%) 1220 WHEN Entry_Window% : PROCUser_MouseEntry( button%,icon%) 1230 WHEN Main_Window% : PROCUser_MouseMain( button%,icon%) 1240 WHEN Delete_Window% : PROCUser_MouseDelete( button%,icon%) 1250 WHEN Options_Window% : PROCUser_MouseOptions( button%,icon%) 1260 WHEN Print_Window% : PROCUser_MousePrint( button%,icon%) 1270 WHEN Close_Window% : PROCUser_MouseClose( button%,icon%) 1280 ENDCASE 1290 ENDPROC 1300 : 1310 DEF PROCUser_MouseClose( button%,icon%) 1320 IF icon%=1 THEN 1330SA%=TRUE 1340PROCunbox 1350PROCWimp_WindowClose(Close_Window%) 1360UPDATE%=FALSE 1370PROCWimp_WindowBringToTop(Save_Window%) 1380A$=FNWimp_IconText(Save_Window%,1) 1390PROCWimp_IconCaret(Save_Window%,1,LEN(A$)) 1400ENDIF 1410 IF icon%=2 THEN 1420PROCunbox 1430UPDATE%=FALSE 1440PROCWimp_WindowClose(Close_Window%) 1450CD%=TRUE 1460ENDIF 1470 IF icon%=3 THEN 1480PROCunbox 1490PROCWimp_WindowClose(Close_Window%) 1500ENDIF 1510IF CD%=TRUE THEN PROCWimp_CloseDown 1520ENDPROC 1530 DEF PROCUser_MouseBar 1540 PROCWimp_WindowBringToTop(Main_Window%) 1550 ENDPROC 1560 : 1570 DEF PROCUser_MousePrint( button%,icon%) 1580 IF icon%=5 THEN PROCpdsel:PSEL%=1:PROCpsel 1590 IF icon%=6 THEN PROCpdsel:PSEL%=2:PROCpsel 1600 IF icon%=7 THEN PROCpdsel:PSEL%=3:PROCpsel 1610 IF icon%=4 AND PRT%=TRUE THEN 1620 IF PSEL%=1 THEN 1630 PROCprint 1640 ENDIF 1650 IF PSEL%=2 THEN 1660 A=VAL(FNWimp_IconText(Print_Window%,8)) 1670 IF (A-1)<(totpage%+1) AND (A-1)>-1 THEN 1680 PROCprint 1690 ENDIF 1700 ENDIF 1710 IF PSEL%=3 THEN 1720 A=VAL(FNWimp_IconText(Print_Window%,9)) 1730 B=VAL(FNWimp_IconText(Print_Window%,11)) 1740 IF (A-1)>-1 AND (B-1)<(total%-1) THEN 1750 PROCprint 1760 ENDIF 1770 ENDIF 1780 ENDIF 1790 ENDPROC 1800 : 1810 DEF PROCUser_MouseInfo( button%,icon%) 1820 ENDPROC 1830 : 1840 DEF PROCUser_MouseEntry( button%,icon%) 1850 IF icon%=7 AND STATUS$="Spend" THEN STATUS$="Save":PROCWimp_IconPutText(Entry_Window%,3,STATUS$):PROCWimp_IconEnable(Entry_Window%,16) 1860 IF icon%=8 AND STATUS$="Save" THEN 1870STATUS$="Spend" 1880PROCWimp_IconPutText(Entry_Window%,3,STATUS$) 1890PROCWimp_IconDisable(Entry_Window%,16) 1900PROCWimp_IconPutText(Entry_Window%,16,"") 1910A$=FNWimp_IconText(Entry_Window%,5) 1920PROCWimp_IconCaret(Entry_Window%,5,LEN(A$)) 1930ENDIF 1940 IF icon%=18 THEN PROCWimp_WindowClose(Entry_Window%):PROCresetentry 1950 IF icon%=17 THEN 1960IF EE%=TRUE THEN 1970A$=FNWimp_IconText(Entry_Window%,5) 1980IF A$<>"" AND A$<>"." AND VAL(A$)<>0 THEN 1990PROCread 2000PROCinput 2010ENDIF 2020ELSE 2030A$=FNWimp_IconText(Entry_Window%,5) 2040IF A$<>"" AND A$<>"." AND VAL(A$)<>0 THEN 2050 AMMOUNT(AABB)=VAL(FNWimp_IconText(Entry_Window%,5)) 2060 STATUS$(AABB)=STATUS$ 2070 DATE$(AABB)=FNWimp_IconText(Entry_Window%,11)+"/"+FNWimp_IconText(Entry_Window%,12)+"/"+FNWimp_IconText(Entry_Window%,13) 2080 DD$(AABB)=FNWimp_IconText(Entry_Window%,11) 2090 MM$(AABB)=FNWimp_IconText(Entry_Window%,12) 2100 YY$(AABB)=FNWimp_IconText(Entry_Window%,13) 2110 WHO$(AABB)=FNWimp_IconText(Entry_Window%,16) 2120 UPDATE%=TRUE 2130 PROCrecalc 2140 PROCinput 2150ENDIF 2160ENDIF 2170IF total%>1 THEN PROCWimp_MenuEnable(Bar_Menu%,3) 2180REMPROCWimp_WindowClose(Entry_Window%) 2190PROCresetentry 2200PROCcutdate 2210PROCWimp_IconCaret(Entry_Window%,5,0) 2220ENDIF 2230 ENDPROC 2240 : 2250 DEF PROCUser_MouseMain( button%,icon%) 2260 IF icon%>70 AND icon%<85 THEN icon%-=70 2270 IF icon%>16 AND icon%<31 THEN icon%-=16 2280 IF icon%>31 AND icon%<46 THEN icon%-=31 2290 IF icon%>45 AND icon%<57 THEN icon%-=45 2300 IF icon%>85 AND icon%<100 THEN icon%-=85 2310 IF icon%>0 AND icon%<15 THEN 2320 A=(curpage%*14)+icon% 2330 IF A<total% AND A>0 THEN 2340 PROCWimp_WindowBringToTop(Entry_Window%) 2350 PROCWimp_IconPutText(Entry_Window%,5,STR$(AMMOUNT(A))) 2360 PROCWimp_IconCaret(Entry_Window%,5,LEN(STR$(AMMOUNT(A)))) 2370 PROCWimp_IconCaret(Entry_Window%,5,LEN(STR$(AMMOUNT(A)))) 2380 PROCWimp_IconPutText(Entry_Window%,3,STATUS$(A)) 2390 UPDATE%=TRUE 2400 STATUS$=STATUS$(A) 2410 IF STATUS$(A)="Spend" THEN PROCWimp_IconDisable(Entry_Window%,16) ELSE PROCWimp_IconEnable(Entry_Window%,16) 2420 PROCWimp_IconPutText(Entry_Window%,11,DD$(A)) 2430 PROCWimp_IconPutText(Entry_Window%,12,MM$(A)) 2440 PROCWimp_IconPutText(Entry_Window%,13,YY$(A)) 2450 PROCWimp_IconPutText(Entry_Window%,16,WHO$(A)) 2460 EE%=FALSE 2470 AABB=A 2480 ENDIF 2490 ENDIF 2500 IF icon%=66 AND total%>1 THEN PROCopenprinter:PROCWimp_WindowBringToTop(Print_Window%):PROCpsel 2510 IF icon%=67 AND total%>1 THEN PROCWimp_WindowBringToTop(Delete_Window%):PROCWimp_IconCaret(Delete_Window%,3,0) 2520 IF icon%=15 THEN 2530PROCcutdate 2540EE%=TRUE 2550PROCWimp_WindowBringToTop(Entry_Window%) 2560 PROCWimp_IconPutText(Entry_Window%,5,"") 2570 PROCWimp_IconPutText(Entry_Window%,3,"Save") 2580 STATUS$="Save" 2590 PROCWimp_IconEnable(Entry_Window%,16) 2600PROCWimp_IconCaret(Entry_Window%,5,0) 2610ENDIF 2620 IF icon%=62 AND curpage%>0 THEN curpage%-=1:PROCinput 2630 IF icon%=61 AND curpage%<totpage% THEN curpage%+=1:PROCinput 2640 IF icon%=64 AND curpage%>0 THEN curpage%=0:PROCinput 2650 IF icon%=63 AND curpage%<totpage% THEN curpage%=totpage%:PROCinput 2660 ENDPROC 2670 : 2680 DEF PROCUser_MouseDelete( button%,icon%) 2690 IF icon%=4 THEN 2700NUM$=FNWimp_IconText(Delete_Window%,3) 2710IF NUM$<>"" AND VAL(NUM$)<total% AND VAL(NUM$)>0 THEN 2720do%=FNWimp_WindowCancel("Delete","Are you sure you want to delete number "+NUM$+" ?") 2730IF do%=FALSE THEN 2740PROCWimp_IconPutText(Delete_Window%,3,"") 2750PROCWimp_IconCaret(Delete_Window%,3,0) 2760REMPROCWimp_WindowClose(Delete_Window%) 2770ENDIF 2780 2790IF do%=TRUE THEN 2800IF VAL(NUM$)>0 AND VAL(NUM$)<total% THEN 2810UPDATE%=TRUE 2820cur%=VAL(NUM$) 2830IF cur%=total% THEN total%-=1 2840 2850IF cur%<total% THEN 2860FOR A=VAL(NUM$) TO total% 2870AMMOUNT(A)=AMMOUNT(A+1) 2880STATUS$(A)=STATUS$(A+1) 2890DATE$(A)=DATE$(A+1) 2900WHO$(A)=WHO$(A+1) 2910CURTOT(A)=CURTOT(A+1) 2920NEXT A 2930total%-=1 2940ENDIF 2950 2960IF (total%-1)/15<totpage% THEN 2970totpage%-=1 2980IF totpage%>curpage% THEN curpage%-=1 2990ENDIF 3000 3010PROCpage 3020PROCrecalc 3030PROCinput 3040ENDIF 3050PROCWimp_IconPutText(Delete_Window%,3,"") 3060PROCWimp_IconCaret(Delete_Window%,3,0) 3070REMPROCWimp_WindowClose(Delete_Window%) 3080IF total%=1 THEN PROCWimp_MenuDisable(Bar_Menu%,3) 3090ENDIF 3100ENDIF 3110ENDIF 3120 IF icon%=5 THEN PROCWimp_IconPutText(Delete_Window%,3,""):PROCWimp_WindowClose(Delete_Window%) 3130 ENDPROC 3140 : 3150 DEF PROCUser_MouseOptions( button%,icon%) 3160 IF icon%=2 AND PASSALLOW%=TRUE THEN PROCWimp_IconPutText(Options_Window%,3,PASS$):WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:WAIT:PROCWimp_IconPutText(Options_Window%,3,LEFT$(PCOVER$,LEN(PASS$))) 3170PROCWimp_IconPutText(Password_Window%,3,"") 3180 ENDPROC 3190 : 3200 DEF PROCEvent_KeyPress(window%,icon%,key%) 3210 CASE window% OF 3220 WHEN Entry_Window% : PROCUser_KeyPressEntry( icon%,key%) 3230 WHEN Delete_Window% : PROCUser_KeyPressDelete( icon%,key%) 3240 WHEN Password_Window% : PROCUser_KeyPressPassword( icon%,key%) 3250 WHEN Options_Window% : PROCUser_KeyPressOptions( icon%,key%) 3260 ENDCASE 3270 ENDPROC 3280 : 3290 DEF PROCUser_KeyPressEntry( icon%,key%) 3300 IF key%=13 AND icon%=5 THEN PROCWimp_IconCaret(Entry_Window%,11,LEN(FNWimp_IconText(Entry_Window%,11))) 3310 IF key%=13 AND icon%=11 THEN PROCWimp_IconCaret(Entry_Window%,12,LEN(FNWimp_IconText(Entry_Window%,12))) 3320 IF key%=13 AND icon%=12 THEN PROCWimp_IconCaret(Entry_Window%,13,LEN(FNWimp_IconText(Entry_Window%,13))) 3330 IF key%=13 AND icon%=13 AND STATUS$="Save" THEN PROCWimp_IconCaret(Entry_Window%,16,LEN(FNWimp_IconText(Entry_Window%,16))) 3340 IF key%=13 AND icon%=13 AND STATUS$="Spend" THEN PROCUser_MouseEntry( 4,17) 3350 IF key%=13 AND icon%=16 THEN PROCUser_MouseEntry( 4,17) 3360 ENDPROC 3370 : 3380 DEF PROCUser_KeyPressDelete( icon%,key%) 3390 ENDPROC 3400 : 3410 DEF PROCUser_KeyPressPassword( icon%,key%) 3420 NEWPASS$="" 3430 IF key%=13 THEN 3440NEWPASS$=FNWimp_IconText(Password_Window%,2) 3450PROCcheckpassword 3460ENDIF 3470 ENDPROC 3480 : 3490 DEF PROCUser_KeyPressOptions( icon%,key%) 3500 IF key%=13 THEN 3510 POUNDVAL%=VAL(FNWimp_IconText(Options_Window%,3)) 3520 ENDIF 3530 ENDPROC 3540 : 3550 DEF PROCEvent_MenuChoice(menu%) 3560 CASE menu% OF 3570 WHEN Bar_Menu% : PROCUser_MenuChoiceBar 3580 WHEN Main_Menu% : PROCUser_MenuChoiceMain 3590 ENDCASE 3600 ENDPROC 3610: 3620 DEF PROCUser_MenuChoiceMain 3630 CASE FNWimp_MenuChoice(0) OF 3640 WHEN 1 : PROCUser_MouseMain( 4,64) 3650 WHEN 2 : PROCUser_MouseMain( 4,62) 3660 WHEN 3 : PROCUser_MouseMain( 4,66) 3670 WHEN 4 : PROCUser_MouseMain( 4,15) 3680 WHEN 5 : PROCUser_MouseMain( 4,67) 3690 WHEN 6 : PROCUser_MouseMain( 4,61) 3700 WHEN 7 : PROCUser_MouseMain( 4,63) 3710 PROCWimp_MenuAdjustOn(Main_Menu%) 3720 ENDCASE 3730 ENDPROC 3740 : 3750 DEF PROCUser_MenuChoiceBar 3760 CASE FNWimp_MenuChoice(0) OF 3770 WHEN 1 : 3780 WHEN 2 : 3790 WHEN 4 3800ANS%=FNWimp_WindowCancel("!PocketM","Are you sure you want to clear the data?") 3810IF ANS%=TRUE THEN 3820PROCWimp_IconPutText(Save_Window%,1,"PocketData") 3830PROCWimp_IconPutText(Save2_Window%,1,"PocketText") 3840AMMOUNT()=0 3850STATUS$()="" 3860DATE$()="" 3870WHO$()="" 3880CURTOT()=0 3890PROCclearmain 3900total%=1 3910cur%=1 3920totpage%=0 3930curpage%=0 3940UPDATE%=FALSE 3950PROCWimp_MenuDisable(Bar_Menu%,3) 3960ENDIF 3970 WHEN 5 3980IF UPDATE%=TRUE THEN 3990PROCWimp_IconPutText(Close_Window%,0,"This file has been modified") 4000PROCWimp_WindowBringToTop(Close_Window%) 4010PROCmousebox(Close_Window%) 4020ENDIF 4030IF UPDATE%=FALSE THEN finished%=TRUE 4040 ENDCASE 4050 PROCWimp_MenuAdjustOn(Bar_Menu%) 4060 ENDPROC 4070 : 4080 DEF PROCEvent_LoadFile(file$,type$) 4090haa$=file$ 4100PROCWimp_IconPutText(Options_Window%,3,"") 4110PASS$="" 4120file2$=file$ 4130X%=OPENIN(file$) 4140INPUT #X%,LONG 4150INPUT #X%,VCN% 4160IF LONG<>0 THEN 4170VCN%=VCN%/2 4180LONG=LONG/VCN% 4190FOR AB=1 TO LONG 4200INPUT #X%,A%(AB) 4210A%(AB)=A%(AB) EOR VCN% 4220NEXT AB 4230FOR AB=1 TO LONG 4240A%(AB)=A%(AB)/VCN% 4250PASS$=PASS$+CHR$(A%(AB)) 4260NEXT AB 4270CLOSE #X% 4280PROCWimp_IconPutText(Password_Window%,2,"") 4290PROCWimp_WindowBringToTop(Password_Window%) 4300PROCmousebox(Password_Window%) 4310PROCWimp_IconCaret(Password_Window%,2,0) 4320ELSE 4330CLOSE #X% 4340PROCparttwo 4350ENDIF 4360ENDPROC 4370 4380DEF PROCparttwo 4390IF LONG=0 OR correct%=TRUE THEN 4400X%=OPENIN(file2$) 4410INPUT #X%,LONG 4420INPUT #X%,VCN% 4430VCN%=VCN%/2 4440IF LONG<>0 THEN 4450FOR AB=1 TO LONG/VCN% 4460INPUT #X%,A%(AB) 4470NEXT AB 4480ENDIF 4490REM \/\/\/\/\/\/\/ Put load in here \/\/\/\/\/\/\/\/ 4500INPUT #X%,total% 4510INPUT #X%,totpage% 4520FOR A=0 TO total%-1 4530INPUT #X%,AMMOUNT(A) 4540INPUT #X%,STATUS$(A) 4550INPUT #X%,DATE$(A) 4560INPUT #X%,WHO$(A) 4570INPUT #X%,CURTOT(A) 4580INPUT #X%,DD$(A) 4590INPUT #X%,MM$(A) 4600INPUT #X%,YY$(A) 4610NEXTA 4620UPDATE%=FALSE 4630PROCWimp_WindowBringToTop(Main_Window%) 4640PROCinput 4650CLOSE #X% 4660ENDIF 4670IF total%>1 THEN PROCWimp_MenuEnable(Bar_Menu%,3) 4680IF correct%=TRUE THEN PROCWimp_WindowClose(Password_Window%):correct%=FALSE 4690ENDPROC 4700 : 4710 DEF PROCEvent_SaveFile(file$,window%) 4720IF window%=Save_Window% THEN 4730LOCAL ERROR 4740ON ERROR LOCAL PROCerror 4750IF DOSAVE%=TRUE THEN 4760SETPASS1$=FNWimp_IconText(Save_Window%,4) 4770SETPASS2$=FNWimp_IconText(Save_Window%,5) 4780IF SETPASS1$<>SETPASS2$ THEN PROCWimp_WindowAlert("Password Protection","The two passwords are not the same. File not saved.") 4790IF SETPASS1$=SETPASS2$ THEN 4800IF SETPASS1$<>"" THEN 4810VCN%=INT(RND(1000000))+1 4820X%=OPENOUT(file$) 4830FOR AB=1 TO LEN(SETPASS1$) 4840A%(AB)=ASC(MID$(SETPASS1$,AB,1)) 4850NEXT AB 4860PRINT #X%,LEN(SETPASS1$)*VCN% 4870PRINT #X%,VCN%*2 4880PASS$=SETPASS1$ 4890PROCWimp_IconPutText(Options_Window%,3,LEFT$(PCOVER$,LEN(PASS$))) 4900FOR AB=1 TO LEN(SETPASS1$) 4910A%(AB)=A%(AB)*VCN% 4920PRINT #X%,A%(AB) EOR VCN% 4930NEXT AB 4940ELSE 4950X%=OPENOUT(file$) 4960PRINT #X%,0 4970PRINT #X%,0 4980ENDIF 4990REM \/\/\/\/\/\/\/\/\/ Put Save in here \/\/\/\/\/\/\/ 5000PRINT #X%,total% 5010PRINT #X%,totpage% 5020FOR A=0 TO total%-1 5030PRINT #X%,AMMOUNT(A) 5040PRINT #X%,STATUS$(A) 5050PRINT #X%,DATE$(A) 5060PRINT #X%,WHO$(A) 5070PRINT #X%,CURTOT(A) 5080PRINT #X%,DD$(A) 5090PRINT #X%,MM$(A) 5100PRINT #X%,YY$(A) 5110NEXTA 5120UPDATE%=FALSE 5130CLOSE #X% 5140OSCLI("SETTYPE ")+file$+" FAF" 5150PROCWimp_MenuClose 5160REM PROCWimp_IconPutText(Save_Window%,4,"") 5170REM PROCWimp_IconPutText(Save_Window%,5,"") 5180ENDIF 5190ENDIF 5200ENDIF 5210IF window%=Save2_Window% THEN 5220LOCAL ERROR 5230ON ERROR LOCAL PROCerror 5240IF DOSAVE%=TRUE THEN 5250VDU21 5260OSCLI("SPOOL "+file$) 5270PRINT"+---+-----------+-----+----------+--------------------+-----------+";:PRINTCHR$(10); 5280PRINT"|Num| Ammount |State| Date | Who gave it to you | TOTAL |";:PRINTCHR$(10); 5290PRINT"+---+-----------+-----+----------+--------------------+-----------+";:PRINTCHR$(10); 5300FOR A=1 TO total%-1 5310A$=STR$(A) 5320AA=LEN(A$) 5330S$=FNspc(3-AA) 5340B$=STR$(AMMOUNT(A)) 5350B$=FNzero(B$) 5360BB=LEN(B$) 5370SS$=FNspc(11-BB) 5380IF STATUS$(A)="Spend" THEN C$="Spend" 5390IF STATUS$(A)="Save" THEN C$="Save " 5400CC=LEN(DATE$(A)) 5410SSS$=FNspc(10-CC) 5420DD=LEN(WHO$(A)) 5430SSSS$=FNspc(20-DD) 5440E$=STR$(CURTOT(A)) 5450E$=FNzero(E$) 5460EE=LEN(E$) 5470SSSSS$=FNspc(11-EE) 5480PRINT"|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|";:PRINTCHR$(10); 5490NEXTA 5500PRINT"+---+-----------+-----+----------+--------------------+-----------+";:PRINTCHR$(10); 5510OSCLI("SPOOL") 5520OSCLI("SETTYPE "+file$+" FFF") 5530VDU6 5540IF file$="<Wimp$Scrap>" THEN 5550PROCWimp_SendToEdit(file$) 5560PROCWimp_IconPutText(Save2_Window%,1,ACE$) 5570ENDIF 5580ENDIF 5590ENDIF 5600VDU6 5610IF DOSAVE%=FALSE THEN DOSAVE%=TRUE 5620ENDPROC 5630 : 5640 DEF PROCcutdate 5650 DD%=VAL(MID$(TIME$,5,2)) 5660 MM$=MID$(TIME$,8,3) 5670 IF MM$="Jan" THEN MM%=1 5680 IF MM$="Feb" THEN MM%=2 5690 IF MM$="Mar" THEN MM%=3 5700 IF MM$="Apr" THEN MM%=4 5710 IF MM$="May" THEN MM%=5 5720 IF MM$="Jun" THEN MM%=6 5730 IF MM$="Jul" THEN MM%=7 5740 IF MM$="Aug" THEN MM%=8 5750 IF MM$="Sep" THEN MM%=9 5760 IF MM$="Oct" THEN MM%=10 5770 IF MM$="Nov" THEN MM%=11 5780 IF MM$="Dec" THEN MM%=12 5790 YY%=VAL(MID$(TIME$,12,4)) 5800PROCWimp_IconPutText(Entry_Window%,11,STR$(DD%)) 5810PROCWimp_IconPutText(Entry_Window%,12,STR$(MM%)) 5820PROCWimp_IconPutText(Entry_Window%,13,STR$(YY%)) 5830 ENDPROC 5840 : 5850 DEF PROCcheckpassword 5860 IF PASS$=NEWPASS$ THEN 5870correct%=TRUE 5880PASSALLOW%=TRUE 5890PROCparttwo 5900PROCWimp_IconPutText(Options_Window%,3,LEFT$(PCOVER$,LEN(PASS$))) 5910PROCWimp_IconPutText(Save_Window%,4,PASS$) 5920PROCWimp_IconPutText(Save_Window%,5,PASS$) 5930PROCWimp_IconPutText(Save_Window%,1,haa$) 5940ELSE 5950PASSALLOW%=FALSE 5960PROCWimp_WindowClose(Password_Window%):PROCWimp_WindowAlert("Password Protection","The file has not been loaded due to incorrect password entry.") 5970correct%=FALSE 5980ENDIF 5990SYS"OS_ReadModeVariable",-1,11 TO ,,Xpic 6000SYS"OS_ReadModeVariable",-1,12 TO ,,Ypic 6010SYS"OS_ReadModeVariable",-1,4 TO ,,Xfact 6020SYS"OS_ReadModeVariable",-1,5 TO ,,Yfact 6030MOUSE RECTANGLE 0,0,Xpic<<Xfact,Ypic<<Yfact 6040 ENDPROC 6050 : 6060DEF PROCmousebox(w%) 6070wimp%!0=w% 6080SYS"Wimp_GetWindowOutline",,wimp% 6090MOUSE RECTANGLE wimp%!4+2,wimp%!8+2,wimp%!12-wimp%!4-4,wimp%!16-wimp%!8-4 6100ENDPROC 6110 : 6120DEF PROCresetentry 6130PROCWimp_IconPutText(Entry_Window%,5,"") 6140PROCWimp_IconPutText(Entry_Window%,3,STATUS$) 6150PROCWimp_IconPutText(Entry_Window%,16,"") 6160ENDPROC 6170 : 6180 DEF PROCread 6190 UPDATE%=TRUE 6200 AMMOUNT(total%)=VAL(FNWimp_IconText(Entry_Window%,5)) 6210 STATUS$(total%)=STATUS$ 6220 DATE$(total%)=FNWimp_IconText(Entry_Window%,11)+"/"+FNWimp_IconText(Entry_Window%,12)+"/"+FNWimp_IconText(Entry_Window%,13) 6230 DD$(total%)=FNWimp_IconText(Entry_Window%,11) 6240 MM$(total%)=FNWimp_IconText(Entry_Window%,12) 6250 YY$(total%)=FNWimp_IconText(Entry_Window%,13) 6260 WHO$(total%)=FNWimp_IconText(Entry_Window%,16) 6270 IF STATUS$(total%)="Save" THEN CURTOT(total%)=CURTOT(total%-1)+AMMOUNT(total%) 6280 IF STATUS$(total%)="Spend" THEN CURTOT(total%)=CURTOT(total%-1)-AMMOUNT(total%) 6290 total%+=1 6300 cur%=total% 6310 PROCpage 6320 ENDPROC 6330 6340 DEF PROCinput 6350 PROCWimp_IconPutText(Main_Window%,69,STR$(curpage%+1)) 6360 PROCWimp_IconPutText(Main_Window%,65,STR$(totpage%+1)) 6370 B=curpage%*14 6380 FOR A=1 TO 14 6390IF AMMOUNT(A+B)<>0 THEN 6400 PROCWimp_IconPutText(Main_Window%,A+70,STR$(A+B)) 6410b$=STR$(AMMOUNT(A+B)) 6420b$=FNcut(b$) 6430a$=FNzero(b$) 6440 PROCWimp_IconPutText(Main_Window%,A,a$) 6450 PROCWimp_IconPutText(Main_Window%,A+16,STATUS$(A+B)) 6460 PROCWimp_IconPutText(Main_Window%,A+31,DATE$(A+B)) 6470 PROCWimp_IconPutText(Main_Window%,A+45,WHO$(A+B)) 6480b$=STR$(CURTOT(A+B)) 6490b$=FNcut(b$) 6500a$=FNzero(b$) 6510 PROCWimp_IconPutText(Main_Window%,A+85,a$) 6520ELSE 6530PROCWimp_IconPutText(Main_Window%,A+70,"") 6540 PROCWimp_IconPutText(Main_Window%,A,"") 6550 PROCWimp_IconPutText(Main_Window%,A+16,"") 6560 PROCWimp_IconPutText(Main_Window%,A+31,"") 6570 PROCWimp_IconPutText(Main_Window%,A+45,"") 6580 PROCWimp_IconPutText(Main_Window%,A+85,"") 6590ENDIF 6600 NEXTA 6610 ENDPROC 6620 6630 DEF PROCclearmain 6640 FOR A=1 TO 14 6650 PROCWimp_IconPutText(Main_Window%,A+70,"") 6660 PROCWimp_IconPutText(Main_Window%,A,"") 6670 PROCWimp_IconPutText(Main_Window%,A+16,"") 6680 PROCWimp_IconPutText(Main_Window%,A+31,"") 6690 PROCWimp_IconPutText(Main_Window%,A+45,"") 6700 PROCWimp_IconPutText(Main_Window%,A+85,"") 6710 NEXTA 6720 PROCWimp_IconPutText(Main_Window%,69,"1") 6730 PROCWimp_IconPutText(Main_Window%,65,"1") 6740 ENDPROC 6750 : 6760 DEF PROCpage 6770 curpage%=INT((cur%-1)/15) 6780 IF curpage%>totpage% THEN totpage%=curpage% 6790 ENDPROC 6800 : 6810 DEF PROCrecalc 6820 FOR A=1 TO total% 6830 IF STATUS$(A)="Save" THEN CURTOT(A)=CURTOT(A-1)+AMMOUNT(A) 6840 IF STATUS$(A)="Spend" THEN CURTOT(A)=CURTOT(A-1)-AMMOUNT(A) 6850 NEXTA 6860 ENDPROC 6870: 6880REM ******************************************************************** 6890: 6900DEF PROCWimp_WindowAlert(title$,message$) 6910PROCWimp_WindowAlertBox(title$,message$,0) 6920ENDPROC 6930: 6940DEF PROCWimp_WindowAlertBox(title$,message$,button%) 6950LOCAL response% 6960$(wimp%+4)=message$ 6970CASE button% OF 6980 WHEN 2 : response%=1 6990 WHEN 1 : response%=15 7000 WHEN 3 : response%=(1<<5)+16 7010 WHEN 4 : response%=(1<<6)+16 7020OTHERWISE : response%=16 7030ENDCASE 7040SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response% 7050ENDPROC 7060: 7070DEF FNWimp_WindowCancel(title$,message$) 7080$(wimp%+4)=message$ 7090response%=23 7100SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response% 7110=response%-2 7120: 7130DEF PROCWimp_WindowErrorBox(title$,message$) 7140PROCWimp_WindowAlertBox(title$,message$,2) 7150ENDPROC 7160: 7170DEF FNWimp_WindowTitle(window%) 7180wimp%!0=window% 7190SYS "Wimp_GetWindInfo",,wimp% 7200IF ((wimp%!60)AND&100)=0 ERROR 1,"Title isn't indirected" 7210=$(wimp%!76) 7220: 7230DEF FNWimp_WindowLoad(window$) 7240=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates") 7250: 7260DEF FNWimp_WindowLoadFrom(window$,template$) 7270LOCAL c%,i%,n%,j%,sp$,sp2$ 7280SYS "Wimp_OpenTemplate",,template$ 7290SYS "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 TO ,,icons% 7300CASE sprites% OF 7310 WHEN 1 : wimp%!64=sprites% 7320 OTHERWISE : wimp%!64=FNEvent_Sprites(window%) 7330ENDCASE 7340SYS "Wimp_CreateWindow",,wimp% TO c% 7350SYS "Wimp_CloseTemplate" 7360SYS "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8) 7370CASE wimp%!40 OF 7380 WHEN -1 : 7390 OTHERWISE : i%=40 7400 REPEAT 7410 wimp%!4=wimp%!i% : wimp%!0=c% 7420 SYS "Wimp_GetIconState",,wimp% 7430 sp$=FNWimp_GetStringAtAddress(wimp%!28) 7440 SYS "Wimp_DeleteIcon",,wimp% 7450 CASE sprites% OF 7460 WHEN 1 : wimp%!32=1 7470 OTHERWISE : 7480 SYS "OS_SpriteOp",&108,sprites% TO ,,,n% 7490 j%=0 7500 REPEAT : j%+=1 7510 SYS "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j% 7520 sp2$=FNWimp_GetStringAtAddress(pointer_block%) 7530 UNTIL j%=n% OR sp$=sp2$ 7540 IF sp$=sp2$ THEN wimp%!32=sprites% ELSE wimp%!32=1 7550 ENDCASE 7560 wimp%!4=c% 7570 SYS "Wimp_CreateIcon",,wimp%+4 TO handle% 7580 i%+=4 7590 UNTIL (wimp%!i%)=-1 7600ENDCASE 7610=c% 7620: 7630DEF PROCWimp_WindowBringToTop(window%) 7640!wimp%=window% 7650SYS "Wimp_GetWindowState",,wimp% 7660wimp%!28=-1 7670SYS "Wimp_OpenWindow",,wimp% 7680ENDPROC 7690: 7700DEF PROCWimp_WindowClose(window%) 7710!wimp%=window% 7720SYS "Wimp_CloseWindow",,wimp% 7730ENDPROC 7740: 7750DEF PROCWimp_WindowForceDraw(window%) 7760CASE window% OF 7770 WHEN -1 : SYS "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024 7780 OTHERWISE : SYS "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0 7790ENDCASE 7800ENDPROC 7810: 7820DEF PROCWimp_WindowOpen(window%) 7830!wimp%=window% 7840SYS "Wimp_GetWindowState",,wimp% 7850SYS "Wimp_OpenWindow",,wimp% 7860ENDPROC 7870: 7880PROCWimp_WindowInterface 7890SYS"Wimp_BorderWindow",,wimp% 7900ENDPROC 7910: 7920REM ******************************************************************** 7930: 7940DEF PROCWimp_SetIconSprite(window%,icon%,sprite$) 7950wimp%!0=window% 7960wimp%!4=icon% 7970SYS "Wimp_GetIconState",,wimp% 7980$wimp%!32="S"+sprite$ 7990wimp%!0=window% 8000wimp%!8=0 8010wimp%!12=0 8020SYS "Wimp_SetIconState",,wimp% 8030ENDPROC 8040: 8050DEF FNWimp_IconBar(Sprite$) 8060LOCAL icon% 8070wimp%!0=-1 8080wimp%!4=0 : wimp%!8=0 8090wimp%!12=88 : wimp%!16=74 8100wimp%!20=&3002 8110$(wimp%+24)=Sprite$ 8120SYS "Wimp_CreateIcon",,wimp% TO icon% 8130=icon% 8140: 8150DEF PROCWimp_IconCaret(window%,icon%,chars%) 8160SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,chars% 8170ENDPROC 8180: 8190DEF FNWimp_IconText(window%,icon%) 8200wimp%!0=window% : wimp%!4=icon% 8210SYS "Wimp_GetIconState",,wimp% 8220IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8230=$(wimp%!28) 8240: 8250DEF FNWimp_IconValidation(window%,icon%) 8260wimp%!0=window% : wimp%!4=icon% 8270SYS "Wimp_GetIconState",,wimp% 8280IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8290=$(wimp%!32) 8300: 8310DEF PROCWimp_IconDisable(window%,icon%) 8320wimp%!0=window% : wimp%!4=icon% 8330wimp%!8=1<<22 : wimp%!12=1<<22 8340SYS "Wimp_SetIconState",,wimp% 8350ENDPROC 8360: 8370DEF PROCWimp_IconEnable(window%,icon%) 8380wimp%!0=window% : wimp%!4=icon% 8390wimp%!8=0 : wimp%!12=1<<22 8400SYS "Wimp_SetIconState",,wimp% 8410ENDPROC 8420: 8430DEF FNWimp_IconPutSprite(window%,icon%,sprite$) 8440wimp%!0=window%:wimp%!4=icon% 8450SYS "Wimp_GetIconState",,wimp% 8460SYS "Wimp_DeleteIcon",,wimp% 8470wimp%!4=wimp%!8 : wimp%!8=wimp%!12 : wimp%!12=wimp%!16 8480wimp%!16=wimp%!20 : wimp%!20=wimp%!24 : $(wimp%+24)=sprite$ 8490SYS "Wimp_CreateIcon",,wimp% TO icon% 8500=icon% 8510: 8520DEF PROCWimp_IconPutText(window%,icon%,text$) 8530wimp%!0=window% : wimp%!4=icon% 8540SYS "Wimp_GetIconState",,wimp% 8550IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8560$(wimp%!28)=text$ 8570wimp%!0=window% : wimp%!4=icon% 8580wimp%!8=0 : wimp%!12=0 8590SYS "Wimp_SetIconState",,wimp% 8600ENDPROC 8610: 8620DEF PROCWimp_IconInterfaceStart 8630SYS"Wimp_BorderIcon",,wimp% 8640ENDPROC 8650: 8660DEF PROCWimp_IconInterfaceFinish 8670wimp%!8=0 8680SYS"Wimp_BorderIcon",,wimp% 8690ENDPROC 8700: 8710REM ******************************************************************** 8720: 8730DEF PROCWimp_MenuAdjustOn(menu%) 8740SYS "Wimp_GetPointerInfo",,pointer_block% 8750IF ((pointer_block%!8)AND1)=1 THEN SYS "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4 8760ENDPROC 8770: 8780DEF FNWimp_MenuChoice(level%) 8790=(wimp%!(4*level%))+1 8800: 8810DEF FNWimp_MenuCreate(menu$) 8820IF menu$="Colours" THEN=FNWimp_MenuColours 8830LOCAL menu%,index%,width%,length%,k%,s% 8840DIM menu% 28+FNWimp_MenuNoOfEntries(menu$)*24 8850menu%?12=7 : menu%?13=2 : menu%?14=7 :menu%?15=0 8860menu%!16=140 : menu%!20=44 : menu%!24=0 8870index%=menu%+28 8880$menu%=LEFT$(menu$,INSTR(menu$,"\")-1) 8890width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1)) 8900menu$+="\" : Menu_NoOfEntries%=0 8910WHILE menu$<>"" 8920menu$=MID$(menu$,INSTR(menu$,"\")+1) 8930CASE menu$ OF 8940 WHEN "" 8950 OTHERWISE : 8960 !index%=0 : index%!4=-1 : index%!8=&7000021 8970 length%=INSTR(menu$,"\")-1 8980 k%=INSTR(LEFT$(menu$,length%),">") 8990 CASE k% OF 9000 WHEN 0 9010 OTHERWISE 9020 s%=EVAL(MID$(menu$,k%+1,length%-k%)) 9030 index%!4=s% 9040 length%=k%-1 9050 ENDCASE 9060 $(index%+12)=LEFT$(menu$,length%) 9070 IF length%>width% THEN width%=length% 9080 index%+=24 9090ENDCASE 9100ENDWHILE 9110menu%!16=16*(width%+1) 9120index%!-24=index%!-24 OR &80 : =menu% 9130: 9140DEF FNWimp_MenuColours 9150=FNWimp_MenuCreateColours(" ") 9160: 9170DEF FNWimp_MenuCreateColours(title$) 9180LOCAL x$,men%,j%,i% 9190x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15" 9200men%=FNWimp_MenuCreate(x$) 9210FOR i%=0 TO 15 9220CASE TRUE OF 9230WHEN i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7 9240OTHERWISE : j%=0 9250ENDCASE 9260men%?(39+i%*24)=i%*16+j% 9270PROCWimp_MenuCentre(men%,i%+1) 9280NEXT 9290=men% 9300: 9310DEF FNWimp_MenuNoOfEntries(menu$) 9320LOCAL n% ,j% : n%=0 : j%=0 9330REPEAT 9340j%=INSTR(menu$,"\",j%+1) 9350IF j%<>0 THEN n%+=1 9360UNTIL j%=0 9370=n% 9380: 9390DEF PROCWimp_MenuBackGroundColour(menu%,item%,colour%) 9400LOCAL fore%,i% 9410fore%=(menu%?(39+(item%-1)*24))MOD16 9420i%=((menu%?(39+(item%-1)*24))DIV16)MOD16 9430menu%?(39+(item%-1)*24)=fore%+16*colour%+i% 9440ENDPROC 9450: 9460DEF PROCWimp_IconBackGroundColour(window%,icon%,colour%) 9470LOCAL fore%,i% 9480fore%=(window%?(39+(icon%-1)*24))MOD16 9490i%=((window%?(39+(icon%-1)*24))DIV16)MOD16 9500window%?(39+(icon%-1)*24)=fore%+16*colour%+i% 9510ENDPROC 9520: 9530DEF PROCWimp_MenuCentre(menu%,item%) 9540menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3) 9550ENDPROC 9560: 9570DEF PROCWimp_MenuClose 9580SYS "Wimp_CreateMenu",-1 9590ENDPROC 9600: 9610DEF PROCWimp_MenuDisable(menu%,item%) 9620menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22) 9630ENDPROC 9640: 9650DEF PROCWimp_MenuDottedLine(menu%,item%) 9660menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2 9670ENDPROC 9680: 9690DEF PROCWimp_MenuEnable(menu%,item%) 9700PROCWimp_MenuDisable(menu%,item%) 9710menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22) 9720ENDPROC 9730: 9740DEF PROCWimp_MenuForegroundColour(menu%,item%,colour%) 9750menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16) 9760ENDPROC 9770: 9780DEF PROCWimp_MenuGlue(menu1%,item%,menu2%) 9790menu1%!(8+item%*24)=menu2% 9800ENDPROC 9810: 9820DEF PROCWimp_MenuItem(menu%,item%,item$) 9830$(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0 9840ENDPROC 9850: 9860DEF PROCWimp_MenuMessage(menu%,item%) 9870menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3) 9880ENDPROC 9890: 9900DEF PROCWimp_MenuPopUp(Menu%,x%,y%) 9910IF SA%=FALSE THEN 9920menu%=Menu% 9930SYS "Wimp_CreateMenu",,menu%,x%-64,y%+20 9940ENDIF 9950ENDPROC 9960: 9970DEF PROCWimp_MenuPopUpBar(x%,y%) 9980LOCAL n% : n%=0 9990WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0 10000n%+=1 10010ENDWHILE 10020SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44 10030menu%=Bar_Menu% 10040ENDPROC 10050: 10060DEF PROCWimp_MenuTick(menu%,item%) 10070menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1 10080ENDPROC 10090: 10100DEF PROCWimp_MenuTitle(menu%,title$) 10110$menu%=LEFT$(title$,12)+CHR$0 10120ENDPROC 10130: 10140DEF PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%) 10150menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4 10160menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100 10170menu%!(40+(item%-1)*24)=buffer% 10180menu%!(44+(item%-1)*24)=val% 10190menu%!(48+(item%-1)*24)=BufferLength% 10200ENDPROC 10210: 10220REM ******************************************************************** 10230: 10240DEF PROCWimp_SelectIcon(window%,icon%) 10250wimp%!0=window% 10260wimp%!4=icon% 10270wimp%!8=%1000000000000000000000 10280wimp%!12=%1000000000000000000000 10290SYS&400CD,,wimp% 10300ENDPROC 10310: 10320DEF PROCWimp_UnselectIcon(window%,icon%) 10330wimp%!0=window% 10340wimp%!4=icon% 10350wimp%!8=0 10360wimp%!12=%1000000000000000000000 10370SYS&400CD,,wimp% 10380ENDPROC 10390: 10400DEF PROCWimp_SpritesLoad 10410PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites") 10420direct_sprites%=sprites% 10430ENDPROC 10440: 10450DEF PROCWimp_SpritesPathLoad(pathname$) 10460LOCALS%,T% 10470S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S% 10480DIMsprites%T%,spname%12 10490!sprites%=T%:sprites%!8=0 10500SYS"OS_SpriteOp",&109,sprites% 10510SYS"OS_SpriteOp",&10A,sprites%,pathname$ 10520ENDPROC 10530: 10540REM ******************************************************************** 10550: 10560DEF FNWimp_FileType(type%) 10570CASEtype%OF 10580WHEN&FFF:="Text" 10590WHEN&FFD:="Data" 10600WHEN&FFB:="Basic" 10610WHEN&FF9:="Sprite" 10620WHEN&FED:="Palette" 10630WHEN&FEC:="Template" 10640WHEN&AFF:="Draw" 10650WHEN&1000:="Folder" 10660WHEN&2000:="Application" 10670OTHERWISE=STR$~(type%) 10680ENDCASE 10690: 10700DEF FNWimp_GetFilePathName 10710=FNWimp_GetStringAtAddress(wimp%+44) 10720: 10730DEF FNWimp_FileLoad(pathname$) 10740LOCALS%,T%,file% 10750S%=OPENINpathname$ 10760T%=EXT#S%+16 10770CLOSE#S% 10780DIMfile%T% 10790OSCLI("LOAD"+pathname$+""+STR$~file%) 10800=file% 10810; 10820DEF FNWimp_GetStringAtAddress(array%) 10830LOCALs$:s$="" 10840WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE: 10850=s$ 10860: 10870DEF FNWimp_GetFileFromPathname(f$) 10880CASE INSTR(f$,".") OF 10890 WHEN 0 :=f$ 10900 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,"."))) 10910ENDCASE 10920: 10930DEF PROCWimp_SendToEdit(file$) 10940LOCAL n% 10950wimp%!4=&6CC01C0C 10960wimp%!16=5 10970wimp%!36=0 10980wimp%!40=&FFF 10990$(wimp%+44)=file$+CHR$0 11000n%=LENfile$+45 11010IF n%MOD4 THEN !wimp%=4+(n%>>2)<<2 ELSE !wimp%=n% 11020SYS "Wimp_SendMessage",17,wimp%,0 11030ENDPROC 11040: 11050REM ******************************************************************** 11060: 11070DEF PROCWimp_Start(TaskName$,wimp_memory%,icon%) 11080DIM wimp% wimp_memory%,icons% icon% 11090IF wimp_memory%<256 THEN wimp_memory%=256 11100icon_memory%=icons%+icon% 11110task$=TaskName$ 11120indirect_sprites%=1 : direct_sprites%=1 11130PROCWimp_SetEventVariables 11140ON ERROR PROCWimp_Error:END 11150SYS"Wimp_Initialise",200,&4B534154,TaskName$ TO version%,task% 11160ENDPROC 11170: 11180DEF FNWimp_BASICParameters 11190 LOCAL com$,param$,I% 11200 SYS "OS_GetEnv" TO com$ 11210 params$="" 11220 I%=INSTR(com$," -quit ") 11230 IF I% THEN params$=MID$(com$,INSTR(com$," ",I%+LEN" -quit ")+1) 11240=params$ 11250: 11260DEF PROCWimp_SetEventVariables 11270DIM pointer_block% 20 11280interface%=FALSE 11290null%=1 :draw%=2 : pointer_leaving%=1<<4 11300pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7 11310key%=1<<8:menu%=1<<9:scroll%=1<<10 11320lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18) 11330recorder%=1<<18:acknowledge%=1<<19:window%=0 11340sprites%=1:version%=0:task%=0 11350Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0 11360x_origin%=0:y_origin%=0:SaveWindow%=-3 11370message_quit%=0:message_save%=2:message_load%=3 11380mouse_button%=2:save_event%=0 11390top_line%=0 : bottom_line%=0 11400ENDPROC 11410: 11420DEF PROCWimp_Error 11430LOCALX$,x% 11440ON ERROR OFF 11450x%=ERL 11460X$=REPORT$+"atline"+STR$(x%DIV10) 11470DIMErrorMsg%36 11480ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x% 11490$(ErrorMsg%+24)="!RunImage" 11500SYS"Wimp_SendMessage",17,ErrorMsg% 11510PROCWimp_WindowAlert(task$,X$) 11520PROCWimp_CloseDown 11530ENDPROC 11540: 11550DEF PROCWimp_CloseDown 11560SYS"Wimp_CloseDown",task%,"TASK" 11570ENDPROC 11580: 11590DEF PROCWimp_Quit 11600finished%=TRUE 11610ENDPROC 11620: 11630DEF FNWimp_ReadVariable(Variable$) 11640LOCALlen%,result%,variable% 11650$wimp%=Variable$ 11660SYS"OS_ReadVarVal",wimp%,wimp%+255,255,,3TO,,len% 11670wimp%?(len%+255)=13 11680=$(wimp%+255) 11690: 11700REM ******************************************************************** 11710: 11720DEF PROCWimp_WaitForEvent 11730LOCAL mask%,event% 11740finished%=FALSE 11750mask%=%111000011001 11760REPEAT 11770 SYS"Wimp_Poll",mask%,wimp% TO event% 11780 CASE event% OF 11790 WHEN0 : 11800 WHEN1 : PROCWimp_PollDrawWindow 11810 WHEN2 : SYS "Wimp_OpenWindow",,wimp% 11820 WHEN3 : PROCWimp_PollCloseWindow 11830 WHEN4 : 11840 WHEN5 : 11850 WHEN6 : PROCWimp_PollMouseClick 11860 WHEN7 : PROCWimp_PollSaveMessage 11870 WHEN8 : PROCWimp_PollKeyPress 11880 WHEN9 : PROCEvent_MenuChoice(menu%) 11890 WHEN10: 11900 WHEN11: 11910 WHEN12: 11920 WHEN17,18: PROCWimp_PollMessages 11930 WHEN19: 11940 ENDCASE 11950UNTIL finished% 11960ENDPROC 11970: 11980DEF PROCWimp_PollDrawWindow 11990LOCAL more% 12000SYS"Wimp_RedrawWindow",,wimp%TOmore% 12010window%=wimp%!0 12020x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24 12030WHILEmore% 12040 IF interface% THEN SYS"Wimp_BorderWindow",,wimp% 12050 PROCEvent_Draw(window%,x_origin%,y_origin%) 12060 SYS"Wimp_GetRectangle",,wimp%TOmore% 12070ENDWHILE 12080ENDPROC 12090: 12100DEF PROCWimp_PollCloseWindow 12110 SYS "Wimp_GetPointerInfo",,wimp% 12120 window%=wimp%!12 : buttons%=wimp%!8 12130 PROCEvent_WindowClose(window%,buttons%) 12140 !wimp%=window% : SYS "Wimp_CloseWindow",,wimp% 12150ENDPROC 12160: 12170DEF PROCWimp_PollMouseClick 12180 button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 12190 CASE button% OF 12200 WHEN2 : PROCWimp_PollMenuPopUp 12210 OTHERWISE: CASE FNEvent_Save(window%) OF 12220 WHEN TRUE : PROCWimp_PollMouseSave 12230 WHEN FALSE: PROCWimp_PollEventMouseClick 12240 ENDCASE 12250 ENDCASE 12260ENDPROC 12270: 12280DEF PROCWimp_PollMenuPopUp 12290IF SA%=FALSE THEN 12300menu%=FNEvent_Menu(window%) 12310 CASE menu% OF 12320 WHEN FALSE: 12330 OTHERWISE : 12340 CASE window% OF 12350 WHEN -2 : n%=0 12360 WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0 12370 n%+=1 12380 ENDWHILE 12390 SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*73 12400 OTHERWISE : SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20 12410 ENDCASE 12420 ENDCASE 12430ENDIF 12440ENDPROC 12450: 12460DEF PROCWimp_PollMouseSave 12470 CASE icon% OF 12480 WHEN 0 : IF button% AND &50 THEN PROCWimp_PollDragBox(window%) 12490 WHEN 2 : IF button% AND 5 THEN PROCWimp_PollSaveFile(window%) 12500 ENDCASE 12510ENDPROC 12520: 12530DEF PROCWimp_PollEventMouseClick 12540 IF interface% THEN SYS"Wimp_BorderIcon",,wimp% 12550 PROCEvent_MouseClick(window%,icon%,button%,x%,y%) 12560 CASE interface% OF 12570 WHEN TRUE : 12580 wimp%!0=x%:wimp%!4=y% : wimp%!8=0 12590 wimp%!12=window% : wimp%!16=icon% 12600 SYS"Wimp_BorderIcon",,wimp% 12610 ENDCASE 12620ENDPROC 12630: 12640DEF PROCWimp_PollSaveFile(window%) 12650LOCALfile$ 12660 wimp%!0=window% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 12670 file$=$(wimp%!28) 12680 CASE INSTR(file$,".") OF 12690 WHEN 0 : 12700IF key%=13 THEN 12710 $(wimp%+4)="To save, drag the icon to a directory window" 12720 SYS "Wimp_ReportError",wimp%,16,task$ 12730ENDIF 12740 OTHERWISE: 12750 IF key%=13 THEN PROCEvent_SaveFile(file$,window%) 12760 ENDCASE 12770IF key%=13 THEN SYS"Wimp_CreateMenu",-1 12780IF SA%=TRUE THEN PROCWimp_CloseDown 12790ENDPROC 12800: 12810DEF PROCWimp_PollDragBox(window%) 12820LOCALx%,y% 12830 save%=window% 12840 !wimp%=window% 12850 SYS"Wimp_GetWindowState",,wimp% 12860 x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24 12870 wimp%!4=0 12880 SYS"Wimp_GetIconState",,wimp% 12890 !wimp%=window% 12900 wimp%!4=5 12910 wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12 12920 wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20 12930 wimp%!24=0:wimp%!28=0 12940 wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF 12950 SYS"Wimp_DragBox",,wimp% 12960ENDPROC 12970: 12980DEF PROCWimp_PollKeyPress 12990 window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24 13000 CASE FNEvent_Save(window%) OF 13010 WHEN TRUE : PROCWimp_PollSaveFile(window%) 13020 WHEN FALSE: PROCEvent_KeyPress(window%,icon%,key%) 13030 ENDCASE 13040ENDPROC 13050: 13060DEF PROCWimp_PollSaveMessage 13070LOCALfile$,window%,icon%,x%,y% 13080 SYS"Wimp_GetPointerInfo",,wimp% 13090 window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 13100 wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 13110 file$=$(wimp%!28) 13120 file$=FNWimp_GetFileFromPathname(file$) 13130ACE$=file$ 13140 wimp%!20=window% 13150 wimp%!24=icon% 13160 wimp%!28=x%:wimp%!32=y% 13170 wimp%!36=length% 13180 wimp%!0=64 13190 wimp%!12=0 13200 wimp%!16=1 13210 wimp%!40=&FFF 13220 $(wimp%+44)=file$ 13230 SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24 13240ENDPROC 13250: 13260DEF PROCWimp_PollMessages 13270LOCAL file$ 13280file$=FNWimp_GetStringAtAddress(wimp%+44) 13290 CASE wimp%!16 OF 13300 WHEN 0 : finished%=TRUE 13310 WHEN 1 : 13320 WHEN 2 : 13330 REM PROCWimp_IconPutText(save%,1,file$) 13340 wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 13350 $(wimp%!28)=file$ 13360 wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0 13370 SYS "Wimp_SetIconState",,wimp% 13380 REM PROCWimp_IconCaret(save%,1,LENfile$) 13390 SYS "Wimp_SetCaretPosition",save%,1,,,-1,LENfile$ 13400 PROCEvent_SaveFile(file$,save%) 13410 IF SA%=TRUE THEN PROCWimp_CloseDown 13420 WHEN 3 13430 type$=FNWimp_FileType(wimp%!40) : PROCEvent_LoadFile(file$,type$) 13440 WHEN 5 : 13450IF wimp%!40=&FAF AND event%=18 THEN 13460wimp%!12=wimp%!8 13470SYS"XWimp_SendMessage",17,wimp%,wimp%!20 13480file$=FNWimp_GetFilePathName 13490type$=FNWimp_FileType(&FAF) 13500PROCEvent_LoadFile(file$,type$) 13510ENDIF 13520 ENDCASE 13530ENDPROC 13540: 13550DEF FNWimp_GetStringAtAddress(array%) 13560LOCALs$:s$="" 13570WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE: 13580=s$ 13590: 13600DEF FNWimp_GetFileFromPathname(f$) 13610CASE INSTR(f$,".") OF 13620 WHEN 0 :=f$ 13630 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,"."))) 13640ENDCASE 13650: 13660DEF FNWimp_FileType(type%) 13670CASEtype%OF 13680WHEN&FFF:="Text" 13690WHEN&FFD:="Data" 13700WHEN&FFB:="Basic" 13710WHEN&FF9:="Sprite" 13720WHEN&FED:="Palette" 13730WHEN&FEC:="Template" 13740WHEN&AFF:="Draw" 13750WHEN&1000:="Folder" 13760WHEN&2000:="Application" 13770OTHERWISE=STR$~(type%) 13780ENDCASE 13790: 13800DEFFNcut(A$) 13810Ab=INSTR(A$,".") 13820IF Ab<>0 THEN B$=LEFT$(A$,Ab+2) ELSE B$=A$ 13830=B$ 13840: 13850DEFPROCpdsel 13860IF PSEL%=2 THEN 13870PROCWimp_IconDisable(Print_Window%,8) 13880ENDIF 13890IF PSEL%=3 THEN 13900PROCWimp_IconDisable(Print_Window%,9) 13910PROCWimp_IconDisable(Print_Window%,11) 13920ENDIF 13930ENDPROC 13940: 13950DEFPROCpsel 13960IF PSEL%=1 THEN 13970PROCWimp_SelectIcon(Print_Window%,5) 13980ENDIF 13990IF PSEL%=2 THEN 14000PROCWimp_SelectIcon(Print_Window%,6) 14010PROCWimp_IconEnable(Print_Window%,8) 14020PROCWimp_IconCaret(Print_Window%,8,LEN(FNWimp_IconText(Print_Window%,8))) 14030ENDIF 14040IF PSEL%=3 THEN 14050PROCWimp_SelectIcon(Print_Window%,7) 14060PROCWimp_IconEnable(Print_Window%,9) 14070PROCWimp_IconEnable(Print_Window%,11) 14080PROCWimp_IconCaret(Print_Window%,9,LEN(FNWimp_IconText(Print_Window%,9))) 14090ENDIF 14100ENDPROC 14110: 14120DEF FNgetstring(array%) 14130LOCAL path$,pointer% 14140path$="" 14150pointer%=array% 14160REPEAT 14170path$+=CHR$?pointer% 14180pointer%+=1 14190UNTIL ?pointer%=0 OR ?pointer%=13 14200=path$ 14210: 14220DEFPROCopenprinter 14230SYS "XPDriver_Info" TO R0,R1,R2,R3,R4,R5,R6,R7 14240IF R1=0 AND R2=0 AND R3=0 AND R5=0 AND R6=0 AND R7=0 THEN 14250PROCWimp_IconPutText(Print_Window%,3,"No driver loaded") 14260PRT%=FALSE 14270ELSE 14280printer$=FNgetstring(R4) 14290PROCWimp_IconPutText(Print_Window%,3,printer$) 14300PRT%=TRUE 14310ENDIF 14320ENDPROC 14330: 14340DEFPROCprint 14350: 14360printhand%=OPENOUT("PRINTER:$.Job1") : REM start a job !!! 14370$title%="Cheat file" 14380SYS &80145,printhand%,title% 14390BPUT#printhand%,13 : REM put head to left of paper to start!!!! 14400: 14410IF PSEL%=1 THEN 14420PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14430PROCprintline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+CHR$(10)) 14440PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14450FOR A=1 TO total%-1 14460IF AMMOUNT(A)<>0 THEN 14470A$=STR$(A) 14480AA=LEN(A$) 14490S$=FNspc(3-AA) 14500B$=STR$(AMMOUNT(A)) 14510B$=FNzero(B$) 14520BB=LEN(B$) 14530SS$=FNspc(11-BB) 14540IF STATUS$(A)="Spend" THEN C$="Spend" 14550IF STATUS$(A)="Save" THEN C$="Save " 14560CC=LEN(DATE$(A)) 14570SSS$=FNspc(10-CC) 14580DD=LEN(WHO$(A)) 14590SSSS$=FNspc(20-DD) 14600E$=STR$(CURTOT(A)) 14610E$=FNzero(E$) 14620EE=LEN(E$) 14630SSSSS$=FNspc(11-EE) 14640PROCprintline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+CHR$(10)) 14650ENDIF 14660NEXTA 14670PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14680ENDIF 14690 14700IF PSEL%=2 THEN 14710PA=VAL(FNWimp_IconText(Print_Window%,8)) 14720PB=(PA-1)*14 14730PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14740PROCprintline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+CHR$(10)) 14750PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14760FOR A=(1+PB) TO (14+PB) 14770IF AMMOUNT(A)<>0 THEN 14780A$=STR$(A) 14790AA=LEN(A$) 14800S$=FNspc(3-AA) 14810B$=STR$(AMMOUNT(A)) 14820B$=FNzero(B$) 14830BB=LEN(B$) 14840SS$=FNspc(11-BB) 14850IF STATUS$(A)="Spend" THEN C$="Spend" 14860IF STATUS$(A)="Save" THEN C$="Save " 14870CC=LEN(DATE$(A)) 14880SSS$=FNspc(10-CC) 14890DD=LEN(WHO$(A)) 14900SSSS$=FNspc(20-DD) 14910E$=STR$(CURTOT(A)) 14920E$=FNzero(E$) 14930EE=LEN(E$) 14940SSSSS$=FNspc(11-EE) 14950PROCprintline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+CHR$(10)) 14960ENDIF 14970NEXTA 14980PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 14990ENDIF 15000 15010IF PSEL%=3 THEN 15020A=VAL(FNWimp_IconText(Print_Window%,9)) 15030B=VAL(FNWimp_IconText(Print_Window%,11)) 15040PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 15050PROCprintline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+CHR$(10)) 15060PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 15070FOR A=A TO B 15080IF AMMOUNT(A)<>0 THEN 15090A$=STR$(A) 15100AA=LEN(A$) 15110S$=FNspc(3-AA) 15120B$=STR$(AMMOUNT(A)) 15130B$=FNzero(B$) 15140BB=LEN(B$) 15150SS$=FNspc(11-BB) 15160IF STATUS$(A)="Spend" THEN C$="Spend" 15170IF STATUS$(A)="Save" THEN C$="Save " 15180CC=LEN(DATE$(A)) 15190SSS$=FNspc(10-CC) 15200DD=LEN(WHO$(A)) 15210SSSS$=FNspc(20-DD) 15220E$=STR$(CURTOT(A)) 15230E$=FNzero(E$) 15240EE=LEN(E$) 15250SSSSS$=FNspc(11-EE) 15260PROCprintline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+CHR$(10)) 15270ENDIF 15280NEXTA 15290PROCprintline("+---+-----------+-----+----------+--------------------+-----------+"+CHR$(10)) 15300ENDIF 15310: 15320BPUT#printhand%,12 : REM do linefeed !!!! 15330SYS &80148,printhand% 15340CLOSE #printhand% 15350ENDPROC 15360: 15370DEFPROCprintline(line$) 15380FOR cco=1 TO LEN(line$) 15390byte=ASC(MID$(line$,cco,1)) 15400BPUT#printhand%,byte 15410IF byte=10 OR byte=13 THEN BPUT#printhand%,13 : REM put head to left of paper 15420NEXT cco 15430ENDPROC 15440: 15450DEFFNspc(num) 15460IF num>0 THEN 15470LOCAL f 15480SP$="" 15490FOR f=1 TO num:SP$+=" ":NEXTf 15500ELSE 15510SP$="" 15520ENDIF 15530=SP$ 15540: 15550DEFFNzero(numbs$) 15560LOCAL B 15570B=INSTR(numbs$,".") 15580IF LEN(numbs$)-1=B AND B<>0 THEN numbs$=numbs$+"0" 15590IF B=0 THEN numbs$=numbs$+".00" 15600=numbs$ 15610: 15620DEF PROCerror 15630IF ERR=67785 THEN 15640PROCWimp_WindowErrorBox("!ADRBook","Please write enable the disk") 15650CLOSE #X% 15660ELSE 15670DOSAVE%=FALSE 15680PROCWimp_WindowErrorBox("!ADRBook",REPORT$) 15690ENDIF 15700ENDPROC 15710: 15720DEF PROCunbox 15730SYS "OS_ReadModeVariable",-1,11 TO ,,xpic 15740SYS "OS_ReadModeVariable",-1,12 TO ,,ypic 15750SYS "OS_ReadModeVariable",-1,4 TO ,,xfact 15760SYS "OS_ReadModeVariable",-1,5 TO ,,yfact 15770MOUSE RECTANGLE 0,0,xpic<<xfact,ypic<<yfact 15780ENDPROC
ș "OS_GetEnv" � env$ � �env$," -quit ") � 2fileload$=�env$,�env$,�(34),�env$,�(34))+1)+1) (� 2? �Wimp_Start("PocketM",4990,3913) <3 �User_SetInitialData F. �Create_Windows P, �Create_Menus Z� fileload$<>" " � d)�Event_LoadFile(fileload$,"file_faf") n/�Wimp_IconPutText(Save_Window%,1,fileload$) x� �1 �Wimp_WaitForEvent �. �Wimp_CloseDown � � � : �! � �User_SetInitialData � DOSAVE%=� � SA%=� � UPDATE%=� � CD%=� � PRT%=� �� title% 256 �PSEL%=1 � EE%=� PASSALLOW%=� PCOVER$="***************" correct%=� "PASS$="POO" ,MONEY%=0 6 DD%=27 @ MM%=04 JYY%=1993 TSTATUS$="Save" ^ COL%=� hPOUNDVAL%=156 r� A%(15) |total%=1 � cur%=1 �totpage%=0 �curpage%=0 �� AMMOUNT(999) �� STATUS$(999) �� DATE$(999) �� WHO$(999) �� CURTOT(999) �� DD$(999) �� MM$(999) �� YY$(999) �AMMOUNT()=0 �STATUS$()="" DATE$()="" WHO$()="" CURTOT()=0 &EDII%=� 0 � : : D � �Create_Windows N �Wimp_SpritesLoad X; Info_Window%=�Wimp_WindowLoad("Info") b< Entry_Window%=�Wimp_WindowLoad("Entry") l; Main_Window%=�Wimp_WindowLoad("Main") v= Delete_Window%=�Wimp_WindowLoad("Delete") �> Options_Window%=�Wimp_WindowLoad("Options") �; Save_Window%=�Wimp_WindowLoad("Save") �? Password_Window%=�Wimp_WindowLoad("Password") �< Save2_Window%=�Wimp_WindowLoad("Save2") �< Print_Window%=�Wimp_WindowLoad("Print") �< Close_Window%=�Wimp_WindowLoad("Close") �. Bar_Icon%=�Wimp_IconBar("!PocketM") �+�Wimp_IconPutText(Options_Window%,3,"") ��resetentry � � � : �" � �Event_Save(window%) � Ȏ window% � " � Save_Window% :=� $ � Save2_Window% : =� :=� � * : 4. � �Event_Sprites(window%)=sprites% > : H � �Create_Menus RV Save_Menu%=�Wimp_MenuCreate("Save\Pocket>Save_Window%\Text>Save2_Window%") \} Bar_Menu%=�Wimp_MenuCreate("PocketM\Info>Info_Window%\Password>Options_Window%\Save>Save_Menu%\Clear Data\Quit") fW Main_Menu%=�Wimp_MenuCreate("PocketM\Start\Back\Print\Add\Delete\Next\End") p"�Wimp_MenuDisable(Bar_Menu%,3) z%�Wimp_MenuDottedLine(Bar_Menu%,1) �%�Wimp_MenuDottedLine(Bar_Menu%,3) �%�Wimp_MenuDottedLine(Bar_Menu%,4) �&�Wimp_MenuDottedLine(Main_Menu%,2) �&�Wimp_MenuDottedLine(Main_Menu%,5) � � � : �" � �Event_Menu(window%) � Ȏ window% � �. � Bar_Window% : =Bar_Menu% �/ � Main_Window% : =Main_Menu% �! : =� � � � : 1 � �Event_WindowClose(window%,buttons%) Ȏ window% � A � Entry_Window% : �Wimp_WindowBringToTop(Main_Window%) $ � . � 8 : B5 � �Event_Draw(window%,x_origin%,y_origin%) L Ȏ window% � V8 � Info_Window% : �User_DrawInfoWindow ` � j � t : ~' � �User_DrawInfoWindow � � � : �; � �Event_MouseClick(window%,icon%,button%,x%,y%) � Ȏ window% � �1 � Bar_Window% : �User_MouseBar �B � Info_Window% : �User_MouseInfo( button%,icon%) �C � Entry_Window% : �User_MouseEntry( button%,icon%) �B � Main_Window% : �User_MouseMain( button%,icon%) �D � Delete_Window% : �User_MouseDelete( button%,icon%) �E � Options_Window% : �User_MouseOptions( button%,icon%) �C � Print_Window% : �User_MousePrint( button%,icon%) �C � Close_Window% : �User_MouseClose( button%,icon%) � � : / � �User_MouseClose( button%,icon%) ( � icon%=1 � 2 SA%=� < �unbox F$�Wimp_WindowClose(Close_Window%) P UPDATE%=� Z(�Wimp_WindowBringToTop(Save_Window%) d%A$=�Wimp_IconText(Save_Window%,1) n)�Wimp_IconCaret(Save_Window%,1,�(A$)) x� � � icon%=2 � � �unbox � UPDATE%=� �$�Wimp_WindowClose(Close_Window%) � CD%=� �� � � icon%=3 � � �unbox �$�Wimp_WindowClose(Close_Window%) �� �� CD%=� � �Wimp_CloseDown �� � � �User_MouseBar 1 �Wimp_WindowBringToTop(Main_Window%) � : "/ � �User_MousePrint( button%,icon%) ,- � icon%=5 � �pdsel:PSEL%=1:�psel 6- � icon%=6 � �pdsel:PSEL%=2:�psel @- � icon%=7 � �pdsel:PSEL%=3:�psel J! � icon%=4 � PRT%=� � T � PSEL%=1 � ^ �print h � r � PSEL%=2 � |1 A=�(�Wimp_IconText(Print_Window%,8)) �. � (A-1)<(totpage%+1) � (A-1)>-1 � � �print � � � � � � PSEL%=3 � �1 A=�(�Wimp_IconText(Print_Window%,9)) �2 B=�(�Wimp_IconText(Print_Window%,11)) �, � (A-1)>-1 � (B-1)<(total%-1) � � �print � � � � � � � � : . � �User_MouseInfo( button%,icon%) � & : 0/ � �User_MouseEntry( button%,icon%) :� � icon%=7 � STATUS$="Spend" � STATUS$="Save":�Wimp_IconPutText(Entry_Window%,3,STATUS$):�Wimp_IconEnable(Entry_Window%,16) D) � icon%=8 � STATUS$="Save" � NSTATUS$="Spend" X.�Wimp_IconPutText(Entry_Window%,3,STATUS$) b'�Wimp_IconDisable(Entry_Window%,16) l*�Wimp_IconPutText(Entry_Window%,16,"") v&A$=�Wimp_IconText(Entry_Window%,5) �*�Wimp_IconCaret(Entry_Window%,5,�(A$)) �� �F � icon%=18 � �Wimp_WindowClose(Entry_Window%):�resetentry � � icon%=17 � � � EE%=� � �&A$=�Wimp_IconText(Entry_Window%,5) �#� A$<>"" � A$<>"." � �(A$)<>0 � � �read � �input �� �� �&A$=�Wimp_IconText(Entry_Window%,5) �#� A$<>"" � A$<>"." � �(A$)<>0 � ; AMMOUNT(AABB)=�(�Wimp_IconText(Entry_Window%,5)) STATUS$(AABB)=STATUS$ � DATE$(AABB)=�Wimp_IconText(Entry_Window%,11)+"/"+�Wimp_IconText(Entry_Window%,12)+"/"+�Wimp_IconText(Entry_Window%,13) 5 DD$(AABB)=�Wimp_IconText(Entry_Window%,11) *5 MM$(AABB)=�Wimp_IconText(Entry_Window%,12) 45 YY$(AABB)=�Wimp_IconText(Entry_Window%,13) >6 WHO$(AABB)=�Wimp_IconText(Entry_Window%,16) H UPDATE%=� R �recalc \ �input f� p� z.� total%>1 � �Wimp_MenuEnable(Bar_Menu%,3) �(�PROCWimp_WindowClose(Entry_Window%) ��resetentry ��cutdate �&�Wimp_IconCaret(Entry_Window%,5,0) �� � � � : �. � �User_MouseMain( button%,icon%) �. � icon%>70 � icon%<85 � icon%-=70 �. � icon%>16 � icon%<31 � icon%-=16 �. � icon%>31 � icon%<46 � icon%-=31 �. � icon%>45 � icon%<57 � icon%-=45 �/ � icon%>85 � icon%<100 � icon%-=85 # � icon%>0 � icon%<15 � " A=(curpage%*14)+icon% � A<total% � A>0 � $2 �Wimp_WindowBringToTop(Entry_Window%) .= �Wimp_IconPutText(Entry_Window%,5,�(AMMOUNT(A))) 8> �Wimp_IconCaret(Entry_Window%,5,�(�(AMMOUNT(A)))) B> �Wimp_IconCaret(Entry_Window%,5,�(�(AMMOUNT(A)))) L: �Wimp_IconPutText(Entry_Window%,3,STATUS$(A)) V UPDATE%=� ` STATUS$=STATUS$(A) jl � STATUS$(A)="Spend" � �Wimp_IconDisable(Entry_Window%,16) � �Wimp_IconEnable(Entry_Window%,16) t7 �Wimp_IconPutText(Entry_Window%,11,DD$(A)) ~7 �Wimp_IconPutText(Entry_Window%,12,MM$(A)) �7 �Wimp_IconPutText(Entry_Window%,13,YY$(A)) �8 �Wimp_IconPutText(Entry_Window%,16,WHO$(A)) � EE%=� � AABB=A � � � � �] � icon%=66 � total%>1 � �openprinter:�Wimp_WindowBringToTop(Print_Window%):�psel �o � icon%=67 � total%>1 � �Wimp_WindowBringToTop(Delete_Window%):�Wimp_IconCaret(Delete_Window%,3,0) � � icon%=15 � ��cutdate � EE%=� �)�Wimp_WindowBringToTop(Entry_Window%) 2 �Wimp_IconPutText(Entry_Window%,5,"") 6 �Wimp_IconPutText(Entry_Window%,3,"Save") STATUS$="Save" / �Wimp_IconEnable(Entry_Window%,16) (&�Wimp_IconCaret(Entry_Window%,5,0) 2� <9 � icon%=62 � curpage%>0 � curpage%-=1:�input F@ � icon%=61 � curpage%<totpage% � curpage%+=1:�input P8 � icon%=64 � curpage%>0 � curpage%=0:�input ZF � icon%=63 � curpage%<totpage% � curpage%=totpage%:�input d � n : x0 � �User_MouseDelete( button%,icon%) � � icon%=4 � �)NUM$=�Wimp_IconText(Delete_Window%,3) �-� NUM$<>"" � �(NUM$)<total% � �(NUM$)>0 � �Xdo%=�Wimp_WindowCancel("Delete","Are you sure you want to delete number "+NUM$+" ?") � � do%=� � �*�Wimp_IconPutText(Delete_Window%,3,"") �'�Wimp_IconCaret(Delete_Window%,3,0) �)�PROCWimp_WindowClose(Delete_Window%) �� � � � do%=� � �"� �(NUM$)>0 � �(NUM$)<total% � � UPDATE%=� cur%=�(NUM$) � cur%=total% � total%-=1 "� cur%<total% � ,� A=�(NUM$) � total% 6AMMOUNT(A)=AMMOUNT(A+1) @STATUS$(A)=STATUS$(A+1) JDATE$(A)=DATE$(A+1) TWHO$(A)=WHO$(A+1) ^CURTOT(A)=CURTOT(A+1) h� A r total%-=1 |� � �� (total%-1)/15<totpage% � �totpage%-=1 �%� totpage%>curpage% � curpage%-=1 �� � � �page ��recalc � �input �� �*�Wimp_IconPutText(Delete_Window%,3,"") �'�Wimp_IconCaret(Delete_Window%,3,0) �)�PROCWimp_WindowClose(Delete_Window%) /� total%=1 � �Wimp_MenuDisable(Bar_Menu%,3) � � &� 0a � icon%=5 � �Wimp_IconPutText(Delete_Window%,3,""):�Wimp_WindowClose(Delete_Window%) : � D : N1 � �User_MouseOptions( button%,icon%) X� � icon%=2 � PASSALLOW%=� � �Wimp_IconPutText(Options_Window%,3,PASS$):Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:Ȗ:�Wimp_IconPutText(Options_Window%,3,�PCOVER$,�(PASS$))) b,�Wimp_IconPutText(Password_Window%,3,"") l � v : �0 � �Event_KeyPress(window%,icon%,key%) � Ȏ window% � �F � Entry_Window% : �User_KeyPressEntry( icon%,key%) �G � Delete_Window% : �User_KeyPressDelete( icon%,key%) �I � Password_Window% : �User_KeyPressPassword( icon%,key%) �H � Options_Window% : �User_KeyPressOptions( icon%,key%) � � � � � : �/ � �User_KeyPressEntry( icon%,key%) �h � key%=13 � icon%=5 � �Wimp_IconCaret(Entry_Window%,11,�(�Wimp_IconText(Entry_Window%,11))) �i � key%=13 � icon%=11 � �Wimp_IconCaret(Entry_Window%,12,�(�Wimp_IconText(Entry_Window%,12))) �i � key%=13 � icon%=12 � �Wimp_IconCaret(Entry_Window%,13,�(�Wimp_IconText(Entry_Window%,13))) z � key%=13 � icon%=13 � STATUS$="Save" � �Wimp_IconCaret(Entry_Window%,16,�(�Wimp_IconText(Entry_Window%,16))) M � key%=13 � icon%=13 � STATUS$="Spend" � �User_MouseEntry( 4,17) ; � key%=13 � icon%=16 � �User_MouseEntry( 4,17) � * : 40 � �User_KeyPressDelete( icon%,key%) > � H : R2 � �User_KeyPressPassword( icon%,key%) \ NEWPASS$="" f � key%=13 � p/NEWPASS$=�Wimp_IconText(Password_Window%,2) z�checkpassword �� � � � : �1 � �User_KeyPressOptions( icon%,key%) � � key%=13 � �; POUNDVAL%=�(�Wimp_IconText(Options_Window%,3)) � � � � � : �% � �Event_MenuChoice(menu%) � Ȏ menu% � �< � Bar_Menu% : �User_MenuChoiceBar �= � Main_Menu% : �User_MenuChoiceMain � � : $" � �User_MenuChoiceMain .$ Ȏ �Wimp_MenuChoice(0) � 8) � 1 : �User_MouseMain( 4,64) B) � 2 : �User_MouseMain( 4,62) L) � 3 : �User_MouseMain( 4,66) V) � 4 : �User_MouseMain( 4,15) `) � 5 : �User_MouseMain( 4,67) j) � 6 : �User_MouseMain( 4,61) t) � 7 : �User_MouseMain( 4,63) ~+ �Wimp_MenuAdjustOn(Main_Menu%) � � � � � : � � �User_MenuChoiceBar �$ Ȏ �Wimp_MenuChoice(0) � � � 1 : � � 2 : � � 4 �RANS%=�Wimp_WindowCancel("!PocketM","Are you sure you want to clear the data?") �� ANS%=� � �2�Wimp_IconPutText(Save_Window%,1,"PocketData") �3�Wimp_IconPutText(Save2_Window%,1,"PocketText") AMMOUNT()=0 STATUS$()="" DATE$()="" WHO$()="" (CURTOT()=0 2�clearmain <total%=1 F cur%=1 Ptotpage%=0 Zcurpage%=0 d UPDATE%=� n"�Wimp_MenuDisable(Bar_Menu%,3) x� � � 5 �� UPDATE%=� � �D�Wimp_IconPutText(Close_Window%,0,"This file has been modified") �)�Wimp_WindowBringToTop(Close_Window%) ��mousebox(Close_Window%) �� �� UPDATE%=� � finished%=� � � �) �Wimp_MenuAdjustOn(Bar_Menu%) � � � : �) � �Event_LoadFile(file$,type$) �haa$=file$ +�Wimp_IconPutText(Options_Window%,3,"") PASS$="" file2$=file$ "X%=�(file$) ,� #X%,LONG 6� #X%,VCN% @� LONG<>0 � JVCN%=VCN%/2 TLONG=LONG/VCN% ^� AB=1 � LONG h� #X%,A%(AB) rA%(AB)=A%(AB) � VCN% |� AB �� AB=1 � LONG �A%(AB)=A%(AB)/VCN% �PASS$=PASS$+�(A%(AB)) �� AB � � #X% �,�Wimp_IconPutText(Password_Window%,2,"") �,�Wimp_WindowBringToTop(Password_Window%) ��mousebox(Password_Window%) �)�Wimp_IconCaret(Password_Window%,2,0) �� � � #X% ��parttwo �� � � �parttwo &� LONG=0 � correct%=� � 0X%=�(file2$) :� #X%,LONG D� #X%,VCN% NVCN%=VCN%/2 X� LONG<>0 � b� AB=1 � LONG/VCN% l� #X%,A%(AB) v� AB �� �6� \/\/\/\/\/\/\/ Put load in here \/\/\/\/\/\/\/\/ �� #X%,total% �� #X%,totpage% �� A=0 � total%-1 �� #X%,AMMOUNT(A) �� #X%,STATUS$(A) �� #X%,DATE$(A) �� #X%,WHO$(A) �� #X%,CURTOT(A) �� #X%,DD$(A) �� #X%,MM$(A) �� #X%,YY$(A) �A UPDATE%=� (�Wimp_WindowBringToTop(Main_Window%) �input * � #X% 4� >.� total%>1 � �Wimp_MenuEnable(Bar_Menu%,3) HA� correct%=� � �Wimp_WindowClose(Password_Window%):correct%=� R� \ : f+ � �Event_SaveFile(file$,window%) p� window%=Save_Window% � z� � �� � � �error �� DOSAVE%=� � �,SETPASS1$=�Wimp_IconText(Save_Window%,4) �,SETPASS2$=�Wimp_IconText(Save_Window%,5) �{� SETPASS1$<>SETPASS2$ � �Wimp_WindowAlert("Password Protection","The two passwords are not the same. File not saved.") �� SETPASS1$=SETPASS2$ � �� SETPASS1$<>"" � �VCN%=�(�(1000000))+1 �X%=�(file$) �� AB=1 � �(SETPASS1$) �A%(AB)=�(�SETPASS1$,AB,1)) �� AB �� #X%,�(SETPASS1$)*VCN% � #X%,VCN%*2 PASS$=SETPASS1$ ;�Wimp_IconPutText(Options_Window%,3,�PCOVER$,�(PASS$))) $� AB=1 � �(SETPASS1$) .A%(AB)=A%(AB)*VCN% 8� #X%,A%(AB) � VCN% B� AB L� VX%=�(file$) `� #X%,0 j� #X%,0 t� ~8� \/\/\/\/\/\/\/\/\/ Put Save in here \/\/\/\/\/\/\/ �� #X%,total% �� #X%,totpage% �� A=0 � total%-1 �� #X%,AMMOUNT(A) �� #X%,STATUS$(A) �� #X%,DATE$(A) �� #X%,WHO$(A) �� #X%,CURTOT(A) �� #X%,DD$(A) �� #X%,MM$(A) �� #X%,YY$(A) ��A UPDATE%=� � #X% �("SETTYPE ")+file$+" FAF" �Wimp_MenuClose (-� PROCWimp_IconPutText(Save_Window%,4,"") 2-� PROCWimp_IconPutText(Save_Window%,5,"") <� F� P� Z� window%=Save2_Window% � d� � n� � � �error x� DOSAVE%=� � ��21 ��("SPOOL "+file$) �S�"+---+-----------+-----+----------+--------------------+-----------+";:�(10); �S�"|Num| Ammount |State| Date | Who gave it to you | TOTAL |";:�(10); �S�"+---+-----------+-----+----------+--------------------+-----------+";:�(10); �� A=1 � total%-1 �A$=�(A) �AA=�(A$) �S$=�spc(3-AA) �B$=�(AMMOUNT(A)) �B$=�zero(B$) �BB=�(B$) �SS$=�spc(11-BB) %� STATUS$(A)="Spend" � C$="Spend" $� STATUS$(A)="Save" � C$="Save " CC=�(DATE$(A)) "SSS$=�spc(10-CC) ,DD=�(WHO$(A)) 6SSSS$=�spc(20-DD) @E$=�(CURTOT(A)) JE$=�zero(E$) TEE=�(E$) ^SSSSS$=�spc(11-EE) h_�"|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|";:�(10); r�A |S�"+---+-----------+-----+----------+--------------------+-----------+";:�(10); ��("SPOOL") ��("SETTYPE "+file$+" FFF") ��6 �� file$="<Wimp$Scrap>" � ��Wimp_SendToEdit(file$) �+�Wimp_IconPutText(Save2_Window%,1,ACE$) �� �� �� ��6 �� DOSAVE%=� � DOSAVE%=� �� � : � �cutdate DD%=�(��$,5,2)) MM$=��$,8,3) & � MM$="Jan" � MM%=1 0 � MM$="Feb" � MM%=2 : � MM$="Mar" � MM%=3 D � MM$="Apr" � MM%=4 N � MM$="May" � MM%=5 X � MM$="Jun" � MM%=6 b � MM$="Jul" � MM%=7 l � MM$="Aug" � MM%=8 v � MM$="Sep" � MM%=9 � � MM$="Oct" � MM%=10 � � MM$="Nov" � MM%=11 � � MM$="Dec" � MM%=12 � YY%=�(��$,12,4)) �.�Wimp_IconPutText(Entry_Window%,11,�(DD%)) �.�Wimp_IconPutText(Entry_Window%,12,�(MM%)) �.�Wimp_IconPutText(Entry_Window%,13,�(YY%)) � � � : � � �checkpassword � � PASS$=NEWPASS$ � �correct%=� �PASSALLOW%=� �parttwo ;�Wimp_IconPutText(Options_Window%,3,�PCOVER$,�(PASS$))) +�Wimp_IconPutText(Save_Window%,4,PASS$) +�Wimp_IconPutText(Save_Window%,5,PASS$) **�Wimp_IconPutText(Save_Window%,1,haa$) 4� >PASSALLOW%=� H��Wimp_WindowClose(Password_Window%):�Wimp_WindowAlert("Password Protection","The file has not been loaded due to incorrect password entry.") Rcorrect%=� \� f*ș"OS_ReadModeVariable",-1,11 � ,,Xpic p*ș"OS_ReadModeVariable",-1,12 � ,,Ypic z*ș"OS_ReadModeVariable",-1,4 � ,,Xfact �*ș"OS_ReadModeVariable",-1,5 � ,,Yfact �%ȗ ȓ 0,0,Xpic<<Xfact,Ypic<<Yfact � � � : �� �mousebox(w%) �wimp%!0=w% �$ș"Wimp_GetWindowOutline",,wimp% �Cȗ ȓ wimp%!4+2,wimp%!8+2,wimp%!12-wimp%!4-4,wimp%!16-wimp%!8-4 �� � : �� �resetentry �)�Wimp_IconPutText(Entry_Window%,5,"") �.�Wimp_IconPutText(Entry_Window%,3,STATUS$) *�Wimp_IconPutText(Entry_Window%,16,"") � : $ � �read . UPDATE%=� 8= AMMOUNT(total%)=�(�Wimp_IconText(Entry_Window%,5)) B" STATUS$(total%)=STATUS$ L� DATE$(total%)=�Wimp_IconText(Entry_Window%,11)+"/"+�Wimp_IconText(Entry_Window%,12)+"/"+�Wimp_IconText(Entry_Window%,13) V7 DD$(total%)=�Wimp_IconText(Entry_Window%,11) `7 MM$(total%)=�Wimp_IconText(Entry_Window%,12) j7 YY$(total%)=�Wimp_IconText(Entry_Window%,13) t8 WHO$(total%)=�Wimp_IconText(Entry_Window%,16) ~U � STATUS$(total%)="Save" � CURTOT(total%)=CURTOT(total%-1)+AMMOUNT(total%) �V � STATUS$(total%)="Spend" � CURTOT(total%)=CURTOT(total%-1)-AMMOUNT(total%) � total%+=1 � cur%=total% � �page � � � � � �input �; �Wimp_IconPutText(Main_Window%,69,�(curpage%+1)) �; �Wimp_IconPutText(Main_Window%,65,�(totpage%+1)) � B=curpage%*14 � � A=1 � 14 �� AMMOUNT(A+B)<>0 � 6 �Wimp_IconPutText(Main_Window%,A+70,�(A+B)) b$=�(AMMOUNT(A+B)) b$=�cut(b$) a$=�zero(b$) (/ �Wimp_IconPutText(Main_Window%,A,a$) 2< �Wimp_IconPutText(Main_Window%,A+16,STATUS$(A+B)) <: �Wimp_IconPutText(Main_Window%,A+31,DATE$(A+B)) F9 �Wimp_IconPutText(Main_Window%,A+45,WHO$(A+B)) Pb$=�(CURTOT(A+B)) Zb$=�cut(b$) da$=�zero(b$) n2 �Wimp_IconPutText(Main_Window%,A+85,a$) x� �+�Wimp_IconPutText(Main_Window%,A+70,"") �/ �Wimp_IconPutText(Main_Window%,A,"") �2 �Wimp_IconPutText(Main_Window%,A+16,"") �2 �Wimp_IconPutText(Main_Window%,A+31,"") �2 �Wimp_IconPutText(Main_Window%,A+45,"") �2 �Wimp_IconPutText(Main_Window%,A+85,"") �� � �A � � � � � �clearmain � � A=1 � 14 �2 �Wimp_IconPutText(Main_Window%,A+70,"") / �Wimp_IconPutText(Main_Window%,A,"") 2 �Wimp_IconPutText(Main_Window%,A+16,"") 2 �Wimp_IconPutText(Main_Window%,A+31,"") "2 �Wimp_IconPutText(Main_Window%,A+45,"") ,2 �Wimp_IconPutText(Main_Window%,A+85,"") 6 �A @1 �Wimp_IconPutText(Main_Window%,69,"1") J1 �Wimp_IconPutText(Main_Window%,65,"1") T � ^ : h � �page r" curpage%=�((cur%-1)/15) |2 � curpage%>totpage% � totpage%=curpage% � � � : � � �recalc � � A=1 � total% �A � STATUS$(A)="Save" � CURTOT(A)=CURTOT(A-1)+AMMOUNT(A) �B � STATUS$(A)="Spend" � CURTOT(A)=CURTOT(A-1)-AMMOUNT(A) � �A � � �: �J� ******************************************************************** �: �(� �Wimp_WindowAlert(title$,message$) �+�Wimp_WindowAlertBox(title$,message$,0) � : 3� �Wimp_WindowAlertBox(title$,message$,button%) &� response% 0$(wimp%+4)=message$ :Ȏ button% � D � 2 : response%=1 N � 1 : response%=15 X! � 3 : response%=(1<<5)+16 b! � 4 : response%=(1<<6)+16 l : response%=16 v� �=ș "Wimp_ReportError",wimp%,response%,title$ � ,response% �� �: �)� �Wimp_WindowCancel(title$,message$) �$(wimp%+4)=message$ �response%=23 �=ș "Wimp_ReportError",wimp%,response%,title$ � ,response% �=response%-2 �: �+� �Wimp_WindowErrorBox(title$,message$) �+�Wimp_WindowAlertBox(title$,message$,2) �� �: � �Wimp_WindowTitle(window%) wimp%!0=window% ș "Wimp_GetWindInfo",,wimp% 6� ((wimp%!60)�&100)=0 � 1,"Title isn't indirected" *=$(wimp%!76) 4: >� �Wimp_WindowLoad(window$) H9=�Wimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates") R: \-� �Wimp_WindowLoadFrom(window$,template$) f� c%,i%,n%,j%,sp$,sp2$ p%ș "Wimp_OpenTemplate",,template$ zMș "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 � ,,icons% �Ȏ sprites% � � � 1 : wimp%!64=sprites% �) : wimp%!64=�Event_Sprites(window%) �� �&ș "Wimp_CreateWindow",,wimp% � c% �ș "Wimp_CloseTemplate" �7ș "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8) �Ȏ wimp%!40 � � � -1 : � : i%=40 � � �$ wimp%!4=wimp%!i% : wimp%!0=c% �$ ș "Wimp_GetIconState",,wimp% - sp$=�Wimp_GetStringAtAddress(wimp%!28) " ș "Wimp_DeleteIcon",,wimp% Ȏ sprites% � $ � 1 : wimp%!32=1 . : 8/ ș "OS_SpriteOp",&108,sprites% � ,,,n% B j%=0 L � : j%+=1 V= ș "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j% `7 sp2$=�Wimp_GetStringAtAddress(pointer_block%) j � j%=n% � sp$=sp2$ t4 � sp$=sp2$ � wimp%!32=sprites% � wimp%!32=1 ~ � � wimp%!4=c% �. ș "Wimp_CreateIcon",,wimp%+4 � handle% � i%+=4 � � (wimp%!i%)=-1 �� �=c% �: �%� �Wimp_WindowBringToTop(window%) �!wimp%=window% �#ș "Wimp_GetWindowState",,wimp% �wimp%!28=-1 �ș "Wimp_OpenWindow",,wimp% � : � �Wimp_WindowClose(window%) !wimp%=window% ( ș "Wimp_CloseWindow",,wimp% 2� <: F$� �Wimp_WindowForceDraw(window%) PȎ window% � Z8 � -1 : ș "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024 d9 : ș "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0 n� x� �: �� �Wimp_WindowOpen(window%) �!wimp%=window% �#ș "Wimp_GetWindowState",,wimp% �ș "Wimp_OpenWindow",,wimp% �� �: ��Wimp_WindowInterface � ș"Wimp_BorderWindow",,wimp% �� �: �J� ******************************************************************** �: 0� �Wimp_SetIconSprite(window%,icon%,sprite$) wimp%!0=window% wimp%!4=icon% "!ș "Wimp_GetIconState",,wimp% ,$wimp%!32="S"+sprite$ 6wimp%!0=window% @ wimp%!8=0 Jwimp%!12=0 T!ș "Wimp_SetIconState",,wimp% ^� h: r� �Wimp_IconBar(Sprite$) |� icon% �wimp%!0=-1 �wimp%!4=0 : wimp%!8=0 �wimp%!12=88 : wimp%!16=74 �wimp%!20=&3002 �$(wimp%+24)=Sprite$ �'ș "Wimp_CreateIcon",,wimp% � icon% � =icon% �: �+� �Wimp_IconCaret(window%,icon%,chars%) �8ș "Wimp_SetCaretPosition",window%,icon%,,,-1,chars% �� �: �#� �Wimp_IconText(window%,icon%) #wimp%!0=window% : wimp%!4=icon% !ș "Wimp_GetIconState",,wimp% 7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected" &=$(wimp%!28) 0: :)� �Wimp_IconValidation(window%,icon%) D#wimp%!0=window% : wimp%!4=icon% N!ș "Wimp_GetIconState",,wimp% X7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected" b=$(wimp%!32) l: v&� �Wimp_IconDisable(window%,icon%) �#wimp%!0=window% : wimp%!4=icon% �$wimp%!8=1<<22 : wimp%!12=1<<22 �!ș "Wimp_SetIconState",,wimp% �� �: �%� �Wimp_IconEnable(window%,icon%) �#wimp%!0=window% : wimp%!4=icon% �$wimp%!8=0 : wimp%!12=1<<22 �!ș "Wimp_SetIconState",,wimp% �� �: �0� �Wimp_IconPutSprite(window%,icon%,sprite$) �!wimp%!0=window%:wimp%!4=icon% !!ș "Wimp_GetIconState",,wimp% !ș "Wimp_DeleteIcon",,wimp% !=wimp%!4=wimp%!8 : wimp%!8=wimp%!12 : wimp%!12=wimp%!16 ! ?wimp%!16=wimp%!20 : wimp%!20=wimp%!24 : $(wimp%+24)=sprite$ !*'ș "Wimp_CreateIcon",,wimp% � icon% !4 =icon% !>: !H,� �Wimp_IconPutText(window%,icon%,text$) !R#wimp%!0=window% : wimp%!4=icon% !\!ș "Wimp_GetIconState",,wimp% !f7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected" !p$(wimp%!28)=text$ !z#wimp%!0=window% : wimp%!4=icon% !�wimp%!8=0 : wimp%!12=0 !�!ș "Wimp_SetIconState",,wimp% !�� !�: !�� �Wimp_IconInterfaceStart !�ș"Wimp_BorderIcon",,wimp% !�� !�: !�� �Wimp_IconInterfaceFinish !� wimp%!8=0 !�ș"Wimp_BorderIcon",,wimp% !�� !�: "J� ******************************************************************** ": "� �Wimp_MenuAdjustOn(menu%) "$,ș "Wimp_GetPointerInfo",,pointer_block% ".^� ((pointer_block%!8)�1)=1 � ș "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4 "8� "B: "L� �Wimp_MenuChoice(level%) "V=(wimp%!(4*level%))+1 "`: "j� �Wimp_MenuCreate(menu$) "t)� menu$="Colours" �=�Wimp_MenuColours "~'� menu%,index%,width%,length%,k%,s% "�.� menu% 28+�Wimp_MenuNoOfEntries(menu$)*24 "�7menu%?12=7 : menu%?13=2 : menu%?14=7 :menu%?15=0 "�+menu%!16=140 : menu%!20=44 : menu%!24=0 "�index%=menu%+28 "� $menu%=�menu$,�menu$,"\")-1) "�#width%=�(�menu$,�menu$,"\")-1)) "�$menu$+="\" : Menu_NoOfEntries%=0 "�ȕ menu$<>"" "�menu$=�menu$,�menu$,"\")+1) "�Ȏ menu$ � "� � "" "� : # 1 !index%=0 : index%!4=-1 : index%!8=&7000021 # length%=�menu$,"\")-1 # k%=��menu$,length%),">") # Ȏ k% � #( � 0 #2 #<% s%=�(�menu$,k%+1,length%-k%)) #F index%!4=s% #P length%=k%-1 #Z � #d" $(index%+12)=�menu$,length%) #n' � length%>width% � width%=length% #x index%+=24 #�� #�� #�menu%!16=16*(width%+1) #�(index%!-24=index%!-24 � &80 : =menu% #�: #�� �Wimp_MenuColours #�!=�Wimp_MenuCreateColours(" ") #�: #�%� �Wimp_MenuCreateColours(title$) #�� x$,men%,j%,i% #�6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15" #�men%=�Wimp_MenuCreate(x$) #�� i%=0 � 15 $ Ȏ � � $(� i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7 $ : j%=0 $"� $,men%?(39+i%*24)=i%*16+j% $6�Wimp_MenuCentre(men%,i%+1) $@� $J =men% $T: $^"� �Wimp_MenuNoOfEntries(menu$) $h� n% ,j% : n%=0 : j%=0 $r� $|j%=�menu$,"\",j%+1) $�� j%<>0 � n%+=1 $� � j%=0 $�=n% $�: $�5� �Wimp_MenuBackGroundColour(menu%,item%,colour%) $�� fore%,i% $�&fore%=(menu%?(39+(item%-1)*24))�16 $�(i%=((menu%?(39+(item%-1)*24))�16)�16 $�/menu%?(39+(item%-1)*24)=fore%+16*colour%+i% $�� $�: $�7� �Wimp_IconBackGroundColour(window%,icon%,colour%) $�� fore%,i% %(fore%=(window%?(39+(icon%-1)*24))�16 %*i%=((window%?(39+(icon%-1)*24))�16)�16 %1window%?(39+(icon%-1)*24)=fore%+16*colour%+i% %&� %0: %:#� �Wimp_MenuCentre(menu%,item%) %D:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3) %N� %X: %b� �Wimp_MenuClose %lș "Wimp_CreateMenu",-1 %v� %�: %�$� �Wimp_MenuDisable(menu%,item%) %�;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22) %�� %�: %�'� �Wimp_MenuDottedLine(menu%,item%) %�7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�2 %�� %�: %�#� �Wimp_MenuEnable(menu%,item%) %�"�Wimp_MenuDisable(menu%,item%) %�;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22) %�� &: &5� �Wimp_MenuForegroundColour(menu%,item%,colour%) &Emenu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16) & � &*: &4)� �Wimp_MenuGlue(menu1%,item%,menu2%) &>menu1%!(8+item%*24)=menu2% &H� &R: &\'� �Wimp_MenuItem(menu%,item%,item$) &f,$(menu%+(40+(item%-1)*24))=�item$,12)+�0 &p� &z: &�$� �Wimp_MenuMessage(menu%,item%) &�<menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�(1<<3) &�� &�: &�"� �Wimp_MenuPopUp(Menu%,x%,y%) &� � SA%=� � &�menu%=Menu% &�+ș "Wimp_CreateMenu",,menu%,x%-64,y%+20 &�� &�� &�: &�� �Wimp_MenuPopUpBar(x%,y%) &�� n% : n%=0 '+ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0 ' n%+=1 '� '$2ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44 '.menu%=Bar_Menu% '8� 'B: 'L!� �Wimp_MenuTick(menu%,item%) 'V7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1 '`� 'j: 't#� �Wimp_MenuTitle(menu%,title$) '~$menu%=�title$,12)+�0 '�� '�: '�=� �Wimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%) '�7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�4 '�8menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�&100 '�#menu%!(40+(item%-1)*24)=buffer% '� menu%!(44+(item%-1)*24)=val% '�)menu%!(48+(item%-1)*24)=BufferLength% '�� '�: '�J� ******************************************************************** '�: ( %� �Wimp_SelectIcon(window%,icon%) ( wimp%!0=window% (wimp%!4=icon% (#wimp%!8=%1000000000000000000000 (($wimp%!12=%1000000000000000000000 (2ș&400CD,,wimp% (<� (F: (P'� �Wimp_UnselectIcon(window%,icon%) (Zwimp%!0=window% (dwimp%!4=icon% (n wimp%!8=0 (x$wimp%!12=%1000000000000000000000 (�ș&400CD,,wimp% (�� (�: (�� �Wimp_SpritesLoad (�/�Wimp_SpritesPathLoad("<Obey$Dir>.Sprites") (�direct_sprites%=sprites% (�� (�: (�&� �Wimp_SpritesPathLoad(pathname$) (� �S%,T% (�,S%=�"<Obey$Dir>.Sprites":T%=�#S%+16:�#S% (��sprites%T%,spname%12 (�!sprites%=T%:sprites%!8=0 )!ș"OS_SpriteOp",&109,sprites% )+ș"OS_SpriteOp",&10A,sprites%,pathname$ )� )": ),J� ******************************************************************** )6: )@� �Wimp_FileType(type%) )JȎtype%� )T�&FFF:="Text" )^�&FFD:="Data" )h�&FFB:="Basic" )r�&FF9:="Sprite" )|�&FED:="Palette" )��&FEC:="Template" )��&AFF:="Draw" )��&1000:="Folder" )��&2000:="Application" )�=�~(type%) )�� )�: )�� �Wimp_GetFilePathName )�'=�Wimp_GetStringAtAddress(wimp%+44) )�: )�� �Wimp_FileLoad(pathname$) )��S%,T%,file% )�S%=�pathname$ *T%=�#S%+16 *�#S% *�file%T% *&"�("LOAD"+pathname$+""+�~file%) *0 =file% *:; *D&� �Wimp_GetStringAtAddress(array%) *N �s$:s$="" *X<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�: *b=s$ *l: *v#� �Wimp_GetFileFromPathname(f$) *�Ȏ �f$,".") � *� � 0 :=f$ *�7 :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,"."))) *�� *�: *�� �Wimp_SendToEdit(file$) *�� n% *�wimp%!4=&6CC01C0C *�wimp%!16=5 *�wimp%!36=0 *�wimp%!40=&FFF *�$(wimp%+44)=file$+�0 *�n%=�file$+45 +,� n%�4 � !wimp%=4+(n%>>2)<<2 � !wimp%=n% +$ș "Wimp_SendMessage",17,wimp%,0 +� + : +*J� ******************************************************************** +4: +>/� �Wimp_Start(TaskName$,wimp_memory%,icon%) +H%� wimp% wimp_memory%,icons% icon% +R)� wimp_memory%<256 � wimp_memory%=256 +\icon_memory%=icons%+icon% +ftask$=TaskName$ +p+indirect_sprites%=1 : direct_sprites%=1 +z�Wimp_SetEventVariables +�� � �Wimp_Error:� +�@ș"Wimp_Initialise",200,&4B534154,TaskName$ � version%,task% +�� +�: +�� �Wimp_BASICParameters +� � com$,param$,I% +� ș "OS_GetEnv" � com$ +� params$="" +� I%=�com$," -quit ") +�5 � I% � params$=�com$,�com$," ",I%+�" -quit ")+1) +�=params$ +�: +�� �Wimp_SetEventVariables ,� pointer_block% 20 ,interface%=� ,.null%=1 :draw%=2 : pointer_leaving%=1<<4 ,$1pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7 ,.&key%=1<<8:menu%=1<<9:scroll%=1<<10 ,8@lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18) ,B0recorder%=1<<18:acknowledge%=1<<19:window%=0 ,L!sprites%=1:version%=0:task%=0 ,V*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0 ,`*x_origin%=0:y_origin%=0:SaveWindow%=-3 ,j3message_quit%=0:message_save%=2:message_load%=3 ,t!mouse_button%=2:save_event%=0 ,~ top_line%=0 : bottom_line%=0 ,�� ,�: ,�� �Wimp_Error ,� �X$,x% ,� � � � ,�x%=� ,�X$=�$+"atline"+�(x%�10) ,��ErrorMsg%36 ,�EErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x% ,�$(ErrorMsg%+24)="!RunImage" ,�%ș"Wimp_SendMessage",17,ErrorMsg% ,��Wimp_WindowAlert(task$,X$) - �Wimp_CloseDown - � -: -� �Wimp_CloseDown -(#ș"Wimp_CloseDown",task%,"TASK" -2� -<: -F� �Wimp_Quit -Pfinished%=� -Z� -d: -n#� �Wimp_ReadVariable(Variable$) -x�len%,result%,variable% -�$wimp%=Variable$ -�3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len% -�wimp%?(len%+255)=13 -�=$(wimp%+255) -�: -�J� ******************************************************************** -�: -�� �Wimp_WaitForEvent -�� mask%,event% -�finished%=� -�mask%=%111000011001 -�� -�' ș"Wimp_Poll",mask%,wimp% � event% . Ȏ event% � . �0 : . �1 : �Wimp_PollDrawWindow ."& �2 : ș "Wimp_OpenWindow",,wimp% ., �3 : �Wimp_PollCloseWindow .6 �4 : .@ �5 : .J �6 : �Wimp_PollMouseClick .T �7 : �Wimp_PollSaveMessage .^ �8 : �Wimp_PollKeyPress .h# �9 : �Event_MenuChoice(menu%) .r �10: .| �11: .� �12: .� �17,18: �Wimp_PollMessages .� �19: .� � .�� finished% .�� .�: .�� �Wimp_PollDrawWindow .�� more% .�&ș"Wimp_RedrawWindow",,wimp%�more% .�window%=wimp%!0 .�Ax_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24 .�ȕmore% /0 � interface% � ș"Wimp_BorderWindow",,wimp% /- �Event_Draw(window%,x_origin%,y_origin%) /' ș"Wimp_GetRectangle",,wimp%�more% /&� /0� /:: /D� �Wimp_PollCloseWindow /N% ș "Wimp_GetPointerInfo",,wimp% /X) window%=wimp%!12 : buttons%=wimp%!8 /b) �Event_WindowClose(window%,buttons%) /l2 !wimp%=window% : ș "Wimp_CloseWindow",,wimp% /v� /�: /�� �Wimp_PollMouseClick /�J button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 /� Ȏ button% � /�" �2 : �Wimp_PollMenuPopUp /�# : Ȏ �Event_Save(window%) � /�, � � : �Wimp_PollMouseSave /�1 � �: �Wimp_PollEventMouseClick /� � /� � /�� /�: /�� �Wimp_PollMenuPopUp 0 � SA%=� � 0menu%=�Event_Menu(window%) 0 Ȏ menu% � 0 � �: 0* : 04 Ȏ window% � 0> � -2 : n%=0 0H3 ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0 0R n%+=1 0\ � 0f: ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*73 0p4 : ș"Wimp_CreateMenu",,menu%,x%-64,y%+20 0z � 0� � 0�� 0�� 0�: 0�� �Wimp_PollMouseSave 0� Ȏ icon% � 0�8 � 0 : � button% � &50 � �Wimp_PollDragBox(window%) 0�8 � 2 : � button% � 5 � �Wimp_PollSaveFile(window%) 0� � 0�� 0�: 0�� �Wimp_PollEventMouseClick 0�. � interface% � ș"Wimp_BorderIcon",,wimp% 13 �Event_MouseClick(window%,icon%,button%,x%,y%) 1 Ȏ interface% � 1 � � : 1$( wimp%!0=x%:wimp%!4=y% : wimp%!8=0 1.( wimp%!12=window% : wimp%!16=icon% 18! ș"Wimp_BorderIcon",,wimp% 1B � 1L� 1V: 1`!� �Wimp_PollSaveFile(window%) 1j �file$ 1t@ wimp%!0=window% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 1~ file$=$(wimp%!28) 1� Ȏ �file$,".") � 1� � 0 : 1�� key%=13 � 1�@ $(wimp%+4)="To save, drag the icon to a directory window" 1�+ ș "Wimp_ReportError",wimp%,16,task$ 1�� 1� : 1�1 � key%=13 � �Event_SaveFile(file$,window%) 1� � 1�&� key%=13 � ș"Wimp_CreateMenu",-1 1�� SA%=� � �Wimp_CloseDown 1�� 2 : 2 � �Wimp_PollDragBox(window%) 2 �x%,y% 2 save%=window% 2( !wimp%=window% 22# ș"Wimp_GetWindowState",,wimp% 2<- x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24 2F wimp%!4=0 2P! ș"Wimp_GetIconState",,wimp% 2Z !wimp%=window% 2d wimp%!4=5 2n, wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12 2x. wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20 2� wimp%!24=0:wimp%!28=0 2�* wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF 2� ș"Wimp_DragBox",,wimp% 2�� 2�: 2�� �Wimp_PollKeyPress 2�1 window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24 2� Ȏ �Event_Save(window%) � 2�( � � : �Wimp_PollSaveFile(window%) 2�/ � �: �Event_KeyPress(window%,icon%,key%) 2� � 2�� 2�: 3� �Wimp_PollSaveMessage 3�file$,window%,icon%,x%,y% 3# ș"Wimp_GetPointerInfo",,wimp% 3": window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 3,> wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 36 file$=$(wimp%!28) 3@+ file$=�Wimp_GetFileFromPathname(file$) 3JACE$=file$ 3T wimp%!20=window% 3^ wimp%!24=icon% 3h wimp%!28=x%:wimp%!32=y% 3r wimp%!36=length% 3| wimp%!0=64 3� wimp%!12=0 3� wimp%!16=1 3� wimp%!40=&FFF 3� $(wimp%+44)=file$ 3�4 ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24 3�� 3�: 3�� �Wimp_PollMessages 3�� file$ 3�,file$=�Wimp_GetStringAtAddress(wimp%+44) 3� Ȏ wimp%!16 � 3� � 0 : finished%=� 3� � 1 : 4 � 2 : 4/ � PROCWimp_IconPutText(save%,1,file$) 4C wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 4& $(wimp%!28)=file$ 40< wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0 4:' ș "Wimp_SetIconState",,wimp% 4D0 � PROCWimp_IconCaret(save%,1,LENfile$) 4N8 ș "Wimp_SetCaretPosition",save%,1,,,-1,�file$ 4X& �Event_SaveFile(file$,save%) 4b# � SA%=� � �Wimp_CloseDown 4l � 3 4vG type$=�Wimp_FileType(wimp%!40) : �Event_LoadFile(file$,type$) 4� � 5 : 4�!� wimp%!40=&FAF � event%=18 � 4�wimp%!12=wimp%!8 4�+ș"XWimp_SendMessage",17,wimp%,wimp%!20 4�file$=�Wimp_GetFilePathName 4�type$=�Wimp_FileType(&FAF) 4� �Event_LoadFile(file$,type$) 4�� 4� � 4�� 4�: 4�&� �Wimp_GetStringAtAddress(array%) 4� �s$:s$="" 5<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�: 5=s$ 5: 5 #� �Wimp_GetFileFromPathname(f$) 5*Ȏ �f$,".") � 54 � 0 :=f$ 5>7 :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,"."))) 5H� 5R: 5\� �Wimp_FileType(type%) 5fȎtype%� 5p�&FFF:="Text" 5z�&FFD:="Data" 5��&FFB:="Basic" 5��&FF9:="Sprite" 5��&FED:="Palette" 5��&FEC:="Template" 5��&AFF:="Draw" 5��&1000:="Folder" 5��&2000:="Application" 5�=�~(type%) 5�� 5�: 5� ݤcut(A$) 5�Ab=�A$,".") 5�"� Ab<>0 � B$=�A$,Ab+2) � B$=A$ 6=B$ 6: 6��pdsel 6$� PSEL%=2 � 6.&�Wimp_IconDisable(Print_Window%,8) 68� 6B� PSEL%=3 � 6L&�Wimp_IconDisable(Print_Window%,9) 6V'�Wimp_IconDisable(Print_Window%,11) 6`� 6j� 6t: 6~ ��psel 6�� PSEL%=1 � 6�%�Wimp_SelectIcon(Print_Window%,5) 6�� 6�� PSEL%=2 � 6�%�Wimp_SelectIcon(Print_Window%,6) 6�%�Wimp_IconEnable(Print_Window%,8) 6�G�Wimp_IconCaret(Print_Window%,8,�(�Wimp_IconText(Print_Window%,8))) 6�� 6�� PSEL%=3 � 6�%�Wimp_SelectIcon(Print_Window%,7) 6�%�Wimp_IconEnable(Print_Window%,9) 6�&�Wimp_IconEnable(Print_Window%,11) 7 G�Wimp_IconCaret(Print_Window%,9,�(�Wimp_IconText(Print_Window%,9))) 7 � 7� 7: 7(� �getstring(array%) 72� path$,pointer% 7<path$="" 7Fpointer%=array% 7P� 7Zpath$+=�?pointer% 7dpointer%+=1 7n � ?pointer%=0 � ?pointer%=13 7x =path$ 7�: 7���openprinter 7�0ș "XPDriver_Info" � R0,R1,R2,R3,R4,R5,R6,R7 7�/� R1=0 � R2=0 � R3=0 � R5=0 � R6=0 � R7=0 � 7�9�Wimp_IconPutText(Print_Window%,3,"No driver loaded") 7� PRT%=� 7�� 7�printer$=�getstring(R4) 7�/�Wimp_IconPutText(Print_Window%,3,printer$) 7� PRT%=� 7�� 7�� 7�: 8��print 8: 86printhand%=�("PRINTER:$.Job1") : � start a job !!! 8"$title%="Cheat file" 8,ș &80145,printhand%,title% 86>�#printhand%,13 : � put head to left of paper to start!!!! 8@: 8J� PSEL%=1 � 8T[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) 8^[�printline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+�(10)) 8h[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) 8r� A=1 � total%-1 8|� AMMOUNT(A)<>0 � 8�A$=�(A) 8�AA=�(A$) 8�S$=�spc(3-AA) 8�B$=�(AMMOUNT(A)) 8�B$=�zero(B$) 8�BB=�(B$) 8�SS$=�spc(11-BB) 8�%� STATUS$(A)="Spend" � C$="Spend" 8�$� STATUS$(A)="Save" � C$="Save " 8�CC=�(DATE$(A)) 8�SSS$=�spc(10-CC) 8�DD=�(WHO$(A)) 8�SSSS$=�spc(20-DD) 9E$=�(CURTOT(A)) 9E$=�zero(E$) 9EE=�(E$) 9&SSSSS$=�spc(11-EE) 90g�printline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+�(10)) 9:� 9D�A 9N[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) 9X� 9b 9l� PSEL%=2 � 9v)PA=�(�Wimp_IconText(Print_Window%,8)) 9�PB=(PA-1)*14 9�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) 9�[�printline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+�(10)) 9�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) 9�� A=(1+PB) � (14+PB) 9�� AMMOUNT(A)<>0 � 9�A$=�(A) 9�AA=�(A$) 9�S$=�spc(3-AA) 9�B$=�(AMMOUNT(A)) 9�B$=�zero(B$) 9�BB=�(B$) 9�SS$=�spc(11-BB) :%� STATUS$(A)="Spend" � C$="Spend" :$� STATUS$(A)="Save" � C$="Save " :CC=�(DATE$(A)) : SSS$=�spc(10-CC) :*DD=�(WHO$(A)) :4SSSS$=�spc(20-DD) :>E$=�(CURTOT(A)) :HE$=�zero(E$) :REE=�(E$) :\SSSSS$=�spc(11-EE) :fg�printline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+�(10)) :p� :z�A :�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) :�� :� :�� PSEL%=3 � :�(A=�(�Wimp_IconText(Print_Window%,9)) :�)B=�(�Wimp_IconText(Print_Window%,11)) :�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) :�[�printline("|Num| Ammount |State| Date | Who gave it to you | TOTAL |"+�(10)) :�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) :� � A=A � B :�� AMMOUNT(A)<>0 � :�A$=�(A) :�AA=�(A$) ;S$=�spc(3-AA) ;B$=�(AMMOUNT(A)) ;B$=�zero(B$) ;$BB=�(B$) ;.SS$=�spc(11-BB) ;8%� STATUS$(A)="Spend" � C$="Spend" ;B$� STATUS$(A)="Save" � C$="Save " ;LCC=�(DATE$(A)) ;VSSS$=�spc(10-CC) ;`DD=�(WHO$(A)) ;jSSSS$=�spc(20-DD) ;tE$=�(CURTOT(A)) ;~E$=�zero(E$) ;�EE=�(E$) ;�SSSSS$=�spc(11-EE) ;�g�printline("|"+A$+S$+"|"+B$+SS$+"|"+C$+"|"+DATE$(A)+SSS$+"|"+WHO$(A)+SSSS$+"|"+E$+SSSSS$+"|"+�(10)) ;�� ;��A ;�[�printline("+---+-----------+-----+----------+--------------------+-----------+"+�(10)) ;�� ;�: ;�(�#printhand%,12 : � do linefeed !!!! ;�ș &80148,printhand% ;�� #printhand% ;�� <