Home » Archimedes archive » Acorn User » AU 1994-10.adf » !StarInfo_StarInfo » Wareham/!BarCode/Draw

Wareham/!BarCode/Draw

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

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

Tape/disk: Home » Archimedes archive » Acorn User » AU 1994-10.adf » !StarInfo_StarInfo
Filename: Wareham/!BarCode/Draw
Read OK:
File size: 1CAF bytes
Load address: 0000
Exec address: 0000
File contents
   10SYS "Hourglass_On"
   20ON ERROR SYS "Hourglass_Smash":REPORT:PRINT " : ";ERL:END
   30DIM Menus$(10,10)
   40DIM MenItems(10)
   50file%=OPENIN("<BarCode$Dir>.SpName")
   60save$=""
   70REPEAT
   80TEMP=BGET#file%
   90save$+=CHR$(TEMP)
  100UNTIL EOF#file%
  110CLOSE#file%
  120RESTORE
  130PROCinit
  140PROCdrawfile_start(save$)
  150PROCfonttable
  160ANumber$="012345678900"
  170Ln=12
  180Fmt=0
  190AandB=0
  200DIM Se$(10)
  210FOR X=0 TO 9
  220READ Se$(X)
  230NEXT
  240DIM Numbers$(10,3)
  250FOR X=0 TO 9
  260FOR Y=1 TO 3
  270READ Numbers$(X,Y)
  280NEXT
  290NEXT
  300Sopt=0
  310PROCload
  320SYS "Hourglass_Smash"
  330drawfile$=save$
  340PROCgroup_start
  350CASE Fmt OF
  360WHEN 0:F$="EAN"
  370WHEN 1:F$="ITF"
  380ENDCASE
  390PROCtext(2*inch,10.5*inch,"Article Number : "+ANumber$,24*point,24*point,2,black%,white%)
  400PROCtext(2.25*inch,10*inch,"Style  : "+Se$(AandB)+" CCCCCC",24*point,24*point,2,black%,white%)
  410PROCtext(3.2*inch,9.5*inch,"Format : "+F$,24*point,24*point,2,black%,white%)
  420PROCtext(2.2*inch,1*inch,"� Copyright R.J.Wareham",24*point,24*point,2,black%,white%)
  430PROCdraw_barcode
  440PROCgroup_end:PROCdrawfile_end
  450OSCLI("CLOSE")
  460END
  470:
  480DEF PROCload
  490file%=OPENIN("<BarCode$Dir>.Sopts")
  500Sopt=BGET#file%
  510CLOSE#file%
  520ANumber$=""
  530file%=OPENIN("<BarCode$Dir>.Temp")
  540FOR Scn=1 TO 12
  550TEMP=BGET#file%
  560ANumber$+=CHR$(TEMP)
  570NEXT
  580DUMMY=BGET#file%
  590AandB=BGET#file%
  600Fmt=BGET#file%
  610CLOSE #file%
  620ENDPROC
  630:
  640DEF PROCinit
  650maxlev%=200
  660DIM start%(maxlev%),box%(maxlev%)
  670DIM l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%)
  680DIM buf% 256
  690big%=&7FFFFFFF
  700EF=0.552256944
  710i%=0:c%=0
  720inch=&B400
  730point=640
  740cm=18140
  750black%=0
  760white%=&FFFFFF00
  770none%=-1
  780ENDPROC
  790:
  800REM error trap
  810ON ERROR OFF
  820REPORT
  830IF ERR=1234 THEN PRINT ELSE PRINT;" at line ";ERL
  840IF c%<>0 THEN CLOSE#c%
  850IF i%<>0 THEN CLOSE#i%
  860ON
  870END
  880:
  890DEF PROCdrawfile_start(D$)
  900c%=OPENOUT(D$)
  910IF c%=0 THEN ERROR 1234,"Can't open output file"
  920drawfile$=D$
  930PROCputw(&77617244):PROCputw(201):PROCputw(0)
  940PROCputs12("MakeDraw")
  950lev%=-1
  960PROChead_here(TRUE)
  970ENDPROC
  980:
  990DEF PROCdrawfile_end
 1000IF lev%>0 THEN PRINT"Warning: Draw file closed with object(s) unfinished     "
 1010PROChead_now
 1020CLOSE#c%:c%=0
 1030REM OSCLI("SetType "+drawfile$+" AFF")
 1040ENDPROC
 1050:
 1060DEF PROCpath_start(x%,y%,width%,lcol%,fcol%)
 1070PROCputw(2)
 1080PROChead_here(TRUE)
 1090PROCputw(fcol%):REM fill
 1100PROCputw(lcol%):REM colour
 1110PROCputw(width%):REM width
 1120PROCputw(0):REM path style
 1130PROCpath_move(x%,y%)
 1140ENDPROC
 1150:
 1160DEF PROCrectangle(x%,y%,xl%,yl%,lcol%,fcol%)
 1170PROCpath_start(x%,(y%-yl%)/2,xl%,lcol%,fcol%)
 1180PROCpath_move(x%,y%)
 1190PROCpath_draw(x%+xl%,y%)
 1200PROCpath_draw(x%+xl%,y%+yl%)
 1210PROCpath_draw(x%,y%+yl%)
 1220REM PROCpath_draw(x%,y%)
 1230PROCpath_close
 1240PROCpath_end
 1250ENDPROC
 1260:
 1270DEF PROCpath_move(x%,y%)
 1280PROCputw(2)
 1290PROCputxy(x%,y%)
 1300ENDPROC
 1310:
 1320DEF PROCpath_draw(x%,y%)
 1330PROCputw(8)
 1340PROCputxy(x%,y%)
 1350ENDPROC
 1360:
 1370DEF PROCpath_bezier(xc1%,yc1%,xc2%,yc2%,x%,y%)
 1380PROCputw(6)
 1390PROCputxy(xc1%,yc1%)
 1400PROCputxy(xc2%,yc2%)
 1410PROCputxy(x%,y%)
 1420ENDPROC
 1430:
 1440DEF PROCpath_close
 1450PROCputw(5)
 1460ENDPROC
 1470:
 1480DEF PROCpath_end
 1490PROCputw(0)
 1500PROChead_now
 1510ENDPROC
 1520:
 1530DEF PROCellipse(x%,y%,w%,h%,width%,lcol%,fcol%)
 1540PROCpath_start(x%,y%-h%,width%,lcol%,fcol%)
 1550PROCpath_bezier(x%+w%*EF,y%-h%,x%+w%,y%-h%*EF,x%+w%,y%)
 1560PROCpath_bezier(x%+w%,y%+h%*EF,x%+w%*EF,y%+h%,x%,y%+h%)
 1570PROCpath_bezier(x%-w%*EF,y%+h%,x%-w%,y%+h%*EF,x%-w%,y%)
 1580PROCpath_bezier(x%-w%,y%-h%*EF,x%-w%*EF,y%-h%,x%,y%-h%)
 1590PROCpath_close
 1600PROCpath_end
 1610ENDPROC
 1620:
 1630DEF PROCgroup_start
 1640REM groups cannot be nested in this version
 1650PROCputw(6)
 1660PROChead_here(TRUE)
 1670PROCputs12("group")
 1680ENDPROC
 1690:
 1700DEF PROCgroup_end
 1710PROChead_now
 1720ENDPROC
 1730:
 1740DEF PROCfonttable
 1750LOCAL font%,font$
 1760RESTORE 1640
 1770READ font%,font$
 1780IF font$="END" THEN ENDPROC
 1790PROCputw(0)
 1800PROChead_here(FALSE)
 1810REPEAT
 1820 PROCputs(CHR$(font%)+font$)
 1830 READ font%,font$
 1840UNTIL font$="END"
 1850PROCalign
 1860PROChead_now
 1870ENDPROC
 1880:
 1890REM font table data
 1900DATA 1,"System.Fixed"
 1910DATA 2,"Trinity.Bold"
 1920DATA 0,"END"
 1930:
 1940DEF PROCsprite(x%,y%,w%,h%,F$,S$)
 1950IF LEN(S$)>12 THEN PRINT"Bad sprite name ";S$:ENDPROC
 1960LOCAL i%,N%,len%
 1970i%=OPENIN(F$)
 1980IF i%=0 THEN PRINT"Sprite file ";F$;" not found":ENDPROC
 1990$buf%=S$+STRING$(12,CHR$0)
 2000FOR N%=0 TO 11
 2010 IF buf%?N%>64 AND buf%?N%<91 THEN buf%?N%+=32
 2020NEXT
 2030N%=FNword:IF N%=0 THEN PRINT"No sprites in file ";F$:ENDPROC
 2040PTR#i%=FNword-4
 2050REPEAT
 2060 len%=FNword
 2070 IF FNword=!buf% AND FNword=buf%!4 AND FNword=buf%!8 THEN N%=-1 ELSE N%-     =1
 2080 IF N%>0 THEN PTR#i%=PTR#i%+len%-16
 2090UNTIL N%<1
 2100IF N%=0 THEN PRINT"Sprite ";S$;" not found":ENDPROC
 2110PROCputw(5)
 2120PROChead_here(FALSE)
 2130PROCputxy(x%,y%)
 2140PROCputxy(x%+w%+1,y%+h%+1)
 2150PROCputw(len%)
 2160PROCputw(!buf%):PROCputw(buf%!4):PROCputw(buf%!8)
 2170FOR N%=17 TO len%:BPUT#c%,BGET#i%:NEXT
 2180CLOSE#i%:i%=0
 2190PROCalign
 2200PROChead_now
 2210ENDPROC
 2220:
 2230DEF PROCtext(x%,y%,text$,xsize%,ysize%,font%,col%,bcol%)
 2240PROCputw(1)
 2250PROChead_here(FALSE)
 2260PROCputxy(x%,y%-ysize%*.5)
 2270PROCputxy(x%+LEN(text$)*xsize%,y%+ysize%)
 2280PROCputw(col%)
 2290PROCputw(bcol%)
 2300PROCputw(font%)
 2310PROCputw(xsize%):PROCputw(ysize%)
 2320PROCputxy(x%,y%)
 2330PROCputs(text$):PROCalign
 2340PROChead_now
 2350ENDPROC
 2360:
 2370DEF FNcol(R%,G%,B%)
 2380=(R%<<8)+(G%<<16)+(B%<<24)
 2390:
 2400DEF PROCputw(A%)
 2410BPUT#c%,A% AND &FF
 2420BPUT#c%,(A%>>>8) AND &FF
 2430BPUT#c%,(A%>>>16) AND &FF
 2440BPUT#c%,(A%>>>24) AND &FF
 2450ENDPROC
 2460:
 2470DEF PROCputs12(A$)
 2480LOCAL A%
 2490A$=A$+STRING$(12," ")
 2500FOR A%=1 TO 12:BPUT#c%,ASC(MID$(A$,A%,1)):NEXT
 2510ENDPROC
 2520:
 2530DEF PROCputs(A$)
 2540LOCAL A%
 2550FOR A%=1 TO LEN(A$):BPUT#c%,ASC(MID$(A$,A%,1)):NEXT
 2560BPUT#c%,0
 2570ENDPROC
 2580:
 2590DEF PROChead_here(box%)
 2600IF lev%=maxlev% THEN ERROR 1234,"Too many nested groups.  Edit program t     o increase limit."
 2610lev%+=1
 2620box%(lev%)=box%
 2630start%(lev%)=PTR#c%
 2640IF lev%>0 THEN PROCputw(0)
 2650IF box% THEN
 2660 PROCputw(0):PROCputw(0)
 2670 PROCputw(0):PROCputw(0)
 2680ENDIF
 2690l%(lev%)=big%:b%(lev%)=big%
 2700r%(lev%)=-big%:t%(lev%)=-big%
 2710ENDPROC
 2720:
 2730DEF PROChead_now
 2740LOCAL end%
 2750IF lev%<0 THEN PRINT"Warning: attempt to end more objects than were star     ted":ENDPROC
 2760end%=PTR#c%
 2770PTR#c%=start%(lev%)
 2780IF lev%>0 THEN PROCputw(end%-start%(lev%)+4)
 2790IF box%(lev%) THEN
 2800 PROCputw(l%(lev%)):PROCputw(b%(lev%))
 2810 PROCputw(r%(lev%)+1):PROCputw(t%(lev%)+1)
 2820ENDIF
 2830IF lev%>0 THEN
 2840 lev%-=1
 2850 IF l%(lev%+1)<l%(lev%) THEN l%(lev%)=l%(lev%+1)
 2860 IF b%(lev%+1)<b%(lev%) THEN b%(lev%)=b%(lev%+1)
 2870 IF r%(lev%+1)>r%(lev%) THEN r%(lev%)=r%(lev%+1)
 2880 IF t%(lev%+1)>t%(lev%) THEN t%(lev%)=t%(lev%+1)
 2890ENDIF
 2900PTR#c%=end%
 2910ENDPROC
 2920:
 2930DEF PROCputxy(x%,y%)
 2940PROCputw(x%):PROCputw(y%)
 2950IF x%<l%(lev%) THEN l%(lev%)=x%
 2960IF y%<b%(lev%) THEN b%(lev%)=y%
 2970IF x%>r%(lev%) THEN r%(lev%)=x%
 2980IF y%>t%(lev%) THEN t%(lev%)=y%
 2990ENDPROC
 3000:
 3010DEF PROCalign
 3020WHILE PTR#c% AND 3:BPUT#c%,0:ENDWHILE
 3030ENDPROC
 3040:
 3050DEF FNword
 3060=BGET#i% OR (&100*BGET#i%) OR (&10000*BGET#i%) OR ((BGET#i%)<<24)
 3070:
 3080DEF PROCdraw_barcode
 3090LOCAL X,BCode$,Y,Z,Add,F$
 3100BCode$="DLD"
 3110FOR X=1 TO Ln/2
 3120Add=VAL(MID$(ANumber$,X,1))
 3130CASE MID$(Se$(AandB),X,1) OF
 3140WHEN "A":BCode$+=Numbers$(Add,1)
 3150WHEN "B":BCode$+=Numbers$(Add,2)
 3160ENDCASE
 3170NEXT
 3180BCode$+="LDLDL"
 3190FOR X=Ln/2+1 TO Ln
 3200Add=VAL(MID$(ANumber$,X,1))
 3210BCode$+=Numbers$(Add,3)
 3220NEXT
 3230BCode$+="DLD"
 3240REM RECTANGLE FILL 202,162,840,588
 3250REM RECTANGLE FILL 0,0,1280,1030
 3260PROCgroup_start
 3270FOR X=1 TO LEN(BCode$)
 3280IF MID$(BCode$,X,1)="D" THEN PROCrectangle(10000+35000+((X-1)*3200),136000,1600,230000,black%,black%)
 3290NEXT
 3300PROCrectangle(10000+8000+2400+42*1600+2500,122000,42*1600,1000,white%,white%)
 3310PROCrectangle(10000+8000+2400+42*1600+2500+147000,122000,42*1600,1000,white%,white%)
 3320PROCtext(1.25*inch,3.3*inch-40000,LEFT$(ANumber$,6),65*point,65*point,1,black%,white%)
 3330PROCtext(4.45*inch,3.3*inch-40000,RIGHT$(ANumber$,6),65*point,65*point,1,black%,white%)
 3340PROCtext(0.4*inch,3.3*inch-40000,STR$(AandB),65*point,65*point,1,black%,white%)
 3350PROCgroup_end
 3360ENDPROC
 3370:
 3380DATA AAAAAA,AABABB,AABBAB,AABBBA,ABAABB
 3390DATA ABBAAB,ABBBAA,ABABAB,ABABBA,ABBABA
 3400DATA LLLDDLD,LDLLDDD,DDDLLDL
 3410DATA LLDDLLD,LDDLLDD,DDLLDDL
 3420DATA LLDLLDD,LLDDLDD,DDLDDLL
 3430DATA LDDDDLD,LDLLLLD,DLLLLDL
 3440DATA LDLLLDD,LLDDDLD,DLDDDLL
 3450DATA LDDLLLD,LDDDLLD,DLLDDDL
 3460DATA LDLDDDD,LLLLDLD,DLDLLLL
 3470DATA LDDDLDD,LLDLLLD,DLLLDLL
 3480DATA LDDLDDD,LLLDLLD,DLLDLLL
 3490DATA LLLDLDD,LLDLDDD,DDDLDLL

ș "Hourglass_On"
*� � ș "Hourglass_Smash":�:� " : ";�:�
� Menus$(10,10)
(� MenItems(10)
2#file%=�("<BarCode$Dir>.SpName")
<save$=""
F�
PTEMP=�#file%
Zsave$+=�(TEMP)
d
� �#file%
n�#file%
x�
�	�init
��drawfile_start(save$)
��fonttable
�ANumber$="012345678900"
�	Ln=12
�	Fmt=0
�AandB=0
�
� Se$(10)
�
� X=0 � 9
�� Se$(X)
��
�� Numbers$(10,3)
�
� X=0 � 9

� Y=1 � 3
� Numbers$(X,Y)
�
"�
,
Sopt=0
6	�load
@ș "Hourglass_Smash"
Jdrawfile$=save$
T�group_start
^Ȏ Fmt �
h� 0:F$="EAN"
r� 1:F$="ITF"
|�
�Z�text(2*inch,10.5*inch,"Article Number : "+ANumber$,24*point,24*point,2,black%,white%)
�_�text(2.25*inch,10*inch,"Style  : "+Se$(AandB)+" CCCCCC",24*point,24*point,2,black%,white%)
�M�text(3.2*inch,9.5*inch,"Format : "+F$,24*point,24*point,2,black%,white%)
�V�text(2.2*inch,1*inch,"� Copyright R.J.Wareham",24*point,24*point,2,black%,white%)
��draw_barcode
��group_end:�drawfile_end
��("CLOSE")
��
�:
�� �load
�"file%=�("<BarCode$Dir>.Sopts")
�Sopt=�#file%
��#file%
ANumber$=""
!file%=�("<BarCode$Dir>.Temp")
� Scn=1 � 12
&TEMP=�#file%
0ANumber$+=�(TEMP)
:�
DDUMMY=�#file%
NAandB=�#file%
XFmt=�#file%
b� #file%
l�
v:
�� �init
�maxlev%=200
�#� start%(maxlev%),box%(maxlev%)
�5� l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%)
�� buf% 256
�big%=&7FFFFFFF
�EF=0.552256944
�
i%=0:c%=0
�inch=&B400
�
point=640
�cm=18140
�black%=0
�white%=&FFFFFF00
none%=-1
�
:
 � error trap
*	� � �
4�
>"� �=1234 � � � �;" at line ";�
H� c%<>0 � �#c%
R� i%<>0 � �#i%
\�
f�
p:
z� �drawfile_start(D$)
�c%=�(D$)
�,� c%=0 � � 1234,"Can't open output file"
�drawfile$=D$
�(�putw(&77617244):�putw(201):�putw(0)
��puts12("MakeDraw")
�lev%=-1
��head_here(�)
��
�:
�� �drawfile_end
�J� lev%>0 � �"Warning: Draw file closed with object(s) unfinished     "
�
�head_now
�
�#c%:c%=0
(� OSCLI("SetType "+drawfile$+" AFF")
�
:
$+� �path_start(x%,y%,width%,lcol%,fcol%)
.�putw(2)
8�head_here(�)
B�putw(fcol%):� fill
L�putw(lcol%):� colour
V�putw(width%):� width
`�putw(0):� path style
j�path_move(x%,y%)
t�
~:
�+� �rectangle(x%,y%,xl%,yl%,lcol%,fcol%)
�.�path_start(x%,(y%-yl%)/2,xl%,lcol%,fcol%)
��path_move(x%,y%)
��path_draw(x%+xl%,y%)
��path_draw(x%+xl%,y%+yl%)
��path_draw(x%,y%+yl%)
�� PROCpath_draw(x%,y%)
��path_close
�
�path_end
��
�:
�� �path_move(x%,y%)
�putw(2)

�putxy(x%,y%)
�
:
(� �path_draw(x%,y%)
2�putw(8)
<�putxy(x%,y%)
F�
P:
Z-� �path_bezier(xc1%,yc1%,xc2%,yc2%,x%,y%)
d�putw(6)
n�putxy(xc1%,yc1%)
x�putxy(xc2%,yc2%)
��putxy(x%,y%)
��
�:
�� �path_close
��putw(5)
��
�:
�� �path_end
��putw(0)
�
�head_now
��
�:
�.� �ellipse(x%,y%,w%,h%,width%,lcol%,fcol%)
,�path_start(x%,y%-h%,width%,lcol%,fcol%)
8�path_bezier(x%+w%*EF,y%-h%,x%+w%,y%-h%*EF,x%+w%,y%)
8�path_bezier(x%+w%,y%+h%*EF,x%+w%*EF,y%+h%,x%,y%+h%)
"8�path_bezier(x%-w%*EF,y%+h%,x%-w%,y%+h%*EF,x%-w%,y%)
,8�path_bezier(x%-w%,y%-h%*EF,x%-w%*EF,y%-h%,x%,y%-h%)
6�path_close
@
�path_end
J�
T:
^� �group_start
h-� groups cannot be nested in this version
r�putw(6)
|�head_here(�)
��puts12("group")
��
�:
�� �group_end
�
�head_now
��
�:
�� �fonttable
�� font%,font$
�
� �DhF
�� font%,font$
�� font$="END" � �
��putw(0)
�head_here(�)
�
 �puts(�(font%)+font$)
& � font%,font$
0� font$="END"
:
�align
D
�head_now
N�
X:
b� font table data
l� 1,"System.Fixed"
v� 2,"Trinity.Bold"
�
� 0,"END"
�:
� � �sprite(x%,y%,w%,h%,F$,S$)
�)� �(S$)>12 � �"Bad sprite name ";S$:�
�� i%,N%,len%
�i%=�(F$)
�.� i%=0 � �"Sprite file ";F$;" not found":�
�$buf%=S$+�12,�0)
�� N%=0 � 11
�, � buf%?N%>64 � buf%?N%<91 � buf%?N%+=32
��
�1N%=�word:� N%=0 � �"No sprites in file ";F$:�
��#i%=�word-4
�
 len%=�word
E � �word=!buf% � �word=buf%!4 � �word=buf%!8 � N%=-1 � N%-     =1
  � N%>0 � �#i%=�#i%+len%-16
*
� N%<1
4)� N%=0 � �"Sprite ";S$;" not found":�
>�putw(5)
H�head_here(�)
R�putxy(x%,y%)
\�putxy(x%+w%+1,y%+h%+1)
f�putw(len%)
p,�putw(!buf%):�putw(buf%!4):�putw(buf%!8)
z� N%=17 � len%:�#c%,�#i%:�
�
�#i%:i%=0
�
�align
�
�head_now
��
�:
�7� �text(x%,y%,text$,xsize%,ysize%,font%,col%,bcol%)
��putw(1)
��head_here(�)
��putxy(x%,y%-ysize%*.5)
�(�putxy(x%+�(text$)*xsize%,y%+ysize%)
��putw(col%)
��putw(bcol%)
��putw(font%)
	�putw(xsize%):�putw(ysize%)
	�putxy(x%,y%)
	�puts(text$):�align
	$
�head_now
	.�
	8:
	B� �col(R%,G%,B%)
	L=(R%<<8)+(G%<<16)+(B%<<24)
	V:
	`� �putw(A%)
	j�#c%,A% � &FF
	t�#c%,(A%>>>8) � &FF
	~�#c%,(A%>>>16) � &FF
	��#c%,(A%>>>24) � &FF
	��
	�:
	�� �puts12(A$)
	�� A%
	�A$=A$+�12," ")
	�#� A%=1 � 12:�#c%,�(�A$,A%,1)):�
	��
	�:
	�� �puts(A$)
	�� A%
	�&� A%=1 � �(A$):�#c%,�(�A$,A%,1)):�

�#c%,0

�
:
� �head_here(box%)
([� lev%=maxlev% � � 1234,"Too many nested groups.  Edit program t     o increase limit."
2lev%+=1
<box%(lev%)=box%
Fstart%(lev%)=�#c%
P� lev%>0 � �putw(0)
Z� box% �
d �putw(0):�putw(0)
n �putw(0):�putw(0)
x�
�l%(lev%)=big%:b%(lev%)=big%
�!r%(lev%)=-big%:t%(lev%)=-big%
��
�:
�� �head_now
�
� end%
�O� lev%<0 � �"Warning: attempt to end more objects than were star     ted":�
�
end%=�#c%
��#c%=start%(lev%)
�)� lev%>0 � �putw(end%-start%(lev%)+4)
�� box%(lev%) �
�$ �putw(l%(lev%)):�putw(b%(lev%))
�( �putw(r%(lev%)+1):�putw(t%(lev%)+1)
�
� 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)
60 � r%(lev%+1)>r%(lev%) � r%(lev%)=r%(lev%+1)
@0 � t%(lev%+1)>t%(lev%) � t%(lev%)=t%(lev%+1)
J�
T
�#c%=end%
^�
h:
r� �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%
��
�:
�� �align
�ȕ �#c% � 3:�#c%,0:�
��
�:
�� �word
�6=�#i% � (&100*�#i%) � (&10000*�#i%) � ((�#i%)<<24)
�:
� �draw_barcode
� X,BCode$,Y,Z,Add,F$
BCode$="DLD"
&� X=1 � Ln/2
0Add=�(�ANumber$,X,1))
:Ȏ �Se$(AandB),X,1) �
D!� "A":BCode$+=Numbers$(Add,1)
N!� "B":BCode$+=Numbers$(Add,2)
X�
b�
lBCode$+="LDLDL"
v� X=Ln/2+1 � Ln
�Add=�(�ANumber$,X,1))
�BCode$+=Numbers$(Add,3)
��
�BCode$+="DLD"
�$� RECTANGLE FILL 202,162,840,588
�"� RECTANGLE FILL 0,0,1280,1030
��group_start
�� X=1 � �(BCode$)
�^� �BCode$,X,1)="D" � �rectangle(10000+35000+((X-1)*3200),136000,1600,230000,black%,black%)
��
�N�rectangle(10000+8000+2400+42*1600+2500,122000,42*1600,1000,white%,white%)
�U�rectangle(10000+8000+2400+42*1600+2500+147000,122000,42*1600,1000,white%,white%)
�R�text(1.25*inch,3.3*inch-40000,�ANumber$,6),65*point,65*point,1,black%,white%)

R�text(4.45*inch,3.3*inch-40000,�ANumber$,6),65*point,65*point,1,black%,white%)

M�text(0.4*inch,3.3*inch-40000,�(AandB),65*point,65*point,1,black%,white%)

�group_end

 �

*:

4(� AAAAAA,AABABB,AABBAB,AABBBA,ABAABB

>(� ABBAAB,ABBBAA,ABABAB,ABABBA,ABBABA

H� LLLDDLD,LDLLDDD,DDDLLDL

R� LLDDLLD,LDDLLDD,DDLLDDL

\� LLDLLDD,LLDDLDD,DDLDDLL

f� LDDDDLD,LDLLLLD,DLLLLDL

p� LDLLLDD,LLDDDLD,DLDDDLL

z� LDDLLLD,LDDDLLD,DLLDDDL

�� LDLDDDD,LLLLDLD,DLDLLLL

�� LDDDLDD,LLDLLLD,DLLLDLL

�� LDDLDDD,LLLDLLD,DLLDLLL

�� LLLDLDD,LLDLDDD,DDDLDLL
�
00000000  0d 00 0a 15 c8 99 20 22  48 6f 75 72 67 6c 61 73  |...... "Hourglas|
00000010  73 5f 4f 6e 22 0d 00 14  2a ee 20 85 20 c8 99 20  |s_On"...*. . .. |
00000020  22 48 6f 75 72 67 6c 61  73 73 5f 53 6d 61 73 68  |"Hourglass_Smash|
00000030  22 3a f6 3a f1 20 22 20  3a 20 22 3b 9e 3a e0 0d  |":.:. " : ";.:..|
00000040  00 1e 13 de 20 4d 65 6e  75 73 24 28 31 30 2c 31  |.... Menus$(10,1|
00000050  30 29 0d 00 28 12 de 20  4d 65 6e 49 74 65 6d 73  |0)..(.. MenItems|
00000060  28 31 30 29 0d 00 32 23  66 69 6c 65 25 3d 8e 28  |(10)..2#file%=.(|
00000070  22 3c 42 61 72 43 6f 64  65 24 44 69 72 3e 2e 53  |"<BarCode$Dir>.S|
00000080  70 4e 61 6d 65 22 29 0d  00 3c 0c 73 61 76 65 24  |pName")..<.save$|
00000090  3d 22 22 0d 00 46 05 f5  0d 00 50 10 54 45 4d 50  |=""..F....P.TEMP|
000000a0  3d 9a 23 66 69 6c 65 25  0d 00 5a 12 73 61 76 65  |=.#file%..Z.save|
000000b0  24 2b 3d bd 28 54 45 4d  50 29 0d 00 64 0d fd 20  |$+=.(TEMP)..d.. |
000000c0  c5 23 66 69 6c 65 25 0d  00 6e 0b d9 23 66 69 6c  |.#file%..n..#fil|
000000d0  65 25 0d 00 78 05 f7 0d  00 82 09 f2 69 6e 69 74  |e%..x.......init|
000000e0  0d 00 8c 1a f2 64 72 61  77 66 69 6c 65 5f 73 74  |.....drawfile_st|
000000f0  61 72 74 28 73 61 76 65  24 29 0d 00 96 0e f2 66  |art(save$).....f|
00000100  6f 6e 74 74 61 62 6c 65  0d 00 a0 1b 41 4e 75 6d  |onttable....ANum|
00000110  62 65 72 24 3d 22 30 31  32 33 34 35 36 37 38 39  |ber$="0123456789|
00000120  30 30 22 0d 00 aa 09 4c  6e 3d 31 32 0d 00 b4 09  |00"....Ln=12....|
00000130  46 6d 74 3d 30 0d 00 be  0b 41 61 6e 64 42 3d 30  |Fmt=0....AandB=0|
00000140  0d 00 c8 0d de 20 53 65  24 28 31 30 29 0d 00 d2  |..... Se$(10)...|
00000150  0d e3 20 58 3d 30 20 b8  20 39 0d 00 dc 0c f3 20  |.. X=0 . 9..... |
00000160  53 65 24 28 58 29 0d 00  e6 05 ed 0d 00 f0 14 de  |Se$(X)..........|
00000170  20 4e 75 6d 62 65 72 73  24 28 31 30 2c 33 29 0d  | Numbers$(10,3).|
00000180  00 fa 0d e3 20 58 3d 30  20 b8 20 39 0d 01 04 0d  |.... X=0 . 9....|
00000190  e3 20 59 3d 31 20 b8 20  33 0d 01 0e 13 f3 20 4e  |. Y=1 . 3..... N|
000001a0  75 6d 62 65 72 73 24 28  58 2c 59 29 0d 01 18 05  |umbers$(X,Y)....|
000001b0  ed 0d 01 22 05 ed 0d 01  2c 0a 53 6f 70 74 3d 30  |..."....,.Sopt=0|
000001c0  0d 01 36 09 f2 6c 6f 61  64 0d 01 40 18 c8 99 20  |..6..load..@... |
000001d0  22 48 6f 75 72 67 6c 61  73 73 5f 53 6d 61 73 68  |"Hourglass_Smash|
000001e0  22 0d 01 4a 13 64 72 61  77 66 69 6c 65 24 3d 73  |"..J.drawfile$=s|
000001f0  61 76 65 24 0d 01 54 10  f2 67 72 6f 75 70 5f 73  |ave$..T..group_s|
00000200  74 61 72 74 0d 01 5e 0c  c8 8e 20 46 6d 74 20 ca  |tart..^... Fmt .|
00000210  0d 01 68 10 c9 20 30 3a  46 24 3d 22 45 41 4e 22  |..h.. 0:F$="EAN"|
00000220  0d 01 72 10 c9 20 31 3a  46 24 3d 22 49 54 46 22  |..r.. 1:F$="ITF"|
00000230  0d 01 7c 05 cb 0d 01 86  5a f2 74 65 78 74 28 32  |..|.....Z.text(2|
00000240  2a 69 6e 63 68 2c 31 30  2e 35 2a 69 6e 63 68 2c  |*inch,10.5*inch,|
00000250  22 41 72 74 69 63 6c 65  20 4e 75 6d 62 65 72 20  |"Article Number |
00000260  3a 20 22 2b 41 4e 75 6d  62 65 72 24 2c 32 34 2a  |: "+ANumber$,24*|
00000270  70 6f 69 6e 74 2c 32 34  2a 70 6f 69 6e 74 2c 32  |point,24*point,2|
00000280  2c 62 6c 61 63 6b 25 2c  77 68 69 74 65 25 29 0d  |,black%,white%).|
00000290  01 90 5f f2 74 65 78 74  28 32 2e 32 35 2a 69 6e  |.._.text(2.25*in|
000002a0  63 68 2c 31 30 2a 69 6e  63 68 2c 22 53 74 79 6c  |ch,10*inch,"Styl|
000002b0  65 20 20 3a 20 22 2b 53  65 24 28 41 61 6e 64 42  |e  : "+Se$(AandB|
000002c0  29 2b 22 20 43 43 43 43  43 43 22 2c 32 34 2a 70  |)+" CCCCCC",24*p|
000002d0  6f 69 6e 74 2c 32 34 2a  70 6f 69 6e 74 2c 32 2c  |oint,24*point,2,|
000002e0  62 6c 61 63 6b 25 2c 77  68 69 74 65 25 29 0d 01  |black%,white%)..|
000002f0  9a 4d f2 74 65 78 74 28  33 2e 32 2a 69 6e 63 68  |.M.text(3.2*inch|
00000300  2c 39 2e 35 2a 69 6e 63  68 2c 22 46 6f 72 6d 61  |,9.5*inch,"Forma|
00000310  74 20 3a 20 22 2b 46 24  2c 32 34 2a 70 6f 69 6e  |t : "+F$,24*poin|
00000320  74 2c 32 34 2a 70 6f 69  6e 74 2c 32 2c 62 6c 61  |t,24*point,2,bla|
00000330  63 6b 25 2c 77 68 69 74  65 25 29 0d 01 a4 56 f2  |ck%,white%)...V.|
00000340  74 65 78 74 28 32 2e 32  2a 69 6e 63 68 2c 31 2a  |text(2.2*inch,1*|
00000350  69 6e 63 68 2c 22 a9 20  43 6f 70 79 72 69 67 68  |inch,". Copyrigh|
00000360  74 20 52 2e 4a 2e 57 61  72 65 68 61 6d 22 2c 32  |t R.J.Wareham",2|
00000370  34 2a 70 6f 69 6e 74 2c  32 34 2a 70 6f 69 6e 74  |4*point,24*point|
00000380  2c 32 2c 62 6c 61 63 6b  25 2c 77 68 69 74 65 25  |,2,black%,white%|
00000390  29 0d 01 ae 11 f2 64 72  61 77 5f 62 61 72 63 6f  |).....draw_barco|
000003a0  64 65 0d 01 b8 1c f2 67  72 6f 75 70 5f 65 6e 64  |de.....group_end|
000003b0  3a f2 64 72 61 77 66 69  6c 65 5f 65 6e 64 0d 01  |:.drawfile_end..|
000003c0  c2 0e ff 28 22 43 4c 4f  53 45 22 29 0d 01 cc 05  |...("CLOSE")....|
000003d0  e0 0d 01 d6 05 3a 0d 01  e0 0b dd 20 f2 6c 6f 61  |.....:..... .loa|
000003e0  64 0d 01 ea 22 66 69 6c  65 25 3d 8e 28 22 3c 42  |d..."file%=.("<B|
000003f0  61 72 43 6f 64 65 24 44  69 72 3e 2e 53 6f 70 74  |arCode$Dir>.Sopt|
00000400  73 22 29 0d 01 f4 10 53  6f 70 74 3d 9a 23 66 69  |s")....Sopt=.#fi|
00000410  6c 65 25 0d 01 fe 0b d9  23 66 69 6c 65 25 0d 02  |le%.....#file%..|
00000420  08 0f 41 4e 75 6d 62 65  72 24 3d 22 22 0d 02 12  |..ANumber$=""...|
00000430  21 66 69 6c 65 25 3d 8e  28 22 3c 42 61 72 43 6f  |!file%=.("<BarCo|
00000440  64 65 24 44 69 72 3e 2e  54 65 6d 70 22 29 0d 02  |de$Dir>.Temp")..|
00000450  1c 10 e3 20 53 63 6e 3d  31 20 b8 20 31 32 0d 02  |... Scn=1 . 12..|
00000460  26 10 54 45 4d 50 3d 9a  23 66 69 6c 65 25 0d 02  |&.TEMP=.#file%..|
00000470  30 15 41 4e 75 6d 62 65  72 24 2b 3d bd 28 54 45  |0.ANumber$+=.(TE|
00000480  4d 50 29 0d 02 3a 05 ed  0d 02 44 11 44 55 4d 4d  |MP)..:....D.DUMM|
00000490  59 3d 9a 23 66 69 6c 65  25 0d 02 4e 11 41 61 6e  |Y=.#file%..N.Aan|
000004a0  64 42 3d 9a 23 66 69 6c  65 25 0d 02 58 0f 46 6d  |dB=.#file%..X.Fm|
000004b0  74 3d 9a 23 66 69 6c 65  25 0d 02 62 0c d9 20 23  |t=.#file%..b.. #|
000004c0  66 69 6c 65 25 0d 02 6c  05 e1 0d 02 76 05 3a 0d  |file%..l....v.:.|
000004d0  02 80 0b dd 20 f2 69 6e  69 74 0d 02 8a 0f 6d 61  |.... .init....ma|
000004e0  78 6c 65 76 25 3d 32 30  30 0d 02 94 23 de 20 73  |xlev%=200...#. s|
000004f0  74 61 72 74 25 28 6d 61  78 6c 65 76 25 29 2c 62  |tart%(maxlev%),b|
00000500  6f 78 25 28 6d 61 78 6c  65 76 25 29 0d 02 9e 35  |ox%(maxlev%)...5|
00000510  de 20 6c 25 28 6d 61 78  6c 65 76 25 29 2c 62 25  |. l%(maxlev%),b%|
00000520  28 6d 61 78 6c 65 76 25  29 2c 72 25 28 6d 61 78  |(maxlev%),r%(max|
00000530  6c 65 76 25 29 2c 74 25  28 6d 61 78 6c 65 76 25  |lev%),t%(maxlev%|
00000540  29 0d 02 a8 0e de 20 62  75 66 25 20 32 35 36 0d  |)..... buf% 256.|
00000550  02 b2 12 62 69 67 25 3d  26 37 46 46 46 46 46 46  |...big%=&7FFFFFF|
00000560  46 0d 02 bc 12 45 46 3d  30 2e 35 35 32 32 35 36  |F....EF=0.552256|
00000570  39 34 34 0d 02 c6 0d 69  25 3d 30 3a 63 25 3d 30  |944....i%=0:c%=0|
00000580  0d 02 d0 0e 69 6e 63 68  3d 26 42 34 30 30 0d 02  |....inch=&B400..|
00000590  da 0d 70 6f 69 6e 74 3d  36 34 30 0d 02 e4 0c 63  |..point=640....c|
000005a0  6d 3d 31 38 31 34 30 0d  02 ee 0c 62 6c 61 63 6b  |m=18140....black|
000005b0  25 3d 30 0d 02 f8 14 77  68 69 74 65 25 3d 26 46  |%=0....white%=&F|
000005c0  46 46 46 46 46 30 30 0d  03 02 0c 6e 6f 6e 65 25  |FFFFF00....none%|
000005d0  3d 2d 31 0d 03 0c 05 e1  0d 03 16 05 3a 0d 03 20  |=-1.........:.. |
000005e0  10 f4 20 65 72 72 6f 72  20 74 72 61 70 0d 03 2a  |.. error trap..*|
000005f0  09 ee 20 85 20 87 0d 03  34 05 f6 0d 03 3e 22 e7  |.. . ...4....>".|
00000600  20 9f 3d 31 32 33 34 20  8c 20 f1 20 8b 20 f1 3b  | .=1234 . . . .;|
00000610  22 20 61 74 20 6c 69 6e  65 20 22 3b 9e 0d 03 48  |" at line ";...H|
00000620  12 e7 20 63 25 3c 3e 30  20 8c 20 d9 23 63 25 0d  |.. c%<>0 . .#c%.|
00000630  03 52 12 e7 20 69 25 3c  3e 30 20 8c 20 d9 23 69  |.R.. i%<>0 . .#i|
00000640  25 0d 03 5c 05 ee 0d 03  66 05 e0 0d 03 70 05 3a  |%..\....f....p.:|
00000650  0d 03 7a 19 dd 20 f2 64  72 61 77 66 69 6c 65 5f  |..z.. .drawfile_|
00000660  73 74 61 72 74 28 44 24  29 0d 03 84 0c 63 25 3d  |start(D$)....c%=|
00000670  ae 28 44 24 29 0d 03 8e  2c e7 20 63 25 3d 30 20  |.(D$)...,. c%=0 |
00000680  8c 20 85 20 31 32 33 34  2c 22 43 61 6e 27 74 20  |. . 1234,"Can't |
00000690  6f 70 65 6e 20 6f 75 74  70 75 74 20 66 69 6c 65  |open output file|
000006a0  22 0d 03 98 10 64 72 61  77 66 69 6c 65 24 3d 44  |"....drawfile$=D|
000006b0  24 0d 03 a2 28 f2 70 75  74 77 28 26 37 37 36 31  |$...(.putw(&7761|
000006c0  37 32 34 34 29 3a f2 70  75 74 77 28 32 30 31 29  |7244):.putw(201)|
000006d0  3a f2 70 75 74 77 28 30  29 0d 03 ac 17 f2 70 75  |:.putw(0).....pu|
000006e0  74 73 31 32 28 22 4d 61  6b 65 44 72 61 77 22 29  |ts12("MakeDraw")|
000006f0  0d 03 b6 0b 6c 65 76 25  3d 2d 31 0d 03 c0 11 f2  |....lev%=-1.....|
00000700  68 65 61 64 5f 68 65 72  65 28 b9 29 0d 03 ca 05  |head_here(.)....|
00000710  e1 0d 03 d4 05 3a 0d 03  de 13 dd 20 f2 64 72 61  |.....:..... .dra|
00000720  77 66 69 6c 65 5f 65 6e  64 0d 03 e8 4a e7 20 6c  |wfile_end...J. l|
00000730  65 76 25 3e 30 20 8c 20  f1 22 57 61 72 6e 69 6e  |ev%>0 . ."Warnin|
00000740  67 3a 20 44 72 61 77 20  66 69 6c 65 20 63 6c 6f  |g: Draw file clo|
00000750  73 65 64 20 77 69 74 68  20 6f 62 6a 65 63 74 28  |sed with object(|
00000760  73 29 20 75 6e 66 69 6e  69 73 68 65 64 20 20 20  |s) unfinished   |
00000770  20 20 22 0d 03 f2 0d f2  68 65 61 64 5f 6e 6f 77  |  ".....head_now|
00000780  0d 03 fc 0d d9 23 63 25  3a 63 25 3d 30 0d 04 06  |.....#c%:c%=0...|
00000790  28 f4 20 4f 53 43 4c 49  28 22 53 65 74 54 79 70  |(. OSCLI("SetTyp|
000007a0  65 20 22 2b 64 72 61 77  66 69 6c 65 24 2b 22 20  |e "+drawfile$+" |
000007b0  41 46 46 22 29 0d 04 10  05 e1 0d 04 1a 05 3a 0d  |AFF").........:.|
000007c0  04 24 2b dd 20 f2 70 61  74 68 5f 73 74 61 72 74  |.$+. .path_start|
000007d0  28 78 25 2c 79 25 2c 77  69 64 74 68 25 2c 6c 63  |(x%,y%,width%,lc|
000007e0  6f 6c 25 2c 66 63 6f 6c  25 29 0d 04 2e 0c f2 70  |ol%,fcol%).....p|
000007f0  75 74 77 28 32 29 0d 04  38 11 f2 68 65 61 64 5f  |utw(2)..8..head_|
00000800  68 65 72 65 28 b9 29 0d  04 42 17 f2 70 75 74 77  |here(.)..B..putw|
00000810  28 66 63 6f 6c 25 29 3a  f4 20 66 69 6c 6c 0d 04  |(fcol%):. fill..|
00000820  4c 19 f2 70 75 74 77 28  6c 63 6f 6c 25 29 3a f4  |L..putw(lcol%):.|
00000830  20 63 6f 6c 6f 75 72 0d  04 56 19 f2 70 75 74 77  | colour..V..putw|
00000840  28 77 69 64 74 68 25 29  3a f4 20 77 69 64 74 68  |(width%):. width|
00000850  0d 04 60 19 f2 70 75 74  77 28 30 29 3a f4 20 70  |..`..putw(0):. p|
00000860  61 74 68 20 73 74 79 6c  65 0d 04 6a 15 f2 70 61  |ath style..j..pa|
00000870  74 68 5f 6d 6f 76 65 28  78 25 2c 79 25 29 0d 04  |th_move(x%,y%)..|
00000880  74 05 e1 0d 04 7e 05 3a  0d 04 88 2b dd 20 f2 72  |t....~.:...+. .r|
00000890  65 63 74 61 6e 67 6c 65  28 78 25 2c 79 25 2c 78  |ectangle(x%,y%,x|
000008a0  6c 25 2c 79 6c 25 2c 6c  63 6f 6c 25 2c 66 63 6f  |l%,yl%,lcol%,fco|
000008b0  6c 25 29 0d 04 92 2e f2  70 61 74 68 5f 73 74 61  |l%).....path_sta|
000008c0  72 74 28 78 25 2c 28 79  25 2d 79 6c 25 29 2f 32  |rt(x%,(y%-yl%)/2|
000008d0  2c 78 6c 25 2c 6c 63 6f  6c 25 2c 66 63 6f 6c 25  |,xl%,lcol%,fcol%|
000008e0  29 0d 04 9c 15 f2 70 61  74 68 5f 6d 6f 76 65 28  |).....path_move(|
000008f0  78 25 2c 79 25 29 0d 04  a6 19 f2 70 61 74 68 5f  |x%,y%).....path_|
00000900  64 72 61 77 28 78 25 2b  78 6c 25 2c 79 25 29 0d  |draw(x%+xl%,y%).|
00000910  04 b0 1d f2 70 61 74 68  5f 64 72 61 77 28 78 25  |....path_draw(x%|
00000920  2b 78 6c 25 2c 79 25 2b  79 6c 25 29 0d 04 ba 19  |+xl%,y%+yl%)....|
00000930  f2 70 61 74 68 5f 64 72  61 77 28 78 25 2c 79 25  |.path_draw(x%,y%|
00000940  2b 79 6c 25 29 0d 04 c4  1a f4 20 50 52 4f 43 70  |+yl%)..... PROCp|
00000950  61 74 68 5f 64 72 61 77  28 78 25 2c 79 25 29 0d  |ath_draw(x%,y%).|
00000960  04 ce 0f f2 70 61 74 68  5f 63 6c 6f 73 65 0d 04  |....path_close..|
00000970  d8 0d f2 70 61 74 68 5f  65 6e 64 0d 04 e2 05 e1  |...path_end.....|
00000980  0d 04 ec 05 3a 0d 04 f6  17 dd 20 f2 70 61 74 68  |....:..... .path|
00000990  5f 6d 6f 76 65 28 78 25  2c 79 25 29 0d 05 00 0c  |_move(x%,y%)....|
000009a0  f2 70 75 74 77 28 32 29  0d 05 0a 11 f2 70 75 74  |.putw(2).....put|
000009b0  78 79 28 78 25 2c 79 25  29 0d 05 14 05 e1 0d 05  |xy(x%,y%).......|
000009c0  1e 05 3a 0d 05 28 17 dd  20 f2 70 61 74 68 5f 64  |..:..(.. .path_d|
000009d0  72 61 77 28 78 25 2c 79  25 29 0d 05 32 0c f2 70  |raw(x%,y%)..2..p|
000009e0  75 74 77 28 38 29 0d 05  3c 11 f2 70 75 74 78 79  |utw(8)..<..putxy|
000009f0  28 78 25 2c 79 25 29 0d  05 46 05 e1 0d 05 50 05  |(x%,y%)..F....P.|
00000a00  3a 0d 05 5a 2d dd 20 f2  70 61 74 68 5f 62 65 7a  |:..Z-. .path_bez|
00000a10  69 65 72 28 78 63 31 25  2c 79 63 31 25 2c 78 63  |ier(xc1%,yc1%,xc|
00000a20  32 25 2c 79 63 32 25 2c  78 25 2c 79 25 29 0d 05  |2%,yc2%,x%,y%)..|
00000a30  64 0c f2 70 75 74 77 28  36 29 0d 05 6e 15 f2 70  |d..putw(6)..n..p|
00000a40  75 74 78 79 28 78 63 31  25 2c 79 63 31 25 29 0d  |utxy(xc1%,yc1%).|
00000a50  05 78 15 f2 70 75 74 78  79 28 78 63 32 25 2c 79  |.x..putxy(xc2%,y|
00000a60  63 32 25 29 0d 05 82 11  f2 70 75 74 78 79 28 78  |c2%).....putxy(x|
00000a70  25 2c 79 25 29 0d 05 8c  05 e1 0d 05 96 05 3a 0d  |%,y%).........:.|
00000a80  05 a0 11 dd 20 f2 70 61  74 68 5f 63 6c 6f 73 65  |.... .path_close|
00000a90  0d 05 aa 0c f2 70 75 74  77 28 35 29 0d 05 b4 05  |.....putw(5)....|
00000aa0  e1 0d 05 be 05 3a 0d 05  c8 0f dd 20 f2 70 61 74  |.....:..... .pat|
00000ab0  68 5f 65 6e 64 0d 05 d2  0c f2 70 75 74 77 28 30  |h_end.....putw(0|
00000ac0  29 0d 05 dc 0d f2 68 65  61 64 5f 6e 6f 77 0d 05  |).....head_now..|
00000ad0  e6 05 e1 0d 05 f0 05 3a  0d 05 fa 2e dd 20 f2 65  |.......:..... .e|
00000ae0  6c 6c 69 70 73 65 28 78  25 2c 79 25 2c 77 25 2c  |llipse(x%,y%,w%,|
00000af0  68 25 2c 77 69 64 74 68  25 2c 6c 63 6f 6c 25 2c  |h%,width%,lcol%,|
00000b00  66 63 6f 6c 25 29 0d 06  04 2c f2 70 61 74 68 5f  |fcol%)...,.path_|
00000b10  73 74 61 72 74 28 78 25  2c 79 25 2d 68 25 2c 77  |start(x%,y%-h%,w|
00000b20  69 64 74 68 25 2c 6c 63  6f 6c 25 2c 66 63 6f 6c  |idth%,lcol%,fcol|
00000b30  25 29 0d 06 0e 38 f2 70  61 74 68 5f 62 65 7a 69  |%)...8.path_bezi|
00000b40  65 72 28 78 25 2b 77 25  2a 45 46 2c 79 25 2d 68  |er(x%+w%*EF,y%-h|
00000b50  25 2c 78 25 2b 77 25 2c  79 25 2d 68 25 2a 45 46  |%,x%+w%,y%-h%*EF|
00000b60  2c 78 25 2b 77 25 2c 79  25 29 0d 06 18 38 f2 70  |,x%+w%,y%)...8.p|
00000b70  61 74 68 5f 62 65 7a 69  65 72 28 78 25 2b 77 25  |ath_bezier(x%+w%|
00000b80  2c 79 25 2b 68 25 2a 45  46 2c 78 25 2b 77 25 2a  |,y%+h%*EF,x%+w%*|
00000b90  45 46 2c 79 25 2b 68 25  2c 78 25 2c 79 25 2b 68  |EF,y%+h%,x%,y%+h|
00000ba0  25 29 0d 06 22 38 f2 70  61 74 68 5f 62 65 7a 69  |%).."8.path_bezi|
00000bb0  65 72 28 78 25 2d 77 25  2a 45 46 2c 79 25 2b 68  |er(x%-w%*EF,y%+h|
00000bc0  25 2c 78 25 2d 77 25 2c  79 25 2b 68 25 2a 45 46  |%,x%-w%,y%+h%*EF|
00000bd0  2c 78 25 2d 77 25 2c 79  25 29 0d 06 2c 38 f2 70  |,x%-w%,y%)..,8.p|
00000be0  61 74 68 5f 62 65 7a 69  65 72 28 78 25 2d 77 25  |ath_bezier(x%-w%|
00000bf0  2c 79 25 2d 68 25 2a 45  46 2c 78 25 2d 77 25 2a  |,y%-h%*EF,x%-w%*|
00000c00  45 46 2c 79 25 2d 68 25  2c 78 25 2c 79 25 2d 68  |EF,y%-h%,x%,y%-h|
00000c10  25 29 0d 06 36 0f f2 70  61 74 68 5f 63 6c 6f 73  |%)..6..path_clos|
00000c20  65 0d 06 40 0d f2 70 61  74 68 5f 65 6e 64 0d 06  |e..@..path_end..|
00000c30  4a 05 e1 0d 06 54 05 3a  0d 06 5e 12 dd 20 f2 67  |J....T.:..^.. .g|
00000c40  72 6f 75 70 5f 73 74 61  72 74 0d 06 68 2d f4 20  |roup_start..h-. |
00000c50  67 72 6f 75 70 73 20 63  61 6e 6e 6f 74 20 62 65  |groups cannot be|
00000c60  20 6e 65 73 74 65 64 20  69 6e 20 74 68 69 73 20  | nested in this |
00000c70  76 65 72 73 69 6f 6e 0d  06 72 0c f2 70 75 74 77  |version..r..putw|
00000c80  28 36 29 0d 06 7c 11 f2  68 65 61 64 5f 68 65 72  |(6)..|..head_her|
00000c90  65 28 b9 29 0d 06 86 14  f2 70 75 74 73 31 32 28  |e(.).....puts12(|
00000ca0  22 67 72 6f 75 70 22 29  0d 06 90 05 e1 0d 06 9a  |"group")........|
00000cb0  05 3a 0d 06 a4 10 dd 20  f2 67 72 6f 75 70 5f 65  |.:..... .group_e|
00000cc0  6e 64 0d 06 ae 0d f2 68  65 61 64 5f 6e 6f 77 0d  |nd.....head_now.|
00000cd0  06 b8 05 e1 0d 06 c2 05  3a 0d 06 cc 10 dd 20 f2  |........:..... .|
00000ce0  66 6f 6e 74 74 61 62 6c  65 0d 06 d6 11 ea 20 66  |fonttable..... f|
00000cf0  6f 6e 74 25 2c 66 6f 6e  74 24 0d 06 e0 0a f7 20  |ont%,font$..... |
00000d00  8d 44 68 46 0d 06 ea 11  f3 20 66 6f 6e 74 25 2c  |.DhF..... font%,|
00000d10  66 6f 6e 74 24 0d 06 f4  15 e7 20 66 6f 6e 74 24  |font$..... font$|
00000d20  3d 22 45 4e 44 22 20 8c  20 e1 0d 06 fe 0c f2 70  |="END" . ......p|
00000d30  75 74 77 28 30 29 0d 07  08 11 f2 68 65 61 64 5f  |utw(0).....head_|
00000d40  68 65 72 65 28 a3 29 0d  07 12 05 f5 0d 07 1c 1a  |here(.).........|
00000d50  20 f2 70 75 74 73 28 bd  28 66 6f 6e 74 25 29 2b  | .puts(.(font%)+|
00000d60  66 6f 6e 74 24 29 0d 07  26 12 20 f3 20 66 6f 6e  |font$)..&. . fon|
00000d70  74 25 2c 66 6f 6e 74 24  0d 07 30 11 fd 20 66 6f  |t%,font$..0.. fo|
00000d80  6e 74 24 3d 22 45 4e 44  22 0d 07 3a 0a f2 61 6c  |nt$="END"..:..al|
00000d90  69 67 6e 0d 07 44 0d f2  68 65 61 64 5f 6e 6f 77  |ign..D..head_now|
00000da0  0d 07 4e 05 e1 0d 07 58  05 3a 0d 07 62 15 f4 20  |..N....X.:..b.. |
00000db0  66 6f 6e 74 20 74 61 62  6c 65 20 64 61 74 61 0d  |font table data.|
00000dc0  07 6c 16 dc 20 31 2c 22  53 79 73 74 65 6d 2e 46  |.l.. 1,"System.F|
00000dd0  69 78 65 64 22 0d 07 76  16 dc 20 32 2c 22 54 72  |ixed"..v.. 2,"Tr|
00000de0  69 6e 69 74 79 2e 42 6f  6c 64 22 0d 07 80 0d dc  |inity.Bold".....|
00000df0  20 30 2c 22 45 4e 44 22  0d 07 8a 05 3a 0d 07 94  | 0,"END"....:...|
00000e00  20 dd 20 f2 73 70 72 69  74 65 28 78 25 2c 79 25  | . .sprite(x%,y%|
00000e10  2c 77 25 2c 68 25 2c 46  24 2c 53 24 29 0d 07 9e  |,w%,h%,F$,S$)...|
00000e20  29 e7 20 a9 28 53 24 29  3e 31 32 20 8c 20 f1 22  |). .(S$)>12 . ."|
00000e30  42 61 64 20 73 70 72 69  74 65 20 6e 61 6d 65 20  |Bad sprite name |
00000e40  22 3b 53 24 3a e1 0d 07  a8 10 ea 20 69 25 2c 4e  |";S$:...... i%,N|
00000e50  25 2c 6c 65 6e 25 0d 07  b2 0c 69 25 3d 8e 28 46  |%,len%....i%=.(F|
00000e60  24 29 0d 07 bc 2e e7 20  69 25 3d 30 20 8c 20 f1  |$)..... i%=0 . .|
00000e70  22 53 70 72 69 74 65 20  66 69 6c 65 20 22 3b 46  |"Sprite file ";F|
00000e80  24 3b 22 20 6e 6f 74 20  66 6f 75 6e 64 22 3a e1  |$;" not found":.|
00000e90  0d 07 c6 14 24 62 75 66  25 3d 53 24 2b c4 31 32  |....$buf%=S$+.12|
00000ea0  2c bd 30 29 0d 07 d0 0f  e3 20 4e 25 3d 30 20 b8  |,.0)..... N%=0 .|
00000eb0  20 31 31 0d 07 da 2c 20  e7 20 62 75 66 25 3f 4e  | 11..., . buf%?N|
00000ec0  25 3e 36 34 20 80 20 62  75 66 25 3f 4e 25 3c 39  |%>64 . buf%?N%<9|
00000ed0  31 20 8c 20 62 75 66 25  3f 4e 25 2b 3d 33 32 0d  |1 . buf%?N%+=32.|
00000ee0  07 e4 05 ed 0d 07 ee 31  4e 25 3d a4 77 6f 72 64  |.......1N%=.word|
00000ef0  3a e7 20 4e 25 3d 30 20  8c 20 f1 22 4e 6f 20 73  |:. N%=0 . ."No s|
00000f00  70 72 69 74 65 73 20 69  6e 20 66 69 6c 65 20 22  |prites in file "|
00000f10  3b 46 24 3a e1 0d 07 f8  10 cf 23 69 25 3d a4 77  |;F$:......#i%=.w|
00000f20  6f 72 64 2d 34 0d 08 02  05 f5 0d 08 0c 0f 20 6c  |ord-4......... l|
00000f30  65 6e 25 3d a4 77 6f 72  64 0d 08 16 45 20 e7 20  |en%=.word...E . |
00000f40  a4 77 6f 72 64 3d 21 62  75 66 25 20 80 20 a4 77  |.word=!buf% . .w|
00000f50  6f 72 64 3d 62 75 66 25  21 34 20 80 20 a4 77 6f  |ord=buf%!4 . .wo|
00000f60  72 64 3d 62 75 66 25 21  38 20 8c 20 4e 25 3d 2d  |rd=buf%!8 . N%=-|
00000f70  31 20 8b 20 4e 25 2d 20  20 20 20 20 3d 31 0d 08  |1 . N%-     =1..|
00000f80  20 1f 20 e7 20 4e 25 3e  30 20 8c 20 cf 23 69 25  | . . N%>0 . .#i%|
00000f90  3d 8f 23 69 25 2b 6c 65  6e 25 2d 31 36 0d 08 2a  |=.#i%+len%-16..*|
00000fa0  0a fd 20 4e 25 3c 31 0d  08 34 29 e7 20 4e 25 3d  |.. N%<1..4). N%=|
00000fb0  30 20 8c 20 f1 22 53 70  72 69 74 65 20 22 3b 53  |0 . ."Sprite ";S|
00000fc0  24 3b 22 20 6e 6f 74 20  66 6f 75 6e 64 22 3a e1  |$;" not found":.|
00000fd0  0d 08 3e 0c f2 70 75 74  77 28 35 29 0d 08 48 11  |..>..putw(5)..H.|
00000fe0  f2 68 65 61 64 5f 68 65  72 65 28 a3 29 0d 08 52  |.head_here(.)..R|
00000ff0  11 f2 70 75 74 78 79 28  78 25 2c 79 25 29 0d 08  |..putxy(x%,y%)..|
00001000  5c 1b f2 70 75 74 78 79  28 78 25 2b 77 25 2b 31  |\..putxy(x%+w%+1|
00001010  2c 79 25 2b 68 25 2b 31  29 0d 08 66 0f f2 70 75  |,y%+h%+1)..f..pu|
00001020  74 77 28 6c 65 6e 25 29  0d 08 70 2c f2 70 75 74  |tw(len%)..p,.put|
00001030  77 28 21 62 75 66 25 29  3a f2 70 75 74 77 28 62  |w(!buf%):.putw(b|
00001040  75 66 25 21 34 29 3a f2  70 75 74 77 28 62 75 66  |uf%!4):.putw(buf|
00001050  25 21 38 29 0d 08 7a 1e  e3 20 4e 25 3d 31 37 20  |%!8)..z.. N%=17 |
00001060  b8 20 6c 65 6e 25 3a d5  23 63 25 2c 9a 23 69 25  |. len%:.#c%,.#i%|
00001070  3a ed 0d 08 84 0d d9 23  69 25 3a 69 25 3d 30 0d  |:......#i%:i%=0.|
00001080  08 8e 0a f2 61 6c 69 67  6e 0d 08 98 0d f2 68 65  |....align.....he|
00001090  61 64 5f 6e 6f 77 0d 08  a2 05 e1 0d 08 ac 05 3a  |ad_now.........:|
000010a0  0d 08 b6 37 dd 20 f2 74  65 78 74 28 78 25 2c 79  |...7. .text(x%,y|
000010b0  25 2c 74 65 78 74 24 2c  78 73 69 7a 65 25 2c 79  |%,text$,xsize%,y|
000010c0  73 69 7a 65 25 2c 66 6f  6e 74 25 2c 63 6f 6c 25  |size%,font%,col%|
000010d0  2c 62 63 6f 6c 25 29 0d  08 c0 0c f2 70 75 74 77  |,bcol%).....putw|
000010e0  28 31 29 0d 08 ca 11 f2  68 65 61 64 5f 68 65 72  |(1).....head_her|
000010f0  65 28 a3 29 0d 08 d4 1b  f2 70 75 74 78 79 28 78  |e(.).....putxy(x|
00001100  25 2c 79 25 2d 79 73 69  7a 65 25 2a 2e 35 29 0d  |%,y%-ysize%*.5).|
00001110  08 de 28 f2 70 75 74 78  79 28 78 25 2b a9 28 74  |..(.putxy(x%+.(t|
00001120  65 78 74 24 29 2a 78 73  69 7a 65 25 2c 79 25 2b  |ext$)*xsize%,y%+|
00001130  79 73 69 7a 65 25 29 0d  08 e8 0f f2 70 75 74 77  |ysize%).....putw|
00001140  28 63 6f 6c 25 29 0d 08  f2 10 f2 70 75 74 77 28  |(col%).....putw(|
00001150  62 63 6f 6c 25 29 0d 08  fc 10 f2 70 75 74 77 28  |bcol%).....putw(|
00001160  66 6f 6e 74 25 29 0d 09  06 1f f2 70 75 74 77 28  |font%).....putw(|
00001170  78 73 69 7a 65 25 29 3a  f2 70 75 74 77 28 79 73  |xsize%):.putw(ys|
00001180  69 7a 65 25 29 0d 09 10  11 f2 70 75 74 78 79 28  |ize%).....putxy(|
00001190  78 25 2c 79 25 29 0d 09  1a 17 f2 70 75 74 73 28  |x%,y%).....puts(|
000011a0  74 65 78 74 24 29 3a f2  61 6c 69 67 6e 0d 09 24  |text$):.align..$|
000011b0  0d f2 68 65 61 64 5f 6e  6f 77 0d 09 2e 05 e1 0d  |..head_now......|
000011c0  09 38 05 3a 0d 09 42 14  dd 20 a4 63 6f 6c 28 52  |.8.:..B.. .col(R|
000011d0  25 2c 47 25 2c 42 25 29  0d 09 4c 1e 3d 28 52 25  |%,G%,B%)..L.=(R%|
000011e0  3c 3c 38 29 2b 28 47 25  3c 3c 31 36 29 2b 28 42  |<<8)+(G%<<16)+(B|
000011f0  25 3c 3c 32 34 29 0d 09  56 05 3a 0d 09 60 0f dd  |%<<24)..V.:..`..|
00001200  20 f2 70 75 74 77 28 41  25 29 0d 09 6a 11 d5 23  | .putw(A%)..j..#|
00001210  63 25 2c 41 25 20 80 20  26 46 46 0d 09 74 17 d5  |c%,A% . &FF..t..|
00001220  23 63 25 2c 28 41 25 3e  3e 3e 38 29 20 80 20 26  |#c%,(A%>>>8) . &|
00001230  46 46 0d 09 7e 18 d5 23  63 25 2c 28 41 25 3e 3e  |FF..~..#c%,(A%>>|
00001240  3e 31 36 29 20 80 20 26  46 46 0d 09 88 18 d5 23  |>16) . &FF.....#|
00001250  63 25 2c 28 41 25 3e 3e  3e 32 34 29 20 80 20 26  |c%,(A%>>>24) . &|
00001260  46 46 0d 09 92 05 e1 0d  09 9c 05 3a 0d 09 a6 11  |FF.........:....|
00001270  dd 20 f2 70 75 74 73 31  32 28 41 24 29 0d 09 b0  |. .puts12(A$)...|
00001280  08 ea 20 41 25 0d 09 ba  12 41 24 3d 41 24 2b c4  |.. A%....A$=A$+.|
00001290  31 32 2c 22 20 22 29 0d  09 c4 23 e3 20 41 25 3d  |12," ")...#. A%=|
000012a0  31 20 b8 20 31 32 3a d5  23 63 25 2c 97 28 c1 41  |1 . 12:.#c%,.(.A|
000012b0  24 2c 41 25 2c 31 29 29  3a ed 0d 09 ce 05 e1 0d  |$,A%,1)):.......|
000012c0  09 d8 05 3a 0d 09 e2 0f  dd 20 f2 70 75 74 73 28  |...:..... .puts(|
000012d0  41 24 29 0d 09 ec 08 ea  20 41 25 0d 09 f6 26 e3  |A$)..... A%...&.|
000012e0  20 41 25 3d 31 20 b8 20  a9 28 41 24 29 3a d5 23  | A%=1 . .(A$):.#|
000012f0  63 25 2c 97 28 c1 41 24  2c 41 25 2c 31 29 29 3a  |c%,.(.A$,A%,1)):|
00001300  ed 0d 0a 00 0a d5 23 63  25 2c 30 0d 0a 0a 05 e1  |......#c%,0.....|
00001310  0d 0a 14 05 3a 0d 0a 1e  16 dd 20 f2 68 65 61 64  |....:..... .head|
00001320  5f 68 65 72 65 28 62 6f  78 25 29 0d 0a 28 5b e7  |_here(box%)..([.|
00001330  20 6c 65 76 25 3d 6d 61  78 6c 65 76 25 20 8c 20  | lev%=maxlev% . |
00001340  85 20 31 32 33 34 2c 22  54 6f 6f 20 6d 61 6e 79  |. 1234,"Too many|
00001350  20 6e 65 73 74 65 64 20  67 72 6f 75 70 73 2e 20  | nested groups. |
00001360  20 45 64 69 74 20 70 72  6f 67 72 61 6d 20 74 20  | Edit program t |
00001370  20 20 20 20 6f 20 69 6e  63 72 65 61 73 65 20 6c  |    o increase l|
00001380  69 6d 69 74 2e 22 0d 0a  32 0b 6c 65 76 25 2b 3d  |imit."..2.lev%+=|
00001390  31 0d 0a 3c 13 62 6f 78  25 28 6c 65 76 25 29 3d  |1..<.box%(lev%)=|
000013a0  62 6f 78 25 0d 0a 46 15  73 74 61 72 74 25 28 6c  |box%..F.start%(l|
000013b0  65 76 25 29 3d 8f 23 63  25 0d 0a 50 17 e7 20 6c  |ev%)=.#c%..P.. l|
000013c0  65 76 25 3e 30 20 8c 20  f2 70 75 74 77 28 30 29  |ev%>0 . .putw(0)|
000013d0  0d 0a 5a 0c e7 20 62 6f  78 25 20 8c 0d 0a 64 16  |..Z.. box% ...d.|
000013e0  20 f2 70 75 74 77 28 30  29 3a f2 70 75 74 77 28  | .putw(0):.putw(|
000013f0  30 29 0d 0a 6e 16 20 f2  70 75 74 77 28 30 29 3a  |0)..n. .putw(0):|
00001400  f2 70 75 74 77 28 30 29  0d 0a 78 05 cd 0d 0a 82  |.putw(0)..x.....|
00001410  1f 6c 25 28 6c 65 76 25  29 3d 62 69 67 25 3a 62  |.l%(lev%)=big%:b|
00001420  25 28 6c 65 76 25 29 3d  62 69 67 25 0d 0a 8c 21  |%(lev%)=big%...!|
00001430  72 25 28 6c 65 76 25 29  3d 2d 62 69 67 25 3a 74  |r%(lev%)=-big%:t|
00001440  25 28 6c 65 76 25 29 3d  2d 62 69 67 25 0d 0a 96  |%(lev%)=-big%...|
00001450  05 e1 0d 0a a0 05 3a 0d  0a aa 0f dd 20 f2 68 65  |......:..... .he|
00001460  61 64 5f 6e 6f 77 0d 0a  b4 0a ea 20 65 6e 64 25  |ad_now..... end%|
00001470  0d 0a be 4f e7 20 6c 65  76 25 3c 30 20 8c 20 f1  |...O. lev%<0 . .|
00001480  22 57 61 72 6e 69 6e 67  3a 20 61 74 74 65 6d 70  |"Warning: attemp|
00001490  74 20 74 6f 20 65 6e 64  20 6d 6f 72 65 20 6f 62  |t to end more ob|
000014a0  6a 65 63 74 73 20 74 68  61 6e 20 77 65 72 65 20  |jects than were |
000014b0  73 74 61 72 20 20 20 20  20 74 65 64 22 3a e1 0d  |star     ted":..|
000014c0  0a c8 0d 65 6e 64 25 3d  8f 23 63 25 0d 0a d2 15  |...end%=.#c%....|
000014d0  cf 23 63 25 3d 73 74 61  72 74 25 28 6c 65 76 25  |.#c%=start%(lev%|
000014e0  29 0d 0a dc 29 e7 20 6c  65 76 25 3e 30 20 8c 20  |)...). lev%>0 . |
000014f0  f2 70 75 74 77 28 65 6e  64 25 2d 73 74 61 72 74  |.putw(end%-start|
00001500  25 28 6c 65 76 25 29 2b  34 29 0d 0a e6 12 e7 20  |%(lev%)+4)..... |
00001510  62 6f 78 25 28 6c 65 76  25 29 20 8c 0d 0a f0 24  |box%(lev%) ....$|
00001520  20 f2 70 75 74 77 28 6c  25 28 6c 65 76 25 29 29  | .putw(l%(lev%))|
00001530  3a f2 70 75 74 77 28 62  25 28 6c 65 76 25 29 29  |:.putw(b%(lev%))|
00001540  0d 0a fa 28 20 f2 70 75  74 77 28 72 25 28 6c 65  |...( .putw(r%(le|
00001550  76 25 29 2b 31 29 3a f2  70 75 74 77 28 74 25 28  |v%)+1):.putw(t%(|
00001560  6c 65 76 25 29 2b 31 29  0d 0b 04 05 cd 0d 0b 0e  |lev%)+1)........|
00001570  0e e7 20 6c 65 76 25 3e  30 20 8c 0d 0b 18 0c 20  |.. lev%>0 ..... |
00001580  6c 65 76 25 2d 3d 31 0d  0b 22 30 20 e7 20 6c 25  |lev%-=1.."0 . l%|
00001590  28 6c 65 76 25 2b 31 29  3c 6c 25 28 6c 65 76 25  |(lev%+1)<l%(lev%|
000015a0  29 20 8c 20 6c 25 28 6c  65 76 25 29 3d 6c 25 28  |) . l%(lev%)=l%(|
000015b0  6c 65 76 25 2b 31 29 0d  0b 2c 30 20 e7 20 62 25  |lev%+1)..,0 . b%|
000015c0  28 6c 65 76 25 2b 31 29  3c 62 25 28 6c 65 76 25  |(lev%+1)<b%(lev%|
000015d0  29 20 8c 20 62 25 28 6c  65 76 25 29 3d 62 25 28  |) . b%(lev%)=b%(|
000015e0  6c 65 76 25 2b 31 29 0d  0b 36 30 20 e7 20 72 25  |lev%+1)..60 . r%|
000015f0  28 6c 65 76 25 2b 31 29  3e 72 25 28 6c 65 76 25  |(lev%+1)>r%(lev%|
00001600  29 20 8c 20 72 25 28 6c  65 76 25 29 3d 72 25 28  |) . r%(lev%)=r%(|
00001610  6c 65 76 25 2b 31 29 0d  0b 40 30 20 e7 20 74 25  |lev%+1)..@0 . t%|
00001620  28 6c 65 76 25 2b 31 29  3e 74 25 28 6c 65 76 25  |(lev%+1)>t%(lev%|
00001630  29 20 8c 20 74 25 28 6c  65 76 25 29 3d 74 25 28  |) . t%(lev%)=t%(|
00001640  6c 65 76 25 2b 31 29 0d  0b 4a 05 cd 0d 0b 54 0d  |lev%+1)..J....T.|
00001650  cf 23 63 25 3d 65 6e 64  25 0d 0b 5e 05 e1 0d 0b  |.#c%=end%..^....|
00001660  68 05 3a 0d 0b 72 13 dd  20 f2 70 75 74 78 79 28  |h.:..r.. .putxy(|
00001670  78 25 2c 79 25 29 0d 0b  7c 17 f2 70 75 74 77 28  |x%,y%)..|..putw(|
00001680  78 25 29 3a f2 70 75 74  77 28 79 25 29 0d 0b 86  |x%):.putw(y%)...|
00001690  1f e7 20 78 25 3c 6c 25  28 6c 65 76 25 29 20 8c  |.. x%<l%(lev%) .|
000016a0  20 6c 25 28 6c 65 76 25  29 3d 78 25 0d 0b 90 1f  | l%(lev%)=x%....|
000016b0  e7 20 79 25 3c 62 25 28  6c 65 76 25 29 20 8c 20  |. y%<b%(lev%) . |
000016c0  62 25 28 6c 65 76 25 29  3d 79 25 0d 0b 9a 1f e7  |b%(lev%)=y%.....|
000016d0  20 78 25 3e 72 25 28 6c  65 76 25 29 20 8c 20 72  | x%>r%(lev%) . r|
000016e0  25 28 6c 65 76 25 29 3d  78 25 0d 0b a4 1f e7 20  |%(lev%)=x%..... |
000016f0  79 25 3e 74 25 28 6c 65  76 25 29 20 8c 20 74 25  |y%>t%(lev%) . t%|
00001700  28 6c 65 76 25 29 3d 79  25 0d 0b ae 05 e1 0d 0b  |(lev%)=y%.......|
00001710  b8 05 3a 0d 0b c2 0c dd  20 f2 61 6c 69 67 6e 0d  |..:..... .align.|
00001720  0b cc 18 c8 95 20 8f 23  63 25 20 80 20 33 3a d5  |..... .#c% . 3:.|
00001730  23 63 25 2c 30 3a ce 0d  0b d6 05 e1 0d 0b e0 05  |#c%,0:..........|
00001740  3a 0d 0b ea 0b dd 20 a4  77 6f 72 64 0d 0b f4 36  |:..... .word...6|
00001750  3d 9a 23 69 25 20 84 20  28 26 31 30 30 2a 9a 23  |=.#i% . (&100*.#|
00001760  69 25 29 20 84 20 28 26  31 30 30 30 30 2a 9a 23  |i%) . (&10000*.#|
00001770  69 25 29 20 84 20 28 28  9a 23 69 25 29 3c 3c 32  |i%) . ((.#i%)<<2|
00001780  34 29 0d 0b fe 05 3a 0d  0c 08 13 dd 20 f2 64 72  |4)....:..... .dr|
00001790  61 77 5f 62 61 72 63 6f  64 65 0d 0c 12 19 ea 20  |aw_barcode..... |
000017a0  58 2c 42 43 6f 64 65 24  2c 59 2c 5a 2c 41 64 64  |X,BCode$,Y,Z,Add|
000017b0  2c 46 24 0d 0c 1c 10 42  43 6f 64 65 24 3d 22 44  |,F$....BCode$="D|
000017c0  4c 44 22 0d 0c 26 10 e3  20 58 3d 31 20 b8 20 4c  |LD"..&.. X=1 . L|
000017d0  6e 2f 32 0d 0c 30 19 41  64 64 3d bb 28 c1 41 4e  |n/2..0.Add=.(.AN|
000017e0  75 6d 62 65 72 24 2c 58  2c 31 29 29 0d 0c 3a 19  |umber$,X,1))..:.|
000017f0  c8 8e 20 c1 53 65 24 28  41 61 6e 64 42 29 2c 58  |.. .Se$(AandB),X|
00001800  2c 31 29 20 ca 0d 0c 44  21 c9 20 22 41 22 3a 42  |,1) ...D!. "A":B|
00001810  43 6f 64 65 24 2b 3d 4e  75 6d 62 65 72 73 24 28  |Code$+=Numbers$(|
00001820  41 64 64 2c 31 29 0d 0c  4e 21 c9 20 22 42 22 3a  |Add,1)..N!. "B":|
00001830  42 43 6f 64 65 24 2b 3d  4e 75 6d 62 65 72 73 24  |BCode$+=Numbers$|
00001840  28 41 64 64 2c 32 29 0d  0c 58 05 cb 0d 0c 62 05  |(Add,2)..X....b.|
00001850  ed 0d 0c 6c 13 42 43 6f  64 65 24 2b 3d 22 4c 44  |...l.BCode$+="LD|
00001860  4c 44 4c 22 0d 0c 76 13  e3 20 58 3d 4c 6e 2f 32  |LDL"..v.. X=Ln/2|
00001870  2b 31 20 b8 20 4c 6e 0d  0c 80 19 41 64 64 3d bb  |+1 . Ln....Add=.|
00001880  28 c1 41 4e 75 6d 62 65  72 24 2c 58 2c 31 29 29  |(.ANumber$,X,1))|
00001890  0d 0c 8a 1b 42 43 6f 64  65 24 2b 3d 4e 75 6d 62  |....BCode$+=Numb|
000018a0  65 72 73 24 28 41 64 64  2c 33 29 0d 0c 94 05 ed  |ers$(Add,3).....|
000018b0  0d 0c 9e 11 42 43 6f 64  65 24 2b 3d 22 44 4c 44  |....BCode$+="DLD|
000018c0  22 0d 0c a8 24 f4 20 52  45 43 54 41 4e 47 4c 45  |"...$. RECTANGLE|
000018d0  20 46 49 4c 4c 20 32 30  32 2c 31 36 32 2c 38 34  | FILL 202,162,84|
000018e0  30 2c 35 38 38 0d 0c b2  22 f4 20 52 45 43 54 41  |0,588...". RECTA|
000018f0  4e 47 4c 45 20 46 49 4c  4c 20 30 2c 30 2c 31 32  |NGLE FILL 0,0,12|
00001900  38 30 2c 31 30 33 30 0d  0c bc 10 f2 67 72 6f 75  |80,1030.....grou|
00001910  70 5f 73 74 61 72 74 0d  0c c6 15 e3 20 58 3d 31  |p_start..... X=1|
00001920  20 b8 20 a9 28 42 43 6f  64 65 24 29 0d 0c d0 5e  | . .(BCode$)...^|
00001930  e7 20 c1 42 43 6f 64 65  24 2c 58 2c 31 29 3d 22  |. .BCode$,X,1)="|
00001940  44 22 20 8c 20 f2 72 65  63 74 61 6e 67 6c 65 28  |D" . .rectangle(|
00001950  31 30 30 30 30 2b 33 35  30 30 30 2b 28 28 58 2d  |10000+35000+((X-|
00001960  31 29 2a 33 32 30 30 29  2c 31 33 36 30 30 30 2c  |1)*3200),136000,|
00001970  31 36 30 30 2c 32 33 30  30 30 30 2c 62 6c 61 63  |1600,230000,blac|
00001980  6b 25 2c 62 6c 61 63 6b  25 29 0d 0c da 05 ed 0d  |k%,black%)......|
00001990  0c e4 4e f2 72 65 63 74  61 6e 67 6c 65 28 31 30  |..N.rectangle(10|
000019a0  30 30 30 2b 38 30 30 30  2b 32 34 30 30 2b 34 32  |000+8000+2400+42|
000019b0  2a 31 36 30 30 2b 32 35  30 30 2c 31 32 32 30 30  |*1600+2500,12200|
000019c0  30 2c 34 32 2a 31 36 30  30 2c 31 30 30 30 2c 77  |0,42*1600,1000,w|
000019d0  68 69 74 65 25 2c 77 68  69 74 65 25 29 0d 0c ee  |hite%,white%)...|
000019e0  55 f2 72 65 63 74 61 6e  67 6c 65 28 31 30 30 30  |U.rectangle(1000|
000019f0  30 2b 38 30 30 30 2b 32  34 30 30 2b 34 32 2a 31  |0+8000+2400+42*1|
00001a00  36 30 30 2b 32 35 30 30  2b 31 34 37 30 30 30 2c  |600+2500+147000,|
00001a10  31 32 32 30 30 30 2c 34  32 2a 31 36 30 30 2c 31  |122000,42*1600,1|
00001a20  30 30 30 2c 77 68 69 74  65 25 2c 77 68 69 74 65  |000,white%,white|
00001a30  25 29 0d 0c f8 52 f2 74  65 78 74 28 31 2e 32 35  |%)...R.text(1.25|
00001a40  2a 69 6e 63 68 2c 33 2e  33 2a 69 6e 63 68 2d 34  |*inch,3.3*inch-4|
00001a50  30 30 30 30 2c c0 41 4e  75 6d 62 65 72 24 2c 36  |0000,.ANumber$,6|
00001a60  29 2c 36 35 2a 70 6f 69  6e 74 2c 36 35 2a 70 6f  |),65*point,65*po|
00001a70  69 6e 74 2c 31 2c 62 6c  61 63 6b 25 2c 77 68 69  |int,1,black%,whi|
00001a80  74 65 25 29 0d 0d 02 52  f2 74 65 78 74 28 34 2e  |te%)...R.text(4.|
00001a90  34 35 2a 69 6e 63 68 2c  33 2e 33 2a 69 6e 63 68  |45*inch,3.3*inch|
00001aa0  2d 34 30 30 30 30 2c c2  41 4e 75 6d 62 65 72 24  |-40000,.ANumber$|
00001ab0  2c 36 29 2c 36 35 2a 70  6f 69 6e 74 2c 36 35 2a  |,6),65*point,65*|
00001ac0  70 6f 69 6e 74 2c 31 2c  62 6c 61 63 6b 25 2c 77  |point,1,black%,w|
00001ad0  68 69 74 65 25 29 0d 0d  0c 4d f2 74 65 78 74 28  |hite%)...M.text(|
00001ae0  30 2e 34 2a 69 6e 63 68  2c 33 2e 33 2a 69 6e 63  |0.4*inch,3.3*inc|
00001af0  68 2d 34 30 30 30 30 2c  c3 28 41 61 6e 64 42 29  |h-40000,.(AandB)|
00001b00  2c 36 35 2a 70 6f 69 6e  74 2c 36 35 2a 70 6f 69  |,65*point,65*poi|
00001b10  6e 74 2c 31 2c 62 6c 61  63 6b 25 2c 77 68 69 74  |nt,1,black%,whit|
00001b20  65 25 29 0d 0d 16 0e f2  67 72 6f 75 70 5f 65 6e  |e%).....group_en|
00001b30  64 0d 0d 20 05 e1 0d 0d  2a 05 3a 0d 0d 34 28 dc  |d.. ....*.:..4(.|
00001b40  20 41 41 41 41 41 41 2c  41 41 42 41 42 42 2c 41  | AAAAAA,AABABB,A|
00001b50  41 42 42 41 42 2c 41 41  42 42 42 41 2c 41 42 41  |ABBAB,AABBBA,ABA|
00001b60  41 42 42 0d 0d 3e 28 dc  20 41 42 42 41 41 42 2c  |ABB..>(. ABBAAB,|
00001b70  41 42 42 42 41 41 2c 41  42 41 42 41 42 2c 41 42  |ABBBAA,ABABAB,AB|
00001b80  41 42 42 41 2c 41 42 42  41 42 41 0d 0d 48 1d dc  |ABBA,ABBABA..H..|
00001b90  20 4c 4c 4c 44 44 4c 44  2c 4c 44 4c 4c 44 44 44  | LLLDDLD,LDLLDDD|
00001ba0  2c 44 44 44 4c 4c 44 4c  0d 0d 52 1d dc 20 4c 4c  |,DDDLLDL..R.. LL|
00001bb0  44 44 4c 4c 44 2c 4c 44  44 4c 4c 44 44 2c 44 44  |DDLLD,LDDLLDD,DD|
00001bc0  4c 4c 44 44 4c 0d 0d 5c  1d dc 20 4c 4c 44 4c 4c  |LLDDL..\.. LLDLL|
00001bd0  44 44 2c 4c 4c 44 44 4c  44 44 2c 44 44 4c 44 44  |DD,LLDDLDD,DDLDD|
00001be0  4c 4c 0d 0d 66 1d dc 20  4c 44 44 44 44 4c 44 2c  |LL..f.. LDDDDLD,|
00001bf0  4c 44 4c 4c 4c 4c 44 2c  44 4c 4c 4c 4c 44 4c 0d  |LDLLLLD,DLLLLDL.|
00001c00  0d 70 1d dc 20 4c 44 4c  4c 4c 44 44 2c 4c 4c 44  |.p.. LDLLLDD,LLD|
00001c10  44 44 4c 44 2c 44 4c 44  44 44 4c 4c 0d 0d 7a 1d  |DDLD,DLDDDLL..z.|
00001c20  dc 20 4c 44 44 4c 4c 4c  44 2c 4c 44 44 44 4c 4c  |. LDDLLLD,LDDDLL|
00001c30  44 2c 44 4c 4c 44 44 44  4c 0d 0d 84 1d dc 20 4c  |D,DLLDDDL..... L|
00001c40  44 4c 44 44 44 44 2c 4c  4c 4c 4c 44 4c 44 2c 44  |DLDDDD,LLLLDLD,D|
00001c50  4c 44 4c 4c 4c 4c 0d 0d  8e 1d dc 20 4c 44 44 44  |LDLLLL..... LDDD|
00001c60  4c 44 44 2c 4c 4c 44 4c  4c 4c 44 2c 44 4c 4c 4c  |LDD,LLDLLLD,DLLL|
00001c70  44 4c 4c 0d 0d 98 1d dc  20 4c 44 44 4c 44 44 44  |DLL..... LDDLDDD|
00001c80  2c 4c 4c 4c 44 4c 4c 44  2c 44 4c 4c 44 4c 4c 4c  |,LLLDLLD,DLLDLLL|
00001c90  0d 0d a2 1d dc 20 4c 4c  4c 44 4c 44 44 2c 4c 4c  |..... LLLDLDD,LL|
00001ca0  44 4c 44 44 44 2c 44 44  44 4c 44 4c 4c 0d ff     |DLDDD,DDDLDLL..|
00001caf