Home » Archimedes archive » Archimedes World » AW-1993-07.adf » AWJuly93 » !AWJuly93/Goodies/Card/!Card/!RunImage

!AWJuly93/Goodies/Card/!Card/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1993-07.adf » AWJuly93
Filename: !AWJuly93/Goodies/Card/!Card/!RunImage
Read OK:
File size: 4F74 bytes
Load address: 0000
Exec address: 0000
File contents
   10 ON ERROR PROCerror(REPORT$+" : at line "+STR$ERL)
   20REM ***>$.Card.!RunImage
   30REM ***Main Program for !Card - Business Card creator
   40REM Version 1.01 (28 Apr '93)
   50REM LEN J. Robbins
   60DIM block 2048, menu% 1024, curbuf%  2048, icond 1024, q% 1024, text% &1000, a$(23)
   70maxlev%=32
   80DIM start%(maxlev%),box%(maxlev%)
   90DIM l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%)
  100DIM buf% 256
  110 end%=-1
  120endbuf%=curbuf%+&6000
  130j=0:gee=0:family$="Trinity.Medium":fsize=12:in=FALSE:close=0:nono=0:ns=0:ni=0
  140SYS "Wimp_Initialise",200,&4B534154,"!Card" TO version%,mytask%
  150PROCtemplate
  160initic=FNicon
  170end%=FALSE:drag%=0:drive%=0:
  180size%=48:font%=-1:family%=0:style%=-1:n_font%=1
  190SYS"Hourglass_On"
  200PROCfmenucr
  210SYS"Hourglass_Off"
  220REPEAT
  230 SYS"Wimp_Poll",0,block TO eventcode
  240CASE eventcode OF
  250WHEN 0:
  260WHEN 1:PROCredraw(card%)
  270WHEN 2:SYS "Wimp_OpenWindow",,block
  280WHEN 3:SYS "Wimp_CloseWindow",,block
  290WHEN 6:PROCclick(block)
  300WHEN 7:PROCout
  310WHEN 8:PROCprocess
  320WHEN 9:PROCselect
  330WHEN 17,18:PROCin
  340ENDCASE
  350UNTIL end%
  360END
  370DEFFNicon
  380!icond=-1
  390icond!4=0
  400icond!8=0:icond!12=68:icond!16=68
  410icond!20=%11010+((2^12)*3):icond?23=112
  420$(icond+24)="!Card"+CHR$13
  430SYS "Wimp_CreateIcon",,icond TO icon
  440=icon
  450DEFFNinf(handle,icon)
  460PROCgee(handle,icon)
  470=icond!28
  480 DEFFNbit(a$)
  490WHILE INSTR(a$,":")>0
  500a$=MID$(a$,INSTR(a$,":")+1)
  510ENDWHILE
  520WHILE INSTR(a$,".")>0
  530a$=MID$(a$,INSTR(a$,".")+1)
  540ENDWHILE
  550=a$
  560DEFFNwool(wool%)
  570LOCAL cot$
  580 WHILE ?wool%>=32
  590cot$+=CHR$(?wool%)
  600wool%+=1
  610ENDWHILE
  620=cot$
  630DEFPROCtemplate
  640SYS"Wimp_OpenTemplate",,"<Card$Dir>.Templates"
  650indir=curbuf%
  660info%=FNtemplate("ProgInfo")
  670save%=FNtemplate("save")
  680card%=FNtemplate("Card")
  690details%=FNtemplate("details")
  700saved%=FNtemplate("savetext")
  710SYS "Wimp_CloseTemplate"
  720stex=FNinfo(save%,6)
  725stexd=FNinfo(saved%,6)
  730ENDPROC
  740DEFFNtemplate(a$)
  750SYS"Wimp_LoadTemplate",,block,indir,endbuf%,-1,a$,0 TO ,,indir,,,,c%
  760IF c%=0 THEN PROCmess("Template "+a$+" not found."):END
  770block!64=1
  780SYS"Wimp_CreateWindow",,block TO handle
  790=handle
  800DEFFNinfo(handle,icon)
  810PROCgee(handle,icon)
  820=icond!28
  830DEFPROCinfo(handle,icon,text$)
  840!block=handle:block!4=icon:SYS"Wimp_GetIconState",,block
  850$(block!28)=text$:block!36=LEN(text$)+1
  860block!8=0:block!12=0
  870SYS"Wimp_SetIconState",,block
  880ENDPROC
  890DEFPROCgee(handle,icon)
  900!icond=handle:icond!4=icon
  910SYS"Wimp_GetIconState",,icond
  920ENDPROC
  930DEFPROCcmenus
  940menuopen=-44
  950menuptr=menu%
  960MOUSE x,y,b
  970savemenu%=FNmenu("Save",174,"{b|save%}Draw,{b|saved%}Data")
  980iconmenu%=FNmenu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,Details,View,Quit")
  990detmenu%=FNmenu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,View,Quit")
 1000viewmenu%=FNmenu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,Details,Review,Quit")
 1010IF block!12=-2 AND block!8=2 THEN openmenu%=iconmenu%:a=x-75:b=338
 1020IF block!12=details% AND block!8=2 THEN openmenu%=detmenu%:a=x:b=y
 1030IF block!12=card% AND block!8=2 THEN openmenu%=viewmenu%:a=x:b=y
 1040PROCopenmenu(a,b)
 1050ENDPROC
 1060DEFPROCopenmenu(x,y)
 1070SYS"Wimp_CreateMenu",,openmenu%,x,y
 1080ENDPROC
 1090DEFFNmenu(tit$,wid,menu$)
 1100menu$+=","
 1110oldmenu=menuptr
 1120$menuptr=tit$
 1130menuptr?12=7
 1140menuptr?13=2
 1150menuptr?14=7
 1160menuptr?15=0
 1170menuptr!16=wid
 1180menuptr!20=48
 1190menuptr!24=0
 1200menuptr+=28
 1210REPEAT
 1220PROCthing(menu$)
 1230menu$=MID$(menu$,INSTR(menu$,",")+1)
 1240menuptr+=24
 1250UNTIL menu$=""
 1260menuptr!-24=(menuptr!-24) OR %10000000
 1270=oldmenu
 1280DEFPROCthing(m$)
 1290m$=LEFT$(m$,INSTR(m$,",")-1)
 1300i$="":j$=""
 1310IF INSTR(m$,"{")>0 THEN
 1320i$=LEFT$(m$,INSTR(m$,"}")-1)
 1330m$=MID$(m$,INSTR(m$,"}")+1)
 1340j$=LEFT$(i$,INSTR(i$,"|")-1)
 1350i$=MID$(i$,INSTR(i$,"|")+1)
 1360ENDIF
 1370ijack=&07000021
 1380mjack=0
 1390submenu=-1
 1400IF INSTR(j$,"b")>0 THEN submenu=EVAL(i$)
 1410IF INSTR(j$,"_")>0 THEN mjack=mjack OR 2
 1420IF INSTR(j$,"�")>0 THEN mjack=mjack OR 1
 1430IF INSTR(j$,"u")>0 THEN mjack=mjack OR 2:submenu=EVAL(i$)
 1440!menuptr=mjack
 1450menuptr!4=submenu
 1460menuptr!8=ijack
 1470$(menuptr+12)=m$
 1480ENDIF
 1490ENDPROC
 1500DEFPROCclick(block)
 1510IF block!12=-2 AND block!8=2 PROCcmenus:ENDPROC
 1520IF block!12=-2 AND block!8=4 PROCopenwin(details%)
 1530IF block!12=-2 AND block!8=1 PROCopenwin(card%):PROCredraw(card%)
 1540IF block!12=details% AND block!8=2 AND block!16=3 OR block!16=2 OR block!16=4 OR block!16=19 THEN MOUSE x,y,b:gee=1:icy=block!16:SYS"Wimp_CreateMenu",,M_Font%,x-75,y:ENDPROC
 1550IF block!12=details% AND block!8=2 THEN gee=0:PROCcmenus:ENDPROC
 1560IF block!12=card% AND block!8=2 THEN PROCcmenus:ENDPROC
 1570IF block!12=save% AND block!16=7 winsave%=block!12:PROCdefsave
 1580IF block!12=saved% AND block!16=7 winsave%=block!12:PROCdefsave
 1585IF block!12=save% AND block!16=10 winsave%=block!12:stype=1:PROCsave($FNinfo(winsave%,6))
 1586IF block!12=saved% AND block!16=10 winsave%=block!12:stype=2:PROCsave($FNinfo(winsave%,6))
 1620ENDPROC
 1420DEFPROCprocess
 1430IF !block=details% AND block!24=13 THEN PROCcaret:ENDPROC
 1435IF !block=save% AND block!24=13 THEN stype=1:PROCsave($FNinfo(!block,6))
 1435IF !block=saved% AND block!24=13 THEN stype=2:PROCsave($FNinfo(!block,6))
 1460SYS"Wimp_ProcessKey",block!24
 1470ENDPROC
 2150DEFPROCcaret
 2160SYS"Wimp_GetCaretPosition",,block
 2170IF block!0=details% THEN
 2180CASE block!4 OF
 2180 WHEN 0:np=5
 2190 WHEN 5:np=6
 2200 WHEN 6:np=7
 2210 WHEN 7:np=18
 2220 WHEN 18:np=10
 2230 WHEN 10:np=21
 2240 WHEN 21:np=0
 2245 WHEN 13,14,15,17:np=block!4
 2250 ENDCASE
 2200 SYS "Wimp_SetCaretPosition",details%,np,0,0,-1,-1
 2220 ENDIF
 2230 ENDPROC
 1630DEFPROCselect
 1640IF gee=1 THEN
 1650SYS"Wimp_DecodeMenu",,M_Font%,block,icond
 1660family$=$icond
 1670PROCinfo(details%,icy,family$)
 1680gee=0
 1690ENDPROC
 1700ENDIF
 1710SYS"Wimp_DecodeMenu",,openmenu%,block,icond
 1720IF $icond="Quit" THEN SYS"Wimp_CloseDown":END:end%=TRUE
 1730IF $icond="Details" THEN PROCopenwin(details%)
 1740IF $icond="View" THEN PROCopenwin(card%):PROCredraw(card%)
 1745IF $icond="Review" THEN PROCopenwin(card%):PROCredraw(card%)
 1750SYS"Wimp_GetPointerInfo",,block
 1760IF block!8=1 THEN
 1770IF menuopen=-44 THEN PROCcmenu
 1780SYS"Wimp_CreateMenu",,openmenu%
 1790ELSE
 1800SYS"Wimp_CreateMenu",,-1
 1810ENDIF
 1820ENDPROC
 1830DEFPROCmess(mess$)
 1840!icond=0:$(icond+4)=mess$+CHR$0
 1850SYS"Wimp_ReportError",icond,1,"!Card"
 1860ENDPROC
 1870DEFPROCerror(err$)
 1880IF ERR=523 THEN
 1890PROCmess("Font "+font$+" not found")
 1900CASE font$ OF
 1910WHEN fontname$:PROCinfo(details%,3,"Trinity.Medium")
 1920WHEN fontextra$:PROCinfo(details%,2,"Trinity.Medium")
 1930WHEN fontad1$:PROCinfo(details%,19,"Trinity.Medium")
 1940WHEN fonttel$:PROCinfo(details%,4,"Trinity.Medium")
 1950ENDCASE
 1960PROCredraw(card%):GOTO 220
 1970ENDIF
 1980PROCmess(err$)
 1990END
 2000ENDPROC
 2010DEFPROCout
 2011IF winsave%=save% THEN stext=stex
 2012IF winsave%=saved% THEN stext=stexd
 2020IF drive%=1 THEN
 2030SYS "Wimp_GetPointerInfo",,block
 2040block!32=block!4:block!28=!block
 2050block!24=block!16:block!20=block!12
 2060block!16=1:block!12=0:block!36=0:block!40=0
 2080$stext=$FNinfo(winsave%,6)
 2090FOR I=0 TO 255:IF I?stext<32 THEN I?stext=13
 2100NEXT
 2110$(block+44)=FNbit($stext)+CHR$0:!block=60
 2120SYS "Wimp_SendMessage",17,block,block!20
 2130drag%=0
 2140ENDIF
 2150ENDPROC
 2160DEFPROCdefsave
 2170PROCMode
 2180!block=winsave%:IF winsave%=save% THEN stype=1 ELSE stype=2
 2190SYS "Wimp_GetWindowState",,block
 2200ysize%=block!16-block!8
 2210x%=block!4:y%=block!8:block!4=7
 2220SYS"Wimp_GetIconState",,block
 2230block!8+=x%:block!12+=y%+ysize%
 2240block!16+=x%:block!20+=y%+ysize%
 2250block!24=0:block!28=0:block!32=xmax:block!36=ymax
 2260!block=0:block!4=5:drag%=TRUE:drive%=1
 2270SYS"Wimp_DragBox",,block
 2280ENDPROC
 2290DEFPROCMode
 2300!block=130:block!4=131:block!8=-1:SYS"OS_ReadVduVariables",block,block+128
 2310SYS"OS_ReadModeVariable",MODE,4 TO ,,Xeig%
 2320SYS"OS_ReadModeVariable",MODE,5 TO ,,Yeig%
 2330xmax=((block!128)+1)*2^Xeig%:ymax=((block!132)+1)*2^Yeig%
 2340ENDPROC
 2350DEFPROCsave(save$)
 2360IF INSTR(save$,".")<1 AND INSTR(save$,":")<1 THEN PROCmess("To save, drag the save icon to a directory viewer"):ENDPROC
 2370IF stype=2 THEN
 2375LOCAL ERROR
 2376ON ERROR LOCAL IF ERR=71622:PROCmess("Disc Full"):RESTORE ERROR:ENDPROC:ELSE RESTORE ERROR:PROCerror(REPORT$+" : at line "+STR$ERL):END
 2380 endtext%=text%
 2390$endtext%="Card Data File"+CHR$10
 2400 endtext%+=15
 2410 $endtext%=$FNinfo(details%,3)+CHR$10
 2420 endtext%+=LEN($FNinfo(details%,3))+1
 2430 $endtext%=$FNinfo(details%,0)+CHR$(10)
 2440 endtext%+=LEN($FNinfo(details%,0))+1
 2450 $endtext%=$FNinfo(details%,13)+CHR$(10)
 2460endtext%+=LEN($FNinfo(details%,13))+1
 2470 $endtext%=$FNinfo(details%,2)+CHR$10
 2480 endtext%+=LEN($FNinfo(details%,2))+1
 2490 $endtext%=$FNinfo(details%,5)+CHR$(10)
 2500 endtext%+=LEN($FNinfo(details%,5))+1
 2510 $endtext%=$FNinfo(details%,14)+CHR$(10)
 2520endtext%+=LEN($FNinfo(details%,14))+1
 2530$endtext%=$FNinfo(details%,19)+CHR$10
 2540 endtext%+=LEN($FNinfo(details%,19))+1
 2550 $endtext%=$FNinfo(details%,6)+CHR$(10)
 2560 endtext%+=LEN($FNinfo(details%,6))+1
 2570 $endtext%=$FNinfo(details%,17)+CHR$(10)
 2580endtext%+=LEN($FNinfo(details%,17))+1
 2590$endtext%=$FNinfo(details%,7)+CHR$(10)
 2600endtext%+=LEN($FNinfo(details%,7))+1
 2610$endtext%=$FNinfo(details%,18)+CHR$(10)
 2620endtext%+=LEN($FNinfo(details%,18))+1
 2630$endtext%=$FNinfo(details%,10)+CHR$(10)
 2640endtext%+=LEN($FNinfo(details%,10))+1
 2650$endtext%=$FNinfo(details%,4)+CHR$(10)
 2660endtext%+=LEN($FNinfo(details%,4))+1
 2670$endtext%=$FNinfo(details%,21)+CHR$(10)
 2680endtext%+=LEN($FNinfo(details%,21))+1
 2690$endtext%=$FNinfo(details%,15)+CHR$(10)
 2700endtext%+=LEN($FNinfo(details%,15))+1
 2710
 2720
 2730 SYS"OS_File",0,save$,0,0,text%,endtext%
 2740 OSCLI("Settype "+save$+" &0CC")
 2745RESTORE ERROR
 2760ENDIF
 2770IF stype=1 THEN PROCmakefile
 2775PROCinfo(winsave%,6,save$)
 2780ENDPROC
 2790DEFPROCin
 2800CASE block!16 OF
 2810WHEN 0:SYS"Wimp_CloseDown":END
 2820WHEN 2:
 2830IF drive%=1 THEN
 2840PROCsave(FNwool(block+44))
 2850ENDIF
 2860WHEN 3:
 2870IF block!40<>&0CC THEN PROCmess("Only CardData files can be dropped into here"):ENDPROC
 2880in=TRUE
 2890load$=FNwool(block+44)
 2900SYS"OS_Find",192,load$ TO file%
 2910t$=""
 2920FOR I=0 TO 15
 2930REPEAT
 2940SYS"OS_BGet",,file% TO byte%
 2950IF byte%=254 GOTO 3010
 2960t$=t$+CHR$(byte%)
 2970UNTIL byte%=13 OR byte%=10
 2980t$=LEFT$(t$,LEN(t$)-1)
 2990IF I=0 AND t$<>"Card Data File" THEN PROCmess("This is not a Card data file"):SYS"OS_Find",0,file%:ENDPROC
 3000IF I=1 THEN PROCinfo(details%,3,t$)
 3010IF I=2 THEN PROCinfo(details%,0,t$)
 3020IF I=3 THEN PROCinfo(details%,13,t$)
 3030IF I=4 THEN PROCinfo(details%,2,t$)
 3040IF I=5 THEN PROCinfo(details%,5,t$)
 3050IF I=6 THEN PROCinfo(details%,14,t$)
 3060IF I=7 THEN PROCinfo(details%,19,t$)
 3070IF I=8 THEN PROCinfo(details%,6,t$)
 3080IF I=9 THEN PROCinfo(details%,17,t$)
 3090IF I=10 THEN PROCinfo(details%,7,t$)
 3100IF I=11 THEN PROCinfo(details%,18,t$)
 3110IF I=12 THEN PROCinfo(details%,10,t$)
 3120IF I=13 THEN PROCinfo(details%,4,t$)
 3130IF I=14 THEN PROCinfo(details%,21,t$)
 3140IF I=15 THEN PROCinfo(details%,15,t$)
 3150t$=""
 3160NEXT
 3170IF byte%=254 SYS"OS_Find",0,file%:ENDPROC
 3180SYS"OS_Find",0,file%
 3185$FNinfo(saved%,6)=load$
 3190ENDIF
 3200ENDCASE
 3210ENDPROC
 3220DEFPROCopenwin(handle%)
 3230!block=handle%
 3240SYS"Wimp_GetWindowInfo",,block
 3250SYS"Wimp_OpenWindow",,block
 3260ENDPROC
 3270DEFPROCredo(handle%)
 3280!block=handle%
 3290SYS"Wimp_CloseWindow",,block
 3300PROCopenwin(handle%)
 3310ENDPROC
 3320DEFPROCfmenucr
 3330NULL=0
 3340DIM f_p% 900
 3350!f_p%=NULL
 3360c%=0
 3370REPEAT
 3380 SYS "Font_ListFonts",,q%,c%,-1 TO ,,c%
 3390 IF c%<>-1 THEN PROCFamily(FNInfo(q%))
 3400UNTIL c%=-1
 3410
 3420DIM M_Font% 28+24*n_font%
 3430$M_Font%="Fonts list":M_Font%!12=&0207:M_Font%!20=40:M_Font%!24=0
 3440M_Font%!28=1:M_Font%!32=-1:M_Font%!36=&07000021:$(M_Font%+40)="System"
 3450
 3460width%=8:p%=M_Font%+28:r%=f_p%:n%=2
 3470WHILE n%<=n_font%
 3480 p%+=24
 3490 f$=FNInfo(!r%+12)
 3500 width%=FNMax(width%,LEN(f$)+1)
 3510 !p%=0:p%!8=&07000121
 3520 p%!12=!r%+12
 3530 p%!16=-1:p%!20=LEN(f$)
 3540 v%=!r%+4
 3550 IF (!(!r%+8) = 1) AND FNInfo(!v%+4) = "" THEN
 3560  p%!4 = -1
 3570 ELSE
 3580  DIM p%!4 28+24*!(!r%+8)
 3590  t%=p%!4
 3600  $t%=f$:t%!12=&0207:t%!20=40:t%!24=0
 3610  u%=t%+4
 3620  width2%=LEN(f$)-2
 3630  FOR s%=1 TO !(!r%+8)
 3640   u%+=24
 3650   f$=FNInfo(!v%+4)
 3660   width2%=FNMax(width2%,LEN(f$)+1)
 3670   !u%=0:u%!4=-1:u%!8=&07000121
 3680   u%!12=!v%+4
 3690   u%!16=-1:u%!20=LEN(f$)
 3700   v%=!v%
 3710  NEXT
 3720  !u%= !u% OR &80:t%!16=16*width2%
 3730 ENDIF
 3740 r%=!r%
 3750 n%+=1
 3760ENDWHILE
 3770!p%= !p% OR &80:M_Font%!16=16*width%
 3780ENDPROC
 3790DEF PROCFamily(font$)
 3800LOCAL family$,style$,p%,flag%,pos%
 3810
 3820pos%=INSTR(font$,".")
 3830family$=LEFT$(font$,pos%-1)
 3840IF pos% = 0 THEN
 3850 style$=""
 3860ELSE
 3870 style$=MID$(font$,pos%+1)
 3880ENDIF
 3890p%=f_p%:flag%=FALSE
 3900WHILE (!p% <> NULL AND flag%=FALSE)
 3910 IF family$ = FNInfo(!p%+12) THEN flag%= TRUE
 3920 p% =!p%
 3930ENDWHILE
 3940IF flag%=FALSE THEN
 3950 DIM p%!0 LEN(family$)+13
 3960 p%=!p%
 3970 !p%=NULL
 3980 p%!8=1
 3990 $(p%+12)=family$
 4000 DIM p%!4 LEN(style$)+5
 4010 p%=p%!4
 4020 !p%=NULL
 4030 $(p%+4)=style$
 4040 n_font%+=1
 4050ELSE
 4060 p%!8=p%!8+1
 4070 p%=p%+4
 4080 WHILE (!p% <> NULL)
 4090  p%=!p%
 4100 ENDWHILE
 4110 DIM p%!0 LEN(style$)+5
 4120 p%=!p%
 4130 !p%=NULL
 4140 $(p%+4)=style$
 4150ENDIF
 4160ENDPROC
 4170DEFFNMax(a%,b%)
 4180
 4190IF a%>b% THEN =a% ELSE =b%
 4200
 4210DEFFNInfo(p%)
 4220LOCAL a$
 4230
 4240a$=""
 4250WHILE (?p%<>0 AND ?p%<>13)
 4260 a$+=CHR$(?p%)
 4270 p%+=1
 4280ENDWHILE
 4290=a$
 4300DEFPROCup
 4310IF fsize=50 ENDPROC
 4320fsize+=1
 4330$FNinfo(save%,5)=STR$fsize
 4340PROCredo(save%)
 4350ENDPROC
 4360DEFPROCdown
 4370IF fsize=6 ENDPROC
 4380fsize-=1
 4390$FNinfo(save%,5)=STR$fsize
 4400PROCredo(save%)
 4410ENDPROC
 4420DEF PROCredraw(!block)
 4430LOCALmore%
 4440SYS "Wimp_RedrawWindow",,block TO more%
 4450WHILE more%
 4460  PROCapplication_redraw
 4470  SYS "Wimp_GetRectangle",,block TO more%
 4480ENDWHILE
 4490IF close=1 THEN PROCclose(card%):close=0
 4495IF nono=1 THEN PROCinfo(details%,ni,STR$ns)
 4500ENDPROC
 4510DEFPROCapplication_redraw
 4520workx%=block!4-block!20
 4530worky%=block!16-block!24
 4540name$=$FNinfo(details%,0):fontname$=$FNinfo(details%,3):sizename=VAL($FNinfo(details%,13))
 4550extra$=$FNinfo(details%,5):fontextra$=$FNinfo(details%,2):sizeextra=VAL($FNinfo(details%,14))
 4560ad1$=$FNinfo(details%,6):fontad1$=$FNinfo(details%,19):sizead1=VAL($FNinfo(details%,17))
 4570ad2$=$FNinfo(details%,7)
 4580ad3$=$FNinfo(details%,18)
 4590ad4$=$FNinfo(details%,10)
 4600tel$=$FNinfo(details%,21):fonttel$=$FNinfo(details%,4):sizetel=VAL($FNinfo(details%,15))
 4610IF sizename=0 THEN sizename=20:PROCmess("Font sizes can not be 0"):nono=1:ns=20:ni=13
 4620IF sizeextra=0 THEN sizeextra=16:PROCmess("Font sizes can not be 0"):nono=1:ns=16:ni=14
 4630IF sizead1=0 THEN sizead1=14:PROCmess("Font sizes can not be 0"):nono=1:ns=14:ni=17
 4640IF sizetel=0 THEN sizetel=16:PROCmess("Font sizes can not be 0"):nono=1:ns=16:ni=15
 4610font$=fontname$
 4620x=FNwidth(name$,fontname$,sizename)
 4630IF x=0 AND name$<>"" THEN PROCmess("The name text is too long or the font is too large"):close=1:ENDPROC
 4630 xco=566-x:xco=xco/2:
 4640 SYS"Font_Paint",,name$,%10010,workx%+xco+8,worky%-55
 4650GCOL 7
 4660RECTANGLE FILLworkx%+xco+5,worky%-62,566-xco-xco+3,-4
 4670font$=fontextra$
 4680x=FNwidth(extra$,fontextra$,sizeextra)
 4690IF x=0 AND extra$<>"" THEN PROCmess("The trade text is too long or the font is too large"):close=1:ENDPROC
 4690xco=566-x:xco=xco/2
 4700SYS"Font_Paint",,extra$,%10010,workx%+xco+8,worky%-119
 4710font$=fontad1$
 4720SYS"Font_FindFont",,fontad1$,sizead1*16,sizead1*16 TO font%
 4730SYS"Font_SetFont",font%
 4740x=FNwidth(ad1$,fontad1$,sizead1)
 4750IF ad1$>"" AND x=0 OR x>530  THEN PROCmess("The 1st address text is too long or the font is too large"):close=1:ENDPROC
 4740SYS"Font_Paint",,ad1$,%10010,workx%+38,worky%-185
 4750x=FNwidth(ad2$,fontad1$,sizead1)
 4760IF ad2$>"" AND x=0 OR x>560 THEN PROCmess("The 2nd address text is too long or the font is too large"):close=1:ENDPROC
 4750SYS"Font_Paint",,ad2$,%10010,workx%+38,worky%-223
 4760x=FNwidth(ad3$,fontad1$,sizead1)
 4770IF ad3$>"" AND x=0 OR x>560 THEN PROCmess("The 3rd address text is too long or the font is too large"):close=1:ENDPROC
 4760SYS"Font_Paint",,ad3$,%10010,workx%+38,worky%-260
 4770x=FNwidth(ad4$,fontad1$,sizead1)
 4780IF ad4$>"" AND x=0 OR x>560 THEN PROCmess("The 4th address text is too long or the font is too large"):close=1:ENDPROC
 4770SYS"Font_Paint",,ad4$,%10010,workx%+38,worky%-298
 4780font$=fonttel$
 4790x=FNwidth("Tel :- "+tel$,fonttel$,sizetel)
 4800IF x=0 AND tel$<>"" THEN PROCmess("The telephone text is too long or the font is too large"):close=1:ENDPROC
 4800xco=566-x:xco-=16
 4810SYS"Font_Paint",,"Tel :- "+tel$,%10010,workx%+xco,worky%-341
 4820ENDPROC
 4830DEFFNwidth(text$,font$,xs)
 4840SYS "Font_FindFont",,font$,xs*16,xs*16 TO font%
 4850SYS "Font_SetFont",font%
 4860SYS "Font_StringWidth",,text$,228000,228000,31,LEN(text$) TO ,,x%,y%
 4870SYS "Font_ConverttoOS",,x%,y% TO ,x,y
 4880=x
 4890DEFPROCmakefile
 4895LOCAL ERROR
 4896ON ERROR LOCAL IF ERR=71622:PROCmess("Disc Full"):CLOSE#c%:OSCLI("Delete "+save$):RESTORE ERROR:ENDPROC:ELSE RESTORE ERROR:PROCerror(REPORT$+" : at line "+STR$ERL):END
 4900big%=&7FFFFFFF
 4910EF=0.552256944
 4920i%=0:c%=0
 4930inch=&B400
 4940point=640
 4950cm=18140
 4960black%=0
 4970white%=&FFFFFF00
 4980none%=-1
 4990name$=$FNinfo(details%,0):fontname$=$FNinfo(details%,3):sizename=VAL($FNinfo(details%,13))
 5000extra$=$FNinfo(details%,5):fontextra$=$FNinfo(details%,2):sizeextra=VAL($FNinfo(details%,14))
 5010ad1$=$FNinfo(details%,6):fontad1$=$FNinfo(details%,19):sizead1=VAL($FNinfo(details%,17))
 5020ad2$=$FNinfo(details%,7)
 5030ad3$=$FNinfo(details%,18)
 5040ad4$=$FNinfo(details%,10)
 5050tel$=$FNinfo(details%,21):fonttel$=$FNinfo(details%,4):sizetel=VAL($FNinfo(details%,15))
 5060PROCdrawfile_start(save$)
 5070PROCputw(0)
 5080PROChead_here(FALSE)
 5090PROCputs(CHR$(1)+fontname$)
 5100PROCputs(CHR$(2)+fontextra$)
 5110PROCputs(CHR$(3)+fontad1$)
 5120PROCputs(CHR$(4)+fonttel$)
 5130PROCalign
 5140PROChead_now
 5150PROCgroup_start
 5160xco=(2/5)*FNwidth(name$,fontname$,sizename)
 5170IF x/(2/5)=0 AND name$<>"" THEN PROCmess("The name text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5170xco=228-xco
 5180xco=xco/2
 5190xco+=50
 5200PROCgroup_start
 5210PROCtext(xco*point,780*point,name$,sizename*&280,1,0,&FFFFFF00)
 5220start=xco-2:finish=xco+((2/5)*x)+2
 5230PROCpath_start(start*point,777*point,2*&280,&00000000,&FFFFFFFF)
 5240PROCpath_draw(finish*point,777*point)
 5250PROCpath_close
 5260PROCpath_end
 5270PROCgroup_end
 5280PROCgroup_start
 5290x=FNwidth(ad1$,fontad1$,sizead1)
 5300IF ad1$>"" AND x=0 OR x>560 THEN PROCmess("The 1st address text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5290PROCtext(70*point,730*point,ad1$,sizead1*&280,3,0,&FFFFFF00)
 5300x=FNwidth(ad2$,fontad1$,sizead1)
 5310IF ad2$>"" AND x=0 OR x>560 THEN PROCmess("The 2nd address text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5300PROCtext(70*point,715*point,ad2$,sizead1*&280,3,0,&FFFFFF00)
 5310x=FNwidth(ad3$,fontad1$,sizead1)
 5320IF ad3$>"" AND x=0 OR x>560 THEN PROCmess("The 3rd address text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5310PROCtext(70*point,700*point,ad3$,sizead1*&280,3,0,&FFFFFF00)
 5320x=FNwidth(ad4$,fontad1$,sizead1)
 5330IF ad4$>"" AND x=0 OR x>560 THEN PROCmess("The 4th address text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5320PROCtext(70*point,685*point,ad4$,sizead1*&280,3,0,&FFFFFF00)
 5330PROCgroup_end
 5340xco=(2/5)*FNwidth(extra$,fontextra$,sizeextra)
 5350IF x/(2/5)=0 AND extra$<>"" THEN PROCmess("The trade text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5350xco=228-xco:xco=xco/2:xco+=50
 5360PROCtext(xco*point,755*point,extra$,sizeextra*&280,2,0,&FFFFFF00)
 5370xco=(2/5)*FNwidth("Tel :- "+tel$,fonttel$,sizetel)
 5380IF x/(2/5)=0 AND tel$<>"" THEN PROCmess("The telephone text is too long or the font is too large"):PROCdrawfile_end:OSCLI"Delete "+save$:ENDPROC
 5380xco=268-xco
 5390PROCtext(xco*point,665*point,"Tel :- "+tel$,sizetel*&280,4,0,&FFFFFF00)
 5400PROCpath_start(50*point,650*point,0,&00000000,&FFFFFFFF)
 5410PROCpath_draw(50*point,800*point)
 5420PROCpath_draw(278*point,800*point)
 5430PROCpath_draw(278*point,650*point)
 5440PROCpath_draw(50*point,650*point)
 5450PROCpath_close
 5460PROCpath_end
 5470PROCgroup_end
 5480PROCdrawfile_end
 5485RESTORE ERROR
 5490ENDPROC
 5500DEF PROCdrawfile_start(D$)
 5510c%=OPENOUT(D$)
 5520IF c%=0 THEN ERROR 1234,"Can't open output file"
 5530drawfile$=D$
 5540PROCputw(&77617244):PROCputw(201):PROCputw(0)
 5550PROCputs12("!Card")
 5560lev%=-1
 5570PROChead_here(TRUE)
 5580ENDPROC
 5590DEF PROCputw(A%)
 5600BPUT#c%,A% AND &FF
 5610BPUT#c%,(A%>>>8) AND &FF
 5620BPUT#c%,(A%>>>16) AND &FF
 5630BPUT#c%,(A%>>>24) AND &FF
 5640ENDPROC
 5650DEF PROCputs12(A$)
 5660LOCAL A%
 5670A$=A$+STRING$(12," ")
 5680FOR A%=1 TO 12:BPUT#c%,ASC(MID$(A$,A%,1)):NEXT
 5690ENDPROC
 5700:
 5710DEF PROCputs(A$)
 5720LOCAL A%
 5730FOR A%=1 TO LEN(A$):BPUT#c%,ASC(MID$(A$,A%,1)):NEXT
 5740BPUT#c%,0
 5750ENDPROC
 5760:
 5770DEF PROChead_here(box%)
 5780IF lev%=maxlev% THEN ERROR 1234,"Too many nested groups.  Edit program to increase limit."
 5790lev%+=1
 5800box%(lev%)=box%
 5810start%(lev%)=PTR#c%
 5820IF lev%>0 THEN PROCputw(0)
 5830IF box% THEN
 5840 PROCputw(0):PROCputw(0)
 5850 PROCputw(0):PROCputw(0)
 5860ENDIF
 5870l%(lev%)=big%:b%(lev%)=big%
 5880r%(lev%)=-big%:t%(lev%)=-big%
 5890ENDPROC
 5900:
 5910DEF PROChead_now
 5920LOCAL end%
 5930IF lev%<0 THEN PRINT"Warning: attempt to end more objects than were started":ENDPROC
 5940end%=PTR#c%
 5950PTR#c%=start%(lev%)
 5960IF lev%>0 THEN PROCputw(end%-start%(lev%)+4)
 5970IF box%(lev%) THEN
 5980 PROCputw(l%(lev%)):PROCputw(b%(lev%))
 5990 PROCputw(r%(lev%)+1):PROCputw(t%(lev%)+1)
 6000ENDIF
 6010IF lev%>0 THEN
 6020 lev%-=1
 6030 IF l%(lev%+1)<l%(lev%) THEN l%(lev%)=l%(lev%+1)
 6040 IF b%(lev%+1)<b%(lev%) THEN b%(lev%)=b%(lev%+1)
 6050 IF r%(lev%+1)>r%(lev%) THEN r%(lev%)=r%(lev%+1)
 6060 IF t%(lev%+1)>t%(lev%) THEN t%(lev%)=t%(lev%+1)
 6070ENDIF
 6080PTR#c%=end%
 6090ENDPROC
 6100DEF PROCalign
 6110WHILE PTR#c% AND 3:BPUT#c%,0:ENDWHILE
 6120ENDPROC
 6130DEF PROCgroup_start
 6140REM groups cannot be nested in this version
 6150PROCputw(6)
 6160PROChead_here(TRUE)
 6170PROCputs12("group")
 6180ENDPROC
 6190:
 6200DEF PROCgroup_end
 6210PROChead_now
 6220ENDPROC
 6230DEF PROCtext(x%,y%,text$,xsize%,font%,col%,bcol%)
 6240PROCputw(1)
 6250PROChead_here(FALSE)
 6260PROCputxy(x%,y%-ysize%*.5)
 6270PROCputxy(x%+LEN(text$)*xsize%,y%+xsize%)
 6280PROCputw(col%)
 6290PROCputw(bcol%)
 6300PROCputw(font%)
 6310PROCputw(xsize%):PROCputw(xsize%)
 6320PROCputxy(x%,y%)
 6330PROCputs(text$):PROCalign
 6340PROChead_now
 6350ENDPROC
 6360DEF PROCputxy(x%,y%)
 6370PROCputw(x%):PROCputw(y%)
 6380IF x%<l%(lev%) THEN l%(lev%)=x%
 6390IF y%<b%(lev%) THEN b%(lev%)=y%
 6400IF x%>r%(lev%) THEN r%(lev%)=x%
 6410IF y%>t%(lev%) THEN t%(lev%)=y%
 6420ENDPROC
 6430DEF PROCpath_start(x%,y%,width%,lcol%,fcol%)
 6440PROCputw(2)
 6450PROChead_here(TRUE)
 6460PROCputw(fcol%):REM fill
 6470PROCputw(lcol%):REM colour
 6480PROCputw(width%):REM width
 6490PROCputw(0):REM path style
 6500PROCpath_move(x%,y%)
 6510ENDPROC
 6520:
 6530DEF PROCpath_move(x%,y%)
 6540PROCputw(2)
 6550PROCputxy(x%,y%)
 6560ENDPROC
 6570:
 6580DEF PROCpath_draw(x%,y%)
 6590PROCputw(8)
 6600PROCputxy(x%,y%)
 6610ENDPROC
 6620DEF PROCpath_close
 6630PROCputw(5)
 6640ENDPROC
 6650:
 6660DEF PROCpath_end
 6670PROCputw(0)
 6680PROChead_now
 6690ENDPROC
 6700DEF PROCdrawfile_end
 6710REM draw unfinished IF lev%>0 THEN
 6720PROChead_now
 6730CLOSE#c%:c%=0
 6740OSCLI("SetType "+drawfile$+" AFF")
 6750ENDPROC
 6760DEFPROCclose(!block)
 6770SYS"Wimp_CloseWindow",,block
 6780ENDPROC

$ � � �error(�$+" : at line "+Þ)
� ***>$.Card.!RunImage
7� ***Main Program for !Card - Business Card creator
(� Version 1.01 (28 Apr '93)
2� � J. Robbins
<U� block 2048, menu% 1024, curbuf%  2048, icond 1024, q% 1024, text% &1000, a$(23)
Fmaxlev%=32
P#� start%(maxlev%),box%(maxlev%)
Z5� l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%)
d� buf% 256
n end%=-1
xendbuf%=curbuf%+&6000
�Mj=0:gee=0:family$="Trinity.Medium":fsize=12:in=�:close=0:nono=0:ns=0:ni=0
�Aș "Wimp_Initialise",200,&4B534154,"!Card" � version%,mytask%
�
�template
�initic=�icon
�end%=�:drag%=0:drive%=0:
�3size%=48:font%=-1:family%=0:style%=-1:n_font%=1
�ș"Hourglass_On"
��fmenucr
�ș"Hourglass_Off"
��
�& ș"Wimp_Poll",0,block � eventcode
�Ȏ eventcode �
�� 0:
� 1:�redraw(card%)
#� 2:ș "Wimp_OpenWindow",,block
$� 3:ș "Wimp_CloseWindow",,block
"� 6:�click(block)
,� 7:�out
6� 8:�process
@� 9:�select
J� 17,18:�in
T�
^
� end%
h�
r
ݤicon
|
!icond=-1
�
icond!4=0
�%icond!8=0:icond!12=68:icond!16=68
�+icond!20=%11010+((2^12)*3):icond?23=112
�$(icond+24)="!Card"+�13
�&ș "Wimp_CreateIcon",,icond � icon
�	=icon
�ݤinf(handle,icon)
��gee(handle,icon)
�
=icond!28
� ݤbit(a$)
�ȕ �a$,":")>0
�a$=�a$,�a$,":")+1)
��
ȕ �a$,".")>0
a$=�a$,�a$,".")+1)
�
&=a$
0ݤwool(wool%)
:
� cot$
D ȕ ?wool%>=32
Ncot$+=�(?wool%)
Xwool%+=1
b�
l	=cot$
v��template
�1ș"Wimp_OpenTemplate",,"<Card$Dir>.Templates"
�indir=curbuf%
�info%=�template("ProgInfo")
�save%=�template("save")
�card%=�template("Card")
�!details%=�template("details")
� saved%=�template("savetext")
�ș "Wimp_CloseTemplate"
�stex=�info(save%,6)
�stexd=�info(saved%,6)
��
�ݤtemplate(a$)
�Fș"Wimp_LoadTemplate",,block,indir,endbuf%,-1,a$,0 � ,,indir,,,,c%
�2� c%=0 � �mess("Template "+a$+" not found."):�
block!64=1
)ș"Wimp_CreateWindow",,block � handle
=handle
 ݤinfo(handle,icon)
*�gee(handle,icon)
4
=icond!28
>��info(handle,icon,text$)
H;!block=handle:block!4=icon:ș"Wimp_GetIconState",,block
R)$(block!28)=text$:block!36=�(text$)+1
\block!8=0:block!12=0
f ș"Wimp_SetIconState",,block
p�
z��gee(handle,icon)
�!icond=handle:icond!4=icon
� ș"Wimp_GetIconState",,icond
��
���cmenus
�menuopen=-44
�menuptr=menu%
�ȗ x,y,b
�>savemenu%=�menu("Save",174,"{b|save%}Draw,{b|saved%}Data")
�Ticonmenu%=�menu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,Details,View,Quit")
�Kdetmenu%=�menu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,View,Quit")
�Vviewmenu%=�menu("!Card",174,"{b|info%}Info,{b|savemenu%}Save,Details,Review,Quit")
�@� block!12=-2 � block!8=2 � openmenu%=iconmenu%:a=x-75:b=338
�@� block!12=details% � block!8=2 � openmenu%=detmenu%:a=x:b=y
>� block!12=card% � block!8=2 � openmenu%=viewmenu%:a=x:b=y
�openmenu(a,b)
�
$��openmenu(x,y)
.&ș"Wimp_CreateMenu",,openmenu%,x,y
8�
Bݤmenu(tit$,wid,menu$)
Lmenu$+=","
Voldmenu=menuptr
`$menuptr=tit$
jmenuptr?12=7
tmenuptr?13=2
~menuptr?14=7
�menuptr?15=0
�menuptr!16=wid
�menuptr!20=48
�menuptr!24=0
�menuptr+=28
��
��thing(menu$)
�menu$=�menu$,�menu$,",")+1)
�menuptr+=24
�� menu$=""
�)menuptr!-24=(menuptr!-24) � %10000000
�=oldmenu
��thing(m$)

m$=�m$,�m$,",")-1)
i$="":j$=""
� �m$,"{")>0 �
(i$=�m$,�m$,"}")-1)
2m$=�m$,�m$,"}")+1)
<j$=�i$,�i$,"|")-1)
Fi$=�i$,�i$,"|")+1)
P�
Zijack=&07000021
dmjack=0
nsubmenu=-1
x � �j$,"b")>0 � submenu=�(i$)
�"� �j$,"_")>0 � mjack=mjack � 2
�"� �j$,"�")>0 � mjack=mjack � 1
�0� �j$,"u")>0 � mjack=mjack � 2:submenu=�(i$)
�!menuptr=mjack
�menuptr!4=submenu
�menuptr!8=ijack
�$(menuptr+12)=m$
��
��
���click(block)
�'� block!12=-2 � block!8=2 �cmenus:�
�0� block!12=-2 � block!8=4 �openwin(details%)
�<� block!12=-2 � block!8=1 �openwin(card%):�redraw(card%)
�� block!12=details% � block!8=2 � block!16=3 � block!16=2 � block!16=4 � block!16=19 � ȗ x,y,b:gee=1:icy=block!16:ș"Wimp_CreateMenu",,M_Font%,x-75,y:�
5� block!12=details% � block!8=2 � gee=0:�cmenus:�
,� block!12=card% � block!8=2 � �cmenus:�
"<� block!12=save% � block!16=7 winsave%=block!12:�defsave
,=� block!12=saved% � block!16=7 winsave%=block!12:�defsave
1V� block!12=save% � block!16=10 winsave%=block!12:stype=1:�save($�info(winsave%,6))
2W� block!12=saved% � block!16=10 winsave%=block!12:stype=2:�save($�info(winsave%,6))
T�
�
��process
�.� !block=details% � block!24=13 � �caret:�
�B� !block=save% � block!24=13 � stype=1:�save($�info(!block,6))
�C� !block=saved% � block!24=13 � stype=2:�save($�info(!block,6))
� ș"Wimp_ProcessKey",block!24
��
f��caret
p$ș"Wimp_GetCaretPosition",,block
z� block!0=details% �
�Ȏ block!4 �
�
 � 0:np=5
�
 � 5:np=6
�
 � 6:np=7
� � 7:np=18
� � 18:np=10
� � 10:np=21
� � 21:np=0
� � 13,14,15,17:np=block!4
� �
�5 ș "Wimp_SetCaretPosition",details%,np,0,0,-1,-1
� �
� �
^��select
h
� gee=1 �
r,ș"Wimp_DecodeMenu",,M_Font%,block,icond
|family$=$icond
��info(details%,icy,family$)
�	gee=0
��
��
�.ș"Wimp_DecodeMenu",,openmenu%,block,icond
�1� $icond="Quit" � ș"Wimp_CloseDown":�:end%=�
�+� $icond="Details" � �openwin(details%)
�4� $icond="View" � �openwin(card%):�redraw(card%)
�6� $icond="Review" � �openwin(card%):�redraw(card%)
�"ș"Wimp_GetPointerInfo",,block
�� block!8=1 �
�� menuopen=-44 � �cmenu
�"ș"Wimp_CreateMenu",,openmenu%
��
ș"Wimp_CreateMenu",,-1
�
�
&��mess(mess$)
0 !icond=0:$(icond+4)=mess$+�0
:(ș"Wimp_ReportError",icond,1,"!Card"
D�
N��error(err$)
X
� �=523 �
b%�mess("Font "+font$+" not found")
lȎ font$ �
v2� fontname$:�info(details%,3,"Trinity.Medium")
�3� fontextra$:�info(details%,2,"Trinity.Medium")
�2� fontad1$:�info(details%,19,"Trinity.Medium")
�1� fonttel$:�info(details%,4,"Trinity.Medium")
��
��redraw(card%):� �d\@
��
��mess(err$)
��
��
�	��out
�!� winsave%=save% � stext=stex
�#� winsave%=saved% � stext=stexd
�� drive%=1 �
�#ș "Wimp_GetPointerInfo",,block
�$block!32=block!4:block!28=!block
'block!24=block!16:block!20=block!12
/block!16=1:block!12=0:block!36=0:block!40=0
 $stext=$�info(winsave%,6)
*)� I=0 � 255:� I?stext<32 � I?stext=13
4�
>)$(block+44)=�bit($stext)+�0:!block=60
H+ș "Wimp_SendMessage",17,block,block!20
Rdrag%=0
\�
f�
p
��defsave
z	�Mode
�8!block=winsave%:� winsave%=save% � stype=1 � stype=2
�#ș "Wimp_GetWindowState",,block
�ysize%=block!16-block!8
�#x%=block!4:y%=block!8:block!4=7
� ș"Wimp_GetIconState",,block
�#block!8+=x%:block!12+=y%+ysize%
�$block!16+=x%:block!20+=y%+ysize%
�5block!24=0:block!28=0:block!32=xmax:block!36=ymax
�'!block=0:block!4=5:drag%=�:drive%=1
�ș"Wimp_DragBox",,block
��
�
��Mode
�M!block=130:block!4=131:block!8=-1:ș"OS_ReadVduVariables",block,block+128
	)ș"OS_ReadModeVariable",�,4 � ,,Xeig%
	)ș"OS_ReadModeVariable",�,5 � ,,Yeig%
	=xmax=((block!128)+1)*2^Xeig%:ymax=((block!132)+1)*2^Yeig%
	$�
	.��save(save$)
	8b� �save$,".")<1 � �save$,":")<1 � �mess("To save, drag the save icon to a directory viewer"):�
	B� stype=2 �
	G� �
	HP� � � � �=71622:�mess("Disc Full"):� �:�:� � �:�error(�$+" : at line "+Þ):�
	L endtext%=text%
	V"$endtext%="Card Data File"+�10
	` endtext%+=15
	j% $endtext%=$�info(details%,3)+�10
	t& endtext%+=�($�info(details%,3))+1
	~' $endtext%=$�info(details%,0)+�(10)
	�& endtext%+=�($�info(details%,0))+1
	�( $endtext%=$�info(details%,13)+�(10)
	�&endtext%+=�($�info(details%,13))+1
	�% $endtext%=$�info(details%,2)+�10
	�& endtext%+=�($�info(details%,2))+1
	�' $endtext%=$�info(details%,5)+�(10)
	�& endtext%+=�($�info(details%,5))+1
	�( $endtext%=$�info(details%,14)+�(10)
	�&endtext%+=�($�info(details%,14))+1
	�%$endtext%=$�info(details%,19)+�10
	�' endtext%+=�($�info(details%,19))+1
	�' $endtext%=$�info(details%,6)+�(10)
& endtext%+=�($�info(details%,6))+1

( $endtext%=$�info(details%,17)+�(10)
&endtext%+=�($�info(details%,17))+1
&$endtext%=$�info(details%,7)+�(10)
(%endtext%+=�($�info(details%,7))+1
2'$endtext%=$�info(details%,18)+�(10)
<&endtext%+=�($�info(details%,18))+1
F'$endtext%=$�info(details%,10)+�(10)
P&endtext%+=�($�info(details%,10))+1
Z&$endtext%=$�info(details%,4)+�(10)
d%endtext%+=�($�info(details%,4))+1
n'$endtext%=$�info(details%,21)+�(10)
x&endtext%+=�($�info(details%,21))+1
�'$endtext%=$�info(details%,15)+�(10)
�&endtext%+=�($�info(details%,15))+1
�
�
�+ ș"OS_File",0,save$,0,0,text%,endtext%
�  �("Settype "+save$+" &0CC")
�� �
��
�� stype=1 � �makefile
��info(winsave%,6,save$)
��
���in
�Ȏ block!16 �
�� 0:ș"Wimp_CloseDown":�
� 2:
� drive%=1 �
�save(�wool(block+44))
"�
,� 3:
6N� block!40<>&0CC � �mess("Only CardData files can be dropped into here"):�
@in=�
Jload$=�wool(block+44)
T!ș"OS_Find",192,load$ � file%
^	t$=""
h� I=0 � 15
r�
|ș"OS_BGet",,file% � byte%
�� byte%=254 � �dBK
�t$=t$+�(byte%)
�� byte%=13 � byte%=10
�t$=�t$,�(t$)-1)
�^� I=0 � t$<>"Card Data File" � �mess("This is not a Card data file"):ș"OS_Find",0,file%:�
� � I=1 � �info(details%,3,t$)
� � I=2 � �info(details%,0,t$)
�!� I=3 � �info(details%,13,t$)
� � I=4 � �info(details%,2,t$)
� � I=5 � �info(details%,5,t$)
�!� I=6 � �info(details%,14,t$)
�!� I=7 � �info(details%,19,t$)
� � I=8 � �info(details%,6,t$)
!� I=9 � �info(details%,17,t$)
!� I=10 � �info(details%,7,t$)
"� I=11 � �info(details%,18,t$)
&"� I=12 � �info(details%,10,t$)
0!� I=13 � �info(details%,4,t$)
:"� I=14 � �info(details%,21,t$)
D"� I=15 � �info(details%,15,t$)
N	t$=""
X�
b%� byte%=254 ș"OS_Find",0,file%:�
lș"OS_Find",0,file%
q$�info(saved%,6)=load$
v�
��
��
���openwin(handle%)
�!block=handle%
�!ș"Wimp_GetWindowInfo",,block
�ș"Wimp_OpenWindow",,block
��
���redo(handle%)
�!block=handle%
�ș"Wimp_CloseWindow",,block
��openwin(handle%)
��
�
��fmenucr


NULL=0

� f_p% 900

!f_p%=NULL

 c%=0

*�

4) ș "Font_ListFonts",,q%,c%,-1 � ,,c%

>" � c%<>-1 � �Family(�Info(q%))

H� c%=-1

R

\� M_Font% 28+24*n_font%

fE$M_Font%="Fonts list":M_Font%!12=&0207:M_Font%!20=40:M_Font%!24=0

pJM_Font%!28=1:M_Font%!32=-1:M_Font%!36=&07000021:$(M_Font%+40)="System"

z

�'width%=8:p%=M_Font%+28:r%=f_p%:n%=2

�ȕ n%<=n_font%

� p%+=24

� f$=�Info(!r%+12)

�  width%=�Max(width%,�(f$)+1)

� !p%=0:p%!8=&07000121

� p%!12=!r%+12

� p%!16=-1:p%!20=�(f$)

�
 v%=!r%+4

�+ � (!(!r%+8) = 1) � �Info(!v%+4) = "" �

�  p%!4 = -1

� �

�  � p%!4 28+24*!(!r%+8)

  t%=p%!4
)  $t%=f$:t%!12=&0207:t%!20=40:t%!24=0

  u%=t%+4
$  width2%=�(f$)-2
.  � s%=1 � !(!r%+8)
8
   u%+=24
B   f$=�Info(!v%+4)
L$   width2%=�Max(width2%,�(f$)+1)
V#   !u%=0:u%!4=-1:u%!8=&07000121
`   u%!12=!v%+4
j   u%!16=-1:u%!20=�(f$)
t
   v%=!v%
~  �
�%  !u%= !u% � &80:t%!16=16*width2%
� �
� r%=!r%
�
 n%+=1
��
�'!p%= !p% � &80:M_Font%!16=16*width%
��
�� �Family(font$)
�"� family$,style$,p%,flag%,pos%
�
�pos%=�font$,".")
�family$=�font$,pos%-1)
� pos% = 0 �

 style$=""
�
 style$=�font$,pos%+1)
(�
2p%=f_p%:flag%=�
<ȕ (!p% <> NULL � flag%=�)
F) � family$ = �Info(!p%+12) � flag%= �
P p% =!p%
Z�
d� flag%=� �
n � p%!0 �(family$)+13
x p%=!p%
�
 !p%=NULL
� p%!8=1
� $(p%+12)=family$
� � p%!4 �(style$)+5
� p%=p%!4
�
 !p%=NULL
� $(p%+4)=style$
� n_font%+=1
��
� p%!8=p%!8+1
� p%=p%+4
� ȕ (!p% <> NULL)
�  p%=!p%
 �
 � p%!0 �(style$)+5
 p%=!p%
"
 !p%=NULL
, $(p%+4)=style$
6�
@�
JݤMax(a%,b%)
T
^� a%>b% � =a% � =b%
h
rݤInfo(p%)
|� a$
�
�	a$=""
�ȕ (?p%<>0 � ?p%<>13)
� a$+=�(?p%)
�
 p%+=1
��
�=a$
���up
�� fsize=50 �
�fsize+=1
�$�info(save%,5)=�fsize
��redo(save%)
��

��down
� fsize=6 �
fsize-=1
&$�info(save%,5)=�fsize
0�redo(save%)
:�
D� �redraw(!block)
N
�more%
X)ș "Wimp_RedrawWindow",,block � more%
bȕ more%
l  �application_redraw
v+  ș "Wimp_GetRectangle",,block � more%
��
�%� close=1 � �close(card%):close=0
�%� nono=1 � �info(details%,ni,�ns)
��
���application_redraw
�workx%=block!4-block!20
�worky%=block!16-block!24
�Yname$=$�info(details%,0):fontname$=$�info(details%,3):sizename=�($�info(details%,13))
�\extra$=$�info(details%,5):fontextra$=$�info(details%,2):sizeextra=�($�info(details%,14))
�Wad1$=$�info(details%,6):fontad1$=$�info(details%,19):sizead1=�($�info(details%,17))
�ad2$=$�info(details%,7)
�ad3$=$�info(details%,18)
�ad4$=$�info(details%,10)
�Wtel$=$�info(details%,21):fonttel$=$�info(details%,4):sizetel=�($�info(details%,15))
R� sizename=0 � sizename=20:�mess("Font sizes can not be 0"):nono=1:ns=20:ni=13
T� sizeextra=0 � sizeextra=16:�mess("Font sizes can not be 0"):nono=1:ns=16:ni=14
P� sizead1=0 � sizead1=14:�mess("Font sizes can not be 0"):nono=1:ns=14:ni=17
 P� sizetel=0 � sizetel=16:�mess("Font sizes can not be 0"):nono=1:ns=16:ni=15
font$=fontname$
&x=�width(name$,fontname$,sizename)
]� x=0 � name$<>"" � �mess("The name text is too long or the font is too large"):close=1:�
 xco=566-x:xco=xco/2:
 8 ș"Font_Paint",,name$,%10010,workx%+xco+8,worky%-55
*� 7
40ȓ Ȑworkx%+xco+5,worky%-62,566-xco-xco+3,-4
>font$=fontextra$
H)x=�width(extra$,fontextra$,sizeextra)
R_� x=0 � extra$<>"" � �mess("The trade text is too long or the font is too large"):close=1:�
Rxco=566-x:xco=xco/2
\9ș"Font_Paint",,extra$,%10010,workx%+xco+8,worky%-119
ffont$=fontad1$
p=ș"Font_FindFont",,fontad1$,sizead1*16,sizead1*16 � font%
zș"Font_SetFont",font%
�#x=�width(ad1$,fontad1$,sizead1)
�k� ad1$>"" � x=0 � x>530  � �mess("The 1st address text is too long or the font is too large"):close=1:�
�4ș"Font_Paint",,ad1$,%10010,workx%+38,worky%-185
�#x=�width(ad2$,fontad1$,sizead1)
�j� ad2$>"" � x=0 � x>560 � �mess("The 2nd address text is too long or the font is too large"):close=1:�
�4ș"Font_Paint",,ad2$,%10010,workx%+38,worky%-223
�#x=�width(ad3$,fontad1$,sizead1)
�j� ad3$>"" � x=0 � x>560 � �mess("The 3rd address text is too long or the font is too large"):close=1:�
�4ș"Font_Paint",,ad3$,%10010,workx%+38,worky%-260
�#x=�width(ad4$,fontad1$,sizead1)
�j� ad4$>"" � x=0 � x>560 � �mess("The 4th address text is too long or the font is too large"):close=1:�
�4ș"Font_Paint",,ad4$,%10010,workx%+38,worky%-298
�font$=fonttel$
�-x=�width("Tel :- "+tel$,fonttel$,sizetel)
�a� x=0 � tel$<>"" � �mess("The telephone text is too long or the font is too large"):close=1:�
�xco=566-x:xco-=16
�?ș"Font_Paint",,"Tel :- "+tel$,%10010,workx%+xco,worky%-341
��
�ݤwidth(text$,font$,xs)
�1ș "Font_FindFont",,font$,xs*16,xs*16 � font%
�ș "Font_SetFont",font%
�Dș "Font_StringWidth",,text$,228000,228000,31,�(text$) � ,,x%,y%
'ș "Font_ConverttoOS",,x%,y% � ,x,y
=x
��makefile
� �
 h� � � � �=71622:�mess("Disc Full"):�#c%:�("Delete "+save$):� �:�:� � �:�error(�$+" : at line "+Þ):�
$big%=&7FFFFFFF
.EF=0.552256944
8
i%=0:c%=0
Binch=&B400
L
point=640
Vcm=18140
`black%=0
jwhite%=&FFFFFF00
tnone%=-1
~Yname$=$�info(details%,0):fontname$=$�info(details%,3):sizename=�($�info(details%,13))
�\extra$=$�info(details%,5):fontextra$=$�info(details%,2):sizeextra=�($�info(details%,14))
�Wad1$=$�info(details%,6):fontad1$=$�info(details%,19):sizead1=�($�info(details%,17))
�ad2$=$�info(details%,7)
�ad3$=$�info(details%,18)
�ad4$=$�info(details%,10)
�Wtel$=$�info(details%,21):fonttel$=$�info(details%,4):sizetel=�($�info(details%,15))
��drawfile_start(save$)
��putw(0)
��head_here(�)
��puts(�(1)+fontname$)
��puts(�(2)+fontextra$)
��puts(�(3)+fontad1$)
�puts(�(4)+fonttel$)


�align

�head_now
�group_start
(.xco=(2/5)*�width(name$,fontname$,sizename)
2z� x/(2/5)=0 � name$<>"" � �mess("The name text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
2xco=228-xco
<
xco=xco/2
Fxco+=50
P�group_start
Z@�text(xco*point,780*point,name$,sizename*&280,1,0,&FFFFFF00)
d&start=xco-2:finish=xco+((2/5)*x)+2
nA�path_start(start*point,777*point,2*&280,&00000000,&FFFFFFFF)
x&�path_draw(finish*point,777*point)
��path_close
�
�path_end
��group_end
��group_start
�#x=�width(ad1$,fontad1$,sizead1)
��� ad1$>"" � x=0 � x>560 � �mess("The 1st address text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
�=�text(70*point,730*point,ad1$,sizead1*&280,3,0,&FFFFFF00)
�#x=�width(ad2$,fontad1$,sizead1)
��� ad2$>"" � x=0 � x>560 � �mess("The 2nd address text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
�=�text(70*point,715*point,ad2$,sizead1*&280,3,0,&FFFFFF00)
�#x=�width(ad3$,fontad1$,sizead1)
ȁ� ad3$>"" � x=0 � x>560 � �mess("The 3rd address text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
�=�text(70*point,700*point,ad3$,sizead1*&280,3,0,&FFFFFF00)
�#x=�width(ad4$,fontad1$,sizead1)
ҁ� ad4$>"" � x=0 � x>560 � �mess("The 4th address text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
�=�text(70*point,685*point,ad4$,sizead1*&280,3,0,&FFFFFF00)
��group_end
�1xco=(2/5)*�width(extra$,fontextra$,sizeextra)
�|� x/(2/5)=0 � extra$<>"" � �mess("The trade text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
�!xco=228-xco:xco=xco/2:xco+=50
�B�text(xco*point,755*point,extra$,sizeextra*&280,2,0,&FFFFFF00)
�5xco=(2/5)*�width("Tel :- "+tel$,fonttel$,sizetel)
~� x/(2/5)=0 � tel$<>"" � �mess("The telephone text is too long or the font is too large"):�drawfile_end:�"Delete "+save$:�
xco=268-xco
H�text(xco*point,665*point,"Tel :- "+tel$,sizetel*&280,4,0,&FFFFFF00)
9�path_start(50*point,650*point,0,&00000000,&FFFFFFFF)
""�path_draw(50*point,800*point)
,#�path_draw(278*point,800*point)
6#�path_draw(278*point,650*point)
@"�path_draw(50*point,650*point)
J�path_close
T
�path_end
^�group_end
h�drawfile_end
m� �
r�
|� �drawfile_start(D$)
�c%=�(D$)
�,� c%=0 � � 1234,"Can't open output file"
�drawfile$=D$
�(�putw(&77617244):�putw(201):�putw(0)
��puts12("!Card")
�lev%=-1
��head_here(�)
��
�� �putw(A%)
��#c%,A% � &FF
��#c%,(A%>>>8) � &FF
��#c%,(A%>>>16) � &FF
��#c%,(A%>>>24) � &FF
�
� �puts12(A$)
� A%
&A$=A$+�12," ")
0#� A%=1 � 12:�#c%,�(�A$,A%,1)):�
:�
D:
N� �puts(A$)
X� A%
b&� A%=1 � �(A$):�#c%,�(�A$,A%,1)):�
l
�#c%,0
v�
�:
�� �head_here(box%)
�V� lev%=maxlev% � � 1234,"Too many nested groups.  Edit program to increase limit."
�lev%+=1
�box%(lev%)=box%
�start%(lev%)=�#c%
�� lev%>0 � �putw(0)
�� box% �
� �putw(0):�putw(0)
� �putw(0):�putw(0)
��
�l%(lev%)=big%:b%(lev%)=big%
�!r%(lev%)=-big%:t%(lev%)=-big%
�
:
� �head_now
 
� end%
*J� lev%<0 � �"Warning: attempt to end more objects than were started":�
4
end%=�#c%
>�#c%=start%(lev%)
H)� lev%>0 � �putw(end%-start%(lev%)+4)
R� box%(lev%) �
\$ �putw(l%(lev%)):�putw(b%(lev%))
f( �putw(r%(lev%)+1):�putw(t%(lev%)+1)
p�
z� lev%>0 �
� lev%-=1
�0 � l%(lev%+1)<l%(lev%) � l%(lev%)=l%(lev%+1)
�0 � b%(lev%+1)<b%(lev%) � b%(lev%)=b%(lev%+1)
�0 � r%(lev%+1)>r%(lev%) � r%(lev%)=r%(lev%+1)
�0 � t%(lev%+1)>t%(lev%) � t%(lev%)=t%(lev%+1)
��
�
�#c%=end%
��
�� �align
�ȕ �#c% � 3:�#c%,0:�
��
�� �group_start
�-� groups cannot be nested in this version
�putw(6)
�head_here(�)
�puts12("group")
$�
.:
8� �group_end
B
�head_now
L�
V0� �text(x%,y%,text$,xsize%,font%,col%,bcol%)
`�putw(1)
j�head_here(�)
t�putxy(x%,y%-ysize%*.5)
~(�putxy(x%+�(text$)*xsize%,y%+xsize%)
��putw(col%)
��putw(bcol%)
��putw(font%)
��putw(xsize%):�putw(xsize%)
��putxy(x%,y%)
��puts(text$):�align
�
�head_now
��
�� �putxy(x%,y%)
��putw(x%):�putw(y%)
�� x%<l%(lev%) � l%(lev%)=x%
�� y%<b%(lev%) � b%(lev%)=y%
� x%>r%(lev%) � r%(lev%)=x%

� y%>t%(lev%) � t%(lev%)=y%
�
+� �path_start(x%,y%,width%,lcol%,fcol%)
(�putw(2)
2�head_here(�)
<�putw(fcol%):� fill
F�putw(lcol%):� colour
P�putw(width%):� width
Z�putw(0):� path style
d�path_move(x%,y%)
n�
x:
�� �path_move(x%,y%)
��putw(2)
��putxy(x%,y%)
��
�:
�� �path_draw(x%,y%)
��putw(8)
��putxy(x%,y%)
��
�� �path_close
��putw(5)
��
�:
� �path_end
�putw(0)

�head_now
"�
,� �drawfile_end
6$� draw unfinished IF lev%>0 THEN
@
�head_now
J
�#c%:c%=0
T"�("SetType "+drawfile$+" AFF")
^�
h��close(!block)
rș"Wimp_CloseWindow",,block
|�
�
00000000  0d 00 0a 24 20 ee 20 85  20 f2 65 72 72 6f 72 28  |...$ . . .error(|
00000010  f6 24 2b 22 20 3a 20 61  74 20 6c 69 6e 65 20 22  |.$+" : at line "|
00000020  2b c3 9e 29 0d 00 14 1a  f4 20 2a 2a 2a 3e 24 2e  |+..)..... ***>$.|
00000030  43 61 72 64 2e 21 52 75  6e 49 6d 61 67 65 0d 00  |Card.!RunImage..|
00000040  1e 37 f4 20 2a 2a 2a 4d  61 69 6e 20 50 72 6f 67  |.7. ***Main Prog|
00000050  72 61 6d 20 66 6f 72 20  21 43 61 72 64 20 2d 20  |ram for !Card - |
00000060  42 75 73 69 6e 65 73 73  20 43 61 72 64 20 63 72  |Business Card cr|
00000070  65 61 74 6f 72 0d 00 28  1f f4 20 56 65 72 73 69  |eator..(.. Versi|
00000080  6f 6e 20 31 2e 30 31 20  28 32 38 20 41 70 72 20  |on 1.01 (28 Apr |
00000090  27 39 33 29 0d 00 32 12  f4 20 a9 20 4a 2e 20 52  |'93)..2.. . J. R|
000000a0  6f 62 62 69 6e 73 0d 00  3c 55 de 20 62 6c 6f 63  |obbins..<U. bloc|
000000b0  6b 20 32 30 34 38 2c 20  6d 65 6e 75 25 20 31 30  |k 2048, menu% 10|
000000c0  32 34 2c 20 63 75 72 62  75 66 25 20 20 32 30 34  |24, curbuf%  204|
000000d0  38 2c 20 69 63 6f 6e 64  20 31 30 32 34 2c 20 71  |8, icond 1024, q|
000000e0  25 20 31 30 32 34 2c 20  74 65 78 74 25 20 26 31  |% 1024, text% &1|
000000f0  30 30 30 2c 20 61 24 28  32 33 29 0d 00 46 0e 6d  |000, a$(23)..F.m|
00000100  61 78 6c 65 76 25 3d 33  32 0d 00 50 23 de 20 73  |axlev%=32..P#. s|
00000110  74 61 72 74 25 28 6d 61  78 6c 65 76 25 29 2c 62  |tart%(maxlev%),b|
00000120  6f 78 25 28 6d 61 78 6c  65 76 25 29 0d 00 5a 35  |ox%(maxlev%)..Z5|
00000130  de 20 6c 25 28 6d 61 78  6c 65 76 25 29 2c 62 25  |. l%(maxlev%),b%|
00000140  28 6d 61 78 6c 65 76 25  29 2c 72 25 28 6d 61 78  |(maxlev%),r%(max|
00000150  6c 65 76 25 29 2c 74 25  28 6d 61 78 6c 65 76 25  |lev%),t%(maxlev%|
00000160  29 0d 00 64 0e de 20 62  75 66 25 20 32 35 36 0d  |)..d.. buf% 256.|
00000170  00 6e 0c 20 65 6e 64 25  3d 2d 31 0d 00 78 19 65  |.n. end%=-1..x.e|
00000180  6e 64 62 75 66 25 3d 63  75 72 62 75 66 25 2b 26  |ndbuf%=curbuf%+&|
00000190  36 30 30 30 0d 00 82 4d  6a 3d 30 3a 67 65 65 3d  |6000...Mj=0:gee=|
000001a0  30 3a 66 61 6d 69 6c 79  24 3d 22 54 72 69 6e 69  |0:family$="Trini|
000001b0  74 79 2e 4d 65 64 69 75  6d 22 3a 66 73 69 7a 65  |ty.Medium":fsize|
000001c0  3d 31 32 3a 69 6e 3d a3  3a 63 6c 6f 73 65 3d 30  |=12:in=.:close=0|
000001d0  3a 6e 6f 6e 6f 3d 30 3a  6e 73 3d 30 3a 6e 69 3d  |:nono=0:ns=0:ni=|
000001e0  30 0d 00 8c 41 c8 99 20  22 57 69 6d 70 5f 49 6e  |0...A.. "Wimp_In|
000001f0  69 74 69 61 6c 69 73 65  22 2c 32 30 30 2c 26 34  |itialise",200,&4|
00000200  42 35 33 34 31 35 34 2c  22 21 43 61 72 64 22 20  |B534154,"!Card" |
00000210  b8 20 76 65 72 73 69 6f  6e 25 2c 6d 79 74 61 73  |. version%,mytas|
00000220  6b 25 0d 00 96 0d f2 74  65 6d 70 6c 61 74 65 0d  |k%.....template.|
00000230  00 a0 10 69 6e 69 74 69  63 3d a4 69 63 6f 6e 0d  |...initic=.icon.|
00000240  00 aa 1c 65 6e 64 25 3d  a3 3a 64 72 61 67 25 3d  |...end%=.:drag%=|
00000250  30 3a 64 72 69 76 65 25  3d 30 3a 0d 00 b4 33 73  |0:drive%=0:...3s|
00000260  69 7a 65 25 3d 34 38 3a  66 6f 6e 74 25 3d 2d 31  |ize%=48:font%=-1|
00000270  3a 66 61 6d 69 6c 79 25  3d 30 3a 73 74 79 6c 65  |:family%=0:style|
00000280  25 3d 2d 31 3a 6e 5f 66  6f 6e 74 25 3d 31 0d 00  |%=-1:n_font%=1..|
00000290  be 14 c8 99 22 48 6f 75  72 67 6c 61 73 73 5f 4f  |...."Hourglass_O|
000002a0  6e 22 0d 00 c8 0c f2 66  6d 65 6e 75 63 72 0d 00  |n".....fmenucr..|
000002b0  d2 15 c8 99 22 48 6f 75  72 67 6c 61 73 73 5f 4f  |...."Hourglass_O|
000002c0  66 66 22 0d 00 dc 05 f5  0d 00 e6 26 20 c8 99 22  |ff"........& .."|
000002d0  57 69 6d 70 5f 50 6f 6c  6c 22 2c 30 2c 62 6c 6f  |Wimp_Poll",0,blo|
000002e0  63 6b 20 b8 20 65 76 65  6e 74 63 6f 64 65 0d 00  |ck . eventcode..|
000002f0  f0 12 c8 8e 20 65 76 65  6e 74 63 6f 64 65 20 ca  |.... eventcode .|
00000300  0d 00 fa 08 c9 20 30 3a  0d 01 04 16 c9 20 31 3a  |..... 0:..... 1:|
00000310  f2 72 65 64 72 61 77 28  63 61 72 64 25 29 0d 01  |.redraw(card%)..|
00000320  0e 23 c9 20 32 3a c8 99  20 22 57 69 6d 70 5f 4f  |.#. 2:.. "Wimp_O|
00000330  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |penWindow",,bloc|
00000340  6b 0d 01 18 24 c9 20 33  3a c8 99 20 22 57 69 6d  |k...$. 3:.. "Wim|
00000350  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
00000360  62 6c 6f 63 6b 0d 01 22  15 c9 20 36 3a f2 63 6c  |block..".. 6:.cl|
00000370  69 63 6b 28 62 6c 6f 63  6b 29 0d 01 2c 0c c9 20  |ick(block)..,.. |
00000380  37 3a f2 6f 75 74 0d 01  36 10 c9 20 38 3a f2 70  |7:.out..6.. 8:.p|
00000390  72 6f 63 65 73 73 0d 01  40 0f c9 20 39 3a f2 73  |rocess..@.. 9:.s|
000003a0  65 6c 65 63 74 0d 01 4a  0f c9 20 31 37 2c 31 38  |elect..J.. 17,18|
000003b0  3a f2 69 6e 0d 01 54 05  cb 0d 01 5e 0a fd 20 65  |:.in..T....^.. e|
000003c0  6e 64 25 0d 01 68 05 e0  0d 01 72 0a dd a4 69 63  |nd%..h....r...ic|
000003d0  6f 6e 0d 01 7c 0d 21 69  63 6f 6e 64 3d 2d 31 0d  |on..|.!icond=-1.|
000003e0  01 86 0d 69 63 6f 6e 64  21 34 3d 30 0d 01 90 25  |...icond!4=0...%|
000003f0  69 63 6f 6e 64 21 38 3d  30 3a 69 63 6f 6e 64 21  |icond!8=0:icond!|
00000400  31 32 3d 36 38 3a 69 63  6f 6e 64 21 31 36 3d 36  |12=68:icond!16=6|
00000410  38 0d 01 9a 2b 69 63 6f  6e 64 21 32 30 3d 25 31  |8...+icond!20=%1|
00000420  31 30 31 30 2b 28 28 32  5e 31 32 29 2a 33 29 3a  |1010+((2^12)*3):|
00000430  69 63 6f 6e 64 3f 32 33  3d 31 31 32 0d 01 a4 1b  |icond?23=112....|
00000440  24 28 69 63 6f 6e 64 2b  32 34 29 3d 22 21 43 61  |$(icond+24)="!Ca|
00000450  72 64 22 2b bd 31 33 0d  01 ae 26 c8 99 20 22 57  |rd"+.13...&.. "W|
00000460  69 6d 70 5f 43 72 65 61  74 65 49 63 6f 6e 22 2c  |imp_CreateIcon",|
00000470  2c 69 63 6f 6e 64 20 b8  20 69 63 6f 6e 0d 01 b8  |,icond . icon...|
00000480  09 3d 69 63 6f 6e 0d 01  c2 16 dd a4 69 6e 66 28  |.=icon......inf(|
00000490  68 61 6e 64 6c 65 2c 69  63 6f 6e 29 0d 01 cc 15  |handle,icon)....|
000004a0  f2 67 65 65 28 68 61 6e  64 6c 65 2c 69 63 6f 6e  |.gee(handle,icon|
000004b0  29 0d 01 d6 0d 3d 69 63  6f 6e 64 21 32 38 0d 01  |)....=icond!28..|
000004c0  e0 0e 20 dd a4 62 69 74  28 61 24 29 0d 01 ea 11  |.. ..bit(a$)....|
000004d0  c8 95 20 a7 61 24 2c 22  3a 22 29 3e 30 0d 01 f4  |.. .a$,":")>0...|
000004e0  16 61 24 3d c1 61 24 2c  a7 61 24 2c 22 3a 22 29  |.a$=.a$,.a$,":")|
000004f0  2b 31 29 0d 01 fe 05 ce  0d 02 08 11 c8 95 20 a7  |+1)........... .|
00000500  61 24 2c 22 2e 22 29 3e  30 0d 02 12 16 61 24 3d  |a$,".")>0....a$=|
00000510  c1 61 24 2c a7 61 24 2c  22 2e 22 29 2b 31 29 0d  |.a$,.a$,".")+1).|
00000520  02 1c 05 ce 0d 02 26 07  3d 61 24 0d 02 30 11 dd  |......&.=a$..0..|
00000530  a4 77 6f 6f 6c 28 77 6f  6f 6c 25 29 0d 02 3a 0a  |.wool(wool%)..:.|
00000540  ea 20 63 6f 74 24 0d 02  44 12 20 c8 95 20 3f 77  |. cot$..D. .. ?w|
00000550  6f 6f 6c 25 3e 3d 33 32  0d 02 4e 13 63 6f 74 24  |ool%>=32..N.cot$|
00000560  2b 3d bd 28 3f 77 6f 6f  6c 25 29 0d 02 58 0c 77  |+=.(?wool%)..X.w|
00000570  6f 6f 6c 25 2b 3d 31 0d  02 62 05 ce 0d 02 6c 09  |ool%+=1..b....l.|
00000580  3d 63 6f 74 24 0d 02 76  0e dd f2 74 65 6d 70 6c  |=cot$..v...templ|
00000590  61 74 65 0d 02 80 31 c8  99 22 57 69 6d 70 5f 4f  |ate...1.."Wimp_O|
000005a0  70 65 6e 54 65 6d 70 6c  61 74 65 22 2c 2c 22 3c  |penTemplate",,"<|
000005b0  43 61 72 64 24 44 69 72  3e 2e 54 65 6d 70 6c 61  |Card$Dir>.Templa|
000005c0  74 65 73 22 0d 02 8a 11  69 6e 64 69 72 3d 63 75  |tes"....indir=cu|
000005d0  72 62 75 66 25 0d 02 94  1f 69 6e 66 6f 25 3d a4  |rbuf%....info%=.|
000005e0  74 65 6d 70 6c 61 74 65  28 22 50 72 6f 67 49 6e  |template("ProgIn|
000005f0  66 6f 22 29 0d 02 9e 1b  73 61 76 65 25 3d a4 74  |fo")....save%=.t|
00000600  65 6d 70 6c 61 74 65 28  22 73 61 76 65 22 29 0d  |emplate("save").|
00000610  02 a8 1b 63 61 72 64 25  3d a4 74 65 6d 70 6c 61  |...card%=.templa|
00000620  74 65 28 22 43 61 72 64  22 29 0d 02 b2 21 64 65  |te("Card")...!de|
00000630  74 61 69 6c 73 25 3d a4  74 65 6d 70 6c 61 74 65  |tails%=.template|
00000640  28 22 64 65 74 61 69 6c  73 22 29 0d 02 bc 20 73  |("details")... s|
00000650  61 76 65 64 25 3d a4 74  65 6d 70 6c 61 74 65 28  |aved%=.template(|
00000660  22 73 61 76 65 74 65 78  74 22 29 0d 02 c6 1b c8  |"savetext").....|
00000670  99 20 22 57 69 6d 70 5f  43 6c 6f 73 65 54 65 6d  |. "Wimp_CloseTem|
00000680  70 6c 61 74 65 22 0d 02  d0 17 73 74 65 78 3d a4  |plate"....stex=.|
00000690  69 6e 66 6f 28 73 61 76  65 25 2c 36 29 0d 02 d5  |info(save%,6)...|
000006a0  19 73 74 65 78 64 3d a4  69 6e 66 6f 28 73 61 76  |.stexd=.info(sav|
000006b0  65 64 25 2c 36 29 0d 02  da 05 e1 0d 02 e4 12 dd  |ed%,6)..........|
000006c0  a4 74 65 6d 70 6c 61 74  65 28 61 24 29 0d 02 ee  |.template(a$)...|
000006d0  46 c8 99 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |F.."Wimp_LoadTem|
000006e0  70 6c 61 74 65 22 2c 2c  62 6c 6f 63 6b 2c 69 6e  |plate",,block,in|
000006f0  64 69 72 2c 65 6e 64 62  75 66 25 2c 2d 31 2c 61  |dir,endbuf%,-1,a|
00000700  24 2c 30 20 b8 20 2c 2c  69 6e 64 69 72 2c 2c 2c  |$,0 . ,,indir,,,|
00000710  2c 63 25 0d 02 f8 32 e7  20 63 25 3d 30 20 8c 20  |,c%...2. c%=0 . |
00000720  f2 6d 65 73 73 28 22 54  65 6d 70 6c 61 74 65 20  |.mess("Template |
00000730  22 2b 61 24 2b 22 20 6e  6f 74 20 66 6f 75 6e 64  |"+a$+" not found|
00000740  2e 22 29 3a e0 0d 03 02  0e 62 6c 6f 63 6b 21 36  |."):.....block!6|
00000750  34 3d 31 0d 03 0c 29 c8  99 22 57 69 6d 70 5f 43  |4=1...).."Wimp_C|
00000760  72 65 61 74 65 57 69 6e  64 6f 77 22 2c 2c 62 6c  |reateWindow",,bl|
00000770  6f 63 6b 20 b8 20 68 61  6e 64 6c 65 0d 03 16 0b  |ock . handle....|
00000780  3d 68 61 6e 64 6c 65 0d  03 20 17 dd a4 69 6e 66  |=handle.. ...inf|
00000790  6f 28 68 61 6e 64 6c 65  2c 69 63 6f 6e 29 0d 03  |o(handle,icon)..|
000007a0  2a 15 f2 67 65 65 28 68  61 6e 64 6c 65 2c 69 63  |*..gee(handle,ic|
000007b0  6f 6e 29 0d 03 34 0d 3d  69 63 6f 6e 64 21 32 38  |on)..4.=icond!28|
000007c0  0d 03 3e 1d dd f2 69 6e  66 6f 28 68 61 6e 64 6c  |..>...info(handl|
000007d0  65 2c 69 63 6f 6e 2c 74  65 78 74 24 29 0d 03 48  |e,icon,text$)..H|
000007e0  3b 21 62 6c 6f 63 6b 3d  68 61 6e 64 6c 65 3a 62  |;!block=handle:b|
000007f0  6c 6f 63 6b 21 34 3d 69  63 6f 6e 3a c8 99 22 57  |lock!4=icon:.."W|
00000800  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
00000810  22 2c 2c 62 6c 6f 63 6b  0d 03 52 29 24 28 62 6c  |",,block..R)$(bl|
00000820  6f 63 6b 21 32 38 29 3d  74 65 78 74 24 3a 62 6c  |ock!28)=text$:bl|
00000830  6f 63 6b 21 33 36 3d a9  28 74 65 78 74 24 29 2b  |ock!36=.(text$)+|
00000840  31 0d 03 5c 18 62 6c 6f  63 6b 21 38 3d 30 3a 62  |1..\.block!8=0:b|
00000850  6c 6f 63 6b 21 31 32 3d  30 0d 03 66 20 c8 99 22  |lock!12=0..f .."|
00000860  57 69 6d 70 5f 53 65 74  49 63 6f 6e 53 74 61 74  |Wimp_SetIconStat|
00000870  65 22 2c 2c 62 6c 6f 63  6b 0d 03 70 05 e1 0d 03  |e",,block..p....|
00000880  7a 16 dd f2 67 65 65 28  68 61 6e 64 6c 65 2c 69  |z...gee(handle,i|
00000890  63 6f 6e 29 0d 03 84 1e  21 69 63 6f 6e 64 3d 68  |con)....!icond=h|
000008a0  61 6e 64 6c 65 3a 69 63  6f 6e 64 21 34 3d 69 63  |andle:icond!4=ic|
000008b0  6f 6e 0d 03 8e 20 c8 99  22 57 69 6d 70 5f 47 65  |on... .."Wimp_Ge|
000008c0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 69 63 6f  |tIconState",,ico|
000008d0  6e 64 0d 03 98 05 e1 0d  03 a2 0c dd f2 63 6d 65  |nd...........cme|
000008e0  6e 75 73 0d 03 ac 10 6d  65 6e 75 6f 70 65 6e 3d  |nus....menuopen=|
000008f0  2d 34 34 0d 03 b6 11 6d  65 6e 75 70 74 72 3d 6d  |-44....menuptr=m|
00000900  65 6e 75 25 0d 03 c0 0c  c8 97 20 78 2c 79 2c 62  |enu%...... x,y,b|
00000910  0d 03 ca 3e 73 61 76 65  6d 65 6e 75 25 3d a4 6d  |...>savemenu%=.m|
00000920  65 6e 75 28 22 53 61 76  65 22 2c 31 37 34 2c 22  |enu("Save",174,"|
00000930  7b 62 7c 73 61 76 65 25  7d 44 72 61 77 2c 7b 62  |{b|save%}Draw,{b|
00000940  7c 73 61 76 65 64 25 7d  44 61 74 61 22 29 0d 03  ||saved%}Data")..|
00000950  d4 54 69 63 6f 6e 6d 65  6e 75 25 3d a4 6d 65 6e  |.Ticonmenu%=.men|
00000960  75 28 22 21 43 61 72 64  22 2c 31 37 34 2c 22 7b  |u("!Card",174,"{|
00000970  62 7c 69 6e 66 6f 25 7d  49 6e 66 6f 2c 7b 62 7c  |b|info%}Info,{b||
00000980  73 61 76 65 6d 65 6e 75  25 7d 53 61 76 65 2c 44  |savemenu%}Save,D|
00000990  65 74 61 69 6c 73 2c 56  69 65 77 2c 51 75 69 74  |etails,View,Quit|
000009a0  22 29 0d 03 de 4b 64 65  74 6d 65 6e 75 25 3d a4  |")...Kdetmenu%=.|
000009b0  6d 65 6e 75 28 22 21 43  61 72 64 22 2c 31 37 34  |menu("!Card",174|
000009c0  2c 22 7b 62 7c 69 6e 66  6f 25 7d 49 6e 66 6f 2c  |,"{b|info%}Info,|
000009d0  7b 62 7c 73 61 76 65 6d  65 6e 75 25 7d 53 61 76  |{b|savemenu%}Sav|
000009e0  65 2c 56 69 65 77 2c 51  75 69 74 22 29 0d 03 e8  |e,View,Quit")...|
000009f0  56 76 69 65 77 6d 65 6e  75 25 3d a4 6d 65 6e 75  |Vviewmenu%=.menu|
00000a00  28 22 21 43 61 72 64 22  2c 31 37 34 2c 22 7b 62  |("!Card",174,"{b|
00000a10  7c 69 6e 66 6f 25 7d 49  6e 66 6f 2c 7b 62 7c 73  ||info%}Info,{b|s|
00000a20  61 76 65 6d 65 6e 75 25  7d 53 61 76 65 2c 44 65  |avemenu%}Save,De|
00000a30  74 61 69 6c 73 2c 52 65  76 69 65 77 2c 51 75 69  |tails,Review,Qui|
00000a40  74 22 29 0d 03 f2 40 e7  20 62 6c 6f 63 6b 21 31  |t")...@. block!1|
00000a50  32 3d 2d 32 20 80 20 62  6c 6f 63 6b 21 38 3d 32  |2=-2 . block!8=2|
00000a60  20 8c 20 6f 70 65 6e 6d  65 6e 75 25 3d 69 63 6f  | . openmenu%=ico|
00000a70  6e 6d 65 6e 75 25 3a 61  3d 78 2d 37 35 3a 62 3d  |nmenu%:a=x-75:b=|
00000a80  33 33 38 0d 03 fc 40 e7  20 62 6c 6f 63 6b 21 31  |338...@. block!1|
00000a90  32 3d 64 65 74 61 69 6c  73 25 20 80 20 62 6c 6f  |2=details% . blo|
00000aa0  63 6b 21 38 3d 32 20 8c  20 6f 70 65 6e 6d 65 6e  |ck!8=2 . openmen|
00000ab0  75 25 3d 64 65 74 6d 65  6e 75 25 3a 61 3d 78 3a  |u%=detmenu%:a=x:|
00000ac0  62 3d 79 0d 04 06 3e e7  20 62 6c 6f 63 6b 21 31  |b=y...>. block!1|
00000ad0  32 3d 63 61 72 64 25 20  80 20 62 6c 6f 63 6b 21  |2=card% . block!|
00000ae0  38 3d 32 20 8c 20 6f 70  65 6e 6d 65 6e 75 25 3d  |8=2 . openmenu%=|
00000af0  76 69 65 77 6d 65 6e 75  25 3a 61 3d 78 3a 62 3d  |viewmenu%:a=x:b=|
00000b00  79 0d 04 10 12 f2 6f 70  65 6e 6d 65 6e 75 28 61  |y.....openmenu(a|
00000b10  2c 62 29 0d 04 1a 05 e1  0d 04 24 13 dd f2 6f 70  |,b).......$...op|
00000b20  65 6e 6d 65 6e 75 28 78  2c 79 29 0d 04 2e 26 c8  |enmenu(x,y)...&.|
00000b30  99 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  |."Wimp_CreateMen|
00000b40  75 22 2c 2c 6f 70 65 6e  6d 65 6e 75 25 2c 78 2c  |u",,openmenu%,x,|
00000b50  79 0d 04 38 05 e1 0d 04  42 1a dd a4 6d 65 6e 75  |y..8....B...menu|
00000b60  28 74 69 74 24 2c 77 69  64 2c 6d 65 6e 75 24 29  |(tit$,wid,menu$)|
00000b70  0d 04 4c 0e 6d 65 6e 75  24 2b 3d 22 2c 22 0d 04  |..L.menu$+=","..|
00000b80  56 13 6f 6c 64 6d 65 6e  75 3d 6d 65 6e 75 70 74  |V.oldmenu=menupt|
00000b90  72 0d 04 60 11 24 6d 65  6e 75 70 74 72 3d 74 69  |r..`.$menuptr=ti|
00000ba0  74 24 0d 04 6a 10 6d 65  6e 75 70 74 72 3f 31 32  |t$..j.menuptr?12|
00000bb0  3d 37 0d 04 74 10 6d 65  6e 75 70 74 72 3f 31 33  |=7..t.menuptr?13|
00000bc0  3d 32 0d 04 7e 10 6d 65  6e 75 70 74 72 3f 31 34  |=2..~.menuptr?14|
00000bd0  3d 37 0d 04 88 10 6d 65  6e 75 70 74 72 3f 31 35  |=7....menuptr?15|
00000be0  3d 30 0d 04 92 12 6d 65  6e 75 70 74 72 21 31 36  |=0....menuptr!16|
00000bf0  3d 77 69 64 0d 04 9c 11  6d 65 6e 75 70 74 72 21  |=wid....menuptr!|
00000c00  32 30 3d 34 38 0d 04 a6  10 6d 65 6e 75 70 74 72  |20=48....menuptr|
00000c10  21 32 34 3d 30 0d 04 b0  0f 6d 65 6e 75 70 74 72  |!24=0....menuptr|
00000c20  2b 3d 32 38 0d 04 ba 05  f5 0d 04 c4 11 f2 74 68  |+=28..........th|
00000c30  69 6e 67 28 6d 65 6e 75  24 29 0d 04 ce 1f 6d 65  |ing(menu$)....me|
00000c40  6e 75 24 3d c1 6d 65 6e  75 24 2c a7 6d 65 6e 75  |nu$=.menu$,.menu|
00000c50  24 2c 22 2c 22 29 2b 31  29 0d 04 d8 0f 6d 65 6e  |$,",")+1)....men|
00000c60  75 70 74 72 2b 3d 32 34  0d 04 e2 0e fd 20 6d 65  |uptr+=24..... me|
00000c70  6e 75 24 3d 22 22 0d 04  ec 29 6d 65 6e 75 70 74  |nu$=""...)menupt|
00000c80  72 21 2d 32 34 3d 28 6d  65 6e 75 70 74 72 21 2d  |r!-24=(menuptr!-|
00000c90  32 34 29 20 84 20 25 31  30 30 30 30 30 30 30 0d  |24) . %10000000.|
00000ca0  04 f6 0c 3d 6f 6c 64 6d  65 6e 75 0d 05 00 0f dd  |...=oldmenu.....|
00000cb0  f2 74 68 69 6e 67 28 6d  24 29 0d 05 0a 16 6d 24  |.thing(m$)....m$|
00000cc0  3d c0 6d 24 2c a7 6d 24  2c 22 2c 22 29 2d 31 29  |=.m$,.m$,",")-1)|
00000cd0  0d 05 14 0f 69 24 3d 22  22 3a 6a 24 3d 22 22 0d  |....i$="":j$="".|
00000ce0  05 1e 12 e7 20 a7 6d 24  2c 22 7b 22 29 3e 30 20  |.... .m$,"{")>0 |
00000cf0  8c 0d 05 28 16 69 24 3d  c0 6d 24 2c a7 6d 24 2c  |...(.i$=.m$,.m$,|
00000d00  22 7d 22 29 2d 31 29 0d  05 32 16 6d 24 3d c1 6d  |"}")-1)..2.m$=.m|
00000d10  24 2c a7 6d 24 2c 22 7d  22 29 2b 31 29 0d 05 3c  |$,.m$,"}")+1)..<|
00000d20  16 6a 24 3d c0 69 24 2c  a7 69 24 2c 22 7c 22 29  |.j$=.i$,.i$,"|")|
00000d30  2d 31 29 0d 05 46 16 69  24 3d c1 69 24 2c a7 69  |-1)..F.i$=.i$,.i|
00000d40  24 2c 22 7c 22 29 2b 31  29 0d 05 50 05 cd 0d 05  |$,"|")+1)..P....|
00000d50  5a 13 69 6a 61 63 6b 3d  26 30 37 30 30 30 30 32  |Z.ijack=&0700002|
00000d60  31 0d 05 64 0b 6d 6a 61  63 6b 3d 30 0d 05 6e 0e  |1..d.mjack=0..n.|
00000d70  73 75 62 6d 65 6e 75 3d  2d 31 0d 05 78 20 e7 20  |submenu=-1..x . |
00000d80  a7 6a 24 2c 22 62 22 29  3e 30 20 8c 20 73 75 62  |.j$,"b")>0 . sub|
00000d90  6d 65 6e 75 3d a0 28 69  24 29 0d 05 82 22 e7 20  |menu=.(i$)...". |
00000da0  a7 6a 24 2c 22 5f 22 29  3e 30 20 8c 20 6d 6a 61  |.j$,"_")>0 . mja|
00000db0  63 6b 3d 6d 6a 61 63 6b  20 84 20 32 0d 05 8c 22  |ck=mjack . 2..."|
00000dc0  e7 20 a7 6a 24 2c 22 80  22 29 3e 30 20 8c 20 6d  |. .j$,".")>0 . m|
00000dd0  6a 61 63 6b 3d 6d 6a 61  63 6b 20 84 20 31 0d 05  |jack=mjack . 1..|
00000de0  96 30 e7 20 a7 6a 24 2c  22 75 22 29 3e 30 20 8c  |.0. .j$,"u")>0 .|
00000df0  20 6d 6a 61 63 6b 3d 6d  6a 61 63 6b 20 84 20 32  | mjack=mjack . 2|
00000e00  3a 73 75 62 6d 65 6e 75  3d a0 28 69 24 29 0d 05  |:submenu=.(i$)..|
00000e10  a0 12 21 6d 65 6e 75 70  74 72 3d 6d 6a 61 63 6b  |..!menuptr=mjack|
00000e20  0d 05 aa 15 6d 65 6e 75  70 74 72 21 34 3d 73 75  |....menuptr!4=su|
00000e30  62 6d 65 6e 75 0d 05 b4  13 6d 65 6e 75 70 74 72  |bmenu....menuptr|
00000e40  21 38 3d 69 6a 61 63 6b  0d 05 be 14 24 28 6d 65  |!8=ijack....$(me|
00000e50  6e 75 70 74 72 2b 31 32  29 3d 6d 24 0d 05 c8 05  |nuptr+12)=m$....|
00000e60  cd 0d 05 d2 05 e1 0d 05  dc 12 dd f2 63 6c 69 63  |............clic|
00000e70  6b 28 62 6c 6f 63 6b 29  0d 05 e6 27 e7 20 62 6c  |k(block)...'. bl|
00000e80  6f 63 6b 21 31 32 3d 2d  32 20 80 20 62 6c 6f 63  |ock!12=-2 . bloc|
00000e90  6b 21 38 3d 32 20 f2 63  6d 65 6e 75 73 3a e1 0d  |k!8=2 .cmenus:..|
00000ea0  05 f0 30 e7 20 62 6c 6f  63 6b 21 31 32 3d 2d 32  |..0. block!12=-2|
00000eb0  20 80 20 62 6c 6f 63 6b  21 38 3d 34 20 f2 6f 70  | . block!8=4 .op|
00000ec0  65 6e 77 69 6e 28 64 65  74 61 69 6c 73 25 29 0d  |enwin(details%).|
00000ed0  05 fa 3c e7 20 62 6c 6f  63 6b 21 31 32 3d 2d 32  |..<. block!12=-2|
00000ee0  20 80 20 62 6c 6f 63 6b  21 38 3d 31 20 f2 6f 70  | . block!8=1 .op|
00000ef0  65 6e 77 69 6e 28 63 61  72 64 25 29 3a f2 72 65  |enwin(card%):.re|
00000f00  64 72 61 77 28 63 61 72  64 25 29 0d 06 04 9c e7  |draw(card%).....|
00000f10  20 62 6c 6f 63 6b 21 31  32 3d 64 65 74 61 69 6c  | block!12=detail|
00000f20  73 25 20 80 20 62 6c 6f  63 6b 21 38 3d 32 20 80  |s% . block!8=2 .|
00000f30  20 62 6c 6f 63 6b 21 31  36 3d 33 20 84 20 62 6c  | block!16=3 . bl|
00000f40  6f 63 6b 21 31 36 3d 32  20 84 20 62 6c 6f 63 6b  |ock!16=2 . block|
00000f50  21 31 36 3d 34 20 84 20  62 6c 6f 63 6b 21 31 36  |!16=4 . block!16|
00000f60  3d 31 39 20 8c 20 c8 97  20 78 2c 79 2c 62 3a 67  |=19 . .. x,y,b:g|
00000f70  65 65 3d 31 3a 69 63 79  3d 62 6c 6f 63 6b 21 31  |ee=1:icy=block!1|
00000f80  36 3a c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |6:.."Wimp_Create|
00000f90  4d 65 6e 75 22 2c 2c 4d  5f 46 6f 6e 74 25 2c 78  |Menu",,M_Font%,x|
00000fa0  2d 37 35 2c 79 3a e1 0d  06 0e 35 e7 20 62 6c 6f  |-75,y:....5. blo|
00000fb0  63 6b 21 31 32 3d 64 65  74 61 69 6c 73 25 20 80  |ck!12=details% .|
00000fc0  20 62 6c 6f 63 6b 21 38  3d 32 20 8c 20 67 65 65  | block!8=2 . gee|
00000fd0  3d 30 3a f2 63 6d 65 6e  75 73 3a e1 0d 06 18 2c  |=0:.cmenus:....,|
00000fe0  e7 20 62 6c 6f 63 6b 21  31 32 3d 63 61 72 64 25  |. block!12=card%|
00000ff0  20 80 20 62 6c 6f 63 6b  21 38 3d 32 20 8c 20 f2  | . block!8=2 . .|
00001000  63 6d 65 6e 75 73 3a e1  0d 06 22 3c e7 20 62 6c  |cmenus:..."<. bl|
00001010  6f 63 6b 21 31 32 3d 73  61 76 65 25 20 80 20 62  |ock!12=save% . b|
00001020  6c 6f 63 6b 21 31 36 3d  37 20 77 69 6e 73 61 76  |lock!16=7 winsav|
00001030  65 25 3d 62 6c 6f 63 6b  21 31 32 3a f2 64 65 66  |e%=block!12:.def|
00001040  73 61 76 65 0d 06 2c 3d  e7 20 62 6c 6f 63 6b 21  |save..,=. block!|
00001050  31 32 3d 73 61 76 65 64  25 20 80 20 62 6c 6f 63  |12=saved% . bloc|
00001060  6b 21 31 36 3d 37 20 77  69 6e 73 61 76 65 25 3d  |k!16=7 winsave%=|
00001070  62 6c 6f 63 6b 21 31 32  3a f2 64 65 66 73 61 76  |block!12:.defsav|
00001080  65 0d 06 31 56 e7 20 62  6c 6f 63 6b 21 31 32 3d  |e..1V. block!12=|
00001090  73 61 76 65 25 20 80 20  62 6c 6f 63 6b 21 31 36  |save% . block!16|
000010a0  3d 31 30 20 77 69 6e 73  61 76 65 25 3d 62 6c 6f  |=10 winsave%=blo|
000010b0  63 6b 21 31 32 3a 73 74  79 70 65 3d 31 3a f2 73  |ck!12:stype=1:.s|
000010c0  61 76 65 28 24 a4 69 6e  66 6f 28 77 69 6e 73 61  |ave($.info(winsa|
000010d0  76 65 25 2c 36 29 29 0d  06 32 57 e7 20 62 6c 6f  |ve%,6))..2W. blo|
000010e0  63 6b 21 31 32 3d 73 61  76 65 64 25 20 80 20 62  |ck!12=saved% . b|
000010f0  6c 6f 63 6b 21 31 36 3d  31 30 20 77 69 6e 73 61  |lock!16=10 winsa|
00001100  76 65 25 3d 62 6c 6f 63  6b 21 31 32 3a 73 74 79  |ve%=block!12:sty|
00001110  70 65 3d 32 3a f2 73 61  76 65 28 24 a4 69 6e 66  |pe=2:.save($.inf|
00001120  6f 28 77 69 6e 73 61 76  65 25 2c 36 29 29 0d 06  |o(winsave%,6))..|
00001130  54 05 e1 0d 05 8c 0d dd  f2 70 72 6f 63 65 73 73  |T........process|
00001140  0d 05 96 2e e7 20 21 62  6c 6f 63 6b 3d 64 65 74  |..... !block=det|
00001150  61 69 6c 73 25 20 80 20  62 6c 6f 63 6b 21 32 34  |ails% . block!24|
00001160  3d 31 33 20 8c 20 f2 63  61 72 65 74 3a e1 0d 05  |=13 . .caret:...|
00001170  9b 42 e7 20 21 62 6c 6f  63 6b 3d 73 61 76 65 25  |.B. !block=save%|
00001180  20 80 20 62 6c 6f 63 6b  21 32 34 3d 31 33 20 8c  | . block!24=13 .|
00001190  20 73 74 79 70 65 3d 31  3a f2 73 61 76 65 28 24  | stype=1:.save($|
000011a0  a4 69 6e 66 6f 28 21 62  6c 6f 63 6b 2c 36 29 29  |.info(!block,6))|
000011b0  0d 05 9b 43 e7 20 21 62  6c 6f 63 6b 3d 73 61 76  |...C. !block=sav|
000011c0  65 64 25 20 80 20 62 6c  6f 63 6b 21 32 34 3d 31  |ed% . block!24=1|
000011d0  33 20 8c 20 73 74 79 70  65 3d 32 3a f2 73 61 76  |3 . stype=2:.sav|
000011e0  65 28 24 a4 69 6e 66 6f  28 21 62 6c 6f 63 6b 2c  |e($.info(!block,|
000011f0  36 29 29 0d 05 b4 20 c8  99 22 57 69 6d 70 5f 50  |6))... .."Wimp_P|
00001200  72 6f 63 65 73 73 4b 65  79 22 2c 62 6c 6f 63 6b  |rocessKey",block|
00001210  21 32 34 0d 05 be 05 e1  0d 08 66 0b dd f2 63 61  |!24.......f...ca|
00001220  72 65 74 0d 08 70 24 c8  99 22 57 69 6d 70 5f 47  |ret..p$.."Wimp_G|
00001230  65 74 43 61 72 65 74 50  6f 73 69 74 69 6f 6e 22  |etCaretPosition"|
00001240  2c 2c 62 6c 6f 63 6b 0d  08 7a 18 e7 20 62 6c 6f  |,,block..z.. blo|
00001250  63 6b 21 30 3d 64 65 74  61 69 6c 73 25 20 8c 0d  |ck!0=details% ..|
00001260  08 84 10 c8 8e 20 62 6c  6f 63 6b 21 34 20 ca 0d  |..... block!4 ..|
00001270  08 84 0d 20 c9 20 30 3a  6e 70 3d 35 0d 08 8e 0d  |... . 0:np=5....|
00001280  20 c9 20 35 3a 6e 70 3d  36 0d 08 98 0d 20 c9 20  | . 5:np=6.... . |
00001290  36 3a 6e 70 3d 37 0d 08  a2 0e 20 c9 20 37 3a 6e  |6:np=7.... . 7:n|
000012a0  70 3d 31 38 0d 08 ac 0f  20 c9 20 31 38 3a 6e 70  |p=18.... . 18:np|
000012b0  3d 31 30 0d 08 b6 0f 20  c9 20 31 30 3a 6e 70 3d  |=10.... . 10:np=|
000012c0  32 31 0d 08 c0 0e 20 c9  20 32 31 3a 6e 70 3d 30  |21.... . 21:np=0|
000012d0  0d 08 c5 1d 20 c9 20 31  33 2c 31 34 2c 31 35 2c  |.... . 13,14,15,|
000012e0  31 37 3a 6e 70 3d 62 6c  6f 63 6b 21 34 0d 08 ca  |17:np=block!4...|
000012f0  06 20 cb 0d 08 98 35 20  c8 99 20 22 57 69 6d 70  |. ....5 .. "Wimp|
00001300  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
00001310  6e 22 2c 64 65 74 61 69  6c 73 25 2c 6e 70 2c 30  |n",details%,np,0|
00001320  2c 30 2c 2d 31 2c 2d 31  0d 08 ac 06 20 cd 0d 08  |,0,-1,-1.... ...|
00001330  b6 06 20 e1 0d 06 5e 0c  dd f2 73 65 6c 65 63 74  |.. ...^...select|
00001340  0d 06 68 0d e7 20 67 65  65 3d 31 20 8c 0d 06 72  |..h.. gee=1 ...r|
00001350  2c c8 99 22 57 69 6d 70  5f 44 65 63 6f 64 65 4d  |,.."Wimp_DecodeM|
00001360  65 6e 75 22 2c 2c 4d 5f  46 6f 6e 74 25 2c 62 6c  |enu",,M_Font%,bl|
00001370  6f 63 6b 2c 69 63 6f 6e  64 0d 06 7c 12 66 61 6d  |ock,icond..|.fam|
00001380  69 6c 79 24 3d 24 69 63  6f 6e 64 0d 06 86 1f f2  |ily$=$icond.....|
00001390  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 69 63  |info(details%,ic|
000013a0  79 2c 66 61 6d 69 6c 79  24 29 0d 06 90 09 67 65  |y,family$)....ge|
000013b0  65 3d 30 0d 06 9a 05 e1  0d 06 a4 05 cd 0d 06 ae  |e=0.............|
000013c0  2e c8 99 22 57 69 6d 70  5f 44 65 63 6f 64 65 4d  |..."Wimp_DecodeM|
000013d0  65 6e 75 22 2c 2c 6f 70  65 6e 6d 65 6e 75 25 2c  |enu",,openmenu%,|
000013e0  62 6c 6f 63 6b 2c 69 63  6f 6e 64 0d 06 b8 31 e7  |block,icond...1.|
000013f0  20 24 69 63 6f 6e 64 3d  22 51 75 69 74 22 20 8c  | $icond="Quit" .|
00001400  20 c8 99 22 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  | .."Wimp_CloseDo|
00001410  77 6e 22 3a e0 3a 65 6e  64 25 3d b9 0d 06 c2 2b  |wn":.:end%=....+|
00001420  e7 20 24 69 63 6f 6e 64  3d 22 44 65 74 61 69 6c  |. $icond="Detail|
00001430  73 22 20 8c 20 f2 6f 70  65 6e 77 69 6e 28 64 65  |s" . .openwin(de|
00001440  74 61 69 6c 73 25 29 0d  06 cc 34 e7 20 24 69 63  |tails%)...4. $ic|
00001450  6f 6e 64 3d 22 56 69 65  77 22 20 8c 20 f2 6f 70  |ond="View" . .op|
00001460  65 6e 77 69 6e 28 63 61  72 64 25 29 3a f2 72 65  |enwin(card%):.re|
00001470  64 72 61 77 28 63 61 72  64 25 29 0d 06 d1 36 e7  |draw(card%)...6.|
00001480  20 24 69 63 6f 6e 64 3d  22 52 65 76 69 65 77 22  | $icond="Review"|
00001490  20 8c 20 f2 6f 70 65 6e  77 69 6e 28 63 61 72 64  | . .openwin(card|
000014a0  25 29 3a f2 72 65 64 72  61 77 28 63 61 72 64 25  |%):.redraw(card%|
000014b0  29 0d 06 d6 22 c8 99 22  57 69 6d 70 5f 47 65 74  |)...".."Wimp_Get|
000014c0  50 6f 69 6e 74 65 72 49  6e 66 6f 22 2c 2c 62 6c  |PointerInfo",,bl|
000014d0  6f 63 6b 0d 06 e0 11 e7  20 62 6c 6f 63 6b 21 38  |ock..... block!8|
000014e0  3d 31 20 8c 0d 06 ea 1b  e7 20 6d 65 6e 75 6f 70  |=1 ...... menuop|
000014f0  65 6e 3d 2d 34 34 20 8c  20 f2 63 6d 65 6e 75 0d  |en=-44 . .cmenu.|
00001500  06 f4 22 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |..".."Wimp_Creat|
00001510  65 4d 65 6e 75 22 2c 2c  6f 70 65 6e 6d 65 6e 75  |eMenu",,openmenu|
00001520  25 0d 06 fe 05 cc 0d 07  08 1b c8 99 22 57 69 6d  |%..........."Wim|
00001530  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 2c 2c 2d  |p_CreateMenu",,-|
00001540  31 0d 07 12 05 cd 0d 07  1c 05 e1 0d 07 26 11 dd  |1............&..|
00001550  f2 6d 65 73 73 28 6d 65  73 73 24 29 0d 07 30 20  |.mess(mess$)..0 |
00001560  21 69 63 6f 6e 64 3d 30  3a 24 28 69 63 6f 6e 64  |!icond=0:$(icond|
00001570  2b 34 29 3d 6d 65 73 73  24 2b bd 30 0d 07 3a 28  |+4)=mess$+.0..:(|
00001580  c8 99 22 57 69 6d 70 5f  52 65 70 6f 72 74 45 72  |.."Wimp_ReportEr|
00001590  72 6f 72 22 2c 69 63 6f  6e 64 2c 31 2c 22 21 43  |ror",icond,1,"!C|
000015a0  61 72 64 22 0d 07 44 05  e1 0d 07 4e 11 dd f2 65  |ard"..D....N...e|
000015b0  72 72 6f 72 28 65 72 72  24 29 0d 07 58 0d e7 20  |rror(err$)..X.. |
000015c0  9f 3d 35 32 33 20 8c 0d  07 62 25 f2 6d 65 73 73  |.=523 ...b%.mess|
000015d0  28 22 46 6f 6e 74 20 22  2b 66 6f 6e 74 24 2b 22  |("Font "+font$+"|
000015e0  20 6e 6f 74 20 66 6f 75  6e 64 22 29 0d 07 6c 0e  | not found")..l.|
000015f0  c8 8e 20 66 6f 6e 74 24  20 ca 0d 07 76 32 c9 20  |.. font$ ...v2. |
00001600  66 6f 6e 74 6e 61 6d 65  24 3a f2 69 6e 66 6f 28  |fontname$:.info(|
00001610  64 65 74 61 69 6c 73 25  2c 33 2c 22 54 72 69 6e  |details%,3,"Trin|
00001620  69 74 79 2e 4d 65 64 69  75 6d 22 29 0d 07 80 33  |ity.Medium")...3|
00001630  c9 20 66 6f 6e 74 65 78  74 72 61 24 3a f2 69 6e  |. fontextra$:.in|
00001640  66 6f 28 64 65 74 61 69  6c 73 25 2c 32 2c 22 54  |fo(details%,2,"T|
00001650  72 69 6e 69 74 79 2e 4d  65 64 69 75 6d 22 29 0d  |rinity.Medium").|
00001660  07 8a 32 c9 20 66 6f 6e  74 61 64 31 24 3a f2 69  |..2. fontad1$:.i|
00001670  6e 66 6f 28 64 65 74 61  69 6c 73 25 2c 31 39 2c  |nfo(details%,19,|
00001680  22 54 72 69 6e 69 74 79  2e 4d 65 64 69 75 6d 22  |"Trinity.Medium"|
00001690  29 0d 07 94 31 c9 20 66  6f 6e 74 74 65 6c 24 3a  |)...1. fonttel$:|
000016a0  f2 69 6e 66 6f 28 64 65  74 61 69 6c 73 25 2c 34  |.info(details%,4|
000016b0  2c 22 54 72 69 6e 69 74  79 2e 4d 65 64 69 75 6d  |,"Trinity.Medium|
000016c0  22 29 0d 07 9e 05 cb 0d  07 a8 19 f2 72 65 64 72  |")..........redr|
000016d0  61 77 28 63 61 72 64 25  29 3a e5 20 8d 64 5c 40  |aw(card%):. .d\@|
000016e0  0d 07 b2 05 cd 0d 07 bc  0f f2 6d 65 73 73 28 65  |..........mess(e|
000016f0  72 72 24 29 0d 07 c6 05  e0 0d 07 d0 05 e1 0d 07  |rr$)............|
00001700  da 09 dd f2 6f 75 74 0d  07 db 21 e7 20 77 69 6e  |....out...!. win|
00001710  73 61 76 65 25 3d 73 61  76 65 25 20 8c 20 73 74  |save%=save% . st|
00001720  65 78 74 3d 73 74 65 78  0d 07 dc 23 e7 20 77 69  |ext=stex...#. wi|
00001730  6e 73 61 76 65 25 3d 73  61 76 65 64 25 20 8c 20  |nsave%=saved% . |
00001740  73 74 65 78 74 3d 73 74  65 78 64 0d 07 e4 10 e7  |stext=stexd.....|
00001750  20 64 72 69 76 65 25 3d  31 20 8c 0d 07 ee 23 c8  | drive%=1 ....#.|
00001760  99 20 22 57 69 6d 70 5f  47 65 74 50 6f 69 6e 74  |. "Wimp_GetPoint|
00001770  65 72 49 6e 66 6f 22 2c  2c 62 6c 6f 63 6b 0d 07  |erInfo",,block..|
00001780  f8 24 62 6c 6f 63 6b 21  33 32 3d 62 6c 6f 63 6b  |.$block!32=block|
00001790  21 34 3a 62 6c 6f 63 6b  21 32 38 3d 21 62 6c 6f  |!4:block!28=!blo|
000017a0  63 6b 0d 08 02 27 62 6c  6f 63 6b 21 32 34 3d 62  |ck...'block!24=b|
000017b0  6c 6f 63 6b 21 31 36 3a  62 6c 6f 63 6b 21 32 30  |lock!16:block!20|
000017c0  3d 62 6c 6f 63 6b 21 31  32 0d 08 0c 2f 62 6c 6f  |=block!12.../blo|
000017d0  63 6b 21 31 36 3d 31 3a  62 6c 6f 63 6b 21 31 32  |ck!16=1:block!12|
000017e0  3d 30 3a 62 6c 6f 63 6b  21 33 36 3d 30 3a 62 6c  |=0:block!36=0:bl|
000017f0  6f 63 6b 21 34 30 3d 30  0d 08 20 1d 24 73 74 65  |ock!40=0.. .$ste|
00001800  78 74 3d 24 a4 69 6e 66  6f 28 77 69 6e 73 61 76  |xt=$.info(winsav|
00001810  65 25 2c 36 29 0d 08 2a  29 e3 20 49 3d 30 20 b8  |e%,6)..*). I=0 .|
00001820  20 32 35 35 3a e7 20 49  3f 73 74 65 78 74 3c 33  | 255:. I?stext<3|
00001830  32 20 8c 20 49 3f 73 74  65 78 74 3d 31 33 0d 08  |2 . I?stext=13..|
00001840  34 05 ed 0d 08 3e 29 24  28 62 6c 6f 63 6b 2b 34  |4....>)$(block+4|
00001850  34 29 3d a4 62 69 74 28  24 73 74 65 78 74 29 2b  |4)=.bit($stext)+|
00001860  bd 30 3a 21 62 6c 6f 63  6b 3d 36 30 0d 08 48 2b  |.0:!block=60..H+|
00001870  c8 99 20 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |.. "Wimp_SendMes|
00001880  73 61 67 65 22 2c 31 37  2c 62 6c 6f 63 6b 2c 62  |sage",17,block,b|
00001890  6c 6f 63 6b 21 32 30 0d  08 52 0b 64 72 61 67 25  |lock!20..R.drag%|
000018a0  3d 30 0d 08 5c 05 cd 0d  08 66 05 e1 0d 08 70 0d  |=0..\....f....p.|
000018b0  dd f2 64 65 66 73 61 76  65 0d 08 7a 09 f2 4d 6f  |..defsave..z..Mo|
000018c0  64 65 0d 08 84 38 21 62  6c 6f 63 6b 3d 77 69 6e  |de...8!block=win|
000018d0  73 61 76 65 25 3a e7 20  77 69 6e 73 61 76 65 25  |save%:. winsave%|
000018e0  3d 73 61 76 65 25 20 8c  20 73 74 79 70 65 3d 31  |=save% . stype=1|
000018f0  20 8b 20 73 74 79 70 65  3d 32 0d 08 8e 23 c8 99  | . stype=2...#..|
00001900  20 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  | "Wimp_GetWindow|
00001910  53 74 61 74 65 22 2c 2c  62 6c 6f 63 6b 0d 08 98  |State",,block...|
00001920  1b 79 73 69 7a 65 25 3d  62 6c 6f 63 6b 21 31 36  |.ysize%=block!16|
00001930  2d 62 6c 6f 63 6b 21 38  0d 08 a2 23 78 25 3d 62  |-block!8...#x%=b|
00001940  6c 6f 63 6b 21 34 3a 79  25 3d 62 6c 6f 63 6b 21  |lock!4:y%=block!|
00001950  38 3a 62 6c 6f 63 6b 21  34 3d 37 0d 08 ac 20 c8  |8:block!4=7... .|
00001960  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
00001970  61 74 65 22 2c 2c 62 6c  6f 63 6b 0d 08 b6 23 62  |ate",,block...#b|
00001980  6c 6f 63 6b 21 38 2b 3d  78 25 3a 62 6c 6f 63 6b  |lock!8+=x%:block|
00001990  21 31 32 2b 3d 79 25 2b  79 73 69 7a 65 25 0d 08  |!12+=y%+ysize%..|
000019a0  c0 24 62 6c 6f 63 6b 21  31 36 2b 3d 78 25 3a 62  |.$block!16+=x%:b|
000019b0  6c 6f 63 6b 21 32 30 2b  3d 79 25 2b 79 73 69 7a  |lock!20+=y%+ysiz|
000019c0  65 25 0d 08 ca 35 62 6c  6f 63 6b 21 32 34 3d 30  |e%...5block!24=0|
000019d0  3a 62 6c 6f 63 6b 21 32  38 3d 30 3a 62 6c 6f 63  |:block!28=0:bloc|
000019e0  6b 21 33 32 3d 78 6d 61  78 3a 62 6c 6f 63 6b 21  |k!32=xmax:block!|
000019f0  33 36 3d 79 6d 61 78 0d  08 d4 27 21 62 6c 6f 63  |36=ymax...'!bloc|
00001a00  6b 3d 30 3a 62 6c 6f 63  6b 21 34 3d 35 3a 64 72  |k=0:block!4=5:dr|
00001a10  61 67 25 3d b9 3a 64 72  69 76 65 25 3d 31 0d 08  |ag%=.:drive%=1..|
00001a20  de 1b c8 99 22 57 69 6d  70 5f 44 72 61 67 42 6f  |...."Wimp_DragBo|
00001a30  78 22 2c 2c 62 6c 6f 63  6b 0d 08 e8 05 e1 0d 08  |x",,block.......|
00001a40  f2 0a dd f2 4d 6f 64 65  0d 08 fc 4d 21 62 6c 6f  |....Mode...M!blo|
00001a50  63 6b 3d 31 33 30 3a 62  6c 6f 63 6b 21 34 3d 31  |ck=130:block!4=1|
00001a60  33 31 3a 62 6c 6f 63 6b  21 38 3d 2d 31 3a c8 99  |31:block!8=-1:..|
00001a70  22 4f 53 5f 52 65 61 64  56 64 75 56 61 72 69 61  |"OS_ReadVduVaria|
00001a80  62 6c 65 73 22 2c 62 6c  6f 63 6b 2c 62 6c 6f 63  |bles",block,bloc|
00001a90  6b 2b 31 32 38 0d 09 06  29 c8 99 22 4f 53 5f 52  |k+128...).."OS_R|
00001aa0  65 61 64 4d 6f 64 65 56  61 72 69 61 62 6c 65 22  |eadModeVariable"|
00001ab0  2c eb 2c 34 20 b8 20 2c  2c 58 65 69 67 25 0d 09  |,.,4 . ,,Xeig%..|
00001ac0  10 29 c8 99 22 4f 53 5f  52 65 61 64 4d 6f 64 65  |.).."OS_ReadMode|
00001ad0  56 61 72 69 61 62 6c 65  22 2c eb 2c 35 20 b8 20  |Variable",.,5 . |
00001ae0  2c 2c 59 65 69 67 25 0d  09 1a 3d 78 6d 61 78 3d  |,,Yeig%...=xmax=|
00001af0  28 28 62 6c 6f 63 6b 21  31 32 38 29 2b 31 29 2a  |((block!128)+1)*|
00001b00  32 5e 58 65 69 67 25 3a  79 6d 61 78 3d 28 28 62  |2^Xeig%:ymax=((b|
00001b10  6c 6f 63 6b 21 31 33 32  29 2b 31 29 2a 32 5e 59  |lock!132)+1)*2^Y|
00001b20  65 69 67 25 0d 09 24 05  e1 0d 09 2e 11 dd f2 73  |eig%..$........s|
00001b30  61 76 65 28 73 61 76 65  24 29 0d 09 38 62 e7 20  |ave(save$)..8b. |
00001b40  a7 73 61 76 65 24 2c 22  2e 22 29 3c 31 20 80 20  |.save$,".")<1 . |
00001b50  a7 73 61 76 65 24 2c 22  3a 22 29 3c 31 20 8c 20  |.save$,":")<1 . |
00001b60  f2 6d 65 73 73 28 22 54  6f 20 73 61 76 65 2c 20  |.mess("To save, |
00001b70  64 72 61 67 20 74 68 65  20 73 61 76 65 20 69 63  |drag the save ic|
00001b80  6f 6e 20 74 6f 20 61 20  64 69 72 65 63 74 6f 72  |on to a director|
00001b90  79 20 76 69 65 77 65 72  22 29 3a e1 0d 09 42 0f  |y viewer"):...B.|
00001ba0  e7 20 73 74 79 70 65 3d  32 20 8c 0d 09 47 07 ea  |. stype=2 ...G..|
00001bb0  20 85 0d 09 48 50 ee 20  85 20 ea 20 e7 20 9f 3d  | ...HP. . . . .=|
00001bc0  37 31 36 32 32 3a f2 6d  65 73 73 28 22 44 69 73  |71622:.mess("Dis|
00001bd0  63 20 46 75 6c 6c 22 29  3a f7 20 85 3a e1 3a 8b  |c Full"):. .:.:.|
00001be0  20 f7 20 85 3a f2 65 72  72 6f 72 28 f6 24 2b 22  | . .:.error(.$+"|
00001bf0  20 3a 20 61 74 20 6c 69  6e 65 20 22 2b c3 9e 29  | : at line "+..)|
00001c00  3a e0 0d 09 4c 13 20 65  6e 64 74 65 78 74 25 3d  |:...L. endtext%=|
00001c10  74 65 78 74 25 0d 09 56  22 24 65 6e 64 74 65 78  |text%..V"$endtex|
00001c20  74 25 3d 22 43 61 72 64  20 44 61 74 61 20 46 69  |t%="Card Data Fi|
00001c30  6c 65 22 2b bd 31 30 0d  09 60 11 20 65 6e 64 74  |le"+.10..`. endt|
00001c40  65 78 74 25 2b 3d 31 35  0d 09 6a 25 20 24 65 6e  |ext%+=15..j% $en|
00001c50  64 74 65 78 74 25 3d 24  a4 69 6e 66 6f 28 64 65  |dtext%=$.info(de|
00001c60  74 61 69 6c 73 25 2c 33  29 2b bd 31 30 0d 09 74  |tails%,3)+.10..t|
00001c70  26 20 65 6e 64 74 65 78  74 25 2b 3d a9 28 24 a4  |& endtext%+=.($.|
00001c80  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 33 29  |info(details%,3)|
00001c90  29 2b 31 0d 09 7e 27 20  24 65 6e 64 74 65 78 74  |)+1..~' $endtext|
00001ca0  25 3d 24 a4 69 6e 66 6f  28 64 65 74 61 69 6c 73  |%=$.info(details|
00001cb0  25 2c 30 29 2b bd 28 31  30 29 0d 09 88 26 20 65  |%,0)+.(10)...& e|
00001cc0  6e 64 74 65 78 74 25 2b  3d a9 28 24 a4 69 6e 66  |ndtext%+=.($.inf|
00001cd0  6f 28 64 65 74 61 69 6c  73 25 2c 30 29 29 2b 31  |o(details%,0))+1|
00001ce0  0d 09 92 28 20 24 65 6e  64 74 65 78 74 25 3d 24  |...( $endtext%=$|
00001cf0  a4 69 6e 66 6f 28 64 65  74 61 69 6c 73 25 2c 31  |.info(details%,1|
00001d00  33 29 2b bd 28 31 30 29  0d 09 9c 26 65 6e 64 74  |3)+.(10)...&endt|
00001d10  65 78 74 25 2b 3d a9 28  24 a4 69 6e 66 6f 28 64  |ext%+=.($.info(d|
00001d20  65 74 61 69 6c 73 25 2c  31 33 29 29 2b 31 0d 09  |etails%,13))+1..|
00001d30  a6 25 20 24 65 6e 64 74  65 78 74 25 3d 24 a4 69  |.% $endtext%=$.i|
00001d40  6e 66 6f 28 64 65 74 61  69 6c 73 25 2c 32 29 2b  |nfo(details%,2)+|
00001d50  bd 31 30 0d 09 b0 26 20  65 6e 64 74 65 78 74 25  |.10...& endtext%|
00001d60  2b 3d a9 28 24 a4 69 6e  66 6f 28 64 65 74 61 69  |+=.($.info(detai|
00001d70  6c 73 25 2c 32 29 29 2b  31 0d 09 ba 27 20 24 65  |ls%,2))+1...' $e|
00001d80  6e 64 74 65 78 74 25 3d  24 a4 69 6e 66 6f 28 64  |ndtext%=$.info(d|
00001d90  65 74 61 69 6c 73 25 2c  35 29 2b bd 28 31 30 29  |etails%,5)+.(10)|
00001da0  0d 09 c4 26 20 65 6e 64  74 65 78 74 25 2b 3d a9  |...& endtext%+=.|
00001db0  28 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |($.info(details%|
00001dc0  2c 35 29 29 2b 31 0d 09  ce 28 20 24 65 6e 64 74  |,5))+1...( $endt|
00001dd0  65 78 74 25 3d 24 a4 69  6e 66 6f 28 64 65 74 61  |ext%=$.info(deta|
00001de0  69 6c 73 25 2c 31 34 29  2b bd 28 31 30 29 0d 09  |ils%,14)+.(10)..|
00001df0  d8 26 65 6e 64 74 65 78  74 25 2b 3d a9 28 24 a4  |.&endtext%+=.($.|
00001e00  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 31 34  |info(details%,14|
00001e10  29 29 2b 31 0d 09 e2 25  24 65 6e 64 74 65 78 74  |))+1...%$endtext|
00001e20  25 3d 24 a4 69 6e 66 6f  28 64 65 74 61 69 6c 73  |%=$.info(details|
00001e30  25 2c 31 39 29 2b bd 31  30 0d 09 ec 27 20 65 6e  |%,19)+.10...' en|
00001e40  64 74 65 78 74 25 2b 3d  a9 28 24 a4 69 6e 66 6f  |dtext%+=.($.info|
00001e50  28 64 65 74 61 69 6c 73  25 2c 31 39 29 29 2b 31  |(details%,19))+1|
00001e60  0d 09 f6 27 20 24 65 6e  64 74 65 78 74 25 3d 24  |...' $endtext%=$|
00001e70  a4 69 6e 66 6f 28 64 65  74 61 69 6c 73 25 2c 36  |.info(details%,6|
00001e80  29 2b bd 28 31 30 29 0d  0a 00 26 20 65 6e 64 74  |)+.(10)...& endt|
00001e90  65 78 74 25 2b 3d a9 28  24 a4 69 6e 66 6f 28 64  |ext%+=.($.info(d|
00001ea0  65 74 61 69 6c 73 25 2c  36 29 29 2b 31 0d 0a 0a  |etails%,6))+1...|
00001eb0  28 20 24 65 6e 64 74 65  78 74 25 3d 24 a4 69 6e  |( $endtext%=$.in|
00001ec0  66 6f 28 64 65 74 61 69  6c 73 25 2c 31 37 29 2b  |fo(details%,17)+|
00001ed0  bd 28 31 30 29 0d 0a 14  26 65 6e 64 74 65 78 74  |.(10)...&endtext|
00001ee0  25 2b 3d a9 28 24 a4 69  6e 66 6f 28 64 65 74 61  |%+=.($.info(deta|
00001ef0  69 6c 73 25 2c 31 37 29  29 2b 31 0d 0a 1e 26 24  |ils%,17))+1...&$|
00001f00  65 6e 64 74 65 78 74 25  3d 24 a4 69 6e 66 6f 28  |endtext%=$.info(|
00001f10  64 65 74 61 69 6c 73 25  2c 37 29 2b bd 28 31 30  |details%,7)+.(10|
00001f20  29 0d 0a 28 25 65 6e 64  74 65 78 74 25 2b 3d a9  |)..(%endtext%+=.|
00001f30  28 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |($.info(details%|
00001f40  2c 37 29 29 2b 31 0d 0a  32 27 24 65 6e 64 74 65  |,7))+1..2'$endte|
00001f50  78 74 25 3d 24 a4 69 6e  66 6f 28 64 65 74 61 69  |xt%=$.info(detai|
00001f60  6c 73 25 2c 31 38 29 2b  bd 28 31 30 29 0d 0a 3c  |ls%,18)+.(10)..<|
00001f70  26 65 6e 64 74 65 78 74  25 2b 3d a9 28 24 a4 69  |&endtext%+=.($.i|
00001f80  6e 66 6f 28 64 65 74 61  69 6c 73 25 2c 31 38 29  |nfo(details%,18)|
00001f90  29 2b 31 0d 0a 46 27 24  65 6e 64 74 65 78 74 25  |)+1..F'$endtext%|
00001fa0  3d 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |=$.info(details%|
00001fb0  2c 31 30 29 2b bd 28 31  30 29 0d 0a 50 26 65 6e  |,10)+.(10)..P&en|
00001fc0  64 74 65 78 74 25 2b 3d  a9 28 24 a4 69 6e 66 6f  |dtext%+=.($.info|
00001fd0  28 64 65 74 61 69 6c 73  25 2c 31 30 29 29 2b 31  |(details%,10))+1|
00001fe0  0d 0a 5a 26 24 65 6e 64  74 65 78 74 25 3d 24 a4  |..Z&$endtext%=$.|
00001ff0  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 34 29  |info(details%,4)|
00002000  2b bd 28 31 30 29 0d 0a  64 25 65 6e 64 74 65 78  |+.(10)..d%endtex|
00002010  74 25 2b 3d a9 28 24 a4  69 6e 66 6f 28 64 65 74  |t%+=.($.info(det|
00002020  61 69 6c 73 25 2c 34 29  29 2b 31 0d 0a 6e 27 24  |ails%,4))+1..n'$|
00002030  65 6e 64 74 65 78 74 25  3d 24 a4 69 6e 66 6f 28  |endtext%=$.info(|
00002040  64 65 74 61 69 6c 73 25  2c 32 31 29 2b bd 28 31  |details%,21)+.(1|
00002050  30 29 0d 0a 78 26 65 6e  64 74 65 78 74 25 2b 3d  |0)..x&endtext%+=|
00002060  a9 28 24 a4 69 6e 66 6f  28 64 65 74 61 69 6c 73  |.($.info(details|
00002070  25 2c 32 31 29 29 2b 31  0d 0a 82 27 24 65 6e 64  |%,21))+1...'$end|
00002080  74 65 78 74 25 3d 24 a4  69 6e 66 6f 28 64 65 74  |text%=$.info(det|
00002090  61 69 6c 73 25 2c 31 35  29 2b bd 28 31 30 29 0d  |ails%,15)+.(10).|
000020a0  0a 8c 26 65 6e 64 74 65  78 74 25 2b 3d a9 28 24  |..&endtext%+=.($|
000020b0  a4 69 6e 66 6f 28 64 65  74 61 69 6c 73 25 2c 31  |.info(details%,1|
000020c0  35 29 29 2b 31 0d 0a 96  04 0d 0a a0 04 0d 0a aa  |5))+1...........|
000020d0  2b 20 c8 99 22 4f 53 5f  46 69 6c 65 22 2c 30 2c  |+ .."OS_File",0,|
000020e0  73 61 76 65 24 2c 30 2c  30 2c 74 65 78 74 25 2c  |save$,0,0,text%,|
000020f0  65 6e 64 74 65 78 74 25  0d 0a b4 20 20 ff 28 22  |endtext%...  .("|
00002100  53 65 74 74 79 70 65 20  22 2b 73 61 76 65 24 2b  |Settype "+save$+|
00002110  22 20 26 30 43 43 22 29  0d 0a b9 07 f7 20 85 0d  |" &0CC")..... ..|
00002120  0a c8 05 cd 0d 0a d2 19  e7 20 73 74 79 70 65 3d  |......... stype=|
00002130  31 20 8c 20 f2 6d 61 6b  65 66 69 6c 65 0d 0a d7  |1 . .makefile...|
00002140  1b f2 69 6e 66 6f 28 77  69 6e 73 61 76 65 25 2c  |..info(winsave%,|
00002150  36 2c 73 61 76 65 24 29  0d 0a dc 05 e1 0d 0a e6  |6,save$)........|
00002160  08 dd f2 69 6e 0d 0a f0  11 c8 8e 20 62 6c 6f 63  |...in...... bloc|
00002170  6b 21 31 36 20 ca 0d 0a  fa 1c c9 20 30 3a c8 99  |k!16 ...... 0:..|
00002180  22 57 69 6d 70 5f 43 6c  6f 73 65 44 6f 77 6e 22  |"Wimp_CloseDown"|
00002190  3a e0 0d 0b 04 08 c9 20  32 3a 0d 0b 0e 10 e7 20  |:...... 2:..... |
000021a0  64 72 69 76 65 25 3d 31  20 8c 0d 0b 18 1a f2 73  |drive%=1 ......s|
000021b0  61 76 65 28 a4 77 6f 6f  6c 28 62 6c 6f 63 6b 2b  |ave(.wool(block+|
000021c0  34 34 29 29 0d 0b 22 05  cd 0d 0b 2c 08 c9 20 33  |44)).."....,.. 3|
000021d0  3a 0d 0b 36 4e e7 20 62  6c 6f 63 6b 21 34 30 3c  |:..6N. block!40<|
000021e0  3e 26 30 43 43 20 8c 20  f2 6d 65 73 73 28 22 4f  |>&0CC . .mess("O|
000021f0  6e 6c 79 20 43 61 72 64  44 61 74 61 20 66 69 6c  |nly CardData fil|
00002200  65 73 20 63 61 6e 20 62  65 20 64 72 6f 70 70 65  |es can be droppe|
00002210  64 20 69 6e 74 6f 20 68  65 72 65 22 29 3a e1 0d  |d into here"):..|
00002220  0b 40 08 69 6e 3d b9 0d  0b 4a 19 6c 6f 61 64 24  |.@.in=...J.load$|
00002230  3d a4 77 6f 6f 6c 28 62  6c 6f 63 6b 2b 34 34 29  |=.wool(block+44)|
00002240  0d 0b 54 21 c8 99 22 4f  53 5f 46 69 6e 64 22 2c  |..T!.."OS_Find",|
00002250  31 39 32 2c 6c 6f 61 64  24 20 b8 20 66 69 6c 65  |192,load$ . file|
00002260  25 0d 0b 5e 09 74 24 3d  22 22 0d 0b 68 0e e3 20  |%..^.t$=""..h.. |
00002270  49 3d 30 20 b8 20 31 35  0d 0b 72 05 f5 0d 0b 7c  |I=0 . 15..r....||
00002280  1e c8 99 22 4f 53 5f 42  47 65 74 22 2c 2c 66 69  |..."OS_BGet",,fi|
00002290  6c 65 25 20 b8 20 62 79  74 65 25 0d 0b 86 16 e7  |le% . byte%.....|
000022a0  20 62 79 74 65 25 3d 32  35 34 20 e5 20 8d 64 42  | byte%=254 . .dB|
000022b0  4b 0d 0b 90 12 74 24 3d  74 24 2b bd 28 62 79 74  |K....t$=t$+.(byt|
000022c0  65 25 29 0d 0b 9a 19 fd  20 62 79 74 65 25 3d 31  |e%)..... byte%=1|
000022d0  33 20 84 20 62 79 74 65  25 3d 31 30 0d 0b a4 13  |3 . byte%=10....|
000022e0  74 24 3d c0 74 24 2c a9  28 74 24 29 2d 31 29 0d  |t$=.t$,.(t$)-1).|
000022f0  0b ae 5e e7 20 49 3d 30  20 80 20 74 24 3c 3e 22  |..^. I=0 . t$<>"|
00002300  43 61 72 64 20 44 61 74  61 20 46 69 6c 65 22 20  |Card Data File" |
00002310  8c 20 f2 6d 65 73 73 28  22 54 68 69 73 20 69 73  |. .mess("This is|
00002320  20 6e 6f 74 20 61 20 43  61 72 64 20 64 61 74 61  | not a Card data|
00002330  20 66 69 6c 65 22 29 3a  c8 99 22 4f 53 5f 46 69  | file"):.."OS_Fi|
00002340  6e 64 22 2c 30 2c 66 69  6c 65 25 3a e1 0d 0b b8  |nd",0,file%:....|
00002350  20 e7 20 49 3d 31 20 8c  20 f2 69 6e 66 6f 28 64  | . I=1 . .info(d|
00002360  65 74 61 69 6c 73 25 2c  33 2c 74 24 29 0d 0b c2  |etails%,3,t$)...|
00002370  20 e7 20 49 3d 32 20 8c  20 f2 69 6e 66 6f 28 64  | . I=2 . .info(d|
00002380  65 74 61 69 6c 73 25 2c  30 2c 74 24 29 0d 0b cc  |etails%,0,t$)...|
00002390  21 e7 20 49 3d 33 20 8c  20 f2 69 6e 66 6f 28 64  |!. I=3 . .info(d|
000023a0  65 74 61 69 6c 73 25 2c  31 33 2c 74 24 29 0d 0b  |etails%,13,t$)..|
000023b0  d6 20 e7 20 49 3d 34 20  8c 20 f2 69 6e 66 6f 28  |. . I=4 . .info(|
000023c0  64 65 74 61 69 6c 73 25  2c 32 2c 74 24 29 0d 0b  |details%,2,t$)..|
000023d0  e0 20 e7 20 49 3d 35 20  8c 20 f2 69 6e 66 6f 28  |. . I=5 . .info(|
000023e0  64 65 74 61 69 6c 73 25  2c 35 2c 74 24 29 0d 0b  |details%,5,t$)..|
000023f0  ea 21 e7 20 49 3d 36 20  8c 20 f2 69 6e 66 6f 28  |.!. I=6 . .info(|
00002400  64 65 74 61 69 6c 73 25  2c 31 34 2c 74 24 29 0d  |details%,14,t$).|
00002410  0b f4 21 e7 20 49 3d 37  20 8c 20 f2 69 6e 66 6f  |..!. I=7 . .info|
00002420  28 64 65 74 61 69 6c 73  25 2c 31 39 2c 74 24 29  |(details%,19,t$)|
00002430  0d 0b fe 20 e7 20 49 3d  38 20 8c 20 f2 69 6e 66  |... . I=8 . .inf|
00002440  6f 28 64 65 74 61 69 6c  73 25 2c 36 2c 74 24 29  |o(details%,6,t$)|
00002450  0d 0c 08 21 e7 20 49 3d  39 20 8c 20 f2 69 6e 66  |...!. I=9 . .inf|
00002460  6f 28 64 65 74 61 69 6c  73 25 2c 31 37 2c 74 24  |o(details%,17,t$|
00002470  29 0d 0c 12 21 e7 20 49  3d 31 30 20 8c 20 f2 69  |)...!. I=10 . .i|
00002480  6e 66 6f 28 64 65 74 61  69 6c 73 25 2c 37 2c 74  |nfo(details%,7,t|
00002490  24 29 0d 0c 1c 22 e7 20  49 3d 31 31 20 8c 20 f2  |$)...". I=11 . .|
000024a0  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 31 38  |info(details%,18|
000024b0  2c 74 24 29 0d 0c 26 22  e7 20 49 3d 31 32 20 8c  |,t$)..&". I=12 .|
000024c0  20 f2 69 6e 66 6f 28 64  65 74 61 69 6c 73 25 2c  | .info(details%,|
000024d0  31 30 2c 74 24 29 0d 0c  30 21 e7 20 49 3d 31 33  |10,t$)..0!. I=13|
000024e0  20 8c 20 f2 69 6e 66 6f  28 64 65 74 61 69 6c 73  | . .info(details|
000024f0  25 2c 34 2c 74 24 29 0d  0c 3a 22 e7 20 49 3d 31  |%,4,t$)..:". I=1|
00002500  34 20 8c 20 f2 69 6e 66  6f 28 64 65 74 61 69 6c  |4 . .info(detail|
00002510  73 25 2c 32 31 2c 74 24  29 0d 0c 44 22 e7 20 49  |s%,21,t$)..D". I|
00002520  3d 31 35 20 8c 20 f2 69  6e 66 6f 28 64 65 74 61  |=15 . .info(deta|
00002530  69 6c 73 25 2c 31 35 2c  74 24 29 0d 0c 4e 09 74  |ils%,15,t$)..N.t|
00002540  24 3d 22 22 0d 0c 58 05  ed 0d 0c 62 25 e7 20 62  |$=""..X....b%. b|
00002550  79 74 65 25 3d 32 35 34  20 c8 99 22 4f 53 5f 46  |yte%=254 .."OS_F|
00002560  69 6e 64 22 2c 30 2c 66  69 6c 65 25 3a e1 0d 0c  |ind",0,file%:...|
00002570  6c 17 c8 99 22 4f 53 5f  46 69 6e 64 22 2c 30 2c  |l..."OS_Find",0,|
00002580  66 69 6c 65 25 0d 0c 71  1a 24 a4 69 6e 66 6f 28  |file%..q.$.info(|
00002590  73 61 76 65 64 25 2c 36  29 3d 6c 6f 61 64 24 0d  |saved%,6)=load$.|
000025a0  0c 76 05 cd 0d 0c 80 05  cb 0d 0c 8a 05 e1 0d 0c  |.v..............|
000025b0  94 16 dd f2 6f 70 65 6e  77 69 6e 28 68 61 6e 64  |....openwin(hand|
000025c0  6c 65 25 29 0d 0c 9e 12  21 62 6c 6f 63 6b 3d 68  |le%)....!block=h|
000025d0  61 6e 64 6c 65 25 0d 0c  a8 21 c8 99 22 57 69 6d  |andle%...!.."Wim|
000025e0  70 5f 47 65 74 57 69 6e  64 6f 77 49 6e 66 6f 22  |p_GetWindowInfo"|
000025f0  2c 2c 62 6c 6f 63 6b 0d  0c b2 1e c8 99 22 57 69  |,,block......"Wi|
00002600  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00002610  62 6c 6f 63 6b 0d 0c bc  05 e1 0d 0c c6 13 dd f2  |block...........|
00002620  72 65 64 6f 28 68 61 6e  64 6c 65 25 29 0d 0c d0  |redo(handle%)...|
00002630  12 21 62 6c 6f 63 6b 3d  68 61 6e 64 6c 65 25 0d  |.!block=handle%.|
00002640  0c da 1f c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |....."Wimp_Close|
00002650  57 69 6e 64 6f 77 22 2c  2c 62 6c 6f 63 6b 0d 0c  |Window",,block..|
00002660  e4 15 f2 6f 70 65 6e 77  69 6e 28 68 61 6e 64 6c  |...openwin(handl|
00002670  65 25 29 0d 0c ee 05 e1  0d 0c f8 0d dd f2 66 6d  |e%)...........fm|
00002680  65 6e 75 63 72 0d 0d 02  0a 4e 55 4c 4c 3d 30 0d  |enucr....NULL=0.|
00002690  0d 0c 0e de 20 66 5f 70  25 20 39 30 30 0d 0d 16  |.... f_p% 900...|
000026a0  0e 21 66 5f 70 25 3d 4e  55 4c 4c 0d 0d 20 08 63  |.!f_p%=NULL.. .c|
000026b0  25 3d 30 0d 0d 2a 05 f5  0d 0d 34 29 20 c8 99 20  |%=0..*....4) .. |
000026c0  22 46 6f 6e 74 5f 4c 69  73 74 46 6f 6e 74 73 22  |"Font_ListFonts"|
000026d0  2c 2c 71 25 2c 63 25 2c  2d 31 20 b8 20 2c 2c 63  |,,q%,c%,-1 . ,,c|
000026e0  25 0d 0d 3e 22 20 e7 20  63 25 3c 3e 2d 31 20 8c  |%..>" . c%<>-1 .|
000026f0  20 f2 46 61 6d 69 6c 79  28 a4 49 6e 66 6f 28 71  | .Family(.Info(q|
00002700  25 29 29 0d 0d 48 0b fd  20 63 25 3d 2d 31 0d 0d  |%))..H.. c%=-1..|
00002710  52 04 0d 0d 5c 1b de 20  4d 5f 46 6f 6e 74 25 20  |R...\.. M_Font% |
00002720  32 38 2b 32 34 2a 6e 5f  66 6f 6e 74 25 0d 0d 66  |28+24*n_font%..f|
00002730  45 24 4d 5f 46 6f 6e 74  25 3d 22 46 6f 6e 74 73  |E$M_Font%="Fonts|
00002740  20 6c 69 73 74 22 3a 4d  5f 46 6f 6e 74 25 21 31  | list":M_Font%!1|
00002750  32 3d 26 30 32 30 37 3a  4d 5f 46 6f 6e 74 25 21  |2=&0207:M_Font%!|
00002760  32 30 3d 34 30 3a 4d 5f  46 6f 6e 74 25 21 32 34  |20=40:M_Font%!24|
00002770  3d 30 0d 0d 70 4a 4d 5f  46 6f 6e 74 25 21 32 38  |=0..pJM_Font%!28|
00002780  3d 31 3a 4d 5f 46 6f 6e  74 25 21 33 32 3d 2d 31  |=1:M_Font%!32=-1|
00002790  3a 4d 5f 46 6f 6e 74 25  21 33 36 3d 26 30 37 30  |:M_Font%!36=&070|
000027a0  30 30 30 32 31 3a 24 28  4d 5f 46 6f 6e 74 25 2b  |00021:$(M_Font%+|
000027b0  34 30 29 3d 22 53 79 73  74 65 6d 22 0d 0d 7a 04  |40)="System"..z.|
000027c0  0d 0d 84 27 77 69 64 74  68 25 3d 38 3a 70 25 3d  |...'width%=8:p%=|
000027d0  4d 5f 46 6f 6e 74 25 2b  32 38 3a 72 25 3d 66 5f  |M_Font%+28:r%=f_|
000027e0  70 25 3a 6e 25 3d 32 0d  0d 8e 12 c8 95 20 6e 25  |p%:n%=2...... n%|
000027f0  3c 3d 6e 5f 66 6f 6e 74  25 0d 0d 98 0b 20 70 25  |<=n_font%.... p%|
00002800  2b 3d 32 34 0d 0d a2 15  20 66 24 3d a4 49 6e 66  |+=24.... f$=.Inf|
00002810  6f 28 21 72 25 2b 31 32  29 0d 0d ac 20 20 77 69  |o(!r%+12)...  wi|
00002820  64 74 68 25 3d a4 4d 61  78 28 77 69 64 74 68 25  |dth%=.Max(width%|
00002830  2c a9 28 66 24 29 2b 31  29 0d 0d b6 19 20 21 70  |,.(f$)+1).... !p|
00002840  25 3d 30 3a 70 25 21 38  3d 26 30 37 30 30 30 31  |%=0:p%!8=&070001|
00002850  32 31 0d 0d c0 11 20 70  25 21 31 32 3d 21 72 25  |21.... p%!12=!r%|
00002860  2b 31 32 0d 0d ca 19 20  70 25 21 31 36 3d 2d 31  |+12.... p%!16=-1|
00002870  3a 70 25 21 32 30 3d a9  28 66 24 29 0d 0d d4 0d  |:p%!20=.(f$)....|
00002880  20 76 25 3d 21 72 25 2b  34 0d 0d de 2b 20 e7 20  | v%=!r%+4...+ . |
00002890  28 21 28 21 72 25 2b 38  29 20 3d 20 31 29 20 80  |(!(!r%+8) = 1) .|
000028a0  20 a4 49 6e 66 6f 28 21  76 25 2b 34 29 20 3d 20  | .Info(!v%+4) = |
000028b0  22 22 20 8c 0d 0d e8 0f  20 20 70 25 21 34 20 3d  |"" .....  p%!4 =|
000028c0  20 2d 31 0d 0d f2 06 20  cc 0d 0d fc 1b 20 20 de  | -1.... .....  .|
000028d0  20 70 25 21 34 20 32 38  2b 32 34 2a 21 28 21 72  | p%!4 28+24*!(!r|
000028e0  25 2b 38 29 0d 0e 06 0d  20 20 74 25 3d 70 25 21  |%+8)....  t%=p%!|
000028f0  34 0d 0e 10 29 20 20 24  74 25 3d 66 24 3a 74 25  |4...)  $t%=f$:t%|
00002900  21 31 32 3d 26 30 32 30  37 3a 74 25 21 32 30 3d  |!12=&0207:t%!20=|
00002910  34 30 3a 74 25 21 32 34  3d 30 0d 0e 1a 0d 20 20  |40:t%!24=0....  |
00002920  75 25 3d 74 25 2b 34 0d  0e 24 15 20 20 77 69 64  |u%=t%+4..$.  wid|
00002930  74 68 32 25 3d a9 28 66  24 29 2d 32 0d 0e 2e 17  |th2%=.(f$)-2....|
00002940  20 20 e3 20 73 25 3d 31  20 b8 20 21 28 21 72 25  |  . s%=1 . !(!r%|
00002950  2b 38 29 0d 0e 38 0d 20  20 20 75 25 2b 3d 32 34  |+8)..8.   u%+=24|
00002960  0d 0e 42 16 20 20 20 66  24 3d a4 49 6e 66 6f 28  |..B.   f$=.Info(|
00002970  21 76 25 2b 34 29 0d 0e  4c 24 20 20 20 77 69 64  |!v%+4)..L$   wid|
00002980  74 68 32 25 3d a4 4d 61  78 28 77 69 64 74 68 32  |th2%=.Max(width2|
00002990  25 2c a9 28 66 24 29 2b  31 29 0d 0e 56 23 20 20  |%,.(f$)+1)..V#  |
000029a0  20 21 75 25 3d 30 3a 75  25 21 34 3d 2d 31 3a 75  | !u%=0:u%!4=-1:u|
000029b0  25 21 38 3d 26 30 37 30  30 30 31 32 31 0d 0e 60  |%!8=&07000121..`|
000029c0  12 20 20 20 75 25 21 31  32 3d 21 76 25 2b 34 0d  |.   u%!12=!v%+4.|
000029d0  0e 6a 1b 20 20 20 75 25  21 31 36 3d 2d 31 3a 75  |.j.   u%!16=-1:u|
000029e0  25 21 32 30 3d a9 28 66  24 29 0d 0e 74 0d 20 20  |%!20=.(f$)..t.  |
000029f0  20 76 25 3d 21 76 25 0d  0e 7e 07 20 20 ed 0d 0e  | v%=!v%..~.  ...|
00002a00  88 25 20 20 21 75 25 3d  20 21 75 25 20 84 20 26  |.%  !u%= !u% . &|
00002a10  38 30 3a 74 25 21 31 36  3d 31 36 2a 77 69 64 74  |80:t%!16=16*widt|
00002a20  68 32 25 0d 0e 92 06 20  cd 0d 0e 9c 0b 20 72 25  |h2%.... ..... r%|
00002a30  3d 21 72 25 0d 0e a6 0a  20 6e 25 2b 3d 31 0d 0e  |=!r%.... n%+=1..|
00002a40  b0 05 ce 0d 0e ba 27 21  70 25 3d 20 21 70 25 20  |......'!p%= !p% |
00002a50  84 20 26 38 30 3a 4d 5f  46 6f 6e 74 25 21 31 36  |. &80:M_Font%!16|
00002a60  3d 31 36 2a 77 69 64 74  68 25 0d 0e c4 05 e1 0d  |=16*width%......|
00002a70  0e ce 14 dd 20 f2 46 61  6d 69 6c 79 28 66 6f 6e  |.... .Family(fon|
00002a80  74 24 29 0d 0e d8 22 ea  20 66 61 6d 69 6c 79 24  |t$)...". family$|
00002a90  2c 73 74 79 6c 65 24 2c  70 25 2c 66 6c 61 67 25  |,style$,p%,flag%|
00002aa0  2c 70 6f 73 25 0d 0e e2  04 0d 0e ec 14 70 6f 73  |,pos%........pos|
00002ab0  25 3d a7 66 6f 6e 74 24  2c 22 2e 22 29 0d 0e f6  |%=.font$,".")...|
00002ac0  1a 66 61 6d 69 6c 79 24  3d c0 66 6f 6e 74 24 2c  |.family$=.font$,|
00002ad0  70 6f 73 25 2d 31 29 0d  0f 00 10 e7 20 70 6f 73  |pos%-1)..... pos|
00002ae0  25 20 3d 20 30 20 8c 0d  0f 0a 0e 20 73 74 79 6c  |% = 0 ..... styl|
00002af0  65 24 3d 22 22 0d 0f 14  05 cc 0d 0f 1e 1a 20 73  |e$=""......... s|
00002b00  74 79 6c 65 24 3d c1 66  6f 6e 74 24 2c 70 6f 73  |tyle$=.font$,pos|
00002b10  25 2b 31 29 0d 0f 28 05  cd 0d 0f 32 13 70 25 3d  |%+1)..(....2.p%=|
00002b20  66 5f 70 25 3a 66 6c 61  67 25 3d a3 0d 0f 3c 1e  |f_p%:flag%=...<.|
00002b30  c8 95 20 28 21 70 25 20  3c 3e 20 4e 55 4c 4c 20  |.. (!p% <> NULL |
00002b40  80 20 66 6c 61 67 25 3d  a3 29 0d 0f 46 29 20 e7  |. flag%=.)..F) .|
00002b50  20 66 61 6d 69 6c 79 24  20 3d 20 a4 49 6e 66 6f  | family$ = .Info|
00002b60  28 21 70 25 2b 31 32 29  20 8c 20 66 6c 61 67 25  |(!p%+12) . flag%|
00002b70  3d 20 b9 0d 0f 50 0c 20  70 25 20 3d 21 70 25 0d  |= ...P. p% =!p%.|
00002b80  0f 5a 05 ce 0d 0f 64 0f  e7 20 66 6c 61 67 25 3d  |.Z....d.. flag%=|
00002b90  a3 20 8c 0d 0f 6e 19 20  de 20 70 25 21 30 20 a9  |. ...n. . p%!0 .|
00002ba0  28 66 61 6d 69 6c 79 24  29 2b 31 33 0d 0f 78 0b  |(family$)+13..x.|
00002bb0  20 70 25 3d 21 70 25 0d  0f 82 0d 20 21 70 25 3d  | p%=!p%.... !p%=|
00002bc0  4e 55 4c 4c 0d 0f 8c 0b  20 70 25 21 38 3d 31 0d  |NULL.... p%!8=1.|
00002bd0  0f 96 15 20 24 28 70 25  2b 31 32 29 3d 66 61 6d  |... $(p%+12)=fam|
00002be0  69 6c 79 24 0d 0f a0 17  20 de 20 70 25 21 34 20  |ily$.... . p%!4 |
00002bf0  a9 28 73 74 79 6c 65 24  29 2b 35 0d 0f aa 0c 20  |.(style$)+5.... |
00002c00  70 25 3d 70 25 21 34 0d  0f b4 0d 20 21 70 25 3d  |p%=p%!4.... !p%=|
00002c10  4e 55 4c 4c 0d 0f be 13  20 24 28 70 25 2b 34 29  |NULL.... $(p%+4)|
00002c20  3d 73 74 79 6c 65 24 0d  0f c8 0f 20 6e 5f 66 6f  |=style$.... n_fo|
00002c30  6e 74 25 2b 3d 31 0d 0f  d2 05 cc 0d 0f dc 10 20  |nt%+=1......... |
00002c40  70 25 21 38 3d 70 25 21  38 2b 31 0d 0f e6 0c 20  |p%!8=p%!8+1.... |
00002c50  70 25 3d 70 25 2b 34 0d  0f f0 15 20 c8 95 20 28  |p%=p%+4.... .. (|
00002c60  21 70 25 20 3c 3e 20 4e  55 4c 4c 29 0d 0f fa 0c  |!p% <> NULL)....|
00002c70  20 20 70 25 3d 21 70 25  0d 10 04 06 20 ce 0d 10  |  p%=!p%.... ...|
00002c80  0e 17 20 de 20 70 25 21  30 20 a9 28 73 74 79 6c  |.. . p%!0 .(styl|
00002c90  65 24 29 2b 35 0d 10 18  0b 20 70 25 3d 21 70 25  |e$)+5.... p%=!p%|
00002ca0  0d 10 22 0d 20 21 70 25  3d 4e 55 4c 4c 0d 10 2c  |..". !p%=NULL..,|
00002cb0  13 20 24 28 70 25 2b 34  29 3d 73 74 79 6c 65 24  |. $(p%+4)=style$|
00002cc0  0d 10 36 05 cd 0d 10 40  05 e1 0d 10 4a 10 dd a4  |..6....@....J...|
00002cd0  4d 61 78 28 61 25 2c 62  25 29 0d 10 54 04 0d 10  |Max(a%,b%)..T...|
00002ce0  5e 17 e7 20 61 25 3e 62  25 20 8c 20 3d 61 25 20  |^.. a%>b% . =a% |
00002cf0  8b 20 3d 62 25 0d 10 68  04 0d 10 72 0e dd a4 49  |. =b%..h...r...I|
00002d00  6e 66 6f 28 70 25 29 0d  10 7c 08 ea 20 61 24 0d  |nfo(p%)..|.. a$.|
00002d10  10 86 04 0d 10 90 09 61  24 3d 22 22 0d 10 9a 19  |.......a$=""....|
00002d20  c8 95 20 28 3f 70 25 3c  3e 30 20 80 20 3f 70 25  |.. (?p%<>0 . ?p%|
00002d30  3c 3e 31 33 29 0d 10 a4  0f 20 61 24 2b 3d bd 28  |<>13).... a$+=.(|
00002d40  3f 70 25 29 0d 10 ae 0a  20 70 25 2b 3d 31 0d 10  |?p%).... p%+=1..|
00002d50  b8 05 ce 0d 10 c2 07 3d  61 24 0d 10 cc 08 dd f2  |.......=a$......|
00002d60  75 70 0d 10 d6 10 e7 20  66 73 69 7a 65 3d 35 30  |up..... fsize=50|
00002d70  20 e1 0d 10 e0 0c 66 73  69 7a 65 2b 3d 31 0d 10  | .....fsize+=1..|
00002d80  ea 1a 24 a4 69 6e 66 6f  28 73 61 76 65 25 2c 35  |..$.info(save%,5|
00002d90  29 3d c3 66 73 69 7a 65  0d 10 f4 10 f2 72 65 64  |)=.fsize.....red|
00002da0  6f 28 73 61 76 65 25 29  0d 10 fe 05 e1 0d 11 08  |o(save%)........|
00002db0  0a dd f2 64 6f 77 6e 0d  11 12 0f e7 20 66 73 69  |...down..... fsi|
00002dc0  7a 65 3d 36 20 e1 0d 11  1c 0c 66 73 69 7a 65 2d  |ze=6 .....fsize-|
00002dd0  3d 31 0d 11 26 1a 24 a4  69 6e 66 6f 28 73 61 76  |=1..&.$.info(sav|
00002de0  65 25 2c 35 29 3d c3 66  73 69 7a 65 0d 11 30 10  |e%,5)=.fsize..0.|
00002df0  f2 72 65 64 6f 28 73 61  76 65 25 29 0d 11 3a 05  |.redo(save%)..:.|
00002e00  e1 0d 11 44 15 dd 20 f2  72 65 64 72 61 77 28 21  |...D.. .redraw(!|
00002e10  62 6c 6f 63 6b 29 0d 11  4e 0a ea 6d 6f 72 65 25  |block)..N..more%|
00002e20  0d 11 58 29 c8 99 20 22  57 69 6d 70 5f 52 65 64  |..X).. "Wimp_Red|
00002e30  72 61 77 57 69 6e 64 6f  77 22 2c 2c 62 6c 6f 63  |rawWindow",,bloc|
00002e40  6b 20 b8 20 6d 6f 72 65  25 0d 11 62 0c c8 95 20  |k . more%..b... |
00002e50  6d 6f 72 65 25 0d 11 6c  19 20 20 f2 61 70 70 6c  |more%..l.  .appl|
00002e60  69 63 61 74 69 6f 6e 5f  72 65 64 72 61 77 0d 11  |ication_redraw..|
00002e70  76 2b 20 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |v+  .. "Wimp_Get|
00002e80  52 65 63 74 61 6e 67 6c  65 22 2c 2c 62 6c 6f 63  |Rectangle",,bloc|
00002e90  6b 20 b8 20 6d 6f 72 65  25 0d 11 80 05 ce 0d 11  |k . more%.......|
00002ea0  8a 25 e7 20 63 6c 6f 73  65 3d 31 20 8c 20 f2 63  |.%. close=1 . .c|
00002eb0  6c 6f 73 65 28 63 61 72  64 25 29 3a 63 6c 6f 73  |lose(card%):clos|
00002ec0  65 3d 30 0d 11 8f 25 e7  20 6e 6f 6e 6f 3d 31 20  |e=0...%. nono=1 |
00002ed0  8c 20 f2 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |. .info(details%|
00002ee0  2c 6e 69 2c c3 6e 73 29  0d 11 94 05 e1 0d 11 9e  |,ni,.ns)........|
00002ef0  18 dd f2 61 70 70 6c 69  63 61 74 69 6f 6e 5f 72  |...application_r|
00002f00  65 64 72 61 77 0d 11 a8  1b 77 6f 72 6b 78 25 3d  |edraw....workx%=|
00002f10  62 6c 6f 63 6b 21 34 2d  62 6c 6f 63 6b 21 32 30  |block!4-block!20|
00002f20  0d 11 b2 1c 77 6f 72 6b  79 25 3d 62 6c 6f 63 6b  |....worky%=block|
00002f30  21 31 36 2d 62 6c 6f 63  6b 21 32 34 0d 11 bc 59  |!16-block!24...Y|
00002f40  6e 61 6d 65 24 3d 24 a4  69 6e 66 6f 28 64 65 74  |name$=$.info(det|
00002f50  61 69 6c 73 25 2c 30 29  3a 66 6f 6e 74 6e 61 6d  |ails%,0):fontnam|
00002f60  65 24 3d 24 a4 69 6e 66  6f 28 64 65 74 61 69 6c  |e$=$.info(detail|
00002f70  73 25 2c 33 29 3a 73 69  7a 65 6e 61 6d 65 3d bb  |s%,3):sizename=.|
00002f80  28 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |($.info(details%|
00002f90  2c 31 33 29 29 0d 11 c6  5c 65 78 74 72 61 24 3d  |,13))...\extra$=|
00002fa0  24 a4 69 6e 66 6f 28 64  65 74 61 69 6c 73 25 2c  |$.info(details%,|
00002fb0  35 29 3a 66 6f 6e 74 65  78 74 72 61 24 3d 24 a4  |5):fontextra$=$.|
00002fc0  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 32 29  |info(details%,2)|
00002fd0  3a 73 69 7a 65 65 78 74  72 61 3d bb 28 24 a4 69  |:sizeextra=.($.i|
00002fe0  6e 66 6f 28 64 65 74 61  69 6c 73 25 2c 31 34 29  |nfo(details%,14)|
00002ff0  29 0d 11 d0 57 61 64 31  24 3d 24 a4 69 6e 66 6f  |)...Wad1$=$.info|
00003000  28 64 65 74 61 69 6c 73  25 2c 36 29 3a 66 6f 6e  |(details%,6):fon|
00003010  74 61 64 31 24 3d 24 a4  69 6e 66 6f 28 64 65 74  |tad1$=$.info(det|
00003020  61 69 6c 73 25 2c 31 39  29 3a 73 69 7a 65 61 64  |ails%,19):sizead|
00003030  31 3d bb 28 24 a4 69 6e  66 6f 28 64 65 74 61 69  |1=.($.info(detai|
00003040  6c 73 25 2c 31 37 29 29  0d 11 da 1b 61 64 32 24  |ls%,17))....ad2$|
00003050  3d 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |=$.info(details%|
00003060  2c 37 29 0d 11 e4 1c 61  64 33 24 3d 24 a4 69 6e  |,7)....ad3$=$.in|
00003070  66 6f 28 64 65 74 61 69  6c 73 25 2c 31 38 29 0d  |fo(details%,18).|
00003080  11 ee 1c 61 64 34 24 3d  24 a4 69 6e 66 6f 28 64  |...ad4$=$.info(d|
00003090  65 74 61 69 6c 73 25 2c  31 30 29 0d 11 f8 57 74  |etails%,10)...Wt|
000030a0  65 6c 24 3d 24 a4 69 6e  66 6f 28 64 65 74 61 69  |el$=$.info(detai|
000030b0  6c 73 25 2c 32 31 29 3a  66 6f 6e 74 74 65 6c 24  |ls%,21):fonttel$|
000030c0  3d 24 a4 69 6e 66 6f 28  64 65 74 61 69 6c 73 25  |=$.info(details%|
000030d0  2c 34 29 3a 73 69 7a 65  74 65 6c 3d bb 28 24 a4  |,4):sizetel=.($.|
000030e0  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 31 35  |info(details%,15|
000030f0  29 29 0d 12 02 52 e7 20  73 69 7a 65 6e 61 6d 65  |))...R. sizename|
00003100  3d 30 20 8c 20 73 69 7a  65 6e 61 6d 65 3d 32 30  |=0 . sizename=20|
00003110  3a f2 6d 65 73 73 28 22  46 6f 6e 74 20 73 69 7a  |:.mess("Font siz|
00003120  65 73 20 63 61 6e 20 6e  6f 74 20 62 65 20 30 22  |es can not be 0"|
00003130  29 3a 6e 6f 6e 6f 3d 31  3a 6e 73 3d 32 30 3a 6e  |):nono=1:ns=20:n|
00003140  69 3d 31 33 0d 12 0c 54  e7 20 73 69 7a 65 65 78  |i=13...T. sizeex|
00003150  74 72 61 3d 30 20 8c 20  73 69 7a 65 65 78 74 72  |tra=0 . sizeextr|
00003160  61 3d 31 36 3a f2 6d 65  73 73 28 22 46 6f 6e 74  |a=16:.mess("Font|
00003170  20 73 69 7a 65 73 20 63  61 6e 20 6e 6f 74 20 62  | sizes can not b|
00003180  65 20 30 22 29 3a 6e 6f  6e 6f 3d 31 3a 6e 73 3d  |e 0"):nono=1:ns=|
00003190  31 36 3a 6e 69 3d 31 34  0d 12 16 50 e7 20 73 69  |16:ni=14...P. si|
000031a0  7a 65 61 64 31 3d 30 20  8c 20 73 69 7a 65 61 64  |zead1=0 . sizead|
000031b0  31 3d 31 34 3a f2 6d 65  73 73 28 22 46 6f 6e 74  |1=14:.mess("Font|
000031c0  20 73 69 7a 65 73 20 63  61 6e 20 6e 6f 74 20 62  | sizes can not b|
000031d0  65 20 30 22 29 3a 6e 6f  6e 6f 3d 31 3a 6e 73 3d  |e 0"):nono=1:ns=|
000031e0  31 34 3a 6e 69 3d 31 37  0d 12 20 50 e7 20 73 69  |14:ni=17.. P. si|
000031f0  7a 65 74 65 6c 3d 30 20  8c 20 73 69 7a 65 74 65  |zetel=0 . sizete|
00003200  6c 3d 31 36 3a f2 6d 65  73 73 28 22 46 6f 6e 74  |l=16:.mess("Font|
00003210  20 73 69 7a 65 73 20 63  61 6e 20 6e 6f 74 20 62  | sizes can not b|
00003220  65 20 30 22 29 3a 6e 6f  6e 6f 3d 31 3a 6e 73 3d  |e 0"):nono=1:ns=|
00003230  31 36 3a 6e 69 3d 31 35  0d 12 02 13 66 6f 6e 74  |16:ni=15....font|
00003240  24 3d 66 6f 6e 74 6e 61  6d 65 24 0d 12 0c 26 78  |$=fontname$...&x|
00003250  3d a4 77 69 64 74 68 28  6e 61 6d 65 24 2c 66 6f  |=.width(name$,fo|
00003260  6e 74 6e 61 6d 65 24 2c  73 69 7a 65 6e 61 6d 65  |ntname$,sizename|
00003270  29 0d 12 16 5d e7 20 78  3d 30 20 80 20 6e 61 6d  |)...]. x=0 . nam|
00003280  65 24 3c 3e 22 22 20 8c  20 f2 6d 65 73 73 28 22  |e$<>"" . .mess("|
00003290  54 68 65 20 6e 61 6d 65  20 74 65 78 74 20 69 73  |The name text is|
000032a0  20 74 6f 6f 20 6c 6f 6e  67 20 6f 72 20 74 68 65  | too long or the|
000032b0  20 66 6f 6e 74 20 69 73  20 74 6f 6f 20 6c 61 72  | font is too lar|
000032c0  67 65 22 29 3a 63 6c 6f  73 65 3d 31 3a e1 0d 12  |ge"):close=1:...|
000032d0  16 19 20 78 63 6f 3d 35  36 36 2d 78 3a 78 63 6f  |.. xco=566-x:xco|
000032e0  3d 78 63 6f 2f 32 3a 0d  12 20 38 20 c8 99 22 46  |=xco/2:.. 8 .."F|
000032f0  6f 6e 74 5f 50 61 69 6e  74 22 2c 2c 6e 61 6d 65  |ont_Paint",,name|
00003300  24 2c 25 31 30 30 31 30  2c 77 6f 72 6b 78 25 2b  |$,%10010,workx%+|
00003310  78 63 6f 2b 38 2c 77 6f  72 6b 79 25 2d 35 35 0d  |xco+8,worky%-55.|
00003320  12 2a 07 e6 20 37 0d 12  34 30 c8 93 20 c8 90 77  |.*.. 7..40.. ..w|
00003330  6f 72 6b 78 25 2b 78 63  6f 2b 35 2c 77 6f 72 6b  |orkx%+xco+5,work|
00003340  79 25 2d 36 32 2c 35 36  36 2d 78 63 6f 2d 78 63  |y%-62,566-xco-xc|
00003350  6f 2b 33 2c 2d 34 0d 12  3e 14 66 6f 6e 74 24 3d  |o+3,-4..>.font$=|
00003360  66 6f 6e 74 65 78 74 72  61 24 0d 12 48 29 78 3d  |fontextra$..H)x=|
00003370  a4 77 69 64 74 68 28 65  78 74 72 61 24 2c 66 6f  |.width(extra$,fo|
00003380  6e 74 65 78 74 72 61 24  2c 73 69 7a 65 65 78 74  |ntextra$,sizeext|
00003390  72 61 29 0d 12 52 5f e7  20 78 3d 30 20 80 20 65  |ra)..R_. x=0 . e|
000033a0  78 74 72 61 24 3c 3e 22  22 20 8c 20 f2 6d 65 73  |xtra$<>"" . .mes|
000033b0  73 28 22 54 68 65 20 74  72 61 64 65 20 74 65 78  |s("The trade tex|
000033c0  74 20 69 73 20 74 6f 6f  20 6c 6f 6e 67 20 6f 72  |t is too long or|
000033d0  20 74 68 65 20 66 6f 6e  74 20 69 73 20 74 6f 6f  | the font is too|
000033e0  20 6c 61 72 67 65 22 29  3a 63 6c 6f 73 65 3d 31  | large"):close=1|
000033f0  3a e1 0d 12 52 17 78 63  6f 3d 35 36 36 2d 78 3a  |:...R.xco=566-x:|
00003400  78 63 6f 3d 78 63 6f 2f  32 0d 12 5c 39 c8 99 22  |xco=xco/2..\9.."|
00003410  46 6f 6e 74 5f 50 61 69  6e 74 22 2c 2c 65 78 74  |Font_Paint",,ext|
00003420  72 61 24 2c 25 31 30 30  31 30 2c 77 6f 72 6b 78  |ra$,%10010,workx|
00003430  25 2b 78 63 6f 2b 38 2c  77 6f 72 6b 79 25 2d 31  |%+xco+8,worky%-1|
00003440  31 39 0d 12 66 12 66 6f  6e 74 24 3d 66 6f 6e 74  |19..f.font$=font|
00003450  61 64 31 24 0d 12 70 3d  c8 99 22 46 6f 6e 74 5f  |ad1$..p=.."Font_|
00003460  46 69 6e 64 46 6f 6e 74  22 2c 2c 66 6f 6e 74 61  |FindFont",,fonta|
00003470  64 31 24 2c 73 69 7a 65  61 64 31 2a 31 36 2c 73  |d1$,sizead1*16,s|
00003480  69 7a 65 61 64 31 2a 31  36 20 b8 20 66 6f 6e 74  |izead1*16 . font|
00003490  25 0d 12 7a 1a c8 99 22  46 6f 6e 74 5f 53 65 74  |%..z..."Font_Set|
000034a0  46 6f 6e 74 22 2c 66 6f  6e 74 25 0d 12 84 23 78  |Font",font%...#x|
000034b0  3d a4 77 69 64 74 68 28  61 64 31 24 2c 66 6f 6e  |=.width(ad1$,fon|
000034c0  74 61 64 31 24 2c 73 69  7a 65 61 64 31 29 0d 12  |tad1$,sizead1)..|
000034d0  8e 6b e7 20 61 64 31 24  3e 22 22 20 80 20 78 3d  |.k. ad1$>"" . x=|
000034e0  30 20 84 20 78 3e 35 33  30 20 20 8c 20 f2 6d 65  |0 . x>530  . .me|
000034f0  73 73 28 22 54 68 65 20  31 73 74 20 61 64 64 72  |ss("The 1st addr|
00003500  65 73 73 20 74 65 78 74  20 69 73 20 74 6f 6f 20  |ess text is too |
00003510  6c 6f 6e 67 20 6f 72 20  74 68 65 20 66 6f 6e 74  |long or the font|
00003520  20 69 73 20 74 6f 6f 20  6c 61 72 67 65 22 29 3a  | is too large"):|
00003530  63 6c 6f 73 65 3d 31 3a  e1 0d 12 84 34 c8 99 22  |close=1:....4.."|
00003540  46 6f 6e 74 5f 50 61 69  6e 74 22 2c 2c 61 64 31  |Font_Paint",,ad1|
00003550  24 2c 25 31 30 30 31 30  2c 77 6f 72 6b 78 25 2b  |$,%10010,workx%+|
00003560  33 38 2c 77 6f 72 6b 79  25 2d 31 38 35 0d 12 8e  |38,worky%-185...|
00003570  23 78 3d a4 77 69 64 74  68 28 61 64 32 24 2c 66  |#x=.width(ad2$,f|
00003580  6f 6e 74 61 64 31 24 2c  73 69 7a 65 61 64 31 29  |ontad1$,sizead1)|
00003590  0d 12 98 6a e7 20 61 64  32 24 3e 22 22 20 80 20  |...j. ad2$>"" . |
000035a0  78 3d 30 20 84 20 78 3e  35 36 30 20 8c 20 f2 6d  |x=0 . x>560 . .m|
000035b0  65 73 73 28 22 54 68 65  20 32 6e 64 20 61 64 64  |ess("The 2nd add|
000035c0  72 65 73 73 20 74 65 78  74 20 69 73 20 74 6f 6f  |ress text is too|
000035d0  20 6c 6f 6e 67 20 6f 72  20 74 68 65 20 66 6f 6e  | long or the fon|
000035e0  74 20 69 73 20 74 6f 6f  20 6c 61 72 67 65 22 29  |t is too large")|
000035f0  3a 63 6c 6f 73 65 3d 31  3a e1 0d 12 8e 34 c8 99  |:close=1:....4..|
00003600  22 46 6f 6e 74 5f 50 61  69 6e 74 22 2c 2c 61 64  |"Font_Paint",,ad|
00003610  32 24 2c 25 31 30 30 31  30 2c 77 6f 72 6b 78 25  |2$,%10010,workx%|
00003620  2b 33 38 2c 77 6f 72 6b  79 25 2d 32 32 33 0d 12  |+38,worky%-223..|
00003630  98 23 78 3d a4 77 69 64  74 68 28 61 64 33 24 2c  |.#x=.width(ad3$,|
00003640  66 6f 6e 74 61 64 31 24  2c 73 69 7a 65 61 64 31  |fontad1$,sizead1|
00003650  29 0d 12 a2 6a e7 20 61  64 33 24 3e 22 22 20 80  |)...j. ad3$>"" .|
00003660  20 78 3d 30 20 84 20 78  3e 35 36 30 20 8c 20 f2  | x=0 . x>560 . .|
00003670  6d 65 73 73 28 22 54 68  65 20 33 72 64 20 61 64  |mess("The 3rd ad|
00003680  64 72 65 73 73 20 74 65  78 74 20 69 73 20 74 6f  |dress text is to|
00003690  6f 20 6c 6f 6e 67 20 6f  72 20 74 68 65 20 66 6f  |o long or the fo|
000036a0  6e 74 20 69 73 20 74 6f  6f 20 6c 61 72 67 65 22  |nt is too large"|
000036b0  29 3a 63 6c 6f 73 65 3d  31 3a e1 0d 12 98 34 c8  |):close=1:....4.|
000036c0  99 22 46 6f 6e 74 5f 50  61 69 6e 74 22 2c 2c 61  |."Font_Paint",,a|
000036d0  64 33 24 2c 25 31 30 30  31 30 2c 77 6f 72 6b 78  |d3$,%10010,workx|
000036e0  25 2b 33 38 2c 77 6f 72  6b 79 25 2d 32 36 30 0d  |%+38,worky%-260.|
000036f0  12 a2 23 78 3d a4 77 69  64 74 68 28 61 64 34 24  |..#x=.width(ad4$|
00003700  2c 66 6f 6e 74 61 64 31  24 2c 73 69 7a 65 61 64  |,fontad1$,sizead|
00003710  31 29 0d 12 ac 6a e7 20  61 64 34 24 3e 22 22 20  |1)...j. ad4$>"" |
00003720  80 20 78 3d 30 20 84 20  78 3e 35 36 30 20 8c 20  |. x=0 . x>560 . |
00003730  f2 6d 65 73 73 28 22 54  68 65 20 34 74 68 20 61  |.mess("The 4th a|
00003740  64 64 72 65 73 73 20 74  65 78 74 20 69 73 20 74  |ddress text is t|
00003750  6f 6f 20 6c 6f 6e 67 20  6f 72 20 74 68 65 20 66  |oo long or the f|
00003760  6f 6e 74 20 69 73 20 74  6f 6f 20 6c 61 72 67 65  |ont is too large|
00003770  22 29 3a 63 6c 6f 73 65  3d 31 3a e1 0d 12 a2 34  |"):close=1:....4|
00003780  c8 99 22 46 6f 6e 74 5f  50 61 69 6e 74 22 2c 2c  |.."Font_Paint",,|
00003790  61 64 34 24 2c 25 31 30  30 31 30 2c 77 6f 72 6b  |ad4$,%10010,work|
000037a0  78 25 2b 33 38 2c 77 6f  72 6b 79 25 2d 32 39 38  |x%+38,worky%-298|
000037b0  0d 12 ac 12 66 6f 6e 74  24 3d 66 6f 6e 74 74 65  |....font$=fontte|
000037c0  6c 24 0d 12 b6 2d 78 3d  a4 77 69 64 74 68 28 22  |l$...-x=.width("|
000037d0  54 65 6c 20 3a 2d 20 22  2b 74 65 6c 24 2c 66 6f  |Tel :- "+tel$,fo|
000037e0  6e 74 74 65 6c 24 2c 73  69 7a 65 74 65 6c 29 0d  |nttel$,sizetel).|
000037f0  12 c0 61 e7 20 78 3d 30  20 80 20 74 65 6c 24 3c  |..a. x=0 . tel$<|
00003800  3e 22 22 20 8c 20 f2 6d  65 73 73 28 22 54 68 65  |>"" . .mess("The|
00003810  20 74 65 6c 65 70 68 6f  6e 65 20 74 65 78 74 20  | telephone text |
00003820  69 73 20 74 6f 6f 20 6c  6f 6e 67 20 6f 72 20 74  |is too long or t|
00003830  68 65 20 66 6f 6e 74 20  69 73 20 74 6f 6f 20 6c  |he font is too l|
00003840  61 72 67 65 22 29 3a 63  6c 6f 73 65 3d 31 3a e1  |arge"):close=1:.|
00003850  0d 12 c0 15 78 63 6f 3d  35 36 36 2d 78 3a 78 63  |....xco=566-x:xc|
00003860  6f 2d 3d 31 36 0d 12 ca  3f c8 99 22 46 6f 6e 74  |o-=16...?.."Font|
00003870  5f 50 61 69 6e 74 22 2c  2c 22 54 65 6c 20 3a 2d  |_Paint",,"Tel :-|
00003880  20 22 2b 74 65 6c 24 2c  25 31 30 30 31 30 2c 77  | "+tel$,%10010,w|
00003890  6f 72 6b 78 25 2b 78 63  6f 2c 77 6f 72 6b 79 25  |orkx%+xco,worky%|
000038a0  2d 33 34 31 0d 12 d4 05  e1 0d 12 de 1b dd a4 77  |-341...........w|
000038b0  69 64 74 68 28 74 65 78  74 24 2c 66 6f 6e 74 24  |idth(text$,font$|
000038c0  2c 78 73 29 0d 12 e8 31  c8 99 20 22 46 6f 6e 74  |,xs)...1.. "Font|
000038d0  5f 46 69 6e 64 46 6f 6e  74 22 2c 2c 66 6f 6e 74  |_FindFont",,font|
000038e0  24 2c 78 73 2a 31 36 2c  78 73 2a 31 36 20 b8 20  |$,xs*16,xs*16 . |
000038f0  66 6f 6e 74 25 0d 12 f2  1b c8 99 20 22 46 6f 6e  |font%...... "Fon|
00003900  74 5f 53 65 74 46 6f 6e  74 22 2c 66 6f 6e 74 25  |t_SetFont",font%|
00003910  0d 12 fc 44 c8 99 20 22  46 6f 6e 74 5f 53 74 72  |...D.. "Font_Str|
00003920  69 6e 67 57 69 64 74 68  22 2c 2c 74 65 78 74 24  |ingWidth",,text$|
00003930  2c 32 32 38 30 30 30 2c  32 32 38 30 30 30 2c 33  |,228000,228000,3|
00003940  31 2c a9 28 74 65 78 74  24 29 20 b8 20 2c 2c 78  |1,.(text$) . ,,x|
00003950  25 2c 79 25 0d 13 06 27  c8 99 20 22 46 6f 6e 74  |%,y%...'.. "Font|
00003960  5f 43 6f 6e 76 65 72 74  74 6f 4f 53 22 2c 2c 78  |_ConverttoOS",,x|
00003970  25 2c 79 25 20 b8 20 2c  78 2c 79 0d 13 10 06 3d  |%,y% . ,x,y....=|
00003980  78 0d 13 1a 0e dd f2 6d  61 6b 65 66 69 6c 65 0d  |x......makefile.|
00003990  13 1f 07 ea 20 85 0d 13  20 68 ee 20 85 20 ea 20  |.... ... h. . . |
000039a0  e7 20 9f 3d 37 31 36 32  32 3a f2 6d 65 73 73 28  |. .=71622:.mess(|
000039b0  22 44 69 73 63 20 46 75  6c 6c 22 29 3a d9 23 63  |"Disc Full"):.#c|
000039c0  25 3a ff 28 22 44 65 6c  65 74 65 20 22 2b 73 61  |%:.("Delete "+sa|
000039d0  76 65 24 29 3a f7 20 85  3a e1 3a 8b 20 f7 20 85  |ve$):. .:.:. . .|
000039e0  3a f2 65 72 72 6f 72 28  f6 24 2b 22 20 3a 20 61  |:.error(.$+" : a|
000039f0  74 20 6c 69 6e 65 20 22  2b c3 9e 29 3a e0 0d 13  |t line "+..):...|
00003a00  24 12 62 69 67 25 3d 26  37 46 46 46 46 46 46 46  |$.big%=&7FFFFFFF|
00003a10  0d 13 2e 12 45 46 3d 30  2e 35 35 32 32 35 36 39  |....EF=0.5522569|
00003a20  34 34 0d 13 38 0d 69 25  3d 30 3a 63 25 3d 30 0d  |44..8.i%=0:c%=0.|
00003a30  13 42 0e 69 6e 63 68 3d  26 42 34 30 30 0d 13 4c  |.B.inch=&B400..L|
00003a40  0d 70 6f 69 6e 74 3d 36  34 30 0d 13 56 0c 63 6d  |.point=640..V.cm|
00003a50  3d 31 38 31 34 30 0d 13  60 0c 62 6c 61 63 6b 25  |=18140..`.black%|
00003a60  3d 30 0d 13 6a 14 77 68  69 74 65 25 3d 26 46 46  |=0..j.white%=&FF|
00003a70  46 46 46 46 30 30 0d 13  74 0c 6e 6f 6e 65 25 3d  |FFFF00..t.none%=|
00003a80  2d 31 0d 13 7e 59 6e 61  6d 65 24 3d 24 a4 69 6e  |-1..~Yname$=$.in|
00003a90  66 6f 28 64 65 74 61 69  6c 73 25 2c 30 29 3a 66  |fo(details%,0):f|
00003aa0  6f 6e 74 6e 61 6d 65 24  3d 24 a4 69 6e 66 6f 28  |ontname$=$.info(|
00003ab0  64 65 74 61 69 6c 73 25  2c 33 29 3a 73 69 7a 65  |details%,3):size|
00003ac0  6e 61 6d 65 3d bb 28 24  a4 69 6e 66 6f 28 64 65  |name=.($.info(de|
00003ad0  74 61 69 6c 73 25 2c 31  33 29 29 0d 13 88 5c 65  |tails%,13))...\e|
00003ae0  78 74 72 61 24 3d 24 a4  69 6e 66 6f 28 64 65 74  |xtra$=$.info(det|
00003af0  61 69 6c 73 25 2c 35 29  3a 66 6f 6e 74 65 78 74  |ails%,5):fontext|
00003b00  72 61 24 3d 24 a4 69 6e  66 6f 28 64 65 74 61 69  |ra$=$.info(detai|
00003b10  6c 73 25 2c 32 29 3a 73  69 7a 65 65 78 74 72 61  |ls%,2):sizeextra|
00003b20  3d bb 28 24 a4 69 6e 66  6f 28 64 65 74 61 69 6c  |=.($.info(detail|
00003b30  73 25 2c 31 34 29 29 0d  13 92 57 61 64 31 24 3d  |s%,14))...Wad1$=|
00003b40  24 a4 69 6e 66 6f 28 64  65 74 61 69 6c 73 25 2c  |$.info(details%,|
00003b50  36 29 3a 66 6f 6e 74 61  64 31 24 3d 24 a4 69 6e  |6):fontad1$=$.in|
00003b60  66 6f 28 64 65 74 61 69  6c 73 25 2c 31 39 29 3a  |fo(details%,19):|
00003b70  73 69 7a 65 61 64 31 3d  bb 28 24 a4 69 6e 66 6f  |sizead1=.($.info|
00003b80  28 64 65 74 61 69 6c 73  25 2c 31 37 29 29 0d 13  |(details%,17))..|
00003b90  9c 1b 61 64 32 24 3d 24  a4 69 6e 66 6f 28 64 65  |..ad2$=$.info(de|
00003ba0  74 61 69 6c 73 25 2c 37  29 0d 13 a6 1c 61 64 33  |tails%,7)....ad3|
00003bb0  24 3d 24 a4 69 6e 66 6f  28 64 65 74 61 69 6c 73  |$=$.info(details|
00003bc0  25 2c 31 38 29 0d 13 b0  1c 61 64 34 24 3d 24 a4  |%,18)....ad4$=$.|
00003bd0  69 6e 66 6f 28 64 65 74  61 69 6c 73 25 2c 31 30  |info(details%,10|
00003be0  29 0d 13 ba 57 74 65 6c  24 3d 24 a4 69 6e 66 6f  |)...Wtel$=$.info|
00003bf0  28 64 65 74 61 69 6c 73  25 2c 32 31 29 3a 66 6f  |(details%,21):fo|
00003c00  6e 74 74 65 6c 24 3d 24  a4 69 6e 66 6f 28 64 65  |nttel$=$.info(de|
00003c10  74 61 69 6c 73 25 2c 34  29 3a 73 69 7a 65 74 65  |tails%,4):sizete|
00003c20  6c 3d bb 28 24 a4 69 6e  66 6f 28 64 65 74 61 69  |l=.($.info(detai|
00003c30  6c 73 25 2c 31 35 29 29  0d 13 c4 1a f2 64 72 61  |ls%,15)).....dra|
00003c40  77 66 69 6c 65 5f 73 74  61 72 74 28 73 61 76 65  |wfile_start(save|
00003c50  24 29 0d 13 ce 0c f2 70  75 74 77 28 30 29 0d 13  |$).....putw(0)..|
00003c60  d8 11 f2 68 65 61 64 5f  68 65 72 65 28 a3 29 0d  |...head_here(.).|
00003c70  13 e2 19 f2 70 75 74 73  28 bd 28 31 29 2b 66 6f  |....puts(.(1)+fo|
00003c80  6e 74 6e 61 6d 65 24 29  0d 13 ec 1a f2 70 75 74  |ntname$).....put|
00003c90  73 28 bd 28 32 29 2b 66  6f 6e 74 65 78 74 72 61  |s(.(2)+fontextra|
00003ca0  24 29 0d 13 f6 18 f2 70  75 74 73 28 bd 28 33 29  |$).....puts(.(3)|
00003cb0  2b 66 6f 6e 74 61 64 31  24 29 0d 14 00 18 f2 70  |+fontad1$).....p|
00003cc0  75 74 73 28 bd 28 34 29  2b 66 6f 6e 74 74 65 6c  |uts(.(4)+fonttel|
00003cd0  24 29 0d 14 0a 0a f2 61  6c 69 67 6e 0d 14 14 0d  |$).....align....|
00003ce0  f2 68 65 61 64 5f 6e 6f  77 0d 14 1e 10 f2 67 72  |.head_now.....gr|
00003cf0  6f 75 70 5f 73 74 61 72  74 0d 14 28 2e 78 63 6f  |oup_start..(.xco|
00003d00  3d 28 32 2f 35 29 2a a4  77 69 64 74 68 28 6e 61  |=(2/5)*.width(na|
00003d10  6d 65 24 2c 66 6f 6e 74  6e 61 6d 65 24 2c 73 69  |me$,fontname$,si|
00003d20  7a 65 6e 61 6d 65 29 0d  14 32 7a e7 20 78 2f 28  |zename)..2z. x/(|
00003d30  32 2f 35 29 3d 30 20 80  20 6e 61 6d 65 24 3c 3e  |2/5)=0 . name$<>|
00003d40  22 22 20 8c 20 f2 6d 65  73 73 28 22 54 68 65 20  |"" . .mess("The |
00003d50  6e 61 6d 65 20 74 65 78  74 20 69 73 20 74 6f 6f  |name text is too|
00003d60  20 6c 6f 6e 67 20 6f 72  20 74 68 65 20 66 6f 6e  | long or the fon|
00003d70  74 20 69 73 20 74 6f 6f  20 6c 61 72 67 65 22 29  |t is too large")|
00003d80  3a f2 64 72 61 77 66 69  6c 65 5f 65 6e 64 3a ff  |:.drawfile_end:.|
00003d90  22 44 65 6c 65 74 65 20  22 2b 73 61 76 65 24 3a  |"Delete "+save$:|
00003da0  e1 0d 14 32 0f 78 63 6f  3d 32 32 38 2d 78 63 6f  |...2.xco=228-xco|
00003db0  0d 14 3c 0d 78 63 6f 3d  78 63 6f 2f 32 0d 14 46  |..<.xco=xco/2..F|
00003dc0  0b 78 63 6f 2b 3d 35 30  0d 14 50 10 f2 67 72 6f  |.xco+=50..P..gro|
00003dd0  75 70 5f 73 74 61 72 74  0d 14 5a 40 f2 74 65 78  |up_start..Z@.tex|
00003de0  74 28 78 63 6f 2a 70 6f  69 6e 74 2c 37 38 30 2a  |t(xco*point,780*|
00003df0  70 6f 69 6e 74 2c 6e 61  6d 65 24 2c 73 69 7a 65  |point,name$,size|
00003e00  6e 61 6d 65 2a 26 32 38  30 2c 31 2c 30 2c 26 46  |name*&280,1,0,&F|
00003e10  46 46 46 46 46 30 30 29  0d 14 64 26 73 74 61 72  |FFFFF00)..d&star|
00003e20  74 3d 78 63 6f 2d 32 3a  66 69 6e 69 73 68 3d 78  |t=xco-2:finish=x|
00003e30  63 6f 2b 28 28 32 2f 35  29 2a 78 29 2b 32 0d 14  |co+((2/5)*x)+2..|
00003e40  6e 41 f2 70 61 74 68 5f  73 74 61 72 74 28 73 74  |nA.path_start(st|
00003e50  61 72 74 2a 70 6f 69 6e  74 2c 37 37 37 2a 70 6f  |art*point,777*po|
00003e60  69 6e 74 2c 32 2a 26 32  38 30 2c 26 30 30 30 30  |int,2*&280,&0000|
00003e70  30 30 30 30 2c 26 46 46  46 46 46 46 46 46 29 0d  |0000,&FFFFFFFF).|
00003e80  14 78 26 f2 70 61 74 68  5f 64 72 61 77 28 66 69  |.x&.path_draw(fi|
00003e90  6e 69 73 68 2a 70 6f 69  6e 74 2c 37 37 37 2a 70  |nish*point,777*p|
00003ea0  6f 69 6e 74 29 0d 14 82  0f f2 70 61 74 68 5f 63  |oint).....path_c|
00003eb0  6c 6f 73 65 0d 14 8c 0d  f2 70 61 74 68 5f 65 6e  |lose.....path_en|
00003ec0  64 0d 14 96 0e f2 67 72  6f 75 70 5f 65 6e 64 0d  |d.....group_end.|
00003ed0  14 a0 10 f2 67 72 6f 75  70 5f 73 74 61 72 74 0d  |....group_start.|
00003ee0  14 aa 23 78 3d a4 77 69  64 74 68 28 61 64 31 24  |..#x=.width(ad1$|
00003ef0  2c 66 6f 6e 74 61 64 31  24 2c 73 69 7a 65 61 64  |,fontad1$,sizead|
00003f00  31 29 0d 14 b4 81 e7 20  61 64 31 24 3e 22 22 20  |1)..... ad1$>"" |
00003f10  80 20 78 3d 30 20 84 20  78 3e 35 36 30 20 8c 20  |. x=0 . x>560 . |
00003f20  f2 6d 65 73 73 28 22 54  68 65 20 31 73 74 20 61  |.mess("The 1st a|
00003f30  64 64 72 65 73 73 20 74  65 78 74 20 69 73 20 74  |ddress text is t|
00003f40  6f 6f 20 6c 6f 6e 67 20  6f 72 20 74 68 65 20 66  |oo long or the f|
00003f50  6f 6e 74 20 69 73 20 74  6f 6f 20 6c 61 72 67 65  |ont is too large|
00003f60  22 29 3a f2 64 72 61 77  66 69 6c 65 5f 65 6e 64  |"):.drawfile_end|
00003f70  3a ff 22 44 65 6c 65 74  65 20 22 2b 73 61 76 65  |:."Delete "+save|
00003f80  24 3a e1 0d 14 aa 3d f2  74 65 78 74 28 37 30 2a  |$:....=.text(70*|
00003f90  70 6f 69 6e 74 2c 37 33  30 2a 70 6f 69 6e 74 2c  |point,730*point,|
00003fa0  61 64 31 24 2c 73 69 7a  65 61 64 31 2a 26 32 38  |ad1$,sizead1*&28|
00003fb0  30 2c 33 2c 30 2c 26 46  46 46 46 46 46 30 30 29  |0,3,0,&FFFFFF00)|
00003fc0  0d 14 b4 23 78 3d a4 77  69 64 74 68 28 61 64 32  |...#x=.width(ad2|
00003fd0  24 2c 66 6f 6e 74 61 64  31 24 2c 73 69 7a 65 61  |$,fontad1$,sizea|
00003fe0  64 31 29 0d 14 be 81 e7  20 61 64 32 24 3e 22 22  |d1)..... ad2$>""|
00003ff0  20 80 20 78 3d 30 20 84  20 78 3e 35 36 30 20 8c  | . x=0 . x>560 .|
00004000  20 f2 6d 65 73 73 28 22  54 68 65 20 32 6e 64 20  | .mess("The 2nd |
00004010  61 64 64 72 65 73 73 20  74 65 78 74 20 69 73 20  |address text is |
00004020  74 6f 6f 20 6c 6f 6e 67  20 6f 72 20 74 68 65 20  |too long or the |
00004030  66 6f 6e 74 20 69 73 20  74 6f 6f 20 6c 61 72 67  |font is too larg|
00004040  65 22 29 3a f2 64 72 61  77 66 69 6c 65 5f 65 6e  |e"):.drawfile_en|
00004050  64 3a ff 22 44 65 6c 65  74 65 20 22 2b 73 61 76  |d:."Delete "+sav|
00004060  65 24 3a e1 0d 14 b4 3d  f2 74 65 78 74 28 37 30  |e$:....=.text(70|
00004070  2a 70 6f 69 6e 74 2c 37  31 35 2a 70 6f 69 6e 74  |*point,715*point|
00004080  2c 61 64 32 24 2c 73 69  7a 65 61 64 31 2a 26 32  |,ad2$,sizead1*&2|
00004090  38 30 2c 33 2c 30 2c 26  46 46 46 46 46 46 30 30  |80,3,0,&FFFFFF00|
000040a0  29 0d 14 be 23 78 3d a4  77 69 64 74 68 28 61 64  |)...#x=.width(ad|
000040b0  33 24 2c 66 6f 6e 74 61  64 31 24 2c 73 69 7a 65  |3$,fontad1$,size|
000040c0  61 64 31 29 0d 14 c8 81  e7 20 61 64 33 24 3e 22  |ad1)..... ad3$>"|
000040d0  22 20 80 20 78 3d 30 20  84 20 78 3e 35 36 30 20  |" . x=0 . x>560 |
000040e0  8c 20 f2 6d 65 73 73 28  22 54 68 65 20 33 72 64  |. .mess("The 3rd|
000040f0  20 61 64 64 72 65 73 73  20 74 65 78 74 20 69 73  | address text is|
00004100  20 74 6f 6f 20 6c 6f 6e  67 20 6f 72 20 74 68 65  | too long or the|
00004110  20 66 6f 6e 74 20 69 73  20 74 6f 6f 20 6c 61 72  | font is too lar|
00004120  67 65 22 29 3a f2 64 72  61 77 66 69 6c 65 5f 65  |ge"):.drawfile_e|
00004130  6e 64 3a ff 22 44 65 6c  65 74 65 20 22 2b 73 61  |nd:."Delete "+sa|
00004140  76 65 24 3a e1 0d 14 be  3d f2 74 65 78 74 28 37  |ve$:....=.text(7|
00004150  30 2a 70 6f 69 6e 74 2c  37 30 30 2a 70 6f 69 6e  |0*point,700*poin|
00004160  74 2c 61 64 33 24 2c 73  69 7a 65 61 64 31 2a 26  |t,ad3$,sizead1*&|
00004170  32 38 30 2c 33 2c 30 2c  26 46 46 46 46 46 46 30  |280,3,0,&FFFFFF0|
00004180  30 29 0d 14 c8 23 78 3d  a4 77 69 64 74 68 28 61  |0)...#x=.width(a|
00004190  64 34 24 2c 66 6f 6e 74  61 64 31 24 2c 73 69 7a  |d4$,fontad1$,siz|
000041a0  65 61 64 31 29 0d 14 d2  81 e7 20 61 64 34 24 3e  |ead1)..... ad4$>|
000041b0  22 22 20 80 20 78 3d 30  20 84 20 78 3e 35 36 30  |"" . x=0 . x>560|
000041c0  20 8c 20 f2 6d 65 73 73  28 22 54 68 65 20 34 74  | . .mess("The 4t|
000041d0  68 20 61 64 64 72 65 73  73 20 74 65 78 74 20 69  |h address text i|
000041e0  73 20 74 6f 6f 20 6c 6f  6e 67 20 6f 72 20 74 68  |s too long or th|
000041f0  65 20 66 6f 6e 74 20 69  73 20 74 6f 6f 20 6c 61  |e font is too la|
00004200  72 67 65 22 29 3a f2 64  72 61 77 66 69 6c 65 5f  |rge"):.drawfile_|
00004210  65 6e 64 3a ff 22 44 65  6c 65 74 65 20 22 2b 73  |end:."Delete "+s|
00004220  61 76 65 24 3a e1 0d 14  c8 3d f2 74 65 78 74 28  |ave$:....=.text(|
00004230  37 30 2a 70 6f 69 6e 74  2c 36 38 35 2a 70 6f 69  |70*point,685*poi|
00004240  6e 74 2c 61 64 34 24 2c  73 69 7a 65 61 64 31 2a  |nt,ad4$,sizead1*|
00004250  26 32 38 30 2c 33 2c 30  2c 26 46 46 46 46 46 46  |&280,3,0,&FFFFFF|
00004260  30 30 29 0d 14 d2 0e f2  67 72 6f 75 70 5f 65 6e  |00).....group_en|
00004270  64 0d 14 dc 31 78 63 6f  3d 28 32 2f 35 29 2a a4  |d...1xco=(2/5)*.|
00004280  77 69 64 74 68 28 65 78  74 72 61 24 2c 66 6f 6e  |width(extra$,fon|
00004290  74 65 78 74 72 61 24 2c  73 69 7a 65 65 78 74 72  |textra$,sizeextr|
000042a0  61 29 0d 14 e6 7c e7 20  78 2f 28 32 2f 35 29 3d  |a)...|. x/(2/5)=|
000042b0  30 20 80 20 65 78 74 72  61 24 3c 3e 22 22 20 8c  |0 . extra$<>"" .|
000042c0  20 f2 6d 65 73 73 28 22  54 68 65 20 74 72 61 64  | .mess("The trad|
000042d0  65 20 74 65 78 74 20 69  73 20 74 6f 6f 20 6c 6f  |e text is too lo|
000042e0  6e 67 20 6f 72 20 74 68  65 20 66 6f 6e 74 20 69  |ng or the font i|
000042f0  73 20 74 6f 6f 20 6c 61  72 67 65 22 29 3a f2 64  |s too large"):.d|
00004300  72 61 77 66 69 6c 65 5f  65 6e 64 3a ff 22 44 65  |rawfile_end:."De|
00004310  6c 65 74 65 20 22 2b 73  61 76 65 24 3a e1 0d 14  |lete "+save$:...|
00004320  e6 21 78 63 6f 3d 32 32  38 2d 78 63 6f 3a 78 63  |.!xco=228-xco:xc|
00004330  6f 3d 78 63 6f 2f 32 3a  78 63 6f 2b 3d 35 30 0d  |o=xco/2:xco+=50.|
00004340  14 f0 42 f2 74 65 78 74  28 78 63 6f 2a 70 6f 69  |..B.text(xco*poi|
00004350  6e 74 2c 37 35 35 2a 70  6f 69 6e 74 2c 65 78 74  |nt,755*point,ext|
00004360  72 61 24 2c 73 69 7a 65  65 78 74 72 61 2a 26 32  |ra$,sizeextra*&2|
00004370  38 30 2c 32 2c 30 2c 26  46 46 46 46 46 46 30 30  |80,2,0,&FFFFFF00|
00004380  29 0d 14 fa 35 78 63 6f  3d 28 32 2f 35 29 2a a4  |)...5xco=(2/5)*.|
00004390  77 69 64 74 68 28 22 54  65 6c 20 3a 2d 20 22 2b  |width("Tel :- "+|
000043a0  74 65 6c 24 2c 66 6f 6e  74 74 65 6c 24 2c 73 69  |tel$,fonttel$,si|
000043b0  7a 65 74 65 6c 29 0d 15  04 7e e7 20 78 2f 28 32  |zetel)...~. x/(2|
000043c0  2f 35 29 3d 30 20 80 20  74 65 6c 24 3c 3e 22 22  |/5)=0 . tel$<>""|
000043d0  20 8c 20 f2 6d 65 73 73  28 22 54 68 65 20 74 65  | . .mess("The te|
000043e0  6c 65 70 68 6f 6e 65 20  74 65 78 74 20 69 73 20  |lephone text is |
000043f0  74 6f 6f 20 6c 6f 6e 67  20 6f 72 20 74 68 65 20  |too long or the |
00004400  66 6f 6e 74 20 69 73 20  74 6f 6f 20 6c 61 72 67  |font is too larg|
00004410  65 22 29 3a f2 64 72 61  77 66 69 6c 65 5f 65 6e  |e"):.drawfile_en|
00004420  64 3a ff 22 44 65 6c 65  74 65 20 22 2b 73 61 76  |d:."Delete "+sav|
00004430  65 24 3a e1 0d 15 04 0f  78 63 6f 3d 32 36 38 2d  |e$:.....xco=268-|
00004440  78 63 6f 0d 15 0e 48 f2  74 65 78 74 28 78 63 6f  |xco...H.text(xco|
00004450  2a 70 6f 69 6e 74 2c 36  36 35 2a 70 6f 69 6e 74  |*point,665*point|
00004460  2c 22 54 65 6c 20 3a 2d  20 22 2b 74 65 6c 24 2c  |,"Tel :- "+tel$,|
00004470  73 69 7a 65 74 65 6c 2a  26 32 38 30 2c 34 2c 30  |sizetel*&280,4,0|
00004480  2c 26 46 46 46 46 46 46  30 30 29 0d 15 18 39 f2  |,&FFFFFF00)...9.|
00004490  70 61 74 68 5f 73 74 61  72 74 28 35 30 2a 70 6f  |path_start(50*po|
000044a0  69 6e 74 2c 36 35 30 2a  70 6f 69 6e 74 2c 30 2c  |int,650*point,0,|
000044b0  26 30 30 30 30 30 30 30  30 2c 26 46 46 46 46 46  |&00000000,&FFFFF|
000044c0  46 46 46 29 0d 15 22 22  f2 70 61 74 68 5f 64 72  |FFF).."".path_dr|
000044d0  61 77 28 35 30 2a 70 6f  69 6e 74 2c 38 30 30 2a  |aw(50*point,800*|
000044e0  70 6f 69 6e 74 29 0d 15  2c 23 f2 70 61 74 68 5f  |point)..,#.path_|
000044f0  64 72 61 77 28 32 37 38  2a 70 6f 69 6e 74 2c 38  |draw(278*point,8|
00004500  30 30 2a 70 6f 69 6e 74  29 0d 15 36 23 f2 70 61  |00*point)..6#.pa|
00004510  74 68 5f 64 72 61 77 28  32 37 38 2a 70 6f 69 6e  |th_draw(278*poin|
00004520  74 2c 36 35 30 2a 70 6f  69 6e 74 29 0d 15 40 22  |t,650*point)..@"|
00004530  f2 70 61 74 68 5f 64 72  61 77 28 35 30 2a 70 6f  |.path_draw(50*po|
00004540  69 6e 74 2c 36 35 30 2a  70 6f 69 6e 74 29 0d 15  |int,650*point)..|
00004550  4a 0f f2 70 61 74 68 5f  63 6c 6f 73 65 0d 15 54  |J..path_close..T|
00004560  0d f2 70 61 74 68 5f 65  6e 64 0d 15 5e 0e f2 67  |..path_end..^..g|
00004570  72 6f 75 70 5f 65 6e 64  0d 15 68 11 f2 64 72 61  |roup_end..h..dra|
00004580  77 66 69 6c 65 5f 65 6e  64 0d 15 6d 07 f7 20 85  |wfile_end..m.. .|
00004590  0d 15 72 05 e1 0d 15 7c  19 dd 20 f2 64 72 61 77  |..r....|.. .draw|
000045a0  66 69 6c 65 5f 73 74 61  72 74 28 44 24 29 0d 15  |file_start(D$)..|
000045b0  86 0c 63 25 3d ae 28 44  24 29 0d 15 90 2c e7 20  |..c%=.(D$)...,. |
000045c0  63 25 3d 30 20 8c 20 85  20 31 32 33 34 2c 22 43  |c%=0 . . 1234,"C|
000045d0  61 6e 27 74 20 6f 70 65  6e 20 6f 75 74 70 75 74  |an't open output|
000045e0  20 66 69 6c 65 22 0d 15  9a 10 64 72 61 77 66 69  | file"....drawfi|
000045f0  6c 65 24 3d 44 24 0d 15  a4 28 f2 70 75 74 77 28  |le$=D$...(.putw(|
00004600  26 37 37 36 31 37 32 34  34 29 3a f2 70 75 74 77  |&77617244):.putw|
00004610  28 32 30 31 29 3a f2 70  75 74 77 28 30 29 0d 15  |(201):.putw(0)..|
00004620  ae 14 f2 70 75 74 73 31  32 28 22 21 43 61 72 64  |...puts12("!Card|
00004630  22 29 0d 15 b8 0b 6c 65  76 25 3d 2d 31 0d 15 c2  |")....lev%=-1...|
00004640  11 f2 68 65 61 64 5f 68  65 72 65 28 b9 29 0d 15  |..head_here(.)..|
00004650  cc 05 e1 0d 15 d6 0f dd  20 f2 70 75 74 77 28 41  |........ .putw(A|
00004660  25 29 0d 15 e0 11 d5 23  63 25 2c 41 25 20 80 20  |%).....#c%,A% . |
00004670  26 46 46 0d 15 ea 17 d5  23 63 25 2c 28 41 25 3e  |&FF.....#c%,(A%>|
00004680  3e 3e 38 29 20 80 20 26  46 46 0d 15 f4 18 d5 23  |>>8) . &FF.....#|
00004690  63 25 2c 28 41 25 3e 3e  3e 31 36 29 20 80 20 26  |c%,(A%>>>16) . &|
000046a0  46 46 0d 15 fe 18 d5 23  63 25 2c 28 41 25 3e 3e  |FF.....#c%,(A%>>|
000046b0  3e 32 34 29 20 80 20 26  46 46 0d 16 08 05 e1 0d  |>24) . &FF......|
000046c0  16 12 11 dd 20 f2 70 75  74 73 31 32 28 41 24 29  |.... .puts12(A$)|
000046d0  0d 16 1c 08 ea 20 41 25  0d 16 26 12 41 24 3d 41  |..... A%..&.A$=A|
000046e0  24 2b c4 31 32 2c 22 20  22 29 0d 16 30 23 e3 20  |$+.12," ")..0#. |
000046f0  41 25 3d 31 20 b8 20 31  32 3a d5 23 63 25 2c 97  |A%=1 . 12:.#c%,.|
00004700  28 c1 41 24 2c 41 25 2c  31 29 29 3a ed 0d 16 3a  |(.A$,A%,1)):...:|
00004710  05 e1 0d 16 44 05 3a 0d  16 4e 0f dd 20 f2 70 75  |....D.:..N.. .pu|
00004720  74 73 28 41 24 29 0d 16  58 08 ea 20 41 25 0d 16  |ts(A$)..X.. A%..|
00004730  62 26 e3 20 41 25 3d 31  20 b8 20 a9 28 41 24 29  |b&. A%=1 . .(A$)|
00004740  3a d5 23 63 25 2c 97 28  c1 41 24 2c 41 25 2c 31  |:.#c%,.(.A$,A%,1|
00004750  29 29 3a ed 0d 16 6c 0a  d5 23 63 25 2c 30 0d 16  |)):...l..#c%,0..|
00004760  76 05 e1 0d 16 80 05 3a  0d 16 8a 16 dd 20 f2 68  |v......:..... .h|
00004770  65 61 64 5f 68 65 72 65  28 62 6f 78 25 29 0d 16  |ead_here(box%)..|
00004780  94 56 e7 20 6c 65 76 25  3d 6d 61 78 6c 65 76 25  |.V. lev%=maxlev%|
00004790  20 8c 20 85 20 31 32 33  34 2c 22 54 6f 6f 20 6d  | . . 1234,"Too m|
000047a0  61 6e 79 20 6e 65 73 74  65 64 20 67 72 6f 75 70  |any nested group|
000047b0  73 2e 20 20 45 64 69 74  20 70 72 6f 67 72 61 6d  |s.  Edit program|
000047c0  20 74 6f 20 69 6e 63 72  65 61 73 65 20 6c 69 6d  | to increase lim|
000047d0  69 74 2e 22 0d 16 9e 0b  6c 65 76 25 2b 3d 31 0d  |it."....lev%+=1.|
000047e0  16 a8 13 62 6f 78 25 28  6c 65 76 25 29 3d 62 6f  |...box%(lev%)=bo|
000047f0  78 25 0d 16 b2 15 73 74  61 72 74 25 28 6c 65 76  |x%....start%(lev|
00004800  25 29 3d 8f 23 63 25 0d  16 bc 17 e7 20 6c 65 76  |%)=.#c%..... lev|
00004810  25 3e 30 20 8c 20 f2 70  75 74 77 28 30 29 0d 16  |%>0 . .putw(0)..|
00004820  c6 0c e7 20 62 6f 78 25  20 8c 0d 16 d0 16 20 f2  |... box% ..... .|
00004830  70 75 74 77 28 30 29 3a  f2 70 75 74 77 28 30 29  |putw(0):.putw(0)|
00004840  0d 16 da 16 20 f2 70 75  74 77 28 30 29 3a f2 70  |.... .putw(0):.p|
00004850  75 74 77 28 30 29 0d 16  e4 05 cd 0d 16 ee 1f 6c  |utw(0).........l|
00004860  25 28 6c 65 76 25 29 3d  62 69 67 25 3a 62 25 28  |%(lev%)=big%:b%(|
00004870  6c 65 76 25 29 3d 62 69  67 25 0d 16 f8 21 72 25  |lev%)=big%...!r%|
00004880  28 6c 65 76 25 29 3d 2d  62 69 67 25 3a 74 25 28  |(lev%)=-big%:t%(|
00004890  6c 65 76 25 29 3d 2d 62  69 67 25 0d 17 02 05 e1  |lev%)=-big%.....|
000048a0  0d 17 0c 05 3a 0d 17 16  0f dd 20 f2 68 65 61 64  |....:..... .head|
000048b0  5f 6e 6f 77 0d 17 20 0a  ea 20 65 6e 64 25 0d 17  |_now.. .. end%..|
000048c0  2a 4a e7 20 6c 65 76 25  3c 30 20 8c 20 f1 22 57  |*J. lev%<0 . ."W|
000048d0  61 72 6e 69 6e 67 3a 20  61 74 74 65 6d 70 74 20  |arning: attempt |
000048e0  74 6f 20 65 6e 64 20 6d  6f 72 65 20 6f 62 6a 65  |to end more obje|
000048f0  63 74 73 20 74 68 61 6e  20 77 65 72 65 20 73 74  |cts than were st|
00004900  61 72 74 65 64 22 3a e1  0d 17 34 0d 65 6e 64 25  |arted":...4.end%|
00004910  3d 8f 23 63 25 0d 17 3e  15 cf 23 63 25 3d 73 74  |=.#c%..>..#c%=st|
00004920  61 72 74 25 28 6c 65 76  25 29 0d 17 48 29 e7 20  |art%(lev%)..H). |
00004930  6c 65 76 25 3e 30 20 8c  20 f2 70 75 74 77 28 65  |lev%>0 . .putw(e|
00004940  6e 64 25 2d 73 74 61 72  74 25 28 6c 65 76 25 29  |nd%-start%(lev%)|
00004950  2b 34 29 0d 17 52 12 e7  20 62 6f 78 25 28 6c 65  |+4)..R.. box%(le|
00004960  76 25 29 20 8c 0d 17 5c  24 20 f2 70 75 74 77 28  |v%) ...\$ .putw(|
00004970  6c 25 28 6c 65 76 25 29  29 3a f2 70 75 74 77 28  |l%(lev%)):.putw(|
00004980  62 25 28 6c 65 76 25 29  29 0d 17 66 28 20 f2 70  |b%(lev%))..f( .p|
00004990  75 74 77 28 72 25 28 6c  65 76 25 29 2b 31 29 3a  |utw(r%(lev%)+1):|
000049a0  f2 70 75 74 77 28 74 25  28 6c 65 76 25 29 2b 31  |.putw(t%(lev%)+1|
000049b0  29 0d 17 70 05 cd 0d 17  7a 0e e7 20 6c 65 76 25  |)..p....z.. lev%|
000049c0  3e 30 20 8c 0d 17 84 0c  20 6c 65 76 25 2d 3d 31  |>0 ..... lev%-=1|
000049d0  0d 17 8e 30 20 e7 20 6c  25 28 6c 65 76 25 2b 31  |...0 . l%(lev%+1|
000049e0  29 3c 6c 25 28 6c 65 76  25 29 20 8c 20 6c 25 28  |)<l%(lev%) . l%(|
000049f0  6c 65 76 25 29 3d 6c 25  28 6c 65 76 25 2b 31 29  |lev%)=l%(lev%+1)|
00004a00  0d 17 98 30 20 e7 20 62  25 28 6c 65 76 25 2b 31  |...0 . b%(lev%+1|
00004a10  29 3c 62 25 28 6c 65 76  25 29 20 8c 20 62 25 28  |)<b%(lev%) . b%(|
00004a20  6c 65 76 25 29 3d 62 25  28 6c 65 76 25 2b 31 29  |lev%)=b%(lev%+1)|
00004a30  0d 17 a2 30 20 e7 20 72  25 28 6c 65 76 25 2b 31  |...0 . r%(lev%+1|
00004a40  29 3e 72 25 28 6c 65 76  25 29 20 8c 20 72 25 28  |)>r%(lev%) . r%(|
00004a50  6c 65 76 25 29 3d 72 25  28 6c 65 76 25 2b 31 29  |lev%)=r%(lev%+1)|
00004a60  0d 17 ac 30 20 e7 20 74  25 28 6c 65 76 25 2b 31  |...0 . t%(lev%+1|
00004a70  29 3e 74 25 28 6c 65 76  25 29 20 8c 20 74 25 28  |)>t%(lev%) . t%(|
00004a80  6c 65 76 25 29 3d 74 25  28 6c 65 76 25 2b 31 29  |lev%)=t%(lev%+1)|
00004a90  0d 17 b6 05 cd 0d 17 c0  0d cf 23 63 25 3d 65 6e  |..........#c%=en|
00004aa0  64 25 0d 17 ca 05 e1 0d  17 d4 0c dd 20 f2 61 6c  |d%.......... .al|
00004ab0  69 67 6e 0d 17 de 18 c8  95 20 8f 23 63 25 20 80  |ign...... .#c% .|
00004ac0  20 33 3a d5 23 63 25 2c  30 3a ce 0d 17 e8 05 e1  | 3:.#c%,0:......|
00004ad0  0d 17 f2 12 dd 20 f2 67  72 6f 75 70 5f 73 74 61  |..... .group_sta|
00004ae0  72 74 0d 17 fc 2d f4 20  67 72 6f 75 70 73 20 63  |rt...-. groups c|
00004af0  61 6e 6e 6f 74 20 62 65  20 6e 65 73 74 65 64 20  |annot be nested |
00004b00  69 6e 20 74 68 69 73 20  76 65 72 73 69 6f 6e 0d  |in this version.|
00004b10  18 06 0c f2 70 75 74 77  28 36 29 0d 18 10 11 f2  |....putw(6).....|
00004b20  68 65 61 64 5f 68 65 72  65 28 b9 29 0d 18 1a 14  |head_here(.)....|
00004b30  f2 70 75 74 73 31 32 28  22 67 72 6f 75 70 22 29  |.puts12("group")|
00004b40  0d 18 24 05 e1 0d 18 2e  05 3a 0d 18 38 10 dd 20  |..$......:..8.. |
00004b50  f2 67 72 6f 75 70 5f 65  6e 64 0d 18 42 0d f2 68  |.group_end..B..h|
00004b60  65 61 64 5f 6e 6f 77 0d  18 4c 05 e1 0d 18 56 30  |ead_now..L....V0|
00004b70  dd 20 f2 74 65 78 74 28  78 25 2c 79 25 2c 74 65  |. .text(x%,y%,te|
00004b80  78 74 24 2c 78 73 69 7a  65 25 2c 66 6f 6e 74 25  |xt$,xsize%,font%|
00004b90  2c 63 6f 6c 25 2c 62 63  6f 6c 25 29 0d 18 60 0c  |,col%,bcol%)..`.|
00004ba0  f2 70 75 74 77 28 31 29  0d 18 6a 11 f2 68 65 61  |.putw(1)..j..hea|
00004bb0  64 5f 68 65 72 65 28 a3  29 0d 18 74 1b f2 70 75  |d_here(.)..t..pu|
00004bc0  74 78 79 28 78 25 2c 79  25 2d 79 73 69 7a 65 25  |txy(x%,y%-ysize%|
00004bd0  2a 2e 35 29 0d 18 7e 28  f2 70 75 74 78 79 28 78  |*.5)..~(.putxy(x|
00004be0  25 2b a9 28 74 65 78 74  24 29 2a 78 73 69 7a 65  |%+.(text$)*xsize|
00004bf0  25 2c 79 25 2b 78 73 69  7a 65 25 29 0d 18 88 0f  |%,y%+xsize%)....|
00004c00  f2 70 75 74 77 28 63 6f  6c 25 29 0d 18 92 10 f2  |.putw(col%).....|
00004c10  70 75 74 77 28 62 63 6f  6c 25 29 0d 18 9c 10 f2  |putw(bcol%).....|
00004c20  70 75 74 77 28 66 6f 6e  74 25 29 0d 18 a6 1f f2  |putw(font%).....|
00004c30  70 75 74 77 28 78 73 69  7a 65 25 29 3a f2 70 75  |putw(xsize%):.pu|
00004c40  74 77 28 78 73 69 7a 65  25 29 0d 18 b0 11 f2 70  |tw(xsize%).....p|
00004c50  75 74 78 79 28 78 25 2c  79 25 29 0d 18 ba 17 f2  |utxy(x%,y%).....|
00004c60  70 75 74 73 28 74 65 78  74 24 29 3a f2 61 6c 69  |puts(text$):.ali|
00004c70  67 6e 0d 18 c4 0d f2 68  65 61 64 5f 6e 6f 77 0d  |gn.....head_now.|
00004c80  18 ce 05 e1 0d 18 d8 13  dd 20 f2 70 75 74 78 79  |......... .putxy|
00004c90  28 78 25 2c 79 25 29 0d  18 e2 17 f2 70 75 74 77  |(x%,y%).....putw|
00004ca0  28 78 25 29 3a f2 70 75  74 77 28 79 25 29 0d 18  |(x%):.putw(y%)..|
00004cb0  ec 1f e7 20 78 25 3c 6c  25 28 6c 65 76 25 29 20  |... x%<l%(lev%) |
00004cc0  8c 20 6c 25 28 6c 65 76  25 29 3d 78 25 0d 18 f6  |. l%(lev%)=x%...|
00004cd0  1f e7 20 79 25 3c 62 25  28 6c 65 76 25 29 20 8c  |.. y%<b%(lev%) .|
00004ce0  20 62 25 28 6c 65 76 25  29 3d 79 25 0d 19 00 1f  | b%(lev%)=y%....|
00004cf0  e7 20 78 25 3e 72 25 28  6c 65 76 25 29 20 8c 20  |. x%>r%(lev%) . |
00004d00  72 25 28 6c 65 76 25 29  3d 78 25 0d 19 0a 1f e7  |r%(lev%)=x%.....|
00004d10  20 79 25 3e 74 25 28 6c  65 76 25 29 20 8c 20 74  | y%>t%(lev%) . t|
00004d20  25 28 6c 65 76 25 29 3d  79 25 0d 19 14 05 e1 0d  |%(lev%)=y%......|
00004d30  19 1e 2b dd 20 f2 70 61  74 68 5f 73 74 61 72 74  |..+. .path_start|
00004d40  28 78 25 2c 79 25 2c 77  69 64 74 68 25 2c 6c 63  |(x%,y%,width%,lc|
00004d50  6f 6c 25 2c 66 63 6f 6c  25 29 0d 19 28 0c f2 70  |ol%,fcol%)..(..p|
00004d60  75 74 77 28 32 29 0d 19  32 11 f2 68 65 61 64 5f  |utw(2)..2..head_|
00004d70  68 65 72 65 28 b9 29 0d  19 3c 17 f2 70 75 74 77  |here(.)..<..putw|
00004d80  28 66 63 6f 6c 25 29 3a  f4 20 66 69 6c 6c 0d 19  |(fcol%):. fill..|
00004d90  46 19 f2 70 75 74 77 28  6c 63 6f 6c 25 29 3a f4  |F..putw(lcol%):.|
00004da0  20 63 6f 6c 6f 75 72 0d  19 50 19 f2 70 75 74 77  | colour..P..putw|
00004db0  28 77 69 64 74 68 25 29  3a f4 20 77 69 64 74 68  |(width%):. width|
00004dc0  0d 19 5a 19 f2 70 75 74  77 28 30 29 3a f4 20 70  |..Z..putw(0):. p|
00004dd0  61 74 68 20 73 74 79 6c  65 0d 19 64 15 f2 70 61  |ath style..d..pa|
00004de0  74 68 5f 6d 6f 76 65 28  78 25 2c 79 25 29 0d 19  |th_move(x%,y%)..|
00004df0  6e 05 e1 0d 19 78 05 3a  0d 19 82 17 dd 20 f2 70  |n....x.:..... .p|
00004e00  61 74 68 5f 6d 6f 76 65  28 78 25 2c 79 25 29 0d  |ath_move(x%,y%).|
00004e10  19 8c 0c f2 70 75 74 77  28 32 29 0d 19 96 11 f2  |....putw(2).....|
00004e20  70 75 74 78 79 28 78 25  2c 79 25 29 0d 19 a0 05  |putxy(x%,y%)....|
00004e30  e1 0d 19 aa 05 3a 0d 19  b4 17 dd 20 f2 70 61 74  |.....:..... .pat|
00004e40  68 5f 64 72 61 77 28 78  25 2c 79 25 29 0d 19 be  |h_draw(x%,y%)...|
00004e50  0c f2 70 75 74 77 28 38  29 0d 19 c8 11 f2 70 75  |..putw(8).....pu|
00004e60  74 78 79 28 78 25 2c 79  25 29 0d 19 d2 05 e1 0d  |txy(x%,y%)......|
00004e70  19 dc 11 dd 20 f2 70 61  74 68 5f 63 6c 6f 73 65  |.... .path_close|
00004e80  0d 19 e6 0c f2 70 75 74  77 28 35 29 0d 19 f0 05  |.....putw(5)....|
00004e90  e1 0d 19 fa 05 3a 0d 1a  04 0f dd 20 f2 70 61 74  |.....:..... .pat|
00004ea0  68 5f 65 6e 64 0d 1a 0e  0c f2 70 75 74 77 28 30  |h_end.....putw(0|
00004eb0  29 0d 1a 18 0d f2 68 65  61 64 5f 6e 6f 77 0d 1a  |).....head_now..|
00004ec0  22 05 e1 0d 1a 2c 13 dd  20 f2 64 72 61 77 66 69  |"....,.. .drawfi|
00004ed0  6c 65 5f 65 6e 64 0d 1a  36 24 f4 20 64 72 61 77  |le_end..6$. draw|
00004ee0  20 75 6e 66 69 6e 69 73  68 65 64 20 49 46 20 6c  | unfinished IF l|
00004ef0  65 76 25 3e 30 20 54 48  45 4e 0d 1a 40 0d f2 68  |ev%>0 THEN..@..h|
00004f00  65 61 64 5f 6e 6f 77 0d  1a 4a 0d d9 23 63 25 3a  |ead_now..J..#c%:|
00004f10  63 25 3d 30 0d 1a 54 22  ff 28 22 53 65 74 54 79  |c%=0..T".("SetTy|
00004f20  70 65 20 22 2b 64 72 61  77 66 69 6c 65 24 2b 22  |pe "+drawfile$+"|
00004f30  20 41 46 46 22 29 0d 1a  5e 05 e1 0d 1a 68 13 dd  | AFF")..^....h..|
00004f40  f2 63 6c 6f 73 65 28 21  62 6c 6f 63 6b 29 0d 1a  |.close(!block)..|
00004f50  72 1f c8 99 22 57 69 6d  70 5f 43 6c 6f 73 65 57  |r..."Wimp_CloseW|
00004f60  69 6e 64 6f 77 22 2c 2c  62 6c 6f 63 6b 0d 1a 7c  |indow",,block..||
00004f70  05 e1 0d ff                                       |....|
00004f74