Home » Archimedes archive » Archimedes World » AW-1994-07-Disc2.adf » Disk2Jul94 » !AWJuly94/Goodies/ADRBook/!ADRBook/!RunImage
!AWJuly94/Goodies/ADRBook/!ADRBook/!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-07-Disc2.adf » Disk2Jul94 |
Filename: | !AWJuly94/Goodies/ADRBook/!ADRBook/!RunImage |
Read OK: | ✔ |
File size: | DA0A 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("ADRBook",1880,3862) 60 PROCUser_SetInitialData 70 PROCCreate_Windows 80 PROCCreate_Menus 90IF fileload$<>" " THEN 100PROCEvent_LoadFile(fileload$,"FBF") 110PROCWimp_IconPutText(Save_Window%,1,fileload$) 120ENDIF 130 PROCWimp_WaitForEvent 140 PROCWimp_CloseDown 150 END 160 : 170 DEF PROCUser_SetInitialData 180DOSAVE%=TRUE 190search%=FALSE 200SNUM%=-2 210SEARCH$="" 220SEARCH2$="" 230SEARCH3$="" 240ssel%=0 250DIM title% 256 260 psel%=1 270 pcur%=0 280 psurname%=TRUE 290 pothers%=TRUE 300 padd%=TRUE 310 ppostcode%=TRUE 320 parea%=TRUE 330 ptel%=TRUE 340 pnts%=TRUE 350DIM tone%(9,1) 360FORI%=0TO9:FORJ%=0TO1:READtone%(I%,J%):NEXT:NEXT 370DATA24063,26145,22288,25564,22288,26145,22288,26726,22979,25564 380DATA22979,26145,22979,26726,23482,25564,23482,26145,23482,26726 390 WIN$="NONE" 400 dim=300 410 DIM SURNAME$(dim) 420 DIM OTHERS$(dim) 430 DIM ADD1$(dim) 440 DIM ADD2$(dim) 450 DIM ADD3$(dim) 460 DIM POSTCODE$(dim) 470 DIM AREA$(dim) 480 DIM TEL$(dim) 490 DIM NTS$(dim) 500SURNAME$()="" 510OTHERS$()="" 520ADD1$()="" 530ADD2$()="" 540ADD3$()="" 550POSTCODE$()="" 560AREA$()="" 570TEL$()="" 580NTS$()="" 590 cur%=0 600 tot%=0 610SA%=FALSE 620UPDATE%=FALSE 630CD%=FALSE 640 ENDPROC 650 : 660 DEF PROCCreate_Windows 670 PROCWimp_SpritesLoad 680 Info_Window%=FNWimp_WindowLoad("Info") 690 Title_Window%=FNWimp_WindowLoad("Title") 700 Main_Window%=FNWimp_WindowLoad("Main") 710 Print_Window%=FNWimp_WindowLoad("Print") 720 Save_Window%=FNWimp_WindowLoad("Save") 730 Set_Window%=FNWimp_WindowLoad("Set") 740 Close_Window%=FNWimp_WindowLoad("Close") 750 Save2_Window%=FNWimp_WindowLoad("Save2") 760 Search2_Window%=FNWimp_WindowLoad("Search2") 770 Bar_Icon%=FNWimp_IconBar("!ADRBook") 780 PROCable 790 ENDPROC 800 : 810 DEF FNEvent_Save(window%) 820 CASE window% OF 830 WHEN Save_Window% :=TRUE 840 WHEN Save2_Window% :=TRUE 850 OTHERWISE :=FALSE 860 ENDCASE 870 : 880 DEF FNEvent_Sprites(window%)=sprites% 890 : 900 DEF PROCCreate_Menus 910 Save_Menu%=FNWimp_MenuCreate("Save\ADRBook>Save_Window%\Text>Save2_Window%") 920 Bar_Menu%=FNWimp_MenuCreate("ADRBook\Info>Info_Window%\Save>Save_Menu%\Quit") 930 Main_Menu%=FNWimp_MenuCreate("Main\Turn Back\Start\Back\Dial\Sort\Search Set\Delete\Add\Print\Forward\End\Save>Save_Menu%") 940 Title_Menu%=FNWimp_MenuCreate("Title\Close Book\Turn Over\Save>Save_Menu%") 950 Search2_Menu%=FNWimp_MenuCreate("Search\Search\Cancel") 960 PROCWimp_MenuDottedLine(Title_Menu%,1) 970 PROCWimp_MenuDottedLine(Title_Menu%,2) 980 PROCWimp_MenuDottedLine(Bar_Menu%,1) 990 PROCWimp_MenuDottedLine(Bar_Menu%,2) 1000 Print_Menu%=FNWimp_MenuCreate("Print\Turn Back\Print") 1010 PROCWimp_MenuDottedLine(Print_Menu%,1) 1020 Set_Menu%=FNWimp_MenuCreate("Search Set\Turn Back\Search") 1030 PROCWimp_MenuDottedLine(Main_Menu%,1) 1040 PROCWimp_MenuDottedLine(Main_Menu%,3) 1050 PROCWimp_MenuDottedLine(Main_Menu%,9) 1060 PROCWimp_MenuDottedLine(Main_Menu%,11) 1070 PROCmenuupdate 1080 ENDPROC 1090 : 1100 DEF FNEvent_Menu(window%) 1110 CASE window% OF 1120 WHEN Bar_Window% : =Bar_Menu% 1130 WHEN Main_Window% 1140IF search%=FALSE THEN 1150=Main_Menu% 1160ELSE 1170=Search2_Menu% 1180ENDIF 1190 WHEN Print_Window% : =Print_Menu% 1200 WHEN Title_Window% : =Title_Menu% 1210 WHEN Set_Window% : =Set_Menu% 1220 WHEN Search2_Window% : =Search2_Menu% 1230 OTHERWISE : =FALSE 1240 ENDCASE 1250 : 1260 DEF PROCEvent_WindowClose(window%,buttons%) 1270 CASE window% OF 1280 WHEN Title_Window% 1290WIN$="NONE" 1300 WHEN Main_Window% 1310PROCWimp_WindowBringToTop(Title_Window%) 1320WIN$="TITLE" 1330 WHEN Print_Window% 1340PROCWimp_WindowBringToTop(Main_Window%) 1350WIN$="MAIN" 1360 WHEN Set_Window% 1370PROCsearchcut 1380PROCWimp_WindowBringToTop(Main_Window%) 1390WIN$="MAIN" 1400 1410 ENDCASE 1420 ENDPROC 1430 : 1440 DEF PROCEvent_Draw(window%,x_origin%,y_origin%) 1450 CASE window% OF 1460 WHEN Info_Window% : PROCUser_DrawInfoWindow 1470 WHEN Title_Window% : PROCUser_DrawTitleWindow 1480 WHEN Main_Window% : PROCUser_DrawMainWindow 1490 WHEN Print_Window% : PROCUser_DrawPrintWindow 1500 WHEN Save_Window% : PROCUser_DrawSaveWindow 1510 ENDCASE 1520 ENDPROC 1530 : 1540 DEF PROCUser_DrawInfoWindow 1550 ENDPROC 1560 : 1570 DEF PROCUser_DrawTitleWindow 1580 ENDPROC 1590 : 1600 DEF PROCUser_DrawMainWindow 1610 SYS"Wimp_SetColour",11 1620 len=212/(tot%+1) 1630 pos=cur%*len 1640 RECTANGLE FILL (x_origin%+530)+pos,y_origin%-594,len,22 1650 ENDPROC 1660 : 1670 DEF PROCUser_DrawPrintWindow 1680 ENDPROC 1690 : 1700 DEF PROCUser_DrawSaveWindow 1710 ENDPROC 1720 : 1730 DEF PROCEvent_MouseClick(window%,icon%,button%,x%,y%) 1740 CASE window% OF 1750 WHEN Bar_Window% : PROCUser_MouseBar 1760 WHEN Info_Window% : PROCUser_MouseInfo( button%,icon%) 1770 WHEN Title_Window% : PROCUser_MouseTitle( button%,icon%) 1780 WHEN Main_Window% : PROCUser_MouseMain( button%,icon%) 1790 WHEN Print_Window% : PROCUser_MousePrint( button%,icon%) 1800 WHEN Set_Window% : PROCUser_MouseSearch( button%,icon%) 1810 WHEN Close_Window% : PROCUser_MouseClose( button%,icon%) 1820 WHEN Search2_Window% : PROCUser_MouseClose2( button%,icon%) 1830 ENDCASE 1840 ENDPROC 1850 : 1860 DEF PROCUser_MouseClose2( button%,icon%) 1870 IF icon%=3 THEN 1880 search%=FALSE 1890 PROCWimp_IconEnable(Main_Window%,21) 1900 PROCWimp_IconEnable(Main_Window%,22) 1910 PROCWimp_IconEnable(Main_Window%,23) 1920 PROCWimp_IconEnable(Main_Window%,24) 1930 PROCWimp_IconEnable(Main_Window%,25) 1940 PROCWimp_IconEnable(Main_Window%,26) 1950 PROCWimp_IconEnable(Main_Window%,27) 1960 PROCWimp_IconEnable(Main_Window%,28) 1970 PROCWimp_IconEnable(Main_Window%,29) 1980 PROCWimp_IconEnable(Main_Window%,30) 1990 PROCWimp_IconEnable(Main_Window%,33) 2000 PROCWimp_WindowClose(Search2_Window%) 2010 ENDIF 2020 IF icon%=2 AND ssel%=2 THEN 2030 IF SEARCH$=" " AND SEARCH2$=" " AND SEARCH3$=" " THEN 2040 PROCWimp_WindowErrorBox("!ADRBook","Please set search parameters") 2050 ELSE 2060 PROCsearch 2070 ENDIF 2080 ENDIF 2090 2100 IF icon%=2 AND ssel%<>2 THEN 2110 IF SEARCH$<>"" AND SEARCH2$<>"" AND SEARCH3$<>"" THEN 2120 PROCsearch 2130 ELSE 2140 PROCWimp_WindowErrorBox("!ADRBook","Please set search parameters") 2150 ENDIF 2160 ENDIF 2170 ENDPROC 2180 : 2190 DEF PROCUser_MouseClose( button%,icon%) 2200 IF icon%=1 THEN 2210SA%=TRUE 2220PROCunbox 2230PROCWimp_WindowClose(Close_Window%) 2240UPDATE%=FALSE 2250PROCWimp_WindowBringToTop(Save_Window%) 2260A$=FNWimp_IconText(Save_Window%,1) 2270PROCWimp_IconCaret(Save_Window%,1,LEN(A$)) 2280ENDIF 2290 IF icon%=2 THEN 2300PROCunbox 2310UPDATE%=FALSE 2320PROCWimp_WindowClose(Close_Window%) 2330CD%=TRUE 2340ENDIF 2350 IF icon%=3 THEN 2360PROCunbox 2370PROCWimp_WindowClose(Close_Window%) 2380ENDIF 2390IF CD%=TRUE THEN PROCWimp_CloseDown 2400ENDPROC 2410 : 2420 DEF PROCUser_MouseBar 2430 IF WIN$="NONE" AND SA%=FALSE THEN PROCWimp_WindowBringToTop(Title_Window%):WIN$="TITLE" 2440 ENDPROC 2450 : 2460 DEF PROCUser_MouseSearch( button%,icon%) 2470 IF icon%=3 AND ssel%=2 THEN 2480 PROCsearchcut 2490 IF SEARCH$=" " AND SEARCH2$=" " AND SEARCH3$=" " THEN 2500 PROCWimp_WindowErrorBox("!ADRBook","Please set search parameters") 2510 ELSE 2520 PROCWimp_WindowClose(Set_Window%) 2530 PROCWimp_WindowBringToTop(Main_Window%) 2540 PROCWimp_WindowBringToTop(Search2_Window%) 2550 PROCWimp_IconDisable(Main_Window%,21) 2560 PROCWimp_IconDisable(Main_Window%,22) 2570 PROCWimp_IconDisable(Main_Window%,23) 2580 PROCWimp_IconDisable(Main_Window%,24) 2590 PROCWimp_IconDisable(Main_Window%,25) 2600 PROCWimp_IconDisable(Main_Window%,26) 2610 PROCWimp_IconDisable(Main_Window%,27) 2620 PROCWimp_IconDisable(Main_Window%,28) 2630 PROCWimp_IconDisable(Main_Window%,29) 2640 PROCWimp_IconDisable(Main_Window%,30) 2650 PROCWimp_IconDisable(Main_Window%,33) 2660 search%=TRUE 2670 PROCsearch 2680 ENDIF 2690 ENDIF 2700 2710 IF icon%=3 AND ssel%<>2 THEN 2720 PROCsearchcut 2730 IF SEARCH$<>"" AND SEARCH2$<>"" AND SEARCH3$<>"" THEN 2740 PROCWimp_WindowClose(Set_Window%) 2750 PROCWimp_WindowBringToTop(Main_Window%) 2760 PROCWimp_WindowBringToTop(Search2_Window%) 2770 PROCWimp_IconDisable(Main_Window%,21) 2780 PROCWimp_IconDisable(Main_Window%,22) 2790 PROCWimp_IconDisable(Main_Window%,23) 2800 PROCWimp_IconDisable(Main_Window%,24) 2810 PROCWimp_IconDisable(Main_Window%,25) 2820 PROCWimp_IconDisable(Main_Window%,26) 2830 PROCWimp_IconDisable(Main_Window%,27) 2840 PROCWimp_IconDisable(Main_Window%,28) 2850 PROCWimp_IconDisable(Main_Window%,29) 2860 PROCWimp_IconDisable(Main_Window%,30) 2870 PROCWimp_IconDisable(Main_Window%,33) 2880 search%=TRUE 2890 PROCsearch 2900 ELSE 2910 PROCWimp_WindowErrorBox("!ADRBook","Please set search parameters") 2920 ENDIF 2930 ENDIF 2940 2950 IF icon%=2 THEN 2960PROCsearchcut 2970PROCWimp_WindowClose(Set_Window%) 2980PROCWimp_WindowBringToTop(Main_Window%) 2990WIN$="MAIN" 3000PROCupdate 3010 ENDIF 3020 IF icon%=0 OR icon%=4 OR icon%=6 OR icon%=10 OR icon%=12 OR icon%=14 OR icon%=16 THEN 3030 IF icon%=0 AND ssel%<>0 THEN PROCunsearch:ssel%=0:PROCselsearch 3040 IF icon%=4 AND ssel%<>1 THEN PROCunsearch:ssel%=1:PROCselsearch 3050 IF icon%=6 AND ssel%<>2 THEN PROCunsearch:ssel%=2:PROCselsearch 3060 IF icon%=10 AND ssel%<>3 THEN PROCunsearch:ssel%=3:PROCselsearch 3070 IF icon%=12 AND ssel%<>4 THEN PROCunsearch:ssel%=4:PROCselsearch 3080 IF icon%=14 AND ssel%<>5 THEN PROCunsearch:ssel%=5:PROCselsearch 3090 IF icon%=16 AND ssel%<>6 THEN PROCunsearch:ssel%=6:PROCselsearch 3100 ENDIF 3110 ENDPROC 3120 : 3130 DEF PROCUser_MouseInfo( button%,icon%) 3140 ENDPROC 3150 : 3160 DEF PROCUser_MouseTitle( button%,icon%) 3170 IF icon%=6 THEN 3180PROCWimp_WindowClose(Title_Window%) 3190WIN$="NONE" 3200ENDIF 3210 IF icon%=7 THEN 3220PROCWimp_WindowClose(Title_Window%) 3230PROCWimp_WindowBringToTop(Main_Window%) 3240WIN$="MAIN" 3250PROCupdate 3260ENDIF 3270 ENDPROC 3280 : 3290 DEF PROCUser_MouseMain( button%,icon%) 3300 IF icon%=33 THEN 3310 IF tot%>1 THEN 3320 PROCread 3330 PROCsort 3340 PROCupdate 3350 ELSE 3360 PROCWimp_WindowAlert("!ADRBook","There is no point in sorting with this many records") 3370 ENDIF 3380UPDATE%=TRUE 3390 ENDIF 3400 IF icon%=25 THEN 3410PROCWimp_WindowClose(Main_Window%) 3420PROCWimp_WindowBringToTop(Set_Window%) 3430PROCselsearch 3440WIN$="SEARCH" 3450 ENDIF 3460 IF icon%=24 THEN PROCread:PROCtonedial(AREA$(cur%)+TEL$(cur%)) 3470 IF icon%=26 AND cur%<tot% THEN 3480UPDATE%=TRUE 3490ANS%=FNWimp_WindowCancel("!ADRBook","Are you sure you want to delete this record ?") 3500IF ANS%=TRUE THEN 3510UPDATE%=TRUE 3520PROCread 3530PROCdelete 3540PROCupdate 3550ENDIF 3560ENDIF 3570 IF icon%=21 THEN 3580PROCWimp_WindowClose(Main_Window%) 3590PROCWimp_WindowBringToTop(Title_Window%) 3600WIN$="TITLE" 3610ENDIF 3620 IF icon%=28 AND tot%>0 THEN 3630UPDATE%=TRUE 3640PROCWimp_WindowClose(Main_Window%) 3650PROCopenprinter 3660PROCWimp_WindowBringToTop(Print_Window%) 3670PROCWimp_IconCaret(Print_Window%,12,LEN(FNWimp_IconText(Print_Window%,12))) 3680PROCupdatep 3690WIN$="PRINT" 3700ENDIF 3710 IF icon%=27 THEN 3720UPDATE%=TRUE 3730IF cur%=tot% THEN 3740IF FNWimp_IconText(Main_Window%,4)<>"" THEN 3750A%=icon% 3760PROCread 3770tot%+=1 3780cur%+=1 3790UPDATE%=TRUE 3800PROCupdate 3810ELSE 3820PROCWimp_WindowErrorBox("!ADRBook","Please enter a Surname then press ADD") 3830ENDIF 3840ELSE 3850PROCWimp_WindowErrorBox("!ADRBook","Please go to the blank record at the end of the file") 3860ENDIF 3870ENDIF 3880 IF icon%=23 AND cur%>0 THEN 3890UPDATE%=TRUE 3900PROCread 3910cur%-=1 3920PROCupdate 3930ENDIF 3940 IF icon%=29 AND cur%<tot% THEN 3950UPDATE%=TRUE 3960PROCread 3970cur%+=1 3980PROCupdate 3990ENDIF 4000 IF icon%=22 AND cur%>0 THEN 4010UPDATE%=TRUE 4020PROCread 4030cur%=0 4040PROCupdate 4050ENDIF 4060 IF icon%=30 AND cur%<tot% THEN 4070UPDATE%=TRUE 4080PROCread 4090cur%=tot% 4100PROCupdate 4110ENDIF 4120 ENDPROC 4130 : 4140 DEF PROCUser_MousePrint( button%,icon%) 4150 4160 IF icon%=21 THEN 4170psurname%=NOT psurname% 4180PROCsel(psurname%,icon%) 4190ENDIF 4200 IF icon%=22 THEN 4210pothers%=NOT pothers% 4220PROCsel(pothers%,icon%) 4230ENDIF 4240 IF icon%=23 THEN 4250padd%=NOT padd% 4260PROCsel(padd%,icon%) 4270ENDIF 4280 IF icon%=24 THEN 4290ppostcode%=NOT ppostcode% 4300PROCsel(ppostcode%,icon%) 4310ENDIF 4320 IF icon%=25 THEN 4330parea%=NOT parea% 4340PROCsel(parea%,icon%) 4350ENDIF 4360 IF icon%=26 THEN 4370ptel%=NOT ptel% 4380PROCsel(ptel%,icon%) 4390ENDIF 4400 IF icon%=27 THEN 4410pnts%=NOT pnts% 4420PROCsel(pnts%,icon%) 4430ENDIF 4440 4450 4460 IF icon%=17 AND DRIVER%=TRUE THEN 4470IF psurname%=TRUE OR pothers%=TRUE OR padd%=TRUE OR ppostcode%=TRUE OR parea%=TRUE OR ptel%=TRUE OR pnts%=TRUE THEN 4480PROCprint 4490ELSE 4500PROCWimp_WindowAlert("Error from !ADRBook","Please select at least one print data") 4510ENDIF 4520ENDIF 4530 IF icon%=10 THEN PROCWimp_WindowClose(Print_Window%):PROCWimp_WindowBringToTop(Main_Window%):WIN$="MAIN":PROCWimp_IconCaret(Main_Window%,4,LEN(FNWimp_IconText(Main_Window%,4))) 4540 IF icon%=30 AND pcur%>0 THEN pcur%-=1:PROCupdatep 4550 IF icon%=31 AND pcur%<tot%-1 THEN pcur%+=1:PROCupdatep 4560 IF icon%=7 OR icon%=13 OR icon%=16 OR icon%=33 THEN PROCWimp_SelectIcon(Print_Window%,icon%) 4570 IF icon%=7 AND psel%<>1 THEN 4580PROCWimp_IconCaret(Print_Window%,12,LEN(FNWimp_IconText(Print_Window%,12))) 4590PROCdalbe 4600psel%=1 4610PROCable 4620ENDIF 4630 IF icon%=13 AND psel%<>2 THEN 4640PROCWimp_IconCaret(Print_Window%,14,LEN(FNWimp_IconText(Print_Window%,14))) 4650PROCdalbe 4660psel%=2 4670PROCable 4680ENDIF 4690 IF icon%=16 AND psel%<>3 THEN 4700SYS "Wimp_SetCaretPosition",-1 4710PROCdalbe 4720psel%=3 4730PROCable 4740ENDIF 4750 IF icon%=33 AND psel%<>4 THEN 4760SYS "Wimp_SetCaretPosition",-1 4770PROCdalbe 4780psel%=4 4790PROCable 4800ENDIF 4810 4820 ENDPROC 4830 : 4840 DEF PROCEvent_KeyPress(window%,icon%,key%) 4850 CASE window% OF 4860 WHEN Main_Window% : PROCUser_KeyPressMain( icon%,key%) 4870 WHEN Print_Window% : PROCUser_KeyPressPrint( icon%,key%) 4880 ENDCASE 4890 ENDPROC 4900 : 4910 DEF PROCUser_KeyPressMain( icon%,key%) 4920IF key%=13 AND icon%<12 OR key%=398 AND icon%<12 THEN 4930a%=LEN(FNWimp_IconText(Main_Window%,icon%+1)) 4940PROCWimp_IconCaret(Main_Window%,icon%+1,a%) 4950ENDIF 4960IF key%=13 AND icon%=12 OR key%=398 AND icon%=12 THEN 4970IF cur%=tot% THEN 4980PROCUser_MouseMain( 4,27) 4990ELSE 5000PROCUser_MouseMain( 4,29) 5010ENDIF 5020ENDIF 5030IF key%=399 AND icon%>4 THEN 5040a%=LEN(FNWimp_IconText(Main_Window%,icon%-1)) 5050PROCWimp_IconCaret(Main_Window%,icon%-1,a%) 5060ENDIF 5070IF key%=399 AND icon%=4 THEN 5080a%=LEN(FNWimp_IconText(Main_Window%,12)) 5090PROCWimp_IconCaret(Main_Window%,12,a%) 5100ENDIF 5110 ENDPROC 5120 : 5130 DEF PROCUser_KeyPressPrint( icon%,key%) 5140 ENDPROC 5150 : 5160 DEF PROCEvent_MenuChoice(menu%) 5170 CASE menu% OF 5180 WHEN Bar_Menu% : PROCUser_MenuChoiceBar 5190 WHEN Main_Menu% : PROCUser_MenuChoiceMain 5200 WHEN Title_Menu% : PROCUser_MenuChoiceTitle 5210 WHEN Print_Menu% : PROCUser_MenuChoicePrint 5220 WHEN Set_Menu% : PROCUser_MenuChoiceSet 5230 WHEN Search2_Menu% : PROCUser_MenuChoiceSearch2 5240 ENDCASE 5250 ENDPROC 5260 : 5270 DEF PROCUser_MenuChoiceBar 5280 CASE FNWimp_MenuChoice(0) OF 5290 WHEN 1 : 5300 WHEN 3 :IF UPDATE%=TRUE THEN 5310PROCWimp_IconPutText(Close_Window%,0,"This file has been modified") 5320PROCWimp_WindowBringToTop(Close_Window%) 5330PROCmousebox(Close_Window%) 5340ENDIF 5350IF UPDATE%=FALSE THEN finished%=TRUE 5360 ENDCASE 5370 ENDPROC 5380 : 5390 DEF PROCUser_MenuChoiceTitle 5400 CASE FNWimp_MenuChoice(0) OF 5410 WHEN 1 : PROCEvent_MouseClick(Title_Window%,6,4,0,0) 5420 WHEN 2 : PROCEvent_MouseClick(Title_Window%,7,4,0,0) 5430 ENDCASE 5440 ENDPROC 5450 : 5460 DEF PROCUser_MenuChoiceSearch2 5470 CASE FNWimp_MenuChoice(0) OF 5480 WHEN 1 : PROCEvent_MouseClick(Search2_Window%,2,4,0,0) 5490 WHEN 2 : PROCEvent_MouseClick(Search2_Window%,3,4,0,0) 5500 ENDCASE 5510 ENDPROC 5520 : 5530 DEF PROCUser_MenuChoicePrint 5540 CASE FNWimp_MenuChoice(0) OF 5550 WHEN 1 : PROCEvent_MouseClick(Print_Window%,10,4,0,0) 5560 WHEN 2 : PROCEvent_MouseClick(Print_Window%,17,4,0,0) 5570 ENDCASE 5580 ENDPROC : 5590 DEF PROCUser_MenuChoiceSet 5600 CASE FNWimp_MenuChoice(0) OF 5610 WHEN 1 : PROCEvent_MouseClick(Set_Window%,2,4,0,0) 5620 WHEN 2 : PROCEvent_MouseClick(Set_Window%,3,4,0,0) 5630 ENDCASE 5640 ENDPROC 5650 : 5660 DEF PROCUser_MenuChoiceMain 5670 CASE FNWimp_MenuChoice(0) OF 5680 WHEN 1 : PROCEvent_MouseClick(Main_Window%,21,4,0,0) 5690 WHEN 2 : PROCEvent_MouseClick(Main_Window%,22,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5700 WHEN 3 : PROCEvent_MouseClick(Main_Window%,23,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5710 WHEN 4 : PROCEvent_MouseClick(Main_Window%,24,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5720 WHEN 5 : PROCEvent_MouseClick(Main_Window%,33,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5730 WHEN 6 : PROCEvent_MouseClick(Main_Window%,25,4,0,0) 5740 WHEN 7 : PROCEvent_MouseClick(Main_Window%,26,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5750 WHEN 8 : PROCEvent_MouseClick(Main_Window%,27,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5760 WHEN 9 : PROCEvent_MouseClick(Main_Window%,28,4,0,0) 5770 WHEN 10 : PROCEvent_MouseClick(Main_Window%,29,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5780 WHEN 11 : PROCEvent_MouseClick(Main_Window%,30,4,0,0):PROCWimp_MenuAdjustOn(Main_Menu%) 5790 ENDCASE 5800 ENDPROC 5810 : 5820 DEF PROCEvent_LoadFile(file$,type$) 5830 IF type$="FBF" THEN 5840UPDATE%=FALSE 5850PROCWimp_IconPutText(Save_Window%,1,file$) 5860cur%=0 5870X%=OPENIN(file$) 5880INPUT #X%,tot% 5890FOR A=0 TO tot% 5900INPUT #X%,SURNAME$(A) 5910INPUT #X%,OTHERS$(A) 5920INPUT #X%,ADD1$(A) 5930INPUT #X%,ADD2$(A) 5940INPUT #X%,ADD3$(A) 5950INPUT #X%,POSTCODE$(A) 5960INPUT #X%,AREA$(A) 5970INPUT #X%,TEL$(A) 5980INPUT #X%,NTS$(A) 5990NEXTA 6000CLOSE #X% 6010IF WIN$<>"NONE" THEN 6020IF WIN$="MAIN" THEN PROCWimp_WindowClose(Main_Window%) 6030IF WIN$="PRINT" THEN PROCWimp_WindowClose(Print_Window%) 6040IF WIN$="SEARCH" THEN PROCWimp_WindowClose(Set_Window%) 6050ENDIF 6060IF WIN$<>"TITLE" THEN PROCWimp_WindowBringToTop(Title_Window%) 6070PROCmenuupdate 6080 ENDIF 6090 ENDPROC 6100 : 6110 DEF PROCEvent_SaveFile(file$,window%) 6120 CASE window% OF 6130 WHEN Save_Window% : 6140LOCAL ERROR 6150ON ERROR LOCAL PROCerror 6160IF DOSAVE%=TRUE THEN 6170 X%=OPENOUT(file$) 6180 PRINT #X%,tot% 6190 FOR A=0 TO tot% 6200 PRINT #X%,SURNAME$(A) 6210 PRINT #X%,OTHERS$(A) 6220 PRINT #X%,ADD1$(A) 6230 PRINT #X%,ADD2$(A) 6240 PRINT #X%,ADD3$(A) 6250 PRINT #X%,POSTCODE$(A) 6260 PRINT #X%,AREA$(A) 6270 PRINT #X%,TEL$(A) 6280 PRINT #X%,NTS$(A) 6290 NEXTA 6300 CLOSE #X% 6310 OSCLI("SETTYPE "+file$+" FBF") 6320 PROCWimp_MenuClose 6330 UPDATE%=FALSE 6340ENDIF 6350 6360 WHEN Save2_Window% : 6370LOCAL ERROR 6380ON ERROR LOCAL PROCerror 6390IF DOSAVE%=TRUE THEN 6400 PROCWimp_MenuClose 6410 IF WIN$="MAIN" THEN PROCread 6420 OSCLI("SPOOL "+file$) 6430 FOR A=0 TO tot% 6440 IF SURNAME$(A)<>"" THEN PRINT SURNAME$(A)+CHR$(10); 6450 IF OTHERS$(A)<>"" THEN PRINT OTHERS$(A)+CHR$(10); 6460 IF ADD1$(A)<>"" THEN PRINT ADD1$(A)+CHR$(10); 6470 IF ADD2$(A)<>"" THEN PRINT ADD2$(A)+CHR$(10); 6480 IF ADD3$(A)<>"" THEN PRINT ADD3$(A)+CHR$(10); 6490 IF POSTCODE$(A)<>"" THEN PRINT POSTCODE$(A)+CHR$(10); 6500 IF AREA$(A)<>"" THEN PRINT AREA$(A)+CHR$(10); 6510 IF TEL$(A)<>"" THEN PRINT TEL$(A)+CHR$(10); 6520 IF NTS$(A)<>"" THEN PRINT NTS$(A)+CHR$(10); 6530 PRINT CHR$(10); 6540 NEXT A 6550 OSCLI("SPOOL") 6560 OSCLI("SETTYPE "+file$+" FFF") 6570 VDU6 6580 IF file$="<Wimp$Scrap>" THEN 6590 PROCWimp_SendToEdit(file$) 6600 PROCWimp_IconPutText(Save2_Window%,1,ACE$) 6610 ENDIF 6620ENDIF 6630 ENDCASE 6640IF DOSAVE%=FALSE THEN DOSAVE%=TRUE 6650 ENDPROC 6660: 6670REM ******************************************************************* 6680: 6690DEF PROCWimp_WindowAlert(title$,message$) 6700PROCWimp_WindowAlertBox(title$,message$,0) 6710ENDPROC 6720: 6730DEF PROCWimp_WindowAlertBox(title$,message$,button%) 6740LOCAL response% 6750$(wimp%+4)=message$ 6760CASE button% OF 6770 WHEN 2 : response%=1 6780 WHEN 1 : response%=15 6790 WHEN 3 : response%=(1<<5)+16 6800 WHEN 4 : response%=(1<<6)+16 6810OTHERWISE : response%=16 6820ENDCASE 6830SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response% 6840ENDPROC 6850: 6860DEF FNWimp_WindowCancel(title$,message$) 6870$(wimp%+4)=message$ 6880response%=23 6890SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response% 6900=response%-2 6910: 6920DEF PROCWimp_WindowErrorBox(title$,message$) 6930PROCWimp_WindowAlertBox(title$,message$,2) 6940ENDPROC 6950: 6960DEF FNWimp_WindowTitle(window%) 6970wimp%!0=window% 6980SYS "Wimp_GetWindInfo",,wimp% 6990IF ((wimp%!60)AND&100)=0 ERROR 1,"Title isn't indirected" 7000=$(wimp%!76) 7010: 7020DEF FNWimp_WindowLoad(window$) 7030=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates") 7040: 7050DEF FNWimp_WindowLoadFrom(window$,template$) 7060LOCAL c%,i%,n%,j%,sp$,sp2$ 7070SYS "Wimp_OpenTemplate",,template$ 7080SYS "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 TO ,,icons% 7090CASE sprites% OF 7100 WHEN 1 : wimp%!64=sprites% 7110 OTHERWISE : wimp%!64=FNEvent_Sprites(window%) 7120ENDCASE 7130SYS "Wimp_CreateWindow",,wimp% TO c% 7140SYS "Wimp_CloseTemplate" 7150SYS "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8) 7160CASE wimp%!40 OF 7170 WHEN -1 : 7180 OTHERWISE : i%=40 7190 REPEAT 7200 wimp%!4=wimp%!i% : wimp%!0=c% 7210 SYS "Wimp_GetIconState",,wimp% 7220 sp$=FNWimp_GetStringAtAddress(wimp%!28) 7230 SYS "Wimp_DeleteIcon",,wimp% 7240 CASE sprites% OF 7250 WHEN 1 : wimp%!32=1 7260 OTHERWISE : 7270 SYS "OS_SpriteOp",&108,sprites% TO ,,,n% 7280 j%=0 7290 REPEAT : j%+=1 7300 SYS "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j% 7310 sp2$=FNWimp_GetStringAtAddress(pointer_block%) 7320 UNTIL j%=n% OR sp$=sp2$ 7330 IF sp$=sp2$ THEN wimp%!32=sprites% ELSE wimp%!32=1 7340 ENDCASE 7350 wimp%!4=c% 7360 SYS "Wimp_CreateIcon",,wimp%+4 TO handle% 7370 i%+=4 7380 UNTIL (wimp%!i%)=-1 7390ENDCASE 7400=c% 7410: 7420DEF PROCWimp_WindowBringToTop(window%) 7430!wimp%=window% 7440SYS "Wimp_GetWindowState",,wimp% 7450wimp%!28=-1 7460SYS "Wimp_OpenWindow",,wimp% 7470ENDPROC 7480: 7490DEF PROCWimp_WindowClose(window%) 7500!wimp%=window% 7510SYS "Wimp_CloseWindow",,wimp% 7520ENDPROC 7530: 7540DEF PROCWimp_WindowForceDraw(window%) 7550CASE window% OF 7560 WHEN -1 : SYS "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024 7570 OTHERWISE : SYS "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0 7580ENDCASE 7590ENDPROC 7600: 7610DEF PROCWimp_WindowOpen(window%) 7620!wimp%=window% 7630SYS "Wimp_GetWindowState",,wimp% 7640SYS "Wimp_OpenWindow",,wimp% 7650ENDPROC 7660: 7670PROCWimp_WindowInterface 7680SYS"Wimp_BorderWindow",,wimp% 7690ENDPROC 7700: 7710REM ******************************************************************* 7720: 7730DEF PROCWimp_IconUpdate(window%,icon%) 7740wimp%!0=window% 7750wimp%!4=icon% 7760wimp%!8=0 7770wimp%!12=0 7780SYS "Wimp_SetIconState",,wimp% 7790ENDPROC 7800: 7810DEF PROCWimp_SetIconSprite(window%,icon%,sprite$) 7820wimp%!0=window% 7830wimp%!4=icon% 7840SYS "Wimp_GetIconState",,wimp% 7850$wimp%!32="S"+sprite$ 7860wimp%!0=window% 7870wimp%!8=0 7880wimp%!12=0 7890SYS "Wimp_SetIconState",,wimp% 7900ENDPROC 7910: 7920DEF FNWimp_IconBar(Sprite$) 7930LOCAL icon% 7940wimp%!0=-1 7950wimp%!4=0 : wimp%!8=0 7960wimp%!12=68 : wimp%!16=68 7970wimp%!20=&3002 7980$(wimp%+24)=Sprite$ 7990SYS "Wimp_CreateIcon",,wimp% TO icon% 8000=icon% 8010: 8020DEF PROCWimp_IconCaret(window%,icon%,chars%) 8030SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,chars% 8040ENDPROC 8050: 8060DEF FNWimp_IconText(window%,icon%) 8070wimp%!0=window% : wimp%!4=icon% 8080SYS "Wimp_GetIconState",,wimp% 8090IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8100=$(wimp%!28) 8110: 8120DEF FNWimp_IconValidation(window%,icon%) 8130wimp%!0=window% : wimp%!4=icon% 8140SYS "Wimp_GetIconState",,wimp% 8150IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8160=$(wimp%!32) 8170: 8180DEF PROCWimp_IconDisable(window%,icon%) 8190wimp%!0=window% : wimp%!4=icon% 8200wimp%!8=1<<22 : wimp%!12=1<<22 8210SYS "Wimp_SetIconState",,wimp% 8220ENDPROC 8230: 8240DEF PROCWimp_IconEnable(window%,icon%) 8250wimp%!0=window% : wimp%!4=icon% 8260wimp%!8=0 : wimp%!12=1<<22 8270SYS "Wimp_SetIconState",,wimp% 8280ENDPROC 8290: 8300DEF FNWimp_IconPutSprite(window%,icon%,sprite$) 8310wimp%!0=window%:wimp%!4=icon% 8320SYS "Wimp_GetIconState",,wimp% 8330SYS "Wimp_DeleteIcon",,wimp% 8340wimp%!4=wimp%!8 : wimp%!8=wimp%!12 : wimp%!12=wimp%!16 8350wimp%!16=wimp%!20 : wimp%!20=wimp%!24 : $(wimp%+24)=sprite$ 8360SYS "Wimp_CreateIcon",,wimp% TO icon% 8370=icon% 8380: 8390DEF PROCWimp_IconPutText(window%,icon%,text$) 8400wimp%!0=window% : wimp%!4=icon% 8410SYS "Wimp_GetIconState",,wimp% 8420IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected" 8430$(wimp%!28)=text$ 8440wimp%!0=window% : wimp%!4=icon% 8450wimp%!8=0 : wimp%!12=0 8460SYS "Wimp_SetIconState",,wimp% 8470ENDPROC 8480: 8490DEF PROCWimp_IconInterfaceStart 8500SYS"Wimp_BorderIcon",,wimp% 8510ENDPROC 8520: 8530DEF PROCWimp_IconInterfaceFinish 8540wimp%!8=0 8550SYS"Wimp_BorderIcon",,wimp% 8560ENDPROC 8570: 8580REM ******************************************************************* 8590: 8600DEF PROCWimp_MenuAdjustOn(menu%) 8610SYS "Wimp_GetPointerInfo",,pointer_block% 8620IF ((pointer_block%!8)AND1)=1 THEN SYS "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4 8630ENDPROC 8640: 8650DEF FNWimp_MenuChoice(level%) 8660=(wimp%!(4*level%))+1 8670: 8680DEF FNWimp_MenuCreate(menu$) 8690IF menu$="Colours" THEN=FNWimp_MenuColours 8700LOCAL menu%,index%,width%,length%,k%,s% 8710DIM menu% 28+FNWimp_MenuNoOfEntries(menu$)*24 8720menu%?12=7 : menu%?13=2 : menu%?14=7 :menu%?15=0 8730menu%!16=140 : menu%!20=44 : menu%!24=0 8740index%=menu%+28 8750$menu%=LEFT$(menu$,INSTR(menu$,"\")-1) 8760width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1)) 8770menu$+="\" : Menu_NoOfEntries%=0 8780WHILE menu$<>"" 8790menu$=MID$(menu$,INSTR(menu$,"\")+1) 8800CASE menu$ OF 8810 WHEN "" 8820 OTHERWISE : 8830 !index%=0 : index%!4=-1 : index%!8=&7000021 8840 length%=INSTR(menu$,"\")-1 8850 k%=INSTR(LEFT$(menu$,length%),">") 8860 CASE k% OF 8870 WHEN 0 8880 OTHERWISE 8890 s%=EVAL(MID$(menu$,k%+1,length%-k%)) 8900 index%!4=s% 8910 length%=k%-1 8920 ENDCASE 8930 $(index%+12)=LEFT$(menu$,length%) 8940 IF length%>width% THEN width%=length% 8950 index%+=24 8960ENDCASE 8970ENDWHILE 8980menu%!16=16*(width%+1) 8990index%!-24=index%!-24 OR &80 : =menu% 9000: 9010DEF FNWimp_MenuColours 9020=FNWimp_MenuCreateColours(" ") 9030: 9040DEF FNWimp_MenuCreateColours(title$) 9050LOCAL x$,men%,j%,i% 9060x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15" 9070men%=FNWimp_MenuCreate(x$) 9080FOR i%=0 TO 15 9090CASE TRUE OF 9100WHEN i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7 9110OTHERWISE : j%=0 9120ENDCASE 9130men%?(39+i%*24)=i%*16+j% 9140PROCWimp_MenuCentre(men%,i%+1) 9150NEXT 9160=men% 9170: 9180DEF FNWimp_MenuNoOfEntries(menu$) 9190LOCAL n% ,j% : n%=0 : j%=0 9200REPEAT 9210j%=INSTR(menu$,"\",j%+1) 9220IF j%<>0 THEN n%+=1 9230UNTIL j%=0 9240=n% 9250: 9260DEF PROCWimp_MenuBackGroundColour(menu%,item%,colour%) 9270LOCAL fore%,i% 9280fore%=(menu%?(39+(item%-1)*24))MOD16 9290i%=((menu%?(39+(item%-1)*24))DIV16)MOD16 9300menu%?(39+(item%-1)*24)=fore%+16*colour%+i% 9310ENDPROC 9320: 9330DEF PROCWimp_MenuCentre(menu%,item%) 9340menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3) 9350ENDPROC 9360: 9370DEF PROCWimp_MenuClose 9380SYS "Wimp_CreateMenu",-1 9390ENDPROC 9400: 9410DEF PROCWimp_MenuDisable(menu%,item%) 9420menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22) 9430ENDPROC 9440: 9450DEF PROCWimp_MenuDottedLine(menu%,item%) 9460menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2 9470ENDPROC 9480: 9490DEF PROCWimp_MenuEnable(menu%,item%) 9500PROCWimp_MenuDisable(menu%,item%) 9510menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22) 9520ENDPROC 9530: 9540DEF PROCWimp_MenuForegroundColour(menu%,item%,colour%) 9550menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16) 9560ENDPROC 9570: 9580DEF PROCWimp_MenuGlue(menu1%,item%,menu2%) 9590menu1%!(8+item%*24)=menu2% 9600ENDPROC 9610: 9620DEF PROCWimp_MenuItem(menu%,item%,item$) 9630$(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0 9640ENDPROC 9650: 9660DEF PROCWimp_MenuMessage(menu%,item%) 9670menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3) 9680ENDPROC 9690: 9700DEF PROCWimp_MenuPopUp(Menu%,x%,y%) 9710IF SA%=FALSE THEN 9720menu%=Menu% 9730SYS "Wimp_CreateMenu",,menu%,x%-64,y%+20 9740ENDIF 9750ENDPROC 9760: 9770DEF PROCWimp_MenuPopUpBar(x%,y%) 9780LOCAL n% : n%=0 9790WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0 9800n%+=1 9810ENDWHILE 9820SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44 9830menu%=Bar_Menu% 9840ENDPROC 9850: 9860DEF PROCWimp_MenuTick(menu%,item%) 9870menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1 9880ENDPROC 9890: 9900DEF PROCWimp_MenuTitle(menu%,title$) 9910$menu%=LEFT$(title$,12)+CHR$0 9920ENDPROC 9930: 9940DEF PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%) 9950menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4 9960menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100 9970menu%!(40+(item%-1)*24)=buffer% 9980menu%!(44+(item%-1)*24)=val% 9990menu%!(48+(item%-1)*24)=BufferLength% 10000ENDPROC 10010: 10020REM ******************************************************************* 10030: 10040DEF PROCWimp_SelectIcon(window%,icon%) 10050wimp%!0=window% 10060wimp%!4=icon% 10070wimp%!8=%1000000000000000000000 10080wimp%!12=%1000000000000000000000 10090SYS&400CD,,wimp% 10100ENDPROC 10110: 10120DEF PROCWimp_UnselectIcon(window%,icon%) 10130wimp%!0=window% 10140wimp%!4=icon% 10150wimp%!8=0 10160wimp%!12=%1000000000000000000000 10170SYS&400CD,,wimp% 10180ENDPROC 10190: 10200DEF PROCWimp_SpritesLoad 10210PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites") 10220direct_sprites%=sprites% 10230ENDPROC 10240: 10250DEF PROCWimp_SpritesPathLoad(pathname$) 10260LOCALS%,T% 10270S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S% 10280DIMsprites%T%,spname%12 10290!sprites%=T%:sprites%!8=0 10300SYS"OS_SpriteOp",&109,sprites% 10310SYS"OS_SpriteOp",&10A,sprites%,pathname$ 10320ENDPROC 10330: 10340REM ******************************************************************* 10350: 10360DEF FNWimp_FileType(type%) 10370CASEtype%OF 10380WHEN&FFF:="Text" 10390WHEN&FFD:="Data" 10400WHEN&FFB:="Basic" 10410WHEN&FF9:="Sprite" 10420WHEN&FED:="Palette" 10430WHEN&FEC:="Template" 10440WHEN&AFF:="Draw" 10450WHEN&1000:="Folder" 10460WHEN&2000:="Application" 10470OTHERWISE=STR$~(type%) 10480ENDCASE 10490: 10500DEF FNWimp_GetFilePathName 10510=FNWimp_GetStringAtAddress(wimp%+44) 10520: 10530DEF FNWimp_FileLoad(pathname$) 10540LOCALS%,T%,file% 10550S%=OPENINpathname$ 10560T%=EXT#S%+16 10570CLOSE#S% 10580DIMfile%T% 10590OSCLI("LOAD"+pathname$+""+STR$~file%) 10600=file% 10610; 10620DEF FNWimp_GetStringAtAddress(array%) 10630LOCALs$:s$="" 10640WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE: 10650=s$ 10660: 10670DEF FNWimp_GetFileFromPathname(f$) 10680CASE INSTR(f$,".") OF 10690 WHEN 0 :=f$ 10700 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,"."))) 10710ENDCASE 10720: 10730DEF PROCWimp_SendToEdit(file$) 10740LOCAL n% 10750wimp%!4=&6CC01C0C 10760wimp%!16=5 10770wimp%!36=0 10780wimp%!40=&FFF 10790$(wimp%+44)=file$+CHR$0 10800n%=LENfile$+45 10810IF n%MOD4 THEN !wimp%=4+(n%>>2)<<2 ELSE !wimp%=n% 10820SYS "Wimp_SendMessage",17,wimp%,0 10830ENDPROC 10840: 10850REM ******************************************************************* 10860: 10870DEF PROCWimp_Start(TaskName$,wimp_memory%,icon%) 10880DIM wimp% wimp_memory%,icons% icon% 10890IF wimp_memory%<256 THEN wimp_memory%=256 10900icon_memory%=icons%+icon% 10910task$=TaskName$ 10920indirect_sprites%=1 : direct_sprites%=1 10930PROCWimp_SetEventVariables 10940ON ERROR PROCWimp_Error:END 10950SYS"Wimp_Initialise",200,&4B534154,TaskName$ TO version%,task% 10960ENDPROC 10970: 10980DEF FNWimp_BASICParameters 10990 LOCAL com$,param$,I% 11000 SYS "OS_GetEnv" TO com$ 11010 params$="" 11020 I%=INSTR(com$," -quit ") 11030 IF I% THEN params$=MID$(com$,INSTR(com$," ",I%+LEN" -quit ")+1) 11040=params$ 11050: 11060DEF PROCWimp_SetEventVariables 11070DIM pointer_block% 20 11080interface%=FALSE 11090null%=1 :draw%=2 : pointer_leaving%=1<<4 11100pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7 11110key%=1<<8:menu%=1<<9:scroll%=1<<10 11120lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18) 11130recorder%=1<<18:acknowledge%=1<<19:window%=0 11140sprites%=1:version%=0:task%=0 11150Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0 11160x_origin%=0:y_origin%=0:SaveWindow%=-3 11170message_quit%=0:message_save%=2:message_load%=3 11180mouse_button%=2:save_event%=0 11190top_line%=0 : bottom_line%=0 11200ENDPROC 11210: 11220DEF PROCWimp_Error 11230LOCALX$,x% 11240ON ERROR OFF 11250x%=ERL 11260X$=REPORT$+"atline"+STR$(x%DIV10) 11270DIMErrorMsg%36 11280ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x% 11290$(ErrorMsg%+24)="!RunImage" 11300SYS"Wimp_SendMessage",17,ErrorMsg% 11310PROCWimp_WindowAlert(task$,X$) 11320PROCWimp_CloseDown 11330ENDPROC 11340: 11350DEF PROCWimp_CloseDown 11360SYS"Wimp_CloseDown",task%,"TASK" 11370ENDPROC 11380: 11390DEF PROCWimp_Quit 11400finished%=TRUE 11410ENDPROC 11420: 11430DEF FNWimp_ReadVariable(Variable$) 11440LOCALlen%,result%,variable% 11450$wimp%=Variable$ 11460SYS"OS_ReadVarVal",wimp%,wimp%+255,255,,3TO,,len% 11470wimp%?(len%+255)=13 11480=$(wimp%+255) 11490: 11500REM ******************************************************************* 11510: 11520DEF PROCWimp_WaitForEvent 11530LOCAL mask%,event% 11540finished%=FALSE 11550mask%=%111000011001 11560REPEAT 11570 SYS"Wimp_Poll",mask%,wimp% TO event% 11580 CASE event% OF 11590 WHEN0 : 11600 WHEN1 : PROCWimp_PollDrawWindow 11610 WHEN2 : SYS "Wimp_OpenWindow",,wimp% 11620 WHEN3 : PROCWimp_PollCloseWindow 11630 WHEN4 : 11640 WHEN5 : 11650 WHEN6 : PROCWimp_PollMouseClick 11660 WHEN7 : PROCWimp_PollSaveMessage 11670 WHEN8 : PROCWimp_PollKeyPress 11680 WHEN9 : PROCEvent_MenuChoice(menu%) 11690 WHEN10: 11700 WHEN11: 11710 WHEN12: 11720 WHEN17,18: PROCWimp_PollMessages 11730 WHEN19: 11740 ENDCASE 11750UNTIL finished% 11760ENDPROC 11770: 11780DEF PROCWimp_PollDrawWindow 11790LOCAL more% 11800SYS"Wimp_RedrawWindow",,wimp%TOmore% 11810window%=wimp%!0 11820x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24 11830WHILEmore% 11840 IF interface% THEN SYS"Wimp_BorderWindow",,wimp% 11850 PROCEvent_Draw(window%,x_origin%,y_origin%) 11860 SYS"Wimp_GetRectangle",,wimp%TOmore% 11870ENDWHILE 11880ENDPROC 11890: 11900DEF PROCWimp_PollCloseWindow 11910 SYS "Wimp_GetPointerInfo",,wimp% 11920 window%=wimp%!12 : buttons%=wimp%!8 11930IF search%=FALSE THEN 11940 PROCEvent_WindowClose(window%,buttons%) 11950 !wimp%=window% : SYS "Wimp_CloseWindow",,wimp% 11960ENDIF 11970ENDPROC 11980: 11990DEF PROCWimp_PollMouseClick 12000 button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 12010 CASE button% OF 12020 WHEN2 : PROCWimp_PollMenuPopUp 12030 OTHERWISE: CASE FNEvent_Save(window%) OF 12040 WHEN TRUE : PROCWimp_PollMouseSave 12050 WHEN FALSE: PROCWimp_PollEventMouseClick 12060 ENDCASE 12070 ENDCASE 12080ENDPROC 12090: 12100DEF PROCWimp_PollMenuPopUp 12110IF SA%=FALSE THEN 12120menu%=FNEvent_Menu(window%) 12130 CASE menu% OF 12140 WHEN FALSE: 12150 OTHERWISE : 12160 CASE window% OF 12170 WHEN -2 : n%=0 12180 WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0 12190 n%+=1 12200 ENDWHILE 12210 SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*90 12220 OTHERWISE : SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20 12230 ENDCASE 12240 ENDCASE 12250ENDIF 12260ENDPROC 12270: 12280DEF PROCWimp_PollMouseSave 12290 CASE icon% OF 12300 WHEN 0 : IF button% AND &50 THEN PROCWimp_PollDragBox(window%) 12310 WHEN 2 : IF button% AND 5 THEN PROCWimp_PollSaveFile(window%) 12320 ENDCASE 12330ENDPROC 12340: 12350DEF PROCWimp_PollEventMouseClick 12360 IF interface% THEN SYS"Wimp_BorderIcon",,wimp% 12370 PROCEvent_MouseClick(window%,icon%,button%,x%,y%) 12380 CASE interface% OF 12390 WHEN TRUE : 12400 wimp%!0=x%:wimp%!4=y% : wimp%!8=0 12410 wimp%!12=window% : wimp%!16=icon% 12420 SYS"Wimp_BorderIcon",,wimp% 12430 ENDCASE 12440ENDPROC 12450: 12460DEF PROCWimp_PollSaveFile(window%) 12470LOCALfile$ 12480 wimp%!0=window% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 12490 file$=$(wimp%!28) 12500 CASE INSTR(file$,".") OF 12510 WHEN 0 : 12520IF key%=13 THEN 12530 $(wimp%+4)="To save, drag the icon to a directory window" 12540 SYS "Wimp_ReportError",wimp%,16,task$ 12550ENDIF 12560 OTHERWISE: 12570 IF key%=13 THEN PROCEvent_SaveFile(file$,window%) 12580 ENDCASE 12590IF key%=13 THEN SYS"Wimp_CreateMenu",-1 12600IF SA%=TRUE THEN PROCWimp_CloseDown 12610ENDPROC 12620: 12630DEF PROCWimp_PollDragBox(window%) 12640LOCALx%,y% 12650 save%=window% 12660 !wimp%=window% 12670 SYS"Wimp_GetWindowState",,wimp% 12680 x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24 12690 wimp%!4=0 12700 SYS"Wimp_GetIconState",,wimp% 12710 !wimp%=window% 12720 wimp%!4=5 12730 wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12 12740 wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20 12750 wimp%!24=0:wimp%!28=0 12760 wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF 12770 SYS"Wimp_DragBox",,wimp% 12780ENDPROC 12790: 12800DEF PROCWimp_PollKeyPress 12810 window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24 12820 CASE FNEvent_Save(window%) OF 12830 WHEN TRUE : PROCWimp_PollSaveFile(window%) 12840 WHEN FALSE: PROCEvent_KeyPress(window%,icon%,key%) 12850 ENDCASE 12860ENDPROC 12870: 12880DEF PROCWimp_PollSaveMessage 12890LOCALfile$,window%,icon%,x%,y% 12900 SYS"Wimp_GetPointerInfo",,wimp% 12910 window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 12920 wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 12930 file$=$(wimp%!28) 12940 file$=FNWimp_GetFileFromPathname(file$) 12950ACE$=file$ 12960 wimp%!20=window% 12970 wimp%!24=icon% 12980 wimp%!28=x%:wimp%!32=y% 12990 wimp%!36=length% 13000 wimp%!0=64 13010 wimp%!12=0 13020 wimp%!16=1 13030 wimp%!40=&FFF 13040 $(wimp%+44)=file$ 13050 SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24 13060ENDPROC 13070: 13080DEF PROCWimp_PollMessages 13090LOCAL file$ 13100file$=FNWimp_GetStringAtAddress(wimp%+44) 13110 CASE wimp%!16 OF 13120 WHEN 0 : finished%=TRUE 13130 WHEN 1 : 13140 WHEN 2 : 13150 REM PROCWimp_IconPutText(save%,1,file$) 13160 wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp% 13170 $(wimp%!28)=file$ 13180 wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0 13190 SYS "Wimp_SetIconState",,wimp% 13200 REM PROCWimp_IconCaret(save%,1,LENfile$) 13210 SYS "Wimp_SetCaretPosition",save%,1,,,-1,LENfile$ 13220 PROCEvent_SaveFile(file$,save%) 13230IF SA%=TRUE THEN PROCWimp_CloseDown 13240 WHEN 3 13250 type$=FNWimp_FileType(wimp%!40) : PROCEvent_LoadFile(file$,type$) 13260 WHEN 5 : 13270IF wimp%!40=&FBF AND event%=18 THEN 13280wimp%!12=wimp%!8 13290SYS"XWimp_SendMessage",17,wimp%,wimp%!20 13300file$=FNWimp_GetFilePathName 13310type$=FNWimp_FileType(&FBF) 13320PROCEvent_LoadFile(file$,type$) 13330ENDIF 13340 WHEN &502 13350hw%=wimp%!32 13360hi%=wimp%!36 13370IF hw%=-2 THEN PROCsendhelp(wimp%,"This is the !ADRBook icon.|MProgram written by Julian Samphire 1993.|MClick on icon to open the Address Book.|M") 13380CASE hw% OF 13390WHEN Save_Window% 13400IF hi%=0 THEN PROCsendhelp(wimp%,"Drag this icon onto a filer window to save the address data") 13410IF hi%=1 THEN PROCsendhelp(wimp%,"Enter the file name here that you want to save the address data as.") 13420IF hi%=2 THEN PROCsendhelp(wimp%,"Click here to save the address data.") 13430WHEN Save2_Window% 13440IF hi%=0 THEN PROCsendhelp(wimp%,"Drag this icon onto a filer window to save the text") 13450IF hi%=1 THEN PROCsendhelp(wimp%,"Enter the file name here that you want to save the text as.") 13460IF hi%=2 THEN PROCsendhelp(wimp%,"Click here to save the text.") 13470WHEN Info_Window% 13480IF hi%=0 OR hi%=1 OR hi%=2 OR hi%=3 OR hi%=4 OR hi%=5 OR hi%=6 OR hi%=7 OR hi%=8 OR hi%=9 THEN PROCsendhelp(wimp%,"Name : ADRBook|MPurpose : Store addresses and numbers|MAuthor : Julian Samphire|MVersion : 1.06 (11-Aug-93)") 13490WHEN Search2_Window% 13500IF hi%=2 THEN PROCsendhelp(wimp%,"Click here to search using search parameters.") 13510IF hi%=3 THEN PROCsendhelp(wimp%,"Click here to cancel search.") 13520WHEN Set_Window% 13530IF hi%=2 THEN PROCsendhelp(wimp%,"Click here to turn back the page.") 13540IF hi%=3 THEN PROCsendhelp(wimp%,"Click here to start searching using search papameters.") 13550IF hi%=0 THEN PROCsendhelp(wimp%,"Click here to hilight Surname.") 13560IF hi%=4 THEN PROCsendhelp(wimp%,"Click here to hilight Other Names.") 13570IF hi%=6 THEN PROCsendhelp(wimp%,"Click here to hilight Address.") 13580IF hi%=10 THEN PROCsendhelp(wimp%,"Click here to hilight Post Code.") 13590IF hi%=12 THEN PROCsendhelp(wimp%,"Click here to hilight Area Code.") 13600IF hi%=14 THEN PROCsendhelp(wimp%,"Click here to hilight Telephone Number.") 13610IF hi%=16 THEN PROCsendhelp(wimp%,"Click here to hilight Notes.") 13620IF hi%=1 THEN PROCsendhelp(wimp%,"Enter the surname here.") 13630IF hi%=5 THEN PROCsendhelp(wimp%,"Enter the other names here.") 13640IF hi%=7 THEN PROCsendhelp(wimp%,"Enter the address line 1 here.") 13650IF hi%=8 THEN PROCsendhelp(wimp%,"Enter the address line 2 here.") 13660IF hi%=9 THEN PROCsendhelp(wimp%,"Enter the address line 3 here.") 13670IF hi%=11 THEN PROCsendhelp(wimp%,"Enter the post code here.") 13680IF hi%=13 THEN PROCsendhelp(wimp%,"Enter the area code here.") 13690IF hi%=15 THEN PROCsendhelp(wimp%,"Enter the telephone number here.") 13700IF hi%=17 THEN PROCsendhelp(wimp%,"Enter the notes here.") 13710WHEN Main_Window% 13720IF hi%=4 THEN PROCsendhelp(wimp%,"Surname icon.|MEnter the persons Surname here.|M"+SURNAME$(cur%)) 13730IF hi%=5 THEN PROCsendhelp(wimp%,"Others icon.|MEnter the persons Other names here.|M"+OTHERS$(cur%)) 13740IF hi%=6 OR hi%=7 OR hi%=8 THEN PROCsendhelp(wimp%,"Address icons.|MEnter the persons Address here.|M"+ADD1$(cur%)+" "+ADD2$(cur%)+" "+ADD3$(cur%)) 13750IF hi%=9 THEN PROCsendhelp(wimp%,"Post Code icon.|MEnter the persons Post Code here.|M"+POSTCODE$(cur%)) 13760IF hi%=10 THEN PROCsendhelp(wimp%,"Area Code icon.|MEnter the persons Area Code here.|M"+AREA$(cur%)) 13770IF hi%=11 THEN PROCsendhelp(wimp%,"Telephone Number icon.|MEnter the persons Telephone Number here.|M"+TEL$(cur%)) 13780IF hi%=12 THEN PROCsendhelp(wimp%,"Notes icon.|MEnter the notes on the person here.|M"+NTS$(cur%)) 13790IF hi%=21 THEN PROCsendhelp(wimp%,"Click here to turn back the page.") 13800IF hi%=22 THEN PROCsendhelp(wimp%,"Click here to go to the first record.") 13810IF hi%=23 THEN PROCsendhelp(wimp%,"Click here to go back a record.") 13820IF hi%=24 THEN PROCsendhelp(wimp%,"Click here to dial the number.") 13830IF hi%=33 THEN PROCsendhelp(wimp%,"Click here to sort the records.") 13840IF hi%=25 THEN PROCsendhelp(wimp%,"Click here to set the search criteria.") 13850IF hi%=26 THEN PROCsendhelp(wimp%,"Click here to delete the current record.") 13860IF hi%=27 THEN PROCsendhelp(wimp%,"Click here to add a record.") 13870IF hi%=28 THEN PROCsendhelp(wimp%,"Click here to go to the print page.") 13880IF hi%=29 THEN PROCsendhelp(wimp%,"Click here to go forward a record.") 13890IF hi%=30 THEN PROCsendhelp(wimp%,"Click here to go to the last record.") 13900IF hi%=19 OR hi%=20 THEN PROCsendhelp(wimp%,"This shows the ammount of records and current record.|MTotal records = "+STR$(tot%)+"|MCurrent record = "+STR$(cur%+1)) 13910WHEN Title_Window% 13920IF hi%=2 OR hi%=3 OR hi%=4 OR hi%=5 OR hi%=8 THEN PROCsendhelp(wimp%,"Address Book|MBy Julian Samphire|M� Archimedes World 1993") 13930IF hi%=6 THEN PROCsendhelp(wimp%,"Click here to close the address book.") 13940IF hi%=7 THEN PROCsendhelp(wimp%,"Click here to turn over the page.") 13950WHEN Print_Window% 13960IF hi%=7 OR hi%=13 OR hi%=16 OR hi%=33 THEN PROCsendhelp(wimp%,"Click here for specified print range.") 13970IF hi%=28 OR hi%=29 THEN PROCsendhelp(wimp%,"This shows the current name of the person to be printed.|M"+SURNAME$(pcur%)+"|M"+OTHERS$(pcur%)) 13980IF hi%=30 THEN PROCsendhelp(wimp%,"Click here to go to the previous person.") 13990IF hi%=31 THEN PROCsendhelp(wimp%,"Click here to go to the next person.") 14000IF hi%=10 THEN PROCsendhelp(wimp%,"Click here to turn back the page.") 14010IF hi%=17 THEN PROCsendhelp(wimp%,"Click here to print selected data.") 14020IF hi%=21 THEN PROCsendhelp(wimp%,"Click here to set Surname.") 14030IF hi%=22 THEN PROCsendhelp(wimp%,"Click here to set Other Names.") 14040IF hi%=23 THEN PROCsendhelp(wimp%,"Click here to set Address.") 14050IF hi%=24 THEN PROCsendhelp(wimp%,"Click here to set Post Code.") 14060IF hi%=25 THEN PROCsendhelp(wimp%,"Click here to set Area Code.") 14070IF hi%=26 THEN PROCsendhelp(wimp%,"Click here to set Telephone Number.") 14080IF hi%=27 THEN PROCsendhelp(wimp%,"Click here to set Notes.") 14090ENDCASE 14100 ENDCASE 14110ENDPROC 14120: 14130DEF FNWimp_GetStringAtAddress(array%) 14140LOCALs$:s$="" 14150WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE: 14160=s$ 14170: 14180DEF FNWimp_GetFileFromPathname(f$) 14190CASE INSTR(f$,".") OF 14200 WHEN 0 :=f$ 14210 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,"."))) 14220ENDCASE 14230: 14240DEF FNWimp_FileType(type%) 14250CASEtype%OF 14260WHEN&FFF:="Text" 14270WHEN&FFD:="Data" 14280WHEN&FFB:="Basic" 14290WHEN&FF9:="Sprite" 14300WHEN&FED:="Palette" 14310WHEN&FEC:="Template" 14320WHEN&AFF:="Draw" 14330WHEN&1000:="Folder" 14340WHEN&2000:="Application" 14350OTHERWISE=STR$~(type%) 14360ENDCASE 14370: 14380DEF PROCread 14390IF cur%<tot% OR icon%=27 THEN 14400SURNAME$(cur%)=FNWimp_IconText(Main_Window%,4) 14410SURNAME$(cur%)=FNChange(SURNAME$(cur%)) 14420OTHERS$(cur%)=FNWimp_IconText(Main_Window%,5) 14430OTHERS$(cur%)=FNChange(OTHERS$(cur%)) 14440ADD1$(cur%)=FNWimp_IconText(Main_Window%,6) 14450ADD2$(cur%)=FNWimp_IconText(Main_Window%,7) 14460ADD3$(cur%)=FNWimp_IconText(Main_Window%,8) 14470ADD1$(cur%)=FNChange(ADD1$(cur%)) 14480ADD2$(cur%)=FNChange(ADD2$(cur%)) 14490ADD3$(cur%)=FNChange(ADD3$(cur%)) 14500POSTCODE$(cur%)=FNWimp_IconText(Main_Window%,9) 14510AREA$(cur%)=FNWimp_IconText(Main_Window%,10) 14520TEL$(cur%)=FNWimp_IconText(Main_Window%,11) 14530NTS$(cur%)=FNWimp_IconText(Main_Window%,12) 14540NTS$(cur%)=FNChange(NTS$(cur%)) 14550ENDIF 14560ENDPROC 14570: 14580DEF PROCupdate 14590PROCmenuupdate 14600PROCWimp_IconUpdate(Main_Window%,20) 14610PROCWimp_IconPutText(Main_Window%,4,SURNAME$(cur%)) 14620PROCWimp_IconPutText(Main_Window%,5,OTHERS$(cur%)) 14630PROCWimp_IconPutText(Main_Window%,6,ADD1$(cur%)) 14640PROCWimp_IconPutText(Main_Window%,7,ADD2$(cur%)) 14650PROCWimp_IconPutText(Main_Window%,8,ADD3$(cur%)) 14660PROCWimp_IconPutText(Main_Window%,9,POSTCODE$(cur%)) 14670IF AREA$(cur%)="" THEN PROCWimp_IconPutText(Main_Window%,10,"") ELSE PROCWimp_IconPutText(Main_Window%,10,AREA$(cur%)) 14680IF TEL$(cur%)="" THEN PROCWimp_IconPutText(Main_Window%,11,"") ELSE PROCWimp_IconPutText(Main_Window%,11,TEL$(cur%)) 14690PROCWimp_IconPutText(Main_Window%,12,NTS$(cur%)) 14700PROCWimp_IconCaret(Main_Window%,4,LEN(FNWimp_IconText(Main_Window%,4))) 14710ENDPROC 14720: 14730DEF PROCdelete 14740FOR A=cur% TO tot% 14750SURNAME$(A)=SURNAME$(A+1) 14760OTHERS$(A)=OTHERS$(A+1) 14770ADD1$(A)=ADD1$(A+1) 14780ADD2$(A)=ADD2$(A+1) 14790ADD3$(A)=ADD3$(A+1) 14800POSTCODE$(A)=POSTCODE$(A+1) 14810AREA$(A)=AREA$(A+1) 14820TEL$(A)=TEL$(A+1) 14830NTS$(A)=NTS$(A+1) 14840NEXTA 14850tot%-=1 14860ENDPROC 14870: 14880DEF PROCmenuupdate 14890IF tot%=0 THEN 14900PROCWimp_MenuDisable(Bar_Menu%,2) 14910PROCWimp_MenuDisable(Title_Menu%,3) 14920PROCWimp_MenuDisable(Main_Menu%,12) 14930ELSE 14940PROCWimp_MenuEnable(Bar_Menu%,2) 14950PROCWimp_MenuEnable(Title_Menu%,3) 14960PROCWimp_MenuEnable(Main_Menu%,12) 14970ENDIF 14980ENDPROC 14990: 15000DEFPROCtonedial(A$) 15010IFA$="" THEN ENDPROC 15020SYS"Hourglass_On" 15030VOICES2 15040VOICE1,"WaveSynth-Beep" 15050VOICE2,"WaveSynth-Beep" 15060LOCALI% 15070FORI%=1TOLENA$ 15080PROCtone(ASCMID$(A$,I%)) 15090PROCdelay(6) 15100NEXT 15110SYS"Hourglass_Smash" 15120ENDPROC 15130: 15140DEFPROCtone(I%) 15150I%-=48 15160IF I%<0 OR I%>9 THEN ENDPROC 15170SOUND 1,-15,tone%(I%,0),100 15180SOUND 2,-15,tone%(I%,1),100 15190PROCdelay(10) 15200SOUND 1,0,0,0 15210SOUND 2,0,0,0 15220ENDPROC 15230: 15240DEFPROCdelay(I%) 15250LOCALT% 15260T%=TIME 15270REPEATUNTILTIME>T%+I% 15280ENDPROC 15290: 15300DEF PROCupdatep 15310PROCWimp_IconPutText(Print_Window%,28,SURNAME$(pcur%)) 15320PROCWimp_IconPutText(Print_Window%,29,OTHERS$(pcur%)) 15330ENDPROC 15340: 15350DEF PROCable 15360IF psel%=1 THEN 15370PROCWimp_IconEnable(Print_Window%,6) 15380PROCWimp_IconEnable(Print_Window%,12) 15390PROCWimp_IconEnable(Print_Window%,9) 15400PROCWimp_IconEnable(Print_Window%,11) 15410ENDIF 15420IF psel%=2 THEN 15430PROCWimp_IconEnable(Print_Window%,8) 15440PROCWimp_IconEnable(Print_Window%,14) 15450ENDIF 15460IF psel%=3 THEN 15470PROCWimp_IconEnable(Print_Window%,15) 15480ENDIF 15490IF psel%=4 THEN 15500PROCWimp_IconEnable(Print_Window%,28) 15510PROCWimp_IconEnable(Print_Window%,29) 15520PROCWimp_IconEnable(Print_Window%,30) 15530PROCWimp_IconEnable(Print_Window%,31) 15540PROCWimp_IconEnable(Print_Window%,32) 15550ENDIF 15560ENDPROC 15570: 15580DEF PROCdalbe 15590IF psel%=1 THEN 15600PROCWimp_IconDisable(Print_Window%,6) 15610PROCWimp_IconDisable(Print_Window%,12) 15620PROCWimp_IconDisable(Print_Window%,9) 15630PROCWimp_IconDisable(Print_Window%,11) 15640ENDIF 15650IF psel%=2 THEN 15660PROCWimp_IconDisable(Print_Window%,8) 15670PROCWimp_IconDisable(Print_Window%,14) 15680ENDIF 15690IF psel%=3 THEN 15700PROCWimp_IconDisable(Print_Window%,15) 15710ENDIF 15720IF psel%=4 THEN 15730PROCWimp_IconDisable(Print_Window%,28) 15740PROCWimp_IconDisable(Print_Window%,29) 15750PROCWimp_IconDisable(Print_Window%,30) 15760PROCWimp_IconDisable(Print_Window%,31) 15770PROCWimp_IconDisable(Print_Window%,32) 15780ENDIF 15790ENDPROC 15800: 15810DEF FNgetstring(array%) 15820LOCAL path$,pointer% 15830path$="" 15840pointer%=array% 15850REPEAT 15860path$+=CHR$?pointer% 15870pointer%+=1 15880UNTIL ?pointer%=0 OR ?pointer%=13 15890=path$ 15900: 15910DEFPROCopenprinter 15920SYS "XPDriver_Info" TO R0,R1,R2,R3,R4,R5,R6,R7 15930IF R1=0 AND R2=0 AND R3=0 AND R5=0 AND R6=0 AND R7=0 THEN 15940PROCWimp_IconPutText(Print_Window%,34,"No driver loaded") 15950DRIVER%=FALSE 15960ELSE 15970DRIVER%=TRUE 15980REM no printer ? 15990ENDIF 16000IF DRIVER%=TRUE THEN 16010printer$=FNgetstring(R4) 16020PROCWimp_IconPutText(Print_Window%,34,printer$) 16030ENDIF 16040ENDPROC 16050: 16060DEFPROCprint 16070: 16080printhand%=OPENOUT("PRINTER:$.Job1") : REM start a job !!! 16090$title%="Exchange file" 16100SYS &80145,printhand%,title% 16110BPUT#printhand%,13 : REM put head to left of paper to start!!!! 16120: 16130IF psel%=1 THEN 16140L$=FNWimp_IconText(Print_Window%,12) 16150R$=FNWimp_IconText(Print_Window%,11) 16160IF L$<=R$ THEN 16170FOR A=0 TO tot%-1 16180N$=LEFT$(SURNAME$(A),1) 16190IF N$>=L$ AND N$<=R$ THEN 16200IF psurname%=TRUE AND SURNAME$(A)<>"" THEN PROCprintline("Surname : "+SURNAME$(A)+CHR$(10)) 16210IF pothers%=TRUE AND OTHERS$(A)<>"" THEN PROCprintline("Other names : "+OTHERS$(A)+CHR$(10)) 16220IF padd%=TRUE THEN 16230IF ADD1$(A)<>"" THEN PROCprintline("Address : "+ADD1$(A)+CHR$(10)) 16240IF ADD2$(A)<>"" THEN PROCprintline("Address : "+ADD2$(A)+CHR$(10)) 16250IF ADD3$(A)<>"" THEN PROCprintline("Address : "+ADD3$(A)+CHR$(10)) 16260ENDIF 16270IF ppostcode%=TRUE AND POSTCODE$(A)<>"" THEN PROCprintline("Post Code : "+POSTCODE$(A)+CHR$(10)) 16280IF parea%=TRUE AND AREA$(A)<>"" THEN PROCprintline("Area : "+AREA$(A)+CHR$(10)) 16290IF ptel%=TRUE AND TEL$(A)<>"" THEN PROCprintline("Telephone : "+TEL$(A)+CHR$(10)) 16300IF pnts%=TRUE AND NTS$(A)<>"" THEN PROCprintline("Notes : "+NTS$(A)+CHR$(10)) 16310PROCprintline(CHR$(10)) 16320ENDIF 16330NEXTA 16340ENDIF 16350ENDIF 16360IF psel%=2 THEN 16370A$=FNWimp_IconText(Print_Window%,14) 16380FOR A=0 TO tot%-1 16390N$=LEFT$(SURNAME$(A),1) 16400IF A$=N$ THEN 16410IF psurname%=TRUE AND SURNAME$(A)<>"" THEN PROCprintline("Surname : "+SURNAME$(A)+CHR$(10)) 16420IF pothers%=TRUE AND OTHERS$(A)<>"" THEN PROCprintline("Other names : "+OTHERS$(A)+CHR$(10)) 16430IF padd%=TRUE THEN 16440IF ADD1$(A)<>"" THEN PROCprintline("Address : "+ADD1$(A)+CHR$(10)) 16450IF ADD2$(A)<>"" THEN PROCprintline("Address : "+ADD2$(A)+CHR$(10)) 16460IF ADD3$(A)<>"" THEN PROCprintline("Address : "+ADD3$(A)+CHR$(10)) 16470ENDIF 16480IF ppostcode%=TRUE AND POSTCODE$(A)<>"" THEN PROCprintline("Post Code : "+POSTCODE$(A)+CHR$(10)) 16490IF parea%=TRUE AND AREA$(A)<>"" THEN PROCprintline("Area : "+AREA$(A)+CHR$(10)) 16500IF ptel%=TRUE AND TEL$(A)<>"" THEN PROCprintline("Telephone : "+TEL$(A)+CHR$(10)) 16510IF pnts%=TRUE AND NTS$(A)<>"" THEN PROCprintline("Notes : "+NTS$(A)+CHR$(10)) 16520PROCprintline(CHR$(10)) 16530ENDIF 16540NEXTA 16550ENDIF 16560IF psel%=3 THEN 16570FOR A=0 TO tot%-1 16580IF psurname%=TRUE AND SURNAME$(A)<>"" THEN PROCprintline("Surname : "+SURNAME$(A)+CHR$(10)) 16590IF pothers%=TRUE AND OTHERS$(A)<>"" THEN PROCprintline("Other names : "+OTHERS$(A)+CHR$(10)) 16600IF padd%=TRUE THEN 16610IF ADD1$(A)<>"" THEN PROCprintline("Address : "+ADD1$(A)+CHR$(10)) 16620IF ADD2$(A)<>"" THEN PROCprintline("Address : "+ADD2$(A)+CHR$(10)) 16630IF ADD3$(A)<>"" THEN PROCprintline("Address : "+ADD3$(A)+CHR$(10)) 16640ENDIF 16650IF ppostcode%=TRUE AND POSTCODE$(A)<>"" THEN PROCprintline("Post Code : "+POSTCODE$(A)+CHR$(10)) 16660IF parea%=TRUE AND AREA$(A)<>"" THEN PROCprintline("Area : "+AREA$(A)+CHR$(10)) 16670IF ptel%=TRUE AND TEL$(A)<>"" THEN PROCprintline("Telephone : "+TEL$(A)+CHR$(10)) 16680IF pnts%=TRUE AND NTS$(A)<>"" THEN PROCprintline("Notes : "+NTS$(A)+CHR$(10)) 16690PROCprintline(CHR$(10)) 16700NEXTA 16710ENDIF 16720IF psel%=4 THEN 16730FOR A=0 TO tot%-1 16740IF SURNAME$(A)=SURNAME$(pcur%) THEN 16750IF psurname%=TRUE AND SURNAME$(A)<>"" THEN PROCprintline("Surname : "+SURNAME$(A)+CHR$(10)) 16760IF pothers%=TRUE AND OTHERS$(A)<>"" THEN PROCprintline("Other names : "+OTHERS$(A)+CHR$(10)) 16770IF padd%=TRUE THEN 16780IF ADD1$(A)<>"" THEN PROCprintline("Address : "+ADD1$(A)+CHR$(10)) 16790IF ADD2$(A)<>"" THEN PROCprintline("Address : "+ADD2$(A)+CHR$(10)) 16800IF ADD3$(A)<>"" THEN PROCprintline("Address : "+ADD3$(A)+CHR$(10)) 16810ENDIF 16820IF ppostcode%=TRUE AND POSTCODE$(A)<>"" THEN PROCprintline("Post Code : "+POSTCODE$(A)+CHR$(10)) 16830IF parea%=TRUE AND AREA$(A)<>"" THEN PROCprintline("Area : "+AREA$(A)+CHR$(10)) 16840IF ptel%=TRUE AND TEL$(A)<>"" THEN PROCprintline("Telephone : "+TEL$(A)+CHR$(10)) 16850IF pnts%=TRUE AND NTS$(A)<>"" THEN PROCprintline("Notes : "+NTS$(A)+CHR$(10)) 16860PROCprintline(CHR$(10)) 16870ENDIF 16880NEXTA 16890ENDIF 16900: 16910BPUT#printhand%,12 : REM do linefeed !!!! 16920SYS &80148,printhand% 16930CLOSE #printhand% 16940ENDPROC 16950: 16960DEFPROCprintline(line$) 16970FOR cco=1 TO LEN(line$) 16980byte=ASC(MID$(line$,cco,1)) 16990BPUT#printhand%,byte 17000IF byte=10 OR byte=13 THEN BPUT#printhand%,13 : REM put head to left of paper 17010NEXT cco 17020ENDPROC 17030: 17040DEF PROCsel(ZZ,ic%) 17050IF ZZ THEN PROCWimp_SelectIcon(Print_Window%,ic%) ELSE PROCWimp_UnselectIcon(Print_Window%,ic%) 17060ENDPROC 17070: 17080DEFFNChange(wo$) 17090wo$=FNtoupper(wo$,1) 17100FOR cc=1 TO LEN(wo$) 17110IF MID$(wo$,cc,1)=" " OR MID$(wo$,cc,1)="-" OR MID$(wo$,cc,1)="." OR MID$(wo$,cc,1)="*" OR MID$(wo$,cc,1)="""" OR MID$(wo$,cc,1)="'" OR MID$(wo$,cc,1)="," THEN 17120wo$=FNtoupper(wo$,cc+1) 17130ELSE 17140wo$=FNtolower(wo$,cc+1) 17150ENDIF 17160NEXTcc 17170=wo$ 17180: 17190DEFFNtoupper(word$,p) 17200IF MID$(word$,p,1)>="a" AND MID$(word$,p,1)<="z" THEN MID$(word$,p,1)=CHR$(ASC(MID$(word$,p,1))-(ASC("a")-ASC("A"))) 17210=word$ 17220: 17230DEFFNtolower(word$,p) 17240IF MID$(word$,p,1)>="A" AND MID$(word$,p,1)<="Z" THEN MID$(word$,p,1)=CHR$(ASC(MID$(word$,p,1))+(ASC("a")-ASC("A"))) 17250=word$ 17260: 17270DEF PROCunsearch 17280IF ssel%=0 THEN 17290PROCWimp_SetIconSprite(Set_Window%,0,";R1") 17300PROCWimp_IconDisable(Set_Window%,1) 17310ENDIF 17320IF ssel%=1 THEN 17330PROCWimp_SetIconSprite(Set_Window%,4,";R1") 17340PROCWimp_IconDisable(Set_Window%,5) 17350ENDIF 17360IF ssel%=2 THEN 17370PROCWimp_SetIconSprite(Set_Window%,6,";R1") 17380PROCWimp_IconDisable(Set_Window%,7) 17390PROCWimp_IconDisable(Set_Window%,8) 17400PROCWimp_IconDisable(Set_Window%,9) 17410ENDIF 17420IF ssel%=3 THEN 17430PROCWimp_SetIconSprite(Set_Window%,10,";R1") 17440PROCWimp_IconDisable(Set_Window%,11) 17450ENDIF 17460IF ssel%=4 THEN 17470PROCWimp_SetIconSprite(Set_Window%,12,";R1") 17480PROCWimp_IconDisable(Set_Window%,13) 17490ENDIF 17500IF ssel%=5 THEN 17510PROCWimp_SetIconSprite(Set_Window%,14,";R1") 17520PROCWimp_IconDisable(Set_Window%,15) 17530ENDIF 17540IF ssel%=6 THEN 17550PROCWimp_SetIconSprite(Set_Window%,16,";R1") 17560PROCWimp_IconDisable(Set_Window%,17) 17570ENDIF 17580ENDPROC 17590: 17600DEF PROCselsearch 17610IF ssel%=0 THEN 17620PROCWimp_SetIconSprite(Set_Window%,0,";R2") 17630PROCWimp_IconEnable(Set_Window%,1) 17640PROCWimp_IconCaret(Set_Window%,1,LEN(FNWimp_IconText(Set_Window%,1))) 17650ENDIF 17660IF ssel%=1 THEN 17670PROCWimp_SetIconSprite(Set_Window%,4,";R2") 17680PROCWimp_IconEnable(Set_Window%,5) 17690PROCWimp_IconCaret(Set_Window%,5,LEN(FNWimp_IconText(Set_Window%,5))) 17700ENDIF 17710IF ssel%=2 THEN 17720PROCWimp_SetIconSprite(Set_Window%,6,";R2") 17730PROCWimp_IconEnable(Set_Window%,7) 17740PROCWimp_IconEnable(Set_Window%,8) 17750PROCWimp_IconEnable(Set_Window%,9) 17760PROCWimp_IconCaret(Set_Window%,7,LEN(FNWimp_IconText(Set_Window%,7))) 17770ENDIF 17780IF ssel%=3 THEN 17790PROCWimp_SetIconSprite(Set_Window%,10,";R2") 17800PROCWimp_IconEnable(Set_Window%,11) 17810PROCWimp_IconCaret(Set_Window%,11,LEN(FNWimp_IconText(Set_Window%,11))) 17820ENDIF 17830IF ssel%=4 THEN 17840PROCWimp_SetIconSprite(Set_Window%,12,";R2") 17850PROCWimp_IconEnable(Set_Window%,13) 17860PROCWimp_IconCaret(Set_Window%,13,LEN(FNWimp_IconText(Set_Window%,13))) 17870ENDIF 17880IF ssel%=5 THEN 17890PROCWimp_SetIconSprite(Set_Window%,14,";R2") 17900PROCWimp_IconEnable(Set_Window%,15) 17910PROCWimp_IconCaret(Set_Window%,15,LEN(FNWimp_IconText(Set_Window%,15))) 17920ENDIF 17930IF ssel%=6 THEN 17940PROCWimp_SetIconSprite(Set_Window%,16,";R2") 17950PROCWimp_IconEnable(Set_Window%,17) 17960PROCWimp_IconCaret(Set_Window%,17,LEN(FNWimp_IconText(Set_Window%,17))) 17970ENDIF 17980ENDPROC 17990: 18000DEF PROCsearchcut 18010IF ssel%=0 THEN 18020SEARCH$=FNWimp_IconText(Set_Window%,1) 18030SEARCH2$=FNWimp_IconText(Set_Window%,1) 18040SEARCH3$=FNWimp_IconText(Set_Window%,1) 18050SEARCH$=FNChange(SEARCH$) 18060ENDIF 18070IF ssel%=1 THEN 18080SEARCH$=FNWimp_IconText(Set_Window%,5) 18090SEARCH2$=FNWimp_IconText(Set_Window%,5) 18100SEARCH3$=FNWimp_IconText(Set_Window%,5) 18110SEARCH$=FNChange(SEARCH$) 18120ENDIF 18130IF ssel%=2 THEN 18140SEARCH$=FNWimp_IconText(Set_Window%,7) 18150SEARCH2$=FNWimp_IconText(Set_Window%,8) 18160SEARCH3$=FNWimp_IconText(Set_Window%,9) 18170IF SEARCH$<>"" THEN SEARCH$=FNChange(SEARCH$) ELSE SEARCH$=" " 18180IF SEARCH2$<>"" THEN SEARCH2$=FNChange(SEARCH2$) ELSE SEARCH2$=" " 18190IF SEARCH3$<>"" THEN SEARCH3$=FNChange(SEARCH3$) ELSE SEARCH3$=" " 18200ENDIF 18210IF ssel%=3 THEN 18220SEARCH$=FNWimp_IconText(Set_Window%,11) 18230SEARCH2$=FNWimp_IconText(Set_Window%,11) 18240SEARCH3$=FNWimp_IconText(Set_Window%,11) 18250ENDIF 18260IF ssel%=4 THEN 18270SEARCH$=FNWimp_IconText(Set_Window%,13) 18280SEARCH2$=FNWimp_IconText(Set_Window%,13) 18290SEARCH3$=FNWimp_IconText(Set_Window%,13) 18300ENDIF 18310IF ssel%=5 THEN 18320SEARCH$=FNWimp_IconText(Set_Window%,15) 18330SEARCH2$=FNWimp_IconText(Set_Window%,15) 18340SEARCH3$=FNWimp_IconText(Set_Window%,15) 18350ENDIF 18360IF ssel%=6 THEN 18370SEARCH$=FNWimp_IconText(Set_Window%,17) 18380SEARCH2$=FNWimp_IconText(Set_Window%,17) 18390SEARCH3$=FNWimp_IconText(Set_Window%,17) 18400SEARCH$=FNChange(SEARCH$) 18410ENDIF 18420ENDPROC 18430: 18440DEF PROCsearch 18450DONE%=0 18460ST%=FALSE 18470IF SNUM%=-2 THEN SNUM%=cur%+1 18480LOOK$="" 18490LOOK2$="" 18500LOOK3$="" 18510WHILE LOOK$<>SEARCH$ AND LOOK2$<>SEARCH2$ AND LOOK3$<>SEARCH3$ AND SNUM%<=tot%+1 AND ST%=FALSE 18520LOOK$="" 18530LOOK2$="" 18540LOOK3$="" 18550IF ssel%=0 THEN 18560LOOK$=SURNAME$(SNUM%) 18570ENDIF 18580IF ssel%=1 THEN 18590LOOK$=OTHERS$(SNUM%) 18600ENDIF 18610IF ssel%=2 THEN 18620LOOK$=ADD1$(SNUM%) 18630LOOK2$=ADD2$(SNUM%) 18640LOOK3$=ADD3$(SNUM%) 18650ENDIF 18660IF ssel%=3 THEN 18670LOOK$=POSTCODE$(SNUM%) 18680ENDIF 18690IF ssel%=4 THEN 18700LOOK$=AREA$(SNUM%) 18710ENDIF 18720IF ssel%=5 THEN 18730LOOK$=TEL$(SNUM%) 18740ENDIF 18750IF ssel%=6 THEN 18760LOOK$=NTS$(SNUM%) 18770ENDIF 18780IF SNUM%>=tot% THEN 18790SNUM%=-1 18800DONE%+=1 18810ENDIF 18820SNUM%+=1 18830IF DONE%=2 THEN ST%=TRUE 18840PROCchop 18850ENDWHILE 18860IF ST%=FALSE THEN 18870PROCread 18880cur%=SNUM%-1 18890PROCupdate 18900ENDIF 18910ENDPROC 18920: 18930DEF PROCchop 18940LOOK$=LEFT$(LOOK$,LEN(SEARCH$)) 18950LOOK2$=LEFT$(LOOK2$,LEN(SEARCH2$)) 18960LOOK3$=LEFT$(LOOK3$,LEN(SEARCH3$)) 18970ENDPROC 18980: 18990DEF PROCmousebox(w%) 19000wimp%!0=w% 19010SYS"Wimp_GetWindowOutline",,wimp% 19020MOUSE RECTANGLE wimp%!4+2,wimp%!8+2,wimp%!12-wimp%!4-4,wimp%!16-wimp%!8-4 19030ENDPROC 19040: 19050DEF PROCunbox 19060SYS "OS_ReadModeVariable",-1,11 TO ,,xpic 19070SYS "OS_ReadModeVariable",-1,12 TO ,,ypic 19080SYS "OS_ReadModeVariable",-1,4 TO ,,xfact 19090SYS "OS_ReadModeVariable",-1,5 TO ,,yfact 19100MOUSE RECTANGLE 0,0,xpic<<xfact,ypic<<yfact 19110ENDPROC 19120: 19130DEF PROCerror 19140IF ERR=67785 THEN 19150PROCWimp_WindowErrorBox("!ADRBook","Please write enable the disk") 19160CLOSE #X% 19170ELSE 19180DOSAVE%=FALSE 19190PROCWimp_WindowErrorBox("!ADRBook",REPORT$) 19200ENDIF 19210ENDPROC 19220: 19230DEF PROCsendhelp(wimp%,a$) 19240!wimp%=(LENa$+25) AND NOT3 19250wimp%!12=wimp%!8 19260!(wimp%+16)=&503 19270$(wimp%+20)=a$ 19280?(wimp%+20+LENa$+1)=0 19290SYS "Wimp_SendMessage",17,wimp%,wimp%!4 19300ENDPROC 19310: 19320DEF PROCsort 19330FOR B=0 TO tot% 19340FOR A=0 TO tot%-2 19350IF SURNAME$(A)>SURNAME$(A+1) THEN 19360SWAP SURNAME$(A+1),SURNAME$(A) 19370SWAP OTHERS$(A+1),OTHERS$(A) 19380SWAP ADD1$(A+1),ADD1$(A) 19390SWAP ADD2$(A+1),ADD2$(A) 19400SWAP ADD3$(A+1),ADD3$(A) 19410SWAP POSTCODE$(A+1),POSTCODE$(A) 19420SWAP AREA$(A+1),AREA$(A) 19430SWAP TEL$(A+1),TEL$(A) 19440SWAP NTS$(A+1),NTS$(A) 19450ENDIF 19460NEXTA 19470NEXTB 19480ENDPROC
ș "OS_GetEnv" � env$ � �env$," -quit ") � 2fileload$=�env$,�env$,�(34),�env$,�(34))+1)+1) (� 2? �Wimp_Start("ADRBook",1880,3862) <3 �User_SetInitialData F. �Create_Windows P, �Create_Menus Z� fileload$<>" " � d$�Event_LoadFile(fileload$,"FBF") n/�Wimp_IconPutText(Save_Window%,1,fileload$) x� �1 �Wimp_WaitForEvent �. �Wimp_CloseDown � � � : �! � �User_SetInitialData � DOSAVE%=� � search%=� �SNUM%=-2 �SEARCH$="" �SEARCH2$="" �SEARCH3$="" �ssel%=0 �� title% 256 psel%=1 pcur%=0 psurname%=� " pothers%=� , padd%=� 6 ppostcode%=� @ parea%=� J ptel%=� T pnts%=� ^� tone%(9,1) h%�I%=0�9:�J%=0�1:�tone%(I%,J%):�:� r@�24063,26145,22288,25564,22288,26145,22288,26726,22979,25564 |@�22979,26145,22979,26726,23482,25564,23482,26145,23482,26726 � WIN$="NONE" � dim=300 � � SURNAME$(dim) � � OTHERS$(dim) � � ADD1$(dim) � � ADD2$(dim) � � ADD3$(dim) � � POSTCODE$(dim) � � AREA$(dim) � � TEL$(dim) � � NTS$(dim) �SURNAME$()="" �OTHERS$()="" ADD1$()="" ADD2$()="" ADD3$()="" &POSTCODE$()="" 0AREA$()="" : TEL$()="" D NTS$()="" N cur%=0 X tot%=0 b SA%=� l UPDATE%=� v CD%=� � � � : � � �Create_Windows � �Wimp_SpritesLoad �; Info_Window%=�Wimp_WindowLoad("Info") �< Title_Window%=�Wimp_WindowLoad("Title") �; Main_Window%=�Wimp_WindowLoad("Main") �< Print_Window%=�Wimp_WindowLoad("Print") �; Save_Window%=�Wimp_WindowLoad("Save") �9 Set_Window%=�Wimp_WindowLoad("Set") �; Close_Window%=�Wimp_WindowLoad("Close") �; Save2_Window%=�Wimp_WindowLoad("Save2") �= Search2_Window%=�Wimp_WindowLoad("Search2") . Bar_Icon%=�Wimp_IconBar("!ADRBook") �able � : *" � �Event_Save(window%) 4 Ȏ window% � >" � Save_Window% :=� H# � Save2_Window% :=� R :=� \ � f : p. � �Event_Sprites(window%)=sprites% z : � � �Create_Menus �W Save_Menu%=�Wimp_MenuCreate("Save\ADRBook>Save_Window%\Text>Save2_Window%") �Y Bar_Menu%=�Wimp_MenuCreate("ADRBook\Info>Info_Window%\Save>Save_Menu%\Quit") �� Main_Menu%=�Wimp_MenuCreate("Main\Turn Back\Start\Back\Dial\Sort\Search Set\Delete\Add\Print\Forward\End\Save>Save_Menu%") �V Title_Menu%=�Wimp_MenuCreate("Title\Close Book\Turn Over\Save>Save_Menu%") �@ Search2_Menu%=�Wimp_MenuCreate("Search\Search\Cancel") �. �Wimp_MenuDottedLine(Title_Menu%,1) �. �Wimp_MenuDottedLine(Title_Menu%,2) �, �Wimp_MenuDottedLine(Bar_Menu%,1) �, �Wimp_MenuDottedLine(Bar_Menu%,2) �A Print_Menu%=�Wimp_MenuCreate("Print\Turn Back\Print") �. �Wimp_MenuDottedLine(Print_Menu%,1) �G Set_Menu%=�Wimp_MenuCreate("Search Set\Turn Back\Search") - �Wimp_MenuDottedLine(Main_Menu%,1) - �Wimp_MenuDottedLine(Main_Menu%,3) - �Wimp_MenuDottedLine(Main_Menu%,9) $. �Wimp_MenuDottedLine(Main_Menu%,11) . �menuupdate 8 � B : L" � �Event_Menu(window%) V Ȏ window% � `. � Bar_Window% : =Bar_Menu% j � Main_Window% t� search%=� � ~=Main_Menu% �� �=Search2_Menu% �� �0 � Print_Window% : =Print_Menu% �0 � Title_Window% : =Title_Menu% �. � Set_Window% : =Set_Menu% �2 � Search2_Window% : =Search2_Menu% �! : =� � � � : �1 � �Event_WindowClose(window%,buttons%) � Ȏ window% � � Title_Window% WIN$="NONE" � Main_Window% )�Wimp_WindowBringToTop(Title_Window%) (WIN$="TITLE" 2 � Print_Window% <(�Wimp_WindowBringToTop(Main_Window%) FWIN$="MAIN" P � Set_Window% Z�searchcut d(�Wimp_WindowBringToTop(Main_Window%) nWIN$="MAIN" x � � � � � : �5 � �Event_Draw(window%,x_origin%,y_origin%) � Ȏ window% � �8 � Info_Window% : �User_DrawInfoWindow �9 � Title_Window% : �User_DrawTitleWindow �8 � Main_Window% : �User_DrawMainWindow �9 � Print_Window% : �User_DrawPrintWindow �8 � Save_Window% : �User_DrawSaveWindow � � � � � : ' � �User_DrawInfoWindow � : "( � �User_DrawTitleWindow , � 6 : @' � �User_DrawMainWindow J& ș"Wimp_SetColour",11 T! len=212/(tot%+1) ^ pos=cur%*len h? ȓ Ȑ (x_origin%+530)+pos,y_origin%-594,len,22 r � | : �( � �User_DrawPrintWindow � � � : �' � �User_DrawSaveWindow � � � : �; � �Event_MouseClick(window%,icon%,button%,x%,y%) � Ȏ window% � �1 � Bar_Window% : �User_MouseBar �B � Info_Window% : �User_MouseInfo( button%,icon%) �C � Title_Window% : �User_MouseTitle( button%,icon%) �B � Main_Window% : �User_MouseMain( button%,icon%) �C � Print_Window% : �User_MousePrint( button%,icon%) D � Set_Window% : �User_MouseSearch( button%,icon%) C � Close_Window% : �User_MouseClose( button%,icon%) D � Search2_Window% : �User_MouseClose2( button%,icon%) & � 0 � : : D0 � �User_MouseClose2( button%,icon%) N � icon%=3 � X search%=� b. �Wimp_IconEnable(Main_Window%,21) l. �Wimp_IconEnable(Main_Window%,22) v. �Wimp_IconEnable(Main_Window%,23) �. �Wimp_IconEnable(Main_Window%,24) �. �Wimp_IconEnable(Main_Window%,25) �. �Wimp_IconEnable(Main_Window%,26) �. �Wimp_IconEnable(Main_Window%,27) �. �Wimp_IconEnable(Main_Window%,28) �. �Wimp_IconEnable(Main_Window%,29) �. �Wimp_IconEnable(Main_Window%,30) �. �Wimp_IconEnable(Main_Window%,33) �/ �Wimp_WindowClose(Search2_Window%) � � �" � icon%=2 � ssel%=2 � �: � SEARCH$=" " � SEARCH2$=" " � SEARCH3$=" " � �L �Wimp_WindowErrorBox("!ADRBook","Please set search parameters") � �search � � * 4# � icon%=2 � ssel%<>2 � >: � SEARCH$<>"" � SEARCH2$<>"" � SEARCH3$<>"" � H �search R � \L �Wimp_WindowErrorBox("!ADRBook","Please set search parameters") f � p � z � � : �/ � �User_MouseClose( button%,icon%) � � icon%=1 � � SA%=� � �unbox �$�Wimp_WindowClose(Close_Window%) � UPDATE%=� �(�Wimp_WindowBringToTop(Save_Window%) �%A$=�Wimp_IconText(Save_Window%,1) �)�Wimp_IconCaret(Save_Window%,1,�(A$)) �� � � icon%=2 � � �unbox UPDATE%=� $�Wimp_WindowClose(Close_Window%) CD%=� $� . � icon%=3 � 8 �unbox B$�Wimp_WindowClose(Close_Window%) L� V� CD%=� � �Wimp_CloseDown `� j : t � �User_MouseBar ~W � WIN$="NONE" � SA%=� � �Wimp_WindowBringToTop(Title_Window%):WIN$="TITLE" � � � : �0 � �User_MouseSearch( button%,icon%) �" � icon%=3 � ssel%=2 � � �searchcut �: � SEARCH$=" " � SEARCH2$=" " � SEARCH3$=" " � �L �Wimp_WindowErrorBox("!ADRBook","Please set search parameters") � � �+ �Wimp_WindowClose(Set_Window%) �1 �Wimp_WindowBringToTop(Main_Window%) �4 �Wimp_WindowBringToTop(Search2_Window%) �/ �Wimp_IconDisable(Main_Window%,21) / �Wimp_IconDisable(Main_Window%,22) / �Wimp_IconDisable(Main_Window%,23) / �Wimp_IconDisable(Main_Window%,24) / �Wimp_IconDisable(Main_Window%,25) (/ �Wimp_IconDisable(Main_Window%,26) 2/ �Wimp_IconDisable(Main_Window%,27) </ �Wimp_IconDisable(Main_Window%,28) F/ �Wimp_IconDisable(Main_Window%,29) P/ �Wimp_IconDisable(Main_Window%,30) Z/ �Wimp_IconDisable(Main_Window%,33) d search%=� n �search x � � � � �# � icon%=3 � ssel%<>2 � � �searchcut �: � SEARCH$<>"" � SEARCH2$<>"" � SEARCH3$<>"" � �+ �Wimp_WindowClose(Set_Window%) �1 �Wimp_WindowBringToTop(Main_Window%) �4 �Wimp_WindowBringToTop(Search2_Window%) �/ �Wimp_IconDisable(Main_Window%,21) �/ �Wimp_IconDisable(Main_Window%,22) �/ �Wimp_IconDisable(Main_Window%,23) �/ �Wimp_IconDisable(Main_Window%,24) �/ �Wimp_IconDisable(Main_Window%,25) / �Wimp_IconDisable(Main_Window%,26) / �Wimp_IconDisable(Main_Window%,27) / �Wimp_IconDisable(Main_Window%,28) "/ �Wimp_IconDisable(Main_Window%,29) ,/ �Wimp_IconDisable(Main_Window%,30) 6/ �Wimp_IconDisable(Main_Window%,33) @ search%=� J �search T � ^L �Wimp_WindowErrorBox("!ADRBook","Please set search parameters") h � r � | � � icon%=2 � ��searchcut �"�Wimp_WindowClose(Set_Window%) �(�Wimp_WindowBringToTop(Main_Window%) �WIN$="MAIN" ��update � � �X � icon%=0 � icon%=4 � icon%=6 � icon%=10 � icon%=12 � icon%=14 � icon%=16 � �@ � icon%=0 � ssel%<>0 � �unsearch:ssel%=0:�selsearch �@ � icon%=4 � ssel%<>1 � �unsearch:ssel%=1:�selsearch �@ � icon%=6 � ssel%<>2 � �unsearch:ssel%=2:�selsearch �A � icon%=10 � ssel%<>3 � �unsearch:ssel%=3:�selsearch �A � icon%=12 � ssel%<>4 � �unsearch:ssel%=4:�selsearch A � icon%=14 � ssel%<>5 � �unsearch:ssel%=5:�selsearch A � icon%=16 � ssel%<>6 � �unsearch:ssel%=6:�selsearch � & � 0 : :. � �User_MouseInfo( button%,icon%) D � N : X/ � �User_MouseTitle( button%,icon%) b � icon%=6 � l$�Wimp_WindowClose(Title_Window%) vWIN$="NONE" �� � � icon%=7 � �$�Wimp_WindowClose(Title_Window%) �(�Wimp_WindowBringToTop(Main_Window%) �WIN$="MAIN" ��update �� � � � : �. � �User_MouseMain( button%,icon%) � � icon%=33 � � � tot%>1 � � �read �sort �update � ` �Wimp_WindowAlert("!ADRBook","There is no point in sorting with this many records") * � 4 UPDATE%=� > � H � icon%=25 � R#�Wimp_WindowClose(Main_Window%) \'�Wimp_WindowBringToTop(Set_Window%) f�selsearch pWIN$="SEARCH" z � �A � icon%=24 � �read:�tonedial(AREA$(cur%)+TEL$(cur%)) �% � icon%=26 � cur%<tot% � � UPDATE%=� �WANS%=�Wimp_WindowCancel("!ADRBook","Are you sure you want to delete this record ?") �� ANS%=� � � UPDATE%=� � �read ��delete ��update �� �� � � icon%=21 � �#�Wimp_WindowClose(Main_Window%) )�Wimp_WindowBringToTop(Title_Window%) WIN$="TITLE" � $" � icon%=28 � tot%>0 � . UPDATE%=� 8#�Wimp_WindowClose(Main_Window%) B�openprinter L)�Wimp_WindowBringToTop(Print_Window%) VI�Wimp_IconCaret(Print_Window%,12,�(�Wimp_IconText(Print_Window%,12))) `�updatep jWIN$="PRINT" t� ~ � icon%=27 � � UPDATE%=� �� cur%=tot% � �*� �Wimp_IconText(Main_Window%,4)<>"" � �A%=icon% � �read �tot%+=1 �cur%+=1 � UPDATE%=� ��update �� �L�Wimp_WindowErrorBox("!ADRBook","Please enter a Surname then press ADD") �� � [�Wimp_WindowErrorBox("!ADRBook","Please go to the blank record at the end of the file") � � (" � icon%=23 � cur%>0 � 2 UPDATE%=� < �read Fcur%-=1 P�update Z� d% � icon%=29 � cur%<tot% � n UPDATE%=� x �read �cur%+=1 ��update �� �" � icon%=22 � cur%>0 � � UPDATE%=� � �read � cur%=0 ��update �� �% � icon%=30 � cur%<tot% � � UPDATE%=� � �read � cur%=tot% �update � � " : ,/ � �User_MousePrint( button%,icon%) 6 @ � icon%=21 � Jpsurname%=� psurname% T�sel(psurname%,icon%) ^� h � icon%=22 � rpothers%=� pothers% |�sel(pothers%,icon%) �� � � icon%=23 � �padd%=� padd% ��sel(padd%,icon%) �� � � icon%=24 � �ppostcode%=� ppostcode% ��sel(ppostcode%,icon%) �� � � icon%=25 � �parea%=� parea% ��sel(parea%,icon%) �� � icon%=26 � ptel%=� ptel% �sel(ptel%,icon%) &� 0 � icon%=27 � :pnts%=� pnts% D�sel(pnts%,icon%) N� X b l% � icon%=17 � DRIVER%=� � vX� psurname%=� � pothers%=� � padd%=� � ppostcode%=� � parea%=� � ptel%=� � pnts%=� � � �print �� �T�Wimp_WindowAlert("Error from !ADRBook","Please select at least one print data") �� �� �� � icon%=10 � �Wimp_WindowClose(Print_Window%):�Wimp_WindowBringToTop(Main_Window%):WIN$="MAIN":�Wimp_IconCaret(Main_Window%,4,�(�Wimp_IconText(Main_Window%,4))) �5 � icon%=30 � pcur%>0 � pcur%-=1:�updatep �: � icon%=31 � pcur%<tot%-1 � pcur%+=1:�updatep �_ � icon%=7 � icon%=13 � icon%=16 � icon%=33 � �Wimp_SelectIcon(Print_Window%,icon%) �# � icon%=7 � psel%<>1 � �I�Wimp_IconCaret(Print_Window%,12,�(�Wimp_IconText(Print_Window%,12))) � �dalbe �psel%=1 �able � $ � icon%=13 � psel%<>2 � I�Wimp_IconCaret(Print_Window%,14,�(�Wimp_IconText(Print_Window%,14))) * �dalbe 4psel%=2 > �able H� R$ � icon%=16 � psel%<>3 � \!ș "Wimp_SetCaretPosition",-1 f �dalbe ppsel%=3 z �able �� �$ � icon%=33 � psel%<>4 � �!ș "Wimp_SetCaretPosition",-1 � �dalbe �psel%=4 � �able �� � � � � : �0 � �Event_KeyPress(window%,icon%,key%) � Ȏ window% � �E � Main_Window% : �User_KeyPressMain( icon%,key%) F � Print_Window% : �User_KeyPressPrint( icon%,key%) � � $ : .. � �User_KeyPressMain( icon%,key%) 80� key%=13 � icon%<12 � key%=398 � icon%<12 � B.a%=�(�Wimp_IconText(Main_Window%,icon%+1)) L,�Wimp_IconCaret(Main_Window%,icon%+1,a%) V� `0� key%=13 � icon%=12 � key%=398 � icon%=12 � j� cur%=tot% � t�User_MouseMain( 4,27) ~� ��User_MouseMain( 4,29) �� �� �� key%=399 � icon%>4 � �.a%=�(�Wimp_IconText(Main_Window%,icon%-1)) �,�Wimp_IconCaret(Main_Window%,icon%-1,a%) �� �� key%=399 � icon%=4 � �)a%=�(�Wimp_IconText(Main_Window%,12)) �'�Wimp_IconCaret(Main_Window%,12,a%) �� � � : / � �User_KeyPressPrint( icon%,key%) � : (% � �Event_MenuChoice(menu%) 2 Ȏ menu% � << � Bar_Menu% : �User_MenuChoiceBar F= � Main_Menu% : �User_MenuChoiceMain P> � Title_Menu% : �User_MenuChoiceTitle Z> � Print_Menu% : �User_MenuChoicePrint d< � Set_Menu% : �User_MenuChoiceSet n@ � Search2_Menu% : �User_MenuChoiceSearch2 x � � � � : � � �User_MenuChoiceBar �$ Ȏ �Wimp_MenuChoice(0) � � � 1 : � � 3 :� UPDATE%=� � �D�Wimp_IconPutText(Close_Window%,0,"This file has been modified") �)�Wimp_WindowBringToTop(Close_Window%) ��mousebox(Close_Window%) �� �� UPDATE%=� � finished%=� � � � � : " � �User_MenuChoiceTitle $ Ȏ �Wimp_MenuChoice(0) � "; � 1 : �Event_MouseClick(Title_Window%,6,4,0,0) ,; � 2 : �Event_MouseClick(Title_Window%,7,4,0,0) 6 � @ � J : T$ � �User_MenuChoiceSearch2 ^$ Ȏ �Wimp_MenuChoice(0) � h= � 1 : �Event_MouseClick(Search2_Window%,2,4,0,0) r= � 2 : �Event_MouseClick(Search2_Window%,3,4,0,0) | � � � � : �" � �User_MenuChoicePrint �$ Ȏ �Wimp_MenuChoice(0) � �< � 1 : �Event_MouseClick(Print_Window%,10,4,0,0) �< � 2 : �Event_MouseClick(Print_Window%,17,4,0,0) � � � � : � � �User_MenuChoiceSet �$ Ȏ �Wimp_MenuChoice(0) � �9 � 1 : �Event_MouseClick(Set_Window%,2,4,0,0) �9 � 2 : �Event_MouseClick(Set_Window%,3,4,0,0) � � � : ! � �User_MenuChoiceMain &$ Ȏ �Wimp_MenuChoice(0) � 0; � 1 : �Event_MouseClick(Main_Window%,21,4,0,0) :Z � 2 : �Event_MouseClick(Main_Window%,22,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) DZ � 3 : �Event_MouseClick(Main_Window%,23,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) NZ � 4 : �Event_MouseClick(Main_Window%,24,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) XZ � 5 : �Event_MouseClick(Main_Window%,33,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) b; � 6 : �Event_MouseClick(Main_Window%,25,4,0,0) lZ � 7 : �Event_MouseClick(Main_Window%,26,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) vZ � 8 : �Event_MouseClick(Main_Window%,27,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) �; � 9 : �Event_MouseClick(Main_Window%,28,4,0,0) �[ � 10 : �Event_MouseClick(Main_Window%,29,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) �[ � 11 : �Event_MouseClick(Main_Window%,30,4,0,0):�Wimp_MenuAdjustOn(Main_Menu%) � � � � � : �) � �Event_LoadFile(file$,type$) � � type$="FBF" � � UPDATE%=� �+�Wimp_IconPutText(Save_Window%,1,file$) � cur%=0 �X%=�(file$) �� #X%,tot% � A=0 � tot% � #X%,SURNAME$(A) � #X%,OTHERS$(A) � #X%,ADD1$(A) *� #X%,ADD2$(A) 4� #X%,ADD3$(A) >� #X%,POSTCODE$(A) H� #X%,AREA$(A) R� #X%,TEL$(A) \� #X%,NTS$(A) f�A p � #X% z� WIN$<>"NONE" � �3� WIN$="MAIN" � �Wimp_WindowClose(Main_Window%) �5� WIN$="PRINT" � �Wimp_WindowClose(Print_Window%) �4� WIN$="SEARCH" � �Wimp_WindowClose(Set_Window%) �� �;� WIN$<>"TITLE" � �Wimp_WindowBringToTop(Title_Window%) ��menuupdate � � � � � : �+ � �Event_SaveFile(file$,window%) � Ȏ window% � �' � Save_Window% : �� � � � � �error � DOSAVE%=� � X%=�(file$) $ � #X%,tot% . � A=0 � tot% 8 � #X%,SURNAME$(A) B � #X%,OTHERS$(A) L � #X%,ADD1$(A) V � #X%,ADD2$(A) ` � #X%,ADD3$(A) j � #X%,POSTCODE$(A) t � #X%,AREA$(A) ~ � #X%,TEL$(A) � � #X%,NTS$(A) � �A � � #X% � �("SETTYPE "+file$+" FBF") � �Wimp_MenuClose � UPDATE%=� �� � �& � Save2_Window% : �� � �� � � �error �� DOSAVE%=� � �Wimp_MenuClose � WIN$="MAIN" � �read �("SPOOL "+file$) � A=0 � tot% (0 � SURNAME$(A)<>"" � � SURNAME$(A)+�(10); 2. � OTHERS$(A)<>"" � � OTHERS$(A)+�(10); <* � ADD1$(A)<>"" � � ADD1$(A)+�(10); F* � ADD2$(A)<>"" � � ADD2$(A)+�(10); P* � ADD3$(A)<>"" � � ADD3$(A)+�(10); Z2 � POSTCODE$(A)<>"" � � POSTCODE$(A)+�(10); d* � AREA$(A)<>"" � � AREA$(A)+�(10); n( � TEL$(A)<>"" � � TEL$(A)+�(10); x( � NTS$(A)<>"" � � NTS$(A)+�(10); � � �(10); � � A � �("SPOOL") � �("SETTYPE "+file$+" FFF") � �6 � � file$="<Wimp$Scrap>" � � �Wimp_SendToEdit(file$) �/ �Wimp_IconPutText(Save2_Window%,1,ACE$) � � �� � � �� DOSAVE%=� � DOSAVE%=� � � : I� ******************************************************************* : "(� �Wimp_WindowAlert(title$,message$) ,+�Wimp_WindowAlertBox(title$,message$,0) 6� @: J3� �Wimp_WindowAlertBox(title$,message$,button%) T� response% ^$(wimp%+4)=message$ hȎ button% � r � 2 : response%=1 | � 1 : response%=15 �! � 3 : response%=(1<<5)+16 �! � 4 : response%=(1<<6)+16 � : response%=16 �� �=ș "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) � &: 0 � �Wimp_WindowTitle(window%) :wimp%!0=window% D ș "Wimp_GetWindInfo",,wimp% N6� ((wimp%!60)�&100)=0 � 1,"Title isn't indirected" X=$(wimp%!76) b: l� �Wimp_WindowLoad(window$) v9=�Wimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates") �: �-� �Wimp_WindowLoadFrom(window$,template$) �� c%,i%,n%,j%,sp$,sp2$ �%ș "Wimp_OpenTemplate",,template$ �Mș "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% 4- sp$=�Wimp_GetStringAtAddress(wimp%!28) >" ș "Wimp_DeleteIcon",,wimp% H Ȏ sprites% � R � 1 : wimp%!32=1 \ : f/ ș "OS_SpriteOp",&108,sprites% � ,,,n% p j%=0 z � : j%+=1 �= ș "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j% �7 sp2$=�Wimp_GetStringAtAddress(pointer_block%) � � j%=n% � sp$=sp2$ �4 � 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% .� 8: B � �Wimp_WindowClose(window%) L!wimp%=window% V ș "Wimp_CloseWindow",,wimp% `� j: t$� �Wimp_WindowForceDraw(window%) ~Ȏ window% � �8 � -1 : ș "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024 �9 : ș "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0 �� �� �: �� �Wimp_WindowOpen(window%) �!wimp%=window% �#ș "Wimp_GetWindowState",,wimp% �ș "Wimp_OpenWindow",,wimp% �� �: ��Wimp_WindowInterface ș"Wimp_BorderWindow",,wimp% � : I� ******************************************************************* (: 2%� �Wimp_IconUpdate(window%,icon%) <wimp%!0=window% Fwimp%!4=icon% P wimp%!8=0 Zwimp%!12=0 d!ș "Wimp_SetIconState",,wimp% n� x: �0� �Wimp_SetIconSprite(window%,icon%,sprite$) �wimp%!0=window% �wimp%!4=icon% �!ș "Wimp_GetIconState",,wimp% �$wimp%!32="S"+sprite$ �wimp%!0=window% � wimp%!8=0 �wimp%!12=0 �!ș "Wimp_SetIconState",,wimp% �� �: �� �Wimp_IconBar(Sprite$) �� icon% wimp%!0=-1 wimp%!4=0 : wimp%!8=0 wimp%!12=68 : wimp%!16=68 "wimp%!20=&3002 ,$(wimp%+24)=Sprite$ 6'ș "Wimp_CreateIcon",,wimp% � icon% @ =icon% J: T+� �Wimp_IconCaret(window%,icon%,chars%) ^8ș "Wimp_SetCaretPosition",window%,icon%,,,-1,chars% h� r: |#� �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) �: �)� �Wimp_IconValidation(window%,icon%) �#wimp%!0=window% : wimp%!4=icon% �!ș "Wimp_GetIconState",,wimp% �7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected" �=$(wimp%!32) �: �&� �Wimp_IconDisable(window%,icon%) �#wimp%!0=window% : wimp%!4=icon% $wimp%!8=1<<22 : wimp%!12=1<<22 !ș "Wimp_SetIconState",,wimp% � &: 0%� �Wimp_IconEnable(window%,icon%) :#wimp%!0=window% : wimp%!4=icon% D$wimp%!8=0 : wimp%!12=1<<22 N!ș "Wimp_SetIconState",,wimp% X� b: l0� �Wimp_IconPutSprite(window%,icon%,sprite$) v!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% � =icon% �: �,� �Wimp_IconPutText(window%,icon%,text$) �#wimp%!0=window% : wimp%!4=icon% �!ș "Wimp_GetIconState",,wimp% �7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected" �$(wimp%!28)=text$ �#wimp%!0=window% : wimp%!4=icon% !wimp%!8=0 : wimp%!12=0 !!ș "Wimp_SetIconState",,wimp% !� ! : !*� �Wimp_IconInterfaceStart !4ș"Wimp_BorderIcon",,wimp% !>� !H: !R� �Wimp_IconInterfaceFinish !\ wimp%!8=0 !fș"Wimp_BorderIcon",,wimp% !p� !z: !�I� ******************************************************************* !�: !�� �Wimp_MenuAdjustOn(menu%) !�,ș "Wimp_GetPointerInfo",,pointer_block% !�^� ((pointer_block%!8)�1)=1 � ș "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4 !�� !�: !�� �Wimp_MenuChoice(level%) !�=(wimp%!(4*level%))+1 !�: !�� �Wimp_MenuCreate(menu$) !�)� 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) "8#width%=�(�menu$,�menu$,"\")-1)) "B$menu$+="\" : Menu_NoOfEntries%=0 "Lȕ menu$<>"" "Vmenu$=�menu$,�menu$,"\")+1) "`Ȏ menu$ � "j � "" "t : "~1 !index%=0 : index%!4=-1 : index%!8=&7000021 "� length%=�menu$,"\")-1 "� k%=��menu$,length%),">") "� Ȏ k% � "� � 0 "� "�% s%=�(�menu$,k%+1,length%-k%)) "� index%!4=s% "� length%=k%-1 "� � "�" $(index%+12)=�menu$,length%) "�' � length%>width% � width%=length% "� index%+=24 # � # � #menu%!16=16*(width%+1) #(index%!-24=index%!-24 � &80 : =menu% #(: #2� �Wimp_MenuColours #<!=�Wimp_MenuCreateColours(" ") #F: #P%� �Wimp_MenuCreateColours(title$) #Z� x$,men%,j%,i% #d6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15" #nmen%=�Wimp_MenuCreate(x$) #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% #��Wimp_MenuCentre(men%,i%+1) #�� #� =men% #�: #�"� �Wimp_MenuNoOfEntries(menu$) #�� n% ,j% : n%=0 : j%=0 #�� #�j%=�menu$,"\",j%+1) $� j%<>0 � n%+=1 $ � j%=0 $=n% $": $,5� �Wimp_MenuBackGroundColour(menu%,item%,colour%) $6� fore%,i% $@&fore%=(menu%?(39+(item%-1)*24))�16 $J(i%=((menu%?(39+(item%-1)*24))�16)�16 $T/menu%?(39+(item%-1)*24)=fore%+16*colour%+i% $^� $h: $r#� �Wimp_MenuCentre(menu%,item%) $|:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3) $�� $�: $�� �Wimp_MenuClose $�ș "Wimp_CreateMenu",-1 $�� $�: $�$� �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) %0� %:: %D5� �Wimp_MenuForegroundColour(menu%,item%,colour%) %NEmenu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16) %X� %b: %l)� �Wimp_MenuGlue(menu1%,item%,menu2%) %vmenu1%!(8+item%*24)=menu2% %�� %�: %�'� �Wimp_MenuItem(menu%,item%,item$) %�,$(menu%+(40+(item%-1)*24))=�item$,12)+�0 %�� %�: %�$� �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%) &4� n% : n%=0 &>+ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0 &H n%+=1 &R� &\2ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44 &fmenu%=Bar_Menu% &p� &z: &�!� �Wimp_MenuTick(menu%,item%) &�7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1 &�� &�: &�#� �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% '� ': '$I� ******************************************************************* '.: '8%� �Wimp_SelectIcon(window%,icon%) 'Bwimp%!0=window% 'Lwimp%!4=icon% 'V#wimp%!8=%1000000000000000000000 '`$wimp%!12=%1000000000000000000000 'jș&400CD,,wimp% 't� '~: '�'� �Wimp_UnselectIcon(window%,icon%) '�wimp%!0=window% '�wimp%!4=icon% '� wimp%!8=0 '�$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 (2!sprites%=T%:sprites%!8=0 (<!ș"OS_SpriteOp",&109,sprites% (F+ș"OS_SpriteOp",&10A,sprites%,pathname$ (P� (Z: (dI� ******************************************************************* (n: (x� �Wimp_FileType(type%) (�Ȏtype%� (��&FFF:="Text" (��&FFD:="Data" (��&FFB:="Basic" (��&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% )6S%=�pathname$ )@T%=�#S%+16 )J�#S% )T�file%T% )^"�("LOAD"+pathname$+""+�~file%) )h =file% )r; )|&� �Wimp_GetStringAtAddress(array%) )� �s$:s$="" )�<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�: )�=s$ )�: )�#� �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 *0n%=�file$+45 *:,� n%�4 � !wimp%=4+(n%>>2)<<2 � !wimp%=n% *D$ș "Wimp_SendMessage",17,wimp%,0 *N� *X: *bI� ******************************************************************* *l: *v/� �Wimp_Start(TaskName$,wimp_memory%,icon%) *�%� wimp% wimp_memory%,icons% icon% *�)� wimp_memory%<256 � wimp_memory%=256 *�icon_memory%=icons%+icon% *�task$=TaskName$ *�+indirect_sprites%=1 : direct_sprites%=1 *��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$ +*: +4� �Wimp_SetEventVariables +>� pointer_block% 20 +Hinterface%=� +R.null%=1 :draw%=2 : pointer_leaving%=1<<4 +\1pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7 +f&key%=1<<8:menu%=1<<9:scroll%=1<<10 +p@lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18) +z0recorder%=1<<18:acknowledge%=1<<19:window%=0 +�!sprites%=1:version%=0:task%=0 +�*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0 +�*x_origin%=0:y_origin%=0:SaveWindow%=-3 +�3message_quit%=0:message_save%=2:message_load%=3 +�!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$) ,8�Wimp_CloseDown ,B� ,L: ,V� �Wimp_CloseDown ,`#ș"Wimp_CloseDown",task%,"TASK" ,j� ,t: ,~� �Wimp_Quit ,�finished%=� ,�� ,�: ,�#� �Wimp_ReadVariable(Variable$) ,��len%,result%,variable% ,�$wimp%=Variable$ ,�3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len% ,�wimp%?(len%+255)=13 ,�=$(wimp%+255) ,�: ,�I� ******************************************************************* ,�: - � �Wimp_WaitForEvent - � mask%,event% -finished%=� -mask%=%111000011001 -(� -2' ș"Wimp_Poll",mask%,wimp% � event% -< Ȏ event% � -F �0 : -P �1 : �Wimp_PollDrawWindow -Z& �2 : ș "Wimp_OpenWindow",,wimp% -d �3 : �Wimp_PollCloseWindow -n �4 : -x �5 : -� �6 : �Wimp_PollMouseClick -� �7 : �Wimp_PollSaveMessage -� �8 : �Wimp_PollKeyPress -�# �9 : �Event_MenuChoice(menu%) -� �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 .6ȕmore% .@0 � interface% � ș"Wimp_BorderWindow",,wimp% .J- �Event_Draw(window%,x_origin%,y_origin%) .T' ș"Wimp_GetRectangle",,wimp%�more% .^� .h� .r: .|� �Wimp_PollCloseWindow .�% ș "Wimp_GetPointerInfo",,wimp% .�) window%=wimp%!12 : buttons%=wimp%!8 .�� search%=� � .�) �Event_WindowClose(window%,buttons%) .�2 !wimp%=window% : ș "Wimp_CloseWindow",,wimp% .�� .�� .�: .�� �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 / � /& � /0� /:: /D� �Wimp_PollMenuPopUp /N � SA%=� � /Xmenu%=�Event_Menu(window%) /b Ȏ menu% � /l � �: /v : /� Ȏ window% � /� � -2 : n%=0 /�3 ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0 /� n%+=1 /� � /�: ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*90 /�4 : ș"Wimp_CreateMenu",,menu%,x%-64,y%+20 /� � /� � /�� /�� /�: /�� �Wimp_PollMouseSave 0 Ȏ icon% � 08 � 0 : � button% � &50 � �Wimp_PollDragBox(window%) 08 � 2 : � button% � 5 � �Wimp_PollSaveFile(window%) 0 � 0*� 04: 0>� �Wimp_PollEventMouseClick 0H. � interface% � ș"Wimp_BorderIcon",,wimp% 0R3 �Event_MouseClick(window%,icon%,button%,x%,y%) 0\ Ȏ interface% � 0f � � : 0p( wimp%!0=x%:wimp%!4=y% : wimp%!8=0 0z( wimp%!12=window% : wimp%!16=icon% 0�! ș"Wimp_BorderIcon",,wimp% 0� � 0�� 0�: 0�!� �Wimp_PollSaveFile(window%) 0� �file$ 0�@ wimp%!0=window% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 0� file$=$(wimp%!28) 0� Ȏ �file$,".") � 0� � 0 : 0�� key%=13 � 0�@ $(wimp%+4)="To save, drag the icon to a directory window" 0�+ ș "Wimp_ReportError",wimp%,16,task$ 1� 1 : 11 � key%=13 � �Event_SaveFile(file$,window%) 1$ � 1.&� key%=13 � ș"Wimp_CreateMenu",-1 18� SA%=� � �Wimp_CloseDown 1B� 1L: 1V � �Wimp_PollDragBox(window%) 1` �x%,y% 1j save%=window% 1t !wimp%=window% 1~# ș"Wimp_GetWindowState",,wimp% 1�- x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24 1� wimp%!4=0 1�! ș"Wimp_GetIconState",,wimp% 1� !wimp%=window% 1� wimp%!4=5 1�, wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12 1�. wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20 1� wimp%!24=0:wimp%!28=0 1�* wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF 1� ș"Wimp_DragBox",,wimp% 1�� 1�: 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%) 22 � 2<� 2F: 2P� �Wimp_PollSaveMessage 2Z�file$,window%,icon%,x%,y% 2d# ș"Wimp_GetPointerInfo",,wimp% 2n: window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4 2x> wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 2� file$=$(wimp%!28) 2�+ file$=�Wimp_GetFileFromPathname(file$) 2�ACE$=file$ 2� wimp%!20=window% 2� wimp%!24=icon% 2� wimp%!28=x%:wimp%!32=y% 2� wimp%!36=length% 2� wimp%!0=64 2� wimp%!12=0 2� wimp%!16=1 2� wimp%!40=&FFF 2� $(wimp%+44)=file$ 2�4 ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24 3� 3: 3� �Wimp_PollMessages 3"� file$ 3,,file$=�Wimp_GetStringAtAddress(wimp%+44) 36 Ȏ wimp%!16 � 3@ � 0 : finished%=� 3J � 1 : 3T � 2 : 3^/ � PROCWimp_IconPutText(save%,1,file$) 3hC wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp% 3r $(wimp%!28)=file$ 3|< wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0 3�' ș "Wimp_SetIconState",,wimp% 3�0 � PROCWimp_IconCaret(save%,1,LENfile$) 3�8 ș "Wimp_SetCaretPosition",save%,1,,,-1,�file$ 3�& �Event_SaveFile(file$,save%) 3�� SA%=� � �Wimp_CloseDown 3� � 3 3�G type$=�Wimp_FileType(wimp%!40) : �Event_LoadFile(file$,type$) 3� � 5 : 3�!� wimp%!40=&FBF � event%=18 � 3�wimp%!12=wimp%!8 3�+ș"XWimp_SendMessage",17,wimp%,wimp%!20 3�file$=�Wimp_GetFilePathName 3�type$=�Wimp_FileType(&FBF) 4 �Event_LoadFile(file$,type$) 4� 4 � &502 4&hw%=wimp%!32 40hi%=wimp%!36 4:�� hw%=-2 � �sendhelp(wimp%,"This is the !ADRBook icon.|MProgram written by Julian Samphire 1993.|MClick on icon to open the Address Book.|M") 4DȎ hw% � 4N� Save_Window% 4X\� hi%=0 � �sendhelp(wimp%,"Drag this icon onto a filer window to save the address data") 4bd� hi%=1 � �sendhelp(wimp%,"Enter the file name here that you want to save the address data as.") 4lE� hi%=2 � �sendhelp(wimp%,"Click here to save the address data.") 4v� Save2_Window% 4�T� hi%=0 � �sendhelp(wimp%,"Drag this icon onto a filer window to save the text") 4�\� hi%=1 � �sendhelp(wimp%,"Enter the file name here that you want to save the text as.") 4�=� hi%=2 � �sendhelp(wimp%,"Click here to save the text.") 4�� Info_Window% 4��� hi%=0 � hi%=1 � hi%=2 � hi%=3 � hi%=4 � hi%=5 � hi%=6 � hi%=7 � hi%=8 � hi%=9 � �sendhelp(wimp%,"Name : ADRBook|MPurpose : Store addresses and numbers|MAuthor : Julian Samphire|MVersion : 1.06 (11-Aug-93)") 4�� Search2_Window% 4�N� hi%=2 � �sendhelp(wimp%,"Click here to search using search parameters.") 4�=� hi%=3 � �sendhelp(wimp%,"Click here to cancel search.") 4�� Set_Window% 4�B� hi%=2 � �sendhelp(wimp%,"Click here to turn back the page.") 4�W� hi%=3 � �sendhelp(wimp%,"Click here to start searching using search papameters.") 4�?� hi%=0 � �sendhelp(wimp%,"Click here to hilight Surname.") 4�C� hi%=4 � �sendhelp(wimp%,"Click here to hilight Other Names.") 5?� hi%=6 � �sendhelp(wimp%,"Click here to hilight Address.") 5B� hi%=10 � �sendhelp(wimp%,"Click here to hilight Post Code.") 5B� hi%=12 � �sendhelp(wimp%,"Click here to hilight Area Code.") 5 I� hi%=14 � �sendhelp(wimp%,"Click here to hilight Telephone Number.") 5*>� hi%=16 � �sendhelp(wimp%,"Click here to hilight Notes.") 548� hi%=1 � �sendhelp(wimp%,"Enter the surname here.") 5><� hi%=5 � �sendhelp(wimp%,"Enter the other names here.") 5H?� hi%=7 � �sendhelp(wimp%,"Enter the address line 1 here.") 5R?� hi%=8 � �sendhelp(wimp%,"Enter the address line 2 here.") 5\?� hi%=9 � �sendhelp(wimp%,"Enter the address line 3 here.") 5f;� hi%=11 � �sendhelp(wimp%,"Enter the post code here.") 5p;� hi%=13 � �sendhelp(wimp%,"Enter the area code here.") 5zB� hi%=15 � �sendhelp(wimp%,"Enter the telephone number here.") 5�7� hi%=17 � �sendhelp(wimp%,"Enter the notes here.") 5�� Main_Window% 5�`� hi%=4 � �sendhelp(wimp%,"Surname icon.|MEnter the persons Surname here.|M"+SURNAME$(cur%)) 5�b� hi%=5 � �sendhelp(wimp%,"Others icon.|MEnter the persons Other names here.|M"+OTHERS$(cur%)) 5��� hi%=6 � hi%=7 � hi%=8 � �sendhelp(wimp%,"Address icons.|MEnter the persons Address here.|M"+ADD1$(cur%)+" "+ADD2$(cur%)+" "+ADD3$(cur%)) 5�e� hi%=9 � �sendhelp(wimp%,"Post Code icon.|MEnter the persons Post Code here.|M"+POSTCODE$(cur%)) 5�b� hi%=10 � �sendhelp(wimp%,"Area Code icon.|MEnter the persons Area Code here.|M"+AREA$(cur%)) 5�o� hi%=11 � �sendhelp(wimp%,"Telephone Number icon.|MEnter the persons Telephone Number here.|M"+TEL$(cur%)) 5�_� hi%=12 � �sendhelp(wimp%,"Notes icon.|MEnter the notes on the person here.|M"+NTS$(cur%)) 5�C� hi%=21 � �sendhelp(wimp%,"Click here to turn back the page.") 5�G� hi%=22 � �sendhelp(wimp%,"Click here to go to the first record.") 5�A� hi%=23 � �sendhelp(wimp%,"Click here to go back a record.") 5�@� hi%=24 � �sendhelp(wimp%,"Click here to dial the number.") 6A� hi%=33 � �sendhelp(wimp%,"Click here to sort the records.") 6H� hi%=25 � �sendhelp(wimp%,"Click here to set the search criteria.") 6J� hi%=26 � �sendhelp(wimp%,"Click here to delete the current record.") 6$=� hi%=27 � �sendhelp(wimp%,"Click here to add a record.") 6.E� hi%=28 � �sendhelp(wimp%,"Click here to go to the print page.") 68D� hi%=29 � �sendhelp(wimp%,"Click here to go forward a record.") 6BF� hi%=30 � �sendhelp(wimp%,"Click here to go to the last record.") 6L�� hi%=19 � hi%=20 � �sendhelp(wimp%,"This shows the ammount of records and current record.|MTotal records = "+�(tot%)+"|MCurrent record = "+�(cur%+1)) 6V� Title_Window% 6`z� hi%=2 � hi%=3 � hi%=4 � hi%=5 � hi%=8 � �sendhelp(wimp%,"Address Book|MBy Julian Samphire|M� Archimedes World 1993") 6jF� hi%=6 � �sendhelp(wimp%,"Click here to close the address book.") 6tB� hi%=7 � �sendhelp(wimp%,"Click here to turn over the page.") 6~� Print_Window% 6�a� hi%=7 � hi%=13 � hi%=16 � hi%=33 � �sendhelp(wimp%,"Click here for specified print range.") 6��� hi%=28 � hi%=29 � �sendhelp(wimp%,"This shows the current name of the person to be printed.|M"+SURNAME$(pcur%)+"|M"+OTHERS$(pcur%)) 6�J� hi%=30 � �sendhelp(wimp%,"Click here to go to the previous person.") 6�F� hi%=31 � �sendhelp(wimp%,"Click here to go to the next person.") 6�C� hi%=10 � �sendhelp(wimp%,"Click here to turn back the page.") 6�D� hi%=17 � �sendhelp(wimp%,"Click here to print selected data.") 6�<� hi%=21 � �sendhelp(wimp%,"Click here to set Surname.") 6�@� hi%=22 � �sendhelp(wimp%,"Click here to set Other Names.") 6�<� hi%=23 � �sendhelp(wimp%,"Click here to set Address.") 6�>� hi%=24 � �sendhelp(wimp%,"Click here to set Post Code.") 6�>� hi%=25 � �sendhelp(wimp%,"Click here to set Area Code.") 6�E� hi%=26 � �sendhelp(wimp%,"Click here to set Telephone Number.") 7 :� hi%=27 � �sendhelp(wimp%,"Click here to set Notes.") 7 � 7 � 7� 7(: 72&� �Wimp_GetStringAtAddress(array%) 7< �s$:s$="" 7F<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�: 7P=s$ 7Z: 7d#� �Wimp_GetFileFromPathname(f$) 7nȎ �f$,".") � 7x � 0 :=f$ 7�7 :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,"."))) 7�� 7�: 7�� �Wimp_FileType(type%) 7�Ȏtype%� 7��&FFF:="Text" 7��&FFD:="Data" 7��&FFB:="Basic" 7��&FF9:="Sprite" 7��&FED:="Palette" 7��&FEC:="Template" 7��&AFF:="Draw" 7��&1000:="Folder" 8�&2000:="Application" 8=�~(type%) 8� 8": 8,� �read 86� cur%<tot% � icon%=27 � 8@1SURNAME$(cur%)=�Wimp_IconText(Main_Window%,4) 8J*SURNAME$(cur%)=�Change(SURNAME$(cur%)) 8T0OTHERS$(cur%)=�Wimp_IconText(Main_Window%,5) 8^(OTHERS$(cur%)=�Change(OTHERS$(cur%)) 8h.ADD1$(cur%)=�Wimp_IconText(Main_Window%,6) 8r.ADD2$(cur%)=�Wimp_IconText(Main_Window%,7) 8|.ADD3$(cur%)=�Wimp_IconText(Main_Window%,8) 8�$ADD1$(cur%)=�Change(ADD1$(cur%)) 8�$ADD2$(cur%)=�Change(ADD2$(cur%)) 8�$ADD3$(cur%)=�Change(ADD3$(cur%)) 8�2POSTCODE$(cur%)=�Wimp_IconText(Main_Window%,9) 8�/AREA$(cur%)=�Wimp_IconText(Main_Window%,10) 8�.TEL$(cur%)=�Wimp_IconText(Main_Window%,11) 8�.NTS$(cur%)=�Wimp_IconText(Main_Window%,12) 8�"NTS$(cur%)=�Change(NTS$(cur%)) 8�� 8�� 8�: 8� � �update 8��menuupdate 9%�Wimp_IconUpdate(Main_Window%,20) 94�Wimp_IconPutText(Main_Window%,4,SURNAME$(cur%)) 93�Wimp_IconPutText(Main_Window%,5,OTHERS$(cur%)) 9&1�Wimp_IconPutText(Main_Window%,6,ADD1$(cur%)) 901�Wimp_IconPutText(Main_Window%,7,ADD2$(cur%)) 9:1�Wimp_IconPutText(Main_Window%,8,ADD3$(cur%)) 9D5�Wimp_IconPutText(Main_Window%,9,POSTCODE$(cur%)) 9Nm� AREA$(cur%)="" � �Wimp_IconPutText(Main_Window%,10,"") � �Wimp_IconPutText(Main_Window%,10,AREA$(cur%)) 9Xk� TEL$(cur%)="" � �Wimp_IconPutText(Main_Window%,11,"") � �Wimp_IconPutText(Main_Window%,11,TEL$(cur%)) 9b1�Wimp_IconPutText(Main_Window%,12,NTS$(cur%)) 9lE�Wimp_IconCaret(Main_Window%,4,�(�Wimp_IconText(Main_Window%,4))) 9v� 9�: 9� � �delete 9�� A=cur% � tot% 9�SURNAME$(A)=SURNAME$(A+1) 9�OTHERS$(A)=OTHERS$(A+1) 9�ADD1$(A)=ADD1$(A+1) 9�ADD2$(A)=ADD2$(A+1) 9�ADD3$(A)=ADD3$(A+1) 9�POSTCODE$(A)=POSTCODE$(A+1) 9�AREA$(A)=AREA$(A+1) 9�TEL$(A)=TEL$(A+1) 9�NTS$(A)=NTS$(A+1) 9��A :tot%-=1 :� :: : � �menuupdate :*� tot%=0 � :4"�Wimp_MenuDisable(Bar_Menu%,2) :>$�Wimp_MenuDisable(Title_Menu%,3) :H$�Wimp_MenuDisable(Main_Menu%,12) :R� :\!�Wimp_MenuEnable(Bar_Menu%,2) :f#�Wimp_MenuEnable(Title_Menu%,3) :p#�Wimp_MenuEnable(Main_Menu%,12) :z� :�� :�: :���tonedial(A$) :��A$="" � � :�ș"Hourglass_On" :�Ƞ2 :�ȡ1,"WaveSynth-Beep" :�ȡ2,"WaveSynth-Beep" :��I% :� �I%=1��A$ :��tone(��A$,I%)) :� �delay(6) :�� ;ș"Hourglass_Smash" ;� ;: ;$��tone(I%) ;. I%-=48 ;8� I%<0 � I%>9 � � ;B� 1,-15,tone%(I%,0),100 ;L� 2,-15,tone%(I%,1),100 ;V�delay(10) ;` � 1,0,0,0 ;j � 2,0,0,0 ;t� ;~: ;���delay(I%) ;��T% ;�T%=� ;� ���>T%+I% ;�� ;�: ;�� �updatep ;�7�Wimp_IconPutText(Print_Window%,28,SURNAME$(pcur%)) ;�6�Wimp_IconPutText(Print_Window%,29,OTHERS$(pcur%)) ;�� ;�: ;�� �able <