Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199312.adf » !TelAdBook_TelAdBook » !TelAddr/!RunImage

!TelAddr/!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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199312.adf » !TelAdBook_TelAdBook
Filename: !TelAddr/!RunImage
Read OK:
File size: DA43 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >ADFS::MADEVAL4.$.TelAddr.!TelAddr.!RunImage
   20name1$="TelAddr":name2$="TelAddr":skip%=0:poll%=FALSE:f%=-1:init%=FALSE:DIM b% &800
   30ON ERROR IF FNerr=0 THEN PROCclose_down ELSE skip%=1
   40IF skip%=0 PROCinit:PROCassemble:PROCdefine:skip%=0:poll%=TRUE:PROCcheck_load
   50skip%=0:poll%=TRUE:PROCpoll
   60PROCclose_down
   70END
   80:
   90DEFFNerr:error%=0
  100IF poll% THEN
  110  e$=REPORT$+" ("+STR$(ERR)+") at line "+STR$(ERL):e%=continue_quit%:e2%=0
  120  IF ERR=71622 THEN CLOSE#f%:SYS "OS_File",6,filename$:e$=REPORT$:e%=ok%
  130  IF ERR=204 OR ERR=67785 OR ERR=67797 OR ERR=67778 e$=REPORT$:e%=ok%
  140  IF ERR=193 OR ERR=195 CLOSE#f%:e$="File is locked.":e%=ok%
  150  SYS "WimpExt_OpenRequester",,,"Error from TelAddr",e$,e%,e2%
  160  req%=-1:error%=1
  170ELSE
  180  e$=REPORT$+" ("+STR$(ERR)+") at line "+STR$(ERL)+", quit program ?":leave%=0
  190  IF ERR=67797 e$=REPORT$:leave%=1
  200  IF leave%=0 THEN error%=FNerror(e$) EOR 1 ELSE PROCerror(e$):error%=0
  210ENDIF
  220=error%
  230:
  240DEFPROCinit
  250SYS "OS_GetEnv" TO a$:IF INSTR(a$,"-file ") THEN chk_ld%=1:chk_ld$=MID$(a$,INSTR(a$,"-file ")+6) ELSE chk_ld%=0
  260tel_ft%=&100:prog_ver%=103:file_ver%=100:date$="13-Aug-93":code_len%=1024
  270DIM b2% &300,b3% &100,code% code_len%
  280DIM s1% &A0,m1% &A0,m2% &100,m3% &100,m4% &A0,m6% &A0,m7% &A0,m8% &A0
  290DIM goto% 4,goto_val% 8,template% 11*1024,indir% 17*1024,fonts% 256
  300end_indir%=indir%+(17*1024)
  310$goto%="":$goto_val%="a0-9"
  320total_max%=256
  330rec_len%  =11*32
  340DIM tab% total_max%*rec_len%,pointers% total_max%*4,table% total_max%*11*12
  350FOR I%=tab% TO tab%+(total_max%*rec_len%) STEP rec_len%:$I%="":NEXT
  360DIM menu% &100,val% 16:menu_pos%=0:$val%=""
  370DIM ok_cancel% 40,ok% 40,continue_quit% 40,save_discard_cancel% 40
  380PROCbuttons(ok_cancel%,"OK","Cancel","","")
  390PROCbuttons(ok%,"OK","","","")
  400PROCbuttons(continue_quit%,"Continue","Quit","","")
  410PROCbuttons(save_discard_cancel%,"Save","Discard","Cancel","")
  420my_font$="Trinity.Medium":okay%=0
  430count%=0:REPEAT:SYS "Font_ListFonts",,b%,count%,-1 TO ,,count%
  440IF count%<>-1 THEN
  450  IF $b%=my_font$ okay%=1
  460ENDIF
  470UNTIL count%=-1
  480IF okay%=0 THEN PROCerror("!TelAddr needs to have 'seen' the Trinity.Medium font before it is loaded."):PROCclose_down
  490DIM sa% 15*1024
  500sa%!0=15*1024:sa%!4=0:sa%!8=16:SYS 46,256+10,sa%,"<"+name1$+"$Dir>.Sprites"
  510PROCinittask(name2$):init%=TRUE
  520FOR I=0 TO 12:b%!(I*4)=0:NEXT
  530SYS "WimpExt_LoadTemplates",b%,template%,indir%,end_indir%,fonts%,"<"+name1$+"$Dir>.Templates",sa%
  540file_info%=b%!0:tools%=b%!4:pos%=b%!8:search%=b%!12:save_as1%=b%!16:list_pane%=b%!20:book%=b%!24:save_as%=b%!28:list%=b%!32:pref_pane%=b%!36:save_as2%=b%!40:pref%=b%!44:info%=b%!48
  550SYS "WimpExt_LinkWindows",,,book%,tools%
  560SYS "WimpExt_LinkWindows",,,list%,list_pane%
  570SYS "WimpExt_LinkWindows",,,pref%,pref_pane%
  580SYS "WimpExt_SetIconString",,,info%,7,"Mark Hobson"
  590v$=STR$(prog_ver% MOD 100):SYS "WimpExt_SetIconString",,,info%,9,STR$(prog_ver% DIV100)+"."+STRING$(2-LENv$,"0")+v$+" ("+date$+")"
  600SYS "WimpExt_SetIconString",,,info%,11,"(c)1993 Acorn User"
  610SYS "WimpExt_ColoursMenu",0,0 TO col_menu%
  620SYS "WimpExt_IconBarSprite",,,-1,"!teladdr",,3 TO bar%
  630optX%=1:quit%=0:max%=0:record%=0:pos$="":pos_record%=0:req%=-1:searched%=0:failed%=0
  640good_book$="AddrBook":good_search$="Searched":good_address$="Address":save_quit%=0
  650pane_1%=1:pane_2%=1
  660PROCpos:PROCload_prefs(1):PROCblank_record(record%):PROCdisplay(record%):PROCstore(record%)
  670PROCmodified(0):trans_len%=-1
  680ENDPROC
  690:
  700DEFPROCassemble
  710FOR I%=8 TO 10 STEP 2:P%=code%:L%=code%+code_len%:[OPT I%
  720
  730  ; On entry - R0 = array pointer
  740  ;            R1 = total number of fields
  750  ;
  760  ; On exit  - R0 = file length in bytes
  770
  780  .file_length STMFD R13!,{R14}
  790               MOV   R2,#0
  800  .fl_1        MOV   R3,#0
  810  .fl_2        LDRB  R4,[R0,R3]
  820               ADD   R2,R2,#1
  830               ADD   R3,R3,#1
  840               CMP   R4,#32
  850               BGE   fl_2
  860               ADD   R0,R0,#32
  870               SUBS  R1,R1,#1
  880               BNE   fl_1
  890               MOV   R0,R2
  900               LDMFD R13!,{PC}
  910
  920  ; On entry - R0 = array pointer
  930  ;            R1 = pointers array pointer
  940  ;            R2 = number of records (0..n)
  950  ;            R3 = record length
  960
  970  .sort        STMFD R13!,{R14}
  980               MOV   R2,R2,LSL#2
  990               MOV   R4,#0
 1000  .sort_1      MLA   R5,R4,R3,R0
 1010               LDR   R6,[R1,R4,LSL#2]
 1020               MOV   R9,R5
 1030               MOV   R10,R6
 1040               CMP   R5,R6
 1050               BEQ   sort_4
 1060               STMFD R13!,{R0-R4,R8-R10}
 1070               MOV   R7,#0
 1080  .sort_2      LDMIA R5 ,{R0-R3}
 1090               LDMIA R6 ,{R4,R8-R10}
 1100               STMIA R6!,{R0-R3}
 1110               STMIA R5!,{R4,R8-R10}
 1120               LDMIA R5 ,{R0-R3}
 1130               LDMIA R6 ,{R4,R8-R10}
 1140               STMIA R6!,{R0-R3}
 1150               STMIA R5!,{R4,R8-R10}
 1160               ADD   R7,R7,#32
 1170               CMP   R7,#320
 1180               BLE   sort_2
 1190               LDMFD R13!,{R0-R4,R8-R10}
 1200               MOV   R7,#0
 1210  .sort_3      LDR   R8,[R1,R7]
 1220               CMP   R8,R9
 1230               STREQ R10,[R1,R7]
 1240               ADD   R7,R7,#4
 1250               CMP   R7,R2
 1260               BLE   sort_3
 1270  .sort_4      ADD   R4,R4,#1
 1280               MOV   R11,R2,LSR#2
 1290               CMP   R4,R11
 1300               BLE   sort_1
 1310               LDMFD R13!,{PC}
 1320
 1330  ; On entry - R0 = array pointer
 1340  ;            R1 = number of records (0..n)
 1350  ;            R2 = record length
 1360  ;            R3 = results table pointer
 1370  ;            R4 = search string pointer (including wild-cards)
 1380  ;            R5 = search string length
 1390  ;            R6 = flags - bits 0-10 = field flags
 1400  ;            R7 = case sensitive
 1410  ;
 1420  ; On exit  - R0 = number of strings matched (0..n)
 1430
 1440  .search      STMFD R13!,{R14}
 1450               STR   R6,search_flag
 1460               MOV   R6,R7
 1470               MOV   R7,#0
 1480               STR   R7,search_len
 1490  .search_1    MOV   R8,#0
 1500  .search_2    LDR   R9,search_flag
 1510               MOV   R10,#1
 1520               AND   R9,R9,R10,LSL R8
 1530               CMP   R9,#0
 1540               BEQ   search_next
 1550               MLA   R9,R7,R2,R0
 1560               ADD   R9,R9,R8,LSL#5
 1570               MOV   R10,#0
 1580               MOV   R14,#0
 1590               LDRB  R11,[R4,R14]
 1600               LDRB  R12,[R9,R10]
 1610               CMP   R12,#32
 1620               BLT   search_next
 1630               CMP   R11,#ASC"#"
 1640               BEQ   search_3b
 1650               CMP   R11,#ASC"*"
 1660               BEQ   search_3x2
 1670  .search_3    LDRB  R12,[R9,R10]
 1680               CMP   R12,#32
 1690               BLT   search_next
 1700               CMP   R6,#0
 1710               BNE   search_3a
 1720               CMP   R12,#65
 1730               BLT   search_3a
 1740               CMP   R12,#90
 1750               BGT   search_3a
 1760               ORR   R12,R12,#32
 1770  .search_3a   CMP   R11,R12
 1780               BNE   search_4
 1790  .search_3b   LDRB  R11,[R4,R14]
 1800               LDRB  R12,[R9,R10]
 1810               CMP   R12,#32
 1820               BLT   search_next
 1830               CMP   R11,#ASC"#"
 1840               BEQ   search_3x1
 1850               CMP   R11,#ASC"*"
 1860               BEQ   search_3x2
 1870               CMP   R6,#0
 1880               BNE   search_3x
 1890               CMP   R12,#65
 1900               BLT   search_3x
 1910               CMP   R12,#90
 1920               BGT   search_3x
 1930               ORR   R12,R12,#32
 1940  .search_3x   CMP   R11,R12
 1950               BNE   search_3c
 1960  .search_3x1  ADD   R10,R10,#1
 1970               CMP   R10,#31
 1980               BEQ   search_next
 1990               ADD   R14,R14,#1
 2000               CMP   R14,R5
 2010               BLT   search_3b
 2020  .search_3x2  STR   R7,[R3],#4
 2030               STR   R8,[R3],#4
 2040               SUB   R10,R10,R14
 2050               ADD   R10,R10,#1
 2060               STR   R10,[R3],#4
 2070               LDR   R11,search_len
 2080               ADD   R11,R11,#1
 2090               STR   R11,search_len
 2100               B     search_next
 2110  .search_3c   MOV   R14,#0
 2120               LDRB  R11,[R4,R14]
 2130               B     search_3
 2140  .search_4    ADD   R10,R10,#1
 2150               CMP   R10,#31
 2160               BEQ   search_next
 2170               B     search_3
 2180  .search_next ADD   R8,R8,#1
 2190               CMP   R8,#10
 2200               BLE   search_2
 2210               ADD   R7,R7,#1
 2220               CMP   R7,R1
 2230               BLE   search_1
 2240               LDR   R0,search_len
 2250               LDMFD R13!,{PC}
 2260
 2270  .search_len  EQUD  0
 2280  .search_flag EQUD  0
 2290
 2300  ; On entry - R0 = array pointer
 2310  ;            R1 = number of records (0..n)
 2320  ;            R2 = start record (0..n)
 2330  ;            R3 = record length
 2340
 2350  .insert      STMFD R13!,{R14}
 2360               MUL   R5,R1,R3
 2370               ADD   R0,R0,R5
 2380  .insert_1    MOV   R4,#11
 2390               ADD   R5,R0,R3
 2400  .insert_2    LDMIA R0!,{R6-R12,R14}
 2410               STMIA R5!,{R6-R12,R14}
 2420               SUBS  R4,R4,#1
 2430               BNE   insert_2
 2440               SUB   R0,R0,R3
 2450               SUB   R0,R0,R3
 2460               SUB   R1,R1,#1
 2470               CMP   R1,R2
 2480               BGE   insert_1
 2490               LDMFD R13!,{PC}
 2500
 2510  ; On entry - R0 = array pointer
 2520  ;            R1 = number of records (0..n)
 2530  ;            R2 = start record (0..n)
 2540  ;            R3 = record length
 2550
 2560  .delete      STMFD R13!,{R14}
 2570               MUL   R5,R2,R3
 2580               ADD   R0,R0,R5
 2590  .delete_1    MOV   R4,#11
 2600               ADD   R5,R0,R3
 2610  .delete_2    LDMIA R5!,{R6-R12,R14}
 2620               STMIA R0!,{R6-R12,R14}
 2630               SUBS  R4,R4,#1
 2640               BNE   delete_2
 2650               ADD   R2,R2,#1
 2660               CMP   R2,R1
 2670               BLT   delete_1
 2680               LDMFD R13!,{PC}
 2690
 2700  ; On entry - R0 = pointer to string
 2710
 2720  .cut         MOV   R1,#0
 2730  .cut_1       LDRB  R2,[R0,R1]
 2740               CMP   R2,#32
 2750               ADDGE R1,R1,#1
 2760               BGE   cut_1
 2770               MOV   R3,#13
 2780               STRB  R3,[R0,R1]
 2790               MOV   PC,R14
 2800
 2810  ; On entry - R0 = pointer to string
 2820  ; On exit  - R0 = length of string
 2830
 2840  .cut2        MOV   R1,#0
 2850  .cut2_1      LDRB  R2,[R0,R1]
 2860               CMP   R2,#32
 2870               ADDGE R1,R1,#1
 2880               BGE   cut2_1
 2890               MOV   R3,#10
 2900               STRB  R3,[R0,R1]
 2910               MOV   R0,R1
 2920               MOV   PC,R14
 2930
 2940  ; On entry - R0 = pointer to table
 2950  ;            R1 = number of entries (1..n)
 2960  ;
 2970  ; On exit  - R0 = number of actual records
 2980
 2990  .count_rec   STMFD R13!,{R14}
 3000               MVN   R2,#0
 3010               MOV   R4,#0
 3020  .count_rec_1 LDR   R3,[R0],#12
 3030               CMP   R3,R2
 3040               BNE   count_rec_2
 3050               MOV   R2,R3
 3060               SUBS  R1,R1,#1
 3070               BEQ   count_rec_3
 3080               B     count_rec_1
 3090  .count_rec_2 MOV   R2,R3
 3100               ADD   R4,R4,#1
 3110               SUBS  R1,R1,#1
 3120               BNE   count_rec_1
 3130  .count_rec_3 MOV   R0,R4
 3140               LDMFD R13!,{PC}
 3150
 3160]:NEXT:ENDPROC
 3170:
 3180DEFPROCcheck_load
 3190IF chk_ld% PROCload_file(chk_ld$,0) ELSE IF load% PROCload_file(load$,0)
 3200ENDPROC
 3210:
 3220DEFPROCbuttons(but%,a$,b$,c$,d$)
 3230$but%=a$:but%+=LENa$+1:$but%=b$:but%+=LENb$+1:$but%=c$:but%+=LENc$+1:$but%=d$
 3240ENDPROC
 3250:
 3260DEFPROCinittask(a$):$b%="TASK"
 3270SYS "Wimp_Initialise",200,!b%,a$ TO ,task_handle%
 3280SYS "WimpExt_Initialise",5,task_handle%,%0111101 TO wimpext%
 3290ENDPROC
 3300:
 3310DEFPROCdefine
 3320PROCcreatemenu(m1%,"TelAddr","Info>info%,Preferences...,Save book>save_as%#E,Quit",e1)
 3330PROCcreatemenu(m4%,"Misc","Info>info%,File>file_info%#E",e4)
 3340PROCcreatemenu(m2%,"Save","Save book     F3>save_as%#E,Save search  �F3>save_as1%#E,Save address ^F3>save_as2%#E",e2)
 3350PROCcreatemenu(m6%,"Search","Save>save_as1%#E,Search...,Delete",e6)
 3360PROCcreatemenu(m7%,"Edit","Add before,Add after,Delete record,Clear record#L,Delete book",e7)
 3370PROCcreatemenu(m8%,"Display","Toolbox,Position",e8)
 3380PROCcreatemenu(m3%,"TelAddr","Misc>m4%,Save    F3>m2%,Search>m6%,Edit>m7%,Display>m8%",e3)
 3390PROCsub(s1%,"Goto record:",goto%,goto_val%,4)
 3400ENDPROC
 3410:
 3420DEFPROCj(j1%,j2%,j3%):j1%!(32+(j2%*24))=j3%:ENDPROC
 3430:
 3440DEFPROCpoll
 3450IF failed% THEN failed%=0:req%=0:SYS "WimpExt_OpenRequester",,,"Message from TelAddr","Default address book does not exist, load failed.",ok%,0
 3460WHILE NOT quit%
 3470  SYS "WimpExt_PrePoll"
 3480  SYS "Wimp_Poll",0,b% TO reason%
 3490  SYS "WimpExt_Action",task_handle%,b%,reason% TO reason%
 3500  CASE reason% OF
 3510    WHEN 1:PROCredraw(!b%)
 3520    WHEN 2:SYS "WimpExt_OpenLinked",,b%:IF !b%=book% PROCopen_pos_pane
 3530    WHEN 3:SYS "WimpExt_CloseLinked",,b%:IF !b%=book% !b%=pos%:SYS "Wimp_CloseWindow",,b%
 3540    WHEN 6:PROCclick
 3550    WHEN 7:PROCinit_save
 3560    WHEN 8:PROCkey_pressed
 3570    WHEN 9:PROCmenuselect
 3580    WHEN 10:PROCscroll_req
 3590    WHEN 17,18:PROCservice
 3600    WHEN 19:REM SYS "OS_File",6,b%+44:req%=0:SYS "WimpExt_OpenRequester",,,"Warning from TelAddr","Data transfer failed: Receiver died",ok%,0
 3610  ENDCASE
 3620ENDWHILE
 3630ENDPROC
 3640:
 3650DEFPROCservice
 3660CASE b%!16 OF
 3670  WHEN 0:PROCquit
 3680  WHEN 1:PROCsave_ack
 3690  WHEN 2:PROCdata_save
 3700  WHEN 3:CASE b%!20 OF
 3710    WHEN book%,-2:IF FNload_ack PROCstore(record%):PROCload_file(FNstring(b%+44),1):IF failed% THEN failed%=0:req%=0:SYS "WimpExt_OpenRequester",,,"Message from TelAddr","File does not exist, load failed.",ok%,0
 3720    WHEN pref%,pref_pane%:IF FNload_ack SYS "WimpExt_SetIconString",,,pref_pane%,65,FNstring(b%+44)
 3730  ENDCASE
 3740  IF LEFT$(FNstring(b%+44),12)="<Wimp$Scrap>" THEN SYS "OS_File",6,FNstring(b%+44):temp%=FNload_ack
 3750  WHEN 5:IF FNload_ack THEN
 3760      mod_filename$=FNstring(b%+44):PROCstore(record%)
 3770      IF modified%=0 THEN
 3780        PROCload_file(mod_filename$,0):IF failed% THEN failed%=0:req%=0:SYS "WimpExt_OpenRequester",,,"Message from TelAddr","File does not exist, load failed.",ok%,0
 3790      ELSE
 3800        req%=5:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","The current address book has not been saved, do you want to save it ?",save_discard_cancel%,2
 3810      ENDIF
 3820    ENDIF
 3830  WHEN 6:PROCram_fetch
 3840  WHEN &502:PROChelp
 3850  WHEN &400C0:PROCmenu_warning
 3860ENDCASE
 3870ENDPROC
 3880:
 3890DEFPROCkey_pressed:w%=!b%:i%=b%!4:k%=b%!24
 3900CASE TRUE OF
 3910  WHEN w%=save_as% AND (i%=6 OR i%=10) AND (k%=13 OR k%=398 OR k%=399)
 3920    PROCsortout_partial((i%-6)/4,save_as%,6,10)
 3930    IF i%=6 SYS "WimpExt_PutCaretIcon",,,save_as%,10 ELSE SYS "WimpExt_PutCaretIcon",,,save_as%,6
 3940  WHEN w%=pref_pane% AND (i%=39 OR i%=43) AND (k%=13 OR k%=398 OR k%=399)
 3950    PROCsortout_partial((i%-39)/4,pref_pane%,39,43)
 3960    IF i%=39 SYS "WimpExt_PutCaretIcon",,,pref_pane%,43 ELSE SYS "WimpExt_PutCaretIcon",,,pref_pane%,39
 3970  WHEN (w%=book% OR w%=search%) AND (k%=387 OR k%=403 OR k%=419)
 3980    CASE k% OF
 3990      WHEN 387:PROCopen_save(save_as%,good_book$)
 4000      WHEN 403:IF searched% PROCopen_save(save_as1%,good_search$) ELSE req%=0:SYS "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot save the search results until you perform a search.",ok%,0
 4010      WHEN 419:PROCopen_save(save_as2%,good_address$)
 4020    ENDCASE
 4030OTHERWISE
 4040  SYS "Wimp_ProcessKey",k%
 4050ENDCASE
 4060ENDPROC
 4070:
 4080DEFPROCsortout_partial(type%,w%,i1%,i2%)
 4090p1%=FNval(w%,i1%):p2%=FNval(w%,i2%)
 4100IF p1%<1 p1%=1
 4110IF p2%<1 p2%=1
 4120IF p1%>max%+1 p1%=max%+1
 4130IF p2%>max%+1 p2%=max%+1
 4140IF type%=0 THEN
 4150  IF p1%>p2% p1%=p2%
 4160  IF p2%<p1% p2%=p1%
 4170ELSE
 4180  IF p2%<p1% p2%=p1%
 4190  IF p1%>p2% p1%=p2%
 4200ENDIF
 4210SYS "WimpExt_SetNumberIcon",,,w%,i1%,p1%
 4220SYS "WimpExt_SetNumberIcon",,,w%,i2%,p2%
 4230ENDPROC
 4240:
 4250DEFPROCmenu_warning
 4260mw1%=b%!20:mw2%=b%!24:mw3%=b%!28
 4270CASE om% OF
 4280  WHEN m1%:CASE b%!32 OF
 4290    WHEN 2:PROCprepare_book
 4300  ENDCASE
 4310  WHEN m3%:CASE b%!32 OF
 4320    WHEN 0:CASE b%!36 OF
 4330      WHEN 1:PROCstore(record%):PROCcalc_file_len:IF modified% a$="Yes" ELSE a$="No"
 4340        SYS "WimpExt_SetIconString",,,file_info%,7,a$
 4350    ENDCASE
 4360    WHEN 1:CASE b%!36 OF
 4370      WHEN 0:PROCprepare_book
 4380      WHEN 1:PROCprepare_search
 4390      WHEN 2:PROCprepare_address
 4400    ENDCASE
 4410    WHEN 2:CASE b%!36 OF
 4420      WHEN 0:PROCprepare_search
 4430    ENDCASE
 4440  ENDCASE
 4450ENDCASE
 4460SYS "Wimp_CreateSubMenu",,mw1%,mw2%,mw3%
 4470ENDPROC
 4480:
 4490DEFPROCprepare_book:save_quit%=0:filename%=FNin_addr(save_as%,0)
 4500SYS "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1
 4510PROCsortout_partial(0,save_as%,6,10)
 4520ENDPROC
 4530:
 4540DEFPROCprepare_search:save_quit%=0:filename%=FNin_addr(save_as1%,0)
 4550SYS "WimpExt_SetIconString",,,save_as1%,0,good_search$:save_type%=2
 4560ENDPROC
 4570:
 4580DEFPROCprepare_address:save_quit%=0:filename%=FNin_addr(save_as2%,0)
 4590SYS "WimpExt_SetIconString",,,save_as2%,0,good_address$:save_type%=3
 4600ENDPROC
 4610:
 4620DEFPROCclose_down
 4630IF init% SYS "WimpExt_CloseDown",task_handle%:SYS "Wimp_CloseDown"
 4640END
 4650ENDPROC
 4660:
 4670DEFPROCopen_pos_pane
 4680IF pane_2% THEN
 4690  x1%=b%!4:x2%=x1%+678:y1%=b%!8-4:y2%=y1%-84
 4700  p%=b%!28:!b2%=pos%:SYS "Wimp_GetWindowInfo",,b2%
 4710  b2%!4=x1%:b2%!8=y2%:b2%!12=x2%:b2%!16=y1%:b2%!28=p%
 4720  SYS "Wimp_OpenWindow",,b2%:b%!28=pos%
 4730ENDIF
 4740ENDPROC
 4750:
 4760DEFPROCopen_window(!b%):SYS "Wimp_GetWindowState",,b%:b%!28=-1
 4770SYS "WimpExt_CentreWindow",,b%+4
 4780SYS "WimpExt_OpenLinked",,b%:IF !b%=book% PROCopen_pos_pane
 4790ENDPROC
 4800:
 4810DEFPROCopen(!b%):SYS "Wimp_GetWindowState",,b%
 4820SYS "WimpExt_OpenLinked",,b%:IF !b%=book% PROCopen_pos_pane
 4830ENDPROC
 4840:
 4850DEFPROCopen_at(!b%,x%,y%):SYS "Wimp_GetWindowState",,b%
 4860w%=b%!12-b%!4:h%=b%!16-b%!8:b%!4=x%:b%!8=y%-h%:b%!12=x%+w%:b%!16=y%
 4870SYS "WimpExt_OpenLinked",,b%:ENDPROC
 4880:
 4890DEFPROCclose_window(!b%):SYS "WimpExt_CloseLinked",,b%
 4900IF !b%=book% !b%=pos%:SYS "Wimp_CloseWindow",,b%
 4910IF !b%=list% searched%=0
 4920ENDPROC
 4930:
 4940DEFPROCdelete_book
 4950PROCblank_record(0):record%=0:max%=0:PROCdisplay(record%):PROCpos
 4960SYS "WimpExt_PutCaretIcon",,,book%,9
 4970PROCclose_window(list%):PROCmodified(1)
 4980ENDPROC
 4990:
 5000DEFPROCclick
 5010x%=b%!0:y%=b%!4:c%=b%!8:w%=b%!12:i%=b%!16
 5020SYS "XWimpExt_SlabIcon",,,w%,i%,0
 5030CASE w% OF
 5040  WHEN -3:CASE req% OF
 5050    WHEN -1:IF i%=1 quit%=-1
 5060    WHEN 0:REM 'OK' click from a reminder requester
 5070    WHEN 1:IF i%=0 PROCdelete_record(record%,1)
 5080    WHEN 2:IF i%=0 PROCdelete_book
 5090    WHEN 3:IF i%=0 PROCdelete_searched
 5100    WHEN 4:CASE i% OF
 5110      WHEN 0:SYS "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1:SYS "WimpExt_OpenDialogue",,,save_as%,148,70:save_quit%=1
 5120      WHEN 1:quit%=-1:PROCmodified(0)
 5130    ENDCASE
 5140    WHEN 5:CASE i% OF
 5150      WHEN 0:SYS "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1:SYS "WimpExt_OpenDialogue",,,save_as%,148,70
 5160      WHEN 1:PROCload_file(mod_filename$,0)
 5170    ENDCASE
 5180    WHEN 6:IF i%=0 PROCblank_record(record%):PROCdisplay(record%):IF FNopen(book%) SYS "WimpExt_PutCaretIcon",,,book%,9
 5190  ENDCASE
 5200  WHEN -2:CASE c% OF
 5210    WHEN 4:PROCopen_window(book%):SYS "WimpExt_PutCaretIcon",,,book%,9
 5220    WHEN 2:PROCmenu(m1%,x%,y%,TRUE,e1)
 5230  ENDCASE
 5240  WHEN save_as%,save_as1%,save_as2%
 5250  CASE TRUE OF
 5260    WHEN i%=1 AND (c% AND &50)>0:SYS "WimpExt_GetIcon",,,w%,3 TO ascii%
 5270    IF ascii% ft%=&FFF ELSE ft%=tel_ft%
 5280    SYS "WimpExt_DragIcon",%10000101,1,w%,1,"file_"+STR$~ft%
 5290    WHEN i%=2 AND (c% AND 5)>0:PROCquick_save
 5300    WHEN i%=3 AND (c%=4 OR c%=1):SYS "WimpExt_SetIcon",,,w%,1,FNon(w%,1) EOR 1
 5310  ENDCASE
 5320  CASE w% OF
 5330    WHEN save_as2%:CASE i% OF
 5340      WHEN 3:PROCsave2_size
 5350    ENDCASE
 5360    WHEN save_as%:CASE i% OF
 5370      WHEN 4:PROCsave_size
 5380      WHEN 7:SYS "WimpExt_DecNumberIcon",,,save_as%,6,1,1
 5390      WHEN 8:SYS "WimpExt_IncNumberIcon",,,save_as%,6,FNval(save_as%,10),1
 5400      WHEN 11:SYS "WimpExt_DecNumberIcon",,,save_as%,10,FNval(save_as%,6),1
 5410      WHEN 12:SYS "WimpExt_IncNumberIcon",,,save_as%,10,max%+1,1
 5420    ENDCASE
 5430  ENDCASE
 5440  WHEN tools%
 5450  CASE i% OF
 5460    WHEN 0:PROCclose_window(list%):PROCopen_window(search%):SYS "WimpExt_PutCaretIcon",,,search%,6
 5470    WHEN 1:PROCsort
 5480    WHEN 2:PROCinsert_record(record%,pf_add%)
 5490    WHEN 3:IF FNbit(pf_confirm%,1) THEN req%=1:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Delete record, are you sure ?",ok_cancel%,1 ELSE PROCdelete_record(record%,1)
 5500  ENDCASE
 5510  WHEN pos%
 5520  CASE i% OF
 5530    WHEN 0:PROCshow(0)
 5540  WHEN 1:REPEAT:record%-=1:UNTIL ((record%+1)MOD5)=0:PROCshow(record%)
 5550    WHEN 2:PROCshow(record%-1)
 5560    WHEN 3:PROCshow(record%+1)
 5570  WHEN 4:REPEAT:record%+=1:UNTIL ((record%+1)MOD5)=0:PROCshow(record%)
 5580    WHEN 5:PROCshow(max%)
 5590    WHEN 7:$goto%="":PROCmenu_opt(pos%,7,s1%,1)
 5600  ENDCASE
 5610  WHEN book%:IF c%=2 PROCmenu(m3%,x%,y%,FALSE,e3)
 5620  WHEN search%
 5630  CASE i% OF
 5640    WHEN 18:PROCclose_window(search%)
 5650    WHEN 17:PROCsearch
 5660  ENDCASE
 5670  WHEN list%
 5680  CASE i% OF
 5690    WHEN 1:PROCclose_window(list%)
 5700    WHEN 2:PROCclose_window(list%):PROCopen_window(search%):SYS "WimpExt_PutCaretIcon",,,search%,6
 5710    WHEN 3:IF FNbit(pf_confirm%,2) THEN req%=3:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete all records matched by the last search ?",ok_cancel%,1 ELSE PROCdelete_searched
 5720    WHEN 4:PROCopen_save(save_as1%,good_search$)
 5730    WHEN 5:PROCclose_window(list%):PROCsearch
 5740  ENDCASE
 5750  WHEN list_pane%
 5760  CASE c% OF
 5770    WHEN 2:PROCmenu(m3%,x%,y%,FALSE,e3)
 5780  OTHERWISE
 5790    PROCstore(record%)
 5800    !b%=list_pane%:SYS "Wimp_GetWindowState",,b%:y%-=b%!16-b%!24
 5810    old_search_sel%=search_sel%:search_sel%=ABS(y% DIV 48)
 5820    IF search_sel%>search_len% search_sel%=search_len%
 5830    SYS "Wimp_GetWindowInfo",,b%:b%!4=b%!44:b%!8=b%!48:b%!12=b%!52:b%!16=b%!56
 5840    SYS "Wimp_UpdateWindow",,b% TO flag%
 5850    PROCget_coords
 5860    WHILE flag%
 5870      PROCredraw_list
 5880      SYS "Wimp_GetRectangle",,b% TO flag%
 5890    ENDWHILE
 5900    record%=table%!(search_sel%*12)
 5910    IF record%>max% record%=max%
 5920    PROCdisplay(record%):IF FNopen(book%) SYS "WimpExt_PutCaretIcon",,,book%,(table%!((search_sel%*12)+4))+9
 5930    PROCpos:different%=0
 5940  ENDCASE
 5950  WHEN pref%:CASE i% OF
 5960    WHEN 1:PROCok_prefs:PROCclose_window(pref%)
 5970    WHEN 2:PROCclose_window(pref%):PROCcancel_prefs
 5980    WHEN 3:PROCdefault_prefs
 5990    WHEN 4:PROCsave_prefs:PROCok_prefs:PROCclose_window(pref%)
 6000    WHEN 5:PROCload_prefs(0)
 6010  ENDCASE
 6020  WHEN pref_pane%:CASE i% OF
 6030    WHEN 37:on%=FNon(pref_pane%,37) EOR 1
 6040      FOR I%=39 TO 45
 6050        IF I%<>42 SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,on%
 6060      NEXT
 6070    WHEN 40:SYS "WimpExt_DecNumberIcon",,,pref_pane%,39,1,1
 6080    WHEN 41:SYS "WimpExt_IncNumberIcon",,,pref_pane%,39,FNval(pref_pane%,43),1
 6090    WHEN 44:SYS "WimpExt_DecNumberIcon",,,pref_pane%,43,FNval(pref_pane%,39),1
 6100    WHEN 45:SYS "WimpExt_IncNumberIcon",,,pref_pane%,43,max%+1,1
 6110    WHEN 52,53:SYS "WimpExt_ShadeIcon",,,pref_pane%,54,ABS(i%=52):SYS "WimpExt_ShadeIcon",,,pref_pane%,74,ABS(i%=52)
 6120    WHEN 57:FOR I%=58 TO 59:SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,FNon(pref_pane%,57) EOR 1:NEXT
 6130    WHEN 59:J%=FNbg_col(pref_pane%,58):FOR I%=0 TO 15:SYS "WimpExt_TickEntry",,col_menu%,I%,ABS(I%=J%):NEXT
 6140      PROCmenu_opt(pref_pane%,59,col_menu%,16)
 6150    WHEN 63:FOR I%=64 TO 65:SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,FNon(pref_pane%,63) EOR 1:NEXT
 6160    WHEN 72:SYS "WimpExt_ShadeIcon",,,pref_pane%,73,FNon(pref_pane%,72) EOR 1
 6170  ENDCASE
 6180ENDCASE
 6190ENDPROC
 6200:
 6210DEFPROCsave2_size:open%=FNopen(save_as2%)
 6220IF FNon(save_as2%,3) THEN wy%=-396 ELSE wy%=-276
 6230!b%=save_as2%:SYS "Wimp_GetWindowInfo",,b%
 6240IF open% b%!8=b%!16+wy%:SYS "Wimp_OpenWindow",,b%
 6250ENDPROC
 6260:
 6270DEFPROCsave_size:open%=FNopen(save_as%)
 6280IF FNon(save_as%,4) THEN wy%=-488 ELSE wy%=-332
 6290!b%=save_as%:SYS "Wimp_GetWindowInfo",,b%
 6300IF open% b%!8=b%!16+wy%:SYS "Wimp_OpenWindow",,b%
 6310ENDPROC
 6320:
 6330DEFPROCopen_save(w%,s$)
 6340filename%=FNin_addr(w%,0)
 6350SYS "WimpExt_SetIconString",,,w%,0,s$
 6360CASE w% OF
 6370  WHEN save_as%:save_type%=1
 6380  WHEN save_as1%:save_type%=2
 6390  WHEN save_as2%:save_type%=3
 6400ENDCASE
 6410save_quit%=0
 6420PROCstore(record%)
 6430SYS "WimpExt_OpenDialogue",,,w%,156,70
 6440ENDPROC
 6450:
 6460DEFPROCmenu_opt(w%,i%,m%,e)
 6470!b%=w%:SYS "Wimp_GetWindowState",,b%
 6480minx%=b%!4-b%!20:miny%=b%!16-b%!24:!b%=w%:b%!4=i%
 6490SYS "Wimp_GetIconState",,b%:x%=minx%+b%!16:y%=miny%+b%!12+(13*4)
 6500SYS "Wimp_CreateMenu",,m%,x%,y%
 6510om%=m%:oe=e:ENDPROC
 6520:
 6530DEFPROCmenu(m%,x%,y%,ib%,e)
 6540PROCstore(record%)
 6550SYS "WimpExt_ShadeEntry",,m2%,1,searched% EOR 1
 6560SYS "WimpExt_ShadeEntry",,m6%,0,searched% EOR 1
 6570SYS "WimpExt_ShadeEntry",,m6%,2,searched% EOR 1
 6580SYS "WimpExt_TickEntry",,m8%,0,pane_1%
 6590SYS "WimpExt_TickEntry",,m8%,1,pane_2%
 6600SYS "WimpExt_SetIconStringN",,,file_info%,1,good_book$
 6610SYS "WimpExt_SetNumberIcon",,,file_info%,3,max%+1
 6620J%=FNbg_col(pref_pane%,58):FOR I%=0 TO 15:SYS "WimpExt_TickEntry",,col_menu%,I%,ABS(I%=J%):NEXT
 6630IF ib% y2%=96+e*44:x2%=x%-64 ELSE y2%=y%:x2%=x%-32-(16*optX%)
 6640SYS "Wimp_CreateMenu",,m%,x2%,y2%
 6650om%=m%:oe=e:ENDPROC
 6660:
 6670DEFPROCcalc_file_len
 6680len%=FNfile_len
 6690IF len%>=4096 len$=STR$(len% DIV 1024)+"k" ELSE len$=STR$len%+" bytes"
 6700SYS "WimpExt_SetIconString",,,file_info%,5,len$
 6710ENDPROC
 6720:
 6730DEFFNfile_len
 6740A%=tab%:B%=(max%+1)*11:len%=USR(file_length)
 6750len%+=14+LENSTR$(max%+1):=len%
 6760:
 6770DEFPROCmenuselect
 6780CASE om% OF
 6790  WHEN m1%:CASE !b% OF
 6800    WHEN 1:PROCremember_prefs:PROCscroll_top(pref_pane%):PROCopen_window(pref%)
 6810    WHEN 2:PROCprepare_book:PROCquick_save
 6820    WHEN 3:PROCquit
 6830  ENDCASE
 6840  WHEN s1%:CASE !b% OF
 6850    WHEN 0:PROCshow(VAL($goto%)-1)
 6860  ENDCASE
 6870  WHEN m3%:CASE !b% OF
 6880    WHEN 1:CASE b%!4 OF
 6890      WHEN -1,0:PROCprepare_book:PROCquick_save
 6900      WHEN 1:PROCprepare_search:PROCquick_save
 6910      WHEN 2:PROCprepare_address:PROCquick_save
 6920    ENDCASE
 6930    WHEN 2:CASE b%!4 OF
 6940      WHEN 0:PROCprepare_search:PROCquick_save
 6950      WHEN 1:PROCclose_window(list%):PROCopen_window(search%):SYS "WimpExt_PutCaretIcon",,,search%,6
 6960      WHEN 2:IF FNbit(pf_confirm%,2) THEN req%=3:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete all records matched by the last search ?",ok_cancel%,1 ELSE PROCdelete_search
 6970    ENDCASE
 6980    WHEN 3:CASE b%!4 OF
 6990      WHEN 0:PROCinsert_record(record%,0)
 7000      WHEN 1:PROCinsert_record(record%,1)
 7010      WHEN 2:IF FNbit(pf_confirm%,1) THEN req%=1:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Delete record, are you sure ?",ok_cancel%,1 ELSE PROCdelete_record(record%,1)
 7020      WHEN 3:IF FNbit(pf_confirm%,0) THEN req%=6:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Clear record, are you sure ?",ok_cancel%,1 ELSE PROCblank_record(record%):PROCdisplay(record%):IF FNopen(book%) SYS "WimpExt_PutCaretIcon",,,book%,9
 7030      WHEN 4:IF FNbit(pf_confirm%,3) THEN req%=2:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete the whole address book ?",ok_cancel%,1 ELSE PROCdelete_book
 7040    ENDCASE
 7050    WHEN 4:CASE b%!4 OF
 7060      WHEN 0:pane_1%=pane_1% EOR 1
 7070        IF pane_1% SYS "WimpExt_UnHideLink",book%,,tools%:PROCopen(book%) ELSE SYS "WimpExt_HideLink",book%,,tools%:PROCclose_window(tools%)
 7080        SYS "WimpExt_SetIcon",,,pref_pane%,68,pane_1%
 7090      WHEN 1:pane_2%=pane_2% EOR 1
 7100        IF pane_2% PROCopen(book%) ELSE PROCclose_window(pos%)
 7110        SYS "WimpExt_SetIcon",,,pref_pane%,69,pane_2%
 7120    ENDCASE
 7130  ENDCASE
 7140  WHEN col_menu%:SYS "WimpExt_SetIconColour",,,pref_pane%,58,-1,!b%
 7150ENDCASE
 7160IF NOT quit% THEN
 7170  SYS "Wimp_GetPointerInfo",,b%:IF b%!8=1 THEN PROCmenu(om%,x%,y%,ib%,oe)
 7180ENDIF
 7190ENDPROC
 7200:
 7210DEFPROCquit:quit%=-1
 7220IF modified% THEN req%=4:quit%=0:SYS "WimpExt_OpenRequester",,,"Query from TelAddr","The current address book has not been saved.",save_discard_cancel%,2
 7230ENDPROC
 7240:
 7250DEFFNon(w%,i%):!b%=w%:b%!4=i%:SYS "Wimp_GetIconState",,b%
 7260IF (b%!24 AND 1<<21)>0 =1 ELSE =0
 7270:
 7280DEFFNbg_col(w%,i%):!b%=w%:b%!4=i%:SYS "Wimp_GetIconState",,b%
 7290=(b%!24 AND %1111<<28)>>>28
 7300:
 7310DEFPROCradio(w%,i1%,i2%,i%):FOR I%=i1% TO i2%
 7320SYS "WimpExt_SetIcon",,,w%,I%,ABS(I%=i%):NEXT:ENDPROC
 7330:
 7340DEFFNwhich(w%,i1%,i2%):i%=-1:FORI=i1% TO i2%
 7350IF FNon(w%,I)=1 i%=I
 7360NEXT:=i%
 7370:
 7380DEFFNerror(a$):$b%="    "+a$+CHR$0:SYS "Wimp_ReportError",b%,%11,name2$ TO ,result%:IF result%=1 THEN =1 ELSE =0
 7390:
 7400DEFPROCerror(a$):$b%="    "+a$+CHR$0:SYS "Wimp_ReportError",b%,%1,name2$:ENDPROC
 7410:
 7420DEFPROCredraw(!b%)
 7430SYS "Wimp_RedrawWindow",,b% TO flag%
 7440PROCget_coords
 7450WHILE flag%
 7460  IF !b%=list_pane% PROCredraw_list ELSE SYS "WimpExt_Redraw",,b%
 7470  SYS "Wimp_GetRectangle",,b% TO flag%
 7480ENDWHILE
 7490ENDPROC
 7500:
 7510DEFPROCget_coords:xo%=6+b%!4-b%!20:yo%=-12+b%!16-b%!24:ENDPROC
 7520:
 7530DEFPROCgetorg:xo%=b%!4-b%!20:yo%=b%!16-b%!24
 7540xo%+=16:yo%-=84:yo2%=yo%+20:ENDPROC
 7550:
 7560DEFFNopen(w%):SYS "WimpExt_CheckWindowOpen",w% TO open%:=open%
 7570:
 7580DEFPROCcreatemenu(m%,title$,t$,RETURN e):$m%=title$:t$+=",":m%!12=&70207:m%!20=44:m%!24=0:e=0:w%=0:c%=m%+28:WHILE t$<>"":IF t$<>"" THEN
 7590i$=LEFT$(t$,INSTR(t$,",")-1):s%=0:f%=&7000021:sm%=-1
 7600IF INSTR(i$,"#")>0 THEN
 7610  e$=MID$(i$,INSTR(i$,"#")+1):FORI=1 TO LENe$:l$=MID$(e$,I,1):CASE TRUE OF
 7620      WHEN l$="E":s%=s% OR 1<<3
 7630      WHEN l$="T":s%=s% OR 1<<0
 7640      WHEN l$="S":f%=f% OR 1<<22
 7650      WHEN l$="L":s%=s% OR 1<<1:e+=.56
 7660      WHEN l$="F" OR l$="B":l%=VAL(MID$(e$,I+1,2)):I+=2:IF l$="F" f2%=24 ELSE f2%=28
 7670      f%=f% AND (15<<f2% EOR -1):f%=f% OR l%<<f2%
 7680    ENDCASE
 7690  NEXT:i$=LEFT$(i$,INSTR(i$,"#")-1)
 7700ENDIF
 7710a=INSTR(i$,">"):IF a>0 AND MID$(i$,a+1,1)<>">" THEN
 7720  sm%=EVAL(MID$(i$,a+1,INSTR(i$,"%",a+1)-a)):i$=LEFT$(i$,a-1)
 7730ENDIF
 7740a=INSTR(i$,">"):IF a>0 AND MID$(i$,a+1,1)=">" THEN i$=LEFT$(i$,)+RIGHT$(i$,LEN(i$)-a-1)
 7750t$=MID$(t$,INSTR(t$,",")+1):IF LEN(i$)>w% w%=LEN(i$)
 7760!c%=s%:c%!4=sm%:c%!8=f%:IF LEN(i$)<=12 $(c%+12)=i$:c%+=24 ELSE c%!8=f% OR 1<<8:$(menu%+menu_pos%)=i$:c%!12=menu%+menu_pos%:c%!16=val%:c%!20=LEN(i$):menu_pos%+=LEN(i$)+1:c%+=24
 7770ENDIF
 7780e+=1
 7790ENDWHILE
 7800IF w%<=LENtitle$ w%=LENtitle$
 7810m%!16=(w%+1)*16:c%!-24=c%!-24 OR &80:ENDPROC
 7820:
 7830DEFPROCsub(mb%,a$,mc%,v%,bl%)
 7840w%=bl%*16:IF LENa$>=bl% w%=(LENa$+1)*16
 7850$mb%=a$:mb%!12=&70207:mb%!16=w%:mb%!20=44:mb%!24=0
 7860mb%!28=&84:mb%!32=-1:mb%!36=&7000121:mb%!40=mc%:mb%!44=v%:mb%!48=bl%
 7870ENDPROC
 7880:
 7890DEFPROCquick_save
 7900filename$=FNstring(filename%)
 7910IF INSTR(filename$,".") THEN
 7920  PROCsave_it(filename$)
 7930  CASE save_type% OF
 7940    WHEN 1:good_book$=filename$
 7950    WHEN 2:good_search$=filename$
 7960    WHEN 3:good_address$=filename$
 7970  ENDCASE
 7980  SYS "Wimp_CreateMenu",,-1
 7990ELSE
 8000  req%=0:SYS "WimpExt_OpenRequester",,,"Reminder from TelAddr","To save, drag the icon to a directory viewer",ok%,0
 8010ENDIF
 8020ENDPROC
 8030:
 8040DEFPROCsave_it(filename$)
 8050CASE save_type% OF
 8060  WHEN 1:w%=save_as%
 8070  WHEN 2:w%=save_as1%
 8080  WHEN 3:w%=save_as2%
 8090ENDCASE
 8100IF save_type%=1 SYS "WimpExt_GetIcon",,,w%,4 TO partial%:IF partial% PROCsortout_partial(0,save_as%,6,10):SYS "WimpExt_GetNumberIcon",,,w%,6 TO p1%:SYS "WimpExt_GetNumberIcon",,,w%,10 TO p2%:p1%-=1:p2%-=1 ELSE p1%=0:p2%=max%
 8110IF save_type%=3 SYS "WimpExt_GetIcon",,,w%,4 TO tel%
 8120SYS "WimpExt_GetIcon",,,w%,3 TO ascii%
 8130comma%=0:IF save_type%=3 SYS "WimpExt_GetIcon",,,w%,5 TO comma%
 8140CASE save_type% OF
 8150  WHEN 1:PROCsave_book(filename$,p1%,p2%,1,comma%)
 8160  WHEN 2:PROCsave_search(filename$)
 8170  WHEN 3:IF ascii%=0 tel%=1
 8180  PROCsave_book(filename$,record%,record%,tel%,comma%)
 8190ENDCASE
 8200ENDPROC
 8210:
 8220DEFPROCsave_book(filename$,from%,to%,tel%,comma%)
 8230SYS "Hourglass_On"
 8240IF tel%=0 max_field%=7 ELSE max_field%=10
 8250f%=OPENOUT filename$
 8260IF ascii%=0 THEN BPUT#f%,"TelAddr("+STR$file_ver%+","+STR$((to%-from%)+1)+")"
 8270FOR rec%=from% TO to%
 8280  IF to%-from%>0 SYS "Hourglass_Percentage",INT((rec%/(to%-from%))*100)
 8290  tab_pos%=tab%+(rec%*rec_len%)
 8300  FOR field%=0 TO max_field%
 8310    IF ascii%=0 OR (ascii%=1 AND ?tab_pos%>=32) THEN
 8320      $b3%=$tab_pos%:A%=b3%:CALL cut:a$=$b3%
 8330      IF comma% THEN
 8340        fd%=field%:IF fd%<7 THEN
 8350          com%=0:FOR J%=fd%+1 TO 7:IF tab_pos%?(J%*32)>=32 com%=1
 8360          NEXT
 8370        ELSE com%=0
 8380        ENDIF
 8390        IF fd%<=7 AND a$<>"" THEN
 8400          IF com% a$+="," ELSE a$+="."
 8410        ENDIF
 8420      ENDIF
 8430      $b2%=a$:A%=b2%:CALL cut:BPUT#f%,$b2%
 8440    ENDIF
 8450    IF ascii% AND field%=7 AND tel%=1 BPUT#f%,""
 8460    tab_pos%+=32
 8470  NEXT
 8480  IF ascii% AND rec%<to% BPUT#f%,""
 8490NEXT
 8500CLOSE #f%
 8510IF ascii% ft%=&FFF ELSE ft%=tel_ft%
 8520SYS "OS_File",18,filename$,ft%
 8530SYS "Hourglass_Off":PROCmodified(0):IF save_quit% THEN quit%=-1
 8540ENDPROC
 8550:
 8560DEFPROCsave_search(filename$):old_rec%=-1
 8570SYS "Hourglass_On"
 8580A%=table%:B%=search_len%+1:number%=USR(count_rec)
 8590f%=OPENOUT filename$
 8600IF ascii%=0 THEN BPUT#f%,"TelAddr("+STR$file_ver%+","+STR$(number%)+")"
 8610FOR table_pos%=0 TO search_len%
 8620  IF search_len%>0 SYS "Hourglass_Percentage",INT((table_pos%/search_len%)*100)
 8630  rec%=table%!(table_pos%*12)
 8640  IF rec%<>old_rec% THEN
 8650    tab_pos%=tab%+(rec%*rec_len%)
 8660    FOR field%=0 TO 10
 8670      IF field%=8 AND ascii%=1 BPUT#f%,""
 8680      IF ascii%=0 OR (ascii%=1 AND ?tab_pos%>=32) $b2%=$tab_pos%:A%=b2%:CALL cut:BPUT#f%,$b2%
 8690      tab_pos%+=32
 8700    NEXT
 8710    IF ascii% AND table_pos%<search_len% BPUT#f%,""
 8720  ENDIF
 8730  old_rec%=rec%
 8740NEXT
 8750CLOSE #f%
 8760IF ascii% ft%=&FFF ELSE ft%=tel_ft%
 8770SYS "OS_File",18,filename$,ft%
 8780SYS "Hourglass_Off"
 8790ENDPROC
 8800:
 8810DEFPROCinit_save
 8820leaf$=FNleaf(FNstring(filename%))
 8830SYS "Wimp_GetPointerInfo",,b%
 8840IF b%!12<>save_as% AND b%!12<>save_as1% AND b%!12<>save_as2% THEN
 8850  b%!20=b%!12:b%!24=b%!16:b%!28=!b%:b%!32=b%!4:b%!36=FNfile_len+1
 8860  !b%=(3+44+LEN(leaf$+CHR$0))AND&FFFFFFFC:b%!12=0:b%!16=1
 8870  b%!40=tel_ft%:$(b%+44)=leaf$+CHR$0:SYS "Wimp_SendMessage",18,b%,b%!20,b%!24
 8880  myref%=b%!8:trans_len%=-1:st1_rec%=0
 8890ENDIF
 8900ENDPROC
 8910:
 8920DEFPROCdata_save
 8930filename$=FNstring(b%+44)
 8940PROCsave_it(filename$)
 8950CASE save_type% OF
 8960  WHEN 1:good_book$=filename$
 8970  WHEN 2:good_search$=filename$
 8980  WHEN 3:good_address$=filename$
 8990ENDCASE
 9000SYS "Wimp_CreateMenu",,-1
 9010b%!12=b%!8:b%!16=3:!b%=256:SYS "Wimp_SendMessage",18,b%,b%!20,b%!24
 9020ENDPROC
 9030:
 9040DEFFNstring(a%):a$="":WHILE ?a%>=32:a$+=CHR$?a%:a%+=1:ENDWHILE:=a$
 9050:
 9060DEFPROCstr(a%,a2%,RETURN len%):len%=0:WHILE ?a%>=32:?a2%=?a%:a%+=1:a2%+=1:len%+=1:ENDWHILE:?a2%=10:len%+=1:ENDPROC
 9070:
 9080DEFFNleaf($b%):SYS "WimpExt_FindLeaf",b% TO a%:=$a%
 9090:
 9100DEFFNin(w%,i%):!b2%=w%:b2%!4=i%:SYS "Wimp_GetIconState",,b2%:=$(b2%!28)
 9110:
 9120DEFFNin_addr(w%,i%):!b%=w%:b%!4=i%:SYS "Wimp_GetIconState",,b%:=b%!28
 9130:
 9140DEFFNval(w%,i%)=VAL(FNin(w%,i%))
 9150:
 9160DEFPROCpos
 9170p$=STR$(record%+1)+"/"+STR$(max%+1)
 9180IF p$<>pos$ SYS "WimpExt_SetIconString",,,pos%,6,p$:pos$=p$:pos_record%=record%
 9190ENDPROC
 9200:
 9210DEFPROCshow(rec%)
 9220PROCstore(pos_record%)
 9230IF rec%<0 rec%=0
 9240IF rec%>max% rec%=max%
 9250record%=rec%
 9260PROCpos
 9270PROCdisplay(record%)
 9280ENDPROC
 9290:
 9300DEFPROCdisplay(rec%)
 9310tab_pos%=tab%+(rec%*rec_len%)
 9320FOR field%=0 TO 10
 9330  SYS "WimpExt_SetIconString",,,book%,field%+9,tab_pos%
 9340  tab_pos%+=32
 9350NEXT
 9360ENDPROC
 9370:
 9380DEFPROCstore(rec%)
 9390tab_pos%=tab%+(rec%*rec_len%)
 9400FOR field%=0 TO 10
 9410  IF $tab_pos%<>FNin(book%,field%+9) THEN PROCmodified(1)
 9420  $tab_pos%=FNin(book%,field%+9)
 9430  tab_pos%+=32
 9440NEXT
 9450ENDPROC
 9460:
 9470DEFPROCblank_record(rec%)
 9480tab_pos%=tab%+(rec%*rec_len%)
 9490FOR field%=0 TO 10
 9500  ?tab_pos%=13
 9510  tab_pos%+=32
 9520NEXT:PROCmodified(1)
 9530IF country% THEN $(tab%+(rec%*rec_len%)+(6*32))=country$
 9540ENDPROC
 9550:
 9560DEFPROCinsert_record(r%,type%)
 9570PROCstore(pos_record%)
 9580rec%=r%
 9590IF max%=total_max%-1 req%=0:SYS "WimpExt_OpenRequester",,,"Reminder from TelAddr","The maximum number of records has been reached ("+STR$total_max%+"), no more can be created.",ok%,0:ENDPROC
 9600PROCclose_window(list%)
 9610IF rec%<max% THEN A%=tab%:B%=max%:C%=rec%+type%:D%=rec_len%:CALL insert
 9620record%+=type%:max%+=1:PROCmodified(1)
 9630PROCblank_record(record%)
 9640PROCdisplay(record%)
 9650PROCpos:IF FNopen(book%) SYS "WimpExt_PutCaretIcon",,,book%,9
 9660ENDPROC
 9670:
 9680DEFPROCdelete_record(rec%,show%)
 9690IF max%=0 ENDPROC
 9700PROCclose_window(list%)
 9710IF rec%<max% THEN A%=tab%:B%=max%:C%=rec%:D%=rec_len%:CALL delete
 9720max%-=1:PROCmodified(1)
 9730IF record%>max% record%=max%
 9740IF show% PROCdisplay(record%):PROCpos:IF FNopen(book%) SYS "WimpExt_PutCaretIcon",,,book%,9
 9750ENDPROC
 9760:
 9770DEFFNload_ack
 9780IF b%!40<>tel_ft% THEN =0
 9790b%!12=b%!8:b%!16=4:SYS "Wimp_SendMessage",17,b%,b%!4
 9800=1
 9810:
 9820DEFPROCsave_ack
 9830IF b%!40<>tel_ft% THEN ENDPROC
 9840$(b%+44)="<Wimp$Scrap>"+CHR$0
 9850b%!12=b%!8:b%!16=2:SYS "Wimp_SendMessage",17,b%,b%!4
 9860ENDPROC
 9870:
 9880DEFFNblank(r%):blank%=1:FOR I%=0 TO 10:IF ?(tab%+(r%*rec_len%)+(I%*32))>=32 blank%=0
 9890NEXT:=blank%
 9900:
 9910DEFPROCload_file(fn$,merge%):old_max%=max%
 9920f%=OPENUP fn$:IF f%=0 failed%=1:ENDPROC
 9930info$=GET$#f%
 9940IF MID$(info$,1,INSTR(info$,"(")-1)<>"TelAddr" OR INSTR(info$,"(")=0 req%=0:SYS "WimpExt_OpenRequester",,,"Error from TelAddr","This file is not in the TelAddr format, load failed.",ok%,0:CLOSE#f%:ENDPROC
 9950p_v%=VALMID$(info$,9,3):rec%=VALMID$(info$,13,INSTR(info$,")")-13)
 9960IF p_v%>file_ver% req%=0:SYS "WimpExt_OpenRequester",,,"Error from TelAddr","This file was created by a higher version of TelAddr, load failed.",ok%,0:CLOSE#f%:ENDPROC
 9970IF rec%>total_max% req%=0:SYS "WimpExt_OpenRequester",,,"Error from TelAddr","This file contains more records that TelAddr can handle, load failed.",ok%,0:CLOSE#f%:ENDPROC
 9980IF merge% THEN
 9990  IF FNblank(record%) AND rec%=1 AND pf_merge%=0 THEN start%=record%:end%=record% ELSE IF FNblank(max%) THEN start%=max%:end%=start%+rec%-1:max%+=rec%-1 ELSE start%=max%+1:end%=start%+rec%-1:max%+=rec%
10000ELSE
10010  start%=0:end%=rec%-1:max%=end%
10020ENDIF
10030IF max%>total_max%-1 req%=0:max%=old_max%:SYS "WimpExt_OpenRequester",,,"Error from TelAddr","By merging these two files, the result would be more records that TelAddr can handle, merge failed.",ok%,0:CLOSE#f%:ENDPROC
10040SYS "Hourglass_On"
10050FOR rec%=start% TO end%
10060  IF max%-start%>0 SYS "Hourglass_Percentage",INT(((rec%-start%)/(max%-start%))*100)
10070  tab_pos%=tab%+(rec%*rec_len%)
10080  FOR field%=0 TO 10
10090    $tab_pos%=LEFT$(GET$#f%,31)
10100    tab_pos%+=32
10110  NEXT
10120NEXT
10130CLOSE#f%
10140SYS "Hourglass_Off"
10150record%=start%:PROCdisplay(record%):PROCpos:IF FNopen(book%)=0 PROCopen_window(book%):SYS "WimpExt_PutCaretIcon",,,book%,9
10160IF merge%=0 good_book$=fn$
10170PROCmodified(merge%):PROCclose_window(list%)
10180ENDPROC
10190:
10200DEFPROCsort
10210PROCstore(record%)
10220SYS "Hourglass_On"
10230FOR I%=0 TO max%
10240  pointers%!(I%*4)=tab%+(I%*rec_len%)
10250NEXT
10260SYS "OS_HeapSort",max%+1,pointers%,4,,tab%,rec_len%
10270A%=tab%:B%=pointers%:C%=max%:D%=rec_len%:CALL sort
10280PROCdisplay(record%)
10290SYS "Hourglass_Off":PROCmodified(1):PROCclose_window(list%)
10300ENDPROC
10310:
10320DEFPROCredraw_list:y_top%=0
10330top%=(yo%-b%!40) DIV 48:IF top%<0 top%=0
10340base%=(60+yo%-b%!32) DIV 48
10350SYS "Wimp_SetColour",7
10360LINE xo%+(4*16)-10,yo%-(top%*48)+12,xo%+(4*16)-10,yo%-(base%*48)
10370i%=top%:WHILE i%<=search_len% AND i%<=base%
10380  col%=0:IF i%=search_sel% THEN
10390    col%=2:y_top%=0
10400  ELSE
10410    IF i%=old_search_sel% THEN
10420      col%=1
10430      IF old_search_sel%=search_sel%+1 THEN y_top%=-4
10440    ENDIF
10450  ENDIF
10460  IF col%>0 SYS "Wimp_SetColour",col%:RECTANGLE FILL xo%-6,yo%-(i%*48)+12+y_top%,(4*16)-6,-48-y_top%:RECTANGLE FILL xo%+(4*16)-8,yo%-(i%*48)+12+y_top%,40*16,-48-y_top%:SYS "Wimp_SetColour",7
10470  MOVE xo%,yo%-(i%*48):n%=(table%!(i%*12))+1
10480  PRINT STRING$(3-LENSTR$n%,"0");n%
10490  MOVE xo%+(4*16),yo%-(i%*48)
10500  A%=tab%+((table%!(i%*12))*rec_len%)+((table%!((i%*12)+4))*32)
10510  CALL cut:a$=$A%
10520  p%=table%!((i%*12)+8)
10530  sl%=LENsearch$:IF RIGHT$(search$,1)="*" sl%-=1
10540  PRINT LEFT$(a$,p%-1);:SYS "Wimp_SetColour",pf_colour%:PRINT MID$(a$,p%,sl%);:SYS "Wimp_SetColour",7:PRINT RIGHT$(a$,LENa$-p%-sl%+1)
10550  REM SYS "Wimp_SetColour",3:PRINT "...altered...":SYS "Wimp_SetColour",7
10560i%+=1:ENDWHILE
10570ENDPROC
10580:
10590DEFPROCsearch:PROCstore(record%)
10600search_len%=-1:search_sel%=-1:old_search_sel%=0:search$=FNin(search%,6)
10610IF search$="" req%=0:SYS "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot search using an empty string.",ok%,0:ENDPROC
10620search_flag%=0:flag_pos%=0:FOR I%=7 TO 15:FOR J%=0 TO ABS(I%=8)*2
10630search_flag%=search_flag% OR FNon(search%,I%)<<flag_pos%
10640flag_pos%+=1:NEXT:NEXT
10650IF search_flag%=0 req%=0:SYS "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot start a search without specifying one or more fields to search in.",ok%,0:ENDPROC
10660case%=FNon(search%,16)
10670IF case%=0 search$=FNlower(search$)
10680SYS "Hourglass_On"
10690$b%=search$
10700A%=tab%:B%=max%:C%=rec_len%:D%=table%:E%=b%:F%=LEN($b%):G%=search_flag%:H%=case%:search_len%=USR(search)-1
10710SYS "Hourglass_Off"
10720IF search_len%<0 req%=0:SYS "WimpExt_OpenRequester",,,"Message from TelAddr","The search string could not be found within the current address book.",ok%,0:ENDPROC
10730ht%=search_len%:IF search_len%<7 ht%=7
10740!b%=0:b%!4=-48*(ht%+1):b%!8=604:b%!12=0:SYS "Wimp_SetExtent",list_pane%,b%
10750PROCclose_window(search%)
10760A%=table%:B%=search_len%+1:number%=USR(count_rec)
10770$b%="Search Results ("+STR$number%+" matched)":SYS "WimpExt_SetWindowTitle",,,list%,b%
10780PROCscroll_top(list_pane%)
10790searched%=1:PROCopen_window(list%)
10800ENDPROC
10810:
10820DEFFNlower(l$):s$="":FORI%=1TOLENl$:a%=ASCMID$(l$,I%,1):s$+=CHR$(a% OR (ABS(a%>64 AND a%<91)*32)):NEXT:=s$
10830:
10840DEFPROCmodified(m%):modified%=m%:ENDPROC
10850:
10860DEFPROCdelete_searched
10870SYS "Hourglass_On"
10880old_rec%=-1
10890IF max%>0 THEN
10900  FOR I%=search_len% TO 0 STEP -1
10910    IF search_len%>0 SYS "Hourglass_Percentage",INT(((search_len%-I%)/search_len%)*100)
10920    rec%=table%!(I%*12)
10930    IF max%>=0 AND rec%<>old_rec% THEN
10940      IF rec%<max% THEN A%=tab%:B%=max%:C%=rec%:D%=rec_len%:CALL delete:max%-=1:old_rec%=rec% ELSE max%-=1:old_rec%=rec%
10950
10960    ENDIF
10970  NEXT
10980ENDIF
10990SYS "Hourglass_Off"
11000PROCmodified(1)
11010IF max%<=0 max%=0:PROCblank_record(0)
11020PROCclose_window(list%)
11030IF record%>max% record%=max%
11040PROCdisplay(record%):PROCpos
11050ENDPROC
11060:
11070DEFPROCscroll_req
11080y%=b%!24:sy%=b%!36:ch%=0
11090IF y% MOD 48 <>0 THEN b%!24=(y% DIV 48)*48:ch%=1:IF sy%<0 b%!24=b%!24-48
11100IF ABS(sy%)=2 sy%=48*4*sy% ELSE IF ch%=0 sy%=sy%*48
11110b%!24=b%!24+sy%
11120SYS "Wimp_OpenWindow",,b%
11130ENDPROC
11140:
11150DEFPROCsave_prefs:z%=pref_pane%:SYS "Hourglass_On"
11160f%=OPENOUT "<TelAddr$Dir>.Prefs"
11170PRINT#f%,FNon(z%,2),FNon(z%,3),FNon(z%,4),FNon(z%,5)
11180PRINT#f%,FNwhich(z%,9,10)-9,FNwhich(z%,13,14)-13
11190FOR I%=19 TO 27:PRINT#f%,FNon(z%,I%):NEXT:PRINT#f%,FNon(z%,30)
11200PRINT#f%,FNwhich(z%,35,36)-35,FNon(z%,37),FNval(z%,39),FNval(z%,43)
11210PRINT#f%,FNwhich(z%,48,49)-48,FNwhich(z%,52,53)-52,FNon(z%,54)
11220PRINT#f%,FNon(z%,57),FNbg_col(z%,58)
11230PRINT#f%,FNon(z%,63),FNin(z%,65),FNon(z%,68),FNon(z%,69),FNon(z%,72),FNin(z%,73),FNon(z%,74)
11240CLOSE#f%:SYS "Hourglass_Off"
11250ENDPROC
11260:
11270DEFPROCremember_prefs:z%=pref_pane%
11280A=FNon(z%,2):B=FNon(z%,3):C=FNon(z%,4):D=FNon(z%,5)
11290E=FNwhich(z%,9,10)-9:F=FNwhich(z%,13,14)-13
11300G=FNon(z%,19):H=FNon(z%,20):I=FNon(z%,21):J=FNon(z%,22):K=FNon(z%,23):L=FNon(z%,24):M=FNon(z%,25):N=FNon(z%,26):O=FNon(z%,27):P=FNon(z%,30)
11310Q=FNwhich(z%,35,36)-35:R=FNon(z%,37):S=FNval(z%,39):T=FNval(z%,43)
11320U=FNwhich(z%,48,49)-48:V=FNwhich(z%,52,53)-52:W=FNon(z%,54)
11330X=FNon(z%,57):Y=FNbg_col(z%,58):Z=FNon(z%,63):AA$=FNin(z%,65)
11340Z1=FNon(z%,68):Z2=FNon(z%,69):Z3=FNon(z%,72):BB$=FNin(z%,73):Z4=FNon(z%,74)
11350ENDPROC
11360:
11370DEFPROCcancel_prefs
11380PROCset_prefs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA$,Z1,Z2,Z3,BB$,Z4)
11390ENDPROC
11400:
11410DEFPROCset_prefs(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4)
11420z%=pref_pane%
11430SYS "WimpExt_SetIcon",,,z%,2,a:SYS "WimpExt_SetIcon",,,z%,3,b
11440SYS "WimpExt_SetIcon",,,z%,4,c:SYS "WimpExt_SetIcon",,,z%,5,d
11450PROCradio(z%,9,10,e+9):PROCradio(z%,13,14,f+13)
11460SYS "WimpExt_SetIcon",,,z%,19,g:SYS "WimpExt_SetIcon",,,z%,20,h
11470SYS "WimpExt_SetIcon",,,z%,21,i:SYS "WimpExt_SetIcon",,,z%,22,j
11480SYS "WimpExt_SetIcon",,,z%,23,k:SYS "WimpExt_SetIcon",,,z%,24,l
11490SYS "WimpExt_SetIcon",,,z%,25,m:SYS "WimpExt_SetIcon",,,z%,26,n
11500SYS "WimpExt_SetIcon",,,z%,27,o:SYS "WimpExt_SetIcon",,,z%,30,p
11510PROCradio(z%,35,36,q+35)
11520SYS "WimpExt_SetIcon",,,z%,37,r
11530SYS "WimpExt_SetNumberIcon",,,z%,39,s:SYS "WimpExt_SetNumberIcon",,,z%,43,t
11540PROCradio(z%,48,49,u+48):PROCradio(z%,52,53,v+52)
11550SYS "WimpExt_SetIcon",,,z%,54,w:SYS "WimpExt_SetIcon",,,z%,57,x
11560SYS "WimpExt_SetIconColour",,,z%,58,-1,y:SYS "WimpExt_SetIcon",,,z%,63,z
11570SYS "WimpExt_SetIconString",,,z%,65,a$
11580SYS "WimpExt_SetIcon",,,z%,68,z1:SYS "WimpExt_SetIcon",,,z%,69,z2
11590SYS "WimpExt_SetIcon",,,z%,72,z3:SYS "WimpExt_SetIconString",,,z%,73,b$
11600SYS "WimpExt_SetIcon",,,z%,74,z4
11610PROCsort_prefs:PROCok_prefs
11620ENDPROC
11630:
11640DEFPROCok_prefs
11650pf_confirm%=FNon(z%,2) OR FNon(z%,3)<<1 OR FNon(z%,4)<<2 OR FNon(z%,5)<<3
11660pf_merge%=FNwhich(z%,9,10)-9:pf_add%=FNwhich(z%,13,14)-13
11670SYS "WimpExt_SetIcon",,,search%,7,FNon(z%,19):SYS "WimpExt_SetIcon",,,search%,8,FNon(z%,20)
11680SYS "WimpExt_SetIcon",,,search%,9,FNon(z%,21):SYS "WimpExt_SetIcon",,,search%,10,FNon(z%,22)
11690SYS "WimpExt_SetIcon",,,search%,11,FNon(z%,23):SYS "WimpExt_SetIcon",,,search%,12,FNon(z%,24)
11700SYS "WimpExt_SetIcon",,,search%,13,FNon(z%,25):SYS "WimpExt_SetIcon",,,search%,14,FNon(z%,26)
11710SYS "WimpExt_SetIcon",,,search%,15,FNon(z%,27):SYS "WimpExt_SetIcon",,,search%,16,FNon(z%,30)
11720SYS "WimpExt_SetIcon",,,save_as%,3,FNwhich(z%,35,36)-35
11730SYS "WimpExt_SetIcon",,,save_as%,4,FNon(z%,37)
11740SYS "WimpExt_SetIcon",,,save_as%,1,FNon(save_as%,3)
11750SYS "WimpExt_SetNumberIcon",,,save_as%,6,FNval(z%,39)
11760SYS "WimpExt_SetNumberIcon",,,save_as%,10,FNval(z%,43)
11770SYS "WimpExt_SetIcon",,,save_as1%,3,FNwhich(z%,48,49)-48
11780SYS "WimpExt_SetIcon",,,save_as1%,1,FNon(save_as1%,3)
11790SYS "WimpExt_SetIcon",,,save_as2%,3,FNwhich(z%,52,53)-52
11800SYS "WimpExt_SetIcon",,,save_as2%,4,FNon(z%,54)
11810SYS "WimpExt_SetIcon",,,save_as2%,1,FNon(save_as2%,3)
11820SYS "WimpExt_SetIcon",,,save_as2%,5,FNon(z%,74)
11830IF FNon(z%,57) pf_colour%=FNbg_col(z%,58) ELSE pf_colour%=7
11840op1%=pane_1%:op2%=pane_2%:country%=FNon(pref_pane%,72):country$=LEFT$(FNin(pref_pane%,73),31)
11850pane_1%=FNon(z%,68):pane_2%=FNon(z%,69)
11860IF FNon(z%,68)<>op1% THEN
11870  IF FNon(z%,68) SYS "WimpExt_UnHideLink",book%,,tools%:PROCopen(book%) ELSE SYS "WimpExt_HideLink",book%,,tools%:PROCclose_window(tools%)
11880ENDIF
11890IF FNon(z%,69)<>op2% THEN
11900  IF FNon(z%,69) PROCopen(book%) ELSE PROCclose_window(pos%)
11910ENDIF
11920IF FNopen(list%) PROCredraw(list_pane%)
11930PROCopen_at(save_as%,100000,100000):PROCopen_at(save_as2%,100000,100000)
11940PROCsave_size:PROCsave2_size
11950PROCclose_window(save_as%):PROCclose_window(save_as2%)
11960ENDPROC
11970:
11980DEFPROCsort_prefs
11990on%=FNon(pref_pane%,37) EOR 1
12000FOR I%=39 TO 45:IF I%<>42 SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,on%
12010NEXT
12020SYS "WimpExt_ShadeIcon",,,pref_pane%,54,ABS(FNwhich(pref_pane%,52,53)=52)
12030SYS "WimpExt_ShadeIcon",,,pref_pane%,74,ABS(FNwhich(pref_pane%,52,53)=52)
12040FOR I%=58 TO 59:SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,FNon(pref_pane%,57) EOR 1:NEXT
12050FOR I%=64 TO 65:SYS "WimpExt_ShadeIcon",,,pref_pane%,I%,FNon(pref_pane%,63) EOR 1:NEXT
12060SYS "WimpExt_ShadeIcon",,,pref_pane%,73,FNon(pref_pane%,72) EOR 1
12070ENDPROC
12080:
12090DEFPROCload_prefs(l%):SYS "Hourglass_On"
12100f%=OPENUP "<TelAddr$Dir>.Prefs"
12110INPUT#f%,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4
12120CLOSE#f%:SYS "Hourglass_Off"
12130PROCset_prefs(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4)
12140load%=z:IF load% THEN load$=a$
12150ENDPROC
12160:
12170DEFPROCdefault_prefs
12180PROCset_prefs(0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,11,0,"",1,1,0,"England",1)
12190ENDPROC
12200:
12210DEFFNbit(word%,bit%):IF (word% AND 1<<bit%)>0 THEN =1 ELSE =0
12220:
12230DEFPROCscroll_top(!b%)
12240SYS "Wimp_GetWindowState",,b%
12250x%=100000:y%=100000
12260b%!24=0:w%=b%!12-b%!4:h%=b%!16-b%!8:b%!4=x%:b%!8=y%-h%:b%!12=x%+w%:b%!16=y%
12270SYS "Wimp_OpenWindow",,b%
12280SYS "Wimp_CloseWindow",,b%
12290ENDPROC
12300:
12310DEFPROCram_fetch
12320CASE save_type% OF
12330  WHEN 1:w%=save_as%:file_len%=FNfile_len
12340  WHEN 2:w%=save_as1%:file_len%=0:old_A%=-1:FOR I%=0 TO search_len%:A%=tab%+((table%!(I%*12))*rec_len%):IF A%<>old_A% B%=11:file_len%+=USR(file_length)
12350    old_A%=A%:NEXT
12360  WHEN 3:w%=save_as2%:A%=tab%+(record%*rec_len%):B%=11:file_len%=USR(file_length)
12370ENDCASE
12380SYS "WimpExt_GetIcon",,,w%,3 TO ascii%
12390IF b%!24<file_len% req%=0:SYS "WimpExt_OpenRequester",,,"Warning from TelAddr","Buffer passed from destination application is not big enough to process a RAM memory transfer save, save failed.",ok%,0:ENDPROC
12400tel%=1:comma%=0
12410CASE save_type% OF
12420  WHEN 1:SYS "WimpExt_GetIcon",,,w%,4 TO partial%
12430    IF partial% THEN
12440      PROCsortout_partial(0,save_as%,6,10)
12450      SYS "WimpExt_GetNumberIcon",,,w%,6 TO from%
12460      SYS "WimpExt_GetNumberIcon",,,w%,10 TO to%:from%-=1:to%-=1
12470    ELSE
12480      from%=0:to%=max%
12490    ENDIF
12500  WHEN 2:from%=0:to%=search_len%
12510  WHEN 3:from%=record%:to%=record%
12520    SYS "WimpExt_GetIcon",,,w%,4 TO tel%
12530    SYS "WimpExt_GetIcon",,,w%,5 TO comma%
12540ENDCASE
12550IF tel% THEN max_field%=10*32 ELSE max_field%=7*32
12560IF save_type%=2 A%=table%:B%=search_len%+1:number%=USR(count_rec) ELSE number%=(to%-from%)+1
12570IF b%!12=myref% THEN
12580  sender%=b%!4
12590  hisref%=b%!8
12600  bufadd%=b%!20
12610  bufsiz%=b%!24
12620  offset%=0:old_rec%=-1
12630  SYS "Hourglass_On"
12640  IF ascii%=0 THEN $b2%="TelAddr("+STR$file_ver%+","+STR$(number%)+")"+CHR$10:l%=LEN($b2%):SYS "Wimp_TransferBlock",task_handle%,b2%,sender%,bufadd%,l%:offset%+=l%
12650  FOR I%=from% TO to%
12660    IF (to%-from%)>0 SYS "Hourglass_Percentage",INT(((I%-from%)/(to%-from%))*100)
12670    IF save_type%=2 THEN rec%=table%!(I%*12) ELSE rec%=I%
12680    IF save_type%<>2 OR rec%<>old_rec% THEN
12690      length%=0:tab_pos%=tab%+(rec%*rec_len%)
12700      FOR field%=0 TO max_field% STEP 32
12710        a%=b2%+length%:a2%=tab_pos%+field%:len%=0:$b3%=$a2%:A%=b3%:CALL cut:a$=$b3%
12720        IF comma% THEN
12730          f%=field%/32:IF f%<7 THEN
12740            com%=0:FOR J%=f%+1 TO 7:IF tab_pos%?(J%*32)>=32 com%=1
12750            NEXT
12760          ELSE com%=0
12770          ENDIF
12780          IF f%<=7 AND a$<>"" THEN
12790            IF com% a$+="," ELSE a$+="."
12800          ENDIF
12810        ENDIF
12820        IF ascii%=0 OR (ascii%=1 AND ?a2%>=32) THEN $a%=a$:A%=a%:len%=USR(cut2)+1
12830        length%+=len%
12840        IF ascii%=1 AND field%=7*32 AND tel%=1 ?(b2%+length%)=10:length%+=1
12850      NEXT
12860      IF ascii% AND I%<to% ?(b2%+length%)=10:length%+=1
12870      SYS "Wimp_TransferBlock",task_handle%,b2%,sender%,bufadd%+offset%,length%
12880      offset%+=length%
12890    ENDIF
12900    old_rec%=rec%
12910  NEXT
12920  SYS "Hourglass_Off"
12930  b%!12=hisref%
12940  b%!16=7
12950  b%!24=offset%
12960  SYS "Wimp_SendMessage",17,b%,sender%
12970ENDIF
12980CASE save_type% OF
12990  WHEN 1:PROCclose_window(save_as%)
13000  WHEN 2:PROCclose_window(save_as1%)
13010  WHEN 3:PROCclose_window(save_as2%)
13020ENDCASE
13030SYS "Wimp_CreateMenu",,-1
13040ENDPROC
13050:
13060DEFPROChelp
13070!b%=40:b%!16=&502:SYS "Wimp_GetPointerInfo",,b%+20
13080w%=b%!32:i%=b%!36:S$="Click SELECT to ":M$="Click MENU to ":A$="Click ADJUST to ":m$=""
13090W$="This window shows ":I$="This icon shows ":N$="|M"
13100M$="Move the pointer right to "
13110CASE w% OF
13120  WHEN file_info%:m$=W$+"information about the current address book"
13130  WHEN tools%:CASE i% OF
13140    WHEN 0:m$=S$+"open the search window"
13150    WHEN 1:m$=S$+"sort the current address book"
13160    WHEN 2:m$=S$+"create a new record"
13170    WHEN 3:m$=S$+"delete the current record"
13180  ENDCASE
13190  WHEN pos%:CASE i% OF
13200    WHEN 0:m$=S$+"move to the first record"
13210    WHEN 1:m$=S$+"move back five records"
13220    WHEN 2:m$=S$+"move back one record"
13230    WHEN 3:m$=S$+"move forward one record"
13240    WHEN 4:m$=S$+"move forward five records"
13250    WHEN 5:m$=S$+"move to the last record"
13260    WHEN 6:m$=I$+"the current record number and the total number of records respectively"
13270    WHEN 7:m$=S$+"goto a specified record"
13280  ENDCASE
13290  WHEN search%:CASE i% OF
13300    WHEN 6:m$=I$+"the current search string."+N$+S$+"change the contents of the icon"
13310    WHEN 7,8,9,10,11,12,13,14,15:m$=S$+"choose which fields to search through"
13320    WHEN 16:m$=S$+"toggle whether the search is case sensitive or not"
13330    WHEN 17:m$=S$+"perform the specified search"
13340    WHEN 18:m$=S$+"cancel the search and close the search window"
13350  ENDCASE
13360  WHEN info%:m$=W$+"information about the program"
13370  IF i%=7 THEN m$+=", and this is the excellent author !"
13380  WHEN save_as%,save_as1%,save_as2%:CASE i% OF
13390    WHEN 0:m$=I$+"the filename for the file. If it is not a complete pathname, drag the file icon to a directory display"
13400    WHEN 1:m$="Drag this icon to the directory display you which to save the address book. Or, drag it to the application into which you want to transfer the file"
13410    WHEN 2:m$=S$+"save the file under the current pathname. If it is not a complete pathname, you must drag the file icon to a directory display first"
13420    WHEN 3:m$=S$+"toggle whether to save the file in the TelAddr format, or as a plain ASCII textfile"
13430    WHEN 4:CASE w% OF
13440      WHEN save_as%:m$=S$+"choose between a full save of the address book, or a partial save of just some of the records"
13450      WHEN save_as2%:m$=S$+"choose whether you wish to include telephone numbers within the single address textfile"
13460    ENDCASE
13470    WHEN 5:IF w%=save_as2% m$=S$+"choose whether you wish to include commas and full stops after each line in the address"
13480    WHEN 6:m$=I$+"the start record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
13490    WHEN 7:m$=S$+"decrease the start record number for the partial save"
13500    WHEN 8:m$=S$+"increase the start record number for the partial save. Remember that the start record number will not go beyond the end record number"
13510    WHEN 10:m$=I$+"the end record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
13520    WHEN 11:m$=S$+"decrease the end record number for the partial save. Remember that the end record number will not go below the start record number"
13530    WHEN 12:m$=S$+"increase the end record number for the partial save"
13540  ENDCASE
13550  WHEN list_pane%:m$=W$+"the record number and matched fields of the last search performed."+N$+S$+"move to the record and field in which this string was found"
13560  WHEN list%:CASE i% OF
13570    WHEN 1:m$=S$+"close the search results window"
13580    WHEN 2:m$=S$+"re-open the search window and close the search results window"
13590    WHEN 3:m$=S$+"delete the records matched by the search"
13600    WHEN 4:m$=S$+"open a save box to save the matched records"
13610    WHEN 5:m$=S$+"redo the search, useful is the data has changed since"
13620  ENDCASE
13630  WHEN book%:CASE i% OF
13640    WHEN 9:m$=I$+"the name for this record."+N$+S$+"alter the data"
13650    WHEN 10,11,12:m$="These icons show the address for this record."+N$+S$+"alter the data"
13660    WHEN 13:m$=I$+"the town for this record."+N$+S$+"alter the data"
13670    WHEN 14:m$=I$+"the county for this record."+N$+S$+"alter the data"
13680    WHEN 15:m$=I$+"the country for this record."+N$+S$+"alter the data"
13690    WHEN 16:m$=I$+"the postcode for this record."+N$+S$+"alter the data"
13700    WHEN 17:m$=I$+"the home telephone number for this record."+N$+S$+"alter the data"
13710    WHEN 18:m$=I$+"the work telephone number for this record."+N$+S$+"alter the data"
13720    WHEN 19:m$=I$+"the fax telephone number for this record."+N$+S$+"alter the data"
13730  ENDCASE
13740  WHEN pref%:CASE i% OF
13750    WHEN 1:m$=S$+"accept the current preferences"
13760    WHEN 2:m$=S$+"cancel the changed preferences and reset them to how they were"
13770    WHEN 3:m$=S$+"apply the default preferences"
13780    WHEN 4:m$=S$+"save the current preferences"
13790    WHEN 5:m$=S$+"load the last saved preferences"
13800  ENDCASE
13810  WHEN pref_pane%:CASE i% OF
13820    WHEN 2:m$=S$+"toggle whether to ask for confirmation when clearing a record"
13830    WHEN 3:m$=S$+"toggle whether to ask for confirmation when deleting a record"
13840    WHEN 4:m$=S$+"toggle whether to ask for confirmation when deleting the matched records found by the last search"
13850    WHEN 5:m$=S$+"toggle whether to ask for confirmation when deleting the complete address book"
13860    WHEN 9:m$="If this option is selected, then when merging a single address file, TelAddr will check if the current record is blank; if so, it will replace it with the new address, otherwise it will append it to the end of the address book"
13870    WHEN 10:m$="If this option is selected, then when merging any address file, TelAddr will always append it to the end of the address book"
13880    WHEN 13:m$="If this option is selected, then when adding records from the toolbox, they will be created before the current record"
13890    WHEN 14:m$="If this option is selected, then when adding records from the toolbox, they will be created after the current record"
13900    WHEN 19,20,21,22,23,24,25,26,27:m$=S$+"toggle the default fields to search through"
13910    WHEN 30:m$=S$+"toggle whether to have case sensitivity as default"
13920    WHEN 35:m$=S$+"choose the TelAddr format as default when saving the address book"
13930    WHEN 36:m$=S$+"choose ASCII (a textfile) as default when saving the address book"
13940    WHEN 37:m$=S$+"toggle whether to have partial saving as default when saving the address book"
13950    WHEN 39:m$=I$+"the default start record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
13960    WHEN 40:m$=S$+"decrease the default start record number for the partial save"
13970    WHEN 41:m$=S$+"increase the default start record number for the partial save"
13980    WHEN 43:m$=I$+"the default end record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
13990    WHEN 44:m$=S$+"decrease the default end record number for the partial save"
14000    WHEN 45:m$=S$+"increase the default end record number for the partial save"
14010    WHEN 48:m$=S$+"choose the TelAddr format as default when saving the search results"
14020    WHEN 49:m$=S$+"choose ASCII (a textfile) as default when saving the search results"
14030    WHEN 52:m$=S$+"choose the TelAddr format as default when saving a single address"
14040    WHEN 53:m$=S$+"choose ASCII (a textfile) as default when saving a single address"
14050    WHEN 54:m$=S$+"toggle whether to include telephone numbers as default when saving a single address book"
14060    WHEN 74:m$=S$+"toggle whether to add commas and full-stops as default when saving a single address book"
14070    WHEN 57:m$=S$+"toggle whether to highlight the search string in the matched fields after a search"
14080    WHEN 58:m$=I$+"the default hightlight colour"
14090    WHEN 59:m$=S$+"change the default hightlight colour"
14100    WHEN 63:m$=S$+"toggle whether to load the specified address book when the program is loaded"
14110    WHEN 65:m$=I$+"the full pathname for the default address book."+N$+S$+" to alter it, or drag an address book file onto this file to use its pathname instead"
14120    WHEN 68:m$=S$+"toggle whether to show the toolbox (attached to the side of the main address book window) by default"
14130    WHEN 69:m$=S$+"toggle whether to show the position window (attached to the bottom of the main address book window) by default"
14140    WHEN 72:m$=S$+"toggle whether to insert a default country when a new record is created"
14150    WHEN 73:m$=I$+"the default country."+N$+S$+"to change it"
14160  ENDCASE
14170  WHEN -2:m$="This is the TelAddr icon, an editor of telephone and address books."+N$+S$+"open the address book window"
14180ENDCASE
14190IF m$<>"" SYS "WimpExt_SendHelp",m$+".",b%
14200ENDPROC

/� >ADFS::MAD�4.$.TelAddr.!TelAddr.!RunImage
Mname1$="TelAddr":name2$="TelAddr":skip%=0:poll%=�:f%=-1:init%=�:� b% &800
(� � � �err=0 � �close_down � skip%=1
(A� skip%=0 �init:�assemble:�define:skip%=0:poll%=�:�check_load
2skip%=0:poll%=�:�poll
<�close_down
F�
P:
Zݤerr:error%=0
d
� poll% �
n?  e$=�$+" ("+�(�)+") at line "+�(�):e%=continue_quit%:e2%=0
x<  � �=71622 � �#f%:ș "OS_File",6,filename$:e$=�$:e%=ok%
�8  � �=204 � �=67785 � �=67797 � �=67778 e$=�$:e%=ok%
�6  � �=193 � �=195 �#f%:e$="File is locked.":e%=ok%
�A  ș "WimpExt_OpenRequester",,,"Error from TelAddr",e$,e%,e2%
�  req%=-1:error%=1
��
�C  e$=�$+" ("+�(�)+") at line "+�(�)+", quit program ?":leave%=0
�  � �=67797 e$=�$:leave%=1
�>  � leave%=0 � error%=�error(e$) � 1 � �error(e$):error%=0
��
�=error%
�:
�
��init
�\ș "OS_GetEnv" � a$:� �a$,"-file ") � chk_ld%=1:chk_ld$=�a$,�a$,"-file ")+6) � chk_ld%=0
Mtel_ft%=&100:prog_ver%=103:file_ver%=100:date$="13-Aug-93":code_len%=1024
'� b2% &300,b3% &100,code% code_len%
G� s1% &A0,m1% &A0,m2% &100,m3% &100,m4% &A0,m6% &A0,m7% &A0,m8% &A0
"E� goto% 4,goto_val% 8,template% 11*1024,indir% 17*1024,fonts% 256
,end_indir%=indir%+(17*1024)
6$goto%="":$goto_val%="a0-9"
@total_max%=256
Jrec_len%  =11*32
TM� tab% total_max%*rec_len%,pointers% total_max%*4,table% total_max%*11*12
^>� I%=tab% � tab%+(total_max%*rec_len%) � rec_len%:$I%="":�
h-� menu% &100,val% 16:menu_pos%=0:$val%=""
rD� ok_cancel% 40,ok% 40,continue_quit% 40,save_discard_cancel% 40
|,�buttons(ok_cancel%,"OK","Cancel","","")
��buttons(ok%,"OK","","","")
�4�buttons(continue_quit%,"Continue","Quit","","")
�?�buttons(save_discard_cancel%,"Save","Discard","Cancel","")
�%my_font$="Trinity.Medium":okay%=0
�;count%=0:�:ș "Font_ListFonts",,b%,count%,-1 � ,,count%
�� count%<>-1 �
�  � $b%=my_font$ okay%=1
��
�� count%=-1
�p� okay%=0 � �error("!TelAddr needs to have 'seen' the Trinity.Medium font before it is loaded."):�close_down
�� sa% 15*1024
�Nsa%!0=15*1024:sa%!4=0:sa%!8=16:ș 46,256+10,sa%,"<"+name1$+"$Dir>.Sprites"
��inittask(name2$):init%=�
� I=0 � 12:b%!(I*4)=0:�
eș "WimpExt_LoadTemplates",b%,template%,indir%,end_indir%,fonts%,"<"+name1$+"$Dir>.Templates",sa%
�file_info%=b%!0:tools%=b%!4:pos%=b%!8:search%=b%!12:save_as1%=b%!16:list_pane%=b%!20:book%=b%!24:save_as%=b%!28:list%=b%!32:pref_pane%=b%!36:save_as2%=b%!40:pref%=b%!44:info%=b%!48
&+ș "WimpExt_LinkWindows",,,book%,tools%
0/ș "WimpExt_LinkWindows",,,list%,list_pane%
:/ș "WimpExt_LinkWindows",,,pref%,pref_pane%
D6ș "WimpExt_SetIconString",,,info%,7,"Mark Hobson"
Nrv$=�(prog_ver% � 100):ș "WimpExt_SetIconString",,,info%,9,�(prog_ver% �100)+"."+�2-�v$,"0")+v$+" ("+date$+")"
X>ș "WimpExt_SetIconString",,,info%,11,"(c)1993 Acorn User"
b,ș "WimpExt_ColoursMenu",0,0 � col_menu%
l8ș "WimpExt_IconBarSprite",,,-1,"!teladdr",,3 � bar%
vXoptX%=1:quit%=0:max%=0:record%=0:pos$="":pos_record%=0:req%=-1:searched%=0:failed%=0
�Vgood_book$="AddrBook":good_search$="Searched":good_address$="Address":save_quit%=0
�pane_1%=1:pane_2%=1
�P�pos:�load_prefs(1):�blank_record(record%):�display(record%):�store(record%)
��modified(0):trans_len%=-1
��
�:
���assemble
�7� I%=8 � 10 � 2:P%=code%:L%=code%+code_len%:[OPT I%
�
�%  ; On entry - R0 = array pointer
�.  ;            R1 = total number of fields
�  ;
�,  ; On exit  - R0 = file length in bytes

#  .file_length STMFD R13!,{R14}
               MOV   R2,#0
   .fl_1        MOV   R3,#0
*#  .fl_2        LDRB  R4,[R0,R3]
4!               ADD   R2,R2,#1
>!               ADD   R3,R3,#1
H               CMP   R4,#32
R               BGE   fl_2
\"               ADD   R0,R0,#32
f!               SUBS  R1,R1,#1
p               BNE   fl_1
z               MOV   R0,R2
�"               LDMFD R13!,{PC}
�
�%  ; On entry - R0 = array pointer
�.  ;            R1 = pointers array pointer
�0  ;            R2 = number of records (0..n)
�%  ;            R3 = record length
�
�#  .sort        STMFD R13!,{R14}
�$               MOV   R2,R2,LSL#2
�               MOV   R4,#0
�$  .sort_1      MLA   R5,R4,R3,R0
�)               LDR   R6,[R1,R4,LSL#2]
�               MOV   R9,R5
               MOV   R10,R6
               CMP   R5,R6
               BEQ   sort_4
$,               STMFD R13!,{R0-R4,R8-R10}
.               MOV   R7,#0
8$  .sort_2      LDMIA R5 ,{R0-R3}
B(               LDMIA R6 ,{R4,R8-R10}
L$               STMIA R6!,{R0-R3}
V(               STMIA R5!,{R4,R8-R10}
`$               LDMIA R5 ,{R0-R3}
j(               LDMIA R6 ,{R4,R8-R10}
t$               STMIA R6!,{R0-R3}
~(               STMIA R5!,{R4,R8-R10}
�"               ADD   R7,R7,#32
�                CMP   R7,#320
�               BLE   sort_2
�,               LDMFD R13!,{R0-R4,R8-R10}
�               MOV   R7,#0
�#  .sort_3      LDR   R8,[R1,R7]
�               CMP   R8,R9
�$               STREQ R10,[R1,R7]
�!               ADD   R7,R7,#4
�               CMP   R7,R2
�               BLE   sort_3
�!  .sort_4      ADD   R4,R4,#1
%               MOV   R11,R2,LSR#2

               CMP   R4,R11
               BLE   sort_1
"               LDMFD R13!,{PC}
(
2%  ; On entry - R0 = array pointer
<0  ;            R1 = number of records (0..n)
F%  ;            R2 = record length
P-  ;            R3 = results table pointer
ZD  ;            R4 = search string pointer (including wild-cards)
d,  ;            R5 = search string length
n7  ;            R6 = flags - bits 0-10 = field flags
x&  ;            R7 = case sensitive
�  ;
�8  ; On exit  - R0 = number of strings matched (0..n)
�
�#  .search      STMFD R13!,{R14}
�'               STR   R6,search_flag
�               MOV   R6,R7
�               MOV   R7,#0
�&               STR   R7,search_len
�  .search_1    MOV   R8,#0
�'  .search_2    LDR   R9,search_flag
�               MOV   R10,#1
�'               �   R9,R9,R10,LSL R8
�               CMP   R9,#0
$               BEQ   search_next
$               MLA   R9,R7,R2,R0
'               ADD   R9,R9,R8,LSL#5
"               MOV   R10,#0
,               MOV   R14,#0
6%               LDRB  R11,[R4,R14]
@%               LDRB  R12,[R9,R10]
J                CMP   R12,#32
T$               BLT   search_next
^"               CMP   R11,#�"#"
h"               BEQ   search_3b
r"               CMP   R11,#�"*"
|#               BEQ   search_3x2
�%  .search_3    LDRB  R12,[R9,R10]
�                CMP   R12,#32
�$               BLT   search_next
�               CMP   R6,#0
�"               BNE   search_3a
�                CMP   R12,#65
�"               BLT   search_3a
�                CMP   R12,#90
�"               BGT   search_3a
�#               �R   R12,R12,#32
�   .search_3a   CMP   R11,R12
�!               BNE   search_4
�%  .search_3b   LDRB  R11,[R4,R14]
%               LDRB  R12,[R9,R10]
                CMP   R12,#32
$               BLT   search_next
&"               CMP   R11,#�"#"
0#               BEQ   search_3x1
:"               CMP   R11,#�"*"
D#               BEQ   search_3x2
N               CMP   R6,#0
X"               BNE   search_3x
b                CMP   R12,#65
l"               BLT   search_3x
v                CMP   R12,#90
�"               BGT   search_3x
�#               �R   R12,R12,#32
�   .search_3x   CMP   R11,R12
�"               BNE   search_3c
�#  .search_3x1  ADD   R10,R10,#1
�                CMP   R10,#31
�$               BEQ   search_next
�#               ADD   R14,R14,#1
�               CMP   R14,R5
�"               BLT   search_3b
�#  .search_3x2  STR   R7,[R3],#4
�#               STR   R8,[R3],#4
�$               SUB   R10,R10,R14
#               ADD   R10,R10,#1
$               STR   R10,[R3],#4
'               LDR   R11,search_len
 #               ADD   R11,R11,#1
*'               STR   R11,search_len
4$               B     search_next
>  .search_3c   MOV   R14,#0
H%               LDRB  R11,[R4,R14]
R!               B     search_3
\#  .search_4    ADD   R10,R10,#1
f                CMP   R10,#31
p$               BEQ   search_next
z!               B     search_3
�!  .search_next ADD   R8,R8,#1
�               CMP   R8,#10
�!               BLE   search_2
�!               ADD   R7,R7,#1
�               CMP   R7,R1
�!               BLE   search_1
�&               LDR   R0,search_len
�"               LDMFD R13!,{PC}
�
�  .search_len  EQUD  0
�  .search_flag EQUD  0
�
�%  ; On entry - R0 = array pointer
	0  ;            R1 = number of records (0..n)
	+  ;            R2 = start record (0..n)
	%  ;            R3 = record length
	$
	.#  .insert      STMFD R13!,{R14}
	8!               MUL   R5,R1,R3
	B!               ADD   R0,R0,R5
	L  .insert_1    MOV   R4,#11
	V!               ADD   R5,R0,R3
	`)  .insert_2    LDMIA R0!,{R6-R12,R14}
	j)               STMIA R5!,{R6-R12,R14}
	t!               SUBS  R4,R4,#1
	~!               BNE   insert_2
	�!               SUB   R0,R0,R3
	�!               SUB   R0,R0,R3
	�!               SUB   R1,R1,#1
	�               CMP   R1,R2
	�!               BGE   insert_1
	�"               LDMFD R13!,{PC}
	�
	�%  ; On entry - R0 = array pointer
	�0  ;            R1 = number of records (0..n)
	�+  ;            R2 = start record (0..n)
	�%  ;            R3 = record length
	�
#  .delete      STMFD R13!,{R14}

!               MUL   R5,R2,R3
!               ADD   R0,R0,R5
  .delete_1    MOV   R4,#11
(!               ADD   R5,R0,R3
2)  .delete_2    LDMIA R5!,{R6-R12,R14}
<)               STMIA R0!,{R6-R12,R14}
F!               SUBS  R4,R4,#1
P!               BNE   delete_2
Z!               ADD   R2,R2,#1
d               CMP   R2,R1
n!               BLT   delete_1
x"               LDMFD R13!,{PC}
�
�)  ; On entry - R0 = pointer to string
�
�  .cut         MOV   R1,#0
�#  .cut_1       LDRB  R2,[R0,R1]
�               CMP   R2,#32
�!               ADDGE R1,R1,#1
�               BGE   cut_1
�               MOV   R3,#13
�#               STRB  R3,[R0,R1]
�               MOV   PC,R14
�
�)  ; On entry - R0 = pointer to string
(  ; On exit  - R0 = length of string

  .cut2        MOV   R1,#0
"#  .cut2_1      LDRB  R2,[R0,R1]
,               CMP   R2,#32
6!               ADDGE R1,R1,#1
@               BGE   cut2_1
J               MOV   R3,#10
T#               STRB  R3,[R0,R1]
^               MOV   R0,R1
h               MOV   PC,R14
r
|(  ; On entry - R0 = pointer to table
�0  ;            R1 = number of entries (1..n)
�  ;
�0  ; On exit  - R0 = number of actual records
�
�#  .count_rec   STMFD R13!,{R14}
�               MVN   R2,#0
�               MOV   R4,#0
�$  .count_rec_1 LDR   R3,[R0],#12
�               CMP   R3,R2
�$               BNE   count_rec_2
�               MOV   R2,R3
�!               SUBS  R1,R1,#1
�$               BEQ   count_rec_3
$               B     count_rec_1
  .count_rec_2 MOV   R2,R3
!               ADD   R4,R4,#1
&!               SUBS  R1,R1,#1
0$               BNE   count_rec_1
:  .count_rec_3 MOV   R0,R4
D"               LDMFD R13!,{PC}
N
X	]:�:�
b:
l��check_load
vA� chk_ld% �load_file(chk_ld$,0) � � load% �load_file(load$,0)
��
�:
���buttons(but%,a$,b$,c$,d$)
�K$but%=a$:but%+=�a$+1:$but%=b$:but%+=�b$+1:$but%=c$:but%+=�c$+1:$but%=d$
��
�:
���inittask(a$):$b%="TASK"
�3ș "Wimp_Initialise",200,!b%,a$ � ,task_handle%
�>ș "WimpExt_Initialise",5,task_handle%,%0111101 � wimpext%
��
�:
���define
�W�createmenu(m1%,"TelAddr","Info>info%,Preferences...,Save book>save_as%#E,Quit",e1)

=�createmenu(m4%,"Misc","Info>info%,File>file_info%#E",e4)

v�createmenu(m2%,"Save","Save book     F3>save_as%#E,Save search  �F3>save_as1%#E,Save address ^F3>save_as2%#E",e2)

D�createmenu(m6%,"Search","Save>save_as1%#E,Search...,Delete",e6)

 ^�createmenu(m7%,"Edit","Add before,Add after,Delete record,Clear record#L,Delete book",e7)

*4�createmenu(m8%,"Display","Toolbox,Position",e8)

4[�createmenu(m3%,"TelAddr","Misc>m4%,Save    F3>m2%,Search>m6%,Edit>m7%,Display>m8%",e3)

>.�sub(s1%,"Goto record:",goto%,goto_val%,4)

H�

R:

\,��j(j1%,j2%,j3%):j1%!(32+(j2%*24))=j3%:�

f:

p
��poll

z�� failed% � failed%=0:req%=0:ș "WimpExt_OpenRequester",,,"Message from TelAddr","Default address book does not exist, load failed.",ok%,0

�ȕ � quit%

�  ș "WimpExt_PrePoll"

�#  ș "Wimp_Poll",0,b% � reason%

�;  ș "WimpExt_Action",task_handle%,b%,reason% � reason%

�  Ȏ reason% �

�    � 1:�redraw(!b%)

�B    � 2:ș "WimpExt_OpenLinked",,b%:� !b%=book% �open_pos_pane

�W    � 3:ș "WimpExt_CloseLinked",,b%:� !b%=book% !b%=pos%:ș "Wimp_CloseWindow",,b%

�    � 6:�click

�    � 7:�init_save

�    � 8:�key_pressed

�    � 9:�menuselect

�    � 10:�scroll_req
    � 17,18:�service
�    � 19:� SYS "OS_File",6,b%+44:req%=0:SYS "WimpExt_OpenRequester",,,"Warning from TelAddr","Data transfer failed: Receiver died",ok%,0
  �
$�
.�
8:
B
��service
LȎ b%!16 �
V  � 0:�quit
`  � 1:�save_ack
j  � 2:�data_save
t  � 3:Ȏ b%!20 �
~�    � book%,-2:� �load_ack �store(record%):�load_file(�string(b%+44),1):� failed% � failed%=0:req%=0:ș "WimpExt_OpenRequester",,,"Message from TelAddr","File does not exist, load failed.",ok%,0
�`    � pref%,pref_pane%:� �load_ack ș "WimpExt_SetIconString",,,pref_pane%,65,�string(b%+44)
�  �
�Z  � ��string(b%+44),12)="<Wimp$Scrap>" � ș "OS_File",6,�string(b%+44):temp%=�load_ack
�  � 5:� �load_ack �
�6      mod_filename$=�string(b%+44):�store(record%)
�      � modified%=0 �
Ģ        �load_file(mod_filename$,0):� failed% � failed%=0:req%=0:ș "WimpExt_OpenRequester",,,"Message from TelAddr","File does not exist, load failed.",ok%,0
�      �
أ        req%=5:ș "WimpExt_OpenRequester",,,"Query from TelAddr","The current address book has not been saved, do you want to save it ?",save_discard_cancel%,2
�      �
�	    �
�  � 6:�ram_fetch
  � &502:�help

  � &400C0:�menu_warning
�
�
(:
2)��key_pressed:w%=!b%:i%=b%!4:k%=b%!24
<
Ȏ � �
F@  � w%=save_as% � (i%=6 � i%=10) � (k%=13 � k%=398 � k%=399)
P0    �sortout_partial((i%-6)/4,save_as%,6,10)
Z_    � i%=6 ș "WimpExt_PutCaretIcon",,,save_as%,10 � ș "WimpExt_PutCaretIcon",,,save_as%,6
dC  � w%=pref_pane% � (i%=39 � i%=43) � (k%=13 � k%=398 � k%=399)
n4    �sortout_partial((i%-39)/4,pref_pane%,39,43)
xe    � i%=39 ș "WimpExt_PutCaretIcon",,,pref_pane%,43 � ș "WimpExt_PutCaretIcon",,,pref_pane%,39
�<  � (w%=book% � w%=search%) � (k%=387 � k%=403 � k%=419)
�    Ȏ k% �
�/      � 387:�open_save(save_as%,good_book$)
��      � 403:� searched% �open_save(save_as1%,good_search$) � req%=0:ș "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot save the search results until you perform a search.",ok%,0
�3      � 419:�open_save(save_as2%,good_address$)
�	    �
�
�  ș "Wimp_ProcessKey",k%
��
��
�:
�'��sortout_partial(type%,w%,i1%,i2%)
�%p1%=�val(w%,i1%):p2%=�val(w%,i2%)
� p1%<1 p1%=1
� p2%<1 p2%=1
� p1%>max%+1 p1%=max%+1
"� p2%>max%+1 p2%=max%+1
,� type%=0 �
6  � p1%>p2% p1%=p2%
@  � p2%<p1% p2%=p1%
J�
T  � p2%<p1% p2%=p1%
^  � p1%>p2% p1%=p2%
h�
r+ș "WimpExt_SetNumberIcon",,,w%,i1%,p1%
|+ș "WimpExt_SetNumberIcon",,,w%,i2%,p2%
��
�:
���menu_warning
�$mw1%=b%!20:mw2%=b%!24:mw3%=b%!28
�Ȏ om% �
�  � m1%:Ȏ b%!32 �
�    � 2:�prepare_book
�  �
�  � m3%:Ȏ b%!32 �
�    � 0:Ȏ b%!36 �
�K      � 1:�store(record%):�calc_file_len:� modified% a$="Yes" � a$="No"
�8        ș "WimpExt_SetIconString",,,file_info%,7,a$
�	    �
    � 1:Ȏ b%!36 �
      � 0:�prepare_book
      � 1:�prepare_search
&      � 2:�prepare_address
0	    �
:    � 2:Ȏ b%!36 �
D      � 0:�prepare_search
N	    �
X  �
b�
l+ș "Wimp_CreateSubMenu",,mw1%,mw2%,mw3%
v�
�:
�>��prepare_book:save_quit%=0:filename%=�in_addr(save_as%,0)
�Cș "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1
�%�sortout_partial(0,save_as%,6,10)
��
�:
�A��prepare_search:save_quit%=0:filename%=�in_addr(save_as1%,0)
�Fș "WimpExt_SetIconString",,,save_as1%,0,good_search$:save_type%=2
��
�:
�B��prepare_address:save_quit%=0:filename%=�in_addr(save_as2%,0)
�Gș "WimpExt_SetIconString",,,save_as2%,0,good_address$:save_type%=3
��
:
��close_down
C� init% ș "WimpExt_CloseDown",task_handle%:ș "Wimp_CloseDown"
 �
*�
4:
>��open_pos_pane
H� pane_2% �
R0  x1%=b%!4:x2%=x1%+678:y1%=b%!8-4:y2%=y1%-84
\5  p%=b%!28:!b2%=pos%:ș "Wimp_GetWindowInfo",,b2%
f9  b2%!4=x1%:b2%!8=y2%:b2%!12=x2%:b2%!16=y1%:b2%!28=p%
p*  ș "Wimp_OpenWindow",,b2%:b%!28=pos%
z�
��
�:
�<��open_window(!b%):ș "Wimp_GetWindowState",,b%:b%!28=-1
�#ș "WimpExt_CentreWindow",,b%+4
�:ș "WimpExt_OpenLinked",,b%:� !b%=book% �open_pos_pane
��
�:
�,��open(!b%):ș "Wimp_GetWindowState",,b%
�:ș "WimpExt_OpenLinked",,b%:� !b%=book% �open_pos_pane
��
�:
�5��open_at(!b%,x%,y%):ș "Wimp_GetWindowState",,b%
�Gw%=b%!12-b%!4:h%=b%!16-b%!8:b%!4=x%:b%!8=y%-h%:b%!12=x%+w%:b%!16=y%
!ș "WimpExt_OpenLinked",,b%:�
:
4��close_window(!b%):ș "WimpExt_CloseLinked",,b%
$2� !b%=book% !b%=pos%:ș "Wimp_CloseWindow",,b%
.� !b%=list% searched%=0
8�
B:
L��delete_book
V<�blank_record(0):record%=0:max%=0:�display(record%):�pos
`'ș "WimpExt_PutCaretIcon",,,book%,9
j%�close_window(list%):�modified(1)
t�
~:
���click
�-x%=b%!0:y%=b%!4:c%=b%!8:w%=b%!12:i%=b%!16
�$ș "XWimpExt_SlabIcon",,,w%,i%,0
�Ȏ w% �
�  � -3:Ȏ req% �
�    � -1:� i%=1 quit%=-1
�2    � 0:� 'OK' click from a reminder requester
�,    � 1:� i%=0 �delete_record(record%,1)
�    � 2:� i%=0 �delete_book
�#    � 3:� i%=0 �delete_searched
�    � 4:Ȏ i% �
��      � 0:ș "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1:ș "WimpExt_OpenDialogue",,,save_as%,148,70:save_quit%=1
#      � 1:quit%=-1:�modified(0)

	    �
    � 5:Ȏ i% �
y      � 0:ș "WimpExt_SetIconString",,,save_as%,0,good_book$:save_type%=1:ș "WimpExt_OpenDialogue",,,save_as%,148,70
()      � 1:�load_file(mod_filename$,0)
2	    �
<n    � 6:� i%=0 �blank_record(record%):�display(record%):� �open(book%) ș "WimpExt_PutCaretIcon",,,book%,9
F  �
P  � -2:Ȏ c% �
ZC    � 4:�open_window(book%):ș "WimpExt_PutCaretIcon",,,book%,9
d!    � 2:�menu(m1%,x%,y%,�,e1)
n  �
x$  � save_as%,save_as1%,save_as2%
�  Ȏ � �
�B    � i%=1 � (c% � &50)>0:ș "WimpExt_GetIcon",,,w%,3 � ascii%
�'    � ascii% ft%=&FFF � ft%=tel_ft%
�<    ș "WimpExt_DragIcon",%10000101,1,w%,1,"file_"+�~ft%
�'    � i%=2 � (c% � 5)>0:�quick_save
�H    � i%=3 � (c%=4 � c%=1):ș "WimpExt_SetIcon",,,w%,1,�on(w%,1) � 1
�  �
�
  Ȏ w% �
�    � save_as2%:Ȏ i% �
�      � 3:�save2_size
�	    �
�    � save_as%:Ȏ i% �
�      � 4:�save_size
9      � 7:ș "WimpExt_DecNumberIcon",,,save_as%,6,1,1
I      � 8:ș "WimpExt_IncNumberIcon",,,save_as%,6,�val(save_as%,10),1
J      � 11:ș "WimpExt_DecNumberIcon",,,save_as%,10,�val(save_as%,6),1
"@      � 12:ș "WimpExt_IncNumberIcon",,,save_as%,10,max%+1,1
,	    �
6  �
@  � tools%
J
  Ȏ i% �
T\    � 0:�close_window(list%):�open_window(search%):ș "WimpExt_PutCaretIcon",,,search%,6
^    � 1:�sort
h+    � 2:�insert_record(record%,pf_add%)
r�    � 3:� �bit(pf_confirm%,1) � req%=1:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Delete record, are you sure ?",ok_cancel%,1 � �delete_record(record%,1)
|  �
�  � pos%
�
  Ȏ i% �
�    � 0:�show(0)
�9  � 1:�:record%-=1:� ((record%+1)�5)=0:�show(record%)
�    � 2:�show(record%-1)
�    � 3:�show(record%+1)
�9  � 4:�:record%+=1:� ((record%+1)�5)=0:�show(record%)
�    � 5:�show(max%)
�-    � 7:$goto%="":�menu_opt(pos%,7,s1%,1)
�  �
�*  � book%:� c%=2 �menu(m3%,x%,y%,�,e3)
�  � search%
�
  Ȏ i% �
#    � 18:�close_window(search%)
    � 17:�search
  �
&
  � list%
0
  Ȏ i% �
:     � 1:�close_window(list%)
D\    � 2:�close_window(list%):�open_window(search%):ș "WimpExt_PutCaretIcon",,,search%,6
N�    � 3:� �bit(pf_confirm%,2) � req%=3:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete all records matched by the last search ?",ok_cancel%,1 � �delete_searched
X.    � 4:�open_save(save_as1%,good_search$)
b(    � 5:�close_window(list%):�search
l  �
v  � list_pane%
�
  Ȏ c% �
�!    � 2:�menu(m3%,x%,y%,�,e3)
�  
�    �store(record%)
�C    !b%=list_pane%:ș "Wimp_GetWindowState",,b%:y%-=b%!16-b%!24
�:    old_search_sel%=search_sel%:search_sel%=�(y% � 48)
�9    � search_sel%>search_len% search_sel%=search_len%
�Q    ș "Wimp_GetWindowInfo",,b%:b%!4=b%!44:b%!8=b%!48:b%!12=b%!52:b%!16=b%!56
�*    ș "Wimp_UpdateWindow",,b% � flag%
�    �get_coords
�    ȕ flag%
�      �redraw_list
�,      ș "Wimp_GetRectangle",,b% � flag%
	    �
'    record%=table%!(search_sel%*12)
#    � record%>max% record%=max%
 j    �display(record%):� �open(book%) ș "WimpExt_PutCaretIcon",,,book%,(table%!((search_sel%*12)+4))+9
*    �pos:different%=0
4  �
>  � pref%:Ȏ i% �
H*    � 1:�ok_prefs:�close_window(pref%)
R.    � 2:�close_window(pref%):�cancel_prefs
\    � 3:�default_prefs
f6    � 4:�save_prefs:�ok_prefs:�close_window(pref%)
p    � 5:�load_prefs(0)
z  �
�  � pref_pane%:Ȏ i% �
�'    � 37:on%=�on(pref_pane%,37) � 1
�      � I%=39 � 45
�?        � I%<>42 ș "WimpExt_ShadeIcon",,,pref_pane%,I%,on%
�      �
�;    � 40:ș "WimpExt_DecNumberIcon",,,pref_pane%,39,1,1
�M    � 41:ș "WimpExt_IncNumberIcon",,,pref_pane%,39,�val(pref_pane%,43),1
�M    � 44:ș "WimpExt_DecNumberIcon",,,pref_pane%,43,�val(pref_pane%,39),1
�@    � 45:ș "WimpExt_IncNumberIcon",,,pref_pane%,43,max%+1,1
�o    � 52,53:ș "WimpExt_ShadeIcon",,,pref_pane%,54,�(i%=52):ș "WimpExt_ShadeIcon",,,pref_pane%,74,�(i%=52)
�Y    � 57:� I%=58 � 59:ș "WimpExt_ShadeIcon",,,pref_pane%,I%,�on(pref_pane%,57) � 1:�
�b    � 59:J%=�bg_col(pref_pane%,58):� I%=0 � 15:ș "WimpExt_TickEntry",,col_menu%,I%,�(I%=J%):�
�/      �menu_opt(pref_pane%,59,col_menu%,16)
Y    � 63:� I%=64 � 65:ș "WimpExt_ShadeIcon",,,pref_pane%,I%,�on(pref_pane%,63) � 1:�
J    � 72:ș "WimpExt_ShadeIcon",,,pref_pane%,73,�on(pref_pane%,72) � 1
  �
$�
.�
8:
B'��save2_size:open%=�open(save_as2%)
L,� �on(save_as2%,3) � wy%=-396 � wy%=-276
V-!b%=save_as2%:ș "Wimp_GetWindowInfo",,b%
`3� open% b%!8=b%!16+wy%:ș "Wimp_OpenWindow",,b%
j�
t:
~%��save_size:open%=�open(save_as%)
�+� �on(save_as%,4) � wy%=-488 � wy%=-332
�,!b%=save_as%:ș "Wimp_GetWindowInfo",,b%
�3� open% b%!8=b%!16+wy%:ș "Wimp_OpenWindow",,b%
��
�:
���open_save(w%,s$)
�filename%=�in_addr(w%,0)
�(ș "WimpExt_SetIconString",,,w%,0,s$
�Ȏ w% �
�  � save_as%:save_type%=1
�  � save_as1%:save_type%=2
�  � save_as2%:save_type%=3
�

save_quit%=0
�store(record%)
)ș "WimpExt_OpenDialogue",,,w%,156,70
(�
2:
<��menu_opt(w%,i%,m%,e)
F'!b%=w%:ș "Wimp_GetWindowState",,b%
P5minx%=b%!4-b%!20:miny%=b%!16-b%!24:!b%=w%:b%!4=i%
ZCș "Wimp_GetIconState",,b%:x%=minx%+b%!16:y%=miny%+b%!12+(13*4)
d"ș "Wimp_CreateMenu",,m%,x%,y%
nom%=m%:oe=e:�
x:
���menu(m%,x%,y%,ib%,e)
��store(record%)
�0ș "WimpExt_ShadeEntry",,m2%,1,searched% � 1
�0ș "WimpExt_ShadeEntry",,m6%,0,searched% � 1
�0ș "WimpExt_ShadeEntry",,m6%,2,searched% � 1
�)ș "WimpExt_TickEntry",,m8%,0,pane_1%
�)ș "WimpExt_TickEntry",,m8%,1,pane_2%
�9ș "WimpExt_SetIconStringN",,,file_info%,1,good_book$
�4ș "WimpExt_SetNumberIcon",,,file_info%,3,max%+1
�YJ%=�bg_col(pref_pane%,58):� I%=0 � 15:ș "WimpExt_TickEntry",,col_menu%,I%,�(I%=J%):�
�=� ib% y2%=96+e*44:x2%=x%-64 � y2%=y%:x2%=x%-32-(16*optX%)
�$ș "Wimp_CreateMenu",,m%,x2%,y2%
�om%=m%:oe=e:�
:
��calc_file_len
len%=�file_len
">� len%>=4096 len$=�(len% � 1024)+"k" � len$=�len%+" bytes"
,2ș "WimpExt_SetIconString",,,file_info%,5,len$
6�
@:
Jݤfile_len
T.A%=tab%:B%=(max%+1)*11:len%=�(file_length)
^len%+=14+��(max%+1):=len%
h:
r��menuselect
|Ȏ om% �
�  � m1%:Ȏ !b% �
�G    � 1:�remember_prefs:�scroll_top(pref_pane%):�open_window(pref%)
�%    � 2:�prepare_book:�quick_save
�    � 3:�quit
�  �
�  � s1%:Ȏ !b% �
�    � 0:�show(�($goto%)-1)
�  �
�  � m3%:Ȏ !b% �
�    � 1:Ȏ b%!4 �
�*      � -1,0:�prepare_book:�quick_save
�)      � 1:�prepare_search:�quick_save
�*      � 2:�prepare_address:�quick_save
	    �
    � 2:Ȏ b%!4 �
)      � 0:�prepare_search:�quick_save
&^      � 1:�close_window(list%):�open_window(search%):ș "WimpExt_PutCaretIcon",,,search%,6
0�      � 2:� �bit(pf_confirm%,2) � req%=3:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete all records matched by the last search ?",ok_cancel%,1 � �delete_search
:	    �
D    � 3:Ȏ b%!4 �
N'      � 0:�insert_record(record%,0)
X'      � 1:�insert_record(record%,1)
b�      � 2:� �bit(pf_confirm%,1) � req%=1:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Delete record, are you sure ?",ok_cancel%,1 � �delete_record(record%,1)
l�      � 3:� �bit(pf_confirm%,0) � req%=6:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Clear record, are you sure ?",ok_cancel%,1 � �blank_record(record%):�display(record%):� �open(book%) ș "WimpExt_PutCaretIcon",,,book%,9
v�      � 4:� �bit(pf_confirm%,3) � req%=2:ș "WimpExt_OpenRequester",,,"Query from TelAddr","Are you sure that you want to delete the whole address book ?",ok_cancel%,1 � �delete_book
�	    �
�    � 4:Ȏ b%!4 �
�!      � 0:pane_1%=pane_1% � 1
��        � pane_1% ș "WimpExt_UnHideLink",book%,,tools%:�open(book%) � ș "WimpExt_HideLink",book%,,tools%:�close_window(tools%)
�8        ș "WimpExt_SetIcon",,,pref_pane%,68,pane_1%
�!      � 1:pane_2%=pane_2% � 1
�8        � pane_2% �open(book%) � �close_window(pos%)
�8        ș "WimpExt_SetIcon",,,pref_pane%,69,pane_2%
�	    �
�  �
�C  � col_menu%:ș "WimpExt_SetIconColour",,,pref_pane%,58,-1,!b%
��
�� � quit% �
E  ș "Wimp_GetPointerInfo",,b%:� b%!8=1 � �menu(om%,x%,y%,ib%,oe)
�
�
 :
*��quit:quit%=-1
4�� modified% � req%=4:quit%=0:ș "WimpExt_OpenRequester",,,"Query from TelAddr","The current address book has not been saved.",save_discard_cancel%,2
>�
H:
R9ݤon(w%,i%):!b%=w%:b%!4=i%:ș "Wimp_GetIconState",,b%
\� (b%!24 � 1<<21)>0 =1 � =0
f:
p=ݤbg_col(w%,i%):!b%=w%:b%!4=i%:ș "Wimp_GetIconState",,b%
z=(b%!24 � %1111<<28)>>>28
�:
�)��radio(w%,i1%,i2%,i%):� I%=i1% � i2%
�-ș "WimpExt_SetIcon",,,w%,I%,�(I%=i%):�:�
�:
�*ݤwhich(w%,i1%,i2%):i%=-1:�I=i1% � i2%
�� �on(w%,I)=1 i%=I
�	�:=i%
�:
�eݤerror(a$):$b%="    "+a$+�0:ș "Wimp_ReportError",b%,%11,name2$ � ,result%:� result%=1 � =1 � =0
�:
�E��error(a$):$b%="    "+a$+�0:ș "Wimp_ReportError",b%,%1,name2$:�
�:
���redraw(!b%)
&ș "Wimp_RedrawWindow",,b% � flag%
�get_coords
ȕ flag%
$=  � !b%=list_pane% �redraw_list � ș "WimpExt_Redraw",,b%
.(  ș "Wimp_GetRectangle",,b% � flag%
8�
B�
L:
V7��get_coords:xo%=6+b%!4-b%!20:yo%=-12+b%!16-b%!24:�
`:
j+��getorg:xo%=b%!4-b%!20:yo%=b%!16-b%!24
t!xo%+=16:yo%-=84:yo2%=yo%+20:�
~:
�=ݤopen(w%):ș "WimpExt_CheckWindowOpen",w% � open%:=open%
�:
�z��createmenu(m%,title$,t$,� e):$m%=title$:t$+=",":m%!12=&70207:m%!20=44:m%!24=0:e=0:w%=0:c%=m%+28:ȕ t$<>"":� t$<>"" �
�.i$=�t$,�t$,",")-1):s%=0:f%=&7000021:sm%=-1
�� �i$,"#")>0 �
�6  e$=�i$,�i$,"#")+1):�I=1 � �e$:l$=�e$,I,1):Ȏ � �
�      � l$="E":s%=s% � 1<<3
�      � l$="T":s%=s% � 1<<0
�       � l$="S":f%=f% � 1<<22
�&      � l$="L":s%=s% � 1<<1:e+=.56
�J      � l$="F" � l$="B":l%=�(�e$,I+1,2)):I+=2:� l$="F" f2%=24 � f2%=28
�0      f%=f% � (15<<f2% � -1):f%=f% � l%<<f2%
	    �

  �:i$=�i$,�i$,"#")-1)
�
(a=�i$,">"):� a>0 � �i$,a+1,1)<>">" �
(0  sm%=�(�i$,a+1,�i$,"%",a+1)-a)):i$=�i$,a-1)
2�
<?a=�i$,">"):� a>0 � �i$,a+1,1)=">" � i$=�i$,)+�i$,�(i$)-a-1)
F*t$=�t$,�t$,",")+1):� �(i$)>w% w%=�(i$)
P�!c%=s%:c%!4=sm%:c%!8=f%:� �(i$)<=12 $(c%+12)=i$:c%+=24 � c%!8=f% � 1<<8:$(menu%+menu_pos%)=i$:c%!12=menu%+menu_pos%:c%!16=val%:c%!20=�(i$):menu_pos%+=�(i$)+1:c%+=24
Z�
de+=1
n�
x� w%<=�title$ w%=�title$
�)m%!16=(w%+1)*16:c%!-24=c%!-24 � &80:�
�:
���sub(mb%,a$,mc%,v%,bl%)
�&w%=bl%*16:� �a$>=bl% w%=(�a$+1)*16
�6$mb%=a$:mb%!12=&70207:mb%!16=w%:mb%!20=44:mb%!24=0
�Hmb%!28=&84:mb%!32=-1:mb%!36=&7000121:mb%!40=mc%:mb%!44=v%:mb%!48=bl%
��
�:
���quick_save
� filename$=�string(filename%)
�� �filename$,".") �
�  �save_it(filename$)
�  Ȏ save_type% �
     � 1:good_book$=filename$
"    � 2:good_search$=filename$
#    � 3:good_address$=filename$
"  �
,  ș "Wimp_CreateMenu",,-1
6�
@v  req%=0:ș "WimpExt_OpenRequester",,,"Reminder from TelAddr","To save, drag the icon to a directory viewer",ok%,0
J�
T�
^:
h��save_it(filename$)
rȎ save_type% �
|  � 1:w%=save_as%
�  � 2:w%=save_as1%
�  � 3:w%=save_as2%
��
��� save_type%=1 ș "WimpExt_GetIcon",,,w%,4 � partial%:� partial% �sortout_partial(0,save_as%,6,10):ș "WimpExt_GetNumberIcon",,,w%,6 � p1%:ș "WimpExt_GetNumberIcon",,,w%,10 � p2%:p1%-=1:p2%-=1 � p1%=0:p2%=max%
�5� save_type%=3 ș "WimpExt_GetIcon",,,w%,4 � tel%
�(ș "WimpExt_GetIcon",,,w%,3 � ascii%
�@comma%=0:� save_type%=3 ș "WimpExt_GetIcon",,,w%,5 � comma%
�Ȏ save_type% �
�0  � 1:�save_book(filename$,p1%,p2%,1,comma%)
�!  � 2:�save_search(filename$)
�  � 3:� ascii%=0 tel%=1
�7  �save_book(filename$,record%,record%,tel%,comma%)
��
 �
 :
 0��save_book(filename$,from%,to%,tel%,comma%)
 &ș "Hourglass_On"
 0)� tel%=0 max_field%=7 � max_field%=10
 :f%=� filename$
 DD� ascii%=0 � �#f%,"TelAddr("+�file_ver%+","+�((to%-from%)+1)+")"
 N� rec%=from% � to%
 XG  � to%-from%>0 ș "Hourglass_Percentage",�((rec%/(to%-from%))*100)
 b#  tab_pos%=tab%+(rec%*rec_len%)
 l  � field%=0 � max_field%
 v1    � ascii%=0 � (ascii%=1 � ?tab_pos%>=32) �
 �-      $b3%=$tab_pos%:A%=b3%:� cut:a$=$b3%
 �      � comma% �
 �         fd%=field%:� fd%<7 �
 �A          com%=0:� J%=fd%+1 � 7:� tab_pos%?(J%*32)>=32 com%=1
 �          �
 �        � com%=0
 �
        �
 �        � fd%<=7 � a$<>"" �
 �&          � com% a$+="," � a$+="."
 �
        �
 �      �
 �(      $b2%=a$:A%=b2%:� cut:�#f%,$b2%
 �	    �
!,    � ascii% � field%=7 � tel%=1 �#f%,""
!    tab_pos%+=32
!  �
! !  � ascii% � rec%<to% �#f%,""
!*�
!4	� #f%
!>#� ascii% ft%=&FFF � ft%=tel_ft%
!H!ș "OS_File",18,filename$,ft%
!R;ș "Hourglass_Off":�modified(0):� save_quit% � quit%=-1
!\�
!f:
!p(��save_search(filename$):old_rec%=-1
!zș "Hourglass_On"
!�3A%=table%:B%=search_len%+1:number%=�(count_rec)
!�f%=� filename$
!�>� ascii%=0 � �#f%,"TelAddr("+�file_ver%+","+�(number%)+")"
!� � table_pos%=0 � search_len%
!�O  � search_len%>0 ș "Hourglass_Percentage",�((table_pos%/search_len%)*100)
!�!  rec%=table%!(table_pos%*12)
!�  � rec%<>old_rec% �
!�%    tab_pos%=tab%+(rec%*rec_len%)
!�    � field%=0 � 10
!�'      � field%=8 � ascii%=1 �#f%,""
!�W      � ascii%=0 � (ascii%=1 � ?tab_pos%>=32) $b2%=$tab_pos%:A%=b2%:� cut:�#f%,$b2%
!�      tab_pos%+=32
!�	    �
"1    � ascii% � table_pos%<search_len% �#f%,""
"  �
"  old_rec%=rec%
"$�
".	� #f%
"8#� ascii% ft%=&FFF � ft%=tel_ft%
"B!ș "OS_File",18,filename$,ft%
"Lș "Hourglass_Off"
"V�
"`:
"j��init_save
"t#leaf$=�leaf(�string(filename%))
"~ ș "Wimp_GetPointerInfo",,b%
"�=� b%!12<>save_as% � b%!12<>save_as1% � b%!12<>save_as2% �
"�D  b%!20=b%!12:b%!24=b%!16:b%!28=!b%:b%!32=b%!4:b%!36=�file_len+1
"�6  !b%=(3+44+�(leaf$+�0))�&FFFFFFFC:b%!12=0:b%!16=1
"�M  b%!40=tel_ft%:$(b%+44)=leaf$+�0:ș "Wimp_SendMessage",18,b%,b%!20,b%!24
"�*  myref%=b%!8:trans_len%=-1:st1_rec%=0
"��
"��
"�:
"���data_save
"�filename$=�string(b%+44)
"��save_it(filename$)
"�Ȏ save_type% �
#  � 1:good_book$=filename$
#
   � 2:good_search$=filename$
#!  � 3:good_address$=filename$
#�
#(ș "Wimp_CreateMenu",,-1
#2Fb%!12=b%!8:b%!16=3:!b%=256:ș "Wimp_SendMessage",18,b%,b%!20,b%!24
#<�
#F:
#P6ݤstring(a%):a$="":ȕ ?a%>=32:a$+=�?a%:a%+=1:�:=a$
#Z:
#d\��str(a%,a2%,� len%):len%=0:ȕ ?a%>=32:?a2%=?a%:a%+=1:a2%+=1:len%+=1:�:?a2%=10:len%+=1:�
#n:
#x2ݤleaf($b%):ș "WimpExt_FindLeaf",b% � a%:=$a%
#�:
#�Gݤin(w%,i%):!b2%=w%:b2%!4=i%:ș "Wimp_GetIconState",,b2%:=$(b2%!28)
#�:
#�Eݤin_addr(w%,i%):!b%=w%:b%!4=i%:ș "Wimp_GetIconState",,b%:=b%!28
#�:
#�ݤval(w%,i%)=�(�in(w%,i%))
#�:
#�	��pos
#�!p$=�(record%+1)+"/"+�(max%+1)
#�Q� p$<>pos$ ș "WimpExt_SetIconString",,,pos%,6,p$:pos$=p$:pos_record%=record%
#��
#�:
#���show(rec%)
$�store(pos_record%)
$� rec%<0 rec%=0
$� rec%>max% rec%=max%
$"record%=rec%
$,�pos
$6�display(record%)
$@�
$J:
$T��display(rec%)
$^!tab_pos%=tab%+(rec%*rec_len%)
$h� field%=0 � 10
$r:  ș "WimpExt_SetIconString",,,book%,field%+9,tab_pos%
$|  tab_pos%+=32
$��
$��
$�:
$���store(rec%)
$�!tab_pos%=tab%+(rec%*rec_len%)
$�� field%=0 � 10
$�5  � $tab_pos%<>�in(book%,field%+9) � �modified(1)
$�#  $tab_pos%=�in(book%,field%+9)
$�  tab_pos%+=32
$��
$��
$�:
$���blank_record(rec%)
%!tab_pos%=tab%+(rec%*rec_len%)
%� field%=0 � 10
%  ?tab_pos%=13
%&  tab_pos%+=32
%0�:�modified(1)
%:8� country% � $(tab%+(rec%*rec_len%)+(6*32))=country$
%D�
%N:
%X��insert_record(r%,type%)
%b�store(pos_record%)
%lrec%=r%
%v�� max%=total_max%-1 req%=0:ș "WimpExt_OpenRequester",,,"Reminder from TelAddr","The maximum number of records has been reached ("+�total_max%+"), no more can be created.",ok%,0:�
%��close_window(list%)
%�D� rec%<max% � A%=tab%:B%=max%:C%=rec%+type%:D%=rec_len%:� insert
%�'record%+=type%:max%+=1:�modified(1)
%��blank_record(record%)
%��display(record%)
%�;�pos:� �open(book%) ș "WimpExt_PutCaretIcon",,,book%,9
%��
%�:
%���delete_record(rec%,show%)
%�� max%=0 �
%��close_window(list%)
%�>� rec%<max% � A%=tab%:B%=max%:C%=rec%:D%=rec_len%:� delete
%�max%-=1:�modified(1)
&� record%>max% record%=max%
&U� show% �display(record%):�pos:� �open(book%) ș "WimpExt_PutCaretIcon",,,book%,9
&�
& :
&*ݤload_ack
&4� b%!40<>tel_ft% � =0
&>7b%!12=b%!8:b%!16=4:ș "Wimp_SendMessage",17,b%,b%!4
&H=1
&R:
&\��save_ack
&f� b%!40<>tel_ft% � �
&p$(b%+44)="<Wimp$Scrap>"+�0
&z7b%!12=b%!8:b%!16=2:ș "Wimp_SendMessage",17,b%,b%!4
&��
&�:
&�Qݤblank(r%):blank%=1:� I%=0 � 10:� ?(tab%+(r%*rec_len%)+(I%*32))>=32 blank%=0
&�
�:=blank%
&�:
&�)��load_file(fn$,merge%):old_max%=max%
&�f%=� fn$:� f%=0 failed%=1:�
&�info$=�#f%
&Ե� �info$,1,�info$,"(")-1)<>"TelAddr" � �info$,"(")=0 req%=0:ș "WimpExt_OpenRequester",,,"Error from TelAddr","This file is not in the TelAddr format, load failed.",ok%,0:�#f%:�
&�5p_v%=��info$,9,3):rec%=��info$,13,�info$,")")-13)
&�� p_v%>file_ver% req%=0:ș "WimpExt_OpenRequester",,,"Error from TelAddr","This file was created by a higher version of TelAddr, load failed.",ok%,0:�#f%:�
&�� rec%>total_max% req%=0:ș "WimpExt_OpenRequester",,,"Error from TelAddr","This file contains more records that TelAddr can handle, load failed.",ok%,0:�#f%:�
&�� merge% �
'�  � �blank(record%) � rec%=1 � pf_merge%=0 � start%=record%:end%=record% � � �blank(max%) � start%=max%:end%=start%+rec%-1:max%+=rec%-1 � start%=max%+1:end%=start%+rec%-1:max%+=rec%
'�
'$  start%=0:end%=rec%-1:max%=end%
'$�
'.�� max%>total_max%-1 req%=0:max%=old_max%:ș "WimpExt_OpenRequester",,,"Error from TelAddr","By merging these two files, the result would be more records that TelAddr can handle, merge failed.",ok%,0:�#f%:�
'8ș "Hourglass_On"
'B� rec%=start% � end%
'LT  � max%-start%>0 ș "Hourglass_Percentage",�(((rec%-start%)/(max%-start%))*100)
'V#  tab_pos%=tab%+(rec%*rec_len%)
'`  � field%=0 � 10
'j    $tab_pos%=��#f%,31)
't    tab_pos%+=32
'~  �
'��
'��#f%
'�ș "Hourglass_Off"
'�rrecord%=start%:�display(record%):�pos:� �open(book%)=0 �open_window(book%):ș "WimpExt_PutCaretIcon",,,book%,9
'�� merge%=0 good_book$=fn$
'�*�modified(merge%):�close_window(list%)
'��
'�:
'�
��sort
'��store(record%)
'�ș "Hourglass_On"
'�� I%=0 � max%
()  pointers%!(I%*4)=tab%+(I%*rec_len%)
(
�
(6ș "OS_HeapSort",max%+1,pointers%,4,,tab%,rec_len%
(3A%=tab%:B%=pointers%:C%=max%:D%=rec_len%:� sort
((�display(record%)
(28ș "Hourglass_Off":�modified(1):�close_window(list%)
(<�
(F:
(P��redraw_list:y_top%=0
(Z)top%=(yo%-b%!40) � 48:� top%<0 top%=0
(dbase%=(60+yo%-b%!32) � 48
(nș "Wimp_SetColour",7
(xA� xo%+(4*16)-10,yo%-(top%*48)+12,xo%+(4*16)-10,yo%-(base%*48)
(�*i%=top%:ȕ i%<=search_len% � i%<=base%
(�  col%=0:� i%=search_sel% �
(�    col%=2:y_top%=0
(�  �
(�    � i%=old_search_sel% �
(�      col%=1
(�5      � old_search_sel%=search_sel%+1 � y_top%=-4
(�	    �
(�  �
(ܭ  � col%>0 ș "Wimp_SetColour",col%:ȓ Ȑ xo%-6,yo%-(i%*48)+12+y_top%,(4*16)-6,-48-y_top%:ȓ Ȑ xo%+(4*16)-8,yo%-(i%*48)+12+y_top%,40*16,-48-y_top%:ș "Wimp_SetColour",7
(�-  � xo%,yo%-(i%*48):n%=(table%!(i%*12))+1
(�  � �3-��n%,"0");n%
(�  � xo%+(4*16),yo%-(i%*48)
)C  A%=tab%+((table%!(i%*12))*rec_len%)+((table%!((i%*12)+4))*32)
)  � cut:a$=$A%
)  p%=table%!((i%*12)+8)
)"+  sl%=�search$:� �search$,1)="*" sl%-=1
),j  � �a$,p%-1);:ș "Wimp_SetColour",pf_colour%:� �a$,p%,sl%);:ș "Wimp_SetColour",7:� �a$,�a$-p%-sl%+1)
)6K  � SYS "Wimp_SetColour",3:PRINT "...altered...":SYS "Wimp_SetColour",7
)@i%+=1:�
)J�
)T:
)^��search:�store(record%)
)hJsearch_len%=-1:search_sel%=-1:old_search_sel%=0:search$=�in(search%,6)
)r� search$="" req%=0:ș "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot search using an empty string.",ok%,0:�
)|=search_flag%=0:flag_pos%=0:� I%=7 � 15:� J%=0 � �(I%=8)*2
)�:search_flag%=search_flag% � �on(search%,I%)<<flag_pos%
)�flag_pos%+=1:�:�
)��� search_flag%=0 req%=0:ș "WimpExt_OpenRequester",,,"Reminder from TelAddr","You cannot start a search without specifying one or more fields to search in.",ok%,0:�
)�case%=�on(search%,16)
)�%� case%=0 search$=�lower(search$)
)�ș "Hourglass_On"
)�$b%=search$
)�jA%=tab%:B%=max%:C%=rec_len%:D%=table%:E%=b%:F%=�($b%):G%=search_flag%:H%=case%:search_len%=�(search)-1
)�ș "Hourglass_Off"
)�� search_len%<0 req%=0:ș "WimpExt_OpenRequester",,,"Message from TelAddr","The search string could not be found within the current address book.",ok%,0:�
)�)ht%=search_len%:� search_len%<7 ht%=7
)�M!b%=0:b%!4=-48*(ht%+1):b%!8=604:b%!12=0:ș "Wimp_SetExtent",list_pane%,b%
)��close_window(search%)
*3A%=table%:B%=search_len%+1:number%=�(count_rec)
*V$b%="Search Results ("+�number%+" matched)":ș "WimpExt_SetWindowTitle",,,list%,b%
*�scroll_top(list_pane%)
*&#searched%=1:�open_window(list%)
*0�
*::
*DUݤlower(l$):s$="":�I%=1��l$:a%=��l$,I%,1):s$+=�(a% � (�(a%>64 � a%<91)*32)):�:=s$
*N:
*X!��modified(m%):modified%=m%:�
*b:
*l��delete_searched
*vș "Hourglass_On"
*�old_rec%=-1
*�� max%>0 �
*�  � I%=search_len% � 0 � -1
*�W    � search_len%>0 ș "Hourglass_Percentage",�(((search_len%-I%)/search_len%)*100)
*�    rec%=table%!(I%*12)
*�$    � max%>=0 � rec%<>old_rec% �
*�r      � rec%<max% � A%=tab%:B%=max%:C%=rec%:D%=rec_len%:� delete:max%-=1:old_rec%=rec% � max%-=1:old_rec%=rec%
*�
*�	    �
*�  �
*��
*�ș "Hourglass_Off"
*��modified(1)
+%� max%<=0 max%=0:�blank_record(0)
+�close_window(list%)
+� record%>max% record%=max%
+ �display(record%):�pos
+*�
+4:
+>��scroll_req
+Hy%=b%!24:sy%=b%!36:ch%=0
+RC� y% � 48 <>0 � b%!24=(y% � 48)*48:ch%=1:� sy%<0 b%!24=b%!24-48
+\0� �(sy%)=2 sy%=48*4*sy% � � ch%=0 sy%=sy%*48
+fb%!24=b%!24+sy%
+pș "Wimp_OpenWindow",,b%
+z�
+�:
+�0��save_prefs:z%=pref_pane%:ș "Hourglass_On"
+�f%=� "<TelAddr$Dir>.Prefs"
+�0�#f%,�on(z%,2),�on(z%,3),�on(z%,4),�on(z%,5)
+�.�#f%,�which(z%,9,10)-9,�which(z%,13,14)-13
+�2� I%=19 � 27:�#f%,�on(z%,I%):�:�#f%,�on(z%,30)
+�?�#f%,�which(z%,35,36)-35,�on(z%,37),�val(z%,39),�val(z%,43)
+�;�#f%,�which(z%,48,49)-48,�which(z%,52,53)-52,�on(z%,54)
+�"�#f%,�on(z%,57),�bg_col(z%,58)
+�U�#f%,�on(z%,63),�in(z%,65),�on(z%,68),�on(z%,69),�on(z%,72),�in(z%,73),�on(z%,74)
+��#f%:ș "Hourglass_Off"
+��
+�:
,"��remember_prefs:z%=pref_pane%
,3A=�on(z%,2):B=�on(z%,3):C=�on(z%,4):D=�on(z%,5)
,-E=�which(z%,9,10)-9:F=�which(z%,13,14)-13
,$�G=�on(z%,19):H=�on(z%,20):I=�on(z%,21):J=�on(z%,22):K=�on(z%,23):L=�on(z%,24):M=�on(z%,25):N=�on(z%,26):O=�on(z%,27):P=�on(z%,30)
,.BQ=�which(z%,35,36)-35:R=�on(z%,37):S=�val(z%,39):T=�val(z%,43)
,8<U=�which(z%,48,49)-48:V=�which(z%,52,53)-52:W=�on(z%,54)
,B=X=�on(z%,57):Y=�bg_col(z%,58):Z=�on(z%,63):AA$=�in(z%,65)
,LJZ1=�on(z%,68):Z2=�on(z%,69):Z3=�on(z%,72):BB$=�in(z%,73):Z4=�on(z%,74)
,V�
,`:
,j��cancel_prefs
,tW�set_prefs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA$,Z1,Z2,Z3,BB$,Z4)
,~�
,�:
,�V��set_prefs(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4)
,�z%=pref_pane%
,�?ș "WimpExt_SetIcon",,,z%,2,a:ș "WimpExt_SetIcon",,,z%,3,b
,�?ș "WimpExt_SetIcon",,,z%,4,c:ș "WimpExt_SetIcon",,,z%,5,d
,�-�radio(z%,9,10,e+9):�radio(z%,13,14,f+13)
,�Aș "WimpExt_SetIcon",,,z%,19,g:ș "WimpExt_SetIcon",,,z%,20,h
,�Aș "WimpExt_SetIcon",,,z%,21,i:ș "WimpExt_SetIcon",,,z%,22,j
,�Aș "WimpExt_SetIcon",,,z%,23,k:ș "WimpExt_SetIcon",,,z%,24,l
,�Aș "WimpExt_SetIcon",,,z%,25,m:ș "WimpExt_SetIcon",,,z%,26,n
,�Aș "WimpExt_SetIcon",,,z%,27,o:ș "WimpExt_SetIcon",,,z%,30,p
,��radio(z%,35,36,q+35)
-"ș "WimpExt_SetIcon",,,z%,37,r
-
Mș "WimpExt_SetNumberIcon",,,z%,39,s:ș "WimpExt_SetNumberIcon",,,z%,43,t
-/�radio(z%,48,49,u+48):�radio(z%,52,53,v+52)
-Aș "WimpExt_SetIcon",,,z%,54,w:ș "WimpExt_SetIcon",,,z%,57,x
-(Jș "WimpExt_SetIconColour",,,z%,58,-1,y:ș "WimpExt_SetIcon",,,z%,63,z
-2)ș "WimpExt_SetIconString",,,z%,65,a$
-<Cș "WimpExt_SetIcon",,,z%,68,z1:ș "WimpExt_SetIcon",,,z%,69,z2
-FIș "WimpExt_SetIcon",,,z%,72,z3:ș "WimpExt_SetIconString",,,z%,73,b$
-P#ș "WimpExt_SetIcon",,,z%,74,z4
-Z�sort_prefs:�ok_prefs
-d�
-n:
-x��ok_prefs
-�Fpf_confirm%=�on(z%,2) � �on(z%,3)<<1 � �on(z%,4)<<2 � �on(z%,5)<<3
-�;pf_merge%=�which(z%,9,10)-9:pf_add%=�which(z%,13,14)-13
-�[ș "WimpExt_SetIcon",,,search%,7,�on(z%,19):ș "WimpExt_SetIcon",,,search%,8,�on(z%,20)
-�\ș "WimpExt_SetIcon",,,search%,9,�on(z%,21):ș "WimpExt_SetIcon",,,search%,10,�on(z%,22)
-�]ș "WimpExt_SetIcon",,,search%,11,�on(z%,23):ș "WimpExt_SetIcon",,,search%,12,�on(z%,24)
-�]ș "WimpExt_SetIcon",,,search%,13,�on(z%,25):ș "WimpExt_SetIcon",,,search%,14,�on(z%,26)
-�]ș "WimpExt_SetIcon",,,search%,15,�on(z%,27):ș "WimpExt_SetIcon",,,search%,16,�on(z%,30)
-�9ș "WimpExt_SetIcon",,,save_as%,3,�which(z%,35,36)-35
-�0ș "WimpExt_SetIcon",,,save_as%,4,�on(z%,37)
-�5ș "WimpExt_SetIcon",,,save_as%,1,�on(save_as%,3)
-�7ș "WimpExt_SetNumberIcon",,,save_as%,6,�val(z%,39)
-�8ș "WimpExt_SetNumberIcon",,,save_as%,10,�val(z%,43)
-�:ș "WimpExt_SetIcon",,,save_as1%,3,�which(z%,48,49)-48
.7ș "WimpExt_SetIcon",,,save_as1%,1,�on(save_as1%,3)
.:ș "WimpExt_SetIcon",,,save_as2%,3,�which(z%,52,53)-52
.1ș "WimpExt_SetIcon",,,save_as2%,4,�on(z%,54)
."7ș "WimpExt_SetIcon",,,save_as2%,1,�on(save_as2%,3)
.,1ș "WimpExt_SetIcon",,,save_as2%,5,�on(z%,74)
.69� �on(z%,57) pf_colour%=�bg_col(z%,58) � pf_colour%=7
.@Zop1%=pane_1%:op2%=pane_2%:country%=�on(pref_pane%,72):country$=��in(pref_pane%,73),31)
.J)pane_1%=�on(z%,68):pane_2%=�on(z%,69)
.T� �on(z%,68)<>op1% �
.^�  � �on(z%,68) ș "WimpExt_UnHideLink",book%,,tools%:�open(book%) � ș "WimpExt_HideLink",book%,,tools%:�close_window(tools%)
.h�
.r� �on(z%,69)<>op2% �
.|5  � �on(z%,69) �open(book%) � �close_window(pos%)
.��
.�&� �open(list%) �redraw(list_pane%)
.�F�open_at(save_as%,100000,100000):�open_at(save_as2%,100000,100000)
.��save_size:�save2_size
.�4�close_window(save_as%):�close_window(save_as2%)
.��
.�:
.���sort_prefs
.�on%=�on(pref_pane%,37) � 1
.�D� I%=39 � 45:� I%<>42 ș "WimpExt_ShadeIcon",,,pref_pane%,I%,on%
.��
.�Iș "WimpExt_ShadeIcon",,,pref_pane%,54,�(�which(pref_pane%,52,53)=52)
.�Iș "WimpExt_ShadeIcon",,,pref_pane%,74,�(�which(pref_pane%,52,53)=52)
/P� I%=58 � 59:ș "WimpExt_ShadeIcon",,,pref_pane%,I%,�on(pref_pane%,57) � 1:�
/P� I%=64 � 65:ș "WimpExt_ShadeIcon",,,pref_pane%,I%,�on(pref_pane%,63) � 1:�
/Aș "WimpExt_ShadeIcon",,,pref_pane%,73,�on(pref_pane%,72) � 1
/&�
/0:
/:&��load_prefs(l%):ș "Hourglass_On"
/Df%=� "<TelAddr$Dir>.Prefs"
/NN�#f%,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4
/X�#f%:ș "Hourglass_Off"
/bU�set_prefs(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a$,z1,z2,z3,b$,z4)
/lload%=z:� load% � load$=a$
/v�
/�:
/���default_prefs
/�Y�set_prefs(0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,11,0,"",1,1,0,"England",1)
/��
/�:
/�5ݤbit(word%,bit%):� (word% � 1<<bit%)>0 � =1 � =0
/�:
/���scroll_top(!b%)
/� ș "Wimp_GetWindowState",,b%
/�x%=100000:y%=100000
/�Ob%!24=0:w%=b%!12-b%!4:h%=b%!16-b%!8:b%!4=x%:b%!8=y%-h%:b%!12=x%+w%:b%!16=y%
/�ș "Wimp_OpenWindow",,b%
/�ș "Wimp_CloseWindow",,b%
0�
0:
0��ram_fetch
0 Ȏ save_type% �
0*)  � 1:w%=save_as%:file_len%=�file_len
04�  � 2:w%=save_as1%:file_len%=0:old_A%=-1:� I%=0 � search_len%:A%=tab%+((table%!(I%*12))*rec_len%):� A%<>old_A% B%=11:file_len%+=�(file_length)
0>    old_A%=A%:�
0HP  � 3:w%=save_as2%:A%=tab%+(record%*rec_len%):B%=11:file_len%=�(file_length)
0R�
0\(ș "WimpExt_GetIcon",,,w%,3 � ascii%
0f�� b%!24<file_len% req%=0:ș "WimpExt_OpenRequester",,,"Warning from TelAddr","Buffer passed from destination application is not big enough to process a RAM memory transfer save, save failed.",ok%,0:�
0ptel%=1:comma%=0
0zȎ save_type% �
0�0  � 1:ș "WimpExt_GetIcon",,,w%,4 � partial%
0�    � partial% �
0�+      �sortout_partial(0,save_as%,6,10)
0�3      ș "WimpExt_GetNumberIcon",,,w%,6 � from%
0�B      ș "WimpExt_GetNumberIcon",,,w%,10 � to%:from%-=1:to%-=1
0�	    �
0�      from%=0:to%=max%
0�	    �
0�!  � 2:from%=0:to%=search_len%
0�#  � 3:from%=record%:to%=record%
0�*    ș "WimpExt_GetIcon",,,w%,4 � tel%
0�,    ș "WimpExt_GetIcon",,,w%,5 � comma%
0��
1/� tel% � max_field%=10*32 � max_field%=7*32
1Z� save_type%=2 A%=table%:B%=search_len%+1:number%=�(count_rec) � number%=(to%-from%)+1
1� b%!12=myref% �
1$  sender%=b%!4
1.  hisref%=b%!8
18  bufadd%=b%!20
1B  bufsiz%=b%!24
1L  offset%=0:old_rec%=-1
1V  ș "Hourglass_On"
1`�  � ascii%=0 � $b2%="TelAddr("+�file_ver%+","+�(number%)+")"+�10:l%=�($b2%):ș "Wimp_TransferBlock",task_handle%,b2%,sender%,bufadd%,l%:offset%+=l%
1j  � I%=from% � to%
1tQ    � (to%-from%)>0 ș "Hourglass_Percentage",�(((I%-from%)/(to%-from%))*100)
1~6    � save_type%=2 � rec%=table%!(I%*12) � rec%=I%
1�*    � save_type%<>2 � rec%<>old_rec% �
1�1      length%=0:tab_pos%=tab%+(rec%*rec_len%)
1�&      � field%=0 � max_field% � 32
1�T        a%=b2%+length%:a2%=tab_pos%+field%:len%=0:$b3%=$a2%:A%=b3%:� cut:a$=$b3%
1�        � comma% �
1�#          f%=field%/32:� f%<7 �
1�B            com%=0:� J%=f%+1 � 7:� tab_pos%?(J%*32)>=32 com%=1
1�            �
1�          � com%=0
1�          �
1�           � f%<=7 � a$<>"" �
1�(            � com% a$+="," � a$+="."
2          �
2

        �
2L        � ascii%=0 � (ascii%=1 � ?a2%>=32) � $a%=a$:A%=a%:len%=�(cut2)+1
2        length%+=len%
2(J        � ascii%=1 � field%=7*32 � tel%=1 ?(b2%+length%)=10:length%+=1
22      �
2<8      � ascii% � I%<to% ?(b2%+length%)=10:length%+=1
2FR      ș "Wimp_TransferBlock",task_handle%,b2%,sender%,bufadd%+offset%,length%
2P      offset%+=length%
2Z	    �
2d    old_rec%=rec%
2n  �
2x  ș "Hourglass_Off"
2�  b%!12=hisref%
2�
  b%!16=7
2�  b%!24=offset%
2�)  ș "Wimp_SendMessage",17,b%,sender%
2��
2�Ȏ save_type% �
2�!  � 1:�close_window(save_as%)
2�"  � 2:�close_window(save_as1%)
2�"  � 3:�close_window(save_as2%)
2��
2�ș "Wimp_CreateMenu",,-1
2��
2�:
3
��help
35!b%=40:b%!16=&502:ș "Wimp_GetPointerInfo",,b%+20
3[w%=b%!32:i%=b%!36:S$="Click SELECT to ":M$="Click MENU to ":A$="Click ADJUST to ":m$=""
3"9W$="This window shows ":I$="This icon shows ":N$="|M"
3,#M$="Move the pointer right to "
36Ȏ w% �
3@E  � file_info%:m$=W$+"information about the current address book"
3J  � tools%:Ȏ i% �
3T*    � 0:m$=S$+"open the search window"
3^1    � 1:m$=S$+"sort the current address book"
3h'    � 2:m$=S$+"create a new record"
3r-    � 3:m$=S$+"delete the current record"
3|  �
3�  � pos%:Ȏ i% �
3�,    � 0:m$=S$+"move to the first record"
3�*    � 1:m$=S$+"move back five records"
3�(    � 2:m$=S$+"move back one record"
3�+    � 3:m$=S$+"move forward one record"
3�-    � 4:m$=S$+"move forward five records"
3�+    � 5:m$=S$+"move to the last record"
3�Z    � 6:m$=I$+"the current record number and the total number of records respectively"
3�+    � 7:m$=S$+"goto a specified record"
3�  �
3�  � search%:Ȏ i% �
3�V    � 6:m$=I$+"the current search string."+N$+S$+"change the contents of the icon"
3�O    � 7,8,9,10,11,12,13,14,15:m$=S$+"choose which fields to search through"
4G    � 16:m$=S$+"toggle whether the search is case sensitive or not"
41    � 17:m$=S$+"perform the specified search"
4B    � 18:m$=S$+"cancel the search and close the search window"
4&  �
403  � info%:m$=W$+"information about the program"
4:9  � i%=7 � m$+=", and this is the excellent author !"
4D,  � save_as%,save_as1%,save_as2%:Ȏ i% �
4Nz    � 0:m$=I$+"the filename for the file. If it is not a complete pathname, drag the file icon to a directory display"
4X�    � 1:m$="Drag this icon to the directory display you which to save the address book. Or, drag it to the application into which you want to transfer the file"
4b�    � 2:m$=S$+"save the file under the current pathname. If it is not a complete pathname, you must drag the file icon to a directory display first"
4lg    � 3:m$=S$+"toggle whether to save the file in the TelAddr format, or as a plain ASCII textfile"
4v    � 4:Ȏ w% �
4�z      � save_as%:m$=S$+"choose between a full save of the address book, or a partial save of just some of the records"
4�u      � save_as2%:m$=S$+"choose whether you wish to include telephone numbers within the single address textfile"
4�	    �
4�z    � 5:� w%=save_as2% m$=S$+"choose whether you wish to include commas and full stops after each line in the address"
4��    � 6:m$=I$+"the start record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
4�I    � 7:m$=S$+"decrease the start record number for the partial save"
4��    � 8:m$=S$+"increase the start record number for the partial save. Remember that the start record number will not go beyond the end record number"
4ƒ    � 10:m$=I$+"the end record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
4З    � 11:m$=S$+"decrease the end record number for the partial save. Remember that the end record number will not go below the start record number"
4�H    � 12:m$=S$+"increase the end record number for the partial save"
4�  �
4�  � list_pane%:m$=W$+"the record number and matched fields of the last search performed."+N$+S$+"move to the record and field in which this string was found"
4�  � list%:Ȏ i% �
53    � 1:m$=S$+"close the search results window"
5Q    � 2:m$=S$+"re-open the search window and close the search results window"
5<    � 3:m$=S$+"delete the records matched by the search"
5 ?    � 4:m$=S$+"open a save box to save the matched records"
5*I    � 5:m$=S$+"redo the search, useful is the data has changed since"
54  �
5>  � book%:Ȏ i% �
5HD    � 9:m$=I$+"the name for this record."+N$+S$+"alter the data"
5R\    � 10,11,12:m$="These icons show the address for this record."+N$+S$+"alter the data"
5\E    � 13:m$=I$+"the town for this record."+N$+S$+"alter the data"
5fG    � 14:m$=I$+"the county for this record."+N$+S$+"alter the data"
5pH    � 15:m$=I$+"the country for this record."+N$+S$+"alter the data"
5zI    � 16:m$=I$+"the postcode for this record."+N$+S$+"alter the data"
5�V    � 17:m$=I$+"the home telephone number for this record."+N$+S$+"alter the data"
5�V    � 18:m$=I$+"the work telephone number for this record."+N$+S$+"alter the data"
5�U    � 19:m$=I$+"the fax telephone number for this record."+N$+S$+"alter the data"
5�  �
5�  � pref%:Ȏ i% �
5�2    � 1:m$=S$+"accept the current preferences"
5�R    � 2:m$=S$+"cancel the changed preferences and reset them to how they were"
5�1    � 3:m$=S$+"apply the default preferences"
5�0    � 4:m$=S$+"save the current preferences"
5�3    � 5:m$=S$+"load the last saved preferences"
5�  �
5�  � pref_pane%:Ȏ i% �
5�Q    � 2:m$=S$+"toggle whether to ask for confirmation when clearing a record"
6Q    � 3:m$=S$+"toggle whether to ask for confirmation when deleting a record"
6u    � 4:m$=S$+"toggle whether to ask for confirmation when deleting the matched records found by the last search"
6b    � 5:m$=S$+"toggle whether to ask for confirmation when deleting the complete address book"
6$�    � 9:m$="If this option is selected, then when merging a single address file, TelAddr will check if the current record is blank; if so, it will replace it with the new address, otherwise it will append it to the end of the address book"
6.�    � 10:m$="If this option is selected, then when merging any address file, TelAddr will always append it to the end of the address book"
68�    � 13:m$="If this option is selected, then when adding records from the toolbox, they will be created before the current record"
6B�    � 14:m$="If this option is selected, then when adding records from the toolbox, they will be created after the current record"
6LX    � 19,20,21,22,23,24,25,26,27:m$=S$+"toggle the default fields to search through"
6VG    � 30:m$=S$+"toggle whether to have case sensitivity as default"
6`V    � 35:m$=S$+"choose the TelAddr format as default when saving the address book"
6jV    � 36:m$=S$+"choose ASCII (a textfile) as default when saving the address book"
6tb    � 37:m$=S$+"toggle whether to have partial saving as default when saving the address book"
6~�    � 39:m$=I$+"the default start record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
6�R    � 40:m$=S$+"decrease the default start record number for the partial save"
6�R    � 41:m$=S$+"increase the default start record number for the partial save"
6��    � 43:m$=I$+"the default end record number for the partial save."+N$+S$+"alter the number, or use the arrow icons to the right to change the value"
6�P    � 44:m$=S$+"decrease the default end record number for the partial save"
6�P    � 45:m$=S$+"increase the default end record number for the partial save"
6�X    � 48:m$=S$+"choose the TelAddr format as default when saving the search results"
6�X    � 49:m$=S$+"choose ASCII (a textfile) as default when saving the search results"
6�V    � 52:m$=S$+"choose the TelAddr format as default when saving a single address"
6�V    � 53:m$=S$+"choose ASCII (a textfile) as default when saving a single address"
6�m    � 54:m$=S$+"toggle whether to include telephone numbers as default when saving a single address book"
6�m    � 74:m$=S$+"toggle whether to add commas and full-stops as default when saving a single address book"
6�g    � 57:m$=S$+"toggle whether to highlight the search string in the matched fields after a search"
72    � 58:m$=I$+"the default hightlight colour"
7
9    � 59:m$=S$+"change the default hightlight colour"
7a    � 63:m$=S$+"toggle whether to load the specified address book when the program is loaded"
7�    � 65:m$=I$+"the full pathname for the default address book."+N$+S$+" to alter it, or drag an address book file onto this file to use its pathname instead"
7(y    � 68:m$=S$+"toggle whether to show the toolbox (attached to the side of the main address book window) by default"
72�    � 69:m$=S$+"toggle whether to show the position window (attached to the bottom of the main address book window) by default"
7<\    � 72:m$=S$+"toggle whether to insert a default country when a new record is created"
7F>    � 73:m$=I$+"the default country."+N$+S$+"to change it"
7P  �
7Zx  � -2:m$="This is the TelAddr icon, an editor of telephone and address books."+N$+S$+"open the address book window"
7d�
7n,� m$<>"" ș "WimpExt_SendHelp",m$+".",b%
7x�
�
00000000  0d 00 0a 2f f4 20 3e 41  44 46 53 3a 3a 4d 41 44  |.../. >ADFS::MAD|
00000010  a0 34 2e 24 2e 54 65 6c  41 64 64 72 2e 21 54 65  |.4.$.TelAddr.!Te|
00000020  6c 41 64 64 72 2e 21 52  75 6e 49 6d 61 67 65 0d  |lAddr.!RunImage.|
00000030  00 14 4d 6e 61 6d 65 31  24 3d 22 54 65 6c 41 64  |..Mname1$="TelAd|
00000040  64 72 22 3a 6e 61 6d 65  32 24 3d 22 54 65 6c 41  |dr":name2$="TelA|
00000050  64 64 72 22 3a 73 6b 69  70 25 3d 30 3a 70 6f 6c  |ddr":skip%=0:pol|
00000060  6c 25 3d a3 3a 66 25 3d  2d 31 3a 69 6e 69 74 25  |l%=.:f%=-1:init%|
00000070  3d a3 3a de 20 62 25 20  26 38 30 30 0d 00 1e 28  |=.:. b% &800...(|
00000080  ee 20 85 20 e7 20 a4 65  72 72 3d 30 20 8c 20 f2  |. . . .err=0 . .|
00000090  63 6c 6f 73 65 5f 64 6f  77 6e 20 8b 20 73 6b 69  |close_down . ski|
000000a0  70 25 3d 31 0d 00 28 41  e7 20 73 6b 69 70 25 3d  |p%=1..(A. skip%=|
000000b0  30 20 f2 69 6e 69 74 3a  f2 61 73 73 65 6d 62 6c  |0 .init:.assembl|
000000c0  65 3a f2 64 65 66 69 6e  65 3a 73 6b 69 70 25 3d  |e:.define:skip%=|
000000d0  30 3a 70 6f 6c 6c 25 3d  b9 3a f2 63 68 65 63 6b  |0:poll%=.:.check|
000000e0  5f 6c 6f 61 64 0d 00 32  19 73 6b 69 70 25 3d 30  |_load..2.skip%=0|
000000f0  3a 70 6f 6c 6c 25 3d b9  3a f2 70 6f 6c 6c 0d 00  |:poll%=.:.poll..|
00000100  3c 0f f2 63 6c 6f 73 65  5f 64 6f 77 6e 0d 00 46  |<..close_down..F|
00000110  05 e0 0d 00 50 05 3a 0d  00 5a 12 dd a4 65 72 72  |....P.:..Z...err|
00000120  3a 65 72 72 6f 72 25 3d  30 0d 00 64 0d e7 20 70  |:error%=0..d.. p|
00000130  6f 6c 6c 25 20 8c 0d 00  6e 3f 20 20 65 24 3d f6  |oll% ...n?  e$=.|
00000140  24 2b 22 20 28 22 2b c3  28 9f 29 2b 22 29 20 61  |$+" ("+.(.)+") a|
00000150  74 20 6c 69 6e 65 20 22  2b c3 28 9e 29 3a 65 25  |t line "+.(.):e%|
00000160  3d 63 6f 6e 74 69 6e 75  65 5f 71 75 69 74 25 3a  |=continue_quit%:|
00000170  65 32 25 3d 30 0d 00 78  3c 20 20 e7 20 9f 3d 37  |e2%=0..x<  . .=7|
00000180  31 36 32 32 20 8c 20 d9  23 66 25 3a c8 99 20 22  |1622 . .#f%:.. "|
00000190  4f 53 5f 46 69 6c 65 22  2c 36 2c 66 69 6c 65 6e  |OS_File",6,filen|
000001a0  61 6d 65 24 3a 65 24 3d  f6 24 3a 65 25 3d 6f 6b  |ame$:e$=.$:e%=ok|
000001b0  25 0d 00 82 38 20 20 e7  20 9f 3d 32 30 34 20 84  |%...8  . .=204 .|
000001c0  20 9f 3d 36 37 37 38 35  20 84 20 9f 3d 36 37 37  | .=67785 . .=677|
000001d0  39 37 20 84 20 9f 3d 36  37 37 37 38 20 65 24 3d  |97 . .=67778 e$=|
000001e0  f6 24 3a 65 25 3d 6f 6b  25 0d 00 8c 36 20 20 e7  |.$:e%=ok%...6  .|
000001f0  20 9f 3d 31 39 33 20 84  20 9f 3d 31 39 35 20 d9  | .=193 . .=195 .|
00000200  23 66 25 3a 65 24 3d 22  46 69 6c 65 20 69 73 20  |#f%:e$="File is |
00000210  6c 6f 63 6b 65 64 2e 22  3a 65 25 3d 6f 6b 25 0d  |locked.":e%=ok%.|
00000220  00 96 41 20 20 c8 99 20  22 57 69 6d 70 45 78 74  |..A  .. "WimpExt|
00000230  5f 4f 70 65 6e 52 65 71  75 65 73 74 65 72 22 2c  |_OpenRequester",|
00000240  2c 2c 22 45 72 72 6f 72  20 66 72 6f 6d 20 54 65  |,,"Error from Te|
00000250  6c 41 64 64 72 22 2c 65  24 2c 65 25 2c 65 32 25  |lAddr",e$,e%,e2%|
00000260  0d 00 a0 16 20 20 72 65  71 25 3d 2d 31 3a 65 72  |....  req%=-1:er|
00000270  72 6f 72 25 3d 31 0d 00  aa 05 cc 0d 00 b4 43 20  |ror%=1........C |
00000280  20 65 24 3d f6 24 2b 22  20 28 22 2b c3 28 9f 29  | e$=.$+" ("+.(.)|
00000290  2b 22 29 20 61 74 20 6c  69 6e 65 20 22 2b c3 28  |+") at line "+.(|
000002a0  9e 29 2b 22 2c 20 71 75  69 74 20 70 72 6f 67 72  |.)+", quit progr|
000002b0  61 6d 20 3f 22 3a 6c 65  61 76 65 25 3d 30 0d 00  |am ?":leave%=0..|
000002c0  be 1e 20 20 e7 20 9f 3d  36 37 37 39 37 20 65 24  |..  . .=67797 e$|
000002d0  3d f6 24 3a 6c 65 61 76  65 25 3d 31 0d 00 c8 3e  |=.$:leave%=1...>|
000002e0  20 20 e7 20 6c 65 61 76  65 25 3d 30 20 8c 20 65  |  . leave%=0 . e|
000002f0  72 72 6f 72 25 3d a4 65  72 72 6f 72 28 65 24 29  |rror%=.error(e$)|
00000300  20 82 20 31 20 8b 20 f2  65 72 72 6f 72 28 65 24  | . 1 . .error(e$|
00000310  29 3a 65 72 72 6f 72 25  3d 30 0d 00 d2 05 cd 0d  |):error%=0......|
00000320  00 dc 0b 3d 65 72 72 6f  72 25 0d 00 e6 05 3a 0d  |...=error%....:.|
00000330  00 f0 0a dd f2 69 6e 69  74 0d 00 fa 5c c8 99 20  |.....init...\.. |
00000340  22 4f 53 5f 47 65 74 45  6e 76 22 20 b8 20 61 24  |"OS_GetEnv" . a$|
00000350  3a e7 20 a7 61 24 2c 22  2d 66 69 6c 65 20 22 29  |:. .a$,"-file ")|
00000360  20 8c 20 63 68 6b 5f 6c  64 25 3d 31 3a 63 68 6b  | . chk_ld%=1:chk|
00000370  5f 6c 64 24 3d c1 61 24  2c a7 61 24 2c 22 2d 66  |_ld$=.a$,.a$,"-f|
00000380  69 6c 65 20 22 29 2b 36  29 20 8b 20 63 68 6b 5f  |ile ")+6) . chk_|
00000390  6c 64 25 3d 30 0d 01 04  4d 74 65 6c 5f 66 74 25  |ld%=0...Mtel_ft%|
000003a0  3d 26 31 30 30 3a 70 72  6f 67 5f 76 65 72 25 3d  |=&100:prog_ver%=|
000003b0  31 30 33 3a 66 69 6c 65  5f 76 65 72 25 3d 31 30  |103:file_ver%=10|
000003c0  30 3a 64 61 74 65 24 3d  22 31 33 2d 41 75 67 2d  |0:date$="13-Aug-|
000003d0  39 33 22 3a 63 6f 64 65  5f 6c 65 6e 25 3d 31 30  |93":code_len%=10|
000003e0  32 34 0d 01 0e 27 de 20  62 32 25 20 26 33 30 30  |24...'. b2% &300|
000003f0  2c 62 33 25 20 26 31 30  30 2c 63 6f 64 65 25 20  |,b3% &100,code% |
00000400  63 6f 64 65 5f 6c 65 6e  25 0d 01 18 47 de 20 73  |code_len%...G. s|
00000410  31 25 20 26 41 30 2c 6d  31 25 20 26 41 30 2c 6d  |1% &A0,m1% &A0,m|
00000420  32 25 20 26 31 30 30 2c  6d 33 25 20 26 31 30 30  |2% &100,m3% &100|
00000430  2c 6d 34 25 20 26 41 30  2c 6d 36 25 20 26 41 30  |,m4% &A0,m6% &A0|
00000440  2c 6d 37 25 20 26 41 30  2c 6d 38 25 20 26 41 30  |,m7% &A0,m8% &A0|
00000450  0d 01 22 45 de 20 67 6f  74 6f 25 20 34 2c 67 6f  |.."E. goto% 4,go|
00000460  74 6f 5f 76 61 6c 25 20  38 2c 74 65 6d 70 6c 61  |to_val% 8,templa|
00000470  74 65 25 20 31 31 2a 31  30 32 34 2c 69 6e 64 69  |te% 11*1024,indi|
00000480  72 25 20 31 37 2a 31 30  32 34 2c 66 6f 6e 74 73  |r% 17*1024,fonts|
00000490  25 20 32 35 36 0d 01 2c  1f 65 6e 64 5f 69 6e 64  |% 256..,.end_ind|
000004a0  69 72 25 3d 69 6e 64 69  72 25 2b 28 31 37 2a 31  |ir%=indir%+(17*1|
000004b0  30 32 34 29 0d 01 36 1f  24 67 6f 74 6f 25 3d 22  |024)..6.$goto%="|
000004c0  22 3a 24 67 6f 74 6f 5f  76 61 6c 25 3d 22 61 30  |":$goto_val%="a0|
000004d0  2d 39 22 0d 01 40 12 74  6f 74 61 6c 5f 6d 61 78  |-9"..@.total_max|
000004e0  25 3d 32 35 36 0d 01 4a  14 72 65 63 5f 6c 65 6e  |%=256..J.rec_len|
000004f0  25 20 20 3d 31 31 2a 33  32 0d 01 54 4d de 20 74  |%  =11*32..TM. t|
00000500  61 62 25 20 74 6f 74 61  6c 5f 6d 61 78 25 2a 72  |ab% total_max%*r|
00000510  65 63 5f 6c 65 6e 25 2c  70 6f 69 6e 74 65 72 73  |ec_len%,pointers|
00000520  25 20 74 6f 74 61 6c 5f  6d 61 78 25 2a 34 2c 74  |% total_max%*4,t|
00000530  61 62 6c 65 25 20 74 6f  74 61 6c 5f 6d 61 78 25  |able% total_max%|
00000540  2a 31 31 2a 31 32 0d 01  5e 3e e3 20 49 25 3d 74  |*11*12..^>. I%=t|
00000550  61 62 25 20 b8 20 74 61  62 25 2b 28 74 6f 74 61  |ab% . tab%+(tota|
00000560  6c 5f 6d 61 78 25 2a 72  65 63 5f 6c 65 6e 25 29  |l_max%*rec_len%)|
00000570  20 88 20 72 65 63 5f 6c  65 6e 25 3a 24 49 25 3d  | . rec_len%:$I%=|
00000580  22 22 3a ed 0d 01 68 2d  de 20 6d 65 6e 75 25 20  |"":...h-. menu% |
00000590  26 31 30 30 2c 76 61 6c  25 20 31 36 3a 6d 65 6e  |&100,val% 16:men|
000005a0  75 5f 70 6f 73 25 3d 30  3a 24 76 61 6c 25 3d 22  |u_pos%=0:$val%="|
000005b0  22 0d 01 72 44 de 20 6f  6b 5f 63 61 6e 63 65 6c  |"..rD. ok_cancel|
000005c0  25 20 34 30 2c 6f 6b 25  20 34 30 2c 63 6f 6e 74  |% 40,ok% 40,cont|
000005d0  69 6e 75 65 5f 71 75 69  74 25 20 34 30 2c 73 61  |inue_quit% 40,sa|
000005e0  76 65 5f 64 69 73 63 61  72 64 5f 63 61 6e 63 65  |ve_discard_cance|
000005f0  6c 25 20 34 30 0d 01 7c  2c f2 62 75 74 74 6f 6e  |l% 40..|,.button|
00000600  73 28 6f 6b 5f 63 61 6e  63 65 6c 25 2c 22 4f 4b  |s(ok_cancel%,"OK|
00000610  22 2c 22 43 61 6e 63 65  6c 22 2c 22 22 2c 22 22  |","Cancel","",""|
00000620  29 0d 01 86 1f f2 62 75  74 74 6f 6e 73 28 6f 6b  |).....buttons(ok|
00000630  25 2c 22 4f 4b 22 2c 22  22 2c 22 22 2c 22 22 29  |%,"OK","","","")|
00000640  0d 01 90 34 f2 62 75 74  74 6f 6e 73 28 63 6f 6e  |...4.buttons(con|
00000650  74 69 6e 75 65 5f 71 75  69 74 25 2c 22 43 6f 6e  |tinue_quit%,"Con|
00000660  74 69 6e 75 65 22 2c 22  51 75 69 74 22 2c 22 22  |tinue","Quit",""|
00000670  2c 22 22 29 0d 01 9a 3f  f2 62 75 74 74 6f 6e 73  |,"")...?.buttons|
00000680  28 73 61 76 65 5f 64 69  73 63 61 72 64 5f 63 61  |(save_discard_ca|
00000690  6e 63 65 6c 25 2c 22 53  61 76 65 22 2c 22 44 69  |ncel%,"Save","Di|
000006a0  73 63 61 72 64 22 2c 22  43 61 6e 63 65 6c 22 2c  |scard","Cancel",|
000006b0  22 22 29 0d 01 a4 25 6d  79 5f 66 6f 6e 74 24 3d  |"")...%my_font$=|
000006c0  22 54 72 69 6e 69 74 79  2e 4d 65 64 69 75 6d 22  |"Trinity.Medium"|
000006d0  3a 6f 6b 61 79 25 3d 30  0d 01 ae 3b 63 6f 75 6e  |:okay%=0...;coun|
000006e0  74 25 3d 30 3a f5 3a c8  99 20 22 46 6f 6e 74 5f  |t%=0:.:.. "Font_|
000006f0  4c 69 73 74 46 6f 6e 74  73 22 2c 2c 62 25 2c 63  |ListFonts",,b%,c|
00000700  6f 75 6e 74 25 2c 2d 31  20 b8 20 2c 2c 63 6f 75  |ount%,-1 . ,,cou|
00000710  6e 74 25 0d 01 b8 12 e7  20 63 6f 75 6e 74 25 3c  |nt%..... count%<|
00000720  3e 2d 31 20 8c 0d 01 c2  1c 20 20 e7 20 24 62 25  |>-1 .....  . $b%|
00000730  3d 6d 79 5f 66 6f 6e 74  24 20 6f 6b 61 79 25 3d  |=my_font$ okay%=|
00000740  31 0d 01 cc 05 cd 0d 01  d6 0f fd 20 63 6f 75 6e  |1.......... coun|
00000750  74 25 3d 2d 31 0d 01 e0  70 e7 20 6f 6b 61 79 25  |t%=-1...p. okay%|
00000760  3d 30 20 8c 20 f2 65 72  72 6f 72 28 22 21 54 65  |=0 . .error("!Te|
00000770  6c 41 64 64 72 20 6e 65  65 64 73 20 74 6f 20 68  |lAddr needs to h|
00000780  61 76 65 20 27 73 65 65  6e 27 20 74 68 65 20 54  |ave 'seen' the T|
00000790  72 69 6e 69 74 79 2e 4d  65 64 69 75 6d 20 66 6f  |rinity.Medium fo|
000007a0  6e 74 20 62 65 66 6f 72  65 20 69 74 20 69 73 20  |nt before it is |
000007b0  6c 6f 61 64 65 64 2e 22  29 3a f2 63 6c 6f 73 65  |loaded."):.close|
000007c0  5f 64 6f 77 6e 0d 01 ea  11 de 20 73 61 25 20 31  |_down..... sa% 1|
000007d0  35 2a 31 30 32 34 0d 01  f4 4e 73 61 25 21 30 3d  |5*1024...Nsa%!0=|
000007e0  31 35 2a 31 30 32 34 3a  73 61 25 21 34 3d 30 3a  |15*1024:sa%!4=0:|
000007f0  73 61 25 21 38 3d 31 36  3a c8 99 20 34 36 2c 32  |sa%!8=16:.. 46,2|
00000800  35 36 2b 31 30 2c 73 61  25 2c 22 3c 22 2b 6e 61  |56+10,sa%,"<"+na|
00000810  6d 65 31 24 2b 22 24 44  69 72 3e 2e 53 70 72 69  |me1$+"$Dir>.Spri|
00000820  74 65 73 22 0d 01 fe 1d  f2 69 6e 69 74 74 61 73  |tes".....inittas|
00000830  6b 28 6e 61 6d 65 32 24  29 3a 69 6e 69 74 25 3d  |k(name2$):init%=|
00000840  b9 0d 02 08 1b e3 20 49  3d 30 20 b8 20 31 32 3a  |...... I=0 . 12:|
00000850  62 25 21 28 49 2a 34 29  3d 30 3a ed 0d 02 12 65  |b%!(I*4)=0:....e|
00000860  c8 99 20 22 57 69 6d 70  45 78 74 5f 4c 6f 61 64  |.. "WimpExt_Load|
00000870  54 65 6d 70 6c 61 74 65  73 22 2c 62 25 2c 74 65  |Templates",b%,te|
00000880  6d 70 6c 61 74 65 25 2c  69 6e 64 69 72 25 2c 65  |mplate%,indir%,e|
00000890  6e 64 5f 69 6e 64 69 72  25 2c 66 6f 6e 74 73 25  |nd_indir%,fonts%|
000008a0  2c 22 3c 22 2b 6e 61 6d  65 31 24 2b 22 24 44 69  |,"<"+name1$+"$Di|
000008b0  72 3e 2e 54 65 6d 70 6c  61 74 65 73 22 2c 73 61  |r>.Templates",sa|
000008c0  25 0d 02 1c b8 66 69 6c  65 5f 69 6e 66 6f 25 3d  |%....file_info%=|
000008d0  62 25 21 30 3a 74 6f 6f  6c 73 25 3d 62 25 21 34  |b%!0:tools%=b%!4|
000008e0  3a 70 6f 73 25 3d 62 25  21 38 3a 73 65 61 72 63  |:pos%=b%!8:searc|
000008f0  68 25 3d 62 25 21 31 32  3a 73 61 76 65 5f 61 73  |h%=b%!12:save_as|
00000900  31 25 3d 62 25 21 31 36  3a 6c 69 73 74 5f 70 61  |1%=b%!16:list_pa|
00000910  6e 65 25 3d 62 25 21 32  30 3a 62 6f 6f 6b 25 3d  |ne%=b%!20:book%=|
00000920  62 25 21 32 34 3a 73 61  76 65 5f 61 73 25 3d 62  |b%!24:save_as%=b|
00000930  25 21 32 38 3a 6c 69 73  74 25 3d 62 25 21 33 32  |%!28:list%=b%!32|
00000940  3a 70 72 65 66 5f 70 61  6e 65 25 3d 62 25 21 33  |:pref_pane%=b%!3|
00000950  36 3a 73 61 76 65 5f 61  73 32 25 3d 62 25 21 34  |6:save_as2%=b%!4|
00000960  30 3a 70 72 65 66 25 3d  62 25 21 34 34 3a 69 6e  |0:pref%=b%!44:in|
00000970  66 6f 25 3d 62 25 21 34  38 0d 02 26 2b c8 99 20  |fo%=b%!48..&+.. |
00000980  22 57 69 6d 70 45 78 74  5f 4c 69 6e 6b 57 69 6e  |"WimpExt_LinkWin|
00000990  64 6f 77 73 22 2c 2c 2c  62 6f 6f 6b 25 2c 74 6f  |dows",,,book%,to|
000009a0  6f 6c 73 25 0d 02 30 2f  c8 99 20 22 57 69 6d 70  |ols%..0/.. "Wimp|
000009b0  45 78 74 5f 4c 69 6e 6b  57 69 6e 64 6f 77 73 22  |Ext_LinkWindows"|
000009c0  2c 2c 2c 6c 69 73 74 25  2c 6c 69 73 74 5f 70 61  |,,,list%,list_pa|
000009d0  6e 65 25 0d 02 3a 2f c8  99 20 22 57 69 6d 70 45  |ne%..:/.. "WimpE|
000009e0  78 74 5f 4c 69 6e 6b 57  69 6e 64 6f 77 73 22 2c  |xt_LinkWindows",|
000009f0  2c 2c 70 72 65 66 25 2c  70 72 65 66 5f 70 61 6e  |,,pref%,pref_pan|
00000a00  65 25 0d 02 44 36 c8 99  20 22 57 69 6d 70 45 78  |e%..D6.. "WimpEx|
00000a10  74 5f 53 65 74 49 63 6f  6e 53 74 72 69 6e 67 22  |t_SetIconString"|
00000a20  2c 2c 2c 69 6e 66 6f 25  2c 37 2c 22 4d 61 72 6b  |,,,info%,7,"Mark|
00000a30  20 48 6f 62 73 6f 6e 22  0d 02 4e 72 76 24 3d c3  | Hobson"..Nrv$=.|
00000a40  28 70 72 6f 67 5f 76 65  72 25 20 83 20 31 30 30  |(prog_ver% . 100|
00000a50  29 3a c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |):.. "WimpExt_Se|
00000a60  74 49 63 6f 6e 53 74 72  69 6e 67 22 2c 2c 2c 69  |tIconString",,,i|
00000a70  6e 66 6f 25 2c 39 2c c3  28 70 72 6f 67 5f 76 65  |nfo%,9,.(prog_ve|
00000a80  72 25 20 81 31 30 30 29  2b 22 2e 22 2b c4 32 2d  |r% .100)+"."+.2-|
00000a90  a9 76 24 2c 22 30 22 29  2b 76 24 2b 22 20 28 22  |.v$,"0")+v$+" ("|
00000aa0  2b 64 61 74 65 24 2b 22  29 22 0d 02 58 3e c8 99  |+date$+")"..X>..|
00000ab0  20 22 57 69 6d 70 45 78  74 5f 53 65 74 49 63 6f  | "WimpExt_SetIco|
00000ac0  6e 53 74 72 69 6e 67 22  2c 2c 2c 69 6e 66 6f 25  |nString",,,info%|
00000ad0  2c 31 31 2c 22 28 63 29  31 39 39 33 20 41 63 6f  |,11,"(c)1993 Aco|
00000ae0  72 6e 20 55 73 65 72 22  0d 02 62 2c c8 99 20 22  |rn User"..b,.. "|
00000af0  57 69 6d 70 45 78 74 5f  43 6f 6c 6f 75 72 73 4d  |WimpExt_ColoursM|
00000b00  65 6e 75 22 2c 30 2c 30  20 b8 20 63 6f 6c 5f 6d  |enu",0,0 . col_m|
00000b10  65 6e 75 25 0d 02 6c 38  c8 99 20 22 57 69 6d 70  |enu%..l8.. "Wimp|
00000b20  45 78 74 5f 49 63 6f 6e  42 61 72 53 70 72 69 74  |Ext_IconBarSprit|
00000b30  65 22 2c 2c 2c 2d 31 2c  22 21 74 65 6c 61 64 64  |e",,,-1,"!teladd|
00000b40  72 22 2c 2c 33 20 b8 20  62 61 72 25 0d 02 76 58  |r",,3 . bar%..vX|
00000b50  6f 70 74 58 25 3d 31 3a  71 75 69 74 25 3d 30 3a  |optX%=1:quit%=0:|
00000b60  6d 61 78 25 3d 30 3a 72  65 63 6f 72 64 25 3d 30  |max%=0:record%=0|
00000b70  3a 70 6f 73 24 3d 22 22  3a 70 6f 73 5f 72 65 63  |:pos$="":pos_rec|
00000b80  6f 72 64 25 3d 30 3a 72  65 71 25 3d 2d 31 3a 73  |ord%=0:req%=-1:s|
00000b90  65 61 72 63 68 65 64 25  3d 30 3a 66 61 69 6c 65  |earched%=0:faile|
00000ba0  64 25 3d 30 0d 02 80 56  67 6f 6f 64 5f 62 6f 6f  |d%=0...Vgood_boo|
00000bb0  6b 24 3d 22 41 64 64 72  42 6f 6f 6b 22 3a 67 6f  |k$="AddrBook":go|
00000bc0  6f 64 5f 73 65 61 72 63  68 24 3d 22 53 65 61 72  |od_search$="Sear|
00000bd0  63 68 65 64 22 3a 67 6f  6f 64 5f 61 64 64 72 65  |ched":good_addre|
00000be0  73 73 24 3d 22 41 64 64  72 65 73 73 22 3a 73 61  |ss$="Address":sa|
00000bf0  76 65 5f 71 75 69 74 25  3d 30 0d 02 8a 17 70 61  |ve_quit%=0....pa|
00000c00  6e 65 5f 31 25 3d 31 3a  70 61 6e 65 5f 32 25 3d  |ne_1%=1:pane_2%=|
00000c10  31 0d 02 94 50 f2 70 6f  73 3a f2 6c 6f 61 64 5f  |1...P.pos:.load_|
00000c20  70 72 65 66 73 28 31 29  3a f2 62 6c 61 6e 6b 5f  |prefs(1):.blank_|
00000c30  72 65 63 6f 72 64 28 72  65 63 6f 72 64 25 29 3a  |record(record%):|
00000c40  f2 64 69 73 70 6c 61 79  28 72 65 63 6f 72 64 25  |.display(record%|
00000c50  29 3a f2 73 74 6f 72 65  28 72 65 63 6f 72 64 25  |):.store(record%|
00000c60  29 0d 02 9e 1e f2 6d 6f  64 69 66 69 65 64 28 30  |).....modified(0|
00000c70  29 3a 74 72 61 6e 73 5f  6c 65 6e 25 3d 2d 31 0d  |):trans_len%=-1.|
00000c80  02 a8 05 e1 0d 02 b2 05  3a 0d 02 bc 0e dd f2 61  |........:......a|
00000c90  73 73 65 6d 62 6c 65 0d  02 c6 37 e3 20 49 25 3d  |ssemble...7. I%=|
00000ca0  38 20 b8 20 31 30 20 88  20 32 3a 50 25 3d 63 6f  |8 . 10 . 2:P%=co|
00000cb0  64 65 25 3a 4c 25 3d 63  6f 64 65 25 2b 63 6f 64  |de%:L%=code%+cod|
00000cc0  65 5f 6c 65 6e 25 3a 5b  4f 50 54 20 49 25 0d 02  |e_len%:[OPT I%..|
00000cd0  d0 04 0d 02 da 25 20 20  3b 20 4f 6e 20 65 6e 74  |.....%  ; On ent|
00000ce0  72 79 20 2d 20 52 30 20  3d 20 61 72 72 61 79 20  |ry - R0 = array |
00000cf0  70 6f 69 6e 74 65 72 0d  02 e4 2e 20 20 3b 20 20  |pointer....  ;  |
00000d00  20 20 20 20 20 20 20 20  20 20 52 31 20 3d 20 74  |          R1 = t|
00000d10  6f 74 61 6c 20 6e 75 6d  62 65 72 20 6f 66 20 66  |otal number of f|
00000d20  69 65 6c 64 73 0d 02 ee  07 20 20 3b 0d 02 f8 2c  |ields....  ;...,|
00000d30  20 20 3b 20 4f 6e 20 65  78 69 74 20 20 2d 20 52  |  ; On exit  - R|
00000d40  30 20 3d 20 66 69 6c 65  20 6c 65 6e 67 74 68 20  |0 = file length |
00000d50  69 6e 20 62 79 74 65 73  0d 03 02 04 0d 03 0c 23  |in bytes.......#|
00000d60  20 20 2e 66 69 6c 65 5f  6c 65 6e 67 74 68 20 53  |  .file_length S|
00000d70  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
00000d80  03 16 1e 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00000d90  20 20 4d 4f 56 20 20 20  52 32 2c 23 30 0d 03 20  |  MOV   R2,#0.. |
00000da0  1e 20 20 2e 66 6c 5f 31  20 20 20 20 20 20 20 20  |.  .fl_1        |
00000db0  4d 4f 56 20 20 20 52 33  2c 23 30 0d 03 2a 23 20  |MOV   R3,#0..*# |
00000dc0  20 2e 66 6c 5f 32 20 20  20 20 20 20 20 20 4c 44  | .fl_2        LD|
00000dd0  52 42 20 20 52 34 2c 5b  52 30 2c 52 33 5d 0d 03  |RB  R4,[R0,R3]..|
00000de0  34 21 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |4!              |
00000df0  20 41 44 44 20 20 20 52  32 2c 52 32 2c 23 31 0d  | ADD   R2,R2,#1.|
00000e00  03 3e 21 20 20 20 20 20  20 20 20 20 20 20 20 20  |.>!             |
00000e10  20 20 41 44 44 20 20 20  52 33 2c 52 33 2c 23 31  |  ADD   R3,R3,#1|
00000e20  0d 03 48 1f 20 20 20 20  20 20 20 20 20 20 20 20  |..H.            |
00000e30  20 20 20 43 4d 50 20 20  20 52 34 2c 23 33 32 0d  |   CMP   R4,#32.|
00000e40  03 52 1d 20 20 20 20 20  20 20 20 20 20 20 20 20  |.R.             |
00000e50  20 20 42 47 45 20 20 20  66 6c 5f 32 0d 03 5c 22  |  BGE   fl_2..\"|
00000e60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 41  |               A|
00000e70  44 44 20 20 20 52 30 2c  52 30 2c 23 33 32 0d 03  |DD   R0,R0,#32..|
00000e80  66 21 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |f!              |
00000e90  20 53 55 42 53 20 20 52  31 2c 52 31 2c 23 31 0d  | SUBS  R1,R1,#1.|
00000ea0  03 70 1d 20 20 20 20 20  20 20 20 20 20 20 20 20  |.p.             |
00000eb0  20 20 42 4e 45 20 20 20  66 6c 5f 31 0d 03 7a 1e  |  BNE   fl_1..z.|
00000ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4d  |               M|
00000ed0  4f 56 20 20 20 52 30 2c  52 32 0d 03 84 22 20 20  |OV   R0,R2..."  |
00000ee0  20 20 20 20 20 20 20 20  20 20 20 20 20 4c 44 4d  |             LDM|
00000ef0  46 44 20 52 31 33 21 2c  7b 50 43 7d 0d 03 8e 04  |FD R13!,{PC}....|
00000f00  0d 03 98 25 20 20 3b 20  4f 6e 20 65 6e 74 72 79  |...%  ; On entry|
00000f10  20 2d 20 52 30 20 3d 20  61 72 72 61 79 20 70 6f  | - R0 = array po|
00000f20  69 6e 74 65 72 0d 03 a2  2e 20 20 3b 20 20 20 20  |inter....  ;    |
00000f30  20 20 20 20 20 20 20 20  52 31 20 3d 20 70 6f 69  |        R1 = poi|
00000f40  6e 74 65 72 73 20 61 72  72 61 79 20 70 6f 69 6e  |nters array poin|
00000f50  74 65 72 0d 03 ac 30 20  20 3b 20 20 20 20 20 20  |ter...0  ;      |
00000f60  20 20 20 20 20 20 52 32  20 3d 20 6e 75 6d 62 65  |      R2 = numbe|
00000f70  72 20 6f 66 20 72 65 63  6f 72 64 73 20 28 30 2e  |r of records (0.|
00000f80  2e 6e 29 0d 03 b6 25 20  20 3b 20 20 20 20 20 20  |.n)...%  ;      |
00000f90  20 20 20 20 20 20 52 33  20 3d 20 72 65 63 6f 72  |      R3 = recor|
00000fa0  64 20 6c 65 6e 67 74 68  0d 03 c0 04 0d 03 ca 23  |d length.......#|
00000fb0  20 20 2e 73 6f 72 74 20  20 20 20 20 20 20 20 53  |  .sort        S|
00000fc0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
00000fd0  03 d4 24 20 20 20 20 20  20 20 20 20 20 20 20 20  |..$             |
00000fe0  20 20 4d 4f 56 20 20 20  52 32 2c 52 32 2c 4c 53  |  MOV   R2,R2,LS|
00000ff0  4c 23 32 0d 03 de 1e 20  20 20 20 20 20 20 20 20  |L#2....         |
00001000  20 20 20 20 20 20 4d 4f  56 20 20 20 52 34 2c 23  |      MOV   R4,#|
00001010  30 0d 03 e8 24 20 20 2e  73 6f 72 74 5f 31 20 20  |0...$  .sort_1  |
00001020  20 20 20 20 4d 4c 41 20  20 20 52 35 2c 52 34 2c  |    MLA   R5,R4,|
00001030  52 33 2c 52 30 0d 03 f2  29 20 20 20 20 20 20 20  |R3,R0...)       |
00001040  20 20 20 20 20 20 20 20  4c 44 52 20 20 20 52 36  |        LDR   R6|
00001050  2c 5b 52 31 2c 52 34 2c  4c 53 4c 23 32 5d 0d 03  |,[R1,R4,LSL#2]..|
00001060  fc 1e 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00001070  20 4d 4f 56 20 20 20 52  39 2c 52 35 0d 04 06 1f  | MOV   R9,R5....|
00001080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4d  |               M|
00001090  4f 56 20 20 20 52 31 30  2c 52 36 0d 04 10 1e 20  |OV   R10,R6.... |
000010a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 43 4d  |              CM|
000010b0  50 20 20 20 52 35 2c 52  36 0d 04 1a 1f 20 20 20  |P   R5,R6....   |
000010c0  20 20 20 20 20 20 20 20  20 20 20 20 42 45 51 20  |            BEQ |
000010d0  20 20 73 6f 72 74 5f 34  0d 04 24 2c 20 20 20 20  |  sort_4..$,    |
000010e0  20 20 20 20 20 20 20 20  20 20 20 53 54 4d 46 44  |           STMFD|
000010f0  20 52 31 33 21 2c 7b 52  30 2d 52 34 2c 52 38 2d  | R13!,{R0-R4,R8-|
00001100  52 31 30 7d 0d 04 2e 1e  20 20 20 20 20 20 20 20  |R10}....        |
00001110  20 20 20 20 20 20 20 4d  4f 56 20 20 20 52 37 2c  |       MOV   R7,|
00001120  23 30 0d 04 38 24 20 20  2e 73 6f 72 74 5f 32 20  |#0..8$  .sort_2 |
00001130  20 20 20 20 20 4c 44 4d  49 41 20 52 35 20 2c 7b  |     LDMIA R5 ,{|
00001140  52 30 2d 52 33 7d 0d 04  42 28 20 20 20 20 20 20  |R0-R3}..B(      |
00001150  20 20 20 20 20 20 20 20  20 4c 44 4d 49 41 20 52  |         LDMIA R|
00001160  36 20 2c 7b 52 34 2c 52  38 2d 52 31 30 7d 0d 04  |6 ,{R4,R8-R10}..|
00001170  4c 24 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |L$              |
00001180  20 53 54 4d 49 41 20 52  36 21 2c 7b 52 30 2d 52  | STMIA R6!,{R0-R|
00001190  33 7d 0d 04 56 28 20 20  20 20 20 20 20 20 20 20  |3}..V(          |
000011a0  20 20 20 20 20 53 54 4d  49 41 20 52 35 21 2c 7b  |     STMIA R5!,{|
000011b0  52 34 2c 52 38 2d 52 31  30 7d 0d 04 60 24 20 20  |R4,R8-R10}..`$  |
000011c0  20 20 20 20 20 20 20 20  20 20 20 20 20 4c 44 4d  |             LDM|
000011d0  49 41 20 52 35 20 2c 7b  52 30 2d 52 33 7d 0d 04  |IA R5 ,{R0-R3}..|
000011e0  6a 28 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |j(              |
000011f0  20 4c 44 4d 49 41 20 52  36 20 2c 7b 52 34 2c 52  | LDMIA R6 ,{R4,R|
00001200  38 2d 52 31 30 7d 0d 04  74 24 20 20 20 20 20 20  |8-R10}..t$      |
00001210  20 20 20 20 20 20 20 20  20 53 54 4d 49 41 20 52  |         STMIA R|
00001220  36 21 2c 7b 52 30 2d 52  33 7d 0d 04 7e 28 20 20  |6!,{R0-R3}..~(  |
00001230  20 20 20 20 20 20 20 20  20 20 20 20 20 53 54 4d  |             STM|
00001240  49 41 20 52 35 21 2c 7b  52 34 2c 52 38 2d 52 31  |IA R5!,{R4,R8-R1|
00001250  30 7d 0d 04 88 22 20 20  20 20 20 20 20 20 20 20  |0}..."          |
00001260  20 20 20 20 20 41 44 44  20 20 20 52 37 2c 52 37  |     ADD   R7,R7|
00001270  2c 23 33 32 0d 04 92 20  20 20 20 20 20 20 20 20  |,#32...         |
00001280  20 20 20 20 20 20 20 43  4d 50 20 20 20 52 37 2c  |       CMP   R7,|
00001290  23 33 32 30 0d 04 9c 1f  20 20 20 20 20 20 20 20  |#320....        |
000012a0  20 20 20 20 20 20 20 42  4c 45 20 20 20 73 6f 72  |       BLE   sor|
000012b0  74 5f 32 0d 04 a6 2c 20  20 20 20 20 20 20 20 20  |t_2...,         |
000012c0  20 20 20 20 20 20 4c 44  4d 46 44 20 52 31 33 21  |      LDMFD R13!|
000012d0  2c 7b 52 30 2d 52 34 2c  52 38 2d 52 31 30 7d 0d  |,{R0-R4,R8-R10}.|
000012e0  04 b0 1e 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
000012f0  20 20 4d 4f 56 20 20 20  52 37 2c 23 30 0d 04 ba  |  MOV   R7,#0...|
00001300  23 20 20 2e 73 6f 72 74  5f 33 20 20 20 20 20 20  |#  .sort_3      |
00001310  4c 44 52 20 20 20 52 38  2c 5b 52 31 2c 52 37 5d  |LDR   R8,[R1,R7]|
00001320  0d 04 c4 1e 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00001330  20 20 20 43 4d 50 20 20  20 52 38 2c 52 39 0d 04  |   CMP   R8,R9..|
00001340  ce 24 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.$              |
00001350  20 53 54 52 45 51 20 52  31 30 2c 5b 52 31 2c 52  | STREQ R10,[R1,R|
00001360  37 5d 0d 04 d8 21 20 20  20 20 20 20 20 20 20 20  |7]...!          |
00001370  20 20 20 20 20 41 44 44  20 20 20 52 37 2c 52 37  |     ADD   R7,R7|
00001380  2c 23 34 0d 04 e2 1e 20  20 20 20 20 20 20 20 20  |,#4....         |
00001390  20 20 20 20 20 20 43 4d  50 20 20 20 52 37 2c 52  |      CMP   R7,R|
000013a0  32 0d 04 ec 1f 20 20 20  20 20 20 20 20 20 20 20  |2....           |
000013b0  20 20 20 20 42 4c 45 20  20 20 73 6f 72 74 5f 33  |    BLE   sort_3|
000013c0  0d 04 f6 21 20 20 2e 73  6f 72 74 5f 34 20 20 20  |...!  .sort_4   |
000013d0  20 20 20 41 44 44 20 20  20 52 34 2c 52 34 2c 23  |   ADD   R4,R4,#|
000013e0  31 0d 05 00 25 20 20 20  20 20 20 20 20 20 20 20  |1...%           |
000013f0  20 20 20 20 4d 4f 56 20  20 20 52 31 31 2c 52 32  |    MOV   R11,R2|
00001400  2c 4c 53 52 23 32 0d 05  0a 1f 20 20 20 20 20 20  |,LSR#2....      |
00001410  20 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 52  |         CMP   R|
00001420  34 2c 52 31 31 0d 05 14  1f 20 20 20 20 20 20 20  |4,R11....       |
00001430  20 20 20 20 20 20 20 20  42 4c 45 20 20 20 73 6f  |        BLE   so|
00001440  72 74 5f 31 0d 05 1e 22  20 20 20 20 20 20 20 20  |rt_1..."        |
00001450  20 20 20 20 20 20 20 4c  44 4d 46 44 20 52 31 33  |       LDMFD R13|
00001460  21 2c 7b 50 43 7d 0d 05  28 04 0d 05 32 25 20 20  |!,{PC}..(...2%  |
00001470  3b 20 4f 6e 20 65 6e 74  72 79 20 2d 20 52 30 20  |; On entry - R0 |
00001480  3d 20 61 72 72 61 79 20  70 6f 69 6e 74 65 72 0d  |= array pointer.|
00001490  05 3c 30 20 20 3b 20 20  20 20 20 20 20 20 20 20  |.<0  ;          |
000014a0  20 20 52 31 20 3d 20 6e  75 6d 62 65 72 20 6f 66  |  R1 = number of|
000014b0  20 72 65 63 6f 72 64 73  20 28 30 2e 2e 6e 29 0d  | records (0..n).|
000014c0  05 46 25 20 20 3b 20 20  20 20 20 20 20 20 20 20  |.F%  ;          |
000014d0  20 20 52 32 20 3d 20 72  65 63 6f 72 64 20 6c 65  |  R2 = record le|
000014e0  6e 67 74 68 0d 05 50 2d  20 20 3b 20 20 20 20 20  |ngth..P-  ;     |
000014f0  20 20 20 20 20 20 20 52  33 20 3d 20 72 65 73 75  |       R3 = resu|
00001500  6c 74 73 20 74 61 62 6c  65 20 70 6f 69 6e 74 65  |lts table pointe|
00001510  72 0d 05 5a 44 20 20 3b  20 20 20 20 20 20 20 20  |r..ZD  ;        |
00001520  20 20 20 20 52 34 20 3d  20 73 65 61 72 63 68 20  |    R4 = search |
00001530  73 74 72 69 6e 67 20 70  6f 69 6e 74 65 72 20 28  |string pointer (|
00001540  69 6e 63 6c 75 64 69 6e  67 20 77 69 6c 64 2d 63  |including wild-c|
00001550  61 72 64 73 29 0d 05 64  2c 20 20 3b 20 20 20 20  |ards)..d,  ;    |
00001560  20 20 20 20 20 20 20 20  52 35 20 3d 20 73 65 61  |        R5 = sea|
00001570  72 63 68 20 73 74 72 69  6e 67 20 6c 65 6e 67 74  |rch string lengt|
00001580  68 0d 05 6e 37 20 20 3b  20 20 20 20 20 20 20 20  |h..n7  ;        |
00001590  20 20 20 20 52 36 20 3d  20 66 6c 61 67 73 20 2d  |    R6 = flags -|
000015a0  20 62 69 74 73 20 30 2d  31 30 20 3d 20 66 69 65  | bits 0-10 = fie|
000015b0  6c 64 20 66 6c 61 67 73  0d 05 78 26 20 20 3b 20  |ld flags..x&  ; |
000015c0  20 20 20 20 20 20 20 20  20 20 20 52 37 20 3d 20  |           R7 = |
000015d0  63 61 73 65 20 73 65 6e  73 69 74 69 76 65 0d 05  |case sensitive..|
000015e0  82 07 20 20 3b 0d 05 8c  38 20 20 3b 20 4f 6e 20  |..  ;...8  ; On |
000015f0  65 78 69 74 20 20 2d 20  52 30 20 3d 20 6e 75 6d  |exit  - R0 = num|
00001600  62 65 72 20 6f 66 20 73  74 72 69 6e 67 73 20 6d  |ber of strings m|
00001610  61 74 63 68 65 64 20 28  30 2e 2e 6e 29 0d 05 96  |atched (0..n)...|
00001620  04 0d 05 a0 23 20 20 2e  73 65 61 72 63 68 20 20  |....#  .search  |
00001630  20 20 20 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |    STMFD R13!,{|
00001640  52 31 34 7d 0d 05 aa 27  20 20 20 20 20 20 20 20  |R14}...'        |
00001650  20 20 20 20 20 20 20 53  54 52 20 20 20 52 36 2c  |       STR   R6,|
00001660  73 65 61 72 63 68 5f 66  6c 61 67 0d 05 b4 1e 20  |search_flag.... |
00001670  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 4f  |              MO|
00001680  56 20 20 20 52 36 2c 52  37 0d 05 be 1e 20 20 20  |V   R6,R7....   |
00001690  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |            MOV |
000016a0  20 20 52 37 2c 23 30 0d  05 c8 26 20 20 20 20 20  |  R7,#0...&     |
000016b0  20 20 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |          STR   |
000016c0  52 37 2c 73 65 61 72 63  68 5f 6c 65 6e 0d 05 d2  |R7,search_len...|
000016d0  1e 20 20 2e 73 65 61 72  63 68 5f 31 20 20 20 20  |.  .search_1    |
000016e0  4d 4f 56 20 20 20 52 38  2c 23 30 0d 05 dc 27 20  |MOV   R8,#0...' |
000016f0  20 2e 73 65 61 72 63 68  5f 32 20 20 20 20 4c 44  | .search_2    LD|
00001700  52 20 20 20 52 39 2c 73  65 61 72 63 68 5f 66 6c  |R   R9,search_fl|
00001710  61 67 0d 05 e6 1f 20 20  20 20 20 20 20 20 20 20  |ag....          |
00001720  20 20 20 20 20 4d 4f 56  20 20 20 52 31 30 2c 23  |     MOV   R10,#|
00001730  31 0d 05 f0 27 20 20 20  20 20 20 20 20 20 20 20  |1...'           |
00001740  20 20 20 20 80 20 20 20  52 39 2c 52 39 2c 52 31  |    .   R9,R9,R1|
00001750  30 2c 4c 53 4c 20 52 38  0d 05 fa 1e 20 20 20 20  |0,LSL R8....    |
00001760  20 20 20 20 20 20 20 20  20 20 20 43 4d 50 20 20  |           CMP  |
00001770  20 52 39 2c 23 30 0d 06  04 24 20 20 20 20 20 20  | R9,#0...$      |
00001780  20 20 20 20 20 20 20 20  20 42 45 51 20 20 20 73  |         BEQ   s|
00001790  65 61 72 63 68 5f 6e 65  78 74 0d 06 0e 24 20 20  |earch_next...$  |
000017a0  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4c 41  |             MLA|
000017b0  20 20 20 52 39 2c 52 37  2c 52 32 2c 52 30 0d 06  |   R9,R7,R2,R0..|
000017c0  18 27 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.'              |
000017d0  20 41 44 44 20 20 20 52  39 2c 52 39 2c 52 38 2c  | ADD   R9,R9,R8,|
000017e0  4c 53 4c 23 35 0d 06 22  1f 20 20 20 20 20 20 20  |LSL#5..".       |
000017f0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 52 31  |        MOV   R1|
00001800  30 2c 23 30 0d 06 2c 1f  20 20 20 20 20 20 20 20  |0,#0..,.        |
00001810  20 20 20 20 20 20 20 4d  4f 56 20 20 20 52 31 34  |       MOV   R14|
00001820  2c 23 30 0d 06 36 25 20  20 20 20 20 20 20 20 20  |,#0..6%         |
00001830  20 20 20 20 20 20 4c 44  52 42 20 20 52 31 31 2c  |      LDRB  R11,|
00001840  5b 52 34 2c 52 31 34 5d  0d 06 40 25 20 20 20 20  |[R4,R14]..@%    |
00001850  20 20 20 20 20 20 20 20  20 20 20 4c 44 52 42 20  |           LDRB |
00001860  20 52 31 32 2c 5b 52 39  2c 52 31 30 5d 0d 06 4a  | R12,[R9,R10]..J|
00001870  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001880  43 4d 50 20 20 20 52 31  32 2c 23 33 32 0d 06 54  |CMP   R12,#32..T|
00001890  24 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |$               |
000018a0  42 4c 54 20 20 20 73 65  61 72 63 68 5f 6e 65 78  |BLT   search_nex|
000018b0  74 0d 06 5e 22 20 20 20  20 20 20 20 20 20 20 20  |t..^"           |
000018c0  20 20 20 20 43 4d 50 20  20 20 52 31 31 2c 23 97  |    CMP   R11,#.|
000018d0  22 23 22 0d 06 68 22 20  20 20 20 20 20 20 20 20  |"#"..h"         |
000018e0  20 20 20 20 20 20 42 45  51 20 20 20 73 65 61 72  |      BEQ   sear|
000018f0  63 68 5f 33 62 0d 06 72  22 20 20 20 20 20 20 20  |ch_3b..r"       |
00001900  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 52 31  |        CMP   R1|
00001910  31 2c 23 97 22 2a 22 0d  06 7c 23 20 20 20 20 20  |1,#."*"..|#     |
00001920  20 20 20 20 20 20 20 20  20 20 42 45 51 20 20 20  |          BEQ   |
00001930  73 65 61 72 63 68 5f 33  78 32 0d 06 86 25 20 20  |search_3x2...%  |
00001940  2e 73 65 61 72 63 68 5f  33 20 20 20 20 4c 44 52  |.search_3    LDR|
00001950  42 20 20 52 31 32 2c 5b  52 39 2c 52 31 30 5d 0d  |B  R12,[R9,R10].|
00001960  06 90 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00001970  20 20 43 4d 50 20 20 20  52 31 32 2c 23 33 32 0d  |  CMP   R12,#32.|
00001980  06 9a 24 20 20 20 20 20  20 20 20 20 20 20 20 20  |..$             |
00001990  20 20 42 4c 54 20 20 20  73 65 61 72 63 68 5f 6e  |  BLT   search_n|
000019a0  65 78 74 0d 06 a4 1e 20  20 20 20 20 20 20 20 20  |ext....         |
000019b0  20 20 20 20 20 20 43 4d  50 20 20 20 52 36 2c 23  |      CMP   R6,#|
000019c0  30 0d 06 ae 22 20 20 20  20 20 20 20 20 20 20 20  |0..."           |
000019d0  20 20 20 20 42 4e 45 20  20 20 73 65 61 72 63 68  |    BNE   search|
000019e0  5f 33 61 0d 06 b8 20 20  20 20 20 20 20 20 20 20  |_3a...          |
000019f0  20 20 20 20 20 20 43 4d  50 20 20 20 52 31 32 2c  |      CMP   R12,|
00001a00  23 36 35 0d 06 c2 22 20  20 20 20 20 20 20 20 20  |#65..."         |
00001a10  20 20 20 20 20 20 42 4c  54 20 20 20 73 65 61 72  |      BLT   sear|
00001a20  63 68 5f 33 61 0d 06 cc  20 20 20 20 20 20 20 20  |ch_3a...        |
00001a30  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 52 31  |        CMP   R1|
00001a40  32 2c 23 39 30 0d 06 d6  22 20 20 20 20 20 20 20  |2,#90..."       |
00001a50  20 20 20 20 20 20 20 20  42 47 54 20 20 20 73 65  |        BGT   se|
00001a60  61 72 63 68 5f 33 61 0d  06 e0 23 20 20 20 20 20  |arch_3a...#     |
00001a70  20 20 20 20 20 20 20 20  20 20 84 52 20 20 20 52  |          .R   R|
00001a80  31 32 2c 52 31 32 2c 23  33 32 0d 06 ea 20 20 20  |12,R12,#32...   |
00001a90  2e 73 65 61 72 63 68 5f  33 61 20 20 20 43 4d 50  |.search_3a   CMP|
00001aa0  20 20 20 52 31 31 2c 52  31 32 0d 06 f4 21 20 20  |   R11,R12...!  |
00001ab0  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4e 45  |             BNE|
00001ac0  20 20 20 73 65 61 72 63  68 5f 34 0d 06 fe 25 20  |   search_4...% |
00001ad0  20 2e 73 65 61 72 63 68  5f 33 62 20 20 20 4c 44  | .search_3b   LD|
00001ae0  52 42 20 20 52 31 31 2c  5b 52 34 2c 52 31 34 5d  |RB  R11,[R4,R14]|
00001af0  0d 07 08 25 20 20 20 20  20 20 20 20 20 20 20 20  |...%            |
00001b00  20 20 20 4c 44 52 42 20  20 52 31 32 2c 5b 52 39  |   LDRB  R12,[R9|
00001b10  2c 52 31 30 5d 0d 07 12  20 20 20 20 20 20 20 20  |,R10]...        |
00001b20  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 52 31  |        CMP   R1|
00001b30  32 2c 23 33 32 0d 07 1c  24 20 20 20 20 20 20 20  |2,#32...$       |
00001b40  20 20 20 20 20 20 20 20  42 4c 54 20 20 20 73 65  |        BLT   se|
00001b50  61 72 63 68 5f 6e 65 78  74 0d 07 26 22 20 20 20  |arch_next..&"   |
00001b60  20 20 20 20 20 20 20 20  20 20 20 20 43 4d 50 20  |            CMP |
00001b70  20 20 52 31 31 2c 23 97  22 23 22 0d 07 30 23 20  |  R11,#."#"..0# |
00001b80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 42 45  |              BE|
00001b90  51 20 20 20 73 65 61 72  63 68 5f 33 78 31 0d 07  |Q   search_3x1..|
00001ba0  3a 22 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |:"              |
00001bb0  20 43 4d 50 20 20 20 52  31 31 2c 23 97 22 2a 22  | CMP   R11,#."*"|
00001bc0  0d 07 44 23 20 20 20 20  20 20 20 20 20 20 20 20  |..D#            |
00001bd0  20 20 20 42 45 51 20 20  20 73 65 61 72 63 68 5f  |   BEQ   search_|
00001be0  33 78 32 0d 07 4e 1e 20  20 20 20 20 20 20 20 20  |3x2..N.         |
00001bf0  20 20 20 20 20 20 43 4d  50 20 20 20 52 36 2c 23  |      CMP   R6,#|
00001c00  30 0d 07 58 22 20 20 20  20 20 20 20 20 20 20 20  |0..X"           |
00001c10  20 20 20 20 42 4e 45 20  20 20 73 65 61 72 63 68  |    BNE   search|
00001c20  5f 33 78 0d 07 62 20 20  20 20 20 20 20 20 20 20  |_3x..b          |
00001c30  20 20 20 20 20 20 43 4d  50 20 20 20 52 31 32 2c  |      CMP   R12,|
00001c40  23 36 35 0d 07 6c 22 20  20 20 20 20 20 20 20 20  |#65..l"         |
00001c50  20 20 20 20 20 20 42 4c  54 20 20 20 73 65 61 72  |      BLT   sear|
00001c60  63 68 5f 33 78 0d 07 76  20 20 20 20 20 20 20 20  |ch_3x..v        |
00001c70  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 52 31  |        CMP   R1|
00001c80  32 2c 23 39 30 0d 07 80  22 20 20 20 20 20 20 20  |2,#90..."       |
00001c90  20 20 20 20 20 20 20 20  42 47 54 20 20 20 73 65  |        BGT   se|
00001ca0  61 72 63 68 5f 33 78 0d  07 8a 23 20 20 20 20 20  |arch_3x...#     |
00001cb0  20 20 20 20 20 20 20 20  20 20 84 52 20 20 20 52  |          .R   R|
00001cc0  31 32 2c 52 31 32 2c 23  33 32 0d 07 94 20 20 20  |12,R12,#32...   |
00001cd0  2e 73 65 61 72 63 68 5f  33 78 20 20 20 43 4d 50  |.search_3x   CMP|
00001ce0  20 20 20 52 31 31 2c 52  31 32 0d 07 9e 22 20 20  |   R11,R12..."  |
00001cf0  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4e 45  |             BNE|
00001d00  20 20 20 73 65 61 72 63  68 5f 33 63 0d 07 a8 23  |   search_3c...#|
00001d10  20 20 2e 73 65 61 72 63  68 5f 33 78 31 20 20 41  |  .search_3x1  A|
00001d20  44 44 20 20 20 52 31 30  2c 52 31 30 2c 23 31 0d  |DD   R10,R10,#1.|
00001d30  07 b2 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00001d40  20 20 43 4d 50 20 20 20  52 31 30 2c 23 33 31 0d  |  CMP   R10,#31.|
00001d50  07 bc 24 20 20 20 20 20  20 20 20 20 20 20 20 20  |..$             |
00001d60  20 20 42 45 51 20 20 20  73 65 61 72 63 68 5f 6e  |  BEQ   search_n|
00001d70  65 78 74 0d 07 c6 23 20  20 20 20 20 20 20 20 20  |ext...#         |
00001d80  20 20 20 20 20 20 41 44  44 20 20 20 52 31 34 2c  |      ADD   R14,|
00001d90  52 31 34 2c 23 31 0d 07  d0 1f 20 20 20 20 20 20  |R14,#1....      |
00001da0  20 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 52  |         CMP   R|
00001db0  31 34 2c 52 35 0d 07 da  22 20 20 20 20 20 20 20  |14,R5..."       |
00001dc0  20 20 20 20 20 20 20 20  42 4c 54 20 20 20 73 65  |        BLT   se|
00001dd0  61 72 63 68 5f 33 62 0d  07 e4 23 20 20 2e 73 65  |arch_3b...#  .se|
00001de0  61 72 63 68 5f 33 78 32  20 20 53 54 52 20 20 20  |arch_3x2  STR   |
00001df0  52 37 2c 5b 52 33 5d 2c  23 34 0d 07 ee 23 20 20  |R7,[R3],#4...#  |
00001e00  20 20 20 20 20 20 20 20  20 20 20 20 20 53 54 52  |             STR|
00001e10  20 20 20 52 38 2c 5b 52  33 5d 2c 23 34 0d 07 f8  |   R8,[R3],#4...|
00001e20  24 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |$               |
00001e30  53 55 42 20 20 20 52 31  30 2c 52 31 30 2c 52 31  |SUB   R10,R10,R1|
00001e40  34 0d 08 02 23 20 20 20  20 20 20 20 20 20 20 20  |4...#           |
00001e50  20 20 20 20 41 44 44 20  20 20 52 31 30 2c 52 31  |    ADD   R10,R1|
00001e60  30 2c 23 31 0d 08 0c 24  20 20 20 20 20 20 20 20  |0,#1...$        |
00001e70  20 20 20 20 20 20 20 53  54 52 20 20 20 52 31 30  |       STR   R10|
00001e80  2c 5b 52 33 5d 2c 23 34  0d 08 16 27 20 20 20 20  |,[R3],#4...'    |
00001e90  20 20 20 20 20 20 20 20  20 20 20 4c 44 52 20 20  |           LDR  |
00001ea0  20 52 31 31 2c 73 65 61  72 63 68 5f 6c 65 6e 0d  | R11,search_len.|
00001eb0  08 20 23 20 20 20 20 20  20 20 20 20 20 20 20 20  |. #             |
00001ec0  20 20 41 44 44 20 20 20  52 31 31 2c 52 31 31 2c  |  ADD   R11,R11,|
00001ed0  23 31 0d 08 2a 27 20 20  20 20 20 20 20 20 20 20  |#1..*'          |
00001ee0  20 20 20 20 20 53 54 52  20 20 20 52 31 31 2c 73  |     STR   R11,s|
00001ef0  65 61 72 63 68 5f 6c 65  6e 0d 08 34 24 20 20 20  |earch_len..4$   |
00001f00  20 20 20 20 20 20 20 20  20 20 20 20 42 20 20 20  |            B   |
00001f10  20 20 73 65 61 72 63 68  5f 6e 65 78 74 0d 08 3e  |  search_next..>|
00001f20  1f 20 20 2e 73 65 61 72  63 68 5f 33 63 20 20 20  |.  .search_3c   |
00001f30  4d 4f 56 20 20 20 52 31  34 2c 23 30 0d 08 48 25  |MOV   R14,#0..H%|
00001f40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4c  |               L|
00001f50  44 52 42 20 20 52 31 31  2c 5b 52 34 2c 52 31 34  |DRB  R11,[R4,R14|
00001f60  5d 0d 08 52 21 20 20 20  20 20 20 20 20 20 20 20  |]..R!           |
00001f70  20 20 20 20 42 20 20 20  20 20 73 65 61 72 63 68  |    B     search|
00001f80  5f 33 0d 08 5c 23 20 20  2e 73 65 61 72 63 68 5f  |_3..\#  .search_|
00001f90  34 20 20 20 20 41 44 44  20 20 20 52 31 30 2c 52  |4    ADD   R10,R|
00001fa0  31 30 2c 23 31 0d 08 66  20 20 20 20 20 20 20 20  |10,#1..f        |
00001fb0  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 52 31  |        CMP   R1|
00001fc0  30 2c 23 33 31 0d 08 70  24 20 20 20 20 20 20 20  |0,#31..p$       |
00001fd0  20 20 20 20 20 20 20 20  42 45 51 20 20 20 73 65  |        BEQ   se|
00001fe0  61 72 63 68 5f 6e 65 78  74 0d 08 7a 21 20 20 20  |arch_next..z!   |
00001ff0  20 20 20 20 20 20 20 20  20 20 20 20 42 20 20 20  |            B   |
00002000  20 20 73 65 61 72 63 68  5f 33 0d 08 84 21 20 20  |  search_3...!  |
00002010  2e 73 65 61 72 63 68 5f  6e 65 78 74 20 41 44 44  |.search_next ADD|
00002020  20 20 20 52 38 2c 52 38  2c 23 31 0d 08 8e 1f 20  |   R8,R8,#1.... |
00002030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 43 4d  |              CM|
00002040  50 20 20 20 52 38 2c 23  31 30 0d 08 98 21 20 20  |P   R8,#10...!  |
00002050  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4c 45  |             BLE|
00002060  20 20 20 73 65 61 72 63  68 5f 32 0d 08 a2 21 20  |   search_2...! |
00002070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 41 44  |              AD|
00002080  44 20 20 20 52 37 2c 52  37 2c 23 31 0d 08 ac 1e  |D   R7,R7,#1....|
00002090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 43  |               C|
000020a0  4d 50 20 20 20 52 37 2c  52 31 0d 08 b6 21 20 20  |MP   R7,R1...!  |
000020b0  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4c 45  |             BLE|
000020c0  20 20 20 73 65 61 72 63  68 5f 31 0d 08 c0 26 20  |   search_1...& |
000020d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
000020e0  52 20 20 20 52 30 2c 73  65 61 72 63 68 5f 6c 65  |R   R0,search_le|
000020f0  6e 0d 08 ca 22 20 20 20  20 20 20 20 20 20 20 20  |n..."           |
00002100  20 20 20 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |    LDMFD R13!,{|
00002110  50 43 7d 0d 08 d4 04 0d  08 de 1a 20 20 2e 73 65  |PC}........  .se|
00002120  61 72 63 68 5f 6c 65 6e  20 20 45 51 55 44 20 20  |arch_len  EQUD  |
00002130  30 0d 08 e8 1a 20 20 2e  73 65 61 72 63 68 5f 66  |0....  .search_f|
00002140  6c 61 67 20 45 51 55 44  20 20 30 0d 08 f2 04 0d  |lag EQUD  0.....|
00002150  08 fc 25 20 20 3b 20 4f  6e 20 65 6e 74 72 79 20  |..%  ; On entry |
00002160  2d 20 52 30 20 3d 20 61  72 72 61 79 20 70 6f 69  |- R0 = array poi|
00002170  6e 74 65 72 0d 09 06 30  20 20 3b 20 20 20 20 20  |nter...0  ;     |
00002180  20 20 20 20 20 20 20 52  31 20 3d 20 6e 75 6d 62  |       R1 = numb|
00002190  65 72 20 6f 66 20 72 65  63 6f 72 64 73 20 28 30  |er of records (0|
000021a0  2e 2e 6e 29 0d 09 10 2b  20 20 3b 20 20 20 20 20  |..n)...+  ;     |
000021b0  20 20 20 20 20 20 20 52  32 20 3d 20 73 74 61 72  |       R2 = star|
000021c0  74 20 72 65 63 6f 72 64  20 28 30 2e 2e 6e 29 0d  |t record (0..n).|
000021d0  09 1a 25 20 20 3b 20 20  20 20 20 20 20 20 20 20  |..%  ;          |
000021e0  20 20 52 33 20 3d 20 72  65 63 6f 72 64 20 6c 65  |  R3 = record le|
000021f0  6e 67 74 68 0d 09 24 04  0d 09 2e 23 20 20 2e 69  |ngth..$....#  .i|
00002200  6e 73 65 72 74 20 20 20  20 20 20 53 54 4d 46 44  |nsert      STMFD|
00002210  20 52 31 33 21 2c 7b 52  31 34 7d 0d 09 38 21 20  | R13!,{R14}..8! |
00002220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 55  |              MU|
00002230  4c 20 20 20 52 35 2c 52  31 2c 52 33 0d 09 42 21  |L   R5,R1,R3..B!|
00002240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 41  |               A|
00002250  44 44 20 20 20 52 30 2c  52 30 2c 52 35 0d 09 4c  |DD   R0,R0,R5..L|
00002260  1f 20 20 2e 69 6e 73 65  72 74 5f 31 20 20 20 20  |.  .insert_1    |
00002270  4d 4f 56 20 20 20 52 34  2c 23 31 31 0d 09 56 21  |MOV   R4,#11..V!|
00002280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 41  |               A|
00002290  44 44 20 20 20 52 35 2c  52 30 2c 52 33 0d 09 60  |DD   R5,R0,R3..`|
000022a0  29 20 20 2e 69 6e 73 65  72 74 5f 32 20 20 20 20  |)  .insert_2    |
000022b0  4c 44 4d 49 41 20 52 30  21 2c 7b 52 36 2d 52 31  |LDMIA R0!,{R6-R1|
000022c0  32 2c 52 31 34 7d 0d 09  6a 29 20 20 20 20 20 20  |2,R14}..j)      |
000022d0  20 20 20 20 20 20 20 20  20 53 54 4d 49 41 20 52  |         STMIA R|
000022e0  35 21 2c 7b 52 36 2d 52  31 32 2c 52 31 34 7d 0d  |5!,{R6-R12,R14}.|
000022f0  09 74 21 20 20 20 20 20  20 20 20 20 20 20 20 20  |.t!             |
00002300  20 20 53 55 42 53 20 20  52 34 2c 52 34 2c 23 31  |  SUBS  R4,R4,#1|
00002310  0d 09 7e 21 20 20 20 20  20 20 20 20 20 20 20 20  |..~!            |
00002320  20 20 20 42 4e 45 20 20  20 69 6e 73 65 72 74 5f  |   BNE   insert_|
00002330  32 0d 09 88 21 20 20 20  20 20 20 20 20 20 20 20  |2...!           |
00002340  20 20 20 20 53 55 42 20  20 20 52 30 2c 52 30 2c  |    SUB   R0,R0,|
00002350  52 33 0d 09 92 21 20 20  20 20 20 20 20 20 20 20  |R3...!          |
00002360  20 20 20 20 20 53 55 42  20 20 20 52 30 2c 52 30  |     SUB   R0,R0|
00002370  2c 52 33 0d 09 9c 21 20  20 20 20 20 20 20 20 20  |,R3...!         |
00002380  20 20 20 20 20 20 53 55  42 20 20 20 52 31 2c 52  |      SUB   R1,R|
00002390  31 2c 23 31 0d 09 a6 1e  20 20 20 20 20 20 20 20  |1,#1....        |
000023a0  20 20 20 20 20 20 20 43  4d 50 20 20 20 52 31 2c  |       CMP   R1,|
000023b0  52 32 0d 09 b0 21 20 20  20 20 20 20 20 20 20 20  |R2...!          |
000023c0  20 20 20 20 20 42 47 45  20 20 20 69 6e 73 65 72  |     BGE   inser|
000023d0  74 5f 31 0d 09 ba 22 20  20 20 20 20 20 20 20 20  |t_1..."         |
000023e0  20 20 20 20 20 20 4c 44  4d 46 44 20 52 31 33 21  |      LDMFD R13!|
000023f0  2c 7b 50 43 7d 0d 09 c4  04 0d 09 ce 25 20 20 3b  |,{PC}.......%  ;|
00002400  20 4f 6e 20 65 6e 74 72  79 20 2d 20 52 30 20 3d  | On entry - R0 =|
00002410  20 61 72 72 61 79 20 70  6f 69 6e 74 65 72 0d 09  | array pointer..|
00002420  d8 30 20 20 3b 20 20 20  20 20 20 20 20 20 20 20  |.0  ;           |
00002430  20 52 31 20 3d 20 6e 75  6d 62 65 72 20 6f 66 20  | R1 = number of |
00002440  72 65 63 6f 72 64 73 20  28 30 2e 2e 6e 29 0d 09  |records (0..n)..|
00002450  e2 2b 20 20 3b 20 20 20  20 20 20 20 20 20 20 20  |.+  ;           |
00002460  20 52 32 20 3d 20 73 74  61 72 74 20 72 65 63 6f  | R2 = start reco|
00002470  72 64 20 28 30 2e 2e 6e  29 0d 09 ec 25 20 20 3b  |rd (0..n)...%  ;|
00002480  20 20 20 20 20 20 20 20  20 20 20 20 52 33 20 3d  |            R3 =|
00002490  20 72 65 63 6f 72 64 20  6c 65 6e 67 74 68 0d 09  | record length..|
000024a0  f6 04 0d 0a 00 23 20 20  2e 64 65 6c 65 74 65 20  |.....#  .delete |
000024b0  20 20 20 20 20 53 54 4d  46 44 20 52 31 33 21 2c  |     STMFD R13!,|
000024c0  7b 52 31 34 7d 0d 0a 0a  21 20 20 20 20 20 20 20  |{R14}...!       |
000024d0  20 20 20 20 20 20 20 20  4d 55 4c 20 20 20 52 35  |        MUL   R5|
000024e0  2c 52 32 2c 52 33 0d 0a  14 21 20 20 20 20 20 20  |,R2,R3...!      |
000024f0  20 20 20 20 20 20 20 20  20 41 44 44 20 20 20 52  |         ADD   R|
00002500  30 2c 52 30 2c 52 35 0d  0a 1e 1f 20 20 2e 64 65  |0,R0,R5....  .de|
00002510  6c 65 74 65 5f 31 20 20  20 20 4d 4f 56 20 20 20  |lete_1    MOV   |
00002520  52 34 2c 23 31 31 0d 0a  28 21 20 20 20 20 20 20  |R4,#11..(!      |
00002530  20 20 20 20 20 20 20 20  20 41 44 44 20 20 20 52  |         ADD   R|
00002540  35 2c 52 30 2c 52 33 0d  0a 32 29 20 20 2e 64 65  |5,R0,R3..2)  .de|
00002550  6c 65 74 65 5f 32 20 20  20 20 4c 44 4d 49 41 20  |lete_2    LDMIA |
00002560  52 35 21 2c 7b 52 36 2d  52 31 32 2c 52 31 34 7d  |R5!,{R6-R12,R14}|
00002570  0d 0a 3c 29 20 20 20 20  20 20 20 20 20 20 20 20  |..<)            |
00002580  20 20 20 53 54 4d 49 41  20 52 30 21 2c 7b 52 36  |   STMIA R0!,{R6|
00002590  2d 52 31 32 2c 52 31 34  7d 0d 0a 46 21 20 20 20  |-R12,R14}..F!   |
000025a0  20 20 20 20 20 20 20 20  20 20 20 20 53 55 42 53  |            SUBS|
000025b0  20 20 52 34 2c 52 34 2c  23 31 0d 0a 50 21 20 20  |  R4,R4,#1..P!  |
000025c0  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4e 45  |             BNE|
000025d0  20 20 20 64 65 6c 65 74  65 5f 32 0d 0a 5a 21 20  |   delete_2..Z! |
000025e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 41 44  |              AD|
000025f0  44 20 20 20 52 32 2c 52  32 2c 23 31 0d 0a 64 1e  |D   R2,R2,#1..d.|
00002600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 43  |               C|
00002610  4d 50 20 20 20 52 32 2c  52 31 0d 0a 6e 21 20 20  |MP   R2,R1..n!  |
00002620  20 20 20 20 20 20 20 20  20 20 20 20 20 42 4c 54  |             BLT|
00002630  20 20 20 64 65 6c 65 74  65 5f 31 0d 0a 78 22 20  |   delete_1..x" |
00002640  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
00002650  4d 46 44 20 52 31 33 21  2c 7b 50 43 7d 0d 0a 82  |MFD R13!,{PC}...|
00002660  04 0d 0a 8c 29 20 20 3b  20 4f 6e 20 65 6e 74 72  |....)  ; On entr|
00002670  79 20 2d 20 52 30 20 3d  20 70 6f 69 6e 74 65 72  |y - R0 = pointer|
00002680  20 74 6f 20 73 74 72 69  6e 67 0d 0a 96 04 0d 0a  | to string......|
00002690  a0 1e 20 20 2e 63 75 74  20 20 20 20 20 20 20 20  |..  .cut        |
000026a0  20 4d 4f 56 20 20 20 52  31 2c 23 30 0d 0a aa 23  | MOV   R1,#0...#|
000026b0  20 20 2e 63 75 74 5f 31  20 20 20 20 20 20 20 4c  |  .cut_1       L|
000026c0  44 52 42 20 20 52 32 2c  5b 52 30 2c 52 31 5d 0d  |DRB  R2,[R0,R1].|
000026d0  0a b4 1f 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
000026e0  20 20 43 4d 50 20 20 20  52 32 2c 23 33 32 0d 0a  |  CMP   R2,#32..|
000026f0  be 21 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.!              |
00002700  20 41 44 44 47 45 20 52  31 2c 52 31 2c 23 31 0d  | ADDGE R1,R1,#1.|
00002710  0a c8 1e 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00002720  20 20 42 47 45 20 20 20  63 75 74 5f 31 0d 0a d2  |  BGE   cut_1...|
00002730  1f 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00002740  4d 4f 56 20 20 20 52 33  2c 23 31 33 0d 0a dc 23  |MOV   R3,#13...#|
00002750  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
00002760  54 52 42 20 20 52 33 2c  5b 52 30 2c 52 31 5d 0d  |TRB  R3,[R0,R1].|
00002770  0a e6 1f 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00002780  20 20 4d 4f 56 20 20 20  50 43 2c 52 31 34 0d 0a  |  MOV   PC,R14..|
00002790  f0 04 0d 0a fa 29 20 20  3b 20 4f 6e 20 65 6e 74  |.....)  ; On ent|
000027a0  72 79 20 2d 20 52 30 20  3d 20 70 6f 69 6e 74 65  |ry - R0 = pointe|
000027b0  72 20 74 6f 20 73 74 72  69 6e 67 0d 0b 04 28 20  |r to string...( |
000027c0  20 3b 20 4f 6e 20 65 78  69 74 20 20 2d 20 52 30  | ; On exit  - R0|
000027d0  20 3d 20 6c 65 6e 67 74  68 20 6f 66 20 73 74 72  | = length of str|
000027e0  69 6e 67 0d 0b 0e 04 0d  0b 18 1e 20 20 2e 63 75  |ing........  .cu|
000027f0  74 32 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |t2        MOV   |
00002800  52 31 2c 23 30 0d 0b 22  23 20 20 2e 63 75 74 32  |R1,#0.."#  .cut2|
00002810  5f 31 20 20 20 20 20 20  4c 44 52 42 20 20 52 32  |_1      LDRB  R2|
00002820  2c 5b 52 30 2c 52 31 5d  0d 0b 2c 1f 20 20 20 20  |,[R0,R1]..,.    |
00002830  20 20 20 20 20 20 20 20  20 20 20 43 4d 50 20 20  |           CMP  |
00002840  20 52 32 2c 23 33 32 0d  0b 36 21 20 20 20 20 20  | R2,#32..6!     |
00002850  20 20 20 20 20 20 20 20  20 20 41 44 44 47 45 20  |          ADDGE |
00002860  52 31 2c 52 31 2c 23 31  0d 0b 40 1f 20 20 20 20  |R1,R1,#1..@.    |
00002870  20 20 20 20 20 20 20 20  20 20 20 42 47 45 20 20  |           BGE  |
00002880  20 63 75 74 32 5f 31 0d  0b 4a 1f 20 20 20 20 20  | cut2_1..J.     |
00002890  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000028a0  52 33 2c 23 31 30 0d 0b  54 23 20 20 20 20 20 20  |R3,#10..T#      |
000028b0  20 20 20 20 20 20 20 20  20 53 54 52 42 20 20 52  |         STRB  R|
000028c0  33 2c 5b 52 30 2c 52 31  5d 0d 0b 5e 1e 20 20 20  |3,[R0,R1]..^.   |
000028d0  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |            MOV |
000028e0  20 20 52 30 2c 52 31 0d  0b 68 1f 20 20 20 20 20  |  R0,R1..h.     |
000028f0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00002900  50 43 2c 52 31 34 0d 0b  72 04 0d 0b 7c 28 20 20  |PC,R14..r...|(  |
00002910  3b 20 4f 6e 20 65 6e 74  72 79 20 2d 20 52 30 20  |; On entry - R0 |
00002920  3d 20 70 6f 69 6e 74 65  72 20 74 6f 20 74 61 62  |= pointer to tab|
00002930  6c 65 0d 0b 86 30 20 20  3b 20 20 20 20 20 20 20  |le...0  ;       |
00002940  20 20 20 20 20 52 31 20  3d 20 6e 75 6d 62 65 72  |     R1 = number|
00002950  20 6f 66 20 65 6e 74 72  69 65 73 20 28 31 2e 2e  | of entries (1..|
00002960  6e 29 0d 0b 90 07 20 20  3b 0d 0b 9a 30 20 20 3b  |n)....  ;...0  ;|
00002970  20 4f 6e 20 65 78 69 74  20 20 2d 20 52 30 20 3d  | On exit  - R0 =|
00002980  20 6e 75 6d 62 65 72 20  6f 66 20 61 63 74 75 61  | number of actua|
00002990  6c 20 72 65 63 6f 72 64  73 0d 0b a4 04 0d 0b ae  |l records.......|
000029a0  23 20 20 2e 63 6f 75 6e  74 5f 72 65 63 20 20 20  |#  .count_rec   |
000029b0  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |STMFD R13!,{R14}|
000029c0  0d 0b b8 1e 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
000029d0  20 20 20 4d 56 4e 20 20  20 52 32 2c 23 30 0d 0b  |   MVN   R2,#0..|
000029e0  c2 1e 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
000029f0  20 4d 4f 56 20 20 20 52  34 2c 23 30 0d 0b cc 24  | MOV   R4,#0...$|
00002a00  20 20 2e 63 6f 75 6e 74  5f 72 65 63 5f 31 20 4c  |  .count_rec_1 L|
00002a10  44 52 20 20 20 52 33 2c  5b 52 30 5d 2c 23 31 32  |DR   R3,[R0],#12|
00002a20  0d 0b d6 1e 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00002a30  20 20 20 43 4d 50 20 20  20 52 33 2c 52 32 0d 0b  |   CMP   R3,R2..|
00002a40  e0 24 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.$              |
00002a50  20 42 4e 45 20 20 20 63  6f 75 6e 74 5f 72 65 63  | BNE   count_rec|
00002a60  5f 32 0d 0b ea 1e 20 20  20 20 20 20 20 20 20 20  |_2....          |
00002a70  20 20 20 20 20 4d 4f 56  20 20 20 52 32 2c 52 33  |     MOV   R2,R3|
00002a80  0d 0b f4 21 20 20 20 20  20 20 20 20 20 20 20 20  |...!            |
00002a90  20 20 20 53 55 42 53 20  20 52 31 2c 52 31 2c 23  |   SUBS  R1,R1,#|
00002aa0  31 0d 0b fe 24 20 20 20  20 20 20 20 20 20 20 20  |1...$           |
00002ab0  20 20 20 20 42 45 51 20  20 20 63 6f 75 6e 74 5f  |    BEQ   count_|
00002ac0  72 65 63 5f 33 0d 0c 08  24 20 20 20 20 20 20 20  |rec_3...$       |
00002ad0  20 20 20 20 20 20 20 20  42 20 20 20 20 20 63 6f  |        B     co|
00002ae0  75 6e 74 5f 72 65 63 5f  31 0d 0c 12 1e 20 20 2e  |unt_rec_1....  .|
00002af0  63 6f 75 6e 74 5f 72 65  63 5f 32 20 4d 4f 56 20  |count_rec_2 MOV |
00002b00  20 20 52 32 2c 52 33 0d  0c 1c 21 20 20 20 20 20  |  R2,R3...!     |
00002b10  20 20 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |          ADD   |
00002b20  52 34 2c 52 34 2c 23 31  0d 0c 26 21 20 20 20 20  |R4,R4,#1..&!    |
00002b30  20 20 20 20 20 20 20 20  20 20 20 53 55 42 53 20  |           SUBS |
00002b40  20 52 31 2c 52 31 2c 23  31 0d 0c 30 24 20 20 20  | R1,R1,#1..0$   |
00002b50  20 20 20 20 20 20 20 20  20 20 20 20 42 4e 45 20  |            BNE |
00002b60  20 20 63 6f 75 6e 74 5f  72 65 63 5f 31 0d 0c 3a  |  count_rec_1..:|
00002b70  1e 20 20 2e 63 6f 75 6e  74 5f 72 65 63 5f 33 20  |.  .count_rec_3 |
00002b80  4d 4f 56 20 20 20 52 30  2c 52 34 0d 0c 44 22 20  |MOV   R0,R4..D" |
00002b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
00002ba0  4d 46 44 20 52 31 33 21  2c 7b 50 43 7d 0d 0c 4e  |MFD R13!,{PC}..N|
00002bb0  04 0d 0c 58 09 5d 3a ed  3a e1 0d 0c 62 05 3a 0d  |...X.]:.:...b.:.|
00002bc0  0c 6c 10 dd f2 63 68 65  63 6b 5f 6c 6f 61 64 0d  |.l...check_load.|
00002bd0  0c 76 41 e7 20 63 68 6b  5f 6c 64 25 20 f2 6c 6f  |.vA. chk_ld% .lo|
00002be0  61 64 5f 66 69 6c 65 28  63 68 6b 5f 6c 64 24 2c  |ad_file(chk_ld$,|
00002bf0  30 29 20 8b 20 e7 20 6c  6f 61 64 25 20 f2 6c 6f  |0) . . load% .lo|
00002c00  61 64 5f 66 69 6c 65 28  6c 6f 61 64 24 2c 30 29  |ad_file(load$,0)|
00002c10  0d 0c 80 05 e1 0d 0c 8a  05 3a 0d 0c 94 1f dd f2  |.........:......|
00002c20  62 75 74 74 6f 6e 73 28  62 75 74 25 2c 61 24 2c  |buttons(but%,a$,|
00002c30  62 24 2c 63 24 2c 64 24  29 0d 0c 9e 4b 24 62 75  |b$,c$,d$)...K$bu|
00002c40  74 25 3d 61 24 3a 62 75  74 25 2b 3d a9 61 24 2b  |t%=a$:but%+=.a$+|
00002c50  31 3a 24 62 75 74 25 3d  62 24 3a 62 75 74 25 2b  |1:$but%=b$:but%+|
00002c60  3d a9 62 24 2b 31 3a 24  62 75 74 25 3d 63 24 3a  |=.b$+1:$but%=c$:|
00002c70  62 75 74 25 2b 3d a9 63  24 2b 31 3a 24 62 75 74  |but%+=.c$+1:$but|
00002c80  25 3d 64 24 0d 0c a8 05  e1 0d 0c b2 05 3a 0d 0c  |%=d$.........:..|
00002c90  bc 1d dd f2 69 6e 69 74  74 61 73 6b 28 61 24 29  |....inittask(a$)|
00002ca0  3a 24 62 25 3d 22 54 41  53 4b 22 0d 0c c6 33 c8  |:$b%="TASK"...3.|
00002cb0  99 20 22 57 69 6d 70 5f  49 6e 69 74 69 61 6c 69  |. "Wimp_Initiali|
00002cc0  73 65 22 2c 32 30 30 2c  21 62 25 2c 61 24 20 b8  |se",200,!b%,a$ .|
00002cd0  20 2c 74 61 73 6b 5f 68  61 6e 64 6c 65 25 0d 0c  | ,task_handle%..|
00002ce0  d0 3e c8 99 20 22 57 69  6d 70 45 78 74 5f 49 6e  |.>.. "WimpExt_In|
00002cf0  69 74 69 61 6c 69 73 65  22 2c 35 2c 74 61 73 6b  |itialise",5,task|
00002d00  5f 68 61 6e 64 6c 65 25  2c 25 30 31 31 31 31 30  |_handle%,%011110|
00002d10  31 20 b8 20 77 69 6d 70  65 78 74 25 0d 0c da 05  |1 . wimpext%....|
00002d20  e1 0d 0c e4 05 3a 0d 0c  ee 0c dd f2 64 65 66 69  |.....:......defi|
00002d30  6e 65 0d 0c f8 57 f2 63  72 65 61 74 65 6d 65 6e  |ne...W.createmen|
00002d40  75 28 6d 31 25 2c 22 54  65 6c 41 64 64 72 22 2c  |u(m1%,"TelAddr",|
00002d50  22 49 6e 66 6f 3e 69 6e  66 6f 25 2c 50 72 65 66  |"Info>info%,Pref|
00002d60  65 72 65 6e 63 65 73 2e  2e 2e 2c 53 61 76 65 20  |erences...,Save |
00002d70  62 6f 6f 6b 3e 73 61 76  65 5f 61 73 25 23 45 2c  |book>save_as%#E,|
00002d80  51 75 69 74 22 2c 65 31  29 0d 0d 02 3d f2 63 72  |Quit",e1)...=.cr|
00002d90  65 61 74 65 6d 65 6e 75  28 6d 34 25 2c 22 4d 69  |eatemenu(m4%,"Mi|
00002da0  73 63 22 2c 22 49 6e 66  6f 3e 69 6e 66 6f 25 2c  |sc","Info>info%,|
00002db0  46 69 6c 65 3e 66 69 6c  65 5f 69 6e 66 6f 25 23  |File>file_info%#|
00002dc0  45 22 2c 65 34 29 0d 0d  0c 76 f2 63 72 65 61 74  |E",e4)...v.creat|
00002dd0  65 6d 65 6e 75 28 6d 32  25 2c 22 53 61 76 65 22  |emenu(m2%,"Save"|
00002de0  2c 22 53 61 76 65 20 62  6f 6f 6b 20 20 20 20 20  |,"Save book     |
00002df0  46 33 3e 73 61 76 65 5f  61 73 25 23 45 2c 53 61  |F3>save_as%#E,Sa|
00002e00  76 65 20 73 65 61 72 63  68 20 20 8b 46 33 3e 73  |ve search  .F3>s|
00002e10  61 76 65 5f 61 73 31 25  23 45 2c 53 61 76 65 20  |ave_as1%#E,Save |
00002e20  61 64 64 72 65 73 73 20  5e 46 33 3e 73 61 76 65  |address ^F3>save|
00002e30  5f 61 73 32 25 23 45 22  2c 65 32 29 0d 0d 16 44  |_as2%#E",e2)...D|
00002e40  f2 63 72 65 61 74 65 6d  65 6e 75 28 6d 36 25 2c  |.createmenu(m6%,|
00002e50  22 53 65 61 72 63 68 22  2c 22 53 61 76 65 3e 73  |"Search","Save>s|
00002e60  61 76 65 5f 61 73 31 25  23 45 2c 53 65 61 72 63  |ave_as1%#E,Searc|
00002e70  68 2e 2e 2e 2c 44 65 6c  65 74 65 22 2c 65 36 29  |h...,Delete",e6)|
00002e80  0d 0d 20 5e f2 63 72 65  61 74 65 6d 65 6e 75 28  |.. ^.createmenu(|
00002e90  6d 37 25 2c 22 45 64 69  74 22 2c 22 41 64 64 20  |m7%,"Edit","Add |
00002ea0  62 65 66 6f 72 65 2c 41  64 64 20 61 66 74 65 72  |before,Add after|
00002eb0  2c 44 65 6c 65 74 65 20  72 65 63 6f 72 64 2c 43  |,Delete record,C|
00002ec0  6c 65 61 72 20 72 65 63  6f 72 64 23 4c 2c 44 65  |lear record#L,De|
00002ed0  6c 65 74 65 20 62 6f 6f  6b 22 2c 65 37 29 0d 0d  |lete book",e7)..|
00002ee0  2a 34 f2 63 72 65 61 74  65 6d 65 6e 75 28 6d 38  |*4.createmenu(m8|
00002ef0  25 2c 22 44 69 73 70 6c  61 79 22 2c 22 54 6f 6f  |%,"Display","Too|
00002f00  6c 62 6f 78 2c 50 6f 73  69 74 69 6f 6e 22 2c 65  |lbox,Position",e|
00002f10  38 29 0d 0d 34 5b f2 63  72 65 61 74 65 6d 65 6e  |8)..4[.createmen|
00002f20  75 28 6d 33 25 2c 22 54  65 6c 41 64 64 72 22 2c  |u(m3%,"TelAddr",|
00002f30  22 4d 69 73 63 3e 6d 34  25 2c 53 61 76 65 20 20  |"Misc>m4%,Save  |
00002f40  20 20 46 33 3e 6d 32 25  2c 53 65 61 72 63 68 3e  |  F3>m2%,Search>|
00002f50  6d 36 25 2c 45 64 69 74  3e 6d 37 25 2c 44 69 73  |m6%,Edit>m7%,Dis|
00002f60  70 6c 61 79 3e 6d 38 25  22 2c 65 33 29 0d 0d 3e  |play>m8%",e3)..>|
00002f70  2e f2 73 75 62 28 73 31  25 2c 22 47 6f 74 6f 20  |..sub(s1%,"Goto |
00002f80  72 65 63 6f 72 64 3a 22  2c 67 6f 74 6f 25 2c 67  |record:",goto%,g|
00002f90  6f 74 6f 5f 76 61 6c 25  2c 34 29 0d 0d 48 05 e1  |oto_val%,4)..H..|
00002fa0  0d 0d 52 05 3a 0d 0d 5c  2c dd f2 6a 28 6a 31 25  |..R.:..\,..j(j1%|
00002fb0  2c 6a 32 25 2c 6a 33 25  29 3a 6a 31 25 21 28 33  |,j2%,j3%):j1%!(3|
00002fc0  32 2b 28 6a 32 25 2a 32  34 29 29 3d 6a 33 25 3a  |2+(j2%*24))=j3%:|
00002fd0  e1 0d 0d 66 05 3a 0d 0d  70 0a dd f2 70 6f 6c 6c  |...f.:..p...poll|
00002fe0  0d 0d 7a 8e e7 20 66 61  69 6c 65 64 25 20 8c 20  |..z.. failed% . |
00002ff0  66 61 69 6c 65 64 25 3d  30 3a 72 65 71 25 3d 30  |failed%=0:req%=0|
00003000  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 4f 70 65  |:.. "WimpExt_Ope|
00003010  6e 52 65 71 75 65 73 74  65 72 22 2c 2c 2c 22 4d  |nRequester",,,"M|
00003020  65 73 73 61 67 65 20 66  72 6f 6d 20 54 65 6c 41  |essage from TelA|
00003030  64 64 72 22 2c 22 44 65  66 61 75 6c 74 20 61 64  |ddr","Default ad|
00003040  64 72 65 73 73 20 62 6f  6f 6b 20 64 6f 65 73 20  |dress book does |
00003050  6e 6f 74 20 65 78 69 73  74 2c 20 6c 6f 61 64 20  |not exist, load |
00003060  66 61 69 6c 65 64 2e 22  2c 6f 6b 25 2c 30 0d 0d  |failed.",ok%,0..|
00003070  84 0e c8 95 20 ac 20 71  75 69 74 25 0d 0d 8e 1a  |.... . quit%....|
00003080  20 20 c8 99 20 22 57 69  6d 70 45 78 74 5f 50 72  |  .. "WimpExt_Pr|
00003090  65 50 6f 6c 6c 22 0d 0d  98 23 20 20 c8 99 20 22  |ePoll"...#  .. "|
000030a0  57 69 6d 70 5f 50 6f 6c  6c 22 2c 30 2c 62 25 20  |Wimp_Poll",0,b% |
000030b0  b8 20 72 65 61 73 6f 6e  25 0d 0d a2 3b 20 20 c8  |. reason%...;  .|
000030c0  99 20 22 57 69 6d 70 45  78 74 5f 41 63 74 69 6f  |. "WimpExt_Actio|
000030d0  6e 22 2c 74 61 73 6b 5f  68 61 6e 64 6c 65 25 2c  |n",task_handle%,|
000030e0  62 25 2c 72 65 61 73 6f  6e 25 20 b8 20 72 65 61  |b%,reason% . rea|
000030f0  73 6f 6e 25 0d 0d ac 12  20 20 c8 8e 20 72 65 61  |son%....  .. rea|
00003100  73 6f 6e 25 20 ca 0d 0d  b6 18 20 20 20 20 c9 20  |son% .....    . |
00003110  31 3a f2 72 65 64 72 61  77 28 21 62 25 29 0d 0d  |1:.redraw(!b%)..|
00003120  c0 42 20 20 20 20 c9 20  32 3a c8 99 20 22 57 69  |.B    . 2:.. "Wi|
00003130  6d 70 45 78 74 5f 4f 70  65 6e 4c 69 6e 6b 65 64  |mpExt_OpenLinked|
00003140  22 2c 2c 62 25 3a e7 20  21 62 25 3d 62 6f 6f 6b  |",,b%:. !b%=book|
00003150  25 20 f2 6f 70 65 6e 5f  70 6f 73 5f 70 61 6e 65  |% .open_pos_pane|
00003160  0d 0d ca 57 20 20 20 20  c9 20 33 3a c8 99 20 22  |...W    . 3:.. "|
00003170  57 69 6d 70 45 78 74 5f  43 6c 6f 73 65 4c 69 6e  |WimpExt_CloseLin|
00003180  6b 65 64 22 2c 2c 62 25  3a e7 20 21 62 25 3d 62  |ked",,b%:. !b%=b|
00003190  6f 6f 6b 25 20 21 62 25  3d 70 6f 73 25 3a c8 99  |ook% !b%=pos%:..|
000031a0  20 22 57 69 6d 70 5f 43  6c 6f 73 65 57 69 6e 64  | "Wimp_CloseWind|
000031b0  6f 77 22 2c 2c 62 25 0d  0d d4 12 20 20 20 20 c9  |ow",,b%....    .|
000031c0  20 36 3a f2 63 6c 69 63  6b 0d 0d de 16 20 20 20  | 6:.click....   |
000031d0  20 c9 20 37 3a f2 69 6e  69 74 5f 73 61 76 65 0d  | . 7:.init_save.|
000031e0  0d e8 18 20 20 20 20 c9  20 38 3a f2 6b 65 79 5f  |...    . 8:.key_|
000031f0  70 72 65 73 73 65 64 0d  0d f2 17 20 20 20 20 c9  |pressed....    .|
00003200  20 39 3a f2 6d 65 6e 75  73 65 6c 65 63 74 0d 0d  | 9:.menuselect..|
00003210  fc 18 20 20 20 20 c9 20  31 30 3a f2 73 63 72 6f  |..    . 10:.scro|
00003220  6c 6c 5f 72 65 71 0d 0e  06 18 20 20 20 20 c9 20  |ll_req....    . |
00003230  31 37 2c 31 38 3a f2 73  65 72 76 69 63 65 0d 0e  |17,18:.service..|
00003240  10 8c 20 20 20 20 c9 20  31 39 3a f4 20 53 59 53  |..    . 19:. SYS|
00003250  20 22 4f 53 5f 46 69 6c  65 22 2c 36 2c 62 25 2b  | "OS_File",6,b%+|
00003260  34 34 3a 72 65 71 25 3d  30 3a 53 59 53 20 22 57  |44:req%=0:SYS "W|
00003270  69 6d 70 45 78 74 5f 4f  70 65 6e 52 65 71 75 65  |impExt_OpenReque|
00003280  73 74 65 72 22 2c 2c 2c  22 57 61 72 6e 69 6e 67  |ster",,,"Warning|
00003290  20 66 72 6f 6d 20 54 65  6c 41 64 64 72 22 2c 22  | from TelAddr","|
000032a0  44 61 74 61 20 74 72 61  6e 73 66 65 72 20 66 61  |Data transfer fa|
000032b0  69 6c 65 64 3a 20 52 65  63 65 69 76 65 72 20 64  |iled: Receiver d|
000032c0  69 65 64 22 2c 6f 6b 25  2c 30 0d 0e 1a 07 20 20  |ied",ok%,0....  |
000032d0  cb 0d 0e 24 05 ce 0d 0e  2e 05 e1 0d 0e 38 05 3a  |...$.........8.:|
000032e0  0d 0e 42 0d dd f2 73 65  72 76 69 63 65 0d 0e 4c  |..B...service..L|
000032f0  0e c8 8e 20 62 25 21 31  36 20 ca 0d 0e 56 0f 20  |... b%!16 ...V. |
00003300  20 c9 20 30 3a f2 71 75  69 74 0d 0e 60 13 20 20  | . 0:.quit..`.  |
00003310  c9 20 31 3a f2 73 61 76  65 5f 61 63 6b 0d 0e 6a  |. 1:.save_ack..j|
00003320  14 20 20 c9 20 32 3a f2  64 61 74 61 5f 73 61 76  |.  . 2:.data_sav|
00003330  65 0d 0e 74 14 20 20 c9  20 33 3a c8 8e 20 62 25  |e..t.  . 3:.. b%|
00003340  21 32 30 20 ca 0d 0e 7e  c6 20 20 20 20 c9 20 62  |!20 ...~.    . b|
00003350  6f 6f 6b 25 2c 2d 32 3a  e7 20 a4 6c 6f 61 64 5f  |ook%,-2:. .load_|
00003360  61 63 6b 20 f2 73 74 6f  72 65 28 72 65 63 6f 72  |ack .store(recor|
00003370  64 25 29 3a f2 6c 6f 61  64 5f 66 69 6c 65 28 a4  |d%):.load_file(.|
00003380  73 74 72 69 6e 67 28 62  25 2b 34 34 29 2c 31 29  |string(b%+44),1)|
00003390  3a e7 20 66 61 69 6c 65  64 25 20 8c 20 66 61 69  |:. failed% . fai|
000033a0  6c 65 64 25 3d 30 3a 72  65 71 25 3d 30 3a c8 99  |led%=0:req%=0:..|
000033b0  20 22 57 69 6d 70 45 78  74 5f 4f 70 65 6e 52 65  | "WimpExt_OpenRe|
000033c0  71 75 65 73 74 65 72 22  2c 2c 2c 22 4d 65 73 73  |quester",,,"Mess|
000033d0  61 67 65 20 66 72 6f 6d  20 54 65 6c 41 64 64 72  |age from TelAddr|
000033e0  22 2c 22 46 69 6c 65 20  64 6f 65 73 20 6e 6f 74  |","File does not|
000033f0  20 65 78 69 73 74 2c 20  6c 6f 61 64 20 66 61 69  | exist, load fai|
00003400  6c 65 64 2e 22 2c 6f 6b  25 2c 30 0d 0e 88 60 20  |led.",ok%,0...` |
00003410  20 20 20 c9 20 70 72 65  66 25 2c 70 72 65 66 5f  |   . pref%,pref_|
00003420  70 61 6e 65 25 3a e7 20  a4 6c 6f 61 64 5f 61 63  |pane%:. .load_ac|
00003430  6b 20 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |k .. "WimpExt_Se|
00003440  74 49 63 6f 6e 53 74 72  69 6e 67 22 2c 2c 2c 70  |tIconString",,,p|
00003450  72 65 66 5f 70 61 6e 65  25 2c 36 35 2c a4 73 74  |ref_pane%,65,.st|
00003460  72 69 6e 67 28 62 25 2b  34 34 29 0d 0e 92 07 20  |ring(b%+44).... |
00003470  20 cb 0d 0e 9c 5a 20 20  e7 20 c0 a4 73 74 72 69  | ....Z  . ..stri|
00003480  6e 67 28 62 25 2b 34 34  29 2c 31 32 29 3d 22 3c  |ng(b%+44),12)="<|
00003490  57 69 6d 70 24 53 63 72  61 70 3e 22 20 8c 20 c8  |Wimp$Scrap>" . .|
000034a0  99 20 22 4f 53 5f 46 69  6c 65 22 2c 36 2c a4 73  |. "OS_File",6,.s|
000034b0  74 72 69 6e 67 28 62 25  2b 34 34 29 3a 74 65 6d  |tring(b%+44):tem|
000034c0  70 25 3d a4 6c 6f 61 64  5f 61 63 6b 0d 0e a6 17  |p%=.load_ack....|
000034d0  20 20 c9 20 35 3a e7 20  a4 6c 6f 61 64 5f 61 63  |  . 5:. .load_ac|
000034e0  6b 20 8c 0d 0e b0 36 20  20 20 20 20 20 6d 6f 64  |k ....6      mod|
000034f0  5f 66 69 6c 65 6e 61 6d  65 24 3d a4 73 74 72 69  |_filename$=.stri|
00003500  6e 67 28 62 25 2b 34 34  29 3a f2 73 74 6f 72 65  |ng(b%+44):.store|
00003510  28 72 65 63 6f 72 64 25  29 0d 0e ba 19 20 20 20  |(record%)....   |
00003520  20 20 20 e7 20 6d 6f 64  69 66 69 65 64 25 3d 30  |   . modified%=0|
00003530  20 8c 0d 0e c4 a2 20 20  20 20 20 20 20 20 f2 6c  | .....        .l|
00003540  6f 61 64 5f 66 69 6c 65  28 6d 6f 64 5f 66 69 6c  |oad_file(mod_fil|
00003550  65 6e 61 6d 65 24 2c 30  29 3a e7 20 66 61 69 6c  |ename$,0):. fail|
00003560  65 64 25 20 8c 20 66 61  69 6c 65 64 25 3d 30 3a  |ed% . failed%=0:|
00003570  72 65 71 25 3d 30 3a c8  99 20 22 57 69 6d 70 45  |req%=0:.. "WimpE|
00003580  78 74 5f 4f 70 65 6e 52  65 71 75 65 73 74 65 72  |xt_OpenRequester|
00003590  22 2c 2c 2c 22 4d 65 73  73 61 67 65 20 66 72 6f  |",,,"Message fro|
000035a0  6d 20 54 65 6c 41 64 64  72 22 2c 22 46 69 6c 65  |m TelAddr","File|
000035b0  20 64 6f 65 73 20 6e 6f  74 20 65 78 69 73 74 2c  | does not exist,|
000035c0  20 6c 6f 61 64 20 66 61  69 6c 65 64 2e 22 2c 6f  | load failed.",o|
000035d0  6b 25 2c 30 0d 0e ce 0b  20 20 20 20 20 20 cc 0d  |k%,0....      ..|
000035e0  0e d8 a3 20 20 20 20 20  20 20 20 72 65 71 25 3d  |...        req%=|
000035f0  35 3a c8 99 20 22 57 69  6d 70 45 78 74 5f 4f 70  |5:.. "WimpExt_Op|
00003600  65 6e 52 65 71 75 65 73  74 65 72 22 2c 2c 2c 22  |enRequester",,,"|
00003610  51 75 65 72 79 20 66 72  6f 6d 20 54 65 6c 41 64  |Query from TelAd|
00003620  64 72 22 2c 22 54 68 65  20 63 75 72 72 65 6e 74  |dr","The current|
00003630  20 61 64 64 72 65 73 73  20 62 6f 6f 6b 20 68 61  | address book ha|
00003640  73 20 6e 6f 74 20 62 65  65 6e 20 73 61 76 65 64  |s not been saved|
00003650  2c 20 64 6f 20 79 6f 75  20 77 61 6e 74 20 74 6f  |, do you want to|
00003660  20 73 61 76 65 20 69 74  20 3f 22 2c 73 61 76 65  | save it ?",save|
00003670  5f 64 69 73 63 61 72 64  5f 63 61 6e 63 65 6c 25  |_discard_cancel%|
00003680  2c 32 0d 0e e2 0b 20 20  20 20 20 20 cd 0d 0e ec  |,2....      ....|
00003690  09 20 20 20 20 cd 0d 0e  f6 14 20 20 c9 20 36 3a  |.    .....  . 6:|
000036a0  f2 72 61 6d 5f 66 65 74  63 68 0d 0f 00 12 20 20  |.ram_fetch....  |
000036b0  c9 20 26 35 30 32 3a f2  68 65 6c 70 0d 0f 0a 1c  |. &502:.help....|
000036c0  20 20 c9 20 26 34 30 30  43 30 3a f2 6d 65 6e 75  |  . &400C0:.menu|
000036d0  5f 77 61 72 6e 69 6e 67  0d 0f 14 05 cb 0d 0f 1e  |_warning........|
000036e0  05 e1 0d 0f 28 05 3a 0d  0f 32 29 dd f2 6b 65 79  |....(.:..2)..key|
000036f0  5f 70 72 65 73 73 65 64  3a 77 25 3d 21 62 25 3a  |_pressed:w%=!b%:|
00003700  69 25 3d 62 25 21 34 3a  6b 25 3d 62 25 21 32 34  |i%=b%!4:k%=b%!24|
00003710  0d 0f 3c 0a c8 8e 20 b9  20 ca 0d 0f 46 40 20 20  |..<... . ...F@  |
00003720  c9 20 77 25 3d 73 61 76  65 5f 61 73 25 20 80 20  |. w%=save_as% . |
00003730  28 69 25 3d 36 20 84 20  69 25 3d 31 30 29 20 80  |(i%=6 . i%=10) .|
00003740  20 28 6b 25 3d 31 33 20  84 20 6b 25 3d 33 39 38  | (k%=13 . k%=398|
00003750  20 84 20 6b 25 3d 33 39  39 29 0d 0f 50 30 20 20  | . k%=399)..P0  |
00003760  20 20 f2 73 6f 72 74 6f  75 74 5f 70 61 72 74 69  |  .sortout_parti|
00003770  61 6c 28 28 69 25 2d 36  29 2f 34 2c 73 61 76 65  |al((i%-6)/4,save|
00003780  5f 61 73 25 2c 36 2c 31  30 29 0d 0f 5a 5f 20 20  |_as%,6,10)..Z_  |
00003790  20 20 e7 20 69 25 3d 36  20 c8 99 20 22 57 69 6d  |  . i%=6 .. "Wim|
000037a0  70 45 78 74 5f 50 75 74  43 61 72 65 74 49 63 6f  |pExt_PutCaretIco|
000037b0  6e 22 2c 2c 2c 73 61 76  65 5f 61 73 25 2c 31 30  |n",,,save_as%,10|
000037c0  20 8b 20 c8 99 20 22 57  69 6d 70 45 78 74 5f 50  | . .. "WimpExt_P|
000037d0  75 74 43 61 72 65 74 49  63 6f 6e 22 2c 2c 2c 73  |utCaretIcon",,,s|
000037e0  61 76 65 5f 61 73 25 2c  36 0d 0f 64 43 20 20 c9  |ave_as%,6..dC  .|
000037f0  20 77 25 3d 70 72 65 66  5f 70 61 6e 65 25 20 80  | w%=pref_pane% .|
00003800  20 28 69 25 3d 33 39 20  84 20 69 25 3d 34 33 29  | (i%=39 . i%=43)|
00003810  20 80 20 28 6b 25 3d 31  33 20 84 20 6b 25 3d 33  | . (k%=13 . k%=3|
00003820  39 38 20 84 20 6b 25 3d  33 39 39 29 0d 0f 6e 34  |98 . k%=399)..n4|
00003830  20 20 20 20 f2 73 6f 72  74 6f 75 74 5f 70 61 72  |    .sortout_par|
00003840  74 69 61 6c 28 28 69 25  2d 33 39 29 2f 34 2c 70  |tial((i%-39)/4,p|
00003850  72 65 66 5f 70 61 6e 65  25 2c 33 39 2c 34 33 29  |ref_pane%,39,43)|
00003860  0d 0f 78 65 20 20 20 20  e7 20 69 25 3d 33 39 20  |..xe    . i%=39 |
00003870  c8 99 20 22 57 69 6d 70  45 78 74 5f 50 75 74 43  |.. "WimpExt_PutC|
00003880  61 72 65 74 49 63 6f 6e  22 2c 2c 2c 70 72 65 66  |aretIcon",,,pref|
00003890  5f 70 61 6e 65 25 2c 34  33 20 8b 20 c8 99 20 22  |_pane%,43 . .. "|
000038a0  57 69 6d 70 45 78 74 5f  50 75 74 43 61 72 65 74  |WimpExt_PutCaret|
000038b0  49 63 6f 6e 22 2c 2c 2c  70 72 65 66 5f 70 61 6e  |Icon",,,pref_pan|
000038c0  65 25 2c 33 39 0d 0f 82  3c 20 20 c9 20 28 77 25  |e%,39...<  . (w%|
000038d0  3d 62 6f 6f 6b 25 20 84  20 77 25 3d 73 65 61 72  |=book% . w%=sear|
000038e0  63 68 25 29 20 80 20 28  6b 25 3d 33 38 37 20 84  |ch%) . (k%=387 .|
000038f0  20 6b 25 3d 34 30 33 20  84 20 6b 25 3d 34 31 39  | k%=403 . k%=419|
00003900  29 0d 0f 8c 0f 20 20 20  20 c8 8e 20 6b 25 20 ca  |)....    .. k% .|
00003910  0d 0f 96 2f 20 20 20 20  20 20 c9 20 33 38 37 3a  |.../      . 387:|
00003920  f2 6f 70 65 6e 5f 73 61  76 65 28 73 61 76 65 5f  |.open_save(save_|
00003930  61 73 25 2c 67 6f 6f 64  5f 62 6f 6f 6b 24 29 0d  |as%,good_book$).|
00003940  0f a0 c3 20 20 20 20 20  20 c9 20 34 30 33 3a e7  |...      . 403:.|
00003950  20 73 65 61 72 63 68 65  64 25 20 f2 6f 70 65 6e  | searched% .open|
00003960  5f 73 61 76 65 28 73 61  76 65 5f 61 73 31 25 2c  |_save(save_as1%,|
00003970  67 6f 6f 64 5f 73 65 61  72 63 68 24 29 20 8b 20  |good_search$) . |
00003980  72 65 71 25 3d 30 3a c8  99 20 22 57 69 6d 70 45  |req%=0:.. "WimpE|
00003990  78 74 5f 4f 70 65 6e 52  65 71 75 65 73 74 65 72  |xt_OpenRequester|
000039a0  22 2c 2c 2c 22 52 65 6d  69 6e 64 65 72 20 66 72  |",,,"Reminder fr|
000039b0  6f 6d 20 54 65 6c 41 64  64 72 22 2c 22 59 6f 75  |om TelAddr","You|
000039c0  20 63 61 6e 6e 6f 74 20  73 61 76 65 20 74 68 65  | cannot save the|
000039d0  20 73 65 61 72 63 68 20  72 65 73 75 6c 74 73 20  | search results |
000039e0  75 6e 74 69 6c 20 79 6f  75 20 70 65 72 66 6f 72  |until you perfor|
000039f0  6d 20 61 20 73 65 61 72  63 68 2e 22 2c 6f 6b 25  |m a search.",ok%|
00003a00  2c 30 0d 0f aa 33 20 20  20 20 20 20 c9 20 34 31  |,0...3      . 41|
00003a10  39 3a f2 6f 70 65 6e 5f  73 61 76 65 28 73 61 76  |9:.open_save(sav|
00003a20  65 5f 61 73 32 25 2c 67  6f 6f 64 5f 61 64 64 72  |e_as2%,good_addr|
00003a30  65 73 73 24 29 0d 0f b4  09 20 20 20 20 cb 0d 0f  |ess$)....    ...|
00003a40  be 05 7f 0d 0f c8 1d 20  20 c8 99 20 22 57 69 6d  |.......  .. "Wim|
00003a50  70 5f 50 72 6f 63 65 73  73 4b 65 79 22 2c 6b 25  |p_ProcessKey",k%|
00003a60  0d 0f d2 05 cb 0d 0f dc  05 e1 0d 0f e6 05 3a 0d  |..............:.|
00003a70  0f f0 27 dd f2 73 6f 72  74 6f 75 74 5f 70 61 72  |..'..sortout_par|
00003a80  74 69 61 6c 28 74 79 70  65 25 2c 77 25 2c 69 31  |tial(type%,w%,i1|
00003a90  25 2c 69 32 25 29 0d 0f  fa 25 70 31 25 3d a4 76  |%,i2%)...%p1%=.v|
00003aa0  61 6c 28 77 25 2c 69 31  25 29 3a 70 32 25 3d a4  |al(w%,i1%):p2%=.|
00003ab0  76 61 6c 28 77 25 2c 69  32 25 29 0d 10 04 11 e7  |val(w%,i2%).....|
00003ac0  20 70 31 25 3c 31 20 70  31 25 3d 31 0d 10 0e 11  | p1%<1 p1%=1....|
00003ad0  e7 20 70 32 25 3c 31 20  70 32 25 3d 31 0d 10 18  |. p2%<1 p2%=1...|
00003ae0  1b e7 20 70 31 25 3e 6d  61 78 25 2b 31 20 70 31  |.. p1%>max%+1 p1|
00003af0  25 3d 6d 61 78 25 2b 31  0d 10 22 1b e7 20 70 32  |%=max%+1..".. p2|
00003b00  25 3e 6d 61 78 25 2b 31  20 70 32 25 3d 6d 61 78  |%>max%+1 p2%=max|
00003b10  25 2b 31 0d 10 2c 0f e7  20 74 79 70 65 25 3d 30  |%+1..,.. type%=0|
00003b20  20 8c 0d 10 36 17 20 20  e7 20 70 31 25 3e 70 32  | ...6.  . p1%>p2|
00003b30  25 20 70 31 25 3d 70 32  25 0d 10 40 17 20 20 e7  |% p1%=p2%..@.  .|
00003b40  20 70 32 25 3c 70 31 25  20 70 32 25 3d 70 31 25  | p2%<p1% p2%=p1%|
00003b50  0d 10 4a 05 cc 0d 10 54  17 20 20 e7 20 70 32 25  |..J....T.  . p2%|
00003b60  3c 70 31 25 20 70 32 25  3d 70 31 25 0d 10 5e 17  |<p1% p2%=p1%..^.|
00003b70  20 20 e7 20 70 31 25 3e  70 32 25 20 70 31 25 3d  |  . p1%>p2% p1%=|
00003b80  70 32 25 0d 10 68 05 cd  0d 10 72 2b c8 99 20 22  |p2%..h....r+.. "|
00003b90  57 69 6d 70 45 78 74 5f  53 65 74 4e 75 6d 62 65  |WimpExt_SetNumbe|
00003ba0  72 49 63 6f 6e 22 2c 2c  2c 77 25 2c 69 31 25 2c  |rIcon",,,w%,i1%,|
00003bb0  70 31 25 0d 10 7c 2b c8  99 20 22 57 69 6d 70 45  |p1%..|+.. "WimpE|
00003bc0  78 74 5f 53 65 74 4e 75  6d 62 65 72 49 63 6f 6e  |xt_SetNumberIcon|
00003bd0  22 2c 2c 2c 77 25 2c 69  32 25 2c 70 32 25 0d 10  |",,,w%,i2%,p2%..|
00003be0  86 05 e1 0d 10 90 05 3a  0d 10 9a 12 dd f2 6d 65  |.......:......me|
00003bf0  6e 75 5f 77 61 72 6e 69  6e 67 0d 10 a4 24 6d 77  |nu_warning...$mw|
00003c00  31 25 3d 62 25 21 32 30  3a 6d 77 32 25 3d 62 25  |1%=b%!20:mw2%=b%|
00003c10  21 32 34 3a 6d 77 33 25  3d 62 25 21 32 38 0d 10  |!24:mw3%=b%!28..|
00003c20  ae 0c c8 8e 20 6f 6d 25  20 ca 0d 10 b8 16 20 20  |.... om% .....  |
00003c30  c9 20 6d 31 25 3a c8 8e  20 62 25 21 33 32 20 ca  |. m1%:.. b%!32 .|
00003c40  0d 10 c2 19 20 20 20 20  c9 20 32 3a f2 70 72 65  |....    . 2:.pre|
00003c50  70 61 72 65 5f 62 6f 6f  6b 0d 10 cc 07 20 20 cb  |pare_book....  .|
00003c60  0d 10 d6 16 20 20 c9 20  6d 33 25 3a c8 8e 20 62  |....  . m3%:.. b|
00003c70  25 21 33 32 20 ca 0d 10  e0 16 20 20 20 20 c9 20  |%!32 .....    . |
00003c80  30 3a c8 8e 20 62 25 21  33 36 20 ca 0d 10 ea 4b  |0:.. b%!36 ....K|
00003c90  20 20 20 20 20 20 c9 20  31 3a f2 73 74 6f 72 65  |      . 1:.store|
00003ca0  28 72 65 63 6f 72 64 25  29 3a f2 63 61 6c 63 5f  |(record%):.calc_|
00003cb0  66 69 6c 65 5f 6c 65 6e  3a e7 20 6d 6f 64 69 66  |file_len:. modif|
00003cc0  69 65 64 25 20 61 24 3d  22 59 65 73 22 20 8b 20  |ied% a$="Yes" . |
00003cd0  61 24 3d 22 4e 6f 22 0d  10 f4 38 20 20 20 20 20  |a$="No"...8     |
00003ce0  20 20 20 c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |   .. "WimpExt_S|
00003cf0  65 74 49 63 6f 6e 53 74  72 69 6e 67 22 2c 2c 2c  |etIconString",,,|
00003d00  66 69 6c 65 5f 69 6e 66  6f 25 2c 37 2c 61 24 0d  |file_info%,7,a$.|
00003d10  10 fe 09 20 20 20 20 cb  0d 11 08 16 20 20 20 20  |...    .....    |
00003d20  c9 20 31 3a c8 8e 20 62  25 21 33 36 20 ca 0d 11  |. 1:.. b%!36 ...|
00003d30  12 1b 20 20 20 20 20 20  c9 20 30 3a f2 70 72 65  |..      . 0:.pre|
00003d40  70 61 72 65 5f 62 6f 6f  6b 0d 11 1c 1d 20 20 20  |pare_book....   |
00003d50  20 20 20 c9 20 31 3a f2  70 72 65 70 61 72 65 5f  |   . 1:.prepare_|
00003d60  73 65 61 72 63 68 0d 11  26 1e 20 20 20 20 20 20  |search..&.      |
00003d70  c9 20 32 3a f2 70 72 65  70 61 72 65 5f 61 64 64  |. 2:.prepare_add|
00003d80  72 65 73 73 0d 11 30 09  20 20 20 20 cb 0d 11 3a  |ress..0.    ...:|
00003d90  16 20 20 20 20 c9 20 32  3a c8 8e 20 62 25 21 33  |.    . 2:.. b%!3|
00003da0  36 20 ca 0d 11 44 1d 20  20 20 20 20 20 c9 20 30  |6 ...D.      . 0|
00003db0  3a f2 70 72 65 70 61 72  65 5f 73 65 61 72 63 68  |:.prepare_search|
00003dc0  0d 11 4e 09 20 20 20 20  cb 0d 11 58 07 20 20 cb  |..N.    ...X.  .|
00003dd0  0d 11 62 05 cb 0d 11 6c  2b c8 99 20 22 57 69 6d  |..b....l+.. "Wim|
00003de0  70 5f 43 72 65 61 74 65  53 75 62 4d 65 6e 75 22  |p_CreateSubMenu"|
00003df0  2c 2c 6d 77 31 25 2c 6d  77 32 25 2c 6d 77 33 25  |,,mw1%,mw2%,mw3%|
00003e00  0d 11 76 05 e1 0d 11 80  05 3a 0d 11 8a 3e dd f2  |..v......:...>..|
00003e10  70 72 65 70 61 72 65 5f  62 6f 6f 6b 3a 73 61 76  |prepare_book:sav|
00003e20  65 5f 71 75 69 74 25 3d  30 3a 66 69 6c 65 6e 61  |e_quit%=0:filena|
00003e30  6d 65 25 3d a4 69 6e 5f  61 64 64 72 28 73 61 76  |me%=.in_addr(sav|
00003e40  65 5f 61 73 25 2c 30 29  0d 11 94 43 c8 99 20 22  |e_as%,0)...C.. "|
00003e50  57 69 6d 70 45 78 74 5f  53 65 74 49 63 6f 6e 53  |WimpExt_SetIconS|
00003e60  74 72 69 6e 67 22 2c 2c  2c 73 61 76 65 5f 61 73  |tring",,,save_as|
00003e70  25 2c 30 2c 67 6f 6f 64  5f 62 6f 6f 6b 24 3a 73  |%,0,good_book$:s|
00003e80  61 76 65 5f 74 79 70 65  25 3d 31 0d 11 9e 25 f2  |ave_type%=1...%.|
00003e90  73 6f 72 74 6f 75 74 5f  70 61 72 74 69 61 6c 28  |sortout_partial(|
00003ea0  30 2c 73 61 76 65 5f 61  73 25 2c 36 2c 31 30 29  |0,save_as%,6,10)|
00003eb0  0d 11 a8 05 e1 0d 11 b2  05 3a 0d 11 bc 41 dd f2  |.........:...A..|
00003ec0  70 72 65 70 61 72 65 5f  73 65 61 72 63 68 3a 73  |prepare_search:s|
00003ed0  61 76 65 5f 71 75 69 74  25 3d 30 3a 66 69 6c 65  |ave_quit%=0:file|
00003ee0  6e 61 6d 65 25 3d a4 69  6e 5f 61 64 64 72 28 73  |name%=.in_addr(s|
00003ef0  61 76 65 5f 61 73 31 25  2c 30 29 0d 11 c6 46 c8  |ave_as1%,0)...F.|
00003f00  99 20 22 57 69 6d 70 45  78 74 5f 53 65 74 49 63  |. "WimpExt_SetIc|
00003f10  6f 6e 53 74 72 69 6e 67  22 2c 2c 2c 73 61 76 65  |onString",,,save|
00003f20  5f 61 73 31 25 2c 30 2c  67 6f 6f 64 5f 73 65 61  |_as1%,0,good_sea|
00003f30  72 63 68 24 3a 73 61 76  65 5f 74 79 70 65 25 3d  |rch$:save_type%=|
00003f40  32 0d 11 d0 05 e1 0d 11  da 05 3a 0d 11 e4 42 dd  |2.........:...B.|
00003f50  f2 70 72 65 70 61 72 65  5f 61 64 64 72 65 73 73  |.prepare_address|
00003f60  3a 73 61 76 65 5f 71 75  69 74 25 3d 30 3a 66 69  |:save_quit%=0:fi|
00003f70  6c 65 6e 61 6d 65 25 3d  a4 69 6e 5f 61 64 64 72  |lename%=.in_addr|
00003f80  28 73 61 76 65 5f 61 73  32 25 2c 30 29 0d 11 ee  |(save_as2%,0)...|
00003f90  47 c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |G.. "WimpExt_Set|
00003fa0  49 63 6f 6e 53 74 72 69  6e 67 22 2c 2c 2c 73 61  |IconString",,,sa|
00003fb0  76 65 5f 61 73 32 25 2c  30 2c 67 6f 6f 64 5f 61  |ve_as2%,0,good_a|
00003fc0  64 64 72 65 73 73 24 3a  73 61 76 65 5f 74 79 70  |ddress$:save_typ|
00003fd0  65 25 3d 33 0d 11 f8 05  e1 0d 12 02 05 3a 0d 12  |e%=3.........:..|
00003fe0  0c 10 dd f2 63 6c 6f 73  65 5f 64 6f 77 6e 0d 12  |....close_down..|
00003ff0  16 43 e7 20 69 6e 69 74  25 20 c8 99 20 22 57 69  |.C. init% .. "Wi|
00004000  6d 70 45 78 74 5f 43 6c  6f 73 65 44 6f 77 6e 22  |mpExt_CloseDown"|
00004010  2c 74 61 73 6b 5f 68 61  6e 64 6c 65 25 3a c8 99  |,task_handle%:..|
00004020  20 22 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  | "Wimp_CloseDown|
00004030  22 0d 12 20 05 e0 0d 12  2a 05 e1 0d 12 34 05 3a  |".. ....*....4.:|
00004040  0d 12 3e 13 dd f2 6f 70  65 6e 5f 70 6f 73 5f 70  |..>...open_pos_p|
00004050  61 6e 65 0d 12 48 0f e7  20 70 61 6e 65 5f 32 25  |ane..H.. pane_2%|
00004060  20 8c 0d 12 52 30 20 20  78 31 25 3d 62 25 21 34  | ...R0  x1%=b%!4|
00004070  3a 78 32 25 3d 78 31 25  2b 36 37 38 3a 79 31 25  |:x2%=x1%+678:y1%|
00004080  3d 62 25 21 38 2d 34 3a  79 32 25 3d 79 31 25 2d  |=b%!8-4:y2%=y1%-|
00004090  38 34 0d 12 5c 35 20 20  70 25 3d 62 25 21 32 38  |84..\5  p%=b%!28|
000040a0  3a 21 62 32 25 3d 70 6f  73 25 3a c8 99 20 22 57  |:!b2%=pos%:.. "W|
000040b0  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 49 6e 66  |imp_GetWindowInf|
000040c0  6f 22 2c 2c 62 32 25 0d  12 66 39 20 20 62 32 25  |o",,b2%..f9  b2%|
000040d0  21 34 3d 78 31 25 3a 62  32 25 21 38 3d 79 32 25  |!4=x1%:b2%!8=y2%|
000040e0  3a 62 32 25 21 31 32 3d  78 32 25 3a 62 32 25 21  |:b2%!12=x2%:b2%!|
000040f0  31 36 3d 79 31 25 3a 62  32 25 21 32 38 3d 70 25  |16=y1%:b2%!28=p%|
00004100  0d 12 70 2a 20 20 c8 99  20 22 57 69 6d 70 5f 4f  |..p*  .. "Wimp_O|
00004110  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 32 25 3a  |penWindow",,b2%:|
00004120  62 25 21 32 38 3d 70 6f  73 25 0d 12 7a 05 cd 0d  |b%!28=pos%..z...|
00004130  12 84 05 e1 0d 12 8e 05  3a 0d 12 98 3c dd f2 6f  |........:...<..o|
00004140  70 65 6e 5f 77 69 6e 64  6f 77 28 21 62 25 29 3a  |pen_window(!b%):|
00004150  c8 99 20 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |.. "Wimp_GetWind|
00004160  6f 77 53 74 61 74 65 22  2c 2c 62 25 3a 62 25 21  |owState",,b%:b%!|
00004170  32 38 3d 2d 31 0d 12 a2  23 c8 99 20 22 57 69 6d  |28=-1...#.. "Wim|
00004180  70 45 78 74 5f 43 65 6e  74 72 65 57 69 6e 64 6f  |pExt_CentreWindo|
00004190  77 22 2c 2c 62 25 2b 34  0d 12 ac 3a c8 99 20 22  |w",,b%+4...:.. "|
000041a0  57 69 6d 70 45 78 74 5f  4f 70 65 6e 4c 69 6e 6b  |WimpExt_OpenLink|
000041b0  65 64 22 2c 2c 62 25 3a  e7 20 21 62 25 3d 62 6f  |ed",,b%:. !b%=bo|
000041c0  6f 6b 25 20 f2 6f 70 65  6e 5f 70 6f 73 5f 70 61  |ok% .open_pos_pa|
000041d0  6e 65 0d 12 b6 05 e1 0d  12 c0 05 3a 0d 12 ca 2c  |ne.........:...,|
000041e0  dd f2 6f 70 65 6e 28 21  62 25 29 3a c8 99 20 22  |..open(!b%):.. "|
000041f0  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
00004200  61 74 65 22 2c 2c 62 25  0d 12 d4 3a c8 99 20 22  |ate",,b%...:.. "|
00004210  57 69 6d 70 45 78 74 5f  4f 70 65 6e 4c 69 6e 6b  |WimpExt_OpenLink|
00004220  65 64 22 2c 2c 62 25 3a  e7 20 21 62 25 3d 62 6f  |ed",,b%:. !b%=bo|
00004230  6f 6b 25 20 f2 6f 70 65  6e 5f 70 6f 73 5f 70 61  |ok% .open_pos_pa|
00004240  6e 65 0d 12 de 05 e1 0d  12 e8 05 3a 0d 12 f2 35  |ne.........:...5|
00004250  dd f2 6f 70 65 6e 5f 61  74 28 21 62 25 2c 78 25  |..open_at(!b%,x%|
00004260  2c 79 25 29 3a c8 99 20  22 57 69 6d 70 5f 47 65  |,y%):.. "Wimp_Ge|
00004270  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00004280  25 0d 12 fc 47 77 25 3d  62 25 21 31 32 2d 62 25  |%...Gw%=b%!12-b%|
00004290  21 34 3a 68 25 3d 62 25  21 31 36 2d 62 25 21 38  |!4:h%=b%!16-b%!8|
000042a0  3a 62 25 21 34 3d 78 25  3a 62 25 21 38 3d 79 25  |:b%!4=x%:b%!8=y%|
000042b0  2d 68 25 3a 62 25 21 31  32 3d 78 25 2b 77 25 3a  |-h%:b%!12=x%+w%:|
000042c0  62 25 21 31 36 3d 79 25  0d 13 06 21 c8 99 20 22  |b%!16=y%...!.. "|
000042d0  57 69 6d 70 45 78 74 5f  4f 70 65 6e 4c 69 6e 6b  |WimpExt_OpenLink|
000042e0  65 64 22 2c 2c 62 25 3a  e1 0d 13 10 05 3a 0d 13  |ed",,b%:.....:..|
000042f0  1a 34 dd f2 63 6c 6f 73  65 5f 77 69 6e 64 6f 77  |.4..close_window|
00004300  28 21 62 25 29 3a c8 99  20 22 57 69 6d 70 45 78  |(!b%):.. "WimpEx|
00004310  74 5f 43 6c 6f 73 65 4c  69 6e 6b 65 64 22 2c 2c  |t_CloseLinked",,|
00004320  62 25 0d 13 24 32 e7 20  21 62 25 3d 62 6f 6f 6b  |b%..$2. !b%=book|
00004330  25 20 21 62 25 3d 70 6f  73 25 3a c8 99 20 22 57  |% !b%=pos%:.. "W|
00004340  69 6d 70 5f 43 6c 6f 73  65 57 69 6e 64 6f 77 22  |imp_CloseWindow"|
00004350  2c 2c 62 25 0d 13 2e 1b  e7 20 21 62 25 3d 6c 69  |,,b%..... !b%=li|
00004360  73 74 25 20 73 65 61 72  63 68 65 64 25 3d 30 0d  |st% searched%=0.|
00004370  13 38 05 e1 0d 13 42 05  3a 0d 13 4c 11 dd f2 64  |.8....B.:..L...d|
00004380  65 6c 65 74 65 5f 62 6f  6f 6b 0d 13 56 3c f2 62  |elete_book..V<.b|
00004390  6c 61 6e 6b 5f 72 65 63  6f 72 64 28 30 29 3a 72  |lank_record(0):r|
000043a0  65 63 6f 72 64 25 3d 30  3a 6d 61 78 25 3d 30 3a  |ecord%=0:max%=0:|
000043b0  f2 64 69 73 70 6c 61 79  28 72 65 63 6f 72 64 25  |.display(record%|
000043c0  29 3a f2 70 6f 73 0d 13  60 27 c8 99 20 22 57 69  |):.pos..`'.. "Wi|
000043d0  6d 70 45 78 74 5f 50 75  74 43 61 72 65 74 49 63  |mpExt_PutCaretIc|
000043e0  6f 6e 22 2c 2c 2c 62 6f  6f 6b 25 2c 39 0d 13 6a  |on",,,book%,9..j|
000043f0  25 f2 63 6c 6f 73 65 5f  77 69 6e 64 6f 77 28 6c  |%.close_window(l|
00004400  69 73 74 25 29 3a f2 6d  6f 64 69 66 69 65 64 28  |ist%):.modified(|
00004410  31 29 0d 13 74 05 e1 0d  13 7e 05 3a 0d 13 88 0b  |1)..t....~.:....|
00004420  dd f2 63 6c 69 63 6b 0d  13 92 2d 78 25 3d 62 25  |..click...-x%=b%|
00004430  21 30 3a 79 25 3d 62 25  21 34 3a 63 25 3d 62 25  |!0:y%=b%!4:c%=b%|
00004440  21 38 3a 77 25 3d 62 25  21 31 32 3a 69 25 3d 62  |!8:w%=b%!12:i%=b|
00004450  25 21 31 36 0d 13 9c 24  c8 99 20 22 58 57 69 6d  |%!16...$.. "XWim|
00004460  70 45 78 74 5f 53 6c 61  62 49 63 6f 6e 22 2c 2c  |pExt_SlabIcon",,|
00004470  2c 77 25 2c 69 25 2c 30  0d 13 a6 0b c8 8e 20 77  |,w%,i%,0...... w|
00004480  25 20 ca 0d 13 b0 14 20  20 c9 20 2d 33 3a c8 8e  |% .....  . -3:..|
00004490  20 72 65 71 25 20 ca 0d  13 ba 1c 20 20 20 20 c9  | req% .....    .|
000044a0  20 2d 31 3a e7 20 69 25  3d 31 20 71 75 69 74 25  | -1:. i%=1 quit%|
000044b0  3d 2d 31 0d 13 c4 32 20  20 20 20 c9 20 30 3a f4  |=-1...2    . 0:.|
000044c0  20 27 4f 4b 27 20 63 6c  69 63 6b 20 66 72 6f 6d  | 'OK' click from|
000044d0  20 61 20 72 65 6d 69 6e  64 65 72 20 72 65 71 75  | a reminder requ|
000044e0  65 73 74 65 72 0d 13 ce  2c 20 20 20 20 c9 20 31  |ester...,    . 1|
000044f0  3a e7 20 69 25 3d 30 20  f2 64 65 6c 65 74 65 5f  |:. i%=0 .delete_|
00004500  72 65 63 6f 72 64 28 72  65 63 6f 72 64 25 2c 31  |record(record%,1|
00004510  29 0d 13 d8 1f 20 20 20  20 c9 20 32 3a e7 20 69  |)....    . 2:. i|
00004520  25 3d 30 20 f2 64 65 6c  65 74 65 5f 62 6f 6f 6b  |%=0 .delete_book|
00004530  0d 13 e2 23 20 20 20 20  c9 20 33 3a e7 20 69 25  |...#    . 3:. i%|
00004540  3d 30 20 f2 64 65 6c 65  74 65 5f 73 65 61 72 63  |=0 .delete_searc|
00004550  68 65 64 0d 13 ec 13 20  20 20 20 c9 20 34 3a c8  |hed....    . 4:.|
00004560  8e 20 69 25 20 ca 0d 13  f6 86 20 20 20 20 20 20  |. i% .....      |
00004570  c9 20 30 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  |. 0:.. "WimpExt_|
00004580  53 65 74 49 63 6f 6e 53  74 72 69 6e 67 22 2c 2c  |SetIconString",,|
00004590  2c 73 61 76 65 5f 61 73  25 2c 30 2c 67 6f 6f 64  |,save_as%,0,good|
000045a0  5f 62 6f 6f 6b 24 3a 73  61 76 65 5f 74 79 70 65  |_book$:save_type|
000045b0  25 3d 31 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  |%=1:.. "WimpExt_|
000045c0  4f 70 65 6e 44 69 61 6c  6f 67 75 65 22 2c 2c 2c  |OpenDialogue",,,|
000045d0  73 61 76 65 5f 61 73 25  2c 31 34 38 2c 37 30 3a  |save_as%,148,70:|
000045e0  73 61 76 65 5f 71 75 69  74 25 3d 31 0d 14 00 23  |save_quit%=1...#|
000045f0  20 20 20 20 20 20 c9 20  31 3a 71 75 69 74 25 3d  |      . 1:quit%=|
00004600  2d 31 3a f2 6d 6f 64 69  66 69 65 64 28 30 29 0d  |-1:.modified(0).|
00004610  14 0a 09 20 20 20 20 cb  0d 14 14 13 20 20 20 20  |...    .....    |
00004620  c9 20 35 3a c8 8e 20 69  25 20 ca 0d 14 1e 79 20  |. 5:.. i% ....y |
00004630  20 20 20 20 20 c9 20 30  3a c8 99 20 22 57 69 6d  |     . 0:.. "Wim|
00004640  70 45 78 74 5f 53 65 74  49 63 6f 6e 53 74 72 69  |pExt_SetIconStri|
00004650  6e 67 22 2c 2c 2c 73 61  76 65 5f 61 73 25 2c 30  |ng",,,save_as%,0|
00004660  2c 67 6f 6f 64 5f 62 6f  6f 6b 24 3a 73 61 76 65  |,good_book$:save|
00004670  5f 74 79 70 65 25 3d 31  3a c8 99 20 22 57 69 6d  |_type%=1:.. "Wim|
00004680  70 45 78 74 5f 4f 70 65  6e 44 69 61 6c 6f 67 75  |pExt_OpenDialogu|
00004690  65 22 2c 2c 2c 73 61 76  65 5f 61 73 25 2c 31 34  |e",,,save_as%,14|
000046a0  38 2c 37 30 0d 14 28 29  20 20 20 20 20 20 c9 20  |8,70..()      . |
000046b0  31 3a f2 6c 6f 61 64 5f  66 69 6c 65 28 6d 6f 64  |1:.load_file(mod|
000046c0  5f 66 69 6c 65 6e 61 6d  65 24 2c 30 29 0d 14 32  |_filename$,0)..2|
000046d0  09 20 20 20 20 cb 0d 14  3c 6e 20 20 20 20 c9 20  |.    ...<n    . |
000046e0  36 3a e7 20 69 25 3d 30  20 f2 62 6c 61 6e 6b 5f  |6:. i%=0 .blank_|
000046f0  72 65 63 6f 72 64 28 72  65 63 6f 72 64 25 29 3a  |record(record%):|
00004700  f2 64 69 73 70 6c 61 79  28 72 65 63 6f 72 64 25  |.display(record%|
00004710  29 3a e7 20 a4 6f 70 65  6e 28 62 6f 6f 6b 25 29  |):. .open(book%)|
00004720  20 c8 99 20 22 57 69 6d  70 45 78 74 5f 50 75 74  | .. "WimpExt_Put|
00004730  43 61 72 65 74 49 63 6f  6e 22 2c 2c 2c 62 6f 6f  |CaretIcon",,,boo|
00004740  6b 25 2c 39 0d 14 46 07  20 20 cb 0d 14 50 12 20  |k%,9..F.  ...P. |
00004750  20 c9 20 2d 32 3a c8 8e  20 63 25 20 ca 0d 14 5a  | . -2:.. c% ...Z|
00004760  43 20 20 20 20 c9 20 34  3a f2 6f 70 65 6e 5f 77  |C    . 4:.open_w|
00004770  69 6e 64 6f 77 28 62 6f  6f 6b 25 29 3a c8 99 20  |indow(book%):.. |
00004780  22 57 69 6d 70 45 78 74  5f 50 75 74 43 61 72 65  |"WimpExt_PutCare|
00004790  74 49 63 6f 6e 22 2c 2c  2c 62 6f 6f 6b 25 2c 39  |tIcon",,,book%,9|
000047a0  0d 14 64 21 20 20 20 20  c9 20 32 3a f2 6d 65 6e  |..d!    . 2:.men|
000047b0  75 28 6d 31 25 2c 78 25  2c 79 25 2c b9 2c 65 31  |u(m1%,x%,y%,.,e1|
000047c0  29 0d 14 6e 07 20 20 cb  0d 14 78 24 20 20 c9 20  |)..n.  ...x$  . |
000047d0  73 61 76 65 5f 61 73 25  2c 73 61 76 65 5f 61 73  |save_as%,save_as|
000047e0  31 25 2c 73 61 76 65 5f  61 73 32 25 0d 14 82 0c  |1%,save_as2%....|
000047f0  20 20 c8 8e 20 b9 20 ca  0d 14 8c 42 20 20 20 20  |  .. . ....B    |
00004800  c9 20 69 25 3d 31 20 80  20 28 63 25 20 80 20 26  |. i%=1 . (c% . &|
00004810  35 30 29 3e 30 3a c8 99  20 22 57 69 6d 70 45 78  |50)>0:.. "WimpEx|
00004820  74 5f 47 65 74 49 63 6f  6e 22 2c 2c 2c 77 25 2c  |t_GetIcon",,,w%,|
00004830  33 20 b8 20 61 73 63 69  69 25 0d 14 96 27 20 20  |3 . ascii%...'  |
00004840  20 20 e7 20 61 73 63 69  69 25 20 66 74 25 3d 26  |  . ascii% ft%=&|
00004850  46 46 46 20 8b 20 66 74  25 3d 74 65 6c 5f 66 74  |FFF . ft%=tel_ft|
00004860  25 0d 14 a0 3c 20 20 20  20 c8 99 20 22 57 69 6d  |%...<    .. "Wim|
00004870  70 45 78 74 5f 44 72 61  67 49 63 6f 6e 22 2c 25  |pExt_DragIcon",%|
00004880  31 30 30 30 30 31 30 31  2c 31 2c 77 25 2c 31 2c  |10000101,1,w%,1,|
00004890  22 66 69 6c 65 5f 22 2b  c3 7e 66 74 25 0d 14 aa  |"file_"+.~ft%...|
000048a0  27 20 20 20 20 c9 20 69  25 3d 32 20 80 20 28 63  |'    . i%=2 . (c|
000048b0  25 20 80 20 35 29 3e 30  3a f2 71 75 69 63 6b 5f  |% . 5)>0:.quick_|
000048c0  73 61 76 65 0d 14 b4 48  20 20 20 20 c9 20 69 25  |save...H    . i%|
000048d0  3d 33 20 80 20 28 63 25  3d 34 20 84 20 63 25 3d  |=3 . (c%=4 . c%=|
000048e0  31 29 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |1):.. "WimpExt_S|
000048f0  65 74 49 63 6f 6e 22 2c  2c 2c 77 25 2c 31 2c a4  |etIcon",,,w%,1,.|
00004900  6f 6e 28 77 25 2c 31 29  20 82 20 31 0d 14 be 07  |on(w%,1) . 1....|
00004910  20 20 cb 0d 14 c8 0d 20  20 c8 8e 20 77 25 20 ca  |  .....  .. w% .|
00004920  0d 14 d2 1b 20 20 20 20  c9 20 73 61 76 65 5f 61  |....    . save_a|
00004930  73 32 25 3a c8 8e 20 69  25 20 ca 0d 14 dc 19 20  |s2%:.. i% ..... |
00004940  20 20 20 20 20 c9 20 33  3a f2 73 61 76 65 32 5f  |     . 3:.save2_|
00004950  73 69 7a 65 0d 14 e6 09  20 20 20 20 cb 0d 14 f0  |size....    ....|
00004960  1a 20 20 20 20 c9 20 73  61 76 65 5f 61 73 25 3a  |.    . save_as%:|
00004970  c8 8e 20 69 25 20 ca 0d  14 fa 18 20 20 20 20 20  |.. i% .....     |
00004980  20 c9 20 34 3a f2 73 61  76 65 5f 73 69 7a 65 0d  | . 4:.save_size.|
00004990  15 04 39 20 20 20 20 20  20 c9 20 37 3a c8 99 20  |..9      . 7:.. |
000049a0  22 57 69 6d 70 45 78 74  5f 44 65 63 4e 75 6d 62  |"WimpExt_DecNumb|
000049b0  65 72 49 63 6f 6e 22 2c  2c 2c 73 61 76 65 5f 61  |erIcon",,,save_a|
000049c0  73 25 2c 36 2c 31 2c 31  0d 15 0e 49 20 20 20 20  |s%,6,1,1...I    |
000049d0  20 20 c9 20 38 3a c8 99  20 22 57 69 6d 70 45 78  |  . 8:.. "WimpEx|
000049e0  74 5f 49 6e 63 4e 75 6d  62 65 72 49 63 6f 6e 22  |t_IncNumberIcon"|
000049f0  2c 2c 2c 73 61 76 65 5f  61 73 25 2c 36 2c a4 76  |,,,save_as%,6,.v|
00004a00  61 6c 28 73 61 76 65 5f  61 73 25 2c 31 30 29 2c  |al(save_as%,10),|
00004a10  31 0d 15 18 4a 20 20 20  20 20 20 c9 20 31 31 3a  |1...J      . 11:|
00004a20  c8 99 20 22 57 69 6d 70  45 78 74 5f 44 65 63 4e  |.. "WimpExt_DecN|
00004a30  75 6d 62 65 72 49 63 6f  6e 22 2c 2c 2c 73 61 76  |umberIcon",,,sav|
00004a40  65 5f 61 73 25 2c 31 30  2c a4 76 61 6c 28 73 61  |e_as%,10,.val(sa|
00004a50  76 65 5f 61 73 25 2c 36  29 2c 31 0d 15 22 40 20  |ve_as%,6),1.."@ |
00004a60  20 20 20 20 20 c9 20 31  32 3a c8 99 20 22 57 69  |     . 12:.. "Wi|
00004a70  6d 70 45 78 74 5f 49 6e  63 4e 75 6d 62 65 72 49  |mpExt_IncNumberI|
00004a80  63 6f 6e 22 2c 2c 2c 73  61 76 65 5f 61 73 25 2c  |con",,,save_as%,|
00004a90  31 30 2c 6d 61 78 25 2b  31 2c 31 0d 15 2c 09 20  |10,max%+1,1..,. |
00004aa0  20 20 20 cb 0d 15 36 07  20 20 cb 0d 15 40 0e 20  |   ...6.  ...@. |
00004ab0  20 c9 20 74 6f 6f 6c 73  25 0d 15 4a 0d 20 20 c8  | . tools%..J.  .|
00004ac0  8e 20 69 25 20 ca 0d 15  54 5c 20 20 20 20 c9 20  |. i% ...T\    . |
00004ad0  30 3a f2 63 6c 6f 73 65  5f 77 69 6e 64 6f 77 28  |0:.close_window(|
00004ae0  6c 69 73 74 25 29 3a f2  6f 70 65 6e 5f 77 69 6e  |list%):.open_win|
00004af0  64 6f 77 28 73 65 61 72  63 68 25 29 3a c8 99 20  |dow(search%):.. |
00004b00  22 57 69 6d 70 45 78 74  5f 50 75 74 43 61 72 65  |"WimpExt_PutCare|
00004b10  74 49 63 6f 6e 22 2c 2c  2c 73 65 61 72 63 68 25  |tIcon",,,search%|
00004b20  2c 36 0d 15 5e 11 20 20  20 20 c9 20 31 3a f2 73  |,6..^.    . 1:.s|
00004b30  6f 72 74 0d 15 68 2b 20  20 20 20 c9 20 32 3a f2  |ort..h+    . 2:.|
00004b40  69 6e 73 65 72 74 5f 72  65 63 6f 72 64 28 72 65  |insert_record(re|
00004b50  63 6f 72 64 25 2c 70 66  5f 61 64 64 25 29 0d 15  |cord%,pf_add%)..|
00004b60  72 a5 20 20 20 20 c9 20  33 3a e7 20 a4 62 69 74  |r.    . 3:. .bit|
00004b70  28 70 66 5f 63 6f 6e 66  69 72 6d 25 2c 31 29 20  |(pf_confirm%,1) |
00004b80  8c 20 72 65 71 25 3d 31  3a c8 99 20 22 57 69 6d  |. req%=1:.. "Wim|
00004b90  70 45 78 74 5f 4f 70 65  6e 52 65 71 75 65 73 74  |pExt_OpenRequest|
00004ba0  65 72 22 2c 2c 2c 22 51  75 65 72 79 20 66 72 6f  |er",,,"Query fro|
00004bb0  6d 20 54 65 6c 41 64 64  72 22 2c 22 44 65 6c 65  |m TelAddr","Dele|
00004bc0  74 65 20 72 65 63 6f 72  64 2c 20 61 72 65 20 79  |te record, are y|
00004bd0  6f 75 20 73 75 72 65 20  3f 22 2c 6f 6b 5f 63 61  |ou sure ?",ok_ca|
00004be0  6e 63 65 6c 25 2c 31 20  8b 20 f2 64 65 6c 65 74  |ncel%,1 . .delet|
00004bf0  65 5f 72 65 63 6f 72 64  28 72 65 63 6f 72 64 25  |e_record(record%|
00004c00  2c 31 29 0d 15 7c 07 20  20 cb 0d 15 86 0c 20 20  |,1)..|.  .....  |
00004c10  c9 20 70 6f 73 25 0d 15  90 0d 20 20 c8 8e 20 69  |. pos%....  .. i|
00004c20  25 20 ca 0d 15 9a 14 20  20 20 20 c9 20 30 3a f2  |% .....    . 0:.|
00004c30  73 68 6f 77 28 30 29 0d  15 a4 39 20 20 c9 20 31  |show(0)...9  . 1|
00004c40  3a f5 3a 72 65 63 6f 72  64 25 2d 3d 31 3a fd 20  |:.:record%-=1:. |
00004c50  28 28 72 65 63 6f 72 64  25 2b 31 29 83 35 29 3d  |((record%+1).5)=|
00004c60  30 3a f2 73 68 6f 77 28  72 65 63 6f 72 64 25 29  |0:.show(record%)|
00004c70  0d 15 ae 1c 20 20 20 20  c9 20 32 3a f2 73 68 6f  |....    . 2:.sho|
00004c80  77 28 72 65 63 6f 72 64  25 2d 31 29 0d 15 b8 1c  |w(record%-1)....|
00004c90  20 20 20 20 c9 20 33 3a  f2 73 68 6f 77 28 72 65  |    . 3:.show(re|
00004ca0  63 6f 72 64 25 2b 31 29  0d 15 c2 39 20 20 c9 20  |cord%+1)...9  . |
00004cb0  34 3a f5 3a 72 65 63 6f  72 64 25 2b 3d 31 3a fd  |4:.:record%+=1:.|
00004cc0  20 28 28 72 65 63 6f 72  64 25 2b 31 29 83 35 29  | ((record%+1).5)|
00004cd0  3d 30 3a f2 73 68 6f 77  28 72 65 63 6f 72 64 25  |=0:.show(record%|
00004ce0  29 0d 15 cc 17 20 20 20  20 c9 20 35 3a f2 73 68  |)....    . 5:.sh|
00004cf0  6f 77 28 6d 61 78 25 29  0d 15 d6 2d 20 20 20 20  |ow(max%)...-    |
00004d00  c9 20 37 3a 24 67 6f 74  6f 25 3d 22 22 3a f2 6d  |. 7:$goto%="":.m|
00004d10  65 6e 75 5f 6f 70 74 28  70 6f 73 25 2c 37 2c 73  |enu_opt(pos%,7,s|
00004d20  31 25 2c 31 29 0d 15 e0  07 20 20 cb 0d 15 ea 2a  |1%,1)....  ....*|
00004d30  20 20 c9 20 62 6f 6f 6b  25 3a e7 20 63 25 3d 32  |  . book%:. c%=2|
00004d40  20 f2 6d 65 6e 75 28 6d  33 25 2c 78 25 2c 79 25  | .menu(m3%,x%,y%|
00004d50  2c a3 2c 65 33 29 0d 15  f4 0f 20 20 c9 20 73 65  |,.,e3)....  . se|
00004d60  61 72 63 68 25 0d 15 fe  0d 20 20 c8 8e 20 69 25  |arch%....  .. i%|
00004d70  20 ca 0d 16 08 23 20 20  20 20 c9 20 31 38 3a f2  | ....#    . 18:.|
00004d80  63 6c 6f 73 65 5f 77 69  6e 64 6f 77 28 73 65 61  |close_window(sea|
00004d90  72 63 68 25 29 0d 16 12  14 20 20 20 20 c9 20 31  |rch%)....    . 1|
00004da0  37 3a f2 73 65 61 72 63  68 0d 16 1c 07 20 20 cb  |7:.search....  .|
00004db0  0d 16 26 0d 20 20 c9 20  6c 69 73 74 25 0d 16 30  |..&.  . list%..0|
00004dc0  0d 20 20 c8 8e 20 69 25  20 ca 0d 16 3a 20 20 20  |.  .. i% ...:   |
00004dd0  20 20 c9 20 31 3a f2 63  6c 6f 73 65 5f 77 69 6e  |  . 1:.close_win|
00004de0  64 6f 77 28 6c 69 73 74  25 29 0d 16 44 5c 20 20  |dow(list%)..D\  |
00004df0  20 20 c9 20 32 3a f2 63  6c 6f 73 65 5f 77 69 6e  |  . 2:.close_win|
00004e00  64 6f 77 28 6c 69 73 74  25 29 3a f2 6f 70 65 6e  |dow(list%):.open|
00004e10  5f 77 69 6e 64 6f 77 28  73 65 61 72 63 68 25 29  |_window(search%)|
00004e20  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 50 75 74  |:.. "WimpExt_Put|
00004e30  43 61 72 65 74 49 63 6f  6e 22 2c 2c 2c 73 65 61  |CaretIcon",,,sea|
00004e40  72 63 68 25 2c 36 0d 16  4e cc 20 20 20 20 c9 20  |rch%,6..N.    . |
00004e50  33 3a e7 20 a4 62 69 74  28 70 66 5f 63 6f 6e 66  |3:. .bit(pf_conf|
00004e60  69 72 6d 25 2c 32 29 20  8c 20 72 65 71 25 3d 33  |irm%,2) . req%=3|
00004e70  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 4f 70 65  |:.. "WimpExt_Ope|
00004e80  6e 52 65 71 75 65 73 74  65 72 22 2c 2c 2c 22 51  |nRequester",,,"Q|
00004e90  75 65 72 79 20 66 72 6f  6d 20 54 65 6c 41 64 64  |uery from TelAdd|
00004ea0  72 22 2c 22 41 72 65 20  79 6f 75 20 73 75 72 65  |r","Are you sure|
00004eb0  20 74 68 61 74 20 79 6f  75 20 77 61 6e 74 20 74  | that you want t|
00004ec0  6f 20 64 65 6c 65 74 65  20 61 6c 6c 20 72 65 63  |o delete all rec|
00004ed0  6f 72 64 73 20 6d 61 74  63 68 65 64 20 62 79 20  |ords matched by |
00004ee0  74 68 65 20 6c 61 73 74  20 73 65 61 72 63 68 20  |the last search |
00004ef0  3f 22 2c 6f 6b 5f 63 61  6e 63 65 6c 25 2c 31 20  |?",ok_cancel%,1 |
00004f00  8b 20 f2 64 65 6c 65 74  65 5f 73 65 61 72 63 68  |. .delete_search|
00004f10  65 64 0d 16 58 2e 20 20  20 20 c9 20 34 3a f2 6f  |ed..X.    . 4:.o|
00004f20  70 65 6e 5f 73 61 76 65  28 73 61 76 65 5f 61 73  |pen_save(save_as|
00004f30  31 25 2c 67 6f 6f 64 5f  73 65 61 72 63 68 24 29  |1%,good_search$)|
00004f40  0d 16 62 28 20 20 20 20  c9 20 35 3a f2 63 6c 6f  |..b(    . 5:.clo|
00004f50  73 65 5f 77 69 6e 64 6f  77 28 6c 69 73 74 25 29  |se_window(list%)|
00004f60  3a f2 73 65 61 72 63 68  0d 16 6c 07 20 20 cb 0d  |:.search..l.  ..|
00004f70  16 76 12 20 20 c9 20 6c  69 73 74 5f 70 61 6e 65  |.v.  . list_pane|
00004f80  25 0d 16 80 0d 20 20 c8  8e 20 63 25 20 ca 0d 16  |%....  .. c% ...|
00004f90  8a 21 20 20 20 20 c9 20  32 3a f2 6d 65 6e 75 28  |.!    . 2:.menu(|
00004fa0  6d 33 25 2c 78 25 2c 79  25 2c a3 2c 65 33 29 0d  |m3%,x%,y%,.,e3).|
00004fb0  16 94 07 20 20 7f 0d 16  9e 17 20 20 20 20 f2 73  |...  .....    .s|
00004fc0  74 6f 72 65 28 72 65 63  6f 72 64 25 29 0d 16 a8  |tore(record%)...|
00004fd0  43 20 20 20 20 21 62 25  3d 6c 69 73 74 5f 70 61  |C    !b%=list_pa|
00004fe0  6e 65 25 3a c8 99 20 22  57 69 6d 70 5f 47 65 74  |ne%:.. "Wimp_Get|
00004ff0  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 2c 62 25  |WindowState",,b%|
00005000  3a 79 25 2d 3d 62 25 21  31 36 2d 62 25 21 32 34  |:y%-=b%!16-b%!24|
00005010  0d 16 b2 3a 20 20 20 20  6f 6c 64 5f 73 65 61 72  |...:    old_sear|
00005020  63 68 5f 73 65 6c 25 3d  73 65 61 72 63 68 5f 73  |ch_sel%=search_s|
00005030  65 6c 25 3a 73 65 61 72  63 68 5f 73 65 6c 25 3d  |el%:search_sel%=|
00005040  94 28 79 25 20 81 20 34  38 29 0d 16 bc 39 20 20  |.(y% . 48)...9  |
00005050  20 20 e7 20 73 65 61 72  63 68 5f 73 65 6c 25 3e  |  . search_sel%>|
00005060  73 65 61 72 63 68 5f 6c  65 6e 25 20 73 65 61 72  |search_len% sear|
00005070  63 68 5f 73 65 6c 25 3d  73 65 61 72 63 68 5f 6c  |ch_sel%=search_l|
00005080  65 6e 25 0d 16 c6 51 20  20 20 20 c8 99 20 22 57  |en%...Q    .. "W|
00005090  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 49 6e 66  |imp_GetWindowInf|
000050a0  6f 22 2c 2c 62 25 3a 62  25 21 34 3d 62 25 21 34  |o",,b%:b%!4=b%!4|
000050b0  34 3a 62 25 21 38 3d 62  25 21 34 38 3a 62 25 21  |4:b%!8=b%!48:b%!|
000050c0  31 32 3d 62 25 21 35 32  3a 62 25 21 31 36 3d 62  |12=b%!52:b%!16=b|
000050d0  25 21 35 36 0d 16 d0 2a  20 20 20 20 c8 99 20 22  |%!56...*    .. "|
000050e0  57 69 6d 70 5f 55 70 64  61 74 65 57 69 6e 64 6f  |Wimp_UpdateWindo|
000050f0  77 22 2c 2c 62 25 20 b8  20 66 6c 61 67 25 0d 16  |w",,b% . flag%..|
00005100  da 13 20 20 20 20 f2 67  65 74 5f 63 6f 6f 72 64  |..    .get_coord|
00005110  73 0d 16 e4 10 20 20 20  20 c8 95 20 66 6c 61 67  |s....    .. flag|
00005120  25 0d 16 ee 16 20 20 20  20 20 20 f2 72 65 64 72  |%....      .redr|
00005130  61 77 5f 6c 69 73 74 0d  16 f8 2c 20 20 20 20 20  |aw_list...,     |
00005140  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 52 65 63  | .. "Wimp_GetRec|
00005150  74 61 6e 67 6c 65 22 2c  2c 62 25 20 b8 20 66 6c  |tangle",,b% . fl|
00005160  61 67 25 0d 17 02 09 20  20 20 20 ce 0d 17 0c 27  |ag%....    ....'|
00005170  20 20 20 20 72 65 63 6f  72 64 25 3d 74 61 62 6c  |    record%=tabl|
00005180  65 25 21 28 73 65 61 72  63 68 5f 73 65 6c 25 2a  |e%!(search_sel%*|
00005190  31 32 29 0d 17 16 23 20  20 20 20 e7 20 72 65 63  |12)...#    . rec|
000051a0  6f 72 64 25 3e 6d 61 78  25 20 72 65 63 6f 72 64  |ord%>max% record|
000051b0  25 3d 6d 61 78 25 0d 17  20 6a 20 20 20 20 f2 64  |%=max%.. j    .d|
000051c0  69 73 70 6c 61 79 28 72  65 63 6f 72 64 25 29 3a  |isplay(record%):|
000051d0  e7 20 a4 6f 70 65 6e 28  62 6f 6f 6b 25 29 20 c8  |. .open(book%) .|
000051e0  99 20 22 57 69 6d 70 45  78 74 5f 50 75 74 43 61  |. "WimpExt_PutCa|
000051f0  72 65 74 49 63 6f 6e 22  2c 2c 2c 62 6f 6f 6b 25  |retIcon",,,book%|
00005200  2c 28 74 61 62 6c 65 25  21 28 28 73 65 61 72 63  |,(table%!((searc|
00005210  68 5f 73 65 6c 25 2a 31  32 29 2b 34 29 29 2b 39  |h_sel%*12)+4))+9|
00005220  0d 17 2a 19 20 20 20 20  f2 70 6f 73 3a 64 69 66  |..*.    .pos:dif|
00005230  66 65 72 65 6e 74 25 3d  30 0d 17 34 07 20 20 cb  |ferent%=0..4.  .|
00005240  0d 17 3e 15 20 20 c9 20  70 72 65 66 25 3a c8 8e  |..>.  . pref%:..|
00005250  20 69 25 20 ca 0d 17 48  2a 20 20 20 20 c9 20 31  | i% ...H*    . 1|
00005260  3a f2 6f 6b 5f 70 72 65  66 73 3a f2 63 6c 6f 73  |:.ok_prefs:.clos|
00005270  65 5f 77 69 6e 64 6f 77  28 70 72 65 66 25 29 0d  |e_window(pref%).|
00005280  17 52 2e 20 20 20 20 c9  20 32 3a f2 63 6c 6f 73  |.R.    . 2:.clos|
00005290  65 5f 77 69 6e 64 6f 77  28 70 72 65 66 25 29 3a  |e_window(pref%):|
000052a0  f2 63 61 6e 63 65 6c 5f  70 72 65 66 73 0d 17 5c  |.cancel_prefs..\|
000052b0  1a 20 20 20 20 c9 20 33  3a f2 64 65 66 61 75 6c  |.    . 3:.defaul|
000052c0  74 5f 70 72 65 66 73 0d  17 66 36 20 20 20 20 c9  |t_prefs..f6    .|
000052d0  20 34 3a f2 73 61 76 65  5f 70 72 65 66 73 3a f2  | 4:.save_prefs:.|
000052e0  6f 6b 5f 70 72 65 66 73  3a f2 63 6c 6f 73 65 5f  |ok_prefs:.close_|
000052f0  77 69 6e 64 6f 77 28 70  72 65 66 25 29 0d 17 70  |window(pref%)..p|
00005300  1a 20 20 20 20 c9 20 35  3a f2 6c 6f 61 64 5f 70  |.    . 5:.load_p|
00005310  72 65 66 73 28 30 29 0d  17 7a 07 20 20 cb 0d 17  |refs(0)..z.  ...|
00005320  84 1a 20 20 c9 20 70 72  65 66 5f 70 61 6e 65 25  |..  . pref_pane%|
00005330  3a c8 8e 20 69 25 20 ca  0d 17 8e 27 20 20 20 20  |:.. i% ....'    |
00005340  c9 20 33 37 3a 6f 6e 25  3d a4 6f 6e 28 70 72 65  |. 37:on%=.on(pre|
00005350  66 5f 70 61 6e 65 25 2c  33 37 29 20 82 20 31 0d  |f_pane%,37) . 1.|
00005360  17 98 16 20 20 20 20 20  20 e3 20 49 25 3d 33 39  |...      . I%=39|
00005370  20 b8 20 34 35 0d 17 a2  3f 20 20 20 20 20 20 20  | . 45...?       |
00005380  20 e7 20 49 25 3c 3e 34  32 20 c8 99 20 22 57 69  | . I%<>42 .. "Wi|
00005390  6d 70 45 78 74 5f 53 68  61 64 65 49 63 6f 6e 22  |mpExt_ShadeIcon"|
000053a0  2c 2c 2c 70 72 65 66 5f  70 61 6e 65 25 2c 49 25  |,,,pref_pane%,I%|
000053b0  2c 6f 6e 25 0d 17 ac 0b  20 20 20 20 20 20 ed 0d  |,on%....      ..|
000053c0  17 b6 3b 20 20 20 20 c9  20 34 30 3a c8 99 20 22  |..;    . 40:.. "|
000053d0  57 69 6d 70 45 78 74 5f  44 65 63 4e 75 6d 62 65  |WimpExt_DecNumbe|
000053e0  72 49 63 6f 6e 22 2c 2c  2c 70 72 65 66 5f 70 61  |rIcon",,,pref_pa|
000053f0  6e 65 25 2c 33 39 2c 31  2c 31 0d 17 c0 4d 20 20  |ne%,39,1,1...M  |
00005400  20 20 c9 20 34 31 3a c8  99 20 22 57 69 6d 70 45  |  . 41:.. "WimpE|
00005410  78 74 5f 49 6e 63 4e 75  6d 62 65 72 49 63 6f 6e  |xt_IncNumberIcon|
00005420  22 2c 2c 2c 70 72 65 66  5f 70 61 6e 65 25 2c 33  |",,,pref_pane%,3|
00005430  39 2c a4 76 61 6c 28 70  72 65 66 5f 70 61 6e 65  |9,.val(pref_pane|
00005440  25 2c 34 33 29 2c 31 0d  17 ca 4d 20 20 20 20 c9  |%,43),1...M    .|
00005450  20 34 34 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  | 44:.. "WimpExt_|
00005460  44 65 63 4e 75 6d 62 65  72 49 63 6f 6e 22 2c 2c  |DecNumberIcon",,|
00005470  2c 70 72 65 66 5f 70 61  6e 65 25 2c 34 33 2c a4  |,pref_pane%,43,.|
00005480  76 61 6c 28 70 72 65 66  5f 70 61 6e 65 25 2c 33  |val(pref_pane%,3|
00005490  39 29 2c 31 0d 17 d4 40  20 20 20 20 c9 20 34 35  |9),1...@    . 45|
000054a0  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 49 6e 63  |:.. "WimpExt_Inc|
000054b0  4e 75 6d 62 65 72 49 63  6f 6e 22 2c 2c 2c 70 72  |NumberIcon",,,pr|
000054c0  65 66 5f 70 61 6e 65 25  2c 34 33 2c 6d 61 78 25  |ef_pane%,43,max%|
000054d0  2b 31 2c 31 0d 17 de 6f  20 20 20 20 c9 20 35 32  |+1,1...o    . 52|
000054e0  2c 35 33 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  |,53:.. "WimpExt_|
000054f0  53 68 61 64 65 49 63 6f  6e 22 2c 2c 2c 70 72 65  |ShadeIcon",,,pre|
00005500  66 5f 70 61 6e 65 25 2c  35 34 2c 94 28 69 25 3d  |f_pane%,54,.(i%=|
00005510  35 32 29 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  |52):.. "WimpExt_|
00005520  53 68 61 64 65 49 63 6f  6e 22 2c 2c 2c 70 72 65  |ShadeIcon",,,pre|
00005530  66 5f 70 61 6e 65 25 2c  37 34 2c 94 28 69 25 3d  |f_pane%,74,.(i%=|
00005540  35 32 29 0d 17 e8 59 20  20 20 20 c9 20 35 37 3a  |52)...Y    . 57:|
00005550  e3 20 49 25 3d 35 38 20  b8 20 35 39 3a c8 99 20  |. I%=58 . 59:.. |
00005560  22 57 69 6d 70 45 78 74  5f 53 68 61 64 65 49 63  |"WimpExt_ShadeIc|
00005570  6f 6e 22 2c 2c 2c 70 72  65 66 5f 70 61 6e 65 25  |on",,,pref_pane%|
00005580  2c 49 25 2c a4 6f 6e 28  70 72 65 66 5f 70 61 6e  |,I%,.on(pref_pan|
00005590  65 25 2c 35 37 29 20 82  20 31 3a ed 0d 17 f2 62  |e%,57) . 1:....b|
000055a0  20 20 20 20 c9 20 35 39  3a 4a 25 3d a4 62 67 5f  |    . 59:J%=.bg_|
000055b0  63 6f 6c 28 70 72 65 66  5f 70 61 6e 65 25 2c 35  |col(pref_pane%,5|
000055c0  38 29 3a e3 20 49 25 3d  30 20 b8 20 31 35 3a c8  |8):. I%=0 . 15:.|
000055d0  99 20 22 57 69 6d 70 45  78 74 5f 54 69 63 6b 45  |. "WimpExt_TickE|
000055e0  6e 74 72 79 22 2c 2c 63  6f 6c 5f 6d 65 6e 75 25  |ntry",,col_menu%|
000055f0  2c 49 25 2c 94 28 49 25  3d 4a 25 29 3a ed 0d 17  |,I%,.(I%=J%):...|
00005600  fc 2f 20 20 20 20 20 20  f2 6d 65 6e 75 5f 6f 70  |./      .menu_op|
00005610  74 28 70 72 65 66 5f 70  61 6e 65 25 2c 35 39 2c  |t(pref_pane%,59,|
00005620  63 6f 6c 5f 6d 65 6e 75  25 2c 31 36 29 0d 18 06  |col_menu%,16)...|
00005630  59 20 20 20 20 c9 20 36  33 3a e3 20 49 25 3d 36  |Y    . 63:. I%=6|
00005640  34 20 b8 20 36 35 3a c8  99 20 22 57 69 6d 70 45  |4 . 65:.. "WimpE|
00005650  78 74 5f 53 68 61 64 65  49 63 6f 6e 22 2c 2c 2c  |xt_ShadeIcon",,,|
00005660  70 72 65 66 5f 70 61 6e  65 25 2c 49 25 2c a4 6f  |pref_pane%,I%,.o|
00005670  6e 28 70 72 65 66 5f 70  61 6e 65 25 2c 36 33 29  |n(pref_pane%,63)|
00005680  20 82 20 31 3a ed 0d 18  10 4a 20 20 20 20 c9 20  | . 1:....J    . |
00005690  37 32 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |72:.. "WimpExt_S|
000056a0  68 61 64 65 49 63 6f 6e  22 2c 2c 2c 70 72 65 66  |hadeIcon",,,pref|
000056b0  5f 70 61 6e 65 25 2c 37  33 2c a4 6f 6e 28 70 72  |_pane%,73,.on(pr|
000056c0  65 66 5f 70 61 6e 65 25  2c 37 32 29 20 82 20 31  |ef_pane%,72) . 1|
000056d0  0d 18 1a 07 20 20 cb 0d  18 24 05 cb 0d 18 2e 05  |....  ...$......|
000056e0  e1 0d 18 38 05 3a 0d 18  42 27 dd f2 73 61 76 65  |...8.:..B'..save|
000056f0  32 5f 73 69 7a 65 3a 6f  70 65 6e 25 3d a4 6f 70  |2_size:open%=.op|
00005700  65 6e 28 73 61 76 65 5f  61 73 32 25 29 0d 18 4c  |en(save_as2%)..L|
00005710  2c e7 20 a4 6f 6e 28 73  61 76 65 5f 61 73 32 25  |,. .on(save_as2%|
00005720  2c 33 29 20 8c 20 77 79  25 3d 2d 33 39 36 20 8b  |,3) . wy%=-396 .|
00005730  20 77 79 25 3d 2d 32 37  36 0d 18 56 2d 21 62 25  | wy%=-276..V-!b%|
00005740  3d 73 61 76 65 5f 61 73  32 25 3a c8 99 20 22 57  |=save_as2%:.. "W|
00005750  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 49 6e 66  |imp_GetWindowInf|
00005760  6f 22 2c 2c 62 25 0d 18  60 33 e7 20 6f 70 65 6e  |o",,b%..`3. open|
00005770  25 20 62 25 21 38 3d 62  25 21 31 36 2b 77 79 25  |% b%!8=b%!16+wy%|
00005780  3a c8 99 20 22 57 69 6d  70 5f 4f 70 65 6e 57 69  |:.. "Wimp_OpenWi|
00005790  6e 64 6f 77 22 2c 2c 62  25 0d 18 6a 05 e1 0d 18  |ndow",,b%..j....|
000057a0  74 05 3a 0d 18 7e 25 dd  f2 73 61 76 65 5f 73 69  |t.:..~%..save_si|
000057b0  7a 65 3a 6f 70 65 6e 25  3d a4 6f 70 65 6e 28 73  |ze:open%=.open(s|
000057c0  61 76 65 5f 61 73 25 29  0d 18 88 2b e7 20 a4 6f  |ave_as%)...+. .o|
000057d0  6e 28 73 61 76 65 5f 61  73 25 2c 34 29 20 8c 20  |n(save_as%,4) . |
000057e0  77 79 25 3d 2d 34 38 38  20 8b 20 77 79 25 3d 2d  |wy%=-488 . wy%=-|
000057f0  33 33 32 0d 18 92 2c 21  62 25 3d 73 61 76 65 5f  |332...,!b%=save_|
00005800  61 73 25 3a c8 99 20 22  57 69 6d 70 5f 47 65 74  |as%:.. "Wimp_Get|
00005810  57 69 6e 64 6f 77 49 6e  66 6f 22 2c 2c 62 25 0d  |WindowInfo",,b%.|
00005820  18 9c 33 e7 20 6f 70 65  6e 25 20 62 25 21 38 3d  |..3. open% b%!8=|
00005830  62 25 21 31 36 2b 77 79  25 3a c8 99 20 22 57 69  |b%!16+wy%:.. "Wi|
00005840  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00005850  62 25 0d 18 a6 05 e1 0d  18 b0 05 3a 0d 18 ba 16  |b%.........:....|
00005860  dd f2 6f 70 65 6e 5f 73  61 76 65 28 77 25 2c 73  |..open_save(w%,s|
00005870  24 29 0d 18 c4 1c 66 69  6c 65 6e 61 6d 65 25 3d  |$)....filename%=|
00005880  a4 69 6e 5f 61 64 64 72  28 77 25 2c 30 29 0d 18  |.in_addr(w%,0)..|
00005890  ce 28 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |.(.. "WimpExt_Se|
000058a0  74 49 63 6f 6e 53 74 72  69 6e 67 22 2c 2c 2c 77  |tIconString",,,w|
000058b0  25 2c 30 2c 73 24 0d 18  d8 0b c8 8e 20 77 25 20  |%,0,s$...... w% |
000058c0  ca 0d 18 e2 1d 20 20 c9  20 73 61 76 65 5f 61 73  |.....  . save_as|
000058d0  25 3a 73 61 76 65 5f 74  79 70 65 25 3d 31 0d 18  |%:save_type%=1..|
000058e0  ec 1e 20 20 c9 20 73 61  76 65 5f 61 73 31 25 3a  |..  . save_as1%:|
000058f0  73 61 76 65 5f 74 79 70  65 25 3d 32 0d 18 f6 1e  |save_type%=2....|
00005900  20 20 c9 20 73 61 76 65  5f 61 73 32 25 3a 73 61  |  . save_as2%:sa|
00005910  76 65 5f 74 79 70 65 25  3d 33 0d 19 00 05 cb 0d  |ve_type%=3......|
00005920  19 0a 10 73 61 76 65 5f  71 75 69 74 25 3d 30 0d  |...save_quit%=0.|
00005930  19 14 13 f2 73 74 6f 72  65 28 72 65 63 6f 72 64  |....store(record|
00005940  25 29 0d 19 1e 29 c8 99  20 22 57 69 6d 70 45 78  |%)...).. "WimpEx|
00005950  74 5f 4f 70 65 6e 44 69  61 6c 6f 67 75 65 22 2c  |t_OpenDialogue",|
00005960  2c 2c 77 25 2c 31 35 36  2c 37 30 0d 19 28 05 e1  |,,w%,156,70..(..|
00005970  0d 19 32 05 3a 0d 19 3c  1a dd f2 6d 65 6e 75 5f  |..2.:..<...menu_|
00005980  6f 70 74 28 77 25 2c 69  25 2c 6d 25 2c 65 29 0d  |opt(w%,i%,m%,e).|
00005990  19 46 27 21 62 25 3d 77  25 3a c8 99 20 22 57 69  |.F'!b%=w%:.. "Wi|
000059a0  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
000059b0  65 22 2c 2c 62 25 0d 19  50 35 6d 69 6e 78 25 3d  |e",,b%..P5minx%=|
000059c0  62 25 21 34 2d 62 25 21  32 30 3a 6d 69 6e 79 25  |b%!4-b%!20:miny%|
000059d0  3d 62 25 21 31 36 2d 62  25 21 32 34 3a 21 62 25  |=b%!16-b%!24:!b%|
000059e0  3d 77 25 3a 62 25 21 34  3d 69 25 0d 19 5a 43 c8  |=w%:b%!4=i%..ZC.|
000059f0  99 20 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |. "Wimp_GetIconS|
00005a00  74 61 74 65 22 2c 2c 62  25 3a 78 25 3d 6d 69 6e  |tate",,b%:x%=min|
00005a10  78 25 2b 62 25 21 31 36  3a 79 25 3d 6d 69 6e 79  |x%+b%!16:y%=miny|
00005a20  25 2b 62 25 21 31 32 2b  28 31 33 2a 34 29 0d 19  |%+b%!12+(13*4)..|
00005a30  64 22 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |d".. "Wimp_Creat|
00005a40  65 4d 65 6e 75 22 2c 2c  6d 25 2c 78 25 2c 79 25  |eMenu",,m%,x%,y%|
00005a50  0d 19 6e 11 6f 6d 25 3d  6d 25 3a 6f 65 3d 65 3a  |..n.om%=m%:oe=e:|
00005a60  e1 0d 19 78 05 3a 0d 19  82 1a dd f2 6d 65 6e 75  |...x.:......menu|
00005a70  28 6d 25 2c 78 25 2c 79  25 2c 69 62 25 2c 65 29  |(m%,x%,y%,ib%,e)|
00005a80  0d 19 8c 13 f2 73 74 6f  72 65 28 72 65 63 6f 72  |.....store(recor|
00005a90  64 25 29 0d 19 96 30 c8  99 20 22 57 69 6d 70 45  |d%)...0.. "WimpE|
00005aa0  78 74 5f 53 68 61 64 65  45 6e 74 72 79 22 2c 2c  |xt_ShadeEntry",,|
00005ab0  6d 32 25 2c 31 2c 73 65  61 72 63 68 65 64 25 20  |m2%,1,searched% |
00005ac0  82 20 31 0d 19 a0 30 c8  99 20 22 57 69 6d 70 45  |. 1...0.. "WimpE|
00005ad0  78 74 5f 53 68 61 64 65  45 6e 74 72 79 22 2c 2c  |xt_ShadeEntry",,|
00005ae0  6d 36 25 2c 30 2c 73 65  61 72 63 68 65 64 25 20  |m6%,0,searched% |
00005af0  82 20 31 0d 19 aa 30 c8  99 20 22 57 69 6d 70 45  |. 1...0.. "WimpE|
00005b00  78 74 5f 53 68 61 64 65  45 6e 74 72 79 22 2c 2c  |xt_ShadeEntry",,|
00005b10  6d 36 25 2c 32 2c 73 65  61 72 63 68 65 64 25 20  |m6%,2,searched% |
00005b20  82 20 31 0d 19 b4 29 c8  99 20 22 57 69 6d 70 45  |. 1...).. "WimpE|
00005b30  78 74 5f 54 69 63 6b 45  6e 74 72 79 22 2c 2c 6d  |xt_TickEntry",,m|
00005b40  38 25 2c 30 2c 70 61 6e  65 5f 31 25 0d 19 be 29  |8%,0,pane_1%...)|
00005b50  c8 99 20 22 57 69 6d 70  45 78 74 5f 54 69 63 6b  |.. "WimpExt_Tick|
00005b60  45 6e 74 72 79 22 2c 2c  6d 38 25 2c 31 2c 70 61  |Entry",,m8%,1,pa|
00005b70  6e 65 5f 32 25 0d 19 c8  39 c8 99 20 22 57 69 6d  |ne_2%...9.. "Wim|
00005b80  70 45 78 74 5f 53 65 74  49 63 6f 6e 53 74 72 69  |pExt_SetIconStri|
00005b90  6e 67 4e 22 2c 2c 2c 66  69 6c 65 5f 69 6e 66 6f  |ngN",,,file_info|
00005ba0  25 2c 31 2c 67 6f 6f 64  5f 62 6f 6f 6b 24 0d 19  |%,1,good_book$..|
00005bb0  d2 34 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |.4.. "WimpExt_Se|
00005bc0  74 4e 75 6d 62 65 72 49  63 6f 6e 22 2c 2c 2c 66  |tNumberIcon",,,f|
00005bd0  69 6c 65 5f 69 6e 66 6f  25 2c 33 2c 6d 61 78 25  |ile_info%,3,max%|
00005be0  2b 31 0d 19 dc 59 4a 25  3d a4 62 67 5f 63 6f 6c  |+1...YJ%=.bg_col|
00005bf0  28 70 72 65 66 5f 70 61  6e 65 25 2c 35 38 29 3a  |(pref_pane%,58):|
00005c00  e3 20 49 25 3d 30 20 b8  20 31 35 3a c8 99 20 22  |. I%=0 . 15:.. "|
00005c10  57 69 6d 70 45 78 74 5f  54 69 63 6b 45 6e 74 72  |WimpExt_TickEntr|
00005c20  79 22 2c 2c 63 6f 6c 5f  6d 65 6e 75 25 2c 49 25  |y",,col_menu%,I%|
00005c30  2c 94 28 49 25 3d 4a 25  29 3a ed 0d 19 e6 3d e7  |,.(I%=J%):....=.|
00005c40  20 69 62 25 20 79 32 25  3d 39 36 2b 65 2a 34 34  | ib% y2%=96+e*44|
00005c50  3a 78 32 25 3d 78 25 2d  36 34 20 8b 20 79 32 25  |:x2%=x%-64 . y2%|
00005c60  3d 79 25 3a 78 32 25 3d  78 25 2d 33 32 2d 28 31  |=y%:x2%=x%-32-(1|
00005c70  36 2a 6f 70 74 58 25 29  0d 19 f0 24 c8 99 20 22  |6*optX%)...$.. "|
00005c80  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00005c90  2c 2c 6d 25 2c 78 32 25  2c 79 32 25 0d 19 fa 11  |,,m%,x2%,y2%....|
00005ca0  6f 6d 25 3d 6d 25 3a 6f  65 3d 65 3a e1 0d 1a 04  |om%=m%:oe=e:....|
00005cb0  05 3a 0d 1a 0e 13 dd f2  63 61 6c 63 5f 66 69 6c  |.:......calc_fil|
00005cc0  65 5f 6c 65 6e 0d 1a 18  12 6c 65 6e 25 3d a4 66  |e_len....len%=.f|
00005cd0  69 6c 65 5f 6c 65 6e 0d  1a 22 3e e7 20 6c 65 6e  |ile_len..">. len|
00005ce0  25 3e 3d 34 30 39 36 20  6c 65 6e 24 3d c3 28 6c  |%>=4096 len$=.(l|
00005cf0  65 6e 25 20 81 20 31 30  32 34 29 2b 22 6b 22 20  |en% . 1024)+"k" |
00005d00  8b 20 6c 65 6e 24 3d c3  6c 65 6e 25 2b 22 20 62  |. len$=.len%+" b|
00005d10  79 74 65 73 22 0d 1a 2c  32 c8 99 20 22 57 69 6d  |ytes"..,2.. "Wim|
00005d20  70 45 78 74 5f 53 65 74  49 63 6f 6e 53 74 72 69  |pExt_SetIconStri|
00005d30  6e 67 22 2c 2c 2c 66 69  6c 65 5f 69 6e 66 6f 25  |ng",,,file_info%|
00005d40  2c 35 2c 6c 65 6e 24 0d  1a 36 05 e1 0d 1a 40 05  |,5,len$..6....@.|
00005d50  3a 0d 1a 4a 0e dd a4 66  69 6c 65 5f 6c 65 6e 0d  |:..J...file_len.|
00005d60  1a 54 2e 41 25 3d 74 61  62 25 3a 42 25 3d 28 6d  |.T.A%=tab%:B%=(m|
00005d70  61 78 25 2b 31 29 2a 31  31 3a 6c 65 6e 25 3d ba  |ax%+1)*11:len%=.|
00005d80  28 66 69 6c 65 5f 6c 65  6e 67 74 68 29 0d 1a 5e  |(file_length)..^|
00005d90  1d 6c 65 6e 25 2b 3d 31  34 2b a9 c3 28 6d 61 78  |.len%+=14+..(max|
00005da0  25 2b 31 29 3a 3d 6c 65  6e 25 0d 1a 68 05 3a 0d  |%+1):=len%..h.:.|
00005db0  1a 72 10 dd f2 6d 65 6e  75 73 65 6c 65 63 74 0d  |.r...menuselect.|
00005dc0  1a 7c 0c c8 8e 20 6f 6d  25 20 ca 0d 1a 86 14 20  |.|... om% ..... |
00005dd0  20 c9 20 6d 31 25 3a c8  8e 20 21 62 25 20 ca 0d  | . m1%:.. !b% ..|
00005de0  1a 90 47 20 20 20 20 c9  20 31 3a f2 72 65 6d 65  |..G    . 1:.reme|
00005df0  6d 62 65 72 5f 70 72 65  66 73 3a f2 73 63 72 6f  |mber_prefs:.scro|
00005e00  6c 6c 5f 74 6f 70 28 70  72 65 66 5f 70 61 6e 65  |ll_top(pref_pane|
00005e10  25 29 3a f2 6f 70 65 6e  5f 77 69 6e 64 6f 77 28  |%):.open_window(|
00005e20  70 72 65 66 25 29 0d 1a  9a 25 20 20 20 20 c9 20  |pref%)...%    . |
00005e30  32 3a f2 70 72 65 70 61  72 65 5f 62 6f 6f 6b 3a  |2:.prepare_book:|
00005e40  f2 71 75 69 63 6b 5f 73  61 76 65 0d 1a a4 11 20  |.quick_save.... |
00005e50  20 20 20 c9 20 33 3a f2  71 75 69 74 0d 1a ae 07  |   . 3:.quit....|
00005e60  20 20 cb 0d 1a b8 14 20  20 c9 20 73 31 25 3a c8  |  .....  . s1%:.|
00005e70  8e 20 21 62 25 20 ca 0d  1a c2 1e 20 20 20 20 c9  |. !b% .....    .|
00005e80  20 30 3a f2 73 68 6f 77  28 bb 28 24 67 6f 74 6f  | 0:.show(.($goto|
00005e90  25 29 2d 31 29 0d 1a cc  07 20 20 cb 0d 1a d6 14  |%)-1)....  .....|
00005ea0  20 20 c9 20 6d 33 25 3a  c8 8e 20 21 62 25 20 ca  |  . m3%:.. !b% .|
00005eb0  0d 1a e0 15 20 20 20 20  c9 20 31 3a c8 8e 20 62  |....    . 1:.. b|
00005ec0  25 21 34 20 ca 0d 1a ea  2a 20 20 20 20 20 20 c9  |%!4 ....*      .|
00005ed0  20 2d 31 2c 30 3a f2 70  72 65 70 61 72 65 5f 62  | -1,0:.prepare_b|
00005ee0  6f 6f 6b 3a f2 71 75 69  63 6b 5f 73 61 76 65 0d  |ook:.quick_save.|
00005ef0  1a f4 29 20 20 20 20 20  20 c9 20 31 3a f2 70 72  |..)      . 1:.pr|
00005f00  65 70 61 72 65 5f 73 65  61 72 63 68 3a f2 71 75  |epare_search:.qu|
00005f10  69 63 6b 5f 73 61 76 65  0d 1a fe 2a 20 20 20 20  |ick_save...*    |
00005f20  20 20 c9 20 32 3a f2 70  72 65 70 61 72 65 5f 61  |  . 2:.prepare_a|
00005f30  64 64 72 65 73 73 3a f2  71 75 69 63 6b 5f 73 61  |ddress:.quick_sa|
00005f40  76 65 0d 1b 08 09 20 20  20 20 cb 0d 1b 12 15 20  |ve....    ..... |
00005f50  20 20 20 c9 20 32 3a c8  8e 20 62 25 21 34 20 ca  |   . 2:.. b%!4 .|
00005f60  0d 1b 1c 29 20 20 20 20  20 20 c9 20 30 3a f2 70  |...)      . 0:.p|
00005f70  72 65 70 61 72 65 5f 73  65 61 72 63 68 3a f2 71  |repare_search:.q|
00005f80  75 69 63 6b 5f 73 61 76  65 0d 1b 26 5e 20 20 20  |uick_save..&^   |
00005f90  20 20 20 c9 20 31 3a f2  63 6c 6f 73 65 5f 77 69  |   . 1:.close_wi|
00005fa0  6e 64 6f 77 28 6c 69 73  74 25 29 3a f2 6f 70 65  |ndow(list%):.ope|
00005fb0  6e 5f 77 69 6e 64 6f 77  28 73 65 61 72 63 68 25  |n_window(search%|
00005fc0  29 3a c8 99 20 22 57 69  6d 70 45 78 74 5f 50 75  |):.. "WimpExt_Pu|
00005fd0  74 43 61 72 65 74 49 63  6f 6e 22 2c 2c 2c 73 65  |tCaretIcon",,,se|
00005fe0  61 72 63 68 25 2c 36 0d  1b 30 cc 20 20 20 20 20  |arch%,6..0.     |
00005ff0  20 c9 20 32 3a e7 20 a4  62 69 74 28 70 66 5f 63  | . 2:. .bit(pf_c|
00006000  6f 6e 66 69 72 6d 25 2c  32 29 20 8c 20 72 65 71  |onfirm%,2) . req|
00006010  25 3d 33 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  |%=3:.. "WimpExt_|
00006020  4f 70 65 6e 52 65 71 75  65 73 74 65 72 22 2c 2c  |OpenRequester",,|
00006030  2c 22 51 75 65 72 79 20  66 72 6f 6d 20 54 65 6c  |,"Query from Tel|
00006040  41 64 64 72 22 2c 22 41  72 65 20 79 6f 75 20 73  |Addr","Are you s|
00006050  75 72 65 20 74 68 61 74  20 79 6f 75 20 77 61 6e  |ure that you wan|
00006060  74 20 74 6f 20 64 65 6c  65 74 65 20 61 6c 6c 20  |t to delete all |
00006070  72 65 63 6f 72 64 73 20  6d 61 74 63 68 65 64 20  |records matched |
00006080  62 79 20 74 68 65 20 6c  61 73 74 20 73 65 61 72  |by the last sear|
00006090  63 68 20 3f 22 2c 6f 6b  5f 63 61 6e 63 65 6c 25  |ch ?",ok_cancel%|
000060a0  2c 31 20 8b 20 f2 64 65  6c 65 74 65 5f 73 65 61  |,1 . .delete_sea|
000060b0  72 63 68 0d 1b 3a 09 20  20 20 20 cb 0d 1b 44 15  |rch..:.    ...D.|
000060c0  20 20 20 20 c9 20 33 3a  c8 8e 20 62 25 21 34 20  |    . 3:.. b%!4 |
000060d0  ca 0d 1b 4e 27 20 20 20  20 20 20 c9 20 30 3a f2  |...N'      . 0:.|
000060e0  69 6e 73 65 72 74 5f 72  65 63 6f 72 64 28 72 65  |insert_record(re|
000060f0  63 6f 72 64 25 2c 30 29  0d 1b 58 27 20 20 20 20  |cord%,0)..X'    |
00006100  20 20 c9 20 31 3a f2 69  6e 73 65 72 74 5f 72 65  |  . 1:.insert_re|
00006110  63 6f 72 64 28 72 65 63  6f 72 64 25 2c 31 29 0d  |cord(record%,1).|
00006120  1b 62 a7 20 20 20 20 20  20 c9 20 32 3a e7 20 a4  |.b.      . 2:. .|
00006130  62 69 74 28 70 66 5f 63  6f 6e 66 69 72 6d 25 2c  |bit(pf_confirm%,|
00006140  31 29 20 8c 20 72 65 71  25 3d 31 3a c8 99 20 22  |1) . req%=1:.. "|
00006150  57 69 6d 70 45 78 74 5f  4f 70 65 6e 52 65 71 75  |WimpExt_OpenRequ|
00006160  65 73 74 65 72 22 2c 2c  2c 22 51 75 65 72 79 20  |ester",,,"Query |
00006170  66 72 6f 6d 20 54 65 6c  41 64 64 72 22 2c 22 44  |from TelAddr","D|
00006180  65 6c 65 74 65 20 72 65  63 6f 72 64 2c 20 61 72  |elete record, ar|
00006190  65 20 79 6f 75 20 73 75  72 65 20 3f 22 2c 6f 6b  |e you sure ?",ok|
000061a0  5f 63 61 6e 63 65 6c 25  2c 31 20 8b 20 f2 64 65  |_cancel%,1 . .de|
000061b0  6c 65 74 65 5f 72 65 63  6f 72 64 28 72 65 63 6f  |lete_record(reco|
000061c0  72 64 25 2c 31 29 0d 1b  6c e8 20 20 20 20 20 20  |rd%,1)..l.      |
000061d0  c9 20 33 3a e7 20 a4 62  69 74 28 70 66 5f 63 6f  |. 3:. .bit(pf_co|
000061e0  6e 66 69 72 6d 25 2c 30  29 20 8c 20 72 65 71 25  |nfirm%,0) . req%|
000061f0  3d 36 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 4f  |=6:.. "WimpExt_O|
00006200  70 65 6e 52 65 71 75 65  73 74 65 72 22 2c 2c 2c  |penRequester",,,|
00006210  22 51 75 65 72 79 20 66  72 6f 6d 20 54 65 6c 41  |"Query from TelA|
00006220  64 64 72 22 2c 22 43 6c  65 61 72 20 72 65 63 6f  |ddr","Clear reco|
00006230  72 64 2c 20 61 72 65 20  79 6f 75 20 73 75 72 65  |rd, are you sure|
00006240  20 3f 22 2c 6f 6b 5f 63  61 6e 63 65 6c 25 2c 31  | ?",ok_cancel%,1|
00006250  20 8b 20 f2 62 6c 61 6e  6b 5f 72 65 63 6f 72 64  | . .blank_record|
00006260  28 72 65 63 6f 72 64 25  29 3a f2 64 69 73 70 6c  |(record%):.displ|
00006270  61 79 28 72 65 63 6f 72  64 25 29 3a e7 20 a4 6f  |ay(record%):. .o|
00006280  70 65 6e 28 62 6f 6f 6b  25 29 20 c8 99 20 22 57  |pen(book%) .. "W|
00006290  69 6d 70 45 78 74 5f 50  75 74 43 61 72 65 74 49  |impExt_PutCaretI|
000062a0  63 6f 6e 22 2c 2c 2c 62  6f 6f 6b 25 2c 39 0d 1b  |con",,,book%,9..|
000062b0  76 ba 20 20 20 20 20 20  c9 20 34 3a e7 20 a4 62  |v.      . 4:. .b|
000062c0  69 74 28 70 66 5f 63 6f  6e 66 69 72 6d 25 2c 33  |it(pf_confirm%,3|
000062d0  29 20 8c 20 72 65 71 25  3d 32 3a c8 99 20 22 57  |) . req%=2:.. "W|
000062e0  69 6d 70 45 78 74 5f 4f  70 65 6e 52 65 71 75 65  |impExt_OpenReque|
000062f0  73 74 65 72 22 2c 2c 2c  22 51 75 65 72 79 20 66  |ster",,,"Query f|
00006300  72 6f 6d 20 54 65 6c 41  64 64 72 22 2c 22 41 72  |rom TelAddr","Ar|
00006310  65 20 79 6f 75 20 73 75  72 65 20 74 68 61 74 20  |e you sure that |
00006320  79 6f 75 20 77 61 6e 74  20 74 6f 20 64 65 6c 65  |you want to dele|
00006330  74 65 20 74 68 65 20 77  68 6f 6c 65 20 61 64 64  |te the whole add|
00006340  72 65 73 73 20 62 6f 6f  6b 20 3f 22 2c 6f 6b 5f  |ress book ?",ok_|
00006350  63 61 6e 63 65 6c 25 2c  31 20 8b 20 f2 64 65 6c  |cancel%,1 . .del|
00006360  65 74 65 5f 62 6f 6f 6b  0d 1b 80 09 20 20 20 20  |ete_book....    |
00006370  cb 0d 1b 8a 15 20 20 20  20 c9 20 34 3a c8 8e 20  |.....    . 4:.. |
00006380  62 25 21 34 20 ca 0d 1b  94 21 20 20 20 20 20 20  |b%!4 ....!      |
00006390  c9 20 30 3a 70 61 6e 65  5f 31 25 3d 70 61 6e 65  |. 0:pane_1%=pane|
000063a0  5f 31 25 20 82 20 31 0d  1b 9e 84 20 20 20 20 20  |_1% . 1....     |
000063b0  20 20 20 e7 20 70 61 6e  65 5f 31 25 20 c8 99 20  |   . pane_1% .. |
000063c0  22 57 69 6d 70 45 78 74  5f 55 6e 48 69 64 65 4c  |"WimpExt_UnHideL|
000063d0  69 6e 6b 22 2c 62 6f 6f  6b 25 2c 2c 74 6f 6f 6c  |ink",book%,,tool|
000063e0  73 25 3a f2 6f 70 65 6e  28 62 6f 6f 6b 25 29 20  |s%:.open(book%) |
000063f0  8b 20 c8 99 20 22 57 69  6d 70 45 78 74 5f 48 69  |. .. "WimpExt_Hi|
00006400  64 65 4c 69 6e 6b 22 2c  62 6f 6f 6b 25 2c 2c 74  |deLink",book%,,t|
00006410  6f 6f 6c 73 25 3a f2 63  6c 6f 73 65 5f 77 69 6e  |ools%:.close_win|
00006420  64 6f 77 28 74 6f 6f 6c  73 25 29 0d 1b a8 38 20  |dow(tools%)...8 |
00006430  20 20 20 20 20 20 20 c8  99 20 22 57 69 6d 70 45  |       .. "WimpE|
00006440  78 74 5f 53 65 74 49 63  6f 6e 22 2c 2c 2c 70 72  |xt_SetIcon",,,pr|
00006450  65 66 5f 70 61 6e 65 25  2c 36 38 2c 70 61 6e 65  |ef_pane%,68,pane|
00006460  5f 31 25 0d 1b b2 21 20  20 20 20 20 20 c9 20 31  |_1%...!      . 1|
00006470  3a 70 61 6e 65 5f 32 25  3d 70 61 6e 65 5f 32 25  |:pane_2%=pane_2%|
00006480  20 82 20 31 0d 1b bc 38  20 20 20 20 20 20 20 20  | . 1...8        |
00006490  e7 20 70 61 6e 65 5f 32  25 20 f2 6f 70 65 6e 28  |. pane_2% .open(|
000064a0  62 6f 6f 6b 25 29 20 8b  20 f2 63 6c 6f 73 65 5f  |book%) . .close_|
000064b0  77 69 6e 64 6f 77 28 70  6f 73 25 29 0d 1b c6 38  |window(pos%)...8|
000064c0  20 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |        .. "Wimp|
000064d0  45 78 74 5f 53 65 74 49  63 6f 6e 22 2c 2c 2c 70  |Ext_SetIcon",,,p|
000064e0  72 65 66 5f 70 61 6e 65  25 2c 36 39 2c 70 61 6e  |ref_pane%,69,pan|
000064f0  65 5f 32 25 0d 1b d0 09  20 20 20 20 cb 0d 1b da  |e_2%....    ....|
00006500  07 20 20 cb 0d 1b e4 43  20 20 c9 20 63 6f 6c 5f  |.  ....C  . col_|
00006510  6d 65 6e 75 25 3a c8 99  20 22 57 69 6d 70 45 78  |menu%:.. "WimpEx|
00006520  74 5f 53 65 74 49 63 6f  6e 43 6f 6c 6f 75 72 22  |t_SetIconColour"|
00006530  2c 2c 2c 70 72 65 66 5f  70 61 6e 65 25 2c 35 38  |,,,pref_pane%,58|
00006540  2c 2d 31 2c 21 62 25 0d  1b ee 05 cb 0d 1b f8 0f  |,-1,!b%.........|
00006550  e7 20 ac 20 71 75 69 74  25 20 8c 0d 1c 02 45 20  |. . quit% ....E |
00006560  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 50 6f 69  | .. "Wimp_GetPoi|
00006570  6e 74 65 72 49 6e 66 6f  22 2c 2c 62 25 3a e7 20  |nterInfo",,b%:. |
00006580  62 25 21 38 3d 31 20 8c  20 f2 6d 65 6e 75 28 6f  |b%!8=1 . .menu(o|
00006590  6d 25 2c 78 25 2c 79 25  2c 69 62 25 2c 6f 65 29  |m%,x%,y%,ib%,oe)|
000065a0  0d 1c 0c 05 cd 0d 1c 16  05 e1 0d 1c 20 05 3a 0d  |............ .:.|
000065b0  1c 2a 13 dd f2 71 75 69  74 3a 71 75 69 74 25 3d  |.*...quit:quit%=|
000065c0  2d 31 0d 1c 34 98 e7 20  6d 6f 64 69 66 69 65 64  |-1..4.. modified|
000065d0  25 20 8c 20 72 65 71 25  3d 34 3a 71 75 69 74 25  |% . req%=4:quit%|
000065e0  3d 30 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 4f  |=0:.. "WimpExt_O|
000065f0  70 65 6e 52 65 71 75 65  73 74 65 72 22 2c 2c 2c  |penRequester",,,|
00006600  22 51 75 65 72 79 20 66  72 6f 6d 20 54 65 6c 41  |"Query from TelA|
00006610  64 64 72 22 2c 22 54 68  65 20 63 75 72 72 65 6e  |ddr","The curren|
00006620  74 20 61 64 64 72 65 73  73 20 62 6f 6f 6b 20 68  |t address book h|
00006630  61 73 20 6e 6f 74 20 62  65 65 6e 20 73 61 76 65  |as not been save|
00006640  64 2e 22 2c 73 61 76 65  5f 64 69 73 63 61 72 64  |d.",save_discard|
00006650  5f 63 61 6e 63 65 6c 25  2c 32 0d 1c 3e 05 e1 0d  |_cancel%,2..>...|
00006660  1c 48 05 3a 0d 1c 52 39  dd a4 6f 6e 28 77 25 2c  |.H.:..R9..on(w%,|
00006670  69 25 29 3a 21 62 25 3d  77 25 3a 62 25 21 34 3d  |i%):!b%=w%:b%!4=|
00006680  69 25 3a c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |i%:.. "Wimp_GetI|
00006690  63 6f 6e 53 74 61 74 65  22 2c 2c 62 25 0d 1c 5c  |conState",,b%..\|
000066a0  1f e7 20 28 62 25 21 32  34 20 80 20 31 3c 3c 32  |.. (b%!24 . 1<<2|
000066b0  31 29 3e 30 20 3d 31 20  8b 20 3d 30 0d 1c 66 05  |1)>0 =1 . =0..f.|
000066c0  3a 0d 1c 70 3d dd a4 62  67 5f 63 6f 6c 28 77 25  |:..p=..bg_col(w%|
000066d0  2c 69 25 29 3a 21 62 25  3d 77 25 3a 62 25 21 34  |,i%):!b%=w%:b%!4|
000066e0  3d 69 25 3a c8 99 20 22  57 69 6d 70 5f 47 65 74  |=i%:.. "Wimp_Get|
000066f0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 25 0d 1c  |IconState",,b%..|
00006700  7a 1d 3d 28 62 25 21 32  34 20 80 20 25 31 31 31  |z.=(b%!24 . %111|
00006710  31 3c 3c 32 38 29 3e 3e  3e 32 38 0d 1c 84 05 3a  |1<<28)>>>28....:|
00006720  0d 1c 8e 29 dd f2 72 61  64 69 6f 28 77 25 2c 69  |...)..radio(w%,i|
00006730  31 25 2c 69 32 25 2c 69  25 29 3a e3 20 49 25 3d  |1%,i2%,i%):. I%=|
00006740  69 31 25 20 b8 20 69 32  25 0d 1c 98 2d c8 99 20  |i1% . i2%...-.. |
00006750  22 57 69 6d 70 45 78 74  5f 53 65 74 49 63 6f 6e  |"WimpExt_SetIcon|
00006760  22 2c 2c 2c 77 25 2c 49  25 2c 94 28 49 25 3d 69  |",,,w%,I%,.(I%=i|
00006770  25 29 3a ed 3a e1 0d 1c  a2 05 3a 0d 1c ac 2a dd  |%):.:.....:...*.|
00006780  a4 77 68 69 63 68 28 77  25 2c 69 31 25 2c 69 32  |.which(w%,i1%,i2|
00006790  25 29 3a 69 25 3d 2d 31  3a e3 49 3d 69 31 25 20  |%):i%=-1:.I=i1% |
000067a0  b8 20 69 32 25 0d 1c b6  16 e7 20 a4 6f 6e 28 77  |. i2%..... .on(w|
000067b0  25 2c 49 29 3d 31 20 69  25 3d 49 0d 1c c0 09 ed  |%,I)=1 i%=I.....|
000067c0  3a 3d 69 25 0d 1c ca 05  3a 0d 1c d4 65 dd a4 65  |:=i%....:...e..e|
000067d0  72 72 6f 72 28 61 24 29  3a 24 62 25 3d 22 20 20  |rror(a$):$b%="  |
000067e0  20 20 22 2b 61 24 2b bd  30 3a c8 99 20 22 57 69  |  "+a$+.0:.. "Wi|
000067f0  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 22 2c  |mp_ReportError",|
00006800  62 25 2c 25 31 31 2c 6e  61 6d 65 32 24 20 b8 20  |b%,%11,name2$ . |
00006810  2c 72 65 73 75 6c 74 25  3a e7 20 72 65 73 75 6c  |,result%:. resul|
00006820  74 25 3d 31 20 8c 20 3d  31 20 8b 20 3d 30 0d 1c  |t%=1 . =1 . =0..|
00006830  de 05 3a 0d 1c e8 45 dd  f2 65 72 72 6f 72 28 61  |..:...E..error(a|
00006840  24 29 3a 24 62 25 3d 22  20 20 20 20 22 2b 61 24  |$):$b%="    "+a$|
00006850  2b bd 30 3a c8 99 20 22  57 69 6d 70 5f 52 65 70  |+.0:.. "Wimp_Rep|
00006860  6f 72 74 45 72 72 6f 72  22 2c 62 25 2c 25 31 2c  |ortError",b%,%1,|
00006870  6e 61 6d 65 32 24 3a e1  0d 1c f2 05 3a 0d 1c fc  |name2$:.....:...|
00006880  11 dd f2 72 65 64 72 61  77 28 21 62 25 29 0d 1d  |...redraw(!b%)..|
00006890  06 26 c8 99 20 22 57 69  6d 70 5f 52 65 64 72 61  |.&.. "Wimp_Redra|
000068a0  77 57 69 6e 64 6f 77 22  2c 2c 62 25 20 b8 20 66  |wWindow",,b% . f|
000068b0  6c 61 67 25 0d 1d 10 0f  f2 67 65 74 5f 63 6f 6f  |lag%.....get_coo|
000068c0  72 64 73 0d 1d 1a 0c c8  95 20 66 6c 61 67 25 0d  |rds...... flag%.|
000068d0  1d 24 3d 20 20 e7 20 21  62 25 3d 6c 69 73 74 5f  |.$=  . !b%=list_|
000068e0  70 61 6e 65 25 20 f2 72  65 64 72 61 77 5f 6c 69  |pane% .redraw_li|
000068f0  73 74 20 8b 20 c8 99 20  22 57 69 6d 70 45 78 74  |st . .. "WimpExt|
00006900  5f 52 65 64 72 61 77 22  2c 2c 62 25 0d 1d 2e 28  |_Redraw",,b%...(|
00006910  20 20 c8 99 20 22 57 69  6d 70 5f 47 65 74 52 65  |  .. "Wimp_GetRe|
00006920  63 74 61 6e 67 6c 65 22  2c 2c 62 25 20 b8 20 66  |ctangle",,b% . f|
00006930  6c 61 67 25 0d 1d 38 05  ce 0d 1d 42 05 e1 0d 1d  |lag%..8....B....|
00006940  4c 05 3a 0d 1d 56 37 dd  f2 67 65 74 5f 63 6f 6f  |L.:..V7..get_coo|
00006950  72 64 73 3a 78 6f 25 3d  36 2b 62 25 21 34 2d 62  |rds:xo%=6+b%!4-b|
00006960  25 21 32 30 3a 79 6f 25  3d 2d 31 32 2b 62 25 21  |%!20:yo%=-12+b%!|
00006970  31 36 2d 62 25 21 32 34  3a e1 0d 1d 60 05 3a 0d  |16-b%!24:...`.:.|
00006980  1d 6a 2b dd f2 67 65 74  6f 72 67 3a 78 6f 25 3d  |.j+..getorg:xo%=|
00006990  62 25 21 34 2d 62 25 21  32 30 3a 79 6f 25 3d 62  |b%!4-b%!20:yo%=b|
000069a0  25 21 31 36 2d 62 25 21  32 34 0d 1d 74 21 78 6f  |%!16-b%!24..t!xo|
000069b0  25 2b 3d 31 36 3a 79 6f  25 2d 3d 38 34 3a 79 6f  |%+=16:yo%-=84:yo|
000069c0  32 25 3d 79 6f 25 2b 32  30 3a e1 0d 1d 7e 05 3a  |2%=yo%+20:...~.:|
000069d0  0d 1d 88 3d dd a4 6f 70  65 6e 28 77 25 29 3a c8  |...=..open(w%):.|
000069e0  99 20 22 57 69 6d 70 45  78 74 5f 43 68 65 63 6b  |. "WimpExt_Check|
000069f0  57 69 6e 64 6f 77 4f 70  65 6e 22 2c 77 25 20 b8  |WindowOpen",w% .|
00006a00  20 6f 70 65 6e 25 3a 3d  6f 70 65 6e 25 0d 1d 92  | open%:=open%...|
00006a10  05 3a 0d 1d 9c 7a dd f2  63 72 65 61 74 65 6d 65  |.:...z..createme|
00006a20  6e 75 28 6d 25 2c 74 69  74 6c 65 24 2c 74 24 2c  |nu(m%,title$,t$,|
00006a30  f8 20 65 29 3a 24 6d 25  3d 74 69 74 6c 65 24 3a  |. e):$m%=title$:|
00006a40  74 24 2b 3d 22 2c 22 3a  6d 25 21 31 32 3d 26 37  |t$+=",":m%!12=&7|
00006a50  30 32 30 37 3a 6d 25 21  32 30 3d 34 34 3a 6d 25  |0207:m%!20=44:m%|
00006a60  21 32 34 3d 30 3a 65 3d  30 3a 77 25 3d 30 3a 63  |!24=0:e=0:w%=0:c|
00006a70  25 3d 6d 25 2b 32 38 3a  c8 95 20 74 24 3c 3e 22  |%=m%+28:.. t$<>"|
00006a80  22 3a e7 20 74 24 3c 3e  22 22 20 8c 0d 1d a6 2e  |":. t$<>"" .....|
00006a90  69 24 3d c0 74 24 2c a7  74 24 2c 22 2c 22 29 2d  |i$=.t$,.t$,",")-|
00006aa0  31 29 3a 73 25 3d 30 3a  66 25 3d 26 37 30 30 30  |1):s%=0:f%=&7000|
00006ab0  30 32 31 3a 73 6d 25 3d  2d 31 0d 1d b0 12 e7 20  |021:sm%=-1..... |
00006ac0  a7 69 24 2c 22 23 22 29  3e 30 20 8c 0d 1d ba 36  |.i$,"#")>0 ....6|
00006ad0  20 20 65 24 3d c1 69 24  2c a7 69 24 2c 22 23 22  |  e$=.i$,.i$,"#"|
00006ae0  29 2b 31 29 3a e3 49 3d  31 20 b8 20 a9 65 24 3a  |)+1):.I=1 . .e$:|
00006af0  6c 24 3d c1 65 24 2c 49  2c 31 29 3a c8 8e 20 b9  |l$=.e$,I,1):.. .|
00006b00  20 ca 0d 1d c4 1f 20 20  20 20 20 20 c9 20 6c 24  | .....      . l$|
00006b10  3d 22 45 22 3a 73 25 3d  73 25 20 84 20 31 3c 3c  |="E":s%=s% . 1<<|
00006b20  33 0d 1d ce 1f 20 20 20  20 20 20 c9 20 6c 24 3d  |3....      . l$=|
00006b30  22 54 22 3a 73 25 3d 73  25 20 84 20 31 3c 3c 30  |"T":s%=s% . 1<<0|
00006b40  0d 1d d8 20 20 20 20 20  20 20 c9 20 6c 24 3d 22  |...       . l$="|
00006b50  53 22 3a 66 25 3d 66 25  20 84 20 31 3c 3c 32 32  |S":f%=f% . 1<<22|
00006b60  0d 1d e2 26 20 20 20 20  20 20 c9 20 6c 24 3d 22  |...&      . l$="|
00006b70  4c 22 3a 73 25 3d 73 25  20 84 20 31 3c 3c 31 3a  |L":s%=s% . 1<<1:|
00006b80  65 2b 3d 2e 35 36 0d 1d  ec 4a 20 20 20 20 20 20  |e+=.56...J      |
00006b90  c9 20 6c 24 3d 22 46 22  20 84 20 6c 24 3d 22 42  |. l$="F" . l$="B|
00006ba0  22 3a 6c 25 3d bb 28 c1  65 24 2c 49 2b 31 2c 32  |":l%=.(.e$,I+1,2|
00006bb0  29 29 3a 49 2b 3d 32 3a  e7 20 6c 24 3d 22 46 22  |)):I+=2:. l$="F"|
00006bc0  20 66 32 25 3d 32 34 20  8b 20 66 32 25 3d 32 38  | f2%=24 . f2%=28|
00006bd0  0d 1d f6 30 20 20 20 20  20 20 66 25 3d 66 25 20  |...0      f%=f% |
00006be0  80 20 28 31 35 3c 3c 66  32 25 20 82 20 2d 31 29  |. (15<<f2% . -1)|
00006bf0  3a 66 25 3d 66 25 20 84  20 6c 25 3c 3c 66 32 25  |:f%=f% . l%<<f2%|
00006c00  0d 1e 00 09 20 20 20 20  cb 0d 1e 0a 1a 20 20 ed  |....    .....  .|
00006c10  3a 69 24 3d c0 69 24 2c  a7 69 24 2c 22 23 22 29  |:i$=.i$,.i$,"#")|
00006c20  2d 31 29 0d 1e 14 05 cd  0d 1e 1e 28 61 3d a7 69  |-1)........(a=.i|
00006c30  24 2c 22 3e 22 29 3a e7  20 61 3e 30 20 80 20 c1  |$,">"):. a>0 . .|
00006c40  69 24 2c 61 2b 31 2c 31  29 3c 3e 22 3e 22 20 8c  |i$,a+1,1)<>">" .|
00006c50  0d 1e 28 30 20 20 73 6d  25 3d a0 28 c1 69 24 2c  |..(0  sm%=.(.i$,|
00006c60  61 2b 31 2c a7 69 24 2c  22 25 22 2c 61 2b 31 29  |a+1,.i$,"%",a+1)|
00006c70  2d 61 29 29 3a 69 24 3d  c0 69 24 2c 61 2d 31 29  |-a)):i$=.i$,a-1)|
00006c80  0d 1e 32 05 cd 0d 1e 3c  3f 61 3d a7 69 24 2c 22  |..2....<?a=.i$,"|
00006c90  3e 22 29 3a e7 20 61 3e  30 20 80 20 c1 69 24 2c  |>"):. a>0 . .i$,|
00006ca0  61 2b 31 2c 31 29 3d 22  3e 22 20 8c 20 69 24 3d  |a+1,1)=">" . i$=|
00006cb0  c0 69 24 2c 29 2b c2 69  24 2c a9 28 69 24 29 2d  |.i$,)+.i$,.(i$)-|
00006cc0  61 2d 31 29 0d 1e 46 2a  74 24 3d c1 74 24 2c a7  |a-1)..F*t$=.t$,.|
00006cd0  74 24 2c 22 2c 22 29 2b  31 29 3a e7 20 a9 28 69  |t$,",")+1):. .(i|
00006ce0  24 29 3e 77 25 20 77 25  3d a9 28 69 24 29 0d 1e  |$)>w% w%=.(i$)..|
00006cf0  50 a8 21 63 25 3d 73 25  3a 63 25 21 34 3d 73 6d  |P.!c%=s%:c%!4=sm|
00006d00  25 3a 63 25 21 38 3d 66  25 3a e7 20 a9 28 69 24  |%:c%!8=f%:. .(i$|
00006d10  29 3c 3d 31 32 20 24 28  63 25 2b 31 32 29 3d 69  |)<=12 $(c%+12)=i|
00006d20  24 3a 63 25 2b 3d 32 34  20 8b 20 63 25 21 38 3d  |$:c%+=24 . c%!8=|
00006d30  66 25 20 84 20 31 3c 3c  38 3a 24 28 6d 65 6e 75  |f% . 1<<8:$(menu|
00006d40  25 2b 6d 65 6e 75 5f 70  6f 73 25 29 3d 69 24 3a  |%+menu_pos%)=i$:|
00006d50  63 25 21 31 32 3d 6d 65  6e 75 25 2b 6d 65 6e 75  |c%!12=menu%+menu|
00006d60  5f 70 6f 73 25 3a 63 25  21 31 36 3d 76 61 6c 25  |_pos%:c%!16=val%|
00006d70  3a 63 25 21 32 30 3d a9  28 69 24 29 3a 6d 65 6e  |:c%!20=.(i$):men|
00006d80  75 5f 70 6f 73 25 2b 3d  a9 28 69 24 29 2b 31 3a  |u_pos%+=.(i$)+1:|
00006d90  63 25 2b 3d 32 34 0d 1e  5a 05 cd 0d 1e 64 08 65  |c%+=24..Z....d.e|
00006da0  2b 3d 31 0d 1e 6e 05 ce  0d 1e 78 1c e7 20 77 25  |+=1..n....x.. w%|
00006db0  3c 3d a9 74 69 74 6c 65  24 20 77 25 3d a9 74 69  |<=.title$ w%=.ti|
00006dc0  74 6c 65 24 0d 1e 82 29  6d 25 21 31 36 3d 28 77  |tle$...)m%!16=(w|
00006dd0  25 2b 31 29 2a 31 36 3a  63 25 21 2d 32 34 3d 63  |%+1)*16:c%!-24=c|
00006de0  25 21 2d 32 34 20 84 20  26 38 30 3a e1 0d 1e 8c  |%!-24 . &80:....|
00006df0  05 3a 0d 1e 96 1c dd f2  73 75 62 28 6d 62 25 2c  |.:......sub(mb%,|
00006e00  61 24 2c 6d 63 25 2c 76  25 2c 62 6c 25 29 0d 1e  |a$,mc%,v%,bl%)..|
00006e10  a0 26 77 25 3d 62 6c 25  2a 31 36 3a e7 20 a9 61  |.&w%=bl%*16:. .a|
00006e20  24 3e 3d 62 6c 25 20 77  25 3d 28 a9 61 24 2b 31  |$>=bl% w%=(.a$+1|
00006e30  29 2a 31 36 0d 1e aa 36  24 6d 62 25 3d 61 24 3a  |)*16...6$mb%=a$:|
00006e40  6d 62 25 21 31 32 3d 26  37 30 32 30 37 3a 6d 62  |mb%!12=&70207:mb|
00006e50  25 21 31 36 3d 77 25 3a  6d 62 25 21 32 30 3d 34  |%!16=w%:mb%!20=4|
00006e60  34 3a 6d 62 25 21 32 34  3d 30 0d 1e b4 48 6d 62  |4:mb%!24=0...Hmb|
00006e70  25 21 32 38 3d 26 38 34  3a 6d 62 25 21 33 32 3d  |%!28=&84:mb%!32=|
00006e80  2d 31 3a 6d 62 25 21 33  36 3d 26 37 30 30 30 31  |-1:mb%!36=&70001|
00006e90  32 31 3a 6d 62 25 21 34  30 3d 6d 63 25 3a 6d 62  |21:mb%!40=mc%:mb|
00006ea0  25 21 34 34 3d 76 25 3a  6d 62 25 21 34 38 3d 62  |%!44=v%:mb%!48=b|
00006eb0  6c 25 0d 1e be 05 e1 0d  1e c8 05 3a 0d 1e d2 10  |l%.........:....|
00006ec0  dd f2 71 75 69 63 6b 5f  73 61 76 65 0d 1e dc 20  |..quick_save... |
00006ed0  66 69 6c 65 6e 61 6d 65  24 3d a4 73 74 72 69 6e  |filename$=.strin|
00006ee0  67 28 66 69 6c 65 6e 61  6d 65 25 29 0d 1e e6 17  |g(filename%)....|
00006ef0  e7 20 a7 66 69 6c 65 6e  61 6d 65 24 2c 22 2e 22  |. .filename$,"."|
00006f00  29 20 8c 0d 1e f0 19 20  20 f2 73 61 76 65 5f 69  |) .....  .save_i|
00006f10  74 28 66 69 6c 65 6e 61  6d 65 24 29 0d 1e fa 15  |t(filename$)....|
00006f20  20 20 c8 8e 20 73 61 76  65 5f 74 79 70 65 25 20  |  .. save_type% |
00006f30  ca 0d 1f 04 20 20 20 20  20 c9 20 31 3a 67 6f 6f  |....     . 1:goo|
00006f40  64 5f 62 6f 6f 6b 24 3d  66 69 6c 65 6e 61 6d 65  |d_book$=filename|
00006f50  24 0d 1f 0e 22 20 20 20  20 c9 20 32 3a 67 6f 6f  |$..."    . 2:goo|
00006f60  64 5f 73 65 61 72 63 68  24 3d 66 69 6c 65 6e 61  |d_search$=filena|
00006f70  6d 65 24 0d 1f 18 23 20  20 20 20 c9 20 33 3a 67  |me$...#    . 3:g|
00006f80  6f 6f 64 5f 61 64 64 72  65 73 73 24 3d 66 69 6c  |ood_address$=fil|
00006f90  65 6e 61 6d 65 24 0d 1f  22 07 20 20 cb 0d 1f 2c  |ename$..".  ...,|
00006fa0  1e 20 20 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |.  .. "Wimp_Crea|
00006fb0  74 65 4d 65 6e 75 22 2c  2c 2d 31 0d 1f 36 05 cc  |teMenu",,-1..6..|
00006fc0  0d 1f 40 76 20 20 72 65  71 25 3d 30 3a c8 99 20  |..@v  req%=0:.. |
00006fd0  22 57 69 6d 70 45 78 74  5f 4f 70 65 6e 52 65 71  |"WimpExt_OpenReq|
00006fe0  75 65 73 74 65 72 22 2c  2c 2c 22 52 65 6d 69 6e  |uester",,,"Remin|
00006ff0  64 65 72 20 66 72 6f 6d  20 54 65 6c 41 64 64 72  |der from TelAddr|
00007000  22 2c 22 54 6f 20 73 61  76 65 2c 20 64 72 61 67  |","To save, drag|
00007010  20 74 68 65 20 69 63 6f  6e 20 74 6f 20 61 20 64  | the icon to a d|
00007020  69 72 65 63 74 6f 72 79  20 76 69 65 77 65 72 22  |irectory viewer"|
00007030  2c 6f 6b 25 2c 30 0d 1f  4a 05 cd 0d 1f 54 05 e1  |,ok%,0..J....T..|
00007040  0d 1f 5e 05 3a 0d 1f 68  18 dd f2 73 61 76 65 5f  |..^.:..h...save_|
00007050  69 74 28 66 69 6c 65 6e  61 6d 65 24 29 0d 1f 72  |it(filename$)..r|
00007060  13 c8 8e 20 73 61 76 65  5f 74 79 70 65 25 20 ca  |... save_type% .|
00007070  0d 1f 7c 15 20 20 c9 20  31 3a 77 25 3d 73 61 76  |..|.  . 1:w%=sav|
00007080  65 5f 61 73 25 0d 1f 86  16 20 20 c9 20 32 3a 77  |e_as%....  . 2:w|
00007090  25 3d 73 61 76 65 5f 61  73 31 25 0d 1f 90 16 20  |%=save_as1%.... |
000070a0  20 c9 20 33 3a 77 25 3d  73 61 76 65 5f 61 73 32  | . 3:w%=save_as2|
000070b0  25 0d 1f 9a 05 cb 0d 1f  a4 d6 e7 20 73 61 76 65  |%.......... save|
000070c0  5f 74 79 70 65 25 3d 31  20 c8 99 20 22 57 69 6d  |_type%=1 .. "Wim|
000070d0  70 45 78 74 5f 47 65 74  49 63 6f 6e 22 2c 2c 2c  |pExt_GetIcon",,,|
000070e0  77 25 2c 34 20 b8 20 70  61 72 74 69 61 6c 25 3a  |w%,4 . partial%:|
000070f0  e7 20 70 61 72 74 69 61  6c 25 20 f2 73 6f 72 74  |. partial% .sort|
00007100  6f 75 74 5f 70 61 72 74  69 61 6c 28 30 2c 73 61  |out_partial(0,sa|
00007110  76 65 5f 61 73 25 2c 36  2c 31 30 29 3a c8 99 20  |ve_as%,6,10):.. |
00007120  22 57 69 6d 70 45 78 74  5f 47 65 74 4e 75 6d 62  |"WimpExt_GetNumb|
00007130  65 72 49 63 6f 6e 22 2c  2c 2c 77 25 2c 36 20 b8  |erIcon",,,w%,6 .|
00007140  20 70 31 25 3a c8 99 20  22 57 69 6d 70 45 78 74  | p1%:.. "WimpExt|
00007150  5f 47 65 74 4e 75 6d 62  65 72 49 63 6f 6e 22 2c  |_GetNumberIcon",|
00007160  2c 2c 77 25 2c 31 30 20  b8 20 70 32 25 3a 70 31  |,,w%,10 . p2%:p1|
00007170  25 2d 3d 31 3a 70 32 25  2d 3d 31 20 8b 20 70 31  |%-=1:p2%-=1 . p1|
00007180  25 3d 30 3a 70 32 25 3d  6d 61 78 25 0d 1f ae 35  |%=0:p2%=max%...5|
00007190  e7 20 73 61 76 65 5f 74  79 70 65 25 3d 33 20 c8  |. save_type%=3 .|
000071a0  99 20 22 57 69 6d 70 45  78 74 5f 47 65 74 49 63  |. "WimpExt_GetIc|
000071b0  6f 6e 22 2c 2c 2c 77 25  2c 34 20 b8 20 74 65 6c  |on",,,w%,4 . tel|
000071c0  25 0d 1f b8 28 c8 99 20  22 57 69 6d 70 45 78 74  |%...(.. "WimpExt|
000071d0  5f 47 65 74 49 63 6f 6e  22 2c 2c 2c 77 25 2c 33  |_GetIcon",,,w%,3|
000071e0  20 b8 20 61 73 63 69 69  25 0d 1f c2 40 63 6f 6d  | . ascii%...@com|
000071f0  6d 61 25 3d 30 3a e7 20  73 61 76 65 5f 74 79 70  |ma%=0:. save_typ|
00007200  65 25 3d 33 20 c8 99 20  22 57 69 6d 70 45 78 74  |e%=3 .. "WimpExt|
00007210  5f 47 65 74 49 63 6f 6e  22 2c 2c 2c 77 25 2c 35  |_GetIcon",,,w%,5|
00007220  20 b8 20 63 6f 6d 6d 61  25 0d 1f cc 13 c8 8e 20  | . comma%...... |
00007230  73 61 76 65 5f 74 79 70  65 25 20 ca 0d 1f d6 30  |save_type% ....0|
00007240  20 20 c9 20 31 3a f2 73  61 76 65 5f 62 6f 6f 6b  |  . 1:.save_book|
00007250  28 66 69 6c 65 6e 61 6d  65 24 2c 70 31 25 2c 70  |(filename$,p1%,p|
00007260  32 25 2c 31 2c 63 6f 6d  6d 61 25 29 0d 1f e0 21  |2%,1,comma%)...!|
00007270  20 20 c9 20 32 3a f2 73  61 76 65 5f 73 65 61 72  |  . 2:.save_sear|
00007280  63 68 28 66 69 6c 65 6e  61 6d 65 24 29 0d 1f ea  |ch(filename$)...|
00007290  1b 20 20 c9 20 33 3a e7  20 61 73 63 69 69 25 3d  |.  . 3:. ascii%=|
000072a0  30 20 74 65 6c 25 3d 31  0d 1f f4 37 20 20 f2 73  |0 tel%=1...7  .s|
000072b0  61 76 65 5f 62 6f 6f 6b  28 66 69 6c 65 6e 61 6d  |ave_book(filenam|
000072c0  65 24 2c 72 65 63 6f 72  64 25 2c 72 65 63 6f 72  |e$,record%,recor|
000072d0  64 25 2c 74 65 6c 25 2c  63 6f 6d 6d 61 25 29 0d  |d%,tel%,comma%).|
000072e0  1f fe 05 cb 0d 20 08 05  e1 0d 20 12 05 3a 0d 20  |..... .... ..:. |
000072f0  1c 30 dd f2 73 61 76 65  5f 62 6f 6f 6b 28 66 69  |.0..save_book(fi|
00007300  6c 65 6e 61 6d 65 24 2c  66 72 6f 6d 25 2c 74 6f  |lename$,from%,to|
00007310  25 2c 74 65 6c 25 2c 63  6f 6d 6d 61 25 29 0d 20  |%,tel%,comma%). |
00007320  26 15 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |&... "Hourglass_|
00007330  4f 6e 22 0d 20 30 29 e7  20 74 65 6c 25 3d 30 20  |On". 0). tel%=0 |
00007340  6d 61 78 5f 66 69 65 6c  64 25 3d 37 20 8b 20 6d  |max_field%=7 . m|
00007350  61 78 5f 66 69 65 6c 64  25 3d 31 30 0d 20 3a 12  |ax_field%=10. :.|
00007360  66 25 3d ae 20 66 69 6c  65 6e 61 6d 65 24 0d 20  |f%=. filename$. |
00007370  44 44 e7 20 61 73 63 69  69 25 3d 30 20 8c 20 d5  |DD. ascii%=0 . .|
00007380  23 66 25 2c 22 54 65 6c  41 64 64 72 28 22 2b c3  |#f%,"TelAddr("+.|
00007390  66 69 6c 65 5f 76 65 72  25 2b 22 2c 22 2b c3 28  |file_ver%+","+.(|
000073a0  28 74 6f 25 2d 66 72 6f  6d 25 29 2b 31 29 2b 22  |(to%-from%)+1)+"|
000073b0  29 22 0d 20 4e 16 e3 20  72 65 63 25 3d 66 72 6f  |)". N.. rec%=fro|
000073c0  6d 25 20 b8 20 74 6f 25  0d 20 58 47 20 20 e7 20  |m% . to%. XG  . |
000073d0  74 6f 25 2d 66 72 6f 6d  25 3e 30 20 c8 99 20 22  |to%-from%>0 .. "|
000073e0  48 6f 75 72 67 6c 61 73  73 5f 50 65 72 63 65 6e  |Hourglass_Percen|
000073f0  74 61 67 65 22 2c a8 28  28 72 65 63 25 2f 28 74  |tage",.((rec%/(t|
00007400  6f 25 2d 66 72 6f 6d 25  29 29 2a 31 30 30 29 0d  |o%-from%))*100).|
00007410  20 62 23 20 20 74 61 62  5f 70 6f 73 25 3d 74 61  | b#  tab_pos%=ta|
00007420  62 25 2b 28 72 65 63 25  2a 72 65 63 5f 6c 65 6e  |b%+(rec%*rec_len|
00007430  25 29 0d 20 6c 1d 20 20  e3 20 66 69 65 6c 64 25  |%). l.  . field%|
00007440  3d 30 20 b8 20 6d 61 78  5f 66 69 65 6c 64 25 0d  |=0 . max_field%.|
00007450  20 76 31 20 20 20 20 e7  20 61 73 63 69 69 25 3d  | v1    . ascii%=|
00007460  30 20 84 20 28 61 73 63  69 69 25 3d 31 20 80 20  |0 . (ascii%=1 . |
00007470  3f 74 61 62 5f 70 6f 73  25 3e 3d 33 32 29 20 8c  |?tab_pos%>=32) .|
00007480  0d 20 80 2d 20 20 20 20  20 20 24 62 33 25 3d 24  |. .-      $b3%=$|
00007490  74 61 62 5f 70 6f 73 25  3a 41 25 3d 62 33 25 3a  |tab_pos%:A%=b3%:|
000074a0  d6 20 63 75 74 3a 61 24  3d 24 62 33 25 0d 20 8a  |. cut:a$=$b3%. .|
000074b0  14 20 20 20 20 20 20 e7  20 63 6f 6d 6d 61 25 20  |.      . comma% |
000074c0  8c 0d 20 94 20 20 20 20  20 20 20 20 20 66 64 25  |.. .         fd%|
000074d0  3d 66 69 65 6c 64 25 3a  e7 20 66 64 25 3c 37 20  |=field%:. fd%<7 |
000074e0  8c 0d 20 9e 41 20 20 20  20 20 20 20 20 20 20 63  |.. .A          c|
000074f0  6f 6d 25 3d 30 3a e3 20  4a 25 3d 66 64 25 2b 31  |om%=0:. J%=fd%+1|
00007500  20 b8 20 37 3a e7 20 74  61 62 5f 70 6f 73 25 3f  | . 7:. tab_pos%?|
00007510  28 4a 25 2a 33 32 29 3e  3d 33 32 20 63 6f 6d 25  |(J%*32)>=32 com%|
00007520  3d 31 0d 20 a8 0f 20 20  20 20 20 20 20 20 20 20  |=1. ..          |
00007530  ed 0d 20 b2 14 20 20 20  20 20 20 20 20 cc 20 63  |.. ..        . c|
00007540  6f 6d 25 3d 30 0d 20 bc  0d 20 20 20 20 20 20 20  |om%=0. ..       |
00007550  20 cd 0d 20 c6 1f 20 20  20 20 20 20 20 20 e7 20  | .. ..        . |
00007560  66 64 25 3c 3d 37 20 80  20 61 24 3c 3e 22 22 20  |fd%<=7 . a$<>"" |
00007570  8c 0d 20 d0 26 20 20 20  20 20 20 20 20 20 20 e7  |.. .&          .|
00007580  20 63 6f 6d 25 20 61 24  2b 3d 22 2c 22 20 8b 20  | com% a$+="," . |
00007590  61 24 2b 3d 22 2e 22 0d  20 da 0d 20 20 20 20 20  |a$+=".". ..     |
000075a0  20 20 20 cd 0d 20 e4 0b  20 20 20 20 20 20 cd 0d  |   .. ..      ..|
000075b0  20 ee 28 20 20 20 20 20  20 24 62 32 25 3d 61 24  | .(      $b2%=a$|
000075c0  3a 41 25 3d 62 32 25 3a  d6 20 63 75 74 3a d5 23  |:A%=b2%:. cut:.#|
000075d0  66 25 2c 24 62 32 25 0d  20 f8 09 20 20 20 20 cd  |f%,$b2%. ..    .|
000075e0  0d 21 02 2c 20 20 20 20  e7 20 61 73 63 69 69 25  |.!.,    . ascii%|
000075f0  20 80 20 66 69 65 6c 64  25 3d 37 20 80 20 74 65  | . field%=7 . te|
00007600  6c 25 3d 31 20 d5 23 66  25 2c 22 22 0d 21 0c 14  |l%=1 .#f%,"".!..|
00007610  20 20 20 20 74 61 62 5f  70 6f 73 25 2b 3d 33 32  |    tab_pos%+=32|
00007620  0d 21 16 07 20 20 ed 0d  21 20 21 20 20 e7 20 61  |.!..  ..! !  . a|
00007630  73 63 69 69 25 20 80 20  72 65 63 25 3c 74 6f 25  |scii% . rec%<to%|
00007640  20 d5 23 66 25 2c 22 22  0d 21 2a 05 ed 0d 21 34  | .#f%,"".!*...!4|
00007650  09 d9 20 23 66 25 0d 21  3e 23 e7 20 61 73 63 69  |.. #f%.!>#. asci|
00007660  69 25 20 66 74 25 3d 26  46 46 46 20 8b 20 66 74  |i% ft%=&FFF . ft|
00007670  25 3d 74 65 6c 5f 66 74  25 0d 21 48 21 c8 99 20  |%=tel_ft%.!H!.. |
00007680  22 4f 53 5f 46 69 6c 65  22 2c 31 38 2c 66 69 6c  |"OS_File",18,fil|
00007690  65 6e 61 6d 65 24 2c 66  74 25 0d 21 52 3b c8 99  |ename$,ft%.!R;..|
000076a0  20 22 48 6f 75 72 67 6c  61 73 73 5f 4f 66 66 22  | "Hourglass_Off"|
000076b0  3a f2 6d 6f 64 69 66 69  65 64 28 30 29 3a e7 20  |:.modified(0):. |
000076c0  73 61 76 65 5f 71 75 69  74 25 20 8c 20 71 75 69  |save_quit% . qui|
000076d0  74 25 3d 2d 31 0d 21 5c  05 e1 0d 21 66 05 3a 0d  |t%=-1.!\...!f.:.|
000076e0  21 70 28 dd f2 73 61 76  65 5f 73 65 61 72 63 68  |!p(..save_search|
000076f0  28 66 69 6c 65 6e 61 6d  65 24 29 3a 6f 6c 64 5f  |(filename$):old_|
00007700  72 65 63 25 3d 2d 31 0d  21 7a 15 c8 99 20 22 48  |rec%=-1.!z... "H|
00007710  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 0d 21 84 33  |ourglass_On".!.3|
00007720  41 25 3d 74 61 62 6c 65  25 3a 42 25 3d 73 65 61  |A%=table%:B%=sea|
00007730  72 63 68 5f 6c 65 6e 25  2b 31 3a 6e 75 6d 62 65  |rch_len%+1:numbe|
00007740  72 25 3d ba 28 63 6f 75  6e 74 5f 72 65 63 29 0d  |r%=.(count_rec).|
00007750  21 8e 12 66 25 3d ae 20  66 69 6c 65 6e 61 6d 65  |!..f%=. filename|
00007760  24 0d 21 98 3e e7 20 61  73 63 69 69 25 3d 30 20  |$.!.>. ascii%=0 |
00007770  8c 20 d5 23 66 25 2c 22  54 65 6c 41 64 64 72 28  |. .#f%,"TelAddr(|
00007780  22 2b c3 66 69 6c 65 5f  76 65 72 25 2b 22 2c 22  |"+.file_ver%+","|
00007790  2b c3 28 6e 75 6d 62 65  72 25 29 2b 22 29 22 0d  |+.(number%)+")".|
000077a0  21 a2 20 e3 20 74 61 62  6c 65 5f 70 6f 73 25 3d  |!. . table_pos%=|
000077b0  30 20 b8 20 73 65 61 72  63 68 5f 6c 65 6e 25 0d  |0 . search_len%.|
000077c0  21 ac 4f 20 20 e7 20 73  65 61 72 63 68 5f 6c 65  |!.O  . search_le|
000077d0  6e 25 3e 30 20 c8 99 20  22 48 6f 75 72 67 6c 61  |n%>0 .. "Hourgla|
000077e0  73 73 5f 50 65 72 63 65  6e 74 61 67 65 22 2c a8  |ss_Percentage",.|
000077f0  28 28 74 61 62 6c 65 5f  70 6f 73 25 2f 73 65 61  |((table_pos%/sea|
00007800  72 63 68 5f 6c 65 6e 25  29 2a 31 30 30 29 0d 21  |rch_len%)*100).!|
00007810  b6 21 20 20 72 65 63 25  3d 74 61 62 6c 65 25 21  |.!  rec%=table%!|
00007820  28 74 61 62 6c 65 5f 70  6f 73 25 2a 31 32 29 0d  |(table_pos%*12).|
00007830  21 c0 18 20 20 e7 20 72  65 63 25 3c 3e 6f 6c 64  |!..  . rec%<>old|
00007840  5f 72 65 63 25 20 8c 0d  21 ca 25 20 20 20 20 74  |_rec% ..!.%    t|
00007850  61 62 5f 70 6f 73 25 3d  74 61 62 25 2b 28 72 65  |ab_pos%=tab%+(re|
00007860  63 25 2a 72 65 63 5f 6c  65 6e 25 29 0d 21 d4 17  |c%*rec_len%).!..|
00007870  20 20 20 20 e3 20 66 69  65 6c 64 25 3d 30 20 b8  |    . field%=0 .|
00007880  20 31 30 0d 21 de 27 20  20 20 20 20 20 e7 20 66  | 10.!.'      . f|
00007890  69 65 6c 64 25 3d 38 20  80 20 61 73 63 69 69 25  |ield%=8 . ascii%|
000078a0  3d 31 20 d5 23 66 25 2c  22 22 0d 21 e8 57 20 20  |=1 .#f%,"".!.W  |
000078b0  20 20 20 20 e7 20 61 73  63 69 69 25 3d 30 20 84  |    . ascii%=0 .|
000078c0  20 28 61 73 63 69 69 25  3d 31 20 80 20 3f 74 61  | (ascii%=1 . ?ta|
000078d0  62 5f 70 6f 73 25 3e 3d  33 32 29 20 24 62 32 25  |b_pos%>=32) $b2%|
000078e0  3d 24 74 61 62 5f 70 6f  73 25 3a 41 25 3d 62 32  |=$tab_pos%:A%=b2|
000078f0  25 3a d6 20 63 75 74 3a  d5 23 66 25 2c 24 62 32  |%:. cut:.#f%,$b2|
00007900  25 0d 21 f2 16 20 20 20  20 20 20 74 61 62 5f 70  |%.!..      tab_p|
00007910  6f 73 25 2b 3d 33 32 0d  21 fc 09 20 20 20 20 ed  |os%+=32.!..    .|
00007920  0d 22 06 31 20 20 20 20  e7 20 61 73 63 69 69 25  |.".1    . ascii%|
00007930  20 80 20 74 61 62 6c 65  5f 70 6f 73 25 3c 73 65  | . table_pos%<se|
00007940  61 72 63 68 5f 6c 65 6e  25 20 d5 23 66 25 2c 22  |arch_len% .#f%,"|
00007950  22 0d 22 10 07 20 20 cd  0d 22 1a 13 20 20 6f 6c  |"."..  .."..  ol|
00007960  64 5f 72 65 63 25 3d 72  65 63 25 0d 22 24 05 ed  |d_rec%=rec%."$..|
00007970  0d 22 2e 09 d9 20 23 66  25 0d 22 38 23 e7 20 61  |."... #f%."8#. a|
00007980  73 63 69 69 25 20 66 74  25 3d 26 46 46 46 20 8b  |scii% ft%=&FFF .|
00007990  20 66 74 25 3d 74 65 6c  5f 66 74 25 0d 22 42 21  | ft%=tel_ft%."B!|
000079a0  c8 99 20 22 4f 53 5f 46  69 6c 65 22 2c 31 38 2c  |.. "OS_File",18,|
000079b0  66 69 6c 65 6e 61 6d 65  24 2c 66 74 25 0d 22 4c  |filename$,ft%."L|
000079c0  16 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  |... "Hourglass_O|
000079d0  66 66 22 0d 22 56 05 e1  0d 22 60 05 3a 0d 22 6a  |ff"."V..."`.:."j|
000079e0  0f dd f2 69 6e 69 74 5f  73 61 76 65 0d 22 74 23  |...init_save."t#|
000079f0  6c 65 61 66 24 3d a4 6c  65 61 66 28 a4 73 74 72  |leaf$=.leaf(.str|
00007a00  69 6e 67 28 66 69 6c 65  6e 61 6d 65 25 29 29 0d  |ing(filename%)).|
00007a10  22 7e 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |"~ .. "Wimp_GetP|
00007a20  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 62 25 0d  |ointerInfo",,b%.|
00007a30  22 88 3d e7 20 62 25 21  31 32 3c 3e 73 61 76 65  |".=. b%!12<>save|
00007a40  5f 61 73 25 20 80 20 62  25 21 31 32 3c 3e 73 61  |_as% . b%!12<>sa|
00007a50  76 65 5f 61 73 31 25 20  80 20 62 25 21 31 32 3c  |ve_as1% . b%!12<|
00007a60  3e 73 61 76 65 5f 61 73  32 25 20 8c 0d 22 92 44  |>save_as2% ..".D|
00007a70  20 20 62 25 21 32 30 3d  62 25 21 31 32 3a 62 25  |  b%!20=b%!12:b%|
00007a80  21 32 34 3d 62 25 21 31  36 3a 62 25 21 32 38 3d  |!24=b%!16:b%!28=|
00007a90  21 62 25 3a 62 25 21 33  32 3d 62 25 21 34 3a 62  |!b%:b%!32=b%!4:b|
00007aa0  25 21 33 36 3d a4 66 69  6c 65 5f 6c 65 6e 2b 31  |%!36=.file_len+1|
00007ab0  0d 22 9c 36 20 20 21 62  25 3d 28 33 2b 34 34 2b  |.".6  !b%=(3+44+|
00007ac0  a9 28 6c 65 61 66 24 2b  bd 30 29 29 80 26 46 46  |.(leaf$+.0)).&FF|
00007ad0  46 46 46 46 46 43 3a 62  25 21 31 32 3d 30 3a 62  |FFFFFC:b%!12=0:b|
00007ae0  25 21 31 36 3d 31 0d 22  a6 4d 20 20 62 25 21 34  |%!16=1.".M  b%!4|
00007af0  30 3d 74 65 6c 5f 66 74  25 3a 24 28 62 25 2b 34  |0=tel_ft%:$(b%+4|
00007b00  34 29 3d 6c 65 61 66 24  2b bd 30 3a c8 99 20 22  |4)=leaf$+.0:.. "|
00007b10  57 69 6d 70 5f 53 65 6e  64 4d 65 73 73 61 67 65  |Wimp_SendMessage|
00007b20  22 2c 31 38 2c 62 25 2c  62 25 21 32 30 2c 62 25  |",18,b%,b%!20,b%|
00007b30  21 32 34 0d 22 b0 2a 20  20 6d 79 72 65 66 25 3d  |!24.".*  myref%=|
00007b40  62 25 21 38 3a 74 72 61  6e 73 5f 6c 65 6e 25 3d  |b%!8:trans_len%=|
00007b50  2d 31 3a 73 74 31 5f 72  65 63 25 3d 30 0d 22 ba  |-1:st1_rec%=0.".|
00007b60  05 cd 0d 22 c4 05 e1 0d  22 ce 05 3a 0d 22 d8 0f  |..."...."..:."..|
00007b70  dd f2 64 61 74 61 5f 73  61 76 65 0d 22 e2 1c 66  |..data_save."..f|
00007b80  69 6c 65 6e 61 6d 65 24  3d a4 73 74 72 69 6e 67  |ilename$=.string|
00007b90  28 62 25 2b 34 34 29 0d  22 ec 17 f2 73 61 76 65  |(b%+44)."...save|
00007ba0  5f 69 74 28 66 69 6c 65  6e 61 6d 65 24 29 0d 22  |_it(filename$)."|
00007bb0  f6 13 c8 8e 20 73 61 76  65 5f 74 79 70 65 25 20  |.... save_type% |
00007bc0  ca 0d 23 00 1e 20 20 c9  20 31 3a 67 6f 6f 64 5f  |..#..  . 1:good_|
00007bd0  62 6f 6f 6b 24 3d 66 69  6c 65 6e 61 6d 65 24 0d  |book$=filename$.|
00007be0  23 0a 20 20 20 c9 20 32  3a 67 6f 6f 64 5f 73 65  |#.   . 2:good_se|
00007bf0  61 72 63 68 24 3d 66 69  6c 65 6e 61 6d 65 24 0d  |arch$=filename$.|
00007c00  23 14 21 20 20 c9 20 33  3a 67 6f 6f 64 5f 61 64  |#.!  . 3:good_ad|
00007c10  64 72 65 73 73 24 3d 66  69 6c 65 6e 61 6d 65 24  |dress$=filename$|
00007c20  0d 23 1e 05 cb 0d 23 28  1c c8 99 20 22 57 69 6d  |.#....#(... "Wim|
00007c30  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 2c 2c 2d  |p_CreateMenu",,-|
00007c40  31 0d 23 32 46 62 25 21  31 32 3d 62 25 21 38 3a  |1.#2Fb%!12=b%!8:|
00007c50  62 25 21 31 36 3d 33 3a  21 62 25 3d 32 35 36 3a  |b%!16=3:!b%=256:|
00007c60  c8 99 20 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |.. "Wimp_SendMes|
00007c70  73 61 67 65 22 2c 31 38  2c 62 25 2c 62 25 21 32  |sage",18,b%,b%!2|
00007c80  30 2c 62 25 21 32 34 0d  23 3c 05 e1 0d 23 46 05  |0,b%!24.#<...#F.|
00007c90  3a 0d 23 50 36 dd a4 73  74 72 69 6e 67 28 61 25  |:.#P6..string(a%|
00007ca0  29 3a 61 24 3d 22 22 3a  c8 95 20 3f 61 25 3e 3d  |):a$="":.. ?a%>=|
00007cb0  33 32 3a 61 24 2b 3d bd  3f 61 25 3a 61 25 2b 3d  |32:a$+=.?a%:a%+=|
00007cc0  31 3a ce 3a 3d 61 24 0d  23 5a 05 3a 0d 23 64 5c  |1:.:=a$.#Z.:.#d\|
00007cd0  dd f2 73 74 72 28 61 25  2c 61 32 25 2c f8 20 6c  |..str(a%,a2%,. l|
00007ce0  65 6e 25 29 3a 6c 65 6e  25 3d 30 3a c8 95 20 3f  |en%):len%=0:.. ?|
00007cf0  61 25 3e 3d 33 32 3a 3f  61 32 25 3d 3f 61 25 3a  |a%>=32:?a2%=?a%:|
00007d00  61 25 2b 3d 31 3a 61 32  25 2b 3d 31 3a 6c 65 6e  |a%+=1:a2%+=1:len|
00007d10  25 2b 3d 31 3a ce 3a 3f  61 32 25 3d 31 30 3a 6c  |%+=1:.:?a2%=10:l|
00007d20  65 6e 25 2b 3d 31 3a e1  0d 23 6e 05 3a 0d 23 78  |en%+=1:..#n.:.#x|
00007d30  32 dd a4 6c 65 61 66 28  24 62 25 29 3a c8 99 20  |2..leaf($b%):.. |
00007d40  22 57 69 6d 70 45 78 74  5f 46 69 6e 64 4c 65 61  |"WimpExt_FindLea|
00007d50  66 22 2c 62 25 20 b8 20  61 25 3a 3d 24 61 25 0d  |f",b% . a%:=$a%.|
00007d60  23 82 05 3a 0d 23 8c 47  dd a4 69 6e 28 77 25 2c  |#..:.#.G..in(w%,|
00007d70  69 25 29 3a 21 62 32 25  3d 77 25 3a 62 32 25 21  |i%):!b2%=w%:b2%!|
00007d80  34 3d 69 25 3a c8 99 20  22 57 69 6d 70 5f 47 65  |4=i%:.. "Wimp_Ge|
00007d90  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 62 32 25  |tIconState",,b2%|
00007da0  3a 3d 24 28 62 32 25 21  32 38 29 0d 23 96 05 3a  |:=$(b2%!28).#..:|
00007db0  0d 23 a0 45 dd a4 69 6e  5f 61 64 64 72 28 77 25  |.#.E..in_addr(w%|
00007dc0  2c 69 25 29 3a 21 62 25  3d 77 25 3a 62 25 21 34  |,i%):!b%=w%:b%!4|
00007dd0  3d 69 25 3a c8 99 20 22  57 69 6d 70 5f 47 65 74  |=i%:.. "Wimp_Get|
00007de0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 25 3a 3d  |IconState",,b%:=|
00007df0  62 25 21 32 38 0d 23 aa  05 3a 0d 23 b4 1e dd a4  |b%!28.#..:.#....|
00007e00  76 61 6c 28 77 25 2c 69  25 29 3d bb 28 a4 69 6e  |val(w%,i%)=.(.in|
00007e10  28 77 25 2c 69 25 29 29  0d 23 be 05 3a 0d 23 c8  |(w%,i%)).#..:.#.|
00007e20  09 dd f2 70 6f 73 0d 23  d2 21 70 24 3d c3 28 72  |...pos.#.!p$=.(r|
00007e30  65 63 6f 72 64 25 2b 31  29 2b 22 2f 22 2b c3 28  |ecord%+1)+"/"+.(|
00007e40  6d 61 78 25 2b 31 29 0d  23 dc 51 e7 20 70 24 3c  |max%+1).#.Q. p$<|
00007e50  3e 70 6f 73 24 20 c8 99  20 22 57 69 6d 70 45 78  |>pos$ .. "WimpEx|
00007e60  74 5f 53 65 74 49 63 6f  6e 53 74 72 69 6e 67 22  |t_SetIconString"|
00007e70  2c 2c 2c 70 6f 73 25 2c  36 2c 70 24 3a 70 6f 73  |,,,pos%,6,p$:pos|
00007e80  24 3d 70 24 3a 70 6f 73  5f 72 65 63 6f 72 64 25  |$=p$:pos_record%|
00007e90  3d 72 65 63 6f 72 64 25  0d 23 e6 05 e1 0d 23 f0  |=record%.#....#.|
00007ea0  05 3a 0d 23 fa 10 dd f2  73 68 6f 77 28 72 65 63  |.:.#....show(rec|
00007eb0  25 29 0d 24 04 17 f2 73  74 6f 72 65 28 70 6f 73  |%).$...store(pos|
00007ec0  5f 72 65 63 6f 72 64 25  29 0d 24 0e 13 e7 20 72  |_record%).$... r|
00007ed0  65 63 25 3c 30 20 72 65  63 25 3d 30 0d 24 18 19  |ec%<0 rec%=0.$..|
00007ee0  e7 20 72 65 63 25 3e 6d  61 78 25 20 72 65 63 25  |. rec%>max% rec%|
00007ef0  3d 6d 61 78 25 0d 24 22  10 72 65 63 6f 72 64 25  |=max%.$".record%|
00007f00  3d 72 65 63 25 0d 24 2c  08 f2 70 6f 73 0d 24 36  |=rec%.$,..pos.$6|
00007f10  15 f2 64 69 73 70 6c 61  79 28 72 65 63 6f 72 64  |..display(record|
00007f20  25 29 0d 24 40 05 e1 0d  24 4a 05 3a 0d 24 54 13  |%).$@...$J.:.$T.|
00007f30  dd f2 64 69 73 70 6c 61  79 28 72 65 63 25 29 0d  |..display(rec%).|
00007f40  24 5e 21 74 61 62 5f 70  6f 73 25 3d 74 61 62 25  |$^!tab_pos%=tab%|
00007f50  2b 28 72 65 63 25 2a 72  65 63 5f 6c 65 6e 25 29  |+(rec%*rec_len%)|
00007f60  0d 24 68 13 e3 20 66 69  65 6c 64 25 3d 30 20 b8  |.$h.. field%=0 .|
00007f70  20 31 30 0d 24 72 3a 20  20 c8 99 20 22 57 69 6d  | 10.$r:  .. "Wim|
00007f80  70 45 78 74 5f 53 65 74  49 63 6f 6e 53 74 72 69  |pExt_SetIconStri|
00007f90  6e 67 22 2c 2c 2c 62 6f  6f 6b 25 2c 66 69 65 6c  |ng",,,book%,fiel|
00007fa0  64 25 2b 39 2c 74 61 62  5f 70 6f 73 25 0d 24 7c  |d%+9,tab_pos%.$||
00007fb0  12 20 20 74 61 62 5f 70  6f 73 25 2b 3d 33 32 0d  |.  tab_pos%+=32.|
00007fc0  24 86 05 ed 0d 24 90 05  e1 0d 24 9a 05 3a 0d 24  |$....$....$..:.$|
00007fd0  a4 11 dd f2 73 74 6f 72  65 28 72 65 63 25 29 0d  |....store(rec%).|
00007fe0  24 ae 21 74 61 62 5f 70  6f 73 25 3d 74 61 62 25  |$.!tab_pos%=tab%|
00007ff0  2b 28 72 65 63 25 2a 72  65 63 5f 6c 65 6e 25 29  |+(rec%*rec_len%)|
00008000  0d 24 b8 13 e3 20 66 69  65 6c 64 25 3d 30 20 b8  |.$... field%=0 .|
00008010  20 31 30 0d 24 c2 35 20  20 e7 20 24 74 61 62 5f  | 10.$.5  . $tab_|
00008020  70 6f 73 25 3c 3e a4 69  6e 28 62 6f 6f 6b 25 2c  |pos%<>.in(book%,|
00008030  66 69 65 6c 64 25 2b 39  29 20 8c 20 f2 6d 6f 64  |field%+9) . .mod|
00008040  69 66 69 65 64 28 31 29  0d 24 cc 23 20 20 24 74  |ified(1).$.#  $t|
00008050  61 62 5f 70 6f 73 25 3d  a4 69 6e 28 62 6f 6f 6b  |ab_pos%=.in(book|
00008060  25 2c 66 69 65 6c 64 25  2b 39 29 0d 24 d6 12 20  |%,field%+9).$.. |
00008070  20 74 61 62 5f 70 6f 73  25 2b 3d 33 32 0d 24 e0  | tab_pos%+=32.$.|
00008080  05 ed 0d 24 ea 05 e1 0d  24 f4 05 3a 0d 24 fe 18  |...$....$..:.$..|
00008090  dd f2 62 6c 61 6e 6b 5f  72 65 63 6f 72 64 28 72  |..blank_record(r|
000080a0  65 63 25 29 0d 25 08 21  74 61 62 5f 70 6f 73 25  |ec%).%.!tab_pos%|
000080b0  3d 74 61 62 25 2b 28 72  65 63 25 2a 72 65 63 5f  |=tab%+(rec%*rec_|
000080c0  6c 65 6e 25 29 0d 25 12  13 e3 20 66 69 65 6c 64  |len%).%... field|
000080d0  25 3d 30 20 b8 20 31 30  0d 25 1c 12 20 20 3f 74  |%=0 . 10.%..  ?t|
000080e0  61 62 5f 70 6f 73 25 3d  31 33 0d 25 26 12 20 20  |ab_pos%=13.%&.  |
000080f0  74 61 62 5f 70 6f 73 25  2b 3d 33 32 0d 25 30 12  |tab_pos%+=32.%0.|
00008100  ed 3a f2 6d 6f 64 69 66  69 65 64 28 31 29 0d 25  |.:.modified(1).%|
00008110  3a 38 e7 20 63 6f 75 6e  74 72 79 25 20 8c 20 24  |:8. country% . $|
00008120  28 74 61 62 25 2b 28 72  65 63 25 2a 72 65 63 5f  |(tab%+(rec%*rec_|
00008130  6c 65 6e 25 29 2b 28 36  2a 33 32 29 29 3d 63 6f  |len%)+(6*32))=co|
00008140  75 6e 74 72 79 24 0d 25  44 05 e1 0d 25 4e 05 3a  |untry$.%D...%N.:|
00008150  0d 25 58 1d dd f2 69 6e  73 65 72 74 5f 72 65 63  |.%X...insert_rec|
00008160  6f 72 64 28 72 25 2c 74  79 70 65 25 29 0d 25 62  |ord(r%,type%).%b|
00008170  17 f2 73 74 6f 72 65 28  70 6f 73 5f 72 65 63 6f  |..store(pos_reco|
00008180  72 64 25 29 0d 25 6c 0b  72 65 63 25 3d 72 25 0d  |rd%).%l.rec%=r%.|
00008190  25 76 b7 e7 20 6d 61 78  25 3d 74 6f 74 61 6c 5f  |%v.. max%=total_|
000081a0  6d 61 78 25 2d 31 20 72  65 71 25 3d 30 3a c8 99  |max%-1 req%=0:..|
000081b0  20 22 57 69 6d 70 45 78  74 5f 4f 70 65 6e 52 65  | "WimpExt_OpenRe|
000081c0  71 75 65 73 74 65 72 22  2c 2c 2c 22 52 65 6d 69  |quester",,,"Remi|
000081d0  6e 64 65 72 20 66 72 6f  6d 20 54 65 6c 41 64 64  |nder from TelAdd|
000081e0  72 22 2c 22 54 68 65 20  6d 61 78 69 6d 75 6d 20  |r","The maximum |
000081f0  6e 75 6d 62 65 72 20 6f  66 20 72 65 63 6f 72 64  |number of record|
00008200  73 20 68 61 73 20 62 65  65 6e 20 72 65 61 63 68  |s has been reach|
00008210  65 64 20 28 22 2b c3 74  6f 74 61 6c 5f 6d 61 78  |ed ("+.total_max|
00008220  25 2b 22 29 2c 20 6e 6f  20 6d 6f 72 65 20 63 61  |%+"), no more ca|
00008230  6e 20 62 65 20 63 72 65  61 74 65 64 2e 22 2c 6f  |n be created.",o|
00008240  6b 25 2c 30 3a e1 0d 25  80 18 f2 63 6c 6f 73 65  |k%,0:..%...close|
00008250  5f 77 69 6e 64 6f 77 28  6c 69 73 74 25 29 0d 25  |_window(list%).%|
00008260  8a 44 e7 20 72 65 63 25  3c 6d 61 78 25 20 8c 20  |.D. rec%<max% . |
00008270  41 25 3d 74 61 62 25 3a  42 25 3d 6d 61 78 25 3a  |A%=tab%:B%=max%:|
00008280  43 25 3d 72 65 63 25 2b  74 79 70 65 25 3a 44 25  |C%=rec%+type%:D%|
00008290  3d 72 65 63 5f 6c 65 6e  25 3a d6 20 69 6e 73 65  |=rec_len%:. inse|
000082a0  72 74 0d 25 94 27 72 65  63 6f 72 64 25 2b 3d 74  |rt.%.'record%+=t|
000082b0  79 70 65 25 3a 6d 61 78  25 2b 3d 31 3a f2 6d 6f  |ype%:max%+=1:.mo|
000082c0  64 69 66 69 65 64 28 31  29 0d 25 9e 1a f2 62 6c  |dified(1).%...bl|
000082d0  61 6e 6b 5f 72 65 63 6f  72 64 28 72 65 63 6f 72  |ank_record(recor|
000082e0  64 25 29 0d 25 a8 15 f2  64 69 73 70 6c 61 79 28  |d%).%...display(|
000082f0  72 65 63 6f 72 64 25 29  0d 25 b2 3b f2 70 6f 73  |record%).%.;.pos|
00008300  3a e7 20 a4 6f 70 65 6e  28 62 6f 6f 6b 25 29 20  |:. .open(book%) |
00008310  c8 99 20 22 57 69 6d 70  45 78 74 5f 50 75 74 43  |.. "WimpExt_PutC|
00008320  61 72 65 74 49 63 6f 6e  22 2c 2c 2c 62 6f 6f 6b  |aretIcon",,,book|
00008330  25 2c 39 0d 25 bc 05 e1  0d 25 c6 05 3a 0d 25 d0  |%,9.%....%..:.%.|
00008340  1f dd f2 64 65 6c 65 74  65 5f 72 65 63 6f 72 64  |...delete_record|
00008350  28 72 65 63 25 2c 73 68  6f 77 25 29 0d 25 da 0e  |(rec%,show%).%..|
00008360  e7 20 6d 61 78 25 3d 30  20 e1 0d 25 e4 18 f2 63  |. max%=0 ..%...c|
00008370  6c 6f 73 65 5f 77 69 6e  64 6f 77 28 6c 69 73 74  |lose_window(list|
00008380  25 29 0d 25 ee 3e e7 20  72 65 63 25 3c 6d 61 78  |%).%.>. rec%<max|
00008390  25 20 8c 20 41 25 3d 74  61 62 25 3a 42 25 3d 6d  |% . A%=tab%:B%=m|
000083a0  61 78 25 3a 43 25 3d 72  65 63 25 3a 44 25 3d 72  |ax%:C%=rec%:D%=r|
000083b0  65 63 5f 6c 65 6e 25 3a  d6 20 64 65 6c 65 74 65  |ec_len%:. delete|
000083c0  0d 25 f8 18 6d 61 78 25  2d 3d 31 3a f2 6d 6f 64  |.%..max%-=1:.mod|
000083d0  69 66 69 65 64 28 31 29  0d 26 02 1f e7 20 72 65  |ified(1).&... re|
000083e0  63 6f 72 64 25 3e 6d 61  78 25 20 72 65 63 6f 72  |cord%>max% recor|
000083f0  64 25 3d 6d 61 78 25 0d  26 0c 55 e7 20 73 68 6f  |d%=max%.&.U. sho|
00008400  77 25 20 f2 64 69 73 70  6c 61 79 28 72 65 63 6f  |w% .display(reco|
00008410  72 64 25 29 3a f2 70 6f  73 3a e7 20 a4 6f 70 65  |rd%):.pos:. .ope|
00008420  6e 28 62 6f 6f 6b 25 29  20 c8 99 20 22 57 69 6d  |n(book%) .. "Wim|
00008430  70 45 78 74 5f 50 75 74  43 61 72 65 74 49 63 6f  |pExt_PutCaretIco|
00008440  6e 22 2c 2c 2c 62 6f 6f  6b 25 2c 39 0d 26 16 05  |n",,,book%,9.&..|
00008450  e1 0d 26 20 05 3a 0d 26  2a 0e dd a4 6c 6f 61 64  |..& .:.&*...load|
00008460  5f 61 63 6b 0d 26 34 19  e7 20 62 25 21 34 30 3c  |_ack.&4.. b%!40<|
00008470  3e 74 65 6c 5f 66 74 25  20 8c 20 3d 30 0d 26 3e  |>tel_ft% . =0.&>|
00008480  37 62 25 21 31 32 3d 62  25 21 38 3a 62 25 21 31  |7b%!12=b%!8:b%!1|
00008490  36 3d 34 3a c8 99 20 22  57 69 6d 70 5f 53 65 6e  |6=4:.. "Wimp_Sen|
000084a0  64 4d 65 73 73 61 67 65  22 2c 31 37 2c 62 25 2c  |dMessage",17,b%,|
000084b0  62 25 21 34 0d 26 48 06  3d 31 0d 26 52 05 3a 0d  |b%!4.&H.=1.&R.:.|
000084c0  26 5c 0e dd f2 73 61 76  65 5f 61 63 6b 0d 26 66  |&\...save_ack.&f|
000084d0  18 e7 20 62 25 21 34 30  3c 3e 74 65 6c 5f 66 74  |.. b%!40<>tel_ft|
000084e0  25 20 8c 20 e1 0d 26 70  1e 24 28 62 25 2b 34 34  |% . ..&p.$(b%+44|
000084f0  29 3d 22 3c 57 69 6d 70  24 53 63 72 61 70 3e 22  |)="<Wimp$Scrap>"|
00008500  2b bd 30 0d 26 7a 37 62  25 21 31 32 3d 62 25 21  |+.0.&z7b%!12=b%!|
00008510  38 3a 62 25 21 31 36 3d  32 3a c8 99 20 22 57 69  |8:b%!16=2:.. "Wi|
00008520  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
00008530  31 37 2c 62 25 2c 62 25  21 34 0d 26 84 05 e1 0d  |17,b%,b%!4.&....|
00008540  26 8e 05 3a 0d 26 98 51  dd a4 62 6c 61 6e 6b 28  |&..:.&.Q..blank(|
00008550  72 25 29 3a 62 6c 61 6e  6b 25 3d 31 3a e3 20 49  |r%):blank%=1:. I|
00008560  25 3d 30 20 b8 20 31 30  3a e7 20 3f 28 74 61 62  |%=0 . 10:. ?(tab|
00008570  25 2b 28 72 25 2a 72 65  63 5f 6c 65 6e 25 29 2b  |%+(r%*rec_len%)+|
00008580  28 49 25 2a 33 32 29 29  3e 3d 33 32 20 62 6c 61  |(I%*32))>=32 bla|
00008590  6e 6b 25 3d 30 0d 26 a2  0d ed 3a 3d 62 6c 61 6e  |nk%=0.&...:=blan|
000085a0  6b 25 0d 26 ac 05 3a 0d  26 b6 29 dd f2 6c 6f 61  |k%.&..:.&.)..loa|
000085b0  64 5f 66 69 6c 65 28 66  6e 24 2c 6d 65 72 67 65  |d_file(fn$,merge|
000085c0  25 29 3a 6f 6c 64 5f 6d  61 78 25 3d 6d 61 78 25  |%):old_max%=max%|
000085d0  0d 26 c0 1f 66 25 3d ad  20 66 6e 24 3a e7 20 66  |.&..f%=. fn$:. f|
000085e0  25 3d 30 20 66 61 69 6c  65 64 25 3d 31 3a e1 0d  |%=0 failed%=1:..|
000085f0  26 ca 0e 69 6e 66 6f 24  3d be 23 66 25 0d 26 d4  |&..info$=.#f%.&.|
00008600  b5 e7 20 c1 69 6e 66 6f  24 2c 31 2c a7 69 6e 66  |.. .info$,1,.inf|
00008610  6f 24 2c 22 28 22 29 2d  31 29 3c 3e 22 54 65 6c  |o$,"(")-1)<>"Tel|
00008620  41 64 64 72 22 20 84 20  a7 69 6e 66 6f 24 2c 22  |Addr" . .info$,"|
00008630  28 22 29 3d 30 20 72 65  71 25 3d 30 3a c8 99 20  |(")=0 req%=0:.. |
00008640  22 57 69 6d 70 45 78 74  5f 4f 70 65 6e 52 65 71  |"WimpExt_OpenReq|
00008650  75 65 73 74 65 72 22 2c  2c 2c 22 45 72 72 6f 72  |uester",,,"Error|
00008660  20 66 72 6f 6d 20 54 65  6c 41 64 64 72 22 2c 22  | from TelAddr","|
00008670  54 68 69 73 20 66 69 6c  65 20 69 73 20 6e 6f 74  |This file is not|
00008680  20 69 6e 20 74 68 65 20  54 65 6c 41 64 64 72 20  | in the TelAddr |
00008690  66 6f 72 6d 61 74 2c 20  6c 6f 61 64 20 66 61 69  |format, load fai|
000086a0  6c 65 64 2e 22 2c 6f 6b  25 2c 30 3a d9 23 66 25  |led.",ok%,0:.#f%|
000086b0  3a e1 0d 26 de 35 70 5f  76 25 3d bb c1 69 6e 66  |:..&.5p_v%=..inf|
000086c0  6f 24 2c 39 2c 33 29 3a  72 65 63 25 3d bb c1 69  |o$,9,3):rec%=..i|
000086d0  6e 66 6f 24 2c 31 33 2c  a7 69 6e 66 6f 24 2c 22  |nfo$,13,.info$,"|
000086e0  29 22 29 2d 31 33 29 0d  26 e8 9f e7 20 70 5f 76  |)")-13).&... p_v|
000086f0  25 3e 66 69 6c 65 5f 76  65 72 25 20 72 65 71 25  |%>file_ver% req%|
00008700  3d 30 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 4f  |=0:.. "WimpExt_O|
00008710  70 65 6e 52 65 71 75 65  73 74 65 72 22 2c 2c 2c  |penRequester",,,|
00008720  22 45 72 72 6f 72 20 66  72 6f 6d 20 54 65 6c 41  |"Error from TelA|
00008730  64 64 72 22 2c 22 54 68  69 73 20 66 69 6c 65 20  |ddr","This file |
00008740  77 61 73 20 63 72 65 61  74 65 64 20 62 79 20 61  |was created by a|
00008750  20 68 69 67 68 65 72 20  76 65 72 73 69 6f 6e 20  | higher version |
00008760  6f 66 20 54 65 6c 41 64  64 72 2c 20 6c 6f 61 64  |of TelAddr, load|
00008770  20 66 61 69 6c 65 64 2e  22 2c 6f 6b 25 2c 30 3a  | failed.",ok%,0:|
00008780  d9 23 66 25 3a e1 0d 26  f2 a3 e7 20 72 65 63 25  |.#f%:..&... rec%|
00008790  3e 74 6f 74 61 6c 5f 6d  61 78 25 20 72 65 71 25  |>total_max% req%|
000087a0  3d 30 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 4f  |=0:.. "WimpExt_O|
000087b0  70 65 6e 52 65 71 75 65  73 74 65 72 22 2c 2c 2c  |penRequester",,,|
000087c0  22 45 72 72 6f 72 20 66  72 6f 6d 20 54 65 6c 41  |"Error from TelA|
000087d0  64 64 72 22 2c 22 54 68  69 73 20 66 69 6c 65 20  |ddr","This file |
000087e0  63 6f 6e 74 61 69 6e 73  20 6d 6f 72 65 20 72 65  |contains more re|
000087f0  63 6f 72 64 73 20 74 68  61 74 20 54 65 6c 41 64  |cords that TelAd|
00008800  64 72 20 63 61 6e 20 68  61 6e 64 6c 65 2c 20 6c  |dr can handle, l|
00008810  6f 61 64 20 66 61 69 6c  65 64 2e 22 2c 6f 6b 25  |oad failed.",ok%|
00008820  2c 30 3a d9 23 66 25 3a  e1 0d 26 fc 0e e7 20 6d  |,0:.#f%:..&... m|
00008830  65 72 67 65 25 20 8c 0d  27 06 b9 20 20 e7 20 a4  |erge% ..'..  . .|
00008840  62 6c 61 6e 6b 28 72 65  63 6f 72 64 25 29 20 80  |blank(record%) .|
00008850  20 72 65 63 25 3d 31 20  80 20 70 66 5f 6d 65 72  | rec%=1 . pf_mer|
00008860  67 65 25 3d 30 20 8c 20  73 74 61 72 74 25 3d 72  |ge%=0 . start%=r|
00008870  65 63 6f 72 64 25 3a 65  6e 64 25 3d 72 65 63 6f  |ecord%:end%=reco|
00008880  72 64 25 20 8b 20 e7 20  a4 62 6c 61 6e 6b 28 6d  |rd% . . .blank(m|
00008890  61 78 25 29 20 8c 20 73  74 61 72 74 25 3d 6d 61  |ax%) . start%=ma|
000088a0  78 25 3a 65 6e 64 25 3d  73 74 61 72 74 25 2b 72  |x%:end%=start%+r|
000088b0  65 63 25 2d 31 3a 6d 61  78 25 2b 3d 72 65 63 25  |ec%-1:max%+=rec%|
000088c0  2d 31 20 8b 20 73 74 61  72 74 25 3d 6d 61 78 25  |-1 . start%=max%|
000088d0  2b 31 3a 65 6e 64 25 3d  73 74 61 72 74 25 2b 72  |+1:end%=start%+r|
000088e0  65 63 25 2d 31 3a 6d 61  78 25 2b 3d 72 65 63 25  |ec%-1:max%+=rec%|
000088f0  0d 27 10 05 cc 0d 27 1a  24 20 20 73 74 61 72 74  |.'....'.$  start|
00008900  25 3d 30 3a 65 6e 64 25  3d 72 65 63 25 2d 31 3a  |%=0:end%=rec%-1:|
00008910  6d 61 78 25 3d 65 6e 64  25 0d 27 24 05 cd 0d 27  |max%=end%.'$...'|
00008920  2e d1 e7 20 6d 61 78 25  3e 74 6f 74 61 6c 5f 6d  |... max%>total_m|
00008930  61 78 25 2d 31 20 72 65  71 25 3d 30 3a 6d 61 78  |ax%-1 req%=0:max|
00008940  25 3d 6f 6c 64 5f 6d 61  78 25 3a c8 99 20 22 57  |%=old_max%:.. "W|
00008950  69 6d 70 45 78 74 5f 4f  70 65 6e 52 65 71 75 65  |impExt_OpenReque|
00008960  73 74 65 72 22 2c 2c 2c  22 45 72 72 6f 72 20 66  |ster",,,"Error f|
00008970  72 6f 6d 20 54 65 6c 41  64 64 72 22 2c 22 42 79  |rom TelAddr","By|
00008980  20 6d 65 72 67 69 6e 67  20 74 68 65 73 65 20 74  | merging these t|
00008990  77 6f 20 66 69 6c 65 73  2c 20 74 68 65 20 72 65  |wo files, the re|
000089a0  73 75 6c 74 20 77 6f 75  6c 64 20 62 65 20 6d 6f  |sult would be mo|
000089b0  72 65 20 72 65 63 6f 72  64 73 20 74 68 61 74 20  |re records that |
000089c0  54 65 6c 41 64 64 72 20  63 61 6e 20 68 61 6e 64  |TelAddr can hand|
000089d0  6c 65 2c 20 6d 65 72 67  65 20 66 61 69 6c 65 64  |le, merge failed|
000089e0  2e 22 2c 6f 6b 25 2c 30  3a d9 23 66 25 3a e1 0d  |.",ok%,0:.#f%:..|
000089f0  27 38 15 c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |'8... "Hourglass|
00008a00  5f 4f 6e 22 0d 27 42 18  e3 20 72 65 63 25 3d 73  |_On".'B.. rec%=s|
00008a10  74 61 72 74 25 20 b8 20  65 6e 64 25 0d 27 4c 54  |tart% . end%.'LT|
00008a20  20 20 e7 20 6d 61 78 25  2d 73 74 61 72 74 25 3e  |  . max%-start%>|
00008a30  30 20 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |0 .. "Hourglass_|
00008a40  50 65 72 63 65 6e 74 61  67 65 22 2c a8 28 28 28  |Percentage",.(((|
00008a50  72 65 63 25 2d 73 74 61  72 74 25 29 2f 28 6d 61  |rec%-start%)/(ma|
00008a60  78 25 2d 73 74 61 72 74  25 29 29 2a 31 30 30 29  |x%-start%))*100)|
00008a70  0d 27 56 23 20 20 74 61  62 5f 70 6f 73 25 3d 74  |.'V#  tab_pos%=t|
00008a80  61 62 25 2b 28 72 65 63  25 2a 72 65 63 5f 6c 65  |ab%+(rec%*rec_le|
00008a90  6e 25 29 0d 27 60 15 20  20 e3 20 66 69 65 6c 64  |n%).'`.  . field|
00008aa0  25 3d 30 20 b8 20 31 30  0d 27 6a 1b 20 20 20 20  |%=0 . 10.'j.    |
00008ab0  24 74 61 62 5f 70 6f 73  25 3d c0 be 23 66 25 2c  |$tab_pos%=..#f%,|
00008ac0  33 31 29 0d 27 74 14 20  20 20 20 74 61 62 5f 70  |31).'t.    tab_p|
00008ad0  6f 73 25 2b 3d 33 32 0d  27 7e 07 20 20 ed 0d 27  |os%+=32.'~.  ..'|
00008ae0  88 05 ed 0d 27 92 08 d9  23 66 25 0d 27 9c 16 c8  |....'...#f%.'...|
00008af0  99 20 22 48 6f 75 72 67  6c 61 73 73 5f 4f 66 66  |. "Hourglass_Off|
00008b00  22 0d 27 a6 72 72 65 63  6f 72 64 25 3d 73 74 61  |".'.rrecord%=sta|
00008b10  72 74 25 3a f2 64 69 73  70 6c 61 79 28 72 65 63  |rt%:.display(rec|
00008b20  6f 72 64 25 29 3a f2 70  6f 73 3a e7 20 a4 6f 70  |ord%):.pos:. .op|
00008b30  65 6e 28 62 6f 6f 6b 25  29 3d 30 20 f2 6f 70 65  |en(book%)=0 .ope|
00008b40  6e 5f 77 69 6e 64 6f 77  28 62 6f 6f 6b 25 29 3a  |n_window(book%):|
00008b50  c8 99 20 22 57 69 6d 70  45 78 74 5f 50 75 74 43  |.. "WimpExt_PutC|
00008b60  61 72 65 74 49 63 6f 6e  22 2c 2c 2c 62 6f 6f 6b  |aretIcon",,,book|
00008b70  25 2c 39 0d 27 b0 1d e7  20 6d 65 72 67 65 25 3d  |%,9.'... merge%=|
00008b80  30 20 67 6f 6f 64 5f 62  6f 6f 6b 24 3d 66 6e 24  |0 good_book$=fn$|
00008b90  0d 27 ba 2a f2 6d 6f 64  69 66 69 65 64 28 6d 65  |.'.*.modified(me|
00008ba0  72 67 65 25 29 3a f2 63  6c 6f 73 65 5f 77 69 6e  |rge%):.close_win|
00008bb0  64 6f 77 28 6c 69 73 74  25 29 0d 27 c4 05 e1 0d  |dow(list%).'....|
00008bc0  27 ce 05 3a 0d 27 d8 0a  dd f2 73 6f 72 74 0d 27  |'..:.'....sort.'|
00008bd0  e2 13 f2 73 74 6f 72 65  28 72 65 63 6f 72 64 25  |...store(record%|
00008be0  29 0d 27 ec 15 c8 99 20  22 48 6f 75 72 67 6c 61  |).'.... "Hourgla|
00008bf0  73 73 5f 4f 6e 22 0d 27  f6 11 e3 20 49 25 3d 30  |ss_On".'... I%=0|
00008c00  20 b8 20 6d 61 78 25 0d  28 00 29 20 20 70 6f 69  | . max%.(.)  poi|
00008c10  6e 74 65 72 73 25 21 28  49 25 2a 34 29 3d 74 61  |nters%!(I%*4)=ta|
00008c20  62 25 2b 28 49 25 2a 72  65 63 5f 6c 65 6e 25 29  |b%+(I%*rec_len%)|
00008c30  0d 28 0a 05 ed 0d 28 14  36 c8 99 20 22 4f 53 5f  |.(....(.6.. "OS_|
00008c40  48 65 61 70 53 6f 72 74  22 2c 6d 61 78 25 2b 31  |HeapSort",max%+1|
00008c50  2c 70 6f 69 6e 74 65 72  73 25 2c 34 2c 2c 74 61  |,pointers%,4,,ta|
00008c60  62 25 2c 72 65 63 5f 6c  65 6e 25 0d 28 1e 33 41  |b%,rec_len%.(.3A|
00008c70  25 3d 74 61 62 25 3a 42  25 3d 70 6f 69 6e 74 65  |%=tab%:B%=pointe|
00008c80  72 73 25 3a 43 25 3d 6d  61 78 25 3a 44 25 3d 72  |rs%:C%=max%:D%=r|
00008c90  65 63 5f 6c 65 6e 25 3a  d6 20 73 6f 72 74 0d 28  |ec_len%:. sort.(|
00008ca0  28 15 f2 64 69 73 70 6c  61 79 28 72 65 63 6f 72  |(..display(recor|
00008cb0  64 25 29 0d 28 32 38 c8  99 20 22 48 6f 75 72 67  |d%).(28.. "Hourg|
00008cc0  6c 61 73 73 5f 4f 66 66  22 3a f2 6d 6f 64 69 66  |lass_Off":.modif|
00008cd0  69 65 64 28 31 29 3a f2  63 6c 6f 73 65 5f 77 69  |ied(1):.close_wi|
00008ce0  6e 64 6f 77 28 6c 69 73  74 25 29 0d 28 3c 05 e1  |ndow(list%).(<..|
00008cf0  0d 28 46 05 3a 0d 28 50  1a dd f2 72 65 64 72 61  |.(F.:.(P...redra|
00008d00  77 5f 6c 69 73 74 3a 79  5f 74 6f 70 25 3d 30 0d  |w_list:y_top%=0.|
00008d10  28 5a 29 74 6f 70 25 3d  28 79 6f 25 2d 62 25 21  |(Z)top%=(yo%-b%!|
00008d20  34 30 29 20 81 20 34 38  3a e7 20 74 6f 70 25 3c  |40) . 48:. top%<|
00008d30  30 20 74 6f 70 25 3d 30  0d 28 64 1d 62 61 73 65  |0 top%=0.(d.base|
00008d40  25 3d 28 36 30 2b 79 6f  25 2d 62 25 21 33 32 29  |%=(60+yo%-b%!32)|
00008d50  20 81 20 34 38 0d 28 6e  19 c8 99 20 22 57 69 6d  | . 48.(n... "Wim|
00008d60  70 5f 53 65 74 43 6f 6c  6f 75 72 22 2c 37 0d 28  |p_SetColour",7.(|
00008d70  78 41 86 20 78 6f 25 2b  28 34 2a 31 36 29 2d 31  |xA. xo%+(4*16)-1|
00008d80  30 2c 79 6f 25 2d 28 74  6f 70 25 2a 34 38 29 2b  |0,yo%-(top%*48)+|
00008d90  31 32 2c 78 6f 25 2b 28  34 2a 31 36 29 2d 31 30  |12,xo%+(4*16)-10|
00008da0  2c 79 6f 25 2d 28 62 61  73 65 25 2a 34 38 29 0d  |,yo%-(base%*48).|
00008db0  28 82 2a 69 25 3d 74 6f  70 25 3a c8 95 20 69 25  |(.*i%=top%:.. i%|
00008dc0  3c 3d 73 65 61 72 63 68  5f 6c 65 6e 25 20 80 20  |<=search_len% . |
00008dd0  69 25 3c 3d 62 61 73 65  25 0d 28 8c 1f 20 20 63  |i%<=base%.(..  c|
00008de0  6f 6c 25 3d 30 3a e7 20  69 25 3d 73 65 61 72 63  |ol%=0:. i%=searc|
00008df0  68 5f 73 65 6c 25 20 8c  0d 28 96 17 20 20 20 20  |h_sel% ..(..    |
00008e00  63 6f 6c 25 3d 32 3a 79  5f 74 6f 70 25 3d 30 0d  |col%=2:y_top%=0.|
00008e10  28 a0 07 20 20 cc 0d 28  aa 1e 20 20 20 20 e7 20  |(..  ..(..    . |
00008e20  69 25 3d 6f 6c 64 5f 73  65 61 72 63 68 5f 73 65  |i%=old_search_se|
00008e30  6c 25 20 8c 0d 28 b4 10  20 20 20 20 20 20 63 6f  |l% ..(..      co|
00008e40  6c 25 3d 31 0d 28 be 35  20 20 20 20 20 20 e7 20  |l%=1.(.5      . |
00008e50  6f 6c 64 5f 73 65 61 72  63 68 5f 73 65 6c 25 3d  |old_search_sel%=|
00008e60  73 65 61 72 63 68 5f 73  65 6c 25 2b 31 20 8c 20  |search_sel%+1 . |
00008e70  79 5f 74 6f 70 25 3d 2d  34 0d 28 c8 09 20 20 20  |y_top%=-4.(..   |
00008e80  20 cd 0d 28 d2 07 20 20  cd 0d 28 dc ad 20 20 e7  | ..(..  ..(..  .|
00008e90  20 63 6f 6c 25 3e 30 20  c8 99 20 22 57 69 6d 70  | col%>0 .. "Wimp|
00008ea0  5f 53 65 74 43 6f 6c 6f  75 72 22 2c 63 6f 6c 25  |_SetColour",col%|
00008eb0  3a c8 93 20 c8 90 20 78  6f 25 2d 36 2c 79 6f 25  |:.. .. xo%-6,yo%|
00008ec0  2d 28 69 25 2a 34 38 29  2b 31 32 2b 79 5f 74 6f  |-(i%*48)+12+y_to|
00008ed0  70 25 2c 28 34 2a 31 36  29 2d 36 2c 2d 34 38 2d  |p%,(4*16)-6,-48-|
00008ee0  79 5f 74 6f 70 25 3a c8  93 20 c8 90 20 78 6f 25  |y_top%:.. .. xo%|
00008ef0  2b 28 34 2a 31 36 29 2d  38 2c 79 6f 25 2d 28 69  |+(4*16)-8,yo%-(i|
00008f00  25 2a 34 38 29 2b 31 32  2b 79 5f 74 6f 70 25 2c  |%*48)+12+y_top%,|
00008f10  34 30 2a 31 36 2c 2d 34  38 2d 79 5f 74 6f 70 25  |40*16,-48-y_top%|
00008f20  3a c8 99 20 22 57 69 6d  70 5f 53 65 74 43 6f 6c  |:.. "Wimp_SetCol|
00008f30  6f 75 72 22 2c 37 0d 28  e6 2d 20 20 ec 20 78 6f  |our",7.(.-  . xo|
00008f40  25 2c 79 6f 25 2d 28 69  25 2a 34 38 29 3a 6e 25  |%,yo%-(i%*48):n%|
00008f50  3d 28 74 61 62 6c 65 25  21 28 69 25 2a 31 32 29  |=(table%!(i%*12)|
00008f60  29 2b 31 0d 28 f0 17 20  20 f1 20 c4 33 2d a9 c3  |)+1.(..  . .3-..|
00008f70  6e 25 2c 22 30 22 29 3b  6e 25 0d 28 fa 1e 20 20  |n%,"0");n%.(..  |
00008f80  ec 20 78 6f 25 2b 28 34  2a 31 36 29 2c 79 6f 25  |. xo%+(4*16),yo%|
00008f90  2d 28 69 25 2a 34 38 29  0d 29 04 43 20 20 41 25  |-(i%*48).).C  A%|
00008fa0  3d 74 61 62 25 2b 28 28  74 61 62 6c 65 25 21 28  |=tab%+((table%!(|
00008fb0  69 25 2a 31 32 29 29 2a  72 65 63 5f 6c 65 6e 25  |i%*12))*rec_len%|
00008fc0  29 2b 28 28 74 61 62 6c  65 25 21 28 28 69 25 2a  |)+((table%!((i%*|
00008fd0  31 32 29 2b 34 29 29 2a  33 32 29 0d 29 0e 12 20  |12)+4))*32).).. |
00008fe0  20 d6 20 63 75 74 3a 61  24 3d 24 41 25 0d 29 18  | . cut:a$=$A%.).|
00008ff0  1b 20 20 70 25 3d 74 61  62 6c 65 25 21 28 28 69  |.  p%=table%!((i|
00009000  25 2a 31 32 29 2b 38 29  0d 29 22 2b 20 20 73 6c  |%*12)+8).)"+  sl|
00009010  25 3d a9 73 65 61 72 63  68 24 3a e7 20 c2 73 65  |%=.search$:. .se|
00009020  61 72 63 68 24 2c 31 29  3d 22 2a 22 20 73 6c 25  |arch$,1)="*" sl%|
00009030  2d 3d 31 0d 29 2c 6a 20  20 f1 20 c0 61 24 2c 70  |-=1.),j  . .a$,p|
00009040  25 2d 31 29 3b 3a c8 99  20 22 57 69 6d 70 5f 53  |%-1);:.. "Wimp_S|
00009050  65 74 43 6f 6c 6f 75 72  22 2c 70 66 5f 63 6f 6c  |etColour",pf_col|
00009060  6f 75 72 25 3a f1 20 c1  61 24 2c 70 25 2c 73 6c  |our%:. .a$,p%,sl|
00009070  25 29 3b 3a c8 99 20 22  57 69 6d 70 5f 53 65 74  |%);:.. "Wimp_Set|
00009080  43 6f 6c 6f 75 72 22 2c  37 3a f1 20 c2 61 24 2c  |Colour",7:. .a$,|
00009090  a9 61 24 2d 70 25 2d 73  6c 25 2b 31 29 0d 29 36  |.a$-p%-sl%+1).)6|
000090a0  4b 20 20 f4 20 53 59 53  20 22 57 69 6d 70 5f 53  |K  . SYS "Wimp_S|
000090b0  65 74 43 6f 6c 6f 75 72  22 2c 33 3a 50 52 49 4e  |etColour",3:PRIN|
000090c0  54 20 22 2e 2e 2e 61 6c  74 65 72 65 64 2e 2e 2e  |T "...altered...|
000090d0  22 3a 53 59 53 20 22 57  69 6d 70 5f 53 65 74 43  |":SYS "Wimp_SetC|
000090e0  6f 6c 6f 75 72 22 2c 37  0d 29 40 0b 69 25 2b 3d  |olour",7.)@.i%+=|
000090f0  31 3a ce 0d 29 4a 05 e1  0d 29 54 05 3a 0d 29 5e  |1:..)J...)T.:.)^|
00009100  1c dd f2 73 65 61 72 63  68 3a f2 73 74 6f 72 65  |...search:.store|
00009110  28 72 65 63 6f 72 64 25  29 0d 29 68 4a 73 65 61  |(record%).)hJsea|
00009120  72 63 68 5f 6c 65 6e 25  3d 2d 31 3a 73 65 61 72  |rch_len%=-1:sear|
00009130  63 68 5f 73 65 6c 25 3d  2d 31 3a 6f 6c 64 5f 73  |ch_sel%=-1:old_s|
00009140  65 61 72 63 68 5f 73 65  6c 25 3d 30 3a 73 65 61  |earch_sel%=0:sea|
00009150  72 63 68 24 3d a4 69 6e  28 73 65 61 72 63 68 25  |rch$=.in(search%|
00009160  2c 36 29 0d 29 72 7f e7  20 73 65 61 72 63 68 24  |,6).)r.. search$|
00009170  3d 22 22 20 72 65 71 25  3d 30 3a c8 99 20 22 57  |="" req%=0:.. "W|
00009180  69 6d 70 45 78 74 5f 4f  70 65 6e 52 65 71 75 65  |impExt_OpenReque|
00009190  73 74 65 72 22 2c 2c 2c  22 52 65 6d 69 6e 64 65  |ster",,,"Reminde|
000091a0  72 20 66 72 6f 6d 20 54  65 6c 41 64 64 72 22 2c  |r from TelAddr",|
000091b0  22 59 6f 75 20 63 61 6e  6e 6f 74 20 73 65 61 72  |"You cannot sear|
000091c0  63 68 20 75 73 69 6e 67  20 61 6e 20 65 6d 70 74  |ch using an empt|
000091d0  79 20 73 74 72 69 6e 67  2e 22 2c 6f 6b 25 2c 30  |y string.",ok%,0|
000091e0  3a e1 0d 29 7c 3d 73 65  61 72 63 68 5f 66 6c 61  |:..)|=search_fla|
000091f0  67 25 3d 30 3a 66 6c 61  67 5f 70 6f 73 25 3d 30  |g%=0:flag_pos%=0|
00009200  3a e3 20 49 25 3d 37 20  b8 20 31 35 3a e3 20 4a  |:. I%=7 . 15:. J|
00009210  25 3d 30 20 b8 20 94 28  49 25 3d 38 29 2a 32 0d  |%=0 . .(I%=8)*2.|
00009220  29 86 3a 73 65 61 72 63  68 5f 66 6c 61 67 25 3d  |).:search_flag%=|
00009230  73 65 61 72 63 68 5f 66  6c 61 67 25 20 84 20 a4  |search_flag% . .|
00009240  6f 6e 28 73 65 61 72 63  68 25 2c 49 25 29 3c 3c  |on(search%,I%)<<|
00009250  66 6c 61 67 5f 70 6f 73  25 0d 29 90 14 66 6c 61  |flag_pos%.)..fla|
00009260  67 5f 70 6f 73 25 2b 3d  31 3a ed 3a ed 0d 29 9a  |g_pos%+=1:.:..).|
00009270  a8 e7 20 73 65 61 72 63  68 5f 66 6c 61 67 25 3d  |.. search_flag%=|
00009280  30 20 72 65 71 25 3d 30  3a c8 99 20 22 57 69 6d  |0 req%=0:.. "Wim|
00009290  70 45 78 74 5f 4f 70 65  6e 52 65 71 75 65 73 74  |pExt_OpenRequest|
000092a0  65 72 22 2c 2c 2c 22 52  65 6d 69 6e 64 65 72 20  |er",,,"Reminder |
000092b0  66 72 6f 6d 20 54 65 6c  41 64 64 72 22 2c 22 59  |from TelAddr","Y|
000092c0  6f 75 20 63 61 6e 6e 6f  74 20 73 74 61 72 74 20  |ou cannot start |
000092d0  61 20 73 65 61 72 63 68  20 77 69 74 68 6f 75 74  |a search without|
000092e0  20 73 70 65 63 69 66 79  69 6e 67 20 6f 6e 65 20  | specifying one |
000092f0  6f 72 20 6d 6f 72 65 20  66 69 65 6c 64 73 20 74  |or more fields t|
00009300  6f 20 73 65 61 72 63 68  20 69 6e 2e 22 2c 6f 6b  |o search in.",ok|
00009310  25 2c 30 3a e1 0d 29 a4  19 63 61 73 65 25 3d a4  |%,0:..)..case%=.|
00009320  6f 6e 28 73 65 61 72 63  68 25 2c 31 36 29 0d 29  |on(search%,16).)|
00009330  ae 25 e7 20 63 61 73 65  25 3d 30 20 73 65 61 72  |.%. case%=0 sear|
00009340  63 68 24 3d a4 6c 6f 77  65 72 28 73 65 61 72 63  |ch$=.lower(searc|
00009350  68 24 29 0d 29 b8 15 c8  99 20 22 48 6f 75 72 67  |h$).).... "Hourg|
00009360  6c 61 73 73 5f 4f 6e 22  0d 29 c2 0f 24 62 25 3d  |lass_On".)..$b%=|
00009370  73 65 61 72 63 68 24 0d  29 cc 6a 41 25 3d 74 61  |search$.).jA%=ta|
00009380  62 25 3a 42 25 3d 6d 61  78 25 3a 43 25 3d 72 65  |b%:B%=max%:C%=re|
00009390  63 5f 6c 65 6e 25 3a 44  25 3d 74 61 62 6c 65 25  |c_len%:D%=table%|
000093a0  3a 45 25 3d 62 25 3a 46  25 3d a9 28 24 62 25 29  |:E%=b%:F%=.($b%)|
000093b0  3a 47 25 3d 73 65 61 72  63 68 5f 66 6c 61 67 25  |:G%=search_flag%|
000093c0  3a 48 25 3d 63 61 73 65  25 3a 73 65 61 72 63 68  |:H%=case%:search|
000093d0  5f 6c 65 6e 25 3d ba 28  73 65 61 72 63 68 29 2d  |_len%=.(search)-|
000093e0  31 0d 29 d6 16 c8 99 20  22 48 6f 75 72 67 6c 61  |1.).... "Hourgla|
000093f0  73 73 5f 4f 66 66 22 0d  29 e0 9e e7 20 73 65 61  |ss_Off".)... sea|
00009400  72 63 68 5f 6c 65 6e 25  3c 30 20 72 65 71 25 3d  |rch_len%<0 req%=|
00009410  30 3a c8 99 20 22 57 69  6d 70 45 78 74 5f 4f 70  |0:.. "WimpExt_Op|
00009420  65 6e 52 65 71 75 65 73  74 65 72 22 2c 2c 2c 22  |enRequester",,,"|
00009430  4d 65 73 73 61 67 65 20  66 72 6f 6d 20 54 65 6c  |Message from Tel|
00009440  41 64 64 72 22 2c 22 54  68 65 20 73 65 61 72 63  |Addr","The searc|
00009450  68 20 73 74 72 69 6e 67  20 63 6f 75 6c 64 20 6e  |h string could n|
00009460  6f 74 20 62 65 20 66 6f  75 6e 64 20 77 69 74 68  |ot be found with|
00009470  69 6e 20 74 68 65 20 63  75 72 72 65 6e 74 20 61  |in the current a|
00009480  64 64 72 65 73 73 20 62  6f 6f 6b 2e 22 2c 6f 6b  |ddress book.",ok|
00009490  25 2c 30 3a e1 0d 29 ea  29 68 74 25 3d 73 65 61  |%,0:..).)ht%=sea|
000094a0  72 63 68 5f 6c 65 6e 25  3a e7 20 73 65 61 72 63  |rch_len%:. searc|
000094b0  68 5f 6c 65 6e 25 3c 37  20 68 74 25 3d 37 0d 29  |h_len%<7 ht%=7.)|
000094c0  f4 4d 21 62 25 3d 30 3a  62 25 21 34 3d 2d 34 38  |.M!b%=0:b%!4=-48|
000094d0  2a 28 68 74 25 2b 31 29  3a 62 25 21 38 3d 36 30  |*(ht%+1):b%!8=60|
000094e0  34 3a 62 25 21 31 32 3d  30 3a c8 99 20 22 57 69  |4:b%!12=0:.. "Wi|
000094f0  6d 70 5f 53 65 74 45 78  74 65 6e 74 22 2c 6c 69  |mp_SetExtent",li|
00009500  73 74 5f 70 61 6e 65 25  2c 62 25 0d 29 fe 1a f2  |st_pane%,b%.)...|
00009510  63 6c 6f 73 65 5f 77 69  6e 64 6f 77 28 73 65 61  |close_window(sea|
00009520  72 63 68 25 29 0d 2a 08  33 41 25 3d 74 61 62 6c  |rch%).*.3A%=tabl|
00009530  65 25 3a 42 25 3d 73 65  61 72 63 68 5f 6c 65 6e  |e%:B%=search_len|
00009540  25 2b 31 3a 6e 75 6d 62  65 72 25 3d ba 28 63 6f  |%+1:number%=.(co|
00009550  75 6e 74 5f 72 65 63 29  0d 2a 12 56 24 62 25 3d  |unt_rec).*.V$b%=|
00009560  22 53 65 61 72 63 68 20  52 65 73 75 6c 74 73 20  |"Search Results |
00009570  28 22 2b c3 6e 75 6d 62  65 72 25 2b 22 20 6d 61  |("+.number%+" ma|
00009580  74 63 68 65 64 29 22 3a  c8 99 20 22 57 69 6d 70  |tched)":.. "Wimp|
00009590  45 78 74 5f 53 65 74 57  69 6e 64 6f 77 54 69 74  |Ext_SetWindowTit|
000095a0  6c 65 22 2c 2c 2c 6c 69  73 74 25 2c 62 25 0d 2a  |le",,,list%,b%.*|
000095b0  1c 1b f2 73 63 72 6f 6c  6c 5f 74 6f 70 28 6c 69  |...scroll_top(li|
000095c0  73 74 5f 70 61 6e 65 25  29 0d 2a 26 23 73 65 61  |st_pane%).*&#sea|
000095d0  72 63 68 65 64 25 3d 31  3a f2 6f 70 65 6e 5f 77  |rched%=1:.open_w|
000095e0  69 6e 64 6f 77 28 6c 69  73 74 25 29 0d 2a 30 05  |indow(list%).*0.|
000095f0  e1 0d 2a 3a 05 3a 0d 2a  44 55 dd a4 6c 6f 77 65  |..*:.:.*DU..lowe|
00009600  72 28 6c 24 29 3a 73 24  3d 22 22 3a e3 49 25 3d  |r(l$):s$="":.I%=|
00009610  31 b8 a9 6c 24 3a 61 25  3d 97 c1 6c 24 2c 49 25  |1..l$:a%=..l$,I%|
00009620  2c 31 29 3a 73 24 2b 3d  bd 28 61 25 20 84 20 28  |,1):s$+=.(a% . (|
00009630  94 28 61 25 3e 36 34 20  80 20 61 25 3c 39 31 29  |.(a%>64 . a%<91)|
00009640  2a 33 32 29 29 3a ed 3a  3d 73 24 0d 2a 4e 05 3a  |*32)):.:=s$.*N.:|
00009650  0d 2a 58 21 dd f2 6d 6f  64 69 66 69 65 64 28 6d  |.*X!..modified(m|
00009660  25 29 3a 6d 6f 64 69 66  69 65 64 25 3d 6d 25 3a  |%):modified%=m%:|
00009670  e1 0d 2a 62 05 3a 0d 2a  6c 15 dd f2 64 65 6c 65  |..*b.:.*l...dele|
00009680  74 65 5f 73 65 61 72 63  68 65 64 0d 2a 76 15 c8  |te_searched.*v..|
00009690  99 20 22 48 6f 75 72 67  6c 61 73 73 5f 4f 6e 22  |. "Hourglass_On"|
000096a0  0d 2a 80 0f 6f 6c 64 5f  72 65 63 25 3d 2d 31 0d  |.*..old_rec%=-1.|
000096b0  2a 8a 0e e7 20 6d 61 78  25 3e 30 20 8c 0d 2a 94  |*... max%>0 ..*.|
000096c0  1f 20 20 e3 20 49 25 3d  73 65 61 72 63 68 5f 6c  |.  . I%=search_l|
000096d0  65 6e 25 20 b8 20 30 20  88 20 2d 31 0d 2a 9e 57  |en% . 0 . -1.*.W|
000096e0  20 20 20 20 e7 20 73 65  61 72 63 68 5f 6c 65 6e  |    . search_len|
000096f0  25 3e 30 20 c8 99 20 22  48 6f 75 72 67 6c 61 73  |%>0 .. "Hourglas|
00009700  73 5f 50 65 72 63 65 6e  74 61 67 65 22 2c a8 28  |s_Percentage",.(|
00009710  28 28 73 65 61 72 63 68  5f 6c 65 6e 25 2d 49 25  |((search_len%-I%|
00009720  29 2f 73 65 61 72 63 68  5f 6c 65 6e 25 29 2a 31  |)/search_len%)*1|
00009730  30 30 29 0d 2a a8 1b 20  20 20 20 72 65 63 25 3d  |00).*..    rec%=|
00009740  74 61 62 6c 65 25 21 28  49 25 2a 31 32 29 0d 2a  |table%!(I%*12).*|
00009750  b2 24 20 20 20 20 e7 20  6d 61 78 25 3e 3d 30 20  |.$    . max%>=0 |
00009760  80 20 72 65 63 25 3c 3e  6f 6c 64 5f 72 65 63 25  |. rec%<>old_rec%|
00009770  20 8c 0d 2a bc 72 20 20  20 20 20 20 e7 20 72 65  | ..*.r      . re|
00009780  63 25 3c 6d 61 78 25 20  8c 20 41 25 3d 74 61 62  |c%<max% . A%=tab|
00009790  25 3a 42 25 3d 6d 61 78  25 3a 43 25 3d 72 65 63  |%:B%=max%:C%=rec|
000097a0  25 3a 44 25 3d 72 65 63  5f 6c 65 6e 25 3a d6 20  |%:D%=rec_len%:. |
000097b0  64 65 6c 65 74 65 3a 6d  61 78 25 2d 3d 31 3a 6f  |delete:max%-=1:o|
000097c0  6c 64 5f 72 65 63 25 3d  72 65 63 25 20 8b 20 6d  |ld_rec%=rec% . m|
000097d0  61 78 25 2d 3d 31 3a 6f  6c 64 5f 72 65 63 25 3d  |ax%-=1:old_rec%=|
000097e0  72 65 63 25 0d 2a c6 04  0d 2a d0 09 20 20 20 20  |rec%.*...*..    |
000097f0  cd 0d 2a da 07 20 20 ed  0d 2a e4 05 cd 0d 2a ee  |..*..  ..*....*.|
00009800  16 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  |... "Hourglass_O|
00009810  66 66 22 0d 2a f8 10 f2  6d 6f 64 69 66 69 65 64  |ff".*...modified|
00009820  28 31 29 0d 2b 02 25 e7  20 6d 61 78 25 3c 3d 30  |(1).+.%. max%<=0|
00009830  20 6d 61 78 25 3d 30 3a  f2 62 6c 61 6e 6b 5f 72  | max%=0:.blank_r|
00009840  65 63 6f 72 64 28 30 29  0d 2b 0c 18 f2 63 6c 6f  |ecord(0).+...clo|
00009850  73 65 5f 77 69 6e 64 6f  77 28 6c 69 73 74 25 29  |se_window(list%)|
00009860  0d 2b 16 1f e7 20 72 65  63 6f 72 64 25 3e 6d 61  |.+... record%>ma|
00009870  78 25 20 72 65 63 6f 72  64 25 3d 6d 61 78 25 0d  |x% record%=max%.|
00009880  2b 20 1a f2 64 69 73 70  6c 61 79 28 72 65 63 6f  |+ ..display(reco|
00009890  72 64 25 29 3a f2 70 6f  73 0d 2b 2a 05 e1 0d 2b  |rd%):.pos.+*...+|
000098a0  34 05 3a 0d 2b 3e 10 dd  f2 73 63 72 6f 6c 6c 5f  |4.:.+>...scroll_|
000098b0  72 65 71 0d 2b 48 1c 79  25 3d 62 25 21 32 34 3a  |req.+H.y%=b%!24:|
000098c0  73 79 25 3d 62 25 21 33  36 3a 63 68 25 3d 30 0d  |sy%=b%!36:ch%=0.|
000098d0  2b 52 43 e7 20 79 25 20  83 20 34 38 20 3c 3e 30  |+RC. y% . 48 <>0|
000098e0  20 8c 20 62 25 21 32 34  3d 28 79 25 20 81 20 34  | . b%!24=(y% . 4|
000098f0  38 29 2a 34 38 3a 63 68  25 3d 31 3a e7 20 73 79  |8)*48:ch%=1:. sy|
00009900  25 3c 30 20 62 25 21 32  34 3d 62 25 21 32 34 2d  |%<0 b%!24=b%!24-|
00009910  34 38 0d 2b 5c 30 e7 20  94 28 73 79 25 29 3d 32  |48.+\0. .(sy%)=2|
00009920  20 73 79 25 3d 34 38 2a  34 2a 73 79 25 20 8b 20  | sy%=48*4*sy% . |
00009930  e7 20 63 68 25 3d 30 20  73 79 25 3d 73 79 25 2a  |. ch%=0 sy%=sy%*|
00009940  34 38 0d 2b 66 13 62 25  21 32 34 3d 62 25 21 32  |48.+f.b%!24=b%!2|
00009950  34 2b 73 79 25 0d 2b 70  1c c8 99 20 22 57 69 6d  |4+sy%.+p... "Wim|
00009960  70 5f 4f 70 65 6e 57 69  6e 64 6f 77 22 2c 2c 62  |p_OpenWindow",,b|
00009970  25 0d 2b 7a 05 e1 0d 2b  84 05 3a 0d 2b 8e 30 dd  |%.+z...+..:.+.0.|
00009980  f2 73 61 76 65 5f 70 72  65 66 73 3a 7a 25 3d 70  |.save_prefs:z%=p|
00009990  72 65 66 5f 70 61 6e 65  25 3a c8 99 20 22 48 6f  |ref_pane%:.. "Ho|
000099a0  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 2b 98 1e 66  |urglass_On".+..f|
000099b0  25 3d ae 20 22 3c 54 65  6c 41 64 64 72 24 44 69  |%=. "<TelAddr$Di|
000099c0  72 3e 2e 50 72 65 66 73  22 0d 2b a2 30 f1 23 66  |r>.Prefs".+.0.#f|
000099d0  25 2c a4 6f 6e 28 7a 25  2c 32 29 2c a4 6f 6e 28  |%,.on(z%,2),.on(|
000099e0  7a 25 2c 33 29 2c a4 6f  6e 28 7a 25 2c 34 29 2c  |z%,3),.on(z%,4),|
000099f0  a4 6f 6e 28 7a 25 2c 35  29 0d 2b ac 2e f1 23 66  |.on(z%,5).+...#f|
00009a00  25 2c a4 77 68 69 63 68  28 7a 25 2c 39 2c 31 30  |%,.which(z%,9,10|
00009a10  29 2d 39 2c a4 77 68 69  63 68 28 7a 25 2c 31 33  |)-9,.which(z%,13|
00009a20  2c 31 34 29 2d 31 33 0d  2b b6 32 e3 20 49 25 3d  |,14)-13.+.2. I%=|
00009a30  31 39 20 b8 20 32 37 3a  f1 23 66 25 2c a4 6f 6e  |19 . 27:.#f%,.on|
00009a40  28 7a 25 2c 49 25 29 3a  ed 3a f1 23 66 25 2c a4  |(z%,I%):.:.#f%,.|
00009a50  6f 6e 28 7a 25 2c 33 30  29 0d 2b c0 3f f1 23 66  |on(z%,30).+.?.#f|
00009a60  25 2c a4 77 68 69 63 68  28 7a 25 2c 33 35 2c 33  |%,.which(z%,35,3|
00009a70  36 29 2d 33 35 2c a4 6f  6e 28 7a 25 2c 33 37 29  |6)-35,.on(z%,37)|
00009a80  2c a4 76 61 6c 28 7a 25  2c 33 39 29 2c a4 76 61  |,.val(z%,39),.va|
00009a90  6c 28 7a 25 2c 34 33 29  0d 2b ca 3b f1 23 66 25  |l(z%,43).+.;.#f%|
00009aa0  2c a4 77 68 69 63 68 28  7a 25 2c 34 38 2c 34 39  |,.which(z%,48,49|
00009ab0  29 2d 34 38 2c a4 77 68  69 63 68 28 7a 25 2c 35  |)-48,.which(z%,5|
00009ac0  32 2c 35 33 29 2d 35 32  2c a4 6f 6e 28 7a 25 2c  |2,53)-52,.on(z%,|
00009ad0  35 34 29 0d 2b d4 22 f1  23 66 25 2c a4 6f 6e 28  |54).+.".#f%,.on(|
00009ae0  7a 25 2c 35 37 29 2c a4  62 67 5f 63 6f 6c 28 7a  |z%,57),.bg_col(z|
00009af0  25 2c 35 38 29 0d 2b de  55 f1 23 66 25 2c a4 6f  |%,58).+.U.#f%,.o|
00009b00  6e 28 7a 25 2c 36 33 29  2c a4 69 6e 28 7a 25 2c  |n(z%,63),.in(z%,|
00009b10  36 35 29 2c a4 6f 6e 28  7a 25 2c 36 38 29 2c a4  |65),.on(z%,68),.|
00009b20  6f 6e 28 7a 25 2c 36 39  29 2c a4 6f 6e 28 7a 25  |on(z%,69),.on(z%|
00009b30  2c 37 32 29 2c a4 69 6e  28 7a 25 2c 37 33 29 2c  |,72),.in(z%,73),|
00009b40  a4 6f 6e 28 7a 25 2c 37  34 29 0d 2b e8 1b d9 23  |.on(z%,74).+...#|
00009b50  66 25 3a c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |f%:.. "Hourglass|
00009b60  5f 4f 66 66 22 0d 2b f2  05 e1 0d 2b fc 05 3a 0d  |_Off".+....+..:.|
00009b70  2c 06 22 dd f2 72 65 6d  65 6d 62 65 72 5f 70 72  |,."..remember_pr|
00009b80  65 66 73 3a 7a 25 3d 70  72 65 66 5f 70 61 6e 65  |efs:z%=pref_pane|
00009b90  25 0d 2c 10 33 41 3d a4  6f 6e 28 7a 25 2c 32 29  |%.,.3A=.on(z%,2)|
00009ba0  3a 42 3d a4 6f 6e 28 7a  25 2c 33 29 3a 43 3d a4  |:B=.on(z%,3):C=.|
00009bb0  6f 6e 28 7a 25 2c 34 29  3a 44 3d a4 6f 6e 28 7a  |on(z%,4):D=.on(z|
00009bc0  25 2c 35 29 0d 2c 1a 2d  45 3d a4 77 68 69 63 68  |%,5).,.-E=.which|
00009bd0  28 7a 25 2c 39 2c 31 30  29 2d 39 3a 46 3d a4 77  |(z%,9,10)-9:F=.w|
00009be0  68 69 63 68 28 7a 25 2c  31 33 2c 31 34 29 2d 31  |hich(z%,13,14)-1|
00009bf0  33 0d 2c 24 85 47 3d a4  6f 6e 28 7a 25 2c 31 39  |3.,$.G=.on(z%,19|
00009c00  29 3a 48 3d a4 6f 6e 28  7a 25 2c 32 30 29 3a 49  |):H=.on(z%,20):I|
00009c10  3d a4 6f 6e 28 7a 25 2c  32 31 29 3a 4a 3d a4 6f  |=.on(z%,21):J=.o|
00009c20  6e 28 7a 25 2c 32 32 29  3a 4b 3d a4 6f 6e 28 7a  |n(z%,22):K=.on(z|
00009c30  25 2c 32 33 29 3a 4c 3d  a4 6f 6e 28 7a 25 2c 32  |%,23):L=.on(z%,2|
00009c40  34 29 3a 4d 3d a4 6f 6e  28 7a 25 2c 32 35 29 3a  |4):M=.on(z%,25):|
00009c50  4e 3d a4 6f 6e 28 7a 25  2c 32 36 29 3a 4f 3d a4  |N=.on(z%,26):O=.|
00009c60  6f 6e 28 7a 25 2c 32 37  29 3a 50 3d a4 6f 6e 28  |on(z%,27):P=.on(|
00009c70  7a 25 2c 33 30 29 0d 2c  2e 42 51 3d a4 77 68 69  |z%,30).,.BQ=.whi|
00009c80  63 68 28 7a 25 2c 33 35  2c 33 36 29 2d 33 35 3a  |ch(z%,35,36)-35:|
00009c90  52 3d a4 6f 6e 28 7a 25  2c 33 37 29 3a 53 3d a4  |R=.on(z%,37):S=.|
00009ca0  76 61 6c 28 7a 25 2c 33  39 29 3a 54 3d a4 76 61  |val(z%,39):T=.va|
00009cb0  6c 28 7a 25 2c 34 33 29  0d 2c 38 3c 55 3d a4 77  |l(z%,43).,8<U=.w|
00009cc0  68 69 63 68 28 7a 25 2c  34 38 2c 34 39 29 2d 34  |hich(z%,48,49)-4|
00009cd0  38 3a 56 3d a4 77 68 69  63 68 28 7a 25 2c 35 32  |8:V=.which(z%,52|
00009ce0  2c 35 33 29 2d 35 32 3a  57 3d a4 6f 6e 28 7a 25  |,53)-52:W=.on(z%|
00009cf0  2c 35 34 29 0d 2c 42 3d  58 3d a4 6f 6e 28 7a 25  |,54).,B=X=.on(z%|
00009d00  2c 35 37 29 3a 59 3d a4  62 67 5f 63 6f 6c 28 7a  |,57):Y=.bg_col(z|
00009d10  25 2c 35 38 29 3a 5a 3d  a4 6f 6e 28 7a 25 2c 36  |%,58):Z=.on(z%,6|
00009d20  33 29 3a 41 41 24 3d a4  69 6e 28 7a 25 2c 36 35  |3):AA$=.in(z%,65|
00009d30  29 0d 2c 4c 4a 5a 31 3d  a4 6f 6e 28 7a 25 2c 36  |).,LJZ1=.on(z%,6|
00009d40  38 29 3a 5a 32 3d a4 6f  6e 28 7a 25 2c 36 39 29  |8):Z2=.on(z%,69)|
00009d50  3a 5a 33 3d a4 6f 6e 28  7a 25 2c 37 32 29 3a 42  |:Z3=.on(z%,72):B|
00009d60  42 24 3d a4 69 6e 28 7a  25 2c 37 33 29 3a 5a 34  |B$=.in(z%,73):Z4|
00009d70  3d a4 6f 6e 28 7a 25 2c  37 34 29 0d 2c 56 05 e1  |=.on(z%,74).,V..|
00009d80  0d 2c 60 05 3a 0d 2c 6a  12 dd f2 63 61 6e 63 65  |.,`.:.,j...cance|
00009d90  6c 5f 70 72 65 66 73 0d  2c 74 57 f2 73 65 74 5f  |l_prefs.,tW.set_|
00009da0  70 72 65 66 73 28 41 2c  42 2c 43 2c 44 2c 45 2c  |prefs(A,B,C,D,E,|
00009db0  46 2c 47 2c 48 2c 49 2c  4a 2c 4b 2c 4c 2c 4d 2c  |F,G,H,I,J,K,L,M,|
00009dc0  4e 2c 4f 2c 50 2c 51 2c  52 2c 53 2c 54 2c 55 2c  |N,O,P,Q,R,S,T,U,|
00009dd0  56 2c 57 2c 58 2c 59 2c  5a 2c 41 41 24 2c 5a 31  |V,W,X,Y,Z,AA$,Z1|
00009de0  2c 5a 32 2c 5a 33 2c 42  42 24 2c 5a 34 29 0d 2c  |,Z2,Z3,BB$,Z4).,|
00009df0  7e 05 e1 0d 2c 88 05 3a  0d 2c 92 56 dd f2 73 65  |~...,..:.,.V..se|
00009e00  74 5f 70 72 65 66 73 28  61 2c 62 2c 63 2c 64 2c  |t_prefs(a,b,c,d,|
00009e10  65 2c 66 2c 67 2c 68 2c  69 2c 6a 2c 6b 2c 6c 2c  |e,f,g,h,i,j,k,l,|
00009e20  6d 2c 6e 2c 6f 2c 70 2c  71 2c 72 2c 73 2c 74 2c  |m,n,o,p,q,r,s,t,|
00009e30  75 2c 76 2c 77 2c 78 2c  79 2c 7a 2c 61 24 2c 7a  |u,v,w,x,y,z,a$,z|
00009e40  31 2c 7a 32 2c 7a 33 2c  62 24 2c 7a 34 29 0d 2c  |1,z2,z3,b$,z4).,|
00009e50  9c 11 7a 25 3d 70 72 65  66 5f 70 61 6e 65 25 0d  |..z%=pref_pane%.|
00009e60  2c a6 3f c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |,.?.. "WimpExt_S|
00009e70  65 74 49 63 6f 6e 22 2c  2c 2c 7a 25 2c 32 2c 61  |etIcon",,,z%,2,a|
00009e80  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |:.. "WimpExt_Set|
00009e90  49 63 6f 6e 22 2c 2c 2c  7a 25 2c 33 2c 62 0d 2c  |Icon",,,z%,3,b.,|
00009ea0  b0 3f c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |.?.. "WimpExt_Se|
00009eb0  74 49 63 6f 6e 22 2c 2c  2c 7a 25 2c 34 2c 63 3a  |tIcon",,,z%,4,c:|
00009ec0  c8 99 20 22 57 69 6d 70  45 78 74 5f 53 65 74 49  |.. "WimpExt_SetI|
00009ed0  63 6f 6e 22 2c 2c 2c 7a  25 2c 35 2c 64 0d 2c ba  |con",,,z%,5,d.,.|
00009ee0  2d f2 72 61 64 69 6f 28  7a 25 2c 39 2c 31 30 2c  |-.radio(z%,9,10,|
00009ef0  65 2b 39 29 3a f2 72 61  64 69 6f 28 7a 25 2c 31  |e+9):.radio(z%,1|
00009f00  33 2c 31 34 2c 66 2b 31  33 29 0d 2c c4 41 c8 99  |3,14,f+13).,.A..|
00009f10  20 22 57 69 6d 70 45 78  74 5f 53 65 74 49 63 6f  | "WimpExt_SetIco|
00009f20  6e 22 2c 2c 2c 7a 25 2c  31 39 2c 67 3a c8 99 20  |n",,,z%,19,g:.. |
00009f30  22 57 69 6d 70 45 78 74  5f 53 65 74 49 63 6f 6e  |"WimpExt_SetIcon|
00009f40  22 2c 2c 2c 7a 25 2c 32  30 2c 68 0d 2c ce 41 c8  |",,,z%,20,h.,.A.|
00009f50  99 20 22 57 69 6d 70 45  78 74 5f 53 65 74 49 63  |. "WimpExt_SetIc|
00009f60  6f 6e 22 2c 2c 2c 7a 25  2c 32 31 2c 69 3a c8 99  |on",,,z%,21,i:..|
00009f70  20 22 57 69 6d 70 45 78  74 5f 53 65 74 49 63 6f  | "WimpExt_SetIco|
00009f80  6e 22 2c 2c 2c 7a 25 2c  32 32 2c 6a 0d 2c d8 41  |n",,,z%,22,j.,.A|
00009f90  c8 99 20 22 57 69 6d 70  45 78 74 5f 53 65 74 49  |.. "WimpExt_SetI|
00009fa0  63 6f 6e 22 2c 2c 2c 7a  25 2c 32 33 2c 6b 3a c8  |con",,,z%,23,k:.|
00009fb0  99 20 22 57 69 6d 70 45  78 74 5f 53 65 74 49 63  |. "WimpExt_SetIc|
00009fc0  6f 6e 22 2c 2c 2c 7a 25  2c 32 34 2c 6c 0d 2c e2  |on",,,z%,24,l.,.|
00009fd0  41 c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |A.. "WimpExt_Set|
00009fe0  49 63 6f 6e 22 2c 2c 2c  7a 25 2c 32 35 2c 6d 3a  |Icon",,,z%,25,m:|
00009ff0  c8 99 20 22 57 69 6d 70  45 78 74 5f 53 65 74 49  |.. "WimpExt_SetI|
0000a000  63 6f 6e 22 2c 2c 2c 7a  25 2c 32 36 2c 6e 0d 2c  |con",,,z%,26,n.,|
0000a010  ec 41 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |.A.. "WimpExt_Se|
0000a020  74 49 63 6f 6e 22 2c 2c  2c 7a 25 2c 32 37 2c 6f  |tIcon",,,z%,27,o|
0000a030  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |:.. "WimpExt_Set|
0000a040  49 63 6f 6e 22 2c 2c 2c  7a 25 2c 33 30 2c 70 0d  |Icon",,,z%,30,p.|
0000a050  2c f6 19 f2 72 61 64 69  6f 28 7a 25 2c 33 35 2c  |,...radio(z%,35,|
0000a060  33 36 2c 71 2b 33 35 29  0d 2d 00 22 c8 99 20 22  |36,q+35).-.".. "|
0000a070  57 69 6d 70 45 78 74 5f  53 65 74 49 63 6f 6e 22  |WimpExt_SetIcon"|
0000a080  2c 2c 2c 7a 25 2c 33 37  2c 72 0d 2d 0a 4d c8 99  |,,,z%,37,r.-.M..|
0000a090  20 22 57 69 6d 70 45 78  74 5f 53 65 74 4e 75 6d  | "WimpExt_SetNum|
0000a0a0  62 65 72 49 63 6f 6e 22  2c 2c 2c 7a 25 2c 33 39  |berIcon",,,z%,39|
0000a0b0  2c 73 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |,s:.. "WimpExt_S|
0000a0c0  65 74 4e 75 6d 62 65 72  49 63 6f 6e 22 2c 2c 2c  |etNumberIcon",,,|
0000a0d0  7a 25 2c 34 33 2c 74 0d  2d 14 2f f2 72 61 64 69  |z%,43,t.-./.radi|
0000a0e0  6f 28 7a 25 2c 34 38 2c  34 39 2c 75 2b 34 38 29  |o(z%,48,49,u+48)|
0000a0f0  3a f2 72 61 64 69 6f 28  7a 25 2c 35 32 2c 35 33  |:.radio(z%,52,53|
0000a100  2c 76 2b 35 32 29 0d 2d  1e 41 c8 99 20 22 57 69  |,v+52).-.A.. "Wi|
0000a110  6d 70 45 78 74 5f 53 65  74 49 63 6f 6e 22 2c 2c  |mpExt_SetIcon",,|
0000a120  2c 7a 25 2c 35 34 2c 77  3a c8 99 20 22 57 69 6d  |,z%,54,w:.. "Wim|
0000a130  70 45 78 74 5f 53 65 74  49 63 6f 6e 22 2c 2c 2c  |pExt_SetIcon",,,|
0000a140  7a 25 2c 35 37 2c 78 0d  2d 28 4a c8 99 20 22 57  |z%,57,x.-(J.. "W|
0000a150  69 6d 70 45 78 74 5f 53  65 74 49 63 6f 6e 43 6f  |impExt_SetIconCo|
0000a160  6c 6f 75 72 22 2c 2c 2c  7a 25 2c 35 38 2c 2d 31  |lour",,,z%,58,-1|
0000a170  2c 79 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |,y:.. "WimpExt_S|
0000a180  65 74 49 63 6f 6e 22 2c  2c 2c 7a 25 2c 36 33 2c  |etIcon",,,z%,63,|
0000a190  7a 0d 2d 32 29 c8 99 20  22 57 69 6d 70 45 78 74  |z.-2).. "WimpExt|
0000a1a0  5f 53 65 74 49 63 6f 6e  53 74 72 69 6e 67 22 2c  |_SetIconString",|
0000a1b0  2c 2c 7a 25 2c 36 35 2c  61 24 0d 2d 3c 43 c8 99  |,,z%,65,a$.-<C..|
0000a1c0  20 22 57 69 6d 70 45 78  74 5f 53 65 74 49 63 6f  | "WimpExt_SetIco|
0000a1d0  6e 22 2c 2c 2c 7a 25 2c  36 38 2c 7a 31 3a c8 99  |n",,,z%,68,z1:..|
0000a1e0  20 22 57 69 6d 70 45 78  74 5f 53 65 74 49 63 6f  | "WimpExt_SetIco|
0000a1f0  6e 22 2c 2c 2c 7a 25 2c  36 39 2c 7a 32 0d 2d 46  |n",,,z%,69,z2.-F|
0000a200  49 c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |I.. "WimpExt_Set|
0000a210  49 63 6f 6e 22 2c 2c 2c  7a 25 2c 37 32 2c 7a 33  |Icon",,,z%,72,z3|
0000a220  3a c8 99 20 22 57 69 6d  70 45 78 74 5f 53 65 74  |:.. "WimpExt_Set|
0000a230  49 63 6f 6e 53 74 72 69  6e 67 22 2c 2c 2c 7a 25  |IconString",,,z%|
0000a240  2c 37 33 2c 62 24 0d 2d  50 23 c8 99 20 22 57 69  |,73,b$.-P#.. "Wi|
0000a250  6d 70 45 78 74 5f 53 65  74 49 63 6f 6e 22 2c 2c  |mpExt_SetIcon",,|
0000a260  2c 7a 25 2c 37 34 2c 7a  34 0d 2d 5a 19 f2 73 6f  |,z%,74,z4.-Z..so|
0000a270  72 74 5f 70 72 65 66 73  3a f2 6f 6b 5f 70 72 65  |rt_prefs:.ok_pre|
0000a280  66 73 0d 2d 64 05 e1 0d  2d 6e 05 3a 0d 2d 78 0e  |fs.-d...-n.:.-x.|
0000a290  dd f2 6f 6b 5f 70 72 65  66 73 0d 2d 82 46 70 66  |..ok_prefs.-.Fpf|
0000a2a0  5f 63 6f 6e 66 69 72 6d  25 3d a4 6f 6e 28 7a 25  |_confirm%=.on(z%|
0000a2b0  2c 32 29 20 84 20 a4 6f  6e 28 7a 25 2c 33 29 3c  |,2) . .on(z%,3)<|
0000a2c0  3c 31 20 84 20 a4 6f 6e  28 7a 25 2c 34 29 3c 3c  |<1 . .on(z%,4)<<|
0000a2d0  32 20 84 20 a4 6f 6e 28  7a 25 2c 35 29 3c 3c 33  |2 . .on(z%,5)<<3|
0000a2e0  0d 2d 8c 3b 70 66 5f 6d  65 72 67 65 25 3d a4 77  |.-.;pf_merge%=.w|
0000a2f0  68 69 63 68 28 7a 25 2c  39 2c 31 30 29 2d 39 3a  |hich(z%,9,10)-9:|
0000a300  70 66 5f 61 64 64 25 3d  a4 77 68 69 63 68 28 7a  |pf_add%=.which(z|
0000a310  25 2c 31 33 2c 31 34 29  2d 31 33 0d 2d 96 5b c8  |%,13,14)-13.-.[.|
0000a320  99 20 22 57 69 6d 70 45  78 74 5f 53 65 74 49 63  |. "WimpExt_SetIc|
0000a330  6f 6e 22 2c 2c 2c 73 65  61 72 63 68 25 2c 37 2c  |on",,,search%,7,|
0000a340  a4 6f 6e 28 7a 25 2c 31  39 29 3a c8 99 20 22 57  |.on(z%,19):.. "W|
0000a350  69 6d 70 45 78 74 5f 53  65 74 49 63 6f 6e 22 2c  |impExt_SetIcon",|
0000a360  2c 2c 73 65 61 72 63 68  25 2c 38 2c a4 6f 6e 28  |,,search%,8,.on(|
0000a370  7a 25 2c 32 30 29 0d 2d  a0 5c c8 99 20 22 57 69  |z%,20).-.\.. "Wi|
0000a380  6d 70 45 78 74 5f 53 65  74 49 63 6f 6e 22 2c 2c  |mpExt_SetIcon",,|
0000a390  2c 73 65 61 72 63 68 25  2c 39 2c a4 6f 6e 28 7a  |,search%,9,.on(z|
0000a3a0  25 2c 32 31 29 3a c8 99  20 22 57 69 6d 70 45 78  |%,21):.. "WimpEx|
0000a3b0  74 5f 53 65 74 49 63 6f  6e 22 2c 2c 2c 73 65 61  |t_SetIcon",,,sea|
0000a3c0  72 63 68 25 2c 31 30 2c  a4 6f 6e 28 7a 25 2c 32  |rch%,10,.on(z%,2|
0000a3d0  32 29 0d 2d aa 5d c8 99  20 22 57 69 6d 70 45 78  |2).-.].. "WimpEx|
0000a3e0  74 5f 53 65 74 49 63 6f  6e 22 2c 2c 2c 73 65 61  |t_SetIcon",,,sea|
0000a3f0  72 63 68 25 2c 31 31 2c  a4 6f 6e 28 7a 25 2c 32  |rch%,11,.on(z%,2|
0000a400  33 29 3a c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |3):.. "WimpExt_S|
0000a410  65 74 49 63 6f 6e 22 2c  2c 2c 73 65 61 72 63 68  |etIcon",,,search|
0000a420  25 2c 31 32 2c a4 6f 6e  28 7a 25 2c 32 34 29 0d  |%,12,.on(z%,24).|
0000a430  2d b4 5d c8 99 20 22 57  69 6d 70 45 78 74 5f 53  |-.].. "WimpExt_S|
0000a440  65 74 49 63 6f 6e 22 2c  2c 2c 73 65 61 72 63 68  |etIcon",,,search|
0000a450  25 2c 31 33 2c a4 6f 6e  28 7a 25 2c 32 35 29 3a  |%,13,.on(z%,25):|
0000a460  c8 99 20 22 57 69 6d 70  45 78 74 5f 53 65 74 49  |.. "WimpExt_SetI|
0000a470  63 6f 6e 22 2c 2c 2c 73  65 61 72 63 68 25 2c 31  |con",,,search%,1|
0000a480  34 2c a4 6f 6e 28 7a 25  2c 32 36 29 0d 2d be 5d  |4,.on(z%,26).-.]|
0000a490  c8 99 20 22 57 69 6d 70  45 78 74 5f 53 65 74 49  |.. "WimpExt_SetI|
0000a4a0  63 6f 6e 22 2c 2c 2c 73  65 61 72 63 68 25 2c 31  |con",,,search%,1|
0000a4b0  35 2c a4 6f 6e 28 7a 25  2c 32 37 29 3a c8 99 20  |5,.on(z%,27):.. |
0000a4c0  22 57 69 6d 70 45 78 74  5f 53 65 74 49 63 6f 6e  |"WimpExt_SetIcon|
0000a4d0  22 2c 2c 2c 73 65 61 72  63 68 25 2c 31 36 2c a4  |",,,search%,16,.|
0000a4e0  6f 6e 28 7a 25 2c 33 30  29 0d 2d c8 39 c8 99 20  |on(z%,30).-.9.. |
0000a4f0  22 57 69 6d 70 45 78 74  5f 53 65 74 49 63 6f 6e  |"WimpExt_SetIcon|
0000a500  22 2c 2c 2c 73 61 76 65  5f 61 73 25 2c 33 2c a4  |",,,save_as%,3,.|
0000a510  77 68 69 63 68 28 7a 25  2c 33 35 2c 33 36 29 2d  |which(z%,35,36)-|
0000a520  33 35 0d 2d d2 30 c8 99  20 22 57 69 6d 70 45 78  |35.-.0.. "WimpEx|
0000a530  74 5f 53 65 74 49 63 6f  6e 22 2c 2c 2c 73 61 76  |t_SetIcon",,,sav|
0000a540  65 5f 61 73 25 2c 34 2c  a4 6f 6e 28 7a 25 2c 33  |e_as%,4,.on(z%,3|
0000a550  37 29 0d 2d dc 35 c8 99  20 22 57 69 6d 70 45 78  |7).-.5.. "WimpEx|
0000a560  74 5f 53 65 74 49 63 6f  6e 22 2c 2c 2c 73 61 76  |t_SetIcon",,,sav|
0000a570  65 5f 61 73 25 2c 31 2c  a4 6f 6e 28 73 61 76 65  |e_as%,1,.on(save|
0000a580  5f 61 73 25 2c 33 29 0d  2d e6 37 c8 99 20 22 57  |_as%,3).-.7.. "W|
0000a590  69 6d 70 45 78 74 5f 53  65 74 4e 75 6d 62 65 72  |impExt_SetNumber|
0000a5a0  49 63 6f 6e 22 2c 2c 2c  73 61 76 65 5f 61 73 25  |Icon",,,save_as%|
0000a5b0  2c 36 2c a4 76 61 6c 28  7a 25 2c 33 39 29 0d 2d  |,6,.val(z%,39).-|
0000a5c0  f0 38 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 65  |.8.. "WimpExt_Se|
0000a5d0  74 4e 75 6d 62 65 72 49  63 6f 6e 22 2c 2c 2c 73  |tNumberIcon",,,s|
0000a5e0  61 76 65 5f 61 73 25 2c  31 30 2c a4 76 61 6c 28  |ave_as%,10,.val(|
0000a5f0  7a 25 2c 34 33 29 0d 2d  fa 3a c8 99 20 22 57 69  |z%,43).-.:.. "Wi|
0000a600  6d 70 45 78 74 5f 53 65  74 49 63 6f 6e 22 2c 2c  |mpExt_SetIcon",,|
0000a610  2c 73 61 76 65 5f 61 73  31 25 2c 33 2c a4 77 68  |,save_as1%,3,.wh|
0000a620  69 63 68 28 7a 25 2c 34  38 2c 34 39 29 2d 34 38  |ich(z%,48,49)-48|
0000a630  0d 2e 04 37 c8 99 20 22  57 69 6d 70 45 78 74 5f  |...7.. "WimpExt_|
0000a640  53 65 74 49 63 6f 6e 22  2c 2c 2c 73 61 76 65 5f  |SetIcon",,,save_|
0000a650  61 73 31 25 2c 31 2c a4  6f 6e 28 73 61 76 65 5f  |as1%,1,.on(save_|
0000a660  61 73 31 25 2c 33 29 0d  2e 0e 3a c8 99 20 22 57  |as1%,3)...:.. "W|
0000a670  69 6d 70 45 78 74 5f 53  65 74 49 63 6f 6e 22 2c  |impExt_SetIcon",|
0000a680  2c 2c 73 61 76 65 5f 61  73 32 25 2c 33 2c a4 77  |,,save_as2%,3,.w|
0000a690  68 69 63 68 28 7a 25 2c  35 32 2c 35 33 29 2d 35  |hich(z%,52,53)-5|
0000a6a0  32 0d 2e 18 31 c8 99 20  22 57 69 6d 70 45 78 74  |2...1.. "WimpExt|
0000a6b0  5f 53 65 74 49 63 6f 6e  22 2c 2c 2c 73 61 76 65  |_SetIcon",,,save|
0000a6c0  5f 61 73 32 25 2c 34 2c  a4 6f 6e 28 7a 25 2c 35  |_as2%,4,.on(z%,5|
0000a6d0  34 29 0d 2e 22 37 c8 99  20 22 57 69 6d 70 45 78  |4).."7.. "WimpEx|
0000a6e0  74 5f 53 65 74 49 63 6f  6e 22 2c 2c 2c 73 61 76  |t_SetIcon",,,sav|
0000a6f0  65 5f 61 73 32 25 2c 31  2c a4 6f 6e 28 73 61 76  |e_as2%,1,.on(sav|
0000a700  65 5f 61 73 32 25 2c 33  29 0d 2e 2c 31 c8 99 20  |e_as2%,3)..,1.. |
0000a710  22 57 69 6d 70 45 78 74  5f 53 65 74 49 63 6f 6e  |"WimpExt_SetIcon|
0000a720  22 2c 2c 2c 73 61 76 65  5f 61 73 32 25 2c 35 2c  |",,,save_as2%,5,|
0000a730  a4 6f 6e 28 7a 25 2c 37  34 29 0d 2e 36 39 e7 20  |.on(z%,74)..69. |
0000a740  a4 6f 6e 28 7a 25 2c 35  37 29 20 70 66 5f 63 6f  |.on(z%,57) pf_co|
0000a750  6c 6f 75 72 25 3d a4 62  67 5f 63 6f 6c 28 7a 25  |lour%=.bg_col(z%|
0000a760  2c 35 38 29 20 8b 20 70  66 5f 63 6f 6c 6f 75 72  |,58) . pf_colour|
0000a770  25 3d 37 0d 2e 40 5a 6f  70 31 25 3d 70 61 6e 65  |%=7..@Zop1%=pane|
0000a780  5f 31 25 3a 6f 70 32 25  3d 70 61 6e 65 5f 32 25  |_1%:op2%=pane_2%|
0000a790  3a 63 6f 75 6e 74 72 79  25 3d a4 6f 6e 28 70 72  |:country%=.on(pr|
0000a7a0  65 66 5f 70 61 6e 65 25  2c 37 32 29 3a 63 6f 75  |ef_pane%,72):cou|
0000a7b0  6e 74 72 79 24 3d c0 a4  69 6e 28 70 72 65 66 5f  |ntry$=..in(pref_|
0000a7c0  70 61 6e 65 25 2c 37 33  29 2c 33 31 29 0d 2e 4a  |pane%,73),31)..J|
0000a7d0  29 70 61 6e 65 5f 31 25  3d a4 6f 6e 28 7a 25 2c  |)pane_1%=.on(z%,|
0000a7e0  36 38 29 3a 70 61 6e 65  5f 32 25 3d a4 6f 6e 28  |68):pane_2%=.on(|
0000a7f0  7a 25 2c 36 39 29 0d 2e  54 18 e7 20 a4 6f 6e 28  |z%,69)..T.. .on(|
0000a800  7a 25 2c 36 38 29 3c 3e  6f 70 31 25 20 8c 0d 2e  |z%,68)<>op1% ...|
0000a810  5e 81 20 20 e7 20 a4 6f  6e 28 7a 25 2c 36 38 29  |^.  . .on(z%,68)|
0000a820  20 c8 99 20 22 57 69 6d  70 45 78 74 5f 55 6e 48  | .. "WimpExt_UnH|
0000a830  69 64 65 4c 69 6e 6b 22  2c 62 6f 6f 6b 25 2c 2c  |ideLink",book%,,|
0000a840  74 6f 6f 6c 73 25 3a f2  6f 70 65 6e 28 62 6f 6f  |tools%:.open(boo|
0000a850  6b 25 29 20 8b 20 c8 99  20 22 57 69 6d 70 45 78  |k%) . .. "WimpEx|
0000a860  74 5f 48 69 64 65 4c 69  6e 6b 22 2c 62 6f 6f 6b  |t_HideLink",book|
0000a870  25 2c 2c 74 6f 6f 6c 73  25 3a f2 63 6c 6f 73 65  |%,,tools%:.close|
0000a880  5f 77 69 6e 64 6f 77 28  74 6f 6f 6c 73 25 29 0d  |_window(tools%).|
0000a890  2e 68 05 cd 0d 2e 72 18  e7 20 a4 6f 6e 28 7a 25  |.h....r.. .on(z%|
0000a8a0  2c 36 39 29 3c 3e 6f 70  32 25 20 8c 0d 2e 7c 35  |,69)<>op2% ...|5|
0000a8b0  20 20 e7 20 a4 6f 6e 28  7a 25 2c 36 39 29 20 f2  |  . .on(z%,69) .|
0000a8c0  6f 70 65 6e 28 62 6f 6f  6b 25 29 20 8b 20 f2 63  |open(book%) . .c|
0000a8d0  6c 6f 73 65 5f 77 69 6e  64 6f 77 28 70 6f 73 25  |lose_window(pos%|
0000a8e0  29 0d 2e 86 05 cd 0d 2e  90 26 e7 20 a4 6f 70 65  |)........&. .ope|
0000a8f0  6e 28 6c 69 73 74 25 29  20 f2 72 65 64 72 61 77  |n(list%) .redraw|
0000a900  28 6c 69 73 74 5f 70 61  6e 65 25 29 0d 2e 9a 46  |(list_pane%)...F|
0000a910  f2 6f 70 65 6e 5f 61 74  28 73 61 76 65 5f 61 73  |.open_at(save_as|
0000a920  25 2c 31 30 30 30 30 30  2c 31 30 30 30 30 30 29  |%,100000,100000)|
0000a930  3a f2 6f 70 65 6e 5f 61  74 28 73 61 76 65 5f 61  |:.open_at(save_a|
0000a940  73 32 25 2c 31 30 30 30  30 30 2c 31 30 30 30 30  |s2%,100000,10000|
0000a950  30 29 0d 2e a4 1a f2 73  61 76 65 5f 73 69 7a 65  |0).....save_size|
0000a960  3a f2 73 61 76 65 32 5f  73 69 7a 65 0d 2e ae 34  |:.save2_size...4|
0000a970  f2 63 6c 6f 73 65 5f 77  69 6e 64 6f 77 28 73 61  |.close_window(sa|
0000a980  76 65 5f 61 73 25 29 3a  f2 63 6c 6f 73 65 5f 77  |ve_as%):.close_w|
0000a990  69 6e 64 6f 77 28 73 61  76 65 5f 61 73 32 25 29  |indow(save_as2%)|
0000a9a0  0d 2e b8 05 e1 0d 2e c2  05 3a 0d 2e cc 10 dd f2  |.........:......|
0000a9b0  73 6f 72 74 5f 70 72 65  66 73 0d 2e d6 1e 6f 6e  |sort_prefs....on|
0000a9c0  25 3d a4 6f 6e 28 70 72  65 66 5f 70 61 6e 65 25  |%=.on(pref_pane%|
0000a9d0  2c 33 37 29 20 82 20 31  0d 2e e0 44 e3 20 49 25  |,37) . 1...D. I%|
0000a9e0  3d 33 39 20 b8 20 34 35  3a e7 20 49 25 3c 3e 34  |=39 . 45:. I%<>4|
0000a9f0  32 20 c8 99 20 22 57 69  6d 70 45 78 74 5f 53 68  |2 .. "WimpExt_Sh|
0000aa00  61 64 65 49 63 6f 6e 22  2c 2c 2c 70 72 65 66 5f  |adeIcon",,,pref_|
0000aa10  70 61 6e 65 25 2c 49 25  2c 6f 6e 25 0d 2e ea 05  |pane%,I%,on%....|
0000aa20  ed 0d 2e f4 49 c8 99 20  22 57 69 6d 70 45 78 74  |....I.. "WimpExt|
0000aa30  5f 53 68 61 64 65 49 63  6f 6e 22 2c 2c 2c 70 72  |_ShadeIcon",,,pr|
0000aa40  65 66 5f 70 61 6e 65 25  2c 35 34 2c 94 28 a4 77  |ef_pane%,54,.(.w|
0000aa50  68 69 63 68 28 70 72 65  66 5f 70 61 6e 65 25 2c  |hich(pref_pane%,|
0000aa60  35 32 2c 35 33 29 3d 35  32 29 0d 2e fe 49 c8 99  |52,53)=52)...I..|
0000aa70  20 22 57 69 6d 70 45 78  74 5f 53 68 61 64 65 49  | "WimpExt_ShadeI|
0000aa80  63 6f 6e 22 2c 2c 2c 70  72 65 66 5f 70 61 6e 65  |con",,,pref_pane|
0000aa90  25 2c 37 34 2c 94 28 a4  77 68 69 63 68 28 70 72  |%,74,.(.which(pr|
0000aaa0  65 66 5f 70 61 6e 65 25  2c 35 32 2c 35 33 29 3d  |ef_pane%,52,53)=|
0000aab0  35 32 29 0d 2f 08 50 e3  20 49 25 3d 35 38 20 b8  |52)./.P. I%=58 .|
0000aac0  20 35 39 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  | 59:.. "WimpExt_|
0000aad0  53 68 61 64 65 49 63 6f  6e 22 2c 2c 2c 70 72 65  |ShadeIcon",,,pre|
0000aae0  66 5f 70 61 6e 65 25 2c  49 25 2c a4 6f 6e 28 70  |f_pane%,I%,.on(p|
0000aaf0  72 65 66 5f 70 61 6e 65  25 2c 35 37 29 20 82 20  |ref_pane%,57) . |
0000ab00  31 3a ed 0d 2f 12 50 e3  20 49 25 3d 36 34 20 b8  |1:../.P. I%=64 .|
0000ab10  20 36 35 3a c8 99 20 22  57 69 6d 70 45 78 74 5f  | 65:.. "WimpExt_|
0000ab20  53 68 61 64 65 49 63 6f  6e 22 2c 2c 2c 70 72 65  |ShadeIcon",,,pre|
0000ab30  66 5f 70 61 6e 65 25 2c  49 25 2c a4 6f 6e 28 70  |f_pane%,I%,.on(p|
0000ab40  72 65 66 5f 70 61 6e 65  25 2c 36 33 29 20 82 20  |ref_pane%,63) . |
0000ab50  31 3a ed 0d 2f 1c 41 c8  99 20 22 57 69 6d 70 45  |1:../.A.. "WimpE|
0000ab60  78 74 5f 53 68 61 64 65  49 63 6f 6e 22 2c 2c 2c  |xt_ShadeIcon",,,|
0000ab70  70 72 65 66 5f 70 61 6e  65 25 2c 37 33 2c a4 6f  |pref_pane%,73,.o|
0000ab80  6e 28 70 72 65 66 5f 70  61 6e 65 25 2c 37 32 29  |n(pref_pane%,72)|
0000ab90  20 82 20 31 0d 2f 26 05  e1 0d 2f 30 05 3a 0d 2f  | . 1./&.../0.:./|
0000aba0  3a 26 dd f2 6c 6f 61 64  5f 70 72 65 66 73 28 6c  |:&..load_prefs(l|
0000abb0  25 29 3a c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |%):.. "Hourglass|
0000abc0  5f 4f 6e 22 0d 2f 44 1e  66 25 3d ad 20 22 3c 54  |_On"./D.f%=. "<T|
0000abd0  65 6c 41 64 64 72 24 44  69 72 3e 2e 50 72 65 66  |elAddr$Dir>.Pref|
0000abe0  73 22 0d 2f 4e 4e e8 23  66 25 2c 61 2c 62 2c 63  |s"./NN.#f%,a,b,c|
0000abf0  2c 64 2c 65 2c 66 2c 67  2c 68 2c 69 2c 6a 2c 6b  |,d,e,f,g,h,i,j,k|
0000ac00  2c 6c 2c 6d 2c 6e 2c 6f  2c 70 2c 71 2c 72 2c 73  |,l,m,n,o,p,q,r,s|
0000ac10  2c 74 2c 75 2c 76 2c 77  2c 78 2c 79 2c 7a 2c 61  |,t,u,v,w,x,y,z,a|
0000ac20  24 2c 7a 31 2c 7a 32 2c  7a 33 2c 62 24 2c 7a 34  |$,z1,z2,z3,b$,z4|
0000ac30  0d 2f 58 1b d9 23 66 25  3a c8 99 20 22 48 6f 75  |./X..#f%:.. "Hou|
0000ac40  72 67 6c 61 73 73 5f 4f  66 66 22 0d 2f 62 55 f2  |rglass_Off"./bU.|
0000ac50  73 65 74 5f 70 72 65 66  73 28 61 2c 62 2c 63 2c  |set_prefs(a,b,c,|
0000ac60  64 2c 65 2c 66 2c 67 2c  68 2c 69 2c 6a 2c 6b 2c  |d,e,f,g,h,i,j,k,|
0000ac70  6c 2c 6d 2c 6e 2c 6f 2c  70 2c 71 2c 72 2c 73 2c  |l,m,n,o,p,q,r,s,|
0000ac80  74 2c 75 2c 76 2c 77 2c  78 2c 79 2c 7a 2c 61 24  |t,u,v,w,x,y,z,a$|
0000ac90  2c 7a 31 2c 7a 32 2c 7a  33 2c 62 24 2c 7a 34 29  |,z1,z2,z3,b$,z4)|
0000aca0  0d 2f 6c 1e 6c 6f 61 64  25 3d 7a 3a e7 20 6c 6f  |./l.load%=z:. lo|
0000acb0  61 64 25 20 8c 20 6c 6f  61 64 24 3d 61 24 0d 2f  |ad% . load$=a$./|
0000acc0  76 05 e1 0d 2f 80 05 3a  0d 2f 8a 13 dd f2 64 65  |v.../..:./....de|
0000acd0  66 61 75 6c 74 5f 70 72  65 66 73 0d 2f 94 59 f2  |fault_prefs./.Y.|
0000ace0  73 65 74 5f 70 72 65 66  73 28 30 2c 31 2c 31 2c  |set_prefs(0,1,1,|
0000acf0  31 2c 30 2c 31 2c 31 2c  31 2c 31 2c 31 2c 31 2c  |1,0,1,1,1,1,1,1,|
0000ad00  31 2c 31 2c 31 2c 31 2c  30 2c 30 2c 30 2c 31 2c  |1,1,1,1,0,0,0,1,|
0000ad10  31 2c 30 2c 31 2c 30 2c  31 2c 31 31 2c 30 2c 22  |1,0,1,0,1,11,0,"|
0000ad20  22 2c 31 2c 31 2c 30 2c  22 45 6e 67 6c 61 6e 64  |",1,1,0,"England|
0000ad30  22 2c 31 29 0d 2f 9e 05  e1 0d 2f a8 05 3a 0d 2f  |",1)./..../..:./|
0000ad40  b2 35 dd a4 62 69 74 28  77 6f 72 64 25 2c 62 69  |.5..bit(word%,bi|
0000ad50  74 25 29 3a e7 20 28 77  6f 72 64 25 20 80 20 31  |t%):. (word% . 1|
0000ad60  3c 3c 62 69 74 25 29 3e  30 20 8c 20 3d 31 20 8b  |<<bit%)>0 . =1 .|
0000ad70  20 3d 30 0d 2f bc 05 3a  0d 2f c6 15 dd f2 73 63  | =0./..:./....sc|
0000ad80  72 6f 6c 6c 5f 74 6f 70  28 21 62 25 29 0d 2f d0  |roll_top(!b%)./.|
0000ad90  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 57 69 6e  | .. "Wimp_GetWin|
0000ada0  64 6f 77 53 74 61 74 65  22 2c 2c 62 25 0d 2f da  |dowState",,b%./.|
0000adb0  17 78 25 3d 31 30 30 30  30 30 3a 79 25 3d 31 30  |.x%=100000:y%=10|
0000adc0  30 30 30 30 0d 2f e4 4f  62 25 21 32 34 3d 30 3a  |0000./.Ob%!24=0:|
0000add0  77 25 3d 62 25 21 31 32  2d 62 25 21 34 3a 68 25  |w%=b%!12-b%!4:h%|
0000ade0  3d 62 25 21 31 36 2d 62  25 21 38 3a 62 25 21 34  |=b%!16-b%!8:b%!4|
0000adf0  3d 78 25 3a 62 25 21 38  3d 79 25 2d 68 25 3a 62  |=x%:b%!8=y%-h%:b|
0000ae00  25 21 31 32 3d 78 25 2b  77 25 3a 62 25 21 31 36  |%!12=x%+w%:b%!16|
0000ae10  3d 79 25 0d 2f ee 1c c8  99 20 22 57 69 6d 70 5f  |=y%./.... "Wimp_|
0000ae20  4f 70 65 6e 57 69 6e 64  6f 77 22 2c 2c 62 25 0d  |OpenWindow",,b%.|
0000ae30  2f f8 1d c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |/.... "Wimp_Clos|
0000ae40  65 57 69 6e 64 6f 77 22  2c 2c 62 25 0d 30 02 05  |eWindow",,b%.0..|
0000ae50  e1 0d 30 0c 05 3a 0d 30  16 0f dd f2 72 61 6d 5f  |..0..:.0....ram_|
0000ae60  66 65 74 63 68 0d 30 20  13 c8 8e 20 73 61 76 65  |fetch.0 ... save|
0000ae70  5f 74 79 70 65 25 20 ca  0d 30 2a 29 20 20 c9 20  |_type% ..0*)  . |
0000ae80  31 3a 77 25 3d 73 61 76  65 5f 61 73 25 3a 66 69  |1:w%=save_as%:fi|
0000ae90  6c 65 5f 6c 65 6e 25 3d  a4 66 69 6c 65 5f 6c 65  |le_len%=.file_le|
0000aea0  6e 0d 30 34 92 20 20 c9  20 32 3a 77 25 3d 73 61  |n.04.  . 2:w%=sa|
0000aeb0  76 65 5f 61 73 31 25 3a  66 69 6c 65 5f 6c 65 6e  |ve_as1%:file_len|
0000aec0  25 3d 30 3a 6f 6c 64 5f  41 25 3d 2d 31 3a e3 20  |%=0:old_A%=-1:. |
0000aed0  49 25 3d 30 20 b8 20 73  65 61 72 63 68 5f 6c 65  |I%=0 . search_le|
0000aee0  6e 25 3a 41 25 3d 74 61  62 25 2b 28 28 74 61 62  |n%:A%=tab%+((tab|
0000aef0  6c 65 25 21 28 49 25 2a  31 32 29 29 2a 72 65 63  |le%!(I%*12))*rec|
0000af00  5f 6c 65 6e 25 29 3a e7  20 41 25 3c 3e 6f 6c 64  |_len%):. A%<>old|
0000af10  5f 41 25 20 42 25 3d 31  31 3a 66 69 6c 65 5f 6c  |_A% B%=11:file_l|
0000af20  65 6e 25 2b 3d ba 28 66  69 6c 65 5f 6c 65 6e 67  |en%+=.(file_leng|
0000af30  74 68 29 0d 30 3e 13 20  20 20 20 6f 6c 64 5f 41  |th).0>.    old_A|
0000af40  25 3d 41 25 3a ed 0d 30  48 50 20 20 c9 20 33 3a  |%=A%:..0HP  . 3:|
0000af50  77 25 3d 73 61 76 65 5f  61 73 32 25 3a 41 25 3d  |w%=save_as2%:A%=|
0000af60  74 61 62 25 2b 28 72 65  63 6f 72 64 25 2a 72 65  |tab%+(record%*re|
0000af70  63 5f 6c 65 6e 25 29 3a  42 25 3d 31 31 3a 66 69  |c_len%):B%=11:fi|
0000af80  6c 65 5f 6c 65 6e 25 3d  ba 28 66 69 6c 65 5f 6c  |le_len%=.(file_l|
0000af90  65 6e 67 74 68 29 0d 30  52 05 cb 0d 30 5c 28 c8  |ength).0R...0\(.|
0000afa0  99 20 22 57 69 6d 70 45  78 74 5f 47 65 74 49 63  |. "WimpExt_GetIc|
0000afb0  6f 6e 22 2c 2c 2c 77 25  2c 33 20 b8 20 61 73 63  |on",,,w%,3 . asc|
0000afc0  69 69 25 0d 30 66 cb e7  20 62 25 21 32 34 3c 66  |ii%.0f.. b%!24<f|
0000afd0  69 6c 65 5f 6c 65 6e 25  20 72 65 71 25 3d 30 3a  |ile_len% req%=0:|
0000afe0  c8 99 20 22 57 69 6d 70  45 78 74 5f 4f 70 65 6e  |.. "WimpExt_Open|
0000aff0  52 65 71 75 65 73 74 65  72 22 2c 2c 2c 22 57 61  |Requester",,,"Wa|
0000b000  72 6e 69 6e 67 20 66 72  6f 6d 20 54 65 6c 41 64  |rning from TelAd|
0000b010  64 72 22 2c 22 42 75 66  66 65 72 20 70 61 73 73  |dr","Buffer pass|
0000b020  65 64 20 66 72 6f 6d 20  64 65 73 74 69 6e 61 74  |ed from destinat|
0000b030  69 6f 6e 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ion application |
0000b040  69 73 20 6e 6f 74 20 62  69 67 20 65 6e 6f 75 67  |is not big enoug|
0000b050  68 20 74 6f 20 70 72 6f  63 65 73 73 20 61 20 52  |h to process a R|
0000b060  41 4d 20 6d 65 6d 6f 72  79 20 74 72 61 6e 73 66  |AM memory transf|
0000b070  65 72 20 73 61 76 65 2c  20 73 61 76 65 20 66 61  |er save, save fa|
0000b080  69 6c 65 64 2e 22 2c 6f  6b 25 2c 30 3a e1 0d 30  |iled.",ok%,0:..0|
0000b090  70 13 74 65 6c 25 3d 31  3a 63 6f 6d 6d 61 25 3d  |p.tel%=1:comma%=|
0000b0a0  30 0d 30 7a 13 c8 8e 20  73 61 76 65 5f 74 79 70  |0.0z... save_typ|
0000b0b0  65 25 20 ca 0d 30 84 30  20 20 c9 20 31 3a c8 99  |e% ..0.0  . 1:..|
0000b0c0  20 22 57 69 6d 70 45 78  74 5f 47 65 74 49 63 6f  | "WimpExt_GetIco|
0000b0d0  6e 22 2c 2c 2c 77 25 2c  34 20 b8 20 70 61 72 74  |n",,,w%,4 . part|
0000b0e0  69 61 6c 25 0d 30 8e 14  20 20 20 20 e7 20 70 61  |ial%.0..    . pa|
0000b0f0  72 74 69 61 6c 25 20 8c  0d 30 98 2b 20 20 20 20  |rtial% ..0.+    |
0000b100  20 20 f2 73 6f 72 74 6f  75 74 5f 70 61 72 74 69  |  .sortout_parti|
0000b110  61 6c 28 30 2c 73 61 76  65 5f 61 73 25 2c 36 2c  |al(0,save_as%,6,|
0000b120  31 30 29 0d 30 a2 33 20  20 20 20 20 20 c8 99 20  |10).0.3      .. |
0000b130  22 57 69 6d 70 45 78 74  5f 47 65 74 4e 75 6d 62  |"WimpExt_GetNumb|
0000b140  65 72 49 63 6f 6e 22 2c  2c 2c 77 25 2c 36 20 b8  |erIcon",,,w%,6 .|
0000b150  20 66 72 6f 6d 25 0d 30  ac 42 20 20 20 20 20 20  | from%.0.B      |
0000b160  c8 99 20 22 57 69 6d 70  45 78 74 5f 47 65 74 4e  |.. "WimpExt_GetN|
0000b170  75 6d 62 65 72 49 63 6f  6e 22 2c 2c 2c 77 25 2c  |umberIcon",,,w%,|
0000b180  31 30 20 b8 20 74 6f 25  3a 66 72 6f 6d 25 2d 3d  |10 . to%:from%-=|
0000b190  31 3a 74 6f 25 2d 3d 31  0d 30 b6 09 20 20 20 20  |1:to%-=1.0..    |
0000b1a0  cc 0d 30 c0 1a 20 20 20  20 20 20 66 72 6f 6d 25  |..0..      from%|
0000b1b0  3d 30 3a 74 6f 25 3d 6d  61 78 25 0d 30 ca 09 20  |=0:to%=max%.0.. |
0000b1c0  20 20 20 cd 0d 30 d4 21  20 20 c9 20 32 3a 66 72  |   ..0.!  . 2:fr|
0000b1d0  6f 6d 25 3d 30 3a 74 6f  25 3d 73 65 61 72 63 68  |om%=0:to%=search|
0000b1e0  5f 6c 65 6e 25 0d 30 de  23 20 20 c9 20 33 3a 66  |_len%.0.#  . 3:f|
0000b1f0  72 6f 6d 25 3d 72 65 63  6f 72 64 25 3a 74 6f 25  |rom%=record%:to%|
0000b200  3d 72 65 63 6f 72 64 25  0d 30 e8 2a 20 20 20 20  |=record%.0.*    |
0000b210  c8 99 20 22 57 69 6d 70  45 78 74 5f 47 65 74 49  |.. "WimpExt_GetI|
0000b220  63 6f 6e 22 2c 2c 2c 77  25 2c 34 20 b8 20 74 65  |con",,,w%,4 . te|
0000b230  6c 25 0d 30 f2 2c 20 20  20 20 c8 99 20 22 57 69  |l%.0.,    .. "Wi|
0000b240  6d 70 45 78 74 5f 47 65  74 49 63 6f 6e 22 2c 2c  |mpExt_GetIcon",,|
0000b250  2c 77 25 2c 35 20 b8 20  63 6f 6d 6d 61 25 0d 30  |,w%,5 . comma%.0|
0000b260  fc 05 cb 0d 31 06 2f e7  20 74 65 6c 25 20 8c 20  |....1./. tel% . |
0000b270  6d 61 78 5f 66 69 65 6c  64 25 3d 31 30 2a 33 32  |max_field%=10*32|
0000b280  20 8b 20 6d 61 78 5f 66  69 65 6c 64 25 3d 37 2a  | . max_field%=7*|
0000b290  33 32 0d 31 10 5a e7 20  73 61 76 65 5f 74 79 70  |32.1.Z. save_typ|
0000b2a0  65 25 3d 32 20 41 25 3d  74 61 62 6c 65 25 3a 42  |e%=2 A%=table%:B|
0000b2b0  25 3d 73 65 61 72 63 68  5f 6c 65 6e 25 2b 31 3a  |%=search_len%+1:|
0000b2c0  6e 75 6d 62 65 72 25 3d  ba 28 63 6f 75 6e 74 5f  |number%=.(count_|
0000b2d0  72 65 63 29 20 8b 20 6e  75 6d 62 65 72 25 3d 28  |rec) . number%=(|
0000b2e0  74 6f 25 2d 66 72 6f 6d  25 29 2b 31 0d 31 1a 14  |to%-from%)+1.1..|
0000b2f0  e7 20 62 25 21 31 32 3d  6d 79 72 65 66 25 20 8c  |. b%!12=myref% .|
0000b300  0d 31 24 12 20 20 73 65  6e 64 65 72 25 3d 62 25  |.1$.  sender%=b%|
0000b310  21 34 0d 31 2e 12 20 20  68 69 73 72 65 66 25 3d  |!4.1..  hisref%=|
0000b320  62 25 21 38 0d 31 38 13  20 20 62 75 66 61 64 64  |b%!8.18.  bufadd|
0000b330  25 3d 62 25 21 32 30 0d  31 42 13 20 20 62 75 66  |%=b%!20.1B.  buf|
0000b340  73 69 7a 25 3d 62 25 21  32 34 0d 31 4c 1b 20 20  |siz%=b%!24.1L.  |
0000b350  6f 66 66 73 65 74 25 3d  30 3a 6f 6c 64 5f 72 65  |offset%=0:old_re|
0000b360  63 25 3d 2d 31 0d 31 56  17 20 20 c8 99 20 22 48  |c%=-1.1V.  .. "H|
0000b370  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 0d 31 60 97  |ourglass_On".1`.|
0000b380  20 20 e7 20 61 73 63 69  69 25 3d 30 20 8c 20 24  |  . ascii%=0 . $|
0000b390  62 32 25 3d 22 54 65 6c  41 64 64 72 28 22 2b c3  |b2%="TelAddr("+.|
0000b3a0  66 69 6c 65 5f 76 65 72  25 2b 22 2c 22 2b c3 28  |file_ver%+","+.(|
0000b3b0  6e 75 6d 62 65 72 25 29  2b 22 29 22 2b bd 31 30  |number%)+")"+.10|
0000b3c0  3a 6c 25 3d a9 28 24 62  32 25 29 3a c8 99 20 22  |:l%=.($b2%):.. "|
0000b3d0  57 69 6d 70 5f 54 72 61  6e 73 66 65 72 42 6c 6f  |Wimp_TransferBlo|
0000b3e0  63 6b 22 2c 74 61 73 6b  5f 68 61 6e 64 6c 65 25  |ck",task_handle%|
0000b3f0  2c 62 32 25 2c 73 65 6e  64 65 72 25 2c 62 75 66  |,b2%,sender%,buf|
0000b400  61 64 64 25 2c 6c 25 3a  6f 66 66 73 65 74 25 2b  |add%,l%:offset%+|
0000b410  3d 6c 25 0d 31 6a 16 20  20 e3 20 49 25 3d 66 72  |=l%.1j.  . I%=fr|
0000b420  6f 6d 25 20 b8 20 74 6f  25 0d 31 74 51 20 20 20  |om% . to%.1tQ   |
0000b430  20 e7 20 28 74 6f 25 2d  66 72 6f 6d 25 29 3e 30  | . (to%-from%)>0|
0000b440  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 50  | .. "Hourglass_P|
0000b450  65 72 63 65 6e 74 61 67  65 22 2c a8 28 28 28 49  |ercentage",.(((I|
0000b460  25 2d 66 72 6f 6d 25 29  2f 28 74 6f 25 2d 66 72  |%-from%)/(to%-fr|
0000b470  6f 6d 25 29 29 2a 31 30  30 29 0d 31 7e 36 20 20  |om%))*100).1~6  |
0000b480  20 20 e7 20 73 61 76 65  5f 74 79 70 65 25 3d 32  |  . save_type%=2|
0000b490  20 8c 20 72 65 63 25 3d  74 61 62 6c 65 25 21 28  | . rec%=table%!(|
0000b4a0  49 25 2a 31 32 29 20 8b  20 72 65 63 25 3d 49 25  |I%*12) . rec%=I%|
0000b4b0  0d 31 88 2a 20 20 20 20  e7 20 73 61 76 65 5f 74  |.1.*    . save_t|
0000b4c0  79 70 65 25 3c 3e 32 20  84 20 72 65 63 25 3c 3e  |ype%<>2 . rec%<>|
0000b4d0  6f 6c 64 5f 72 65 63 25  20 8c 0d 31 92 31 20 20  |old_rec% ..1.1  |
0000b4e0  20 20 20 20 6c 65 6e 67  74 68 25 3d 30 3a 74 61  |    length%=0:ta|
0000b4f0  62 5f 70 6f 73 25 3d 74  61 62 25 2b 28 72 65 63  |b_pos%=tab%+(rec|
0000b500  25 2a 72 65 63 5f 6c 65  6e 25 29 0d 31 9c 26 20  |%*rec_len%).1.& |
0000b510  20 20 20 20 20 e3 20 66  69 65 6c 64 25 3d 30 20  |     . field%=0 |
0000b520  b8 20 6d 61 78 5f 66 69  65 6c 64 25 20 88 20 33  |. max_field% . 3|
0000b530  32 0d 31 a6 54 20 20 20  20 20 20 20 20 61 25 3d  |2.1.T        a%=|
0000b540  62 32 25 2b 6c 65 6e 67  74 68 25 3a 61 32 25 3d  |b2%+length%:a2%=|
0000b550  74 61 62 5f 70 6f 73 25  2b 66 69 65 6c 64 25 3a  |tab_pos%+field%:|
0000b560  6c 65 6e 25 3d 30 3a 24  62 33 25 3d 24 61 32 25  |len%=0:$b3%=$a2%|
0000b570  3a 41 25 3d 62 33 25 3a  d6 20 63 75 74 3a 61 24  |:A%=b3%:. cut:a$|
0000b580  3d 24 62 33 25 0d 31 b0  16 20 20 20 20 20 20 20  |=$b3%.1..       |
0000b590  20 e7 20 63 6f 6d 6d 61  25 20 8c 0d 31 ba 23 20  | . comma% ..1.# |
0000b5a0  20 20 20 20 20 20 20 20  20 66 25 3d 66 69 65 6c  |         f%=fiel|
0000b5b0  64 25 2f 33 32 3a e7 20  66 25 3c 37 20 8c 0d 31  |d%/32:. f%<7 ..1|
0000b5c0  c4 42 20 20 20 20 20 20  20 20 20 20 20 20 63 6f  |.B            co|
0000b5d0  6d 25 3d 30 3a e3 20 4a  25 3d 66 25 2b 31 20 b8  |m%=0:. J%=f%+1 .|
0000b5e0  20 37 3a e7 20 74 61 62  5f 70 6f 73 25 3f 28 4a  | 7:. tab_pos%?(J|
0000b5f0  25 2a 33 32 29 3e 3d 33  32 20 63 6f 6d 25 3d 31  |%*32)>=32 com%=1|
0000b600  0d 31 ce 11 20 20 20 20  20 20 20 20 20 20 20 20  |.1..            |
0000b610  ed 0d 31 d8 16 20 20 20  20 20 20 20 20 20 20 cc  |..1..          .|
0000b620  20 63 6f 6d 25 3d 30 0d  31 e2 0f 20 20 20 20 20  | com%=0.1..     |
0000b630  20 20 20 20 20 cd 0d 31  ec 20 20 20 20 20 20 20  |     ..1.       |
0000b640  20 20 20 20 e7 20 66 25  3c 3d 37 20 80 20 61 24  |    . f%<=7 . a$|
0000b650  3c 3e 22 22 20 8c 0d 31  f6 28 20 20 20 20 20 20  |<>"" ..1.(      |
0000b660  20 20 20 20 20 20 e7 20  63 6f 6d 25 20 61 24 2b  |      . com% a$+|
0000b670  3d 22 2c 22 20 8b 20 61  24 2b 3d 22 2e 22 0d 32  |="," . a$+=".".2|
0000b680  00 0f 20 20 20 20 20 20  20 20 20 20 cd 0d 32 0a  |..          ..2.|
0000b690  0d 20 20 20 20 20 20 20  20 cd 0d 32 14 4c 20 20  |.        ..2.L  |
0000b6a0  20 20 20 20 20 20 e7 20  61 73 63 69 69 25 3d 30  |      . ascii%=0|
0000b6b0  20 84 20 28 61 73 63 69  69 25 3d 31 20 80 20 3f  | . (ascii%=1 . ?|
0000b6c0  61 32 25 3e 3d 33 32 29  20 8c 20 24 61 25 3d 61  |a2%>=32) . $a%=a|
0000b6d0  24 3a 41 25 3d 61 25 3a  6c 65 6e 25 3d ba 28 63  |$:A%=a%:len%=.(c|
0000b6e0  75 74 32 29 2b 31 0d 32  1e 19 20 20 20 20 20 20  |ut2)+1.2..      |
0000b6f0  20 20 6c 65 6e 67 74 68  25 2b 3d 6c 65 6e 25 0d  |  length%+=len%.|
0000b700  32 28 4a 20 20 20 20 20  20 20 20 e7 20 61 73 63  |2(J        . asc|
0000b710  69 69 25 3d 31 20 80 20  66 69 65 6c 64 25 3d 37  |ii%=1 . field%=7|
0000b720  2a 33 32 20 80 20 74 65  6c 25 3d 31 20 3f 28 62  |*32 . tel%=1 ?(b|
0000b730  32 25 2b 6c 65 6e 67 74  68 25 29 3d 31 30 3a 6c  |2%+length%)=10:l|
0000b740  65 6e 67 74 68 25 2b 3d  31 0d 32 32 0b 20 20 20  |ength%+=1.22.   |
0000b750  20 20 20 ed 0d 32 3c 38  20 20 20 20 20 20 e7 20  |   ..2<8      . |
0000b760  61 73 63 69 69 25 20 80  20 49 25 3c 74 6f 25 20  |ascii% . I%<to% |
0000b770  3f 28 62 32 25 2b 6c 65  6e 67 74 68 25 29 3d 31  |?(b2%+length%)=1|
0000b780  30 3a 6c 65 6e 67 74 68  25 2b 3d 31 0d 32 46 52  |0:length%+=1.2FR|
0000b790  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 54  |      .. "Wimp_T|
0000b7a0  72 61 6e 73 66 65 72 42  6c 6f 63 6b 22 2c 74 61  |ransferBlock",ta|
0000b7b0  73 6b 5f 68 61 6e 64 6c  65 25 2c 62 32 25 2c 73  |sk_handle%,b2%,s|
0000b7c0  65 6e 64 65 72 25 2c 62  75 66 61 64 64 25 2b 6f  |ender%,bufadd%+o|
0000b7d0  66 66 73 65 74 25 2c 6c  65 6e 67 74 68 25 0d 32  |ffset%,length%.2|
0000b7e0  50 1a 20 20 20 20 20 20  6f 66 66 73 65 74 25 2b  |P.      offset%+|
0000b7f0  3d 6c 65 6e 67 74 68 25  0d 32 5a 09 20 20 20 20  |=length%.2Z.    |
0000b800  cd 0d 32 64 15 20 20 20  20 6f 6c 64 5f 72 65 63  |..2d.    old_rec|
0000b810  25 3d 72 65 63 25 0d 32  6e 07 20 20 ed 0d 32 78  |%=rec%.2n.  ..2x|
0000b820  18 20 20 c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |.  .. "Hourglass|
0000b830  5f 4f 66 66 22 0d 32 82  13 20 20 62 25 21 31 32  |_Off".2..  b%!12|
0000b840  3d 68 69 73 72 65 66 25  0d 32 8c 0d 20 20 62 25  |=hisref%.2..  b%|
0000b850  21 31 36 3d 37 0d 32 96  13 20 20 62 25 21 32 34  |!16=7.2..  b%!24|
0000b860  3d 6f 66 66 73 65 74 25  0d 32 a0 29 20 20 c8 99  |=offset%.2.)  ..|
0000b870  20 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  | "Wimp_SendMessa|
0000b880  67 65 22 2c 31 37 2c 62  25 2c 73 65 6e 64 65 72  |ge",17,b%,sender|
0000b890  25 0d 32 aa 05 cd 0d 32  b4 13 c8 8e 20 73 61 76  |%.2....2.... sav|
0000b8a0  65 5f 74 79 70 65 25 20  ca 0d 32 be 21 20 20 c9  |e_type% ..2.!  .|
0000b8b0  20 31 3a f2 63 6c 6f 73  65 5f 77 69 6e 64 6f 77  | 1:.close_window|
0000b8c0  28 73 61 76 65 5f 61 73  25 29 0d 32 c8 22 20 20  |(save_as%).2."  |
0000b8d0  c9 20 32 3a f2 63 6c 6f  73 65 5f 77 69 6e 64 6f  |. 2:.close_windo|
0000b8e0  77 28 73 61 76 65 5f 61  73 31 25 29 0d 32 d2 22  |w(save_as1%).2."|
0000b8f0  20 20 c9 20 33 3a f2 63  6c 6f 73 65 5f 77 69 6e  |  . 3:.close_win|
0000b900  64 6f 77 28 73 61 76 65  5f 61 73 32 25 29 0d 32  |dow(save_as2%).2|
0000b910  dc 05 cb 0d 32 e6 1c c8  99 20 22 57 69 6d 70 5f  |....2.... "Wimp_|
0000b920  43 72 65 61 74 65 4d 65  6e 75 22 2c 2c 2d 31 0d  |CreateMenu",,-1.|
0000b930  32 f0 05 e1 0d 32 fa 05  3a 0d 33 04 0a dd f2 68  |2....2..:.3....h|
0000b940  65 6c 70 0d 33 0e 35 21  62 25 3d 34 30 3a 62 25  |elp.3.5!b%=40:b%|
0000b950  21 31 36 3d 26 35 30 32  3a c8 99 20 22 57 69 6d  |!16=&502:.. "Wim|
0000b960  70 5f 47 65 74 50 6f 69  6e 74 65 72 49 6e 66 6f  |p_GetPointerInfo|
0000b970  22 2c 2c 62 25 2b 32 30  0d 33 18 5b 77 25 3d 62  |",,b%+20.3.[w%=b|
0000b980  25 21 33 32 3a 69 25 3d  62 25 21 33 36 3a 53 24  |%!32:i%=b%!36:S$|
0000b990  3d 22 43 6c 69 63 6b 20  53 45 4c 45 43 54 20 74  |="Click SELECT t|
0000b9a0  6f 20 22 3a 4d 24 3d 22  43 6c 69 63 6b 20 4d 45  |o ":M$="Click ME|
0000b9b0  4e 55 20 74 6f 20 22 3a  41 24 3d 22 43 6c 69 63  |NU to ":A$="Clic|
0000b9c0  6b 20 41 44 4a 55 53 54  20 74 6f 20 22 3a 6d 24  |k ADJUST to ":m$|
0000b9d0  3d 22 22 0d 33 22 39 57  24 3d 22 54 68 69 73 20  |="".3"9W$="This |
0000b9e0  77 69 6e 64 6f 77 20 73  68 6f 77 73 20 22 3a 49  |window shows ":I|
0000b9f0  24 3d 22 54 68 69 73 20  69 63 6f 6e 20 73 68 6f  |$="This icon sho|
0000ba00  77 73 20 22 3a 4e 24 3d  22 7c 4d 22 0d 33 2c 23  |ws ":N$="|M".3,#|
0000ba10  4d 24 3d 22 4d 6f 76 65  20 74 68 65 20 70 6f 69  |M$="Move the poi|
0000ba20  6e 74 65 72 20 72 69 67  68 74 20 74 6f 20 22 0d  |nter right to ".|
0000ba30  33 36 0b c8 8e 20 77 25  20 ca 0d 33 40 45 20 20  |36... w% ..3@E  |
0000ba40  c9 20 66 69 6c 65 5f 69  6e 66 6f 25 3a 6d 24 3d  |. file_info%:m$=|
0000ba50  57 24 2b 22 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |W$+"information |
0000ba60  61 62 6f 75 74 20 74 68  65 20 63 75 72 72 65 6e  |about the curren|
0000ba70  74 20 61 64 64 72 65 73  73 20 62 6f 6f 6b 22 0d  |t address book".|
0000ba80  33 4a 16 20 20 c9 20 74  6f 6f 6c 73 25 3a c8 8e  |3J.  . tools%:..|
0000ba90  20 69 25 20 ca 0d 33 54  2a 20 20 20 20 c9 20 30  | i% ..3T*    . 0|
0000baa0  3a 6d 24 3d 53 24 2b 22  6f 70 65 6e 20 74 68 65  |:m$=S$+"open the|
0000bab0  20 73 65 61 72 63 68 20  77 69 6e 64 6f 77 22 0d  | search window".|
0000bac0  33 5e 31 20 20 20 20 c9  20 31 3a 6d 24 3d 53 24  |3^1    . 1:m$=S$|
0000bad0  2b 22 73 6f 72 74 20 74  68 65 20 63 75 72 72 65  |+"sort the curre|
0000bae0  6e 74 20 61 64 64 72 65  73 73 20 62 6f 6f 6b 22  |nt address book"|
0000baf0  0d 33 68 27 20 20 20 20  c9 20 32 3a 6d 24 3d 53  |.3h'    . 2:m$=S|
0000bb00  24 2b 22 63 72 65 61 74  65 20 61 20 6e 65 77 20  |$+"create a new |
0000bb10  72 65 63 6f 72 64 22 0d  33 72 2d 20 20 20 20 c9  |record".3r-    .|
0000bb20  20 33 3a 6d 24 3d 53 24  2b 22 64 65 6c 65 74 65  | 3:m$=S$+"delete|
0000bb30  20 74 68 65 20 63 75 72  72 65 6e 74 20 72 65 63  | the current rec|
0000bb40  6f 72 64 22 0d 33 7c 07  20 20 cb 0d 33 86 14 20  |ord".3|.  ..3.. |
0000bb50  20 c9 20 70 6f 73 25 3a  c8 8e 20 69 25 20 ca 0d  | . pos%:.. i% ..|
0000bb60  33 90 2c 20 20 20 20 c9  20 30 3a 6d 24 3d 53 24  |3.,    . 0:m$=S$|
0000bb70  2b 22 6d 6f 76 65 20 74  6f 20 74 68 65 20 66 69  |+"move to the fi|
0000bb80  72 73 74 20 72 65 63 6f  72 64 22 0d 33 9a 2a 20  |rst record".3.* |
0000bb90  20 20 20 c9 20 31 3a 6d  24 3d 53 24 2b 22 6d 6f  |   . 1:m$=S$+"mo|
0000bba0  76 65 20 62 61 63 6b 20  66 69 76 65 20 72 65 63  |ve back five rec|
0000bbb0  6f 72 64 73 22 0d 33 a4  28 20 20 20 20 c9 20 32  |ords".3.(    . 2|
0000bbc0  3a 6d 24 3d 53 24 2b 22  6d 6f 76 65 20 62 61 63  |:m$=S$+"move bac|
0000bbd0  6b 20 6f 6e 65 20 72 65  63 6f 72 64 22 0d 33 ae  |k one record".3.|
0000bbe0  2b 20 20 20 20 c9 20 33  3a 6d 24 3d 53 24 2b 22  |+    . 3:m$=S$+"|
0000bbf0  6d 6f 76 65 20 66 6f 72  77 61 72 64 20 6f 6e 65  |move forward one|
0000bc00  20 72 65 63 6f 72 64 22  0d 33 b8 2d 20 20 20 20  | record".3.-    |
0000bc10  c9 20 34 3a 6d 24 3d 53  24 2b 22 6d 6f 76 65 20  |. 4:m$=S$+"move |
0000bc20  66 6f 72 77 61 72 64 20  66 69 76 65 20 72 65 63  |forward five rec|
0000bc30  6f 72 64 73 22 0d 33 c2  2b 20 20 20 20 c9 20 35  |ords".3.+    . 5|
0000bc40  3a 6d 24 3d 53 24 2b 22  6d 6f 76 65 20 74 6f 20  |:m$=S$+"move to |
0000bc50  74 68 65 20 6c 61 73 74  20 72 65 63 6f 72 64 22  |the last record"|
0000bc60  0d 33 cc 5a 20 20 20 20  c9 20 36 3a 6d 24 3d 49  |.3.Z    . 6:m$=I|
0000bc70  24 2b 22 74 68 65 20 63  75 72 72 65 6e 74 20 72  |$+"the current r|
0000bc80  65 63 6f 72 64 20 6e 75  6d 62 65 72 20 61 6e 64  |ecord number and|
0000bc90  20 74 68 65 20 74 6f 74  61 6c 20 6e 75 6d 62 65  | the total numbe|
0000bca0  72 20 6f 66 20 72 65 63  6f 72 64 73 20 72 65 73  |r of records res|
0000bcb0  70 65 63 74 69 76 65 6c  79 22 0d 33 d6 2b 20 20  |pectively".3.+  |
0000bcc0  20 20 c9 20 37 3a 6d 24  3d 53 24 2b 22 67 6f 74  |  . 7:m$=S$+"got|
0000bcd0  6f 20 61 20 73 70 65 63  69 66 69 65 64 20 72 65  |o a specified re|
0000bce0  63 6f 72 64 22 0d 33 e0  07 20 20 cb 0d 33 ea 17  |cord".3..  ..3..|
0000bcf0  20 20 c9 20 73 65 61 72  63 68 25 3a c8 8e 20 69  |  . search%:.. i|
0000bd00  25 20 ca 0d 33 f4 56 20  20 20 20 c9 20 36 3a 6d  |% ..3.V    . 6:m|
0000bd10  24 3d 49 24 2b 22 74 68  65 20 63 75 72 72 65 6e  |$=I$+"the curren|
0000bd20  74 20 73 65 61 72 63 68  20 73 74 72 69 6e 67 2e  |t search string.|
0000bd30  22 2b 4e 24 2b 53 24 2b  22 63 68 61 6e 67 65 20  |"+N$+S$+"change |
0000bd40  74 68 65 20 63 6f 6e 74  65 6e 74 73 20 6f 66 20  |the contents of |
0000bd50  74 68 65 20 69 63 6f 6e  22 0d 33 fe 4f 20 20 20  |the icon".3.O   |
0000bd60  20 c9 20 37 2c 38 2c 39  2c 31 30 2c 31 31 2c 31  | . 7,8,9,10,11,1|
0000bd70  32 2c 31 33 2c 31 34 2c  31 35 3a 6d 24 3d 53 24  |2,13,14,15:m$=S$|
0000bd80  2b 22 63 68 6f 6f 73 65  20 77 68 69 63 68 20 66  |+"choose which f|
0000bd90  69 65 6c 64 73 20 74 6f  20 73 65 61 72 63 68 20  |ields to search |
0000bda0  74 68 72 6f 75 67 68 22  0d 34 08 47 20 20 20 20  |through".4.G    |
0000bdb0  c9 20 31 36 3a 6d 24 3d  53 24 2b 22 74 6f 67 67  |. 16:m$=S$+"togg|
0000bdc0  6c 65 20 77 68 65 74 68  65 72 20 74 68 65 20 73  |le whether the s|
0000bdd0  65 61 72 63 68 20 69 73  20 63 61 73 65 20 73 65  |earch is case se|
0000bde0  6e 73 69 74 69 76 65 20  6f 72 20 6e 6f 74 22 0d  |nsitive or not".|
0000bdf0  34 12 31 20 20 20 20 c9  20 31 37 3a 6d 24 3d 53  |4.1    . 17:m$=S|
0000be00  24 2b 22 70 65 72 66 6f  72 6d 20 74 68 65 20 73  |$+"perform the s|
0000be10  70 65 63 69 66 69 65 64  20 73 65 61 72 63 68 22  |pecified search"|
0000be20  0d 34 1c 42 20 20 20 20  c9 20 31 38 3a 6d 24 3d  |.4.B    . 18:m$=|
0000be30  53 24 2b 22 63 61 6e 63  65 6c 20 74 68 65 20 73  |S$+"cancel the s|
0000be40  65 61 72 63 68 20 61 6e  64 20 63 6c 6f 73 65 20  |earch and close |
0000be50  74 68 65 20 73 65 61 72  63 68 20 77 69 6e 64 6f  |the search windo|
0000be60  77 22 0d 34 26 07 20 20  cb 0d 34 30 33 20 20 c9  |w".4&.  ..403  .|
0000be70  20 69 6e 66 6f 25 3a 6d  24 3d 57 24 2b 22 69 6e  | info%:m$=W$+"in|
0000be80  66 6f 72 6d 61 74 69 6f  6e 20 61 62 6f 75 74 20  |formation about |
0000be90  74 68 65 20 70 72 6f 67  72 61 6d 22 0d 34 3a 39  |the program".4:9|
0000bea0  20 20 e7 20 69 25 3d 37  20 8c 20 6d 24 2b 3d 22  |  . i%=7 . m$+="|
0000beb0  2c 20 61 6e 64 20 74 68  69 73 20 69 73 20 74 68  |, and this is th|
0000bec0  65 20 65 78 63 65 6c 6c  65 6e 74 20 61 75 74 68  |e excellent auth|
0000bed0  6f 72 20 21 22 0d 34 44  2c 20 20 c9 20 73 61 76  |or !".4D,  . sav|
0000bee0  65 5f 61 73 25 2c 73 61  76 65 5f 61 73 31 25 2c  |e_as%,save_as1%,|
0000bef0  73 61 76 65 5f 61 73 32  25 3a c8 8e 20 69 25 20  |save_as2%:.. i% |
0000bf00  ca 0d 34 4e 7a 20 20 20  20 c9 20 30 3a 6d 24 3d  |..4Nz    . 0:m$=|
0000bf10  49 24 2b 22 74 68 65 20  66 69 6c 65 6e 61 6d 65  |I$+"the filename|
0000bf20  20 66 6f 72 20 74 68 65  20 66 69 6c 65 2e 20 49  | for the file. I|
0000bf30  66 20 69 74 20 69 73 20  6e 6f 74 20 61 20 63 6f  |f it is not a co|
0000bf40  6d 70 6c 65 74 65 20 70  61 74 68 6e 61 6d 65 2c  |mplete pathname,|
0000bf50  20 64 72 61 67 20 74 68  65 20 66 69 6c 65 20 69  | drag the file i|
0000bf60  63 6f 6e 20 74 6f 20 61  20 64 69 72 65 63 74 6f  |con to a directo|
0000bf70  72 79 20 64 69 73 70 6c  61 79 22 0d 34 58 a4 20  |ry display".4X. |
0000bf80  20 20 20 c9 20 31 3a 6d  24 3d 22 44 72 61 67 20  |   . 1:m$="Drag |
0000bf90  74 68 69 73 20 69 63 6f  6e 20 74 6f 20 74 68 65  |this icon to the|
0000bfa0  20 64 69 72 65 63 74 6f  72 79 20 64 69 73 70 6c  | directory displ|
0000bfb0  61 79 20 79 6f 75 20 77  68 69 63 68 20 74 6f 20  |ay you which to |
0000bfc0  73 61 76 65 20 74 68 65  20 61 64 64 72 65 73 73  |save the address|
0000bfd0  20 62 6f 6f 6b 2e 20 4f  72 2c 20 64 72 61 67 20  | book. Or, drag |
0000bfe0  69 74 20 74 6f 20 74 68  65 20 61 70 70 6c 69 63  |it to the applic|
0000bff0  61 74 69 6f 6e 20 69 6e  74 6f 20 77 68 69 63 68  |ation into which|
0000c000  20 79 6f 75 20 77 61 6e  74 20 74 6f 20 74 72 61  | you want to tra|
0000c010  6e 73 66 65 72 20 74 68  65 20 66 69 6c 65 22 0d  |nsfer the file".|
0000c020  34 62 98 20 20 20 20 c9  20 32 3a 6d 24 3d 53 24  |4b.    . 2:m$=S$|
0000c030  2b 22 73 61 76 65 20 74  68 65 20 66 69 6c 65 20  |+"save the file |
0000c040  75 6e 64 65 72 20 74 68  65 20 63 75 72 72 65 6e  |under the curren|
0000c050  74 20 70 61 74 68 6e 61  6d 65 2e 20 49 66 20 69  |t pathname. If i|
0000c060  74 20 69 73 20 6e 6f 74  20 61 20 63 6f 6d 70 6c  |t is not a compl|
0000c070  65 74 65 20 70 61 74 68  6e 61 6d 65 2c 20 79 6f  |ete pathname, yo|
0000c080  75 20 6d 75 73 74 20 64  72 61 67 20 74 68 65 20  |u must drag the |
0000c090  66 69 6c 65 20 69 63 6f  6e 20 74 6f 20 61 20 64  |file icon to a d|
0000c0a0  69 72 65 63 74 6f 72 79  20 64 69 73 70 6c 61 79  |irectory display|
0000c0b0  20 66 69 72 73 74 22 0d  34 6c 67 20 20 20 20 c9  | first".4lg    .|
0000c0c0  20 33 3a 6d 24 3d 53 24  2b 22 74 6f 67 67 6c 65  | 3:m$=S$+"toggle|
0000c0d0  20 77 68 65 74 68 65 72  20 74 6f 20 73 61 76 65  | whether to save|
0000c0e0  20 74 68 65 20 66 69 6c  65 20 69 6e 20 74 68 65  | the file in the|
0000c0f0  20 54 65 6c 41 64 64 72  20 66 6f 72 6d 61 74 2c  | TelAddr format,|
0000c100  20 6f 72 20 61 73 20 61  20 70 6c 61 69 6e 20 41  | or as a plain A|
0000c110  53 43 49 49 20 74 65 78  74 66 69 6c 65 22 0d 34  |SCII textfile".4|
0000c120  76 13 20 20 20 20 c9 20  34 3a c8 8e 20 77 25 20  |v.    . 4:.. w% |
0000c130  ca 0d 34 80 7a 20 20 20  20 20 20 c9 20 73 61 76  |..4.z      . sav|
0000c140  65 5f 61 73 25 3a 6d 24  3d 53 24 2b 22 63 68 6f  |e_as%:m$=S$+"cho|
0000c150  6f 73 65 20 62 65 74 77  65 65 6e 20 61 20 66 75  |ose between a fu|
0000c160  6c 6c 20 73 61 76 65 20  6f 66 20 74 68 65 20 61  |ll save of the a|
0000c170  64 64 72 65 73 73 20 62  6f 6f 6b 2c 20 6f 72 20  |ddress book, or |
0000c180  61 20 70 61 72 74 69 61  6c 20 73 61 76 65 20 6f  |a partial save o|
0000c190  66 20 6a 75 73 74 20 73  6f 6d 65 20 6f 66 20 74  |f just some of t|
0000c1a0  68 65 20 72 65 63 6f 72  64 73 22 0d 34 8a 75 20  |he records".4.u |
0000c1b0  20 20 20 20 20 c9 20 73  61 76 65 5f 61 73 32 25  |     . save_as2%|
0000c1c0  3a 6d 24 3d 53 24 2b 22  63 68 6f 6f 73 65 20 77  |:m$=S$+"choose w|
0000c1d0  68 65 74 68 65 72 20 79  6f 75 20 77 69 73 68 20  |hether you wish |
0000c1e0  74 6f 20 69 6e 63 6c 75  64 65 20 74 65 6c 65 70  |to include telep|
0000c1f0  68 6f 6e 65 20 6e 75 6d  62 65 72 73 20 77 69 74  |hone numbers wit|
0000c200  68 69 6e 20 74 68 65 20  73 69 6e 67 6c 65 20 61  |hin the single a|
0000c210  64 64 72 65 73 73 20 74  65 78 74 66 69 6c 65 22  |ddress textfile"|
0000c220  0d 34 94 09 20 20 20 20  cb 0d 34 9e 7a 20 20 20  |.4..    ..4.z   |
0000c230  20 c9 20 35 3a e7 20 77  25 3d 73 61 76 65 5f 61  | . 5:. w%=save_a|
0000c240  73 32 25 20 6d 24 3d 53  24 2b 22 63 68 6f 6f 73  |s2% m$=S$+"choos|
0000c250  65 20 77 68 65 74 68 65  72 20 79 6f 75 20 77 69  |e whether you wi|
0000c260  73 68 20 74 6f 20 69 6e  63 6c 75 64 65 20 63 6f  |sh to include co|
0000c270  6d 6d 61 73 20 61 6e 64  20 66 75 6c 6c 20 73 74  |mmas and full st|
0000c280  6f 70 73 20 61 66 74 65  72 20 65 61 63 68 20 6c  |ops after each l|
0000c290  69 6e 65 20 69 6e 20 74  68 65 20 61 64 64 72 65  |ine in the addre|
0000c2a0  73 73 22 0d 34 a8 93 20  20 20 20 c9 20 36 3a 6d  |ss".4..    . 6:m|
0000c2b0  24 3d 49 24 2b 22 74 68  65 20 73 74 61 72 74 20  |$=I$+"the start |
0000c2c0  72 65 63 6f 72 64 20 6e  75 6d 62 65 72 20 66 6f  |record number fo|
0000c2d0  72 20 74 68 65 20 70 61  72 74 69 61 6c 20 73 61  |r the partial sa|
0000c2e0  76 65 2e 22 2b 4e 24 2b  53 24 2b 22 61 6c 74 65  |ve."+N$+S$+"alte|
0000c2f0  72 20 74 68 65 20 6e 75  6d 62 65 72 2c 20 6f 72  |r the number, or|
0000c300  20 75 73 65 20 74 68 65  20 61 72 72 6f 77 20 69  | use the arrow i|
0000c310  63 6f 6e 73 20 74 6f 20  74 68 65 20 72 69 67 68  |cons to the righ|
0000c320  74 20 74 6f 20 63 68 61  6e 67 65 20 74 68 65 20  |t to change the |
0000c330  76 61 6c 75 65 22 0d 34  b2 49 20 20 20 20 c9 20  |value".4.I    . |
0000c340  37 3a 6d 24 3d 53 24 2b  22 64 65 63 72 65 61 73  |7:m$=S$+"decreas|
0000c350  65 20 74 68 65 20 73 74  61 72 74 20 72 65 63 6f  |e the start reco|
0000c360  72 64 20 6e 75 6d 62 65  72 20 66 6f 72 20 74 68  |rd number for th|
0000c370  65 20 70 61 72 74 69 61  6c 20 73 61 76 65 22 0d  |e partial save".|
0000c380  34 bc 99 20 20 20 20 c9  20 38 3a 6d 24 3d 53 24  |4..    . 8:m$=S$|
0000c390  2b 22 69 6e 63 72 65 61  73 65 20 74 68 65 20 73  |+"increase the s|
0000c3a0  74 61 72 74 20 72 65 63  6f 72 64 20 6e 75 6d 62  |tart record numb|
0000c3b0  65 72 20 66 6f 72 20 74  68 65 20 70 61 72 74 69  |er for the parti|
0000c3c0  61 6c 20 73 61 76 65 2e  20 52 65 6d 65 6d 62 65  |al save. Remembe|
0000c3d0  72 20 74 68 61 74 20 74  68 65 20 73 74 61 72 74  |r that the start|
0000c3e0  20 72 65 63 6f 72 64 20  6e 75 6d 62 65 72 20 77  | record number w|
0000c3f0  69 6c 6c 20 6e 6f 74 20  67 6f 20 62 65 79 6f 6e  |ill not go beyon|
0000c400  64 20 74 68 65 20 65 6e  64 20 72 65 63 6f 72 64  |d the end record|
0000c410  20 6e 75 6d 62 65 72 22  0d 34 c6 92 20 20 20 20  | number".4..    |
0000c420  c9 20 31 30 3a 6d 24 3d  49 24 2b 22 74 68 65 20  |. 10:m$=I$+"the |
0000c430  65 6e 64 20 72 65 63 6f  72 64 20 6e 75 6d 62 65  |end record numbe|
0000c440  72 20 66 6f 72 20 74 68  65 20 70 61 72 74 69 61  |r for the partia|
0000c450  6c 20 73 61 76 65 2e 22  2b 4e 24 2b 53 24 2b 22  |l save."+N$+S$+"|
0000c460  61 6c 74 65 72 20 74 68  65 20 6e 75 6d 62 65 72  |alter the number|
0000c470  2c 20 6f 72 20 75 73 65  20 74 68 65 20 61 72 72  |, or use the arr|
0000c480  6f 77 20 69 63 6f 6e 73  20 74 6f 20 74 68 65 20  |ow icons to the |
0000c490  72 69 67 68 74 20 74 6f  20 63 68 61 6e 67 65 20  |right to change |
0000c4a0  74 68 65 20 76 61 6c 75  65 22 0d 34 d0 97 20 20  |the value".4..  |
0000c4b0  20 20 c9 20 31 31 3a 6d  24 3d 53 24 2b 22 64 65  |  . 11:m$=S$+"de|
0000c4c0  63 72 65 61 73 65 20 74  68 65 20 65 6e 64 20 72  |crease the end r|
0000c4d0  65 63 6f 72 64 20 6e 75  6d 62 65 72 20 66 6f 72  |ecord number for|
0000c4e0  20 74 68 65 20 70 61 72  74 69 61 6c 20 73 61 76  | the partial sav|
0000c4f0  65 2e 20 52 65 6d 65 6d  62 65 72 20 74 68 61 74  |e. Remember that|
0000c500  20 74 68 65 20 65 6e 64  20 72 65 63 6f 72 64 20  | the end record |
0000c510  6e 75 6d 62 65 72 20 77  69 6c 6c 20 6e 6f 74 20  |number will not |
0000c520  67 6f 20 62 65 6c 6f 77  20 74 68 65 20 73 74 61  |go below the sta|
0000c530  72 74 20 72 65 63 6f 72  64 20 6e 75 6d 62 65 72  |rt record number|
0000c540  22 0d 34 da 48 20 20 20  20 c9 20 31 32 3a 6d 24  |".4.H    . 12:m$|
0000c550  3d 53 24 2b 22 69 6e 63  72 65 61 73 65 20 74 68  |=S$+"increase th|
0000c560  65 20 65 6e 64 20 72 65  63 6f 72 64 20 6e 75 6d  |e end record num|
0000c570  62 65 72 20 66 6f 72 20  74 68 65 20 70 61 72 74  |ber for the part|
0000c580  69 61 6c 20 73 61 76 65  22 0d 34 e4 07 20 20 cb  |ial save".4..  .|
0000c590  0d 34 ee a1 20 20 c9 20  6c 69 73 74 5f 70 61 6e  |.4..  . list_pan|
0000c5a0  65 25 3a 6d 24 3d 57 24  2b 22 74 68 65 20 72 65  |e%:m$=W$+"the re|
0000c5b0  63 6f 72 64 20 6e 75 6d  62 65 72 20 61 6e 64 20  |cord number and |
0000c5c0  6d 61 74 63 68 65 64 20  66 69 65 6c 64 73 20 6f  |matched fields o|
0000c5d0  66 20 74 68 65 20 6c 61  73 74 20 73 65 61 72 63  |f the last searc|
0000c5e0  68 20 70 65 72 66 6f 72  6d 65 64 2e 22 2b 4e 24  |h performed."+N$|
0000c5f0  2b 53 24 2b 22 6d 6f 76  65 20 74 6f 20 74 68 65  |+S$+"move to the|
0000c600  20 72 65 63 6f 72 64 20  61 6e 64 20 66 69 65 6c  | record and fiel|
0000c610  64 20 69 6e 20 77 68 69  63 68 20 74 68 69 73 20  |d in which this |
0000c620  73 74 72 69 6e 67 20 77  61 73 20 66 6f 75 6e 64  |string was found|
0000c630  22 0d 34 f8 15 20 20 c9  20 6c 69 73 74 25 3a c8  |".4..  . list%:.|
0000c640  8e 20 69 25 20 ca 0d 35  02 33 20 20 20 20 c9 20  |. i% ..5.3    . |
0000c650  31 3a 6d 24 3d 53 24 2b  22 63 6c 6f 73 65 20 74  |1:m$=S$+"close t|
0000c660  68 65 20 73 65 61 72 63  68 20 72 65 73 75 6c 74  |he search result|
0000c670  73 20 77 69 6e 64 6f 77  22 0d 35 0c 51 20 20 20  |s window".5.Q   |
0000c680  20 c9 20 32 3a 6d 24 3d  53 24 2b 22 72 65 2d 6f  | . 2:m$=S$+"re-o|
0000c690  70 65 6e 20 74 68 65 20  73 65 61 72 63 68 20 77  |pen the search w|
0000c6a0  69 6e 64 6f 77 20 61 6e  64 20 63 6c 6f 73 65 20  |indow and close |
0000c6b0  74 68 65 20 73 65 61 72  63 68 20 72 65 73 75 6c  |the search resul|
0000c6c0  74 73 20 77 69 6e 64 6f  77 22 0d 35 16 3c 20 20  |ts window".5.<  |
0000c6d0  20 20 c9 20 33 3a 6d 24  3d 53 24 2b 22 64 65 6c  |  . 3:m$=S$+"del|
0000c6e0  65 74 65 20 74 68 65 20  72 65 63 6f 72 64 73 20  |ete the records |
0000c6f0  6d 61 74 63 68 65 64 20  62 79 20 74 68 65 20 73  |matched by the s|
0000c700  65 61 72 63 68 22 0d 35  20 3f 20 20 20 20 c9 20  |earch".5 ?    . |
0000c710  34 3a 6d 24 3d 53 24 2b  22 6f 70 65 6e 20 61 20  |4:m$=S$+"open a |
0000c720  73 61 76 65 20 62 6f 78  20 74 6f 20 73 61 76 65  |save box to save|
0000c730  20 74 68 65 20 6d 61 74  63 68 65 64 20 72 65 63  | the matched rec|
0000c740  6f 72 64 73 22 0d 35 2a  49 20 20 20 20 c9 20 35  |ords".5*I    . 5|
0000c750  3a 6d 24 3d 53 24 2b 22  72 65 64 6f 20 74 68 65  |:m$=S$+"redo the|
0000c760  20 73 65 61 72 63 68 2c  20 75 73 65 66 75 6c 20  | search, useful |
0000c770  69 73 20 74 68 65 20 64  61 74 61 20 68 61 73 20  |is the data has |
0000c780  63 68 61 6e 67 65 64 20  73 69 6e 63 65 22 0d 35  |changed since".5|
0000c790  34 07 20 20 cb 0d 35 3e  15 20 20 c9 20 62 6f 6f  |4.  ..5>.  . boo|
0000c7a0  6b 25 3a c8 8e 20 69 25  20 ca 0d 35 48 44 20 20  |k%:.. i% ..5HD  |
0000c7b0  20 20 c9 20 39 3a 6d 24  3d 49 24 2b 22 74 68 65  |  . 9:m$=I$+"the|
0000c7c0  20 6e 61 6d 65 20 66 6f  72 20 74 68 69 73 20 72  | name for this r|
0000c7d0  65 63 6f 72 64 2e 22 2b  4e 24 2b 53 24 2b 22 61  |ecord."+N$+S$+"a|
0000c7e0  6c 74 65 72 20 74 68 65  20 64 61 74 61 22 0d 35  |lter the data".5|
0000c7f0  52 5c 20 20 20 20 c9 20  31 30 2c 31 31 2c 31 32  |R\    . 10,11,12|
0000c800  3a 6d 24 3d 22 54 68 65  73 65 20 69 63 6f 6e 73  |:m$="These icons|
0000c810  20 73 68 6f 77 20 74 68  65 20 61 64 64 72 65 73  | show the addres|
0000c820  73 20 66 6f 72 20 74 68  69 73 20 72 65 63 6f 72  |s for this recor|
0000c830  64 2e 22 2b 4e 24 2b 53  24 2b 22 61 6c 74 65 72  |d."+N$+S$+"alter|
0000c840  20 74 68 65 20 64 61 74  61 22 0d 35 5c 45 20 20  | the data".5\E  |
0000c850  20 20 c9 20 31 33 3a 6d  24 3d 49 24 2b 22 74 68  |  . 13:m$=I$+"th|
0000c860  65 20 74 6f 77 6e 20 66  6f 72 20 74 68 69 73 20  |e town for this |
0000c870  72 65 63 6f 72 64 2e 22  2b 4e 24 2b 53 24 2b 22  |record."+N$+S$+"|
0000c880  61 6c 74 65 72 20 74 68  65 20 64 61 74 61 22 0d  |alter the data".|
0000c890  35 66 47 20 20 20 20 c9  20 31 34 3a 6d 24 3d 49  |5fG    . 14:m$=I|
0000c8a0  24 2b 22 74 68 65 20 63  6f 75 6e 74 79 20 66 6f  |$+"the county fo|
0000c8b0  72 20 74 68 69 73 20 72  65 63 6f 72 64 2e 22 2b  |r this record."+|
0000c8c0  4e 24 2b 53 24 2b 22 61  6c 74 65 72 20 74 68 65  |N$+S$+"alter the|
0000c8d0  20 64 61 74 61 22 0d 35  70 48 20 20 20 20 c9 20  | data".5pH    . |
0000c8e0  31 35 3a 6d 24 3d 49 24  2b 22 74 68 65 20 63 6f  |15:m$=I$+"the co|
0000c8f0  75 6e 74 72 79 20 66 6f  72 20 74 68 69 73 20 72  |untry for this r|
0000c900  65 63 6f 72 64 2e 22 2b  4e 24 2b 53 24 2b 22 61  |ecord."+N$+S$+"a|
0000c910  6c 74 65 72 20 74 68 65  20 64 61 74 61 22 0d 35  |lter the data".5|
0000c920  7a 49 20 20 20 20 c9 20  31 36 3a 6d 24 3d 49 24  |zI    . 16:m$=I$|
0000c930  2b 22 74 68 65 20 70 6f  73 74 63 6f 64 65 20 66  |+"the postcode f|
0000c940  6f 72 20 74 68 69 73 20  72 65 63 6f 72 64 2e 22  |or this record."|
0000c950  2b 4e 24 2b 53 24 2b 22  61 6c 74 65 72 20 74 68  |+N$+S$+"alter th|
0000c960  65 20 64 61 74 61 22 0d  35 84 56 20 20 20 20 c9  |e data".5.V    .|
0000c970  20 31 37 3a 6d 24 3d 49  24 2b 22 74 68 65 20 68  | 17:m$=I$+"the h|
0000c980  6f 6d 65 20 74 65 6c 65  70 68 6f 6e 65 20 6e 75  |ome telephone nu|
0000c990  6d 62 65 72 20 66 6f 72  20 74 68 69 73 20 72 65  |mber for this re|
0000c9a0  63 6f 72 64 2e 22 2b 4e  24 2b 53 24 2b 22 61 6c  |cord."+N$+S$+"al|
0000c9b0  74 65 72 20 74 68 65 20  64 61 74 61 22 0d 35 8e  |ter the data".5.|
0000c9c0  56 20 20 20 20 c9 20 31  38 3a 6d 24 3d 49 24 2b  |V    . 18:m$=I$+|
0000c9d0  22 74 68 65 20 77 6f 72  6b 20 74 65 6c 65 70 68  |"the work teleph|
0000c9e0  6f 6e 65 20 6e 75 6d 62  65 72 20 66 6f 72 20 74  |one number for t|
0000c9f0  68 69 73 20 72 65 63 6f  72 64 2e 22 2b 4e 24 2b  |his record."+N$+|
0000ca00  53 24 2b 22 61 6c 74 65  72 20 74 68 65 20 64 61  |S$+"alter the da|
0000ca10  74 61 22 0d 35 98 55 20  20 20 20 c9 20 31 39 3a  |ta".5.U    . 19:|
0000ca20  6d 24 3d 49 24 2b 22 74  68 65 20 66 61 78 20 74  |m$=I$+"the fax t|
0000ca30  65 6c 65 70 68 6f 6e 65  20 6e 75 6d 62 65 72 20  |elephone number |
0000ca40  66 6f 72 20 74 68 69 73  20 72 65 63 6f 72 64 2e  |for this record.|
0000ca50  22 2b 4e 24 2b 53 24 2b  22 61 6c 74 65 72 20 74  |"+N$+S$+"alter t|
0000ca60  68 65 20 64 61 74 61 22  0d 35 a2 07 20 20 cb 0d  |he data".5..  ..|
0000ca70  35 ac 15 20 20 c9 20 70  72 65 66 25 3a c8 8e 20  |5..  . pref%:.. |
0000ca80  69 25 20 ca 0d 35 b6 32  20 20 20 20 c9 20 31 3a  |i% ..5.2    . 1:|
0000ca90  6d 24 3d 53 24 2b 22 61  63 63 65 70 74 20 74 68  |m$=S$+"accept th|
0000caa0  65 20 63 75 72 72 65 6e  74 20 70 72 65 66 65 72  |e current prefer|
0000cab0  65 6e 63 65 73 22 0d 35  c0 52 20 20 20 20 c9 20  |ences".5.R    . |
0000cac0  32 3a 6d 24 3d 53 24 2b  22 63 61 6e 63 65 6c 20  |2:m$=S$+"cancel |
0000cad0  74 68 65 20 63 68 61 6e  67 65 64 20 70 72 65 66  |the changed pref|
0000cae0  65 72 65 6e 63 65 73 20  61 6e 64 20 72 65 73 65  |erences and rese|
0000caf0  74 20 74 68 65 6d 20 74  6f 20 68 6f 77 20 74 68  |t them to how th|
0000cb00  65 79 20 77 65 72 65 22  0d 35 ca 31 20 20 20 20  |ey were".5.1    |
0000cb10  c9 20 33 3a 6d 24 3d 53  24 2b 22 61 70 70 6c 79  |. 3:m$=S$+"apply|
0000cb20  20 74 68 65 20 64 65 66  61 75 6c 74 20 70 72 65  | the default pre|
0000cb30  66 65 72 65 6e 63 65 73  22 0d 35 d4 30 20 20 20  |ferences".5.0   |
0000cb40  20 c9 20 34 3a 6d 24 3d  53 24 2b 22 73 61 76 65  | . 4:m$=S$+"save|
0000cb50  20 74 68 65 20 63 75 72  72 65 6e 74 20 70 72 65  | the current pre|
0000cb60  66 65 72 65 6e 63 65 73  22 0d 35 de 33 20 20 20  |ferences".5.3   |
0000cb70  20 c9 20 35 3a 6d 24 3d  53 24 2b 22 6c 6f 61 64  | . 5:m$=S$+"load|
0000cb80  20 74 68 65 20 6c 61 73  74 20 73 61 76 65 64 20  | the last saved |
0000cb90  70 72 65 66 65 72 65 6e  63 65 73 22 0d 35 e8 07  |preferences".5..|
0000cba0  20 20 cb 0d 35 f2 1a 20  20 c9 20 70 72 65 66 5f  |  ..5..  . pref_|
0000cbb0  70 61 6e 65 25 3a c8 8e  20 69 25 20 ca 0d 35 fc  |pane%:.. i% ..5.|
0000cbc0  51 20 20 20 20 c9 20 32  3a 6d 24 3d 53 24 2b 22  |Q    . 2:m$=S$+"|
0000cbd0  74 6f 67 67 6c 65 20 77  68 65 74 68 65 72 20 74  |toggle whether t|
0000cbe0  6f 20 61 73 6b 20 66 6f  72 20 63 6f 6e 66 69 72  |o ask for confir|
0000cbf0  6d 61 74 69 6f 6e 20 77  68 65 6e 20 63 6c 65 61  |mation when clea|
0000cc00  72 69 6e 67 20 61 20 72  65 63 6f 72 64 22 0d 36  |ring a record".6|
0000cc10  06 51 20 20 20 20 c9 20  33 3a 6d 24 3d 53 24 2b  |.Q    . 3:m$=S$+|
0000cc20  22 74 6f 67 67 6c 65 20  77 68 65 74 68 65 72 20  |"toggle whether |
0000cc30  74 6f 20 61 73 6b 20 66  6f 72 20 63 6f 6e 66 69  |to ask for confi|
0000cc40  72 6d 61 74 69 6f 6e 20  77 68 65 6e 20 64 65 6c  |rmation when del|
0000cc50  65 74 69 6e 67 20 61 20  72 65 63 6f 72 64 22 0d  |eting a record".|
0000cc60  36 10 75 20 20 20 20 c9  20 34 3a 6d 24 3d 53 24  |6.u    . 4:m$=S$|
0000cc70  2b 22 74 6f 67 67 6c 65  20 77 68 65 74 68 65 72  |+"toggle whether|
0000cc80  20 74 6f 20 61 73 6b 20  66 6f 72 20 63 6f 6e 66  | to ask for conf|
0000cc90  69 72 6d 61 74 69 6f 6e  20 77 68 65 6e 20 64 65  |irmation when de|
0000cca0  6c 65 74 69 6e 67 20 74  68 65 20 6d 61 74 63 68  |leting the match|
0000ccb0  65 64 20 72 65 63 6f 72  64 73 20 66 6f 75 6e 64  |ed records found|
0000ccc0  20 62 79 20 74 68 65 20  6c 61 73 74 20 73 65 61  | by the last sea|
0000ccd0  72 63 68 22 0d 36 1a 62  20 20 20 20 c9 20 35 3a  |rch".6.b    . 5:|
0000cce0  6d 24 3d 53 24 2b 22 74  6f 67 67 6c 65 20 77 68  |m$=S$+"toggle wh|
0000ccf0  65 74 68 65 72 20 74 6f  20 61 73 6b 20 66 6f 72  |ether to ask for|
0000cd00  20 63 6f 6e 66 69 72 6d  61 74 69 6f 6e 20 77 68  | confirmation wh|
0000cd10  65 6e 20 64 65 6c 65 74  69 6e 67 20 74 68 65 20  |en deleting the |
0000cd20  63 6f 6d 70 6c 65 74 65  20 61 64 64 72 65 73 73  |complete address|
0000cd30  20 62 6f 6f 6b 22 0d 36  24 f3 20 20 20 20 c9 20  | book".6$.    . |
0000cd40  39 3a 6d 24 3d 22 49 66  20 74 68 69 73 20 6f 70  |9:m$="If this op|
0000cd50  74 69 6f 6e 20 69 73 20  73 65 6c 65 63 74 65 64  |tion is selected|
0000cd60  2c 20 74 68 65 6e 20 77  68 65 6e 20 6d 65 72 67  |, then when merg|
0000cd70  69 6e 67 20 61 20 73 69  6e 67 6c 65 20 61 64 64  |ing a single add|
0000cd80  72 65 73 73 20 66 69 6c  65 2c 20 54 65 6c 41 64  |ress file, TelAd|
0000cd90  64 72 20 77 69 6c 6c 20  63 68 65 63 6b 20 69 66  |dr will check if|
0000cda0  20 74 68 65 20 63 75 72  72 65 6e 74 20 72 65 63  | the current rec|
0000cdb0  6f 72 64 20 69 73 20 62  6c 61 6e 6b 3b 20 69 66  |ord is blank; if|
0000cdc0  20 73 6f 2c 20 69 74 20  77 69 6c 6c 20 72 65 70  | so, it will rep|
0000cdd0  6c 61 63 65 20 69 74 20  77 69 74 68 20 74 68 65  |lace it with the|
0000cde0  20 6e 65 77 20 61 64 64  72 65 73 73 2c 20 6f 74  | new address, ot|
0000cdf0  68 65 72 77 69 73 65 20  69 74 20 77 69 6c 6c 20  |herwise it will |
0000ce00  61 70 70 65 6e 64 20 69  74 20 74 6f 20 74 68 65  |append it to the|
0000ce10  20 65 6e 64 20 6f 66 20  74 68 65 20 61 64 64 72  | end of the addr|
0000ce20  65 73 73 20 62 6f 6f 6b  22 0d 36 2e 8e 20 20 20  |ess book".6..   |
0000ce30  20 c9 20 31 30 3a 6d 24  3d 22 49 66 20 74 68 69  | . 10:m$="If thi|
0000ce40  73 20 6f 70 74 69 6f 6e  20 69 73 20 73 65 6c 65  |s option is sele|
0000ce50  63 74 65 64 2c 20 74 68  65 6e 20 77 68 65 6e 20  |cted, then when |
0000ce60  6d 65 72 67 69 6e 67 20  61 6e 79 20 61 64 64 72  |merging any addr|
0000ce70  65 73 73 20 66 69 6c 65  2c 20 54 65 6c 41 64 64  |ess file, TelAdd|
0000ce80  72 20 77 69 6c 6c 20 61  6c 77 61 79 73 20 61 70  |r will always ap|
0000ce90  70 65 6e 64 20 69 74 20  74 6f 20 74 68 65 20 65  |pend it to the e|
0000cea0  6e 64 20 6f 66 20 74 68  65 20 61 64 64 72 65 73  |nd of the addres|
0000ceb0  73 20 62 6f 6f 6b 22 0d  36 38 87 20 20 20 20 c9  |s book".68.    .|
0000cec0  20 31 33 3a 6d 24 3d 22  49 66 20 74 68 69 73 20  | 13:m$="If this |
0000ced0  6f 70 74 69 6f 6e 20 69  73 20 73 65 6c 65 63 74  |option is select|
0000cee0  65 64 2c 20 74 68 65 6e  20 77 68 65 6e 20 61 64  |ed, then when ad|
0000cef0  64 69 6e 67 20 72 65 63  6f 72 64 73 20 66 72 6f  |ding records fro|
0000cf00  6d 20 74 68 65 20 74 6f  6f 6c 62 6f 78 2c 20 74  |m the toolbox, t|
0000cf10  68 65 79 20 77 69 6c 6c  20 62 65 20 63 72 65 61  |hey will be crea|
0000cf20  74 65 64 20 62 65 66 6f  72 65 20 74 68 65 20 63  |ted before the c|
0000cf30  75 72 72 65 6e 74 20 72  65 63 6f 72 64 22 0d 36  |urrent record".6|
0000cf40  42 86 20 20 20 20 c9 20  31 34 3a 6d 24 3d 22 49  |B.    . 14:m$="I|
0000cf50  66 20 74 68 69 73 20 6f  70 74 69 6f 6e 20 69 73  |f this option is|
0000cf60  20 73 65 6c 65 63 74 65  64 2c 20 74 68 65 6e 20  | selected, then |
0000cf70  77 68 65 6e 20 61 64 64  69 6e 67 20 72 65 63 6f  |when adding reco|
0000cf80  72 64 73 20 66 72 6f 6d  20 74 68 65 20 74 6f 6f  |rds from the too|
0000cf90  6c 62 6f 78 2c 20 74 68  65 79 20 77 69 6c 6c 20  |lbox, they will |
0000cfa0  62 65 20 63 72 65 61 74  65 64 20 61 66 74 65 72  |be created after|
0000cfb0  20 74 68 65 20 63 75 72  72 65 6e 74 20 72 65 63  | the current rec|
0000cfc0  6f 72 64 22 0d 36 4c 58  20 20 20 20 c9 20 31 39  |ord".6LX    . 19|
0000cfd0  2c 32 30 2c 32 31 2c 32  32 2c 32 33 2c 32 34 2c  |,20,21,22,23,24,|
0000cfe0  32 35 2c 32 36 2c 32 37  3a 6d 24 3d 53 24 2b 22  |25,26,27:m$=S$+"|
0000cff0  74 6f 67 67 6c 65 20 74  68 65 20 64 65 66 61 75  |toggle the defau|
0000d000  6c 74 20 66 69 65 6c 64  73 20 74 6f 20 73 65 61  |lt fields to sea|
0000d010  72 63 68 20 74 68 72 6f  75 67 68 22 0d 36 56 47  |rch through".6VG|
0000d020  20 20 20 20 c9 20 33 30  3a 6d 24 3d 53 24 2b 22  |    . 30:m$=S$+"|
0000d030  74 6f 67 67 6c 65 20 77  68 65 74 68 65 72 20 74  |toggle whether t|
0000d040  6f 20 68 61 76 65 20 63  61 73 65 20 73 65 6e 73  |o have case sens|
0000d050  69 74 69 76 69 74 79 20  61 73 20 64 65 66 61 75  |itivity as defau|
0000d060  6c 74 22 0d 36 60 56 20  20 20 20 c9 20 33 35 3a  |lt".6`V    . 35:|
0000d070  6d 24 3d 53 24 2b 22 63  68 6f 6f 73 65 20 74 68  |m$=S$+"choose th|
0000d080  65 20 54 65 6c 41 64 64  72 20 66 6f 72 6d 61 74  |e TelAddr format|
0000d090  20 61 73 20 64 65 66 61  75 6c 74 20 77 68 65 6e  | as default when|
0000d0a0  20 73 61 76 69 6e 67 20  74 68 65 20 61 64 64 72  | saving the addr|
0000d0b0  65 73 73 20 62 6f 6f 6b  22 0d 36 6a 56 20 20 20  |ess book".6jV   |
0000d0c0  20 c9 20 33 36 3a 6d 24  3d 53 24 2b 22 63 68 6f  | . 36:m$=S$+"cho|
0000d0d0  6f 73 65 20 41 53 43 49  49 20 28 61 20 74 65 78  |ose ASCII (a tex|
0000d0e0  74 66 69 6c 65 29 20 61  73 20 64 65 66 61 75 6c  |tfile) as defaul|
0000d0f0  74 20 77 68 65 6e 20 73  61 76 69 6e 67 20 74 68  |t when saving th|
0000d100  65 20 61 64 64 72 65 73  73 20 62 6f 6f 6b 22 0d  |e address book".|
0000d110  36 74 62 20 20 20 20 c9  20 33 37 3a 6d 24 3d 53  |6tb    . 37:m$=S|
0000d120  24 2b 22 74 6f 67 67 6c  65 20 77 68 65 74 68 65  |$+"toggle whethe|
0000d130  72 20 74 6f 20 68 61 76  65 20 70 61 72 74 69 61  |r to have partia|
0000d140  6c 20 73 61 76 69 6e 67  20 61 73 20 64 65 66 61  |l saving as defa|
0000d150  75 6c 74 20 77 68 65 6e  20 73 61 76 69 6e 67 20  |ult when saving |
0000d160  74 68 65 20 61 64 64 72  65 73 73 20 62 6f 6f 6b  |the address book|
0000d170  22 0d 36 7e 9c 20 20 20  20 c9 20 33 39 3a 6d 24  |".6~.    . 39:m$|
0000d180  3d 49 24 2b 22 74 68 65  20 64 65 66 61 75 6c 74  |=I$+"the default|
0000d190  20 73 74 61 72 74 20 72  65 63 6f 72 64 20 6e 75  | start record nu|
0000d1a0  6d 62 65 72 20 66 6f 72  20 74 68 65 20 70 61 72  |mber for the par|
0000d1b0  74 69 61 6c 20 73 61 76  65 2e 22 2b 4e 24 2b 53  |tial save."+N$+S|
0000d1c0  24 2b 22 61 6c 74 65 72  20 74 68 65 20 6e 75 6d  |$+"alter the num|
0000d1d0  62 65 72 2c 20 6f 72 20  75 73 65 20 74 68 65 20  |ber, or use the |
0000d1e0  61 72 72 6f 77 20 69 63  6f 6e 73 20 74 6f 20 74  |arrow icons to t|
0000d1f0  68 65 20 72 69 67 68 74  20 74 6f 20 63 68 61 6e  |he right to chan|
0000d200  67 65 20 74 68 65 20 76  61 6c 75 65 22 0d 36 88  |ge the value".6.|
0000d210  52 20 20 20 20 c9 20 34  30 3a 6d 24 3d 53 24 2b  |R    . 40:m$=S$+|
0000d220  22 64 65 63 72 65 61 73  65 20 74 68 65 20 64 65  |"decrease the de|
0000d230  66 61 75 6c 74 20 73 74  61 72 74 20 72 65 63 6f  |fault start reco|
0000d240  72 64 20 6e 75 6d 62 65  72 20 66 6f 72 20 74 68  |rd number for th|
0000d250  65 20 70 61 72 74 69 61  6c 20 73 61 76 65 22 0d  |e partial save".|
0000d260  36 92 52 20 20 20 20 c9  20 34 31 3a 6d 24 3d 53  |6.R    . 41:m$=S|
0000d270  24 2b 22 69 6e 63 72 65  61 73 65 20 74 68 65 20  |$+"increase the |
0000d280  64 65 66 61 75 6c 74 20  73 74 61 72 74 20 72 65  |default start re|
0000d290  63 6f 72 64 20 6e 75 6d  62 65 72 20 66 6f 72 20  |cord number for |
0000d2a0  74 68 65 20 70 61 72 74  69 61 6c 20 73 61 76 65  |the partial save|
0000d2b0  22 0d 36 9c 9a 20 20 20  20 c9 20 34 33 3a 6d 24  |".6..    . 43:m$|
0000d2c0  3d 49 24 2b 22 74 68 65  20 64 65 66 61 75 6c 74  |=I$+"the default|
0000d2d0  20 65 6e 64 20 72 65 63  6f 72 64 20 6e 75 6d 62  | end record numb|
0000d2e0  65 72 20 66 6f 72 20 74  68 65 20 70 61 72 74 69  |er for the parti|
0000d2f0  61 6c 20 73 61 76 65 2e  22 2b 4e 24 2b 53 24 2b  |al save."+N$+S$+|
0000d300  22 61 6c 74 65 72 20 74  68 65 20 6e 75 6d 62 65  |"alter the numbe|
0000d310  72 2c 20 6f 72 20 75 73  65 20 74 68 65 20 61 72  |r, or use the ar|
0000d320  72 6f 77 20 69 63 6f 6e  73 20 74 6f 20 74 68 65  |row icons to the|
0000d330  20 72 69 67 68 74 20 74  6f 20 63 68 61 6e 67 65  | right to change|
0000d340  20 74 68 65 20 76 61 6c  75 65 22 0d 36 a6 50 20  | the value".6.P |
0000d350  20 20 20 c9 20 34 34 3a  6d 24 3d 53 24 2b 22 64  |   . 44:m$=S$+"d|
0000d360  65 63 72 65 61 73 65 20  74 68 65 20 64 65 66 61  |ecrease the defa|
0000d370  75 6c 74 20 65 6e 64 20  72 65 63 6f 72 64 20 6e  |ult end record n|
0000d380  75 6d 62 65 72 20 66 6f  72 20 74 68 65 20 70 61  |umber for the pa|
0000d390  72 74 69 61 6c 20 73 61  76 65 22 0d 36 b0 50 20  |rtial save".6.P |
0000d3a0  20 20 20 c9 20 34 35 3a  6d 24 3d 53 24 2b 22 69  |   . 45:m$=S$+"i|
0000d3b0  6e 63 72 65 61 73 65 20  74 68 65 20 64 65 66 61  |ncrease the defa|
0000d3c0  75 6c 74 20 65 6e 64 20  72 65 63 6f 72 64 20 6e  |ult end record n|
0000d3d0  75 6d 62 65 72 20 66 6f  72 20 74 68 65 20 70 61  |umber for the pa|
0000d3e0  72 74 69 61 6c 20 73 61  76 65 22 0d 36 ba 58 20  |rtial save".6.X |
0000d3f0  20 20 20 c9 20 34 38 3a  6d 24 3d 53 24 2b 22 63  |   . 48:m$=S$+"c|
0000d400  68 6f 6f 73 65 20 74 68  65 20 54 65 6c 41 64 64  |hoose the TelAdd|
0000d410  72 20 66 6f 72 6d 61 74  20 61 73 20 64 65 66 61  |r format as defa|
0000d420  75 6c 74 20 77 68 65 6e  20 73 61 76 69 6e 67 20  |ult when saving |
0000d430  74 68 65 20 73 65 61 72  63 68 20 72 65 73 75 6c  |the search resul|
0000d440  74 73 22 0d 36 c4 58 20  20 20 20 c9 20 34 39 3a  |ts".6.X    . 49:|
0000d450  6d 24 3d 53 24 2b 22 63  68 6f 6f 73 65 20 41 53  |m$=S$+"choose AS|
0000d460  43 49 49 20 28 61 20 74  65 78 74 66 69 6c 65 29  |CII (a textfile)|
0000d470  20 61 73 20 64 65 66 61  75 6c 74 20 77 68 65 6e  | as default when|
0000d480  20 73 61 76 69 6e 67 20  74 68 65 20 73 65 61 72  | saving the sear|
0000d490  63 68 20 72 65 73 75 6c  74 73 22 0d 36 ce 56 20  |ch results".6.V |
0000d4a0  20 20 20 c9 20 35 32 3a  6d 24 3d 53 24 2b 22 63  |   . 52:m$=S$+"c|
0000d4b0  68 6f 6f 73 65 20 74 68  65 20 54 65 6c 41 64 64  |hoose the TelAdd|
0000d4c0  72 20 66 6f 72 6d 61 74  20 61 73 20 64 65 66 61  |r format as defa|
0000d4d0  75 6c 74 20 77 68 65 6e  20 73 61 76 69 6e 67 20  |ult when saving |
0000d4e0  61 20 73 69 6e 67 6c 65  20 61 64 64 72 65 73 73  |a single address|
0000d4f0  22 0d 36 d8 56 20 20 20  20 c9 20 35 33 3a 6d 24  |".6.V    . 53:m$|
0000d500  3d 53 24 2b 22 63 68 6f  6f 73 65 20 41 53 43 49  |=S$+"choose ASCI|
0000d510  49 20 28 61 20 74 65 78  74 66 69 6c 65 29 20 61  |I (a textfile) a|
0000d520  73 20 64 65 66 61 75 6c  74 20 77 68 65 6e 20 73  |s default when s|
0000d530  61 76 69 6e 67 20 61 20  73 69 6e 67 6c 65 20 61  |aving a single a|
0000d540  64 64 72 65 73 73 22 0d  36 e2 6d 20 20 20 20 c9  |ddress".6.m    .|
0000d550  20 35 34 3a 6d 24 3d 53  24 2b 22 74 6f 67 67 6c  | 54:m$=S$+"toggl|
0000d560  65 20 77 68 65 74 68 65  72 20 74 6f 20 69 6e 63  |e whether to inc|
0000d570  6c 75 64 65 20 74 65 6c  65 70 68 6f 6e 65 20 6e  |lude telephone n|
0000d580  75 6d 62 65 72 73 20 61  73 20 64 65 66 61 75 6c  |umbers as defaul|
0000d590  74 20 77 68 65 6e 20 73  61 76 69 6e 67 20 61 20  |t when saving a |
0000d5a0  73 69 6e 67 6c 65 20 61  64 64 72 65 73 73 20 62  |single address b|
0000d5b0  6f 6f 6b 22 0d 36 ec 6d  20 20 20 20 c9 20 37 34  |ook".6.m    . 74|
0000d5c0  3a 6d 24 3d 53 24 2b 22  74 6f 67 67 6c 65 20 77  |:m$=S$+"toggle w|
0000d5d0  68 65 74 68 65 72 20 74  6f 20 61 64 64 20 63 6f  |hether to add co|
0000d5e0  6d 6d 61 73 20 61 6e 64  20 66 75 6c 6c 2d 73 74  |mmas and full-st|
0000d5f0  6f 70 73 20 61 73 20 64  65 66 61 75 6c 74 20 77  |ops as default w|
0000d600  68 65 6e 20 73 61 76 69  6e 67 20 61 20 73 69 6e  |hen saving a sin|
0000d610  67 6c 65 20 61 64 64 72  65 73 73 20 62 6f 6f 6b  |gle address book|
0000d620  22 0d 36 f6 67 20 20 20  20 c9 20 35 37 3a 6d 24  |".6.g    . 57:m$|
0000d630  3d 53 24 2b 22 74 6f 67  67 6c 65 20 77 68 65 74  |=S$+"toggle whet|
0000d640  68 65 72 20 74 6f 20 68  69 67 68 6c 69 67 68 74  |her to highlight|
0000d650  20 74 68 65 20 73 65 61  72 63 68 20 73 74 72 69  | the search stri|
0000d660  6e 67 20 69 6e 20 74 68  65 20 6d 61 74 63 68 65  |ng in the matche|
0000d670  64 20 66 69 65 6c 64 73  20 61 66 74 65 72 20 61  |d fields after a|
0000d680  20 73 65 61 72 63 68 22  0d 37 00 32 20 20 20 20  | search".7.2    |
0000d690  c9 20 35 38 3a 6d 24 3d  49 24 2b 22 74 68 65 20  |. 58:m$=I$+"the |
0000d6a0  64 65 66 61 75 6c 74 20  68 69 67 68 74 6c 69 67  |default hightlig|
0000d6b0  68 74 20 63 6f 6c 6f 75  72 22 0d 37 0a 39 20 20  |ht colour".7.9  |
0000d6c0  20 20 c9 20 35 39 3a 6d  24 3d 53 24 2b 22 63 68  |  . 59:m$=S$+"ch|
0000d6d0  61 6e 67 65 20 74 68 65  20 64 65 66 61 75 6c 74  |ange the default|
0000d6e0  20 68 69 67 68 74 6c 69  67 68 74 20 63 6f 6c 6f  | hightlight colo|
0000d6f0  75 72 22 0d 37 14 61 20  20 20 20 c9 20 36 33 3a  |ur".7.a    . 63:|
0000d700  6d 24 3d 53 24 2b 22 74  6f 67 67 6c 65 20 77 68  |m$=S$+"toggle wh|
0000d710  65 74 68 65 72 20 74 6f  20 6c 6f 61 64 20 74 68  |ether to load th|
0000d720  65 20 73 70 65 63 69 66  69 65 64 20 61 64 64 72  |e specified addr|
0000d730  65 73 73 20 62 6f 6f 6b  20 77 68 65 6e 20 74 68  |ess book when th|
0000d740  65 20 70 72 6f 67 72 61  6d 20 69 73 20 6c 6f 61  |e program is loa|
0000d750  64 65 64 22 0d 37 1e a2  20 20 20 20 c9 20 36 35  |ded".7..    . 65|
0000d760  3a 6d 24 3d 49 24 2b 22  74 68 65 20 66 75 6c 6c  |:m$=I$+"the full|
0000d770  20 70 61 74 68 6e 61 6d  65 20 66 6f 72 20 74 68  | pathname for th|
0000d780  65 20 64 65 66 61 75 6c  74 20 61 64 64 72 65 73  |e default addres|
0000d790  73 20 62 6f 6f 6b 2e 22  2b 4e 24 2b 53 24 2b 22  |s book."+N$+S$+"|
0000d7a0  20 74 6f 20 61 6c 74 65  72 20 69 74 2c 20 6f 72  | to alter it, or|
0000d7b0  20 64 72 61 67 20 61 6e  20 61 64 64 72 65 73 73  | drag an address|
0000d7c0  20 62 6f 6f 6b 20 66 69  6c 65 20 6f 6e 74 6f 20  | book file onto |
0000d7d0  74 68 69 73 20 66 69 6c  65 20 74 6f 20 75 73 65  |this file to use|
0000d7e0  20 69 74 73 20 70 61 74  68 6e 61 6d 65 20 69 6e  | its pathname in|
0000d7f0  73 74 65 61 64 22 0d 37  28 79 20 20 20 20 c9 20  |stead".7(y    . |
0000d800  36 38 3a 6d 24 3d 53 24  2b 22 74 6f 67 67 6c 65  |68:m$=S$+"toggle|
0000d810  20 77 68 65 74 68 65 72  20 74 6f 20 73 68 6f 77  | whether to show|
0000d820  20 74 68 65 20 74 6f 6f  6c 62 6f 78 20 28 61 74  | the toolbox (at|
0000d830  74 61 63 68 65 64 20 74  6f 20 74 68 65 20 73 69  |tached to the si|
0000d840  64 65 20 6f 66 20 74 68  65 20 6d 61 69 6e 20 61  |de of the main a|
0000d850  64 64 72 65 73 73 20 62  6f 6f 6b 20 77 69 6e 64  |ddress book wind|
0000d860  6f 77 29 20 62 79 20 64  65 66 61 75 6c 74 22 0d  |ow) by default".|
0000d870  37 32 83 20 20 20 20 c9  20 36 39 3a 6d 24 3d 53  |72.    . 69:m$=S|
0000d880  24 2b 22 74 6f 67 67 6c  65 20 77 68 65 74 68 65  |$+"toggle whethe|
0000d890  72 20 74 6f 20 73 68 6f  77 20 74 68 65 20 70 6f  |r to show the po|
0000d8a0  73 69 74 69 6f 6e 20 77  69 6e 64 6f 77 20 28 61  |sition window (a|
0000d8b0  74 74 61 63 68 65 64 20  74 6f 20 74 68 65 20 62  |ttached to the b|
0000d8c0  6f 74 74 6f 6d 20 6f 66  20 74 68 65 20 6d 61 69  |ottom of the mai|
0000d8d0  6e 20 61 64 64 72 65 73  73 20 62 6f 6f 6b 20 77  |n address book w|
0000d8e0  69 6e 64 6f 77 29 20 62  79 20 64 65 66 61 75 6c  |indow) by defaul|
0000d8f0  74 22 0d 37 3c 5c 20 20  20 20 c9 20 37 32 3a 6d  |t".7<\    . 72:m|
0000d900  24 3d 53 24 2b 22 74 6f  67 67 6c 65 20 77 68 65  |$=S$+"toggle whe|
0000d910  74 68 65 72 20 74 6f 20  69 6e 73 65 72 74 20 61  |ther to insert a|
0000d920  20 64 65 66 61 75 6c 74  20 63 6f 75 6e 74 72 79  | default country|
0000d930  20 77 68 65 6e 20 61 20  6e 65 77 20 72 65 63 6f  | when a new reco|
0000d940  72 64 20 69 73 20 63 72  65 61 74 65 64 22 0d 37  |rd is created".7|
0000d950  46 3e 20 20 20 20 c9 20  37 33 3a 6d 24 3d 49 24  |F>    . 73:m$=I$|
0000d960  2b 22 74 68 65 20 64 65  66 61 75 6c 74 20 63 6f  |+"the default co|
0000d970  75 6e 74 72 79 2e 22 2b  4e 24 2b 53 24 2b 22 74  |untry."+N$+S$+"t|
0000d980  6f 20 63 68 61 6e 67 65  20 69 74 22 0d 37 50 07  |o change it".7P.|
0000d990  20 20 cb 0d 37 5a 78 20  20 c9 20 2d 32 3a 6d 24  |  ..7Zx  . -2:m$|
0000d9a0  3d 22 54 68 69 73 20 69  73 20 74 68 65 20 54 65  |="This is the Te|
0000d9b0  6c 41 64 64 72 20 69 63  6f 6e 2c 20 61 6e 20 65  |lAddr icon, an e|
0000d9c0  64 69 74 6f 72 20 6f 66  20 74 65 6c 65 70 68 6f  |ditor of telepho|
0000d9d0  6e 65 20 61 6e 64 20 61  64 64 72 65 73 73 20 62  |ne and address b|
0000d9e0  6f 6f 6b 73 2e 22 2b 4e  24 2b 53 24 2b 22 6f 70  |ooks."+N$+S$+"op|
0000d9f0  65 6e 20 74 68 65 20 61  64 64 72 65 73 73 20 62  |en the address b|
0000da00  6f 6f 6b 20 77 69 6e 64  6f 77 22 0d 37 64 05 cb  |ook window".7d..|
0000da10  0d 37 6e 2c e7 20 6d 24  3c 3e 22 22 20 c8 99 20  |.7n,. m$<>"" .. |
0000da20  22 57 69 6d 70 45 78 74  5f 53 65 6e 64 48 65 6c  |"WimpExt_SendHel|
0000da30  70 22 2c 6d 24 2b 22 2e  22 2c 62 25 0d 37 78 05  |p",m$+".",b%.7x.|
0000da40  e1 0d ff                                          |...|
0000da43