Compare commits

..

48 Commits

Author SHA1 Message Date
Colin Seymour
edabdc75a5 Bump version: 5.2.0 (#3765) 2017-08-10 14:54:09 +01:00
Wade Urry
6db7736860 Add flow-typed to vendor.yml (#3741) 2017-08-09 11:25:27 +01:00
John Gardner
dd3d8586c5 Refine definition of KiCad (#3743)
* Refine definition of KiCad language

* Add ".sch" as a registered Scheme extension

* Add more meaningful samples from real repositories
2017-08-08 18:47:26 +10:00
John Gardner
f1daf6192c Add Adobe Font Metrics to recognised filetypes (#3731)
* Add Adobe Font Metrics to recognised filetypes

* Reduce filesizes of AFM samples

* Add a self-generated, unpruned AFM sample
2017-08-08 18:30:37 +10:00
Paul Chaignon
2c41df376f Switch grammar for Reason (#3732) 2017-08-06 11:00:35 +02:00
James Dennes
3391dcce6a Make Language methods more resilient to non-String input (#3752)
* Add failing test for finding with non-String input

Show the failing behaviour of find_by_alias, find_by_name, and []
when non-String input is provided.

* Return nil rather than erroring on non-String input
2017-08-02 14:07:44 +02:00
John Gardner
f75c5707a6 Add support for Gerber files (#3744)
* Add grammar for PCB/Gerber Images

* Add language definition for Gerber files

* Fix rogue punctuation and rip chunks off Gerber
2017-08-02 22:00:16 +10:00
John Gardner
25de4e0ae2 Add Printer Font ASCII to recognised PostScript extensions (#3734)
* Register Adobe Type 1 fonts as PostScript files

* Add logic for recognising generated PFA files

* Extend list of PostScript generators
2017-08-02 21:58:40 +10:00
Yuki Izumi
7451424f12 Allow POD with Perl shebangs (#3735)
* Allow perl interpreter for Pod too

* Use precise dist

* This is a tautology

* Update heuristic to accept candidate input

* Minor rename
2017-07-31 13:39:20 +10:00
John Gardner
b94e018c3a Change Haskell's colour to use official branding (#3728)
Resolves github/linguist#3727.
2017-07-22 14:21:22 +01:00
Jared Harper
4dcf223c8e Support for C++ files generated by protobuf/grpc (#3640)
* Support for C++ files generated by protobuf/grpc

This changeset includes a sample generated file.

[grpc](http://grpc.io) is a high performance, open-source universal
RPC framework.

* Account for older gRPC protobuf plugin message
2017-07-22 14:20:55 +01:00
Santiago M. Mola
329f80d245 fix classifier tests (#3709)
test_classify_ambiguous_languages was not running any test, since
it was looking only for languages that are ambiguous on
filename for known filenames (rather than ambiguous for filename
or extension).

Note that test time and assertions.
Before:
  Finished in 0.149294s, 40.1892 runs/s, 46.8874 assertions/s.
After:
  Finished in 3.043109s, 1.9717 runs/s, 224.7702 assertions/s.
2017-07-22 14:20:15 +01:00
Santiago M. Mola
085604948e Add support for XPM. (#3706)
* .xpm and .pm extensions associated with XPM.

* .pm is disambiguated by searching the /* XPM */ string.
  This is how `file` performs detection and should work with
  every XPM3 file (most XPM generated by software later than 1991).

Added XPM samples:

* stick-unfocus.xpm: extracted from Fluxbox (MIT License)
  0c13ddc0c8/data/styles/Emerge/pixmaps/stick-unfocus.xpm

* cc-public_domain_mark_white.pm: public domain image from
  https://commons.wikimedia.org/wiki/File:Cc-public_domain_mark_white.svg
  converted to XPM with ImageMagick (convert input.svg output.xpm).
2017-07-22 14:19:22 +01:00
Colin Seymour
e60384b018 Release v5.1.0 (#3725)
* sublime-spintools now has a license so no need for whitelist

* Bump version: 5.0.12

* Use the more apt release of v5.1.0
2017-07-22 14:16:16 +01:00
Santiago M. Mola
470a82d9f5 shell: add more interpreters (#3708)
* ash: only interpreter, extension is more commonly used for
  Kingdom of Loathing scripting, e.g. github.com/twistedmage/assorted-kol-scripts

* dash: only interpreter, extension is more commonly used for
  dashboarding-related stuff

* ksh: extension was already present

* mksh

* pdksh
2017-07-20 10:33:28 +01:00
Santiago M. Mola
37979b26b0 improve .ms disambiguation (Unix Assembly / MAXScript) (#3707)
A few MAXScript files were misclassified as Unix Assembly.
Some of them can be found at github.com/davestewart/maxscript

* This commit changes the heuristic which looked for labels
  such as ".LG7E0:" to actually match the full label including
  the colon. This reduced the number of MAXScript files
  misclassified as Unix Assembly, without any new Unix Assembly
  misclassified so far.

* add MAXScript sample rolloutCreator.ms, extrated from MIT repo:
  https://github.com/davestewart/maxscript/blob/master/3D/3ds2ae/02_resources/max%20scripts/3ds%20ax%20scripts/rolloutCreator.ms
2017-07-10 10:03:12 +01:00
Santiago M. Mola
1a6df12902 fix Coq sample JsNumber.v (#3710)
It was fetched as HTML from GitHub instead of raw.
2017-07-10 09:41:36 +01:00
John Gardner
24e196df4e Add NCSA to license whitelist (#3714)
References:
* https://github.com/github/linguist/pull/3689#issuecomment-313665976
2017-07-08 00:59:05 +10:00
James Adams
8d178bfaed Improve Pan language support (#3691)
* Add a larger set of sample files for Pan

This is a fairly good cross section of Pan based on code from:
* https://github.com/quattor/template-library-examples
* https://github.com/quattor/template-library-core

* Add Pan language grammar
2017-07-03 18:49:15 +02:00
Chris Wilkinson
e9ec699931 Add xspec as XML file extension (#3702) 2017-07-03 18:39:39 +02:00
John Gardner
9a6c3f2c4d Register "cpanfile" as a Perl filename (#3704) 2017-07-03 20:45:20 +10:00
Theodore Dubois
648720301d Add misclassified C sample (#3652)
This sample is misclassified as Objective-C.
2017-06-30 17:11:50 +01:00
David Aylaian
c552e25bd7 Add C sample (#3698)
* Add C sample

Sample was incorrectly being identified as C++

* Changed asm.h license to the Unlicense

* Changed asm.h license to Apache 2.0
2017-06-30 09:32:16 +01:00
Justin Lecher
d5c8db3fb9 Add new language for the Easybuild framework (#3466)
The hpcugent/easybuild-framework is a python framework for the installation
of application in an HPC context. The actual package build description are
written in python but having .eb as extension.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
2017-06-26 09:07:36 +01:00
Mahmoud Samir Fayed
632bcdc1ad Added Ring Language Support (#3662)
* update .gitmodules

* Update grammars.yml

* Create hello.ring

* Create Natural.ring

* Create weblib.ring

* vendor/grammars/language-ring

* fix order in grammars.yml

* remove two files from samples

* delete hello.ring

* Update languages.yml - add the R

* Create hello.ring

* Create natural.ring

* Create weblib.ring

* Create grammars.yml

* Create .gitmodules

* Create languages.yml

* Create languages.yml

* Create language-ring.txt

* Update .gitmodules

Prefer HTTPS links.

* Update hello.ring

Sample file from "real" applications (under permissive license) to train the Bayesian classifier.

* Update languages.yml

* Update weblib.ring

Reduce the file size

* Update .gitmodules

* Update .gitmodules

* Update .gitmodules

* Update .gitmodules

* Update submodule : language-ring

* Update weblib.ring

Sample : Using the web library.

* Create weighthistory

Add Sample

* Rename weighthistory to weighthistory.ring

* Update weblib.ring
2017-06-24 16:22:01 +01:00
Colby Pines
6b221172c0 Update vendor.yml: skeleton.css (#3682) 2017-06-24 13:19:43 +02:00
Robert Koeninger
6f0d801375 Added syntax definition for Fantom language (#3660)
* Added mgiannini/sublime-factor as a submodule

Provided better color for Fantom
Added license for sublime-fantom
Specified tm_scope for Fantom

* Redirected submodule for Fantom to fork with updated grammar

* Triggering build

* Updating sublime-fantom submodule

* Updated submodule sublime-fantom

* Adding Fantom samples
2017-06-21 09:29:13 +02:00
John Gardner
128abe3533 Fix spelling of Perl 6 (#3672)
Resolves #3671.
2017-06-20 19:39:39 +10:00
Colin Seymour
9312353d20 Improve running from cloned repo docs (#3669)
* Improve running from cloned repo docs
2017-06-20 10:29:17 +02:00
John Gardner
b6460f8ed6 Add recognition and classification of WebAssembly (#3650) 2017-05-30 18:02:03 +10:00
andretshurotshka
60f864a138 Support for Type Language (#3593)
* Support for Type Language

* Update Type Language

* Add one more sample for Type Language

* Update Type Language grammar
2017-05-29 06:46:56 +01:00
Colin Seymour
ca6121e3ea Update MD5 digest for testing under Ruby 2.4 (#3643)
* Update md5 sums for Ruby 2.4

Ruby 2.4 deprecated Fixnum & Bignum into Integer. This means the MD5 digests for the integers in our tests have a class of Integer instead of Fixnum which means we need to update the digests specifically for 2.4.

* Use Gem::Version for safer version comparison
2017-05-26 08:16:12 +01:00
Colin Seymour
7c17b1f10c Bump to v5.0.11 (#3642) 2017-05-25 16:12:34 +01:00
Paul Chaignon
d490fc303f Support for CWeb language (#3592)
Move .w file extension for CWeb to its own entry.
2017-05-25 09:22:40 +01:00
Michael Hadley
20fdac95f6 Add Closure Templates (#3634)
* Add Closure Templates to languages.yml

* Run script/add-grammar

* Add sample

* Run script/set-language-ids

* Add codemirror_mime_type
2017-05-25 09:15:32 +01:00
Colin Seymour
234ee8b6d2 Update location of Reason grammar (#3639) 2017-05-25 08:59:02 +01:00
Ross Kirsling
58ab593a64 Switch Dart grammars (Sublime → Atom). (#3633) 2017-05-20 17:41:46 +01:00
John Gardner
ec1f6a4cd6 Add ".nr" as a Roff file extension (#3630) 2017-05-18 03:03:47 +10:00
Colin Seymour
3eea8212f4 Revert "Use Textmate's HAML grammar" (#3629)
* Revert "Use Textmate's HAML grammar (#3627)"

This reverts commit a1e09ae3e6.

* Add back missing grammar sources
2017-05-16 15:58:39 +01:00
Vicent Martí
a1e09ae3e6 Use Textmate's HAML grammar (#3627)
* Use Textmate's HAML grammar

* Whitelist license
2017-05-16 12:46:04 +02:00
Robert Koeninger
c1f76c26e5 Add Shen grammar to vendor/README.md (#3626)
* Added sublime-shen as submodule

* Specified tm_scope in languages.yml

* Imported copy of license

* Added Shen grammar repo to vendor/README.md
2017-05-16 08:12:45 +01:00
Robert Koeninger
0983f62e02 Add syntax grammar for Shen language (#3625)
* Added sublime-shen as submodule

* Specified tm_scope in languages.yml

* Imported copy of license
2017-05-15 15:06:09 +01:00
Samuel Gunadi
190e54c020 Add comp, tesc, and tese as GLSL extensions (#3614)
* Add comp, tesc, and tese as GLSL file extensions

* Add GLSL compute shader sample

* Add GLSL tessellation control shader sample

* Add GLSL tessellation evaluation shader sample

* Remove .comp from GLSL extensions

We have to be sure that most of the .comp files on GitHub are indeed GLSL compute shaders.

* Remove GLSL compute shader sample
2017-05-15 09:05:07 +01:00
Lucas Bajolet
ded651159d Add Pep8 Assembly language (#2070)
Pep/8 is a toy assembly language used in some universities for teaching
the basics of assembly and low-level programming.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>
2017-05-15 09:02:06 +01:00
Serghei Iakovlev
acbab53198 Update Zephir links (#3608) 2017-05-10 15:56:21 +01:00
Simen Bekkhus
fba4babdcd Don't show npm lockfiles by default (#3611) 2017-05-10 15:55:16 +01:00
Colin Seymour
eb6a213921 Revert "Revert "Switch the PHP grammar to the upstream repo (#3575)"" (#3616)
* Revert "Revert "Switch the PHP grammar to the upstream repo (#3575)" (#3603)"

This reverts commit e93f41f097.
2017-05-10 15:53:15 +01:00
Colin Seymour
5e2c79e950 Bump version to v5.0.10 (#3604) 2017-05-05 18:49:35 +01:00
249 changed files with 20480 additions and 1220 deletions

43
.gitmodules vendored
View File

@@ -112,9 +112,6 @@
[submodule "vendor/grammars/fancy-tmbundle"]
path = vendor/grammars/fancy-tmbundle
url = https://github.com/fancy-lang/fancy-tmbundle
[submodule "vendor/grammars/dart-sublime-bundle"]
path = vendor/grammars/dart-sublime-bundle
url = https://github.com/guillermooo/dart-sublime-bundle
[submodule "vendor/grammars/sublimetext-cuda-cpp"]
path = vendor/grammars/sublimetext-cuda-cpp
url = https://github.com/harrism/sublimetext-cuda-cpp
@@ -330,7 +327,7 @@
url = https://github.com/textmate/php-smarty.tmbundle
[submodule "vendor/grammars/php.tmbundle"]
path = vendor/grammars/php.tmbundle
url = https://github.com/brandonblack/php.tmbundle
url = https://github.com/textmate/php.tmbundle
[submodule "vendor/grammars/postscript.tmbundle"]
path = vendor/grammars/postscript.tmbundle
url = https://github.com/textmate/postscript.tmbundle
@@ -387,7 +384,7 @@
url = https://github.com/textmate/c.tmbundle
[submodule "vendor/grammars/zephir-sublime"]
path = vendor/grammars/zephir-sublime
url = https://github.com/vmg/zephir-sublime
url = https://github.com/phalcon/zephir-sublime
[submodule "vendor/grammars/llvm.tmbundle"]
path = vendor/grammars/llvm.tmbundle
url = https://github.com/whitequark/llvm.tmbundle
@@ -797,9 +794,6 @@
[submodule "vendor/grammars/atom-language-perl6"]
path = vendor/grammars/atom-language-perl6
url = https://github.com/perl6/atom-language-perl6
[submodule "vendor/grammars/reason"]
path = vendor/grammars/reason
url = https://github.com/facebook/reason
[submodule "vendor/grammars/language-xcompose"]
path = vendor/grammars/language-xcompose
url = https://github.com/samcv/language-xcompose
@@ -839,3 +833,36 @@
[submodule "vendor/grammars/language-jolie"]
path = vendor/grammars/language-jolie
url = https://github.com/fmontesi/language-jolie
[submodule "vendor/grammars/language-typelanguage"]
path = vendor/grammars/language-typelanguage
url = https://github.com/goodmind/language-typelanguage
[submodule "vendor/grammars/sublime-shen"]
path = vendor/grammars/sublime-shen
url = https://github.com/rkoeninger/sublime-shen
[submodule "vendor/grammars/Sublime-Pep8"]
path = vendor/grammars/Sublime-Pep8
url = https://github.com/R4PaSs/Sublime-Pep8
[submodule "vendor/grammars/dartlang"]
path = vendor/grammars/dartlang
url = https://github.com/dart-atom/dartlang
[submodule "vendor/grammars/language-closure-templates"]
path = vendor/grammars/language-closure-templates
url = https://github.com/mthadley/language-closure-templates
[submodule "vendor/grammars/language-webassembly"]
path = vendor/grammars/language-webassembly
url = https://github.com/Alhadis/language-webassembly
[submodule "vendor/grammars/language-ring"]
path = vendor/grammars/language-ring
url = https://github.com/MahmoudFayed/atom-language-ring
[submodule "vendor/grammars/sublime-fantom"]
path = vendor/grammars/sublime-fantom
url = https://github.com/rkoeninger/sublime-fantom
[submodule "vendor/grammars/language-pan"]
path = vendor/grammars/language-pan
url = https://github.com/quattor/language-pan
[submodule "vendor/grammars/language-pcb"]
path = vendor/grammars/language-pcb
url = https://github.com/Alhadis/language-pcb
[submodule "vendor/grammars/language-reason"]
path = vendor/grammars/language-reason
url = https://github.com/reasonml-editor/language-reason

View File

@@ -31,3 +31,4 @@ git:
depth: 3
cache: bundler
dist: precise

View File

@@ -67,6 +67,16 @@ For development you are going to want to checkout out the source. To get it, clo
cd linguist/
script/bootstrap
To run Linguist from the cloned repository, you will need to generate the code samples first:
bundle exec rake samples
Run this command each time a [sample][samples] has been modified.
To run Linguist from the cloned repository:
bundle exec bin/linguist --breakdown
To run the tests:
bundle exec rake test

View File

@@ -100,6 +100,8 @@ vendor/grammars/Sublime-Modula-2:
- source.modula2
vendor/grammars/Sublime-Nit:
- source.nit
vendor/grammars/Sublime-Pep8/:
- source.pep8
vendor/grammars/Sublime-QML:
- source.qml
vendor/grammars/Sublime-REBOL:
@@ -247,11 +249,9 @@ vendor/grammars/cython:
- source.cython
vendor/grammars/d.tmbundle:
- source.d
vendor/grammars/dart-sublime-bundle:
vendor/grammars/dartlang:
- source.dart
- source.pubspec
- text.dart-analysis-output
- text.dart-doccomments
- source.yaml-ext
vendor/grammars/desktop.tmbundle:
- source.desktop
vendor/grammars/diff.tmbundle:
@@ -358,6 +358,8 @@ vendor/grammars/language-click:
- source.click
vendor/grammars/language-clojure:
- source.clojure
vendor/grammars/language-closure-templates:
- text.html.soy
vendor/grammars/language-coffee-script:
- source.coffee
- source.litcoffee
@@ -378,6 +380,7 @@ vendor/grammars/language-css:
vendor/grammars/language-emacs-lisp:
- source.emacs.lisp
vendor/grammars/language-fontforge:
- source.afm
- source.fontforge
- source.opentype
- text.sfd
@@ -425,8 +428,18 @@ vendor/grammars/language-ncl:
- source.ncl
vendor/grammars/language-ninja:
- source.ninja
vendor/grammars/language-pan:
- source.pan
vendor/grammars/language-pcb:
- source.gerber
- source.pcb.board
- source.pcb.schematic
- source.pcb.sexp
vendor/grammars/language-povray:
- source.pov-ray sdl
vendor/grammars/language-reason:
- source.reason
- source.reason.hover.type
vendor/grammars/language-regexp:
- source.regexp
- source.regexp.extended
@@ -434,6 +447,8 @@ vendor/grammars/language-renpy:
- source.renpy
vendor/grammars/language-restructuredtext:
- text.restructuredtext
vendor/grammars/language-ring:
- source.ring
vendor/grammars/language-roff:
- source.ditroff
- source.ditroff.desc
@@ -453,11 +468,15 @@ vendor/grammars/language-toc-wow:
- source.toc
vendor/grammars/language-turing:
- source.turing
vendor/grammars/language-typelanguage:
- source.tl
vendor/grammars/language-viml:
- source.viml
vendor/grammars/language-wavefront:
- source.wavefront.mtl
- source.wavefront.obj
vendor/grammars/language-webassembly:
- source.webassembly
vendor/grammars/language-xbase:
- source.harbour
vendor/grammars/language-xcompose:
@@ -567,8 +586,6 @@ vendor/grammars/r.tmbundle:
- text.tex.latex.rd
vendor/grammars/rascal-syntax-highlighting:
- source.rascal
vendor/grammars/reason:
- source.reason
vendor/grammars/ruby-slim.tmbundle:
- text.slim
vendor/grammars/ruby.tmbundle:
@@ -618,6 +635,8 @@ vendor/grammars/sublime-cirru:
- source.cirru
vendor/grammars/sublime-clips:
- source.clips
vendor/grammars/sublime-fantom:
- source.fan
vendor/grammars/sublime-glsl:
- source.essl
- source.glsl
@@ -639,6 +658,8 @@ vendor/grammars/sublime-rexx:
- source.rexx
vendor/grammars/sublime-robot-plugin:
- text.robot
vendor/grammars/sublime-shen:
- source.shen
vendor/grammars/sublime-spintools:
- source.regexp.spin
- source.spin

View File

@@ -57,7 +57,7 @@ module Linguist
composer_lock? ||
node_modules? ||
go_vendor? ||
npm_shrinkwrap? ||
npm_shrinkwrap_or_package_lock? ||
godeps? ||
generated_by_zephir? ||
minified_files? ||
@@ -81,7 +81,8 @@ module Linguist
generated_grammarkit? ||
generated_roxygen2? ||
generated_jison? ||
generated_yarn_lock?
generated_yarn_lock? ||
generated_grpc_cpp?
end
# Internal: Is the blob an Xcode file?
@@ -243,7 +244,11 @@ module Linguist
#
# Returns true or false.
def generated_postscript?
return false unless ['.ps', '.eps'].include? extname
return false unless ['.ps', '.eps', '.pfa'].include? extname
# Type 1 and Type 42 fonts converted to PostScript are stored as hex-encoded byte streams; these
# streams are always preceded the `eexec` operator (if Type 1), or the `/sfnts` key (if Type 42).
return true if data =~ /(\n|\r\n|\r)\s*(?:currentfile eexec\s+|\/sfnts\s+\[\1<)\h{8,}\1/
# We analyze the "%%Creator:" comment, which contains the author/generator
# of the file. If there is one, it should be in one of the first few lines.
@@ -253,10 +258,12 @@ module Linguist
# Most generators write their version number, while human authors' or companies'
# names don't contain numbers. So look if the line contains digits. Also
# look for some special cases without version numbers.
return creator =~ /[0-9]/ ||
creator.include?("mpage") ||
creator.include?("draw") ||
creator.include?("ImageMagick")
return true if creator =~ /[0-9]|draw|mpage|ImageMagick|inkscape|MATLAB/ ||
creator =~ /PCBNEW|pnmtops|\(Unknown\)|Serif Affinity|Filterimage -tops/
# EAGLE doesn't include a version number when it generates PostScript.
# However, it does prepend its name to the document's "%%Title" field.
!!creator.include?("EAGLE") and lines[0..4].find {|line| line =~ /^%%Title: EAGLE Drawing /}
end
def generated_go?
@@ -326,11 +333,11 @@ module Linguist
!!name.match(/vendor\/((?!-)[-0-9A-Za-z]+(?<!-)\.)+(com|edu|gov|in|me|net|org|fm|io)/)
end
# Internal: Is the blob a generated npm shrinkwrap file?
# Internal: Is the blob a generated npm shrinkwrap or package lock file?
#
# Returns true or false.
def npm_shrinkwrap?
!!name.match(/npm-shrinkwrap\.json/)
def npm_shrinkwrap_or_package_lock?
name.match(/npm-shrinkwrap\.json/) || name.match(/package-lock\.json/)
end
# Internal: Is the blob part of Godeps/,
@@ -489,5 +496,18 @@ module Linguist
return false unless lines.count > 0
return lines[0].include?("# THIS IS AN AUTOGENERATED FILE")
end
# Internal: Is this a protobuf/grpc-generated C++ file?
#
# A generated file contains:
# // Generated by the gRPC C++ plugin.
# on the first line.
#
# Return true or false
def generated_grpc_cpp?
return false unless %w{.cpp .hpp .h .cc}.include? extname
return false unless lines.count > 1
return lines[0].start_with?("// Generated by the gRPC")
end
end
end

View File

@@ -17,9 +17,8 @@ module Linguist
data = blob.data
@heuristics.each do |heuristic|
if heuristic.matches?(blob.name)
languages = Array(heuristic.call(data))
return languages if languages.any? || languages.all? { |l| candidates.include?(l) }
if heuristic.matches?(blob.name, candidates)
return Array(heuristic.call(data))
end
end
@@ -28,7 +27,8 @@ module Linguist
# Internal: Define a new heuristic.
#
# languages - String names of languages to disambiguate.
# exts_and_langs - String names of file extensions and languages to
# disambiguate.
# heuristic - Block which takes data as an argument and returns a Language or nil.
#
# Examples
@@ -41,23 +41,28 @@ module Linguist
# end
# end
#
def self.disambiguate(*extensions, &heuristic)
@heuristics << new(extensions, &heuristic)
def self.disambiguate(*exts_and_langs, &heuristic)
@heuristics << new(exts_and_langs, &heuristic)
end
# Internal: Array of defined heuristics
@heuristics = []
# Internal
def initialize(extensions, &heuristic)
@extensions = extensions
def initialize(exts_and_langs, &heuristic)
@exts_and_langs, @candidates = exts_and_langs.partition {|e| e =~ /\A\./}
@heuristic = heuristic
end
# Internal: Check if this heuristic matches the candidate languages.
def matches?(filename)
# Internal: Check if this heuristic matches the candidate filenames or
# languages.
def matches?(filename, candidates)
filename = filename.downcase
@extensions.any? { |ext| filename.end_with?(ext) }
candidates = candidates.compact.map(&:name)
@exts_and_langs.any? { |ext| filename.end_with?(ext) } ||
(candidates.any? &&
(@candidates - candidates == [] &&
candidates - @candidates == []))
end
# Internal: Perform the heuristic
@@ -297,7 +302,7 @@ module Linguist
disambiguate ".ms" do |data|
if /^[.'][a-z][a-z](\s|$)/i.match(data)
Language["Roff"]
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z]/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z][_A-Za-z0-9]*:/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
Language["Unix Assembly"]
else
Language["MAXScript"]
@@ -340,19 +345,21 @@ module Linguist
elsif /use strict|use\s+v?5\./.match(data)
Language["Perl"]
elsif /^(use v6|(my )?class|module)/.match(data)
Language["Perl6"]
Language["Perl 6"]
end
end
disambiguate ".pm" do |data|
if /^\s*(?:use\s+v6\s*;|(?:\bmy\s+)?class|module)\b/.match(data)
Language["Perl6"]
Language["Perl 6"]
elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
Language["Perl"]
elsif /^\s*\/\* XPM \*\//.match(data)
Language["XPM"]
end
end
disambiguate ".pod" do |data|
disambiguate ".pod", "Pod", "Perl" do |data|
if /^=\w+\b/.match(data)
Language["Pod"]
else
@@ -446,7 +453,7 @@ module Linguist
if /^\s*%[ \t]+|^\s*var\s+\w+\s*:=\s*\w+/.match(data)
Language["Turing"]
elsif /^\s*(?:use\s+v6\s*;|\bmodule\b|\b(?:my\s+)?class\b)/.match(data)
Language["Perl6"]
Language["Perl 6"]
elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
Language["Perl"]
end

View File

@@ -109,7 +109,7 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.find_by_name(name)
return nil if name.to_s.empty?
return nil if !name.is_a?(String) || name.to_s.empty?
name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase])
end
@@ -124,7 +124,7 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.find_by_alias(name)
return nil if name.to_s.empty?
return nil if !name.is_a?(String) || name.to_s.empty?
name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase])
end
@@ -214,7 +214,7 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.[](name)
return nil if name.to_s.empty?
return nil if !name.is_a?(String) || name.to_s.empty?
lang = @index[name.downcase]
return lang if lang

View File

@@ -2,8 +2,7 @@
#
# type - Either data, programming, markup, prose, or nil
# aliases - An Array of additional aliases (implicitly
# includes the lowercase name with spaces replaced
# by dashes)
# includes name.downcase)
# ace_mode - A String name of the Ace Mode used for highlighting whenever
# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg.
# Use "text" if a mode does not exist.
@@ -172,6 +171,18 @@ Ada:
- ada2005
ace_mode: ada
language_id: 11
Adobe Font Metrics:
type: data
tm_scope: source.afm
extensions:
- ".afm"
aliases:
- acfm
- adobe composite font metrics
- adobe multiple font metrics
- amfm
ace_mode: text
language_id: 147198098
Agda:
type: programming
color: "#315665"
@@ -456,7 +467,6 @@ C:
- ".cats"
- ".h"
- ".idc"
- ".w"
interpreters:
- tcc
ace_mode: c_cpp
@@ -590,6 +600,13 @@ CSV:
extensions:
- ".csv"
language_id: 51
CWeb:
type: programming
extensions:
- ".w"
tm_scope: none
ace_mode: text
language_id: 657332628
Cap'n Proto:
type: programming
tm_scope: source.capnp
@@ -688,6 +705,18 @@ Clojure:
filenames:
- riemann.config
language_id: 62
Closure Templates:
type: markup
group: HTML
ace_mode: soy_template
codemirror_mode: soy
codemirror_mime_type: text/x-soy
alias:
- soy
extensions:
- ".soy"
tm_scope: text.html.soy
language_id: 357046146
CoffeeScript:
type: programming
tm_scope: source.coffee
@@ -1067,6 +1096,16 @@ Eagle:
codemirror_mode: xml
codemirror_mime_type: text/xml
language_id: 97
Easybuild:
type: data
group: Python
ace_mode: python
codemirror_mode: python
codemirror_mime_type: text/x-python
tm_scope: source.python
extensions:
- ".eb"
language_id: 342840477
Ecere Projects:
type: data
group: JavaScript
@@ -1214,10 +1253,10 @@ Fancy:
language_id: 109
Fantom:
type: programming
color: "#dbded5"
color: "#14253c"
extensions:
- ".fan"
tm_scope: none
tm_scope: source.fan
ace_mode: text
language_id: 110
Filebench WML:
@@ -1360,6 +1399,8 @@ GLSL:
- ".glslv"
- ".gshader"
- ".shader"
- ".tesc"
- ".tese"
- ".vert"
- ".vrx"
- ".vsh"
@@ -1428,6 +1469,29 @@ Gentoo Eclass:
codemirror_mode: shell
codemirror_mime_type: text/x-sh
language_id: 128
Gerber Image:
type: data
aliases:
- rs-274x
extensions:
- ".gbr"
- ".gbl"
- ".gbo"
- ".gbp"
- ".gbs"
- ".gko"
- ".gpb"
- ".gpt"
- ".gtl"
- ".gto"
- ".gtp"
- ".gts"
interpreters:
- "gerbv"
- "gerbview"
tm_scope: source.gerber
ace_mode: text
language_id: 404627610
Gettext Catalog:
type: prose
searchable: false
@@ -1738,7 +1802,7 @@ Harbour:
language_id: 156
Haskell:
type: programming
color: "#29b544"
color: "#5e5086"
extensions:
- ".hs"
- ".hsc"
@@ -2085,15 +2149,37 @@ KRL:
tm_scope: none
ace_mode: text
language_id: 186
KiCad:
type: programming
KiCad Board:
type: data
extensions:
- ".brd"
tm_scope: source.pcb.board
ace_mode: text
language_id: 140848857
KiCad Layout:
type: data
aliases:
- pcbnew
extensions:
- ".kicad_pcb"
- ".kicad_mod"
- ".kicad_wks"
filenames:
- fp-lib-table
tm_scope: source.pcb.sexp
ace_mode: lisp
codemirror_mode: commonlisp
codemirror_mime_type: text/x-common-lisp
language_id: 187
KiCad Schematic:
type: data
aliases:
- eeschema schematic
extensions:
- ".sch"
- ".brd"
- ".kicad_pcb"
tm_scope: none
tm_scope: source.pcb.schematic
ace_mode: text
language_id: 187
language_id: 622447435
Kit:
type: markup
ace_mode: html
@@ -2450,6 +2536,7 @@ Makefile:
- Makefile.frag
- Makefile.in
- Makefile.inc
- Makefile.wat
- makefile
- makefile.sco
- mkfile
@@ -3100,7 +3187,7 @@ Pan:
color: "#cc0000"
extensions:
- ".pan"
tm_scope: none
tm_scope: source.pan
ace_mode: text
language_id: 276
Papyrus:
@@ -3160,6 +3247,14 @@ Pascal:
codemirror_mode: pascal
codemirror_mime_type: text/x-pascal
language_id: 281
Pep8:
type: programming
color: "#C76F5B"
extensions:
- ".pep"
ace_mode: text
tm_scope: source.pep8
language_id: 840372442
Perl:
type: programming
tm_scope: source.perl
@@ -3179,10 +3274,12 @@ Perl:
- ".pod"
- ".psgi"
- ".t"
filenames:
- cpanfile
interpreters:
- perl
language_id: 282
Perl6:
Perl 6:
type: programming
color: "#0000fb"
extensions:
@@ -3260,6 +3357,8 @@ Pod:
wrap: true
extensions:
- ".pod"
interpreters:
- perl
tm_scope: none
language_id: 288
PogoScript:
@@ -3283,6 +3382,7 @@ PostScript:
extensions:
- ".ps"
- ".eps"
- ".pfa"
tm_scope: source.postscript
aliases:
- postscr
@@ -3708,6 +3808,14 @@ RenderScript:
tm_scope: none
ace_mode: text
language_id: 323
Ring:
type: programming
color: "#0e60e3"
extensions:
- ".ring"
tm_scope: source.ring
ace_mode: text
language_id: 431
RobotFramework:
type: programming
extensions:
@@ -3740,6 +3848,7 @@ Roff:
- ".me"
- ".ms"
- ".n"
- ".nr"
- ".rno"
- ".roff"
- ".tmac"
@@ -4007,6 +4116,7 @@ Scheme:
color: "#1e4aec"
extensions:
- ".scm"
- ".sch"
- ".sld"
- ".sls"
- ".sps"
@@ -4073,7 +4183,12 @@ Shell:
- PKGBUILD
- gradlew
interpreters:
- ash
- bash
- dash
- ksh
- mksh
- pdksh
- rc
- sh
- zsh
@@ -4098,7 +4213,7 @@ Shen:
color: "#120F14"
extensions:
- ".shen"
tm_scope: none
tm_scope: source.shen
ace_mode: text
language_id: 348
Slash:
@@ -4459,6 +4574,15 @@ Twig:
codemirror_mode: twig
codemirror_mime_type: text/x-twig
language_id: 377
Type Language:
type: data
aliases:
- tl
extensions:
- ".tl"
tm_scope: source.tl
ace_mode: text
language_id: 632765617
TypeScript:
type: programming
color: "#2b7489"
@@ -4656,6 +4780,20 @@ Web Ontology Language:
tm_scope: text.xml
ace_mode: xml
language_id: 394
WebAssembly:
type: programming
color: "#04133b"
extensions:
- ".wast"
- ".wat"
aliases:
- wast
- wasm
tm_scope: source.webassembly
ace_mode: lisp
codemirror_mode: commonlisp
codemirror_mime_type: text/x-common-lisp
language_id: 956556503
WebIDL:
type: programming
extensions:
@@ -4800,6 +4938,7 @@ XML:
- ".xml.dist"
- ".xproj"
- ".xsd"
- ".xspec"
- ".xul"
- ".zcml"
filenames:
@@ -4813,6 +4952,14 @@ XML:
- Web.config
- packages.config
language_id: 399
XPM:
type: data
extensions:
- ".xpm"
- ".pm"
ace_mode: c_cpp
tm_scope: source.c
language_id: 781846279
XPages:
type: programming
extensions:

View File

@@ -72,6 +72,9 @@
# Normalize.css
- (^|/)normalize\.(css|less|scss|styl)$
# Skeleton.css
- (^|/)skeleton\.(css|less|scss|styl)$
# Bourbon css
- (^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$
@@ -188,6 +191,9 @@
# React
- (^|/)react(-[^.]*)?\.js$
# flow-typed
- (^|/)flow-typed/.*\.js$
# Modernizr
- (^|/)modernizr\-\d\.\d+(\.\d+)?\.js$
- (^|/)modernizr\.custom\.\d+\.js$

View File

@@ -1,3 +1,3 @@
module Linguist
VERSION = "5.0.9"
VERSION = "5.2.0"
end

View File

@@ -0,0 +1,69 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20170719
Comment Creation Date: Sun Jul 23 19:47:25 2017
FontName OpenSansCondensed-Bold
FullName Open Sans Condensed Bold
FamilyName Open Sans Condensed
Weight Bold
Notice (Digitized data copyright (c) 2010-2011, Google Corporation.)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -205
UnderlineThickness 102
Version 1.11
EncodingScheme ISO10646-1
FontBBox -667 -290 1046 1062
CapHeight 714
XHeight 544
Ascender 760
Descender -240
StartCharMetrics 939
C 32 ; WX 247 ; N space ; B 0 0 0 0 ;
C 33 ; WX 270 ; N exclam ; B 54 -14 216 714 ;
C 34 ; WX 445 ; N quotedbl ; B 59 456 388 714 ;
C 35 ; WX 543 ; N numbersign ; B 20 0 525 714 ;
C 36 ; WX 462 ; N dollar ; B 36 -59 427 760 ;
C 37 ; WX 758 ; N percent ; B 30 -9 729 725 ;
C 38 ; WX 581 ; N ampersand ; B 28 -10 572 725 ;
C 39 ; WX 246 ; N quotesingle ; B 59 456 188 714 ;
C -1 ; WX 462 ; N six.os ; B 36 -10 427 724 ;
C -1 ; WX 420 ; N seven.os ; B 19 -170 402 544 ;
C -1 ; WX 462 ; N eight.os ; B 35 -10 429 724 ;
C -1 ; WX 461 ; N nine.os ; B 33 -182 424 564 ;
C -1 ; WX 496 ; N g.alt ; B 36 -241 442 555 ;
C -1 ; WX 496 ; N gcircumflex.alt ; B 36 -241 442 767 ;
C -1 ; WX 496 ; N gbreve.alt ; B 36 -241 442 766 ;
C -1 ; WX 496 ; N gdot.alt ; B 36 -241 442 756 ;
C -1 ; WX 496 ; N gcommaaccent.alt ; B 36 -241 442 767 ;
C -1 ; WX 0 ; N cyrotmarkcomb ; B -203 591 203 714 ;
EndCharMetrics
StartKernData
StartKernPairs 15878
KPX quotedbl uni1ECA 20
KPX quotedbl uni1EC8 20
KPX quotedbl Idotaccent 20
KPX quotedbl Iogonek 20
KPX quotedbl Imacron 20
KPX quotedbl Idieresis 20
KPX quotedbl Icircumflex 20
KPX quotedbl Iacute 20
KPX quotedbl Igrave 20
KPX quotedbl I 20
KPX quotedbl uni1EF9 20
KPX quoteleft q -20
KPX quoteleft o -20
KPX quoteleft g -9
KPX quoteleft e -20
KPX quoteleft d -20
KPX quoteleft c -20
KPX quoteleft Z 20
KPX Delta C -9
KPX Delta A -20
KPX Delta question 20
KPX Delta period -41
KPX Delta comma -41
KPX Delta quotesingle 41
KPX Delta quotedbl 41
EndKernPairs
EndKernData
EndFontMetrics

View File

@@ -0,0 +1,464 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20170719
Comment Creation Date: Sun Jul 23 19:52:19 2017
FontName SpecialElite-Regular
FullName Special Elite
FamilyName Special Elite
Weight Book
Notice (Copyright (c) 2010 by Brian J. Bonislawsky DBA Astigmatic (AOETI). All rights reserved. Available under the Apache 2.0 licence.http://www.apache.org/licenses/LICENSE-2.0.html)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -133
UnderlineThickness 20
Version 1.000
EncodingScheme ISO10646-1
FontBBox -33 -322 1052 959
CapHeight 714
XHeight 487
Ascender 688
Descender -225
StartCharMetrics 371
C 32 ; WX 292 ; N space ; B 0 0 0 0 ;
C 33 ; WX 276 ; N exclam ; B 73 0 207 702 ;
C 34 ; WX 352 ; N quotedbl ; B 48 449 295 704 ;
C 35 ; WX 554 ; N numbersign ; B 31 -2 524 713 ;
C 36 ; WX 526 ; N dollar ; B 31 -201 498 919 ;
C 37 ; WX 666 ; N percent ; B 32 -186 642 872 ;
C 38 ; WX 676 ; N ampersand ; B 31 -5 645 705 ;
C 39 ; WX 196 ; N quotesingle ; B 48 449 143 703 ;
C 40 ; WX 279 ; N parenleft ; B 55 -71 243 757 ;
C 41 ; WX 281 ; N parenright ; B 37 -59 229 770 ;
C 42 ; WX 522 ; N asterisk ; B 32 276 493 707 ;
C 43 ; WX 496 ; N plus ; B 29 131 465 560 ;
C 44 ; WX 336 ; N comma ; B 39 -197 290 251 ;
C 45 ; WX 636 ; N hyphen ; B 63 273 573 397 ;
C 46 ; WX 349 ; N period ; B 52 -3 298 245 ;
C 47 ; WX 557 ; N slash ; B 23 -41 536 760 ;
C 48 ; WX 610 ; N zero ; B 55 0 560 720 ;
C 49 ; WX 569 ; N one ; B 27 -12 572 712 ;
C 50 ; WX 573 ; N two ; B 50 -25 541 680 ;
C 51 ; WX 557 ; N three ; B 44 -25 514 694 ;
C 52 ; WX 612 ; N four ; B 15 4 584 708 ;
C 53 ; WX 537 ; N five ; B 47 0 505 690 ;
C 54 ; WX 588 ; N six ; B 48 -10 548 707 ;
C 55 ; WX 555 ; N seven ; B 15 -34 549 734 ;
C 56 ; WX 598 ; N eight ; B 51 1 551 720 ;
C 57 ; WX 584 ; N nine ; B 48 -2 539 715 ;
C 58 ; WX 343 ; N colon ; B 51 -3 297 518 ;
C 59 ; WX 328 ; N semicolon ; B 45 -197 297 518 ;
C 60 ; WX 463 ; N less ; B 31 120 401 565 ;
C 61 ; WX 636 ; N equal ; B 63 186 573 513 ;
C 62 ; WX 463 ; N greater ; B 62 120 433 565 ;
C 63 ; WX 470 ; N question ; B 34 2 442 729 ;
C 64 ; WX 665 ; N at ; B 46 -4 618 680 ;
C 65 ; WX 549 ; N A ; B -1 -16 550 703 ;
C 66 ; WX 604 ; N B ; B 29 -6 557 704 ;
C 67 ; WX 579 ; N C ; B 46 -13 531 700 ;
C 68 ; WX 622 ; N D ; B 36 -17 579 713 ;
C 69 ; WX 638 ; N E ; B 38 -16 587 691 ;
C 70 ; WX 605 ; N F ; B 29 -9 595 709 ;
C 71 ; WX 615 ; N G ; B 45 -3 586 710 ;
C 72 ; WX 652 ; N H ; B 40 -20 622 690 ;
C 73 ; WX 495 ; N I ; B 26 -24 469 710 ;
C 74 ; WX 541 ; N J ; B 16 -3 539 703 ;
C 75 ; WX 582 ; N K ; B 28 -5 584 711 ;
C 76 ; WX 602 ; N L ; B 23 -14 583 718 ;
C 77 ; WX 697 ; N M ; B 46 -10 655 704 ;
C 78 ; WX 627 ; N N ; B 41 -15 595 700 ;
C 79 ; WX 616 ; N O ; B 42 -30 574 702 ;
C 80 ; WX 553 ; N P ; B 30 -12 527 689 ;
C 81 ; WX 602 ; N Q ; B 42 -98 571 711 ;
C 82 ; WX 636 ; N R ; B 14 -9 624 706 ;
C 83 ; WX 588 ; N S ; B 51 -13 547 690 ;
C 84 ; WX 594 ; N T ; B 25 1 564 707 ;
C 85 ; WX 621 ; N U ; B 24 -6 611 710 ;
C 86 ; WX 611 ; N V ; B -1 -15 614 726 ;
C 87 ; WX 643 ; N W ; B 8 0 614 689 ;
C 88 ; WX 582 ; N X ; B 3 -1 580 697 ;
C 89 ; WX 561 ; N Y ; B -21 -2 562 719 ;
C 90 ; WX 592 ; N Z ; B 49 -1 551 709 ;
C 91 ; WX 312 ; N bracketleft ; B 85 -72 297 754 ;
C 92 ; WX 557 ; N backslash ; B 21 -41 534 760 ;
C 249 ; WX 639 ; N ugrave ; B 5 -28 624 679 ;
C 250 ; WX 639 ; N uacute ; B 5 -28 624 682 ;
C 251 ; WX 639 ; N ucircumflex ; B 5 -28 624 691 ;
C 252 ; WX 639 ; N udieresis ; B 5 -28 624 649 ;
C 253 ; WX 592 ; N yacute ; B 0 -232 596 666 ;
C 254 ; WX 552 ; N thorn ; B -33 -221 512 699 ;
C 255 ; WX 592 ; N ydieresis ; B 0 -232 596 643 ;
C -1 ; WX 549 ; N Amacron ; B -1 -16 550 809 ;
C -1 ; WX 565 ; N amacron ; B 38 -6 561 619 ;
C -1 ; WX 549 ; N Abreve ; B -1 -16 550 890 ;
C -1 ; WX 565 ; N abreve ; B 38 -6 561 686 ;
C -1 ; WX 549 ; N Aogonek ; B -1 -138 589 703 ;
C -1 ; WX 565 ; N aogonek ; B 38 -118 624 502 ;
C -1 ; WX 579 ; N Cacute ; B 46 -13 531 900 ;
C -1 ; WX 547 ; N cacute ; B 39 -22 506 693 ;
C -1 ; WX 579 ; N Ccircumflex ; B 46 -13 531 890 ;
C -1 ; WX 547 ; N ccircumflex ; B 39 -22 506 689 ;
C -1 ; WX 579 ; N Cdotaccent ; B 46 -13 531 859 ;
C -1 ; WX 547 ; N cdotaccent ; B 39 -22 506 657 ;
C -1 ; WX 579 ; N Ccaron ; B 46 -13 531 918 ;
C -1 ; WX 547 ; N ccaron ; B 39 -22 506 710 ;
C -1 ; WX 622 ; N Dcaron ; B 36 -17 579 924 ;
C -1 ; WX 750 ; N dcaron ; B 40 -26 716 704 ;
C -1 ; WX 623 ; N Dcroat ; B 36 -17 580 713 ;
C -1 ; WX 603 ; N dcroat ; B 40 -26 597 714 ;
C -1 ; WX 638 ; N Emacron ; B 38 -16 587 798 ;
C -1 ; WX 543 ; N emacron ; B 40 -23 501 616 ;
C -1 ; WX 638 ; N Ebreve ; B 38 -16 587 876 ;
C -1 ; WX 543 ; N ebreve ; B 40 -23 501 683 ;
C -1 ; WX 638 ; N Edotaccent ; B 38 -16 587 848 ;
C -1 ; WX 543 ; N edotaccent ; B 40 -23 501 659 ;
C -1 ; WX 638 ; N Eogonek ; B 38 -113 610 691 ;
C -1 ; WX 543 ; N eogonek ; B 40 -145 501 499 ;
C -1 ; WX 638 ; N Ecaron ; B 38 -16 587 913 ;
C -1 ; WX 543 ; N ecaron ; B 40 -23 501 714 ;
C -1 ; WX 615 ; N Gcircumflex ; B 45 -3 586 906 ;
C -1 ; WX 583 ; N gcircumflex ; B 42 -224 562 676 ;
C -1 ; WX 615 ; N Gbreve ; B 45 -3 586 899 ;
C -1 ; WX 583 ; N gbreve ; B 42 -224 562 667 ;
C -1 ; WX 615 ; N Gdotaccent ; B 45 -3 586 871 ;
C -1 ; WX 583 ; N gdotaccent ; B 42 -224 562 637 ;
C -1 ; WX 615 ; N Gcommaaccent ; B 45 -253 586 710 ;
C -1 ; WX 583 ; N gcommaaccent ; B 42 -224 562 734 ;
C -1 ; WX 652 ; N Hcircumflex ; B 40 -20 622 897 ;
C -1 ; WX 616 ; N hcircumflex ; B 5 -29 601 688 ;
C -1 ; WX 652 ; N Hbar ; B 40 -20 622 690 ;
C -1 ; WX 616 ; N hbar ; B 5 -29 601 683 ;
C -1 ; WX 495 ; N Itilde ; B 26 -24 469 859 ;
C -1 ; WX 568 ; N itilde ; B 36 -42 568 615 ;
C -1 ; WX 495 ; N Imacron ; B 26 -24 469 819 ;
C -1 ; WX 568 ; N imacron ; B 36 -42 568 585 ;
C -1 ; WX 495 ; N Ibreve ; B 26 -24 469 901 ;
C -1 ; WX 568 ; N ibreve ; B 36 -42 568 661 ;
C -1 ; WX 495 ; N Iogonek ; B 26 -154 469 710 ;
C -1 ; WX 568 ; N iogonek ; B 36 -149 568 674 ;
C -1 ; WX 495 ; N Idotaccent ; B 26 -24 469 873 ;
C -1 ; WX 568 ; N dotlessi ; B 36 -42 568 468 ;
C -1 ; WX 1036 ; N IJ ; B 26 -24 1034 710 ;
C -1 ; WX 983 ; N ij ; B 36 -236 913 683 ;
C -1 ; WX 541 ; N Jcircumflex ; B 16 -3 539 913 ;
C -1 ; WX 415 ; N jcircumflex ; B -12 -236 405 699 ;
C -1 ; WX 582 ; N Kcommaaccent ; B 28 -253 584 711 ;
C -1 ; WX 620 ; N kcommaaccent ; B 11 -253 600 683 ;
C -1 ; WX 620 ; N kgreenlandic ; B 11 -28 600 482 ;
C -1 ; WX 602 ; N Lacute ; B 23 -14 583 923 ;
C -1 ; WX 540 ; N lacute ; B 4 -28 538 902 ;
C -1 ; WX 602 ; N Lcommaaccent ; B 23 -267 583 718 ;
C -1 ; WX 540 ; N lcommaaccent ; B 4 -267 538 682 ;
C -1 ; WX 602 ; N Lcaron ; B 23 -14 583 794 ;
C -1 ; WX 582 ; N lcaron ; B 4 -28 549 704 ;
C -1 ; WX 781 ; N Ldot ; B 23 -14 748 718 ;
C -1 ; WX 571 ; N ldotaccent ; B 4 -28 538 682 ;
C -1 ; WX 603 ; N Lslash ; B 24 -14 584 718 ;
C -1 ; WX 541 ; N lslash ; B 4 -28 538 682 ;
C -1 ; WX 627 ; N Nacute ; B 41 -15 595 894 ;
C -1 ; WX 632 ; N nacute ; B 32 -23 612 696 ;
C -1 ; WX 627 ; N Ncommaaccent ; B 41 -268 595 700 ;
C -1 ; WX 632 ; N ncommaaccent ; B 32 -268 612 491 ;
C -1 ; WX 627 ; N Ncaron ; B 41 -15 595 900 ;
C -1 ; WX 632 ; N ncaron ; B 32 -23 612 712 ;
C -1 ; WX 815 ; N napostrophe ; B 34 -23 795 704 ;
C -1 ; WX 627 ; N Eng ; B 41 -320 595 700 ;
C -1 ; WX 605 ; N eng ; B 32 -322 534 491 ;
C -1 ; WX 616 ; N Omacron ; B 42 -30 574 815 ;
C -1 ; WX 583 ; N omacron ; B 40 -34 543 598 ;
C -1 ; WX 616 ; N Obreve ; B 42 -30 574 891 ;
C -1 ; WX 583 ; N obreve ; B 40 -34 543 675 ;
C -1 ; WX 616 ; N Ohungarumlaut ; B 42 -30 574 907 ;
C -1 ; WX 583 ; N ohungarumlaut ; B 40 -34 545 693 ;
C -1 ; WX 1018 ; N OE ; B 42 -30 967 702 ;
C -1 ; WX 958 ; N oe ; B 40 -34 916 499 ;
C -1 ; WX 636 ; N Racute ; B 14 -9 624 910 ;
C -1 ; WX 579 ; N racute ; B 28 -16 566 693 ;
C -1 ; WX 636 ; N Rcommaaccent ; B 14 -268 624 706 ;
C -1 ; WX 579 ; N rcommaaccent ; B 28 -272 566 495 ;
C -1 ; WX 636 ; N Rcaron ; B 14 -9 624 927 ;
C -1 ; WX 579 ; N rcaron ; B 28 -16 566 698 ;
C -1 ; WX 588 ; N Sacute ; B 51 -13 547 900 ;
C -1 ; WX 519 ; N sacute ; B 48 -31 481 713 ;
C -1 ; WX 588 ; N Scircumflex ; B 51 -13 547 904 ;
C -1 ; WX 519 ; N scircumflex ; B 48 -31 481 710 ;
C -1 ; WX 588 ; N Scedilla ; B 51 -145 547 690 ;
C -1 ; WX 519 ; N scedilla ; B 48 -145 481 496 ;
C -1 ; WX 588 ; N Scaron ; B 51 -13 547 904 ;
C -1 ; WX 519 ; N scaron ; B 48 -31 481 710 ;
C -1 ; WX 594 ; N Tcommaaccent ; B 25 -263 564 707 ;
C -1 ; WX 510 ; N tcommaaccent ; B 0 -282 488 694 ;
C -1 ; WX 594 ; N Tcaron ; B 25 1 564 920 ;
C -1 ; WX 713 ; N tcaron ; B 0 -34 680 704 ;
C -1 ; WX 594 ; N Tbar ; B 25 1 564 707 ;
C -1 ; WX 510 ; N tbar ; B 0 -34 488 694 ;
C -1 ; WX 621 ; N Utilde ; B 24 -6 611 850 ;
C -1 ; WX 638 ; N utilde ; B 5 -28 624 636 ;
C -1 ; WX 621 ; N Umacron ; B 24 -6 611 811 ;
C -1 ; WX 638 ; N umacron ; B 5 -28 624 587 ;
C -1 ; WX 621 ; N Ubreve ; B 24 -6 611 888 ;
C -1 ; WX 638 ; N ubreve ; B 5 -28 624 665 ;
C -1 ; WX 621 ; N Uring ; B 24 -6 611 959 ;
C -1 ; WX 638 ; N uring ; B 5 -28 624 738 ;
C -1 ; WX 621 ; N Uhungarumlaut ; B 24 -6 611 918 ;
C -1 ; WX 638 ; N uhungarumlaut ; B 5 -28 624 691 ;
C -1 ; WX 621 ; N Uogonek ; B 24 -136 611 710 ;
C -1 ; WX 638 ; N uogonek ; B 5 -147 671 487 ;
C -1 ; WX 643 ; N Wcircumflex ; B 8 0 614 901 ;
C -1 ; WX 678 ; N wcircumflex ; B 5 -10 674 685 ;
C -1 ; WX 561 ; N Ycircumflex ; B -21 -2 562 934 ;
C -1 ; WX 592 ; N ycircumflex ; B 0 -232 596 691 ;
C -1 ; WX 561 ; N Ydieresis ; B -21 -2 562 885 ;
C -1 ; WX 592 ; N Zacute ; B 49 -1 551 905 ;
C -1 ; WX 528 ; N zacute ; B 45 -22 487 684 ;
C -1 ; WX 592 ; N Zdotaccent ; B 49 -1 551 866 ;
C -1 ; WX 528 ; N zdotaccent ; B 45 -22 487 632 ;
C -1 ; WX 592 ; N Zcaron ; B 49 -1 551 917 ;
C -1 ; WX 528 ; N zcaron ; B 45 -22 487 688 ;
C -1 ; WX 915 ; N AEacute ; B -11 -16 864 904 ;
C -1 ; WX 888 ; N aeacute ; B 38 -23 846 670 ;
C -1 ; WX 617 ; N Oslashacute ; B 43 -41 574 912 ;
C -1 ; WX 583 ; N oslashacute ; B 40 -73 543 697 ;
C -1 ; WX 415 ; N dotlessj ; B -12 -236 344 478 ;
C -1 ; WX 281 ; N circumflex ; B 0 558 282 746 ;
C -1 ; WX 281 ; N caron ; B 0 558 282 746 ;
C -1 ; WX 281 ; N breve ; B 0 585 282 746 ;
C -1 ; WX 132 ; N dotaccent ; B 0 600 133 729 ;
C -1 ; WX 214 ; N ring ; B 0 547 215 780 ;
C -1 ; WX 211 ; N ogonek ; B 0 -145 212 13 ;
C -1 ; WX 283 ; N tilde ; B 0 583 284 701 ;
C -1 ; WX 352 ; N hungarumlaut ; B 0 591 353 763 ;
C -1 ; WX 185 ; N uni0312 ; B 28 474 152 694 ;
C -1 ; WX 185 ; N uni0315 ; B 38 470 162 690 ;
C -1 ; WX 192 ; N uni0326 ; B 32 -253 156 -33 ;
C -1 ; WX 666 ; N mu ; B 24 -219 643 487 ;
C -1 ; WX 643 ; N Wgrave ; B 8 0 614 895 ;
C -1 ; WX 678 ; N wgrave ; B 5 -10 674 688 ;
C -1 ; WX 643 ; N Wacute ; B 8 0 614 898 ;
C -1 ; WX 678 ; N wacute ; B 5 -10 674 682 ;
C -1 ; WX 643 ; N Wdieresis ; B 8 0 614 868 ;
C -1 ; WX 678 ; N wdieresis ; B 5 -10 674 649 ;
C -1 ; WX 561 ; N Ygrave ; B -21 -2 562 900 ;
C -1 ; WX 592 ; N ygrave ; B 0 -232 596 666 ;
C -1 ; WX 611 ; N endash ; B 50 270 551 391 ;
C -1 ; WX 1113 ; N emdash ; B 51 270 1052 391 ;
C -1 ; WX 265 ; N quoteleft ; B 41 390 217 704 ;
C -1 ; WX 264 ; N quoteright ; B 54 390 230 704 ;
C -1 ; WX 274 ; N quotesinglbase ; B 46 -138 223 176 ;
C -1 ; WX 470 ; N quotedblleft ; B 41 390 422 704 ;
C -1 ; WX 469 ; N quotedblright ; B 54 390 436 704 ;
C -1 ; WX 479 ; N quotedblbase ; B 46 -138 428 176 ;
C -1 ; WX 389 ; N dagger ; B 30 -16 359 724 ;
C -1 ; WX 396 ; N daggerdbl ; B 35 -16 364 728 ;
C -1 ; WX 316 ; N bullet ; B 50 246 266 479 ;
C -1 ; WX 1063 ; N ellipsis ; B 52 -3 1016 245 ;
C -1 ; WX 897 ; N perthousand ; B 33 -230 873 828 ;
C -1 ; WX 296 ; N guilsinglleft ; B 44 149 232 434 ;
C -1 ; WX 295 ; N guilsinglright ; B 63 149 251 434 ;
C -1 ; WX 486 ; N fraction ; B -11 -53 501 748 ;
C -1 ; WX 732 ; N Euro ; B 31 71 683 590 ;
C -1 ; WX 757 ; N trademark ; B 60 303 703 693 ;
C -1 ; WX 585 ; N partialdiff ; B 36 -47 553 772 ;
C -1 ; WX 564 ; N product ; B 26 -17 534 707 ;
C -1 ; WX 577 ; N minus ; B 63 282 514 395 ;
C -1 ; WX 565 ; N approxequal ; B 59 137 513 522 ;
C -1 ; WX 593 ; N notequal ; B 44 71 554 644 ;
C -1 ; WX 1041 ; N fi ; B 20 -42 1041 702 ;
C -1 ; WX 1013 ; N fl ; B 20 -29 1011 702 ;
C -1 ; WX 292 ; N .notdef ; B 0 0 0 0 ;
C -1 ; WX 0 ; N .null ; B 0 0 0 0 ;
C -1 ; WX 292 ; N nonmarkingreturn ; B 0 0 0 0 ;
EndCharMetrics
StartKernData
StartKernPairs 6408
KPX quotedbl period -104
KPX quotedbl comma -103
KPX quotedbl Jcircumflex -34
KPX quotedbl Aogonek -31
KPX quotedbl Abreve -31
KPX quotedbl Amacron -31
KPX quotedbl AEacute -31
KPX quotedbl Aacute -31
KPX quotedbl Acircumflex -31
KPX quotedbl Atilde -31
KPX quotedbl Agrave -31
KPX quotedbl Aring -31
KPX quotedbl Adieresis -31
KPX quotedbl AE -31
KPX quotedbl J -34
KPX quotedbl A -31
KPX quotedbl quotedblbase -117
KPX quotedbl quotesinglbase -117
KPX quotedbl ellipsis -104
KPX quotedbl slash -73
KPX quotedbl ampersand -22
KPX quotedbl four -27
KPX ampersand Ycircumflex -40
KPX ampersand Ygrave -40
KPX ampersand Ydieresis -40
KPX ampersand Yacute -40
KPX ampersand Y -40
KPX ampersand V -36
KPX quotesingle period -97
KPX quotesingle comma -97
KPX quotesingle Jcircumflex -34
KPX quotesingle Aogonek -31
KPX quotesingle Abreve -31
KPX quotesingle Amacron -31
KPX hyphen T -28
KPX hyphen one -68
KPX hyphen B -25
KPX hyphen seven -56
KPX slash rcommaaccent -27
KPX slash ncommaaccent -29
KPX slash gcommaaccent -61
KPX slash Jcircumflex -29
KPX slash iogonek -26
KPX slash ibreve -26
KPX slash imacron -26
KPX slash itilde -26
KPX slash oslashacute -54
KPX slash nacute -29
KPX slash eng -29
KPX slash ncaron -29
KPX slash racute -27
KPX slash scedilla -43
KPX slash scircumflex -43
KPX slash sacute -43
KPX slash rcaron -27
KPX slash ohungarumlaut -54
KPX slash obreve -54
KPX slash omacron -54
KPX slash wgrave -23
KPX slash wcircumflex -23
KPX slash wdieresis -23
KPX slash wacute -23
KPX slash zdotaccent -41
KPX J ebreve -32
KPX J emacron -32
KPX J edieresis -32
KPX J ecircumflex -32
KPX J egrave -32
KPX J eacute -32
KPX J e -32
KPX J Aogonek -34
KPX J Abreve -34
KPX J Amacron -34
KPX J AEacute -34
KPX J Aacute -34
KPX J Acircumflex -34
KPX J Atilde -34
KPX J Agrave -34
KPX J Aring -34
KPX J Adieresis -34
KPX J AE -34
KPX J A -34
KPX J comma -29
KPX J period -30
KPX J v -29
KPX J hyphen -30
KPX J quotedblbase -34
KPX J quotesinglbase -34
KPX J guilsinglright -25
KPX J guilsinglleft -25
KPX J emdash -30
KPX J endash -30
KPX J guillemotright -25
KPX J guillemotleft -25
KPX J germandbls -36
KPX J ellipsis -30
KPX J slash -34
KPX J p -28
KPX J m -35
KPX J b 54
KPX K ycircumflex -60
KPX K ygrave -60
KPX K ydieresis -60
KPX K yacute -60
KPX K y -60
KPX K wgrave -36
KPX K wcircumflex -36
KPX K wdieresis -36
KPX K wacute -36
KPX K w -36
KPX K uogonek -25
KPX K uhungarumlaut -25
KPX K uring -25
KPX K ubreve -25
KPX K umacron -25
KPX K utilde -25
KPX K udieresis -25
KPX K ucircumflex -25
KPX K ugrave -25
KPX K uacute -25
KPX K u -25
KPX K q -23
KPX K oslashacute -28
KPX K ohungarumlaut -28
KPX K obreve -28
KPX K omacron -28
KPX K otilde -28
KPX K odieresis -28
KPX K ocircumflex -28
KPX K ograve -28
KPX K oacute -28
KPX K eth -28
KPX K oe -28
KPX K oslash -28
KPX K o -28
KPX K dcaron -24
KPX K d -24
KPX K ccaron -27
KPX K cdotaccent -27
KPX K ccircumflex -27
KPX K cacute -27
KPX K ccedilla -27
KPX K c -27
KPX K ecaron -27
KPX K eogonek -27
KPX K edotaccent -27
KPX K ebreve -27
KPX K emacron -27
KPX K edieresis -27
KPX K ecircumflex -27
KPX K egrave -27
KPX K eacute -27
KPX K e -27
KPX K v -49
KPX K hyphen -38
KPX K guilsinglleft -24
KPX K emdash -38
KPX K endash -38
KPX K guillemotleft -24
KPX K b 49
KPX L ycircumflex -36
KPX L ygrave -36
KPX L ydieresis -36
KPX L yacute -36
KPX L y -36
KPX L wgrave -23
KPX L wcircumflex -23
KPX L wdieresis -23
KPX L wacute -23
KPX L w -23
KPX L V -43
KPX L Tcommaaccent -36
KPX L Tbar -36
KPX L Tcaron -36
KPX L T -36
KPX L quoteright -49
KPX L v -32
KPX L quoteleft -54
KPX L quotedblright -49
KPX L quotedblleft -54
KPX L trademark -29
KPX L backslash -50
KPX L asterisk -30
KPX trademark Aring -24
KPX trademark Adieresis -24
KPX trademark Yacute 29
KPX trademark AE -24
KPX trademark Y 29
KPX trademark A -24
KPX trademark b 31
EndKernPairs
EndKernData
EndFontMetrics

View File

@@ -0,0 +1,23 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20170719
Comment Creation Date: Sun Jul 23 23:14:02 2017
FontName Greek_Lambda_Character-Regular
FullName Greek_Lambda_Character Regular
FamilyName Greek_Lambda_Character
Weight Regular
Notice (NONE. NADA. PUBLIC DOMAIN, BOI)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -175
UnderlineThickness 90
Version 020.017
EncodingScheme ISO10646-1
FontBBox 33 -177 566 760
StartCharMetrics 5
C 13 ; WX 602 ; N uni000D ; B 0 0 0 0 ;
C 32 ; WX 602 ; N space ; B 0 0 0 0 ;
C -1 ; WX 602 ; N lambda ; B 33 0 566 760 ;
C -1 ; WX 602 ; N .notdef ; B 50 -177 551 706 ;
C -1 ; WX 0 ; N NULL ; B 0 0 0 0 ;
EndCharMetrics
EndFontMetrics

2
samples/C++/grpc.pb.cc Normal file
View File

@@ -0,0 +1,2 @@
// Generated by the gRPC protobuf plugin.
// If you make any local change, they will be lost.

125
samples/C++/hello.grpc.pb.h Normal file
View File

@@ -0,0 +1,125 @@
// Generated by the gRPC C++ plugin.
// If you make any local change, they will be lost.
// source: hello.proto
#ifndef GRPC_hello_2eproto__INCLUDED
#define GRPC_hello_2eproto__INCLUDED
#include "hello.pb.h"
#include <grpc++/impl/codegen/async_stream.h>
#include <grpc++/impl/codegen/async_unary_call.h>
#include <grpc++/impl/codegen/method_handler_impl.h>
#include <grpc++/impl/codegen/proto_utils.h>
#include <grpc++/impl/codegen/rpc_method.h>
#include <grpc++/impl/codegen/service_type.h>
#include <grpc++/impl/codegen/status.h>
#include <grpc++/impl/codegen/stub_options.h>
#include <grpc++/impl/codegen/sync_stream.h>
namespace grpc {
class CompletionQueue;
class Channel;
class RpcService;
class ServerCompletionQueue;
class ServerContext;
} // namespace grpc
class HelloService final {
public:
class StubInterface {
public:
virtual ~StubInterface() {}
virtual ::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) = 0;
std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
}
private:
virtual ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) = 0;
};
class Stub final : public StubInterface {
public:
Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) override;
std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
}
private:
std::shared_ptr< ::grpc::ChannelInterface> channel_;
::grpc::ClientAsyncResponseReader< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) override;
const ::grpc::RpcMethod rpcmethod_SayHello_;
};
static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
class Service : public ::grpc::Service {
public:
Service();
virtual ~Service();
virtual ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response);
};
template <class BaseClass>
class WithAsyncMethod_SayHello : public BaseClass {
private:
void BaseClassMustBeDerivedFromService(const Service *service) {}
public:
WithAsyncMethod_SayHello() {
::grpc::Service::MarkMethodAsync(0);
}
~WithAsyncMethod_SayHello() override {
BaseClassMustBeDerivedFromService(this);
}
// disable synchronous version of this method
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
abort();
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}
void RequestSayHello(::grpc::ServerContext* context, ::HelloRequest* request, ::grpc::ServerAsyncResponseWriter< ::HelloResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
}
};
typedef WithAsyncMethod_SayHello<Service > AsyncService;
template <class BaseClass>
class WithGenericMethod_SayHello : public BaseClass {
private:
void BaseClassMustBeDerivedFromService(const Service *service) {}
public:
WithGenericMethod_SayHello() {
::grpc::Service::MarkMethodGeneric(0);
}
~WithGenericMethod_SayHello() override {
BaseClassMustBeDerivedFromService(this);
}
// disable synchronous version of this method
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
abort();
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}
};
template <class BaseClass>
class WithStreamedUnaryMethod_SayHello : public BaseClass {
private:
void BaseClassMustBeDerivedFromService(const Service *service) {}
public:
WithStreamedUnaryMethod_SayHello() {
::grpc::Service::MarkMethodStreamed(0,
new ::grpc::StreamedUnaryHandler< ::HelloRequest, ::HelloResponse>(std::bind(&WithStreamedUnaryMethod_SayHello<BaseClass>::StreamedSayHello, this, std::placeholders::_1, std::placeholders::_2)));
}
~WithStreamedUnaryMethod_SayHello() override {
BaseClassMustBeDerivedFromService(this);
}
// disable regular version of this method
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
abort();
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}
// replace default version of method with streamed unary
virtual ::grpc::Status StreamedSayHello(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::HelloRequest,::HelloResponse>* server_unary_streamer) = 0;
};
typedef WithStreamedUnaryMethod_SayHello<Service > StreamedUnaryService;
typedef Service SplitStreamedService;
typedef WithStreamedUnaryMethod_SayHello<Service > StreamedService;
};
#endif // GRPC_hello_2eproto__INCLUDED

27
samples/C/asm.h Normal file
View File

@@ -0,0 +1,27 @@
/* CarbonOS System/Kernel
* Copyright 2015-2017 David Aylaian
* Licensed under Apache 2.0: https://github.com/DavidAylaian/CarbonOS/blob/master/LICENSE.md
*/
#ifndef ASM_H
#define ASM_H
#include <stdint.h>
// macros for enabling and disabling interrupts
#define enable() asm("sti");
#define disable() asm("cli");
// inb instruction
uint8_t inb (uint16_t port) {
uint8_t val;
asm volatile ("inb %0, %1" : "=a"(val): "Nd"(port));
return val;
}
// outb instruction
void outb (uint16_t port, uint8_t val) {
asm volatile ("outb %1, %0" : : "a"(val), "Nd"(port));
}
#endif

25
samples/C/cpuid.h Normal file
View File

@@ -0,0 +1,25 @@
#ifndef CPUID_H
#define CPUID_H
#include "misc.h"
static inline void do_cpuid(dword_t *eax, dword_t *ebx, dword_t *ecx, dword_t *edx) {
dword_t leaf = *eax;
switch (leaf) {
case 0:
*eax = 0x01; // we support barely anything
*ebx = 0x756e6547; // Genu
*edx = 0x49656e69; // ineI
*ecx = 0x6c65746e; // ntel
break;
default: // if leaf is too high, use highest supported leaf
case 1:
*eax = 0x0; // say nothing about cpu model number
*ebx = 0x0; // processor number 0, flushes 0 bytes on clflush
*ecx = 0b00000000000000000000000000000000; // we support none of the features in ecx
*edx = 0b00000000000000000000000000000000; // we also support none of the features in edx
break;
}
}
#endif

404
samples/CWeb/sat-life.w Normal file
View File

@@ -0,0 +1,404 @@
\datethis
@*Intro. This program generates clauses for the transition relation
from time $t$ to time $t+1$ in Conway's Game of Life, assuming that
all of the potentially live cells at time $t$ belong to a pattern
that's specified in |stdin|. The pattern is defined by one or more
lines representing rows of cells, where each line has `\..' in a
cell that's guaranteed to be dead at time~$t$, otherwise it has `\.*'.
The time is specified separately as a command-line parameter.
The Boolean variable for cell $(x,y)$ at time $t$ is named by its
so-called ``xty code,'' namely by the decimal value of~$x$, followed
by a code letter for~$t$, followed by the decimal value of~$y$. For
example, if $x=10$ and $y=11$ and $t=0$, the variable that indicates
liveness of the cell is \.{10a11}; and the corresponding variable
for $t=1$ is \.{10b11}.
Up to 19 auxiliary variables are used together with each xty code,
in order to construct clauses that define the successor state.
The names of these variables are obtained by appending one of
the following two-character combinations to the xty code:
\.{A2}, \.{A3}, \.{A4},
\.{B1}, \.{B2}, \.{B3}, \.{B4},
\.{C1}, \.{C2}, \.{C3}, \.{C4},
\.{D1}, \.{D2},
\.{E1}, \.{E2},
\.{F1}, \.{F2},
\.{G1}, \.{G2}.
These variables are derived from the Bailleux--Boufkhad method
of encoding cardinality constraints:
The auxiliary variable \.{A$k$} stands for the condition
``at least $k$ of the eight neighbors are alive.'' Similarly,
\.{B$k$} stands for ``at least $k$ of the first four neighbors
are alive,'' and \.{C$k$} accounts for the other four neighbors.
Codes \.D, \.E, \.F, and~\.G refer to pairs of neighbors.
Thus, for instance, \.{10a11C2} means that at least two of the
last four neighbors of cell $(10,11)$ are alive.
Those auxiliary variables receive values by means of up to 77 clauses per cell.
For example, if $u$ and~$v$ are the neighbors of cell~$z$ that correspond
to a pairing of type~\.D, there are six clauses
$$\bar u d_1,\quad
\bar v d_1,\quad
\bar u\bar v d_2,\quad
u v\bar d_1,\quad
u\bar d_2,\quad
v\bar d_2.$$
The sixteen clauses
$$\displaylines{\hfill
\bar d_1b_1,\quad
\bar e_1b_1,\quad
\bar d_2b_2,\quad
\bar d_1\bar e_1b_2,\quad
\bar e_2b_2,\quad
\bar d_2\bar e_1b_3,\quad
\bar d_1\bar e_2b_3,\quad
\bar d_2\bar e_2b_4,
\hfill\cr\hfill
d_1e_1\bar b_1,\quad
d_1e_2\bar b_2,\quad
d_2e_1\bar b_2,\quad
d_1\bar b_3,\quad
d_2e_2\bar b_3,\quad
e_1\bar b_3,\quad
d_2\bar b_4,\quad
e_2\bar b_4
\hfill}$$
define $b$ variables from $d$'s and $e$'s; and another sixteen
define $c$'s from $f$'s and $g$'s in the same fashion.
A similar set of 21 clauses will define the $a$'s from the $b$'s and $c$'s.
Once the $a$'s are defined, thus essentially counting the
live neighbors of cell $z$, the next
state~$z'$ is defined by five further clauses
$$\bar a_4\bar z',\quad
a_2\bar z',\quad
a_3z\bar z',\quad
\bar a_3a_4z',\quad
\bar a_2a_4\bar zz'.$$
For example, the last of these states that $z'$ will be true
(i.e., that cell $z$ will be alive at time $t+1$) if
$z$ is alive at time~$t$ and has $\ge2$ live neighbors
but not $\ge4$.
Nearby cells can share auxiliary variables, according to a tricky scheme that
is worked out below. In consequence, the actual number of auxiliary variables
and clauses per cell is reduced from 19 and $77+5$ to 13 and $57+5$,
respectively, except at the boundaries.
@ So here's the overall outline of the program.
@d maxx 50 /* maximum number of lines in the pattern supplied by |stdin| */
@d maxy 50 /* maximum number of columns per line in |stdin| */
@c
#include <stdio.h>
#include <stdlib.h>
char p[maxx+2][maxy+2]; /* is cell $(x,y)$ potentially alive? */
char have_b[maxx+2][maxy+2]; /* did we already generate $b(x,y)$? */
char have_d[maxx+2][maxy+2]; /* did we already generate $d(x,y)$? */
char have_e[maxx+2][maxy+4]; /* did we already generate $e(x,y)$? */
char have_f[maxx+4][maxy+2]; /* did we already generate $f(x-2,y)$? */
int tt; /* time as given on the command line */
int xmax,ymax; /* the number of rows and columns in the input pattern */
int xmin=maxx,ymin=maxy; /* limits in the other direction */
char timecode[]="abcdefghijklmnopqrstuvwxyz"@|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"@|
"!\"#$%&'()*+,-./:;<=>?@@[\\]^_`{|}~"; /* codes for $0\le t\le83$ */
@q$@>
char buf[maxy+2]; /* input buffer */
unsigned int clause[4]; /* clauses are assembled here */
int clauseptr; /* this many literals are in the current clause */
@<Subroutines@>@;
main(int argc,char*argv[]) {
register int j,k,x,y;
@<Process the command line@>;
@<Input the pattern@>;
for (x=xmin-1;x<=xmax+1;x++) for (y=ymin-1;y<=ymax+1;y++) {
@<If cell $(x,y)$ is obviously dead at time $t+1$, |continue|@>;
a(x,y);
zprime(x,y);
}
}
@ @<Process the command line@>=
if (argc!=2 || sscanf(argv[1],"%d",&tt)!=1) {
fprintf(stderr,"Usage: %s t\n",argv[0]);
exit(-1);
}
if (tt<0 || tt>82) {
fprintf(stderr,"The time should be between 0 and 82 (not %d)!\n",tt);
exit(-2);
}
@ @<Input the pattern@>=
for (x=1;;x++) {
if (!fgets(buf,maxy+2,stdin)) break;
if (x>maxx) {
fprintf(stderr,"Sorry, the pattern should have at most %d rows!\n",maxx);
exit(-3);
}
for (y=1;buf[y-1]!='\n';y++) {
if (y>maxy) {
fprintf(stderr,"Sorry, the pattern should have at most %d columns!\n",
maxy);
exit(-4);
}
if (buf[y-1]=='*') {
p[x][y]=1;
if (y>ymax) ymax=y;
if (y<ymin) ymin=y;
if (x>xmax) xmax=x;
if (x<xmin) xmin=x;
}@+else if (buf[y-1]!='.') {
fprintf(stderr,"Unexpected character `%c' found in the pattern!\n",
buf[y-1]);
exit(-5);
}
}
}
@ @d pp(xx,yy) ((xx)>=0 && (yy)>=0? p[xx][yy]: 0)
@<If cell $(x,y)$ is obviously dead at time $t+1$, |continue|@>=
if (pp(x-1,y-1)+pp(x-1,y)+pp(x-1,y+1)+
pp(x,y-1)+p[x][y]+p[x][y+1]+
pp(x+1,y-1)+p[x+1][y]+p[x+1][y+1]<3) continue;
@ Clauses are assembled in the |clause| array (surprise), where we
put encoded literals.
The code for a literal is an unsigned 32-bit quantity, where the leading
bit is 1 if the literal should be complemented. The next three bits
specify the type of the literal (0 thru 7 for plain and \.A--\.G);
the next three bits specify an integer~$k$; and the next bit is zero.
That leaves room for two 12-bit fields, which specify $x$ and $y$.
Type 0 literals have $k=0$ for the ordinary xty code. However, the
value $k=1$ indicates that the time code should be for $t+1$ instead of~$t$.
And $k=2$ denotes a special ``tautology'' literal, which is always true.
If the tautology literal is complemented, we omit it from the clause;
otherwise we omit the entire clause.
Finally, $k=7$ denotes an auxiliary literal, used to avoid
clauses of length~4.
Here's a subroutine that outputs the current clause and resets
the |clause| array.
@d taut (2<<25)
@d sign (1U<<31)
@<Sub...@>=
void outclause(void) {
register int c,k,x,y,p;
for (p=0;p<clauseptr;p++)
if (clause[p]==taut) goto done;
for (p=0;p<clauseptr;p++) if (clause[p]!=taut+sign) {
if (clause[p]>>31) printf(" ~");@+else printf(" ");
c=(clause[p]>>28)&0x7;
k=(clause[p]>>25)&0x7;
x=(clause[p]>>12)&0xfff;
y=clause[p]&0xfff;
if (c) printf("%d%c%d%c%d",
x,timecode[tt],y,c+'@@',k);
else if (k==7) printf("%d%c%dx",
x,timecode[tt],y);
else printf("%d%c%d",
x,timecode[tt+k],y);
}
printf("\n");
done: clauseptr=0;
}
@ And here's another, which puts a type-0 literal into |clause|.
@<Sub...@>=
void applit(int x,int y,int bar,int k) {
if (k==0 && (x<xmin || x>xmax || y<ymin || y>ymax || p[x][y]==0))
clause[clauseptr++]=(bar? 0: sign)+taut;
else clause[clauseptr++]=(bar? sign:0)+(k<<25)+(x<<12)+y;
}
@ The |d| and |e| subroutines are called for only one-fourth
of all cell addresses $(x,y)$. Indeed, one can show that
$x$ is always odd, and that $y\bmod4<2$.
Therefore we remember if we've seen $(x,y)$ before.
Slight trick: If |yy| is not in range, we avoid generating the
clause $\bar d_k$ twice.
@d newlit(x,y,c,k) clause[clauseptr++]=((c)<<28)+((k)<<25)+((x)<<12)+(y)
@d newcomplit(x,y,c,k)
clause[clauseptr++]=sign+((c)<<28)+((k)<<25)+((x)<<12)+(y)
@<Sub...@>=
void d(int x,int y) {
register x1=x-1,x2=x,yy=y+1;
if (have_d[x][y]!=tt+1) {
applit(x1,yy,1,0),newlit(x,y,4,1),outclause();
applit(x2,yy,1,0),newlit(x,y,4,1),outclause();
applit(x1,yy,1,0),applit(x2,yy,1,0),newlit(x,y,4,2),outclause();
applit(x1,yy,0,0),applit(x2,yy,0,0),newcomplit(x,y,4,1),outclause();
applit(x1,yy,0,0),newcomplit(x,y,4,2),outclause();
if (yy>=ymin && yy<=ymax)
applit(x2,yy,0,0),newcomplit(x,y,4,2),outclause();
have_d[x][y]=tt+1;
}
}
@#
void e(int x,int y) {
register x1=x-1,x2=x,yy=y-1;
if (have_e[x][y]!=tt+1) {
applit(x1,yy,1,0),newlit(x,y,5,1),outclause();
applit(x2,yy,1,0),newlit(x,y,5,1),outclause();
applit(x1,yy,1,0),applit(x2,yy,1,0),newlit(x,y,5,2),outclause();
applit(x1,yy,0,0),applit(x2,yy,0,0),newcomplit(x,y,5,1),outclause();
applit(x1,yy,0,0),newcomplit(x,y,5,2),outclause();
if (yy>=ymin && yy<=ymax)
applit(x2,yy,0,0),newcomplit(x,y,5,2),outclause();
have_e[x][y]=tt+1;
}
}
@ The |f| subroutine can't be shared quite so often. But we
do save a factor of~2, because $x+y$ is always even.
@<Sub...@>=
void f(int x,int y) {
register xx=x-1,y1=y,y2=y+1;
if (have_f[x][y]!=tt+1) {
applit(xx,y1,1,0),newlit(x,y,6,1),outclause();
applit(xx,y2,1,0),newlit(x,y,6,1),outclause();
applit(xx,y1,1,0),applit(xx,y2,1,0),newlit(x,y,6,2),outclause();
applit(xx,y1,0,0),applit(xx,y2,0,0),newcomplit(x,y,6,1),outclause();
applit(xx,y1,0,0),newcomplit(x,y,6,2),outclause();
if (xx>=xmin && xx<=xmax)
applit(xx,y2,0,0),newcomplit(x,y,6,2),outclause();
have_f[x][y]=tt+1;
}
}
@ The |g| subroutine cleans up the dregs, by somewhat tediously
locating the two neighbors that weren't handled by |d|, |e|, or~|f|.
No sharing is possible here.
@<Sub...@>=
void g(int x,int y) {
register x1,x2,y1,y2;
if (x&1) x1=x-1,y1=y,x2=x+1,y2=y^1;
else x1=x+1,y1=y,x2=x-1,y2=y-1+((y&1)<<1);
applit(x1,y1,1,0),newlit(x,y,7,1),outclause();
applit(x2,y2,1,0),newlit(x,y,7,1),outclause();
applit(x1,y1,1,0),applit(x2,y2,1,0),newlit(x,y,7,2),outclause();
applit(x1,y1,0,0),applit(x2,y2,0,0),newcomplit(x,y,7,1),outclause();
applit(x1,y1,0,0),newcomplit(x,y,7,2),outclause();
applit(x2,y2,0,0),newcomplit(x,y,7,2),outclause();
}
@ Fortunately the |b| subroutine {\it can\/} be shared (since |x| is always
odd), thus saving half of the sixteen clauses generated.
@<Sub...@>=
void b(int x,int y) {
register j,k,xx=x,y1=y-(y&2),y2=y+(y&2);
if (have_b[x][y]!=tt+1) {
d(xx,y1);
e(xx,y2);
for (j=0;j<3;j++) for (k=0;k<3;k++) if (j+k) {
if (j) newcomplit(xx,y1,4,j); /* $\bar d_j$ */
if (k) newcomplit(xx,y2,5,k); /* $\bar e_k$ */
newlit(x,y,2,j+k); /* $b_{j+k}$ */
outclause();
if (j) newlit(xx,y1,4,3-j); /* $d_{3-j}$ */
if (k) newlit(xx,y2,5,3-k); /* $e_{3-k}$ */
newcomplit(x,y,2,5-j-k); /* $\bar b_{5-j-k}$ */
outclause();
}
have_b[x][y]=tt+1;
}
}
@ The (unshared) |c| subroutine handles the other four neighbors,
by working with |f| and |g| instead of |d| and~|e|.
If |y=0|, the overlap rules set |y1=-1|, which can be problematic.
I've decided to avoid this case by omitting |f| when it is
guaranteed to be zero.
@<Sub...@>=
void c(int x,int y) {
register j,k,x1,y1;
if (x&1) x1=x+2,y1=(y-1)|1;
else x1=x,y1=y&-2;
g(x,y);
if (x1-1<xmin || x1-1>xmax || y1+1<ymin || y1>ymax)
@<Set |c| equal to |g|@>@;
else {
f(x1,y1);
for (j=0;j<3;j++) for (k=0;k<3;k++) if (j+k) {
if (j) newcomplit(x1,y1,6,j); /* $\bar f_j$ */
if (k) newcomplit(x,y,7,k); /* $\bar g_k$ */
newlit(x,y,3,j+k); /* $c_{j+k}$ */
outclause();
if (j) newlit(x1,y1,6,3-j); /* $f_{3-j}$ */
if (k) newlit(x,y,7,3-k); /* $g_{3-k}$ */
newcomplit(x,y,3,5-j-k); /* $\bar c_{5-j-k}$ */
outclause();
}
}
}
@ @<Set |c| equal to |g|@>=
{
for (k=1;k<3;k++) {
newcomplit(x,y,7,k),newlit(x,y,3,k),outclause(); /* $\bar g_k\lor c_k$ */
newlit(x,y,7,k),newcomplit(x,y,3,k),outclause(); /* $g_k\lor\bar c_k$ */
}
newcomplit(x,y,3,3),outclause(); /* $\bar c_3$ */
newcomplit(x,y,3,4),outclause(); /* $\bar c_4$ */
}
@ Totals over all eight neighbors are then deduced by the |a|
subroutine.
@<Sub...@>=
void a(int x,int y) {
register j,k,xx=x|1;
b(xx,y);
c(x,y);
for (j=0;j<5;j++) for (k=0;k<5;k++) if (j+k>1 && j+k<5) {
if (j) newcomplit(xx,y,2,j); /* $\bar b_j$ */
if (k) newcomplit(x,y,3,k); /* $\bar c_k$ */
newlit(x,y,1,j+k); /* $a_{j+k}$ */
outclause();
}
for (j=0;j<5;j++) for (k=0;k<5;k++) if (j+k>2 && j+k<6 && j*k) {
if (j) newlit(xx,y,2,j); /* $b_j$ */
if (k) newlit(x,y,3,k); /* $c_k$ */
newcomplit(x,y,1,j+k-1); /* $\bar a_{j+k-1}$ */
outclause();
}
}
@ Finally, as mentioned at the beginning, $z'$ is determined
from $z$, $a_2$, $a_3$, and $a_4$.
I actually generate six clauses, not five, in order to stick to
{\mc 3SAT}.
@<Sub...@>=
void zprime(int x,int y) {
newcomplit(x,y,1,4),applit(x,y,1,1),outclause(); /* $\bar a_4\bar z'$ */
newlit(x,y,1,2),applit(x,y,1,1),outclause(); /* $a_2\bar z'$ */
newlit(x,y,1,3),applit(x,y,0,0),applit(x,y,1,1),outclause();
/* $a_3z\bar z'$ */
newcomplit(x,y,1,3),newlit(x,y,1,4),applit(x,y,0,1),outclause();
/* $\bar a_3a_4z'$ */
applit(x,y,0,7),newcomplit(x,y,1,2),newlit(x,y,1,4),outclause();
/* $x\bar a_2a_4$ */
applit(x,y,1,7),applit(x,y,1,0),applit(x,y,0,1),outclause();
/* $\bar x\bar zz'$ */
}
@*Index.

View File

@@ -0,0 +1,24 @@
{namespace Exmaple}
/**
* Example
*/
{template .foo}
{@param count: string}
{@param? name: int}
{if isNonnull($name)}
<h1>{$name}</h1>
{/if}
<div class="content">
{switch count}
{case 0}
{call Empty.view}
{param count: $count /}
{/call}
{default}
<h2>Wow, so many!</h2>
{/switch}
</div>
{/template}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
# not really (there's an EB_bzip2 easyblock), but fine for use in unit tests
easyblock = 'ConfigureMake'
name = 'bzip2'
version = '1.0.6'
homepage = 'http://www.bzip.org/'
description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically
compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical
compressors), whilst being around twice as fast at compression and six times faster at decompression."""
toolchain = {'name': 'GCC', 'version': '4.9.2'}
toolchainopts = {'pic': True}
sources = [SOURCE_TAR_GZ]
source_urls = ['http://www.bzip.org/%(version)s']
builddependencies = [('gzip', '1.6')]
moduleclass = 'tools'

View File

@@ -0,0 +1,97 @@
/*
* Author: Robert Koeninger
* License: WTFPL (http://www.wtfpl.net/)
*/
class Spelling {
** Load sample text and offer corrections for input
static Void main(Str[] args) {
text := File.os("big.txt").readAllStr
counts := Str:Int[:] { def = 0 }
text.split.each |word| { counts[word] += 1 }
args.each |arg| { echo(correction(counts, arg)) }
}
static const Range letters := Range.makeInclusive(97, 122)
** Most probable spelling correction for `word`.
static Str correction(Str:Int counts, Str word) {
candidates(counts, word).max |x, y| { counts[x] <=> counts[y] }
}
** Generate possible spelling corrections for `word`.
static Str[] candidates(Str:Int counts, Str word) {
result := known(counts, Str[word])
if (result.size > 0) return result
result = known(counts, edits1(word))
if (result.size > 0) return result
result = known(counts, edits2(word))
if (result.size > 0) return result
return Str[word]
}
** The subset of `words` that appear in the map of `counts`.
static Str[] known(Str:Int counts, Str[] words) {
words.findAll |word, i| { counts[word] > 0 }.unique
}
** All edits that are one edit away from `word`.
static Str[] edits1(Str word) {
edits := Str[,]
for (i := 0; i < word.size; ++i) {
edits.add(delete(word, i))
if (i < word.size - 2) {
edits.add(transpose(word, i))
}
edits.addAll(replace(word, i))
edits.addAll(insert(word, i))
}
edits = edits.unique
edits.remove(word)
return edits
}
** Word with `i`th letter removed.
static Str delete(Str word, Int i) {
left := word.getRange(Range.makeExclusive(0, i))
right := word.getRange(Range.makeExclusive(i + 1, word.size))
return left + right
}
** Word with `i`th and `i+1`st letter swapped.
static Str transpose(Str word, Int i) {
left := word.getRange(Range.makeExclusive(0, i))
right := word.getRange(Range.makeExclusive(i, word.size))
first := right.get(0).toChar
second := right.get(1).toChar
rest := right.getRange(Range.makeExclusive(2, right.size))
return left + second + first + rest
}
** Word with `i`th letter replaced with every other letter.
static Str[] replace(Str word, Int i) {
left := word.getRange(Range.makeExclusive(0, i))
right := word.getRange(Range.makeExclusive(i + 1, word.size))
return letters.map |ch| { left + ch.toChar + right }
}
** Word with each letter inserted at `i`.
static Str[] insert(Str word, Int i) {
left := word.getRange(Range.makeExclusive(0, i))
right := word.getRange(Range.makeExclusive(i, word.size))
return letters.map |ch| { left + ch.toChar + right }
}
** All edits that are two edits away from `word`.
static Str[] edits2(Str word) {
(Str[])(edits1(word).map |w| { edits1(w) }.flatten)
}
}

View File

@@ -0,0 +1,50 @@
/*
* Author: Robert Koeninger
* License: WTFPL (http://www.wtfpl.net/)
*/
mixin Expr
{
abstract Obj? eval()
}
class Constant : Expr
{
Obj? value
new make(Obj? value) { this.value = value }
override Obj? eval() { value }
}
enum class Op
{
plus,
minus
}
class Infix : Expr
{
Op op
Expr left
Expr right
new make(Op op, Expr left, Expr right)
{
this.op = op
this.left = left
this.right = right
}
override Obj? eval()
{
switch (op)
{
case Op.plus:
return (Int)left.eval() + (Int)right.eval()
case Op.minus:
return (Int)left.eval() - (Int)right.eval()
default:
throw Err("undefined Op")
}
}
}

View File

@@ -0,0 +1,98 @@
/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Sascha Willems
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
// PN patch data
struct PnPatch
{
float b210;
float b120;
float b021;
float b012;
float b102;
float b201;
float b111;
float n110;
float n011;
float n101;
};
// tessellation levels
layout (binding = 0) uniform UBO
{
float tessLevel;
} ubo;
layout(vertices=3) out;
layout(location = 0) in vec3 inNormal[];
layout(location = 1) in vec2 inUV[];
layout(location = 0) out vec3 outNormal[3];
layout(location = 3) out vec2 outUV[3];
layout(location = 6) out PnPatch outPatch[3];
float wij(int i, int j)
{
return dot(gl_in[j].gl_Position.xyz - gl_in[i].gl_Position.xyz, inNormal[i]);
}
float vij(int i, int j)
{
vec3 Pj_minus_Pi = gl_in[j].gl_Position.xyz
- gl_in[i].gl_Position.xyz;
vec3 Ni_plus_Nj = inNormal[i]+inNormal[j];
return 2.0*dot(Pj_minus_Pi, Ni_plus_Nj)/dot(Pj_minus_Pi, Pj_minus_Pi);
}
void main()
{
// get data
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
outNormal[gl_InvocationID] = inNormal[gl_InvocationID];
outUV[gl_InvocationID] = inUV[gl_InvocationID];
// set base
float P0 = gl_in[0].gl_Position[gl_InvocationID];
float P1 = gl_in[1].gl_Position[gl_InvocationID];
float P2 = gl_in[2].gl_Position[gl_InvocationID];
float N0 = inNormal[0][gl_InvocationID];
float N1 = inNormal[1][gl_InvocationID];
float N2 = inNormal[2][gl_InvocationID];
// compute control points
outPatch[gl_InvocationID].b210 = (2.0*P0 + P1 - wij(0,1)*N0)/3.0;
outPatch[gl_InvocationID].b120 = (2.0*P1 + P0 - wij(1,0)*N1)/3.0;
outPatch[gl_InvocationID].b021 = (2.0*P1 + P2 - wij(1,2)*N1)/3.0;
outPatch[gl_InvocationID].b012 = (2.0*P2 + P1 - wij(2,1)*N2)/3.0;
outPatch[gl_InvocationID].b102 = (2.0*P2 + P0 - wij(2,0)*N2)/3.0;
outPatch[gl_InvocationID].b201 = (2.0*P0 + P2 - wij(0,2)*N0)/3.0;
float E = ( outPatch[gl_InvocationID].b210
+ outPatch[gl_InvocationID].b120
+ outPatch[gl_InvocationID].b021
+ outPatch[gl_InvocationID].b012
+ outPatch[gl_InvocationID].b102
+ outPatch[gl_InvocationID].b201 ) / 6.0;
float V = (P0 + P1 + P2)/3.0;
outPatch[gl_InvocationID].b111 = E + (E - V)*0.5;
outPatch[gl_InvocationID].n110 = N0+N1-vij(0,1)*(P1-P0);
outPatch[gl_InvocationID].n011 = N1+N2-vij(1,2)*(P2-P1);
outPatch[gl_InvocationID].n101 = N2+N0-vij(2,0)*(P0-P2);
// set tess levels
gl_TessLevelOuter[gl_InvocationID] = ubo.tessLevel;
gl_TessLevelInner[0] = ubo.tessLevel;
}

View File

@@ -0,0 +1,103 @@
/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Sascha Willems
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
// PN patch data
struct PnPatch
{
float b210;
float b120;
float b021;
float b012;
float b102;
float b201;
float b111;
float n110;
float n011;
float n101;
};
layout (binding = 1) uniform UBO
{
mat4 projection;
mat4 model;
float tessAlpha;
} ubo;
layout(triangles, fractional_odd_spacing, ccw) in;
layout(location = 0) in vec3 iNormal[];
layout(location = 3) in vec2 iTexCoord[];
layout(location = 6) in PnPatch iPnPatch[];
layout(location = 0) out vec3 oNormal;
layout(location = 1) out vec2 oTexCoord;
#define uvw gl_TessCoord
void main()
{
vec3 uvwSquared = uvw * uvw;
vec3 uvwCubed = uvwSquared * uvw;
// extract control points
vec3 b210 = vec3(iPnPatch[0].b210, iPnPatch[1].b210, iPnPatch[2].b210);
vec3 b120 = vec3(iPnPatch[0].b120, iPnPatch[1].b120, iPnPatch[2].b120);
vec3 b021 = vec3(iPnPatch[0].b021, iPnPatch[1].b021, iPnPatch[2].b021);
vec3 b012 = vec3(iPnPatch[0].b012, iPnPatch[1].b012, iPnPatch[2].b012);
vec3 b102 = vec3(iPnPatch[0].b102, iPnPatch[1].b102, iPnPatch[2].b102);
vec3 b201 = vec3(iPnPatch[0].b201, iPnPatch[1].b201, iPnPatch[2].b201);
vec3 b111 = vec3(iPnPatch[0].b111, iPnPatch[1].b111, iPnPatch[2].b111);
// extract control normals
vec3 n110 = normalize(vec3(iPnPatch[0].n110, iPnPatch[1].n110, iPnPatch[2].n110));
vec3 n011 = normalize(vec3(iPnPatch[0].n011, iPnPatch[1].n011, iPnPatch[2].n011));
vec3 n101 = normalize(vec3(iPnPatch[0].n101, iPnPatch[1].n101, iPnPatch[2].n101));
// compute texcoords
oTexCoord = gl_TessCoord[2]*iTexCoord[0] + gl_TessCoord[0]*iTexCoord[1] + gl_TessCoord[1]*iTexCoord[2];
// normal
// Barycentric normal
vec3 barNormal = gl_TessCoord[2]*iNormal[0] + gl_TessCoord[0]*iNormal[1] + gl_TessCoord[1]*iNormal[2];
vec3 pnNormal = iNormal[0]*uvwSquared[2] + iNormal[1]*uvwSquared[0] + iNormal[2]*uvwSquared[1]
+ n110*uvw[2]*uvw[0] + n011*uvw[0]*uvw[1]+ n101*uvw[2]*uvw[1];
oNormal = ubo.tessAlpha*pnNormal + (1.0-ubo.tessAlpha) * barNormal;
// compute interpolated pos
vec3 barPos = gl_TessCoord[2]*gl_in[0].gl_Position.xyz
+ gl_TessCoord[0]*gl_in[1].gl_Position.xyz
+ gl_TessCoord[1]*gl_in[2].gl_Position.xyz;
// save some computations
uvwSquared *= 3.0;
// compute PN position
vec3 pnPos = gl_in[0].gl_Position.xyz*uvwCubed[2]
+ gl_in[1].gl_Position.xyz*uvwCubed[0]
+ gl_in[2].gl_Position.xyz*uvwCubed[1]
+ b210*uvwSquared[2]*uvw[0]
+ b120*uvwSquared[0]*uvw[2]
+ b201*uvwSquared[2]*uvw[1]
+ b021*uvwSquared[0]*uvw[1]
+ b102*uvwSquared[1]*uvw[2]
+ b012*uvwSquared[1]*uvw[0]
+ b111*6.0*uvw[0]*uvw[1]*uvw[2];
// final position and normal
vec3 finalPos = (1.0-ubo.tessAlpha)*barPos + ubo.tessAlpha*pnPos;
gl_Position = ubo.projection * ubo.model * vec4(finalPos,1.0);
}

View File

@@ -0,0 +1,313 @@
G04 #@! TF.FileFunction,Copper,L2,Bot,Signal*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11C,0.175000*%
%ADD12R,1.727200X2.032000*%
%ADD13O,1.727200X2.032000*%
%ADD14R,2.032000X1.727200*%
%ADD15O,2.032000X1.727200*%
%ADD16C,1.300000*%
%ADD17C,2.800000*%
%ADD18C,0.685800*%
%ADD19C,0.800000*%
%ADD20C,0.400000*%
%ADD21C,0.800000*%
%ADD22C,0.300000*%
%ADD23C,0.500000*%
%ADD24C,0.180000*%
G04 APERTURE END LIST*
D10*
D11*
X162816666Y-95670833D02*
X162883333Y-95637500D01*
X163016666Y-95637500D01*
X163083333Y-95670833D01*
X163150000Y-95737500D01*
X163183333Y-95804166D01*
X163183333Y-95937500D01*
X163150000Y-96004166D01*
X163083333Y-96070833D01*
X163016666Y-96104166D01*
X162883333Y-96104166D01*
X162816666Y-96070833D01*
X162950000Y-95404166D02*
X163116666Y-95437500D01*
X163283333Y-95537500D01*
X163383333Y-95704166D01*
X163416666Y-95870833D01*
X157450000Y-95870833D01*
X157483333Y-95837500D01*
X157550000Y-95804166D01*
X156816666Y-95504166D02*
X156950000Y-95504166D01*
X157016666Y-95537500D01*
X157050000Y-95570833D01*
X157116666Y-95670833D01*
X157150000Y-95804166D01*
X157150000Y-96070833D01*
X157116666Y-96137500D01*
X157083333Y-96170833D01*
X157016666Y-96204166D01*
X156883333Y-96204166D01*
X156816666Y-96170833D01*
X156783333Y-96137500D01*
X156750000Y-96070833D01*
X156750000Y-95904166D01*
X156783333Y-95837500D01*
X156816666Y-95804166D01*
X156883333Y-95770833D01*
X157016666Y-95770833D01*
X157083333Y-95804166D01*
X157116666Y-95837500D01*
X157150000Y-95904166D01*
X156450000Y-95937500D02*
X155916666Y-95937500D01*
X155616666Y-96170833D02*
X155516666Y-96204166D01*
X155350000Y-96204166D01*
X155283333Y-96170833D01*
X155250000Y-96137500D01*
X155216666Y-96070833D01*
X155216666Y-96004166D01*
X155250000Y-95937500D01*
X155283333Y-95904166D01*
X155350000Y-95870833D01*
X155483333Y-95837500D01*
X155550000Y-95804166D01*
X155583333Y-95770833D01*
X155616666Y-95704166D01*
X155616666Y-95637500D01*
X155583333Y-95570833D01*
X155550000Y-95537500D01*
X155483333Y-95504166D01*
X155316666Y-95504166D01*
X155216666Y-95537500D01*
X155016666Y-95737500D02*
X154750000Y-95737500D01*
X154916666Y-95504166D02*
X154916666Y-96104166D01*
X154883333Y-96170833D01*
X154816666Y-96204166D01*
X154750000Y-96204166D01*
X154216666Y-95737500D02*
X154216666Y-96204166D01*
X154516666Y-95737500D02*
X154516666Y-96104166D01*
X154483333Y-96170833D01*
X154416666Y-96204166D01*
X154316666Y-96204166D01*
X154250000Y-96170833D01*
X154216666Y-96137500D01*
X153583333Y-96204166D02*
X153583333Y-95504166D01*
X153583333Y-96170833D02*
X153650000Y-96204166D01*
X153783333Y-96204166D01*
X156883333Y-96795833D01*
X156850000Y-96762500D01*
X156883333Y-96729166D01*
X156883333Y-96795833D01*
X156450000Y-97429166D02*
X156516666Y-97395833D01*
X156550000Y-97329166D01*
X156550000Y-96729166D01*
X156183333Y-96962500D02*
X155650000Y-97162500D01*
X156183333Y-97362500D01*
X154883333Y-96729166D02*
X154483333Y-96729166D01*
X154683333Y-97429166D02*
X154683333Y-96729166D01*
X154250000Y-97429166D02*
X154250000Y-96962500D01*
X154250000Y-97095833D02*
X154216666Y-97029166D01*
X154183333Y-96995833D01*
X154116666Y-96962500D01*
X154050000Y-96962500D01*
X153516666Y-97429166D02*
X153516666Y-97062500D01*
X153550000Y-96995833D01*
X153616666Y-96962500D01*
X153750000Y-96962500D01*
X153816666Y-96995833D01*
X153516666Y-97395833D02*
X153583333Y-97429166D01*
X153750000Y-97429166D01*
X153816666Y-97395833D01*
X153850000Y-97329166D01*
X153850000Y-97262500D01*
X153816666Y-97195833D01*
X153750000Y-97162500D01*
X153583333Y-97162500D01*
X153516666Y-97129166D01*
X153183333Y-96962500D02*
X153183333Y-97662500D01*
X153183333Y-96995833D02*
X153116666Y-96962500D01*
X152983333Y-96962500D01*
X152916666Y-96995833D01*
X152883333Y-97029166D01*
X152850000Y-97095833D01*
X152850000Y-97295833D01*
X152883333Y-97362500D01*
X152916666Y-97395833D01*
X152983333Y-97429166D01*
X153116666Y-97429166D01*
X153183333Y-97395833D01*
X152550000Y-97429166D02*
X152550000Y-96962500D01*
X152550000Y-96729166D02*
X152583333Y-96762500D01*
X152550000Y-96795833D01*
X152516666Y-96762500D01*
X152550000Y-96729166D01*
X152550000Y-96795833D01*
X151950000Y-97395833D02*
X152016666Y-97429166D01*
X152150000Y-97429166D01*
X152216666Y-97395833D01*
X152250000Y-97329166D01*
X152250000Y-97062500D01*
X152216666Y-96995833D01*
X152150000Y-96962500D01*
X152016666Y-96962500D01*
X151950000Y-96995833D01*
X151916666Y-97062500D01*
X151916666Y-97129166D01*
X152250000Y-97195833D01*
X151616666Y-97429166D02*
X151616666Y-96962500D01*
X151616666Y-97095833D02*
X151583333Y-97029166D01*
X151550000Y-96995833D01*
X151483333Y-96962500D01*
X151416666Y-96962500D01*
D12*
X175640000Y-81600000D03*
D13*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D14*
X184000000Y-86460000D03*
D15*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D16*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D17*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D18*
X173700000Y-89200000D03*
X162300004Y-87000000D03*
X159600000Y-82700000D03*
X161700000Y-94600000D03*
X176200000Y-96600000D03*
X179600000Y-91700000D03*
X158100000Y-83900000D03*
X168600000Y-89399998D03*
X167200000Y-85000000D03*
X159600000Y-81100000D03*
X163800000Y-81100000D03*
D19*
X159300000Y-87400000D03*
X167300000Y-96600000D03*
X167300000Y-94500000D03*
X160900000Y-87400000D03*
D18*
X174900000Y-90299999D03*
X174900000Y-85300000D03*
D19*
X166500002Y-90900000D03*
X177200000Y-90200000D03*
X168000000Y-87400000D03*
X173800000Y-87400000D03*
D18*
X154500000Y-89792900D03*
X154500000Y-88907100D03*
D20*
X167200000Y-87999998D02*
X168257101Y-89057099D01*
X167200000Y-85000000D02*
X167200000Y-87999998D01*
X168257101Y-89057099D02*
X168600000Y-89399998D01*
D21*
X163800000Y-81100000D02*
X159600000Y-81100000D01*
D22*
X159300000Y-87965685D02*
X159300000Y-87400000D01*
X159300000Y-88600000D02*
X159300000Y-87965685D01*
X167300000Y-96600000D02*
X159300000Y-88600000D01*
X167300000Y-94500000D02*
X160900000Y-88100000D01*
X160900000Y-88100000D02*
X160900000Y-87400000D01*
D23*
X174900000Y-85300000D02*
X174900000Y-90299999D01*
D22*
X177200000Y-90200000D02*
X175300000Y-92100000D01*
X175300000Y-92100000D02*
X167700002Y-92100000D01*
X167700002Y-92100000D02*
X166500002Y-90900000D01*
X173800000Y-87400000D02*
X168000000Y-87400000D01*
X154500000Y-88907100D02*
X154342900Y-88907100D01*
X154342900Y-88907100D02*
X152900000Y-90350000D01*
D24*
G36*
X159316814Y-80416329D02*
X159076741Y-80576741D01*
X158916329Y-80816814D01*
X158860000Y-81100000D01*
X158916329Y-81383186D01*
X159076741Y-81623259D01*
X159316814Y-81783671D01*
X159600000Y-81840000D01*
X163800000Y-81840000D01*
X164083186Y-81783671D01*
X176823872Y-82748661D01*
X176850260Y-82616000D01*
X176850260Y-82265373D01*
X151860838Y-81760869D01*
X151114549Y-81487287D01*
X150320374Y-81520123D01*
X149739162Y-81760869D01*
X149586248Y-82054317D01*
X148415000Y-82054317D01*
X148415000Y-81040874D01*
X148467041Y-80779242D01*
X148592092Y-80592091D01*
X148779241Y-80467042D01*
X149040874Y-80415000D01*
X159323495Y-80415000D01*
X159316814Y-80416329D01*
X159316814Y-80416329D01*
G37*
X159316814Y-80416329D02*
X159076741Y-80576741D01*
X158916329Y-80816814D01*
X158860000Y-81100000D01*
X158916329Y-81383186D01*
X159076741Y-81623259D01*
X159323495Y-80415000D01*
X159316814Y-80416329D01*
M02*

View File

@@ -0,0 +1,40 @@
G04 #@! TF.FileFunction,Soldermask,Bot*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11R,1.727200X2.032000*%
%ADD12O,1.727200X2.032000*%
%ADD13R,2.032000X1.727200*%
%ADD14O,2.032000X1.727200*%
%ADD15C,1.300000*%
%ADD16C,2.800000*%
%ADD17C,1.200000*%
G04 APERTURE END LIST*
D10*
D11*
X175640000Y-81600000D03*
D12*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D13*
X184000000Y-86460000D03*
D14*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D15*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D16*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D17*
X150800000Y-87100000D03*
X150800000Y-91600000D03*
M02*

View File

@@ -0,0 +1,245 @@
G04 #@! TF.FileFunction,Legend,Bot*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11C,0.175000*%
%ADD12C,0.375000*%
%ADD13C,0.254000*%
%ADD14R,1.727200X2.032000*%
%ADD15O,1.727200X2.032000*%
%ADD16R,2.032000X1.727200*%
%ADD17O,2.032000X1.727200*%
%ADD18C,1.300000*%
%ADD19C,2.800000*%
%ADD20C,1.200000*%
G04 APERTURE END LIST*
D10*
D11*
X164233333Y-82450000D02*
X164133333Y-82483333D01*
X164100000Y-82516666D01*
X164066666Y-82583333D01*
X164066666Y-82683333D01*
X164100000Y-82750000D01*
X164133333Y-82783333D01*
X164200000Y-82816666D01*
X164466666Y-82816666D01*
X164466666Y-82116666D01*
X164233333Y-82116666D01*
X164166666Y-82150000D01*
X164133333Y-82183333D01*
X164100000Y-82250000D01*
X164100000Y-82316666D01*
X164133333Y-82383333D01*
X164166666Y-82416666D01*
X164233333Y-82450000D01*
X164466666Y-82450000D01*
X163666666Y-82816666D02*
X163733333Y-82783333D01*
X163766666Y-82750000D01*
X163800000Y-82683333D01*
X163800000Y-82483333D01*
X163766666Y-82416666D01*
X163733333Y-82383333D01*
X163666666Y-82350000D01*
X163566666Y-82350000D01*
X163500000Y-82383333D01*
X163466666Y-82416666D01*
X163433333Y-82483333D01*
X163433333Y-82683333D01*
X163466666Y-82750000D01*
X163500000Y-82783333D01*
X163566666Y-82816666D01*
X163666666Y-82816666D01*
X162833333Y-82816666D02*
X162833333Y-82450000D01*
X162866666Y-82383333D01*
X162933333Y-82350000D01*
X163066666Y-82350000D01*
X163133333Y-82383333D01*
X162833333Y-82783333D02*
X162900000Y-82816666D01*
X163066666Y-82816666D01*
X163133333Y-82783333D01*
X163166666Y-82716666D01*
X163166666Y-82650000D01*
X163133333Y-82583333D01*
X163066666Y-82550000D01*
X162900000Y-82550000D01*
X162833333Y-82516666D01*
X162500000Y-82816666D02*
X162500000Y-82350000D01*
X162500000Y-82483333D02*
X162466666Y-82416666D01*
X162433333Y-82383333D01*
X162366666Y-82350000D01*
X162300000Y-82350000D01*
X161766666Y-82816666D02*
X161766666Y-82116666D01*
X161766666Y-82783333D02*
X161833333Y-82816666D01*
X161966666Y-82816666D01*
X162033333Y-82783333D01*
X162066666Y-82750000D01*
X162100000Y-82683333D01*
X162100000Y-82483333D01*
X162066666Y-82416666D01*
X162033333Y-82383333D01*
X161966666Y-82350000D01*
X161833333Y-82350000D01*
X161766666Y-82383333D01*
X160933333Y-82350000D02*
X160433333Y-82350000D01*
X160733333Y-82050000D02*
X160933333Y-82950000D01*
X160500000Y-82650000D02*
X161000000Y-82650000D01*
X160700000Y-82950000D02*
X160500000Y-82050000D01*
D12*
X181899107Y-86482142D02*
X180756250Y-86482142D01*
X181327678Y-87053571D02*
X181327678Y-85910714D01*
X179327678Y-85553571D02*
X180041964Y-85553571D01*
X180113392Y-86267857D01*
X180041964Y-86196428D01*
X179899107Y-86125000D01*
X179541964Y-86125000D01*
X179399107Y-86196428D01*
X179327678Y-86267857D01*
X179256250Y-86410714D01*
X179256250Y-86767857D01*
X179327678Y-86910714D01*
X179399107Y-86982142D01*
X179541964Y-87053571D01*
X179899107Y-87053571D01*
X180041964Y-86982142D01*
X180113392Y-86910714D01*
X178827678Y-85553571D02*
X178327678Y-87053571D01*
X177827678Y-85553571D01*
X176184821Y-87053571D02*
X176184821Y-85553571D01*
X175827678Y-85553571D01*
X175613392Y-85625000D01*
X175470535Y-85767857D01*
X175399107Y-85910714D01*
X175327678Y-86196428D01*
X175327678Y-86410714D01*
X175399107Y-86696428D01*
X175470535Y-86839285D01*
X175613392Y-86982142D01*
X175827678Y-87053571D01*
X176184821Y-87053571D01*
X174684821Y-86267857D02*
X174184821Y-86267857D01*
X173970535Y-87053571D02*
X174684821Y-87053571D01*
X174684821Y-85553571D01*
X173970535Y-85553571D01*
X173541964Y-85553571D02*
X173041964Y-87053571D01*
X172541964Y-85553571D01*
X181041964Y-89678571D02*
X181541964Y-88964285D01*
X181899107Y-89678571D02*
X181899107Y-88178571D01*
X181327678Y-88178571D01*
X181184821Y-88250000D01*
X181113392Y-88321428D01*
X181041964Y-88464285D01*
X181041964Y-88678571D01*
X181113392Y-88821428D01*
X181184821Y-88892857D01*
X181327678Y-88964285D01*
X181899107Y-88964285D01*
X180541964Y-88178571D02*
X179541964Y-89678571D01*
X179541964Y-88178571D02*
X180541964Y-89678571D01*
X179184821Y-88178571D02*
X178327678Y-88178571D01*
X178756250Y-89678571D02*
X178756250Y-88178571D01*
X177970535Y-88178571D02*
X176970535Y-89678571D01*
X176970535Y-88178571D02*
X177970535Y-89678571D01*
X181113392Y-90875000D02*
X181256250Y-90803571D01*
X181470535Y-90803571D01*
X181684821Y-90875000D01*
X181827678Y-91017857D01*
X181899107Y-91160714D01*
X181970535Y-91446428D01*
X181970535Y-91660714D01*
X181899107Y-91946428D01*
X181827678Y-92089285D01*
X181684821Y-92232142D01*
X181470535Y-92303571D01*
X181327678Y-92303571D01*
X181113392Y-92232142D01*
X181041964Y-92160714D01*
X181041964Y-91660714D01*
X181327678Y-91660714D01*
X180399107Y-92303571D02*
X180399107Y-90803571D01*
X179541964Y-92303571D01*
X179541964Y-90803571D01*
X178827678Y-92303571D02*
X178827678Y-90803571D01*
X178470535Y-90803571D01*
X178256250Y-90875000D01*
X178113392Y-91017857D01*
X178041964Y-91160714D01*
X177970535Y-91446428D01*
X177970535Y-91660714D01*
X178041964Y-91946428D01*
X178113392Y-92089285D01*
X178256250Y-92232142D01*
X178470535Y-92303571D01*
X178827678Y-92303571D01*
D13*
G36*
X164873000Y-87373000D02*
X154627000Y-87373000D01*
X154627000Y-83127000D01*
X164873000Y-83127000D01*
X164873000Y-87373000D01*
X164873000Y-87373000D01*
G37*
X164873000Y-87373000D02*
X154627000Y-87373000D01*
X154627000Y-83127000D01*
X164873000Y-83127000D01*
X164873000Y-87373000D01*
%LPC*%
D14*
X175640000Y-81600000D03*
D15*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D16*
X184000000Y-86460000D03*
D17*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D18*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D19*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D20*
X150800000Y-87100000D03*
X150800000Y-91600000D03*
M02*

View File

@@ -0,0 +1,571 @@
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11R,0.800000X0.750000*%
%ADD12R,0.750000X0.800000*%
%ADD13R,1.198880X1.198880*%
%ADD14R,1.727200X2.032000*%
%ADD15O,1.727200X2.032000*%
%ADD16R,0.500000X0.900000*%
%ADD17R,0.450000X1.750000*%
%ADD18R,1.060000X0.650000*%
%ADD19R,2.032000X1.727200*%
%ADD20O,2.032000X1.727200*%
%ADD21R,0.900000X0.500000*%
%ADD22C,1.300000*%
%ADD23C,2.800000*%
%ADD24C,0.685800*%
%ADD25C,0.800000*%
%ADD26C,0.500000*%
%ADD27C,0.300000*%
%ADD28C,0.400000*%
%ADD29C,0.800000*%
%ADD30C,0.250000*%
%ADD31C,0.180000*%
%ADD32C,0.160000*%
G04 APERTURE END LIST*
D10*
D11*
X165350000Y-82700000D03*
X163850000Y-82700000D03*
X162350000Y-82700000D03*
X160850000Y-82700000D03*
D12*
X172700000Y-87350000D03*
X172700000Y-88850000D03*
D11*
X181100000Y-90600000D03*
X179600000Y-90600000D03*
D13*
X168800000Y-94500000D03*
X168800000Y-96598040D03*
X170800000Y-94500000D03*
X170800000Y-96598040D03*
X172800000Y-94500000D03*
X172800000Y-96598040D03*
D14*
X175640000Y-81600000D03*
D15*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D16*
X181100000Y-89000000D03*
X179600000Y-89000000D03*
X179600000Y-87300000D03*
X181100000Y-87300000D03*
D17*
X156775000Y-92600000D03*
X157425000Y-92600000D03*
X158075000Y-92600000D03*
X158725000Y-92600000D03*
X159375000Y-92600000D03*
X160025000Y-92600000D03*
X160675000Y-92600000D03*
X161325000Y-92600000D03*
X161975000Y-92600000D03*
X162625000Y-92600000D03*
X163275000Y-92600000D03*
X163925000Y-92600000D03*
X164575000Y-92600000D03*
X165225000Y-92600000D03*
X165225000Y-85400000D03*
X164575000Y-85400000D03*
X163925000Y-85400000D03*
X163275000Y-85400000D03*
X162625000Y-85400000D03*
X161975000Y-85400000D03*
X161325000Y-85400000D03*
X160675000Y-85400000D03*
X160025000Y-85400000D03*
X159375000Y-85400000D03*
X158725000Y-85400000D03*
X158075000Y-85400000D03*
X157425000Y-85400000D03*
X156775000Y-85400000D03*
D18*
X175000000Y-87150000D03*
X175000000Y-88100000D03*
X175000000Y-89050000D03*
X177200000Y-89050000D03*
X177200000Y-87150000D03*
D19*
X184000000Y-86460000D03*
D20*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D13*
X174900000Y-94501960D03*
X174900000Y-96600000D03*
D11*
X159000000Y-94600000D03*
X160500000Y-94600000D03*
X162350000Y-81100000D03*
X160850000Y-81100000D03*
D21*
X171150000Y-88600000D03*
X171150000Y-90100000D03*
X169550000Y-88600000D03*
X169550000Y-90100000D03*
X168800000Y-91300000D03*
X168800000Y-92800000D03*
X170800000Y-91300000D03*
X170800000Y-92800000D03*
X172800000Y-91300000D03*
X172800000Y-92800000D03*
X174900000Y-91300000D03*
X174900000Y-92800000D03*
X176600000Y-91300000D03*
X176600000Y-92800000D03*
D22*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D23*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D24*
X173700000Y-89200000D03*
X162300004Y-87000000D03*
X159600000Y-82700000D03*
X161700000Y-94600000D03*
X176200000Y-96600000D03*
X179600000Y-91700000D03*
X158100000Y-83900000D03*
X168600000Y-89399998D03*
X167200000Y-85000000D03*
X159600000Y-81100000D03*
X163800000Y-81100000D03*
D25*
X159300000Y-87400000D03*
X167300000Y-96600000D03*
X167300000Y-94500000D03*
X160900000Y-87400000D03*
D24*
X174900000Y-90299999D03*
X174900000Y-85300000D03*
D25*
X166500002Y-90900000D03*
X177200000Y-90200000D03*
X168000000Y-87400000D03*
X173800000Y-87400000D03*
D24*
X154500000Y-89792900D03*
X154500000Y-88907100D03*
D26*
X165325000Y-82700000D02*
X165325000Y-83475000D01*
X165325000Y-83475000D02*
X164900000Y-83900000D01*
X164900000Y-83900000D02*
X164250677Y-83900000D01*
X163947598Y-84375049D02*
X163927410Y-84395237D01*
X164250677Y-83900000D02*
X163947598Y-84203079D01*
X163947598Y-84203079D02*
X163947598Y-84375049D01*
X163927410Y-84395237D02*
X163927410Y-85400000D01*
D27*
X165325000Y-82700000D02*
X165325000Y-82826415D01*
D26*
X165350000Y-82700000D02*
X165325000Y-82700000D01*
X172700000Y-88850000D02*
X173350000Y-88850000D01*
X173350000Y-88850000D02*
X173700000Y-89200000D01*
X175000000Y-89050000D02*
X173850000Y-89050000D01*
X173850000Y-89050000D02*
X173700000Y-89200000D01*
X175000000Y-88100000D02*
X175000000Y-89050000D01*
X163850000Y-82700000D02*
X163850000Y-83378030D01*
X163850000Y-83378030D02*
X163295188Y-83932842D01*
X163275000Y-84125000D02*
X163295188Y-84104812D01*
X163295188Y-84104812D02*
X163295188Y-83932842D01*
X163275000Y-85400000D02*
X163275000Y-84125000D01*
X160850000Y-82700000D02*
X160850000Y-83575000D01*
X160850000Y-83575000D02*
X160875000Y-83600000D01*
X160875000Y-83600000D02*
X160900000Y-83600000D01*
X161325000Y-85400000D02*
X161325000Y-84025000D01*
X161325000Y-84025000D02*
X160900000Y-83600000D01*
X160675000Y-92600000D02*
X160675000Y-93800000D01*
X160500000Y-94600000D02*
X160500000Y-93975000D01*
X160500000Y-93975000D02*
X160675000Y-93800000D01*
X163275000Y-85400000D02*
X163275000Y-86509937D01*
X163275000Y-86509937D02*
X162784937Y-87000000D01*
X162784937Y-87000000D02*
X162300004Y-87000000D01*
X161325000Y-86509929D02*
X161815071Y-87000000D01*
X161325000Y-85400000D02*
X161325000Y-86509929D01*
X161815071Y-87000000D02*
X162300004Y-87000000D01*
X159700000Y-82700000D02*
X159600000Y-82700000D01*
X160850000Y-82700000D02*
X159700000Y-82700000D01*
X160850000Y-82700000D02*
X160850000Y-81100000D01*
X160500000Y-94600000D02*
X161700000Y-94600000D01*
X158075000Y-85400000D02*
X158075000Y-83925000D01*
X158075000Y-83925000D02*
X158100000Y-83900000D01*
X158075000Y-85400000D02*
X158725000Y-85400000D01*
X179600000Y-90600000D02*
X179600000Y-91700000D01*
X174900000Y-96600000D02*
X176200000Y-96600000D01*
X172800000Y-96598040D02*
X174898040Y-96598040D01*
X174898040Y-96598040D02*
X174900000Y-96600000D01*
X169250000Y-85000000D02*
X170560000Y-83690000D01*
X170560000Y-83690000D02*
X170560000Y-81600000D01*
X167200000Y-85000000D02*
X169250000Y-85000000D01*
X168600000Y-90500000D02*
X168600000Y-89399998D01*
X168800000Y-91300000D02*
X168800000Y-90700000D01*
X168800000Y-90700000D02*
X168600000Y-90500000D01*
D28*
X170500000Y-88600000D02*
X171150000Y-88600000D01*
D26*
X169550000Y-88600000D02*
X170500000Y-88600000D01*
X168600000Y-89399998D02*
X168750002Y-89399998D01*
X168750002Y-89399998D02*
X169550000Y-88600000D01*
X162350000Y-82700000D02*
X162350000Y-83575000D01*
X162350000Y-83575000D02*
X161977410Y-83947590D01*
X161977410Y-83947590D02*
X161977410Y-85400000D01*
D29*
X162350000Y-81100000D02*
X163800000Y-81100000D01*
D30*
X174222599Y-89677401D02*
X175726921Y-89677401D01*
X175726921Y-89677401D02*
X176250000Y-89154322D01*
X176250000Y-89154322D02*
X176250000Y-88675000D01*
X176250000Y-88675000D02*
X177200000Y-87725000D01*
X177200000Y-87725000D02*
X177200000Y-87150000D01*
D26*
X177200000Y-87150000D02*
X179450000Y-87150000D01*
X179450000Y-87150000D02*
X179600000Y-87300000D01*
X159000000Y-94600000D02*
X159000000Y-94000000D01*
X159000000Y-94000000D02*
X158725000Y-93725000D01*
X158725000Y-93725000D02*
X158725000Y-92600000D01*
D28*
X174222599Y-89677401D02*
X173800000Y-90100000D01*
X159600000Y-96600000D02*
X159000000Y-96000000D01*
D27*
X181100000Y-87300000D02*
X181100000Y-89000000D01*
X181100000Y-90600000D02*
X181100000Y-89000000D01*
X181100000Y-89000000D02*
X184000000Y-89000000D01*
D26*
X168800000Y-94500000D02*
X168800000Y-92800000D01*
X168800000Y-96598040D02*
X167301960Y-96598040D01*
X167301960Y-96598040D02*
X167300000Y-96600000D01*
D27*
X159300000Y-87400000D02*
X160025000Y-86675000D01*
X160025000Y-86675000D02*
X160025000Y-85400000D01*
D26*
X170800000Y-92800000D02*
X170800000Y-94500000D01*
X167300000Y-94500000D02*
X167300000Y-95065685D01*
X167300000Y-95065685D02*
X167734314Y-95499999D01*
X167734314Y-95499999D02*
X167876797Y-95499999D01*
X167876797Y-95499999D02*
X167878639Y-95501841D01*
X167878639Y-95501841D02*
X170603241Y-95501841D01*
X170603241Y-95501841D02*
X170800000Y-95698600D01*
X170800000Y-95698600D02*
X170800000Y-96598040D01*
D27*
X160675000Y-85400000D02*
X160675000Y-86400000D01*
X160900000Y-86900000D02*
X160675000Y-86675000D01*
X160675000Y-86675000D02*
X160675000Y-86400000D01*
X160900000Y-87400000D02*
X160900000Y-86900000D01*
D26*
X172800000Y-92800000D02*
X172800000Y-94500000D01*
D27*
X175640000Y-81600000D02*
X175640000Y-84560000D01*
X175640000Y-84560000D02*
X174900000Y-85300000D01*
D26*
X176600000Y-91300000D02*
X175599999Y-90299999D01*
X175599999Y-90299999D02*
X174900000Y-90299999D01*
D29*
X175640000Y-81600000D02*
X180803600Y-81600000D01*
X180803600Y-81600000D02*
X184000000Y-84796400D01*
X184000000Y-84796400D02*
X184000000Y-86460000D01*
D26*
X174900000Y-92800000D02*
X174900000Y-94501960D01*
D27*
X165934317Y-90900000D02*
X166500002Y-90900000D01*
X159900000Y-90900000D02*
X165934317Y-90900000D01*
X159375000Y-91425000D02*
X159900000Y-90900000D01*
X159375000Y-92600000D02*
X159375000Y-91425000D01*
X177200000Y-90200000D02*
X177200000Y-89050000D01*
X177200000Y-89050000D02*
X179550000Y-89050000D01*
X179550000Y-89050000D02*
X179600000Y-89000000D01*
X166000000Y-89400000D02*
X167600001Y-87799999D01*
X158400000Y-89400000D02*
X166000000Y-89400000D01*
X167600001Y-87799999D02*
X168000000Y-87400000D01*
X156775000Y-91025000D02*
X158400000Y-89400000D01*
X175000000Y-87150000D02*
X174050000Y-87150000D01*
X174050000Y-87150000D02*
X173800000Y-87400000D01*
X156775000Y-91025000D02*
X156800000Y-91000000D01*
X156775000Y-92600000D02*
X156775000Y-91025000D01*
D26*
X169550000Y-90100000D02*
X169600000Y-90100000D01*
X169600000Y-90100000D02*
X170800000Y-91300000D01*
X174900000Y-91300000D02*
X175100000Y-91300000D01*
X175100000Y-91300000D02*
X176600000Y-92800000D01*
X171150000Y-90100000D02*
X171600000Y-90100000D01*
X171600000Y-90100000D02*
X172800000Y-91300000D01*
D27*
X154500000Y-89792900D02*
X154342900Y-89792900D01*
X154342900Y-89792900D02*
X152900000Y-88350000D01*
X157560197Y-89599999D02*
X154692901Y-89599999D01*
X154692901Y-89599999D02*
X154500000Y-89792900D01*
X165225000Y-86712500D02*
X165150000Y-86787500D01*
X165225000Y-85400000D02*
X165225000Y-86712500D01*
X165150000Y-86787500D02*
X165150000Y-87703552D01*
X165150000Y-87703552D02*
X163905962Y-88947590D01*
X163905962Y-88947590D02*
X158212605Y-88947591D01*
X158212605Y-88947591D02*
X157560197Y-89599999D01*
X157353101Y-89100001D02*
X154692901Y-89100001D01*
X154692901Y-89100001D02*
X154500000Y-88907100D01*
X164650000Y-86787500D02*
X164650000Y-87496448D01*
X158005501Y-88447601D02*
X157353101Y-89100001D01*
X164575000Y-85400000D02*
X164575000Y-86712500D01*
X164575000Y-86712500D02*
X164650000Y-86787500D01*
X164650000Y-87496448D02*
X163698847Y-88447601D01*
X163698847Y-88447601D02*
X158005501Y-88447601D01*
D31*
G36*
X161443040Y-80386260D02*
X161404451Y-80479422D01*
X161363152Y-80451826D01*
X161250000Y-80429319D01*
X160450000Y-80429319D01*
X160336848Y-80451826D01*
X160240922Y-80515922D01*
X160176826Y-80611848D01*
X160154319Y-80725000D01*
X160154319Y-81475000D01*
X160176826Y-81588152D01*
X160240922Y-81684078D01*
X160310000Y-81730235D01*
X160310000Y-82069765D01*
X160240922Y-82115922D01*
X160211470Y-82160000D01*
X159949905Y-82160000D01*
X159726444Y-82067210D01*
X159474661Y-82066991D01*
X159241959Y-82163141D01*
X159063767Y-82341023D01*
X158967210Y-82573556D01*
X158966991Y-82825339D01*
X159063141Y-83058041D01*
X159241023Y-83236233D01*
X159473556Y-83332790D01*
X159725339Y-83333009D01*
X159950439Y-83240000D01*
X160211470Y-83240000D01*
X160240922Y-83284078D01*
X160310000Y-83330235D01*
X160310000Y-83575000D01*
X160351105Y-83781649D01*
X160468162Y-83956838D01*
X160493160Y-83981835D01*
X160493162Y-83981838D01*
X160568503Y-84032179D01*
X160765644Y-84229319D01*
X160450000Y-84229319D01*
X160350000Y-84249210D01*
X160250000Y-84229319D01*
X159800000Y-84229319D01*
X159700000Y-84249210D01*
X159600000Y-84229319D01*
X159150000Y-84229319D01*
X159050000Y-84249210D01*
X158950000Y-84229319D01*
X158648548Y-84229319D01*
X158732790Y-84026444D01*
X172906000Y-81774000D01*
X172906000Y-81426000D01*
X172926000Y-81426000D01*
X172926000Y-81406000D01*
X173274000Y-81406000D01*
X173274000Y-81426000D01*
X173274000Y-81426000D01*
G37*
X173274000Y-81426000D02*
X180070000Y-89624732D01*
X180070000Y-89953439D01*
X180000000Y-89939515D01*
X179200000Y-89939515D01*
X179090750Y-89961246D01*
X178998132Y-90023132D01*
X178936246Y-90115750D01*
X172926000Y-81774000D01*
X172906000Y-81774000D01*
X172906000Y-81426000D01*
X172926000Y-81426000D01*
X172926000Y-81406000D01*
X173274000Y-81406000D01*
X173274000Y-81426000D01*
D31*
G36*
X181810000Y-87900000D02*
X181816851Y-87934442D01*
X181836360Y-87963640D01*
X181865558Y-87983149D01*
X181900000Y-87990000D01*
X185210000Y-87990000D01*
X185210000Y-89910000D01*
X182100000Y-89910000D01*
X182065558Y-89916851D01*
X182036360Y-89936360D01*
X182016851Y-89965558D01*
X182010000Y-90000000D01*
X182010000Y-91310000D01*
X180490000Y-91310000D01*
X180490000Y-86190000D01*
X181810000Y-86190000D01*
X181810000Y-87900000D01*
X181810000Y-87900000D01*
G37*
X181810000Y-87900000D02*
X181816851Y-87934442D01*
X181836360Y-87963640D01*
X181865558Y-87983149D01*
X181900000Y-87990000D01*
X185210000Y-87990000D01*
X185210000Y-89910000D01*
X182100000Y-89910000D01*
X182065558Y-89916851D01*
X182036360Y-89936360D01*
X182016851Y-89965558D01*
X182010000Y-90000000D01*
X182010000Y-91310000D01*
X180490000Y-91310000D01*
X180490000Y-86190000D01*
X181810000Y-86190000D01*
X181810000Y-87900000D01*
M02*

View File

@@ -0,0 +1,128 @@
G04 #@! TF.FileFunction,Soldermask,Top*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11R,0.800000X0.750000*%
%ADD12R,0.750000X0.800000*%
%ADD13R,1.198880X1.198880*%
%ADD14R,1.727200X2.032000*%
%ADD15O,1.727200X2.032000*%
%ADD16R,0.500000X0.900000*%
%ADD17R,0.450000X1.750000*%
%ADD18R,1.060000X0.650000*%
%ADD19R,2.032000X1.727200*%
%ADD20O,2.032000X1.727200*%
%ADD21R,0.900000X0.500000*%
%ADD22C,1.300000*%
%ADD23C,2.800000*%
%ADD24C,1.200000*%
G04 APERTURE END LIST*
D10*
D11*
X165350000Y-82700000D03*
X163850000Y-82700000D03*
X162350000Y-82700000D03*
X160850000Y-82700000D03*
D12*
X172700000Y-87350000D03*
X172700000Y-88850000D03*
D11*
X181100000Y-90600000D03*
X179600000Y-90600000D03*
D13*
X168800000Y-94500000D03*
X168800000Y-96598040D03*
X170800000Y-94500000D03*
X170800000Y-96598040D03*
X172800000Y-94500000D03*
X172800000Y-96598040D03*
D14*
X175640000Y-81600000D03*
D15*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D16*
X181100000Y-89000000D03*
X179600000Y-89000000D03*
X179600000Y-87300000D03*
X181100000Y-87300000D03*
D17*
X156775000Y-92600000D03*
X157425000Y-92600000D03*
X158075000Y-92600000D03*
X158725000Y-92600000D03*
X159375000Y-92600000D03*
X160025000Y-92600000D03*
X160675000Y-92600000D03*
X161325000Y-92600000D03*
X161975000Y-92600000D03*
X162625000Y-92600000D03*
X163275000Y-92600000D03*
X163925000Y-92600000D03*
X164575000Y-92600000D03*
X165225000Y-92600000D03*
X165225000Y-85400000D03*
X164575000Y-85400000D03*
X163925000Y-85400000D03*
X163275000Y-85400000D03*
X162625000Y-85400000D03*
X161975000Y-85400000D03*
X161325000Y-85400000D03*
X160675000Y-85400000D03*
X160025000Y-85400000D03*
X159375000Y-85400000D03*
X158725000Y-85400000D03*
X158075000Y-85400000D03*
X157425000Y-85400000D03*
X156775000Y-85400000D03*
D18*
X175000000Y-87150000D03*
X175000000Y-88100000D03*
X175000000Y-89050000D03*
X177200000Y-89050000D03*
X177200000Y-87150000D03*
D19*
X184000000Y-86460000D03*
D20*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D13*
X174900000Y-94501960D03*
X174900000Y-96600000D03*
D11*
X159000000Y-94600000D03*
X160500000Y-94600000D03*
X162350000Y-81100000D03*
X160850000Y-81100000D03*
D21*
X171150000Y-88600000D03*
X171150000Y-90100000D03*
X169550000Y-88600000D03*
X169550000Y-90100000D03*
X168800000Y-91300000D03*
X168800000Y-92800000D03*
X170800000Y-91300000D03*
X170800000Y-92800000D03*
X172800000Y-91300000D03*
X172800000Y-92800000D03*
X174900000Y-91300000D03*
X174900000Y-92800000D03*
X176600000Y-91300000D03*
X176600000Y-92800000D03*
D22*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D23*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D24*
X150800000Y-87100000D03*
X150800000Y-91600000D03*
M02*

View File

@@ -0,0 +1,12 @@
G04 #@! TF.FileFunction,Paste,Top*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
G04 APERTURE END LIST*
D10*
M02*

View File

@@ -0,0 +1,255 @@
G04 #@! TF.FileFunction,Legend,Top*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
%ADD11C,0.200000*%
%ADD12C,0.500000*%
%ADD13C,0.175000*%
%ADD14C,0.120000*%
%ADD15R,0.800000X0.750000*%
%ADD16R,0.750000X0.800000*%
%ADD17R,1.198880X1.198880*%
%ADD18R,1.727200X2.032000*%
%ADD19O,1.727200X2.032000*%
%ADD20R,0.500000X0.900000*%
%ADD21R,0.450000X1.750000*%
%ADD22R,1.060000X0.650000*%
%ADD23R,2.032000X1.727200*%
%ADD24O,2.032000X1.727200*%
%ADD25R,0.900000X0.500000*%
%ADD26C,1.300000*%
%ADD27C,2.800000*%
%ADD28C,1.200000*%
G04 APERTURE END LIST*
D10*
D11*
X181000000Y-96250000D02*
X181000000Y-96750000D01*
X180750000Y-96500000D02*
X181250000Y-96500000D01*
X180750000Y-97250000D02*
X181250000Y-97250000D01*
D12*
X156000000Y-92800000D02*
G75*
G03X156000000Y-92800000I-200000J0D01*
G01*
D13*
X174800000Y-84116666D02*
X174800000Y-83416666D01*
X174966666Y-83416666D01*
X175066666Y-83450000D01*
X175133333Y-83516666D01*
X175166666Y-83583333D01*
X175200000Y-83716666D01*
X175200000Y-83816666D01*
X175166666Y-83950000D01*
X175133333Y-84016666D01*
X175066666Y-84083333D01*
X174966666Y-84116666D01*
X174800000Y-84116666D01*
X175500000Y-83750000D02*
X175733333Y-83750000D01*
X157483333Y-97316666D02*
X161783333Y-96816666D01*
X162450000Y-97116666D02*
X162783333Y-97116666D01*
X162383333Y-97316666D02*
X162616666Y-96616666D01*
X162850000Y-97316666D01*
D10*
X164950000Y-83300000D02*
X164250000Y-83300000D01*
X164250000Y-82100000D02*
X164950000Y-82100000D01*
X161950000Y-83300000D02*
X161250000Y-83300000D01*
X161250000Y-82100000D02*
X161950000Y-82100000D01*
X173300000Y-87750000D02*
X173300000Y-88450000D01*
X172100000Y-88450000D02*
X172100000Y-87750000D01*
X180700000Y-91200000D02*
X180000000Y-91200000D01*
X180000000Y-90000000D02*
X180700000Y-90000000D01*
X169550000Y-97149020D02*
X169550000Y-94449020D01*
X168050000Y-97149020D02*
X168050000Y-94449020D01*
X168950000Y-95649020D02*
X168700000Y-95649020D01*
X168700000Y-95649020D02*
X168850000Y-95799020D01*
X168450000Y-95899020D02*
X169150000Y-95899020D01*
X168800000Y-95549020D02*
X168800000Y-95199020D01*
X168800000Y-95899020D02*
X168450000Y-95549020D01*
X168450000Y-95549020D02*
X169150000Y-95549020D01*
X169150000Y-95549020D02*
X168800000Y-95899020D01*
X171550000Y-97149020D02*
X171550000Y-94449020D01*
X170050000Y-97149020D02*
X170050000Y-94449020D01*
X170950000Y-95649020D02*
X170700000Y-95649020D01*
X170700000Y-95649020D02*
X170850000Y-95799020D01*
X170450000Y-95899020D02*
X171150000Y-95899020D01*
X170800000Y-95549020D02*
X170800000Y-95199020D01*
X175900000Y-86400000D02*
G75*
G03X175900000Y-86400000I-100000J0D01*
G01*
X176350000Y-86650000D02*
X175850000Y-86650000D01*
X176350000Y-89550000D02*
X176350000Y-86650000D01*
X175850000Y-89550000D02*
X176350000Y-89550000D01*
X175850000Y-86650000D02*
X175850000Y-89550000D01*
X182730000Y-87730000D02*
X182730000Y-92810000D01*
X182730000Y-92810000D02*
X185270000Y-92810000D01*
X185270000Y-92810000D02*
X185270000Y-87730000D01*
X185550000Y-84910000D02*
X185550000Y-86460000D01*
X185270000Y-87730000D02*
X182730000Y-87730000D01*
X175580000Y-92550000D01*
X175920000Y-92550000D02*
X175920000Y-91550000D01*
X177280000Y-91550000D02*
X177280000Y-92550000D01*
D10*
X148000000Y-95350000D02*
X148000000Y-83350000D01*
X134100000Y-83350000D02*
X152800000Y-83350000D01*
X134100000Y-95350000D02*
X134100000Y-83350000D01*
X152900000Y-95350000D02*
X141352380Y-88850000D02*
X140352380Y-88850000D01*
X140495238Y-88945238D01*
X140590476Y-89040476D01*
X140638095Y-89135714D01*
%LPC*%
D15*
X165350000Y-82700000D03*
X163850000Y-82700000D03*
X162350000Y-82700000D03*
X160850000Y-82700000D03*
D16*
X172700000Y-87350000D03*
X172700000Y-88850000D03*
D15*
X181100000Y-90600000D03*
X179600000Y-90600000D03*
D17*
X168800000Y-94500000D03*
X168800000Y-96598040D03*
X170800000Y-94500000D03*
X170800000Y-96598040D03*
X172800000Y-94500000D03*
X172800000Y-96598040D03*
D18*
X175640000Y-81600000D03*
D19*
X173100000Y-81600000D03*
X170560000Y-81600000D03*
D20*
X181100000Y-89000000D03*
X179600000Y-89000000D03*
X179600000Y-87300000D03*
X181100000Y-87300000D03*
D21*
X156775000Y-92600000D03*
X157425000Y-92600000D03*
X158075000Y-92600000D03*
X158725000Y-92600000D03*
X159375000Y-92600000D03*
X160025000Y-92600000D03*
X160675000Y-92600000D03*
X161325000Y-92600000D03*
X161975000Y-92600000D03*
X162625000Y-92600000D03*
X163275000Y-92600000D03*
X163925000Y-92600000D03*
X164575000Y-92600000D03*
X165225000Y-92600000D03*
X165225000Y-85400000D03*
X164575000Y-85400000D03*
X163925000Y-85400000D03*
X163275000Y-85400000D03*
X162625000Y-85400000D03*
X161975000Y-85400000D03*
X161325000Y-85400000D03*
X160675000Y-85400000D03*
X160025000Y-85400000D03*
X159375000Y-85400000D03*
X158725000Y-85400000D03*
X158075000Y-85400000D03*
X157425000Y-85400000D03*
X156775000Y-85400000D03*
D22*
X175000000Y-87150000D03*
X175000000Y-88100000D03*
X175000000Y-89050000D03*
X177200000Y-89050000D03*
X177200000Y-87150000D03*
D23*
X184000000Y-86460000D03*
D24*
X184000000Y-89000000D03*
X184000000Y-91540000D03*
D17*
X174900000Y-94501960D03*
X174900000Y-96600000D03*
D15*
X159000000Y-94600000D03*
X160500000Y-94600000D03*
X162350000Y-81100000D03*
X160850000Y-81100000D03*
D25*
X171150000Y-88600000D03*
X171150000Y-90100000D03*
X169550000Y-88600000D03*
X169550000Y-90100000D03*
X168800000Y-91300000D03*
X168800000Y-92800000D03*
X170800000Y-91300000D03*
X170800000Y-92800000D03*
X172800000Y-91300000D03*
X172800000Y-92800000D03*
X174900000Y-91300000D03*
X174900000Y-92800000D03*
X176600000Y-91300000D03*
X176600000Y-92800000D03*
D26*
X152900000Y-88350000D03*
X152900000Y-90350000D03*
X152900000Y-92850000D03*
X152900000Y-85850000D03*
D27*
X150800000Y-83500000D03*
X150800000Y-95200000D03*
D28*
X150800000Y-87100000D03*
X150800000Y-91600000D03*
M02*

View File

@@ -0,0 +1,60 @@
G04 #@! TF.FileFunction,Paste,Bot*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.4-stable) date 03/23/17 03:26:40*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11R,1.100000X2.400000*%
%ADD12O,1.100000X2.400000*%
%ADD13R,2.000000X2.032000*%
%ADD14R,1.727200X2.032000*%
G04 APERTURE END LIST*
D10*
D11*
X153000000Y-135000000D03*
D12*
X151000000Y-135000000D03*
X149000000Y-135000000D03*
X147000000Y-135000000D03*
X145000000Y-135000000D03*
X143000000Y-135000000D03*
X141000000Y-135000000D03*
X139000000Y-135000000D03*
X139000000Y-119000000D03*
X141000000Y-119000000D03*
X143000000Y-119000000D03*
X145000000Y-119000000D03*
X147000000Y-119000000D03*
X149000000Y-119000000D03*
X151000000Y-119000000D03*
X153000000Y-119000000D03*
D13*
X94500000Y-125500000D03*
X97040000Y-125500000D03*
X99580000Y-125500000D03*
X94500000Y-128500000D03*
X97040000Y-128500000D03*
X99580000Y-128500000D03*
X94500000Y-131500000D03*
X97040000Y-131500000D03*
X99580000Y-131500000D03*
X94500000Y-134500000D03*
X97040000Y-134500000D03*
X99580000Y-134500000D03*
X97040000Y-137500000D03*
X99580000Y-137500000D03*
D14*
X94500000Y-140500000D03*
D13*
X97040000Y-140500000D03*
X99580000Y-140500000D03*
X94500000Y-143500000D03*
X97040000Y-143500000D03*
X99580000Y-143500000D03*
X94500000Y-146500000D03*
X97040000Y-146500000D03*
X99580000Y-146500000D03*
M02*

View File

@@ -0,0 +1,26 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,1.267940X2.408830*%
%ADD11C,0.008000*%
%ADD10C,0.008*%
%LNCONTOUR*%
G90*
G70*
G54D10*
G54D11*
X4Y2405D02*
X1264Y2405D01*
X1264Y4D01*
X4Y4D01*
X4Y2405D01*
D02*
G04 End of contour*
M02*

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,210 @@
G04 #@! TF.FileFunction,Soldermask,Bot*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11C,0.150000*%
%ADD12C,2.000000*%
%ADD13O,2.000000X2.000000*%
%ADD14R,2.400000X1.924000*%
%ADD15O,2.400000X1.924000*%
%ADD16R,1.700000X1.700000*%
%ADD17C,1.700000*%
%ADD18C,2.398980*%
%ADD19R,2.300000X2.400000*%
%ADD20C,2.300000*%
%ADD21R,2.127200X2.127200*%
%ADD22O,2.127200X2.127200*%
%ADD23C,1.400760*%
%ADD24C,1.797000*%
%ADD25C,2.000200*%
G04 APERTURE END LIST*
D10*
D11*
X196250000Y-118000000D02*
X113000000Y-118000000D01*
X196250000Y-52750000D02*
X196250000Y-118000000D01*
X113000000Y-52750000D02*
X196250000Y-52750000D01*
X113000000Y-118000000D02*
X113000000Y-52750000D01*
D12*
X145400000Y-68800000D03*
D13*
X145400000Y-58640000D03*
D14*
X189230000Y-61468000D03*
D15*
X191770000Y-61468000D03*
X189230000Y-74168000D03*
X189230000Y-109728000D03*
X191770000Y-109728000D03*
X191770000Y-97028000D03*
D14*
X118110000Y-61468000D03*
D15*
X120650000Y-61468000D03*
X118110000Y-64008000D03*
X120650000Y-64008000D03*
X118110000Y-66548000D03*
X120650000Y-66548000D03*
X118110000Y-69088000D03*
X120650000Y-69088000D03*
X118110000Y-71628000D03*
X120650000Y-71628000D03*
X118110000Y-74168000D03*
X120650000Y-74168000D03*
X118110000Y-76708000D03*
X120650000Y-76708000D03*
X118110000Y-79248000D03*
X120650000Y-79248000D03*
X118110000Y-81788000D03*
X120650000Y-81788000D03*
X118110000Y-84328000D03*
X120650000Y-84328000D03*
X118110000Y-86868000D03*
X120650000Y-86868000D03*
X118110000Y-89408000D03*
X120650000Y-89408000D03*
X118110000Y-91948000D03*
X120650000Y-91948000D03*
X118110000Y-94488000D03*
X120650000Y-94488000D03*
X118110000Y-97028000D03*
X120650000Y-97028000D03*
X118110000Y-99568000D03*
X120650000Y-99568000D03*
X118110000Y-102108000D03*
X120650000Y-102108000D03*
X118110000Y-104648000D03*
X120650000Y-104648000D03*
X118110000Y-107188000D03*
X120650000Y-107188000D03*
X118110000Y-109728000D03*
X120650000Y-109728000D03*
D16*
X135255000Y-64008000D03*
D17*
X135255000Y-61508000D03*
D18*
X164465000Y-85471000D03*
X164465000Y-77851000D03*
D19*
X136017000Y-72644000D03*
D20*
X133477000Y-72644000D03*
D19*
X173863000Y-72644000D03*
D20*
X176403000Y-72644000D03*
D19*
X136017000Y-96139000D03*
D20*
X133477000Y-96139000D03*
D19*
X173863000Y-96012000D03*
D20*
X176403000Y-96012000D03*
D21*
X127007800Y-61542700D03*
D22*
X129547800Y-61542700D03*
X127007800Y-64082700D03*
X129547800Y-64082700D03*
D23*
X166243000Y-67056000D03*
X164973000Y-68326000D03*
X164973000Y-65786000D03*
X128143000Y-71374000D03*
X129413000Y-72644000D03*
X126873000Y-72644000D03*
X181737000Y-73914000D03*
X180467000Y-72644000D03*
X183007000Y-72644000D03*
X128143000Y-94742000D03*
X129413000Y-96012000D03*
X126873000Y-96012000D03*
X181737000Y-97282000D03*
X180467000Y-96012000D03*
X183007000Y-96012000D03*
D18*
X134239000Y-85344000D03*
X134239000Y-77724000D03*
X145415000Y-85344000D03*
X145415000Y-77724000D03*
X175641000Y-85217000D03*
X175641000Y-77597000D03*
X145415000Y-108966000D03*
X145415000Y-101346000D03*
X134239000Y-108458000D03*
X134239000Y-100838000D03*
X175641000Y-108585000D03*
X175641000Y-100965000D03*
X164465000Y-108839000D03*
X164465000Y-101219000D03*
X169164000Y-62611000D03*
X161544000Y-62611000D03*
X169164000Y-59563000D03*
X161544000Y-59563000D03*
X129921000Y-85217000D03*
X129921000Y-77597000D03*
X126365000Y-85217000D03*
X126365000Y-77597000D03*
X180086000Y-85217000D03*
X180086000Y-77597000D03*
X183515000Y-85217000D03*
X183515000Y-77597000D03*
X129921000Y-108458000D03*
X129921000Y-100838000D03*
X126365000Y-108458000D03*
X126365000Y-100838000D03*
X179959000Y-108585000D03*
X179959000Y-100965000D03*
X183515000Y-108585000D03*
X183515000Y-100965000D03*
D12*
X155000000Y-99000000D03*
D13*
X155000000Y-88840000D03*
D24*
X137287000Y-77724000D03*
X142367000Y-77724000D03*
X137287000Y-85344000D03*
X142367000Y-85344000D03*
X148463000Y-77724000D03*
X153543000Y-77724000D03*
X148463000Y-85344000D03*
X153543000Y-85344000D03*
X172593000Y-85344000D03*
X167513000Y-85344000D03*
X172593000Y-77724000D03*
X167513000Y-77724000D03*
X161417000Y-85344000D03*
X156337000Y-85344000D03*
X161417000Y-77724000D03*
X156337000Y-77724000D03*
X148463000Y-101219000D03*
X153543000Y-101219000D03*
X148463000Y-108839000D03*
X153543000Y-108839000D03*
X137287000Y-101219000D03*
X142367000Y-101219000D03*
X137287000Y-108839000D03*
X142367000Y-108839000D03*
X172593000Y-108712000D03*
X167513000Y-108712000D03*
X172593000Y-101092000D03*
X167513000Y-101092000D03*
X161417000Y-108712000D03*
X156337000Y-108712000D03*
X161417000Y-101092000D03*
X156337000Y-101092000D03*
D25*
X157178971Y-64124429D03*
X150828971Y-64124429D03*
M02*

View File

@@ -0,0 +1,22 @@
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11C,0.150000*%
G04 APERTURE END LIST*
D10*
D11*
X196250000Y-118000000D02*
X113000000Y-118000000D01*
X196250000Y-52750000D02*
X196250000Y-118000000D01*
X113000000Y-52750000D02*
X196250000Y-52750000D01*
X113000000Y-118000000D02*
X113000000Y-52750000D01*
M02*

View File

@@ -0,0 +1,287 @@
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11C,0.150000*%
%ADD12C,1.600000*%
%ADD13O,1.600000X1.600000*%
%ADD14R,2.000000X1.524000*%
%ADD15O,2.000000X1.524000*%
%ADD16R,1.300000X1.300000*%
%ADD17C,1.300000*%
%ADD18C,1.998980*%
%ADD19R,1.900000X2.000000*%
%ADD20C,1.900000*%
%ADD21C,1.000000*%
%ADD22R,1.727200X1.727200*%
%ADD23O,1.727200X1.727200*%
%ADD24C,1.000760*%
%ADD25C,1.397000*%
%ADD26C,1.600200*%
%ADD27C,1.270000*%
%ADD28C,0.304800*%
G04 APERTURE END LIST*
D10*
D11*
X196250000Y-118000000D02*
X113000000Y-118000000D01*
X196250000Y-52750000D02*
X196250000Y-118000000D01*
X113000000Y-52750000D02*
X196250000Y-52750000D01*
X113000000Y-118000000D02*
X113000000Y-52750000D01*
D12*
X145400000Y-68800000D03*
D13*
X145400000Y-58640000D03*
D14*
X189230000Y-61468000D03*
D15*
X191770000Y-61468000D03*
X189230000Y-74168000D03*
X191770000Y-64008000D03*
X189230000Y-76708000D03*
X191770000Y-66548000D03*
X189230000Y-79248000D03*
X191770000Y-69088000D03*
X189230000Y-81788000D03*
X191770000Y-71628000D03*
X189230000Y-84328000D03*
X191770000Y-74168000D03*
X189230000Y-86868000D03*
X191770000Y-76708000D03*
X189230000Y-89408000D03*
X191770000Y-79248000D03*
X189230000Y-91948000D03*
X191770000Y-81788000D03*
X189230000Y-94488000D03*
X191770000Y-84328000D03*
X189230000Y-97028000D03*
X191770000Y-86868000D03*
X189230000Y-99568000D03*
X191770000Y-89408000D03*
X191770000Y-91948000D03*
X189230000Y-102108000D03*
X191770000Y-94488000D03*
X191770000Y-99568000D03*
X191770000Y-102108000D03*
X191770000Y-104648000D03*
X191770000Y-107188000D03*
X189230000Y-104648000D03*
X189230000Y-107188000D03*
X189230000Y-64008000D03*
X189230000Y-66548000D03*
X189230000Y-69088000D03*
X189230000Y-71628000D03*
X189230000Y-109728000D03*
X191770000Y-109728000D03*
X191770000Y-97028000D03*
D14*
X118110000Y-61468000D03*
D15*
X120650000Y-61468000D03*
X118110000Y-64008000D03*
X120650000Y-64008000D03*
X118110000Y-66548000D03*
X120650000Y-66548000D03*
X118110000Y-69088000D03*
X120650000Y-69088000D03*
X118110000Y-71628000D03*
X120650000Y-71628000D03*
X118110000Y-74168000D03*
X120650000Y-74168000D03*
X118110000Y-76708000D03*
X120650000Y-76708000D03*
X118110000Y-79248000D03*
X120650000Y-79248000D03*
X118110000Y-81788000D03*
X120650000Y-81788000D03*
X118110000Y-84328000D03*
X120650000Y-84328000D03*
X118110000Y-86868000D03*
X120650000Y-86868000D03*
X118110000Y-89408000D03*
X120650000Y-89408000D03*
X118110000Y-91948000D03*
X120650000Y-91948000D03*
X118110000Y-94488000D03*
X120650000Y-94488000D03*
X118110000Y-97028000D03*
X120650000Y-97028000D03*
X118110000Y-99568000D03*
X120650000Y-99568000D03*
X118110000Y-102108000D03*
X120650000Y-102108000D03*
X118110000Y-104648000D03*
X120650000Y-104648000D03*
X118110000Y-107188000D03*
X120650000Y-107188000D03*
X118110000Y-109728000D03*
X120650000Y-109728000D03*
D16*
X135255000Y-64008000D03*
D17*
X135255000Y-61508000D03*
D18*
X164465000Y-85471000D03*
X164465000Y-77851000D03*
D19*
X136017000Y-72644000D03*
D20*
X133477000Y-72644000D03*
D19*
X173863000Y-72644000D03*
D20*
X176403000Y-72644000D03*
D19*
X136017000Y-96139000D03*
D20*
X133477000Y-96139000D03*
D19*
X173863000Y-96012000D03*
D20*
X176403000Y-96012000D03*
D21*
X125250000Y-112250000D03*
X160500000Y-70500000D03*
X167250000Y-92250000D03*
D22*
X127007800Y-61542700D03*
D23*
X129547800Y-61542700D03*
X127007800Y-64082700D03*
X129547800Y-64082700D03*
D24*
X166243000Y-67056000D03*
X164973000Y-68326000D03*
X164973000Y-65786000D03*
X128143000Y-71374000D03*
X129413000Y-72644000D03*
X126873000Y-72644000D03*
X181737000Y-73914000D03*
X180467000Y-72644000D03*
X183007000Y-72644000D03*
X128143000Y-94742000D03*
X129413000Y-96012000D03*
X126873000Y-96012000D03*
X181737000Y-97282000D03*
X180467000Y-96012000D03*
X183007000Y-96012000D03*
D18*
X134239000Y-85344000D03*
X134239000Y-77724000D03*
X145415000Y-85344000D03*
X145415000Y-77724000D03*
X175641000Y-85217000D03*
X175641000Y-77597000D03*
X145415000Y-108966000D03*
X145415000Y-101346000D03*
X134239000Y-108458000D03*
X134239000Y-100838000D03*
X175641000Y-108585000D03*
X175641000Y-100965000D03*
X164465000Y-108839000D03*
X164465000Y-101219000D03*
X169164000Y-62611000D03*
X161544000Y-62611000D03*
X169164000Y-59563000D03*
X161544000Y-59563000D03*
X129921000Y-85217000D03*
X129921000Y-77597000D03*
X126365000Y-85217000D03*
X126365000Y-77597000D03*
X180086000Y-85217000D03*
X180086000Y-77597000D03*
X183515000Y-85217000D03*
X183515000Y-77597000D03*
X129921000Y-108458000D03*
X129921000Y-100838000D03*
X126365000Y-108458000D03*
X126365000Y-100838000D03*
X179959000Y-108585000D03*
X179959000Y-100965000D03*
X183515000Y-108585000D03*
X183515000Y-100965000D03*
D12*
X155000000Y-99000000D03*
D13*
X155000000Y-88840000D03*
D25*
X137287000Y-77724000D03*
X142367000Y-77724000D03*
X137287000Y-85344000D03*
X142367000Y-85344000D03*
X148463000Y-77724000D03*
X153543000Y-77724000D03*
X148463000Y-85344000D03*
X153543000Y-85344000D03*
X172593000Y-85344000D03*
X167513000Y-85344000D03*
X172593000Y-77724000D03*
X167513000Y-77724000D03*
X161417000Y-85344000D03*
X156337000Y-85344000D03*
X161417000Y-77724000D03*
X156337000Y-77724000D03*
X148463000Y-101219000D03*
X153543000Y-101219000D03*
X148463000Y-108839000D03*
X153543000Y-108839000D03*
X137287000Y-101219000D03*
X142367000Y-101219000D03*
X137287000Y-108839000D03*
X142367000Y-108839000D03*
X172593000Y-108712000D03*
X167513000Y-108712000D03*
X172593000Y-101092000D03*
X167513000Y-101092000D03*
X161417000Y-108712000D03*
X156337000Y-108712000D03*
X161417000Y-101092000D03*
X156337000Y-101092000D03*
D26*
X157178971Y-64124429D03*
X150828971Y-64124429D03*
D27*
X137287000Y-80137000D03*
X137287000Y-83439000D03*
X148336000Y-79629000D03*
X148463000Y-83185000D03*
X172593000Y-80137000D03*
X172593000Y-83312000D03*
X161417000Y-80010000D03*
X161417000Y-83439000D03*
X137287000Y-103505000D03*
X137287000Y-106680000D03*
X172593000Y-103378000D03*
X172593000Y-106934000D03*
X148463000Y-103505000D03*
X148463000Y-106934000D03*
X161417000Y-103759000D03*
X161417000Y-106934000D03*
D28*
X137287000Y-83439000D02*
X137287000Y-80137000D01*
X148336000Y-83058000D02*
X148336000Y-79629000D01*
X148463000Y-83185000D02*
X148336000Y-83058000D01*
X172593000Y-83312000D02*
X172593000Y-80137000D01*
X161417000Y-83439000D02*
X161417000Y-80010000D01*
X137287000Y-106680000D02*
X137287000Y-103505000D01*
X172593000Y-106934000D02*
X172593000Y-103378000D01*
X148463000Y-106934000D02*
X148463000Y-103505000D01*
X161417000Y-106934000D02*
X161417000Y-103759000D01*
M02*

View File

@@ -0,0 +1,249 @@
G04 #@! TF.FileFunction,Soldermask,Top*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11C,0.150000*%
%ADD12C,2.000000*%
%ADD13O,2.000000X2.000000*%
%ADD14R,2.400000X1.924000*%
%ADD15O,2.400000X1.924000*%
%ADD16R,1.700000X1.700000*%
%ADD17C,1.700000*%
%ADD18C,2.398980*%
%ADD19R,2.300000X2.400000*%
%ADD20C,2.300000*%
%ADD21C,4.000000*%
%ADD22R,2.127200X2.127200*%
%ADD23O,2.127200X2.127200*%
%ADD24C,1.400760*%
%ADD25C,1.797000*%
%ADD26C,2.000200*%
G04 APERTURE END LIST*
D10*
D11*
X196250000Y-118000000D02*
X113000000Y-118000000D01*
X196250000Y-52750000D02*
X196250000Y-118000000D01*
X113000000Y-52750000D02*
X196250000Y-52750000D01*
X113000000Y-118000000D02*
X113000000Y-52750000D01*
D12*
X145400000Y-68800000D03*
D13*
X145400000Y-58640000D03*
D14*
X189230000Y-61468000D03*
D15*
X191770000Y-61468000D03*
X189230000Y-74168000D03*
X191770000Y-64008000D03*
X189230000Y-76708000D03*
X191770000Y-66548000D03*
X189230000Y-79248000D03*
X191770000Y-69088000D03*
X189230000Y-81788000D03*
X191770000Y-71628000D03*
X189230000Y-84328000D03*
X191770000Y-74168000D03*
X189230000Y-86868000D03*
X191770000Y-76708000D03*
X189230000Y-89408000D03*
X191770000Y-79248000D03*
X189230000Y-91948000D03*
X191770000Y-81788000D03*
X189230000Y-94488000D03*
X191770000Y-84328000D03*
X189230000Y-97028000D03*
X191770000Y-86868000D03*
X189230000Y-99568000D03*
X191770000Y-89408000D03*
X191770000Y-91948000D03*
X189230000Y-102108000D03*
X191770000Y-94488000D03*
X191770000Y-99568000D03*
X191770000Y-102108000D03*
X191770000Y-104648000D03*
X191770000Y-107188000D03*
X189230000Y-104648000D03*
X189230000Y-107188000D03*
X189230000Y-64008000D03*
X189230000Y-66548000D03*
X189230000Y-69088000D03*
X189230000Y-71628000D03*
X189230000Y-109728000D03*
X191770000Y-109728000D03*
X191770000Y-97028000D03*
D14*
X118110000Y-61468000D03*
D15*
X120650000Y-61468000D03*
X118110000Y-64008000D03*
X120650000Y-64008000D03*
X118110000Y-66548000D03*
X120650000Y-66548000D03*
X118110000Y-69088000D03*
X120650000Y-69088000D03*
X118110000Y-71628000D03*
X120650000Y-71628000D03*
X118110000Y-74168000D03*
X120650000Y-74168000D03*
X118110000Y-76708000D03*
X120650000Y-76708000D03*
X118110000Y-79248000D03*
X120650000Y-79248000D03*
X118110000Y-81788000D03*
X120650000Y-81788000D03*
X118110000Y-84328000D03*
X120650000Y-84328000D03*
X118110000Y-86868000D03*
X120650000Y-86868000D03*
X118110000Y-89408000D03*
X120650000Y-89408000D03*
X118110000Y-91948000D03*
X120650000Y-91948000D03*
X118110000Y-94488000D03*
X120650000Y-94488000D03*
X118110000Y-97028000D03*
X120650000Y-97028000D03*
X118110000Y-99568000D03*
X120650000Y-99568000D03*
X118110000Y-102108000D03*
X120650000Y-102108000D03*
X118110000Y-104648000D03*
X120650000Y-104648000D03*
X118110000Y-107188000D03*
X120650000Y-107188000D03*
X118110000Y-109728000D03*
X120650000Y-109728000D03*
D16*
X135255000Y-64008000D03*
D17*
X135255000Y-61508000D03*
D18*
X164465000Y-85471000D03*
X164465000Y-77851000D03*
D19*
X136017000Y-72644000D03*
D20*
X133477000Y-72644000D03*
D19*
X173863000Y-72644000D03*
D20*
X176403000Y-72644000D03*
D19*
X136017000Y-96139000D03*
D20*
X133477000Y-96139000D03*
D19*
X173863000Y-96012000D03*
D20*
X176403000Y-96012000D03*
D21*
X125250000Y-112250000D03*
X160500000Y-70500000D03*
X167250000Y-92250000D03*
D22*
X127007800Y-61542700D03*
D23*
X129547800Y-61542700D03*
X127007800Y-64082700D03*
X129547800Y-64082700D03*
D24*
X166243000Y-67056000D03*
X164973000Y-68326000D03*
X164973000Y-65786000D03*
X128143000Y-71374000D03*
X129413000Y-72644000D03*
X126873000Y-72644000D03*
X181737000Y-73914000D03*
X180467000Y-72644000D03*
X183007000Y-72644000D03*
X128143000Y-94742000D03*
X129413000Y-96012000D03*
X126873000Y-96012000D03*
X181737000Y-97282000D03*
X180467000Y-96012000D03*
X183007000Y-96012000D03*
D18*
X134239000Y-85344000D03*
X134239000Y-77724000D03*
X145415000Y-85344000D03*
X145415000Y-77724000D03*
X175641000Y-85217000D03*
X175641000Y-77597000D03*
X145415000Y-108966000D03*
X145415000Y-101346000D03*
X134239000Y-108458000D03*
X134239000Y-100838000D03*
X175641000Y-108585000D03*
X175641000Y-100965000D03*
X164465000Y-108839000D03*
X164465000Y-101219000D03*
X169164000Y-62611000D03*
X161544000Y-62611000D03*
X169164000Y-59563000D03*
X161544000Y-59563000D03*
X129921000Y-85217000D03*
X129921000Y-77597000D03*
X126365000Y-85217000D03*
X126365000Y-77597000D03*
X180086000Y-85217000D03*
X180086000Y-77597000D03*
X183515000Y-85217000D03*
X183515000Y-77597000D03*
X129921000Y-108458000D03*
X129921000Y-100838000D03*
X126365000Y-108458000D03*
X126365000Y-100838000D03*
X179959000Y-108585000D03*
X179959000Y-100965000D03*
X183515000Y-108585000D03*
X183515000Y-100965000D03*
D12*
X155000000Y-99000000D03*
D13*
X155000000Y-88840000D03*
D25*
X137287000Y-77724000D03*
X142367000Y-77724000D03*
X137287000Y-85344000D03*
X142367000Y-85344000D03*
X148463000Y-77724000D03*
X153543000Y-77724000D03*
X148463000Y-85344000D03*
X153543000Y-85344000D03*
X172593000Y-85344000D03*
X167513000Y-85344000D03*
X172593000Y-77724000D03*
X167513000Y-77724000D03*
X161417000Y-85344000D03*
X156337000Y-85344000D03*
X161417000Y-77724000D03*
X156337000Y-77724000D03*
X148463000Y-101219000D03*
X153543000Y-101219000D03*
X148463000Y-108839000D03*
X153543000Y-108839000D03*
X137287000Y-101219000D03*
X142367000Y-101219000D03*
X137287000Y-108839000D03*
X142367000Y-108839000D03*
X172593000Y-108712000D03*
X167513000Y-108712000D03*
X172593000Y-101092000D03*
X167513000Y-101092000D03*
X161417000Y-108712000D03*
X156337000Y-108712000D03*
X161417000Y-101092000D03*
X156337000Y-101092000D03*
D26*
X157178971Y-64124429D03*
X150828971Y-64124429D03*
M02*

View File

@@ -0,0 +1,392 @@
G04 #@! TF.FileFunction,Legend,Top*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.100000*%
%ADD11C,0.150000*%
%ADD12C,0.187500*%
%ADD13C,0.125000*%
%ADD14C,0.300000*%
%ADD15C,0.120000*%
%ADD16C,0.002540*%
%ADD17C,0.200000*%
%ADD18C,0.170000*%
%ADD19C,0.175000*%
%ADD20C,0.180000*%
%ADD21C,0.190000*%
G04 APERTURE END LIST*
D10*
D11*
X196250000Y-118000000D02*
X113000000Y-118000000D01*
X196250000Y-52750000D02*
X196250000Y-118000000D01*
X113000000Y-52750000D02*
X196250000Y-52750000D01*
X113000000Y-118000000D02*
X113000000Y-52750000D01*
D12*
X171964285Y-68083333D02*
X123317001Y-106767381D01*
X123650334Y-106767381D02*
X123745572Y-106767381D01*
X123793191Y-106815000D01*
X123840810Y-106910238D01*
X123864619Y-107100714D01*
X123864619Y-107434048D01*
X123840810Y-107624524D01*
X123793191Y-107719762D01*
X123745572Y-107767381D01*
X123650334Y-107767381D01*
X123602715Y-107719762D01*
X123555096Y-107624524D01*
X123531286Y-107434048D01*
X123531286Y-107100714D01*
X123555096Y-106910238D01*
X123602715Y-106815000D01*
X123650334Y-106767381D01*
X124031287Y-106767381D02*
X196102429Y-69431810D01*
D13*
X193274334Y-66254381D02*
X193393381Y-67254381D01*
X193488619Y-66540095D01*
X193583857Y-67254381D01*
X193702905Y-66254381D01*
X193869572Y-66968667D02*
X194107667Y-66968667D01*
X193821953Y-67254381D02*
X193988620Y-66254381D01*
X194155286Y-67254381D01*
X194321953Y-67254381D02*
X194321953Y-66254381D01*
X194607667Y-67254381D02*
X194393381Y-66682952D01*
X194607667Y-66254381D02*
X194321953Y-66825810D01*
X194821953Y-66730571D02*
X194988619Y-66730571D01*
X195060048Y-67254381D02*
X194821953Y-67254381D01*
X194821953Y-66254381D01*
X195060048Y-66254381D01*
X195274334Y-66254381D02*
X195274334Y-67063905D01*
X195298143Y-67159143D01*
X195321953Y-67206762D01*
X195369572Y-67254381D01*
X195464810Y-67254381D01*
X195512429Y-67206762D01*
X195536238Y-67159143D01*
X195560048Y-67063905D01*
X195560048Y-66254381D01*
X195798144Y-67254381D02*
X195798144Y-66254381D01*
X195988620Y-66254381D01*
X196036239Y-66302000D01*
X196060048Y-66349619D01*
X196083858Y-66444857D01*
X196083858Y-66587714D01*
X196060048Y-66682952D01*
X196036239Y-66730571D01*
X195988620Y-66778190D01*
X195798144Y-66778190D01*
D17*
X193929096Y-64016000D02*
X193833858Y-63968381D01*
X193691001Y-63968381D01*
X193548143Y-64016000D01*
X193452905Y-64111238D01*
X193405286Y-64206476D01*
X193357667Y-64396952D01*
X193357667Y-64539810D01*
X193405286Y-64730286D01*
X193452905Y-64825524D01*
X193548143Y-64920762D01*
X193691001Y-64968381D01*
X193786239Y-64968381D01*
X193929096Y-64920762D01*
X193976715Y-64873143D01*
X193976715Y-64539810D01*
X193786239Y-64539810D01*
X194405286Y-64968381D02*
X194405286Y-63968381D01*
X194976715Y-64968381D01*
X194976715Y-63968381D01*
X195452905Y-64968381D02*
X195452905Y-63968381D01*
X195691000Y-63968381D01*
X195833858Y-64016000D01*
X195929096Y-64111238D01*
X195976715Y-64206476D01*
X196024334Y-64396952D01*
X196024334Y-64539810D01*
X195976715Y-64730286D01*
X195929096Y-64825524D01*
X195833858Y-64920762D01*
X195691000Y-64968381D01*
X195452905Y-64968381D01*
X193278286Y-61539429D02*
X194040191Y-61539429D01*
X193659239Y-61920381D02*
X193659239Y-61158476D01*
X194992572Y-60920381D02*
X194516381Y-60920381D01*
X194468762Y-61396571D01*
X194516381Y-61348952D01*
X194611619Y-61301333D01*
X194849715Y-61301333D01*
X194944953Y-61348952D01*
X194992572Y-61396571D01*
X186697905Y-84637524D01*
X186602667Y-84732762D01*
X186459809Y-84780381D01*
X186221714Y-84780381D01*
X187174095Y-84494667D02*
X187650286Y-84494667D01*
X187078857Y-84780381D02*
X187412190Y-83780381D01*
X187745524Y-84780381D01*
D13*
X185555048Y-81240381D02*
X185721715Y-82240381D01*
X185888381Y-81240381D01*
X186055048Y-82240381D02*
X186055048Y-81240381D01*
X186174095Y-81240381D01*
X186245524Y-81288000D01*
X186293143Y-81383238D01*
X186316952Y-81478476D01*
X186340762Y-81668952D01*
X186340762Y-81811810D01*
X186316952Y-82002286D01*
X186293143Y-82097524D01*
X186245524Y-82192762D01*
X186174095Y-82240381D01*
X186055048Y-82240381D01*
X186555048Y-82240381D02*
X186555048Y-81240381D01*
X186674095Y-81240381D01*
X186745524Y-81288000D01*
X186793143Y-81383238D01*
X186816952Y-81478476D01*
X186840762Y-81668952D01*
X186840762Y-81811810D01*
X186816952Y-82002286D01*
X186793143Y-82097524D01*
X186745524Y-82192762D01*
X186674095Y-82240381D01*
X186555048Y-82240381D01*
X187031238Y-81954667D02*
X187269333Y-81954667D01*
X186983619Y-82240381D02*
X187150286Y-81240381D01*
X187316952Y-82240381D01*
D17*
X185245524Y-79700381D02*
X185245524Y-78700381D01*
X185483619Y-78700381D01*
X185626477Y-78748000D01*
X185721715Y-78843238D01*
X185769334Y-78938476D01*
X185816953Y-79128952D01*
X185816953Y-79271810D01*
X185769334Y-79462286D01*
X185721715Y-79557524D01*
X185626477Y-79652762D01*
X185483619Y-79700381D01*
X185245524Y-79700381D01*
X186197905Y-79414667D02*
X186674096Y-79414667D01*
X186102667Y-79700381D02*
X186436000Y-78700381D01*
X186769334Y-79700381D01*
X187674096Y-79605143D02*
X187626477Y-79652762D01*
X187483620Y-79700381D01*
X187388382Y-79700381D01*
X187245524Y-79652762D01*
X187150286Y-79557524D01*
X187102667Y-79462286D01*
X187055048Y-79271810D01*
X187055048Y-79128952D01*
X187102667Y-78938476D01*
X187150286Y-78843238D01*
X187245524Y-78748000D01*
X187388382Y-78700381D01*
X187483620Y-78700381D01*
X187626477Y-78748000D01*
X187674096Y-78795619D01*
X185745524Y-77065143D02*
X185697905Y-77112762D01*
X185555048Y-77160381D01*
X185459810Y-77160381D01*
X185316952Y-77112762D01*
X185221714Y-77017524D01*
X185174095Y-76922286D01*
X185126476Y-76731810D01*
X185126476Y-76588952D01*
X185174095Y-76398476D01*
X185221714Y-76303238D01*
X185316952Y-76208000D01*
X185459810Y-76160381D01*
X185555048Y-76160381D01*
X185697905Y-76208000D01*
X185745524Y-76255619D01*
X186174095Y-77160381D02*
X186174095Y-76160381D01*
X186174095Y-76636571D02*
X186745524Y-76636571D01*
X186745524Y-77160381D02*
X186745524Y-76160381D01*
X187745524Y-77160381D02*
X187174095Y-77160381D01*
X187459809Y-77160381D02*
X187459809Y-76160381D01*
X187364571Y-76303238D01*
X187269333Y-76398476D01*
X187174095Y-76446095D01*
X185491524Y-74525143D02*
X185443905Y-74572762D01*
X185301048Y-74620381D01*
X185205810Y-74620381D01*
X185062952Y-74572762D01*
X184967714Y-74477524D01*
X184920095Y-74382286D01*
X184872476Y-74191810D01*
X184872476Y-74048952D01*
X184920095Y-73858476D01*
X184967714Y-73763238D01*
X185062952Y-73668000D01*
X185205810Y-73620381D01*
X185301048Y-73620381D01*
X185443905Y-73668000D01*
X185491524Y-73715619D01*
X185920095Y-74620381D02*
X185920095Y-73620381D01*
X185920095Y-74096571D02*
X186491524Y-74096571D01*
X186491524Y-74620381D02*
X186491524Y-73620381D01*
X186920095Y-73715619D02*
X186967714Y-73668000D01*
X187062952Y-73620381D01*
X187301048Y-73620381D01*
X187396286Y-73668000D01*
X187443905Y-73715619D01*
X187491524Y-73810857D01*
X187491524Y-73906095D01*
X187443905Y-74048952D01*
X186872476Y-74620381D01*
X187491524Y-74620381D01*
X185491524Y-71985143D02*
X185443905Y-72032762D01*
X185301048Y-72080381D01*
X185205810Y-72080381D01*
X185062952Y-72032762D01*
X184967714Y-71937524D01*
X184920095Y-71842286D01*
X184872476Y-71651810D01*
X184872476Y-71508952D01*
X184920095Y-71318476D01*
X184967714Y-71223238D01*
X185062952Y-71128000D01*
X185205810Y-71080381D01*
X185301048Y-71080381D01*
X185443905Y-71128000D01*
X185491524Y-71175619D01*
X185920095Y-72080381D02*
X185920095Y-71080381D01*
X185920095Y-71556571D02*
X186491524Y-71556571D01*
X186491524Y-72080381D02*
X186491524Y-71080381D01*
X186872476Y-71080381D02*
X187491524Y-71080381D01*
X187158190Y-71461333D01*
X187301048Y-71461333D01*
X187396286Y-71508952D01*
X187443905Y-71556571D01*
X187491524Y-71651810D01*
X187491524Y-71889905D01*
X187443905Y-71985143D01*
X187396286Y-72032762D01*
X187301048Y-72080381D01*
X187015333Y-72080381D01*
X186920095Y-72032762D01*
X186872476Y-71985143D01*
D13*
X186094762Y-68588000D02*
X186047143Y-68540381D01*
X185975715Y-68540381D01*
X185904286Y-68588000D01*
X185856667Y-68683238D01*
X185832858Y-68778476D01*
X185809048Y-68968952D01*
X185809048Y-69111810D01*
X185832858Y-69302286D01*
X185856667Y-69397524D01*
X185904286Y-69492762D01*
X185975715Y-69540381D01*
X186023334Y-69540381D01*
X186094762Y-69492762D01*
X186118572Y-69445143D01*
X186118572Y-69111810D01*
X186023334Y-69111810D01*
X186332858Y-69540381D02*
X186332858Y-68540381D01*
X186618572Y-69540381D01*
X186618572Y-68540381D01*
X186856668Y-69540381D02*
X186856668Y-68540381D01*
X186975715Y-68540381D01*
X187047144Y-68588000D01*
X187094763Y-68683238D01*
X187118572Y-68778476D01*
X187142382Y-68968952D01*
X187142382Y-69111810D01*
X187118572Y-69302286D01*
X187094763Y-69397524D01*
X187047144Y-69492762D01*
X186975715Y-69540381D01*
X186856668Y-69540381D01*
X187332858Y-69254667D02*
X187570953Y-69254667D01*
X187285239Y-69540381D02*
X187451906Y-68540381D01*
X187618572Y-69540381D01*
D17*
X185459810Y-67000381D02*
X185459810Y-66000381D01*
X185888381Y-66952762D02*
X186031238Y-67000381D01*
X186269334Y-67000381D01*
X186364572Y-66952762D01*
X186412191Y-66905143D01*
X186459810Y-66809905D01*
X186459810Y-66714667D01*
X186412191Y-66619429D01*
X186364572Y-66571810D01*
X186269334Y-66524190D01*
X186078857Y-66476571D01*
X185983619Y-66428952D01*
X185936000Y-66381333D01*
X185888381Y-66286095D01*
X185888381Y-66190857D01*
X185936000Y-66095619D01*
X185983619Y-66048000D01*
X186078857Y-66000381D01*
X186316953Y-66000381D01*
X186459810Y-66048000D01*
X186888381Y-67000381D02*
X186888381Y-66000381D01*
X170488095Y-97273810D01*
X146122399Y-64195858D02*
X146884304Y-64195858D01*
X146503352Y-64576810D02*
X146503352Y-63814905D01*
M02*

View File

@@ -0,0 +1,805 @@
%FSLAX45Y45*%
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:22 2017*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.127000*%
%ADD11C,0.150000*%
%ADD12C,0.200000*%
%ADD13C,0.300000*%
G04 APERTURE END LIST*
D10*
D11*
X19625000Y-11800000D02*
X11300000Y-11800000D01*
X19625000Y-5275000D02*
X19625000Y-11800000D01*
X11300000Y-5275000D02*
X19625000Y-5275000D01*
X11300000Y-11800000D02*
X11300000Y-5275000D01*
D12*
X12657300Y-7234400D02*
X12717300Y-7294400D01*
X12717300Y-7234400D02*
X12657300Y-7294400D01*
X12657300Y-9571200D02*
X18270700Y-9571200D02*
X18330700Y-9631200D01*
X18330700Y-9571200D02*
X18270700Y-9631200D01*
X13764260Y-8013700D02*
G75*
G03X13764260Y-8013700I-35560J0D01*
G01*
X13764260Y-8343900D02*
G75*
G03X13764260Y-8343900I-35560J0D01*
G01*
X13764260Y-10350500D02*
G75*
G03X13764260Y-10350500I-35560J0D01*
G01*
X13764260Y-10668000D02*
G75*
G03X13764260Y-10668000I-35560J0D01*
G01*
X14869160Y-7962900D02*
G75*
G03X14869160Y-7962900I-35560J0D01*
G01*
X14881860Y-8318500D02*
G75*
G03X14881860Y-8318500I-35560J0D01*
G01*
X14881860Y-10350500D02*
G75*
G03X14881860Y-10350500I-35560J0D01*
G01*
X14881860Y-10693400D02*
G75*
G03X14881860Y-10693400I-35560J0D01*
G01*
X16177260Y-8001000D02*
G75*
G03X16177260Y-8001000I-35560J0D01*
G01*
X16177260Y-8343900D02*
G75*
G03X16177260Y-8343900I-35560J0D01*
G01*
X16177260Y-10375900D02*
G75*
G03X16177260Y-10375900I-35560J0D01*
G01*
X16177260Y-10693400D02*
G75*
G03X16177260Y-10693400I-35560J0D01*
G01*
X17294860Y-8013700D02*
G75*
G03X17294860Y-8013700I-35560J0D01*
G01*
X17294860Y-8331200D02*
G75*
G03X17294860Y-8331200I-35560J0D01*
G01*
X17294860Y-10337800D02*
G75*
G03X17294860Y-10337800I-35560J0D01*
G01*
X17294860Y-10693400D02*
G75*
G03X17294860Y-10693400I-35560J0D01*
G01*
X13525500Y-6360800D02*
X13525500Y-6440800D01*
X13485500Y-6400800D02*
X13565500Y-6400800D01*
X14540000Y-5824000D02*
X14540000Y-5904000D01*
X14500000Y-5864000D02*
X14580000Y-5864000D01*
X14540000Y-6840000D02*
X14540000Y-6920000D01*
X14500000Y-6880000D02*
X14580000Y-6880000D01*
X15500000Y-8844000D02*
X15500000Y-8924000D01*
X15460000Y-8884000D02*
X15540000Y-8884000D01*
X15500000Y-9860000D02*
X15500000Y-9940000D01*
X15460000Y-9900000D02*
X15540000Y-9900000D01*
X12586462Y-7809738D01*
X12686538Y-7759700D02*
G75*
G03X12686538Y-7759700I-50038J0D01*
G01*
X12586462Y-8471662D02*
X12686538Y-8571738D01*
X12686538Y-8471662D02*
X12586462Y-8571738D01*
X12686538Y-8521700D02*
G75*
G03X12686538Y-8521700I-50038J0D01*
G01*
X12586462Y-10033762D02*
X12686538Y-10133838D01*
X12686538Y-10033762D02*
X12586462Y-10133838D01*
X12686538Y-10083800D02*
G75*
G03X12686538Y-10083800I-50038J0D01*
G01*
X12586462Y-10795762D02*
X12686538Y-10895838D01*
X12686538Y-10795762D02*
X12586462Y-10895838D01*
X12686538Y-10845800D02*
G75*
G03X12686538Y-10845800I-50038J0D01*
G01*
X12942062Y-7709662D02*
X13042138Y-7809738D01*
X13042138Y-7709662D02*
X12942062Y-7809738D01*
X13042138Y-7759700D02*
G75*
G03X13042138Y-7759700I-50038J0D01*
G01*
X12942062Y-8471662D02*
X13042138Y-8571738D01*
X13042138Y-8471662D02*
X12942062Y-8571738D01*
X13042138Y-8521700D02*
G75*
G03X13042138Y-8521700I-50038J0D01*
G01*
X12942062Y-10033762D02*
X13042138Y-10133838D01*
X13042138Y-10033762D02*
X12942062Y-10133838D01*
X13042138Y-10083800D02*
G75*
G03X13042138Y-10083800I-50038J0D01*
G01*
X12942062Y-10795762D02*
X13042138Y-10895838D01*
X13042138Y-10795762D02*
X12942062Y-10895838D01*
X13042138Y-10845800D02*
G75*
G03X13042138Y-10845800I-50038J0D01*
G01*
X13297662Y-7214362D02*
X13397738Y-7314438D01*
X13397738Y-7214362D02*
X13297662Y-7314438D01*
X13397738Y-7264400D02*
G75*
G03X13397738Y-7264400I-50038J0D01*
G01*
X13297662Y-9563862D02*
X13397738Y-9663938D01*
X13397738Y-9563862D02*
X13297662Y-9663938D01*
X13397738Y-9613900D02*
G75*
G03X13397738Y-9613900I-50038J0D01*
G01*
X13373862Y-7722362D02*
X13473938Y-7822438D01*
X13473938Y-7722362D02*
X13373862Y-7822438D01*
X13473938Y-7772400D02*
G75*
G03X13473938Y-7772400I-50038J0D01*
G01*
X13373862Y-8484362D02*
X13473938Y-8584438D01*
X13473938Y-8484362D02*
X13373862Y-8584438D01*
X13473938Y-8534400D02*
G75*
G03X13473938Y-8534400I-50038J0D01*
G01*
X13373862Y-10033762D02*
X13473938Y-10133838D01*
X13473938Y-10033762D02*
X13373862Y-10133838D01*
X13473938Y-10083800D02*
G75*
G03X13473938Y-10083800I-50038J0D01*
G01*
X13373862Y-10795762D02*
X13473938Y-10895838D01*
X13473938Y-10795762D02*
X13373862Y-10895838D01*
X13473938Y-10845800D02*
G75*
G03X13473938Y-10845800I-50038J0D01*
G01*
X13551662Y-7214362D02*
X13651738Y-7314438D01*
X13651738Y-7214362D02*
X13551662Y-7314438D01*
X13651738Y-7264400D02*
G75*
G03X13651738Y-7264400I-50038J0D01*
G01*
X13551662Y-9563862D02*
X13651738Y-9663938D01*
X13651738Y-9563862D02*
X13551662Y-9663938D01*
X13651738Y-9613900D02*
G75*
G03X13651738Y-9613900I-50038J0D01*
G01*
X14491462Y-7722362D02*
X14591538Y-7822438D01*
X14591538Y-7722362D02*
X14491462Y-7822438D01*
X14591538Y-7772400D02*
G75*
G03X14591538Y-7772400I-50038J0D01*
G01*
X14491462Y-8484362D02*
X14591538Y-8584438D01*
X14591538Y-8484362D02*
X14491462Y-8584438D01*
X14591538Y-8534400D02*
G75*
G03X14591538Y-8534400I-50038J0D01*
G01*
X14491462Y-10084562D02*
X14591538Y-10184638D01*
X14591538Y-10084562D02*
X14491462Y-10184638D01*
X14591538Y-10134600D02*
G75*
G03X14591538Y-10134600I-50038J0D01*
G01*
X14491462Y-10846562D02*
X14591538Y-10946638D01*
X14591538Y-10846562D02*
X14491462Y-10946638D01*
X14591538Y-10896600D02*
G75*
G03X14591538Y-10896600I-50038J0D01*
G01*
X15032859Y-6362405D02*
X15132935Y-6462481D01*
X15132935Y-6362405D02*
X15032859Y-6462481D01*
X15132935Y-6412443D02*
G75*
G03X15132935Y-6412443I-50038J0D01*
G01*
X15667859Y-6362405D02*
X15767935Y-6462481D01*
X15767935Y-6362405D02*
X15667859Y-6462481D01*
X15767935Y-6412443D02*
G75*
G03X15767935Y-6412443I-50038J0D01*
G01*
X16104362Y-5906262D02*
X16204438Y-6006338D01*
X16204438Y-5906262D02*
X16104362Y-6006338D01*
X16204438Y-5956300D02*
G75*
G03X16204438Y-5956300I-50038J0D01*
G01*
X16104362Y-6211062D02*
X16204438Y-6311138D01*
X16204438Y-6211062D02*
X16104362Y-6311138D01*
X16204438Y-6261100D02*
G75*
G03X16204438Y-6261100I-50038J0D01*
G01*
X16396462Y-7735062D02*
X16496538Y-7835138D01*
X16496538Y-7735062D02*
X16396462Y-7835138D01*
X16496538Y-7785100D02*
G75*
G03X16496538Y-7785100I-50038J0D01*
G01*
X16396462Y-8497062D02*
X16496538Y-8597138D01*
X16496538Y-8497062D02*
X16396462Y-8597138D01*
X16496538Y-8547100D02*
G75*
G03X16496538Y-8547100I-50038J0D01*
G01*
X16396462Y-10071862D02*
X16496538Y-10171938D01*
X16496538Y-10071862D02*
X16396462Y-10171938D01*
X16496538Y-10121900D02*
G75*
G03X16496538Y-10121900I-50038J0D01*
G01*
X16396462Y-10833862D02*
X16496538Y-10933938D01*
X16496538Y-10833862D02*
X16396462Y-10933938D01*
X16496538Y-10883900D02*
G75*
G03X16496538Y-10883900I-50038J0D01*
G01*
X16866362Y-5906262D02*
X16966438Y-6006338D01*
X16966438Y-5906262D02*
X16866362Y-6006338D01*
X16966438Y-5956300D02*
G75*
G03X16966438Y-5956300I-50038J0D01*
G01*
X16866362Y-6211062D02*
X16966438Y-6311138D01*
X16966438Y-6211062D02*
X16866362Y-6311138D01*
X16966438Y-6261100D02*
G75*
G03X16966438Y-6261100I-50038J0D01*
G01*
X17336262Y-7214362D02*
X17436338Y-7314438D01*
X17436338Y-7214362D02*
X17336262Y-7314438D01*
X17436338Y-7264400D02*
G75*
G03X17436338Y-7264400I-50038J0D01*
G01*
X17336262Y-9551162D02*
X17436338Y-9651238D01*
X17436338Y-9551162D02*
X17336262Y-9651238D01*
X17436338Y-9601200D02*
G75*
G03X17436338Y-9601200I-50038J0D01*
G01*
X17514062Y-7709662D02*
X17614138Y-7809738D01*
X17614138Y-7709662D02*
X17514062Y-7809738D01*
X17614138Y-7759700D02*
G75*
G03X17614138Y-7759700I-50038J0D01*
G01*
X17514062Y-8471662D02*
X17614138Y-8571738D01*
X17614138Y-8471662D02*
X17514062Y-8571738D01*
X17614138Y-8521700D02*
G75*
G03X17614138Y-8521700I-50038J0D01*
G01*
X17514062Y-10046462D02*
X17614138Y-10146538D01*
X17614138Y-10046462D02*
X17514062Y-10146538D01*
X17614138Y-10096500D02*
G75*
G03X17614138Y-10096500I-50038J0D01*
G01*
X17514062Y-10808462D02*
X17614138Y-10908538D01*
X17614138Y-10808462D02*
X17514062Y-10908538D01*
X17614138Y-10858500D02*
G75*
G03X17614138Y-10858500I-50038J0D01*
G01*
X17590262Y-7214362D02*
X17690338Y-7314438D01*
X17690338Y-7214362D02*
X17590262Y-7314438D01*
X17690338Y-7264400D02*
G75*
G03X17690338Y-7264400I-50038J0D01*
G01*
X17590262Y-9551162D02*
X17690338Y-9651238D01*
X17690338Y-9551162D02*
X17590262Y-9651238D01*
X17690338Y-9601200D02*
G75*
G03X17690338Y-9601200I-50038J0D01*
G01*
X17945862Y-10046462D02*
X18045938Y-10146538D01*
X18045938Y-10046462D02*
X17945862Y-10146538D01*
X18045938Y-10096500D02*
G75*
G03X18045938Y-10096500I-50038J0D01*
G01*
X17945862Y-10808462D02*
X18045938Y-10908538D01*
X18045938Y-10808462D02*
X17945862Y-10908538D01*
X18045938Y-10858500D02*
G75*
G03X18045938Y-10858500I-50038J0D01*
G01*
X17958562Y-7709662D02*
X18058638Y-7809738D01*
X18058638Y-7709662D02*
X17958562Y-7809738D01*
X18058638Y-7759700D02*
G75*
G03X18058638Y-7759700I-50038J0D01*
G01*
X17958562Y-8471662D02*
X18058638Y-8571738D01*
X18058638Y-8471662D02*
X17958562Y-8571738D01*
X18058638Y-8521700D02*
G75*
G03X18058638Y-8521700I-50038J0D01*
G01*
X18301462Y-7709662D02*
X18401538Y-7809738D01*
X18401538Y-7709662D02*
X18301462Y-7809738D01*
X18401538Y-7759700D02*
G75*
G03X18401538Y-7759700I-50038J0D01*
G01*
X18301462Y-8471662D02*
X18401538Y-8571738D01*
X18401538Y-8471662D02*
X18301462Y-8571738D01*
X18401538Y-8521700D02*
G75*
G03X18401538Y-8521700I-50038J0D01*
G01*
X18301462Y-10046462D02*
X18401538Y-10146538D01*
X18401538Y-10046462D02*
X18301462Y-10146538D01*
X18401538Y-10096500D02*
G75*
G03X18401538Y-10096500I-50038J0D01*
G01*
X18301462Y-10808462D02*
X18401538Y-10908538D01*
X18401538Y-10808462D02*
X18301462Y-10908538D01*
X18401538Y-10858500D02*
G75*
G03X18401538Y-10858500I-50038J0D01*
G01*
X11760200Y-6096000D02*
X11861800Y-6197600D01*
X11861800Y-6096000D02*
X18872200Y-10668000D02*
X18973800Y-10769600D01*
X18973800Y-10668000D02*
X18872200Y-10769600D01*
X18923000Y-10668000D02*
X18923000Y-10769600D01*
X18872200Y-10718800D02*
X18973800Y-10718800D01*
X18872200Y-10922000D02*
X18973800Y-11023600D01*
X18973800Y-10922000D02*
X18872200Y-11023600D01*
X18923000Y-10922000D02*
X18923000Y-11023600D01*
X18872200Y-10972800D02*
X18973800Y-10972800D01*
X19126200Y-6096000D02*
X19227800Y-6197600D01*
X19227800Y-6096000D02*
X19126200Y-6197600D01*
X19177000Y-6096000D02*
X19177000Y-6197600D01*
X19126200Y-6146800D02*
X19227800Y-6146800D01*
X19126200Y-6350000D02*
X19227800Y-6451600D01*
X19227800Y-6350000D02*
X19126200Y-6451600D01*
X19177000Y-6350000D02*
X19177000Y-6451600D01*
X19126200Y-6400800D02*
X19227800Y-6400800D01*
X19126200Y-6604000D02*
X19227800Y-6705600D01*
X19227800Y-6604000D02*
X19126200Y-6705600D01*
X19177000Y-6604000D02*
X19177000Y-6705600D01*
X19126200Y-6654800D02*
X19227800Y-6654800D01*
X19126200Y-6858000D02*
X19227800Y-6959600D01*
X19227800Y-6858000D02*
X19126200Y-6959600D01*
X19177000Y-6858000D02*
X19177000Y-6959600D01*
X19126200Y-6908800D02*
X19227800Y-6908800D01*
X19126200Y-7112000D02*
X19227800Y-7213600D01*
X19227800Y-7112000D02*
X19126200Y-7213600D01*
X19177000Y-7112000D02*
X19177000Y-7213600D01*
X19126200Y-7162800D02*
X19227800Y-7162800D01*
X19126200Y-7366000D02*
X19227800Y-7467600D01*
X19227800Y-7366000D02*
X19126200Y-7467600D01*
X19177000Y-7366000D02*
X19177000Y-7467600D01*
X19126200Y-7416800D02*
X19227800Y-7416800D01*
X19126200Y-7620000D02*
X19227800Y-7721600D01*
X19227800Y-7620000D02*
X19126200Y-7721600D01*
X19177000Y-7620000D02*
X19177000Y-7721600D01*
X19126200Y-7670800D02*
X19227800Y-7670800D01*
X19126200Y-7874000D02*
X19227800Y-7975600D01*
X19227800Y-7874000D02*
X19126200Y-7975600D01*
X19177000Y-7874000D02*
X19177000Y-7975600D01*
X19126200Y-7924800D02*
X19227800Y-7924800D01*
X19126200Y-8128000D02*
X19227800Y-8229600D01*
X19227800Y-8128000D02*
X19126200Y-8229600D01*
X19177000Y-8128000D02*
X19177000Y-8229600D01*
X19126200Y-8178800D02*
X19227800Y-8178800D01*
X19126200Y-8382000D02*
X19227800Y-8483600D01*
X19227800Y-8382000D02*
X19126200Y-8483600D01*
X19177000Y-8382000D02*
X19177000Y-8483600D01*
X19126200Y-8432800D02*
X19227800Y-8432800D01*
X19126200Y-8636000D02*
X19227800Y-8737600D01*
X19227800Y-8636000D02*
X19126200Y-8737600D01*
X19177000Y-8636000D02*
X19177000Y-8737600D01*
X19126200Y-8686800D02*
X19227800Y-8686800D01*
X19126200Y-8890000D02*
X19227800Y-8991600D01*
X19227800Y-8890000D02*
X19126200Y-8991600D01*
X19177000Y-8890000D02*
X19177000Y-8991600D01*
X19126200Y-8940800D02*
X19227800Y-8940800D01*
X19126200Y-9144000D02*
X19227800Y-9245600D01*
X19227800Y-9144000D02*
X19126200Y-9245600D01*
X19177000Y-9144000D02*
X19177000Y-9245600D01*
X19126200Y-9194800D02*
X19227800Y-9194800D01*
X19126200Y-9398000D02*
X19227800Y-9499600D01*
X19227800Y-9398000D02*
X19126200Y-9499600D01*
X19177000Y-9398000D02*
X19177000Y-9499600D01*
X19126200Y-9448800D02*
X19227800Y-9448800D01*
X19126200Y-9652000D02*
X19227800Y-9753600D01*
X19227800Y-9652000D02*
X19126200Y-9753600D01*
X19177000Y-9652000D02*
X19177000Y-9753600D01*
X19126200Y-9702800D02*
X19227800Y-9702800D01*
X19126200Y-9906000D02*
X19227800Y-10007600D01*
X19227800Y-9906000D02*
X19126200Y-10007600D01*
X19177000Y-9906000D02*
X19177000Y-10007600D01*
X19126200Y-9956800D02*
X19227800Y-9956800D01*
X19126200Y-10160000D02*
X19227800Y-10261600D01*
X19227800Y-10160000D02*
X19126200Y-10261600D01*
X19177000Y-10160000D02*
X19177000Y-10261600D01*
X19126200Y-10210800D02*
X19227800Y-10210800D01*
X19126200Y-10414000D02*
X19227800Y-10515600D01*
X19227800Y-10414000D02*
X19126200Y-10515600D01*
X19177000Y-10414000D02*
X19177000Y-10515600D01*
X19126200Y-10464800D02*
X19227800Y-10464800D01*
X19126200Y-10668000D02*
X19227800Y-10769600D01*
X19227800Y-10668000D02*
X19126200Y-10769600D01*
X19177000Y-10668000D02*
X19177000Y-10769600D01*
X19126200Y-10718800D02*
X19227800Y-10718800D01*
X19126200Y-10922000D02*
X19227800Y-11023600D01*
X19227800Y-10922000D02*
X19126200Y-11023600D01*
X19177000Y-10922000D02*
X19177000Y-11023600D01*
X19126200Y-10972800D02*
X19227800Y-10972800D01*
D13*
X11563928Y-12273214D02*
X11563928Y-11973214D01*
X11635357Y-11973214D01*
X11678214Y-11987500D01*
X11706786Y-12016071D01*
X11721071Y-12044643D01*
X11735357Y-12101786D01*
X11735357Y-12144643D01*
X11721071Y-12201786D01*
X11706786Y-12230357D01*
X11678214Y-12258929D01*
X11635357Y-12273214D01*
X11563928Y-12273214D01*
X11863928Y-12273214D02*
X11863928Y-12073214D01*
X11863928Y-12130357D02*
X11878214Y-12101786D01*
X11892500Y-12087500D01*
X11921071Y-12073214D01*
X11949643Y-12073214D01*
X12049643Y-12273214D02*
X12049643Y-12073214D01*
X12049643Y-11973214D02*
X12035357Y-11987500D01*
X12049643Y-12001786D01*
X12063928Y-11987500D01*
X12049643Y-11973214D01*
X18121071Y-12688929D01*
X18106786Y-12646071D01*
X18092500Y-12617500D01*
X18063929Y-12574643D01*
X18049643Y-12560357D01*
X11292500Y-13163500D02*
G75*
G03X11292500Y-13163500I-35560J0D01*
G01*
X11621071Y-12999214D02*
X11649643Y-12999214D01*
X11678214Y-13013500D01*
X11692500Y-13027786D01*
X11706786Y-13056357D01*
X11721071Y-13113500D01*
X11721071Y-13184929D01*
X11706786Y-13242071D01*
X11692500Y-13270643D01*
X12706786Y-13509500D01*
X12735357Y-13495214D01*
X12778214Y-13495214D01*
X12806786Y-13509500D01*
X12821071Y-13538071D01*
X12821071Y-13695214D01*
X12963928Y-13695214D02*
X12963928Y-13495214D01*
X12963928Y-13523786D02*
X12978214Y-13509500D01*
X13006786Y-13495214D01*
X13049643Y-13495214D01*
X13078214Y-13509500D01*
X13092500Y-13538071D01*
X13092500Y-13695214D01*
X13092500Y-13538071D02*
X13106786Y-13509500D01*
X13135357Y-13495214D01*
X13178214Y-13495214D01*
X13206786Y-13509500D01*
X13221071Y-13538071D01*
X13221071Y-13695214D01*
X13806786Y-13380929D02*
X13549643Y-13766643D01*
X14192500Y-13395214D02*
X14221071Y-13395214D01*
X14249643Y-13409500D01*
X14263928Y-13423786D01*
X14278214Y-13452357D01*
X14292500Y-13509500D01*
X14292500Y-13580929D01*
X14278214Y-13638071D01*
X14263928Y-13666643D01*
X14249643Y-13680929D01*
X14221071Y-13695214D01*
X14192500Y-13695214D01*
X14163928Y-13680929D01*
X14149643Y-13666643D01*
X14135357Y-13638071D01*
X14121071Y-13580929D01*
X14121071Y-13509500D01*
X14135357Y-13452357D01*
X14149643Y-13423786D01*
X14163928Y-13409500D01*
X14192500Y-13395214D01*
X14421071Y-13666643D02*
X14435357Y-13680929D01*
X14421071Y-13695214D01*
X14406786Y-13680929D01*
X14421071Y-13666643D01*
X14421071Y-13695214D01*
X14621071Y-13395214D02*
X14649643Y-13395214D01*
X14678214Y-13409500D01*
X14692500Y-13423786D01*
X14706785Y-13452357D01*
X14721071Y-13509500D01*
X14721071Y-13580929D01*
X14706785Y-13638071D01*
X14692500Y-13666643D01*
X14678214Y-13680929D01*
X14649643Y-13695214D01*
X14621071Y-13695214D01*
X14592500Y-13680929D01*
X14578214Y-13666643D01*
X14563928Y-13638071D01*
X14549643Y-13580929D01*
X14549643Y-13509500D01*
X14563928Y-13452357D01*
X14578214Y-13423786D01*
X14592500Y-13409500D01*
X14621071Y-13395214D01*
X14821071Y-13395214D02*
X15006785Y-13395214D01*
X14906785Y-13509500D01*
X14949643Y-13509500D01*
X14978214Y-13523786D01*
X14992500Y-13538071D01*
X15006785Y-13566643D01*
X11292500Y-14797538D01*
X11292500Y-14697462D02*
X11192424Y-14797538D01*
X11292500Y-14747500D02*
G75*
G03X11292500Y-14747500I-50038J0D01*
G01*
X11721071Y-14883214D02*
X11549643Y-14883214D01*
X11635357Y-14883214D02*
X11635357Y-14583214D01*
X11606786Y-14626071D01*
X11578214Y-14654643D01*
X18135357Y-15136357D01*
X18121071Y-15064929D01*
X18106786Y-15022071D01*
X18092500Y-14993500D01*
X18063929Y-14950643D01*
X18049643Y-14936357D01*
M02*

View File

@@ -0,0 +1,62 @@
update=22/05/2015 07:44:53
version=1
last_client=kicad
[general]
version=1
RootSch=
BoardNm=
[pcbnew]
version=1
LastNetListRead=
UseCmpFile=1
PadDrill=0.600000000000
PadDrillOvalY=0.600000000000
PadSizeH=1.500000000000
PadSizeV=1.500000000000
PcbTextSizeV=1.500000000000
PcbTextSizeH=1.500000000000
PcbTextThickness=0.300000000000
ModuleTextSizeV=1.000000000000
ModuleTextSizeH=1.000000000000
ModuleTextSizeThickness=0.150000000000
SolderMaskClearance=0.000000000000
SolderMaskMinWidth=0.000000000000
DrawSegmentWidth=0.200000000000
BoardOutlineThickness=0.100000000000
ModuleOutlineThickness=0.150000000000
[cvpcb]
version=1
NetIExt=net
[eeschema]
version=1
LibDir=
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=microcontrollers
LibName13=dsp
LibName14=microchip
LibName15=analog_switches
LibName16=motorola
LibName17=texas
LibName18=intel
LibName19=audio
LibName20=interface
LibName21=digital-audio
LibName22=philips
LibName23=display
LibName24=cypress
LibName25=siliconi
LibName26=opto
LibName27=atmel
LibName28=contrib
LibName29=valves

View File

@@ -0,0 +1,23 @@
(module footprints:C_Disc_D3_P2.5 (layer F.Cu) (tedit 0)
(descr "Capacitor 3mm Disc, Pitch 2.5mm")
(tags Capacitor)
(fp_text reference C1 (at 1.25 -2.5) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value C_100nF (at 1.25 2.5) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -0.9 -1.5) (end 3.4 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.4 -1.5) (end 3.4 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.4 1.5) (end -0.9 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start -0.9 1.5) (end -0.9 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start -0.25 -1.25) (end 2.75 -1.25) (layer F.SilkS) (width 0.15))
(fp_line (start 2.75 1.25) (end -0.25 1.25) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole rect (at 0 0) (size 1.3 1.3) (drill 0.8) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole circle (at 2.5 0) (size 1.3 1.3) (drill 0.8001) (layers *.Cu *.Mask F.SilkS))
(model Capacitors_ThroughHole.3dshapes/C_Disc_D3_P2.5.wrl
(at (xyz 0.0492126 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View File

@@ -0,0 +1,344 @@
(module Conn_Poncho_SinBorde (layer F.Cu) (tedit 560F0DC0)
(tags "CONN Poncho")
(fp_text reference XA? (at -0.254 -3.175) (layer F.SilkS)
(effects (font (size 0.8 0.8) (thickness 0.12)))
)
(fp_text value Conn_Poncho_SinBorde (at -1.905 51.181) (layer F.SilkS) hide
(effects (font (size 1.016 1.016) (thickness 0.2032)))
)
(fp_text user GPIO8 (at -64.516 48.26) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GPIO7 (at -64.516 45.72) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GPIO5 (at -64.516 43.18) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GPIO3 (at -64.516 40.64) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GPIO1 (at -64.516 38.1) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD1 (at -65.024 35.56) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD2 (at -65.024 33.02) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD3 (at -65.024 30.48) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD_RS (at -64.008 27.94) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD4 (at -65.024 25.4) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user SPI_SCK (at -63.754 22.86) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user SPI_MISO (at -63.5 20.32) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user TXD1 (at -65.024 17.78) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user TXD0 (at -65.024 15.24) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user MDIO (at -65.024 12.7) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CRS_DV (at -64.008 10.16) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user MDC (at -65.278 7.62) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user TX_EN (at -64.77 5.08) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user RXD1 (at -65.024 2.54) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user +5V (at -65.532 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 48.006) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 45.72) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GPIO6 (at -74.93 43.18) (layer F.SilkS)
(effects (font (size 1 0.9) (thickness 0.2)))
)
(fp_text user GPIO4 (at -74.93 40.64) (layer F.SilkS)
(effects (font (size 1 0.9) (thickness 0.2)))
)
(fp_text user GPIO2 (at -74.93 38.1) (layer F.SilkS)
(effects (font (size 1 0.9) (thickness 0.2)))
)
(fp_text user GPIO0 (at -74.93 35.56) (layer F.SilkS)
(effects (font (size 1 0.9) (thickness 0.2)))
)
(fp_text user GND (at -74.168 33.02) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 30.48) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user LCD_EN (at -74.676 27.686) (layer F.SilkS)
(effects (font (size 1 0.7) (thickness 0.17)))
)
(fp_text user SPI_MOSI (at -74.93 25.146) (layer F.SilkS)
(effects (font (size 1 0.7) (thickness 0.17)))
)
(fp_text user GND (at -74.168 22.86) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 20.32) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user REF_CLK (at -74.93 17.78) (layer F.SilkS)
(effects (font (size 0.9 0.7) (thickness 0.175)))
)
(fp_text user GND (at -74.168 15.24) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 12.7) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 7.62) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user RXD0 (at -74.676 10.16) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 5.08) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at -74.168 2.54) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user +3.3V (at -74.93 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 48.26) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 45.72) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_F1 (at 5.588 43.18) (layer F.SilkS)
(effects (font (size 0.9 0.9) (thickness 0.18)))
)
(fp_text user T_C2 (at 5.588 40.64) (layer F.SilkS)
(effects (font (size 0.9 0.9) (thickness 0.18)))
)
(fp_text user GND (at 5.588 38.1) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.334 35.56) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 33.02) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 30.48) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 27.94) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 25.4) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GND (at 5.588 22.86) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GNDA (at 5.588 20.32) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user GNDA (at 5.588 17.78) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user GNDA (at 5.588 15.24) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user GNDA (at 5.588 12.7) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user GNDA (at 5.588 10.16) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user GNDA (at 5.588 7.62) (layer F.SilkS)
(effects (font (size 0.76 0.76) (thickness 0.19)))
)
(fp_text user WAKEUP (at 5.588 5.334) (layer F.SilkS)
(effects (font (size 1 0.5) (thickness 0.125)))
)
(fp_text user GND (at 5.588 3.048) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user +5V (at 5.588 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_COL0 (at -4.064 48.26) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_FIL2 (at -3.81 45.72) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_FIL3 (at -3.81 43.18) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_FIL0 (at -3.81 40.64) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user T_COL1 (at -4.064 38.1) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CAN_TD (at -4.318 35.56) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CAN_RD (at -4.318 33.02) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user 232_TX (at -4.318 30.48) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user 232_RX (at -4.318 27.94) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user I2C_SCL (at -4.572 25.4) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user I2C_SDA (at -4.572 22.86) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user VDDA (at -3.302 20.32) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user DAC (at -3.048 17.78) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CH1 (at -3.048 15.24) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CH2 (at -3.048 12.7) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CH3 (at -3.048 10.16) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user GNDA (at -3.556 7.62) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user ISP (at -2.794 5.08) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user RESET (at -3.81 2.54) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_text user CIAA-P2 (at -69.85 -2.032) (layer F.SilkS)
(effects (font (size 0.8 0.8) (thickness 0.12)))
)
(fp_text user CIAA-P1 (at 1.27 -2.032) (layer F.SilkS)
(effects (font (size 0.8 0.8) (thickness 0.12)))
)
(fp_text user +3.3V (at -3.81 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.2)))
)
(fp_line (start -72.39 0) (end -72.39 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start -72.39 -1.27) (end -67.31 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start -67.31 -1.27) (end -67.31 49.53) (layer F.SilkS) (width 0.15))
(fp_line (start -67.31 49.53) (end -72.39 49.53) (layer F.SilkS) (width 0.15))
(fp_line (start -72.39 49.53) (end -72.39 0) (layer F.SilkS) (width 0.15))
(fp_line (start -1.27 49.53) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 -1.27) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole rect (at 0 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole oval (at 2.54 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 11 thru_hole oval (at 0 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 4 thru_hole oval (at 2.54 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 13 thru_hole oval (at 0 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 6 thru_hole oval (at 2.54 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 15 thru_hole oval (at 0 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 8 thru_hole oval (at 2.54 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 17 thru_hole oval (at 0 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 10 thru_hole oval (at 2.54 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 19 thru_hole oval (at 0 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 12 thru_hole oval (at 2.54 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 21 thru_hole oval (at 0 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 14 thru_hole oval (at 2.54 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 23 thru_hole oval (at 0 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 16 thru_hole oval (at 2.54 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 25 thru_hole oval (at 0 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 18 thru_hole oval (at 2.54 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 27 thru_hole oval (at 0 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 20 thru_hole oval (at 2.54 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 29 thru_hole oval (at 0 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 22 thru_hole oval (at 2.54 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 31 thru_hole oval (at 0 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 24 thru_hole oval (at 2.54 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 26 thru_hole oval (at 2.54 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 33 thru_hole oval (at 0 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 28 thru_hole oval (at 2.54 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 32 thru_hole oval (at 2.54 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 34 thru_hole oval (at 2.54 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 36 thru_hole oval (at 2.54 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 38 thru_hole oval (at 2.54 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 35 thru_hole oval (at 0 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 37 thru_hole oval (at 0 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole oval (at 0 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 5 thru_hole oval (at 0 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 7 thru_hole oval (at 0 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole oval (at 0 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 39 thru_hole oval (at 0 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 40 thru_hole oval (at 2.54 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 30 thru_hole oval (at 2.54 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 41 thru_hole rect (at -71.12 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 42 thru_hole oval (at -68.58 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 43 thru_hole oval (at -71.12 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 44 thru_hole oval (at -68.58 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 45 thru_hole oval (at -71.12 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 46 thru_hole oval (at -68.58 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 47 thru_hole oval (at -71.12 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 48 thru_hole oval (at -68.58 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 49 thru_hole oval (at -71.12 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 50 thru_hole oval (at -68.58 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 51 thru_hole oval (at -71.12 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 52 thru_hole oval (at -68.58 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 53 thru_hole oval (at -71.12 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 54 thru_hole oval (at -68.58 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 55 thru_hole oval (at -71.12 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 56 thru_hole oval (at -68.58 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 57 thru_hole oval (at -71.12 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 58 thru_hole oval (at -68.58 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 59 thru_hole oval (at -71.12 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 60 thru_hole oval (at -68.58 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 61 thru_hole oval (at -71.12 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 62 thru_hole oval (at -68.58 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 63 thru_hole oval (at -71.12 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 64 thru_hole oval (at -68.58 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 65 thru_hole oval (at -71.12 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 66 thru_hole oval (at -68.58 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 67 thru_hole oval (at -71.12 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 68 thru_hole oval (at -68.58 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 69 thru_hole oval (at -71.12 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 70 thru_hole oval (at -68.58 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 71 thru_hole oval (at -71.12 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 72 thru_hole oval (at -68.58 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 73 thru_hole oval (at -71.12 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 74 thru_hole oval (at -68.58 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 75 thru_hole oval (at -71.12 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 76 thru_hole oval (at -68.58 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 77 thru_hole oval (at -71.12 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 78 thru_hole oval (at -68.58 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 79 thru_hole oval (at -71.12 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 80 thru_hole oval (at -68.58 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
)

View File

@@ -0,0 +1,11 @@
(module footprints:Fiducial_1mm (layer F.Cu) (tedit 573E1507)
(clearance 1.524)
(fp_text reference F3 (at 0.02 -0.9) (layer F.SilkS) hide
(effects (font (size 0.7112 0.4572) (thickness 0.1143)))
)
(fp_text value FIDUCIAL (at 0 0.99) (layer F.SilkS) hide
(effects (font (size 0.254 0.254) (thickness 0.00254)))
)
(pad 1 smd circle (at 0 0) (size 1 1) (layers F.Cu F.Mask)
(solder_mask_margin 1.5))
)

View File

@@ -0,0 +1,25 @@
(module footprints:LED-5MM (layer F.Cu) (tedit 5570F7EA)
(descr "LED 5mm round vertical")
(tags "LED 5mm round vertical")
(fp_text reference D4 (at 1.524 4.064) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value LED (at 1.524 -3.937) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.5 -1.55) (end -1.5 1.55) (layer F.CrtYd) (width 0.05))
(fp_arc (start 1.3 0) (end -1.5 1.55) (angle -302) (layer F.CrtYd) (width 0.05))
(fp_arc (start 1.27 0) (end -1.23 -1.5) (angle 297.5) (layer F.SilkS) (width 0.15))
(fp_line (start -1.23 1.5) (end -1.23 -1.5) (layer F.SilkS) (width 0.15))
(fp_circle (center 1.27 0) (end 0.97 -2.5) (layer F.SilkS) (width 0.15))
(fp_text user K (at -1.905 1.905) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 1 thru_hole rect (at 0 0 90) (size 2 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole circle (at 2.54 0) (size 1.9 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
(model LEDs.3dshapes/LED-5MM.wrl
(at (xyz 0.05 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
)

View File

@@ -0,0 +1,78 @@
(module footprints:Logo_OSHWA (layer F.Cu) (tedit 560D8B85)
(fp_text reference G101 (at 0 4.2418) (layer F.SilkS) hide
(effects (font (size 0.7112 0.4572) (thickness 0.1143)))
)
(fp_text value Logo_OSHWA (at 0 -4.2418) (layer F.SilkS) hide
(effects (font (size 0.36322 0.36322) (thickness 0.07112)))
)
(fp_poly (pts (xy -2.42316 3.59156) (xy -2.38252 3.57124) (xy -2.28854 3.51282) (xy -2.15392 3.42392)
(xy -1.99644 3.31978) (xy -1.83896 3.21056) (xy -1.70942 3.1242) (xy -1.61798 3.06578)
(xy -1.57988 3.04546) (xy -1.55956 3.05054) (xy -1.48336 3.08864) (xy -1.37414 3.14452)
(xy -1.31064 3.17754) (xy -1.21158 3.22072) (xy -1.16078 3.23088) (xy -1.15316 3.21564)
(xy -1.11506 3.13944) (xy -1.05918 3.00736) (xy -0.98298 2.83464) (xy -0.89662 2.63144)
(xy -0.80264 2.413) (xy -0.7112 2.18948) (xy -0.6223 1.97612) (xy -0.54356 1.78562)
(xy -0.48006 1.63068) (xy -0.43942 1.52146) (xy -0.42418 1.47574) (xy -0.42926 1.46558)
(xy -0.48006 1.41732) (xy -0.56642 1.35128) (xy -0.75692 1.19634) (xy -0.94234 0.96266)
(xy -1.05664 0.6985) (xy -1.09474 0.40386) (xy -1.06172 0.13208) (xy -0.95504 -0.12954)
(xy -0.77216 -0.36576) (xy -0.55118 -0.54102) (xy -0.2921 -0.65278) (xy 0 -0.68834)
(xy 0.2794 -0.65786) (xy 0.5461 -0.55118) (xy 0.78232 -0.37084) (xy 0.88138 -0.25654)
(xy 1.01854 -0.01778) (xy 1.09728 0.23876) (xy 1.1049 0.30226) (xy 1.09474 0.5842)
(xy 1.01092 0.85344) (xy 0.8636 1.09474) (xy 0.65786 1.29032) (xy 0.62992 1.31064)
(xy 0.53594 1.38176) (xy 0.47244 1.43002) (xy 0.42164 1.47066) (xy 0.77978 2.33172)
(xy 0.83566 2.46888) (xy 0.93472 2.7051) (xy 1.02108 2.9083) (xy 1.08966 3.06832)
(xy 1.13792 3.17754) (xy 1.15824 3.22072) (xy 1.16078 3.22326) (xy 1.19126 3.22834)
(xy 1.2573 3.20294) (xy 1.37668 3.14452) (xy 1.45796 3.10388) (xy 1.5494 3.0607)
(xy 1.59004 3.04546) (xy 1.6256 3.06324) (xy 1.71196 3.12166) (xy 1.8415 3.20548)
(xy 1.9939 3.30962) (xy 2.14122 3.41122) (xy 2.27584 3.50012) (xy 2.3749 3.56108)
(xy 2.42316 3.58902) (xy 2.43078 3.58902) (xy 2.47142 3.56362) (xy 2.55016 3.50012)
(xy 2.667 3.38836) (xy 2.8321 3.2258) (xy 2.8575 3.2004) (xy 2.99466 3.0607)
(xy 3.10642 2.94386) (xy 3.18008 2.86258) (xy 3.20548 2.82448) (xy 3.20548 2.82448)
(xy 3.18262 2.77622) (xy 3.11912 2.6797) (xy 3.03022 2.54254) (xy 2.921 2.38252)
(xy 2.63652 1.9685) (xy 2.794 1.57734) (xy 2.84226 1.45796) (xy 2.90322 1.31318)
(xy 2.9464 1.20904) (xy 2.9718 1.16332) (xy 3.01244 1.14808) (xy 3.12166 1.12268)
(xy 3.2766 1.08966) (xy 3.45948 1.05664) (xy 3.63728 1.02362) (xy 3.7973 0.99314)
(xy 3.9116 0.97028) (xy 3.9624 0.96012) (xy 3.9751 0.9525) (xy 3.98526 0.9271)
(xy 3.99288 0.87376) (xy 3.99542 0.77724) (xy 3.99796 0.62484) (xy 3.99796 0.40386)
(xy 3.99796 0.381) (xy 3.99542 0.17018) (xy 3.99288 0.00254) (xy 3.9878 -0.10668)
(xy 3.98018 -0.14986) (xy 3.98018 -0.14986) (xy 3.92938 -0.16256) (xy 3.81762 -0.18542)
(xy 3.6576 -0.21844) (xy 3.4671 -0.254) (xy 3.45694 -0.25654) (xy 3.26644 -0.2921)
(xy 3.10896 -0.32512) (xy 2.9972 -0.35052) (xy 2.95148 -0.36576) (xy 2.94132 -0.37846)
(xy 2.90322 -0.45212) (xy 2.84734 -0.56896) (xy 2.78638 -0.71374) (xy 2.72288 -0.86106)
(xy 2.66954 -0.99568) (xy 2.63398 -1.09474) (xy 2.62382 -1.14046) (xy 2.62382 -1.14046)
(xy 2.65176 -1.18618) (xy 2.7178 -1.28524) (xy 2.80924 -1.41986) (xy 2.921 -1.58242)
(xy 2.92862 -1.59512) (xy 3.03784 -1.75514) (xy 3.12674 -1.88976) (xy 3.18516 -1.98628)
(xy 3.20548 -2.02946) (xy 3.20548 -2.032) (xy 3.16992 -2.08026) (xy 3.08864 -2.16916)
(xy 2.9718 -2.29108) (xy 2.8321 -2.43332) (xy 2.78638 -2.4765) (xy 2.63144 -2.6289)
(xy 2.52476 -2.72796) (xy 2.45618 -2.7813) (xy 2.42316 -2.794) (xy 2.42316 -2.79146)
(xy 2.3749 -2.76352) (xy 2.2733 -2.69748) (xy 2.13614 -2.6035) (xy 1.97358 -2.49428)
(xy 1.96342 -2.48666) (xy 1.8034 -2.37744) (xy 1.67132 -2.28854) (xy 1.5748 -2.22504)
(xy 1.53416 -2.19964) (xy 1.52654 -2.19964) (xy 1.46304 -2.21996) (xy 1.34874 -2.25806)
(xy 1.20904 -2.31394) (xy 1.06172 -2.37236) (xy 0.9271 -2.42824) (xy 0.8255 -2.4765)
(xy 0.77724 -2.5019) (xy 0.77724 -2.50444) (xy 0.75946 -2.56286) (xy 0.73152 -2.68224)
(xy 0.6985 -2.84734) (xy 0.6604 -3.04292) (xy 0.65532 -3.0734) (xy 0.61976 -3.2639)
(xy 0.58928 -3.42138) (xy 0.56642 -3.5306) (xy 0.55372 -3.57632) (xy 0.52832 -3.5814)
(xy 0.43434 -3.58902) (xy 0.2921 -3.59156) (xy 0.11938 -3.5941) (xy -0.06096 -3.59156)
(xy -0.23622 -3.58902) (xy -0.38862 -3.58394) (xy -0.4953 -3.57632) (xy -0.54102 -3.56616)
(xy -0.54356 -3.56362) (xy -0.5588 -3.5052) (xy -0.5842 -3.38582) (xy -0.61976 -3.22072)
(xy -0.65786 -3.0226) (xy -0.66294 -2.98958) (xy -0.6985 -2.79908) (xy -0.73152 -2.64414)
(xy -0.75438 -2.53492) (xy -0.76708 -2.49428) (xy -0.78232 -2.48412) (xy -0.86106 -2.4511)
(xy -0.98806 -2.39776) (xy -1.14808 -2.33426) (xy -1.51384 -2.1844) (xy -1.96088 -2.49428)
(xy -2.00406 -2.52222) (xy -2.16408 -2.63144) (xy -2.2987 -2.72034) (xy -2.39014 -2.77876)
(xy -2.42824 -2.80162) (xy -2.43078 -2.79908) (xy -2.4765 -2.76098) (xy -2.5654 -2.67716)
(xy -2.68732 -2.55778) (xy -2.82702 -2.41808) (xy -2.93116 -2.31394) (xy -3.05562 -2.18694)
(xy -3.13436 -2.10312) (xy -3.17754 -2.04724) (xy -3.19278 -2.01422) (xy -3.1877 -1.9939)
(xy -3.15976 -1.94818) (xy -3.09372 -1.84912) (xy -3.00228 -1.71196) (xy -2.89306 -1.55448)
(xy -2.80162 -1.41986) (xy -2.7051 -1.27) (xy -2.6416 -1.16332) (xy -2.61874 -1.10998)
(xy -2.62382 -1.08712) (xy -2.65684 -1.00076) (xy -2.71018 -0.86614) (xy -2.77622 -0.70866)
(xy -2.9337 -0.35306) (xy -3.16738 -0.30988) (xy -3.30708 -0.28194) (xy -3.5052 -0.24384)
(xy -3.69316 -0.20828) (xy -3.9878 -0.14986) (xy -3.99796 0.93218) (xy -3.95224 0.9525)
(xy -3.90906 0.9652) (xy -3.79984 0.98806) (xy -3.6449 1.01854) (xy -3.45948 1.0541)
(xy -3.30454 1.08458) (xy -3.14452 1.11252) (xy -3.03276 1.13538) (xy -2.98196 1.14554)
(xy -2.96926 1.16332) (xy -2.92862 1.23952) (xy -2.87274 1.36144) (xy -2.81178 1.50876)
(xy -2.74828 1.65862) (xy -2.6924 1.79832) (xy -2.65176 1.905) (xy -2.63906 1.96088)
(xy -2.65938 2.00406) (xy -2.72034 2.0955) (xy -2.8067 2.22758) (xy -2.91338 2.38506)
(xy -3.0226 2.54254) (xy -3.1115 2.67716) (xy -3.175 2.77368) (xy -3.2004 2.81686)
(xy -3.1877 2.84734) (xy -3.12674 2.92354) (xy -3.00736 3.04546) (xy -2.8321 3.22072)
(xy -2.80162 3.24866) (xy -2.66192 3.38328) (xy -2.54254 3.4925) (xy -2.46126 3.56616)
(xy -2.42316 3.59156)) (layer F.SilkS) (width 0.00254))
)

View File

@@ -0,0 +1,101 @@
(module footprints:Logo_Poncho (layer F.Cu) (tedit 560DAFF4)
(fp_text reference G*** (at 0.127 5.588) (layer F.SilkS) hide
(effects (font (thickness 0.3)))
)
(fp_text value LOGO (at 0.762 7.493) (layer F.SilkS) hide
(effects (font (thickness 0.3)))
)
(fp_poly (pts (xy 4.535714 -0.627021) (xy 4.498746 -0.420109) (xy 4.405012 -0.1352) (xy 4.280272 0.162897)
(xy 4.150281 0.409374) (xy 4.123376 0.447413) (xy 4.123376 -0.123701) (xy 4.058326 -0.436938)
(xy 3.869112 -0.644378) (xy 3.564639 -0.737671) (xy 3.463636 -0.742208) (xy 3.129516 -0.681223)
(xy 2.908248 -0.503835) (xy 2.808734 -0.218392) (xy 2.803896 -0.123701) (xy 2.868946 0.189536)
(xy 3.058159 0.396975) (xy 3.362633 0.490269) (xy 3.463636 0.494805) (xy 3.797606 0.436492)
(xy 3.958441 0.32987) (xy 4.092315 0.09203) (xy 4.123376 -0.123701) (xy 4.123376 0.447413)
(xy 4.089856 0.494805) (xy 4.013749 0.621925) (xy 3.89522 0.861365) (xy 3.753792 1.172585)
(xy 3.672876 1.360714) (xy 3.421635 1.929272) (xy 3.149718 2.496808) (xy 2.869494 3.041693)
(xy 2.593334 3.542296) (xy 2.556493 3.603955) (xy 2.556493 -0.123701) (xy 2.552598 -0.439936)
(xy 2.534834 -0.625484) (xy 2.494089 -0.714524) (xy 2.421247 -0.741238) (xy 2.391558 -0.742208)
(xy 2.270831 -0.703329) (xy 2.228325 -0.558669) (xy 2.226623 -0.494805) (xy 2.206189 -0.31957)
(xy 2.109798 -0.254982) (xy 1.97922 -0.247402) (xy 1.803985 -0.267837) (xy 1.739397 -0.364227)
(xy 1.731818 -0.494805) (xy 1.705898 -0.675896) (xy 1.609459 -0.739655) (xy 1.566883 -0.742208)
(xy 1.482553 -0.727599) (xy 1.433074 -0.660988) (xy 1.40933 -0.508193) (xy 1.402206 -0.235036)
(xy 1.401948 -0.123701) (xy 1.405843 0.192533) (xy 1.423606 0.378081) (xy 1.464351 0.467122)
(xy 1.537193 0.493835) (xy 1.566883 0.494805) (xy 1.680559 0.462518) (xy 1.726426 0.336472)
(xy 1.731818 0.206169) (xy 1.745609 0.012245) (xy 1.815564 -0.067294) (xy 1.97922 -0.082467)
(xy 2.145441 -0.066377) (xy 2.213617 0.015237) (xy 2.226623 0.206169) (xy 2.245073 0.405103)
(xy 2.317099 0.48537) (xy 2.391558 0.494805) (xy 2.475887 0.480197) (xy 2.525367 0.413586)
(xy 2.549111 0.260791) (xy 2.556234 -0.012366) (xy 2.556493 -0.123701) (xy 2.556493 3.603955)
(xy 2.33361 3.976986) (xy 2.102692 4.324132) (xy 1.912952 4.562103) (xy 1.781691 4.667512)
(xy 1.660102 4.654002) (xy 1.438445 4.580892) (xy 1.163465 4.463746) (xy 1.154545 4.459546)
(xy 1.154545 0.36149) (xy 1.110706 0.268405) (xy 0.956623 0.266159) (xy 0.938776 0.269422)
(xy 0.717011 0.243945) (xy 0.523128 0.11531) (xy 0.417755 -0.07121) (xy 0.412337 -0.123701)
(xy 0.484303 -0.318602) (xy 0.658393 -0.472009) (xy 0.871896 -0.536691) (xy 0.949632 -0.528355)
(xy 1.105982 -0.515384) (xy 1.154279 -0.597467) (xy 1.154545 -0.609566) (xy 1.114247 -0.69528)
(xy 0.970303 -0.735064) (xy 0.783441 -0.742208) (xy 0.429195 -0.687347) (xy 0.198088 -0.523118)
(xy 0.090717 -0.250044) (xy 0.082467 -0.123701) (xy 0.144642 0.188869) (xy 0.330769 0.392787)
(xy 0.640252 0.487526) (xy 0.783441 0.494805) (xy 1.022962 0.480515) (xy 1.134243 0.429291)
(xy 1.154545 0.36149) (xy 1.154545 4.459546) (xy 1.148315 4.456614) (xy 0.592041 4.256938)
(xy 0.061238 4.207886) (xy -0.164935 4.249843) (xy -0.164935 -0.123701) (xy -0.168831 -0.439936)
(xy -0.186594 -0.625484) (xy -0.227339 -0.714524) (xy -0.300181 -0.741238) (xy -0.329871 -0.742208)
(xy -0.435349 -0.716231) (xy -0.483875 -0.609894) (xy -0.495586 -0.391721) (xy -0.496366 -0.041234)
(xy -0.706429 -0.391721) (xy -0.874005 -0.625569) (xy -1.029731 -0.729733) (xy -1.117986 -0.742208)
(xy -1.220495 -0.733937) (xy -1.280586 -0.685976) (xy -1.309571 -0.563603) (xy -1.318762 -0.332094)
(xy -1.319481 -0.123701) (xy -1.315585 0.192533) (xy -1.297822 0.378081) (xy -1.257077 0.467122)
(xy -1.184235 0.493835) (xy -1.154546 0.494805) (xy -1.049068 0.468829) (xy -1.000541 0.362492)
(xy -0.988831 0.144318) (xy -0.98805 -0.206169) (xy -0.777988 0.144318) (xy -0.610412 0.378167)
(xy -0.454685 0.48233) (xy -0.36643 0.494805) (xy -0.263922 0.486535) (xy -0.203831 0.438574)
(xy -0.174846 0.3162) (xy -0.165655 0.084692) (xy -0.164935 -0.123701) (xy -0.164935 4.249843)
(xy -0.48241 4.308738) (xy -0.783442 4.420415) (xy -1.059466 4.535832) (xy -1.285963 4.626797)
(xy -1.401948 4.669513) (xy -1.518876 4.625399) (xy -1.566884 4.584033) (xy -1.566884 -0.123701)
(xy -1.631934 -0.436938) (xy -1.821147 -0.644378) (xy -2.12562 -0.737671) (xy -2.226624 -0.742208)
(xy -2.560743 -0.681223) (xy -2.782012 -0.503835) (xy -2.881525 -0.218392) (xy -2.886364 -0.123701)
(xy -2.821314 0.189536) (xy -2.6321 0.396975) (xy -2.327627 0.490269) (xy -2.226624 0.494805)
(xy -1.892653 0.436492) (xy -1.731819 0.32987) (xy -1.597945 0.09203) (xy -1.566884 -0.123701)
(xy -1.566884 4.584033) (xy -1.717176 4.454536) (xy -1.98582 4.166799) (xy -2.061689 4.078924)
(xy -2.369861 3.70727) (xy -2.632201 3.363429) (xy -2.870341 3.013116) (xy -2.968832 2.849614)
(xy -2.968832 -0.32987) (xy -3.007485 -0.54598) (xy -3.140146 -0.67528) (xy -3.391869 -0.734039)
(xy -3.603832 -0.742208) (xy -4.04091 -0.742208) (xy -4.04091 -0.123701) (xy -4.037014 0.192533)
(xy -4.019251 0.378081) (xy -3.978506 0.467122) (xy -3.905664 0.493835) (xy -3.875974 0.494805)
(xy -3.746639 0.446485) (xy -3.711039 0.288637) (xy -3.687673 0.146227) (xy -3.584731 0.090232)
(xy -3.438897 0.082468) (xy -3.16065 0.034793) (xy -3.008068 -0.114765) (xy -2.968832 -0.32987)
(xy -2.968832 2.849614) (xy -3.105916 2.622046) (xy -3.360558 2.155935) (xy -3.6559 1.580499)
(xy -3.724805 1.443182) (xy -3.927446 1.040996) (xy -4.107468 0.68891) (xy -4.250627 0.414385)
(xy -4.342678 0.24488) (xy -4.366512 0.206169) (xy -4.479713 -0.061738) (xy -4.470402 -0.368299)
(xy -4.39208 -0.562072) (xy -4.211754 -0.794239) (xy -3.970771 -1.027175) (xy -3.729883 -1.205582)
(xy -3.628572 -1.257014) (xy -3.515586 -1.328258) (xy -3.31072 -1.481511) (xy -3.047204 -1.691308)
(xy -2.861153 -1.845142) (xy -2.478394 -2.151727) (xy -2.09396 -2.434151) (xy -1.735885 -2.674156)
(xy -1.432202 -2.853482) (xy -1.210945 -2.953871) (xy -1.135923 -2.968831) (xy -0.992755 -2.911987)
(xy -0.868796 -2.807085) (xy -0.798823 -2.718089) (xy -0.768465 -2.621372) (xy -0.779148 -2.476306)
(xy -0.832302 -2.242261) (xy -0.897248 -1.997411) (xy -1.002077 -1.614541) (xy -1.0637 -1.342913)
(xy -1.062894 -1.163551) (xy -0.980436 -1.05748) (xy -0.797105 -1.005726) (xy -0.493678 -0.989314)
(xy -0.050932 -0.989267) (xy 0.123701 -0.98961) (xy 0.616616 -0.993152) (xy 0.963601 -1.004879)
(xy 1.183529 -1.026446) (xy 1.295275 -1.059505) (xy 1.31948 -1.094352) (xy 1.298521 -1.22034)
(xy 1.243133 -1.457326) (xy 1.164548 -1.757819) (xy 1.150407 -1.809213) (xy 1.043088 -2.255847)
(xy 1.008894 -2.569631) (xy 1.048676 -2.765972) (xy 1.163285 -2.860279) (xy 1.208992 -2.870512)
(xy 1.420553 -2.83991) (xy 1.739874 -2.711189) (xy 2.149801 -2.493929) (xy 2.633175 -2.197713)
(xy 3.172841 -1.832122) (xy 3.525487 -1.576813) (xy 3.929546 -1.272303) (xy 4.214754 -1.04349)
(xy 4.398878 -0.873667) (xy 4.499689 -0.746128) (xy 4.534955 -0.644167) (xy 4.535714 -0.627021)
(xy 4.535714 -0.627021)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.023542 -3.736319) (xy 0.895402 -3.389445) (xy 0.679417 -3.11223) (xy 0.563302 -2.982356)
(xy 0.508034 -2.869698) (xy 0.506066 -2.720981) (xy 0.549854 -2.48293) (xy 0.574294 -2.370022)
(xy 0.658312 -1.973188) (xy 0.69611 -1.709422) (xy 0.675383 -1.550382) (xy 0.583822 -1.467723)
(xy 0.409122 -1.433104) (xy 0.16144 -1.419187) (xy -0.12355 -1.415195) (xy -0.339882 -1.428263)
(xy -0.43645 -1.453549) (xy -0.490308 -1.618268) (xy -0.466441 -1.923684) (xy -0.365224 -2.365222)
(xy -0.360015 -2.384058) (xy -0.225225 -2.868872) (xy -0.488808 -3.104404) (xy -0.714353 -3.402585)
(xy -0.808424 -3.746824) (xy -0.77552 -4.096523) (xy -0.620138 -4.411085) (xy -0.346777 -4.649915)
(xy -0.31571 -4.666738) (xy 0.033719 -4.763905) (xy 0.380075 -4.71573) (xy 0.68714 -4.538441)
(xy 0.918691 -4.248265) (xy 0.989692 -4.081895) (xy 1.023542 -3.736319) (xy 1.023542 -3.736319)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy -3.320079 -0.321578) (xy -3.381169 -0.206169) (xy -3.537606 -0.087441) (xy -3.656944 -0.12265)
(xy -3.710414 -0.301007) (xy -3.711039 -0.32987) (xy -3.666881 -0.523821) (xy -3.553583 -0.57585)
(xy -3.399915 -0.47517) (xy -3.381169 -0.453571) (xy -3.320079 -0.321578) (xy -3.320079 -0.321578)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy -1.911824 -0.1467) (xy -1.935194 -0.006732) (xy -2.006645 0.114199) (xy -2.128505 0.265484)
(xy -2.225472 0.329848) (xy -2.226624 0.32987) (xy -2.322643 0.267542) (xy -2.444552 0.117317)
(xy -2.446603 0.114199) (xy -2.537406 -0.05684) (xy -2.52656 -0.197017) (xy -2.465958 -0.318756)
(xy -2.343482 -0.473895) (xy -2.226624 -0.536039) (xy -2.106037 -0.47051) (xy -1.987289 -0.318756)
(xy -1.911824 -0.1467) (xy -1.911824 -0.1467)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 3.778435 -0.1467) (xy 3.755065 -0.006732) (xy 3.683615 0.114199) (xy 3.561755 0.265484)
(xy 3.464788 0.329848) (xy 3.463636 0.32987) (xy 3.367616 0.267542) (xy 3.245708 0.117317)
(xy 3.243657 0.114199) (xy 3.152854 -0.05684) (xy 3.163699 -0.197017) (xy 3.224301 -0.318756)
(xy 3.346778 -0.473895) (xy 3.463636 -0.536039) (xy 3.584223 -0.47051) (xy 3.702971 -0.318756)
(xy 3.778435 -0.1467) (xy 3.778435 -0.1467)) (layer F.SilkS) (width 0.1))
)

View File

@@ -0,0 +1,24 @@
(module footprints:MagneticBuzzer_ProSignal_ABT-410-RC (layer F.Cu) (tedit 544E5504)
(descr "Buzzer, Elektromagnetic Beeper, Summer, 1,5V-DC,")
(tags "Pro Signal, ABT-410-RC,")
(fp_text reference U1 (at 3.175 -8.001) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value BUZZER (at 2.17424 8.001) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 8.17626 -0.50038) (end 8.17626 0.50038) (layer F.SilkS) (width 0.15))
(fp_line (start 7.67588 0) (end 8.6741 0) (layer F.SilkS) (width 0.15))
(fp_circle (center 3.175 0) (end 4.17576 0) (layer F.SilkS) (width 0.15))
(fp_text user + (at 10.67562 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 3.175 0) (end 9.37514 0) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole circle (at 0 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole circle (at 6.35 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
(model Buzzers_Beepers.3dshapes/MagneticBuzzer_ProSignal_ABT-410-RC.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View File

@@ -0,0 +1,31 @@
(module footprints:Pin_Header_Straight_2x02 (layer F.Cu) (tedit 0)
(descr "Through hole pin header")
(tags "pin header")
(fp_text reference P1 (at 0 -5.1) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value PWR_JUMPER (at 0 -3.1) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.75 -1.75) (end -1.75 4.3) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.3 -1.75) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.75 4.3) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.55 0) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
(fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
(fp_line (start -1.27 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 1.27 -1.27) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 -1.27) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 3.81) (end -1.27 3.81) (layer F.SilkS) (width 0.15))
(fp_line (start -1.27 3.81) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(model Pin_Headers.3dshapes/Pin_Header_Straight_2x02.wrl
(at (xyz 0.05 -0.05 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
)

View File

@@ -0,0 +1,67 @@
(module footprints:Pin_Header_Straight_2x20 (layer F.Cu) (tedit 0)
(descr "Through hole pin header")
(tags "pin header")
(fp_text reference XA2 (at 0 -5.1) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Conn_Poncho2P_2x_20x2 (at 0 -3.1) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.75 -1.75) (end -1.75 50.05) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.3 -1.75) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.75 50.05) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start -1.27 1.27) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 -1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
(fp_line (start 1.27 -1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 1.27 1.27) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
(fp_line (start -1.55 -1.55) (end -1.55 0) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 5 thru_hole oval (at 0 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 6 thru_hole oval (at 2.54 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 7 thru_hole oval (at 0 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 8 thru_hole oval (at 2.54 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole oval (at 0 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 10 thru_hole oval (at 2.54 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 11 thru_hole oval (at 0 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 12 thru_hole oval (at 2.54 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 13 thru_hole oval (at 0 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 14 thru_hole oval (at 2.54 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 15 thru_hole oval (at 0 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 16 thru_hole oval (at 2.54 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 17 thru_hole oval (at 0 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 18 thru_hole oval (at 2.54 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 19 thru_hole oval (at 0 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 20 thru_hole oval (at 2.54 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 21 thru_hole oval (at 0 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 22 thru_hole oval (at 2.54 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 23 thru_hole oval (at 0 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 24 thru_hole oval (at 2.54 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 25 thru_hole oval (at 0 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 26 thru_hole oval (at 2.54 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 27 thru_hole oval (at 0 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 28 thru_hole oval (at 2.54 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 29 thru_hole oval (at 0 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 30 thru_hole oval (at 2.54 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 31 thru_hole oval (at 0 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 32 thru_hole oval (at 2.54 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 33 thru_hole oval (at 0 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 34 thru_hole oval (at 2.54 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 35 thru_hole oval (at 0 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 36 thru_hole oval (at 2.54 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 37 thru_hole oval (at 0 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 38 thru_hole oval (at 2.54 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 39 thru_hole oval (at 0 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 40 thru_hole oval (at 2.54 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(model Pin_Headers.3dshapes/Pin_Header_Straight_2x20.wrl
(at (xyz 0.05 -0.95 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
)

View File

@@ -0,0 +1,20 @@
(module footprints:Resistor_Horizontal_RM7mm (layer F.Cu) (tedit 569FCF07)
(descr "Resistor, Axial, RM 7.62mm, 1/3W,")
(tags "Resistor Axial RM 7.62mm 1/3W R3")
(fp_text reference R18 (at 4.05892 -3.50012) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 680 (at 3.81 3.81) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.25 -1.5) (end 8.85 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.25 1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 8.85 -1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.25 1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.27 -1.27) (end 6.35 -1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 6.35 -1.27) (end 6.35 1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 6.35 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
(fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole circle (at 0 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
(pad 2 thru_hole circle (at 7.62 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
)

View File

@@ -0,0 +1,17 @@
(module footprints:SW_PUSH_SMALL (layer F.Cu) (tedit 0)
(fp_text reference SW7 (at 0 -0.762) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value SW_PUSH (at 0 1.016) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 0 0) (end 0 -2.54) (layer F.SilkS) (width 0.15))
(fp_line (start -3.81 -3.81) (end 3.81 -3.81) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 -3.81) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
(fp_line (start 3.81 3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
(fp_line (start -3.81 -3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole circle (at 3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole circle (at 3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 1 thru_hole circle (at -3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole circle (at -3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
)

View File

@@ -0,0 +1,25 @@
(module footprints:TO-92_Molded_Narrow (layer F.Cu) (tedit 54F242E1)
(descr "TO-92 leads molded, narrow, drill 0.6mm (see NXP sot054_po.pdf)")
(tags "to-92 sc-43 sc-43a sot54 PA33 transistor")
(fp_text reference Q5 (at 0 -4) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value BC547 (at 0 3) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.4 1.95) (end -1.4 -2.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.4 1.95) (end 3.9 1.95) (layer F.CrtYd) (width 0.05))
(fp_line (start -0.43 1.7) (end 2.97 1.7) (layer F.SilkS) (width 0.15))
(fp_arc (start 1.27 0) (end 1.27 -2.4) (angle -135) (layer F.SilkS) (width 0.15))
(fp_arc (start 1.27 0) (end 1.27 -2.4) (angle 135) (layer F.SilkS) (width 0.15))
(fp_line (start -1.4 -2.65) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.9 1.95) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
(pad 2 thru_hole circle (at 1.27 -1.27 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole circle (at 2.54 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
(pad 1 thru_hole circle (at 0 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
(model TO_SOT_Packages_THT.3dshapes/TO-92_Molded_Narrow.wrl
(at (xyz 0.05 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -90))
)
)

View File

@@ -0,0 +1,95 @@
(fp_lib_table
(lib (name Air_Coils_SML_NEOSID)(type Github)(uri ${KIGITHUB}/Air_Coils_SML_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Buttons_Switches_SMD)(type Github)(uri ${KIGITHUB}/Buttons_Switches_SMD.pretty)(options "")(descr "Buttons and switches, surface mount"))
(lib (name Buttons_Switches_THT)(type Github)(uri ${KIGITHUB}/Buttons_Switches_THT.pretty)(options "")(descr "Buttons and switches, through hole"))
(lib (name Buzzers_Beepers)(type Github)(uri ${KIGITHUB}/Buzzers_Beepers.pretty)(options "")(descr "Audio signalling devices"))
(lib (name Capacitors_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_SMD.pretty)(options "")(descr "Capacitors, surface mount"))
(lib (name Capacitors_Tantalum_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_Tantalum_SMD.pretty)(options "")(descr "Tantalum capacitors, surface mount"))
(lib (name Capacitors_THT)(type Github)(uri ${KIGITHUB}/Capacitors_THT.pretty)(options "")(descr "Capacitors, through hole"))
(lib (name Choke_Axial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Axial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Choke_Common-Mode_Wurth)(type Github)(uri ${KIGITHUB}/Choke_Common-Mode_Wurth.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Choke_Radial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Radial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Choke_SMD)(type Github)(uri ${KIGITHUB}/Choke_SMD.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Choke_Toroid_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Toroid_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Connectors_Harwin)(type Github)(uri ${KIGITHUB}/Connectors_Harwin.pretty)(options "")(descr "Harwin connector footprints www.harwin.com"))
(lib (name Connectors_Hirose)(type Github)(uri ${KIGITHUB}/Connectors_Hirose.pretty)(options "")(descr "Hirose connector footprints www.hirose.com"))
(lib (name Connectors_JAE)(type Github)(uri ${KIGITHUB}/Connectors_JAE.pretty)(options "")(descr "JAE connector footprints http://www.jae.com/jccom/en/connectors"))
(lib (name Connectors_JST)(type Github)(uri ${KIGITHUB}/Connectors_JST.pretty)(options "")(descr "JST connector footprints www.jst.com"))
(lib (name Connectors_Mini-Universal)(type Github)(uri ${KIGITHUB}/Connectors_Mini-Universal.pretty)(options "")(descr Mate-N-Lok))
(lib (name Connectors_Molex)(type Github)(uri ${KIGITHUB}/Connectors_Molex.pretty)(options "")(descr "Molex connector foottprints www.molex.com"))
(lib (name Connectors_Multicomp)(type Github)(uri ${KIGITHUB}/Connectors_Multicomp.pretty)(options "")(descr "Multicomp connector footprints"))
(lib (name Connectors_Phoenix)(type Github)(uri ${KIGITHUB}/Connectors_Phoenix.pretty)(options "")(descr "Phoenix connector footprints"))
(lib (name Connectors_Samtec)(type Github)(uri ${KIGITHUB}/Connectors_Samtec.pretty)(options "")(descr "Samtec connector footprints"))
(lib (name Connectors_TE-Connectivity)(type Github)(uri ${KIGITHUB}/Connectors_TE-Connectivity.pretty)(options "")(descr "TE Connectivity connector footprints www.te.com"))
(lib (name Connectors_Terminal_Blocks)(type Github)(uri ${KIGITHUB}/Connectors_Terminal_Blocks.pretty)(options "")(descr "Terminal block connectors"))
(lib (name Connectors_WAGO)(type Github)(uri ${KIGITHUB}/Connectors_WAGO.pretty)(options "")(descr "WAGO connector footprints www.wago.com"))
(lib (name Connectors)(type Github)(uri ${KIGITHUB}/Connectors.pretty)(options "")(descr "Assorted connector footprints"))
(lib (name Converters_DCDC_ACDC)(type Github)(uri ${KIGITHUB}/Converters_DCDC_ACDC.pretty)(options "")(descr "DC-DC and AC-DC convertor modules"))
(lib (name Crystals)(type Github)(uri ${KIGITHUB}/Crystals.pretty)(options "")(descr "Crystals and oscillators"))
(lib (name Diodes_SMD)(type Github)(uri ${KIGITHUB}/Diodes_SMD.pretty)(options "")(descr "Diodes, surface mount"))
(lib (name Diodes_THT)(type Github)(uri ${KIGITHUB}/Diodes_THT.pretty)(options "")(descr "Diodes, through hole"))
(lib (name Discret)(type Github)(uri ${KIGITHUB}/Discret.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Displays_7-Segment)(type Github)(uri ${KIGITHUB}/Displays_7-Segment.pretty)(options "")(descr "Seven segment displays"))
(lib (name Displays)(type Github)(uri ${KIGITHUB}/Displays.pretty)(options "")(descr "Display modules"))
(lib (name Divers)(type Github)(uri ${KIGITHUB}/Divers.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Enclosures)(type Github)(uri ${KIGITHUB}/Enclosures.pretty)(options "")(descr "Electronics enclosures and housings"))
(lib (name EuroBoard_Outline)(type Github)(uri ${KIGITHUB}/EuroBoard_Outline.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Fiducials)(type Github)(uri ${KIGITHUB}/Fiducials.pretty)(options "")(descr "Fiducial markings"))
(lib (name Filters_HF_Coils_NEOSID)(type Github)(uri ${KIGITHUB}/Filters_HF_Coils_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Fuse_Holders_and_Fuses)(type Github)(uri ${KIGITHUB}/Fuse_Holders_and_Fuses.pretty)(options "")(descr "Fuses and fuse holders"))
(lib (name Hall-Effect_Transducers_LEM)(type Github)(uri ${KIGITHUB}/Hall-Effect_Transducers_LEM.pretty)(options "")(descr "LEM hall effect transducers"))
(lib (name Heatsinks)(type Github)(uri ${KIGITHUB}/Heatsinks.pretty)(options "")(descr "Heatsinks and thermal products"))
(lib (name Housings_BGA)(type Github)(uri ${KIGITHUB}/Housings_BGA.pretty)(options "")(descr "Ball Grid Array (BGA)"))
(lib (name Housings_DFN_QFN)(type Github)(uri ${KIGITHUB}/Housings_DFN_QFN.pretty)(options "")(descr "Surface mount IC packages, DFN / LGA / QFN"))
(lib (name Housings_DIP)(type Github)(uri ${KIGITHUB}/Housings_DIP.pretty)(options "")(descr "Through hole IC packages, DIP"))
(lib (name Housings_LCC)(type Github)(uri ${KIGITHUB}/Housings_LCC.pretty)(options "")(descr "Leaded Chip Carriers (LCC)"))
(lib (name Housings_LGA)(type Github)(uri ${KIGITHUB}/Housings_LGA.pretty)(options "")(descr "Land Grid Array (LGA)"))
(lib (name Housings_PGA)(type Github)(uri ${KIGITHUB}/Housings_PGA.pretty)(options "")(descr "Pin Grid Array (PGA)"))
(lib (name Housings_QFP)(type Github)(uri ${KIGITHUB}/Housings_QFP.pretty)(options "")(descr "Quad Flat Package (QFP)"))
(lib (name Housings_SIP)(type Github)(uri ${KIGITHUB}/Housings_SIP.pretty)(options "")(descr "Single Inline Package (SIP)"))
(lib (name Housings_SOIC)(type Github)(uri ${KIGITHUB}/Housings_SOIC.pretty)(options "")(descr "Small Outline Integrated Circuits (SOIC)"))
(lib (name Housings_SSOP)(type Github)(uri ${KIGITHUB}/Housings_SSOP.pretty)(options "")(descr "SSOP, TSSOP, MSOP, QSOP, VSO packages"))
(lib (name Inductors_NEOSID)(type Github)(uri ${KIGITHUB}/Inductors_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Inductors)(type Github)(uri ${KIGITHUB}/Inductors.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Inductors_SMD)(type Github)(uri ${KIGITHUB}/Inductors_SMD.pretty)(options "")(descr "Inductors, surface mount"))
(lib (name Inductors_THT)(type Github)(uri ${KIGITHUB}/Inductors_THT.pretty)(options "")(descr "Inductors, through hole"))
(lib (name IR-DirectFETs)(type Github)(uri ${KIGITHUB}/IR-DirectFETs.pretty)(options "")(descr "DirectFet packets from International Rectifier"))
(lib (name Labels)(type Github)(uri ${KIGITHUB}/Labels.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name LEDs)(type Github)(uri ${KIGITHUB}/LEDs.pretty)(options "")(descr "Light emitting diodes (LEDs)"))
(lib (name Measurement_Points)(type Github)(uri ${KIGITHUB}/Measurement_Points.pretty)(options "")(descr "Terminals for test equipment"))
(lib (name Measurement_Scales)(type Github)(uri ${KIGITHUB}/Measurement_Scales.pretty)(options "")(descr "Measurement scales and gauges"))
(lib (name Mechanical_Sockets)(type Github)(uri ${KIGITHUB}/Mechanical_Sockets.pretty)(options "")(descr "Sockets for board to board connection"))
(lib (name Microwave)(type Github)(uri ${KIGITHUB}/Microwave.pretty)(options "")(descr "Microwave"))
(lib (name Modules)(type Github)(uri ${KIGITHUB}/Modules.pretty)(options "")(descr "Board-level devices integrating system functionality into a single module"))
(lib (name Mounting_Holes)(type Github)(uri ${KIGITHUB}/Mounting_Holes.pretty)(options "")(descr "Mechanical fasteners"))
(lib (name NF-Transformers_ETAL)(type Github)(uri ${KIGITHUB}/NF-Transformers_ETAL.pretty)(options "")(descr "Deprecated - will be deleted"))
(lib (name Oddities)(type Github)(uri ${KIGITHUB}/Oddities.pretty)(options "")(descr "Assorted footprints. Deprecated - will be removed"))
(lib (name Opto-Devices)(type Github)(uri ${KIGITHUB}/Opto-Devices.pretty)(options "")(descr "Optocouplers, light sensors, and other optical devices"))
(lib (name Oscillators)(type Github)(uri ${KIGITHUB}/Oscillators.pretty)(options "")(descr "Precicision oscillator modules"))
(lib (name PFF_PSF_PSS_Leadforms)(type Github)(uri ${KIGITHUB}/PFF_PSF_PSS_Leadforms.pretty)(options "")(descr "Allegro leadform packages"))
(lib (name Pin_Headers)(type Github)(uri ${KIGITHUB}/Pin_Headers.pretty)(options "")(descr "Male pin headers"))
(lib (name Potentiometers)(type Github)(uri ${KIGITHUB}/Potentiometers.pretty)(options "")(descr "Potentiometers / variable resistors"))
(lib (name Power_Integrations)(type Github)(uri ${KIGITHUB}/Power_Integrations.pretty)(options "")(descr "Power Integrations footprints"))
(lib (name Relays_THT)(type Github)(uri ${KIGITHUB}/Relays_THT.pretty)(options "")(descr "Through hole relay packages"))
(lib (name Resistors_SMD)(type Github)(uri ${KIGITHUB}/Resistors_SMD.pretty)(options "")(descr "Resistors, surface mount"))
(lib (name Resistors_THT)(type Github)(uri ${KIGITHUB}/Resistors_THT.pretty)(options "")(descr "Resistors, through hole"))
(lib (name Resistors_Universal)(type Github)(uri ${KIGITHUB}/Resistors_Universal.pretty)(options "")(descr Experimental))
(lib (name RF_Modules)(type Github)(uri ${KIGITHUB}/RF_Modules.pretty)(options "")(descr "Radio-frequency / wireless modules"))
(lib (name Shielding_Cabinets)(type Github)(uri ${KIGITHUB}/Shielding_Cabinets.pretty)(options "")(descr "RF / EMI shields"))
(lib (name SMD_Packages)(type Github)(uri ${KIGITHUB}/SMD_Packages.pretty)(options "")(descr "Various SMD packages. Read only - footprints will be moved to other libraries"))
(lib (name Sockets_MOLEX_KK-System)(type Github)(uri ${KIGITHUB}/Sockets_MOLEX_KK-System.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Socket_Strips)(type Github)(uri ${KIGITHUB}/Socket_Strips.pretty)(options "")(descr "Female socket strips"))
(lib (name Sockets)(type Github)(uri ${KIGITHUB}/Sockets.pretty)(options "")(descr "IC sockets"))
(lib (name Symbols)(type Github)(uri ${KIGITHUB}/Symbols.pretty)(options "")(descr "PCB symbols"))
(lib (name TO_SOT_Packages_SMD)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_SMD.pretty)(options "")(descr "Surface mount transistor packages"))
(lib (name TO_SOT_Packages_THT)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_THT.pretty)(options "")(descr "Through hole transistor packages"))
(lib (name Transformers_CHK)(type Github)(uri ${KIGITHUB}/Transformers_CHK.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Transformers_SMD)(type Github)(uri ${KIGITHUB}/Transformers_SMD.pretty)(options "")(descr "Surface mount transformers"))
(lib (name Transformers_SMPS_ThroughHole)(type Github)(uri ${KIGITHUB}/Transformers_SMPS_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
(lib (name Transformers_THT)(type Github)(uri ${KIGITHUB}/Transformers_THT.pretty)(options "")(descr "Through hole transformers"))
(lib (name Transistors_OldSowjetAera)(type Github)(uri ${KIGITHUB}/Transistors_OldSowjetAera.pretty)(options "")(descr "Sowjet transistors"))
(lib (name Valves)(type Github)(uri ${KIGITHUB}/Valves.pretty)(options "")(descr "Valves"))
(lib (name Varistors)(type Github)(uri ${KIGITHUB}/Varistors.pretty)(options "")(descr "Varistors"))
(lib (name Wire_Connections_Bridges)(type Github)(uri ${KIGITHUB}/Wire_Connections_Bridges.pretty)(options "")(descr "PCB bridging points"))
(lib (name Wire_Pads)(type Github)(uri ${KIGITHUB}/Wire_Pads.pretty)(options "")(descr "Direct wire-to-board connection points"))
)

View File

@@ -0,0 +1,34 @@
( page_layout
( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )
( rect (comment "rect around the title block") (linewidth 0.15) (start 110 34) (end 2 2) )
( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )
( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )
( line (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50) )
( tbtext "1" (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50) )
( line (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50) )
( tbtext "A" (pos 1 25 ltcorner) (font (size 1.3 1.3))
(justify center)(repeat 100) (incry 50) )
( line (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50) )
( tbtext "A" (pos 1 25 rtcorner) (font (size 1.3 1.3))
(justify center) (repeat 100) (incry 50) )
( tbtext "Date: %D" (pos 87 6.9) )
( line (start 110 5.5) (end 2 5.5) )
( tbtext "%K" (pos 109 4.1) (comment "Kicad version" ) )
( line (start 110 8.5) (end 2 8.5) )
( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) )
( tbtext "Size: %Z" (comment "Paper format name")(pos 109 6.9) )
( tbtext "Id: %S/%N" (comment "Sheet id")(pos 24 4.1) )
( line (start 110 12.5) (end 2 12.5) )
( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) )
( tbtext "File: %F" (pos 109 14.3) )
( line (start 110 18.5) (end 2 18.5) )
( tbtext "Sheet: %P" (pos 109 17) )
( tbtext "%Y" (comment "Company name") (pos 109 20)(font bold) )
( tbtext "%C0" (comment "Comment 0") (pos 109 23) )
( tbtext "%C1" (comment "Comment 1") (pos 109 26) )
( tbtext "%C2" (comment "Comment 2") (pos 109 29) )
( tbtext "%C3" (comment "Comment 3") (pos 109 32) )
( line (start 90 8.5) (end 90 5.5) )
( line (start 26 8.5) (end 26 2) )
)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,519 @@
EESchema Schematic File Version 2
LIBS:simonLib
LIBS:power
LIBS:simonShield-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 2 4
Title "Poncho Simon EDU-CIAA"
Date "2016-07-26"
Rev "1.0"
Comp "Proyecto CIAA"
Comment1 "Juan Agustin Bassi"
Comment2 "CESE - Diseño PCB"
Comment3 "Licencia BSD"
Comment4 ""
$EndDescr
$Comp
L SW_PUSH SW1
U 1 1 5777DBBB
P 3500 3000
F 0 "SW1" H 3650 3110 50 0000 C CNN
F 1 "SW_PUSH" H 3500 2920 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 3500 3000 50 0001 C CNN
F 3 "" H 3500 3000 50 0000 C CNN
F 4 "450-1804-ND" H 3500 3000 60 0001 C CNN "Digikey#"
1 3500 3000
1 0 0 -1
$EndComp
$Comp
L R R1
U 1 1 5777DBC2
P 3150 2750
F 0 "R1" V 3230 2750 50 0000 C CNN
F 1 "3K3" V 3150 2750 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3080 2750 50 0001 C CNN
F 3 "" H 3150 2750 50 0000 C CNN
F 4 "680EBK-ND" H 3150 2750 60 0001 C CNN "Digikey#"
1 3150 2750
-1 0 0 1
$EndComp
$Comp
L GND #PWR05
U 1 1 5777DBC9
P 3900 3100
F 0 "#PWR05" H 3900 2850 50 0001 C CNN
F 1 "GND" H 3900 2950 50 0000 C CNN
F 2 "" H 3900 3100 50 0000 C CNN
F 3 "" H 3900 3100 50 0000 C CNN
1 3900 3100
1 0 0 -1
$EndComp
Wire Wire Line
3150 2450 3150 2600
Wire Wire Line
3150 2900 3150 3000
Wire Wire Line
3800 3000 3900 3000
Wire Wire Line
3900 3000 3900 3100
Connection ~ 3150 3000
$Comp
L SW_PUSH SW3
U 1 1 5777DBDD
P 5050 3000
F 0 "SW3" H 5200 3110 50 0000 C CNN
F 1 "SW_PUSH" H 5050 2920 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 5050 3000 50 0001 C CNN
F 3 "" H 5050 3000 50 0000 C CNN
F 4 "450-1804-ND" H 5050 3000 60 0001 C CNN "Digikey#"
1 5050 3000
1 0 0 -1
$EndComp
$Comp
L GND #PWR06
U 1 1 5777DBEB
P 5450 3100
F 0 "#PWR06" H 5450 2850 50 0001 C CNN
F 1 "GND" H 5450 2950 50 0000 C CNN
F 2 "" H 5450 3100 50 0000 C CNN
F 3 "" H 5450 3100 50 0000 C CNN
1 5450 3100
1 0 0 -1
$EndComp
Wire Wire Line
4700 2450 4700 2600
Wire Wire Line
4700 2900 4700 3000
Wire Wire Line
5350 3000 5450 3000
Wire Wire Line
5450 3000 5450 3100
Connection ~ 4700 3000
$Comp
L SW_PUSH SW5
U 1 1 5777DBFF
P 6600 3000
F 0 "SW5" H 6750 3110 50 0000 C CNN
F 1 "SW_PUSH" H 6600 2920 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 6600 3000 50 0001 C CNN
F 3 "" H 6600 3000 50 0000 C CNN
F 4 "450-1804-ND" H 6600 3000 60 0001 C CNN "Digikey#"
1 6600 3000
1 0 0 -1
$EndComp
$Comp
L GND #PWR07
U 1 1 5777DC0D
P 7000 3100
F 0 "#PWR07" H 7000 2850 50 0001 C CNN
F 1 "GND" H 7000 2950 50 0000 C CNN
F 2 "" H 7000 3100 50 0000 C CNN
F 3 "" H 7000 3100 50 0000 C CNN
1 7000 3100
1 0 0 -1
$EndComp
Wire Wire Line
6250 2450 6250 2600
Wire Wire Line
6250 2900 6250 3000
Wire Wire Line
6900 3000 7000 3000
Wire Wire Line
7000 3000 7000 3100
Connection ~ 6250 3000
$Comp
L SW_PUSH SW7
U 1 1 5777DC21
P 8150 3000
F 0 "SW7" H 8300 3110 50 0000 C CNN
F 1 "SW_PUSH" H 8150 2920 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 8150 3000 50 0001 C CNN
F 3 "" H 8150 3000 50 0000 C CNN
F 4 "450-1804-ND" H 8150 3000 60 0001 C CNN "Digikey#"
1 8150 3000
1 0 0 -1
$EndComp
$Comp
L GND #PWR08
U 1 1 5777DC2F
P 8550 3100
F 0 "#PWR08" H 8550 2850 50 0001 C CNN
F 1 "GND" H 8550 2950 50 0000 C CNN
F 2 "" H 8550 3100 50 0000 C CNN
F 3 "" H 8550 3100 50 0000 C CNN
1 8550 3100
1 0 0 -1
$EndComp
Wire Wire Line
7800 2450 7800 2600
Wire Wire Line
7800 2900 7800 3000
Wire Wire Line
8450 3000 8550 3000
Wire Wire Line
8550 3000 8550 3100
Connection ~ 7800 3000
$Comp
L SW_PUSH SW2
U 1 1 5777DC43
P 3550 4350
F 0 "SW2" H 3700 4460 50 0000 C CNN
F 1 "SW_PUSH" H 3550 4270 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 3550 4350 50 0001 C CNN
F 3 "" H 3550 4350 50 0000 C CNN
F 4 "450-1804-ND" H 3550 4350 60 0001 C CNN "Digikey#"
1 3550 4350
1 0 0 -1
$EndComp
$Comp
L GND #PWR09
U 1 1 5777DC51
P 3950 4450
F 0 "#PWR09" H 3950 4200 50 0001 C CNN
F 1 "GND" H 3950 4300 50 0000 C CNN
F 2 "" H 3950 4450 50 0000 C CNN
F 3 "" H 3950 4450 50 0000 C CNN
1 3950 4450
1 0 0 -1
$EndComp
Wire Wire Line
3200 3800 3200 3950
Wire Wire Line
3200 4250 3200 4350
Wire Wire Line
3850 4350 3950 4350
Wire Wire Line
3950 4350 3950 4450
Connection ~ 3200 4350
$Comp
L SW_PUSH SW4
U 1 1 5777DC65
P 5100 4350
F 0 "SW4" H 5250 4460 50 0000 C CNN
F 1 "SW_PUSH" H 5100 4270 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 5100 4350 50 0001 C CNN
F 3 "" H 5100 4350 50 0000 C CNN
F 4 "450-1804-ND" H 5100 4350 60 0001 C CNN "Digikey#"
1 5100 4350
1 0 0 -1
$EndComp
$Comp
L GND #PWR010
U 1 1 5777DC73
P 5500 4450
F 0 "#PWR010" H 5500 4200 50 0001 C CNN
F 1 "GND" H 5500 4300 50 0000 C CNN
F 2 "" H 5500 4450 50 0000 C CNN
F 3 "" H 5500 4450 50 0000 C CNN
1 5500 4450
1 0 0 -1
$EndComp
Wire Wire Line
4750 4250 4750 4350
Wire Wire Line
5400 4350 5500 4350
Wire Wire Line
5500 4350 5500 4450
Connection ~ 4750 4350
$Comp
L SW_PUSH SW6
U 1 1 5777DC87
P 6650 4350
F 0 "SW6" H 6800 4460 50 0000 C CNN
F 1 "SW_PUSH" H 6650 4270 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 6650 4350 50 0001 C CNN
F 3 "" H 6650 4350 50 0000 C CNN
F 4 "450-1804-ND" H 6650 4350 60 0001 C CNN "Digikey#"
1 6650 4350
1 0 0 -1
$EndComp
$Comp
L GND #PWR011
U 1 1 5777DC95
P 7050 4450
F 0 "#PWR011" H 7050 4200 50 0001 C CNN
F 1 "GND" H 7050 4300 50 0000 C CNN
F 2 "" H 7050 4450 50 0000 C CNN
F 3 "" H 7050 4450 50 0000 C CNN
1 7050 4450
1 0 0 -1
$EndComp
Wire Wire Line
6300 3800 6300 3950
Wire Wire Line
6300 4250 6300 4350
Wire Wire Line
6950 4350 7050 4350
Wire Wire Line
7050 4350 7050 4450
Connection ~ 6300 4350
$Comp
L SW_PUSH SW8
U 1 1 5777DCA9
P 8200 4350
F 0 "SW8" H 8350 4460 50 0000 C CNN
F 1 "SW_PUSH" H 8200 4270 50 0000 C CNN
F 2 "simonShield:SW_PUSH_SMALL" H 8200 4350 50 0001 C CNN
F 3 "" H 8200 4350 50 0000 C CNN
F 4 "450-1804-ND" H 8200 4350 60 0001 C CNN "Digikey#"
1 8200 4350
1 0 0 -1
$EndComp
$Comp
L GND #PWR012
U 1 1 5777DCB7
P 8600 4450
F 0 "#PWR012" H 8600 4200 50 0001 C CNN
F 1 "GND" H 8600 4300 50 0000 C CNN
F 2 "" H 8600 4450 50 0000 C CNN
F 3 "" H 8600 4450 50 0000 C CNN
1 8600 4450
1 0 0 -1
$EndComp
Wire Wire Line
7850 3800 7850 3950
Wire Wire Line
7850 4250 7850 4350
Wire Wire Line
8500 4350 8600 4350
Wire Wire Line
8600 4350 8600 4450
Connection ~ 7850 4350
Wire Notes Line
2400 1850 2400 4700
Wire Notes Line
2400 4700 8800 4700
Wire Notes Line
8800 4700 8800 1850
Wire Notes Line
8800 2150 2400 2150
Text HLabel 2950 2800 0 60 Input ~ 0
BTN_LED_1
Wire Wire Line
2950 3000 3200 3000
Wire Wire Line
2950 3000 2950 2800
Text HLabel 4500 2800 0 60 Input ~ 0
BTN_LED_2
Text HLabel 6050 2800 0 60 Input ~ 0
BTN_LED_3
Text HLabel 7600 2800 0 60 Input ~ 0
BTN_LED_4
Wire Wire Line
4500 3000 4750 3000
Wire Wire Line
4500 3000 4500 2800
Wire Wire Line
6050 3000 6300 3000
Wire Wire Line
6050 3000 6050 2800
Wire Wire Line
7600 3000 7850 3000
Wire Wire Line
7600 3000 7600 2800
Text HLabel 3000 4150 0 60 Input ~ 0
BTN_CFG_1
Wire Wire Line
3000 4350 3250 4350
Wire Wire Line
3000 4350 3000 4150
Text HLabel 4550 4150 0 60 Input ~ 0
BTN_CFG_2
Text HLabel 6100 4150 0 60 Input ~ 0
BTN_CFG_3
Text HLabel 7650 4150 0 60 Input ~ 0
BTN_CFG_4
Wire Wire Line
4550 4150 4550 4350
Wire Wire Line
4550 4350 4800 4350
Wire Wire Line
6100 4150 6100 4350
Wire Wire Line
6100 4350 6350 4350
Wire Wire Line
7650 4150 7650 4350
Wire Wire Line
7650 4350 7900 4350
$Comp
L R R3
U 1 1 577967E7
P 4700 2750
F 0 "R3" V 4780 2750 50 0000 C CNN
F 1 "3K3" V 4700 2750 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4630 2750 50 0001 C CNN
F 3 "" H 4700 2750 50 0000 C CNN
F 4 "680EBK-ND" H 4700 2750 60 0001 C CNN "Digikey#"
1 4700 2750
-1 0 0 1
$EndComp
$Comp
L R R5
U 1 1 57796847
P 6250 2750
F 0 "R5" V 6330 2750 50 0000 C CNN
F 1 "3K3" V 6250 2750 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6180 2750 50 0001 C CNN
F 3 "" H 6250 2750 50 0000 C CNN
F 4 "680EBK-ND" H 6250 2750 60 0001 C CNN "Digikey#"
1 6250 2750
-1 0 0 1
$EndComp
$Comp
L R R7
U 1 1 577968BC
P 7800 2750
F 0 "R7" V 7880 2750 50 0000 C CNN
F 1 "3K3" V 7800 2750 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7730 2750 50 0001 C CNN
F 3 "" H 7800 2750 50 0000 C CNN
F 4 "680EBK-ND" H 7800 2750 60 0001 C CNN "Digikey#"
1 7800 2750
-1 0 0 1
$EndComp
$Comp
L R R2
U 1 1 5779693E
P 3200 4100
F 0 "R2" V 3280 4100 50 0000 C CNN
F 1 "3K3" V 3200 4100 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3130 4100 50 0001 C CNN
F 3 "" H 3200 4100 50 0000 C CNN
F 4 "680EBK-ND" H 3200 4100 60 0001 C CNN "Digikey#"
1 3200 4100
-1 0 0 1
$EndComp
$Comp
L R R4
U 1 1 577969F3
P 4750 4100
F 0 "R4" V 4830 4100 50 0000 C CNN
F 1 "3K3" V 4750 4100 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4680 4100 50 0001 C CNN
F 3 "" H 4750 4100 50 0000 C CNN
F 4 "680EBK-ND" H 4750 4100 60 0001 C CNN "Digikey#"
1 4750 4100
-1 0 0 1
$EndComp
$Comp
L R R6
U 1 1 57796A6F
P 6300 4100
F 0 "R6" V 6380 4100 50 0000 C CNN
F 1 "3K3" V 6300 4100 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6230 4100 50 0001 C CNN
F 3 "" H 6300 4100 50 0000 C CNN
F 4 "680EBK-ND" H 6300 4100 60 0001 C CNN "Digikey#"
1 6300 4100
-1 0 0 1
$EndComp
$Comp
L R R8
U 1 1 57796AEC
P 7850 4100
F 0 "R8" V 7930 4100 50 0000 C CNN
F 1 "3K3" V 7850 4100 50 0000 C CNN
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7780 4100 50 0001 C CNN
F 3 "" H 7850 4100 50 0000 C CNN
F 4 "680EBK-ND" H 7850 4100 60 0001 C CNN "Digikey#"
1 7850 4100
-1 0 0 1
$EndComp
Text Notes 5400 2050 0 60 ~ 12
BUTTONS\n
Wire Notes Line
8800 1850 2400 1850
Wire Wire Line
4750 3950 4750 3800
$Comp
L VCC #PWR013
U 1 1 5798AF98
P 4750 3800
F 0 "#PWR013" H 4750 3650 50 0001 C CNN
F 1 "VCC" H 4750 3950 50 0000 C CNN
F 2 "" H 4750 3800 50 0000 C CNN
F 3 "" H 4750 3800 50 0000 C CNN
1 4750 3800
1 0 0 -1
$EndComp
$Comp
L VCC #PWR014
U 1 1 5798B8B6
P 3200 3800
F 0 "#PWR014" H 3200 3650 50 0001 C CNN
F 1 "VCC" H 3200 3950 50 0000 C CNN
F 2 "" H 3200 3800 50 0000 C CNN
F 3 "" H 3200 3800 50 0000 C CNN
1 3200 3800
1 0 0 -1
$EndComp
$Comp
L VCC #PWR015
U 1 1 5798B8F1
P 6300 3800
F 0 "#PWR015" H 6300 3650 50 0001 C CNN
F 1 "VCC" H 6300 3950 50 0000 C CNN
F 2 "" H 6300 3800 50 0000 C CNN
F 3 "" H 6300 3800 50 0000 C CNN
1 6300 3800
1 0 0 -1
$EndComp
$Comp
L VCC #PWR016
U 1 1 5798B9EC
P 7850 3800
F 0 "#PWR016" H 7850 3650 50 0001 C CNN
F 1 "VCC" H 7850 3950 50 0000 C CNN
F 2 "" H 7850 3800 50 0000 C CNN
F 3 "" H 7850 3800 50 0000 C CNN
1 7850 3800
1 0 0 -1
$EndComp
$Comp
L VCC #PWR017
U 1 1 5798BB07
P 7800 2450
F 0 "#PWR017" H 7800 2300 50 0001 C CNN
F 1 "VCC" H 7800 2600 50 0000 C CNN
F 2 "" H 7800 2450 50 0000 C CNN
F 3 "" H 7800 2450 50 0000 C CNN
1 7800 2450
1 0 0 -1
$EndComp
$Comp
L VCC #PWR018
U 1 1 5798BB42
P 6250 2450
F 0 "#PWR018" H 6250 2300 50 0001 C CNN
F 1 "VCC" H 6250 2600 50 0000 C CNN
F 2 "" H 6250 2450 50 0000 C CNN
F 3 "" H 6250 2450 50 0000 C CNN
1 6250 2450
1 0 0 -1
$EndComp
$Comp
L VCC #PWR019
U 1 1 5798BB7D
P 4700 2450
F 0 "#PWR019" H 4700 2300 50 0001 C CNN
F 1 "VCC" H 4700 2600 50 0000 C CNN
F 2 "" H 4700 2450 50 0000 C CNN
F 3 "" H 4700 2450 50 0000 C CNN
1 4700 2450
1 0 0 -1
$EndComp
$Comp
L VCC #PWR020
U 1 1 5798BBB8
P 3150 2450
F 0 "#PWR020" H 3150 2300 50 0001 C CNN
F 1 "VCC" H 3150 2600 50 0000 C CNN
F 2 "" H 3150 2450 50 0000 C CNN
F 3 "" H 3150 2450 50 0000 C CNN
1 3150 2450
1 0 0 -1
$EndComp
$EndSCHEMATC

View File

@@ -0,0 +1,195 @@
EESchema Schematic File Version 2
LIBS:simonShield-rescue
LIBS:simonLib
LIBS:74xgxx
LIBS:74xx
LIBS:ac-dc
LIBS:actel
LIBS:adc-dac
LIBS:Altera
LIBS:analog_devices
LIBS:analog_switches
LIBS:atmel
LIBS:audio
LIBS:brooktre
LIBS:cmos4000
LIBS:cmos_ieee
LIBS:conn
LIBS:contrib
LIBS:cypress
LIBS:dc-dc
LIBS:device
LIBS:digital-audio
LIBS:diode
LIBS:display
LIBS:dsp
LIBS:elec-unifil
LIBS:ESD_Protection
LIBS:ftdi
LIBS:gennum
LIBS:graphic
LIBS:hc11
LIBS:intel
LIBS:interface
LIBS:ir
LIBS:Lattice
LIBS:linear
LIBS:logo
LIBS:maxim
LIBS:memory
LIBS:microchip
LIBS:microchip_dspic33dsc
LIBS:microchip_pic10mcu
LIBS:microchip_pic12mcu
LIBS:microchip_pic16mcu
LIBS:microchip_pic18mcu
LIBS:microchip_pic32mcu
LIBS:microcontrollers
LIBS:motor_drivers
LIBS:motorola
LIBS:msp430
LIBS:nordicsemi
LIBS:nxp_armmcu
LIBS:onsemi
LIBS:opto
LIBS:Oscillators
LIBS:philips
LIBS:power
LIBS:powerint
LIBS:Power_Management
LIBS:pspice
LIBS:references
LIBS:regul
LIBS:relays
LIBS:rfcom
LIBS:sensors
LIBS:silabs
LIBS:siliconi
LIBS:stm8
LIBS:stm32
LIBS:supertex
LIBS:switches
LIBS:texas
LIBS:transf
LIBS:transistors
LIBS:ttl_ieee
LIBS:valves
LIBS:video
LIBS:Worldsemi
LIBS:Xicor
LIBS:xilinx
LIBS:Zilog
LIBS:simonShield-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 3 5
Title "Poncho Simon EDU-CIAA"
Date "2016-07-26"
Rev "1.0"
Comp "Proyecto CIAA"
Comment1 "Juan Agustin Bassi"
Comment2 "CESE - Diseño PCB"
Comment3 "Licencia BSD"
Comment4 ""
$EndDescr
$Comp
L BUZZER U1
U 1 1 5777FCBE
P 5600 4150
F 0 "U1" H 5600 4150 60 0000 C CNN
F 1 "BUZZER" H 5600 4150 60 0000 C CNN
F 2 "footprints:MagneticBuzzer_ProSignal_ABT-410-RC" H 5600 4150 60 0001 C CNN
F 3 "" H 5600 4150 60 0000 C CNN
F 4 "445-2525-1-ND" H 5600 4150 60 0001 C CNN "Digikey#"
1 5600 4150
0 1 1 0
$EndComp
$Comp
L BC547 Q1
U 1 1 5777FCC6
P 5500 3350
F 0 "Q1" H 5700 3425 50 0000 L CNN
F 1 "BC547" H 5700 3350 50 0000 L CNN
F 2 "simonShield:TO-92_Molded_Narrow" H 5700 3275 50 0000 L CIN
F 3 "" H 5500 3350 50 0000 L CNN
F 4 "BC33725TACT-ND" H 5500 3350 60 0001 C CNN "Digikey#"
1 5500 3350
1 0 0 -1
$EndComp
$Comp
L R R9
U 1 1 5777FCCD
P 5050 3350
F 0 "R9" V 5130 3350 50 0000 C CNN
F 1 "3K3" V 5050 3350 50 0000 C CNN
F 2 "footprints:Resistor_Horizontal_RM7mm" V 4980 3350 50 0001 C CNN
F 3 "" H 5050 3350 50 0000 C CNN
F 4 "680EBK-ND" H 5050 3350 60 0001 C CNN "Digikey#"
1 5050 3350
0 1 1 0
$EndComp
$Comp
L GND #PWR017
U 1 1 5777FCDA
P 5600 4850
F 0 "#PWR017" H 5600 4600 50 0001 C CNN
F 1 "GND" H 5600 4700 50 0000 C CNN
F 2 "" H 5600 4850 50 0000 C CNN
F 3 "" H 5600 4850 50 0000 C CNN
1 5600 4850
1 0 0 -1
$EndComp
Wire Wire Line
5600 2600 5600 3150
Wire Wire Line
5600 3550 5600 3700
Wire Wire Line
5600 4700 5600 4850
Wire Wire Line
5200 3350 5300 3350
Text HLabel 4700 3050 0 60 Input ~ 0
PWM
Wire Wire Line
4700 3050 4700 3350
Wire Wire Line
4700 3350 4900 3350
$Comp
L R R10
U 1 1 577960FD
P 5600 2450
F 0 "R10" V 5680 2450 50 0000 C CNN
F 1 "1K" H 5600 2450 50 0000 C CNN
F 2 "footprints:Resistor_Horizontal_RM7mm" V 5530 2450 50 0001 C CNN
F 3 "" H 5600 2450 50 0000 C CNN
F 4 "680EBK-ND" H 5600 2450 60 0001 C CNN "Digikey#"
1 5600 2450
1 0 0 -1
$EndComp
Wire Wire Line
5600 2100 5600 2300
Wire Notes Line
3800 1000 3800 5450
Wire Notes Line
3800 5450 7650 5450
Wire Notes Line
7650 5450 7650 1000
Wire Notes Line
7650 1350 3800 1350
Wire Notes Line
7650 1000 3800 1000
Text Notes 5350 1250 0 60 ~ 12
BUZZER CIRCUIT
$Comp
L VDD-RESCUE-simonShield #PWR018
U 1 1 5777FCD4
P 5600 2100
F 0 "#PWR018" H 5600 1950 50 0001 C CNN
F 1 "VDD" H 5600 2250 50 0000 C CNN
F 2 "" H 5600 2100 50 0000 C CNN
F 3 "" H 5600 2100 50 0000 C CNN
1 5600 2100
1 0 0 -1
$EndComp
$EndSCHEMATC

View File

@@ -0,0 +1,260 @@
EESchema Schematic File Version 2
LIBS:simonLib
LIBS:power
LIBS:simonShield-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 4 4
Title "Poncho Simon EDU-CIAA"
Date "2016-07-26"
Rev "1.0"
Comp "Proyecto CIAA"
Comment1 "Juan Agustin Bassi"
Comment2 "CESE - Diseño PCB"
Comment3 "Licencia BSD"
Comment4 ""
$EndDescr
$Comp
L GND #PWR029
U 1 1 57781CE9
P 3200 3000
F 0 "#PWR029" H 3200 2750 50 0001 C CNN
F 1 "GND" H 3200 2850 50 0000 C CNN
F 2 "" H 3200 3000 50 0000 C CNN
F 3 "" H 3200 3000 50 0000 C CNN
1 3200 3000
1 0 0 -1
$EndComp
$Comp
L Conn_Poncho2P_2x_20x2 XA?
U 2 1 57781CEF
P 3900 3050
AR Path="/57781CEF" Ref="XA?" Part="2"
AR Path="/57781B52/57781CEF" Ref="XA1" Part="2"
F 0 "XA1" H 4200 3450 60 0000 C CNN
F 1 "Conn_Poncho2P_2x_20x2" H 4250 1350 60 0000 C CNN
F 2 "simonShield:Conn_Poncho_SinBorde" H 3900 3050 60 0001 C CNN
F 3 "" H 3900 3050 60 0000 C CNN
F 4 "952-2121-ND" H 3900 3050 60 0001 C CNN "Digikey#"
2 3900 3050
1 0 0 -1
$EndComp
$Comp
L PWR_JUMPER P1
U 1 1 57781CF6
P 4250 2250
F 0 "P1" H 4250 2400 50 0000 C CNN
F 1 "PWR_JUMPER" H 4250 2100 50 0000 C CNN
F 2 "simonShield:Pin_Header_Straight_2x02" H 4250 1050 50 0001 C CNN
F 3 "" H 4250 1050 50 0000 C CNN
F 4 "952-2121-ND" H 4250 2250 60 0001 C CNN "Digikey#"
1 4250 2250
1 0 0 -1
$EndComp
NoConn ~ 4850 2850
NoConn ~ 4850 2950
NoConn ~ 4850 3050
NoConn ~ 4850 3150
NoConn ~ 4850 3250
NoConn ~ 4850 3350
NoConn ~ 4850 3450
NoConn ~ 3650 4050
NoConn ~ 3650 3950
NoConn ~ 3650 3850
NoConn ~ 3650 3750
NoConn ~ 3650 3650
NoConn ~ 3650 3550
NoConn ~ 3650 3450
NoConn ~ 3650 3350
NoConn ~ 3650 3250
NoConn ~ 3650 3050
NoConn ~ 3650 2950
Text HLabel 4850 3750 2 60 Input ~ 0
BTN_CFG_1
Text HLabel 4850 3850 2 60 Input ~ 0
BTN_CFG_2
Text HLabel 4850 4450 2 60 Input ~ 0
BTN_CFG_3
Text HLabel 4850 4650 2 60 Input ~ 0
BTN_CFG_4
Text HLabel 3650 4350 0 60 Input ~ 0
LED_4
Text HLabel 4850 4350 2 60 Input ~ 0
LED_3
Text HLabel 4850 4050 2 60 Input ~ 0
LED_2
Text HLabel 4850 3550 2 60 Input ~ 0
LED_1
Text HLabel 3650 4450 0 60 Input ~ 0
BTN_LED_4
Text HLabel 4850 4550 2 60 Input ~ 0
BTN_LED_3
Text HLabel 4850 3950 2 60 Input ~ 0
BTN_LED_2
Text HLabel 4850 3650 2 60 Input ~ 0
BTN_LED_1
Text HLabel 3650 3150 0 60 Input ~ 0
PWM
$Comp
L Conn_Poncho2P_2x_20x2 XA1
U 1 1 577946F6
P 7400 3000
F 0 "XA1" H 7700 3400 60 0000 C CNN
F 1 "Conn_Poncho2P_2x_20x2" H 7750 1300 60 0000 C CNN
F 2 "simonShield:Conn_Poncho_SinBorde" H 7400 3000 60 0001 C CNN
F 3 "" H 7400 3000 60 0000 C CNN
F 4 "952-2121-ND" H 7400 3000 60 0001 C CNN "Digikey#"
1 7400 3000
1 0 0 -1
$EndComp
NoConn ~ 7150 2700
NoConn ~ 7150 2800
NoConn ~ 7150 2900
NoConn ~ 7150 3000
NoConn ~ 7150 3100
NoConn ~ 7150 3200
NoConn ~ 7150 3300
NoConn ~ 7150 3400
NoConn ~ 7150 3500
NoConn ~ 7150 3600
NoConn ~ 7150 3700
NoConn ~ 7150 3800
NoConn ~ 7150 3900
NoConn ~ 7150 4000
NoConn ~ 7150 4100
NoConn ~ 7150 4200
NoConn ~ 7150 4300
NoConn ~ 7150 4400
NoConn ~ 7150 4500
NoConn ~ 7150 4600
NoConn ~ 8350 4600
NoConn ~ 8350 4500
NoConn ~ 8350 4400
NoConn ~ 8350 4300
NoConn ~ 8350 4200
NoConn ~ 8350 4100
NoConn ~ 8350 4000
NoConn ~ 8350 3900
NoConn ~ 8350 3800
NoConn ~ 8350 3700
NoConn ~ 8350 3600
NoConn ~ 8350 3500
NoConn ~ 8350 3400
NoConn ~ 8350 3300
NoConn ~ 8350 3200
NoConn ~ 8350 3100
NoConn ~ 8350 3000
NoConn ~ 8350 2900
NoConn ~ 8350 2800
NoConn ~ 8350 2700
Text Notes 5450 1150 0 60 ~ 12
EDU-CIAA NXP CONNECTORS
Text Notes 4100 1300 0 60 ~ 12
P2
Text Notes 7700 1300 0 60 ~ 12
P1
$Comp
L GND #PWR030
U 1 1 578F601E
P 3400 4750
F 0 "#PWR030" H 3400 4500 50 0001 C CNN
F 1 "GND" H 3400 4600 50 0000 C CNN
F 2 "" H 3400 4750 50 0000 C CNN
F 3 "" H 3400 4750 50 0000 C CNN
1 3400 4750
1 0 0 -1
$EndComp
$Comp
L GND #PWR031
U 1 1 57781D17
P 5150 2900
F 0 "#PWR031" H 5150 2650 50 0001 C CNN
F 1 "GND" H 5150 2750 50 0000 C CNN
F 2 "" H 5150 2900 50 0000 C CNN
F 3 "" H 5150 2900 50 0000 C CNN
1 5150 2900
1 0 0 -1
$EndComp
$Comp
L C_100nF C1
U 1 1 57781D10
P 5150 2550
F 0 "C1" H 5150 2650 40 0000 L CNN
F 1 "C_100nF" H 5156 2465 40 0000 L CNN
F 2 "simonShield:C_Disc_D3_P2.5" H 5188 2400 30 0001 C CNN
F 3 "" H 5150 2550 60 0000 C CNN
F 4 "BC1160TR­ND" H 5150 2550 60 0001 C CNN "Digikey#"
1 5150 2550
1 0 0 -1
$EndComp
$Comp
L VCC #PWR032
U 1 1 5798B140
P 4800 2050
F 0 "#PWR032" H 4800 1900 50 0001 C CNN
F 1 "VCC" H 4800 2200 50 0000 C CNN
F 2 "" H 4800 2050 50 0000 C CNN
F 3 "" H 4800 2050 50 0000 C CNN
1 4800 2050
1 0 0 -1
$EndComp
Wire Wire Line
4850 2750 4900 2750
Wire Wire Line
4900 2750 4900 2500
Wire Wire Line
4900 2500 3800 2500
Wire Wire Line
3800 2500 3800 2300
Wire Wire Line
3800 2300 4000 2300
Wire Wire Line
3650 2750 3600 2750
Wire Wire Line
3600 2750 3600 2200
Wire Wire Line
3600 2200 4000 2200
Wire Wire Line
3200 2850 3200 3000
Wire Wire Line
3650 2850 3200 2850
Wire Notes Line
1950 1050 1950 5450
Wire Notes Line
1950 5450 9850 5450
Wire Notes Line
9850 5450 9850 1050
Wire Notes Line
9850 1050 1950 1050
Wire Notes Line
1950 1200 9850 1200
Wire Notes Line
9850 1350 1950 1350
Wire Notes Line
6050 1200 6050 5450
Wire Wire Line
3650 4650 3400 4650
Wire Wire Line
3400 4550 3400 4750
Wire Wire Line
3650 4550 3400 4550
Connection ~ 3400 4650
Wire Wire Line
5150 2750 5150 2900
Wire Wire Line
4500 2200 4800 2200
Wire Wire Line
4800 2300 4800 2050
Wire Wire Line
4500 2300 5150 2300
Connection ~ 4800 2200
Wire Wire Line
5150 2300 5150 2350
Connection ~ 4800 2300
NoConn ~ 3650 4250
NoConn ~ 3650 4150
NoConn ~ 4850 4150
NoConn ~ 4850 4250
$EndSCHEMATC

View File

@@ -0,0 +1,137 @@
v 20080706 2
T 10000 20000 9 10 1 0 0 0 1
_0_0_ 0.sym
T 10000 19800 9 10 1 0 0 0 1
_1_1_ 1.sym
T 10000 19600 9 10 1 0 0 0 1
_2_2_ 2.sym
T 10000 19400 9 10 1 0 0 0 1
_3_3_ 3.sym
T 10000 19200 9 10 1 0 0 0 1
_4_4_ 4.sym
T 10000 19000 9 10 1 0 0 0 1
_5_5_ 5.sym
T 10000 18800 9 10 1 0 0 0 1
_6_6_ 6.sym
T 10000 18600 9 10 1 0 0 0 1
_7_7_ 7.sym
T 10000 18400 9 10 1 0 0 0 1
_8_8_ 8.sym
T 10000 18200 9 10 1 0 0 0 1
_9_9_ 9.sym
T 18000 17200 9 10 1 0 0 0 1
_q_q_ q_.sym
v 20130925 2
C 40000 40000 0 0 0 title-B.sym
N 43500 47000 44200 47000 4
N 44200 47000 44200 49400 4
N 44200 49400 41800 49400 4
N 41800 47300 41800 49400 4
N 41800 47300 41500 47300 4
N 41500 47300 41500 45600 4
N 41500 45600 41600 45600 4
N 41600 45600 41600 44600 4
N 41100 44600 41600 44600 4
N 41100 44600 41100 42900 4
N 41100 42900 42400 42900 4
N 42400 42900 42400 43600 4
N 42400 43600 41000 43600 4
N 41000 43600 41000 41300 4
U 45300 49600 45300 43900 10 0
U 45300 43900 53800 43900 10 0
U 53800 43900 53800 45900 10 0
U 53800 45900 53100 45900 10 0
U 53100 45900 53100 47300 10 0
U 53100 47300 50500 47300 10 0
V 48500 47400 900 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
P 47300 49100 50100 49100 1 0 0
{
T 47300 49100 5 10 0 0 0 0 1
pintype=unknown
T 50155 49095 5 10 1 1 0 0 1
pinlabel=unknown
T 50005 49145 5 10 1 1 0 6 1
pinnumber=0
T 47300 49100 5 10 0 0 0 0 1
pinseq=0
}
P 51800 50000 51800 48500 1 0 0
{
T 51800 50000 5 10 0 0 0 0 1
pintype=unknown
T 51800 48445 5 10 1 1 90 6 1
pinlabel=unknown
T 51750 48595 5 10 1 1 90 0 1
pinnumber=0
T 51800 50000 5 10 0 0 0 0 1
pinseq=0
}
P 54500 48500 54500 47900 1 0 0
{
T 54500 48500 5 10 0 0 0 0 1
pintype=unknown
T 54500 47845 5 10 1 1 90 6 1
pinlabel=unknown
T 54450 47995 5 10 1 1 90 0 1
pinnumber=0
T 54500 48500 5 10 0 0 0 0 1
pinseq=0
}
C 46700 49800 1 0 0 af_output_transformer-1.sym
{
T 48000 52200 5 10 0 0 0 0 1
device=AF_OUTPUT_TRANSFORMER
T 48000 51900 5 10 1 1 0 0 1
refdes=U?
}
C 42900 41300 1 0 0 af_output_transformer-1.sym
{
T 44200 43700 5 10 0 0 0 0 1
device=AF_OUTPUT_TRANSFORMER
T 44200 43400 5 10 1 1 0 0 1
refdes=U?
}
T 48100 42000 9 10 1 0 0 0 1
NFI_LOL
C 42200 44500 1 0 0 ssrelay-spdt-lcc110-1.sym
{
T 42500 47100 5 10 0 0 0 0 1
device=LCC110
T 42500 46700 5 10 0 0 0 0 1
symversion=0.1
T 42500 46250 5 10 1 1 0 0 1
refdes=U?
T 42500 46900 5 10 0 0 0 0 1
footprint=DIP8
}
U 53200 50000 53200 47900 10 0
U 53200 47900 53700 47900 10 0
U 53700 47900 53700 46500 10 0
U 53700 46500 54200 46500 10 0
U 54200 46500 54200 43800 10 0
U 54200 43800 45500 43800 10 0
U 45500 43800 45500 42600 10 0
U 45500 42600 49200 42600 10 0
U 49200 42600 49200 41500 10 0
U 49200 41500 47700 41500 10 0
U 47700 41500 47700 42200 10 0
U 47700 42200 45300 42200 10 0
U 45300 42200 45300 40500 10 0
U 45300 40500 40900 40500 10 0
U 40900 40500 40900 41000 10 0
U 40900 41000 40500 41000 10 0
U 40500 41000 40500 50300 10 0
U 40500 50300 45800 50300 10 0
U 45800 50300 45800 49700 10 0
U 45800 49700 45300 49700 10 0
U 45300 49700 45300 48100 10 0
U 45300 48100 43600 48100 10 0
C 42500 47400 1 0 0 switch-dip12.sym
{
T 42800 51700 5 10 1 1 0 0 1
footprint=SWITCH_DIP12
T 42800 51975 5 8 0 0 0 0 1
device=SWITCH_DIP12
T 42800 51350 5 10 1 1 0 0 1
refdes=S?
}

View File

@@ -0,0 +1,176 @@
-------------------------------------------------------------------------------
--
-- File: rolloutCreator.ms
-- Description: Localization friendly helper struct for dynamically creating rollouts
-- By: Ravi Karra [Discreet] ravi.karra@discreet.com
--
-- Version: 1.01
-- Version: 1.02 - Larry Minton [Discreet]
-- changed <string1> += <string2> to append string1 string2
-- added addText method
-- Declarations:
/*
rolloutCreator <rollout_name> <rollout_caption> [width:] [height:]
creates an instance of rolloutCreator, assign it to a variable
width - width of the rollout/dialog to be created
height - of the rollout/dialog to be created
eg:
rci = rolloutCreator "myRollout" "My Rollout"
.begin()
this function needs to be called immediately after the instance is created, this does the initialization
.addLocal <local_name> [init:]
<local_name>
name of the local
[init:]
what the local should be initialized to
.addControl <control_type> <control_name> <control_caption> [paramStr:<string>] =
adds a control to the rollout
<control_type>
can be any of named rolloutControls eg: #button, #spinner, #activeXControl etc
<control_name>
variable name of the control by which it is referred eg: #btnButton
<control_caption>
caption of the control "My Button"
[paramStr:]
an optional string representation of all the keyword parameters that needs to be passed to the control
eg: "width:100 height:20 align:#right"
eg:
rci.addControl #button #myButton "My Button"
.addHandler <control_name> <event_type> [paramStr:<string>] [codeStr:<string>] [filter:<boolean>]
adds an event handler for the controls previously added
<control_name>
the variable passed during the control creation
<event_type>
any of the events supported by the control, eg: #changed, #pressed, #selected
[paramStr:<string>]
an optional string representation of all the positional and keyword parameters that are passed to the event
[codeStr:<string>]
a string representation of the event handler code, if the string contains sub-strings, enclose them in two character '@'
and pass on\true for the filter: parameter
[filter:<boolean>]
if true, converts '@' to quote in codeStr
eg:
rci.addHandler #myButton #pressed codeStr:"MessageBox @Hey@" filter:on
will add an event handler for button named "myButton". When the button is clicked, messagebox pops up with text "hey" in it.
.addText <string> [filter:<boolean>]
adds string to rollout definition. Typically used for function definitions.
[filter:<boolean>]
if true, converts '@' to quote in string
.end()
this function has to be called whenever all the required control and their event handler's are called. This function forms
the rollout string, evaluates it and returns the definition which can passed to createDialog and addRollout functions.
Complete Example:
rci = rolloutCreator "myRollout" "My Rollout"
rci.begin()
rci.addControl #button #myButton "My Button"
rci.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Isn't this cool@ title:@Wow@"
createDialog (rci.end())
*/
-------------------------------------------------------------------------------
if __rcCounter == undefined then global __rcCounter = 0
struct rolloutCreator
(
-- variables
name, caption, str, def, width, height, quote="\"",
-- functions
fn begin =
(
if name == undefined then
(
__rcCounter += 1
name = "rolloutCreator" + __rcCounter as string
)
if caption == undefined then caption = ""
str = ""
),
fn addLocal name init: =
(
local dStr = "\tlocal " + name as string
if init != unsupplied then append dStr (" = " + init as string)
append dStr "\n"
append str dStr
),
fn addControl type name caption paramStr:"" =
(
append str ("\t" + type as string + " " + name as string + " " + quote + caption + quote + paramStr + "\n")
),
fn strFilter codeStr =
(
local last_is_at = codeStr[codeStr.count] == "@"
local fltStr = filterString codeStr "@"
local rep = "\""
codeStr = (if (codeStr[1] == "@") then rep else "") + fltStr[1]
for i=2 to fltStr.count do
(
append codeStr (rep + fltStr[i])
)
if last_is_at then append codeStr rep
codeStr
),
fn addHandler ctrl event paramStr:"" filter:on codeStr:"" =
(
if filter do codeStr = (strFilter codeStr)
append str ("\non " + ctrl as string + " " + event as string + " " + paramStr as string + " do \n(\n" + codeStr + ";ok\n)\n")
),
fn addText txt filter:on =
(
if filter do txt = (strFilter txt )
append str ("\t " + txt + "\n")
),
fn end =
(
local dStr = "rollout " + name + " " + quote + caption + quote
if width != undefined then
append dStr (" width:" + width as string)
if height != undefined then
append dStr (" height:" + height as string)
append dStr "\n(\n"
append dStr str
append dStr "\n)\n"
str = dStr
def = execute str
)
)
/*-- Usage
-- Create an instance of the rolloutCreator passing the name and the caption
rfTest = rolloutCreator "rfTestN" "rfTestC" --width:300 height:100
-- Start creating the rollout
rfTest.begin()
rfTest.addControl #button #myButton "My Button" -- add a button
-- rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Hey@"
rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Look to the \@Light\@ thing@"
rfTest.end()
createDialog rfTest.def
*/

View File

@@ -0,0 +1,248 @@
#
# The FreeType Project LICENSE
# ----------------------------
#
# Copyright 1996-1999 by
# David Turner, Robert Wilhelm, and Werner Lemberg
#
#
#
# Introduction
# ============
#
# The FreeType Project is distributed in several archive packages;
# some of them may contain, in addition to the FreeType font engine,
# various tools and contributions which rely on, or relate to, the
# FreeType Project.
#
# This license applies to all files found in such packages, and
# which do not fall under their own explicit license. The license
# affects thus the FreeType font engine, the test programs,
# documentation and makefiles, at the very least.
#
# This license was inspired by the BSD, Artistic, and IJG
# (Independent JPEG Group) licenses, which all encourage inclusion
# and use of free software in commercial and freeware products
# alike. As a consequence, its main points are that:
#
# o We don't promise that this software works. However, we are be
# interested in any kind of bug reports. (`as is' distribution)
#
# o You can use this software for whatever you want, in parts or
# full form, without having to pay us. (`royalty-free' usage)
#
# o You may not pretend that you wrote this software. If you use
# it, or only parts of it, in a program, you must acknowledge
# somewhere in your documentation that you've used the FreeType
# code. (`credits')
#
# We specifically permit and encourage the inclusion of this
# software, with or without modifications, in commercial products,
# provided that all warranty or liability claims are assumed by the
# product vendor.
#
#
# Legal Terms
# ===========
#
# 0. Definitions
# --------------
#
# Throughout this license, the terms `package', `FreeType Project',
# and `FreeType archive' refer to the set of files originally
# distributed by the authors (David Turner, Robert Wilhelm, and
# Werner Lemberg) as the `FreeType project', be they named as alpha,
# beta or final release.
#
# `You' refers to the licensee, or person using the project, where
# `using' is a generic term including compiling the project's source
# code as well as linking it to form a `program' or `executable'.
# This program is referred to as `a program using the FreeType
# engine'.
#
# This license applies to all files distributed in the original
# FreeType archive, including all source code, binaries and
# documentation, unless otherwise stated in the file in its
# original, unmodified form as distributed in the original archive.
# If you are unsure whether or not a particular file is covered by
# this license, you must contact us to verify this.
#
# The FreeType project is copyright (C) 1996-1999 by David Turner,
# Robert Wilhelm, and Werner Lemberg. All rights reserved except as
# specified below.
#
# 1. No Warranty
# --------------
#
# THE FREETYPE ARCHIVE IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
# USE, OF THE FREETYPE PROJECT.
#
# As you have not signed this license, you are not required to
# accept it. However, as the FreeType project is copyrighted
# material, only this license, or another one contracted with the
# authors, grants you the right to use, distribute, and modify it.
# Therefore, by using, distributing, or modifying the FreeType
# project, you indicate that you understand and accept all the terms
# of this license.
#
# 2. Redistribution
# -----------------
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# o Redistribution of source code must retain this license file
# (`licence.txt') unaltered; any additions, deletions or changes
# to the original files must be clearly indicated in
# accompanying documentation. The copyright notices of the
# unaltered, original files must be preserved in all copies of
# source files.
#
# o Redistribution in binary form must provide a disclaimer that
# states that the software is based in part of the work of the
# FreeType Team, in the distribution documentation. We also
# encourage you to put an URL to the FreeType web page in your
# documentation, though this isn't mandatory.
#
# These conditions apply to any software derived from or based on
# the FreeType code, not just the unmodified files. If you use our
# work, you must acknowledge us. However, no fee need be paid to
# us.
#
# 3. Advertising
# --------------
#
# The names of FreeType's authors and contributors may not be used
# to endorse or promote products derived from this software without
# specific prior written permission.
#
# We suggest, but do not require, that you use one or more of the
# following phrases to refer to this software in your documentation
# or advertising materials: `FreeType Project', `FreeType Engine',
# `FreeType library', or `FreeType Distribution'.
#
# 4. Contacts
# -----------
#
# There are two mailing lists related to FreeType:
#
# o freetype@freetype.org
#
# Discusses general use and applications of FreeType, as well as
# future and wanted additions to the library and distribution.
# If you are looking for support, start in this list if you
# haven't found anything to help you in the documentation.
#
# o devel@freetype.org
#
# Discusses bugs, as well as engine internals, design issues,
# specific licenses, porting, etc.
#
# o http://www.freetype.org
#
# Holds the current FreeType web page, which will allow you to
# download our latest development version and read online
# documentation.
#
# You can also contact us individually at:
#
# David Turner <david.turner@freetype.org>
# Robert Wilhelm <robert.wilhelm@freetype.org>
# Werner Lemberg <werner.lemberg@freetype.org>
#
#
# --- end of license ---
#
# This file is part of the FreeType project.
#
# This builds the Watcom library with Watcom's wcc386 under OS/2.
#
# You'll need Watcom's wmake.
#
#
# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory
#
# This will build "freetype\lib\libttf.lib"
ARCH = arch\os2
FT_MAKEFILE = $(ARCH)\Makefile.wat
FT_MAKE = wmake -h
.EXTENSIONS:
.EXTENSIONS: .lib .obj .c .h
.obj:.;.\extend;.\$(ARCH)
.c:.;.\extend;.\$(ARCH)
.h:.;.\extend;.\$(ARCH)
CC = wcc386
CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend
TTFILE = .\ttfile.c
TTMEMORY = .\ttmemory.c
TTMUTEX = .\ttmutex.c
TTFILE_OBJ = ttfile.obj
TTMEMORY_OBJ = ttmemory.obj
TTMUTEX_OBJ = ttmutex.obj
PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX)
PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ)
SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c &
extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c &
extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c &
extend\ftxgdef.c
OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj &
extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj &
extend\ftxgsub.obj extend\ftxgpos.obj extend\ftxopen.obj &
extend\ftxgdef.obj
SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c &
ttgload.c ttinterp.c ttload.c ttobjs.c &
ttraster.c ttextend.c $(PORT)
OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj &
ttgload.obj ttinterp.obj ttload.obj ttobjs.obj &
ttraster.obj ttextend.obj $(PORT_OBJS) $(OBJS_X)
SRC_S = freetype.c
OBJ_S = freetype.obj
OBJS_S = $(OBJ_S) $(OBJS_X)
.c.obj:
$(CC) $(CCFLAGS) $[* /fo=$[*.obj
all: .symbolic
$(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib
debug: .symbolic
$(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib
libttf.lib: $(OBJS_M)
wlib -q -n libttf.lib $(OBJS_M)
# is this correct? Know nothing about wmake and the Watcom compiler...
$(OBJ_S): $(SRC_S) $(SRC_M)
$(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S)
clean: .symbolic
@-erase $(OBJS_M)
@-erase *.err
distclean: .symbolic clean
@-erase libttf.lib
new: .symbolic
@-wtouch *.c
# end of Makefile.wat

59
samples/Pan/ceph-raid.pan Normal file
View File

@@ -0,0 +1,59 @@
unique template site/filesystems/ceph-raid;
prefix '/system/blockdevices';
variable CEPH_OSD_DISKS = {
# SAS disks partitions
disks = list();
foreach (disk; data; value('/hardware/harddisks')) {
if (data['capacity'] > 1000 * GB) {
append(disks, disk);
};
};
disks;
};
'partitions' = {
foreach (idx; disk; CEPH_OSD_DISKS) {
partitions_add(
disk, dict(
format('%s1', disk), 10 * GB,
format('%s2', disk), 5 * GB,
format('%s3', disk), -1));
SELF[format('%s1', disk)]['offset'] = 1;
};
SELF;
};
#raid for data
'md' = {
for (i = 0; i < length(CEPH_OSD_DISKS); i = i + 2) {
for (j = 2; j <= 3; j = j + 1) {
SELF[escape(format('md/%s0%s%d', CEPH_OSD_DISKS[i], CEPH_OSD_DISKS[i+1], j ))] = dict(
"device_list", list(format('partitions/%s%d', CEPH_OSD_DISKS[i], j), format('partitions/%s%d', CEPH_OSD_DISKS[i+1], j)),
"raid_level", 'RAID0',
"metadata", '1.2',
);
};
};
SELF;
};
# ceph OSD and journal fs
'/system/filesystems' = {
# ga over software raids..
foreach (disk; data; value('/system/blockdevices/md')) { #check for data part/disk
if (match(unescape(disk), '^md/.+0.+3$')) {
append(merge(CEPH_FSOPTS_BASE, CEPH_DISK_OPTIONS[CEPH_FS], dict(
'mountpoint', format('/var/lib/ceph/osd/%s', replace('md/([a-z0A-Z]+)[0-9]*$', '$1', unescape(disk))),
'block_device', format('md/%s', disk),
)));
} else if (match(unescape(disk), '^md/.+0.+2$')) {
append(merge(CEPH_FSOPTS_DUMMY, dict(
'mountpoint', format('/dummy/%s', unescape(disk)),
'block_device', format('md/%s', disk)
)));
};
};
SELF;
};

11
samples/Pan/cluster-A.pan Normal file
View File

@@ -0,0 +1,11 @@
structure template site/nagios/hosts/cluster-A;
# let Nagios server A monitor B
# just an example to make the templates compile
"nagios-slave-B.example.org" = create (NAGIOS_QUATTOR_HOST);
"nagios-slave-B.example.org/alias" = "slave B";
"nagios-slave-B.example.org/hostgroups" = list( "quattor-nodes" );
# "another-host-in-A.example.org" = create (NAGIOS_QUATTOR_HOST);
# "another-host-in-A.example.org/alias" = "another monitored host in cluster A";

18
samples/Pan/databases.pan Normal file
View File

@@ -0,0 +1,18 @@
template site/databases;
# Defines the mapping between the full hostname and the IP
# address.
final variable DB_IP = dict(
escape("one"), "192.168.0.24",
escape("hyp01"), "192.168.0.25",
escape("vm"), "192.168.0.26",
);
# Defines the mapping between the full hostname and the
# physical machine.
# A different hardware template must be used for each machine
final variable DB_MACHINE = dict(
escape("one"), "hardware/machine/ibm/x3550/x_KDXXXX",
escape("hyp01"), "hardware/machine/ibm/hs21xm/blade_99HXXXX",
escape("vm"), "hardware/machine/one/example",
);

56
samples/Pan/functions.pan Normal file
View File

@@ -0,0 +1,56 @@
################################################################################
# This is 'namespaces/standard/pan/functions.tpl', a pan-templates's file
################################################################################
#
# VERSION: 3.2.7, 21/08/09 22:22
# AUTHOR: Martin Bock
# MAINTAINER: Example Maintainer <support@example.org>
# LICENSE: http://cern.ch/eu-datagrid/license.html
#
################################################################################
# Coding style: emulate <TAB> characters with 4 spaces, thanks!
################################################################################
#
# Function definitions
#
################################################################################
declaration template pan/functions;
include 'pan/types';
############################################################
##=
## @function push
## @# push zero or more values onto the end of a list.
##+If the list does not exist or is not defined a new list is
##+created.
## @syntax value:element
## @param:value... the values to push onto list
## @example
##+# "/data" will contain list (1,2,3,4)
##+"/data" = list(1,2);
##+"/data" = push(3,4);
##=
############################################################
function push = {
# Get the reference to SELF or create an empty list
# as necessary.
if (exists(SELF) && is_list(SELF)) {
v = SELF;
} else if (!exists(SELF) || !is_defined(SELF)) {
v = list();
} else {
error("push can only be applied to a list");
};
# Merge the arguments into the given array. Neither the
# first/next or merge functions can be used because the
# ARGV array cannot be directly referenced.
i = 0;
while (i < ARGC) {
v[length(v)] = ARGV[i];
i = i + 1;
};
v;
};

View File

@@ -0,0 +1,22 @@
unique template site/ceph/server/infernalis;
include 'components/dirperm/config';
"/software/components/dirperm/paths" = {
foreach (idx; mp; value('/system/filesystems')) {
if (match(mp['mountpoint'], format('^%s', CEPH_OSD_MP_BASE))) {
append(SELF, dict(
"path", mp['mountpoint'],
"owner", "ceph:ceph",
"perm", "0755",
"type", "d",
));
};
};
SELF;
};
include 'common/sysctl/service';
prefix "/software/components/metaconfig/services/{/etc/sysctl.conf}/contents";
'kernel.pid_max' = 4194303;

20
samples/Pan/libvirt.pan Normal file
View File

@@ -0,0 +1,20 @@
unique template site/ceph/client/libvirt;
include 'site/ceph/client/config';
variable CEPH_LIBVIRT_USER ?= 'oneadmin';
variable CEPH_LIBVIRT_GROUP ?= CEPH_LIBVIRT_USER;
prefix '/software/components/metaconfig/services/{/etc/ceph/ceph.client.libvirt.keyring}';
"contents" = if (is_defined(CEPH_LIBVIRT_SECRET)) {
dict("client.libvirt", dict(
"key", CEPH_LIBVIRT_SECRET,
)
);
} else {
dict();
};
'module' = 'tiny';
'mode' = 0600;
'owner' = CEPH_LIBVIRT_USER;
'group' = CEPH_LIBVIRT_GROUP;

19
samples/Pan/link.pan Normal file
View File

@@ -0,0 +1,19 @@
unique template site/dcache/link;
include 'components/dcache/config';
## links
## default preference value
"/software/components/dcache/link/def_pref" = "10";
## list of links that will be ignored during configuration
"/software/components/dcache/link/ignore_link" = list();
##
"/software/components/dcache/link/links" = dict(
## out_buf_write: all outside to write to the storage through this buffer
"out", dict("ugroup", list("all_net", "any_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
"in", dict("ugroup", list("in_net", "any_store"), "pgroup", list("priv"), "read", "20", "write", "20", "cache", "20"),
"dteam", dict("ugroup", list("dteam_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
"ops", dict("ugroup", list("ops_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
"cms", dict("ugroup", list("cms_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
"test", dict("ugroup", list("test_store"), "pgroup", list("behar_test"), "read", "10", "write", "10", "cache", "10"),
);

29
samples/Pan/mysql.pan Normal file
View File

@@ -0,0 +1,29 @@
unique template common/opennebula/mysql;
prefix "/software/packages";
"{mysql-server}" = dict();
include 'components/mysql/config';
prefix "/software/components/mysql";
"serviceName" = {
if (RPM_BASE_FLAVOUR_VERSIONID == 7) {
"mariadb";
} else {
"mysqld";
};
};
prefix "/software/components/mysql/servers/one";
"host" = FULL_HOSTNAME; # localhost is added by component
"adminpwd" = OPENNEBULA_MYSQL_ADMIN;
"adminuser" = "root";
prefix "/software/components/mysql/databases/opennebula";
"server" = "one";
"users/oneadmin/password" = OPENNEBULA_MYSQL_ONEADMIN;
"users/oneadmin/rights" = list("ALL PRIVILEGES");
"createDb" = false; # if false, run script
"initScript/file" = "/dev/null";
prefix "/software/components/chkconfig/service";
"mysqld" = dict("on", "", "startstop", true);

View File

@@ -0,0 +1,18 @@
template config/nodes_properties;
variable SITES ?= list('example');
#variable NEW_NODES_PROPS ?= {
variable NODES_PROPS = {
nodes_add = dict();
nodes_props = dict();
allsites = SITES;
ok = first(allsites, k, v);
while (ok) {
nodes_add = merge(create(format("config/%s_nodes_properties", v)), nodes_props);
nodes_props = merge(nodes_add[v], nodes_props);
ok = next(allsites, k, v);
};
nodes_props;
};

14
samples/Pan/onevm.pan Normal file
View File

@@ -0,0 +1,14 @@
unique template site/one/onevm;
include 'components/chkconfig/config';
# set opennebula map
include 'quattor/aii/opennebula/schema';
bind "/system/opennebula" = opennebula_vmtemplate;
include 'site/config-vm';
include 'quattor/aii/opennebula/default';
"/software/packages/{acpid}" = dict();
"/software/components/chkconfig/service/acpid" = dict('on', '', 'startstop', true);

26
samples/Pan/osd-fetch.pan Normal file
View File

@@ -0,0 +1,26 @@
unique template site/ceph/osdschemas/osd-fetch;
prefix '/software/components/ceph/clusters/ceph';
variable FETCHED_OSDS = {
t = dict();
rep = 2;
foreach(idx; host; CEPH_NODES) {
prof = replace('.data$', '.os', host);
d = value(format('%s:/software/components/ceph/localdaemons/osds', prof));
t[shorten_fqdn(host)] = dict(
'fqdn', host,
'osds', d
);
numosd = length(d);
if (numosd > rep){
rep = numosd;
};
};
all = dict('osdhosts', t, 'maxosd', rep);
};
'osdhosts' = FETCHED_OSDS['osdhosts'];
variable CEPH_OSD_DOWN_REPORTERS ?= FETCHED_OSDS['maxosd'] + 2;
variable CEPH_OSD_DOWN_REPORTS ?= CEPH_OSD_DOWN_REPORTERS + CEPH_OSD_DOWN_REPORTERS / 4 + 1;

45
samples/Pan/pakiti.pan Normal file
View File

@@ -0,0 +1,45 @@
#
# Generated by RepositoryTask on 12/09/13 15:41
#
# name = pakiti
# owner = support@example.org
# url = http://quattor.web.lal.in2p3.fr/packages/pakiti
#
structure template repository/pakiti;
"name" = "pakiti";
"owner" = "support@example.org";
"protocols" = list(
dict("name", "http",
"url", "http://quattor.web.lal.in2p3.fr/packages/pakiti")
);
"contents" = dict(
# pkg = pakiti-client-2.1.4-1-noarch
escape("pakiti-client-2.1.4-1-noarch"), dict("name", "pakiti-client", "version", "2.1.4-1", "arch", "noarch"),
# pkg = pakiti-client-2.1.4-2-noarch
escape("pakiti-client-2.1.4-2-noarch"), dict("name", "pakiti-client", "version", "2.1.4-2", "arch", "noarch"),
# pkg = pakiti-client-2.1.4-3-noarch
escape("pakiti-client-2.1.4-3-noarch"), dict("name", "pakiti-client", "version", "2.1.4-3", "arch", "noarch"),
# pkg = pakiti-client-2.1.4-4-noarch
escape("pakiti-client-2.1.4-4-noarch"), dict("name", "pakiti-client", "version", "2.1.4-4", "arch", "noarch"),
# pkg = pakiti-client-2.1.5-0-noarch
escape("pakiti-client-2.1.5-0-noarch"), dict("name", "pakiti-client", "version", "2.1.5-0", "arch", "noarch"),
# pkg = pakiti-client-manual-2.1.4-2-noarch
escape("pakiti-client-manual-2.1.4-2-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-2", "arch", "noarch"),
# pkg = pakiti-client-manual-2.1.4-3-noarch
escape("pakiti-client-manual-2.1.4-3-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-3", "arch", "noarch"),
# pkg = pakiti-client-manual-2.1.4-4-noarch
escape("pakiti-client-manual-2.1.4-4-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-4", "arch", "noarch"),
# pkg = pakiti-server-2.1.4-1-noarch
escape("pakiti-server-2.1.4-1-noarch"), dict("name", "pakiti-server", "version", "2.1.4-1", "arch", "noarch"),
# pkg = pakiti-server-2.1.4-2-noarch
escape("pakiti-server-2.1.4-2-noarch"), dict("name", "pakiti-server", "version", "2.1.4-2", "arch", "noarch"),
# pkg = pakiti-server-2.1.4-3-noarch
escape("pakiti-server-2.1.4-3-noarch"), dict("name", "pakiti-server", "version", "2.1.4-3", "arch", "noarch"),
# pkg = pakiti-server-2.1.4-4-noarch
escape("pakiti-server-2.1.4-4-noarch"), dict("name", "pakiti-server", "version", "2.1.4-4", "arch", "noarch"),
# pkg = pakiti-server-2.1.5-0-noarch
escape("pakiti-server-2.1.5-0-noarch"), dict("name", "pakiti-server", "version", "2.1.5-0", "arch", "noarch"),
);

View File

@@ -0,0 +1,30 @@
# Template installing a script to remove all accounts with 'fqan' in
# their name. Used after fixing VOConfigTask in SCDB 2.3.2 to remove
# obsolete accounts not removed by ncm-accounts.
#
# The script is added and executed only on nodes where NODE_VO_ACCOUNTS
# is true. It is intended to be run as GLITE_BASE_CONFIG_SITE (define
# this variable to the script namespace).
#
# Michel Jouvin - 13/9/09
unique template site/misc/purge_fqan_accounts;
variable LAL_PURGE_ACCOUNTS_SCRIPT = '/tmp/purge_fqan_accounts';
include 'components/filecopy/config';
'/software/components/filecopy/services' = {
if ( is_defined(NODE_VO_ACCOUNTS) && NODE_VO_ACCOUNTS ) {
debug('Adding purge_fqan_accounts');
SELF[escape(LAL_PURGE_ACCOUNTS_SCRIPT)] = dict(
'config', file_contents('site/misc/purge_fqan_accounts.sh'),
'owner', 'root:root',
'perms', '0755',
'restart', LAL_PURGE_ACCOUNTS_SCRIPT,
);
} else {
debug(format('VO accounts disabled (NODE_VO_ACCOUNTS=%s', NODE_VO_ACCOUNTS));
};
SELF;
};

30
samples/Pan/resources.pan Normal file
View File

@@ -0,0 +1,30 @@
unique template site/one/resources;
# datastores templates
prefix "/software/components/opennebula/datastores/0";
"name" = "ceph.example";
"bridge_list" = list(FULL_HOSTNAME); # for now, do this from the headnode
"ceph_host" = CEPH_MON_HOSTS;
"ceph_secret" = CEPH_LIBVIRT_UUID;
"ceph_user" = "libvirt";
"ceph_user_key" = CEPH_LIBVIRT_SECRET;
"datastore_capacity_check" = true;
"pool_name" = "one";
"type" = "IMAGE_DS";
"rbd_format" = 2;
prefix "/software/components/opennebula/datastores/1";
"name" = "nfs.example";
"datastore_capacity_check" = true;
"ds_mad" = "fs";
"tm_mad" = "shared";
"type" = "IMAGE_DS";
# untouchables resources
prefix "/software/components/opennebula/untouchables";
"datastores" = list('system');
# extra conf
prefix "/software/components/opennebula";
"ssh_multiplex" = true;
"tm_system_ds" = "ssh";

20
samples/Pan/simple.pan Normal file
View File

@@ -0,0 +1,20 @@
unique template site/ceph/osdlocal/simple;
variable CEPH_JOURNAL_PART ?= dict();
prefix '/software/components/ceph';
'localdaemons/osds' = {
d = dict();
foreach(idx; osdmnt; value('/system/filesystems')) {
part = osdmnt['block_device'];
disk = replace('\S+/([a-zA-Z]+)[0-9]*$', '$1', part);
if (match(osdmnt['mountpoint'], '/var/lib/ceph/osd/\w+')){
d[escape(osdmnt['mountpoint'])] = dict(
'journal_path', format('/dev/%s%d', disk, CEPH_JOURNAL_PART['data']),
'crush_weight', weight_of(part),
);
};
};
d;
};

151
samples/Pan/types.pan Normal file
View File

@@ -0,0 +1,151 @@
@contributor{
name = First Contributor
email = first@example.org
}
@contributor{
name = Second Contributor
email = second@example.org
}
@documentation{
Data type and function definitions for basic types
}
declaration template pan/types;
include 'pan/legacy';
@documentation{
This type implements a date/time format consistent with
ASN.1 typically used by LDAP. The actual specification is the
"GeneralizedTime" format as specified on page 38 of the X.208
ITU-T recommendation and references within.
Ex: 20040825120123Z
20040825120123+0100
20040825120123,5
20040825120123.5
20040825120123.5-0123
}
function is_asndate = {
# Check cardinality and type of argument.
if (ARGC != 1 || !is_string(ARGV[0]))
error("usage: is_asndate(string)");
# Match the datetime pattern, extracting interesting fields.
result = matches(ARGV[0],
'^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:[,\.](\d+))?([Zz]|(?:[-+]\d{2}\d{2}))?$');
if (length(result) >= 7) {
# Do further tests on various components of the date.
# NOTE: the to_long(to_double(x)) construct below is to avoid having
# the to_long function treat strings with leading zeros as octal
# numbers. E.g. to_long("09") will throw an exception because '9' is
# not a valid octal digit.
year = to_long(result[1]);
month = to_long(to_double(result[2]));
day = to_long(to_double(result[3]));
hour = to_long(to_double(result[4]));
minute = to_long(to_double(result[5]));
second = to_long(to_double(result[6]));
frac = 0;
if (length(result) > 7) {
frac = to_long(to_double(result[7]));
};
zone = '+0000';
if (length(result) > 8) {
zone = result[8];
};
# Check the range of months.
if (month < 1 || month > 12) {
error("is_asndate: invalid month");
return(false);
};
# Check the range of days.
if (day < 1 || day > 31) {
error("is_asndate: invalid day");
return(false);
};
# Be more specific on the days in each month.
if (month == 4 || month == 6 || month == 9 || month == 11) {
if (day > 30) {
error("is_asndate: invalid day");
};
};
# February is always a bother. Too lazy to check that the leap
# years have been specified correctly.
if (month == 2 && day > 29) {
error("is_asndate: invalid day");
};
# Check the time.
if (hour > 23) {
error("is_asndate: invalid hour");
return(false);
};
if (minute > 59) {
error("is_asndate: invalid minute");
return(false);
};
# Allow for leap seconds here (since it is easy).
if (second > 60) {
error("is_asndate: invalid minute");
return(false);
};
# Check the time zone format.
if (zone != "Z" && zone != "z") {
tz = matches(zone, '^[-+](\d{2})(\d{2})$');
hoffset = to_long(to_double(tz[1]));
moffset = to_long(to_double(tz[2]));
if (hoffset >= 12) {
error("is_asndate: invalid hour offset in time zone");
return(false);
};
if (moffset > 59) {
error("is_asndate: invalid minute offset in time zone");
return(false);
};
};
} else {
error("is_asndate: invalid format for time");
return(false);
};
# If it gets to this point, then the date must be OK.
true;
};
type type_asndate = string with {
is_asndate(SELF);
};
@documentation{
desc = Type that enforces the existence of a named interface.
}
type valid_interface = string with {
if (exists(format('/system/network/interfaces/%s', SELF))) {
return(true);
};
foreach(ifc; attr; value('/system/network/interfaces')) {
if (attr['device'] == SELF){
return(true);
};
};
false;
};
@documentation{
desc = CPU architectures understood by Quattor
}
type cpu_architecture = string with match (SELF, '^(i386|ia64|x86_64|sparc|aarch64|ppc64(le)?)$');

32
samples/Pan/unit.pan Normal file
View File

@@ -0,0 +1,32 @@
unique template site/dcache/unit;
include 'components/dcache/config';
## unit/ugroups
## list of ugroups that will be ignored during configuration
"/software/components/dcache/unit/ignore_ugroup" = list();
"/software/components/dcache/unit/units" = dict(
"protocol", list(
dict("cond", "*/*", "ugroup", list("default_protocol"))
),
"net", list(
dict("cond", "192.168.0.0/255.255.0.0", "ugroup", list("in_net", "all_net")),
dict("cond", "192.168.10.0/255.255.255.0", "ugroup", list("in_server", "in_net", "all_net")),
dict("cond", "192.168.11.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.12.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.13.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.14.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.15.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.16.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "192.168.17.0/255.255.255.0", "ugroup", list("in_wn", "in_net", "all_net")),
dict("cond", "0.0.0.0/0.0.0.0", "ugroup", list("all_net")),
),
"store", list(
dict("cond", "*@*", "ugroup", list("any_store")),
dict("cond", "myStore:STRING@osm", "ugroup", list("default_store", "any_store")),
dict("cond", "dteam:dteam-base@osm", "ugroup", list("dteam_store", "any_store")),
dict("cond", "ops:ops-base@osm", "ugroup", list("ops_store", "any_store")),
dict("cond", "cms:cms-base@osm", "ugroup", list("cms_store", "any_store")),
dict("cond", "test:cms-test@osm", "ugroup", list("test_store")),
),
);

34
samples/Pep8/div.pep Normal file
View File

@@ -0,0 +1,34 @@
main: SUBSP 8, i
DECI 0, s
DECI 2, s
CALL div
DECO 4, s
CHARO '\n', i
DECO 6, s
CHARO '\n', i
STOP
; Divides two numbers following the euclidian method
;
; Parameters:
; SP + 2: Dividend
; SP + 4: Divider
; Returns:
; SP + 6: Quotient
; SP + 8: Remain
div: LDX 0, i
LDA dividend, s
divlp: CPA divider, s
BRLT divout
ADDX 1, i
SUBA divider, s
BR divlp
divout: STX quot, s
STA rem, s
RET0
dividend: .EQUATE 2
divider: .EQUATE 4
quot: .EQUATE 6
rem: .EQUATE 8
.END

23
samples/Pep8/flag.pep Normal file
View File

@@ -0,0 +1,23 @@
_start: LDA 0,i
LDX 0,i
LDA 20, i
ADDA 51, i
CPA 0,i
BRLT s3
BR s4
s1: LDBYTEA s3, x
NOTA
STBYTEA s3, x
ADDX 1,i
CPX 12, i
BRNE s1
s2: STOP
s4: LDA 31, d
LDX 50, d
RET0
STOP
s3: CPX -27746, d
ANDX -8241, i
SUBA -12337, sxf
LDX -12289, sx
.END

675
samples/Pep8/linked.pep Normal file
View File

@@ -0,0 +1,675 @@
; Linked list of integers API
;
; Contains the basis of the structure and a
; variety of available functions to call on it.
;
; Calling conventions:
;
; - When the number of arguments is <= 2, the fastcall convention will be used:
; Arguments will be passed by registers, no assumption is made concerning the
; state of the registers during execution, they will need to be saved.
;
; - When the number of arguments exceeds 2, the cdecl convention will be used:
; Arguments will be passed on the stack, no assumption is made concerning the
; state of the registers during execution, they will need to be saved.
; Simple test program, do no include when using the library
main: SUBSP 4, i
DECI mnelmt, s
CALL newlst
LDX mnlst, s
CALL lstgetst
LDX mnlst, s
CALL lstsetst
LDX mnlst, s
CALL lstgetst
LDX mnlst, s
CALL shftest
LDX mnlst, s
CALL ushftest
LDX mnlst, s
CALL shftest
ADDSP 4, i
STOP
; Pointer to the list
mnlst: .EQUATE 0
; Element read
mnelmt: .EQUATE 2
; TESTS
; Simple test for the get operation
; Gets the first element of the list and prints it
;
; REQUIRES: Non-empty list
;
; Parameters:
; - X: Pointer to the list
;
; Returns:
; void
lstgetst: SUBSP 2, i
LDA 0, i
CALL lstget
STA 0, s
DECO 0, s
CHARO '\n', i
ADDSP 2, i
RET0
; Test for the set operation
; Sets the first element of the list to a given value
; The value is read from stdin
;
; REQUIRES: Non-empty list
;
; Parameters:
; - X: Pointer to the list
;
; Returns:
; void
lstsetst: SUBSP 6, i
STX 0, s
DECI 4, s
LDA 0, i
STA 2, s
CALL lstset
ADDSP 6, i
RET0
; Tests shift operation on a list
; Gets the last element of the list and prints it
;
; REQUIRES: Non-empty list
;
; Parameters:
; - X: Pointer to the list
;
; Returns:
; void
shftest: SUBSP 2, i
CALL lstshft
STA 0, s
DECO 0, s
CHARO '\n', i
ADDSP 2, i
RET0
; Tests unshift operation on a list
; Unshifts a new element read from keyboard
;
; Parameters:
; - X: Pointer to the list
;
; Returns:
; void
ushftest: SUBSP 2, i
DECI 0, s
LDA 0, s
CALL lstunshf
ADDSP 2, i
RET0
; LIBRARY
; Creates a new list with `element` as head
;
; Parameters:
; SP + 4: Element
;
; Returns:
; SP + 2: Pointer to the list
newlst: LDA lstlen, i
CALL new
STX 2, s
CALL newnode
SUBSP 2, i
STX 0, s
LDX nodeelmt, i
LDA 6, s
STA 0, sxf
LDA 0, s
LDX lsthead, i
STA 4, sxf
ADDSP 2, i
RET0
; Gets a node at specified index in a list
;
; Parameters:
; - A: Index
; - X: Pointer to the list
;
; Returns:
; - A: Error code (0 if no error was produced)
; - X: Pointer to the node
;
; Errors:
; -1: Index < 0
; -2: Index >= list.length
nodeat: SUBSP 10, i
STA ndaind, s
STX ndalst, s
LDX lsthead, i
LDA ndalst, sxf
STA ndanode, s
LDA ndaind, s
CPA 0, i
LDA 0, i
STA ndacurri, s
BRGE ndagez
LDA -1, i
ADDSP 10, i
RET0
ndagez: LDX ndalst, s
CALL listlen
STA ndalstln, s
LDA ndaind, s
CPA ndalstln, s
BRLT ndalp
LDA -2, i
ADDSP 10, i
RET0
ndalp: LDA ndacurri, s
CPA ndaind, s
BREQ ndaout
LDX nodenxt, i
LDA ndanode, sxf
STA ndanode, s
LDA ndacurri, s
ADDA 1, i
STA ndacurri, s
BR ndalp
ndaout: LDX ndanode, s
LDA 0, i
ADDSP 10, i
RET0
ndaind: .EQUATE 0
ndanode: .EQUATE 2
ndalst: .EQUATE 4
ndalstln: .EQUATE 6
ndacurri: .EQUATE 8
; Length of the list passed as a parameter
;
; Parameters:
; - X: List
;
; Returns:
; - A: Length
listlen: SUBSP 4, i
STX lenode, s
LDX lenode, sf
STX lenode, s
LDA 0, i
STA lencpt, s
llenlp: LDA lenode, s
CPA 0, i
BREQ lenout
LDA lencpt, s
ADDA 1, i
STA lencpt, s
LDX nodenxt, i
LDA lenode, sxf
STA lenode, s
BR llenlp
lenout: LDA lencpt, s
ADDSP 4, i
RET0
lenode: .EQUATE 0
lencpt: .EQUATE 2
; Gets an element in a list at a specified index
;
; Parameters:
; - A: Index
; - X: Address of the list
;
; Returns:
; - A: Element value
;
; Error:
; If out of bounds, prints an error message and stops the program
lstget: SUBSP 2, i
STA 0, s
CALL nodeat
CPA 0, i
BRNE getoob
LDA 0, x
ADDSP 2, i
RET0
; Out of bounds
getoob: STRO getstrob, d
DECO 0, s
CHARO '\n', i
STOP
; String for out of bounds error
getstrob: .ASCII "Invalid index on get, index = \x00"
; Sets an element in a list at a specified index to a new value
;
; Parameters:
; - SP + 2: Pointer to the list
; - SP + 4: Index
; - SP + 6: Element
;
; Returns:
; - A: 0 if all went well, an error code otherwise (analogous to the error codes in nodeat)
lstset: CHARO '\n', i
DECO lstsetlp, s
CHARO ' ', i
DECO lstsetin, s
CHARO ' ', i
DECO lstsetel, s
CHARO '\n', i
SUBSP 2, i
LDX lstsetlp, s
LDA lstsetin, s
CALL nodeat
CPA 0, i
BRNE lstsetrt
STX lstsetnp, s
LDA lstsetel, s
LDX nodeelmt, i
STA lstsetnp, sxf
LDA 0, i
lstsetrt: ADDSP 2, i
RET0
; Pointer to the list
lstsetlp: .EQUATE 4
; Element to set the value at
lstsetel: .EQUATE 8
; Index of the node
lstsetin: .EQUATE 6
; Pointer to the node
lstsetnp: .EQUATE 0
; Removes the first element of the list in parameter and returns its value
;
; REQUIRES: Non-empty list
;
; Parameters:
; ⁻ X: Pointer to the list
;
; Returns :
; - A: Element removed
lstshft: SUBSP 8, i
STX lshflp, s
LDX lsthead, i
LDA lshflp, sxf
CPA 0, i
BREQ shfterr
STA lshfohd, s
LDX nodenxt, i
LDA lshfohd, sxf
STA lshfnhd, s
LDX lsthead, i
STA lshflp, sxf
LDX nodeelmt, i
LDA lshfohd, sxf
ADDSP 8, i
RET0
shfterr: STRO shfterrm, d
STOP
; Pointer to the list
lshflp: .EQUATE 0
; Pointer to the old head
lshfohd: .EQUATE 2
; Old head's element
lshfhdel: .EQUATE 4
; Pointer to the new head
lshfnhd: .EQUATE 6
; Error message on shift
shfterrm: .ASCII "Cannot do shift on empty list.\n\x00"
; Inserts a new element at the beginning of a list
;
; Parameters:
; - X: Pointer to the list
; - A: Element to add to the list
;
; Returns:
; - A: Error code, 0 if all right, a code otherwise
lstunshf: SUBSP 8, i
STA lunshelm, s
STX lunslp, s
CALL newnode
STX lunsnhd, s
LDX lsthead, i
LDA lunslp, sxf
STA lunsohd, s
LDX nodenxt, i
LDA lunsohd, s
STA lunsnhd, sxf
LDA lunshelm, s
LDX nodeelmt, i
STA lunsohd, sxf
LDX lsthead, i
LDA lunsnhd, s
STA lunslp, sxf
ADDSP 8, i
RET0
; Pointer to the list
lunslp: .EQUATE 0
; Pointer to the old head
lunsohd: .EQUATE 2
; Pointer to the new head
lunsnhd: .EQUATE 4
; Element to add
lunshelm: .EQUATE 6
; Finds whether or not an element is present in a list
;
; Parameters:
; - X: Pointer to the list
; - A: Element to be found
;
; Returns:
; - A: 0 if element was not found, 1 if it was
lstfnd: SUBSP 6, i
STX lstfndlp, s
STA lstfndel, s
LDX lsthead, i
LDA lstfndlp, sxf
STA lstfndnd, s
fndloop: CPA 0, i
BREQ notfnd
LDX nodeelmt, i
LDA lstfndnd, sxf
CPA lstfndel, s
BREQ found
LDX nodenxt, i
LDA lstfndnd, sxf
STA lstfndnd, s
BR fndloop
notfnd: LDA 0, i
ADDSP 6, i
RET0
found: LDA 1, i
ADDSP 6, i
RET0
; Pointer to the list
lstfndlp: .EQUATE 0
; Element to search
lstfndel: .EQUATE 2
; Current node
lstfndnd: .EQUATE 4
; Pushes a new element at the end of the list
;
; Parameters:
; - X: Pointer to the list
; - A: Element to push
;
; Returns:
; - A: 0 if all went well, an error code otherwise
lstpsh: SUBSP 8, i
STX lpshlp, s
STA lpshel, s
CALL newnode
STX lpshnd, s
LDX lpshlp, s
CALL listlen
CPA 0, i
BREQ lpshshft
SUBA 1, i
LDX lpshlp, s
CALL nodeat
STX lpshlnd, s
LDX nodenxt, i
LDA lpshnd, s
STA lpshlnd, sxf
LDA lpshel, s
LDX nodeelmt, i
STA lpshnd, sxf
ADDSP 8, i
RET0
lpshshft: LDX lpshlp, s
LDA lpshel, s
CALL lstunshf
ADDSP 8, i
RET0
; Pointer to the list
lpshlp: .EQUATE 0
; Element to add to the list
lpshel: .EQUATE 2
; Node to add to the list
lpshnd: .EQUATE 4
; Node to append
lpshlnd: .EQUATE 6
; Pops the last element of a list
;
; Parameters:
; - X: Pointer to the list
;
; Returns:
; - A: Element removed from the list
lstpop: SUBSP 6, i
STX lpoplp, s
CALL listlen
CPA 0, i
BRNE poperrem
CPA 1, i
BREQ popshft
SUBA 2, i
LDX lpoplp, s
CALL nodeat
STX lpopndpr, s
LDX nodenxt, i
LDA lpopndpr, sxf
LDA 0, i
LDX nodenxt, i
STA lpopndpr, sxf
STA lpoplnd, s
LDX nodeelmt, i
LDA lpoplnd, s
ADDSP 6, i
RET0
poperrem: STRO poperrsm, d
STOP
popshft: LDX lpoplp, s
CALL lstshft
ADDSP 6, i
RET0
; Pointer to the list
lpoplp: .EQUATE 0
; Node to remove
lpoplnd: .EQUATE 2
;New last node
lpopndpr: .EQUATE 4
; Message to print when popping an empty list
poperrsm: .ASCII "Error: cannot pop an empty list.\n\x00"
; Inserts an element in a list at a given position
;
; REQUIRES: Non-empty list
;
; Parameters:
; - SP + 2: Pointer to the list
; - SP + 4: Index to insert at
; - SP + 6: Element to add
;
; Returns:
; - A: Error code: 0 if all went well, -1 if index < 0, -2 if index > list.length
lstinsat: SUBSP 6, i
LDA lstinsid, s
CPA 0, i
BRLT lstinslz
BREQ lstinush
LDX lstinslp, s
CALL listlen
CPA lstinsel, s
BRLT lstinsgl
BREQ lstinpsh
LDX lstinslp, s
LDA lstinsel, s
SUBA 1, i
CALL nodeat
STX lstinsnd, s
LDX nodenxt, i
LDA lstinsnd, sxf
STA lstinscx, s
CALL newnode
STX lstinscn, s
LDX nodeelmt, i
LDA lstinsel, s
STA lstinscn, sxf
LDX nodenxt, i
LDA lstinscx, s
STA lstinscn, sxf
LDA lstinscn, s
LDX nodenxt, i
STA lstinsnd, sxf
ADDSP 6, i
RET0
lstinush: LDX lstinslp, s
LDA lstinsel, s
CALL lstunshf
ADDSP 6, i
RET0
lstinpsh: LDX lstinslp, s
LDA lstinsel, s
CALL lstpsh
ADDSP 6, i
RET0
; Insert with index < 0
lstinslz: LDA -1, i
ADDSP 6, i
RET0
; Insert with index > list.length
lstinsgl: LDA -2, i
ADDSP 6, i
RET0
; List pointer
lstinslp: .EQUATE 8
; Index of the newly created node
lstinsid: .EQUATE 10
; Element to add
lstinsel: .EQUATE 12
; Node to change the pointer to the next
lstinsnd: .EQUATE 0
; Node to insert
lstinscn: .EQUATE 2
; Pointer to the node after the created one (might be null)
lstinscx: .EQUATE 4
; Removes a node at a given index in a list,
; returns the element previously contained
;
; Parameters:
; - X: Pointer to the list
; - A: Index of the element
;
; Returns:
; - A: Element removed
;
; Error:
; In case of error, the program aborts with an error message
lstremat: SUBSP 8, i
STX lremlp, s
STA lremid, s
CPA 0, i
BRLT lstremob
BREQ lstremz
CALL listlen
CPA lremid, s
BRGE lstremob
SUBA 1, i
CPA lremid, s
BREQ lrempop
LDA lremid, s
LDX lremlp, s
CALL nodeat
STX lremnd, s
LDA lremid, s
SUBA 1, i
LDX lremlp, s
CALL nodeat
STX lrempnd, s
LDX nodenxt, i
LDA lremnd, sxf
STA lrempnd, sxf
LDX nodeelmt, i
LDA lremnd, sxf
ADDSP 8, i
RET0
lstremz: LDX lremlp, s
CALL lstshft
ADDSP 8, i
RET0
lrempop: LDX lremlp, s
CALL lstpop
ADDSP 8, i
RET0
lstremob: STRO lremobst, d
DECO lremid, s
CHARO '\n', i
STOP
; Pointer to the list
lremlp: .EQUATE 0
; Index to remove an element at
lremid: .EQUATE 2
; Pointer to the node before the removed element
lrempnd: .EQUATE 4
; Pointer to the node to remove
lremnd: .EQUATE 6
; Error out of bounds string for remove_at
lremobst: .ASCII "Error: Out of bounds in remove_at, index = \x00"
; Creates a new node from scratch
; Sets its content to 0/NULL
;
; Parameters:
; void
;
; Return:
; - X: Address of the node
newnode: LDA nodeln, i
SUBSP 2, i
CALL new
STX 0, s
LDA 0, i
LDX nodenxt, i
STA 0, sxf
LDX nodeelmt, i
STA 0, sxf
LDX 0, s
ADDSP 2, i
RET0
; Allocates a new structure in the heap
;
; Parameters:
; - A: Length of the structure to allocate (bytes)
;
; Returns:
; - X: Address of the allocated structure
new: ADDA hpptr, d
LDX hpptr, d
STA hpptr, d
RET0
; Node in a linked list
;
; Contains two fields:
; - Element: Offset 0
; - Next: Offset 2
;
nodeln: .EQUATE 4
nodeelmt: .EQUATE 0
nodenxt: .EQUATE 2
; Linked list capsule
;
; Contains one field:
; - Head: Offset 0
;
lstlen: .EQUATE 2
lsthead: .EQUATE 0
; Pointer to the next available byte on the heap
hpptr: .ADDRSS heap
; Start of the heap
heap: .BLOCK 1
.END

434
samples/Pep8/msq.pep Normal file
View File

@@ -0,0 +1,434 @@
; Reads a square from stdin, then computes whether it is a magic square or not.
;
; A Magic Square is a square following a specific set of rules, namely:
; - The sum of each row must be the same as the sum of the diagonal
; - The sum of the anti-diagonal must be the same as the sum of the diagonal
; - The sum of each column must be the same as the sum of the diagonal
;
; If any column, row, or anti-diagonal does not follow the aformented rules,
; the program will output its number to stdout.
;
; Columns are identified by a negative digit, ranging from -1 to -n
; The anti-diagonal is identified by the number 0.
; Finally, rows are identified by a positive integer, ranging from 1 to n.
;
; Formatting:
; First a number `n` is read from Stdin, it will determine the size of the square
; Then, enter the data for the square, `n` entries will be read
; The data is sequentially added to the square in memory, from the upper-left corner
; to the lower-right corner, in a zig-zag pattern
;
; Example:
; 3
; 4 9 3
; 3 5 7
; 8 1 6
;
; Limitation: Since there is no dynamic allocation, the size
; of the square is capped at a maximum of 32*32.
; Any size lower than 1 or higher than 32 will produce
; an error and the termination of the program.
;_start
DECI sidelen, d
LDA sidelen, d
CPA 1, i
BRLT sderror
CPA 32, i
BRGT sderror
LDX sidelen, d
CALL mult
STA sqlen, d
CALL fillsq
LDA sidelen, d
LDX square, i
CALL diagsum
STA dgsm, d
CALL colsums
LDA sidelen, d
LDX square, i
CALL cdiagsum
CPA dgsm, d
BREQ cnt
DECO 0, i
CHARO '\n', i
cnt: STA cdsm, d
CALL rowsums
STOP
el: .BLOCK 2
; Length of a side of the square
sidelen: .WORD 0
; Total length of the square
sqlen: .BLOCK 2
; 32 * 32 square of integers
square: .BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 255
.BLOCK 8
; Prints an error and terminates the program
sderror: STRO stderr, d
STOP
; Parameters: A: Size of a side of the square
; X: Base address of the square
; cscolid: Identifier of the column (0-based)
; Computes the sum of each column
; If the sum is not the same as dgsm, its index will be printed (in negative form)
;
; Parameters: A: Size of a side of the square
; X: Address of the square
;
; Return: void
colsums:STA clsmsqsz, d
STX clsmsqad, d
SUBA 1, i
STA clsmyp, d
clssmlp:CPA 0 ,i
BRLT clsmout
STA cscolid, d
LDA clsmsqsz, d
LDX clsmsqsz, d
CALL colsum
CPA dgsm, d
BREQ clsdecpt
LDX clsmyp, d
NEGX
STX clsmyp, d
DECO clsmyp, d
CHARO '\n', i
LDX clsmyp, d
NEGX
STX clsmyp, d
clsdecpt: LDA clsmyp, d
SUBA 1, i
STA clsmyp, d
BR clssmlp
clsmout: RET0
clsmsqad: .BLOCK 2
clsmsqsz: .BLOCK 2
clsmyp_: .BLOCK 2
; Compute the sum of each row
; Prints its index if the value does not match dgsum
;
; Parameters: A: Size of a side of the square
; X: Address of the square
;
; Returns: void
rowsums: STA maxrows, d
STX rowssqad, d
LDA 0, i
STA tmprwsm, d
STA rowid, d
rwsmslp: CPA maxrows, d
BRGE rwsmsout
STA rwxpos, d
LDA maxrows, d
LDX rowssqad, d
CALL rowsum
CPA dgsm, d
STA tmprwsm, d
BREQ rwinccpt
DECO rowid, d
CHARO '\n', i
rwinccpt: LDA rowid, d
ADDA 1, i
STA rowid, d
BR rwsmslp
rwsmsout: RET0
; Number of rows to compute
maxrows: .BLOCK 2
; Square address
rowssqad: .BLOCK 2
; Current rowid
rowid: .BLOCK 2
; Current rowsum
tmprwsm: .BLOCK 2
; Gets an element at the indexes given as parameter
; The square is supposed to contain only integers
; No check will be made on the correctness of the indexes
;
; Parameters: A: Size of a side of the square (in elements)
; X: Base address of the square
; xpos: Position in X for the element (0-indexed)
; ypos: Position in Y for the element (0-indexed)
;
; Return: A will contain the element
;
; Side-effects: Registers A and X will neither be saved nor restored upon call
; ypos will be altered
elemat: STX elsqaddr, d
ASLA
LDX xpos, d
CALL mult
STA xpos, d
LDX ypos, d
ASLX
STX ypos, d
ADDA ypos, d
ADDA elsqaddr, d
STA elsqaddr, d
LDX elsqaddr, d
LDA 0, x
RET0
; X-index in square (in elements)
xpos: .BLOCK 2
; Y-index in square (in elements)
ypos: .BLOCK 2
; Address to fetch elements at
elsqaddr: .BLOCK 2
; Fills the square with input from the user
;
; Pass via register A the number of inputs to be read
fillsq: LDX 0, i
filloop: SUBA 1, i
CPA 0, i
BRLT fillout
DECI square, x
ADDX 2, i
BR filloop
fillout: RET0
; Computes the sum of the digits of a column
; The square is supposed to contain integers only
;
; Parameters: A: Size of a side of the square
; X: Base address of the square
; cscolid: Identifier of the column (0-based)
;
; Return: A: Sum of the digits of the column
colsum: STA csclsqsz, d
STX csclsqad, d
LDA 0, i
STA csclsum, d
STA csclxpos, d
clsmloop: CPA csclsqsz, d
BRGE colout
LDA cscolid, d
STA ypos, d
LDA csclxpos, d
STA xpos, d
LDA csclsqsz, d
LDX csclsqad, d
CALL elemat
ADDA csclsum, d
STA csclsum, d
LDA csclxpos, d
ADDA 1, i
STA csclxpos, d
BR clsmloop
colout: LDA csclsum, d
RET0
; Identifier of the column which sum is to be computed
cscolid: .BLOCK 2
; Temporary for x position
csclxpos: .BLOCK 2
; Base address of the square
csclsqad: .BLOCK 2
; Size of a side of the square
csclsqsz: .BLOCK 2
; Sum of the column
csclsum: .BLOCK 2
; Computes the sum of the digits of a row
; The square is supposed to contain integers only
;
; Parameters: A: Size of a side of the square
; X: Base address of the square
; rwxpos: Row index (0-based)
;
; Returns: A: Sum of the digits of the row
rowsum: STA rwsqsz, d
STX rwbsqadr, d
LDA 0,i
STA rwsum, d
STA rwypos, d
rwsumlp: LDA rwypos, d
CPA rwsqsz, d
BRGE rwsumout
STA ypos, d
LDA rwxpos, d
STA xpos, d
LDA rwsqsz, d
LDX rwbsqadr, d
CALL elemat
ADDA rwsum, d
STA rwsum, d
LDA rwypos, d
ADDA 1, i
STA rwypos, d
BR rwsumlp
rwsumout: LDA rwsum, d
RET0
; Square size (in elements)
rwsqsz: .BLOCK 2
; Square base address
rwbsqadr: .BLOCK 2
; Position of the row to compute
rwxpos: .BLOCK 2
; Current column visited
rwypos: .BLOCK 2
; Sum of the row
rwsum: .BLOCK 2
; Computes the sum for the antidiagonal of a square
; The square is supposed to contain integers only
;
; Parameters: A: Size of a side of the square (elements)
; X: Base address of the square
;
; Returns: A: Sum of the antidiagonal
cdiagsum: STA cdsqsz, d
SUBA 1,i
STA cdtmpy, d
LDA 0, i
STA cdtmpx, d
STA cdsum, d
STX cdsqaddr, d
cdiaglp: LDA cdtmpx, d
STA xpos, d
LDA cdtmpy, d
STA ypos, d
CPA 0, i
BRLT cdout
LDA cdsqsz, d
LDX cdsqaddr, d
CALL elemat
ADDA cdsum, d
STA cdsum,d
LDA cdtmpx, d
ADDA 1, i
STA cdtmpx, d
LDA cdtmpy, d
SUBA 1, i
STA cdtmpy, d
BR cdiaglp
cdout: LDA cdsum, d
RET0
; Temporary handle for square size (elements)
cdsqsz: .BLOCK 2
; Square address
cdsqaddr: .BLOCK 2
; Keep x address
cdtmpx: .BLOCK 2
; Keep y address
cdtmpy: .BLOCK 2
; Sum of antidiagonal
cdsum: .BLOCK 2
; Computes the sum for the diagonal of a square
; The square is supposed to contain integers only
;
; Parameters: A: Size of a side of the square (elements)
; X: Base address of the square
;
; Returns: A: Sum of the diagonal
;
diagsum: STA dsqsz, d
STX dsqaddr, d
LDA 0, i
STA tmpsum, d
STA curra, d
dglp: CPA dsqsz, d
BRGE dglpout
STA xpos, d
STA ypos, d
LDA dsqsz, d
LDX dsqaddr, d
CALL elemat
ADDA tmpsum, d
STA tmpsum, d
LDA curra, d
ADDA 1, i
STA curra, d
BR dglp
dglpout: LDA tmpsum, d
RET0
; Address of the square
dsqaddr: .BLOCK 2
; Size of a side of the square (elements)
dsqsz: .BLOCK 2
; Current value of the x and y indexes
curra: .BLOCK 2
; Sum of the values
tmpsum: .BLOCK 2
; Muliplies two ints
;
; Parameters:
; Register A : Left part of the multiplication
; Register X : Right part of the multiplication
;
; Return:
; Register A : Result of the multiplication
;
; Side-effects:
; Uses multmp as a temporary value
mult: STA multmp, d
LDA 0, i
muloop: CPX 0, i
BRLE mulout
ADDA multmp, d
SUBX 1, i
BR muloop
mulout: RET0
; Temporary variable for mult function
; Holds the initial value of A
multmp: .WORD 0
; For debugging purposes
; Prints the content of the square to stdout
;
; Parameters: A: Size of a side
; X: Base address of square
;
; Side-effects:
; Consider variables sidesz, sqaddr, sqmaxa as local, they will be written
; Registers A and X will not be saved nor restored upon call
printsq: STA sidesz, d
STX sqaddr, d
LDX sidesz, d
CALL mult
ASLA
ADDA sqaddr, d
STA sqmaxa, d
LDX sqaddr, d
LDA 0, i
priloop: DECO 0, x
CHARO ' ', i
ADDX 2, i
CPX sqmaxa, d
BREQ priout
ADDA 1, i
CPA sidesz, d
BRLT priloop
LDA 0, i
CHARO '\n', i
BR priloop
priout: RET0
; Size of a side of the square
sidesz: .BLOCK 2
; Address of the square
sqaddr: .BLOCK 2
; Maximum address to iterate upon
sqmaxa: .BLOCK 2
; ------------------ GLOBALLY ACCESSIBLE SYMBOLS -------------------- ;
;
; Sum of the diagonal for the square
; Reference value for magic-square
dgsm: .WORD 0
; Sum of the counter-diagonal
cdsm: .WORD 0
; Input error string
stderr: .ASCII "A number between 1 and 32 (both inclusive) must be entered as value for the size of the square for the program to work.\n\x00"
.END

227
samples/Pep8/qsort.pep Normal file
View File

@@ -0,0 +1,227 @@
; Sorts a statically defined array using the recursive implementation
; of the quicksort algorithm.
;
; In this implementation, the pivot is supposed to be the rightmost
; value of the slice of the array being sorted.
;
; Note that the code presented below should work on any array,
; whether defined statically or dynamically.
;
; Calling conventions:
; Except when mentionned otherwise, every parameter is to be passed on the stack.
; The return values are also on the stack.
; No assumption is to be made on the content of a register on a function call.
; The values of the registers are to be locally saved for further use if necessary.
main: SUBSP 4, i
LDA 11, i
ASLA
STA 2, s
LDA arr, i
STA 0, s
CALL printarr
SUBSP 2, i
LDA arr, i
STA 0, s
LDA 0, i
STA 2, s
LDA 10, i
STA 4, s
CALL qsort
ADDSP 2, i
CHARO '\n', i
LDA 11, i
ASLA
STA 2, s
LDA arr, i
STA 0, s
CALL printarr
STOP
; Sorts an array using the quicksort algorithm
;
; Parameters:
; - SP + 2: Address of the array
; - SP + 4: Left bound
; - SP + 6: Right bound
; Returns:
; void
qsort: SUBSP 2, i
LDA qsarrlb, s
CPA qsarrrb, s
BRGE qsortout
SUBSP 6, i
LDA 10, s
STA 0, s
LDA 12, s
STA 2, s
LDA 14, s
STA 4, s
CALL part
LDA 10, s
STA 0, s
LDA 12, s
STA 2, s
LDA 6, s
SUBA 1, i
STA 4, s
CALL qsort
LDA 10, s
STA 0, s
LDA 6, s
ADDA 1, i
STA 2, s
LDA 14, s
STA 4, s
CALL qsort
ADDSP 6, i
qsortout: ADDSP 2, i
RET0
; Address of the array
qsarradd: .EQUATE 4
; Left bound
qsarrlb: .EQUATE 6
; Right bound
qsarrrb: .EQUATE 8
; Pivot value returned by the part command
qsortp: .EQUATE 0
; Partitions an array in two following the quicksort rules.
;
; All the lower values compared to the pivot will be on the left
; All the upper values compared to the pivot will be on the right
; The pivot's final index is then returned
;
; Parameters:
; - SP + 2: Address of the array
; - SP + 4: Left bound
; - SP + 6: Right bound
;
; Returns:
; - SP + 8: Pivot final index
part: SUBSP 8, i
LDA parrrb, s
STA partpiv, s
LDA parrlb, s
STA pstind, s
STA piter, s
partflp: CPA parrrb, s
BRGE partout
LDX piter, s
ASLX
LDA paraddr, sxf
STA parrival, s
LDX partpiv, s
ASLX
LDA paraddr, sxf
CPA parrival, s
BRLT parlpinc
SUBSP 6, i ; Call swap(arr, i, st_index)
LDA 16, s
STA 0, s
LDA 8, s
STA 2, s
LDA 10, s
STA 4, s
CALL swap
ADDSP 6, i
LDA pstind, s
ADDA 1, i
STA pstind, s
parlpinc: LDA piter, s
ADDA 1, i
STA piter, s
BR partflp
partout: SUBSP 6, i ; Call swap(arr, piv, st_index)
LDA 16, s
STA 0, s
LDA 12, s
STA 2, s
LDA 10, s
STA 4, s
CALL swap
ADDSP 6, i
LDA pstind, s
ADDSP 8, i
STA 8, s
RET0
; Address of the array
paraddr: .EQUATE 10
; Left bound
parrlb: .EQUATE 12
; Right bound
parrrb: .EQUATE 14
; Pivot value
partpiv: .EQUATE 6
; st_index
pstind: .EQUATE 4
; For iterator value
piter: .EQUATE 2
; arr[i] value
parrival: .EQUATE 0
; Swaps the value of two elements of an array of integers
;
; Parameters:
; - SP + 2: Address of the array
; - SP + 4: Index of the 1st element to swap
; - SP + 6: Index of the 2nd element to swap
;
; Returns:
; void
swap: SUBSP 2, i
LDX fstelind, s
ASLX
LDA arraddr, sxf
STA swaptmp, s
LDX secelind, s
ASLX
LDA arraddr, sxf
LDX fstelind, s
ASLX
STA arraddr, sxf
LDA swaptmp, s
LDX secelind, s
ASLX
STA arraddr, sxf
ADDSP 2, i
RET0
; Temporary value for the swap
swaptmp: .EQUATE 0
; Address of the array on which the swap is done
arraddr: .EQUATE 4
; Index of the first element
fstelind: .EQUATE 6
; Index of the second element
secelind: .EQUATE 8
; Prints the content of an array
;
; Parameters:
; SP + 2: Address of the array
; SP + 4: Length of the array
;
; Returns:
; void
printarr: LDX 0, i
parrlp: CPX 4, s
BRGE parrout
DECO 2, sxf
CHARO ' ', i
ADDX 2, i
BR parrlp
parrout: RET0
; Unsorted array for testing purposes
arr: .WORD 9
.WORD 5
.WORD 8
.WORD 10
.WORD 4
.WORD 7
.WORD 0
.WORD 3
.WORD 2
.WORD 1
.WORD 6
.END

61
samples/Pep8/stri_buf.pep Normal file
View File

@@ -0,0 +1,61 @@
main:
; Reads a string in stdin, returns the buffer it was read in
; Stops reading at the first encounter of a \n character.
;
; Parameters:
; void
;
; Returns:
; - X: Address of the buffer
stri: SUBSP 2, i
LDA 32, i
CALL new
CPX buflen, s
BRGE strinlrg
strinlrg: LDA buflen, d
LDX 2, i
CALL mult
STA buflen
CALL new
buflen: .EQUATE 0
; Copies the content of a buffer to another one
;
; Parameters:
; - SP + 2: Destination buffer
; - SP + 4: Source buffer
; - SP + 6: Length to copy
memcpy: LDX 0, i
memcplp: CPX cpylen, s
BREQ memcpout
LDBYTEA srcbuf, sxf
STBYTEA dstbuf, sxf
ADDX 1, i
BR memcplp
memcpout: RET0
; Destination buffer
dtsbuf: .EQUATE 2
; Source buffer
srcbuf: .EQUATE 4
; Copy length
cpylen: .EQUATE 6
; Allocates a new structure in the heap
;
; Parameters:
; - A: Length of the structure to allocate (bytes)
;
; Returns:
; - X: Address of the allocated structure
new: ADDA hpptr, d
LDX hpptr, d
STA hpptr, d
RET0
; Pointer to the next available byte on the heap
hpptr: .ADDRSS heap
; Start of the heap
heap: .BLOCK 1
.END

View File

@@ -0,0 +1,50 @@
main: SUBSP 34, i
LDA 31, i
STA 0, s
CALL fgets
ADDSP 2, i
CALL ststro
STOP
; Reads a string from stdin, stops reading when one of the following is true:
; - Read a \n
; - Read a maximum of `max` chars
;
; Parameters:
; - SP + 2: `max`, the maximum number of chars to read
; - SP + 4: `buffer` of length `max` + 1
; Returns:
; void
fgets: LDX 0, i
LDA 0, i
fgetslp: CHARI buffer, sx
LDBYTEA buffer, sx
CPA '\n', i
BREQ fout
CPX max, s
BREQ fout
ADDX 1, i
BR fgetslp
fout: LDA '\x00', i
STBYTEA buffer, sx
RET0
max: .EQUATE 2
buffer: .EQUATE 4
; Prints a string stored in stack
;
; Parameters:
; SP + 2: `string`
; Returns:
; void
ststro: LDX 0, i
LDA 0, i
strolp: LDBYTEA string, sx
CPA '\x00', i
BREQ strout
CHARO string, sx
ADDX 1, i
BR strolp
strout: RET0
string: .EQUATE 2
.END

Some files were not shown because too many files have changed in this diff Show More