From 3b1894638d621ed2201c909a7403a3c13995fe1c Mon Sep 17 00:00:00 2001 From: hadeshyp Date: Wed, 6 Dec 2006 17:21:47 +0000 Subject: [PATCH] added timing latex package, Ingo --- oldfiles/timing/api_timing.tex | 210 ++++++++++++ oldfiles/timing/timing.mf | 492 +++++++++++++++++++++++++++ oldfiles/timing/timing.sty | 309 +++++++++++++++++ oldfiles/timing/timing1.mf | 29 ++ oldfiles/timing/timing1.pk | Bin 0 -> 1284 bytes oldfiles/timing/timing1.tfm | Bin 0 -> 716 bytes oldfiles/timing/timing1s.mf | 29 ++ oldfiles/timing/timing1s.pk | Bin 0 -> 1528 bytes oldfiles/timing/timing1s.tfm | Bin 0 -> 716 bytes oldfiles/timing/timing2.mf | 29 ++ oldfiles/timing/timing2.pk | Bin 0 -> 1852 bytes oldfiles/timing/timing2.tfm | Bin 0 -> 716 bytes oldfiles/timing/timing2s.mf | 29 ++ oldfiles/timing/timing2s.pk | Bin 0 -> 2384 bytes oldfiles/timing/timing2s.tfm | Bin 0 -> 716 bytes oldfiles/timing/timing_to_figures.sh | 15 + 16 files changed, 1142 insertions(+) create mode 100644 oldfiles/timing/api_timing.tex create mode 100644 oldfiles/timing/timing.mf create mode 100644 oldfiles/timing/timing.sty create mode 100644 oldfiles/timing/timing1.mf create mode 100644 oldfiles/timing/timing1.pk create mode 100644 oldfiles/timing/timing1.tfm create mode 100644 oldfiles/timing/timing1s.mf create mode 100644 oldfiles/timing/timing1s.pk create mode 100644 oldfiles/timing/timing1s.tfm create mode 100644 oldfiles/timing/timing2.mf create mode 100644 oldfiles/timing/timing2.pk create mode 100644 oldfiles/timing/timing2.tfm create mode 100644 oldfiles/timing/timing2s.mf create mode 100644 oldfiles/timing/timing2s.pk create mode 100644 oldfiles/timing/timing2s.tfm create mode 100755 oldfiles/timing/timing_to_figures.sh diff --git a/oldfiles/timing/api_timing.tex b/oldfiles/timing/api_timing.tex new file mode 100644 index 0000000..a058277 --- /dev/null +++ b/oldfiles/timing/api_timing.tex @@ -0,0 +1,210 @@ +\documentstyle[german,timing,12pt,a4wide]{article} +\pagestyle{empty} +\begin{document} + +\begin{timing}[2s]{4cm} +\tin{1}{FIFO\_FULL\_OUT} +\tin{2}{DATA\_IN} +\tin{3}{WRITE\_IN} +\tin{4}{SEND\_IN} +\tin{5}{RUN\_OUT} +\til{1}{ +%..xxx...xxx...xxx...xxx... +LLLLLLLLLHHHHHHHHHLLLLLLLLL} +\til{2}{ +ZZZVVVXVVXVVVVVVVVVVVVVVXVV} +\tnote{2}{3.7}{D1} +\tnote{2}{6.7}{D2} +\tnote{2}{9.7}{D3} +\tnote{2}{24.7}{D3} +\til{3}{ +LLLHHHHHHHHHLLLLLLLLLHHHHHH} +\til{4}{ +LLLLLLLLLLLLHHHHHHHHHHHHHHH} +\til{5}{ +LLLLLLLLLLLLLLLHHHHHHHHHHHH} +%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} +%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} +\sline{0.5}{0}{5} +\sline{0.5}{3}{5} +\sline{0.5}{6}{5} +\sline{0.5}{9}{5} +\sline{0.5}{12}{5} +\sline{0.5}{15}{5} +\sline{0.5}{18}{5} +\sline{0.5}{21}{5} +\sline{0.5}{24}{5} +\sline{0.5}{27}{5} +\end{timing} + +%Early pre-fill and the starting phase of the channel master. This also shows +%the behaviour of a released transfer: During the FIFO\_FULL the master +%releases the writing, and after the FIFO\_FULL is pulled down it takes 2 clock +%cycles after the new data word can be written + +\newpage + +\begin{timing}[2s]{4cm} +\tin{1}{FIFO\_FULL\_OUT} +\tin{2}{DATA\_IN} +\tin{3}{WRITE\_IN} +\til{1}{ +%..xxx...xxx...xxx...xxx... +LLLLLLLLLHHHHHHHHHLLLLLLLLLHHHLLLLLL} +\til{2}{ +ZZZVVVXVVXVVVVVVVVVVVXVVXVVXVVVVVXVV} +\tnote{2}{3.7}{D1} +\tnote{2}{6.7}{D2} +\tnote{2}{9.7}{D3} +\tnote{2}{21.7}{D3} +\tnote{2}{24.7}{D4} +\tnote{2}{27.7}{D5} +\tnote{2}{33.7}{D6} +\til{3}{ +LLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH} +\sline{0.5}{0}{3} +\sline{0.5}{3}{3} +\sline{0.5}{6}{3} +\sline{0.5}{9}{3} +\sline{0.5}{12}{3} +\sline{0.5}{15}{3} +\sline{0.5}{18}{3} +\sline{0.5}{21}{3} +\sline{0.5}{24}{3} +\sline{0.5}{27}{3} +\sline{0.5}{30}{3} +\sline{0.5}{33}{3} +\sline{0.5}{36}{3} +\end{timing} + +%The running channel: Continous transfer if data words are always in the +%pipeline. Care has to be taken if no new data word can be provided, then +%WRITE\_IN has to be pulled down after the last valid word. + + +\newpage + + + +\begin{timing}[2s]{4cm} +\tin{1}{FIFO\_FULL\_OUT} +\tin{2}{DATA\_IN} +\tin{3}{WRITE\_IN} +\tin{4}{SEND\_IN} +\tin{5}{RUN\_OUT} +\til{1}{ +%..xxx...xxx...xxx...xxx... +LLLLLLLLLLLLLLLLLLLLLLLLLLL} +\til{2}{ +VVVXVVXVVXVVXVVUUUUUUUUUUUU} +\tnote{2}{0.7}{D1} +\tnote{2}{3.7}{D2} +\tnote{2}{6.7}{D3} +\tnote{2}{9.7}{D4} +\til{3}{ +HHHHHHHHHHHHHHHFFFFFFFFFFFF} +\til{4}{ +HHHHHHHHHHHHHHHLLLLLLLLLLLL} +\til{5}{ +HHHHHHHHHHHHHHHHHHHHHHHHHHH} +%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} +%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} +\sline{0.5}{0}{5} +\sline{0.5}{3}{5} +\sline{0.5}{6}{5} +\sline{0.5}{9}{5} +\sline{0.5}{12}{5} +\sline{0.5}{15}{5} +\sline{0.5}{18}{5} +\sline{0.5}{21}{5} +\sline{0.5}{24}{5} +\sline{0.5}{27}{5} +\end{timing} + +%The last words. SEND\_IN is released, +%RUN\_OUT will stay high. During this stage, all writes are ignored. +%Now it is time to wait for the answer! + +\newpage + + + +\begin{timing}[2s]{4cm} +\tin{1}{DATAREADY\_OUT} +\tin{2}{DATA\_OUT} +\tin{3}{READ\_IN} +\tin{4}{TYP\_OUT} +\til{1}{ +%..xxx...xxx...xxx...xxx... +LLLHHHHHHHHHLLLLLLHHHHHHHHH} +\til{2}{ +UUUXVVVVVXVVUUUUUUXVVVVVXVV} +\tnote{2}{3.7}{D1} +\tnote{2}{9.7}{D2} +\tnote{2}{18.7}{D3} +\tnote{2}{24.7}{D4} +\til{3}{ +LLLLLLHHHHHHHHHLLLLLLHHHHHH} +\til{4}{ +UUUVVVVVVVVVUUUUUUVVVVVVVVV} +\tnote{4}{3.7}{DAT or HDR} +\tnote{4}{18.7}{DAT or HDR} +%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} +%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} +\sline{0.5}{0}{4} +\sline{0.5}{3}{4} +\sline{0.5}{6}{4} +\sline{0.5}{9}{4} +\sline{0.5}{12}{4} +\sline{0.5}{15}{4} +\sline{0.5}{18}{4} +\sline{0.5}{21}{4} +\sline{0.5}{24}{4} +\sline{0.5}{27}{4} +\end{timing} + +%A typical read cycle after the answer arrives from the slaves. +%Same is true like for the writing: READ\_IN may stay high to save +%1 clock cycle. But the target must be able to read the offered word, otherwise +%it is lost. + +\newpage + + + +\begin{timing}[2s]{4cm} +\tin{1}{DATAREADY\_OUT} +\tin{2}{DATA\_OUT} +\tin{3}{READ\_IN} +\tin{4}{TYP\_OUT} +\tin{5}{RUN\_OUT} +\til{1}{ +%..xxx...xxx...xxx...xxx... +LLLHHHHHHLLLLLLLLL} +\til{2}{ +UUUXVVVVVUUUUUUUUU} +\tnote{2}{3.7}{TRM} +\til{3}{ +LLLLLLHHHLLLLLLLLL} +\til{4}{ +UUUVVVVVVUUUUUUUUU} +\tnote{4}{3.7}{TRM} +\til{5}{ +HHHHHHHHHFFFFFFLLL} +%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} +%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} +\sline{0.5}{0}{5} +\sline{0.5}{3}{5} +\sline{0.5}{6}{5} +\sline{0.5}{9}{5} +\sline{0.5}{12}{5} +\sline{0.5}{15}{5} +\sline{0.5}{18}{5} + +\end{timing} + +%The end of the story: The TRM word. After this has been read, the +%RUN\_OUT will be released and a new transfer may by initialized. + +\end{document} + diff --git a/oldfiles/timing/timing.mf b/oldfiles/timing/timing.mf new file mode 100644 index 0000000..2aef4c8 --- /dev/null +++ b/oldfiles/timing/timing.mf @@ -0,0 +1,492 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TIMING.MF +% +% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler +% Schaltungen. +% Hauptdatei fr alle Zeichens„tze +% +% Ludwig May, Dezember 1991 +% Jens Leilich, Žnderungen im Mai 1994 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +define_pixels(p_size,p3_size); +%define_good_x_pixels(c_width); +%define_good_y_pixels(c_height); +define_whole_pixels(c_width,c_height,p2_size); +if not odd c_width: c_width:=c_width-1; fi + +font_x_height c_height#; +font_quad c_width#; + +pen pinsel; +pinsel=(pencircle xscaled (0.8*p_size) yscaled p_size); + + +beginchar("H",c_width#,c_height#,bt#); "High Level"; + +pickup pinsel; +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + + +beginchar("L",c_width#,c_height#,bt#); "Low Level"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +showit; +endchar; + +%1/12->xs#/12, damit Steigung von HL und LH wie UV (JL,8.1.94) +beginchar(0,2*c_width#,c_height#,bt#); "High-Low"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(1,2*c_width#,c_height#,bt#); "Low-High"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +showit; +endchar; + +beginchar(12,2*c_width#,c_height#,bt#); "Change Bus"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +showit; +endchar; + +beginchar("V",c_width#,c_height#,bt#); "Valid Bus"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +beginchar("Z",c_width#,c_height#,bt#); "Tristate Bus"; + +pickup pinsel; +draw (-c_width,c_height/2)--(0,c_height/2); +showit; +endchar; + +beginchar(2,2*c_width#,c_height#,bt#); "Tristate -> Valid Bus"; + +pickup pinsel; +draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(3,2*c_width#,c_height#,bt#); "Valid -> Tristate Bus"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); +draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(c_width,c_height/2); +showit; +endchar; + + +beginchar("U",c_width#,c_height#,bt#); "Invalid Bus"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--(0,5/6*c_height); +draw (-c_width,1/6*c_height)--(0,c_height/2); +draw (-c_width/2,0)--(0,1/6*c_height); +showit; +endchar; + + +beginchar(4,2*c_width#,c_height#,bt#); "Tristate -> Invalid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie +%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% Startpunkt der 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie +%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 3. Linie + +pickup pinsel; +draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); + +pickup pencircle scaled p3_size; +draw z1--(1/2*c_width,c_height); +draw z2--(c_width,5/6*c_height); +draw z3--(c_width,c_height/2); +draw (1/2*c_width,0)--(c_width,1/6*c_height); +showit; +endchar; + +beginchar(5,2*c_width#,c_height#,bt#); "Invalid -> Tristate Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height ; +x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie +%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height ; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height ; +x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie +%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height; % Startpunkt der 3. Linie + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); +draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(c_width,c_height/2); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--z1; +draw (-c_width,1/6*c_height)--z2; +draw (-c_width/2,0)--z3; +showit; +endchar; + + +beginchar(6,2*c_width#,c_height#,bt#); "Valid -> Invalid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie +%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie +%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% 3. Linie + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); + +pickup pencircle scaled p3_size; +draw z1--(1/2*c_width,c_height); +draw z2--(c_width,5/6*c_height); +draw z3--(c_width,1/2*c_height); +draw (1/2*c_width,0)--(c_width,1/6*c_height); +showit; +endchar; + +beginchar(7,2*c_width#,c_height#,bt#); "Invalid -> Valid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie +%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height;% 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie +%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height;% 3. Linie + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-1/2*c_width,c_height); +draw (-c_width,1/2*c_height)--z1; +draw (-c_width,1/6*c_height)--z2; +draw (-1/2*c_width,0)--z3; +showit; +endchar; + +beginchar("F",c_width#,c_height#,bt#); "Floating Line"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +%1/12->xs#/12, damit Steigung von FL und FH wie UV (JL,8.1.94) +beginchar(13,2*c_width#,c_height#,bt#); "Float-Low"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +draw (-c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(14,2*c_width#,c_height#,bt#); "Float-High"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-c_width,c_height)--(c_width,c_height); +showit; +endchar; + +beginchar(15,2*c_width#,c_height#,bt#); "High-Float"; + +pickup pinsel; +draw (-c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(16,2*c_width#,c_height#,bt#); "Low-Float"; + +pickup pinsel; +draw (-c_width,0)--(c_width,0); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +showit; +endchar; + + +beginchar("-",c_width#/2,c_height#,bt#); "..."; + +pickup pencircle scaled p3_size; +draw (-c_width,-1/12*c_height)--(-c_width,13/12*c_height); +draw (-c_width/2-1,-1/12*c_height)--(-c_width/2-1,13/12*c_height); +showit; +endchar; + +beginchar("T",c_width#,1/6*c_height#,bt#); "TOP"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); +showit; +endchar; + +beginchar("B",c_width#,1/6*c_height#,bt#); "BOTTOM"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); +showit; +endchar; + +beginchar(8,3/2*c_width#,1/6*c_height#,bt#); "TOP-"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(9,3/2*c_width#,1/6*c_height#,bt#); "BOTTOM-"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(10,3/2*c_width#,1/6*c_height#,bt#); "top-"; + +pickup pinsel; +draw (-c_width,1/6*c_height)--(0,1/6*c_height); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(11,3/2*c_width#,1/6*c_height#,bt#); "bottom-"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar("t",c_width#,1/6*c_height#,bt#); + +pickup pinsel; +draw (-c_width,1/6*c_height)--(0,1/6*c_height); +showit; +endchar; + +beginchar("b",c_width#,1/6*c_height#,bt#); + +pickup pinsel; +draw (-c_width,0)--(0,0); +showit; +endchar; + +%Pfeil von 1/2 nach 7/8 der Breite vergr”žert (JL,8.1.94) +beginchar("A",c_width#,3/12*c_height#,0); "Arrow left"; + +pickup pencircle scaled p_size; +draw (-1/8*c_width,1/12*c_height)--(0,1/12*c_height); +fill (-1/8*c_width,2/12*c_height)--(-c_width,1/12*c_height)--(-1/8*c_width,0)--cycle; +showit; +endchar; + +beginchar("P",c_width#,3/12*c_height#,0); "Arrow right"; + +pickup pencircle scaled p_size; +draw (-c_width,1/12*c_height)--(-1/8*c_width,1/12*c_height); +fill (-7/8*c_width,2/12*c_height)--(0,1/12*c_height)--(-7/8*c_width,0)--cycle; +showit; +endchar; + +beginchar("a",c_width#,3/12*c_height#,0); "Arrow line"; + +pickup pencircle scaled p_size; +draw (-c_width,1/12*c_height)--(0,1/12*c_height); +showit; +endchar; + + +%dasselbe wie "U" +beginchar("X",c_width#,c_height#,bt#); "Unknown"; +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--(0,5/6*c_height); +draw (-c_width,1/6*c_height)--(0,c_height/2); +draw (-c_width/2,0)--(0,1/6*c_height); +showit; +endchar; + +%Leerzeichen mit Punkten, damit nachtr„glich gezeichnet werden kann +%(JL,8.1.94) + +beginchar(".",c_width#,c_height#,bt#); "Leer"; +pickup pinsel; +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar("h",c_width#,c_height#,bt#); "High Level"; +pickup pinsel; +draw (-c_width,c_height)--(0,c_height); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +showit; +endchar; + + +beginchar("l",c_width#,c_height#,bt#); "Low Level"; +pickup pinsel; +draw (-c_width,0)--(0,0); +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(20,2*c_width#,c_height#,bt#); "High-Low"; +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +fill (0,c_height)--(p2_size,c_height)-- + (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(21,2*c_width#,c_height#,bt#); "Low-High"; +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +fill (0,0)--(p2_size,0)-- + (p2_size,p2_size)--(0,p2_size)--cycle; +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar("f",c_width#,c_height#,bt#); "Floating Line"; +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +beginchar(33,2*c_width#,c_height#,bt#); "Float-Low"; +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +draw (-c_width,0)--(c_width,0); +fill (0,c_height)--(p2_size,c_height)-- + (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(34,2*c_width#,c_height#,bt#); "Float-High"; +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-c_width,c_height)--(c_width,c_height); +fill (0,0)--(p2_size,0)-- + (p2_size,p2_size)--(0,p2_size)--cycle; +showit; +endchar; + +beginchar(35,2*c_width#,c_height#,bt#); "High-Float"; +pickup pinsel; +draw (-c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +showit; +endchar; + +beginchar(36,2*c_width#,c_height#,bt#); "Low-Float"; +pickup pinsel; +draw (-c_width,0)--(c_width,0); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + + +% HX,LX,XH,XL und dasselbe mit U statt X sind eigtl. Pfusch +% vielleicht mal Zeichen fr machen... (JL) +ligtable "H":"L"=:0, "F"=:15, "V"=:15, "X"=:15; +ligtable "L":"H"=:1, "F"=:16, "V"=:16, "X"=:16; +ligtable "F":"L"=:13,"H"=:14; +ligtable "h":"l"=:20,"f"=:35; % Version mit Punkten zum Zeichnen (JL, 4.2.94) +ligtable "l":"h"=:21,"f"=:36; +ligtable "f":"l"=:33,"h"=:34; +ligtable "Z":"V"=:2, "U"=:4; +ligtable "V":"Z"=:3, "U"=:6, "X"=:12, "L"=:13, "H"=:14; +ligtable "U":"Z"=:5, "V"=:7, "X"=:7, "L"=:13, "H"=:14; % UX=:7 [UV] (JL, 8.1.94) +ligtable "X":"V"=:12,"U"=:6, "L"=:13, "H"=:14; % XU=:6 [VU] (JL, 8.1.94) +ligtable "T":"-"=:8; +ligtable "B":"-"=:9; +ligtable "t":"-"=:10; +ligtable "b":"-"=:11; + +end; + diff --git a/oldfiles/timing/timing.sty b/oldfiles/timing/timing.sty new file mode 100644 index 0000000..0bb8abd --- /dev/null +++ b/oldfiles/timing/timing.sty @@ -0,0 +1,309 @@ +% timing.sty: Ludwig May/Jens Leilich 10.12.91 +% +% Dieses Style-File erleichtert den Umgang mit dem Timing-Font. +% +% Es stellt Kommandos zur Positionierung von einzelnen Elementen +% eines Timing-Diagramms in einer picture-Umgebung zur Verfuegung. +% +% +% Folgende Kommandos sind verfuegbar: +% +% Erweiterte picture-Umgebung +% \begin{timing}[Zeichensatz]{Randgroesse} +% \end{timing} +% Zeichensatz ist 1,2,1s,2s. Die Zahl gibt die Breite an, +% s bedeutet schr„ge Flanken. 2 ist default. +% +% Zeile mit Timingdiagramm +% \til{y-pos}{Zeichenkette} +% +% Label fuer Zeile +% \tin{y-pos}{Zeichenkette} +% +% Bemerkung +% \tnote{y-pos}{x-pos}{Zeichenkette} +% +% Pfeil nach rechts zeigend +% \rarw{y-pos}{x-pos}{laenge}{Zeichenkette} +% +% Pfeil nach links zeigend +% \larw{y-pos}{x-pos}{laenge}{Zeichenkette} +% +% Senkrechte Linie +% \sline{y1-pos}{x-pos}{y2-pos} +% +% Zeitmarken als Argument fuer \til +% \timingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} +% Zeitmarken als Argument fuer \til nach Unterbrechung +% \conttimingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} +% +% +% Abstandsfaktor fuer einzelne Zeilen +% \timescalefactor +% +% Evtl. n”tige Anpassung fuer Ausrichtung senkrechter Linien +% \timadjust +% +% +% Dieses Style-File und der dazugehoerige Zeichensatz wurde erstellt, +% um moeglichst einfach ein paar Timingdiagramme in meine Studienarbeit +% integrieren zu koennen. Da es in der vorliegenden Form meine +% Erwartungen vollstaendig erfuellt hat, haben ich aus Zeitgruenden keine +% grosse Ueberarbeitung durchgefuehrt. Vielleicht kann das jemand uebernehmen, +% der von der ganzen Materie mehr Ahnung hat. Ein Problem ist z.B. die +% ungenaue horizontale Ausrichtung der senkrechten Linien (ist irgendwie +% Druckertreiber abhaengig, evtl. MAX_DRIFT des Treibers auf 0 setzen). +% Da aber grosses Interesse an dem Style besteht, haben ich ihn mal in +% Umlauf gegeben. Wenn jemand Verbesserungen durchfuehrt, waeren ich an +% einer Rueckmeldung an folgende Adresse dankbar: +% +% Ludwig May +% Friedrichstrasse 23b +% 6100 Darmstadt +% +% Bitte keine Fragen stellen, ich habe fuer eine weitere Unterstuetzung +% weder Zeit noch ausreichend Gelegenheit. +% +% Ludwig May +% +% Ich habe Font und Style weiterentwickelt zu Lehrzwecken, da ich +% Elektrotechnik an BBS unterrichte. +% Verbesserungsvorschl„ge und Lob ;-) k”nnen auch an mich gerichtet +% werden. +% Jens Leilich, C/O BBS Technik I, Franz-Zang-Str. 3--7, 67059 Ludwigshafen +% Jens_Leilich @ lu.maus.de +% +\typeout{Timing Style, Ludwig May Jens Leilich .} +% +% +% Alle benoetigten Counter, Dimensionen und Boxen definieren +% +% +\newfont{\timon}{timing1 scaled 1000} +\newfont{\timtw}{timing2 scaled 1000} +\newfont{\timons}{timing1s scaled 1000} +\newfont{\timtws}{timing2s scaled 1000} +\newfont{\timbs}{cmr5 scaled 1000} +\newcount\counttime +\newdimen\timetmpdim +\newdimen\timehdrdim +\newcount\timetmpcnt +\newcount\timearwcnt +\newdimen\timeskipdim +\newdimen\timewidthdim +\newbox\timebox +\def\timescalefactor{2} +\def\timadjust{0.0pt} +% +% +% Neue Umgebung definieren +% +% +\def\timing{\@ifnextchar [{\@@timing}{\@@timing[2]}} + +\def\@@timing[#1]#2% +{ +\expandafter\def\csname tim@@1\endcsname{\let\tim\timon} +\expandafter\def\csname tim@@2\endcsname{\let\tim\timtw} +\expandafter\def\csname tim@@1s\endcsname{\let\tim\timons} +\expandafter\def\csname tim@@2s\endcsname{\let\tim\timtws} +\def\tim{% + \typeout{Timing font `#1' not defined, assumed 2. Use 1,2,1s,2s only!} + \timtw \let\tim\timtw} +\csname tim@@#1\endcsname +\tim +\timehdrdim=#2 +\advance\timehdrdim by 1em +% +% +% Lokale Befehle definieren +% +% +% +% Hilfroutine zum Zeichen von Pfeilen variabler Laenge +% +% +\newcommand{\timatail}[1]{ \mbox{ \tim + \counttime=2 + \ifnum##1>1 + \loop + a% + \ifnum\counttime<##1 \advance\counttime by 1 + \repeat + \fi +}} +% +% +% Hilfroutine zum Zeichen der Zeitmarkierung +% +% +\newcommand{\lb}[2]{{\tim\makebox[##1em][c]{\timbs##2}}} +% +% +% \timingcounter +% +% +\newcommand{\timingcounter}[4]{ \mbox{ \tim + \counttime=##1\divide\counttime by -2 + \hskip\counttime em + \hskip -1em + \counttime=##2 + \loop + \lb{##1}{\number\counttime} + \ifnum\counttime<##3 \advance\counttime by ##4 + \repeat +}} +% +% +% \conttimingcounter +% +% +\newcommand{\conttimingcounter}[4]{ \mbox{ \tim + \hskip 0.5em + \counttime=##2 + \loop + \lb{##1}{\number\counttime} + \ifnum\counttime<##3 \advance\counttime by ##4 + \repeat +}} +% +% +% \til +% +% +\newcommand{\til}[2]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +% +% Maximale y-Groesse festhalten +% +\ifdim\timetmpdim>\timeskipdim + \global\timeskipdim=\timetmpdim +\fi +\timetmpcnt=\timetmpdim +\timetmpdim=\timehdrdim +\advance\timetmpdim by -\timadjust +\timearwcnt=\timetmpdim +\setbox\timebox=\hbox{##2} +% +% Maximale x-Groesse festhalten +% +\ifdim\wd\timebox>\timewidthdim + \global\timewidthdim=\wd\timebox +\fi +\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\box\timebox}} +%\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{##2}} +} +% +% +% \tin +% +% +\newcommand{\tin}[2]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\put(0,-\timetmpcnt){\makebox(0,0)[lb]{\rm##2}} +} +% +% +% \tnote +% +% +\newcommand{\tnote}[3]{ +\tim +\timetmpdim=##1ex +\advance\timetmpdim by -0.3pt +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\advance\timetmpdim by -1em +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\scriptsize\sf##3}} +} +% +% +% \larw +% +% +\newcommand{\larw}[4]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hss\timbs\strut##4\hfil}}\nointerlineskip\vskip-4pt\hbox{A\timatail{##3}}}}} +} +% +% +% \rarw +% +% +\newcommand{\rarw}[4]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hfil\timbs\strut##4\hss}}\nointerlineskip\vskip-4pt\hbox{\timatail{##3}P}}}} +} +% +% +% \sline +% +% +\newcommand{\sline}[3]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\advance\timetmpdim by -1em +\timearwcnt=\timetmpdim +\timetmpdim=##3ex +\advance \timetmpdim by -##1ex +\advance \timetmpdim by 0.09ex +\timetmpdim=\timescalefactor\timetmpdim +\counttime=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\line(0,-1){\counttime}} +} +% +% +% Weitere Initialisierung +% +% +\timeskipdim=0pt +\timewidthdim=0pt +\unitlength 1sp +\begin{picture}(0,0) +\linethickness{0.4pt} +}% +% +% +% Ende der Umgebung definieren +% +% +\def\endtiming{ +\global\advance\timeskipdim by 15pt +\end{picture} +% +% Da picture(0,0) definiert wurde, wird jetzt die wirkliche Groesse durch +% ein \rule freigehalten. +% +\timeskipdim=1.0\timeskipdim +\timewidthdim=1.0\timewidthdim +\advance\timewidthdim by \timehdrdim +\rule{\timewidthdim}{0pt} +\rule[-\timeskipdim]{0pt}{\timeskipdim} +} diff --git a/oldfiles/timing/timing1.mf b/oldfiles/timing/timing1.mf new file mode 100644 index 0000000..64b42dc --- /dev/null +++ b/oldfiles/timing/timing1.mf @@ -0,0 +1,29 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TIMING1.MF +% +% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler +% Schaltungen. +% Datei fr Zeichensatz mit ca. 1mm Breite +% +% Ludwig May, Dezember 1991 +% Jens Leilich, Žnderungen im Mai 1994 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +mode_setup; + +font_size 10/300in#; +font_identifier:="TIMING1"; +font_coding_scheme:="UNSPECIFIED"; + +u#:=1/60in#; +c_width#:=5/2u#; +c_height#:=15u#; +p_size#:=u#/2; +p2_size#:=p_size#*2; +p3_size#:=p_size#/3; +s_f#:=c_height#/2/c_width#; +xs#:=0; % muss zwischen 0 und 6 liegen +bt#:=10; + +input timing + diff --git a/oldfiles/timing/timing1.pk b/oldfiles/timing/timing1.pk new file mode 100644 index 0000000000000000000000000000000000000000..b432d2a9108c2761b486e5111bfecce4409f9406 GIT binary patch literal 1284 zcmbVLO-$2J94{T9Tf43s8^}i4S`aa#AQ%N=6j%ZhrpQnfG(f;e1kou%OicXtK;l;> z@vd+&Cg3pfCQ?tn2!YN4YqDsTO-{x`i{e2vzLvFm(L@h@eed`Gz2E=+zrMCHd+P@M zO9B)cdp%>$^hSBMn#{{k-;TSa<3 z%r#y*7m629#f&d3)hxvGs1Al+lFZ|VP~h9voOmH++Ct?rU2o%?sVeQhpQg?W6**F1 zUb9QSFh2`UrD?Ie6`MoxOxBcDBwnA+c4zOtTozeb5-p1&vmlm*MUPAnyLoY7ev=#8 zUuE-&(LXc9`+}xmVGm@;8R|_}y`lDeY7bMo0AuT5%u6c~De#iHHot`;n640fdWmN4 zq^aYPO6TZb?G+9wFkP4l2o0&^jdrr!})RupzDsX|J} z2De=`vIazlq_tr_&!@1J~R2a+LSn9GP@+)~0nF$C$AP7h2h|p`QB6Y@qK->ZHE|o>qk-&)a`b$S__k zi==t6hKHs%2p~=>n)~D#F8fh?78v`JK*NV7-Oeb;vZ`5~2`?m0H|ok>?r47Aj&WS3 zO|?wbE+(3V*mm~r&P(Mpz}Ta`Q>mwgR*6Z80a$bkqk?Fz?&A7QAtO%(VV(Qji57QD Sl;bk;RW#|S9QMSQ)zzOPTfiCs literal 0 HcmV?d00001 diff --git a/oldfiles/timing/timing1.tfm b/oldfiles/timing/timing1.tfm new file mode 100644 index 0000000000000000000000000000000000000000..7a75ba20d126f816f930cef6fdfafd4b35aeb995 GIT binary patch literal 716 zcmb`Fy-EW?6otQ;tVvvBvI#3TBKbpXEcOi~MM#l0OUMIA2$mL>Qwlzg4`J<#_za#| zX5$#dG%lPuKXdP$Ss321z!N7VQiiD5oi{se)Bo2IU{AtcmHJ8G`=i;ltSzH(EaQ@^+R+w(+ zOAqo+><_ihA6HpQgIwxbd>g8ADes?ypY1*?wbVMNM@i4E#S6WYIhlMWpRwfJE$H${ z?jD%1wiH@<6o`A2p@sMw1eC+c0n6Lir)4ntBha(@3e1zPu3=y?ow*PYDqD++5 zPUBCk=yVbUL6cNqNv!BD^ob?0il|5a{Xr_Qnbj6^B(^8;I|*A9PR0_xmx=&sYn#mE zbbA7?O4zPJ_Kr=gri+lxu4g=KlK?y~1+UI!a;5V*5~MU?@|&1wKBKcDrX}LF?FW+S z93GoVy4K4icoK&=5Tpb0*0v*?BeAU<{7qV1h0_wYIE={0t4BrcZjq$G1pB(sc~>Ed4 z7?ribq*BAQfum`yd0qj`dB81b_WLIJ)?W>kNJzrC8Y{U^^~lJA06GEuCQR2_}0c2U{8Y9HUXqHFd7B5-V@&S!H0aW zq#R?|H&Oe!7k)w!)G$at2JjF_@o;ZmXdTAwW1)#vW`o`kjUn-R(k8N& zB7kIdSz~b{_3BdB@VQl4cM##-UI}X}0(N~RHtxC^nurpj>@3wQdD@MlvqzJ#+U@24qn z@7s_2;JxwT&ckl8Vz3aW{C834(;@gZ|L-SugKoq@$^ukZ%=#-KT0YQYcH;`s^7rw} zqWMz6(Y4Z3^7@ik=PaJ`9e0ha)g(1na!oH*bNEu$8aBewzWToVrbL~qh?J6FH%&~2 z;LTZlq4~l!o7G%s`IVY0vS=PQHlnMgnk%l{l>^ae*Ex{~Mbv*Kvj!)*einpohfrk% i)jP1~bu$|cHEc|L{)H4v0KN#?EmvG*ZQRDwr~d#Fkwsnr literal 0 HcmV?d00001 diff --git a/oldfiles/timing/timing1s.tfm b/oldfiles/timing/timing1s.tfm new file mode 100644 index 0000000000000000000000000000000000000000..7a75ba20d126f816f930cef6fdfafd4b35aeb995 GIT binary patch literal 716 zcmb`Fy-EW?6otQ;tVvvBvI#3TBKbpXEcOi~MM#l0OUMIA2$mL>Qwlzg4`J<#_za#| zX5$#dG%lPuKXdP$Ss321z!N7VQiiD5oi{se)Bo2IU{AtcmHJ8G`=i;ltSzH(EaQ@^+R+w(+ zOAqo+><_ihA6HpQgIwxbd>g8ADes?ypY1*?wbVMNM@i4E#S6WYIhlMWpRwfJE$H${ z?jD%1 z{#r(|a3$IJV;CSYxyHo4SWw>DYf;_{y;9mW(+chQXYH~1- zgc5Bb+U25lXLGFN<8u@0&yxw!A7ilEY>M z`>g}p*T41eq>X5`6Ad>AgM-lb6J-O0<|ZM(MMwsTtRZ}L7+)SyR|O<$jlwTgOSHaS z#Hw*_H^H>cLWHev8Ud$}yh%hcfs~FT+B-<)ZNxZ+G%(T=v+P?Hty>zyeEW{j7NQKZ z;++&~Gj`63+Pi#@mhN~x6|WS*LTvVa=gM8^^15E;GzruD+|j zy5RF32%YIWLc}6lRT?ZZS$(;r$QEfVx6YQk_qUGoiB|MuEj{jJZlL&Xg`CNyr7ROlZ?BSs5kNsxV z1GCLy?SOW1PD{UeAZ8|7f<((}*BsZZ7E1WZdX?!TB9(KoCi0uBvClpjVUJ0^f>R^$ tDbO6N4cCTKN9DzWjWQXlv6D4}2OwE}ej(=|zisb|wX3eMm_V&e9 zO~w22jb^sOe=R#uzrGp9{cLWUUW;Sf>m)XOZM@WHpqx|T*!$wMz-gQp$Kn3*4=*>} zP}kb=+p*q_b^oaJGVPbbwQyHDkjXix#!Jw*k6&dp*FL33LC-D4GyRh(sdOrxGNT=>{{jn;Ye$y_OabXrTfHCZAXP7iI};bAK#bb}em147$ITT%X+g z-23}IAN{@W^Jf|Q>Vc|LMe1xt-uCQMXRA)1t;)tr4rL#C+i>Q+Qx&Xxo1P=PwDyZ%L9#jq+P-7p8!zQ${ACG+!Ge++Bp#Ni;cMG1BTvms;mm7k8^w9<{=Q5QrCD&2(ELgUys`0F%IO3h`kG z%k6k&(t;8JI!!(^3!+Qd2?< zSe4W-=@>9-sfi2;sI5cCMJUjj(J=@GDjEd}7XlRB8pNX!cs1Of!o}Xg`M%xr{p2ic z?q(pM$$(B|qM*`*2D4C5Y(qyO2~f}&5V$bFbz|gW zH%88TFf!ngk}j_-k=m>bxD8Vw9DH3jxeL?^%|W3Y6f4cWecunJT(IyDB#wLJ{;AI6 z$GdRpTK%^n`AzM2;k68dcg6Uwc=U2VTmowq502whx@I~tUc zUz@C^PjB5E2VAYc^668f)XWX@K{|VHrj&__ZF8kf)>i(Z=&iajiw_3^VP7Agimf+< zfp31APTRPf-7ibc;)@4oKMPNZUN}B)Y)wmwc~geMqCLj~H$(z|E4}%-6?=^fGosCO zYI4LSO%7za7i8zxqq>8+YQZkcAHE#qu0yT%Gz&9hq zzFp(T&3oyrqUEny$psTN<$*v~32*<%_2C;Yj)ONXNxB&6hP#$?rBTYr*!bUX=}%Jf zBEi?IMF$%<^>Zw#??!VejEt}k&hKxx@ZXO)4&E!;aDUSBa(ev#W9RhY!I1RW%$k#$ zvX|enGv!QM`9fq~@7xlHdK?ZX;~+ln0_=2Mdt^(?n?EmaW`{QaokWMC!rq3&nOI>T z{wgFrn))_V&e9 zO~w22jb^sOe=R#uzrGp9{cLWUUW;Sf>m)XOZM@WHpqx|T*!$wMz-gQp$Kn3*4=*>} zP}kb=+p*q_b^oaJGVPbbwQyHDkjXix#!Jw*k6&dp*FL33LC-D4GyRh(sdOrxGN $1_$b.ps + ps2epsi $1_$b.ps $1_$b.eps + #convert -density 150x150 $1_$b.eps $1_$b.png + convert -density 75x75 $1_$b.eps $1_$b.png + rm $1_$b.ps $1_$b.eps +done + -- 2.43.0