Index: Makefile =================================================================== --- Makefile (nonexistent) +++ Makefile (revision 2876) @@ -0,0 +1,60 @@ +# This Makefile is a plain old hand written one; all configuration settings +# are included from $(ROOT)/Makefile.conf which is scconfig generated +ROOT=../.. + +IN=boxsym-rnd.1.mml boxsym-rnd.5.mml +OUT_HTML = boxsym-rnd.1.html boxsym-rnd.5.html +OUT_MAN1 = boxsym-rnd.1 boxsym-rnd.5 +OUT_LINT = boxsym-rnd.1.lint boxsym-rnd.5.lint + +OUTPUT = $(OUT_HTML) $(OUT_MAN1) index.html +MML = mml + +all: $(OUTPUT) + +lint: $(OUT_LINT) + +.SUFFIXES: .html .mml .lint + +.mml.html: .mml_linkmap + $(MML) -i copyright.mml -f html $< > $@ + +.mml: + $(MML) -i copyright.mml -f man $< > $@ + +.mml_linkmap: + $(MML) -i copyright.mml -f linkmap $(IN) > $@ + +index.html: $(IN) + @echo '' > $@ + @echo 'man page index - sch-rnd" >> $@ + +clean: + +distclean: + +genclean: + rm $(OUTPUT) 2>/dev/null ; true + +.mml.lint: + $(MML) -i copyright.mml -f lint $< + +install_all: + $(SCCBOX) mkdir -p "$(MAN1DIR)" + $(SCCBOX) $(HOW) "boxsym-rnd.1" "$(MAN1DIR)/boxsym-rnd.1" + $(SCCBOX) $(HOW) "boxsym-rnd.5" "$(MAN1DIR)/boxsym-rnd.5" + +install: + $(MAKE) install_all HOW="install -f" + +linstall: + $(MAKE) install_all HOW="linstall -f" + +uninstall: + $(MAKE) install_all HOW="uninstall" + +# TODO for install: +#include $(ROOT)/Makefile.conf + Index: README =================================================================== --- README (nonexistent) +++ README (revision 2876) @@ -0,0 +1,17 @@ +Manual pages are written in the manual markup format and are compiled into +manual and html using mml. Do not edit the generated manual or html pages. + +The generated files are commited in the repository so dependencies are not +required for casual users to build the project. + +The required tools and dependencies is the fawkml project's manmarkup util: + svn://svn.repo.hu/fawkml/trunk + +Installation procedure: + +1. svn checkout svn://svn.repo.hu/fawkml/trunk fawkml/trunk + +2. ./configure; optionally edit Makefile.conf; make; make install + +3. make install in trunk/util/manmarkup + Index: boxsym-rnd.1.mml =================================================================== --- boxsym-rnd.1.mml (nonexistent) +++ boxsym-rnd.1.mml (revision 2876) @@ -0,0 +1,15 @@ +boxsym-rnd +1 +2022-03-28 + + boxsym-rnd - generate box shaped symbol(s) + boxsym-rnd < infile.bs > + + +boxsym-rnd reads a boxsym description text file from +the user specified path infile.bs and generates +one or more sch-rnd symbols in the same directory as the infile is in, named +infile.sym and infile-*.sym (for slotted boxsyms). + +boxsym-rnd(5) + Index: boxsym-rnd.5.mml =================================================================== --- boxsym-rnd.5.mml (nonexistent) +++ boxsym-rnd.5.mml (revision 2876) @@ -0,0 +1,250 @@ +boxsym-rnd +7 +2022-03-28 + + boxsym-rnd - boxsym description syntax + + +A boxsym file specifies symbol attributes and pins (terminals) for a +single box symbol or for a set of inhomogenousely slotted box symbols. +When slotted symbols are generated, one symbol file is generated for each +slot containing only the pins defined for the given slot (file name +suffixed with slot name) and a monolith symbol is generated (using the +original file name) with all pins in one large box. + + + Syntax + +

+ The boxsym syntax is a plain text, line based, hierarchical file format + with a syntax simylar to tEDAx. Leading whitespace in lines are ignored. + Empty lines and lines starting with a hashmark (#) are ignored. The first + word of a line is a command. +

+ If the command is begin, the rest of the lines until the + matching end line are read as a nested level of hierarchy. + The syntax allows "begin in begin" (nesting to any depth). The second + word of begin and end are the type of the nested subtree. +

+ Commands issued outside of any begin-end blocks are said to be made in + global scope. + + + + + Refdes + +

+ There can be only one refdes line, in gloval scope. The argument is + a single word, the refdes attribute. If no refdes is specified, the + default refdes is used. + + + + + + Attributes + +

+ Attributes are symbol attributes. Attributes specified in the global scope + will be present in every symbol generated from the file. Attributes specified + for a slot will be present in the slot's symbol and in the monolith symbol. +

+ An attribute is defined in the following form: +

+ attr key value +

+ Key is a single word, value is anything up to the end of the line. This + defintion creates the attribute and places a dyntext+floater text object + printing the value of the attribute. If command is attr_both, + the text object is created to print key=value. If command is + attr_invis the attribute is still created but no text object + is made. + + + + + Defining pins + +

+ Pins are defined using a pin subtree: begin pin pinname, then lines defining + pin properties and then an end pin. Pinname should be the textual, human + readable name of the pin (also used as an input for the optional devmap), + not the physica pin number. +

For example: +

+begin pin Vcc
+	num 14
+	loc top
+end pin
+begin pin B
+	num 2:5:10:13
+	loc left
+	dir in
+	invcirc
+end pin
+	
+

+ Within the pin block the num line specifies the physical + footprint pin number; for a pin participating in a slot this should be + a colon separated list of pin number per slot. +

+ The mandatory loc line specifies the location of the pin, + the side of the box on which it should be placed, one of: left, right, + top or bottom. +

+ If a dir line is present, extra "pin direction" graphics is + drawn for the pin inside of the box. Values are in or out +

+ If invcirc is present, the pin will have a small circle + near the box to indicate the pin is inverted. + + + + + Arranging pins + +

+ By default pins are listed per side (loc), tightly packed, in order of + appearance in the file from the start of the side. This can be changed + using pinalign lines in global or slot scope: +

+pinalign left center
+	
+

+ will arrange left side pins on the center (vertically). + + + + + Defining a single box symbol + + The simplest form of box symbols emit a single file that has a single + large box with all pins. The boxsym definition for such symbols contain + the above described constructs and no "begin slot" subtrees. + + + + + Defining inhomogenous slot symbol + + In an multi-box, inhomogenous slot symbol there are different symbols + representing different sections of the component. +

+ The typical example is an MCU which is split up into a couple of + boxes: a few boxes per port groups and another few per peripheral + types. Each box represents a slot that appears only once in the MCU. +

+ Another typical example is logic ICs, e.g. 7400 implemented in two + different slot symbols: one for power (Vcc and gnd), presents once + in the component, and one for a 3 pin gate, same box used 4 times + for 4 different slots. +

+ An inhomogenous slot symbol does not have any pin in global scope, but + defines one or more "begin slot slotname" subtrees for all the different + type of slots. If the same slot appears multiple times in the component, + it needs to be defined only once (and multiple pin numbers assigned + in pin definitions.) + + + + + + + + Single box LDO + +

+refdes U??
+attr_invis sym-source       sch-rnd default symbol lib
+attr_invis sym-copyright    (C) 2022 Tibor 'Igor2' Palinkas
+attr_invis sym-license-dist GPLv2+
+attr_invis sym-license-use  Public Domain
+
+pinalign bottom center
+pinalign left center
+pinalign right center
+
+shape box
+begin pin in
+	num 1
+	loc left
+end pin
+
+begin pin gnd
+	num 2
+	loc bottom
+end pin
+
+begin pin out
+	num 3
+	loc right
+end pin
+
+
+
+
+
+ + + Inhomogenous slot 7400 + +
+refdes U??
+
+pinalign right center
+pinalign bottom center
+pinalign top center
+attr device 7400
+
+begin slot power
+	shape box
+	begin pin Vcc
+		num 14
+		loc top
+	end pin
+	begin pin gnd
+		num 7
+		loc bottom
+	end pin
+	pinalign top center
+	pinalign bottom center
+end slot
+
+
+begin slot logic
+	attr device 7400
+	attr_both slot 1
+
+	begin pin A
+		num 1:4:9:12
+		loc left
+		dir in
+	end pin
+
+	begin pin B
+		num 2:5:10:13
+		loc left
+		dir in
+	end pin
+
+	begin pin Z
+		num 3:6:8:11
+		loc right
+		dir out
+		invcirc
+	end pin
+
+	pinalign left center
+	pinalign right center
+end slot
+
+
+
+
+
+ + + +boxsym-rnd(1) + Index: copyright.mml =================================================================== --- copyright.mml (nonexistent) +++ copyright.mml (revision 2876) @@ -0,0 +1,21 @@ + +sch-rnd - manual\n +Copyright (C) 2022 Tibor 'Igor2' Palinkas\n +\n +This program is free software; you can redistribute it and/or modify\n +it under the terms of the GNU General Public License as published by\n +the Free Software Foundation; either version 2 of the License, or\n +(at your option) any later version.\n +\n +This program is distributed in the hope that it will be useful,\n +but WITHOUT ANY WARRANTY; without even the implied warranty of\n +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n +GNU General Public License for more details.\n +\n +You should have received a copy of the GNU General Public License along\n +with this program; if not, write to the Free Software Foundation, Inc.,\n +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n +\n +Contact: sch-rnd-man[removethis]@igor2.repo.hu + +sch-rnd manual