Home » Archimedes archive » Acorn User » AU 1998-06 A.adf » Regulars » MikeC/!Organiser/Org
MikeC/!Organiser/Org
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1998-06 A.adf » Regulars |
Filename: | MikeC/!Organiser/Org |
Read OK: | ✔ |
File size: | 87DB bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM Personal Organiser AM-399C 20REM Version 1.0 By Mike Cook 30REM All rights reserved 40ON ERROR PROCerrorbox 50 60DIM taskid%4,intmess% 20:$taskid%="TASK" 70intmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0 80SYS "Wimp_Initialise",300,!taskid%,"Organiser",intmess% TO version%,taskhand% 90DIM q% &600,qc% 80,temp% 512,buffers% 512,menu% 256,Mmenu% 512,cb% 18,qw% &300,qn% &300, Sw% &300, Ew% &300 100DIM Wn0% &700, Wn1% &500, Wn2% &500, Wn3% &500,RXw% 500, Wn%(3),wopen%(3) 110DIM SW0% 700,SW1% 512,SW2% 612, SW3% 512,tblock% 24, TypeM% 200, PayM% 200 120DIM Commenu% 512, Comenu% 256,RCW% 500, EsName% 556 130DIM IsName% 556, Wmenu% 512,Smenu% 256,Imenu% 256, TextWarn% 100, ww% 256 140DIM SPoint%(20,3),IX%(20,3),IY%(20,3),IX1%(20,3),IY1%(20,3) 150MaxRec%=100 : REM alter this to change the maximum number of records 160DIM Tel$(MaxRec%,5),Mem$(MaxRec%),ToDo$(MaxRec%),Shed$(MaxRec%,5),Spm%(MaxRec%) 170DIM Exp$(MaxRec%,5),Exp%(MaxRec%,2),Etype$(8),Epay$(4) 180SYS "Wimp_OpenTemplate",,"<ORG$Dir>.Templates" 190ON ERROR SYS "Wimp_CloseTemplate":PROCerrorbox 200SYS "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0 210SYS "Wimp_CreateWindow",,q% TO info% 220SYS "Wimp_LoadTemplate",,q%,IsName%+4,IsName%+556,-1,"save_script",0 230SYS "Wimp_CreateWindow",,q% TO saveW% 240IsName%!0=saveW%:SaveIcon%=!(q%+88+20):Sname%=!(q%+88+20+32) 250SYS "Wimp_LoadTemplate",,q%,EsName%+4,EsName%+556,-1,"Export",0 260SYS "Wimp_CreateWindow",,q% TO exportW% 270EsName%!0=exportW%:Ename%=!(q%+88+20+32) 280SYS "Wimp_LoadTemplate",,RXw%+4,RCW%,RCW%+500,-1,"rx",0 290SYS "Wimp_CreateWindow",,RXw%+4 TO rx1W% 300RXw%!0=rx1W% 310 320SYS "Wimp_LoadTemplate",,Wn0%+4,SW0%,SW0%+700,-1,"Telephone",0 330Wn0%!28=-1 340FOR A%=0 TO 13 350SPoint%(A%,0)=!(Wn0%+4+88+20+32*A%) 360IX%(A%,0)=!(Wn0%+4+88+32*A%):IY%(A%,0)=!(Wn0%+4+88+4+32*A%) 370IX1%(A%,0)=!(Wn0%+4+88+8+32*A%):IY1%(A%,0)=!(Wn0%+4+88+12+32*A%) 380NEXT 390SYS "Wimp_CreateWindow",,Wn0%+4 TO telW% 400Wn0%!0=telW%:Wn0%!28=-1 410 420SYS "Wimp_LoadTemplate",,Wn1%+4,SW1%,SW1%+512,-1,"Memo",0 430Wn1%!28=-1 440FOR A%=0 TO 13 450SPoint%(A%,1)=!(Wn1%+4+88+20+32*A%) 460IX%(A%,1)=!(Wn1%+4+88+32*A%):IY%(A%,1)=!(Wn1%+4+88+4+32*A%) 470IX1%(A%,1)=!(Wn1%+4+88+8+32*A%):IY1%(A%,1)=!(Wn1%+4+88+12+32*A%) 480NEXT 490SYS "Wimp_CreateWindow",,Wn1%+4 TO memoW% 500Wn1%!0=memoW%:Wn1%!28=-1 510 520SYS "Wimp_LoadTemplate",,Wn2%+4,SW2%,SW2%+612,-1,"Expenses",0 530Wn2%!28=-1 540FOR A%=0 TO 17 550SPoint%(A%,2)=!(Wn2%+4+88+20+32*A%) 560IX%(A%,2)=!(Wn2%+4+88+32*A%):IY%(A%,2)=!(Wn2%+4+88+4+32*A%) 570IX1%(A%,2)=!(Wn2%+4+88+8+32*A%):IY1%(A%,2)=!(Wn2%+4+88+12+32*A%) 580NEXT 590SYS "Wimp_CreateWindow",,Wn2%+4 TO expW% 600Wn2%!0=expW%:Wn2%!28=-1 610 620SYS "Wimp_LoadTemplate",,Wn3%+4,SW3%,SW3%+512,-1,"Schedule",0 630Wn3%!28=-1 640FOR A%=0 TO 14 650SPoint%(A%,3)=!(Wn3%+4+88+20+32*A%) 660IX%(A%,3)=!(Wn3%+4+88+32*A%):IY%(A%,3)=!(Wn3%+4+88+4+32*A%) 670IX1%(A%,3)=!(Wn3%+4+88+8+32*A%):IY1%(A%,3)=!(Wn3%+4+88+12+32*A%) 680NEXT 690SYS "Wimp_CreateWindow",,Wn3%+4 TO shedW% 700Wn3%!0=shedW%:Wn3%!28=-1 710Wn%(0)=Wn0%:Wn%(1)=Wn1%:Wn%(2)=Wn2%:Wn%(3)=Wn3% 720 730SYS "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0 740q%!108=TextWarn%:q%!112=-1:q%!116=300 750XQ%=q%!8-q%!0:YQ%=q%!12-q%!4 760SYS "Wimp_CreateWindow",,q% TO warningW% 770SYS "Wimp_CloseTemplate" 780smpicon%=FNicon 790wopen%(0)=FALSE:wopen%(1)=FALSE:wopen%(2)=FALSE:wopen%(3)=FALSE:warnOn%=FALSE 800Stype$="0":Ntel%=1:Ctel%=1 810Nmem%=1:Cmem%=1 820Ntodo%=1:Ctodo%=1 830Nshed%=1:Cshed%=1 840Nexp%=1:Cexp%=1 850Memo%=TRUE:Rd%=FALSE:Rd1%=0:Rd2%=0 860RdUD%=FALSE:RX%=FALSE 870Export%=TRUE:PROC_PutName("Text") 880Export%=FALSE:PROC_PutName("Data") 890Abort%=FALSE 900PROCinit 910ON ERROR PROCerrorbox 920 930PROCsetupmenu 940 950REPEAT 960 SYS "Wimp_Poll",0,q% TO A% 970 CASE A% OF 980 WHEN 0:PROC_Null 990 WHEN 1:PROC_doWindow 1000 WHEN 2:SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%: SYS "Wimp_OpenWindow",,q% 1010 WHEN 3:PROC_close 1020 WHEN 6:PROC_do_click(q%) 1030 WHEN 7:PROC_PutDown(q%) 1040 WHEN 8:PROC_KeyPress 1050 WHEN 9:PROC_SORT_Menu 1060 WHEN 17,18:PROCreceive(q%) 1070 ENDCASE 1080 UNTIL FALSE 1090 1100END 1110 1120DEF PROC_Null 1130LOCAL A%,B%,C%,D%,X%,Y%,but% 1140MOUSE A%,B%,C% 1150 1160IF RdUD% AND C%=0 THEN 1170IF Rd2%=0 THEN $SPoint%(0,Rd1%)="down" ELSE $SPoint%(1,Rd1%)="up" 1180SYS"Wimp_ForceRedraw",!Wn%(Rd1%),IX%(Rd2%,Rd1%),IY%(Rd2%,Rd1%),IX1%(Rd2%,Rd1%),IY1%(Rd2%,Rd1%) 1190RdUD%=FALSE 1200ENDIF 1210 1220IF RX% THEN 1230PROCrxINIT 1240PROCempty 1250REPEAT 1260MOUSE A%,B%,C% 1270UNTIL C%=0 1280SYS"Hourglass_Start",10 1290REPEAT 1300SYS"OS_SerialOp",4,256 TO ,B% ;C% 1310C%=C% AND &2 1320IF C%=0 THEN PROC_gath(B%) 1330MOUSE X%,Y%,but% 1340UNTIL but%<>0 OR B%=&F8 OR Abort% 1350IF B%=&F8 THEN PROCtidy 1360SYS"Hourglass_Off" 1370RX%=FALSE 1380SYS "Wimp_CloseWindow",,RXw% 1390ENDIF 1400ENDPROC 1410 1420DEF FN_spath(n$) 1430WHILE INSTR(n$,".") 1440n$=RIGHT$(n$,LEN(n$)-1) 1450ENDWHILE 1460IF LEN(n$)>10 THEN n$=RIGHT$(n$,10) 1470=n$ 1480 1490DEF PROC_GetName 1500IF Export% THEN fn$=$Ename% ELSE fn$=$Sname% 1510ENDPROC 1520 1530DEF PROC_SORT_Menu 1540CASE IconMenu% OF 1550 WHEN 0: IF !q%=5 THEN PROCdie ELSE PROC_Open((!q%)-1) 1560 WHEN 1: CASE !q% OF 1570 WHEN 3: Mmenu%!100=1:Mmenu%!124=2 1580 WHEN 4: Mmenu%!100=0:Mmenu%!124=3 1590 WHEN 5: Mmenu%!148=1:Mmenu%!172=2 1600 WHEN 6: Mmenu%!148=0:Mmenu%!172=3 1610 WHEN 7: PROCdie 1620 ENDCASE 1630 WHEN 2: $SPoint%(13,2)=Etype$((!q%)+1) 1640 SYS"Wimp_ForceRedraw",!Wn%(2),IX%(13,2),IY%(13,2),IX1%(13,2),IY1%(13,2) 1650 Exp%(Cexp%,0)=(!q%)+1 1660 WHEN 3: $SPoint%(14,2)=Epay$((!q%)+1) 1670 SYS"Wimp_ForceRedraw",!Wn%(2),IX%(14,2),IY%(14,2),IX1%(14,2),IY1%(14,2) 1680 Exp%(Cexp%,1)=(!q%)+1 1690ENDCASE 1700ENDPROC 1710 1720DEF PROC_close 1730IF q%!0=warningW% THEN warnOn%=FALSE 1740IF q%!0=!Wn0% THEN wopen%(0)=FALSE:SYS"Wimp_GetWindowInfo",,Wn0% 1750IF q%!0=!Wn1% THEN wopen%(1)=FALSE:SYS"Wimp_GetWindowInfo",,Wn1% 1760IF q%!0=!Wn2% THEN wopen%(2)=FALSE:SYS"Wimp_GetWindowInfo",,Wn2% 1770IF q%!0=!Wn3% THEN wopen%(3)=FALSE:SYS"Wimp_GetWindowInfo",,Wn3% 1780SYS "Wimp_CloseWindow",,q% 1790ENDPROC 1800 1810DEF PROC_do_click(q%) 1820LOCAL A%,B% 1830i%=q%!16 1840CASE q%!12 OF 1850WHEN warningW%: q%!0=warningW% :PROC_close 1860WHEN saveW%: Export%=FALSE: PROC_DoSave(i%) 1870WHEN exportW%: Export%=TRUE: PROC_DoSave(i%) 1880WHEN -2: REM Look first at Icon Bar Click 1890 IF q%!16=smpicon% THEN 1900 IF q%!8=2 OR q%!8=4 THEN SYS"Wimp_CreateMenu",,menu%,q%!0-74,340:IconMenu%=0 1910 REM IF q%!8=4 THEN PROC_Open 1920 ENDIF 1930 1940 OTHERWISE 1950 IF q%!8=4 THEN PROC_WinClick(q%!12) 1960 A%=q%!0-96:B%=q%!4 1970 IF q%!8=2 THEN PROCsicon(q%!12):SYS"Wimp_CreateMenu",,Mmenu%,A%,B%:IconMenu%=1 1980ENDCASE 1990ENDPROC 2000 2010DEF PROCsicon(A%) 2020LOCAL T$,D$,te% 2030CASE A% OF 2040WHEN telW%: $SaveIcon%="file_05A":Stype$="05A":D$=TelFile$:PROCupT 2050WHEN memoW%: $SaveIcon%="file_05B":Stype$="05B":PROCupM 2060 IF Memo%=FALSE THEN D$=ToFile$ ELSE:D$=MemFile$ 2070WHEN expW%: $SaveIcon%="file_05C":Stype$="05C":D$=ExpFile$:PROCupE 2080WHEN shedW%: $SaveIcon%="file_05D":Stype$="05D":D$=ShedFile$:PROCupS 2090ENDCASE 2100Export%=FALSE:PROC_PutName(D$):Export%=TRUE:PROC_PutName(D$+"T") 2110current%=FNwhat(A%) 2120ENDPROC 2130 2140DEF FNwhat(A%) 2150LOCAL B% 2160CASE A% OF 2170WHEN telW%: B%=0 2180WHEN memoW%: B%=1 2190WHEN expW%: B%=2 2200WHEN shedW%: B%=3 2210ENDCASE 2220=B% 2230 2240DEF PROC_WinClick(w%) 2250LOCAL A%,B%,Y% 2260Y%=q%!4 2270REM Do the action for a window click 2280CASE w% OF 2290WHEN telW%: CASE i% OF 2300 WHEN 1: PROCupT: PROCupTel(1): PROCpb(0,1) 2310 WHEN 0: PROCupT: PROCupTel(-1): PROCpb(0,0) 2320 WHEN 2: IF Ntel%<MaxRec% THEN PROCnewT 2330 PROCupT: PROCupTel(1) :PROCupTn 2340 WHEN 3: PROCcT 2350 WHEN 4: PROCupT:PROCTXtel 2360 WHEN 5: RX%=TRUE:PROCopenRX(0) 2370 ENDCASE 2380 2390WHEN memoW%: 2400 CASE i% OF 2410 WHEN 0: PROCupM: PROCmup(-1) : PROCupMbut(1): PROCpb(1,0) 2420 WHEN 1: PROCupM: PROCmup(1) : PROCupMbut(1): PROCpb(1,1) 2430 WHEN 2: PROCupM: PROCnewm(1) : PROCupMbut(0) 2440 WHEN 3: PROCcM 2450 WHEN 4: PROCupM 2460 IF Memo% THEN PROCTXmem ELSE PROCTXtodo 2470 WHEN 5: RX%=TRUE 2480 IF Memo% THEN PROCopenRX(2) ELSE PROCopenRX(3) 2490 WHEN 9,10: PROCupM : Memo%=NOT(Memo%): PROCnewm(0) : PROCupMbut(1) 2500 ENDCASE 2510WHEN expW%: PROC_Trans(expW%) 2520 PROCupE 2530 CASE i% OF 2540 WHEN 0: PROCupE:PROCupExp(-1):PROCpb(2,0) 2550 WHEN 1: PROCupE:PROCupExp(1): PROCpb(2,1) 2560 WHEN 2: IF Nexp%<MaxRec% THEN PROCnewE 2570 PROCupExp(0) 2580 WHEN 3: PROCcE 2590 WHEN 4: PROCupE:PROCTXexp 2600 WHEN 5: RX%=TRUE:PROCopenRX(5) 2610 WHEN 15: IconMenu%=FALSE:SYS"Wimp_CreateMenu",,Commenu%,IX1%(15,2)+xo%-10,Y%:IconMenu%=2 2620 WHEN 16: IconMenu%=FALSE:SYS"Wimp_CreateMenu",,Comenu%,IX1%(16,2)+xo%-10,Y%:IconMenu%=3 2630 WHEN 17: Exp%(Cexp%,2)=Exp%(Cexp%,2) EOR 1 2640 IF Exp%(Cexp%,2)=0 THEN $SPoint%(17,2)="no" ELSE $SPoint%(17,2)="yes" 2650 SYS"Wimp_ForceRedraw",!Wn%(2),IX%(17,2),IY%(17,2),IX1%(17,2),IY1%(17,2) 2660 ENDCASE 2670WHEN shedW%: PROCupS 2680 CASE i% OF 2690 WHEN 0: PROCupS: PROCupShed(-1): PROCpb(3,0) 2700 WHEN 1: PROCupS: PROCupShed(1): PROCpb(3,1) 2710 WHEN 2: PROCupS 2720 IF Nshed%<MaxRec% THEN PROCnewS 2730 PROCupShed(0) 2740 WHEN 3: PROCcShed 2750 WHEN 4: PROCupS:PROCTXshed 2760 WHEN 5: RX%=TRUE:PROCopenRX(1) 2770 WHEN 13: Spm%(Cshed%)=NOT(Spm%(Cshed%)):PROC_am 2780 WHEN 14: Spm%(Cshed%)=NOT(Spm%(Cshed%)):PROC_am 2790 ENDCASE 2800ENDCASE 2810ENDPROC 2820 2830DEF PROC_Open(A%) 2840currentW%=A% 2850REM OPEN UP WINDOW HERE 2860IF wopen%(currentW%) THEN 2870q%!0=!Wn%(currentW%) 2880SYS"Wimp_GetWindowState",,q% 2890 IF q%!28<>-1 THEN q%!28=-1: SYS "Wimp_OpenWindow",,q% 2900ELSE 2910SYS "Wimp_OpenWindow",,Wn%(currentW%) 2920wopen%(currentW%)=TRUE 2930ENDIF 2940ENDPROC 2950 2960DEFPROCsetupmenu 2970LOCAL m% 2980 2990$menu%="Organiser" 3000menu%?12=7 3010menu%?13=2 3020menu%?14=7 3030menu%?15=0 3040menu%!16=128 3050menu%!20=40 3060menu%!24=0 3070m%=menu%+28 3080m%!0=0 3090m%!4=info% 3100m%!8=(7<<24)OR %10001 3110$(m%+12)="Info" 3120 3130m%+=24 3140m%!0=0 3150m%!4=0 3160m%!8=(7<<24)OR %10001 3170$(m%+12)="Telephone" 3180 3190m%+=24 3200m%!0=0 3210m%!4=0 3220m%!8=(7<<24)OR %10001 3230$(m%+12)="Memo" 3240 3250m%+=24 3260m%!0=0 3270m%!4=0 3280m%!8=(7<<24)OR %10001 3290$(m%+12)="Expenses" 3300 3310m%+=24 3320m%!0=0 3330m%!4=0 3340m%!8=(7<<24)OR %10001 3350$(m%+12)="Schedule" 3360 3370m%+=24 3380m%!0=&80 3390m%!4=0 3400m%!8=(7<<24)OR %10001 3410$(m%+12)="Quit" 3420 3430$Mmenu%="Organiser" 3440Mmenu%?12=7 3450Mmenu%?13=2 3460Mmenu%?14=7 3470Mmenu%?15=0 3480Mmenu%!16=128 3490Mmenu%!20=40 3500Mmenu%!24=0 3510m%=Mmenu%+28 3520m%!0=0 3530m%!4=info% 3540m%!8=(7<<24)OR %10001 3550$(m%+12)="Info" 3560 3570m%+=24 3580m%!0=0 3590m%!4=saveW% 3600m%!8=(7<<24)OR %10001 3610$(m%+12)="Save" 3620 3630m%+=24 3640m%!0=2 3650m%!4=exportW% 3660m%!8=(7<<24)OR %10001 3670$(m%+12)="Export" 3680 3690m%+=24 3700m%!0=0 3710m%!4=0 3720m%!8=(7<<24)OR %10001 3730$(m%+12)="TX one" 3740 3750m%+=24 3760m%!0=3 3770m%!4=0 3780m%!8=(7<<24)OR %10001 3790$(m%+12)="TX all" 3800 3810m%+=24 3820m%!0=1 3830m%!4=0 3840m%!8=(7<<24)OR %10001 3850$(m%+12)="RX new" 3860 3870m%+=24 3880m%!0=2 3890m%!4=0 3900m%!8=(7<<24)OR %10001 3910$(m%+12)="RX merge" 3920 3930m%+=24 3940m%!0=&80 3950m%!4=0 3960m%!8=(7<<24)OR %10001 3970$(m%+12)="Quit" 3980 3990ENDPROC 4000 4010DEF PROC_DoSave(i%) 4020IF i%=0 THEN 4030 DragOn%=TRUE 4040 SYS "Wimp_GetPointerInfo",,q% 4050 IF Export% THEN PROCdragicon(q%!0,q%!4,exportW%,i%) ELSE PROCdragicon(q%!0,q%!4,saveW%,i%) 4060 ENDIF 4070 IF i%=2 THEN 4080 PROC_GetName 4090 IF INSTR(fn$,":") THEN PROC_Save ELSE PROC_setupW("Drag the Icon into a Directory") 4100 SYS "Wimp_CreateMenu",,-1 4110 ENDIF 4120ENDPROC 4130 4140DEF PROCreceive(q%) 4150LOCAL A% 4160A%=q%!16 4170CASE A% OF 4180WHEN 0:PROCdie 4190WHEN 2:IF q%!12=saveref% THEN 4200 secureF%=q%!36 4210 fn$=FNsget(q%+44):PROC_Save 4220 q%!12=saveref%:q%!16=3:q%!0=256:q%!40=&044 4230 q%!20=messh%:q%!24=messi%:q%!28=messx%:q%!32=messy% 4240 SYS "Wimp_SendMessage",17,q%,messh%,messi% 4250 ENDIF 4260 4270WHEN 3:n$=FNsget(q%+44) 4280 sendth%=q%!4:icontype%=q%!40 4290 myref%=q%!8 4300 IF ((q%!20=-2 AND q%!24=smpicon%) OR (q%!20=telW%)) AND icontype%=&5A THEN 4310 PROCloadT(n$) 4320 IF q%!20=-2 AND wopen%(0)=FALSE THEN PROC_Open(0): PROC_Dack 4330 Export%=FALSE:PROC_PutName(n$):Stype$="05A" 4340 Export%=TRUE:PROC_PutName(n$+"T"):TelFile$=n$ 4350 ENDIF 4360 4370 IF ((q%!20=-2 AND q%!24=smpicon%) OR (q%!20=memoW%)) AND icontype%=&5B THEN 4380 PROCloadM(n$) 4390 IF q%!20=-2 AND wopen%(1)=FALSE THEN PROC_Open(1):PROC_Dack 4400 Export%=FALSE:PROC_PutName(n$):Stype$="05B" 4410 Export%=TRUE:PROC_PutName(n$+"T") 4420 IF Memo% THEN MemFile$=n$ ELSE ToFile$=n$ 4430 ENDIF 4440 4450 IF ((q%!20=-2 AND q%!24=smpicon%) OR (q%!20=expW%)) AND icontype%=&5C THEN 4460 PROCloadE(n$) 4470 IF q%!20=-2 AND wopen%(2)=FALSE THEN PROC_Open(2):PROC_Dack 4480 Export%=FALSE:PROC_PutName(n$):Stype$="05C" 4490 Export%=TRUE:PROC_PutName(n$+"T"):ExpFile$=n$ 4500 ENDIF 4510 4520 IF ((q%!20=-2 AND q%!24=smpicon%) OR (q%!20=shedW%)) AND icontype%=&5D THEN 4530 PROCloadS(n$) 4540 IF q%!20=-2 AND wopen%(3)=FALSE THEN PROC_Open(3):PROC_Dack 4550 Export%=FALSE:PROC_PutName(n$):Stype$="05D" 4560 Export%=TRUE:PROC_PutName(n$+"T"):ShedFile$=n$ 4570 ENDIF 4580 4590WHEN &502: CASE TRUE OF 4600 WHEN q%!32=-2 AND q%!36=smpicon%:mes$="This is the Orginiser icon.|MTransfer data with your AM-399C" 4610 OTHERWISE:mes$="" 4620 ENDCASE 4630 IF mes$<>"" THEN 4640 q%!12=q%!8 4650 $(q%+20)=mes$+CHR$0 4660 q%!0=(20+LENmes$+4)AND NOT 3 4670 q%!16=&503 4680 SYS "Wimp_SendMessage",18,q%,q%!4 4690ENDCASE 4700ENDPROC 4710 4720DEF PROC_Dack 4730sendth%=q%!4 4740myref%=q%!8 4750SYS "Wimp_GetPointerInfo",,q%+8 4760q%!28=q%!8 4770q%!32=q%!12 4780q%!0=(44+LENn$+4)AND NOT 3 4790q%!12=myref% 4800q%!16=4 4810q%!36=-1 4820q%!40=&FF9 4830$(q%+44)=n$+CHR$0 4840SYS "Wimp_SendMessage",17,q%,sendth% 4850ENDIF 4860ENDPROC 4870 4880DEFFNicon 4890q%!0=-1 4900q%!4=0 4910q%!8=10 : REM Y DIRECTION 4920q%!12=70 : REM X DIRECTION 4930q%!16=96 4940q%!20=&2002 4950$(q%+24)="!Organiser" 4960SYS "Wimp_CreateIcon",,q% TO icon% 4970=icon% 4980 4990DEF PROC_setupW(t$) 5000!qw%=warningW%:qw%!4=200:qw%!8=200:qw%!12=200+XQ%:qw%!16=200+YQ%:qw%!20=0:qw%!24=0:qw%!28=-1 5010$TextWarn%=t$ 5020TextWarn%?LEN(t$)=0 5030warnOn%=TRUE 5040SYS "Wimp_OpenWindow",,qw% 5050ENDPROC 5060 5070DEF PROCerrorbox 5080REM PROCdie 5090SYS "Wimp_DragBox",,-1 5100!buffers%=ERR:$(buffers%+4)=REPORT$+" at line "+STR$ERL+CHR$0 5110SYS "Wimp_ReportError",buffers%,1,"Organiser" 5120PROCdie 5130ENDPROC 5140 5150DEFPROCdie 5160SYS "Wimp_CloseDown",taskhand%,!taskid% 5170END 5180ENDPROC 5190 5200DEF PROCdragicon(mousex%,mousey%,handle%,icon%) 5210LOCAL bx%,by%,ix0%,iy0%,ix1%,iy1% 5220PROCgetw(handle%) 5230PROCgeti(handle%,icon%) 5240!q%=handle%:q%!4=5 5250q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1% 5260q%!24=q%!8-mousex%:q%!28=q%!12-mousey% 5270SYS "Wimp_DragBox",,q% 5280SFLAG%=TRUE 5290ENDPROC 5300 5310DEF PROCgetw(handle%) 5320!q%=handle%:SYS "Wimp_GetWindowState",,q%:PROCinfo(q%+4) 5330ENDPROC 5340 5350DEF PROCgeti(h%,i%) 5360!q%=h%:q%!4=i%:SYS "Wimp_GetIconState",,q% 5370ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20 5380iflags%=q%!24:idata%=q%+28 5390ENDPROC 5400 5410DEF PROCinfo(p%) 5420LOCAL x0%,y0% 5430x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12 5440scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28 5450bx%=x0%-scx%:by%=y1%-scy% 5460ENDPROC 5470 5480DEF PROC_Save 5490LOCAL ch%,pp% 5500F%=OPENOUT(fn$) 5510CASE current% OF 5520WHEN 0: PROCsaveT:TelFile$=fn$ 5530WHEN 1: PROCsaveM: IF Memo% THEN MemFile$=fn$ ELSE ToFile$=fn$ 5540WHEN 2: PROCsaveE:ExpFile$=fn$ 5550WHEN 3: PROCsaveS:ShedFile$=fn$ 5560ENDCASE 5570CLOSE#F% 5580IF Export% THEN OSCLI("SETTYPE "+fn$+" fff") ELSE OSCLI("SETTYPE "+fn$+" "+Stype$) 5590PROC_PutName(fn$) 5600ENDPROC 5610 5620DEF PROC_PutName(p$) 5630IF Export% THEN $Ename%=p$ ELSE $Sname%=p$ 5640ENDPROC 5650 5660DEF PROC_PutDown(q%) 5670IF DragOn% THEN 5680REM SYS "Wimp_GetPointerInfo",,q% 5690PROC_GetName 5700SYS "Wimp_GetPointerInfo",,q% 5710messh%=q%!12:messi%=q%!16:messx%=q%!0:messy%=q%!4 5720IF INSTR( fn$,":") THEN fn$=FN_spath(fn$) 5730$(q%+44)=fn$ 5740?(q%+44+LEN(fn$))=0 5750q%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=1024:q%!40=&044 5760q%!0=56:q%!12=0:q%!16=1 5770SYS "Wimp_SendMessage",17,q%,messh%,messi% 5780saveref%=q%!8 5790SYS "Wimp_CreateMenu",,-1 5800DragOn%=FALSE 5810ENDIF 5820ENDPROC 5830 5840DEF PROC_KeyPress 5850LOCAL C%,D% 5860IF q%!24=13 THEN 5870CASE q%!0 OF 5880WHEN saveW%: Export%=FALSE: PROC_DoSave(2) 5890WHEN exportW%: Export%=TRUE: PROC_DoSave(2) 5900WHEN telW% : PROCupT 5910 SYS"Wimp_GetCaretPosition",,tblock% 5920 SYS"Wimp_SetCaretPosition",-1,-1,0,0,-1,-1,0 5930 C%=tblock%!4 5940 C%+=1 5950 IF C%>13 THEN C%=8:D%=1 ELSE D%=0 5960 tblock%!4=C% 5970 SYS"Wimp_SetCaretPosition",telW%,C%,tblock%!8,IY%(C%,0)+6,tblock%!16,LEN(Tel$(Ctel%+D%,C%-8)) 5980 IF Ctel%=Ntel% AND D%=1 AND Ntel%<MaxRec% THEN PROCnewT 5990 IF D%<>0 THEN PROCupTel(D%) 6000 6010WHEN memoW%: PROCupM 6020 IF Memo% THEN C%=Cmem%:D%=Nmem% ELSE C%=Ctodo%:D%=Ntodo% 6030 IF C%=D% THEN PROCnewm(1):PROCupMbut(0) ELSE PROCmup(1): PROCupMbut(1) 6040WHEN shedW%: PROCupS 6050 SYS"Wimp_GetCaretPosition",,tblock% 6060 C%=tblock%!4 6070 C%+=1 6080 IF C%>12 THEN C%=8:D%=1 ELSE D%=0 6090 tblock%!4=C% 6100 SYS"Wimp_SetCaretPosition",shedW%,C%,tblock%!8,IY%(C%,3)+6,tblock%!16,LEN(Shed$(Cshed%+D%,C%-8)) 6110 IF Cshed%=Nshed% AND D%=1 AND Nshed%<MaxRec% THEN PROCnewS 6120 IF D%<>0 THEN PROCupShed(D%) 6130 6140WHEN expW%: PROCupE 6150 SYS"Wimp_GetCaretPosition",,tblock% 6160 C%=tblock%!4 6170 C%+=1 6180 IF C%>12 THEN C%=8:D%=1 ELSE D%=0 6190 SYS"Wimp_SetCaretPosition",expW%,C%,tblock%!8,IY%(C%,2)+6,tblock%!16,LEN(Exp$(Cexp%+D%,C%-8)) 6200 IF Cexp%=Nexp% AND D%=1 AND Nexp%<MaxRec% THEN PROCnewE 6210 IF D%<>0 THEN PROCupExp(D%) 6220 6230OTHERWISE 6240VDU7 6250ENDCASE 6260ELSE 6270SYS"Wimp_ProcessKey",q%!24 6280ENDIF 6290ENDPROC 6300 6310DEF PROCupM 6320IF Memo% THEN Mem$(Cmem%)=FN_GetIcon(1,8) ELSE ToDo$(Ctodo%)=FN_GetIcon(1,8) 6330ENDPROC 6340 6350DEF PROCupT 6360Tel$(Ctel%,0)=FN_GetIcon(0,8) 6370Tel$(Ctel%,1)=FN_GetIcon(0,9) 6380Tel$(Ctel%,2)=FN_GetIcon(0,10) 6390Tel$(Ctel%,3)=FN_GetIcon(0,11) 6400Tel$(Ctel%,4)=FN_GetIcon(0,12) 6410Tel$(Ctel%,5)=FN_GetIcon(0,13) 6420ENDPROC 6430 6440DEF PROCupE 6450Exp$(Cexp%,0)=FN_GetIcon(2,8) 6460Exp$(Cexp%,1)=FN_GetIcon(2,9) 6470Exp$(Cexp%,2)=FN_GetIcon(2,10) 6480Exp$(Cexp%,3)=FN_GetIcon(2,11) 6490Exp$(Cexp%,4)=FN_GetIcon(2,12) 6500IF LEN(Exp$(Cexp%,0))<2 THEN Exp$(Cexp%,0)="0"+Exp$(Cexp%,0) 6510IF LEN(Exp$(Cexp%,1))<2 THEN Exp$(Cexp%,1)="0"+Exp$(Cexp%,1) 6520ENDPROC 6530 6540DEF PROCupS 6550LOCAL A% 6560FOR A%=0 TO 4 6570Shed$(Cshed%,A%)=FN_GetIcon(3,A%+8) 6580NEXT 6590IF LEN(Shed$(Cshed%,0))<2 THEN Shed$(Cshed%,0)="0"+Shed$(Cshed%,0) 6600IF LEN(Shed$(Cshed%,1))<2 THEN Shed$(Cshed%,1)="0"+Shed$(Cshed%,1) 6610A%=INSTR(Shed$(Cshed%,3),":") 6620IF LEN(Shed$(Cshed%,3))=3 AND A%=1 THENShed$(Cshed%,3)="00"+Shed$(Cshed%,3) 6630IF LEN(Shed$(Cshed%,3))=4 AND A%=2 THENShed$(Cshed%,3)="0"+Shed$(Cshed%,3) 6640IF LEN(Shed$(Cshed%,3)) = 5 THEN 6650A%=VAL(LEFT$(Shed$(Cshed%,3),2)) 6660IF A%<12 AND Spm%(Cshed%)=TRUE THEN Shed$(Cshed%,3)=STR$(A%+12)+RIGHT$(Shed$(Cshed%,3),3) 6670IF A%>11 AND Spm%(Cshed%)=FALSE THEN Spm%(Cshed%)=TRUE 6680ENDIF 6690ENDPROC 6700 6710DEF PROCsaveT 6720LOCAL A%,B% 6730PROCupT 6740IF Export% THEN 6750PROCexportS("Organiser Telephone Numbers") 6760PROCexportS(CHR$(&A)) 6770PROCexportS(CHR$(&A)) 6780FOR A% = 1 TO Ntel% 6790FOR B% = 0 TO 5 6800IF B%=3 THEN PROCexportS("Tel. ") 6810IF B%=4 THEN PROCexportS("Fax ") 6820PROCexportS(Tel$(A%,B%)) 6830PROCexportS(CHR$(&A)) 6840NEXT 6850PROCexportS(CHR$(&A)) 6860NEXT 6870ELSE 6880PRINT#F%,Ntel% :REM number of numbers 6890FOR A% = 1 TO Ntel% 6900FOR B% = 0 TO 5 6910PRINT#F%,Tel$(A%,B%) 6920NEXT:NEXT 6930ENDIF 6940ENDPROC 6950 6960DEF PROCsaveM 6970LOCAL A%,B% 6980PROCupM 6990IF Memo% THEN A%=Nmem% :B%=2 ELSE A%=Ntodo% :B%=3 7000IF Export% THEN 7010IF Memo% THEN PROCexportS("Organiser Memos") ELSE PROCexportS("Organiser To Do") 7020PROCexportS(CHR$(&A)) 7030PROCexportS(CHR$(&A)) 7040FOR B%=1 TO A% 7050IF Memo% THEN PROCexportS(Mem$(B%)) ELSE PROCexportS(ToDo$(B%)) 7060PROCexportS(CHR$(&A)):PROCexportS(CHR$(&A)) 7070NEXT 7080ELSE 7090BPUT#F%,B% 7100PRINT#F%,A% :REM number of numbers 7110FOR B% = 1 TO A% 7120IF Memo% THEN PRINT#F%,Mem$(B%) ELSE PRINT#F%,ToDo$(B%) 7130NEXT 7140ENDIF 7150ENDPROC 7160 7170DEF PROCsaveE 7180LOCAL A%,B%,r$ 7190PROCupE 7200IF Export% THEN 7210PROCexportS("Organiser Expenses") 7220PROCexportS(CHR$(&A)) 7230PROCexportS(CHR$(&A)) 7240FOR A% = 1 TO Nexp% 7250PROCexportS(Exp$(A%,0)+"-"+Exp$(A%,1)+"-"+Exp$(A%,2)) 7260PROCexportS(CHR$(&A)) 7270PROCexportS(Etype$(Exp%(A%,0))+" - �"+Exp$(A%,4)) 7280PROCexportS(CHR$(&A)) 7290IF Exp%(A%,2) THEN r$=" reciept" ELSE r$=" no reciept" 7300PROCexportS("Payed by "+Epay$(Exp%(A%,1))+r$) 7310PROCexportS(CHR$(&A)) 7320PROCexportS(Exp$(A%,3)) 7330PROCexportS(CHR$(&A)):PROCexportS(CHR$(&A)) 7340NEXT 7350ELSE 7360PRINT#F%,Nexp% :REM number of numbers 7370FOR A% = 1 TO Nexp% 7380FOR B% = 0 TO 4 7390PRINT#F%,Exp$(A%,B%) 7400NEXT 7410FOR B%=0 TO 2 7420PRINT#F%,Exp%(A%,B%) 7430NEXT:NEXT 7440ENDIF 7450ENDPROC 7460 7470 7480DEF PROCsaveS 7490LOCAL A%,B%,t$ 7500PROCupS 7510IF Export% THEN 7520PROCexportS("Organiser Scheduler") 7530PROCexportS(CHR$(&A)) 7540PROCexportS(CHR$(&A)) 7550FOR A% = 1 TO Nshed% 7560IF Spm%(A%) THEN t$=" pm" ELSE t$=" am" 7570PROCexportS(Shed$(A%,0)+"-"+Shed$(A%,1)+"-"+Shed$(A%,2)+" "+Shed$(A%,3)+t$) 7580PROCexportS(CHR$(&A)) 7590PROCexportS(Shed$(A%,4)) 7600PROCexportS(CHR$(&A)):PROCexportS(CHR$(&A)) 7610NEXT 7620ELSE 7630BPUT#F%,1 7640PRINT#F%,Nshed% 7650FOR A%=1 TO Nshed% 7660FOR B%=0 TO 4 7670PRINT#F%,Shed$(A%,B%) 7680NEXT 7690PRINT#F%,Spm%(A%) 7700NEXT 7710ENDIF 7720ENDPROC 7730 7740DEF PROCloadT(n$) 7750LOCAL A%,B% 7760F%=OPENIN(n$) 7770INPUT#F%,Ntel% 7780FOR A% = 1 TO Ntel% 7790FOR B% = 0 TO 5 7800INPUT#F%,Tel$(A%,B%) 7810NEXT:NEXT 7820CLOSE#F% 7830Ctel%=1 7840PROCupTel(0) 7850PROCupTot(0,STR$(Ntel%)) 7860ENDPROC 7870 7880DEF PROCcT 7890LOCAL A%,B% 7900IF Ntel%<>1 THEN 7910FOR A%=Ctel% TO Ntel%-1 7920FOR B%=0 TO 5 7930Tel$(A%,B%)=Tel$(A%+1,B%) 7940NEXT:NEXT 7950Ntel%-=1 7960PROCupTel(0) 7970PROCupTot(0,STR$(Ntel%)) 7980ELSE 7990VDU7 8000ENDIF 8010ENDPROC 8020 8030DEF PROCloadM(n$) 8040LOCAL A%,B% 8050PROCupM 8060Stype$="05B" 8070F%=OPENIN(n$) 8080B%=BGET#F% 8090IF B%=2 THEN Memo%=TRUE ELSE Memo%=FALSE 8100IF Memo% THEN INPUT#F%,Nmem% :B%=Nmem% ELSE INPUT#F%,Ntodo%: B%=Ntodo% 8110FOR A%=1 TO B% 8120IF Memo% THEN INPUT#F%,Mem$(A%) ELSE INPUT#F%,ToDo$(A%) 8130NEXT 8140CLOSE#F% 8150PROC_sput(1,7,STR$(B%)) 8160PROC_sput(1,6,"1") 8170PROCupMbut(1) 8180ENDPROC 8190 8200DEF PROCcM 8210LOCAL A%,B% 8220IF Memo% THEN 8230 IF Nmem%<>1 THEN 8240 FOR A%=Cmem% TO Nmem%-1 8250 Mem$(A%)=Mem$(A%+1) 8260 NEXT 8270 Nmem%-=1 8280 PROC_sput(1,7,STR$(Nmem%)) 8290 PROCupMbut(0) 8300 ELSE 8310 VDU7 8320 ENDIF 8330ELSE 8340 IF Ntodo%<>1 THEN 8350 FOR A%=Ctodo% TO Ntodo%-1 8360 ToDo$(A%)=ToDo$(A%+1) 8370 NEXT 8380 Ntodo%-=1 8390 PROC_sput(1,7,STR$(Ntodo%)) 8400 PROCupMbut(0) 8410 ELSE 8420 VDU7 8430 ENDIF 8440ENDIF 8450ENDPROC 8460 8470DEF PROCloadE(n$) 8480LOCAL A%,B% 8490F%=OPENIN(n$) 8500INPUT#F%,Nexp% 8510FOR A%=1 TO Nexp% 8520FOR B%=0 TO 4 8530INPUT#F%,Exp$(A%,B%) 8540NEXT 8550FOR B%=0 TO 2 8560INPUT#F%,Exp%(A%,B%) 8570NEXT 8580NEXT 8590CLOSE#F% 8600PROCupTot(2,STR$(Nexp%)) 8610Cexp%=1 8620PROCupExp(0) 8630ENDPROC 8640 8650DEF PROCcE 8660LOCAL A%,B% 8670IF Nexp%<>1 THEN 8680FOR A%=Cexp% TO Nexp%-1 8690FOR B%=0 TO 4 8700Exp$(A%,B%)=Exp$(A%+1,B%) 8710NEXT 8720FOR B%=0 TO 2 8730Exp%(A%,B%)=Exp%(A%+1,B%) 8740NEXT 8750Nexp%-=1 8760PROCupTot(2,STR$(Nexp%)) 8770PROCupExp(0) 8780ELSE 8790VDU7 8800ENDIF 8810ENDPROC 8820 8830DEF PROCloadS(n$) 8840LOCAL A%,B% 8850F%=OPENIN(n$) 8860B%=BGET#F% 8870INPUT#F%,Nshed% 8880FOR A%=1 TO Nshed% 8890FOR B%=0 TO 4 8900INPUT#F%,Shed$(A%,B%) 8910NEXT 8920INPUT#F%,Spm%(A%) 8930NEXT 8940CLOSE#F% 8950PROCupTot(3,STR$(Nshed%)) 8960Cshed%=1 8970PROCupShed(0) 8980ENDPROC 8990 9000DEF PROCcShed 9010LOCAL A%,B% 9020IF Nshed%<>1 THEN 9030FOR A%=Cshed% TO Nshed%-1 9040FOR B%=0 TO 4 9050Shed$(A%,B%)=Shed$(A%+1,B%) 9060NEXT 9070Spm%(A%)=Spm%(A%+1) 9080NEXT 9090Nshed%-=1 9100PROCupShed(0) 9110PROCupTot(3,STR$(Nshed%)) 9120ELSE 9130VDU7 9140ENDIF 9150ENDPROC 9160 9170DEF PROCupTot(w%,v$) 9180PROC_sput(w%,7,v$) 9190SYS"Wimp_ForceRedraw",!Wn%(w%),IX%(7,w%),IY%(7,w%),IX1%(7,w%),IY1%(7,w%) 9200ENDPROC 9210 9220DEF PROCupTn 9230PROC_sput(0,7,STR$(Ntel%)) 9240SYS"Wimp_ForceRedraw",!Wn%(0),IX%(7,0),IY%(7,0),IX1%(7,0),IY1%(7,0) 9250ENDPROC 9260 9270DEF PROCupTel(i%) 9280SYS"Wimp_GetCaretPosition",,tblock% 9290Ctel%+=i% 9300IF Ctel%>Ntel% THEN Ctel%=Ntel% 9310IF Ctel%<1 THEN Ctel%=1 9320FOR A%=0 TO 5 9330PROC_sput(0,A%+8,Tel$(Ctel%,A%)) 9340IF tblock%!0=telW% AND tblock%!4=A%+8 THEN 9350SYS"Wimp_SetCaretPosition",telW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,LEN(Tel$(Ctel%,A%)) 9360ENDIF 9370NEXT 9380PROC_sput(0,6,STR$(Ctel%)) 9390ENDPROC 9400 9410DEF PROCupShed(i%) 9420SYS"Wimp_GetCaretPosition",,tblock% 9430Cshed%+=i% 9440IF Cshed%>Nshed% THEN Cshed%=Nshed% 9450IF Cshed%<1 THEN Cshed%=1 9460FOR A%=0 TO 4 9470PROC_sput(3,A%+8,Shed$(Cshed%,A%)) 9480IF tblock%!0=shedW% AND tblock%!4=A%+8 THEN 9490SYS"Wimp_SetCaretPosition",shedW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,LEN(Shed$(Cshed%,A%)) 9500ENDIF 9510NEXT 9520PROC_sput(3,6,STR$(Cshed%)) 9530PROC_am 9540ENDPROC 9550 9560DEF PROCupExp(i%) 9570LOCAL A% 9580SYS"Wimp_GetCaretPosition",,tblock% 9590Cexp%+=i% 9600IF Cexp%>Nexp% THEN Cexp%=Nexp% 9610IF Cexp%<1 THEN Cexp%=1 9620FOR A%=0 TO 4 9630PROC_sput(2,A%+8,Exp$(Cexp%,A%)) 9640IF tblock%!0=expW% AND tblock%!4=A%+8 THEN 9650SYS"Wimp_SetCaretPosition",expW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,LEN(Exp$(Cexp%,A%)) 9660ENDIF 9670NEXT 9680PROC_sput(2,6,STR$(Cexp%)) 9690IF Exp%(Cexp%,2) THEN $SPoint%(17,2)="yes" ELSE $SPoint%(17,2)="no" 9700$SPoint%(13,2)=Etype$(Exp%(Cexp%,0)) 9710$SPoint%(14,2)=Epay$(Exp%(Cexp%,1)) 9720SYS"Wimp_ForceRedraw",!Wn%(2),IX%(17,2),IY%(17,2),IX1%(17,2),IY1%(17,2) 9730SYS"Wimp_ForceRedraw",!Wn%(2),IX%(14,2),IY%(14,2),IX1%(14,2),IY1%(14,2) 9740SYS"Wimp_ForceRedraw",!Wn%(2),IX%(13,2),IY%(13,2),IX1%(13,2),IY1%(13,2) 9750ENDPROC 9760 9770DEF PROCupMbut(R%) 9780LOCAL L% 9790IF Memo% THEN 9800$SPoint%(9,1)="radioon" 9810$SPoint%(10,1)="radiooff" 9820IF R%=0 THEN Cmem%=Nmem%:PROCmup(0) 9830PROC_sput(1,8,Mem$(Cmem%)) 9840L%=LEN(Mem$(Cmem%)) 9850ELSE 9860$SPoint%(10,1)="radioon" 9870$SPoint%(9,1)="radiooff" 9880IF R%=0 THEN Ctodo%=Ntodo%:PROCmup(0) 9890PROC_sput(1,8,ToDo$(Ctodo%)) 9900L%=LEN(ToDo$(Ctodo%)) 9910ENDIF 9920SYS"Wimp_GetCaretPosition",,tblock% 9930IF tblock%!0=memoW% AND tblock%!4=8 THEN 9940SYS"Wimp_SetCaretPosition",memoW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,L% 9950ENDIF 9960SYS"Wimp_ForceRedraw",!Wn%(1),IX%(10,1),IY%(10,1),IX1%(10,1),IY1%(10,1) 9970SYS"Wimp_ForceRedraw",!Wn%(1),IX%(9,1),IY%(9,1),IX1%(9,1),IY1%(9,1) 9980REM SYS"Wimp_ForceRedraw",!Wn%(1),IX%(8,1),IY%(8,1),IX1%(8,1),IY1%(8,1) 9990ENDPROC 10000 10010DEFFNsget(x%) 10020LOCAL x$ 10030WHILE ?x%>&1F x$+=CHR$(?x%):x%+=1:ENDWHILE 10040=x$ 10050 10060DEFFNpg(n%,W%) 10070LOCAL A$ 10080A$=FNsget(SPoint%(n%,W)) 10090=VAL(A$) 10100 10110DEF FN_GetIcon(W%,In%) 10120LOCAL T%,A%,R$ 10130R$=FNsget(SPoint%(In%,W%)) 10140=R$ 10150 10160DEF PROC_sput(W%,In%,X$) 10170LOCAL A%,x% 10180x%=SPoint%(In%,W%) 10190A%=1 10200IF LEN(X$)<>0 THEN 10210WHILE A%<>(LEN(X$)+1) 10220?x%=ASC(MID$(X$,A%,1)) 10230x%+=1 10240A%+=1 10250ENDWHILE 10260ENDIF 10270?x%=0 10280SYS"Wimp_ForceRedraw",!Wn%(W%),IX%(In%,W%),IY%(In%,W%),IX1%(In%,W%),IY1%(In%,W%) 10290ENDPROC 10300 10310DEF PROCinit 10320LOCAL A%,B% 10330ToFile$="ToDo" 10340MemFile$="Memo" 10350TelFile$="Tel" 10360ExpFile$="Exp" 10370ShedFile$="Shed" 10380FOR A%=0 TO 5 10390Tel$(1,A%)=" " 10400NEXT 10410FOR A%=1 TO MaxRec% 10420Mem$(A%)="" 10430ToDo$(A%)="" 10440Spm%(A%)=FALSE 10450FOR B%=0 TO 4 10460Shed$(A%,B%)="" 10470NEXT 10480FOR B%=0 TO 2 10490Exp$(A%,B%)="" 10500Exp%(A%,B%)=1 10510NEXT 10520Exp$(A%,3)="" 10530NEXT 10540FOR A%=1 TO 4 10550READ Epay$(A%) 10560NEXT 10570PROCexpcat 10580PROCimset 10590DATA Cash,Cheque,Card,Other 10600ENDPROC 10610 10620DEF PROCexpcat 10630LOCAL A%,B%,F% 10640F%=OPENIN("<ORG$Dir>.ExpCat") 10650A%=1 10660REPEAT 10670Etype$(A%)="" 10680REPEAT 10690B%=BGET#F% 10700IF B%>&1F THEN Etype$(A%)=Etype$(A%)+CHR$(B%) 10710UNTIL B%<&20 10720A%+=1 10730UNTIL A%=9 10740CLOSE#F% 10750ENDPROC 10760 10770DEF PROCimset 10780LOCAL A%,B% 10790FOR A%=0 TO 7 10800$(TypeM%+(A%*25))=Etype$(A%+1) 10810NEXT 10820FOR A%=0 TO 3 10830$(PayM%+(A%*25))=Epay$(A%+1) 10840NEXT 10850$Commenu%="Type" 10860Commenu%?12=7 10870Commenu%?13=2 10880Commenu%?14=7 10890Commenu%?15=0 10900Commenu%!16=288 10910Commenu%!20=40 10920Commenu%!24=0 10930m%=Commenu%+28 10940 10950FOR A%=0 TO 7 10960m%!0=0 10970m%!4=0 10980m%!8=(7<<24)OR %100010001 10990m%!12=TypeM%+(A%*25) 11000m%!16=0 11010m%!20=25 11020m%+=24 11030NEXT 11040m%-=24 11050m%!0=&80 11060 11070$Comenu%="Payment" 11080Comenu%?12=7 11090Comenu%?13=2 11100Comenu%?14=7 11110Comenu%?15=0 11120Comenu%!16=288 11130Comenu%!20=40 11140Comenu%!24=0 11150m%=Comenu%+28 11160 11170FOR A%=0 TO 3 11180m%!0=0 11190m%!4=0 11200m%!8=(7<<24)OR %100010001 11210m%!12=PayM%+(A%*25) 11220m%!16=0 11230m%!20=25 11240m%+=24 11250NEXT 11260m%-=24 11270m%!0=&80 11280 11290ENDPROC 11300 11310DEF PROCnewT 11320LOCAL A% 11330Ntel%+=1:PROCupTot(0,STR$(Ntel%)) 11340FOR A%=0 TO 5 11350Tel$(Ntel%,A%)="" 11360NEXT 11370ENDPROC 11380 11390DEF PROCnewS 11400LOCAL A% 11410Nshed%+=1:PROCupTot(3,STR$(Nshed%)) 11420FOR A%=0 TO 4 11430Shed$(Nshed%,A%)="" 11440NEXT 11450Spm%(Nshed%)=Spm%(Nshed%-1) 11460ENDPROC 11470 11480DEF PROCnewE 11490LOCAL A% 11500Nexp%+=1:PROCupTot(2,STR$(Nexp%)) 11510FOR A%=0 TO 4 11520Exp$(Nexp%,A%)="" 11530NEXT 11540Exp%(Nexp%,0)=Exp%(Nexp%-1,0) 11550Exp%(Nexp%,1)=Exp%(Nexp%-1,1) 11560Exp%(Nexp%,2)=Exp%(Nexp%-1,2) 11570ENDPROC 11580 11590DEF PROCmup(I%) 11600IF Memo% THEN 11610Cmem%+=I% 11620IF Cmem%>Nmem% THEN Cmem%=Nmem% 11630IF Cmem%<1 THEN Cmem%=1 11640PROC_sput(1,6,STR$(Cmem%)) 11650ELSE 11660Ctodo%+=I% 11670IF Ctodo%>Ntodo% THEN Ctodo%=Ntodo% 11680IF Ctodo%<1 THEN Ctodo%=1 11690PROC_sput(1,6,STR$(Ctodo%)) 11700ENDIF 11710ENDPROC 11720 11730DEF PROCnewm(I%) 11740IF Memo% THEN 11750Nmem%+=I% 11760IF Nmem%>MaxRec% THEN Nmem%=MaxRec% 11770IF Mmen%<MaxRec% AND I%>0 THEN Mem$(Nmem%)="" 11780IF Nmem%<1 THEN Nmem%=1 11790PROC_sput(1,7,STR$(Nmem%)) 11800ELSE 11810Ntodo%+=I% 11820IF Ntodo%>MaxRec% THEN Ntodo%=MaxRec% 11830IF Ntodo%<MaxRec% AND I%>0 THEN ToDo$(Ntodo%)="" 11840IF Ntodo%<1 THEN Ntodo%=1 11850PROC_sput(1,7,STR$(Ntodo%)) 11860ENDIF 11870ENDPROC 11880 11890DEF PROC_am 11900IF Spm%(Cshed%) THEN 11910$SPoint%(14,3)="radioon" 11920$SPoint%(13,3)="radiooff" 11930ELSE 11940$SPoint%(13,3)="radioon" 11950$SPoint%(14,3)="radiooff" 11960ENDIF 11970SYS"Wimp_ForceRedraw",!Wn%(3),IX%(14,3),IY%(14,3),IX1%(14,3),IY1%(14,3) 11980SYS"Wimp_ForceRedraw",!Wn%(3),IX%(13,3),IY%(13,3),IX1%(13,3),IY1%(13,3) 11990ENDPROC 12000 12010DEF PROC_Trans(wh%) 12020!q%=wh% 12030SYS "Wimp_GetWindowState",,q% 12040xo%=q%!4-q%!20+8:yo%=q%!16-q%!24-290 12050XO%=q%!4:YO%=q%!16 12060ENDPROC 12070 12080DEF PROCpb(w%,i%) 12090IF i%=0 THEN $SPoint%(0,w%)="pdown" ELSE $SPoint%(1,w%)="pup" 12100SYS"Wimp_ForceRedraw",!Wn%(w%),IX%(i%,w%),IY%(i%,w%),IX1%(i%,w%),IY1%(i%,w%) 12110RdUD%=TRUE 12120Rd1%=w%:Rd2%=i% 12130ENDPROC 12140 12150DEF PROCopenRX(a%) 12160LOCAL X%,Y%,B%,A% 12170MOUSE X%,Y%,B% 12180X%-=140:Y%-=90 12190RXw%!0=rx1W%:RXw%!4=X%:RXw%!8=Y% 12200RXw%!12=306+X%:RXw%!16=168+Y%:RXw%!20=0:RXw%!24=0:RXw%!28=-1 12210SYS "Wimp_OpenWindow",,RXw% 12220RXtype%=a% 12230CkB%=0 12240NbRX%=0:RXcount%=0:RXpram%=0 12250Y%=Mmenu%!148 12260CASE RXtype% OF 12270WHEN 0: IF Y%=1 THEN RXrecord%=1 ELSE RXrecord%=Ntel%+1 12280WHEN 1: IF Y%=1 THEN Cshed%=RXrecord%:RXrecord%=1 ELSE RXrecord%=Nshed%+1 12290WHEN 2: IF Y%=1 THEN RXrecord%=2 ELSE RXrecord%=Nmem%+1 12300WHEN 3: IF Y%=1 THEN RXrecord%=2 ELSE RXrecord%=Ntodo%+1 12310WHEN 5: IF Y%=1 THEN Cexp%=RXrecord%:RXrecord%=1 ELSE RXrecord%=Nexp%+1 12320ENDCASE 12330ENDPROC 12340 12350DEF PROCacCK(A%) 12360IF A%>&7F THEN A%=A% OR &FFFFFF00 12370CkB%=CkB%-A% 12380ENDPROC 12390 12400DEF PROCrxINIT 12410SYS"OS_SerialOp",0,&34,&FF00 12420SYS"OS_SerialOp",1,0 12430SYS"OS_SerialOp",5,12 12440SYS"OS_SerialOp",6,12 12450SYS"OS_Byte",2,2 12460Abort%=FALSE 12470CkB%=0 12480ENDPROC 12490 12500DEF PROC_gath(b%) 12510IF NbRX%<>0 THEN PROCacCK(b%) 12520NbRX%+=1 12530IF NbRX%=2 AND b%<>RXtype% THEN PROC_setupW("wrong type of data"):Abort%=TRUE:VDU7 12540IF NbRX%=3 THEN RXcount%=1 12550IF RXcount%<>0 THEN 12560b%=FNtransRX(b%) 12570CASE RXtype% OF 12580WHEN 0: IF b%<&F8 THEN 12590 IF RXcount%=1 THEN Tel$(RXrecord%,RXpram%)=CHR$(b%) ELSE Tel$(RXrecord%,RXpram%)=Tel$(RXrecord%,RXpram%)+CHR$(b%) 12600 RXcount%+=1 12610 ELSE 12620 PROCrxcont(b%) 12630 ENDIF 12640 12650WHEN 1: IF b%<&F8 THEN 12660 IF RXcount%=1 THEN Shed$(RXrecord%,RXpram%)=CHR$(b%) ELSE Shed$(RXrecord%,RXpram%)=Shed$(RXrecord%,RXpram%)+CHR$(b%) 12670 RXcount%+=1 12680 ELSE 12690 PROCrxcont(b%) 12700 ENDIF 12710 12720WHEN 2: IF b%<&F8 THEN 12730 IF RXcount%=1 THEN Mem$(RXrecord%)=CHR$(b%) ELSE Mem$(RXrecord%)=Mem$(RXrecord%)+CHR$(b%) 12740 RXcount%+=1 12750 ELSE 12760 PROCrxcont(b%) 12770 ENDIF 12780 12790WHEN 3: IF b%<&F8 THEN 12800 IF RXcount%=1 THEN ToDo$(RXrecord%)=CHR$(b%) ELSE ToDo$(RXrecord%)=ToDo$(RXrecord%)+CHR$(b%) 12810 RXcount%+=1 12820 ELSE 12830 PROCrxcont(b%) 12840 ENDIF 12850 12860WHEN 5: IF b%<&F8 THEN 12870 IF RXcount%=1 THEN Exp$(RXrecord%,RXpram%)=CHR$(b%) ELSE Exp$(RXrecord%,RXpram%)=Exp$(RXrecord%,RXpram%)+CHR$(b%) 12880 RXcount%+=1 12890 ELSE 12900 PROCrxcont(b%) 12910 ENDIF 12920 12930ENDCASE 12940ENDIF 12950ENDPROC 12960 12970DEF PROCrxcont(b%) 12980 IF b%=&FF THEN RXcount%=1:RXpram%+=1 12990 IF b%=&FE THEN RXpram%=0:RXrecord%+=1:RXcount%=1 13000 IF RXrecord%>MaxRec% THEN RXrecord%=MaxRec%:PROC_setupW("too much data") 13010ENDPROC 13020 13030DEF PROCtidy 13040LOCAL B%,C%,D% 13050B%=FNgetS 13060CkB%=CkB% AND &FF 13070IF B%<>CkB% THEN PROC_setupW("Check byte was "+STR$(B%)+" should be "+STR$(CkB%)) 13080B%=FNgetS 13090IF B%<>&1A THEN PROC_setupW("Last byte 1A not correct") 13100IF Abort%=FALSE THEN 13110CASE RXtype% OF 13120WHEN 0: Ctel%=1:PROCupTel(0):Ntel%=RXrecord%-1:PROCupTot(0,STR$(Ntel%)) 13130WHEN 1: Nshed%=RXrecord%-1:PROCupTot(3,STR$(Nshed%)) 13140 FOR C%=Cshed% TO Nshed% 13150 D%=VAL(MID$(Shed$(C%,0),9,2)) 13160 IF D%>12 THEN Spm%(C%)=TRUE ELSE Spm%(C%)=FALSE 13170 Shed$(C%,4)=Shed$(C%,1) 13180 Shed$(C%,3)=MID$(Shed$(C%,0),9,2)+":"+RIGHT$(Shed$(C%,0),2) 13190 Shed$(C%,2)=LEFT$(Shed$(C%,0),4) 13200 Shed$(C%,1)=MID$(Shed$(C%,0),5,2) 13210 Shed$(C%,0)=MID$(Shed$(C%,0),7,2) 13220 NEXT 13230 Cshed%=1 13240 PROCupShed(0) 13250WHEN 2: Cmem%=1:PROCmup(0):Nmem%=RXrecord%-1 13260 IF (Mmenu%!148)=1 THEN PROCcM ELSE PROCupTot(1,STR$(Nmem%)) 13270WHEN 3: Ctodo%=1:PROCmup(0):Ntodo%=RXrecord%-1 13280 IF (Mmenu%!148)=1 THEN PROCcM ELSE PROCupTot(1,STR$(Ntodo%)) 13290WHEN 5: Nexp%=RXrecord%-1:PROCupTot(2,STR$(Nexp%)) 13300 FOR C%=Cexp% TO Nexp% 13310 IF Exp$(C%,4)="N" THEN Exp%(C%,2)=FALSE ELSE Exp%(C%,2)=TRUE 13320 Exp%(C%,0)=VAL(Exp$(C%,1)) 13330 Exp%(C%,1)=VAL(Exp$(C%,3)) 13340 Exp$(C%,3)=Exp$(C%,5) 13350 Exp$(C%,4)=Exp$(C%,2) 13360 Exp$(C%,2)=LEFT$(Exp$(C%,0),4) 13370 Exp$(C%,1)=MID$(Exp$(C%,0),5,2) 13380 Exp$(C%,0)=MID$(Exp$(C%,0),7,2) 13390 NEXT 13400 Cexp%=1 13410 PROCupExp(0) 13420ENDCASE 13430ENDIF 13440ENDPROC 13450 13460DEF FNgetS 13470LOCAL B%,C% 13480REPEAT 13490SYS"OS_SerialOp",4,256 TO ,B% ;C% 13500C%=C% AND &2 13510UNTIL C%=0 13520=B% 13530 13540DEF PROCempty 13550LOCAL B%,C% 13560REPEAT 13570SYS"OS_SerialOp",4,256 TO ,B% ;C% 13580C%=C% AND &2 13590UNTIL C%<>0 13600ENDPROC 13610 13620DEF PROCacCK(A%) 13630IF A%>&7F THEN A%=A% OR &FFFFFF00 13640CkB%=CkB%-A% 13650ENDPROC 13660 13670DEF PROCTXmem 13680LOCAL A%,B%,C% 13690PROCrxINIT 13700SYS"Hourglass_Start",10 13710PROCTXb(&50) 13720PROCTXb(2):PROCacCK(2) 13730C%=Cmem% 13740IF Mmenu%!100=0 THEN B%=Nmem% ELSE B%=Cmem% 13750FOR A%=C% TO B% 13760PROCTXs(Mem$(A%)) 13770PROCTXb(&FE):PROCacCK(&FE) 13780NEXT 13790PROCfinishTX 13800ENDPROC 13810 13820DEF PROCTXtodo 13830LOCAL A%,B%,C% 13840PROCrxINIT 13850SYS"Hourglass_Start",10 13860PROCTXb(&50) 13870PROCTXb(3):PROCacCK(3) 13880C%=Ctodo% 13890IF Mmenu%!100=0 THEN B%=Ntodo% ELSE B%=Ctodo% 13900FOR A%=C% TO B% 13910PROCTXs(ToDo$(A%)) 13920PROCTXb(&FE):PROCacCK(&FE) 13930NEXT 13940PROCfinishTX 13950ENDPROC 13960 13970DEF PROCTXtel 13980LOCAL A%,B%,C%,D% 13990PROCrxINIT 14000SYS"Hourglass_Start",10 14010PROCTXb(&50) 14020PROCTXb(0):PROCacCK(0) 14030C%=Ctel% 14040IF Mmenu%!100=0 THEN B%=Ntel% ELSE B%=Ctel% 14050FOR A%=C% TO B% 14060FOR D%=0 TO 5 14070PROCTXs(Tel$(A%,D%)) 14080PROCTXb(&FF):PROCacCK(&FF) 14090NEXT 14100PROCTXb(&FE):PROCacCK(&FE) 14110NEXT 14120PROCfinishTX 14130ENDPROC 14140 14150DEF PROCTXexp 14160LOCAL A%,B%,C%,D%,t$ 14170PROCrxINIT 14180SYS"Hourglass_Start",10 14190PROCTXb(&50) 14200PROCTXb(5):PROCacCK(5) 14210C%=Cexp% 14220IF Mmenu%!100=0 THEN B%=Nexp% ELSE B%=Cexp% 14230FOR A%=C% TO B% 14240PROCTXs(Exp$(A%,2)+Exp$(A%,1)+Exp$(A%,0)) :REM Date 14250PROCTXb(&FF):PROCacCK(&FF) 14260PROCTXs(STR$(Exp%(A%,0))) : REM Type 14270PROCTXb(&FF):PROCacCK(&FF) 14280PROCTXs(Exp$(A%,4)) : REM Ammount 14290PROCTXb(&FF):PROCacCK(&FF) 14300PROCTXs(STR$(Exp%(A%,1))) : REM Pay method 14310PROCTXb(&FF):PROCacCK(&FF) 14320IF Exp%(A%,2) THEN PROCTXs("Y") ELSE PROCTXs("N") : REM Reciept 14330PROCTXb(&FF):PROCacCK(&FF) 14340PROCTXs(Exp$(A%,3)) : REM Note 14350PROCTXb(&FE):PROCacCK(&FE) 14360NEXT 14370PROCfinishTX 14380ENDPROC 14390 14400DEF PROCTXshed 14410LOCAL A%,B%,C%,D%,t$ 14420PROCrxINIT 14430SYS"Hourglass_Start",10 14440PROCTXb(&50) 14450PROCTXb(1):PROCacCK(1) 14460C%=Cshed% 14470IF Mmenu%!100=0 THEN B%=Nshed% ELSE B%=Cshed% 14480FOR A%=C% TO B% 14490IF LEN(Shed$(A%,3)) = 5 THEN t$=LEFT$(Shed$(A%,3),2)+RIGHT$(Shed$(A%,3),2) ELSE t$=FNmakeT(Shed$(A%,3)) 14500PROCTXs(Shed$(A%,2)+Shed$(A%,1)+Shed$(A%,0)+t$) 14510PROCTXb(&FF):PROCacCK(&FF) 14520PROCTXs(Shed$(A%,4)) 14530PROCTXb(&FE):PROCacCK(&FE) 14540NEXT 14550PROCfinishTX 14560ENDPROC 14570 14580DEF FNmakeT(a$) 14590LOCAL t$,L%,C% 14600t$=a$ 14610C%=INSTR(a$,":") 14620L%=LEN(a$) 14630IF C%<>0 THEN 14640WHILE L%<5 14650a$="0"+a$ 14660L%+=1 14670ENDWHILE 14680C%=INSTR(a$,":") 14690t$=LEFT$(a$,C%-1)+RIGHT$(a$,L%-C%) 14700ELSE 14710WHILE L%<4 14720t$="0"+t$ 14730L%+=1 14740ENDWHILE 14750ENDIF 14760=t$ 14770 14780DEF PROCfinishTX 14790IF Abort% THEN 14800PROC_setupW("Buffer overflow, hardware not connected"):VDU7 14810ELSE 14820PROCTXb(&F8):PROCacCK(&F8) 14830PROCTXb(CkB%) 14840PROCTXb(&1A) 14850ENDIF 14860SYS"Hourglass_Off" 14870ENDPROC 14880 14890 14900DEF PROCTXs(s$) 14910LOCAL A%,B% 14920FOR A%=1 TO LEN(s$) 14930B%=ASC(MID$(s$,A%,1)) 14940B%=FNtransTX(B%) 14950PROCTXb(B%):PROCacCK(B%) 14960NEXT 14970ENDPROC 14980 14990DEF PROCTXb(b%) 15000LOCAL T% 15010IF NOT(Abort%) THEN 15020T%=TIME+50 15030REPEAT 15040SYS"OS_SerialOp",3,b% TO ;C% 15050C%=C% AND 2 15060UNTIL C%=0 OR TIME>T% 15070IF C%<>0 THEN Abort%=TRUE 15080ENDIF 15090ENDPROC 15100 15110DEF PROCexportS(s$) 15120LOCAL A%,C% 15130FOR A%=1 TO LEN(s$) 15140C%=ASC(MID$(s$,A%,1)) 15150IF C%=172 THEN C%=&A 15160BPUT#F%,C% 15170NEXT 15180ENDPROC 15190 15200DEF FNtransTX(A%) 15210LOCAL B% 15220B%=A% 15230IF A%=172 THEN B%=&13 15240IF A%=&60 THEN B%=&26 15250IF A%=&7C THEN B%=&21 15260IF A%=&3A THEN B%=&21 15270IF A%>&60 AND A%<>172 THEN B%=A% AND &5F:A%=B% 15280IF A%<&30 THEN 15290CASE A% OF 15300WHEN &20 :B%=&20 15310WHEN &24 :B%=&27 15320WHEN &2F :B%=&24 15330WHEN &2E :B%=&29 15340WHEN &2D :B%=&28 15350WHEN &27 :B%=&22 15360OTHERWISE 15370B%=&25 15380ENDCASE 15390ENDIF 15400=B% 15410 15420DEF FNtransRX(A%) 15430LOCAL B% 15440B%=A% 15450IF A%<&30 THEN 15460CASE A% OF 15470WHEN &13: B%=172 15480WHEN &20: B%=&20 15490WHEN &21: B%=&3A 15500WHEN &22: B%=180 15510WHEN &23: B%=44 15520WHEN &24: B%=47 15530WHEN &25: B%=165 15540WHEN &26: B%=163 15550WHEN &27: B%=36 15560WHEN &28: B%=&2D 15570WHEN &29: B%=&2E 15580WHEN &2E: B%=&2B 15590OTHERWISE 15600B%=&3F 15610ENDCASE 15620ENDIF 15630=B% 15640
� Personal Organiser AM-399C � Version 1.0 By Mike Cook � All rights reserved (� � �errorbox 2 <*� taskid%4,intmess% 20:$taskid%="TASK" FIintmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0 POș "Wimp_Initialise",300,!taskid%,"Organiser",intmess% � version%,taskhand% Zm� q% &600,qc% 80,temp% 512,buffers% 512,menu% 256,Mmenu% 512,cb% 18,qw% &300,qn% &300, Sw% &300, Ew% &300 dK� Wn0% &700, Wn1% &500, Wn2% &500, Wn3% &500,RXw% 500, Wn%(3),wopen%(3) nL� SW0% 700,SW1% 512,SW2% 612, SW3% 512,tblock% 24, TypeM% 200, PayM% 200 x5� Commenu% 512, Comenu% 256,RCW% 500, EsName% 556 �K� IsName% 556, Wmenu% 512,Smenu% 256,Imenu% 256, TextWarn% 100, ww% 256 �=� SPoint%(20,3),IX%(20,3),IY%(20,3),IX1%(20,3),IY1%(20,3) �FMaxRec%=100 : � alter this to change the maximum number of records �Q� Tel$(MaxRec%,5),Mem$(MaxRec%),ToDo$(MaxRec%),Shed$(MaxRec%,5),Spm%(MaxRec%) �8� Exp$(MaxRec%,5),Exp%(MaxRec%,2),Etype$(8),Epay$(4) �1ș "Wimp_OpenTemplate",,"<ORG$Dir>.Templates" �)� � ș "Wimp_CloseTemplate":�errorbox �:ș "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0 �&ș "Wimp_CreateWindow",,q% � info% �Gș "Wimp_LoadTemplate",,q%,IsName%+4,IsName%+556,-1,"save_script",0 �'ș "Wimp_CreateWindow",,q% � saveW% �@IsName%!0=saveW%:SaveIcon%=!(q%+88+20):Sname%=!(q%+88+20+32) �Bș "Wimp_LoadTemplate",,q%,EsName%+4,EsName%+556,-1,"Export",0 )ș "Wimp_CreateWindow",,q% � exportW% ,EsName%!0=exportW%:Ename%=!(q%+88+20+32) :ș "Wimp_LoadTemplate",,RXw%+4,RCW%,RCW%+500,-1,"rx",0 "*ș "Wimp_CreateWindow",,RXw%+4 � rx1W% ,RXw%!0=rx1W% 6 @Aș "Wimp_LoadTemplate",,Wn0%+4,SW0%,SW0%+700,-1,"Telephone",0 JWn0%!28=-1 T� A%=0 � 13 ^'SPoint%(A%,0)=!(Wn0%+4+88+20+32*A%) h?IX%(A%,0)=!(Wn0%+4+88+32*A%):IY%(A%,0)=!(Wn0%+4+88+4+32*A%) rDIX1%(A%,0)=!(Wn0%+4+88+8+32*A%):IY1%(A%,0)=!(Wn0%+4+88+12+32*A%) |� �*ș "Wimp_CreateWindow",,Wn0%+4 � telW% �Wn0%!0=telW%:Wn0%!28=-1 � �<ș "Wimp_LoadTemplate",,Wn1%+4,SW1%,SW1%+512,-1,"Memo",0 �Wn1%!28=-1 �� A%=0 � 13 �'SPoint%(A%,1)=!(Wn1%+4+88+20+32*A%) �?IX%(A%,1)=!(Wn1%+4+88+32*A%):IY%(A%,1)=!(Wn1%+4+88+4+32*A%) �DIX1%(A%,1)=!(Wn1%+4+88+8+32*A%):IY1%(A%,1)=!(Wn1%+4+88+12+32*A%) �� �+ș "Wimp_CreateWindow",,Wn1%+4 � memoW% �Wn1%!0=memoW%:Wn1%!28=-1 � @ș "Wimp_LoadTemplate",,Wn2%+4,SW2%,SW2%+612,-1,"Expenses",0 Wn2%!28=-1 � A%=0 � 17 &'SPoint%(A%,2)=!(Wn2%+4+88+20+32*A%) 0?IX%(A%,2)=!(Wn2%+4+88+32*A%):IY%(A%,2)=!(Wn2%+4+88+4+32*A%) :DIX1%(A%,2)=!(Wn2%+4+88+8+32*A%):IY1%(A%,2)=!(Wn2%+4+88+12+32*A%) D� N*ș "Wimp_CreateWindow",,Wn2%+4 � expW% XWn2%!0=expW%:Wn2%!28=-1 b l@ș "Wimp_LoadTemplate",,Wn3%+4,SW3%,SW3%+512,-1,"Schedule",0 vWn3%!28=-1 �� A%=0 � 14 �'SPoint%(A%,3)=!(Wn3%+4+88+20+32*A%) �?IX%(A%,3)=!(Wn3%+4+88+32*A%):IY%(A%,3)=!(Wn3%+4+88+4+32*A%) �DIX1%(A%,3)=!(Wn3%+4+88+8+32*A%):IY1%(A%,3)=!(Wn3%+4+88+12+32*A%) �� �+ș "Wimp_CreateWindow",,Wn3%+4 � shedW% �Wn3%!0=shedW%:Wn3%!28=-1 �3Wn%(0)=Wn0%:Wn%(1)=Wn1%:Wn%(2)=Wn2%:Wn%(3)=Wn3% � �9ș "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0 �)q%!108=TextWarn%:q%!112=-1:q%!116=300 � XQ%=q%!8-q%!0:YQ%=q%!12-q%!4 �*ș "Wimp_CreateWindow",,q% � warningW% ș "Wimp_CloseTemplate" smpicon%=�icon =wopen%(0)=�:wopen%(1)=�:wopen%(2)=�:wopen%(3)=�:warnOn%=� Stype$="0":Ntel%=1:Ctel%=1 *Nmem%=1:Cmem%=1 4Ntodo%=1:Ctodo%=1 >Nshed%=1:Cshed%=1 HNexp%=1:Cexp%=1 RMemo%=�:Rd%=�:Rd1%=0:Rd2%=0 \RdUD%=�:RX%=� fExport%=�:�_PutName("Text") pExport%=�:�_PutName("Data") zAbort%=� � �init �� � �errorbox � ��setupmenu � �� � ș "Wimp_Poll",0,q% � A% � Ȏ A% � � � 0:�_Null � � 1:�_doWindow �O � 2:ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%: ș "Wimp_OpenWindow",,q% � � 3:�_close � � 6:�_do_click(q%) � 7:�_PutDown(q%) � 8:�_KeyPress � 9:�_SORT_Menu $ � 17,18:�receive(q%) . � 8 � � B L� V `� �_Null j� A%,B%,C%,D%,X%,Y%,but% tȗ A%,B%,C% ~ �� RdUD% � C%=0 � �>� Rd2%=0 � $SPoint%(0,Rd1%)="down" � $SPoint%(1,Rd1%)="up" �aș"Wimp_ForceRedraw",!Wn%(Rd1%),IX%(Rd2%,Rd1%),IY%(Rd2%,Rd1%),IX1%(Rd2%,Rd1%),IY1%(Rd2%,Rd1%) �RdUD%=� �� � �� RX% � ��rxINIT � �empty �� �ȗ A%,B%,C% � � C%=0 ș"Hourglass_Start",10 � #ș"OS_SerialOp",4,256 � ,B% ;C% C%=C% � &2 (� C%=0 � �_gath(B%) 2ȗ X%,Y%,but% <� but%<>0 � B%=&F8 � Abort% F� B%=&F8 � �tidy Pș"Hourglass_Off" Z RX%=� dș "Wimp_CloseWindow",,RXw% n� x� � �� �_spath(n$) �ȕ �n$,".") �n$=�n$,�(n$)-1) �� �� �(n$)>10 � n$=�n$,10) �=n$ � �� �_GetName �)� Export% � fn$=$Ename% � fn$=$Sname% �� � �� �_SORT_Menu Ȏ IconMenu% � . � 0: � !q%=5 � �die � �_Open((!q%)-1) � 1: Ȏ !q% � "0 � 3: Mmenu%!100=1:Mmenu%!124=2 ,0 � 4: Mmenu%!100=0:Mmenu%!124=3 60 � 5: Mmenu%!148=1:Mmenu%!172=2 @0 � 6: Mmenu%!148=0:Mmenu%!172=3 J � 7: �die T � ^, � 2: $SPoint%(13,2)=Etype$((!q%)+1) hW ș"Wimp_ForceRedraw",!Wn%(2),IX%(13,2),IY%(13,2),IX1%(13,2),IY1%(13,2) r& Exp%(Cexp%,0)=(!q%)+1 |+ � 3: $SPoint%(14,2)=Epay$((!q%)+1) �W ș"Wimp_ForceRedraw",!Wn%(2),IX%(14,2),IY%(14,2),IX1%(14,2),IY1%(14,2) �& Exp%(Cexp%,1)=(!q%)+1 �� �� � � � �_close � � q%!0=warningW% � warnOn%=� �;� q%!0=!Wn0% � wopen%(0)=�:ș"Wimp_GetWindowInfo",,Wn0% �;� q%!0=!Wn1% � wopen%(1)=�:ș"Wimp_GetWindowInfo",,Wn1% �;� q%!0=!Wn2% � wopen%(2)=�:ș"Wimp_GetWindowInfo",,Wn2% �;� q%!0=!Wn3% � wopen%(3)=�:ș"Wimp_GetWindowInfo",,Wn3% �ș "Wimp_CloseWindow",,q% �� � �_do_click(q%) � A%,B% &i%=q%!16 0Ȏ q%!12 � :(� warningW%: q%!0=warningW% :�_close D(� saveW%: Export%=�: �_DoSave(i%) N)� exportW%: Export%=�: �_DoSave(i%) X(� -2: � Look first at Icon Bar Click b � q%!16=smpicon% � lR � q%!8=2 � q%!8=4 � ș"Wimp_CreateMenu",,menu%,q%!0-74,340:IconMenu%=0 v& � IF q%!8=4 THEN PROC_Open � � � � �. � q%!8=4 � �_WinClick(q%!12) �$ A%=q%!0-96:B%=q%!4 �X � q%!8=2 � �sicon(q%!12):ș"Wimp_CreateMenu",,Mmenu%,A%,B%:IconMenu%=1 �� �� � �� �sicon(A%) �� T$,D$,te% �Ȏ A% � �A� telW%: $SaveIcon%="file_05A":Stype$="05A":D$=TelFile$:�upT 5� memoW%: $SaveIcon%="file_05B":Stype$="05B":�upM 5 � Memo%=� � D$=ToFile$ �:D$=MemFile$ A� expW%: $SaveIcon%="file_05C":Stype$="05C":D$=ExpFile$:�upE B� shedW%: $SaveIcon%="file_05D":Stype$="05D":D$=ShedFile$:�upS *� 47Export%=�:�_PutName(D$):Export%=�:�_PutName(D$+"T") >current%=�what(A%) H� R \� �what(A%) f� B% pȎ A% � z� telW%: B%=0 �� memoW%: B%=1 �� expW%: B%=2 �� shedW%: B%=3 �� �=B% � �� �_WinClick(w%) �� A%,B%,Y% �Y%=q%!4 �&� Do the action for a window click �Ȏ w% � �� telW%: Ȏ i% � �/ � 1: �upT: �upTel(1): �pb(0,1) 0 � 0: �upT: �upTel(-1): �pb(0,0) - � 2: � Ntel%<MaxRec% � �newT / �upT: �upTel(1) :�upTn $ � 3: �cT .! � 4: �upT:�TXtel 8& � 5: RX%=�:�openRX(0) B � L V � memoW%: ` Ȏ i% � j; � 0: �upM: �mup(-1) : �upMbut(1): �pb(1,0) t; � 1: �upM: �mup(1) : �upMbut(1): �pb(1,1) ~2 � 2: �upM: �newm(1) : �upMbut(0) � � 3: �cM � � 4: �upM �3 � Memo% � �TXmem � �TXtodo � � 5: RX%=� �: � Memo% � �openRX(2) � �openRX(3) �B � 9,10: �upM : Memo%=�(Memo%): �newm(0) : �upMbut(1) � � �� expW%: �_Trans(expW%) � �upE � Ȏ i% � �. � 0: �upE:�upExp(-1):�pb(2,0) �. � 1: �upE:�upExp(1): �pb(2,1) - � 2: � Nexp%<MaxRec% � �newE " �upExp(0) � 3: �cE ! � 4: �upE:�TXexp (& � 5: RX%=�:�openRX(5) 2a � 15: IconMenu%=�:ș"Wimp_CreateMenu",,Commenu%,IX1%(15,2)+xo%-10,Y%:IconMenu%=2 <` � 16: IconMenu%=�:ș"Wimp_CreateMenu",,Comenu%,IX1%(16,2)+xo%-10,Y%:IconMenu%=3 F- � 17: Exp%(Cexp%,2)=Exp%(Cexp%,2) � 1 PO � Exp%(Cexp%,2)=0 � $SPoint%(17,2)="no" � $SPoint%(17,2)="yes" ZW ș"Wimp_ForceRedraw",!Wn%(2),IX%(17,2),IY%(17,2),IX1%(17,2),IY1%(17,2) d � n� shedW%: �upS x Ȏ i% � �1 � 0: �upS: �upShed(-1): �pb(3,0) �0 � 1: �upS: �upShed(1): �pb(3,1) � � 2: �upS �1 � Nshed%<MaxRec% � �newS �# �upShed(0) � � 3: �cShed �" � 4: �upS:�TXshed �& � 5: RX%=�:�openRX(1) �8 � 13: Spm%(Cshed%)=�(Spm%(Cshed%)):�_am �8 � 14: Spm%(Cshed%)=�(Spm%(Cshed%)):�_am � � �� �� � �_Open(A%) currentW%=A% "� OPEN UP WINDOW HERE ,� wopen%(currentW%) � 6q%!0=!Wn%(currentW%) @ș"Wimp_GetWindowState",,q% J6 � q%!28<>-1 � q%!28=-1: ș "Wimp_OpenWindow",,q% T� ^(ș "Wimp_OpenWindow",,Wn%(currentW%) hwopen%(currentW%)=� r� |� � ���setupmenu �� m% � �$menu%="Organiser" �menu%?12=7 �menu%?13=2 �menu%?14=7 �menu%?15=0 �menu%!16=128 �menu%!20=40 �menu%!24=0 �m%=menu%+28 m%!0=0 m%!4=info% m%!8=(7<<24)� %10001 &$(m%+12)="Info" 0 : m%+=24 D m%!0=0 N m%!4=0 Xm%!8=(7<<24)� %10001 b$(m%+12)="Telephone" l v m%+=24 � m%!0=0 � m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="Memo" � � m%+=24 � m%!0=0 � m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="Expenses" � � m%+=24 � m%!0=0 m%!4=0 m%!8=(7<<24)� %10001 $(m%+12)="Schedule" * m%+=24 4m%!0=&80 > m%!4=0 Hm%!8=(7<<24)� %10001 R$(m%+12)="Quit" \ f$Mmenu%="Organiser" pMmenu%?12=7 zMmenu%?13=2 �Mmenu%?14=7 �Mmenu%?15=0 �Mmenu%!16=128 �Mmenu%!20=40 �Mmenu%!24=0 �m%=Mmenu%+28 � m%!0=0 �m%!4=info% �m%!8=(7<<24)� %10001 �$(m%+12)="Info" � � m%+=24 � m%!0=0 m%!4=saveW% m%!8=(7<<24)� %10001 $(m%+12)="Save" $ . m%+=24 8 m%!0=2 Bm%!4=exportW% Lm%!8=(7<<24)� %10001 V$(m%+12)="Export" ` j m%+=24 t m%!0=0 ~ m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="TX one" � � m%+=24 � m%!0=3 � m%!4=0 �m%!8=(7<<24)� %10001 �$(m%+12)="TX all" � � m%+=24 � m%!0=1 � m%!4=0 m%!8=(7<<24)� %10001 $(m%+12)="RX new" m%+=24 ( m%!0=2 2 m%!4=0 <m%!8=(7<<24)� %10001 F$(m%+12)="RX merge" P Z m%+=24 dm%!0=&80 n m%!4=0 xm%!8=(7<<24)� %10001 �$(m%+12)="Quit" � �� � �� �_DoSave(i%) �� i%=0 � � DragOn%=� �, ș "Wimp_GetPointerInfo",,q% �] � Export% � �dragicon(q%!0,q%!4,exportW%,i%) � �dragicon(q%!0,q%!4,saveW%,i%) � � � � i%=2 � � �_GetName �G � �fn$,":") � �_Save � �_setupW("Drag the Icon into a Directory") ș "Wimp_CreateMenu",,-1 � � " ,� �receive(q%) 6� A% @A%=q%!16 JȎ A% � T� 0:�die ^� 2:� q%!12=saveref% � h secureF%=q%!36 r% fn$=�sget(q%+44):�_Save |8 q%!12=saveref%:q%!16=3:q%!0=256:q%!40=&044 �A q%!20=messh%:q%!24=messi%:q%!28=messx%:q%!32=messy% �7 ș "Wimp_SendMessage",17,q%,messh%,messi% � � � �� 3:n$=�sget(q%+44) �' sendth%=q%!4:icontype%=q%!40 � myref%=q%!8 �M � ((q%!20=-2 � q%!24=smpicon%) � (q%!20=telW%)) � icontype%=&5A � � �loadT(n$) �8 � q%!20=-2 � wopen%(0)=� � �_Open(0): �_Dack �0 Export%=�:�_PutName(n$):Stype$="05A" �3 Export%=�:�_PutName(n$+"T"):TelFile$=n$ � � N � ((q%!20=-2 � q%!24=smpicon%) � (q%!20=memoW%)) � icontype%=&5B � �loadM(n$) &7 � q%!20=-2 � wopen%(1)=� � �_Open(1):�_Dack 00 Export%=�:�_PutName(n$):Stype$="05B" :' Export%=�:�_PutName(n$+"T") D. � Memo% � MemFile$=n$ � ToFile$=n$ N � X bM � ((q%!20=-2 � q%!24=smpicon%) � (q%!20=expW%)) � icontype%=&5C � l �loadE(n$) v7 � q%!20=-2 � wopen%(2)=� � �_Open(2):�_Dack �0 Export%=�:�_PutName(n$):Stype$="05C" �3 Export%=�:�_PutName(n$+"T"):ExpFile$=n$ � � � �N � ((q%!20=-2 � q%!24=smpicon%) � (q%!20=shedW%)) � icontype%=&5D � � �loadS(n$) �7 � q%!20=-2 � wopen%(3)=� � �_Open(3):�_Dack �0 Export%=�:�_PutName(n$):Stype$="05D" �4 Export%=�:�_PutName(n$+"T"):ShedFile$=n$ � � � �� &502: Ȏ � � �p � q%!32=-2 � q%!36=smpicon%:mes$="This is the Orginiser icon.|MTransfer data with your AM-399C" :mes$="" � � mes$<>"" � q%!12=q%!8 * $(q%+20)=mes$+�0 4 q%!0=(20+�mes$+4)� � 3 > q%!16=&503 H( ș "Wimp_SendMessage",18,q%,q%!4 R� \� f p� �_Dack zsendth%=q%!4 �myref%=q%!8 �"ș "Wimp_GetPointerInfo",,q%+8 �q%!28=q%!8 �q%!32=q%!12 �q%!0=(44+�n$+4)� � 3 �q%!12=myref% �q%!16=4 �q%!36=-1 �q%!40=&FF9 �$(q%+44)=n$+�0 �'ș "Wimp_SendMessage",17,q%,sendth% �� �� ݤicon q%!0=-1 $ q%!4=0 .q%!8=10 : � Y DIRECTION 8q%!12=70 : � X DIRECTION Bq%!16=96 Lq%!20=&2002 V$(q%+24)="!Organiser" `$ș "Wimp_CreateIcon",,q% � icon% j =icon% t ~� �_setupW(t$) �`!qw%=warningW%:qw%!4=200:qw%!8=200:qw%!12=200+XQ%:qw%!16=200+YQ%:qw%!20=0:qw%!24=0:qw%!28=-1 �$TextWarn%=t$ �TextWarn%?�(t$)=0 � warnOn%=� �ș "Wimp_OpenWindow",,qw% �� � �� �errorbox � � PROCdie �ș "Wimp_DragBox",,-1 �2!buffers%=�:$(buffers%+4)=�$+" at line "+Þ+�0 �0ș "Wimp_ReportError",buffers%,1,"Organiser" �die � ��die (*ș "Wimp_CloseDown",taskhand%,!taskid% 2� <� F P.� �dragicon(mousex%,mousey%,handle%,icon%) Z!� bx%,by%,ix0%,iy0%,ix1%,iy1% d�getw(handle%) n�geti(handle%,icon%) x!q%=handle%:q%!4=5 �>q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1% �*q%!24=q%!8-mousex%:q%!28=q%!12-mousey% �ș "Wimp_DragBox",,q% �SFLAG%=� �� � �� �getw(handle%) �8!q%=handle%:ș "Wimp_GetWindowState",,q%:�info(q%+4) �� � �� �geti(h%,i%) �-!q%=h%:q%!4=i%:ș "Wimp_GetIconState",,q% �.ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20 iflags%=q%!24:idata%=q%+28 � "� �info(p%) , � x0%,y0% 6'x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12 @5scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28 Jbx%=x0%-scx%:by%=y1%-scy% T� ^ h� �_Save r � ch%,pp% | F%=�(fn$) �Ȏ current% � �� 0: �saveT:TelFile$=fn$ �5� 1: �saveM: � Memo% � MemFile$=fn$ � ToFile$=fn$ �� 2: �saveE:ExpFile$=fn$ �� 3: �saveS:ShedFile$=fn$ �� ��#F% �G� Export% � �("SETTYPE "+fn$+" fff") � �("SETTYPE "+fn$+" "+Stype$) ��_PutName(fn$) �� � �� �_PutName(p$) �'� Export% � $Ename%=p$ � $Sname%=p$ � � �_PutDown(q%) &� DragOn% � 0#� SYS "Wimp_GetPointerInfo",,q% : �_GetName D ș "Wimp_GetPointerInfo",,q% N5messh%=q%!12:messi%=q%!16:messx%=q%!0:messy%=q%!4 X#� � fn$,":") � fn$=�_spath(fn$) b$(q%+44)=fn$ l?(q%+44+�(fn$))=0 v;q%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=1024:q%!40=&044 �q%!0=56:q%!12=0:q%!16=1 �-ș "Wimp_SendMessage",17,q%,messh%,messi% �saveref%=q%!8 �ș "Wimp_CreateMenu",,-1 � DragOn%=� �� �� � �� �_KeyPress �� C%,D% �� q%!24=13 � � Ȏ q%!0 � �&� saveW%: Export%=�: �_DoSave(2) '� exportW%: Export%=�: �_DoSave(2) � telW% : �upT 3 ș"Wimp_GetCaretPosition",,tblock% < ș"Wimp_SetCaretPosition",-1,-1,0,0,-1,-1,0 * C%=tblock%!4 4 C%+=1 >+ � C%>13 � C%=8:D%=1 � D%=0 H tblock%!4=C% Rk ș"Wimp_SetCaretPosition",telW%,C%,tblock%!8,IY%(C%,0)+6,tblock%!16,�(Tel$(Ctel%+D%,C%-8)) \= � Ctel%=Ntel% � D%=1 � Ntel%<MaxRec% � �newT f% � D%<>0 � �upTel(D%) p z� memoW%: �upM �B � Memo% � C%=Cmem%:D%=Nmem% � C%=Ctodo%:D%=Ntodo% �D � C%=D% � �newm(1):�upMbut(0) � �mup(1): �upMbut(1) �� shedW%: �upS �3 ș"Wimp_GetCaretPosition",,tblock% � C%=tblock%!4 � C%+=1 �+ � C%>12 � C%=8:D%=1 � D%=0 � tblock%!4=C% �n ș"Wimp_SetCaretPosition",shedW%,C%,tblock%!8,IY%(C%,3)+6,tblock%!16,�(Shed$(Cshed%+D%,C%-8)) �@ � Cshed%=Nshed% � D%=1 � Nshed%<MaxRec% � �newS �& � D%<>0 � �upShed(D%) � �� expW%: �upE 3 ș"Wimp_GetCaretPosition",,tblock% C%=tblock%!4 C%+=1 $+ � C%>12 � C%=8:D%=1 � D%=0 .k ș"Wimp_SetCaretPosition",expW%,C%,tblock%!8,IY%(C%,2)+6,tblock%!16,�(Exp$(Cexp%+D%,C%-8)) 8= � Cexp%=Nexp% � D%=1 � Nexp%<MaxRec% � �newE B% � D%<>0 � �upExp(D%) L V `�7 j� t� ~ș"Wimp_ProcessKey",q%!24 �� �� � � � �upM �G� Memo% � Mem$(Cmem%)=�_GetIcon(1,8) � ToDo$(Ctodo%)=�_GetIcon(1,8) �� � � � �upT � Tel$(Ctel%,0)=�_GetIcon(0,8) � Tel$(Ctel%,1)=�_GetIcon(0,9) �!Tel$(Ctel%,2)=�_GetIcon(0,10) �!Tel$(Ctel%,3)=�_GetIcon(0,11) !Tel$(Ctel%,4)=�_GetIcon(0,12) !Tel$(Ctel%,5)=�_GetIcon(0,13) � ( � �upE 2 Exp$(Cexp%,0)=�_GetIcon(2,8) < Exp$(Cexp%,1)=�_GetIcon(2,9) F!Exp$(Cexp%,2)=�_GetIcon(2,10) P!Exp$(Cexp%,3)=�_GetIcon(2,11) Z!Exp$(Cexp%,4)=�_GetIcon(2,12) d:� �(Exp$(Cexp%,0))<2 � Exp$(Cexp%,0)="0"+Exp$(Cexp%,0) n:� �(Exp$(Cexp%,1))<2 � Exp$(Cexp%,1)="0"+Exp$(Cexp%,1) x� � � � �upS �� A% �� A%=0 � 4 �&Shed$(Cshed%,A%)=�_GetIcon(3,A%+8) �� �@� �(Shed$(Cshed%,0))<2 � Shed$(Cshed%,0)="0"+Shed$(Cshed%,0) �@� �(Shed$(Cshed%,1))<2 � Shed$(Cshed%,1)="0"+Shed$(Cshed%,1) �A%=�Shed$(Cshed%,3),":") �G� �(Shed$(Cshed%,3))=3 � A%=1 �Shed$(Cshed%,3)="00"+Shed$(Cshed%,3) �F� �(Shed$(Cshed%,3))=4 � A%=2 �Shed$(Cshed%,3)="0"+Shed$(Cshed%,3) �� �(Shed$(Cshed%,3)) = 5 � �A%=�(�Shed$(Cshed%,3),2)) K� A%<12 � Spm%(Cshed%)=� � Shed$(Cshed%,3)=�(A%+12)+�Shed$(Cshed%,3),3) -� A%>11 � Spm%(Cshed%)=� � Spm%(Cshed%)=� � "� , 6� �saveT @� A%,B% J�upT T� Export% � ^+�exportS("Organiser Telephone Numbers") h�exportS(�(&A)) r�exportS(�(&A)) |� A% = 1 � Ntel% �� B% = 0 � 5 �� B%=3 � �exportS("Tel. ") �� B%=4 � �exportS("Fax ") ��exportS(Tel$(A%,B%)) ��exportS(�(&A)) �� ��exportS(�(&A)) �� �� �$�#F%,Ntel% :� number of numbers �� A% = 1 � Ntel% �� B% = 0 � 5 ��#F%,Tel$(A%,B%) �:� � � & 0� �saveM :� A%,B% D�upM N.� Memo% � A%=Nmem% :B%=2 � A%=Ntodo% :B%=3 X� Export% � bG� Memo% � �exportS("Organiser Memos") � �exportS("Organiser To Do") l�exportS(�(&A)) v�exportS(�(&A)) �� B%=1 � A% �6� Memo% � �exportS(Mem$(B%)) � �exportS(ToDo$(B%)) �#�exportS(�(&A)):�exportS(�(&A)) �� �� ��#F%,B% �!�#F%,A% :� number of numbers �� B% = 1 � A% �,� Memo% � �#F%,Mem$(B%) � �#F%,ToDo$(B%) �� �� �� � � �saveE � A%,B%,r$ �upE � Export% � *"�exportS("Organiser Expenses") 4�exportS(�(&A)) >�exportS(�(&A)) H� A% = 1 � Nexp% R6�exportS(Exp$(A%,0)+"-"+Exp$(A%,1)+"-"+Exp$(A%,2)) \�exportS(�(&A)) f2�exportS(Etype$(Exp%(A%,0))+" - �"+Exp$(A%,4)) p�exportS(�(&A)) z3� Exp%(A%,2) � r$=" reciept" � r$=" no reciept" �.�exportS("Payed by "+Epay$(Exp%(A%,1))+r$) ��exportS(�(&A)) ��exportS(Exp$(A%,3)) �#�exportS(�(&A)):�exportS(�(&A)) �� �� �$�#F%,Nexp% :� number of numbers �� A% = 1 � Nexp% �� B% = 0 � 4 ��#F%,Exp$(A%,B%) �� �� B%=0 � 2 ��#F%,Exp%(A%,B%) �:� � � $ . 8� �saveS B� A%,B%,t$ L�upS V� Export% � `#�exportS("Organiser Scheduler") j�exportS(�(&A)) t�exportS(�(&A)) ~� A% = 1 � Nshed% �$� Spm%(A%) � t$=" pm" � t$=" am" �M�exportS(Shed$(A%,0)+"-"+Shed$(A%,1)+"-"+Shed$(A%,2)+" "+Shed$(A%,3)+t$) ��exportS(�(&A)) ��exportS(Shed$(A%,4)) �#�exportS(�(&A)):�exportS(�(&A)) �� �� � �#F%,1 ��#F%,Nshed% �� A%=1 � Nshed% �� B%=0 � 4 ��#F%,Shed$(A%,B%) � �#F%,Spm%(A%) � � (� 2 <� �loadT(n$) F� A%,B% PF%=�(n$) Z�#F%,Ntel% d� A% = 1 � Ntel% n� B% = 0 � 5 x�#F%,Tel$(A%,B%) ��:� ��#F% �Ctel%=1 � �upTel(0) ��upTot(0,�(Ntel%)) �� � � � �cT �� A%,B% �� Ntel%<>1 � �� A%=Ctel% � Ntel%-1 �� B%=0 � 5 �Tel$(A%,B%)=Tel$(A%+1,B%) �:� Ntel%-=1 �upTel(0) "�upTot(0,�(Ntel%)) ,� 6�7 @� J� T ^� �loadM(n$) h� A%,B% r�upM |Stype$="05B" �F%=�(n$) �B%=�#F% �� B%=2 � Memo%=� � Memo%=� �;� Memo% � �#F%,Nmem% :B%=Nmem% � �#F%,Ntodo%: B%=Ntodo% �� A%=1 � B% �,� Memo% � �#F%,Mem$(A%) � �#F%,ToDo$(A%) �� ��#F% ��_sput(1,7,�(B%)) ��_sput(1,6,"1") ��upMbut(1) �� � � �cM � A%,B% � Memo% � & � Nmem%<>1 � 0 � A%=Cmem% � Nmem%-1 : Mem$(A%)=Mem$(A%+1) D � N Nmem%-=1 X �_sput(1,7,�(Nmem%)) b �upMbut(0) l � v �7 � � �� � � Ntodo%<>1 � � � A%=Ctodo% � Ntodo%-1 � ToDo$(A%)=ToDo$(A%+1) � � � Ntodo%-=1 � �_sput(1,7,�(Ntodo%)) � �upMbut(0) � � � �7 � � �� !� ! !� �loadE(n$) ! � A%,B% !*F%=�(n$) !4�#F%,Nexp% !>� A%=1 � Nexp% !H� B%=0 � 4 !R�#F%,Exp$(A%,B%) !\� !f� B%=0 � 2 !p�#F%,Exp%(A%,B%) !z� !�� !��#F% !��upTot(2,�(Nexp%)) !�Cexp%=1 !� �upExp(0) !�� !� !� � �cE !�� A%,B% !�� Nexp%<>1 � !�� A%=Cexp% � Nexp%-1 !�� B%=0 � 4 !�Exp$(A%,B%)=Exp$(A%+1,B%) "� "� B%=0 � 2 "Exp%(A%,B%)=Exp%(A%+1,B%) "$� ".Nexp%-=1 "8�upTot(2,�(Nexp%)) "B �upExp(0) "L� "V�7 "`� "j� "t "~� �loadS(n$) "�� A%,B% "�F%=�(n$) "�B%=�#F% "��#F%,Nshed% "�� A%=1 � Nshed% "�� B%=0 � 4 "��#F%,Shed$(A%,B%) "�� "��#F%,Spm%(A%) "�� "��#F% "��upTot(3,�(Nshed%)) # Cshed%=1 # �upShed(0) #� # #(� �cShed #2� A%,B% #<� Nshed%<>1 � #F� A%=Cshed% � Nshed%-1 #P� B%=0 � 4 #ZShed$(A%,B%)=Shed$(A%+1,B%) #d� #nSpm%(A%)=Spm%(A%+1) #x� #� Nshed%-=1 #��upShed(0) #��upTot(3,�(Nshed%)) #�� #��7 #�� #�� #� #�� �upTot(w%,v$) #��_sput(w%,7,v$) #�Kș"Wimp_ForceRedraw",!Wn%(w%),IX%(7,w%),IY%(7,w%),IX1%(7,w%),IY1%(7,w%) #�� #� $� �upTn $�_sput(0,7,�(Ntel%)) $Fș"Wimp_ForceRedraw",!Wn%(0),IX%(7,0),IY%(7,0),IX1%(7,0),IY1%(7,0) $"� $, $6� �upTel(i%) $@&ș"Wimp_GetCaretPosition",,tblock% $J Ctel%+=i% $T� Ctel%>Ntel% � Ctel%=Ntel% $^� Ctel%<1 � Ctel%=1 $h� A%=0 � 5 $r!�_sput(0,A%+8,Tel$(Ctel%,A%)) $|(� tblock%!0=telW% � tblock%!4=A%+8 � $�_ș"Wimp_SetCaretPosition",telW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,�(Tel$(Ctel%,A%)) $�� $�� $��_sput(0,6,�(Ctel%)) $�� $� $�� �upShed(i%) $�&ș"Wimp_GetCaretPosition",,tblock% $�Cshed%+=i% $�#� Cshed%>Nshed% � Cshed%=Nshed% $�� Cshed%<1 � Cshed%=1 $�� A%=0 � 4 $�#�_sput(3,A%+8,Shed$(Cshed%,A%)) %)� tblock%!0=shedW% � tblock%!4=A%+8 � %bș"Wimp_SetCaretPosition",shedW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,�(Shed$(Cshed%,A%)) %� %&� %0�_sput(3,6,�(Cshed%)) %:�_am %D� %N %X� �upExp(i%) %b� A% %l&ș"Wimp_GetCaretPosition",,tblock% %v Cexp%+=i% %�� Cexp%>Nexp% � Cexp%=Nexp% %�� Cexp%<1 � Cexp%=1 %�� A%=0 � 4 %�!�_sput(2,A%+8,Exp$(Cexp%,A%)) %�(� tblock%!0=expW% � tblock%!4=A%+8 � %�_ș"Wimp_SetCaretPosition",expW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,�(Exp$(Cexp%,A%)) %�� %�� %��_sput(2,6,�(Cexp%)) %�@� Exp%(Cexp%,2) � $SPoint%(17,2)="yes" � $SPoint%(17,2)="no" %�($SPoint%(13,2)=Etype$(Exp%(Cexp%,0)) %�'$SPoint%(14,2)=Epay$(Exp%(Cexp%,1)) %�Jș"Wimp_ForceRedraw",!Wn%(2),IX%(17,2),IY%(17,2),IX1%(17,2),IY1%(17,2) &Jș"Wimp_ForceRedraw",!Wn%(2),IX%(14,2),IY%(14,2),IX1%(14,2),IY1%(14,2) &Jș"Wimp_ForceRedraw",!Wn%(2),IX%(13,2),IY%(13,2),IX1%(13,2),IY1%(13,2) &� & &*� �upMbut(R%) &4� L% &> � Memo% � &H$SPoint%(9,1)="radioon" &R$SPoint%(10,1)="radiooff" &\ � R%=0 � Cmem%=Nmem%:�mup(0) &f�_sput(1,8,Mem$(Cmem%)) &pL%=�(Mem$(Cmem%)) &z� &�$SPoint%(10,1)="radioon" &�$SPoint%(9,1)="radiooff" &�"� R%=0 � Ctodo%=Ntodo%:�mup(0) &��_sput(1,8,ToDo$(Ctodo%)) &�L%=�(ToDo$(Ctodo%)) &�� &�&ș"Wimp_GetCaretPosition",,tblock% &�&� tblock%!0=memoW% � tblock%!4=8 � &�Qș"Wimp_SetCaretPosition",memoW%,tblock%!4,tblock%!8,tblock%!12,tblock%!16,L% &�� &�Jș"Wimp_ForceRedraw",!Wn%(1),IX%(10,1),IY%(10,1),IX1%(10,1),IY1%(10,1) &�Fș"Wimp_ForceRedraw",!Wn%(1),IX%(9,1),IY%(9,1),IX1%(9,1),IY1%(9,1) &�I� SYS"Wimp_ForceRedraw",!Wn%(1),IX%(8,1),IY%(8,1),IX1%(8,1),IY1%(8,1) '� ' 'ݤsget(x%) '$� x$ '.!ȕ ?x%>&1F x$+=�(?x%):x%+=1:� '8=x$ 'B 'Lݤpg(n%,W%) 'V� A$ '`A$=�sget(SPoint%(n%,W)) 'j =�(A$) 't '~� �_GetIcon(W%,In%) '�� T%,A%,R$ '�R$=�sget(SPoint%(In%,W%)) '�=R$ '� '�� �_sput(W%,In%,X$) '�� A%,x% '�x%=SPoint%(In%,W%) '�A%=1 '�� �(X$)<>0 � '�ȕ A%<>(�(X$)+1) '�?x%=�(�X$,A%,1)) '� x%+=1 ( A%+=1 ( � (� ( ?x%=0 ((Sș"Wimp_ForceRedraw",!Wn%(W%),IX%(In%,W%),IY%(In%,W%),IX1%(In%,W%),IY1%(In%,W%) (2� (< (F� �init (P� A%,B% (ZToFile$="ToDo" (dMemFile$="Memo" (nTelFile$="Tel" (xExpFile$="Exp" (�ShedFile$="Shed" (�� A%=0 � 5 (�Tel$(1,A%)=" " (�� (�� A%=1 � MaxRec% (�Mem$(A%)="" (�ToDo$(A%)="" (�Spm%(A%)=� (�� B%=0 � 4 (�Shed$(A%,B%)="" (�� (�� B%=0 � 2 (�Exp$(A%,B%)="" )Exp%(A%,B%)=1 )� )Exp$(A%,3)="" )"� ),� A%=1 � 4 )6� Epay$(A%) )@� )J�expcat )T �imset )^� Cash,Cheque,Card,Other )h� )r )| � �expcat )�� A%,B%,F% )�F%=�("<ORG$Dir>.ExpCat") )�A%=1 )�� )�Etype$(A%)="" )�� )�B%=�#F% )�*� B%>&1F � Etype$(A%)=Etype$(A%)+�(B%) )�� B%<&20 )� A%+=1 )� � A%=9 )��#F% )�� * *� �imset *� A%,B% *&� A%=0 � 7 *0"$(TypeM%+(A%*25))=Etype$(A%+1) *:� *D� A%=0 � 3 *N $(PayM%+(A%*25))=Epay$(A%+1) *X� *b$Commenu%="Type" *lCommenu%?12=7 *vCommenu%?13=2 *�Commenu%?14=7 *�Commenu%?15=0 *�Commenu%!16=288 *�Commenu%!20=40 *�Commenu%!24=0 *�m%=Commenu%+28 *� *�� A%=0 � 7 *� m%!0=0 *� m%!4=0 *�m%!8=(7<<24)� %100010001 *�m%!12=TypeM%+(A%*25) *�m%!16=0 +m%!20=25 + m%+=24 +� + m%-=24 +*m%!0=&80 +4 +>$Comenu%="Payment" +HComenu%?12=7 +RComenu%?13=2 +\Comenu%?14=7 +fComenu%?15=0 +pComenu%!16=288 +zComenu%!20=40 +�Comenu%!24=0 +�m%=Comenu%+28 +� +�� A%=0 � 3 +� m%!0=0 +� m%!4=0 +�m%!8=(7<<24)� %100010001 +�m%!12=PayM%+(A%*25) +�m%!16=0 +�m%!20=25 +� m%+=24 +�� +� m%-=24 ,m%!0=&80 , ,� ,$ ,.� �newT ,8� A% ,BNtel%+=1:�upTot(0,�(Ntel%)) ,L� A%=0 � 5 ,VTel$(Ntel%,A%)="" ,`� ,j� ,t ,~� �newS ,�� A% ,�!Nshed%+=1:�upTot(3,�(Nshed%)) ,�� A%=0 � 4 ,�Shed$(Nshed%,A%)="" ,�� ,�Spm%(Nshed%)=Spm%(Nshed%-1) ,�� ,� ,�� �newE ,�� A% ,�Nexp%+=1:�upTot(2,�(Nexp%)) ,�� A%=0 � 4 - Exp$(Nexp%,A%)="" - � -!Exp%(Nexp%,0)=Exp%(Nexp%-1,0) -!Exp%(Nexp%,1)=Exp%(Nexp%-1,1) -(!Exp%(Nexp%,2)=Exp%(Nexp%-1,2) -2� -< -F� �mup(I%) -P � Memo% � -Z Cmem%+=I% -d� Cmem%>Nmem% � Cmem%=Nmem% -n� Cmem%<1 � Cmem%=1 -x�_sput(1,6,�(Cmem%)) -�� -�Ctodo%+=I% -�#� Ctodo%>Ntodo% � Ctodo%=Ntodo% -�� Ctodo%<1 � Ctodo%=1 -��_sput(1,6,�(Ctodo%)) -�� -�� -� -�� �newm(I%) -� � Memo% � -� Nmem%+=I% -�#� Nmem%>MaxRec% � Nmem%=MaxRec% -�+� Mmen%<MaxRec% � I%>0 � Mem$(Nmem%)="" .� Nmem%<1 � Nmem%=1 .�_sput(1,7,�(Nmem%)) .� ."Ntodo%+=I% .,%� Ntodo%>MaxRec% � Ntodo%=MaxRec% .6.� Ntodo%<MaxRec% � I%>0 � ToDo$(Ntodo%)="" .@� Ntodo%<1 � Ntodo%=1 .J�_sput(1,7,�(Ntodo%)) .T� .^� .h .r � �_am .|� Spm%(Cshed%) � .�$SPoint%(14,3)="radioon" .�$SPoint%(13,3)="radiooff" .�� .�$SPoint%(13,3)="radioon" .�$SPoint%(14,3)="radiooff" .�� .�Jș"Wimp_ForceRedraw",!Wn%(3),IX%(14,3),IY%(14,3),IX1%(14,3),IY1%(14,3) .�Jș"Wimp_ForceRedraw",!Wn%(3),IX%(13,3),IY%(13,3),IX1%(13,3),IY1%(13,3) .�� .� .�� �_Trans(wh%) .�!q%=wh% .� ș "Wimp_GetWindowState",,q% /(xo%=q%!4-q%!20+8:yo%=q%!16-q%!24-290 /XO%=q%!4:YO%=q%!16 /� /& /0� �pb(w%,i%) /::� i%=0 � $SPoint%(0,w%)="pdown" � $SPoint%(1,w%)="pup" /DOș"Wimp_ForceRedraw",!Wn%(w%),IX%(i%,w%),IY%(i%,w%),IX1%(i%,w%),IY1%(i%,w%) /NRdUD%=� /XRd1%=w%:Rd2%=i% /b� /l /v� �openRX(a%) /�� X%,Y%,B%,A% /�ȗ X%,Y%,B% /�X%-=140:Y%-=90 /�$RXw%!0=rx1W%:RXw%!4=X%:RXw%!8=Y% /�@RXw%!12=306+X%:RXw%!16=168+Y%:RXw%!20=0:RXw%!24=0:RXw%!28=-1 /�ș "Wimp_OpenWindow",,RXw% /�RXtype%=a% /� CkB%=0 /� NbRX%=0:RXcount%=0:RXpram%=0 /�Y%=Mmenu%!148 /�Ȏ RXtype% � /�1� 0: � Y%=1 � RXrecord%=1 � RXrecord%=Ntel%+1 /�C� 1: � Y%=1 � Cshed%=RXrecord%:RXrecord%=1 � RXrecord%=Nshed%+1 01� 2: � Y%=1 � RXrecord%=2 � RXrecord%=Nmem%+1 02� 3: � Y%=1 � RXrecord%=2 � RXrecord%=Ntodo%+1 0A� 5: � Y%=1 � Cexp%=RXrecord%:RXrecord%=1 � RXrecord%=Nexp%+1 0 � 0*� 04 0>� �acCK(A%) 0H � A%>&7F � A%=A% � &FFFFFF00 0RCkB%=CkB%-A% 0\� 0f 0p � �rxINIT 0zș"OS_SerialOp",0,&34,&FF00 0�ș"OS_SerialOp",1,0 0�ș"OS_SerialOp",5,12 0�ș"OS_SerialOp",6,12 0�ș"OS_Byte",2,2 0�Abort%=� 0� CkB%=0 0�� 0� 0�� �_gath(b%) 0�� NbRX%<>0 � �acCK(b%) 0�NbRX%+=1 0�H� NbRX%=2 � b%<>RXtype% � �_setupW("wrong type of data"):Abort%=�:�7 0�� NbRX%=3 � RXcount%=1 1� RXcount%<>0 � 1b%=�transRX(b%) 1Ȏ RXtype% � 1$� 0: � b%<&F8 � 1.p � RXcount%=1 � Tel$(RXrecord%,RXpram%)=�(b%) � Tel$(RXrecord%,RXpram%)=Tel$(RXrecord%,RXpram%)+�(b%) 18 RXcount%+=1 1B � 1L �rxcont(b%) 1V � 1` 1j� 1: � b%<&F8 � 1ts � RXcount%=1 � Shed$(RXrecord%,RXpram%)=�(b%) � Shed$(RXrecord%,RXpram%)=Shed$(RXrecord%,RXpram%)+�(b%) 1~ RXcount%+=1 1� � 1� �rxcont(b%) 1� � 1� 1�� 2: � b%<&F8 � 1�X � RXcount%=1 � Mem$(RXrecord%)=�(b%) � Mem$(RXrecord%)=Mem$(RXrecord%)+�(b%) 1� RXcount%+=1 1� � 1� �rxcont(b%) 1� � 1� 1�� 3: � b%<&F8 � 2 [ � RXcount%=1 � ToDo$(RXrecord%)=�(b%) � ToDo$(RXrecord%)=ToDo$(RXrecord%)+�(b%) 2 RXcount%+=1 2 � 2 �rxcont(b%) 2( � 22 2<� 5: � b%<&F8 � 2Fp � RXcount%=1 � Exp$(RXrecord%,RXpram%)=�(b%) � Exp$(RXrecord%,RXpram%)=Exp$(RXrecord%,RXpram%)+�(b%) 2P RXcount%+=1 2Z � 2d �rxcont(b%) 2n � 2x 2�� 2�� 2�� 2� 2�� �rxcont(b%) 2�, � b%=&FF � RXcount%=1:RXpram%+=1 2�8 � b%=&FE � RXpram%=0:RXrecord%+=1:RXcount%=1 2�M � RXrecord%>MaxRec% � RXrecord%=MaxRec%:�_setupW("too much data") 2�� 2� 2�� �tidy 2�� B%,C%,D% 2�B%=�getS 3CkB%=CkB% � &FF 3H� B%<>CkB% � �_setupW("Check byte was "+�(B%)+" should be "+�(CkB%)) 3B%=�getS 3"4� B%<>&1A � �_setupW("Last byte 1A not correct") 3,� Abort%=� � 36Ȏ RXtype% � 3@?� 0: Ctel%=1:�upTel(0):Ntel%=RXrecord%-1:�upTot(0,�(Ntel%)) 3J/� 1: Nshed%=RXrecord%-1:�upTot(3,�(Nshed%)) 3T � C%=Cshed% � Nshed% 3^# D%=�(�Shed$(C%,0),9,2)) 3h- � D%>12 � Spm%(C%)=� � Spm%(C%)=� 3r# Shed$(C%,4)=Shed$(C%,1) 3|= Shed$(C%,3)=�Shed$(C%,0),9,2)+":"+�Shed$(C%,0),2) 3�' Shed$(C%,2)=�Shed$(C%,0),4) 3�) Shed$(C%,1)=�Shed$(C%,0),5,2) 3�) Shed$(C%,0)=�Shed$(C%,0),7,2) 3� � 3� Cshed%=1 3� �upShed(0) 3�*� 2: Cmem%=1:�mup(0):Nmem%=RXrecord%-1 3�7 � (Mmenu%!148)=1 � �cM � �upTot(1,�(Nmem%)) 3�,� 3: Ctodo%=1:�mup(0):Ntodo%=RXrecord%-1 3�8 � (Mmenu%!148)=1 � �cM � �upTot(1,�(Ntodo%)) 3�-� 5: Nexp%=RXrecord%-1:�upTot(2,�(Nexp%)) 3� � C%=Cexp% � Nexp% 3�: � Exp$(C%,4)="N" � Exp%(C%,2)=� � Exp%(C%,2)=� 4$ Exp%(C%,0)=�(Exp$(C%,1)) 4$ Exp%(C%,1)=�(Exp$(C%,3)) 4! Exp$(C%,3)=Exp$(C%,5) 4&! Exp$(C%,4)=Exp$(C%,2) 40% Exp$(C%,2)=�Exp$(C%,0),4) 4:' Exp$(C%,1)=�Exp$(C%,0),5,2) 4D' Exp$(C%,0)=�Exp$(C%,0),7,2) 4N � 4X Cexp%=1 4b �upExp(0) 4l� 4v� 4�� 4� 4�� �getS 4�� B%,C% 4�� 4�#ș"OS_SerialOp",4,256 � ,B% ;C% 4�C%=C% � &2 4� � C%=0 4�=B% 4� 4�� �empty 4�� B%,C% 4�� 5#ș"OS_SerialOp",4,256 � ,B% ;C% 5C%=C% � &2 5� C%<>0 5 � 5* 54� �acCK(A%) 5> � A%>&7F � A%=A% � &FFFFFF00 5HCkB%=CkB%-A% 5R� 5\ 5f� �TXmem 5p� A%,B%,C% 5z�rxINIT 5�ș"Hourglass_Start",10 5� �TXb(&50) 5��TXb(2):�acCK(2) 5�C%=Cmem% 5�(� Mmenu%!100=0 � B%=Nmem% � B%=Cmem% 5�� A%=C% � B% 5��TXs(Mem$(A%)) 5��TXb(&FE):�acCK(&FE) 5�� 5� �finishTX 5�� 5� 5� � �TXtodo 6� A%,B%,C% 6�rxINIT 6ș"Hourglass_Start",10 6$ �TXb(&50) 6.�TXb(3):�acCK(3) 68 C%=Ctodo% 6B*� Mmenu%!100=0 � B%=Ntodo% � B%=Ctodo% 6L� A%=C% � B% 6V�TXs(ToDo$(A%)) 6`�TXb(&FE):�acCK(&FE) 6j� 6t �finishTX 6~� 6� 6�� �TXtel 6�� A%,B%,C%,D% 6��rxINIT 6�ș"Hourglass_Start",10 6� �TXb(&50) 6��TXb(0):�acCK(0) 6�C%=Ctel% 6�(� Mmenu%!100=0 � B%=Ntel% � B%=Ctel% 6�� A%=C% � B% 6�� D%=0 � 5 6��TXs(Tel$(A%,D%)) 7 �TXb(&FF):�acCK(&FF) 7 � 7�TXb(&FE):�acCK(&FE) 7� 7( �finishTX 72� 7< 7F� �TXexp 7P� A%,B%,C%,D%,t$ 7Z�rxINIT 7dș"Hourglass_Start",10 7n �TXb(&50) 7x�TXb(5):�acCK(5) 7�C%=Cexp% 7�(� Mmenu%!100=0 � B%=Nexp% � B%=Cexp% 7�� A%=C% � B% 7�2�TXs(Exp$(A%,2)+Exp$(A%,1)+Exp$(A%,0)) :� Date 7��TXb(&FF):�acCK(&FF) 7� �TXs(�(Exp%(A%,0))) : � Type 7��TXb(&FF):�acCK(&FF) 7�&�TXs(Exp$(A%,4)) : � Ammount 7��TXb(&FF):�acCK(&FF) 7�&�TXs(�(Exp%(A%,1))) : � Pay method 7��TXb(&FF):�acCK(&FF) 7�4� Exp%(A%,2) � �TXs("Y") � �TXs("N") : � Reciept 7��TXb(&FF):�acCK(&FF) 8#�TXs(Exp$(A%,3)) : � Note 8�TXb(&FE):�acCK(&FE) 8� 8" �finishTX 8,� 86 8@ � �TXshed 8J� A%,B%,C%,D%,t$ 8T�rxINIT 8^ș"Hourglass_Start",10 8h �TXb(&50) 8r�TXb(1):�acCK(1) 8| C%=Cshed% 8�*� Mmenu%!100=0 � B%=Nshed% � B%=Cshed% 8�� A%=C% � B% 8�V� �(Shed$(A%,3)) = 5 � t$=�Shed$(A%,3),2)+�Shed$(A%,3),2) � t$=�makeT(Shed$(A%,3)) 8�0�TXs(Shed$(A%,2)+Shed$(A%,1)+Shed$(A%,0)+t$) 8��TXb(&FF):�acCK(&FF) 8��TXs(Shed$(A%,4)) 8��TXb(&FE):�acCK(&FE) 8�� 8� �finishTX 8�� 8� 8�� �makeT(a$) 8�� t$,L%,C% 9 t$=a$ 9C%=�a$,":") 9L%=�(a$) 9& � C%<>0 � 90ȕ L%<5 9: a$="0"+a$ 9D L%+=1 9N� 9XC%=�a$,":") 9bt$=�a$,C%-1)+�a$,L%-C%) 9l� 9vȕ L%<4 9� t$="0"+t$ 9� L%+=1 9�� 9�� 9�=t$ 9� 9�� �finishTX 9�� Abort% � 9�:�_setupW("Buffer overflow, hardware not connected"):�7 9�� 9��TXb(&F8):�acCK(&F8) 9��TXb(CkB%) 9� �TXb(&1A) :� :ș"Hourglass_Off" :� : :* :4� �TXs(s$) :>� A%,B% :H� A%=1 � �(s$) :RB%=�(�s$,A%,1)) :\B%=�transTX(B%) :f�TXb(B%):�acCK(B%) :p� :z� :� :�� �TXb(b%) :�� T% :�� �(Abort%) � :�T%=�+50 :�� :�ș"OS_SerialOp",3,b% � ;C% :� C%=C% � 2 :�� C%=0 � �>T% :�� C%<>0 � Abort%=� :�� :�� :� ;� �exportS(s$) ;� A%,C% ;� A%=1 � �(s$) ;$C%=�(�s$,A%,1)) ;.� C%=172 � C%=&A ;8�#F%,C% ;B� ;L� ;V ;`� �transTX(A%) ;j� B% ;t B%=A% ;~� A%=172 � B%=&13 ;�� A%=&60 � B%=&26 ;�� A%=&7C � B%=&21 ;�� A%=&3A � B%=&21 ;�*� A%>&60 � A%<>172 � B%=A% � &5F:A%=B% ;�� A%<&30 � ;�Ȏ A% � ;�� &20 :B%=&20 ;�� &24 :B%=&27 ;�� &2F :B%=&24 ;�� &2E :B%=&29 ;�� &2D :B%=&28 ;�� &27 :B%=&22 <