commit 147e155d52c7049f69fd569ba053490f9495d529 Author: dewdude Date: Mon Oct 29 15:41:46 2018 -0400 Initial C64 Commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d199723 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + 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 +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + Drugwar2e + Copyright (C) 2018 Jay Moore + + 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Drugwar2e Copyright (C) 2018 Jay Moore + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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 Lesser General +Public License instead of this License. But first, please read +. diff --git a/drugwar64.bas b/drugwar64.bas new file mode 100644 index 0000000..6294757 --- /dev/null +++ b/drugwar64.bas @@ -0,0 +1,765 @@ +10 rem drugwar64v101.bas - 29/10/2018 - 04h45 +20 rem drugwar/64 - version 1.01 +30 rem codebase: drugwar//e 1.03 +40 rem ported by: jay moore +50 rem "damn that was annoying" +60 rem 28-oct-2018 +70 rem copyright 2018 jay moore +80 rem released under gpl v3 +90 rem drugwar2e.sourceforge.io +100 rem twitter: _nq4t +110 poke 646,1 : poke 53281,0 : poke 53280,0 +120 rv=1.01 +130 goto 6960 +140 rem->titlebar +150 poke 214,0:poke 211,14:sys 58640 : ?"drugwar/64" +160 print chr$(18)" " +170 return +180 rem->wait +190 print +200 input "press enter to continue.";x$ +210 return +220 rem->twofifteen +230 poke 214,1 : poke 211,14:sys 58640 +240 return +250 rem->twosixteen +260 poke 214,1:poke 211,15:sys 58640 +270 return +280 rem->twoseventeen +290 poke 214,1:poke 211,16:sys 58640 +300 return +310 rem->twoeighteen +320 poke 214,1: poke 211,17:sys 58640 +330 return +340 rem->twonineteen +350 poke 214,1:poke 211,18:sys 58640 +360 return +370 rem->jetalthere +380 gosub 350:print chr$(18)"jet" +390 return +400 rem->timera +410 for j = 1 to 2500 +420 next j +430 k = int(rnd(2)+.5) +440 return +450 rem->timerb +460 for j = 1 to 1000 +470 next j +480 return +490 rem->timerc +500 for j = 1 to 2000 +510 next j +520 return +530 rem->howmuchbuy +540 print "you can afford ";j +550 print "you can carry ";f +560 rem->howmanybuy +570 print +580 input "how many? (enter 0 cancel): ";k +590 if k=0 goto 1200 +600 if k>f then print chr$(18)"you can't carry that much!" : goto 570 +610 if k>j then print chr$(18)"you can't afford that much!" : goto 570 +620 return +630 rem->howmuchsell +640 print "you can sell: ";j +650 print +660 rem->howmanysell +670 input "how many? (enter 0 to cancel.): ";k +680 if k>j then print "you don't have that many!" : goto 670 +690 if k=0 goto 1200 +700 return +710 rem->freespace +720 f=i-((g*5)+m+n+o+u+t+q) +730 return +740 rem->chase +750 gosub 230: print chr$(18)"being chased" +760 return +770 rem->gmod +780 gosub 260:print chr$(18)"game over" +790 return +800 rem->bronxcheck +810 if p$ = "the bronx" then return +820 print "you need to head to the bronx" +830 print "to take care of this business." +840 gosub 500 +850 goto 1200 +860 rem->daily +870 c=int(rnd(5)*12000+16000.5) +880 h=int(rnd(5)*7000+5000.5) +890 a=int((rnd(5)*34+10)*100+.5) +900 z=int((rnd(5)*42+33)*10+.5) +910 s=int((rnd(5)*15+7)*10+.5) +920 l=int((rnd(5)*4+1)*10+.5) +930 b=int(rnd(5)*20+.5) +940 d=d+1 +950 rem->checkday +960 if d >= 31 goto 7400 +970 return +980 rem->scorecalculate +990 k=(w+e)-v +1000 if k<0 then k=0 : return +1010 k=int(sqr((k/31.5)+.5)) +1020 if k>100 then k=100 +1030 return +1040 rem->gamestart +1050 w=2000 +1060 e=0 +1070 v=5000 +1080 p$="the bronx" +1090 g=0 +1100 i=100 +1110 m=0 +1120 n=0 +1130 o=0 +1140 u=0 +1150 t=0 +1160 q=0 +1170 gosub 870 +1180 goto 1200 +1190 rem->menu +1200 print chr$(147) +1210 gosub 720 +1220 gosub 150 +1230 poke 214,1:poke 211,3:sys 58640:print chr$(18)"day: "d +1240 poke 214,1:poke 211,17:sys 58640:print chr$(18)"location: "p$ +1250 print +1260 print "(c)heck prices" +1270 print "(t)renchcoat" +1280 print "(b)uy" +1290 print "(s)ell" +1300 print "(j)et" +1310 print "see (l)oan shark" +1320 print "(v)isit bank" +1330 print +1340 input "please make your selection: ";x$ +1350 if x$ = "c" goto 1440 +1360 if x$ = "t" goto 1580 +1370 if x$ = "b" goto 1720 +1380 if x$ = "s" goto 1930 +1390 if x$ = "j" goto 2170 +1400 if x$ = "l" goto 2420 +1410 if x$ = "v" goto 2560 +1420 goto 1200 +1430 rem->prices +1440 print chr$(147) +1450 gosub 150 +1460 gosub 320:print chr$(18)"prices" +1470 print +1480 print"cocaine:","$"c +1490 print"heroin:","$"h +1500 print"acid:","$"a +1510 print"weed:","$"z +1520 print"speed:","$"s +1530 print"ludes:","$"l +1540 print"wallet:","$"w +1550 gosub 190 +1560 goto 1200 +1570 rem->inventory +1580 print chr$(147) +1590 gosub 150 +1600 gosub 260 :print chr$(18)"trenchcoat" +1610 print +1620 print"cocaine:",m +1630 print"heroin:",n +1640 print"acid:",o +1650 print"weed:",u +1660 print"speed:",t +1670 print"ludes:",q +1680 print"free space:",f +1690 gosub 190 +1700 goto 1200 +1710 rem->buy +1720 print chr$(147) +1730 gosub 150 +1740 gosub 350: print chr$(18)"buy" +1750 print +1760 print"what do you want to buy?" +1770 print +1780 print "(c)ocaine" +1790 print "(h)eroin" +1800 print "(a)cid" +1810 print "(w)eed" +1820 print "(s)peed" +1830 print "(l)udes" +1840 input "enter selection: ";x$ +1850 if x$="c" goto 2700 +1860 if x$="h" goto 2790 +1870 if x$="a" goto 2880 +1880 if x$="w" goto 2970 +1890 if x$="s" goto 3060 +1900 if x$="l" goto 3150 +1910 goto 1200 +1920 rem->sell +1930 print chr$(147) +1940 gosub 150 +1950 gosub 320: print chr$(18)"sell" +1960 print +1970 print "what would you like to sell?" +1980 print +1990 print "(c)ocaine" +2000 print "(h)eroin" +2010 print "(a)cid" +2020 print "(w)eed" +2030 print "(s)peed" +2040 print "(l)udes" +2050 rem->sellsel +2060 input "enter selection: (0 to cancel)";x$ +2070 if x$="c" goto 3240 +2080 if x$="h" goto 3340 +2090 if x$="a" goto 3440 +2100 if x$="w" goto 3540 +2110 if x$="s" goto 3640 +2120 if x$="l" goto 3740 +2130 if x$="0" goto 1200 +2140 print "invalid selection!" +2150 goto 2060 +2160 rem->jet +2170 print chr$(147) +2180 gosub 150 +2190 gosub 380 +2200 print +2210 print "(b)ronx" +2220 print "(g)hetto" +2230 print "(c)entral park +2240 print "(m)anhattan" +2250 print "coney (i)sland" +2260 print "broo(k)lyn" +2270 print "(o)ops...stay!" +2280 input "where to dude? ";x$ +2290 if x$="b" then y$ = "the bronx" : goto 2380 +2300 if x$="g" then y$ = "the ghetto" : goto 2380 +2310 if x$="c" then y$ = "central park" : goto 2380 +2320 if x$="m" then y$ = "manhattan" : goto 2380 +2330 if x$="i" then y$ = "coney island" : goto 2380 +2340 if x$="k" then y$ = "brooklyn" : goto 2380 +2350 if x$="o" then goto 1200 +2360 goto 2170 +2370 rem->jetb +2380 if y$=p$ then goto 3840 +2390 p$ = y$ : y$ = "" +2400 goto 3930 +2410 rem->loan +2420 print chr$(147) +2430 gosub 150 +2440 gosub 260:print chr$(18)"loan shark" +2450 print +2460 gosub 810 +2470 print "your debt is: $";v +2480 print "you have: $";w +2490 print +2500 input "(r)epay, (b)orrow, (l)eave: ";x$ +2510 if x$ = "r" then goto 6540 +2520 if x$ = "b" then goto 6630 +2530 if x$ = "l" then goto 1200 +2540 goto 2420 +2550 rem->bank +2560 print chr$(147) +2570 gosub 150 +2580 gosub 230: print chr$(18)"bank o'murica" +2590 print +2600 gosub 810 +2610 print "your balance: $";e +2620 print "your wallet: $";w +2630 print +2640 input "(d)eposit, (w)ithdraw, (l)eave: ";x$ +2650 if x$ = "d" then goto 6760 +2660 if x$ = "w" then goto 6860 +2670 if x$ = "l" then goto 1200 +2680 goto 2560 +2690 rem->cokebuy +2700 print chr$(147) +2710 gosub 150 +2720 gosub 260: print chr$(18)"buy cocaine" +2730 print +2740 j=int(w/c) +2750 gosub 540 +2760 m=m+k : w=w-(c*k) +2770 goto 1200 +2780 rem->herbuy +2790 print chr$(147) +2800 gosub 150 +2810 gosub 260: print chr$(18)"buy heroin" +2820 print +2830 j=int(w/h) +2840 gosub 540 +2850 n=n+k : w=w-(h*k) +2860 goto 1200 +2870 rem->acidbuy +2880 print chr$(147) +2890 gosub 150 +2900 gosub 290:print chr$(18)"buy acid" +2910 print +2920 j=int(w/a) +2930 gosub 540 +2940 o=o+k : w=w-(a*k) +2950 goto 1200 +2960 rem->weedbuy +2970 print chr$(147) +2980 gosub 150 +2990 gosub 290: print chr$(18)"buy weed" +3000 print +3010 j=int(w/z) +3020 gosub 540 +3030 u=u+k : w=w-(z*k) +3040 goto 1200 +3050 rem->spdbuy +3060 print chr$(147) +3070 gosub 150 +3080 gosub 290: print chr$(18)"buy speed" +3090 print +3100 j=int(w/s) +3110 gosub 540 +3120 t=t+k : w=w-(s*k) +3130 goto 1200 +3140 rem->ludbuy +3150 print chr$(147) +3160 gosub 150 +3170 gosub 290: print chr$(18)"buy ludes" +3180 print +3190 j=int(w/l) +3200 gosub 540 +3210 q=q+k : w=w-(l*k) +3220 goto 1200 +3230 rem->cokesell +3240 print chr$(147) +3250 gosub 150 +3260 gosub 230:print chr$(18)"sell cocaine" +3270 print +3280 j=m +3290 gosub 640 +3300 m=m-k +3310 w=w+(c*k) +3320 goto 1200 +3330 rem->hersell +3340 print chr$(147) +3350 gosub 150 +3360 gosub 290:print chr$(18)"sell heroin" +3370 print +3380 j=n +3390 gosub 640 +3400 n=n-k +3410 w=w+(h*k) +3420 goto 1200 +3430 rem->acidsell +3440 print chr$(147) +3450 gosub 150 +3460 gosub 290: print chr$(18)"sell acid" +3470 print +3480 j=o +3490 gosub 640 +3500 o=o-k +3510 w=w+(a*k) +3520 goto 1200 +3530 rem->weedsell +3540 print chr$(147) +3550 gosub 150 +3560 gosub 290:print chr$(18)"sell weed" +3570 print +3580 j=u +3590 gosub 640 +3600 u=u-k +3610 w=w+(z*k) +3620 goto 1200 +3630 rem->spdsell +3640 print chr$(147) +3650 gosub 150 +3660 gosub 260:print chr$(18)"sell speed" +3670 print +3680 j=t +3690 gosub 640 +3700 t=t-k +3710 w=w+(s*k) +3720 goto 1200 +3730 rem->ludsell +3740 print chr$(147) +3750 gosub 150 +3760 gosub 260:print chr$(18)"sell ludes" +3770 print +3780 j=q +3790 gosub 640 +3800 q=q-k +3810 w=w+(l*k) +3820 goto 1200 +3830 rem->alreadythere +3840 print chr$(147) +3850 gosub 150 +3860 gosub 380 +3870 print +3880 print "you're already in:" +3890 print " ";p$ +3900 gosub 500 +3910 goto 2170 +3920 rem->subway +3930 print chr$(147) +3940 gosub 870 +3950 v=int(v*1.1+.5) +3960 e=int(e*1.06+.5) +3970 gosub 150 +3980 gosub 320:print chr$(18)"subway" +3990 print +4000 if b=1 then goto 4250 +4010 if b=2 then goto 4300 +4020 if b=3 then goto 4350 +4030 if b=4 then goto 4410 +4040 if b=5 then goto 4410 +4050 if b=6 then goto 4470 +4060 if b=7 then goto 4470 +4070 if b=8 then goto 4530 +4080 if b=9 then goto 4630 +4090 if b=10 then goto 4630 +4100 if b=11 then goto 4630 +4110 if b=12 then goto 6020 +4120 if b=13 then goto 6020 +4130 if b=14 then goto 6160 +4140 if b=15 then goto 6230 +4150 if b=16 then goto 6310 +4160 if b=17 then goto 6480 +4170 rem->nothinghappened +4180 rem->nothinghappens +4190 print +4200 print "welcome to ";p$ +4210 print +4220 gosub 500 +4230 goto 1200 +4240 rem->cheapludes +4250 print "rival dealers are selling cheap ludes!" +4260 l=2 +4270 gosub 500 +4280 goto 1200 +4290 rem->cheepweed +4300 print "weed prices have bottomed-out!" +4310 z=122 +4320 gosub 500 +4330 goto 1200 +4340 rem->pigheroin +4350 print "pigs are selling cheap heroin" +4360 print "from last week's raid!" +4370 h=int((rnd(9)*1150)+850.5) +4380 gosub 500 +4390 goto 1200 +4400 rem->heroinbust +4410 print "addicts are buying heroin" +4420 print "at outrageous prices!" +4430 h=int((rnd(9)*25000)+18000.5) +4440 gosub 500 +4450 goto 1200 +4460 rem->cokebust +4470 print "pigs made a big coke bust!" +4480 print "prices are outrageous!!!!" +4490 c=int((rnd(9)*60000)+80000.5) +4500 gosub 500 +4510 goto 1200 +4520 rem->mugged +4530 print "you got mugged!" +4540 print +4550 j=int(w/3) +4560 j=int(j*2) +4570 k=int(w-j) +4580 print "you lost $";k +4590 w=j +4600 gosub 500 +4610 gosub 1200 +4620 rem->cops +4630 k=m+n+u+o+t+p +4640 if k<50 then goto 4180 +4650 if b=9 then b = 2 +4660 if b=10 then b=4 +4670 if b=11 then b=5 +4680 print "it's the cops!" +4690 print +4700 print "officer hardass and ";b-1;" of his" +4710 print "deputies are after you!" +4720 print +4730 gosub 500 +4740 goto 4760 +4750 rem->police +4760 print chr$(147) +4770 gosub 150 +4780 gosub 750 +4790 print +4800 print +4810 print "view (g)uns" +4820 print "view (d)amage" +4830 print "(n)umber of pigs" +4840 print "(r)un" +4850 print "(f)ight" +4860 print +4870 input "what do you want to do? ";x$ +4880 if x$="g" goto 4950 +4890 if x$ = "d" goto 5050 +4900 if x$ = "n" goto 5170 +4910 if x$ = "r" goto 5280 +4920 if x$="f" goto 5450 +4930 goto 4760 +4940 rem->pgun +4950 print chr$(147) +4960 gosub 150 +4970 gosub 750 +4980 print +4990 print +5000 print "you have ";g;" guns. +5010 print +5020 gosub 190 +5030 goto 4760 +5040 rem->damage +5050 print chr$(147) +5060 gosub 150 +5070 gosub 750 +5080 print +5090 print +5100 print "your current damage is ";bb;"." +5110 print +5120 print "50 and you die!" +5130 print +5140 gosub 190 +5150 goto 4760 +5160 rem->ncops +5170 print chr$(147) +5180 gosub 150 +5190 gosub 750 +5200 print +5210 print +5220 print "there are ";b;" pigs still chasing you!" +5230 print +5240 print +5250 gosub 190 +5260 goto 4760 +5270 rem->run +5280 print chr$(147) +5290 gosub 150 +5300 gosub 750 +5310 print +5320 print +5330 print "running..." +5340 gosub 410 +5350 if k = 0 then print "you lost them in an alley!" : goto 5410 +5360 print "you can't shake them!" +5370 print +5380 gosub 190 +5390 goto 4760 +5400 rem->loserun +5410 print +5420 gosub 190 +5430 goto 1200 +5440 rem->fight +5450 if g>0 then goto 5510 +5460 print +5470 print "you don't have any guns!" +5480 gosub 190 +5490 goto 4760 +5500 rem->fightc +5510 print chr$(147) +5520 gosub 150 +5530 gosub 750 +5540 print +5550 print "you shoot!" +5560 gosub 410 +5570 if k=0 then goto 5600 +5580 print "you got one!" : b = b-1 : goto 5620 +5590 rem->miss +5600 print "you missed!" +5610 rem->next +5620 print +5630 print +5640 if b <= 0 then goto 5840 +5650 gosub 460 +5660 print "they're firing at you!" +5670 gosub 410 +5680 if k=0 then goto 5740 +5690 print "you've been hit!" +5700 bb=bb+3 +5710 if bb >= 50 goto 5790 +5720 goto 5760 +5730 rem->theymiss +5740 print "they missed!" +5750 rem->nexta +5760 gosub 190 +5770 goto 4760 +5780 rem->ded +5790 print +5800 print "you've been killed!" +5810 gosub 190 +5820 goto 7400 +5830 rem->allgone +5840 print "you killed all of them!" +5850 print +5860 gosub 410 +5870 j=int(((rnd(7)*1250)+750)+.5) +5880 w=w+j +5890 print "you found $";j;" on officer hardass'" +5900 print "carcass!" +5910 if w>=1200 then goto 5940 +5920 goto 1200 +5930 rem->doctor +5940 gosub 500 +5950 print +5960 print "will you pay $1000 for a doctor" +5970 input "to sew you up? (y/n)";x$ +5980 if x$ <> "y" then goto 1200 +5990 w=w-1000 +6000 bb=0 +6010 rem->gunbuy +6020 if w < 500 then goto 4180 +6030 gosub 720 +6040 if f < 5 then goto 4180 +6050 j=int((rnd(4)*2)+.5) +6060 if j = 0 then y$ = "baretta" +6070 if j = 1 then y$ = "saturday night special" +6080 if j = 2 then y$ = ".44 magnum" +6090 print "will you buy a ";y$ +6100 input "for $400? (y/n)";x$ +6110 if x$ <> "y" then goto 1200 +6120 g = g+1 +6130 w = w-400 +6140 goto 1200 +6150 rem->dedweed +6160 print "there's some weed here that smells" +6170 print "like good stuff!!" +6180 print +6190 input "will you smoke it? (y/n)";x$ +6200 if x$ = "y" then goto 7270 +6210 goto1200 +6220 rem->newcoat +6230 if w<300 then goto 4190 +6240 print "will you buy a new trenchcoat" +6250 input "with more pockets for $200? (y/n)";x$ +6260 if x$ <> "y" then goto 1200 +6270 i=i+10 +6280 w=w-200 +6290 goto 1200 +6300 rem->dedguy +6310 gosub 720 +6320 if f<8 then goto 4190 +6330 j=int((rnd(3)*7)+1.5) +6340 k=int(rnd(3)*5+.5) +6350 if k=0 then q=q+j : y$ = "ludes" +6360 if k=1 then t=t+j : y$ = "speed" +6370 if k=2 then u=u+j : y$ = "weed" +6380 if k=3 then o=o+j : y$ = "acid" +6390 if k=4 then n=n+j : y$ = "heroin" +6400 if k=5 then m=m+j : y$ = "cocaine" +6410 print "you found ";j;" units of" +6420 print " ";y$ +6430 print "on a dead dude in the subway!" +6440 print +6450 gosub 500 +6460 goto 1200 +6470 rem->homeacid +6480 print "the market has been flooded" +6490 print "with cheap home-made acid!" +6500 a=int((rnd(4)*550)+250.5) +6510 gosub 500 +6520 goto 1200 +6530 rem->payme +6540 input "repay how much? ";k +6550 if k>w then print:print "you don't have that much!" : gosub 460 : goto 2420 +6560 if k>v then print:print "you don't owe that much!" : gosub 460 : goto 2420 +6570 w=w-k +6580 v=v-k +6590 print:print "thank you." +6600 gosub 500 +6610 goto 1200 +6620 rem->borrow +6630 print +6640 input "how much do you want? ";k +6650 print +6660 j=int((rnd(10)*10000)+5000) +6670 if k>14000 then print "he's not that stupid!" : gosub 500 : goto 1200 +6680 if k > j then print "he doesn't feel like it." : gosub 460 : goto 1200 +6690 v=v+k +6700 w=w+k +6710 print +6720 print "here's your money." : print : print "remember, i break thumbs." +6730 gosub 500 +6740 goto 1200 +6750 rem->deposit +6760 print +6770 input "how much? ";j +6780 if j>w then print "you don't have that much cash." : goto 6760 +6790 e=e+j +6800 w=w-j +6810 print +6820 print "thank you for your deposit." +6830 gosub 500 +6840 goto 1200 +6850 rem->mymoney +6860 print +6870 input "how much? ";j +6880 if j>e then print "you don't have sufficient funds." : goto 6860 +6890 e=e-j +6900 w=w+j +6910 print +6920 print "thank you for your business." +6930 gosub 500 +6940 goto 1200 +6950 rem->instructions +6960 print chr$(147) +6970 poke 211,3:sys 58640:print "welcome to drugwar/64 version";rv +6980 poke 211,5:sys 58640: print "ported from drugwar//e v 1.03":?:?:?:?:? +6990 ?: ? : poke 211,5:sys 58640:? "based on the ti-basic clone of" +7000 poke 211,7:sys 58640:print "john e. dell's 1984 drugwar" +7010 poke 211,11:sys 58640:print "for ibm and trs-80":?:? +7020 ?:?:poke 211,6:sys 58640:?"applesoft version by jay moore" +7030 poke 211,10:sys 58640: print "c64 port by jay moore" +7040 poke 211,1 : poke 214,23 : sys 58640 +7050 input "would you like instructions? (y/n)";x$ +7060 j=rnd(-ti) +7070 if x$ = "y" then goto 7100 +7080 goto 1050 +7090 rem->inst +7100 print chr$(147) +7110 gosub 150 +7120 print +7130 print "this is a game of buying and selling." +7140 print "your goal is to pay off your debt and" +7150 print "make as much money as possible in a one" +7160 print "month period. prices fluctuate every day" +7170 print "and interest on your loan is calculated as well." +7180 print:print "if you deal too heavily, you'll attract the attention" +7190 print "of the police." +7200 print +7210 print "commands are entered using the letter" +7220 print "highlighted (l)ike (s)o. y is yes and" +7230 print "anything counts as no." +7240 gosub 190 +7250 goto 1050 +7260 rem->weedend +7270 print chr$(147) +7280 gosub 150 +7290 gosub 230: print chr$(18)"smoke weed" +7300 print "you hallucinate on the wildest trip" +7310 print "of your life, stumble on to the tracks," +7320 print "and get creamed by a train!" +7330 print +7340 print +7350 poke 211,7:sys 58640:? "just say no to drugs!" +7360 gosub 500 +7370 gosub 460 +7380 goto 7540 +7390 rem->endgame +7400 print chr$(147) +7410 gosub 150 +7420 gosub 990 +7430 gosub 780 +7440 print +7450 print "your score on a scale of 1 to 100: ";k +7460 print +7470 input "would you like to play again? (y/n)";x$ +7480 if x$ = "y" then goto 1050 +7490 print "thanks for playing." +7500 print "remember, watch your back." +7510 print "have a nice day!" +7520 end +7530 rem->ironicend +7540 print chr$(147) +7550 gosub 150 +7560 gosub 780 +7570 print +7580 print "you died from smoking weed." +7590 print +7600 print +7610 gosub 500: print"see? games are totally fake." +7620 print +7630 input "would you like to play again? ";x$ +7640 if x$= "y" then goto 1050 +7650 end diff --git a/drugwar64.baz b/drugwar64.baz new file mode 100644 index 0000000..f0b1622 --- /dev/null +++ b/drugwar64.baz @@ -0,0 +1,836 @@ +rem Drugwar/64 - Version 1.01 +rem Codebase: Drugwar//e 1.03 +rem Ported by: Jay Moore +rem "Damn that was annoying" +rem 28-OCT-2018 +rem Copyright 2018 Jay Moore +rem Released under GPL v3 +rem drugwar2e.sourceforge.io +rem twitter: _nq4t + poke 646,1 : poke 53281,0 : poke 53280,0 {set border,bg,text colors} + rv=1.01 + goto @instructions {because we're sticking subroutines up here} + +£titlebar {this literally just draws the game title at the top of the screen} + poke 214,0:poke 211,14:sys 58640 : ?"drugwar/64" + print CHR$(18)" " + return +£wait {ubiquitious "Press ENTER to continue} + print + input "Press enter to continue.";x$ + return +£twofifteen + POKE 214,1 : poke 211,14:sys 58640 + return +£twosixteen + POKE 214,1:poke 211,15:sys 58640 + return +£twoseventeen + POKE 214,1:poke 211,16:sys 58640 + return +£twoeighteen + POKE 214,1: poke 211,17:sys 58640 + return +£twonineteen + POKE 214,1:poke 211,18:sys 58640 + return +£jetalthere + gosub @twonineteen:print CHR$(18)"Jet" + return +£timera + for j = 1 to 2500 + next j + k = int(rnd(2)+.5) + return +£timerb + for j = 1 to 1000 + next j + return +£timerc + for j = 1 to 2000 + next j + return +[ +"Common logic" has been moved to buy/sell subroutines. +This has cleaned the code up a bit +] + +£howmuchbuy {some common purchase code} + print "You can afford ";j + print "You can carry ";f +£howmanybuy + print + input "How many? (Enter 0 cancel): ";k + if K=0 goto @menu + if k>f THEN print CHR$(18)"You can't carry that much!" : goto @howmanybuy + if k>j THEN print CHR$(18)"You can't afford that much!" : goto @howmanybuy + return + +£howmuchsell {common sell code} + print "You can sell: ";j + print +£howmanysell + input "How many? (Enter 0 to cancel.): ";k + If k>j then print "You don't have that many!" : goto @howmanysell + if K=0 goto @menu + return + +£freespace + f=i-((g*5)+m+n+o+u+t+q) + return +£chase + gosub @twofifteen: print CHR$(18)"Being Chased" + return +£gmod + gosub @twosixteen:print chr$(18)"Game Over" + return +£bronxcheck + if p$ = "THE BRONX" then return + print "you need to head to the bronx" + print "to take care of this business." + gosub @timerc + goto @menu + + +£daily {randomizes drug prices, adds a day, calculates interests, checks day number} + c=int(rnd(5)*12000+16000.5) + h=int(rnd(5)*7000+5000.5) + a=int((rnd(5)*34+10)*100+.5) + z=int((rnd(5)*42+33)*10+.5) + s=int((rnd(5)*15+7)*10+.5) + l=int((rnd(5)*4+1)*10+.5) + b=int(rnd(5)*20+.5) + d=d+1 +£checkday {so I can check the day by itself} + if D >= 31 GOTO @endgame + return + +£scorecalculate + k=(w+e)-v + if k<0 THEN k=0 : return + k=int(sqr((k/31.5)+.5)) + if k>100 then k=100 + return + +£gamestart {set wallet, debt, location, inventory space, zero out inventory} + w=2000 + e=0 + v=5000 + p$="The Bronx" + g=0 + i=100 + m=0 + n=0 + o=0 + u=0 + t=0 + q=0 + gosub @daily {the only time we'll call this outside of the subway} + goto @menu {the real start of the game} + +£menu {main menu. everything should loop back here} + PRINT CHR$(147) + gosub @freespace + gosub @titlebar + POKE 214,1:POKE 211,3:SYS 58640:print CHR$(18)"Day: "D + POKE 214,1:POKE 211,17:SYS 58640:print CHR$(18)"Location: "p$ + print + print "(C)heck Prices" + print "(T)renchcoat" + print "(B)uy" + print "(S)ell" + print "(J)et" + print "See (L)oan shark" + print "(V)isit Bank" + print + input "Please make your selection: ";x$ + if x$ = "C" goto @prices + if x$ = "T" goto @inventory + if x$ = "B" goto @buy + if x$ = "S" goto @sell + if x$ = "J" goto @jet + if x$ = "L" goto @loan + if x$ = "V" goto @bank + {if x$="debug" goto @debug} + goto @menu + +[ +£debug +print "Testing Screen" +print +print "(w)allet,(g)uns,(v)debt,(e)savings,(i)nventory space" +input "What to change?";db$ +input "To?";dx +if db$ = "w" then w=dx +if db$ = "g" then g=dx +if db$="v" then v=dx +if db$="e" then e=dx +if db$="i" then i=dx +goto @menu +] + +£prices + PRINT CHR$(147) + gosub @titlebar + gosub @twoeighteen:print CHR$(18)"Prices" + print + print"cocaine:","$"c + print"heroin:","$"h + print"acid:","$"a + print"weed:","$"z + print"speed:","$"s + print"ludes:","$"l + print"wallet:","$"w + gosub @wait + goto @menu +£inventory + PRINT CHR$(147) + gosub @titlebar + gosub @twosixteen :print CHR$(18)"Trenchcoat" + print + print"cocaine:",m + print"heroin:",n + print"acid:",o + print"weed:",u + print"speed:",t + print"ludes:",q + print"free space:",f + gosub @wait + goto @menu +£buy + PRINT CHR$(147) + gosub @titlebar + gosub @twonineteen: print CHR$(18)"Buy" + print + print"What do you want to buy?" + print + print "(C)ocaine" + print "(H)eroin" + print "(A)cid" + print "(W)eed" + print "(S)peed" + print "(L)udes" + input "Enter Selection: ";x$ + if x$="c" goto @cokebuy + if x$="h" goto @herbuy + if x$="a" goto @acidbuy + if x$="w" goto @weedbuy + if x$="s" goto @spdbuy + if x$="l" goto @ludbuy + goto @menu + +£sell + PRINT CHR$(147) + gosub @titlebar + gosub @twoeighteen: print CHR$(18)"Sell" + print + print "What would you like to sell?" + print + print "(C)ocaine" + print "(H)eroin" + print "(A)cid" + print "(W)eed" + print "(S)peed" + print "(L)udes" +£sellsel + input "Enter Selection: (0 to cancel)";x$ + if x$="c" goto @cokesell + if x$="h" goto @hersell + if x$="a" goto @acidsell + if x$="w" goto @weedsell + if x$="s" goto @spdsell + if x$="l" goto @ludsell + if x$="0" goto @menu + print "Invalid Selection!" + goto @sellsel +£jet + PRINT CHR$(147) + gosub @titlebar + gosub @jetalthere + print + print "(B)ronx" + print "(G)hetto" + print "(C)entral Park + print "(M)anhattan" + print "Coney (I)sland" + print "Broo(K)lyn" + print "(O)ops...stay!" + input "Where to dude? ";x$ + if x$="B" then y$ = "The Bronx" : GOTO @jetb {we can use strings} + if x$="G" then y$ = "The Ghetto" : GOTO @jetb + if x$="C" then y$ = "Central Park" : GOTO @jetb + if x$="M" then y$ = "Manhattan" : goto @jetb + if x$="I" then y$ = "Coney Island" : goto @jetb + if x$="K" then y$ = "Brooklyn" : goto @jetb + if x$="O" then goto @menu + {if x$="COPTEST" then b = 5 : goto @police} + goto @jet +£jetb + {input "event: ";ev testing/debug} + if y$=p$ then goto @alreadythere {more advanced thatn Bronx only on TI} + p$ = y$ {it's valid, copy it and move along} : y$ = "" + goto @subway + +£loan + PRINT CHR$(147) + gosub @titlebar + Gosub @twosixteen:print CHR$(18)"Loan Shark" + print + gosub @bronxcheck + print "Your debt is: $";v + print "You have: $";w + print + input "(R)epay, (B)orrow, (L)eave: ";X$ + If X$ = "R" THEN goto @payme + If X$ = "B" Then goto @borrow + If X$ = "L" then goto @Menu + goto @loan + +£bank + PRINT CHR$(147) + gosub @titlebar + gosub @twofifteen: print CHR$(18)"Bank O'Murica" + print + gosub @bronxcheck + print "Your balance: $";e + print "Your wallet: $";w + print + INPUT "(D)EPOSIT, (W)ITHDRAW, (L)EAVE: ";X$ + if x$ = "d" then goto @deposit + if x$ = "w" then goto @mymoney + if x$ = "l" then goto @menu + {if x$ = eg$ then goto @egg} + goto @bank + +£cokebuy + PRINT CHR$(147) + gosub @titlebar + gosub @twosixteen: print CHR$(18)"Buy Cocaine" + print + j=int(w/c) {calculate how many we can buy} + gosub @howmuchbuy + m=m+k : w=w-(c*k) {when the subroutine sends us back when the purchase is valid} + goto @menu +£herbuy + PRINT CHR$(147) + gosub @titlebar + gosub @twosixteen: print CHR$(18)"Buy Heroin" + print + j=int(w/h) + gosub @howmuchbuy + n=n+k : w=w-(h*k) + goto @menu +£acidbuy + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen:print CHR$(18)"Buy Acid" + print + j=int(w/a) + gosub @howmuchbuy + o=o+k : w=w-(a*k) + goto @menu +£weedbuy + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen: print CHR$(18)"Buy Weed" + print + j=int(w/z) + gosub @howmuchbuy + u=u+k : w=w-(z*k) + goto @menu +£spdbuy + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen: print CHR$(18)"Buy Speed" + print + j=int(w/s) + gosub @howmuchbuy + t=t+k : w=w-(s*k) + goto @menu +£ludbuy + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen: print CHR$(18)"Buy Ludes" + print + j=int(w/l) + gosub @howmuchbuy + q=q+k : w=w-(l*k) + goto @menu + + +£cokesell + PRINT CHR$(147) + gosub @titlebar + gosub @twofifteen:print CHR$(18)"Sell Cocaine" + print + j=m {write amount to variable} + gosub @howmuchsell {some buy logic} + m=m-k {sub sends back here if valid, adjusts inventory} + w=w+(c*k) {adds money to wallet} + goto @menu + +£hersell + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen:print CHR$(18)"Sell Heroin" + print + j=n + gosub @howmuchsell + n=n-k + w=w+(h*k) + goto @menu + +£acidsell + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen: print CHR$(18)"Sell Acid" + print + j=o + gosub @howmuchsell + o=o-k + w=w+(a*k) + goto @menu + +£weedsell + PRINT CHR$(147) + gosub @titlebar + gosub @twoseventeen:print CHR$(18)"Sell Weed" + print + j=u + gosub @howmuchsell + u=u-k + w=w+(z*k) + goto @menu + +£spdsell + PRINT CHR$(147) + gosub @titlebar + gosub @twosixteen:print CHR$(18)"Sell Speed" + print + j=t + gosub @howmuchsell + t=t-k + w=w+(s*k) + goto @menu + +£ludsell + PRINT CHR$(147) + gosub @titlebar + gosub @twosixteen:print CHR$(18)"Sell Ludes" + print + j=q + gosub @howmuchsell + q=q-k + w=w+(l*k) + goto @menu + +£alreadythere + PRINT CHR$(147) + gosub @titlebar + gosub @jetalthere + print + print "You're already in:" + print " ";p$ + gosub @timerc + goto @jet + +£subway + PRINT CHR$(147) + gosub @daily + {b=ev debugging code} + V=int(V*1.1+.5) {loan calculation} + E=int(E*1.06+.5) {savings calculation} + gosub @titlebar + gosub @twoeighteen:print CHR$(18)"Subway" + print + if b=1 then goto @cheapludes + if b=2 then goto @cheepweed + if b=3 then goto @pigheroin + if b=4 then goto @heroinbust + if b=5 then goto @heroinbust + if b=6 then goto @cokebust + if b=7 then goto @cokebust + if b=8 then goto @mugged + if b=9 then goto @cops + if b=10 then goto @cops + if b=11 then goto @cops + if b=12 then goto @gunbuy + if b=13 then goto @gunbuy + if b=14 then goto @dedweed + if b=15 then goto @newcoat + if b=16 then goto @dedguy + if b=17 then goto @homeacid +£nothinghappened +£nothinghappens + print {the only way you should wind up here is if nothing happens} + print "Welcome to ";p$ {i hope} + print + gosub @timerc + goto @menu + + +£cheapludes + print "Rival dealers are selling cheap ludes!" + l=2 + gosub @timerc + goto @menu +£cheepweed + print "Weed prices have bottomed-out!" + z=122 + gosub @timerc + goto @menu +£pigheroin + print "Pigs are selling cheap heroin" + print "from last week's raid!" + h=int((rnd(9)*1150)+850.5) + gosub @timerc + goto @menu +£heroinbust + print "Addicts are buying heroin" + print "at outrageous prices!" + h=int((rnd(9)*25000)+18000.5) + gosub @timerc + goto @menu +£cokebust + print "Pigs made a big coke bust!" + print "Prices are outrageous!!!!" + c=int((rnd(9)*60000)+80000.5) {the infamous line 930} + gosub @timerc + goto @menu +£mugged + print "You got mugged!" + print + j=int(w/3) + j=int(j*2) + k=int(w-j) + print "You lost $";k + w=j + gosub @timerc + gosub @menu +£cops + k=m+n+u+o+t+p {cops only active when inventory > 50} +[ +my improved revisions will likely add some additional +conditions on how/when we run cops +] + if k<50 then goto @nothinghappened + if b=9 then b = 2 + if b=10 then b=4 + if b=11 then b=5 + print "It's the cops!" + print + print "Officer Hardass and ";B-1;" of his" + print "deputies are after you!" + print + gosub @timerc + goto @police +£police + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print + print "View (G)uns" + print "View (D)amage" + print "(N)umber of pigs" + print "(R)un" + print "(F)ight" + print + input "What do you want to do? ";x$ + if x$="G" goto @pgun + if x$ = "D" goto @damage + if x$ = "N" goto @ncops + if x$ = "R" goto @run + if X$="F" goto @fight + goto @police +£pgun + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print + print "You have ";g;" guns. + print + gosub @wait + goto @police +£damage + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print + print "Your current damage is ";bb;"." + print + print "50 and you die!" + print + gosub @wait + goto @police +£ncops + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print + print "There are ";b;" pigs still chasing you!" + print + print + gosub @wait + goto @police +£run + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print + print "RUNNING..." + gosub @timera + if k = 0 then print "You lost them in an alley!" : goto @loserun + print "You can't shake them!" + print + gosub @wait + goto @police +£loserun + print + gosub @wait + goto @menu +£fight + if g>0 then goto @fightc + print + print "YOU DON'T HAVE ANY GUNS!" + gosub @wait + goto @police +£fightc + PRINT CHR$(147) + gosub @titlebar + gosub @chase + print + print "You shoot!" + gosub @timera + If K=0 THEN GOTO @miss + print "You got one!" : b = b-1 : goto @next +£miss + print "You missed!" +£next + print + print + If b <= 0 THEN goto @allgone + gosub @timerb + print "They're firing at you!" + gosub @timera + if k=0 then goto @theymiss + print "You've been hit!" + bb=bb+3 + if bb >= 50 goto @ded + goto @nexta +£theymiss + print "They missed!" +£nexta + gosub @wait + goto @police +£ded + print + print "You've been killed!" + gosub @wait + goto @endgame + +£allgone + print "You killed all of them!" + print + gosub @timera + j=int(((rnd(7)*1250)+750)+.5) + w=w+j + print "You found $";j;" on officer Hardass'" + print "carcass!" + if w>=1200 then goto @doctor + goto @menu +£doctor + gosub @timerc + print + print "Will you pay $1000 for a doctor" + input "to sew you up? (Y/N)";x$ + if X$ <> "Y" then goto @menu + w=w-1000 + bb=0 + +£gunbuy + if w < 500 THEN goto @nothinghappened + gosub @freespace + if f < 5 THEN goto @nothinghappened + j=int((rnd(4)*2)+.5) + if j = 0 then y$ = "Baretta" + if j = 1 then y$ = "Saturday Night Special" + if j = 2 then y$ = ".44 Magnum" + print "Will you buy a ";y$ + input "for $400? (Y/N)";x$ + if x$ <> "Y" then goto @menu + g = g+1 + w = w-400 + {i = i-5} + goto @menu +£dedweed {don't smoke the weed} + print "There's some weed here that smells" + print "like good stuff!!" + print + input "Will you smoke it? (Y/N)";X$ + If X$ = "Y" THEN GOTO @weedend + goto@menu +£newcoat + if w<300 then goto @nothinghappens {only if you can afford it} + print "Will you buy a new trenchcoat" + input "with more pockets for $200? (Y/N)";X$ + if X$ <> "Y" then goto @menu + i=i+10 + w=w-200 + goto @menu +£dedguy + gosub @freespace + If f<8 THEN goto @nothinghappens {only if you have enough freespace} + j=int((rnd(3)*7)+1.5) + k=int(rnd(3)*5+.5) + if k=0 THEN q=q+j : y$ = "Ludes" + if k=1 THEN t=t+j : y$ = "Speed" + if k=2 THEN u=u+j : y$ = "Weed" + if k=3 THEN o=o+j : y$ = "Acid" + if k=4 THEN n=n+j : y$ = "Heroin" + if k=5 THEN m=m+j : y$ = "Cocaine" + print "You found ";j;" units of" + print " ";y$ + print "on a dead dude in the subway!" + print + gosub @timerc + goto @menu +£homeacid + print "The market has been flooded" + print "with cheap home-made acid!" + a=int((rnd(4)*550)+250.5) + gosub @timerc + goto @menu + + +£payme + INPUT "Repay how much? ";k + IF k>w THEN PRINT:PRINT "YOU DON'T HAVE THAT MUCH!" : GOSUB @timerb : GOTO @LOAN + IF k>v THEN PRINT:PRINT "YOU DON'T OWE THAT MUCH!" : GOSUB @timerb : GOTO @LOAN + W=W-k + v=v-k + PRINT:PRINT "THANK YOU." + GOSUB @timerc + GOTO @MENU +£borrow + print + Input "How much do you want? ";K + print + j=int((rnd(10)*10000)+5000) + if K>14000 then print "He's not that stupid!" : gosub @timerc : goto @menu + if K > J then print "He doesn't feel like it." : gosub @timerb : goto @menu + v=v+k + w=w+k + print + print "Here's your money." : PRINT : PRINT "Remember, I break thumbs." + gosub @timerc + goto @menu + +£deposit + print + INPUT "How much? ";j + If j>w then print "You don't have that much cash." : goto @deposit + e=e+j + w=w-j + print + Print "Thank you for your deposit." + gosub @timerc + goto @menu +[ +£egg + print "You found the easter egg!" + print + print "$1,000,000 has been deposited in to your account." + gosub @timerc + goto @bank +] +£mymoney + print + INPUT "How much? ";j + If j>e then print "You don't have sufficient funds." : goto @mymoney + e=e-j + w=w+j + print + print "Thank you for your business." + gosub @timerc + goto @menu + +£instructions + PRINT CHR$(147) + poke 211,3:sys 58640:print "welcome to drugwar/64 version";rv + poke 211,5:sys 58640: print "ported from drugwar//e v 1.03":?:?:?:?:? + ?: ? : poke 211,5:sys 58640:? "based on the ti-basic clone of" + poke 211,7:sys 58640:print "john e. dell's 1984 drugwar" + poke 211,11:sys 58640:print "for ibm and trs-80":?:? + ?:?:poke 211,6:sys 58640:?"applesoft version by jay moore" + poke 211,10:sys 58640: print "c64 port by jay moore" + poke 211,1 : poke 214,23 : sys 58640 + input "would you like instructions? (y/n)";x$ + j=RND(-TI) {c64} + {j =RND(-1 *(PEEK(78)+256*PEEK(79))) - applesoft} + If X$ = "Y" THEN GOTO @inst + GOTO @gamestart + +£inst + PRINT CHR$(147) + gosub @titlebar + print + print "This is a game of buying and selling." + print "Your goal is to pay off your debt and" + print "make as much money as possible in a one" + print "month period. Prices fluctuate every day" + print "and interest on your loan is calculated as well." + print:print "If you deal too heavily, you'll attract the attention" + PRINT "of the police." + print + print "Commands are entered using the letter" + print "highlighted (L)ike (S)o. Y is yes and" + print "anything counts as no." + gosub @wait + goto @gamestart +£weedend + PRINT CHR$(147) + gosub @titlebar + gosub @twofifteen: print CHR$(18)"SMOKE Weed" + print "You hallucinate on the wildest trip" + print "of your life, stumble on to the tracks," + print "and get creamed by a train!" + print + print + poke 211,7:sys 58640:? "Just say NO to drugs!" + gosub @timerc + gosub @timerb + goto @ironicend + +£endgame + PRINT CHR$(147) + gosub @titlebar + gosub @scorecalculate + gosub @gmod + print + print "Your score on a scale of 1 to 100: ";k + print + input "Would you like to play again? (Y/N)";x$ + if x$ = "Y" then goto @gamestart + print "Thanks for playing." + print "Remember, watch your back." + print "Have a nice day!" + end + +£ironicend + PRINT CHR$(147) + gosub @titlebar + gosub @gmod + print + print "You died from smoking weed." + print + print + gosub @timerc: print"See? Games are totally fake." + print + input "Would you like to play again? ";x$ + if x$= "Y" THEN GOTO @GAMESTART + end diff --git a/drugwar64.d64 b/drugwar64.d64 new file mode 100644 index 0000000..355073f Binary files /dev/null and b/drugwar64.d64 differ diff --git a/drugwar64.zip b/drugwar64.zip new file mode 100644 index 0000000..2e65f85 Binary files /dev/null and b/drugwar64.zip differ diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8dee0c4 --- /dev/null +++ b/readme.md @@ -0,0 +1,799 @@ + _____ _____ _ _ _______ __ _____ ____ _ _ + | __ \| __ \| | | |/ ____\ \ / /\ | __ \ / / /| || | + | | | | |__) | | | | | __ \ \ /\ / / \ | |__) | / / /_| || |_ + | | | | _ /| | | | | |_ | \ \/ \/ / /\ \ | _ / / / '_ \__ _| + | |__| | | \ \| |__| | |__| | \ /\ / ____ \| | \ \ / /| (_) | | | + |_____/|_| \_\\____/ \_____| \/ \/_/ \_\_| \_\/_/ \___/ |_| + + The "Other" Commodies Exchange Game + A C64 Port of Drugwar//e + Copyright 2018 Jay Moore - A FOSS Game + https://drugwar64.sourceforge.io + https://drugwar2e.sourceforge.io + + +Contents: + +About +Instructions +Files +Updates +Support +License + + + +About: + +Drugwar/64 is a port of Drugwar//e. Here's where it might get +confusing. Drugwar//e is itself an Applesoft BASIC recreation of the +TI-BASIC (TI83) game DRUGWAR which, itself, was based off a game John +E. Dell wrote for the IBM PC and TRS-80. + + +Drugwar//e was written in Applesoft BASIC using the help of Loz's +"Virtual Basic" application. The original TI-BASIC source code was +used to duplicate game mechanics, logic, and price generation to +recreate an "authentic" expierence. + +Drugwar//e 1.03 was used as the codebase for the port and the process +lead to me finding a bug in the 1.03 code that had been missed several +times before. The only major changes between 64 1.01 and //e 1.04 are +how text is displayed; the rest of the "core" code is actually un- +touched. I was actually able to use "Virtual Basic" to generate code +that was 100% C64 compatible after converting it all to lowercase. +Both because most of the changes were valid syntax in Applesoft, and +the program doesn't actually know the syntax; it largely just numbers +lines and resolves for goto and gosubs. + +The irony of having a C64 port lies in the fact I never owned or used +one in my youth. I knew practically nothing about it other than it was +6502 based with a SID chip and what I'd seen from YouTube videos. In +fact this port was the first and, so far, only game I've actually +played on a C64. + +Instructions: + +To play Drugwar/64, put the disk in to your 64 and enter LOAD "*",8 or +something. It's the only thing I put on the disk. + +Playing the game is rather simple. Various options on menus have a +letter emphasised (L)ike (T)his. Merely enter the letter of the option +you want. For yes or no questions, simply enter Y for yes; the computer +will accept anything else as N. To "back out" of a menu, simply enter +nothing at the prompt. Promps that require you to enter "0" to back +out indicate so in the game. Some interactions, like the police, you +cannot escape out of. + + +Drug prices change every day, and random events can cause them to be +really high or really low. You start out with a debt of $5000 that +you must pay the loan shark; interest on this loan is calculated +every day. The Loan Shark can only be visited in The Bronx. Also in +The Bronx is the bank, where you can deposit money in a savings +account to not only keep it safe; but collect daily interest. + + +Beware, both cops and muggers can be found on the subway. If you deal +too heavily, the police will come after you. Also found on the subway are +chances to upgrade your abilities by purchasing a larger trechcoat for more +inventory space as well as the ability to buy guns to fight the police. Be +warned, every gun you buy consumes five inventory slots. + +Buy low, sell high...just not on your own supply. Pay off your debt and +earn as much as possible. + +The game ends when you die or complete 30 days. + + +Files: + +Your DRUGWAR64.ZIP package contains the following file: + + DRUGWAR64.d64 - Disk image containing DRUGWAR + drugwar64v101.bas - Commodore BASIC source + drugwar64v101.baz - the Virtual Basic file used to generate the C64 BASIC + README.txt - This readme file + +These files are also available indvidually on the project page. + + + +Updates + +29-OCT-2018: Version 1.01 + + Inital release of C64 Port. Based off Drugwar//e 1.03 code. + + Please see Drugwar//e readme for updates to the core logic. + + + +Support + + If you encounter problems while running Drugwar//e, please make a + note of the exact error (including line number) and file a ticket + on the Sourceforge Project page; https://drugwar64.sourceforge.io. + + You may also contact me by email: dewdude(at)gmail.com + You may also find me on Twitter: _NQ4T (yes, underscore) + + + + +License + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + 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 +state 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) + + 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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 Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file