From fa42e8c377e0aec1cacc4c98b9b33cbb2344a684 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@1b90f75b-8b96-4784-87c0-14078182fce6> Date: Tue, 25 Sep 2007 06:57:25 +0000 Subject: [PATCH] throw it all under the GPL git-svn-id: https://svn.salfter.gotdns.org/svn/a2bfc/trunk@93 1b90f75b-8b96-4784-87c0-14078182fce6 --- COPYING | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++ README | 78 ++++++++++++ cfridge.shk | Bin 0 -> 13694 bytes interface.txt | 75 +++++++++++ main.c | 20 +++ main.h | 20 +++ ow-apple2.s | 20 +++ ow-common.s | 20 +++ ow-temp.c | 20 +++ ow-temp.h | 20 +++ ow-time.c | 20 +++ ow-time.h | 20 +++ ow.c | 20 +++ ow.h | 20 +++ 14 files changed, 692 insertions(+) create mode 100644 COPYING create mode 100644 README create mode 100644 cfridge.shk create mode 100644 interface.txt diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..771315e --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + +Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/README b/README new file mode 100644 index 0000000..7cb4088 --- /dev/null +++ b/README @@ -0,0 +1,78 @@ +This package serves two purposes: it contains routines for working with +Dallas Semiconductor's 1-Wire and iButton devices on 6502-based systems (the +Apple II, specifically, though it should be easily extended to other +platforms), and it contains an example program that uses these routines to +implement a smart temperature controller. I use it with an Apple IIe and a +small adapter board that plugs into the joystick port. It keeps the +temperature within 2 degrees of the setpoint, keeps the compressor from +short-cycling (it's currently set for a 5-minute minimum delay from off to +on), slowly ramps temperatures up/down as needed, and charts the temperature +for the last ~4.5 hours. I use it to control the fermentation temperature +for my homebrew. :-) + +I originally wrote this in a mix of BASIC and assembly language, using +native tools on the Apple II. Rewriting the entire package with cc65 was an +opportunity to get up to speed on cc65, as I've worked out a design for a +6502-based controller that'll take the Apple II's place and I wanted +something easier to code than having to write everything in assembly +language. The next step is to adapt cc65 to my custom architecture. + +To use just the 1-Wire routines in your own programs, you just need the +ow*.[chs] files added to your project. If you're using something other than +an Apple II, you'll need to replace ow-apple2.s with something appropriate +for your system (you would also need to cobble together a 1-Wire interface +of some sort, whether it's an RS-232-to-1-Wire adapter on a serial port or a +bit-banging interface of your own design. + +ow-apple2.s is probably the best-documented of the files. All of the +functions within would need to be reimplemented for another system. Once +you have that done, the other functions should work. + +main.[ch] serves as an example. It's not particularly well-documented, but +in addition to using the 1-Wire temperature and time routines, it also +includes input routines that use the clock to time out after a period of +inactivity. It expects to have a DS18B20 temperature sensor and a DS2417 +real-time clock attached to the 1-Wire bus. On the 16-pin joystick port, +AN0 writes to the bus (on pulls the bus low; off lets it float high), PB2 +reads the current state of the 1-Wire bus, and AN1 turns a relay on and off. + +If you're using a IIGS connected to a file server (either AppleShare, +netatalk, or the built-in file sharing on most pre-OSX Macs), the 1-Wire +routines will not work properly while the computer is connected. If you +kick down to normal speed (1 MHz) and press Ctrl-Reset, the computer will +disconnect from the server and the 1-Wire routines will work properly. +(This caused me no end of problems in the early phases of development until +I figured this out. Masking interrupts in the timing-critical routines made +no difference.) + +File manifest: + +apple2-tgi.cfg + config file for build +Makefile + makefile (duh) +cfridge.shk + ready-to-run Apple II binaries +COPYING + GPLv2 +interface.txt + a description of the 1-Wire interface for the Apple II joystick port +main.c +main.h + main program source & header files +ow-apple2.s + Apple II-specific 1-Wire primitives +ow-common.s + system-independent 1-Wire primitives +ow.c +ow.h + higher-level 1-Wire functions (all 1-Wire programs include ow.h) +ow-temp.c +ow-temp.h + functions for the DS18B20 teperature sensor +ow-time.c +ow-time.h + functions for the DS2417 real-time clock +README + this file (duh, again) + diff --git a/cfridge.shk b/cfridge.shk new file mode 100644 index 0000000000000000000000000000000000000000..e62087bcb38300ec0337a04b62fe18f964880c19 GIT binary patch literal 13694 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 bKDaHo;;|725{2Z%o(C~nVAfFFSEK(2ADJfF literal 0 HcmV?d00001 diff --git a/interface.txt b/interface.txt new file mode 100644 index 0000000..20e6156 --- /dev/null +++ b/interface.txt @@ -0,0 +1,75 @@ +Connecting 1-Wire devices to your Apple II is dead simple. A 74HCT126 quad +three-state buffer, a 4.7k resistor, a 0.1uF capacitor, and the appropriate +connector to plug into the 16-pin joystick port is all you need. (The 9-pin +joystick port on the IIe and later machines is inadequate for our purposes +since it has no outputs.) The circuit looks something like this: + + +5V o--------------+-------| C1 |-----o GND + | | 0.1uF | + AN0 o-------| / +-----|(-----+ + | \ R1 | | + | / 4.7k v U1 v + |\| \ Vdd 74HCT126 Vss + | \ | + GND o-----| >-----+------+----------------------------------o to 1-Wire bus + | / | + |/ U1A | + | + | GND o--+---+---------+---| + +5V o------| | | | | | + |/| | | |\| | |\| + / | | | | \ | | \ + PB2 o-----< |------------| |-| > |-| > + \ | | / | / + \| U1B |/ U1C |/ U1D + +We use four signals on the joystick connector: + ++5V (pin 1) 5V power supply +GND (pin 8) system ground +AN0 (pin 15) annunciator 0 output +PB2 (pin 4) pushbutton 2 input + +Something similar to DigiKey part # CDP16G-ND would be a suitable connector +to plug into the joystick connector, with a ribbon cable leading away to a +breadboard or an external enclosure for the circuit. If you built the +circuit on a PC board for in-computer installation, a 16-pin wire-wrap +socket would work (and would allow passthrough connection of a joystick or +paddles). To wire up the circuit on a breadboard, use this list of +connections: + +- pin 1 of the joystick connector to one end of R1 + to one end of C1 + to pins 14 and 13 of U1 +- pin 8 of the joystick connector to the other end of C1 + to pins 2, 4, 5, 7, 9, and 10 of U1 +- pin 15 of the joystick connector to pin 1 of U1 +- pin 4 of the joystick connector to pin 11 of U1 +- pin 12 of U1 to pin 3 of U1 + to the other end of R1 + to the data I/O pins of your 1-Wire devices + +The 1-Wire bus is held high by R1. Devices pull the bus low to send a +signal; the length of time they hold the bus low determines the type of +signal. When AN0 is off, the output of U1A is in a high-impedance state so +that 1-Wire devices can be read through U1B (wired as a buffer) on PB2. +When AN0 is on, the output of U1A is driven low to send a signal to the bus. +C1 is a bypass capacitor across the power-input pins of U1. Since U1 is a +CMOS device, the unused inputs of U1C and U1D are held low. + +Timing diagrams for the different signals used on the 1-Wire bus are in +Maxim application note #126 (available at +http://www.maxim-ic.com/appnotes.cfm/appnote_number/522/ln/en). + +At the time I wrote this, I was still waiting for a parts shipment to arrive +from DigiKey. I substituted a 74F00 and 74F125 from the junkbox, and the +circuit worked OK I suspect other logic types with TTL-compatible I/O would +also work. Use 1/4 of the 74F00 as an inverter between AN0 and pin 1 of the +74F125, since the outputs of the '125 are active when the control input is +low (on the '126, the outputs are active when the control input is high). + +This circuit doesn't provide parasitic power to 1-Wire devices, so make sure +their power and ground pins are connected to suitable supplies. Parasitic +power is described in the datasheets of those devices that support it; +modifying this interface to support it is left as an exercise for the +reader. diff --git a/main.c b/main.c index 1acba5b..255f551 100644 --- a/main.c +++ b/main.c @@ -1,3 +1,23 @@ +/* + + Apple II Beer Fridge Controller + Copyright (C) 2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include #include #include diff --git a/main.h b/main.h index e6239ee..bd1a2fe 100644 --- a/main.h +++ b/main.h @@ -1,3 +1,23 @@ +/* + + Apple II Beer Fridge Controller + Copyright (C) 2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef _MAIN_H #define _MAIN_H diff --git a/ow-apple2.s b/ow-apple2.s index cb466b9..3248c43 100644 --- a/ow-apple2.s +++ b/ow-apple2.s @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + ; Apple II-specific 1-Wire routines .export _ow_send1_impl diff --git a/ow-common.s b/ow-common.s index 5d46af2..644d363 100644 --- a/ow-common.s +++ b/ow-common.s @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + ; system-independent 1-Wire routines .export _ow_writebit diff --git a/ow-temp.c b/ow-temp.c index a76e29d..37721dc 100644 --- a/ow-temp.c +++ b/ow-temp.c @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include "ow-temp.h" #include diff --git a/ow-temp.h b/ow-temp.h index b7d41fd..f0646ec 100644 --- a/ow-temp.h +++ b/ow-temp.h @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef OW_TEMP_H #define OW_TEMP_H diff --git a/ow-time.c b/ow-time.c index 58fb8b5..bd43d15 100644 --- a/ow-time.c +++ b/ow-time.c @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include "ow-time.h" #include diff --git a/ow-time.h b/ow-time.h index cbd0b07..3555f9c 100644 --- a/ow-time.h +++ b/ow-time.h @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef OW_TIME_H #define OW_TIME_H diff --git a/ow.c b/ow.c index 8a7e700..7fa3967 100644 --- a/ow.c +++ b/ow.c @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include "ow.h" unsigned char ow_crc_lookup[256]= diff --git a/ow.h b/ow.h index 014c373..ca84442 100644 --- a/ow.h +++ b/ow.h @@ -1,3 +1,23 @@ +/* + + cc65 1-Wire Library + Copyright (C) 2003-2007 Scott Alfter (scott@alfter.us) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef OW_H #define OW_H