diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuit-macros/liblog.m4')
-rw-r--r-- | Master/texmf-dist/doc/latex/circuit-macros/liblog.m4 | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4 b/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4 index 0e8d4a50226..495ab2ad2b5 100644 --- a/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4 +++ b/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4 @@ -1,12 +1,12 @@ divert(-1) liblog.m4 Logic gates -* Circuit_macros Version 9.1, copyright (c) 2019 J. D. Aplevich under * -* the LaTeX Project Public License. The files of this distribution may * -* be redistributed or modified provided that this copyright notice is * -* included and provided that modifications are clearly marked to * -* distinguish them from this distribution. There is no warranty * -* whatsoever for these files. * +* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under * +* the LaTeX Project Public Licence in file Licence.txt. The files of * +* this distribution may be redistributed or modified provided that this * +* copyright notice is included and provided that modifications are clearly * +* marked to distinguish them from this distribution. There is no warranty * +* whatsoever for these files. * define(`liblog_') @@ -29,7 +29,7 @@ ifdef(`libcct_',,`include(libcct.m4)divert(-1)') inserted into a macro will display the macro name and current arguments =========================================================================' - `Size parameter for logic and grid mesh' + `Nonzero parameter for logic size and grid mesh' define(`L_unit',`(linewid/10)') `Dimensions in L_units, also for external use:' @@ -993,26 +993,29 @@ ifdef(`m4LI', ############################ - `FlipFlop( D|T|RS|JK, label, boxspec )' + `FlipFlop( D|T|RS|JK, label, boxspec, pinlength )' define(`FlipFlop',`ifelse( `$1',D, `FlipFlopX(`$3',`$2', - : D:PinD;E:CK:PinCK, , :Q:PinQ;:lg_bartxt(Q):PinNQ,, `$4')', + : D:PinD;E:CK:PinCK, , :Q:PinQ;:lg_bartxt(Q):PinNQ,,`$4',`$5')', `$1',T, `FlipFlopX(`$3',`$2', - : T:PinT;E:CK:PinCK, , :Q:PinQ;:lg_bartxt(Q):PinNQ,, `$4')', + : T:PinT;E:CK:PinCK, , :Q:PinQ;:lg_bartxt(Q):PinNQ,,`$4',`$5')', `$1',RS, `FlipFlopX(`$3',`$2', - : R:PinR;: S:PinS, , :Q:PinQ;:lg_bartxt(Q):PinNQ,, `$4')', + : R:PinR;: S:PinS, , :Q:PinQ;:lg_bartxt(Q):PinNQ,,`$4',`$5')', `$1',SR, `FlipFlopX(`$3',`$2', - : S:PinS;: R:PinR, , :Q:PinQ;:lg_bartxt(Q):PinNQ,, `$4')', + : S:PinS;: R:PinR, , :Q:PinQ;:lg_bartxt(Q):PinNQ,,`$4',`$5')', `$1',JK, `FlipFlopX(`$3',`$2', : J:PinJ;NE:CK:PinCK;: K:PinK, N:CLR:PinCLR, - :Q:PinQ;:lg_bartxt(Q):PinNQ, N:PR:PinPR, `$4')', -`FlipFlopX(`$3',`$2', ::Pin;, , :Q:PinQ;:lg_bartxt(Q):PinNQ, ,`$4')')') + :Q:PinQ;:lg_bartxt(Q):PinNQ, N:PR:PinPR,`$4',`$5')', +`FlipFlopX(`$3',`$2', ::Pin;, , :Q:PinQ;:lg_bartxt(Q):PinNQ,,`$4',`$5')')') `FlipFlopX( boxspec, center label, - leftpins, toppins, rightpins, bottompins) - General flipflop. Each of args 3 to 6 is null or - a string of pinspecs separated by semicolons (;). - Pinspecs are either empty (null) or of the form + leftpins, toppins, rightpins, bottompins, + pinlength) + General flipflop. Arg1 modifies the + box (labelled Chip) default specification. + Each of args 3 to 6 is null or a string of + pinspecs separated by semicolons (;). + A pinspec is either empty (null) or of the form [pinopts]:[label[:Picname]]. The first colon (:) draws the pin. Pins are placed top to bottom or left to right along the box edges with null @@ -1022,16 +1025,18 @@ define(`FlipFlop',`ifelse( :Picname is present in a pinspec then Picname replaces the default name. A pinspec label is text placed at the pin base. Semicolons are not - allowed in labels; use eg \char59{} instead, - and to put a bar over a label, use - lg_bartxt(label). The pinopts are [L|M|I|O][N][E] - L=active low out; M=active low in; - I=inward arrow; O=outward arrow; - N=pin with not circle; E=edge trigger' + allowed in labels; use eg \char59{} instead. + To put a bar over a label, use lg_bartxt(label). + The pinopts are [L|M|I|O][N][E] + L=active low out; M=active low in; + I=inward arrow; O=outward arrow; + N=pin with not circle; E=edge trigger + Optional arg7 is the length of pins' define(`FlipFlopX',`[ - Chip: box ifelse(`$1',,`wid_ FF_wid*L_unit ht_ FF_ht*L_unit',`$1') + Chip: box wid_ FF_wid*L_unit ht_ FF_ht*L_unit `$1' dnl Center label ifelse(`$2',,,"ifsvg(`svg_small($2,75)',`\scriptsize $2')" at Chip.c) + ifelse(`$7',,,`pushdef(`lg_plen',(`$7')/L_unit)')dnl ifelse(`$3',,, `m4_ffside(`(m4x-0.5)/m4_pc between Chip.nw_ and Chip.sw_',`$3',W,w)') ifelse(`$4',,, @@ -1040,7 +1045,8 @@ dnl Center label `m4_ffside(`(m4x-0.5)/m4_pc between Chip.ne_ and Chip.se_',`$5',E,e)') ifelse(`$6',,, `m4_ffside(`(m4x-0.5)/m4_pc between Chip.sw_ and Chip.se_',`$6',S,s)') - `$7' ]') + ifelse(`$7',,,`popdef(`lg_plen')')dnl + `$8' ]') dnl `Stack, count, and draw the pins on the given side' define(`m4_ffside', `stacksplit_(`m4pr',`$2',;)define(`m4_pc',0)dnl |