Add files via upload

This commit is contained in:
Jason Bou-Samra
2024-06-07 11:30:44 +10:00
committed by GitHub
parent f48029c478
commit f7d80236a2
83 changed files with 22482 additions and 17 deletions
+670 -17
View File
@@ -1,21 +1,674 @@
MIT License
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (c) 2024 Jason Bou-Samra
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Preamble
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
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.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 <https://www.gnu.org/licenses/>.
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:
<program> Copyright (C) <year> <name of author>
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
<https://www.gnu.org/licenses/>.
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
<https://www.gnu.org/licenses/why-not-lgpl.html>.
+29
View File
@@ -0,0 +1,29 @@
# Fun Columns SDL
## Description:
The aim of this project is to implement the original Free Tools Association (FTA) version of their Fun Columns game in SDL
<b>Please Note:</b> This game is not in a playable state yet, you can compile and run though.
## Change-log:
* 04/05/2024 - Foundation code
## Compilation
type the following commands:
`make`
## Screenshot
![Fun Columns](https://raw.githubusercontent.com/bou-samra/Fun-Columns-SDL/main/img/fun-columns.png)
## Misc.
* Run from command line or GUI
* To move game window using GNOME (Press Super [win] key) and right click/hold mouse) anywhere in game window.
## Todo
* Still a Work In Progress
## Author(s)
* IIGS Version: FTA (1990/91)
* SDL Version: Jason Bou-Samra (2024)
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

+87
View File
@@ -0,0 +1,87 @@
.TH COLUMNS 6 "HP-UX 9.0 August 1992" "Hewlett-Packard Company" "X Version (Release 5 UNSUPPORTED)"
.SH NAME
columns X11 strategy game
.SH SYNOPSIS
columns
.SH DESCRIPTION
\fBNOTE:\fP This client is not supported by HP in HP-UX Release 9.0. It is included in the release, but it is now installed in the directory /usr/contrib/bin/X11. Your $PATH environment variable should contain this directory path in order to run this client. See the release notes for more information.
columns is a single-player-game in which one attempts to manipulate multi-colored tiles in order to form sequences of three boxes of the same color--aranged horizontally, vertically, or diagonally.
The \fIcolumns\fP game window is a 6 x 18 array of squares. The playing tiles drop from the top of the screen, and a comprised of 3 colored boxes arranged in a column. The color of each box in a tile is assigned at random from a pool of--at most--six possible colors: red, green, blue, yellow, magenta, and cyan.
Tiles drop one at a time, and may be manipulated in one of four different ways by 1) moving the tile to the left one position (the \fIleft\fP command), 2) moving the tile to the right one position (\fIright\fP), 3) cycling the colors of the boxes in the tile such that each color moves down one box, with the top box in the tile assuming the color of the bottom box (\fIcycle\fP), and 4) dropping the tile straight down into place (\fIdrop\fP).
The game ends when a tile is placed and--after counting all sequences and removing the boxes involved--a box remains touching the ceiling line near the top of the game window.
.SH "LEVELS OF DIFFICULTY"
As mentioned above, the pool of colors from which the boxes in a given tile are assigned is--at most--six. In practise, however, there are twelve different difficulty levels for which the actual number of colors in the pool and the constraints upon them are unique.
At the lowest level, only the first three colors from the pool are used and there are no constraints on how the boxes in a tile are assigned.
At the highest level, the pool includes all six possible colors, and the boxes in the tile are constrained such that none of them may be of the same color.
The complete table depicting the size of the pool and the constraints on the boxes in a tile at each level is as follows:
\fC
.vs -3
# OF COLORS MAX # OF BOXES
LEVEL IN THE POOL OF ANY ONE COLOR
----- ----------- ----------------
1 3 3
2 " 2
3 " 1
4 4 3
5 " 2
6 " 1
7 5 3
8 " 2
9 " 1
10 6 3
11 " 2
12 " 1
.vs
\fP
The difficulty level begins at on and increases by one every tenth tile.
.SH SCORING
The primary object of the game is to arrange the tiles on the game window such that boxes of the same color tile line up in three-box sequences. A sequence may be formed horizontally, vertically, or diagonally.
Any time a three-box sequence is produced, the three boxes forming the sequence are removed from the game window, and all boxes located above those removed drop to occupy the vacated squares of the game window. This adds an interesting twist to the game in that new three-box sequences may be produced in a “chain-reaction” fashion as a result off boxes dropping to fill in squares vacated by other boxes. For the purpose of explanation, each phase of sequence-forming is referred to as a “chain”.
Each sequence formed scores 10 points if formed during the first chain, 20 points if formed during the second “chain”, and so on, with the points-per-sequence increasing by 10 points with each new chain.
Points are also awarded based on the current difficulty level, and on how quickly a tile is dropped down into place by the player.
The points awarded for placing a tile are equivalent to the level number. Thus, six points are awarded for each tile successfully placed when at level six.
The points awarded for placing a tile quickly are equivalent to the number of rows that the tile drops when the DROP keyboard command is issued. Thus, 18 points are awarded if the tile is dropped to the bottom of the game window at the moment it first appears at the top of the game window.
.SH COMMANDS
.TP
\fB4\fP, \fB5\fP, \fB6\fP, \fB2\fP
These are the \fIleft\fP, \fIcycle\fP, \fIright\fP, and \fIdrop\fP commands as mapped onto the numeric keypad.
.TP
\fBJ\fP, \fBK\fP, \fBL\fP, \fB<SPACE>\fP
These are the \fIleft\fP, \fIcycle\fP, \fIright\fP, and \fIdrop\fP keyboard commands for a right-handed player.
.TP
\fBS\fP, \fBD\fP, \fBF\fP, \fB<SPACE>\fP
These are the \fIleft\fP, \fIcycle\fP, \fIright\fP, and \fIdrop\fP keyboard commands for a left-handed player.
.TP
\fBI\fP
Iconify the game window. ("Yipes! The boss!")
.TP
\fBQ\fP
Quit the current game and exit.
.TP
\fBR\fP
Quit the current and start over.
.PP
All other keys cause the game to pause. Play is resumed by pressing any key besides Q or R.
.SH AUTHOR
Jay Geertsen, Hewlett-Packard Company
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

+4516
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
* ACE tool macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_ACEBootInit MAC
Tool $11D
<<<
~ACEStartUp MAC
PHW ]1
_ACEStartUp MAC
Tool $21D
<<<
_ACEShutDown MAC
Tool $31D
<<<
~ACEVersion MAC
PHA
_ACEVersion MAC
Tool $41D
<<<
_ACEReset MAC
Tool $51D
<<<
~ACEStatus MAC
PHA
_ACEStatus MAC
Tool $61D
<<<
~ACEInfo MAC
P2SW ]1
_ACEInfo MAC
Tool $71D
<<<
~ACECompress MAC
PxL ]1;]2;]3;]4
PxW ]5;]6
_ACECompress MAC
Tool $91D
<<<
~ACEExpand MAC
PxL ]1;]2;]3;]4
PxW ]5;]6
_ACEExpand MAC
Tool $A1D
<<<
_ACECompBegin MAC
Tool $B1D
<<<
_ACEExpBegin MAC
Tool $C1D
<<<
_GetACEExpState MAC
Tool $D1D
<<<
_SetACEExpState MAC
Tool $E1D
<<<
+91
View File
@@ -0,0 +1,91 @@
* Desktop Bus tool macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_ADBBootInit MAC
Tool $109
<<<
_ADBStartUp MAC
Tool $209
<<<
_ADBShutDown MAC
Tool $309
<<<
_ADBVersion MAC
Tool $409
<<<
_ADBReset MAC
Tool $509
<<<
~ADBStatus MAC
PHA
_ADBStatus MAC
Tool $609
<<<
~SendInfo MAC
PHW ]1
PHLW ]2;]3
_SendInfo MAC
Tool $909
<<<
~ReadKeyMicroData MAC
PHW ]1
PHLW ]2;]3
_ReadKeyMicroData MAC
Tool $A09
<<<
~ReadKeyMicroMem MAC
PxL ]1;]2
PHW ]3
_ReadKeyMicroMem MAC
Tool $B09
<<<
~AsyncADBReceive MAC
PHLW ]1;]2
_AsyncADBReceive MAC
Tool $D09
<<<
~SyncADBReceive MAC
PHW ]1
PHLW ]2;]3
_SyncADBReceive MAC
Tool $E09
<<<
_AbsOn MAC
Tool $F09
<<<
_AbsOff MAC
Tool $1009
<<<
~ReadAbs MAC
PHA
_ReadAbs MAC
Tool $1109
<<<
~GetAbsScale MAC
PHL ]1
_GetAbsScale MAC
Tool $1209
<<<
~SetAbsScale MAC
PHL ]1
_SetAbsScale MAC
Tool $1309
<<<
~SRQPoll MAC
PHLW ]1;]2
_SRQPoll MAC
Tool $1409
<<<
~SRQRemove MAC
PHW ]1
_SRQRemove MAC
Tool $1509
<<<
_ClearSRQTable MAC
Tool $1609
<<<
+83
View File
@@ -0,0 +1,83 @@
*
* Anim Tool Set
*
_AnimBootInit MAC
Tool $0125
<<<
_AnimStartUp MAC
Tool $0225
<<<
_AnimShutDown MAC
Tool $0325
<<<
_AnimVersion MAC
Tool $0425
<<<
_AnimReset MAC
Tool $0525
<<<
_AnimStatus MAC
Tool $0623
<<<
_AnimIdleDebug MAC
Tool $0825
<<<
_StartScene MAC
Tool $0925
<<<
_StopScene MAC
Tool $0A25
<<<
_StartFrameTimer MAC
Tool $0B25
<<<
_StopFrameTimer MAC
Tool $0C25
<<<
_SetBackGndPort MAC
Tool $0D25
<<<
_RefreshBack MAC
Tool $0E25
<<<
_StartChar MAC
Tool $0F25
<<<
_MoveChar MAC
Tool $1025
<<<
_GetCharRecPtr MAC
Tool $1125
<<<
_KillChar MAC
Tool $1225
<<<
_LoadActor MAC
Tool $1325
<<<
_SetCharScript MAC
Tool $1425
<<<
_RunAnimScripts MAC
Tool $1525
<<<
_FillAddrTable MAC
Tool $1625
<<<
_CompileRect MAC
Tool $1725
<<<
_StartTockTask MAC
Tool $1825
<<<
_FireTockTask MAC
Tool $1925
<<<
_SetForeGndPort MAC
Tool $1A25
<<<
_SetAnimWindow MAC
Tool $1B25
<<<
+305
View File
@@ -0,0 +1,305 @@
* Control Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_CtlBootInit MAC
Tool $110
<<<
~CtlStartUp MAC
PxW ]1;]2
_CtlStartUp MAC
_InitCtrlMgr MAC
Tool $210
<<<
_CtlShutDown MAC
_CtrlShutDown MAC
Tool $310
<<<
~CtlVersion MAC
PHA
_CtlVersion MAC
Tool $410
<<<
_CtlReset MAC
Tool $510
<<<
~CtlStatus MAC
PHA
_CtlStatus MAC
Tool $610
<<<
_NewControl MAC
Tool $910
<<<
~DisposeControl MAC
PHL ]1
_DisposeControl MAC
Tool $A10
<<<
~KillControls MAC
PHL ]1
_KillControls MAC
Tool $B10
<<<
~SetCtlTitle MAC
PxL ]1;]2
_SetCtlTitle MAC
Tool $C10
<<<
~GetCtlTitle MAC
P2SL ]1
_GetCtlTitle MAC
Tool $D10
<<<
~HideControl MAC
PHL ]1
_HideControl MAC
Tool $E10
<<<
~ShowControl MAC
PHL ]1
_ShowControl MAC
Tool $F10
<<<
~DrawControls MAC
PHL ]1
_DrawControls MAC
Tool $1010
<<<
~HiliteControl MAC
PHWL ]1;]2
_HiliteControl MAC
Tool $1110
<<<
_CtlNewRes MAC
Tool $1210
<<<
~FindControl MAC
PHA
PHLW ]1;]2
PHWL ]3;]4
_FindControl MAC
Tool $1310
<<<
~TestControl MAC
P1SW ]1
PHWL ]2;]3
_TestControl MAC
Tool $1410
<<<
~TrackControl MAC
PHA
PxW ]1;]2
PxL ]3;]4
_TrackControl MAC
Tool $1510
<<<
~MoveControl MAC
PxW ]1;]2
PHL ]3
_MoveControl MAC
Tool $1610
<<<
~DragControl MAC
PxW ]1;]2
PxL ]3;]4
PHWL ]5;]6
_DragControl MAC
Tool $1710
<<<
~SetCtlIcons MAC
P2SL ]1
_SetCtlIcons MAC
Tool $1810
<<<
~SetCtlValue MAC
PHWL ]1;]2
_SetCtlValue MAC
Tool $1910
<<<
~GetCtlValue MAC
P1SL ]1
_GetCtlValue MAC
Tool $1A10
<<<
~SetCtlParams MAC
PxW ]1;]2
PHL ]3
_SetCtlParams MAC
Tool $1B10
<<<
~GetCtlParams MAC
P2SL ]1
_GetCtlParams MAC
Tool $1C10
<<<
~DragRect MAC
P2SL ]1
PHLW ]2;]3
PHWL ]4;]5
PxL ]6;]7
PHW ]8
_DragRect MAC
Tool $1D10
<<<
~GrowSize MAC
PHS 2
_GrowSize MAC
Tool $1E10
<<<
~GetCtlDpage MAC
PHA
_GetCtlDpage MAC
Tool $1F10
<<<
~SetCtlAction MAC
PxL ]1;]2
_SetCtlAction MAC
Tool $2010
<<<
~GetCtlAction MAC
P2SL ]1
_GetCtlAction MAC
Tool $2110
<<<
~SetCtlRefCon MAC
PxL ]1;]2
_SetCtlRefCon MAC
Tool $2210
<<<
~GetCtlRefCon MAC
P2SL ]1
_GetCtlRefCon MAC
Tool $2310
<<<
~EraseControl MAC
PHL ]1
_EraseControl MAC
Tool $2410
<<<
~DrawOneCtl MAC
PHL ]1
_DrawOneCtl MAC
Tool $2510
<<<
~FindTargetCtl MAC
PHS 2
_FindTargetCtl MAC
Tool $2610
<<<
~MakeNextCtlTarget MAC
PHS 2
_MakeNextCtlTarget MAC
Tool $2710
<<<
~MakeThisCtlTarget MAC
PHL ]1
_MakeThisCtlTarget MAC
Tool $2810
<<<
~SendEventToCtl MAC
P1SW ]1
PxL ]2;]3
_SendEventToCtl MAC
Tool $2910
<<<
~GetCtlID MAC
P2SL ]1
_GetCtlID MAC
Tool $2A10
<<<
~SetCtlID MAC
PxL ]1;]2
_SetCtlID MAC
Tool $2B10
<<<
~CallCtlDefProc MAC
PHLW ]1;]2
PHL ]3
_CallCtlDefProc MAC
Tool $2C10
<<<
~NotifyCtls MAC
PxW ]1;]2
PxL ]3;]4
_NotifyCtls MAC
Tool $2D10
<<<
~GetCtlMoreFlags MAC
P1SL ]1
_GetCtlMoreFlags MAC
Tool $2E10
<<<
~SetCtlMoreFlags MAC
PHWL ]1;]2
_SetCtlMoreFlags MAC
Tool $2F10
<<<
~GetCtlHandleFromID MAC
PHS 2
PxL ]1;]2
_GetCtlHandleFromID MAC
Tool $3010
<<<
~NewControl2 MAC
P2SL ]1
PHWL ]2;]3
_NewControl2 MAC
Tool $3110
<<<
~CMLoadResource MAC
P2SW ]1
PHL ]2
_CMLoadResource MAC
Tool $3210
<<<
~CMReleaseResource MAC
PHWL ]1;]2
_CMReleaseResource MAC
Tool $3310
<<<
~SetCtlParamPtr MAC
PHL ]1
_SetCtlParamPtr MAC
Tool $3410
<<<
~GetCtlParamPtr MAC
PHS 2
_GetCtlParamPtr MAC
Tool $3510
<<<
~InvalCtls MAC
PHL ]1
_InvalCtls MAC
Tool $3710
<<<
~qCtlStartUp MAC
PHW ]1
NextDP ]2;$100
Tool $210
<<<
_FindRadioButton MAC
Tool $3910
<<<
_SetLETextByID MAC
Tool $3A10
<<<
_GetLETextByID MAC
Tool $3B10
<<<
_SetCtlValueByID MAC
Tool $3C10
<<<
_GetCtlValueByID MAC
Tool $3D10
<<<
_InvalOneCtlByID MAC
Tool $3E10
<<<
_HiliteCtlByID MAC
Tool $3F10
<<<
+143
View File
@@ -0,0 +1,143 @@
* Desk Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_DeskBootInit MAC
Tool $105
<<<
_DeskStartUp MAC
Tool $205
<<<
_DeskShutDown MAC
Tool $305
<<<
~DeskVersion MAC
PHA
_DeskVersion MAC
Tool $405
<<<
_DeskReset MAC
Tool $505
<<<
~DeskStatus MAC
PHA
_DeskStatus MAC
Tool $605
<<<
_SaveScrn MAC
Tool $905
<<<
_RestScrn MAC
Tool $A05
<<<
_SaveAll MAC
Tool $B05
<<<
_RestAll MAC
Tool $C05
<<<
~InstallNDA MAC
PHL ]1
_InstallNDA MAC
Tool $E05
<<<
~InstallCDA MAC
PHL ]1
_InstallCDA MAC
Tool $F05
<<<
_ChooseCDA MAC
Tool $1105
<<<
~SetDAStrPtr MAC
PxL ]1;]2
_SetDAStrPtr MAC
Tool $1305
<<<
~GetDAStrPtr MAC
PHS 2
_GetDAStrPtr MAC
Tool $1405
<<<
~OpenNDA MAC
P1SW ]1
_OpenNDA MAC
Tool $1505
<<<
~CloseNDA MAC
PHW ]1
_CloseNDA MAC
Tool $1605
<<<
~SystemClick MAC
PxL ]1;]2
PHW ]3
_SystemClick MAC
Tool $1705
<<<
~SystemEdit MAC
P1SW ]1
_SystemEdit MAC
Tool $1805
<<<
_SystemTask MAC
Tool $1905
<<<
~SystemEvent MAC
P1SW ]1
PxL ]2;]3;]4
PHW ]5
_SystemEvent MAC
Tool $1A05
<<<
~GetNumNDAs MAC
PHA
_GetNumNDAs MAC
Tool $1B05
<<<
~CloseNDAbyWinPtr MAC
PHL ]1
_CloseNDAbyWinPtr MAC
Tool $1C05
<<<
_CloseAllNDAs MAC
Tool $1D05
<<<
~FixAppleMenu MAC
PHW ]1
_FixAppleMenu MAC
Tool $1E05
<<<
~AddToRunQ MAC
PHL ]1
_AddToRunQ MAC
Tool $1F05
<<<
~RemoveFromRunQ MAC
PHL ]1
_RemoveFromRunQ MAC
Tool $2005
<<<
~RemoveCDA MAC
PHL ]1
_RemoveCDA MAC
Tool $2105
<<<
~RemoveNDA MAC
PHL ]1
_RemoveNDA MAC
Tool $2205
<<<
_GetDeskAccInfo MAC
Tool $2305
<<<
_CallDeskAcc MAC
Tool $2405
<<<
_GetDeskGlobal MAC
Tool $2505
<<<
+285
View File
@@ -0,0 +1,285 @@
* Dialog Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_DialogBootInit MAC
Tool $115
<<<
~DialogStartUp MAC
PHW ]1
_DialogStartUp MAC
Tool $215
<<<
_DialogShutDown MAC
Tool $315
<<<
~DialogVersion MAC
PHA
_DialogVersion MAC
Tool $415
<<<
_DialogReset MAC
Tool $515
<<<
~DialogStatus MAC
PHA
_DialogStatus MAC
Tool $615
<<<
~ErrorSound MAC
PHL ]1
_ErrorSound MAC
Tool $915
<<<
~NewModalDialog MAC
P2SL ]1
PHWL ]2;]3
_NewModalDialog MAC
Tool $A15
<<<
~NewModelessDialog MAC
P2SL ]1
PxL ]2;]3
PHWL ]4;]5
PHL ]6
_NewModelessDialog MAC
Tool $B15
<<<
~CloseDialog MAC
PHL ]1
_CloseDialog MAC
Tool $C15
<<<
~NewDItem MAC
PHLW ]1;]2
PHLW ]3;]4
PHLW ]5;]6
PHWL ]7;]8
_NewDItem MAC
Tool $D15
<<<
~RemoveDItem MAC
PHLW ]1;]2
_RemoveDItem MAC
Tool $E15
<<<
~ModalDialog MAC
P1SL ]1
_ModalDialog MAC
Tool $F15
<<<
~IsDialogEvent MAC
P1SL ]1
_IsDialogEvent MAC
Tool $1015
<<<
~DialogSelect MAC
P1SL ]1
PxL ]2;]3
_DialogSelect MAC
Tool $1115
<<<
~DlgCut MAC
PHL ]1
_DlgCut MAC
Tool $1215
<<<
~DlgCopy MAC
PHL ]1
_DlgCopy MAC
Tool $1315
<<<
~DlgPaste MAC
PHL ]1
_DlgPaste MAC
Tool $1415
<<<
~DlgDelete MAC
PHL ]1
_DlgDelete MAC
Tool $1515
<<<
~DrawDialog MAC
PHL ]1
_DrawDialog MAC
Tool $1615
<<<
~Alert MAC
PHA
PxL ]1;]2
_Alert MAC
Tool $1715
<<<
~StopAlert MAC
PHA
PxL ]1;]2
_StopAlert MAC
Tool $1815
<<<
~NoteAlert MAC
PHA
PxL ]1;]2
_NoteAlert MAC
Tool $1915
<<<
~CautionAlert MAC
PHA
PxL ]1;]2
_CautionAlert MAC
Tool $1A15
<<<
~ParamText MAC
PxL ]1;]2;]3;]4
_ParamText MAC
Tool $1B15
<<<
~SetDAFont MAC
PHL ]1
_SetDAFont MAC
Tool $1C15
<<<
~GetControlDItem MAC
PHS 2
PHLW ]1;]2
_GetControlDItem MAC
Tool $1E15
<<<
~GetIText MAC
PHL ]1
PHWL ]2;]3
_GetIText MAC
Tool $1F15
<<<
~SetIText MAC
PHL ]1
PHWL ]2;]3
_SetIText MAC
Tool $2015
<<<
~SelectIText MAC
PHL ]1
PxW ]2;]3;]4
_SelectIText MAC
Tool $2115
<<<
~HideDItem MAC
PHLW ]1;]2
_HideDItem MAC
Tool $2215
<<<
~ShowDItem MAC
PHLW ]1;]2
_ShowDItem MAC
Tool $2315
<<<
~FindDItem MAC
PHA
PxL ]1;]2
_FindDItem MAC
Tool $2415
<<<
~UpdateDialog MAC
PxL ]1;]2
_UpdateDialog MAC
Tool $2515
<<<
~GetDItemType MAC
PHA
PHLW ]1;]2
_GetDItemType MAC
Tool $2615
<<<
~SetDItemType MAC
PHW ]1
PHLW ]2;]3
_SetDItemType MAC
Tool $2715
<<<
~GetDItemBox MAC
PHL ]1
PHWL ]2;]3
_GetDItemBox MAC
Tool $2815
<<<
~SetDItemBox MAC
PHL ]1
PHWL ]2;]3
_SetDItemBox MAC
Tool $2915
<<<
~GetFirstDItem MAC
P1SL ]1
_GetFirstDItem MAC
Tool $2A15
<<<
~GetNextDItem MAC
PHA
PHLW ]1;]2
_GetNextDItem MAC
Tool $2B15
<<<
~ModalDialog2 MAC
P2SL ]1
_ModalDialog2 MAC
Tool $2C15
<<<
~GetDItemValue MAC
PHA
PHLW ]1;]2
_GetDItemValue MAC
Tool $2E15
<<<
~SetDItemValue MAC
PHW ]1
PHLW ]2;]3
_SetDItemValue MAC
Tool $2F15
<<<
~GetNewModalDialog MAC
P2SL ]1
_GetNewModalDialog MAC
Tool $3215
<<<
~GetNewDItem MAC
PxL ]1;]2
_GetNewDItem MAC
Tool $3315
<<<
~GetAlertStage MAC
PHA
_GetAlertStage MAC
Tool $3415
<<<
_ResetAlertStage MAC
Tool $3515
<<<
~DefaultFilter MAC
PHA
PxL ]1;]2;]3
_DefaultFilter MAC
Tool $3615
<<<
~GetDefButton MAC
P1SL ]1
_GetDefButton MAC
Tool $3715
<<<
~SetDefButton MAC
PHWL ]1;]2
_SetDefButton MAC
Tool $3815
<<<
~DisableDItem MAC
PHLW ]1;]2
_DisableDItem MAC
Tool $3915
<<<
~EnableDItem MAC
PHLW ]1;]2
_EnableDItem MAC
Tool $3A15
<<<
+177
View File
@@ -0,0 +1,177 @@
*===============================
* ProDOS-16 macro and equates
*
* Use with syntax:
*
* _CMDNAME PARMADR
*
* where "CMDNAME" is one of the
* following labels and "PARMADR"
* is the label of the parameters
* table to use.
*
*-------------------------------
;
; Copyright Apple Computer, Inc. 1986, 1987
; All Rights Reserved
;
open = $10
read = $12
write = $13
close = $14
_CREATE MAC
DOS16 $01;]1
<<<
_DESTROY MAC
DOS16 $02;]1
<<<
_CHANGE_PATH MAC
DOS16 $04;]1
<<<
_SET_FILE_INFO MAC
DOS16 $05;]1
<<<
_GET_FILE_INFO MAC
DOS16 $06;]1
<<<
_VOLUME MAC
DOS16 $08;]1
<<<
_SET_PREFIX MAC
DOS16 $09;]1
<<<
_SETPREFIX MAC ; alternate name
DOS16 $09;]1
<<<
_GET_PREFIX MAC
DOS16 $0A;]1
<<<
_GETPREFIX MAC ; alternate name
DOS16 $0A;]1
<<<
_CLEAR_BACKUP_BIT MAC
DOS16 $0B;]1
<<<
_OPEN MAC
DOS16 $10;]1
<<<
_NEWLINE MAC
DOS16 $11;]1
<<<
_READ MAC
DOS16 $12;]1
<<<
_WRITE MAC
DOS16 $13;]1
<<<
_CLOSE MAC
DOS16 $14;]1
<<<
_FLUSH MAC
DOS16 $15;]1
<<<
_SET_MARK MAC
DOS16 $16;]1
<<<
_GET_MARK MAC
DOS16 $17;]1
<<<
_SET_EOF MAC
DOS16 $18;]1
<<<
_GET_EOF MAC
DOS16 $19;]1
<<<
_SET_LEVEL MAC
DOS16 $1A;]1
<<<
_GET_LEVEL MAC
DOS16 $1B;]1
<<<
_GET_DIR_ENTRY MAC
DOS16 $1C;]1
<<<
_GET_DEV_NUM MAC
DOS16 $20;]1
<<<
_GET_LAST_DEV MAC
DOS16 $21;]1
<<<
_READ_BLOCK MAC
DOS16 $22;]1
<<<
_WRITE_BLOCK MAC
DOS16 $23;]1
<<<
_FORMAT MAC
DOS16 $24;]1
<<<
_ERASE_DISK MAC
DOS16 $25;]1
<<<
_GET_NAME MAC
DOS16 $27;]1
<<<
_GET_BOOT_VOL MAC
DOS16 $28;]1
<<<
_QUIT MAC
DOS16 $29;]1
<<<
_GET_VERSION MAC
DOS16 $2A;]1
<<<
_D_INFO MAC
DOS16 $2C;]1
<<<
_ALLOC_INTERRUPT MAC
DOS16 $31;]1
<<<
_DEALLOC_INTERRUPT MAC
DOS16 $32;]1
<<<
DOS16 MAC
JSL $E100A8
DA ]1 ; Change to ]1.$2000 for Class 1 P16 calls.
ADRL ]2
<<<
+142
View File
@@ -0,0 +1,142 @@
*===============================
* ProDOS-8 macro and equates
*
* Use with syntax:
*
* command PARMADR
*
* where "command" is one of the
* following labels and "PARMADR"
* is the label of the parameters
* table to use.
*
*-------------------------------
;
; Copyright Apple Computer, Inc. 1986, 1987
; All Rights Reserved
;
* MLI call codes:
ALLOC_INTERRUPT MAC
DOS8 $40;]1
<<<
DEALLOC_INTERRUPT MAC
DOS8 $41;]1
<<<
APPLE_TALK MAC
DOS8 $42;]1
<<<
SPECIAL_OPEN_FORK MAC
DOS8 $43;]1
<<<
BYTE_RANGE_LOCK MAC
DOS8 $44;]1
<<<
QUIT MAC
DOS8 $65;]1
<<<
READ_BLOCK MAC
DOS8 $80;]1
<<<
WRITE_BLOCK MAC
DOS8 $81;]1
<<<
GET_TIME MAC
DOS8 $82;]1
<<<
CREATE MAC
DOS8 $C0;]1
<<<
DESTROY MAC
DOS8 $C1;]1
<<<
RENAME MAC
DOS8 $C2;]1
<<<
SET_FILE_INFO MAC
DOS8 $C3;]1
<<<
GET_FILE_INFO MAC
DOS8 $C4;]1
<<<
ON_LINE MAC
DOS8 $C5;]1
<<<
SET_PREFIX MAC
DOS8 $C6;]1
<<<
GET_PREFIX MAC
DOS8 $C7;]1
<<<
OPEN MAC
DOS8 $C8;]1
<<<
NEWLINE MAC
DOS8 $C9;]1
<<<
READ MAC
DOS8 $CA;]1
<<<
WRITE MAC
DOS8 $CB;]1
<<<
CLOSE MAC
DOS8 $CC;]1
<<<
FLUSH MAC
DOS8 $CD;]1
<<<
SET_MARK MAC
DOS8 $CE;]1
<<<
GET_MARK MAC
DOS8 $CF;]1
<<<
SET_EOF MAC
DOS8 $D0;]1
<<<
GET_EOF MAC
DOS8 $D1;]1
<<<
SET_BUF MAC
DOS8 $D2;]1
<<<
GET_BUF MAC
DOS8 $D3;]1
<<<
DOS8 MAC
JSR $BF00
DFB ]1
DA ]2
<<<
+144
View File
@@ -0,0 +1,144 @@
* Event Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_EMBootInit MAC
Tool $106
<<<
~EMStartUp MAC
PxW ]1;]2;]3;]4
PxW ]5;]6;]7
_EMStartUp MAC
Tool $206
<<<
_EMShutDown MAC
Tool $306
<<<
~EMVersion MAC
PHA
_EMVersion MAC
Tool $406
<<<
_EMReset MAC
Tool $506
<<<
~EMStatus MAC
PHA
_EMStatus MAC
Tool $606
<<<
~DoWindows MAC
PHA
_DoWindows MAC
Tool $906
<<<
~GetNextEvent MAC
PHA
PHWL ]1;]2
_GetNextEvent MAC
Tool $A06
<<<
~EventAvail MAC
PHA
PHWL ]1;]2
_EventAvail MAC
Tool $B06
<<<
~GetMouse MAC
PHL ]1
_GetMouse MAC
Tool $C06
<<<
~Button MAC
P1SW ]1
_Button MAC
Tool $D06
<<<
~StillDown MAC
P1SW ]1
_StillDown MAC
Tool $E06
<<<
~WaitMouseUp MAC
P1SW ]1
_WaitMouseUp MAC
Tool $F06
<<<
~TickCount MAC
PHS 2
_TickCount MAC
Tool $1006
<<<
~GetDblTime MAC
PHS 2
_GetDblTime MAC
Tool $1106
<<<
~GetCaretTime MAC
PHS 2
_GetCaretTime MAC
Tool $1206
<<<
_SetSwitch MAC
Tool $1306
<<<
~PostEvent MAC
PHA
PHWL ]1;]2
_PostEvent MAC
Tool $1406
<<<
~FlushEvents MAC
PHA
PxW ]1;]2
_FlushEvents MAC
Tool $1506
<<<
~GetOSEvent MAC
PHA
PHWL ]1;]2
_GetOSEvent MAC
Tool $1606
<<<
~OSEventAvail MAC
PHA
PHWL ]1;]2
_OSEventAvail MAC
Tool $1706
<<<
~SetEventMask MAC
PHW ]1
_SetEventMask MAC
Tool $1806
<<<
~FakeMouse MAC
PxW ]1;]2;]3;]4
PHW ]5
_FakeMouse MAC
Tool $1906
<<<
~SetAutoKeyLimit MAC
PHW ]1
_SetAutoKeyLimit MAC
Tool $1A06
<<<
~GetKeyTranslation MAC
P1SW ]1
_GetKeyTranslation MAC
Tool $1B06
<<<
~SetKeyTranslation MAC
PHW ]1
_SetKeyTranslation MAC
Tool $1C06
<<<
~qEMStartUp MAC
NextDP ]1;$100
PxW ]2;]3;]4;]5
PxW ]6;]7
Tool $206
<<<
+26
View File
@@ -0,0 +1,26 @@
*
* Female Voice tool calls
*
_FemaleBootInit mac
Tool $0133
<<<
_FemaleStartUp mac
Tool $0233
<<<
_FemaleShutDown mac
Tool $0333
<<<
_FemaleVersion mac
Tool $0433
<<<
_FemaleReset mac
Tool $0533
<<<
_FemaleStatus mac
Tool $0633
<<<
_FemaleSpeak mac
Tool $0933
<<<
+142
View File
@@ -0,0 +1,142 @@
* Font Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_FMBootInit MAC
Tool $11B
<<<
~FMStartUp MAC
PxW ]1;]2
_FMStartUp MAC
Tool $21B
<<<
_FMShutDown MAC
Tool $31B
<<<
~FMVersion MAC
PHA
_FMVersion MAC
Tool $41B
<<<
_FMReset MAC
Tool $51B
<<<
~FMStatus MAC
PHA
_FMStatus MAC
Tool $61B
<<<
~CountFamilies MAC
P1SW ]1
_CountFamilies MAC
Tool $91B
<<<
~FindFamily MAC
P1SW ]1
PHWL ]2;]3
_FindFamily MAC
Tool $A1B
<<<
~GetFamInfo MAC
PHA
PHWL ]1;]2
_GetFamInfo MAC
Tool $B1B
<<<
~GetFamNum MAC
P1SL ]1
_GetFamNum MAC
Tool $C1B
<<<
~AddFamily MAC
PHWL ]1;]2
_AddFamily MAC
Tool $D1B
<<<
~InstallFont MAC
PHLW ]1;]2
_InstallFont MAC
Tool $E1B
<<<
~SetPurgeStat MAC
PHLW ]1;]2
_SetPurgeStat MAC
Tool $F1B
<<<
~CountFonts MAC
P1SL ]1
PHW ]2
_CountFonts MAC
Tool $101B
<<<
~FindFontStats MAC
PHLW ]1;]2
PHWL ]3;]4
_FindFontStats MAC
Tool $111B
<<<
~LoadFont MAC
PHLW ]1;]2
PHWL ]3;]4
_LoadFont MAC
Tool $121B
<<<
_LoadSysFont MAC
Tool $131B
<<<
~AddFontVar MAC
PHLW ]1;]2
_AddFontVar MAC
Tool $141B
<<<
~FixFontMenu MAC
PxW ]1;]2;]3
_FixFontMenu MAC
Tool $151B
<<<
~ChooseFont MAC
P2SL ]1
PHW ]2
_ChooseFont MAC
Tool $161B
<<<
~ItemID2FamNum MAC
P1SW ]1
_ItemID2FamNum MAC
Tool $171B
<<<
~FMSetSysFont MAC
PHL ]1
_FMSetSysFont MAC
Tool $181B
<<<
~FMGetSysFID MAC
PHS 2
_FMGetSysFID MAC
Tool $191B
<<<
~FMGetCurFID MAC
PHS 2
_FMGetCurFID MAC
Tool $1A1B
<<<
~FamNum2ItemID MAC
P1SW ]1
_FamNum2ItemID MAC
Tool $1B1B
<<<
~InstallWithStats MAC
PHLW ]1;]2
PHL ]3
_InstallWithStats MAC
Tool $1C1B
<<<
~qFMStartUp MAC
PHW ]1
NextDP ]2;$100
Tool $21B
<<<
+39
View File
@@ -0,0 +1,39 @@
* File: MGSOS
*
* Copyright 1989 by Dave Klimas
*
* IMPORTANT! To use these macros, you must also include the
* label equates as defined in the file E16.GSOS from the TOOL.EQUATES
* directory.
*-----------------------------------------------
*
* xGSOS <callname>;<recpointer>;class 0/1 flag
*
* iGSOS _Create;addr;0 ;this is a class 0 Create call
*
*-----------------------------------------------
* Inline GS/OS call macro
iGSOS MAC
JSL $E100A8
DO ]3
DA ]1.$2000
ELSE
DA ]1
FIN
ADRL ]2
<<<
*-----------------------------------------------
* Stack GS/OS call macro
sGSOS MAC
PHL ]2
DO ]3
PEA ]1.$2000
ELSE
PEA ]1
FIN
JSL $E100B0
<<<
+221
View File
@@ -0,0 +1,221 @@
* Integer Math macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_IMBootInit MAC
Tool $10B
<<<
_IMStartUp MAC
_IntStartUp MAC
Tool $20B
<<<
_IMShutDown MAC
_IntShutDown MAC
Tool $30B
<<<
~IMVersion MAC
PHA
_IMVersion MAC
Tool $40B
<<<
_IMReset MAC
Tool $50B
<<<
~IMStatus MAC
PHA
_IMStatus MAC
Tool $60B
<<<
~Multiply MAC
PHS 2
PxW ]1;]2
_Multiply MAC
Tool $90B
<<<
~SDivide MAC
PHS 2
PxW ]1;]2
_SDivide MAC
Tool $A0B
<<<
~UDivide MAC
PHS 2
PxW ]1;]2
_UDivide MAC
Tool $B0B
<<<
~LongMul MAC
PHS 4
PxL ]1;]2
_LongMul MAC
Tool $C0B
<<<
~LongDivide MAC
PHS 4
PxL ]1;]2
_LongDivide MAC
Tool $D0B
<<<
~FixRatio MAC
PHS 2
PxW ]1;]2
_FixRatio MAC
Tool $E0B
<<<
~FixMul MAC
PHS 2
PxL ]1;]2
_FixMul MAC
Tool $F0B
<<<
~FracMul MAC
PHS 2
PxL ]1;]2
_FracMul MAC
Tool $100B
<<<
~FixDiv MAC
PHS 2
PxL ]1;]2
_FixDiv MAC
Tool $110B
<<<
~FracDiv MAC
PHS 2
PxL ]1;]2
_FracDiv MAC
Tool $120B
<<<
~FixRound MAC
P1SL ]1
_FixRound MAC
Tool $130B
<<<
~FracSqrt MAC
P2SL ]1
_FracSqrt MAC
Tool $140B
<<<
~FracCos MAC
P2SL ]1
_FracCos MAC
Tool $150B
<<<
~FracSin MAC
P2SL ]1
_FracSin MAC
Tool $160B
<<<
~FixATan2 MAC
PHS 2
PxL ]1;]2
_FixATan2 MAC
Tool $170B
<<<
~HiWord MAC
P1SL ]1
_HiWord MAC
Tool $180B
<<<
~LoWord MAC
P1SL ]1
_LoWord MAC
Tool $190B
<<<
~Long2Fix MAC
P2SL ]1
_Long2Fix MAC
Tool $1A0B
<<<
~Fix2Long MAC
P2SL ]1
_Fix2Long MAC
Tool $1B0B
<<<
~Fix2Frac MAC
P2SL ]1
_Fix2Frac MAC
Tool $1C0B
<<<
~Frac2Fix MAC
P2SL ]1
_Frac2Fix MAC
Tool $1D0B
<<<
~Fix2X MAC
PxL ]1;]2
_Fix2X MAC
Tool $1E0B
<<<
~Frac2X MAC
PxL ]1;]2
_Frac2X MAC
Tool $1F0B
<<<
~X2Fix MAC
P2SL ]1
_X2Fix MAC
Tool $200B
<<<
~X2Frac MAC
P2SL ]1
_X2Frac MAC
Tool $210B
<<<
~Int2Hex MAC
PHW ]1
PHLW ]2;]3
_Int2Hex MAC
Tool $220B
<<<
~Long2Hex MAC
PxL ]1;]2
PHW ]3
_Long2Hex MAC
Tool $230B
<<<
~Hex2Int MAC
PHA
PHLW ]1;]2
_Hex2Int MAC
Tool $240B
<<<
~Hex2Long MAC
PHS 2
PHLW ]1;]2
_Hex2Long MAC
Tool $250B
<<<
~Int2Dec MAC
PHWL ]1;]2
PxW ]3;]4
_Int2Dec MAC
Tool $260B
<<<
~Long2Dec MAC
PxL ]1;]2
PxW ]3;]4
_Long2Dec MAC
Tool $270B
<<<
~Dec2Int MAC
P1SL ]1
PxW ]2;]3
_Dec2Int MAC
Tool $280B
<<<
~Dec2Long MAC
P2SL ]1
PxW ]2;]3
_Dec2Long MAC
Tool $290B
<<<
~HexIt MAC
P2SW ]1
_HexIt MAC
Tool $2A0B
<<<
+183
View File
@@ -0,0 +1,183 @@
* LineEdit macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_LEBootInit MAC
Tool $114
<<<
~LEStartUp MAC
PxW ]1;]2
_LEStartUp MAC
Tool $214
<<<
_LEShutDown MAC
Tool $314
<<<
~LEVersion MAC
PHA
_LEVersion MAC
Tool $414
<<<
_LEReset MAC
Tool $514
<<<
~LEStatus MAC
PHA
_LEStatus MAC
Tool $614
<<<
~LENew MAC
P2SL ]1
PHLW ]2;]3
_LENew MAC
Tool $914
<<<
~LEDispose MAC
PHL ]1
_LEDispose MAC
Tool $A14
<<<
~LESetText MAC
PHL ]1
PHWL ]2;]3
_LESetText MAC
Tool $B14
<<<
~LEIdle MAC
PHL ]1
_LEIdle MAC
Tool $C14
<<<
~LEClick MAC
PxL ]1;]2
_LEClick MAC
Tool $D14
<<<
~LESetSelect MAC
PxW ]1;]2
PHL ]3
_LESetSelect MAC
Tool $E14
<<<
~LEActivate MAC
PHL ]1
_LEActivate MAC
Tool $F14
<<<
~LEDeactivate MAC
PHL ]1
_LEDeactivate MAC
Tool $1014
<<<
~LEKey MAC
PxW ]1;]2
PHL ]3
_LEKey MAC
Tool $1114
<<<
~LECut MAC
PHL ]1
_LECut MAC
Tool $1214
<<<
~LECopy MAC
PHL ]1
_LECopy MAC
Tool $1314
<<<
~LEPaste MAC
PHL ]1
_LEPaste MAC
Tool $1414
<<<
~LEDelete MAC
PHL ]1
_LEDelete MAC
Tool $1514
<<<
~LEInsert MAC
PHL ]1
PHWL ]2;]3
_LEInsert MAC
Tool $1614
<<<
~LEUpdate MAC
PHL ]1
_LEUpdate MAC
Tool $1714
<<<
~LETextBox MAC
PHLW ]1;]2
PHLW ]3;]4
_LETextBox MAC
Tool $1814
<<<
_LEFromScrap MAC
Tool $1914
<<<
_LEToScrap MAC
Tool $1A14
<<<
~LEScrapHandle MAC
PHS 2
_LEScrapHandle MAC
Tool $1B14
<<<
~LEGetScrapLen MAC
PHA
_LEGetScrapLen MAC
Tool $1C14
<<<
~LESetScrapLen MAC
PHW ]1
_LESetScrapLen MAC
Tool $1D14
<<<
~LESetHilite MAC
PxL ]1;]2
_LESetHilite MAC
Tool $1E14
<<<
~LESetCaret MAC
PxL ]1;]2
_LESetCaret MAC
Tool $1F14
<<<
~LETextBox2 MAC
PHLW ]1;]2
PHLW ]3;]4
_LETextBox2 MAC
Tool $2014
<<<
~LESetJust MAC
PHWL ]1;]2
_LESetJust MAC
Tool $2114
<<<
~LEGetTextHand MAC
P2SL ]1
_LEGetTextHand MAC
Tool $2214
<<<
~LEGetTextLen MAC
P1SL ]1
_LEGetTextLen MAC
Tool $2314
<<<
~GetLEDefProc MAC
PHS 2
_GetLEDefProc MAC
Tool $2414
<<<
~qLEStartUp MAC
PHW ]1
NextDP ]2;$100
Tool $214
<<<
_LEClassifyKey MAC
Tool $2514
<<<
+111
View File
@@ -0,0 +1,111 @@
* List Mgr. macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_ListBootInit MAC
Tool $011C
<<<
_ListStartup MAC
Tool $021C
<<<
_ListShutDown MAC
Tool $031C
<<<
~ListVersion MAC
PHA
_ListVersion MAC
Tool $041C
<<<
_ListReset MAC
Tool $051C
<<<
~ListStatus MAC
PHA
_ListStatus MAC
Tool $061C
<<<
~CreateList MAC
PHS 2
PxL ]1;]2
_CreateList MAC
Tool $091C
<<<
~SortList MAC
PxL ]1;]2
_SortList MAC
Tool $0A1C
<<<
~NextMember MAC
PHS 2
PxL ]1;]2
_NextMember MAC
Tool $0B1C
<<<
~DrawMember MAC
PxL ]1;]2
_DrawMember MAC
Tool $0C1C
<<<
~SelectMember MAC
PxL ]1;]2
_SelectMember MAC
Tool $0D1C
<<<
~GetListDefProc MAC
PHS 2
_GetListDefProc MAC
Tool $0E1C
<<<
~ResetMember MAC
P2SL ]1
_ResetMember MAC
Tool $0F1C
<<<
~NewList MAC
PxL ]1;]2
_NewList MAC
Tool $101C
<<<
~DrawMember2 MAC
PHWL ]1;]2
_DrawMember2 MAC
Tool $111C
<<<
~NextMember2 MAC
PHA
PHWL ]1;]2
_NextMember2 MAC
Tool $121C
<<<
~ResetMember2 MAC
P1SL ]1
_ResetMember2 MAC
Tool $131C
<<<
~SelectMember2 MAC
PHWL ]1;]2
_SelectMember2 MAC
Tool $141C
<<<
~SortList2 MAC
PxL ]1;]2
_SortList2 MAC
Tool $151C
<<<
~NewList2 MAC
PHL ]1
PxW ]2;]3;]4;]5
PHL ]6
_NewList2 MAC
Tool $161C
<<<
_ListKey MAC
Tool $171C
<<<
_CompareStrings MAC
Tool $181C
<<<
+113
View File
@@ -0,0 +1,113 @@
* Load Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_LoaderInitialization MAC
Tool $111
<<<
_LoaderStartUp MAC
Tool $211
<<<
_LoaderShutDown MAC
Tool $311
<<<
~LoaderVersion MAC
PHA
_LoaderVersion MAC
Tool $411
<<<
_LoaderReset MAC
Tool $511
<<<
~LoaderStatus MAC
PHA
_LoaderStatus MAC
Tool $611
<<<
~InitialLoad MAC
PHS 5
PHWL ]1;]2
PHW ]3
_InitialLoad MAC
Tool $911
<<<
~InitialLoad2 MAC
PHS 5
PHWL ]1;]2
PxW ]3;]4
_InitialLoad2 MAC
Tool $2011
<<<
~Restart MAC
PHS 5
PHW ]1
_Restart MAC
Tool $A11
<<<
~LoadSegNum MAC
PHS 2
PxW ]1;]2;]3
_LoadSegNum MAC
Tool $B11
<<<
~UnloadSegNum MAC
PxW ]1;]2;]3
_UnloadSegNum MAC
Tool $C11
<<<
~LoadSegName MAC
PHS 4
PHW ]1
PxL ]2;]3
_LoadSegName MAC
Tool $D11
<<<
~UnloadSeg MAC
PHS 3
PHL ]1
_UnloadSeg MAC
Tool $E11
<<<
~GetLoadSegInfo MAC
PxW ]1;]2;]3
PHL ]4
_GetLoadSegInfo MAC
Tool $F11
<<<
~GetUserID MAC
P1SL ]1
_GetUserID MAC
Tool $1011
<<<
~GetUserID2 MAC
P1SL ]1
_GetUserID2 MAC
Tool $2111
<<<
~LGetPathname MAC
PHS 2
PxW ]1;]2
_LGetPathname MAC
Tool $1111
<<<
~LGetPathname2 MAC
PHS 2
PxW ]1;]2
_LGetPathname2 MAC
Tool $2211
<<<
~UserShutDown MAC
PHA
PxW ]1;]2
_UserShutDown MAC
Tool $1211
<<<
~RenamePathname MAC
PxL ]1;]2
_RenamePathname MAC
Tool $1311
<<<
+135
View File
@@ -0,0 +1,135 @@
* Tool Locator macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_TLBootInit MAC
Tool $101
<<<
_TLStartUp MAC
Tool $201
<<<
_TLShutDown MAC
Tool $301
<<<
~TLVersion MAC
PHA
_TLVersion MAC
Tool $401
<<<
_TLReset MAC
Tool $501
<<<
~TLStatus MAC
PHA
_TLStatus MAC
Tool $601
<<<
~GetTSPtr MAC
PHS 2
PxW ]1;]2
_GetTSPtr MAC
Tool $901
<<<
~SetTSPtr MAC
PxW ]1;]2
PHL ]3
_SetTSPtr MAC
Tool $A01
<<<
~GetFuncPtr MAC
PHS 2
PxW ]1;]2
_GetFuncPtr MAC
Tool $B01
<<<
~GetWAP MAC
PHS 2
PxW ]1;]2
_GetWAP MAC
Tool $C01
<<<
~SetWAP MAC
PxW ]1;]2
PHL ]3
_SetWAP MAC
Tool $D01
<<<
~LoadTools MAC
PHL ]1
_LoadTools MAC
Tool $E01
<<<
~LoadOneTool MAC
PxW ]1;]2
_LoadOneTool MAC
Tool $F01
<<<
~UnloadOneTool MAC
PHW ]1
_UnloadOneTool MAC
Tool $1001
<<<
~TLMountVolume MAC
PHA
PxW ]1;]2
PxL ]3;]4;]5;]6
_TLMountVolume MAC
Tool $1101
<<<
~TLTextMountVolume MAC
PHA
PxL ]1;]2;]3;]4
_TLTextMountVolume MAC
Tool $1201
<<<
~SaveTextState MAC
PHS 2
_SaveTextState MAC
Tool $1301
<<<
~RestoreTextState MAC
PHL ]1
_RestoreTextState MAC
Tool $1401
<<<
~MessageCenter MAC
PxW ]1;]2
PHL ]3
_MessageCenter MAC
Tool $1501
<<<
_SetDefaultTPT MAC
Tool $1601
<<<
~MessageByName MAC
PHS 2
PHWL ]1;]2
PxW ]3;]4
_MessageByName MAC
Tool $1701
<<<
~StartUpTools MAC
PHA
PxW ]1;]2
PxL ]3;]4
_StartUpTools MAC
Tool $1801
<<<
~ShutDownTools MAC
PHWL ]1;]2
_ShutDownTools MAC
Tool $1901
<<<
_GetMsgHandle MAC
Tool $1A01
<<<
_AcceptRequests MAC
Tool $1B01
<<<
_SendRequest MAC
Tool $1C01
<<<
+87
View File
@@ -0,0 +1,87 @@
*-----------------------------
* LoGo's useful tools...
*-----------------------------
_En8 mac
sec
xce
sep #$30
<<<
_En16 mac
clc
xce
rep #$30
<<<
_ClrScr mac
ldx #$7ffe
lda #$0000
]lp stal $e12000,x
stal $012000,x
dex
dex
bpl ]lp
<<<
_fadeIN mac ; Fait un fondu de l'image
lda ]1 ; A= banc/adrh de l'image
ldy ]2 ; Y= $0000, fondu sur l'image
jsr fadeIN ; $ffff, que sur les palettes
<<<
_fadeOUT mac ; Efface l'ecran doucement
jsr fadeOUT
<<<
_File mac ; Charge un fichier
lda ]1
ldx ]2
jsr loadFILE
<<<
_Key mac ; Attend une touche au clavier
]lp ldal $e0bfff
bpl ]lp
stal $e0c010
<<<
_Unpack mac ; Decompacte un fichier
lda ]1 ; A= banc/adrh du fichier source
jsr unPACK
<<<
_wait mac ; Routine d'attente
lda ]1 ; A= duree d'attente (env. 1 seconde)
jsr nowWAIT
eom
_Write8 mac ; Affiche un message
lda ]1 ; A= adresse de la chaine
ldx ]2 ; X= coordonnee sur l'ecran
ldy ]3 ; Y= banc/adrh ou afficher
jsr Print8
<<<
_Write16 mac ; Affiche un message
lda ]1 ; A= adresse de la chaine
ldx ]2 ; X= coordonnee sur l'ecran
ldy ]3 ; Y= banc/adrh ou afficher
jsr Print16
<<<
_Reset mac
lda #$51
sta $0
PushWord #2
PushWord #0
PushWord #0
PushWord #8
Tool $0909
sec
xce
lda #0
stal $0003f4
jmp ($fffc)
<<<
+571
View File
@@ -0,0 +1,571 @@
*-------------------------
* Macro library
*-------------------------
INCD MAC ;Two byte INC
INC ]1
IF MX>1
BNE NC
INC ]1+1
NC FIN
<<<
DECD MAC ;Two byte DEC
IF MX>1
LDA ]1
BNE NC
DEC ]1+1
NC FIN
DEC ]1
<<<
MOV MAC
LDA ]1
STA ]2
<<<
MOVD MAC
MOV ]1;]2
IF MX>1 ;If A is short
IF (=]1 ;Syntax MOVD (ADR1),Y;????
INY
IF (=]2 ; MOVD (ADR1),Y;(ADR2),Y
MOV ]1;]2
ELSE ; MOVD (ADR1),Y;ADR2
MOV ]1;]2+1
FIN
ELSE
IF (=]2 ;Syntax MOVD ????;(ADR2),Y
INY
IF #=]1 ; MOVD #ADR1;(ADR2),Y
MOV ]1/$100;]2
ELSE ; MOVD ADR1;(ADR2),Y
MOV ]1+1;]2
FIN
ELSE ;Syntax MOVD ????;ADR2
IF #=]1 ; MOVD #ADR1;ADR2
MOV ]1/$100;]2+1
ELSE ; MOVD ADR1;ADR2
MOV ]1+1;]2+1
FIN
FIN
FIN
FIN
<<<
LDHI MAC ;For calls from other macs
IF #=]1
LDA ]1/$100
ELSE
LDA ]1+1
FIN
<<<
ADD MAC
IF #=]2
IF #=]1
ERR 1 ;Error if ADD #lab1;#lab2..
FIN
FIN
CLC
LDA ]1 ;Syntax ADD lab1;lab2;lab3
ADC ]2 ; or ADD #lab1;lab2;lab3 etc
DO ]0/3
STA ]3 ;If 3 parms
ELSE ;2 parm cases:
IF #=]2
STA ]1 ;Syntax ADD lab1;#lab2
ELSE ;Syntax ADD lab1;lab2
STA ]2 ; or ADD #lab1;lab2 -> lab2
FIN
FIN
IF MX>1 ;Following ignored if M long
LDA ]1+1
IF #=]2
ADC ]2/$100
ELSE
ADC ]2+1
FIN
DO ]0/3
STA ]3+1 ;If 3 parms
ELSE ;Two parm cases:
IF #=]2
STA ]1+1 ;Syntax ADD lab1;#lab2
ELSE ; -> lab1
STA ]2+1 ;Syntax ADD lab1;lab2 -> lab2
FIN ; or ADD #lab1;lab2 -> lab2
FIN
FIN
<<<
SUB MAC
IF #=]2
IF #=]1
ERR 1 ;Error if SUB #lab1;#lab2..
FIN
FIN
SEC
LDA ]1 ;Syntax SUB lab1;lab2;lab3
SBC ]2 ; or SUB #lab1;lab2;lab3 etc
DO ]0/3
STA ]3 ;If 3 parms
ELSE ;Two parm cases:
IF #=]2
STA ]1 ;Syntax SUB lab1;#lab2
ELSE ;Syntax SUB lab1;lab2
STA ]2 ; or SUB #lab1;lab2 -> lab2
FIN
FIN ;Of 2 parm cases
IF MX>1 ;Rest ignored if M long
LDHI ]1
IF #=]2
SBC ]2/$100 ;Case #lab2
ELSE
SBC ]2+1 ;Case lab2
FIN
DO ]0/3
STA ]3+1 ;If 3 parms
ELSE ;Two parm cases:
IF #=]2
STA ]1+1 ;Syntax SUB lab1;#lab2
ELSE ; -> lab1
STA ]2+1 ;Syntax SUB lab1;lab2 -> lab2
FIN ; or SUB #lab1;lab2 -> lab2
FIN ;Of 2 parm cases
FIN ;Of M short
<<<
ADDX MAC
TXA
ADDA MAC
CLC
ADC ]1
STA ]2
IF MX>1
LDHI ]1
ADC #0
STA ]2+1
FIN
<<<
ADDY MAC
TYA
ADDA ]1;]2
<<<
ADDNUM MAC
LDA #]1
CLC
ADC ]2
STA ]2
IF MX>1
BCC NC
INC ]2+1
NC FIN
<<<
SWAP MAC
LDA ]1
PHA
LDA ]2
STA ]1
PLA
STA ]2
<<<
COMPARE MAC
LDA ]1
CMP ]2
IF MX>1
LDHI ]1 ;Syntax COMPARE lab1;lab2
IF #=]2 ; or COMPARE lab1;#lab2
SBC ]2/$100
ELSE
SBC ]2+1
FIN
FIN
<<<
POKE MAC
MOV #]2;]1
<<<
STADR MAC
POKE ]2;]1
IF MX>1 ;If M is short, do high byte
POKE ]2+1;]1/$100
FIN
<<<
*=================================================
* Save and restore registers macros. Recommended
* for use at the start and end of subroutines
* which might be called from unknown status and
* which must set up register lengths.
*-------------------------------------------------
SAVSTAT MAC ;Save registers & status
PHA
PHY
PHX
PHP
<<<
RESTORE MAC ;Restore regs & status
PLP ;This must come first
PLX ; so register restores
PLY ; have correct length.
PLA
<<<
*=================================================
* Conditional branches not available on the 65816:
*-------------------------------------------------
BLE MAC ;Branch if less than or =
BEQ ]1
BLT ]1
<<<
BGT MAC ;Branch if greater than
BEQ OV
BGE ]1
OV <<<
*=================================================
* Conditional long branches. For use when out of
* range of a short branch and branching mechanism
* is wanted to be hidden on the listing.
*-------------------------------------------------
BRTL MAC ;BRL if less than (long)
BCCL MAC ;BRL if carry clear (long)
BCS OV
BRL ]1
OV <<<
BGEL MAC ;BRL if greater or equal (long)
BCSL MAC ;BRL if carry set (long)
BCC OV
BRL ]1
OV <<<
BPLL MAC ;BRL if plus (long)
BMI OV
BRL ]1
OV <<<
BMIL MAC ;BRL if minus (long)
BPL OV
BRL ]1
OV <<<
BEQL MAC ;BRL if equal (long)
BNE OV
BRL ]1
OV <<<
BNEL MAC ;BRL if not equal (long)
BEQ OV
BRL ]1
OV <<<
BVCL MAC ;BRL if V clear (long)
BVS OV
BRL ]1
OV <<<
BVSL MAC ;BRL if V set (long)
BVC OV
BRL ]1
OV <<<
BLEL MAC ;BRL if less or equal (long)
BEQ BR
BGE OV
BR BRL ]1
OV <<<
BLTL MAC ;BRL if less than (long)
BGE OV
BRL ]1
OV <<<
BGTL MAC ;BRL if greater than (long)
BEQ OV
BLT OV
BR BRL ]1
OV <<<
*=================================================
* The I/O macros below expect the COUT routine
* to be included or linked in as an external.
* PRINT expects the same of the SENDMSG routine.
*
* (Just declare COUT and SENDMSG as externals
* and include the linker command LIB 5 in the
* linker command file. SENDMSG also requires an
* OUTPUT routine in your source declared as an
* entry. It can be as simple as:
*
* OUTPUT JMP COUT
*
* SENDMSG and COUT are in the LIB directory and
* their source files are in the SOURCE directory.
*-------------------------------------------------
PRINT MAC ;Syntax PRINT "message"
JSR SENDMSG ; or PRINT 8D8D or
ASC ]1 ; PRINT 8D8D"text"8D"more"
BRK ; etc.
<<<
OUT MAC
LDA ]1 ;Syntax OUT #"A"
JSR COUT ; or OUT ADDRESS
<<< ; or OUT (PNT),Y etc.
HOME MAC ;Clear 80 col screen
OUT #"L"&$9F
<<<
NORMAL MAC ;Set normal text
OUT #"N"&$9F
<<<
INVERSE MAC ;Set inverse text
OUT #"O"&$9F
<<<
MOUSEON MAC ;Turn mousetext on
OUT #"["&$9F
INVERSE
<<<
MOUSEOFF MAC ;Turn mousetext off
OUT #"X"&$9F
NORMAL
<<<
BELL MAC ;Ring bell
OUT #"G"&$9F
<<<
CLEOL MAC ;Clear to end of line
OUT #$9D
<<<
CLEOP MAC ;Clear to end of screen
OUT #$8B
<<<
OUTCR MAC ;Do carriage return
OUT #$8D
<<<
GOTOXY MAC ;Pascal output only!
OUT #$1E
LDA ]1 ;X coor (imm or location)
CLC
ADC #' '
JSR COUT
LDA ]2 ;Y coor (")
CLC
ADC #' '
JSR COUT
<<<
CURSXY MAC ;GOTOXY for BASIC output
OUT #"Y"&$9F ;Home cursor
LDX ]2 ;Syntax (both versions):
BEQ H ; CURSXY #55;#10 or
CR OUTCR ; CURSXY XLOC,YLOC etc.
DEX
BNE CR
H IF MX<2 ;If M is long then
SEP %00100000 ; must shorten it
LDA ]1
STAL $24
REP %00100000 ; and lengthen on exit.
ELSE ;If M is short then
LDA ]1 ; leave as is
STAL $24
FIN
<<<
**************************************************
* APW-Equivalent Macros 1/20/89 *
* For use with APW or ORCA/M source listings. *
* *
**************************************************
*================================================
DP MAC
ADRL ]1
<<<
ASL4 MAC
LDA ]1+2
DO ]0/2 ;If 2 parms then set
LDX ]2 ; X to 2nd parm.
FIN
]A ASL ;Otherwise use X to
ASL ]1 ; decide how many
ADC #0 ; ASL's to do.
DEX
BNE ]A
STA ]1+2
<<<
LSR4 MAC
DO ]0/2 ;If 2 parms, then COMPLEMENT
LDA ]2 ; of X must be 2nd parm.
EOR $FFFF
CLC
ADC #1
TAX
FIN
LDA ]1
]A LSR
LSR ]1+2
BCC ]B
ORA #$8000
]B INX
BNE ]A
STA ]1
<<<
DEC4 MAC
IF MX/2-1 ; IF M IS SHORT
ERR 1 ; ERR IF NOT 16-BIT MODE
ELSE
DEC ]1
BPL ]A
DEC ]1+2
]A FIN
<<<
INC4 MAC
IF MX/2-1 ; IF M IS SHORT
ERR 1 ; ERR IF NOT 16-BIT MODE
ELSE
INC ]1
BNE ]A
INC ]1+2
]A FIN
<<<
ADD4 MAC
CLC ;If 3 parms then use
DO ]0/3 ; raw 4 byte addresses.
IF #=]1
LDA #<]1
ELSE ;Make sure we use the
LDA ]1 ; right LDA for data
FIN ; or addresses.
IF #=]2
ADC #<]2
ELSE ;Make sure we use the
ADC ]2 ; right ADC for data
FIN ; or addresses.
STA ]3
IF #=]1
LDA #^]1
ELSE ;Make sure we use the
LDA ]1+2 ; right LDA for data
FIN ; or addresses.
IF #=]2
ADC #^]2
ELSE ;Make sure we use the
ADC ]2+2 ; right ADC for data
FIN ; or addresses.
STA ]3+2
ELSE ;If 2 parms then use
; 2 byte Accumulator.
IF #=]1
ADC #<]1
ELSE ;Make sure we use the
ADC ]1 ; right ADC for data
FIN ; or addresses.
STA ]2
IF #=]1
LDA #^]1
ELSE ;Make sure we use the
LDA ]1+2 ; right LDA for data
FIN ; or addresses.
ADC #0
STA ]2+2
FIN
<<<
SUB4 MAC
SEC ;If 3 parms then use
DO ]0/3 ; raw 4 byte addresses.
IF #=]1
LDA #<]1
ELSE ;Make sure we use the
LDA ]1 ; right LDA for data
FIN ; or addresses.
IF #=]2
SBC #<]2
ELSE ;Make sure we use the
SBC ]2 ; right SBC for data
FIN ; or addresses.
STA ]3
IF #=]1
LDA #^]1
ELSE ;Make sure we use the
LDA ]1+2 ; right LDA for data
FIN ; or addresses.
IF #=]2
SBC #^]2
ELSE ;Make sure we use the
SBC ]2+2 ; right SBC for data
FIN ; or addresses.
STA ]3+2
ELSE
IF #=]1
SBC #<]1
ELSE ;Make sure we use the
SBC ]1 ; right SBC for data
FIN ; or addresses.
STA ]2
IF #=]1
LDA #^]1
ELSE ;Make sure we use the
LDA ]1+2 ; right LDA for data
FIN ; or addresses.
SBC #0
STA ]2+2
FIN
<<<
+26
View File
@@ -0,0 +1,26 @@
*
* Male Voice tool calls
*
_MaleBootInit mac
Tool $0132
<<<
_MaleStartUp mac
Tool $0232
<<<
_MaleShutDown mac
Tool $0332
<<<
_MaleVersion mac
Tool $0432
<<<
_MaleReset mac
Tool $0532
<<<
_MaleStatus mac
Tool $0632
<<<
_MaleSpeak mac
Tool $0932
<<<
+137
View File
@@ -0,0 +1,137 @@
*
* Media Controller tool calls
*
_MCBootInit mac
Tool $0126
<<<
_MCStartUp mac
Tool $0226
<<<
_MCShutDown mac
Tool $0326
<<<
_MCVersion mac
Tool $0426
<<<
_MCReset mac
Tool $0526
<<<
_MCStatus mac
Tool $0626
<<<
_MCGetErrorMsg mac
Tool $0926
<<<
_MCLoadDriver mac
Tool $0a26
<<<
_MCUnLoadDriver mac
Tool $0b26
<<<
_MCTime2Bin mac
Tool $0c26
<<<
_MCBin2Time mac
Tool $0d26
<<<
_MCGetTrackTitle mac
Tool $0e26
<<<
_MCSetTrackTitle mac
Tool $0f26
<<<
_MCGetProgram mac
Tool $1026
<<<
_MCSetProgram mac
Tool $1126
<<<
_MCGetDiscTitle mac
Tool $1226
<<<
_MCSetDiscTitle mac
Tool $1326
<<<
_MCDStartUp mac
Tool $1426
<<<
_MCDShutDown mac
Tool $1526
<<<
_MCGetFeatures mac
Tool $1626
<<<
_MCPlay mac
Tool $1726
<<<
_MCPause mac
Tool $1826
<<<
_MCSendRawData mac
Tool $1926
<<<
_MCGetStatus mac
Tool $1a26
<<<
_MCControl mac
Tool $1b26
<<<
_MCScan mac
Tool $1c26
<<<
_MCGetSpeeds mac
Tool $1d26
<<<
_MCSpeed mac
Tool $1e26
<<<
_MCStopAt mac
Tool $1f26
<<<
_MCJog mac
Tool $2026
<<<
_MCSearchTo mac
Tool $2126
<<<
_MCSearchDone mac
Tool $2226
<<<
_MCSearchWait mac
Tool $2326
<<<
_MCGetPosition mac
Tool $2426
<<<
_MCSetAudio mac
Tool $2526
<<<
_MCGetTimes mac
Tool $2626
<<<
_MCGetDiscTOC mac
Tool $2726
<<<
_MCGetDiscID mac
Tool $2826
<<<
_MCGetNoTracks mac
Tool $2926
<<<
_MCRecord mac
Tool $2a26
<<<
_MCStop mac
Tool $2b26
<<<
_MCWaitRawData mac
Tool $2c26
<<<
_MCGetName mac
Tool $2d26
<<<
_MCSetVolume mac
Tool $2e26
<<<
+179
View File
@@ -0,0 +1,179 @@
* Memory Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_MMBootInit MAC
Tool $102
<<<
~MMStartUp MAC
PHA
_MMStartUp MAC
Tool $202
<<<
~MMShutDown MAC
PHW ]1
_MMShutDown MAC
Tool $302
<<<
~MMVersion MAC
PHA
_MMVersion MAC
Tool $402
<<<
_MMReset MAC
Tool $502
<<<
~MMStatus MAC
PHA
_MMStatus MAC
Tool $602
<<<
~NewHandle MAC
P2SL ]1
PxW ]2;]3
PHL ]4
_NewHandle MAC
Tool $902
<<<
~ReallocHandle MAC
PHLW ]1;]2
PHWL ]3;]4
PHL ]5
_ReallocHandle MAC
Tool $A02
<<<
~RestoreHandle MAC
PHL ]1
_RestoreHandle MAC
Tool $B02
<<<
~AddToOOMQueue MAC
PHL ]1
_AddToOOMQueue MAC
Tool $C02
<<<
~DeleteFromOOMQueue MAC
PHL ]1
_DeleteFromOOMQueue MAC
Tool $D02
<<<
~DisposeHandle MAC
PHL ]1
_DisposeHandle MAC
Tool $1002
<<<
~DisposeAll MAC
PHW ]1
_DisposeAll MAC
Tool $1102
<<<
~PurgeHandle MAC
PHL ]1
_PurgeHandle MAC
Tool $1202
<<<
~PurgeAll MAC
PHW ]1
_PurgeAll MAC
Tool $1302
<<<
~GetHandleSize MAC
P2SL ]1
_GetHandleSize MAC
Tool $1802
<<<
~SetHandleSize MAC
PxL ]1;]2
_SetHandleSize MAC
Tool $1902
<<<
~FindHandle MAC
P2SL ]1
_FindHandle MAC
Tool $1A02
<<<
~FreeMem MAC
PHS 2
_FreeMem MAC
Tool $1B02
<<<
~MaxBlock MAC
PHS 2
_MaxBlock MAC
Tool $1C02
<<<
~TotalMem MAC
PHS 2
_TotalMem MAC
Tool $1D02
<<<
~CheckHandle MAC
PHL ]1
_CheckHandle MAC
Tool $1E02
<<<
_CompactMem MAC
Tool $1F02
<<<
~HLock MAC
PHL ]1
_HLock MAC
Tool $2002
<<<
~HLockAll MAC
PHW ]1
_HLockAll MAC
Tool $2102
<<<
~HUnlock MAC
PHL ]1
_HUnlock MAC
Tool $2202
<<<
~HUnlockAll MAC
PHW ]1
_HUnlockAll MAC
Tool $2302
<<<
~SetPurge MAC
PHWL ]1;]2
_SetPurge MAC
Tool $2402
<<<
~SetPurgeAll MAC
PxW ]1;]2
_SetPurgeAll MAC
Tool $2502
<<<
~PtrToHand MAC
PxL ]1;]2;]3
_PtrToHand MAC
Tool $2802
<<<
~HandToPtr MAC
PxL ]1;]2;]3
_HandToPtr MAC
Tool $2902
<<<
~HandToHand MAC
PxL ]1;]2;3
_HandToHand MAC
Tool $2A02
<<<
~BlockMove MAC
PxL ]1;]2;]3
_BlockMove MAC
Tool $2B02
<<<
~RealFreeMem MAC
PHS 2
_RealFreeMem MAC
Tool $2F02
<<<
_SetHandleID MAC
Tool $3002
<<<
+372
View File
@@ -0,0 +1,372 @@
* Menu Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_MenuBootInit MAC
Tool $10F
<<<
~MenuStartUp MAC
PxW ]1;]2
_MenuStartUp MAC
Tool $20F
<<<
_MenuShutDown MAC
Tool $30F
<<<
~MenuVersion MAC
PHA
_MenuVersion MAC
Tool $40F
<<<
_MenuReset MAC
Tool $50F
<<<
~MenuStatus MAC
PHA
_MenuStatus MAC
Tool $60F
<<<
~MenuKey MAC
PxL ]1;]2
_MenuKey MAC
Tool $90F
<<<
~GetMenuBar MAC
PHS 2
_GetMenuBar MAC
Tool $A0F
<<<
~MenuRefresh MAC
PHL ]1
_MenuRefresh MAC
Tool $B0F
<<<
_FlashMenuBar MAC
Tool $C0F
<<<
~InsertMenu MAC
PHLW ]1;]2
_InsertMenu MAC
Tool $D0F
<<<
~DeleteMenu MAC
PHW ]1
_DeleteMenu MAC
Tool $E0F
<<<
~InsertMItem MAC
PHL ]1
PxW ]2;]3
_InsertMItem MAC
Tool $F0F
<<<
~DeleteMItem MAC
PHW ]1
_DeleteMItem MAC
Tool $100F
<<<
~GetSysBar MAC
PHS 2
_GetSysBar MAC
Tool $110F
<<<
~SetSysBar MAC
PHL ]1
_SetSysBar MAC
Tool $120F
<<<
~FixMenuBar MAC
PHA
_FixMenuBar MAC
Tool $130F
<<<
~CountMItems MAC
P1SW ]1
_CountMItems MAC
Tool $140F
<<<
~NewMenuBar MAC
P2SL ]1
_NewMenuBar MAC
Tool $150F
<<<
~GetMHandle MAC
P2SW ]1
_GetMHandle MAC
Tool $160F
<<<
~SetBarColors MAC
PxW ]1;]2;]3
_SetBarColors MAC
Tool $170F
<<<
~GetBarColors MAC
PHS 2
_GetBarColors MAC
Tool $180F
<<<
~SetMTitleStart MAC
PHW ]1
_SetMTitleStart MAC
Tool $190F
<<<
~GetMTitleStart MAC
PHA
_GetMTitleStart MAC
Tool $1A0F
<<<
~GetMenuMgrPort MAC
PHS 2
_GetMenuMgrPort MAC
Tool $1B0F
<<<
~CalcMenuSize MAC
PxW ]1;]2;]3
_CalcMenuSize MAC
Tool $1C0F
<<<
~SetMTitleWidth MAC
PxW ]1;]2
_SetMTitleWidth MAC
Tool $1D0F
<<<
~GetMTitleWidth MAC
P1SW ]1
_GetMTitleWidth MAC
Tool $1E0F
<<<
~SetMenuFlag MAC
PxW ]1;]2
_SetMenuFlag MAC
Tool $1F0F
<<<
~GetMenuFlag MAC
P1SW ]1
_GetMenuFlag MAC
Tool $200F
<<<
~SetMenuTitle MAC
PHLW ]1;]2
_SetMenuTitle MAC
Tool $210F
<<<
~GetMenuTitle MAC
P2SW ]1
_GetMenuTitle MAC
Tool $220F
<<<
~MenuGlobal MAC
P1SW ]1
_MenuGlobal MAC
Tool $230F
<<<
~SetMItem MAC
PHLW ]1;]2
_SetMItem MAC
Tool $240F
<<<
~GetMItem MAC
PHLW ]1;]2
_GetMItem MAC
Tool $250F
<<<
~SetMItemFlag MAC
PxW ]1;]2
_SetMItemFlag MAC
Tool $260F
<<<
~GetMItemFlag MAC
P1SW ]1
_GetMItemFlag MAC
Tool $270F
<<<
~SetMItemBlink MAC
PHW ]1
_SetMItemBlink MAC
Tool $280F
<<<
_MenuNewRes MAC
Tool $290F
<<<
_DrawMenuBar MAC
Tool $2A0F
<<<
~MenuSelect MAC
PxL ]1;]2
_MenuSelect MAC
Tool $2B0F
<<<
~HiliteMenu MAC
PxW ]1;]2
_HiliteMenu MAC
Tool $2C0F
<<<
~NewMenu MAC
P2SL ]1
_NewMenu MAC
Tool $2D0F
<<<
~DisposeMenu MAC
PHL ]1
_DisposeMenu MAC
Tool $2E0F
<<<
_InitPalette MAC
Tool $2F0F
<<<
~EnableMItem MAC
PHW ]1
_EnableMItem MAC
Tool $300F
<<<
~DisableMItem MAC
PHW ]1
_DisableMItem MAC
Tool $310F
<<<
~CheckMItem MAC
PxW ]1;]2
_CheckMItem MAC
Tool $320F
<<<
~SetMItemMark MAC
PxW ]1;]2
_SetMItemMark MAC
Tool $330F
<<<
~GetMItemMark MAC
P1SW ]1
_GetMItemMark MAC
Tool $340F
<<<
~SetMItemStyle MAC
PxW ]1;]2
_SetMItemStyle MAC
Tool $350F
<<<
~GetMItemStyle MAC
P1SW ]1
_GetMItemStyle MAC
Tool $360F
<<<
~SetMenuID MAC
PxW ]1;]2
_SetMenuID MAC
Tool $370F
<<<
~SetMItemID MAC
PxW ]1;]2
_SetMItemID MAC
Tool $380F
<<<
~SetMenuBar MAC
PHL ]1
_SetMenuBar MAC
Tool $390F
<<<
~SetMItemName MAC
PHLW ]1;]2
_SetMItemName MAC
Tool $3A0F
<<<
~GetPopUpDefProc MAC
PHS 2
_GetPopUpDefProc MAC
Tool $3B0F
<<<
~PopUpMenuSelect MAC
PHA
PxW ]1;]2;]3;]4
PHL ]5
_PopUpMenuSelect MAC
Tool $3C0F
<<<
~DrawPopUp MAC
PxW ]1;]2;]3;]4
PxW ]5;]6;]7
_DrawPopUp MAC
Tool $3D0F
<<<
~NewMenu2 MAC
P2SW ]1
PHL ]2
_NewMenu2 MAC
Tool $3E0F
<<<
~InsertMItem2 MAC
PHWL ]1;]2
PxW ]3;]4
_InsertMItem2 MAC
Tool $3F0F
<<<
~SetMenuTitle2 MAC
PHWL ]1;]2
PHW ]3
_SetMenuTitle2 MAC
Tool $400F
<<<
~SetMItem2 MAC
PHWL ]1;]2
PHW ]3
_SetMItem2 MAC
Tool $410F
<<<
~SetMItemName2 MAC
PHWL ]1;]2
PHW ]3
_SetMItemName2 MAC
Tool $420F
<<<
~NewMenuBar2 MAC
P2SW ]1
PxL ]2;]3
_NewMenuBar2 MAC
Tool $430F
<<<
_HideMenuBar MAC
Tool $450F
<<<
_ShowMenuBar MAC
Tool $460F
<<<
_SetMItemIcon MAC
Tool $470F
<<<
_GetMItemIcon MAC
Tool $480F
<<<
_SetMItemStruct MAC
Tool $490F
<<<
_GetMItemStruct MAC
Tool $4A0F
<<<
_RemoveMItemStruct MAC
Tool $4B0F
<<<
_GetMItemFlag2 MAC
Tool $4C0F
<<<
_SetMItemFlag2 MAC
Tool $4D0F
<<<
_GetMItemBlink MAC
Tool $4F0F
<<<
_InsertPathMItems MAC
Tool $500F
<<<
~qMenuStartUp MAC
PHW ]1
NextDP ]2;$100
Tool $20F
<<<
~qNewMenu MAC
~NewMenu ]1
PHW #0
_InsertMenu
<<<
+79
View File
@@ -0,0 +1,79 @@
* MIDI tool macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_MidiBootInit MAC
Tool $120
<<<
~MidiStartUp MAC
PxW ]1;]2
_MidiStartUp MAC
Tool $220
<<<
_MidiShutDown MAC
Tool $320
<<<
~MidiVersion MAC
PHA
_MidiVersion MAC
Tool $420
<<<
_MidiReset MAC
Tool $520
<<<
~MidiStatus MAC
PHA
_MidiStatus MAC
Tool $620
<<<
~MidiControl MAC
PHWL ]1;]2
_MidiControl MAC
Tool $920
<<<
~MidiDevice MAC
PHWL ]1;]2
_MidiDevice MAC
Tool $A20
<<<
~MidiClock MAC
PHWL ]1;]2
_MidiClock MAC
Tool $B20
<<<
~MidiInfo MAC
P2SW ]1
_MidiInfo MAC
Tool $C20
<<<
~MidiReadPacket MAC
P1SL ]1
PHW ]2
_MidiReadPacket MAC
Tool $D20
<<<
~MidiWritePacket MAC
P1SL ]1
_MidiWritePacket MAC
Tool $E20
<<<
_MidiRecordSeq MAC
Tool $F20
<<<
_MidiStopRecord MAC
Tool $1020
<<<
_MidiPlaySeq MAC
Tool $1120
<<<
_MidiStopPlay MAC
Tool $1220
<<<
_MidiConvert MAC
Tool $1320
<<<
+119
View File
@@ -0,0 +1,119 @@
*
* Midi Synth tool calls
*
_MSBootInit mac
Tool $0123
<<<
_MSStartUp mac
Tool $0223
<<<
_MSShutDown mac
Tool $0323
<<<
_MSVersion mac
Tool $0423
<<<
_MSReset mac
Tool $0523
<<<
_MSStatus mac
Tool $0623
<<<
_SetBasicChannel mac
Tool $0923
<<<
_SetMIDIMode mac
Tool $0a23
<<<
_PlayNote mac
Tool $0b23
<<<
_StopNote mac
Tool $0c23
<<<
_KillAllNotes mac
Tool $0d23
<<<
_SetRecTrack mac
Tool $0e23
<<<
_SetPlayTrack mac
Tool $0f23
<<<
_TrackToChannel mac
Tool $1023
<<<
_Locate mac
Tool $1123
<<<
_SetVelComp mac
Tool $1223
<<<
_SetMIDIPort mac
Tool $1323
<<<
_SetInstrument mac
Tool $1423
<<<
_SeqPlayer mac
Tool $1523
<<<
_SetTempo mac
Tool $1623
<<<
_SetCallBack mac
Tool $1723
<<<
_SysExOut mac
Tool $1823
<<<
_SetBeat mac
Tool $1923
<<<
_MIDIMessage mac
Tool $1a23
<<<
_LocateEnd mac
Tool $1b23
<<<
_Merge mac
Tool $1c23
<<<
_DeleteTrack mac
Tool $1d23
<<<
_SetMetro mac
Tool $1e23
<<<
_GetMSData mac
Tool $1f23
<<<
_ConvertToTime mac
Tool $2023
<<<
_ConvertToMeasure mac
Tool $2123
<<<
_MSSuspend mac
Tool $2223
<<<
_MSResume mac
Tool $2323
<<<
_SetTuningTable mac
Tool $2423
<<<
_GetTuningTable mac
Tool $2523
<<<
_SetTrackOut mac
Tool $2623
<<<
_InitMIDIDriver mac
Tool $2723
<<<
_RemoveMIDIDriver mac
Tool $2823
<<<
+278
View File
@@ -0,0 +1,278 @@
* Misc Tool macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_MTBootInit MAC
Tool $103
<<<
_MTStartUp MAC
Tool $203
<<<
_MTShutDown MAC
Tool $303
<<<
~MTVersion MAC
PHA
_MTVersion MAC
Tool $403
<<<
_MTReset MAC
Tool $503
<<<
~MTStatus MAC
PHA
_MTStatus MAC
Tool $603
<<<
~WriteBRam MAC
PHL ]1
_WriteBRam MAC
Tool $903
<<<
~ReadBRam MAC
PHL ]1
_ReadBRam MAC
Tool $A03
<<<
~WriteBParam MAC
PxW ]1;]2
_WriteBParam MAC
Tool $B03
<<<
~ReadBParam MAC
P1SW ]1
_ReadBParam MAC
Tool $C03
<<<
~ReadTimeHex MAC
PHS 4
_ReadTimeHex MAC
Tool $D03
<<<
~WriteTimeHex MAC
PxW ]1;]2;]3
_WriteTimeHex MAC
Tool $E03
<<<
~ReadAsciiTime MAC
PHL ]1
_ReadAsciiTime MAC
Tool $F03
<<<
~SetVector MAC
PHWL ]1;]2
_SetVector MAC
Tool $1003
<<<
~GetVector MAC
P2SW ]1
_GetVector MAC
Tool $1103
<<<
~SetHeartBeat MAC
PHL ]1
_SetHeartBeat MAC
Tool $1203
<<<
~DelHeartBeat MAC
PHL ]1
_DelHeartBeat MAC
Tool $1303
<<<
_ClrHeartBeat MAC
Tool $1403
<<<
~SysFailMgr MAC
PHWL ]1;]2
_SysFailMgr MAC
Tool $1503
<<<
~GetAddr MAC
P2SW ]1
_GetAddr MAC
Tool $1603
<<<
~ReadMouse MAC
PHS 3
_ReadMouse MAC
Tool $1703
<<<
~InitMouse MAC
PHW ]1
_InitMouse MAC
Tool $1803
<<<
~SetMouse MAC
PHW ]1
_SetMouse MAC
Tool $1903
<<<
_HomeMouse MAC
Tool $1A03
<<<
_ClearMouse MAC
Tool $1B03
<<<
~ClampMouse MAC
PxW ]1;]2;]3;]4
_ClampMouse MAC
Tool $1C03
<<<
~GetMouseClamp MAC
PHS 4
_GetMouseClamp MAC
Tool $1D03
<<<
~PosMouse MAC
PxW ]1;]2
_PosMouse MAC
Tool $1E03
<<<
~ServeMouse MAC
PHA
_ServeMouse MAC
Tool $1F03
<<<
~GetNewID MAC
P1SW ]1
_GetNewID MAC
Tool $2003
<<<
~DeleteID MAC
PHW ]1
_DeleteID MAC
Tool $2103
<<<
~StatusID MAC
PHW ]1
_StatusID MAC
Tool $2203
<<<
~IntSource MAC
PHW ]1
_IntSource MAC
Tool $2303
<<<
~FWEntry MAC
PHS 4
PxW ]1;]2;]3;]4
_FWEntry MAC
Tool $2403
<<<
~GetTick MAC
PHS 2
_GetTick MAC
Tool $2503
<<<
~PackBytes MAC
P1SL ]1
PxL ]2;]3
PHW ]4
_PackBytes MAC
Tool $2603
<<<
~UnPackBytes MAC
P1SL ]1
PHW ]2
PxL ]3;]4
_UnPackBytes MAC
Tool $2703
<<<
~Munger MAC
P1SL ]1
PxL ]2;]3
PHWL ]4;]5
PHWL ]6;]7
_Munger MAC
Tool $2803
<<<
~GetIRQEnable MAC
PHA
_GetIRQEnable MAC
Tool $2903
<<<
~SetAbsClamp MAC
PxW ]1;]2;]3;]4
_SetAbsClamp MAC
Tool $2A03
<<<
~GetAbsClamp MAC
PHS 4
_GetAbsClamp MAC
Tool $2B03
<<<
_SysBeep MAC
Tool $2C03
<<<
~AddToQueue MAC
PxL ]1;]2
_AddToQueue MAC
Tool $2E03
<<<
~DeleteFromQueue MAC
PxL ]1;]2
_DeleteFromQueue MAC
Tool $2F03
<<<
~SetInterruptState MAC
PHLW ]1;]2
_SetInterruptState MAC
Tool $3003
<<<
~GetInterruptState MAC
PHLW ]1;]2
_GetInterruptState MAC
Tool $3103
<<<
~GetIntStateRecSize MAC
PHA
_GetIntStateRecSize MAC
Tool $3203
<<<
~ReadMouse2 MAC
PHS 3
_ReadMouse2 MAC
Tool $3303
<<<
~GetCodeResConverter MAC
PHS 2
_GetCodeResConverter MAC
Tool $3403
<<<
_GetROMResource MAC ;private
Tool $3503
<<<
_ReleaseROMResource MAC ;private
Tool $3603
<<<
_ConvSeconds MAC
Tool $3703
<<<
_SysBeep2 MAC
Tool $3803
<<<
_VersionString MAC
Tool $3903
<<<
_WaitUntil MAC
Tool $3A03
<<<
_StringToText MAC
Tool $3B03
<<<
_ShowBootInfo MAC
Tool $3C03
<<<
_ScanDevices MAC
Tool $3D03
<<<
_AlertMessage MAC
Tool $3E03
<<<
_DoSysPrefs MAC
Tool $3F03
<<<
+89
View File
@@ -0,0 +1,89 @@
* Note sequencer macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_SeqBootInit MAC
Tool $011A
<<<
~SeqStartUp MAC
PxW ]1;]2;]3;]4
_SeqStartUp MAC
Tool $021A
<<<
_SeqShutDown MAC
Tool $031A
<<<
~SeqVersion MAC
PHA
_SeqVersion MAC
Tool $041A
<<<
_SeqReset MAC
Tool $051A
<<<
~SeqStatus MAC
PHA
_SeqStatus MAC
Tool $061A
<<<
~SetIncr MAC
PHW ]1
_SetIncr MAC
Tool $091A
<<<
~ClearIncr MAC
PHA
_ClearIncr MAC
Tool $0A1A
<<<
~GetTimer MAC
PHA
_GetTimer MAC
Tool $0B1A
<<<
~GetLoc MAC
PHS 3
_GetLoc MAC
Tool $0C1A
<<<
_SeqAllNotesOff MAC
Tool $0D1A
<<<
~SetTrkInfo MAC
PxW ]1;]2;]3
_SetTrkInfo MAC
Tool $0E1A
<<<
~StartSeq MAC
PxL ]1;]2;]3
_StartSeq MAC
Tool $0F1A
<<<
_StepSeq MAC
Tool $101A
<<<
~StopSeq MAC
PHW ]1
_StopSeq MAC
Tool $111A
<<<
~SetInstTable MAC
PHL ]1
_SetInstTable MAC
Tool $121A
<<<
_StartInts MAC
Tool $131A
<<<
_StopInts MAC
Tool $141A
<<<
~StartSeqRel MAC
PxL ]1;]2;]3
_StartSeqRel MAC
Tool $151A
<<<
+66
View File
@@ -0,0 +1,66 @@
* Note synthesizer macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_NSBootInit MAC
Tool $119
<<<
~NSStartUp MAC
PHWL ]1;]2
_NSStartUp MAC
Tool $219
<<<
_NSShutDown MAC
Tool $319
<<<
~NSVersion MAC
PHA
_NSVersion MAC
Tool $419
<<<
_NSReset MAC
Tool $519
<<<
~NSStatus MAC
PHA
_NSStatus MAC
Tool $619
<<<
~AllocGen MAC
P1SW ]1
_AllocGen MAC
Tool $919
<<<
~DeallocGen MAC
PHW ]1
_DeallocGen MAC
Tool $A19
<<<
~NoteOn MAC
PxW ]1;]2;]3
PHL ]4
_NoteOn MAC
Tool $B19
<<<
~NoteOff MAC
PxW ]1;]2
_NoteOff MAC
Tool $C19
<<<
_AllNotesOff MAC
Tool $D19
<<<
~NSSetUpdateRate MAC
P1SW ]1
_NSSetUpdateRate MAC
Tool $E19
<<<
~NSSetUserUpdateRtn MAC
P2SL ]1
_NSSetUserUpdateRtn MAC
Tool $F19
<<<
+220
View File
@@ -0,0 +1,220 @@
* Print Mgr. macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_PMBootInit MAC
Tool $0113
<<<
~PMStartUp MAC
PxW ]1;]2
_PMStartUp MAC
Tool $0213
<<<
_PMShutDown MAC
Tool $0313
<<<
~PMVersion MAC
PHA
_PMVersion MAC
Tool $0413
<<<
_PMReset MAC
Tool $0513
<<<
~PMStatus MAC
PHA
_PMStatus MAC
Tool $0613
<<<
~PrDefault MAC
PHL ]1
_PrDefault MAC
Tool $0913
<<<
~PrValidate MAC
P1SL ]1
_PrValidate MAC
Tool $0A13
<<<
~PrStlDialog MAC
P1SL ]1
_PrStlDialog MAC
Tool $0B13
<<<
~PrJobDialog MAC
P1SL ]1
_PrJobDialog MAC
Tool $0C13
<<<
~PrPixelMap MAC
PxL ]1;]2
PHW ]3
_PrPixelMap MAC
Tool $0D13
<<<
~PrOpenDoc MAC
P2SL ]1
PHL ]2
_PrOpenDoc MAC
Tool $0E13
<<<
~PrCloseDoc MAC
PHL ]1
_PrCloseDoc MAC
Tool $0F13
<<<
~PrOpenPage MAC
PxL ]1;]2
_PrOpenPage MAC
Tool $1013
<<<
~PrClosePage MAC
PHL ]1
_PrClosePage MAC
Tool $1113
<<<
~PrPicFile MAC
PxL ]1;]2;]3
_PrPicFile MAC
Tool $1213
<<<
_PrControl MAC
Tool $1313
<<<
~PrError MAC
PHA
_PrError MAC
Tool $1413
<<<
~PrSetError MAC
PHW ]1
_PrSetError MAC
Tool $1513
<<<
~PrChoosePrinter MAC
PHA
_PrChoosePrinter MAC
Tool $1613
<<<
_GetDeviceName MAC
Tool $1703
<<<
~PrGetPrinterSpecs MAC
PHS 2
_PrGetPrinterSpecs MAC
Tool $1813
<<<
_PrDevPrChanged MAC
Tool $1913
<<<
_PrDevStartup MAC
Tool $1A13
<<<
_PrDevShutDown MAC
Tool $1B13
<<<
_PrDevOpen MAC
Tool $1C13
<<<
_PrDevRead MAC
Tool $1D13
<<<
_PrDevWrite MAC
Tool $1E13
<<<
_PrDevClose MAC
Tool $1F13
<<<
_PrDevStatus MAC
Tool $2013
<<<
_PrDevAsyncRead MAC
Tool $2113
<<<
_PrDevWriteBackground MAC
Tool $2213
<<<
~PrDriverVer MAC
PHA
_PrDriverVer MAC
Tool $2313
<<<
~PrPortVer MAC
PHA
_PrPortVer MAC
Tool $2413
<<<
~PrGetZoneName MAC
PHS 2
_PrGetZoneName MAC
Tool $2513
<<<
~PrGetPrinterDvrName MAC
PHS 2
_PrGetPrinterDvrName MAC
Tool $2813
<<<
~PrGetPortDvrName MAC
PHS 2
_PrGetPortDvrName MAC
Tool $2913
<<<
~PrGetUserName MAC
PHS 2
_PrGetUserName MAC
Tool $2A13
<<<
~PrGetNetworkName MAC
PHS 2
_PrGetNetworkName MAC
Tool $2B13
<<<
_PrDevIsItSafe MAC
Tool $3013
<<<
_GetZoneList MAC
Tool $3113
<<<
_GetMyZone MAC
Tool $3213
<<<
_GetPrinterList MAC
Tool $3313
<<<
~PMUnloadDriver MAC
PHW ]1
_PMUnloadDriver MAC
Tool $3413
<<<
~PMLoadDriver MAC
PHW ]1
_PMLoadDriver MAC
Tool $3513
<<<
~PrGetDocName MAC
PHS 2
_PrGetDocName MAC
Tool $3613
<<<
~PrSetDocName MAC
PHL ]1
_PrSetDocName MAC
Tool $3713
<<<
~PrGetPgOrientation MAC
P1SL ]1
_PrGetPgOrientation MAC
Tool $3813
<<<
~qPMStartUp MAC
PHW ]1
CLC
LDA ]2
ADC ]NextDP
PHA
Tool $0213
<<<
File diff suppressed because it is too large Load Diff
+86
View File
@@ -0,0 +1,86 @@
* QuickDraw Aux macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_QDAuxBootInit MAC
Tool $112
<<<
_QDAuxStartUp MAC
Tool $212
<<<
_QDAuxShutDown MAC
Tool $312
<<<
~QDAuxVersion MAC
PHA
_QDAuxVersion MAC
Tool $412
<<<
_QDAuxReset MAC
Tool $512
<<<
~QDAuxStatus MAC
PHA
_QDAuxStatus MAC
Tool $612
<<<
~CopyPixels MAC
PxL ]1;]2;]3;]4
PHWL ]5;]6
_CopyPixels MAC
Tool $912
<<<
_WaitCursor MAC
Tool $A12
<<<
~DrawIcon MAC
PHLW ]1;]2
PxW ]3;]4
_DrawIcon MAC
Tool $B12
<<<
~SpecialRect MAC
PHL ]1
PxW ]2;]3
_SpecialRect MAC
Tool $C12
<<<
~SeedFill MAC
PxL ]1;]2;]3;]4
PxW ]5;]6;]7
PxL ]8;]9
_SeedFill MAC
Tool $D12
<<<
~CalcMask MAC
PxL ]1;]2;]3;]4
PHW ]5
PxL ]6;]7
_CalcMask MAC
Tool $E12
<<<
_GetSysIcon MAC
Tool $F12
<<<
_PixelMap2Rgn MAC
Tool $1012
<<<
_IBeamCursor MAC
Tool $1312
<<<
_WhooshRect MAC
Tool $1412
<<<
_DrawStringWidth MAC
Tool $1512
<<<
_UseColorTable MAC
Tool $1612
<<<
_RestoreColorTable MAC
Tool $1712
<<<
+229
View File
@@ -0,0 +1,229 @@
* Resource macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_ResourceBootInit MAC
Tool $11E
<<<
~ResourceStartUp MAC
PHW ]1
_ResourceStartUp MAC
Tool $21E
<<<
_ResourceShutDown MAC
Tool $31E
<<<
~ResourceVersion MAC
PHA
_ResourceVersion MAC
Tool $41E
<<<
_ResourceReset MAC
Tool $51E
<<<
~ResourceStatus MAC
PHA
_ResourceStatus MAC
Tool $61E
<<<
~CreateResourceFile MAC
PHLW ]1;]2
PHWL ]3;]4
_CreateResourceFile MAC
Tool $91E
<<<
~OpenResourceFile MAC
P1SW ]1
PxL ]2;]3
_OpenResourceFile MAC
Tool $A1E
<<<
~CloseResourceFile MAC
PHW ]1
_CloseResourceFile MAC
Tool $B1E
<<<
~AddResource MAC
PHLW ]1;]2
PHWL ]3;]4
_AddResource MAC
Tool $C1E
<<<
~UpdateResourceFile MAC
PHW ]1
_UpdateResourceFile MAC
Tool $D1E
<<<
~LoadResource MAC
P2SW ]1
PHL ]2
_LoadResource MAC
Tool $E1E
<<<
~RemoveResource MAC
PHWL ]1;]2
_RemoveResource MAC
Tool $F1E
<<<
~MarkResourceChange MAC
PxW ]1;]2
PHL ]3
_MarkResourceChange MAC
Tool $101E
<<<
~SetCurResourceFile MAC
PHW ]1
_SetCurResourceFile MAC
Tool $111E
<<<
~GetCurResourceFile MAC
PHA
_GetCurResourceFile MAC
Tool $121E
<<<
~SetCurResourceApp MAC
PHW ]1
_SetCurResourceApp MAC
Tool $131E
<<<
~GetCurResourceApp MAC
PHA
_GetCurResourceApp MAC
Tool $141E
<<<
~HomeResourceFile MAC
P1SW ]1
PHL ]2
_HomeResourceFile MAC
Tool $151E
<<<
~WriteResource MAC
PHWL ]1;]2
_WriteResource MAC
Tool $161E
<<<
~ReleaseResource MAC
PxW ]1;]2
PHL ]3
_ReleaseResource MAC
Tool $171E
<<<
~DetachResource MAC
PHWL ]1;]2
_DetachResource MAC
Tool $181E
<<<
~UniqueResourceID MAC
P2SW ]1
PHW ]2
_UniqueResourceID MAC
Tool $191E
<<<
~SetResourceID MAC
PHLW ]1;]2
PHL ]3
_SetResourceID MAC
Tool $1A1E
<<<
~GetResourceAttr MAC
P1SW ]1
PHL ]2
_GetResourceAttr MAC
Tool $1B1E
<<<
~SetResourceAttr MAC
PxW ]1;]2
PHL ]3
_SetResourceAttr MAC
Tool $1C1E
<<<
~GetResourceSize MAC
P2SW ]1
PHL ]2
_GetResourceSize MAC
Tool $1D1E
<<<
~MatchResourceHandle MAC
PxL ]1;]2
_MatchResourceHandle MAC
Tool $1E1E
<<<
~GetOpenFileRefNum MAC
P1SW ]1
_GetOpenFileRefNum MAC
Tool $1F1E
<<<
~CountTypes MAC
PHA
_CountTypes MAC
Tool $201E
<<<
~GetIndType MAC
P1SW ]1
_GetIndType MAC
Tool $211E
<<<
~CountResources MAC
P2SW ]1
_CountResources MAC
Tool $221E
<<<
~GetIndResource MAC
P2SW ]1
PHL ]2
_GetIndResource MAC
Tool $231E
<<<
~SetResourceLoad MAC
P1SW ]1
_SetResourceLoad MAC
Tool $241E
<<<
~SetResourceFileDepth MAC
P1SW ]1
_SetResourceFileDepth MAC
Tool $251E
<<<
~GetMapHandle MAC
P2SW ]1
_GetMapHandle MAC
Tool $261E
<<<
~LoadAbsResource MAC
P2SL ]1
PHL ]2
PHWL ]3;]4
_LoadAbsResource MAC
Tool $271E
<<<
~ResourceConverter MAC
PHL ]1
PxW ]2;]3
_ResourceConverter MAC
Tool $281E
<<<
_LoadResource2 MAC
Tool $291E
<<<
_RMFindeNamedResource MAC
Tool $2A1E
<<<
_RMGetResourceName MAC
Tool $2B1E
<<<
_RMLoadNamedResource MAC
Tool $2C1E
<<<
_RMSetResourceName MAC
Tool $2D1E
<<<
_OpenResourceFileByID MAC
Tool $2E1E
<<<
_CompactResourceFile MAC
Tool $2F1E
<<<
+604
View File
@@ -0,0 +1,604 @@
* Sane Toolset macros.
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_SANEBootInit MAC
Tool $10A
<<<
~SANEStartUp MAC
PHW ]1
_SANEStartUp MAC
Tool $20A
<<<
_SANEShutDown MAC
Tool $30A
<<<
~SANEVersion MAC
PHA
_SANEVersion MAC
Tool $40A
<<<
_SANEReset MAC
Tool $50A
<<<
~SANEStatus MAC
PHA
_SANEStatus MAC
Tool $60A
<<<
_SANEFP816 MAC
Tool $90A
<<<
_SANEDecStr816 MAC
Tool $A0A
<<<
_SANEElems816 MAC
Tool $B0A
<<<
~qSANEStartUp MAC
NextDP ]1;$100
Tool $20A
<<<
* Auxiliary macros
FOPRF MAC ;call FP
PEA ]1
_SANEFP816
<<<
FOPRD MAC ;call DecStr
PEA ]1
_SANEDecStr816
<<<
FOPRE MAC ;call Elems
PEA ]1
_SANEElems816
<<<
* Addition
FADDX MAC
FOPRF 0
<<<
FADDD MAC
FOPRF $100
<<<
FADDS MAC
FOPRF $200
<<<
FADDC MAC
FOPRF $500
<<<
FADDI MAC
FOPRF $400
<<<
FADDL MAC
FOPRF $300
<<<
* Subtraction
FSUBX MAC
FOPRF $002
<<<
FSUBD MAC
FOPRF $102
<<<
FSUBS MAC
FOPRF $202
<<<
FSUBC MAC
FOPRF $502
<<<
FSUBI MAC
FOPRF $402
<<<
FSUBL MAC
FOPRF $302
<<<
* Multiplication
FMULX MAC
FOPRF $004
<<<
FMULD MAC
FOPRF $104
<<<
FMULS MAC
FOPRF $204
<<<
FMULC MAC
FOPRF $504
<<<
FMULI MAC
FOPRF $404
<<<
FMULL MAC
FOPRF $304
<<<
* Division
FDIVX MAC
FOPRF $006
<<<
FDIVD MAC
FOPRF $106
<<<
FDIVS MAC
FOPRF $206
<<<
FDIVC MAC
FOPRF $506
<<<
FDIVI MAC
FOPRF $406
<<<
FDIVL MAC
FOPRF $306
<<<
* Square root
FSQRTX MAC
FOPRF $12
<<<
* Round to integer, according to the current rounding mode
FRINTX MAC
FOPRF $14
<<<
* Truncate to integer, using round toward zero.
FTINTX MAC
FOPRF $16
<<<
* Remainder
FREMX MAC
FOPRF $00C
<<<
FREMD MAC
FOPRF $10C
<<<
FREMS MAC
FOPRF $20C
<<<
FREMC MAC
FOPRF $50C
<<<
FREMI MAC
FOPRF $40C
<<<
FREML MAC
FOPRF $30C
<<<
* Logb
FLOGBX MAC
FOPRF $1A
<<<
* Scalb
FSCALBX MAC
FOPRF $18
<<<
* Copy-sign
FCPYSGNX MAC
FOPRF $011
<<<
FCPYSGND MAC
FOPRF $111
<<<
FCPYSGNS MAC
FOPRF $211
<<<
FCPYSGNC MAC
FOPRF $511
<<<
FCPYSGNI MAC
FOPRF $411
<<<
FCPYSGNL MAC
FOPRF $311
<<<
* Negate
FNEGX MAC
FOPRF $0D
<<<
* Absolute value
FABSX MAC
FOPRF $0F
<<<
* Next-after. NOTE: both operands are of the
* the same format, as specified by the usual suffix.
FNEXTS MAC
FOPRF $21E
<<<
FNEXTD MAC
FOPRF $11E
<<<
FNEXTX MAC
FOPRF $01E
<<<
* Conversion to extended
FX2X MAC
FOPRF $00E
<<<
FD2X MAC
FOPRF $10E
<<<
FS2X MAC
FOPRF $20E
<<<
* 16-bit integer, by address
FI2X MAC
FOPRF $40E
<<<
* 32-bit integer, by address
FL2X MAC
FOPRF $30E
<<<
FC2X MAC
FOPRF $50E
<<<
* Conversion from extended
FX2D MAC
FOPRF $110
<<<
FX2S MAC
FOPRF $210
<<<
FX2I MAC
FOPRF $410
<<<
FX2L MAC
FOPRF $310
<<<
FX2C MAC
FOPRF $510
<<<
* Binary to decimal conversion
FX2DEC MAC
FOPRF $00B
<<<
FD2DEC MAC
FOPRF $10B
<<<
FS2DEC MAC
FOPRF $20B
<<<
FC2DEC MAC
FOPRF $50B
<<<
FI2DEC MAC
FOPRF $40B
<<<
FL2DEC MAC
FOPRF $30B
<<<
* Decimal to binary conversion
FDEC2X MAC
FOPRF $009
<<<
FDEC2D MAC
FOPRF $109
<<<
FDEC2S MAC
FOPRF $209
<<<
FDEC2C MAC
FOPRF $509
<<<
FDEC2I MAC
FOPRF $409
<<<
FDEC2L MAC
FOPRF $309
<<<
* Compare, not signaling invalid on unordered
FCMPX MAC
FOPRF $008
<<<
FCMPD MAC
FOPRF $108
<<<
FCMPS MAC
FOPRF $208
<<<
FCMPC MAC
FOPRF $508
<<<
FCMPI MAC
FOPRF $408
<<<
FCMPL MAC
FOPRF $308
<<<
* Compare, signaling invalid on unordered
FCPXX MAC
FOPRF $00A
<<<
FCPXD MAC
FOPRF $10A
<<<
FCPXS MAC
FOPRF $20A
<<<
FCPXC MAC
FOPRF $50A
<<<
FCPXI MAC
FOPRF $40A
<<<
FCPXL MAC
FOPRF $30A
<<<
* The following macros define a set of so-called floating
* branches. They presume that the appropriate compare
* operation, macro FCMPz or FCPXz, precedes.
FBEQ MAC
BEQ ]1
<<<
FBLT MAC ;less
BMI ]1
<<<
FBLE MAC ;less or equal
BMI ]1
BEQ ]1
<<<
FBGT MAC ;greater
BVS ]1
<<<
FBGE MAC ;greater or equal
BVS ]1
BEQ ]1
<<<
FBULT MAC ;less or unordered
BMI ]1
BVS *+4
BNE ]1
<<<
FBULE MAC ;unordered, less, or equal
BMI ]1
BEQ ]1
BVC ]1
<<<
FBUGT MAC ;unordered or greater
BVS ]1
BMI *+4
BNE ]1
<<<
FBUGE MAC ;unordered, greater, or equal
BVS ]1
BEQ ]1
BPL ]1
<<<
FBU MAC ;unordered
BVS *+6
BMI *+4
BNE ]1
<<<
FBO MAC ;ordered
BMI ]1
BVS ]1
BEQ ]1
<<<
FBNE MAC ;not equal
BMI ]1
BVS ]1
BNE ]1
<<<
FBUE MAC ;unordered, equal
BEQ ]1
BMI *+4
BVC ]1
<<<
FBLG MAC ;less or greater
BMI ]1
BVS ]1
<<<
FCLASSS MAC
FOPRF $21C
<<<
FCLASSD MAC
FOPRF $11C
<<<
FCLASSX MAC
FOPRF $01C
<<<
FCLASSC MAC
FOPRF $51C
<<<
FCLASSI MAC
FOPRF $41C
<<<
FCLASSL MAC
FOPRF $31C
<<<
* The following macros provide branches based on the
* the result of a FCLASSz macro.
FBSNAN MAC ;signaling NaN
TXA
ASL
CMP #2*$FC
BEQ ]1
<<<
FBQNAN MAC ;quiet NaN
TXA
ASL
CMP #2*$FD
BEQ ]1
<<<
FBINF MAC ;infinite
TXA
ASL
CMP #2*$FE
BEQ ]1
<<<
FBZERO MAC ;zero
TXA
ASL
CMP #2*$FF
BEQ ]1
<<<
FBNORM MAC ;normal
TXA
ASL
BEQ ]1
<<<
FBDENORM MAC ;denormal
TXA
ASL
CMP #2*1
BEQ ]1
<<<
FBNZENUM MAC ;non-zero num (norm or denorm)
TXA
XBA
ASL
BCC ]1
<<<
FBNUM MAC ;number (zero, norm or denorm)
TXA
INC A
XBA
ASL
BCC ]1
<<<
FBMINUS MAC ;minus sign
BMI ]1
<<<
FBPLUS MAC ;plus sign
BPL ]1
<<<
* Get and set environment
FGETENV MAC
FOPRF $03
<<<
FSETENV MAC
FOPRF $01
<<<
* Test and set exception
FTESTXCP MAC
FOPRF $1B
<<<
FSETXCP MAC
FOPRF $15
<<<
* Procedure entry and exit
FPROCENTRY MAC
FOPRF $17
<<<
FPROCEXIT MAC
FOPRF $19
<<<
* Get and set halt vector
FGETHV MAC
FOPRF $07
<<<
FSETHV MAC
FOPRF $05
<<<
* Elementary function macros
FLNX MAC ;natural (base-e) log
FOPRE $00
<<<
FLOG2X MAC ;base-2 log
FOPRE $02
<<<
FLN1X MAC ;ln (1 + x)
FOPRE $04
<<<
FLOG21X MAC ;log2 (1 +x)
FOPRE $06
<<<
FEXPX MAC ;base-e exponential
FOPRE $08
<<<
FEXP2X MAC ;base-2 exponential
FOPRE $0A
<<<
FEXP1X MAC ;exp (x) - 1
FOPRE $0C
<<<
FEXP21X MAC ;exp2 (x) - 1
FOPRE $0E
<<<
FXPWRI MAC ;integer exponential
FOPRE $10
<<<
FXPWRY MAC ;general exponential
FOPRE $12
<<<
FCOMPOUND MAC ;compound
FOPRE $14
<<<
FANNUITY MAC ;annuity
FOPRE $16
<<<
FATANX MAC ;arctangent
FOPRE $18
<<<
FSINX MAC ;sine
FOPRE $1A
<<<
FCOSX MAC ;cosine
FOPRE $1C
<<<
FTANX MAC ;tangent
FOPRE $1E
<<<
FRANDX MAC ;random number generator
FOPRE $20
<<<
* Scanner and formatter function macros
FPSTR2DEC MAC ;pascal string to decimal record
FOPRD 0
<<<
FDEC2STR MAC ;decimal record to pascal string
FOPRD 1
<<<
FCSTR2DEC MAC ;C string to decimal record
FOPRD 2
<<<
+38
View File
@@ -0,0 +1,38 @@
* Scheduler macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_SchBootInit MAC
Tool $107
<<<
_SchStartUp MAC
Tool $207
<<<
_SchShutDown MAC
Tool $307
<<<
~SchVersion MAC
PHA
_SchVersion MAC
Tool $407
<<<
_SchReset MAC
Tool $507
<<<
~SchStatus MAC
PHA
_SchStatus MAC
Tool $607
<<<
~SchAddTask MAC
P1SL ]1
_SchAddTask MAC
Tool $907
<<<
_SchFlush MAC
Tool $A07
<<<
+86
View File
@@ -0,0 +1,86 @@
* Scrap manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_ScrapBootInit MAC
Tool $116
<<<
_ScrapStartUp MAC
Tool $216
<<<
_ScrapShutDown MAC
Tool $316
<<<
~ScrapVersion MAC
PHA
_ScrapVersion MAC
Tool $416
<<<
_ScrapReset MAC
Tool $516
<<<
~ScrapStatus MAC
PHA
_ScrapStatus MAC
Tool $616
<<<
_UnloadScrap MAC
Tool $916
<<<
_LoadScrap MAC
Tool $A16
<<<
_ZeroScrap MAC
Tool $B16
<<<
~PutScrap MAC
PHL ]1
PHWL ]2;]3
_PutScrap MAC
Tool $C16
<<<
~GetScrap MAC
PHLW ]1;]2
_GetScrap MAC
Tool $D16
<<<
~GetScrapHandle MAC
P2SW ]1
_GetScrapHandle MAC
Tool $E16
<<<
~GetScrapSize MAC
P2SW ]1
_GetScrapSize MAC
Tool $F16
<<<
~GetScrapPath MAC
PHS 2
_GetScrapPath MAC
Tool $1016
<<<
~SetScrapPath MAC
PHL ]1
_SetScrapPath MAC
Tool $1116
<<<
~GetScrapCount MAC
PHA
_GetScrapCount MAC
Tool $1216
<<<
~GetScrapState MAC
PHA
_GetScrapState MAC
Tool $1316
<<<
_GetIndScrap MAC
Tool $1416
<<<
_ShowClipboard MAC
Tool $1516
<<<
+111
View File
@@ -0,0 +1,111 @@
* Sound manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_SoundBootInit MAC
Tool $108
<<<
~SoundStartUp MAC
PHW ]1
_SoundStartUp MAC
Tool $208
<<<
_SoundShutDown MAC
Tool $308
<<<
~SoundVersion MAC
PHA
_SoundVersion MAC
Tool $408
<<<
_SoundReset MAC
Tool $508
<<<
~SoundToolStatus MAC
PHA
_SoundToolStatus MAC
Tool $608
<<<
~WriteRamBlock MAC
PHL ]1
PxW ]2;]3
_WriteRamBlock MAC
Tool $908
<<<
~ReadRamBlock MAC
PHL ]1
PxW ]2;]3
_ReadRamBlock MAC
Tool $A08
<<<
~GetTableAddress MAC
PHS 2
_GetTableAddress MAC
Tool $B08
<<<
~GetSoundVolume MAC
P1SW ]1
_GetSoundVolume MAC
Tool $C08
<<<
~SetSoundVolume MAC
PxW ]1;]2
_SetSoundVolume MAC
Tool $D08
<<<
~FFStartSound MAC
PHWL ]1;]2
_FFStartSound MAC
Tool $E08
<<<
~FFStopSound MAC
PHW ]1
_FFStopSound MAC
Tool $F08
<<<
~FFSoundStatus MAC
PHA
_FFSoundStatus MAC
Tool $1008
<<<
~FFGeneratorStatus MAC
P1SW ]1
_FFGeneratorStatus MAC
Tool $1108
<<<
~SetSoundMIRQV MAC
PHL ]1
_SetSoundMIRQV MAC
Tool $1208
<<<
~SetUserSoundIRQV MAC
P2SL ]1
_SetUserSoundIRQV MAC
Tool $1308
<<<
~FFSoundDoneStatus MAC
P1SW ]1
_FFSoundDoneStatus MAC
Tool $1408
<<<
_FFSetUpSound MAC
Tool $1508
<<<
_FFStartPlaying MAC
Tool $1608
<<<
_SetDocReg MAC
Tool $1708
<<<
_ReadDocReg MAC
Tool $1808
<<<
~qSoundStartUp MAC
NextDP ]1;$100
Tool $208
<<<
+47
View File
@@ -0,0 +1,47 @@
*
* Speech Toolkit tool calls
*
_SpeechBootInit mac
Tool $0134
<<<
_SpeechStartUp mac
Tool $0234
<<<
_SpeechShutDown mac
Tool $0334
<<<
_SpeechVersion mac
Tool $0434
<<<
_SpeechReset mac
Tool $0534
<<<
_SpeechStatus mac
Tool $0634
<<<
_Parse mac
Tool $0934
<<<
_DictInsert mac
Tool $0a34
<<<
_DictDelete mac
Tool $0b34
<<<
_DictDump mac
Tool $0c34
<<<
_SetSayGlobals mac
Tool $0d34
<<<
_DictInit mac
Tool $0e34
<<<
_Say mac
Tool $0f34
<<<
_Activate mac
Tool $1034
<<<
+108
View File
@@ -0,0 +1,108 @@
* Standard File Operations macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_SFBootInit MAC
Tool $117
<<<
~SFStartUp MAC
PxW ]1;]2
_SFStartUp MAC
Tool $217
<<<
_SFShutDown MAC
Tool $317
<<<
~SFVersion MAC
PHA
_SFVersion MAC
Tool $417
<<<
_SFReset MAC
Tool $517
<<<
~SFStatus MAC
PHA
_SFStatus MAC
Tool $617
<<<
~SFGetFile MAC
PxW ]1;]2
PxL ]3;]4;]5;]6
_SFGetFile MAC
Tool $917
<<<
~SFPutFile MAC
PxW ]1;]2
PxL ]3;]4
PHWL ]5;]6
_SFPutFile MAC
Tool $A17
<<<
~SFPGetFile MAC
PxW ]1;]2
PxL ]3;]4;]5;]6
PxL ]7;]8
_SFPGetFile MAC
Tool $B17
<<<
~SFPPutFile MAC
PxW ]1;]2
PxL ]3;]4
PHWL ]5;]6
PxL ]7;]8
_SFPPutFile MAC
Tool $C17
<<<
~SFAllCaps MAC
PHW ]1
_SFAllCaps MAC
Tool $D17
<<<
~SFGetFile2 MAC
PxW ]1;]2;]3
PxL ]4;]5;]6;]7
_SFGetFile2 MAC
Tool $E17
<<<
~SFPutFile2 MAC
PxW ]1;]2;]3
PHLW ]4;]5
PxL ]6;]7
_SFPutFile2 MAC
Tool $F17
<<<
_SFPGetFile2 MAC
Tool $1017
<<<
_SFPPutFile2 MAC
Tool $1117
<<<
~SFShowInvisible MAC
P1SW ]1
_SFShowInvisible MAC
Tool $1217
<<<
~SFReScan MAC
PxL ]1;]2
_SFReScan MAC
Tool $1317
<<<
~SFMultiGet2 MAC
PxW ]1;]2;]3
PxL ]4;]5;]6;]7
_SFMultiGet2 MAC
Tool $1417
<<<
_SFPMultiGet2 MAC
Tool $1517
<<<
~qSFStartUp MAC
PHW ]1
NextDP ]2;$100
Tool $217
<<<
+184
View File
@@ -0,0 +1,184 @@
* Text tool macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_TextBootInit MAC
Tool $10C
<<<
_TextStartUp MAC
Tool $20C
<<<
_TextShutDown MAC
Tool $30C
<<<
~TextVersion MAC
PHA
_TextVersion MAC
Tool $40C
<<<
_TextReset MAC
Tool $50C
<<<
~TextStatus MAC
PHA
_TextStatus MAC
Tool $60C
<<<
~SetInGlobals MAC
PxW ]1;]2
_SetInGlobals MAC
Tool $90C
<<<
~SetOutGlobals MAC
PxW ]1;]2
_SetOutGlobals MAC
Tool $A0C
<<<
~SetErrGlobals MAC
PxW ]1;]2
_SetErrGlobals MAC
Tool $B0C
<<<
~GetInGlobals MAC
PHS 2
_GetInGlobals MAC
Tool $C0C
<<<
~GetOutGlobals MAC
PHS 2
_GetOutGlobals MAC
Tool $D0C
<<<
~GetErrGlobals MAC
PHS 2
_GetErrGlobals MAC
Tool $E0C
<<<
~SetInputDevice MAC
PHWL ]1;]2
_SetInputDevice MAC
Tool $F0C
<<<
~SetOutputDevice MAC
PHWL ]1;]2
_SetOutputDevice MAC
Tool $100C
<<<
~SetErrorDevice MAC
PHWL ]1;]2
_SetErrorDevice MAC
Tool $110C
<<<
~GetInputDevice MAC
PHS 3
_GetInputDevice MAC
Tool $120C
<<<
~GetOutputDevice MAC
PHS 3
_GetOutputDevice MAC
Tool $130C
<<<
~GetErrorDevice MAC
PHS 3
_GetErrorDevice MAC
Tool $140C
<<<
~InitTextDev MAC
PHW ]1
_InitTextDev MAC
Tool $150C
<<<
~CtlTextDev MAC
PxW ]1;]2
_CtlTextDev MAC
Tool $160C
<<<
~StatusTextDev MAC
PxW ]1;]2
_StatusTextDev MAC
Tool $170C
<<<
~WriteChar MAC
PHW ]1
_WriteChar MAC
Tool $180C
<<<
~ErrWriteChar MAC
PHW ]1
_ErrWriteChar MAC
Tool $190C
<<<
~WriteLine MAC
PHL ]1
_WriteLine MAC
Tool $1A0C
<<<
~ErrWriteLine MAC
PHL ]1
_ErrWriteLine MAC
Tool $1B0C
<<<
~WriteString MAC
PHL ]1
_WriteString MAC
Tool $1C0C
<<<
~ErrWriteString MAC
PHL ]1
_ErrWriteString MAC
Tool $1D0C
<<<
~TextWriteBlock MAC
PHL ]1
PxW ]2;]3
_TextWriteBlock MAC
Tool $1E0C
<<<
~ErrWriteBlock MAC
PHL ]1
PxW ]2;]3
_ErrWriteBlock MAC
Tool $1F0C
<<<
~WriteCString MAC
PHL ]1
_WriteCString MAC
Tool $200C
<<<
~ErrWriteCString MAC
PHL ]1
_ErrWriteCString MAC
Tool $210C
<<<
~ReadChar MAC
P1SW ]1
_ReadChar MAC
Tool $220C
<<<
~TextReadBlock MAC
PHL ]1
PxW ]2;]3;]4
_TextReadBlock MAC
Tool $230C
<<<
~ReadLine MAC
P1SL ]1
PxW ]2;]3;]4
_ReadLine MAC
Tool $240C
<<<
PrintLn MAC ; print a line of text
pea ^text
pea text
ldx #$1A0C
jsl $E10000
bra cont
text str ]1
cont
<<<
+199
View File
@@ -0,0 +1,199 @@
* TextEdit macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_TEBootInit MAC
Tool $122
<<<
~TEStartUp MAC
PxW ]1;]2
_TEStartUp MAC
Tool $222
<<<
_TEShutDown MAC
Tool $322
<<<
~TEVersion MAC
PHA
_TEVersion MAC
Tool $422
<<<
_TEReset MAC
Tool $522
<<<
~TEStatus MAC
PHA
_TEStatus MAC
Tool $622
<<<
~TENew MAC
P2SL ]1
_TENew MAC
Tool $922
<<<
~TEKill MAC
PHL ]1
_TEKill MAC
Tool $A22
<<<
~TESetText MAC
PHWL ]1;]2
PHLW ]3;]4
PxL ]5;]6
_TESetText MAC
Tool $B22
<<<
~TEGetText MAC
PHS 2
PHWL ]1;]2
PHLW ]3;]4
PxL ]5;]6
_TEGetText MAC
Tool $C22
<<<
~TEGetTextInfo MAC
PHLW ]1;]2
PHL ]3
_TEGetTextInfo MAC
Tool $D22
<<<
~TEIdle MAC
PHL ]1
_TEIdle MAC
Tool $E22
<<<
~TEActivate MAC
PHL ]1
_TEActivate MAC
Tool $F22
<<<
~TEDeactivate MAC
PHL ]1
_TEDeactivate MAC
Tool $1022
<<<
~TEClick MAC
PxL ]1;]2
_TEClick MAC
Tool $1122
<<<
~TEUpdate MAC
PHL ]1
_TEUpdate MAC
Tool $1222
<<<
~TEPaintText MAC
P2SL ]1
PxL ]2;]3
PHWL ]4;]5
_TEPaintText MAC
Tool $1322
<<<
~TEKey MAC
PxL ]1;]2
_TEKey MAC
Tool $1422
<<<
~TECut MAC
PHL ]1
_TECut MAC
Tool $1622
<<<
~TECopy MAC
PHL ]1
_TECopy MAC
Tool $1722
<<<
~TEPaste MAC
PHL ]1
_TEPaste MAC
Tool $1822
<<<
~TEClear MAC
PHL ]1
_TEClear MAC
Tool $1922
<<<
~TEInsert MAC
PHWL ]1;]2
PHLW ]3;]4
PxL ]5;]6
_TEInsert MAC
Tool $1A22
<<<
~TEReplace MAC
PHWL ]1;]2
PHLW ]3;]4
PxL ]5;]6
_TEReplace MAC
Tool $1B22
<<<
~TEGetSelection MAC
PxL ]1;]2;]3
_TEGetSelection MAC
Tool $1C22
<<<
~TESetSelection MAC
PxL ]1;]2;]3
_TESetSelection MAC
Tool $1D22
<<<
~TEGetSelectionStyle MAC
PHA
PxL ]1;]2;]3
_TEGetSelectionStyle MAC
Tool $1E22
<<<
~TEStyleChange MAC
PHW ]1
PxL ]2;]3
_TEStyleChange MAC
Tool $1F22
<<<
~TEOffsetToPoint MAC
PxL ]1;]2;]3;]4
_TEOffsetToPoint MAC
Tool $2022
<<<
~TEPointToOffset MAC
PHS 2
PxL ]1;]2;]3
_TEPointToOffset MAC
Tool $2122
<<<
~TEGetDefProc MAC
PHS 2
_TEGetDefProc MAC
Tool $2222
<<<
~TEGetRuler MAC
PHWL ]1;]2
PHL ]3
_TEGetRuler MAC
Tool $2322
<<<
~TESetRuler MAC
PHW ]1
PxL ]2;]3
_TESetRuler MAC
Tool $2422
<<<
~TEScroll MAC
PHW ]1
PxL ]2;]3;]4
_TEScroll MAC
Tool $2522
<<<
_TEGetInternalProc MAC
Tool $2622
<<<
_TEGetLastError MAC
Tool $2722
<<<
_TECompactRecord MAC
Tool $2822
<<<
+86
View File
@@ -0,0 +1,86 @@
* SoundSmith Tool
* FTA, 1991
~STStartUp mac
PHW ]1
_STStartUp mac
Tool $02DB
<<<
_STShutDown mac
Tool $03DB
<<<
~STVersion mac
phd ; WordResult
_STVersion mac
Tool $04DB
<<<
_STReset mac
Tool $05DB
<<<
~STStatus mac
phd ; WordResult
STStatus mac
Tool $06DB
<<<
~STLoadOneMusic mac
PHL ]1
_STLoadOneMusic mac
Tool $09DB
<<<
~STPlayMusic mac
PHW ]1
_STPlayMusic mac
Tool $0ADB
<<<
_STStopMusic mac
Tool $0BDB
<<<
~STGetEOfMusic mac
phd ; WordResult
_STGetEOfMusic mac
Tool $0CDB
<<<
~STAddToBatch mac
PHLW ]1;]2
_STAddToBatch mac
Toll $0DDB
<<<
~STSelectBatch mac
PHW ]1
_STSelectBatch mac
Tool $0EDB
<<<
~STKillBatch mac
PHW ]1
_STKillBatch mac
Tool $0FDB
<<<
~STGetPlayingMusic mac
phd ; WordResult
_STGetPlayingMusic mac
Tool $10DB
<<<
~STPlayBatch mac
PHL ]1
_STPlayBatch mac
Tool $11DB
<<<
~STGetTrackVu mac
phd ;Long
phd ; Result
_STGetTrackVu mac
Tool $12DB
<<<
_STPauseMusic mac
Tool $13DB
<<<
_STContinueMusic mac
Tool $14DB
<<<
_STinternal15 mac
Tool $15DB
<<<
_STinternal16 mac
Tool $16DB
<<<
+34
View File
@@ -0,0 +1,34 @@
* NoiseTracker Tool
* FTA, 1992
_NTBootInit mac
Tool $01dc
<<<
_NTStartUp mac
Tool $02dc
<<<
_NTShutDown mac
Tool $03dc
<<<
_NTVersion mac
Tool $04dc
<<<
_NTReset mac
Tool $05dc
<<<
_NTStatus mac
Tool $06dc
<<<
_NTInitMusic mac
Tool $09dc
<<<
_NTLaunchMusic mac
Tool $0adc
<<<
_NTUpdateSound mac
Tool $0bdc
<<<
_NTStopMusic mac
Tool $0cdc
<<<
+109
View File
@@ -0,0 +1,109 @@
* NinjaTracker Tool
* FTA, 1991
* Ninjaforce, 1995
* Brutal Deluxe, 2015
_NTBootInit mac
Tool $01DD
<<<
~NTStartUp mac
PHW ]1
_NTStartUp mac
Tool $02DD
<<<
_NTShutDown mac
Tool $03DD
<<<
~NTVersion mac
phd ; WordResult
_NTVersion mac
Tool $04DD
<<<
_NTReset mac
Tool $05DD
<<<
~NTStatus mac
phd ; WordResult
_NTStatus mac
Tool $06DD
<<<
~NTLoadOneMusic mac
PHL ]1
_NTLoadOneMusic mac
Tool $09DD
<<<
~NTPlayMusic mac
PHW ]1
_NTPlayMusic mac
Tool $0ADD
<<<
_NTStopMusic mac
Tool $0BDD
<<<
~NTGetEOfMusic mac
phd ; WordResult
_NTGetEOfMusic mac
Tool $0CDD
<<<
~NTAddToBatch mac
PHLW ]1;]2
_NTAddToBatch mac
Tool $0DDD
<<<
~NTSelectBatch mac
PHW ]1
_NTSelectBatch mac
Tool $0EDD
<<<
~NTKillBatch mac
PHW ]1
_NTKillBatch mac
Tool $0FDD
<<<
~NTGetPlayingMusic mac
phd ; WordResult
_NTGetPlayingMusic mac
Tool $10DD
<<<
~NTPlayBatch mac
PHL ]1
_NTPlayBatch mac
Tool $11DD
<<<
~NTGetTrackVu mac
phd ;Long
phd ; Result
_NTGetTrackVu mac
Tool $12DD
<<<
_NTPauseMusic mac
Tool $13DD
<<<
_NTContinueMusic mac
Tool $14DD
<<<
_NTinternal15 mac
Tool $15DD
<<<
_NTinternal16 mac
Tool $16DD
<<<
+109
View File
@@ -0,0 +1,109 @@
* NinjaTrackerPlus Tool
* by Ninjaforce, 2018
* based on FTA, 1991
* toolified by Brutal Deluxe, 2018
_NTPBootInit mac
Tool $01DE
<<<
~NTPStartUp mac
PHW ]1
_NTPStartUp mac
Tool $02DE
<<<
_NTPShutDown mac
Tool $03DE
<<<
~NTPVersion mac
phd ; WordResult
_NTPVersion mac
Tool $04DE
<<<
_NTPReset mac
Tool $05DE
<<<
~NTPStatus mac
phd ; WordResult
NTPStatus mac
Tool $06DE
<<<
~NTPLoadOneMusic mac
PHL ]1
_NTPLoadOneMusic mac
Tool $09DE
<<<
~NTPPlayMusic mac
PHW ]1
_NTPPlayMusic mac
Tool $0ADE
<<<
_NTPStopMusic mac
Tool $0BDE
<<<
~NTPGetEOfMusic mac
phd ; WordResult
_NTPGetEOfMusic mac
Tool $0CDE
<<<
~NTPAddToBatch mac
PHLW ]1;]2
_NTPAddToBatch mac
Toll $0DDE
<<<
~NTPSelectBatch mac
PHW ]1
_NTPSelectBatch mac
Tool $0EDE
<<<
~NTPKillBatch mac
PHW ]1
_NTPKillBatch mac
Tool $0FDE
<<<
~NTPGetPlayingMusic mac
phd ; WordResult
_NTPGetPlayingMusic mac
Tool $10DE
<<<
~NTPPlayBatch mac
PHL ]1
_NTPPlayBatch mac
Tool $11DE
<<<
~NTPGetTrackVu mac
phd ;Long
phd ; Result
_NTPGetTrackVu mac
Tool $12DE
<<<
_NTPPauseMusic mac
Tool $13DE
<<<
_NTPContinueMusic mac
Tool $14DE
<<<
_NTPinternal15 mac
Tool $15DE
<<<
_NTPinternal16 mac
Tool $16DE
<<<
+109
View File
@@ -0,0 +1,109 @@
* ALFTracker Tool
* FTA, 1991
* Willy Huey, 1989
* Brutal Deluxe, 2015
_ALFBootInit mac
Tool $01E2
<<<
~ALFStartUp mac
PHW ]1
_ALFStartUp mac
Tool $02E2
<<<
_ALFShutDown mac
Tool $03E2
<<<
~ALFVersion mac
phd ; WordResult
_ALFVersion mac
Tool $04E2
<<<
_ALFReset mac
Tool $05E2
<<<
~ALFStatus mac
phd ; WordResult
_ALFStatus mac
Tool $06E2
<<<
~ALFLoadOneMusic mac
PHL ]1
_ALFLoadOneMusic mac
Tool $09E2
<<<
~ALFPlayMusic mac
PHW ]1
_ALFPlayMusic mac
Tool $0AE2
<<<
_ALFStopMusic mac
Tool $0BE2
<<<
~ALFGetEOfMusic mac
phd ; WordResult
_ALFGetEOfMusic mac
Tool $0CE2
<<<
~ALFAddToBatch mac
PHLW ]1;]2
_ALFAddToBatch mac
Tool $0DE2
<<<
~ALFSelectBatch mac
PHW ]1
_ALFSelectBatch mac
Tool $0EE2
<<<
~ALFKillBatch mac
PHW ]1
_ALFKillBatch mac
Tool $0FE2
<<<
~ALFGetPlayingMusic mac
phd ; WordResult
_ALFGetPlayingMusic mac
Tool $10E2
<<<
~ALFPlayBatch mac
PHL ]1
_ALFPlayBatch mac
Tool $11E2
<<<
~ALFGetTrackVu mac
phd ;Long
phd ; Result
_ALFGetTrackVu mac
Tool $12E2
<<<
_ALFPauseMusic mac
Tool $13E2
<<<
_ALFContinueMusic mac
Tool $14E2
<<<
_ALFinternal15 mac
Tool $15E2
<<<
_ALFinternal16 mac
Tool $16E2
<<<
+796
View File
@@ -0,0 +1,796 @@
*=================================================
* Utility Macros - from Merlin disk
* by Dave Klimas, et al
*
* Copyright Apple Computer, Inc. 1986, 1987
* and Roger Wagner Publishing, Inc. 1988
* All Rights Reserved
*-------------------------------------------------
PHWL MAC
PHW ]1
PHL ]2
<<<
PHLW MAC
PHL ]1
PHW ]2
<<<
PxW MAC
DO ]0/1
PHW ]1
DO ]0/2
PHW ]2
DO ]0/3
PHW ]3
DO ]0/4
PHW ]4
FIN
FIN
FIN
FIN
<<<
PxL MAC
DO ]0/1
PHL ]1
DO ]0/2
PHL ]2
DO ]0/3
PHL ]3
DO ]0/4
PHL ]4
FIN
FIN
FIN
FIN
<<<
P2SL MAC
PHA
P1SL MAC
PHA
PHL MAC
IF #=]1
PEA ^]1
ELSE
PHW ]1+2
FIN
PHW ]1
<<<
P2SW MAC
PHA
P1SW MAC
PHA
PHW MAC
IF #=]1
PEA ]1
ELSE
IF MX/2
LDA ]1+1
PHA
FIN
LDA ]1
PHA
FIN
<<<
PushSpace MAC
PHS MAC
DO ]0
LUP ]1
PHA
--^
ELSE
PHA
FIN
<<<
********************************
Push4 MAC
PushLong #0
PushLong #0
<<<
PushPtr MAC
PEA ^]1
PEA ]1
EOM
PushLong MAC
IF #=]1
PushWord #^]1
ELSE
PushWord ]1+2
FIN
PushWord ]1
<<<
PushWord MAC
IF #=]1
PEA ]1
ELSE
IF MX/2
LDA ]1+1
PHA
FIN
LDA ]1
PHA
FIN
<<<
PullLong MAC
DO ]0
PullWord ]1
PullWord ]1+2
ELSE
PullWord
PullWord
FIN
<<<
PullWord MAC
PLA
DO ]0
STA ]1
FIN
IF MX/2
PLA
DO ]0
STA ]1+1
FIN
FIN
<<<
MoveLong MAC
MoveWord ]1;]2
MoveWord ]1+2;]2+2
<<<
MoveWord MAC
LDA ]1
STA ]2
IF MX/2
LDA ]1+1
STA ]2+1
FIN
<<<
MoveBlock MAC ;1st_byte;last_byte;dest
DO ]2/]1
DO ]3/]1
LDX #]2
LDY #]3+]2-]1
LDA #]2-]1
MVP ]1,]3
ELSE
LDX #]1
LDY #]3
LDA #]2-]1
MVN ]1,]3
FIN
ELSE
ERR 1 ;Last adrs < first adrs
FIN
<<<
CmpLong MAC
LDA ]1
CMP ]2
IF #=]1
LDA ^]1
ELSE
LDA ]1+2
FIN
IF #=]2
SBC ^]2
ELSE
SBC ]2+2
FIN
<<<
LONGM MAC
LONGACC MAC ;Assumes native mode
IF MX&2 ;If A is now short
REP %00100000
FIN
<<<
LONGX MAC
LONGXY MAC ;Assumes native mode
IF MX&1 ;If X is now short
REP %00010000
FIN
<<<
LONG MAC
LONGAX MAC ;Assumes native mode
IF MX ;If not now in full 16
REP %00110000
FIN
<<<
SHORTM MAC
SHORTACC MAC ;Assumes native mode
IF MX&2 ;If A is now short,
ELSE ; ignore
SEP %00100000
FIN
<<<
SHORTX MAC
SHORTXY MAC ;Assumes native mode
IF MX&1 ;If X is now short,
ELSE ; ignore
SEP %00010000
FIN
<<<
SHORT MAC
SHORTAX MAC ;Assumes native mode
IF MX!%11 ;If not now in full 8
SEP %00110000
FIN
<<<
LONGI MAC ; Duplicates APW function
LST OFF
DO ]1 ; If arg = 1 = "on" = make long
IF MX-3/-1 ; If M is short and X is long
; Leave alone
FIN ; End of this test
IF MX/3 ; If M is short and X is short
MX %10 ; Make X long, leave M short
FIN ; End of this test
IF MX!3/3 ; If M is long and X is long
FIN ; Leave alone
IF MX-2/-1 ; If M is long and X is short
MX %00 ; Make X long, leave M long
FIN ; End of this test
ELSE ; If arg = 0 = "off" = make short
IF MX/3 ; If M is short and X is short
; Leave alone
FIN ; End of this test
IF MX-3/-1 ; If M is short and X is long
MX %11 ; Make X short, leave M short
FIN ; End of this test
IF MX-2/-1 ; If M is long and X is short
; Leave alone
FIN ; End of this test
IF MX!3/3 ; If M is long and X is long
MX %01 ; Make X short, leave M long
FIN ; Leave alone
FIN ; End of macro tests
LST RTN
<<<
LONGA MAC ; Duplicates APW function
LST OFF
DO ]1 ; If arg = 1 = "on" = make long
IF MX-3/-1 ; If M is short and X is long
MX %00 ; Make M long, leave X long
FIN ; End of this test
IF MX/3 ; If M is short and X is short
MX %01 ; Make M long, leave X short
FIN ; End of this test
IF MX!3/3 ; If M is long and X is long
FIN ; Leave alone
IF MX-2/-1 ; If M is long and X is short
; Leave alone
FIN ; End of this test
ELSE ; If arg = 0 = "off" = make short
IF MX/3 ; If M is short and X is short
; Leave alone
FIN ; End of this test
IF MX-3/-1 ; If M is short and X is long
; Leave alone
FIN ; End of this test
IF MX-2/-1 ; If M is long and X is short
MX %11 ; Make M short, leave X short
FIN ; End of this test
IF MX!3/3 ; If M is long and X is long
MX %10 ; Make M short, leave X long
FIN ; Leave alone
FIN ; End of macro tests
LST RTN
<<<
M65816 MAC
DO ]1
XC
XC ; Full 65816 mode for assembler
MX %00
ELSE
MX %11 ; 8 bit mode for assembler
FIN
<<<
Expmac MAC ; Replace APW GEN function
DO ]1
EXP ONLY ; Expand macros
ELSE
EXP OFF
FIN
<<<
Tool MAC
LDX #]1 ; load tool call #
JSL $E10000 ; go to dispatcher
<<<
**************************************************
* Auto-menu item macros *
* This is one alternative for defining a menu *
* item. It has the advantage of letting you *
* include specifiers for Bold, Italic, etc. *
**************************************************
*-------------------------------------------------
* Syntax:
* ]mnum = 0 ; initialize menu # at startvalue-1
* Menu ' Menu 1 '
*
* (See Menu macro, defined later....)
*
* ]inum = 255 ; Menu item starts with #256
* Item ' Choice 1 ';Kybd;'Bb';Check
* Ch1 = ]inum ; Set label Ch1 if somewhere else
* needs to use this item #.
* Item ' Choice 2 ';Disable;'';Kybd;'Cc'
* Item ' Choice 3 ';Divide;''
*
* Menu ' Menu 2 '
*
* Item ' Choice 4 ';Bold;'';Check
* Item ' Choice 5 ';Italic;'';Blank
* Item ' Choice 6 ';Underline';Kybd;'Dd'
*
* IMPORTANT: ALL items, except for Check and Blank, are followed by a second
* value. For the Kybd item, the ASCII characters follow in single quotes, Ex:
* Kybd;'Cc' (specifies Apple-C as an equivalent).
* All other items use a null 2nd value, as in:
* Italic;'' or Divide;'' etc.
*
* The variable ]inum MUST be initialized for the value of your first
* menu item MINUS 1 before using the first Item macro.
*
* Check or Blank, if used, MUST be the last item in the macro line.
*
* There can be up to three parameter pairs after the item name.
*-------------------------------------------------
* The point of all this is that rather than hard-
* code menu items values and subsequent references
* to that number when disabling menus, etc., this
* lets you add and delete menu items at will,
* and have labels like Ch1, etc. above, auto-
* matically set for the correct value during the
* assembly.
*-------------------------------------------------
* Equates for Item macro:
Bold = 'B' ; bold menu item
Disable = 'D' ; disabled menu item
Italic = 'I' ; italic menu item
Underline = 'U' ; underlined menu item
Divide = 'V' ; menu dividing line
ColorHi = 'X' ; color hilite menu item
Kybd = '*' ; keyboard menu equivalent
Check = $1243 ; menu item with checkmark
Blank = $2043 ; menu item with blank
*-------------------------------------------------
Item MAC ; Macro for creating a menu item
ASC '--'
ASC ]1 ; Text of menu item
ASC '\H'
DA ]inum ; Menu item #
DO ]0/2 ; Only if more items to do... (>2)
DO ]2-Check-1/-1 ; Only if Check item
DA ]2 ; ]2 = Check
ELSE ; otherwise kybd char or null
DO ]2-Blank-1/-1 ; Only if Blank check item
DA ]2 ; ]2 = Blank
ELSE
DB ]2 ; Function char value
ASC ]3 ; ASCII argument, if any for Kybd
FIN
FIN
FIN
DO ]0/4 ; Only if more items to do... (>3)
DO ]4-Check-1/-1 ; Only if Check item
DA ]4 ; ]4 = Check
ELSE ; otherwise kybd char or null
DO ]4-Blank-1/-1 ; Only if Blank check item
DA ]4 ; ]4 = Blank
ELSE
DB ]4 ; Function char value
ASC ]5 ; ASCII argument, if any for Kybd
FIN
FIN
FIN
DO ]0/6 ; Only if more items to do... (>5)
DO ]6-Check-1/-1 ; Only if Check item
DA ]6 ; ]6 = Check
ELSE ; otherwise kybd char or null
DO ]6-Blank-1/-1 ; Only if Blank check item
DA ]6 ; ]6 = Blank
ELSE
DB ]6 ; Function char value
ASC ]7 ; ASCII argument, if any for Kybd
FIN
FIN
FIN
DB $00 ; End of menu item
]inum = ]inum+1
<<<
**************************************************
* This is another alternative macro for both *
* menus and menu items. It is simpler, and *
* more compact, but not as versatile. *
**************************************************
*===============================================
* Variables ]mnum,]inum should be defined
* prior to using these MenuMaker macros.
*
* They both should be starting value-1
*
* Syntax:
*
* ]mnum = 0 ; 1st menu number will be 1
* ]inum = 255 ; 1st menu item number will be 256
*
* Menu ' @';X ; Apple menu, color highlighting.
*
* MItem ' About... ' ; "About" menu item
*
* Menu ' Menu Title 1' ; (this will be menu number 2)
*
* MItem ' Choice 1 '
* MItem ' Choice 2 ';'D*Cc' ; Disabled, kybd char: Cc
* ; Above will be menu item #'s 2&3
*
*
Menu MAC
ASC '>>'
ASC ]1
ASC '\H'
DA ]mnum
DO ]0>1
ASC ]2
FIN
DB 0
]mnum = ]mnum+1
<<<
MItem MAC
ASC '--'
ASC ]1
ASC '\H'
DA ]inum
DO ]0>1
ASC ]2
FIN
DB 0
]inum = ]inum+1
<<<
*-----------------------------------------------------
*
* Native -- Processor is in LONG "native" mode.
* Native Long -- Processor is in LONG "native" mode.
* Native Short -- Processor is in SHORT "native" mode.
*
Native MAC
CLC
XCE
IF 0=]0 ;If Native (Long)
LONGAX
FIN
DO ]0
IF L=]1 ;If Native Long
LONGAX
FIN ;If Native Short only
FIN ; do CLC, XCE.
EOM
*--------------------------------------------------------
*
* Emulation -- Set Processor into "emulation" mode.
*
Emulation MAC
SEC
XCE
EOM
*-----------------------------------------------------
*
* WriteCh -- Print Character From Accumulator
* WriteCh ADDR -- Print Character At Label
* WriteCh ADDR,X -- Print Character At Label,X
*
WriteCh MAC
DO ]0
LDA ]1
FIN
PHA
LDX #$180C
JSL $E10000
EOM
*-----------------------------------------------------
*
* ReadCh -- Get Keypress in Accumulator
* ReadCh ADDR -- Get Keypress in Label
*
ReadCh MAC
PEA 0
PEA 1
LDX #$220C
JSL $E10000
PLA
DO ]0
STA ]1
FIN
EOM
*-----------------------------------------------------
*
* WriteLn "STRING" -- Print Literal String with CR.
* WriteLn ADDR -- Print String At Address with CR.
* WriteLn -- Print CR.
*
WriteLn MAC
DO ]0
WriteStr ]1
FIN
WriteCh #$8D
EOM
*-----------------------------------------------------
*
* WriteStr "STRING" -- Print Literal String.
* WriteStr ADDR -- Print String At Address.
* WriteStr -- Print String At A (Lo),Y (Hi).
*
WriteStr MAC
IF 0=]0 ;If No Label
PHY
PHA
ELSE
IF "=]1
PEA ^]String
PEA ]String
BRL ]Skip
]String STR ]1
]Skip
ELSE
IF '=]1
PEA ^]String
PEA ]String
BRL ]Skip
]String STR ]1
]Skip
ELSE
PEA ^]1
PEA ]1
FIN
FIN
FIN
LDX #$1C0C
JSL $E10000
EOM
*-----------------------------------------------------
*
* DrawStrHV 8;12;"STRING" Print Literal String on
* DrawStr 8;12;ADDR Super Hi-Res Screen.
*
DrawStrHV MAC
HtabVtab ]1;]2
DrawStr ]3
<<<
*-----------------------------------------------------
*
* DrawStr "STRING" -- Print Literal String.
* DrawStr ADDR -- Print String At Address.
*
DrawStr MAC
IF "=]1
PEA ^]String
PEA ]String
BRL ]Skip
]String STR ]1
]Skip
ELSE
IF '=]1
PEA ^]String
PEA ]String
BRL ]Skip
]String STR ]1
]Skip
ELSE
PEA ^]1
PEA ]1
FIN
FIN
LDX #$A504 ;DrawString
JSL $E10000
<<<
*-----------------------------------------------------
*
* HtabVtab #8;#12 -- Position at Htab 8, Vtab 12.
* HtabVtab H;V on super hires screens.
*
HtabVtab MAC
IF #=]1
LDA ]1*8
ELSE
LDA ]1
ASL
ASL
ASL
FIN
PHA
IF #=]1
LDA ]2*8
ELSE
LDA ]2
ASL
ASL
ASL
FIN
PHA
LDX #$3A04 ;MoveTo
JSL $E10000
<<<
*-----------------------------------------------------
*
* Deref MyHandle;MyPtr -- Uses zero page 0-3 to
* de-reference a handle.
*
Deref MAC
LDA ]1
LDX ]1+2
STA 0
STX 2
LDA [0]
STA ]2
LDY #2
LDA [0],Y
STA ]2+2
<<<
*==================================================
* The MLI16 macro assumes the CALLDOS file from the
* SUBROUT.LIB is linked in. It provides an easy
* way to make MLI calls. Example syntax:
*
* MLI16 close;CLSPARMS
*--------------------------------------------------
MLI16 MAC ;Uses CALLDOS file in the
IF MX ; subroutine library
REP %00110000 ;Force full 16-bit mode, if
FIN ; not already there.
LDX #]1 ;Call code (use MLI.CODES)
LDA #]2 ;Low word of PARMS tbl adr
JSR CALLDOS ;Returns CS if an error
<<<
*=================================================
* The following macros are APW-equivalents for
* compatibility with APW style listings.
*
* One difference between Merlin and APW here: Instead of
* using the syntax PULL1 ADDRESS;X, Merlin can take
* the raw statement PULL1 ADDRESS,X.
*
PULL1 MAC
SEP #%00100000
PLA
REP #%00100000
DO ]0/1 ;If 1 parm
IF MX>0
STA ]1
FIN
IF MX=0
STAL ]1
FIN
FIN
<<<
PULL3 MAC
SEP #%00100000
PLA
STA ]1
REP #%00100000
PLA
STA ]1+1
FIN
<<<
PUSH1 MAC
SEP #%00100000
IF ]0/1 ;if one parm
LDA ]1
FIN
PHA
REP #%00100000
<<<
PUSH3 MAC
IF #=]1
LDA #^]1 ;get two hi order bytes
PHA
PHB
LDA #<]1
STA 1,S
ELSE
LDA ]1+1
PHA
PHB
LDA ]1
STA 1,S
FIN
<<<
+66
View File
@@ -0,0 +1,66 @@
*
* Macros SecondSight
*
* (c) 1995, Brutal Deluxe
*
_SSGetStatus MAC
jsl _xGetStatus
<<<
_SSSetMode MAC
jsl _xSetMode
<<<
_SSUploadData MAC
jsl _xUploadData
<<<
_SSScrollScreen MAC
jsl _xScrollScreen
<<<
_SSScreenOff MAC
jsl _xScreenOff
<<<
_SSScreenOn MAC
jsl _xScreenOn
<<<
_SSSetPalette MAC
jsl _xSetPalette
<<<
_SSSetPaletteEntry MAC
jsl _xSetPaletteEntry
<<<
_SSSetBorder MAC
jsl _xSetBorder
<<<
_SSRunCode MAC
jsl _xRunCode
<<<
_SSClearScreen MAC
jsl _xClearScreen
<<<
_SSSetShadow MAC
jsl _xSetShadow
<<<
_SSSetVGAReg MAC
jsl _xSetVGAReg
<<<
_SSGetVGAReg MAC
jsl _xGetVGAReg
<<<
_SSSetUserMode MAC
jsl _xSetUserMode
<<<
+89
View File
@@ -0,0 +1,89 @@
*
* Video Overlay tool calls
*
_VDBootInit mac
Tool $0121
<<<
_VDStartUp mac
Tool $0221
<<<
_VDShutDown mac
Tool $0321
<<<
_VDVersion mac
Tool $0421
<<<
_VDReset mac
Tool $0521
<<<
_VDStatus mac
Tool $0621
<<<
_VDInStatus mac
Tool $0921
<<<
_VDInSetStd mac
Tool $0a21
<<<
_VDInGetStd mac
Tool $0b21
<<<
_VDInConvAdj mac
Tool $0c21
<<<
_VDKeyControl mac
Tool $0d21
<<<
_VDKeyStatus mac
Tool $0e21
<<<
_VDKeySetKCol mac
Tool $0f21
<<<
_VDKeyGetKRCol mac
Tool $1021
<<<
_VDKeyGetKGCol mac
Tool $1121
<<<
_VDKeyGetKBCol mac
Tool $1221
<<<
_VDKeySetKDiss mac
Tool $1321
<<<
_VDKeyGetKDiss mac
Tool $1421
<<<
_VDKeySetNKDiss mac
Tool $1521
<<<
_VDKeyGetNKDiss mac
Tool $1621
<<<
_VDOutSetStd mac
Tool $1721
<<<
_VDOutGetStd mac
Tool $1821
<<<
_VDOutControl mac
Tool $1921
<<<
_VDOutStatus mac
Tool $1a21
<<<
_VDGetFeatures mac
Tool $1b21
<<<
_VDInControl mac
Tool $1c21
<<<
_VDGGControl mac
Tool $1d21
<<<
_VDGGStatus mac
Tool $1e21
<<<
+537
View File
@@ -0,0 +1,537 @@
* Window Manager macros
* by Dave Klimas
;
; Copyright Apple Computer, Inc. 1986, 1987
; and Roger Wagner Publishing, Inc. 1988
; All Rights Reserved
;
_WindBootInit MAC
Tool $10E
<<<
~WindStartUp MAC
PHW ]1
_WindStartUp MAC
Tool $20E
<<<
_WindShutDown MAC
Tool $30E
<<<
~WindVersion MAC
PHA
_WindVersion MAC
Tool $40E
<<<
_WindReset MAC
Tool $50E
<<<
~WindStatus MAC
PHA
_WindStatus MAC
Tool $60E
<<<
~NewWindow MAC
P2SL ]1
_NewWindow MAC
Tool $90E
<<<
~CheckUpdate MAC
P1SL ]1
_CheckUpdate MAC
Tool $A0E
<<<
~CloseWindow MAC
PHL ]1
_CloseWindow MAC
Tool $B0E
<<<
~Desktop MAC
IF 2=]1
IF 3=]1
IF 4=]1
PHS 2
FIN
FIN
FIN
PHWL ]1;]2
_Desktop MAC
Tool $C0E
<<<
~SetWTitle MAC
PxL ]1;]2
_SetWTitle MAC
Tool $D0E
<<<
~GetWTitle MAC
P2SL ]1
_GetWTitle MAC
Tool $E0E
<<<
~SetFrameColor MAC
PxL ]1;]2
_SetFrameColor MAC
Tool $F0E
<<<
~GetFrameColor MAC
PxL ]1;]2
_GetFrameColor MAC
Tool $100E
<<<
~SelectWindow MAC
PHL ]1
_SelectWindow MAC
Tool $110E
<<<
~HideWindow MAC
PHL ]1
_HideWindow MAC
Tool $120E
<<<
~ShowWindow MAC
PHL ]1
_ShowWindow MAC
Tool $130E
<<<
~SendBehind MAC
PxL ]1;]2
_SendBehind MAC
Tool $140E
<<<
~FrontWindow MAC
PHS 2
_FrontWindow MAC
Tool $150E
<<<
~SetInfoDraw MAC
PxL ]1;]2
_SetInfoDraw MAC
Tool $160E
<<<
~FindWindow MAC
P1SL ]1
PxW ]2;]3
_FindWindow MAC
Tool $170E
<<<
~TrackGoAway MAC
P1SW ]1
PHWL ]2;]3
_TrackGoAway MAC
Tool $180E
<<<
~MoveWindow MAC
PxW ]1;]2
PHL ]3
_MoveWindow MAC
Tool $190E
<<<
~DragWindow MAC
PxW ]1;]2;]3;]4
PxL ]5;]6
_DragWindow MAC
Tool $1A0E
<<<
~GrowWindow MAC
PHS 2
PxW ]1;]2;]3;]4
PHL ]5
_GrowWindow MAC
Tool $1B0E
<<<
~SizeWindow MAC
PxW ]1;]2
PHL ]3
_SizeWindow MAC
Tool $1C0E
<<<
~TaskMaster MAC
PHA
PHWL ]1;]2
_TaskMaster MAC
Tool $1D0E
<<<
~BeginUpdate MAC
PHL ]1
_BeginUpdate MAC
Tool $1E0E
<<<
~EndUpdate MAC
PHL ]1
_EndUpdate MAC
Tool $1F0E
<<<
~GetWMgrPort MAC
PHS 2
_GetWMgrPort MAC
Tool $200E
<<<
~PinRect MAC
PHS 2
PxW ]1;]2
PHL ]3
_PinRect MAC
Tool $210E
<<<
~HiliteWindow MAC
PHWL ]1;]2
_HiliteWindow MAC
Tool $220E
<<<
~ShowHide MAC
PHWL ]1;]2
_ShowHide MAC
Tool $230E
<<<
~BringToFront MAC
PHL ]1
_BringToFront MAC
Tool $240E
<<<
_WindNewRes MAC
Tool $250E
<<<
~TrackZoom MAC
P1SW ]1
PHWL ]2;]3
_TrackZoom MAC
Tool $260E
<<<
~ZoomWindow MAC
PHL ]1
_ZoomWindow MAC
Tool $270E
<<<
~SetWRefCon MAC
PxL ]1;]2
_SetWRefCon MAC
Tool $280E
<<<
~GetWRefCon MAC
P2SL ]1
_GetWRefCon MAC
Tool $290E
<<<
~GetNextWindow MAC
P2SL ]1
_GetNextWindow MAC
Tool $2A0E
<<<
~GetWKind MAC
P1SL ]1
_GetWKind MAC
Tool $2B0E
<<<
~SetWFrame MAC
PHWL ]1;]2
_SetWFrame MAC
Tool $2D0E
<<<
~GetWFrame MAC
P1SL ]1
_GetWFrame MAC
Tool $2C0E
<<<
~GetStructRgn MAC
P2SL ]1
_GetStructRgn MAC
Tool $2E0E
<<<
~GetContentRgn MAC
P2SL ]1
_GetContentRgn MAC
Tool $2F0E
<<<
~GetUpdateRgn MAC
P2SL ]1
_GetUpdateRgn MAC
Tool $300E
<<<
~GetDefProc MAC
P2SL ]1
_GetDefProc MAC
Tool $310E
<<<
~SetDefProc MAC
PxL ]1;]2
_SetDefProc MAC
Tool $320E
<<<
~GetWControls MAC
P2SL ]1
_GetWControls MAC
Tool $330E
<<<
~SetOriginMask MAC
PHWL ]1;]2
_SetOriginMask MAC
Tool $340E
<<<
~GetInfoRefCon MAC
P2SL ]1
_GetInfoRefCon MAC
Tool $350E
<<<
~SetInfoRefCon MAC
PxL ]1;]2
_SetInfoRefCon MAC
Tool $360E
<<<
~GetZoomRect MAC
P2SL ]1
_GetZoomRect MAC
Tool $370E
<<<
~SetZoomRect MAC
PxL ]1;]2
_SetZoomRect MAC
Tool $380E
<<<
~RefreshDesktop MAC
PHL ]1
_RefreshDesktop MAC
Tool $390E
<<<
~InvalRect MAC
PHL ]1
_InvalRect MAC
Tool $3A0E
<<<
~InvalRgn MAC
PHL ]1
_InvalRgn MAC
Tool $3B0E
<<<
~ValidRect MAC
PHL ]1
_ValidRect MAC
Tool $3C0E
<<<
~ValidRgn MAC
PHL ]1
_ValidRgn MAC
Tool $3D0E
<<<
~GetContentOrigin MAC
P2SL ]1
_GetContentOrigin MAC
Tool $3E0E
<<<
~SetContentOrigin MAC
PxW ]1;]2
PHL ]3
_SetContentOrigin MAC
Tool $3F0E
<<<
~GetDataSize MAC
P2SL ]1
_GetDataSize MAC
Tool $400E
<<<
~SetDataSize MAC
PxW ]1;]2
PHL ]3
_SetDataSize MAC
Tool $410E
<<<
~GetMaxGrow MAC
P2SL ]1
_GetMaxGrow MAC
Tool $420E
<<<
~SetMaxGrow MAC
PxW ]1;]2
PHL ]3
_SetMaxGrow MAC
Tool $430E
<<<
~GetScroll MAC
P2SL ]1
_GetScroll MAC
Tool $440E
<<<
~SetScroll MAC
PxW ]1;]2
PHL ]3
_SetScroll MAC
Tool $450E
<<<
~GetPage MAC
P2SL ]1
_GetPage MAC
Tool $460E
<<<
~SetPage MAC
PxW ]1;]2
PHL ]3
_SetPage MAC
Tool $470E
<<<
~GetContentDraw MAC
P2SL ]1
_GetContentDraw MAC
Tool $480E
<<<
~SetContentDraw MAC
PxL ]1;]2
_SetContentDraw MAC
Tool $490E
<<<
~GetInfoDraw MAC
P2SL ]1
_GetInfoDraw MAC
Tool $4A0E
<<<
~SetSysWindow MAC
PHL ]1
_SetSysWindow MAC
Tool $4B0E
<<<
~GetSysWFlag MAC
P1SL ]1
_GetSysWFlag MAC
Tool $4C0E
<<<
~StartDrawing MAC
PHL ]1
_StartDrawing MAC
Tool $4D0E
<<<
~SetWindowIcons MAC
P2SL ]1
_SetWindowIcons MAC
Tool $4E0E
<<<
~GetRectInfo MAC
PxL ]1;]2
_GetRectInfo MAC
Tool $4F0E
<<<
~StartInfoDrawing MAC
PxL ]1;]2
_StartInfoDrawing MAC
Tool $500E
<<<
_EndInfoDrawing MAC
Tool $510E
<<<
~GetFirstWindow MAC
PHS 2
_GetFirstWindow MAC
Tool $520E
<<<
~WindDragRect MAC
P2SL ]1
PHLW ]2;]3
PHWL ]4;]5
PxL ]6;]7
PHW ]8
_WindDragRect MAC
Tool $530E
<<<
_Private01 MAC
Tool $540E
<<<
~DrawInfoBar MAC
PHL ]1
_DrawInfoBar MAC
Tool $550E
<<<
~WindowGlobal MAC
P1SW ]1
_WindowGlobal MAC
Tool $560E
<<<
~SetContentOrigin2 MAC
PxW ]1;]2;]3
PHL ]4
_SetContentOrigin2 MAC
Tool $570E
<<<
~GetWindowMgrGlobals MAC
PHS 2
_GetWindowMgrGlobals MAC
Tool $580E
<<<
~AlertWindow MAC
P1SW ]1
PxL ]2;]3
_AlertWindow MAC
Tool $590E
<<<
~StartFrameDrawing MAC
PHL ]1
_StartFrameDrawing MAC
Tool $5A0E
<<<
_EndFrameDrawing MAC
Tool $5B0E
<<<
~ResizeWindow MAC
PHWL ]1;]2
PHL ]3
_ResizeWindow MAC
Tool $5C0E
<<<
_TaskMasterContent MAC ;private
Tool $5D0E
<<<
_TaskMasterKey MAC ;private
Tool $5E0E
<<<
~TaskMasterDA MAC
P1SW ]1
PHL ]2
_TaskMasterDA MAC
Tool $5F0E
<<<
~CompileText MAC
P2SW ]1
PxL ]2;]3
PHW ]4
_CompileText MAC
Tool $600E
<<<
~NewWindow2 MAC
PHS 2
PxL ]1;]2;]3;]4
PHWL ]5;]6
PHW ]7
_NewWindow2 MAC
Tool $610E
<<<
~ErrorWindow MAC
P1SW ]1
PHLW ]2;]3
_ErrorWindow MAC
Tool $620E
<<<
_GetAuxWindInfo MAC
Tool $630E
<<<
_DoModalWindow MAC
Tool $640E
<<<
_MWGetCtlPart MAC
Tool $650E
<<<
_MWSetMenuProc MAC
Tool $660E
<<<
_MWStdDrawProc MAC
Tool $670E
<<<
_MWSetUpEditMenu MAC
Tool $680E
<<<
_FindCursorCtl MAC
Tool $690E
<<<
_ResizeInfoBar MAC
Tool $6A0E
<<<
_HandleDiskInsert MAC
Tool $6B0E
<<<
_UpdateWindow MAC
Tool $6C0E
<<<
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
Beyond.SYS16=Type(00),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
+1
View File
@@ -0,0 +1 @@
./merlin32 "./Library" "Fun Columns by O Goguel_EN.S"
BIN
View File
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
View File
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
#! /bin/make
# :vim: set noexpandtab:
CFLAGS = -lm -lSDL2_image `sdl2-config --cflags --libs`
columns: columns.c
$(CC) -o columns columns.c $(CFLAGS)
clean:
rm columns
+130
View File
@@ -0,0 +1,130 @@
int ascii [128][4] = { // BLK (X/Y, WHT (X/Y))
{518, 49, 582, 49}, // NUL Null
{518, 49, 582, 49}, // SOH Start Of Heading
{518, 49, 582, 49}, // STX Start of TeXt
{518, 49, 582, 49}, // ETX End of TeXt
{518, 49, 582, 49}, // EOT End Of Transm,
{518, 49, 582, 49}, // ENQ ENQuiry
{518, 49, 582, 49}, // ACK ACKnowledge
{518, 49, 582, 49}, // BEL BELl
{518, 49, 582, 49}, // BS Back Space
{518, 49, 582, 49}, // HT Horizontal Tabulation (Character Tabulation)
{518, 49, 582, 49}, // LF Line Feed
{518, 49, 582, 49}, // VT Vertical Tabulation (Line Tabulation)
{518, 49, 582, 49}, // FF Form Feed
{518, 49, 582, 49}, // CR Carriage Return
{518, 49, 582, 49}, // SO Shift Out
{518, 49, 582, 49}, // SI Shift In
{518, 49, 582, 49}, // DLE Data Link Escape
{518, 49, 582, 49}, // DC1 Device Control 1
{518, 49, 582, 49}, // DC2 Device Control 2
{518, 49, 582, 49}, // DC3 Device Control 3
{518, 49, 582, 49}, // DC4 Device Control 4
{518, 49, 582, 49}, // NAK Negative AKnowledgement
{518, 49, 582, 49}, // SYN SYNchronous idle
{518, 49, 582, 49}, // ETB End of Transmission Block
{518, 49, 582, 49}, // CAN CANcel
{518, 49, 582, 49}, // EM End of Medium
{518, 49, 582, 49}, // SUB SUBstitute
{518, 49, 582, 49}, // ESC ESCape
{518, 49, 582, 49}, // FS File Separator
{518, 49, 582, 49}, // GS Group Separator
{518, 49, 582, 49}, // RS Record Separator
{518, 49, 582, 49}, // US Unit Separator
{518, 49, 582, 49}, // SPC Space 510, 574
{494, 25, 558, 25}, // ! Exclamation mark (point)
{486, 37, 550, 37}, // " Quotation mark, quotes
{510, 43, 574, 43}, // # Number sign, hash
{502, 25, 566, 25}, // $ Dollar Sign
{510, 25, 574, 25}, // % Percent sign
{486, 49, 550, 49}, // & Ampersand
{494, 37, 558, 37}, // ' Apostrophe
{470, 31, 534, 31}, // ( Left parenthesis
{478, 31, 542, 31}, // ) Right parenthesis
{462, 31, 526, 31}, // * Asterisk
{502, 31, 566, 31}, // + Plus sign
{486, 43, 550, 43}, // , Comma
{486, 31, 550, 31}, // - Hyphen, dash, minus
{478, 43, 542, 43}, // . Full stop, dot, point
{518, 37, 582, 37}, // / Forward slash
{478, 19, 542, 19}, // 0 zero
{486, 19, 550, 19}, // 1 one
{494, 19, 558, 19}, // 2 two
{502, 19, 566, 19}, // 3 three
{510, 19, 574, 19}, // 4 four
{518, 19, 582, 19}, // 5 five
{462, 25, 526, 25}, // 6 six
{470, 25, 534, 25}, // 7 seven
{478, 25, 542, 25}, // 8 eight
{486, 25, 550, 25}, // 9 nine
{470, 37, 534, 37}, // : Colon
{478, 37, 542, 37}, // ; Semicolon
{462, 43, 526, 43}, // < Less than, Left angled bracket
{510, 31, 574, 31}, // = Equal
{470, 43, 534, 43}, // > Greater than, Right angled bracket
{478, 49, 542, 49}, // ? Question mark
{518, 43, 582, 43}, // @ At sign, commercial at
{462, 1, 526, 1}, // A Alpha
{470, 1, 534, 1}, // B Bravo
{478, 1, 542, 1}, // C Charlie
{486, 1, 550, 1}, // D Delta
{494, 1, 558, 1}, // E Echo
{502, 1, 566, 1}, // F Foxtrot
{510, 1, 574, 1}, // G Golf
{518, 1, 582, 1}, // H Hotel
{462, 7, 526, 7}, // I India
{470, 7, 534, 7}, // J Juliett
{478, 7, 542, 7}, // K Kilo
{486, 7, 550, 7}, // L Lima
{494, 7, 558, 7}, // M Mike
{502, 7, 566, 7}, // N November
{510, 7, 574, 7}, // O Oscar
{518, 7, 582, 7}, // P Papa
{462, 13, 526, 13}, // Q Quebec
{470, 13, 534, 13}, // R Romeo
{478, 13, 542, 13}, // S Sierra
{486, 13, 550, 13}, // T Tango
{494, 13, 558, 13}, // U Uniform
{502, 13, 566, 13}, // V Victor
{510, 13, 574, 13}, // W Whiskey
{518, 13, 582, 13}, // X X-ray
{462, 19, 526, 19}, // Y Yankee
{470, 19, 534, 19}, // Z Zulu
{518, 31, 582, 31}, // [ Left square bracket
{510, 37, 574, 37}, // \ Backslash
{462, 37, 526, 37}, // ] Right square bracket
{518, 25, 582, 25}, // ^ Circumflex accent, Caret
{494, 31, 558, 31}, // _ Underscore
{502, 43, 566, 43}, // ` Grave accent
{462, 1, 526, 1}, // a alpha
{470, 1, 534, 1}, // b bravo
{478, 1, 542, 1}, // c charlie
{486, 1, 550, 1}, // d delta
{494, 1, 558, 1}, // e echo
{502, 1, 566, 1}, // f foxtrot
{510, 1, 574, 1}, // g golf
{518, 1, 582, 1}, // h hotel
{462, 7, 526, 7}, // i india
{470, 7, 534, 7}, // j juliett
{478, 7, 542, 7}, // k kilo
{486, 7, 550, 7}, // l lima
{494, 7, 558, 7}, // m mike
{502, 7, 566, 7}, // n november
{510, 7, 574, 7}, // o oscar
{518, 7, 582, 7}, // p papa
{462, 13, 526, 13}, // q quebec
{470, 13, 534, 13}, // r romeo
{478, 13, 542, 13}, // s seirra
{486, 13, 550, 13}, // t tango
{494, 13, 558, 13}, // u uniform
{502, 13, 566, 13}, // v victor
{510, 13, 574, 13}, // w whiskey
{518, 13, 582, 13}, // x x-ray
{462, 19, 526, 19}, // y yankee
{470, 19, 534, 19}, // z zulu
{462, 49, 526, 49}, // { Left curly bracket
{502, 37, 566, 37}, // | Vertical bar
{470, 49, 534, 49}, // } Right curly bracket
{494, 43, 558, 43}, // ~ Tilde
{518, 49, 582, 49}, // DEL DELete
};
BIN
View File
Binary file not shown.
+519
View File
@@ -0,0 +1,519 @@
/*************************************
** FUN COLUMNS - SDL **
** clone of FTA version from 1991 **
** JC 'Al-Khwarizmi' Bou-Samra **
** Paragon Software 04/05/2024 - **
*************************************/
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <math.h>
#include <stdbool.h>
#include "sprite_sheet.h"
#include "text.h"
#include "ascii.h"
#include "game.h"
enum gradient {Blue = 0, Green = 10, Red = 20, Yellow = 30, Magenta = 40, Cyan = 50, Grey = 60} colour = 0;
int backdrop (enum gradient colour);
int check_key(void);
int Ren_restart(void); // game over/restart
int Ren_pause(void); // pause
int Ren_game(void); // render game
int Ren_logo (void); // display logo
int Ren_about (void); // display about
int Ren_info (void); // info screen
int Ren_menu (void); // main menu
int Ren_level (void); // display level / current score
int Ren_next (void); // display next block/brick/piece
int Ren_high (void); // display high scores
int Ren_line (char line[], int char_x, int char_y, int ln, int ll, bool col ); // parameter names in function prototypes not necessary
int initSDL (void); // initialise SDL
int shutdownSDL (void); // shutdown SDL
int render (void); // render output
int init_gfx (void); // create texture
int i, j, k, x, y, z, l; // index variables
int gamep = 0;
int tile_c;
int tile_pos = 112;
bool next_p = false; // next piece flag
bool quit = false; // quit flag
bool main_m = false;
bool pause_f = 0;
SDL_Window *window = NULL;
SDL_Renderer *sr;
SDL_Event event;
SDL_RWops* rwops_new;
SDL_Surface* image;
SDL_Texture * texture;
SDL_Rect logo_src = { 384, 0, 78, 54 };
SDL_Rect logo_dst = { 230, 136, 78, 54 };
//SDL_Rect char_src = {463, 0 , 7 , 5};
//SDL_Rect char_dst = {22, 11 , 7 , 5};
SDL_Rect main_back = {110, 0, 100, 200};
SDL_Rect main_trim = {111, 0, 98, 200};
SDL_Rect level_back = {231, 7, 76, 66};
SDL_Rect level_trim = {230, 6, 78, 68};
SDL_Rect next_back = {257, 86, 18, 37};
SDL_Rect next_trim = {256, 85, 20, 39};
SDL_Rect high_back = {13, 7, 76, 186};
SDL_Rect high_trim = {12, 6, 78, 188};
SDL_Rect tile_src = {132, 0, 12, 11};
SDL_Rect tile_dst = {112, 1, 12, 11};
SDL_Rect gameo_back = {119, 93, 82, 13};
/* window paramaters */
#define WIDTH 1280 // pixels
#define HEIGHT 800 // pixels
#define TITLE "FUN COLUMNS" // window title
/** board background colours **/
int grad_tab[] = {
0x0000cc, 0x0000bb, 0x0000aa, 0x000099, 0x000088, 0x000077, 0x000066, 0x000055, 0x000044, 0x000033, // blue
0x00cc00, 0x00bb00, 0x00aa00, 0x009900, 0x008800, 0x007700, 0x006600, 0x005500, 0x004400, 0x003300, // green
0xcc0000, 0xbb0000, 0xaa0000, 0x990000, 0x880000, 0x770000, 0x660000, 0x550000, 0x440000, 0x330000, // red
0xcccc00, 0xbbbb00, 0xaaaa00, 0x999900, 0x888800, 0x777700, 0x666600, 0x555500, 0x444400, 0x333300, // yellow
0xcc00cc, 0xbb00bb, 0xaa00aa, 0x990099, 0x880088, 0x770077, 0x660066, 0x550055, 0x440044, 0x330033, // magenta
0x00cccc, 0x00bbbb, 0x00aaaa, 0x009999, 0x008888, 0x007777, 0x006666, 0x005555, 0x004444, 0x003333, // cyan
0xcccccc, 0xbbbbbb, 0xaaaaaa, 0x999999, 0x888888, 0x777777, 0x666666, 0x555555, 0x444444, 0x333333 // grey
};
// ============= Main =============
int main (void) {
initSDL ();
init_gfx();
while (quit == false) {
SDL_Delay(50);
while (SDL_PollEvent (&event)) {
if (event.type == SDL_QUIT || event.type == SDL_WINDOWEVENT_CLOSE) {
quit = true;
}
switch (event.type) {
case SDL_KEYDOWN:
gamep = 0;
if (event.key.keysym.sym == SDLK_q) {
quit = true;
} // quit
if (event.key.keysym.sym == SDLK_a) {
printf("about\n");
gamep = 1;
} // about
if (event.key.keysym.sym == SDLK_i) {
printf("info\n");
gamep = 2;
} // info
else if (event.key.keysym.sym > SDLK_0 && event.key.keysym.sym < SDLK_7) { // level
main_m = false;
gamep = 3;
while (main_m == false) {
// SDL_Delay(150);
render ();
SDL_PollEvent (&event);
switch (event.type) {
case SDL_KEYDOWN:
gamep = 3;
if(event.key.keysym.sym == SDLK_c
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
colour = colour + 10;
if (colour >= 69) {colour = 0;}
backdrop(colour);
pause_f = 0;
break;
} // gradient colour cycle
else if (event.key.keysym.sym == SDLK_LEFT) {
pause_f = 0;
if (tile_pos == 112) {break;}
tile_pos = tile_pos - 12;
break;
} // left arrow
else if (event.key.keysym.sym == SDLK_RIGHT) {
pause_f = 0;
if (tile_pos == 196) {break;}
tile_pos = tile_pos + 12;
break;
} // right arrow
else if (event.key.keysym.sym == SDLK_n) {
printf("next brick preview\n");
next_p = !next_p;
pause_f = 0;
break;
} // next piece (brick/block) preview
else if( event.key.keysym.sym == SDLK_r
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
printf("restart\n");
main_m = true;
gamep = 4;
pause_f = 0;
//check_key();
break;
} // restart
else if (event.key.keysym.sym == SDLK_r) {
printf("rotate\n");
pause_f = 0;
break;
} // rotate tiles
else if (event.key.keysym.sym == SDLK_SPACE) {
printf("drop/fall\n");
pause_f = 0;
break;
} // drop/fall block/piece/brick
else if( event.key.keysym.sym == SDLK_s
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
printf("change tile pattern\n");
pause_f = 0;
break;
} // change tile design/pattern
else if (event.key.keysym.sym == SDLK_p) {
if (!pause_f){
printf("pause\n");
gamep = 5;
pause_f = 1;}
else {
pause_f = 0;
gamep = 3;}
// check_key();
break;
} // pause
}
}
}
}
}
if (quit) {
break;
}
render ();
}
shutdownSDL ();
return 0;
}
// ============= Initialize SDL =============
int initSDL () {
SDL_Init (SDL_INIT_EVERYTHING);
/* new window */
window = SDL_CreateWindow ( TITLE, /* title */
SDL_WINDOWPOS_CENTERED,/* x pos */
SDL_WINDOWPOS_CENTERED,/* w pos */
WIDTH, /* width */
HEIGHT, /* height */
SDL_WINDOW_BORDERLESS); /* Additional flag(s) */
/* deal with error */
if (window == NULL) {
fprintf (stderr, "SDL window failed to initialise: %s\n",
SDL_GetError ());
return 1;
}
/* create renderer */
sr = SDL_CreateRenderer (window, 0, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
SDL_RenderSetScale (sr, 4.0, 4.0); // scale x2 x4 options on cli
}
// ============= Shutdown =============
int shutdownSDL () {
SDL_DestroyWindow (window); // free memory
SDL_Quit (); // shutdown entire sdl sub-systems
return 0;
}
// ============= Render =============
int render () {
backdrop(colour); // backdrop
//Ren_menu();
switch (gamep) {
case 0:
Ren_menu();
break;
case 1:
Ren_about();
break;
case 2:
Ren_info();
break;
case 3:
Ren_game();
break;
case 4:
Ren_game();
Ren_restart();
break;
case 5:
Ren_game();
Ren_pause();
break;
}
Ren_logo(); // logo
Ren_level(); // render current level/score
Ren_next(); // render next brick/block/piece
Ren_high(); // render high scores
SDL_RenderPresent (sr);
}
// ============= Backdrop =============
int backdrop (enum gradient colour) {
k = 0; // gradient fill
for (j = 0; j < 10; j++) {
SDL_SetRenderDrawColor (sr, (grad_tab[j + colour] & 0x00ff0000) >> 16, (grad_tab[j + colour] & 0x0000ff00) >> 8, grad_tab[j + colour] & 0x000000ff, 255);
for (i = 0; i < 20; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 1;
}
}
k = 0; // horizontal edge light
SDL_SetRenderDrawColor (sr, 0x99, 0x99, 0x99, 255);
for (i = 0; i < 16; i++) {
SDL_RenderDrawLine (sr, k, 0, k, 199);
k = k + 20;
}
k = 0; // vertical edge light
// SDL_SetRenderDrawColor (sr, 0x99, 0x99, 0x99, 255);
for (i = 0; i < 10; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 20;
}
k = 19; // horizontal edge dark
SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255);
for (i = 0; i < 16; i++) {
SDL_RenderDrawLine (sr, k, 0, k, 199);
k = k + 20;
}
k = 19; // vertical edge dark
// SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255);
for (i = 0; i < 10; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 20;
}
l = 0; // corner highlight
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
for (j = 0; j < 10; j++) {
k = 0;
for (i = 0; i < 16; i++) {
SDL_RenderDrawPoint(sr, k, l);
k = k + 20;
}
l = l + 20;
}
return 0;
}
// ============= init_gfx =============
int init_gfx(void) {
rwops_new = SDL_RWFromMem(byn, sizeof(byn));
image = IMG_LoadPNG_RW(rwops_new);
texture = SDL_CreateTextureFromSurface(sr, image);
SDL_FreeSurface( image );
image = NULL;
return 0;
}
// ============= Logo =============
int Ren_logo(void) {
SDL_RenderCopy(sr, texture, &logo_src, &logo_dst);
SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255); // shadow
SDL_RenderDrawLine (sr, 234, 190, 308, 190);
SDL_RenderDrawLine (sr, 234, 191, 309, 191);
SDL_RenderDrawLine (sr, 308, 190, 308, 140);
SDL_RenderDrawLine (sr, 309, 191, 309, 140);
return 0;
}
// ============= Game =============
int Ren_game(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
if(tile_c > 17) {
tile_c = 0;
}
for (i = 0; i < 1; i++) {
tile_dst.x = tile_pos;
tile_dst.y = 11 * tile_c + 1;
SDL_RenderCopy(sr, texture, &tile_src, &tile_dst);
tile_c++;
}
return 0;
}
// ============= About =============
int Ren_about(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 13; z++) { // 13 lines of text
Ren_line(about, aboutl[z][0], aboutl[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Info =============
int Ren_info(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 11; z++) { // 11 lines of text
Ren_line(info, infol[z][0], infol[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Game Over =============
int Ren_restart(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &gameo_back); // background
for (z = 0; z < 1; z++) { // 1 line of text
Ren_line(gameo, gameol[z][0], gameol[z][1], z * 9, 9, 1);
}
return 0;
}
// ============= Pause =============
int Ren_pause(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &gameo_back); // background
for (z = 0; z < 1; z++) { // 1 line of text
Ren_line(pause, pausel[z][0], pausel[z][1], z * 9, 9, 1);
}
return 0;
}
// ============= Main Menu =============
int Ren_menu(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 10; z++) { // 10 lines of text
Ren_line(m_menu, m_menul[z][0], m_menul[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Status =============
int Ren_level(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &level_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &level_trim); // trim
SDL_RenderDrawLine (sr, 234, 74, 308, 74); // level shadow
SDL_RenderDrawLine (sr, 234, 75, 309, 75);
SDL_RenderDrawLine (sr, 308, 75, 308, 10);
SDL_RenderDrawLine (sr, 309, 74, 309, 10);
for (z = 0; z < 6; z++) { // 6 lines of text
Ren_line(status, statusl[z][0], statusl[z][1], z * 7, 7, 1);
}
return 0;
}
// ============= Next Piece =============
int Ren_next(void) {
if (next_p == 0) {
} else {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &next_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &next_trim); // trim
SDL_RenderDrawLine (sr, 259, 124, 276, 124); // next shadow
SDL_RenderDrawLine (sr, 259, 125, 277, 125);
SDL_RenderDrawLine (sr, 276, 124, 276, 89);
SDL_RenderDrawLine (sr, 277, 125, 277, 89);
}
return 0;
}
// ============= High Scores =============
int Ren_high(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &high_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &high_trim); // trim
SDL_RenderDrawLine (sr, 17, 194, 90, 194); // next shadow
SDL_RenderDrawLine (sr, 17, 195, 91, 195);
SDL_RenderDrawLine (sr, 90, 194, 90, 10);
SDL_RenderDrawLine (sr, 91, 195, 91, 10);
for (z = 0; z < 18; z++) { // 18 lines of text
Ren_line(high, highl[z][0], highl[z][1], z * 7, 7, 1);
}
return 0;
}
// ============= ASCII Line Render =============
// api: text, x, y, line num, line len, col
int Ren_line(char line[], int char_x, int char_y, int ln, int ll, bool col ) {
int cc; // char col
j = 0;
if (col) {
cc = 2; // white char
} else {
cc = 0; // black char
}
for (i = 0; i < ll; i++) {
SDL_Rect char_dst = {char_x + j, char_y, 8, 5};
SDL_Rect char_src = {ascii[line[i + ln]][cc], ascii[line[i + ln]][cc + 1], 8, 5};
SDL_RenderCopy(sr, texture, &char_src, &char_dst); // render char
j = j + 8; // character height
}
return 0;
}
// ============= wait for key =============
int check_key(void) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_KEYDOWN) {
return 0;
}
}
}
// ============= Hidden message =============
char author[] = { "copyright (c)1991 FTA, (c)2024 Jason Bou-Samra" };
const char* title = "FUN COLUMNS - SDL";
const char* descr = "clone of FTA 1991 version";
+1782
View File
File diff suppressed because it is too large Load Diff
+269
View File
@@ -0,0 +1,269 @@
int grid [] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
int grid2 [18][8] = {
{5, 0, 0, 0, 0, 0, 0, 0},
{5, 0, 0, 0, 0, 0, 0, 0},
{5, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
};
/********************
* tile combos *
* pink = 0 *
* green = 1 *
* purple = 2 *
* yellow = 3 *
* orange = 4 *
* cyan = 5 *
* ******************/
int Bricks [216][3] = {
{0,0,0},
{0,0,1},
{0,0,2},
{0,0,4},
{0,0,5},
{0,0,3},
{0,1,0},
{0,1,1},
{0,1,2},
{0,1,4},
{0,1,5},
{0,1,3},
{0,2,0},
{0,2,1},
{0,2,2},
{0,2,4},
{0,2,5},
{0,2,3},
{0,4,0},
{0,4,1},
{0,4,2},
{0,4,4},
{0,4,5},
{0,4,3},
{0,5,0},
{0,5,1},
{0,5,2},
{0,5,4},
{0,5,5},
{0,5,3},
{0,3,0},
{0,3,1},
{0,3,2},
{0,3,4},
{0,3,5},
{0,3,3},
{1,0,0},
{1,0,1},
{1,0,2},
{1,0,4},
{1,0,5},
{1,0,3},
{1,1,0},
{1,1,1},
{1,1,2},
{1,1,4},
{1,1,5},
{1,1,3},
{1,2,0},
{1,2,1},
{1,2,2},
{1,2,4},
{1,2,5},
{1,2,3},
{1,4,0},
{1,4,1},
{1,4,2},
{1,4,4},
{1,4,5},
{1,4,3},
{1,5,0},
{1,5,1},
{1,5,2},
{1,5,4},
{1,5,5},
{1,5,3},
{1,3,0},
{1,3,1},
{1,3,2},
{1,3,4},
{1,3,5},
{1,3,3},
{2,0,0},
{2,0,1},
{2,0,2},
{2,0,4},
{2,0,5},
{2,0,3},
{2,1,0},
{2,1,1},
{2,1,2},
{2,1,4},
{2,1,5},
{2,1,3},
{2,2,0},
{2,2,1},
{2,2,2},
{2,2,4},
{2,2,5},
{2,2,3},
{2,4,0},
{2,4,1},
{2,4,2},
{2,4,4},
{2,4,5},
{2,4,3},
{2,5,0},
{2,5,1},
{2,5,2},
{2,5,4},
{2,5,5},
{2,5,3},
{2,3,0},
{2,3,1},
{2,3,2},
{2,3,4},
{2,3,5},
{2,3,3},
{3,0,0},
{3,0,1},
{3,0,2},
{3,0,4},
{3,0,5},
{3,0,3},
{3,1,0},
{3,1,1},
{3,1,2},
{3,1,4},
{3,1,5},
{3,1,3},
{3,2,0},
{3,2,1},
{3,2,2},
{3,2,4},
{3,2,5},
{3,2,3},
{3,4,0},
{3,4,1},
{3,4,2},
{3,4,4},
{3,4,5},
{3,4,3},
{3,5,0},
{3,5,1},
{3,5,2},
{3,5,4},
{3,5,5},
{3,5,3},
{3,3,0},
{3,3,1},
{3,3,2},
{3,3,4},
{3,3,5},
{3,3,3},
{4,0,0},
{4,0,1},
{4,0,2},
{4,0,4},
{4,0,5},
{4,0,3},
{4,1,0},
{4,1,1},
{4,1,2},
{4,1,4},
{4,1,5},
{4,1,3},
{4,2,0},
{4,2,1},
{4,2,2},
{4,2,4},
{4,2,5},
{4,2,3},
{4,4,0},
{4,4,1},
{4,4,2},
{4,4,4},
{4,4,5},
{4,4,3},
{4,5,0},
{4,5,1},
{4,5,2},
{4,5,4},
{4,5,5},
{4,5,3},
{4,3,0},
{4,3,1},
{4,3,2},
{4,3,4},
{4,3,5},
{4,3,3},
{5,0,0},
{5,0,1},
{5,0,2},
{5,0,4},
{5,0,5},
{5,0,3},
{5,1,0},
{5,1,1},
{5,1,2},
{5,1,4},
{5,1,5},
{5,1,3},
{5,2,0},
{5,2,1},
{5,2,2},
{5,2,4},
{5,2,5},
{5,2,3},
{5,4,0},
{5,4,1},
{5,4,2},
{5,4,4},
{5,4,5},
{5,4,3},
{5,5,0},
{5,5,1},
{5,5,2},
{5,5,4},
{5,5,5},
{5,5,3},
{5,3,0},
{5,3,1},
{5,3,2},
{5,3,4},
{5,3,5},
{5,3,3}
};
+435
View File
@@ -0,0 +1,435 @@
char byn[] = {
0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,
0x00,0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x02,0x4E,
0x00,0x00,0x00,0x42,0x04,0x03,0x00,0x00,0x00,0x53,
0x2A,0x44,0x94,0x00,0x00,0x01,0x7D,0x69,0x43,0x43,
0x50,0x49,0x43,0x43,0x20,0x70,0x72,0x6F,0x66,0x69,
0x6C,0x65,0x00,0x00,0x28,0x91,0x7D,0x91,0x3D,0x48,
0x42,0x51,0x18,0x86,0x9F,0x7B,0xED,0x8F,0x50,0x1A,
0x72,0x88,0x70,0xB8,0x83,0x35,0xE5,0x52,0x11,0x8D,
0x66,0x81,0x04,0x06,0x62,0x06,0x6A,0x0D,0xDD,0x9F,
0x34,0xC1,0x7B,0x95,0x7B,0x95,0x96,0xC6,0xA0,0x55,
0x68,0xE8,0x67,0xC9,0x6A,0x68,0x69,0xAE,0xB5,0xA1,
0x35,0x08,0x82,0x7E,0x20,0x9A,0x1B,0x9A,0x8A,0x5A,
0x22,0x6E,0x1C,0x15,0x94,0xC8,0xBE,0xE5,0x3C,0xBC,
0xE7,0x7B,0x3F,0xCE,0xF7,0x1E,0x90,0x6B,0x05,0xDD,
0x74,0xBA,0xC2,0x60,0x5A,0x65,0x3B,0x11,0x8D,0x28,
0xA9,0x74,0x46,0xE9,0x7D,0xA1,0x07,0x89,0x1E,0x64,
0x02,0xAA,0xEE,0x94,0x66,0xE2,0xF1,0x18,0x1D,0xEB,
0xF3,0x0E,0x49,0x9C,0xB7,0x21,0x31,0xAB,0x73,0xDF,
0x9F,0xE5,0x33,0xD6,0x1C,0x1D,0x24,0x05,0x08,0xEB,
0x25,0xBB,0x0C,0xD2,0x2A,0x30,0xB5,0x51,0x2E,0x09,
0xDE,0x03,0xFC,0xFA,0xBA,0x6A,0x80,0x74,0x06,0x8C,
0xD9,0xA9,0x74,0x06,0xA4,0x07,0xA1,0x6B,0x0D,0x7E,
0x15,0x9C,0xAB,0xB3,0x2C,0x66,0xFA,0xED,0x64,0x62,
0x16,0x64,0x3F,0xA0,0xE4,0xDA,0x58,0x6B,0x63,0x7D,
0xDD,0x36,0x41,0x9E,0x04,0x82,0x86,0x69,0x19,0x20,
0xA7,0x1A,0x6C,0x08,0xDE,0x14,0x6C,0x16,0x2A,0x7A,
0xF3,0x9D,0x62,0x43,0xEF,0x9A,0xB5,0xB4,0x28,0x74,
0x20,0x40,0x94,0x79,0x16,0x88,0xA3,0xA0,0x51,0x21,
0x4F,0x81,0x32,0x21,0xF2,0x58,0x28,0x38,0x24,0x88,
0x12,0xE9,0xE0,0x1F,0xAE,0xFB,0xE3,0x54,0xD0,0x28,
0x90,0x47,0x47,0x61,0x8E,0x22,0x26,0x6A,0xDD,0x8F,
0xF8,0x83,0xDF,0xD9,0x3A,0xD9,0x89,0xF1,0xC6,0x24,
0x6F,0x04,0xBA,0x9F,0x5D,0xF7,0x7D,0x04,0x7A,0x77,
0xE0,0xBB,0xEA,0xBA,0x5F,0x47,0xAE,0xFB,0x7D,0x0C,
0x9E,0x27,0xB8,0xB4,0x5A,0xFE,0x62,0x0D,0xA6,0x3F,
0xC0,0x53,0x6D,0x69,0xC1,0x43,0x18,0xD8,0x82,0xF3,
0xAB,0x96,0xA6,0xED,0xC2,0xC5,0x36,0x0C,0x3D,0x96,
0x54,0x5B,0xAD,0x4B,0x1E,0x40,0xCE,0x66,0xE1,0xED,
0x14,0x7C,0x69,0x18,0xBC,0x81,0xFE,0xE5,0x46,0x6E,
0xCD,0x7B,0x4E,0xEE,0x21,0xB9,0x09,0xB1,0x6B,0xD8,
0x3F,0x80,0xD1,0x1C,0x0C,0xAC,0x74,0xD8,0xBB,0xAF,
0x3D,0xB7,0x7F,0x7B,0x9A,0xF9,0xFD,0x00,0x08,0xFC,
0x72,0x7C,0x23,0x75,0x72,0xC6,0x00,0x00,0x00,0x2D,
0x50,0x4C,0x54,0x45,0x00,0x00,0x00,0xDD,0x22,0xAA,
0x88,0x55,0xEE,0x00,0x99,0x99,0xCC,0x66,0x33,0x11,
0xAA,0x44,0x99,0x99,0x99,0xFF,0x77,0xCC,0xBB,0x88,
0xFF,0xBB,0xAA,0x11,0x00,0xDD,0xDD,0xFF,0x99,0x66,
0x66,0xFF,0x99,0xFF,0xEE,0x99,0xFF,0xFF,0xFF,0xF9,
0xB5,0x11,0x45,0x00,0x00,0x00,0x09,0x70,0x48,0x59,
0x73,0x00,0x00,0x0B,0x13,0x00,0x00,0x0B,0x13,0x01,
0x00,0x9A,0x9C,0x18,0x00,0x00,0x00,0x07,0x74,0x49,
0x4D,0x45,0x07,0xE8,0x06,0x01,0x06,0x03,0x1A,0xD3,
0xFD,0x77,0x81,0x00,0x00,0x0E,0xC1,0x49,0x44,0x41,
0x54,0x78,0xDA,0xED,0x9B,0xAF,0x6F,0x72,0xC9,0x17,
0xC6,0x4F,0x69,0x0B,0x94,0x1F,0x13,0x50,0x58,0x82,
0x42,0x36,0xC1,0xA1,0x10,0x38,0x0C,0x06,0x87,0x40,
0x55,0x6E,0x40,0xE1,0x36,0x04,0x85,0xDA,0x60,0x11,
0x24,0x4D,0x70,0x88,0x4D,0x05,0x8E,0x64,0x53,0x83,
0x23,0x9B,0x5A,0x04,0x9B,0xAB,0xDA,0xA6,0x3F,0xE6,
0x6F,0xF8,0x9E,0xE7,0xCC,0xCC,0xE5,0x42,0x29,0xBD,
0xFD,0xBE,0xE4,0x4D,0xD3,0x74,0x12,0xA6,0x77,0xD9,
0xBE,0x97,0xE1,0x33,0xE7,0x9C,0x79,0x9E,0x99,0x5B,
0xA2,0x93,0x6E,0x37,0x43,0x74,0xBE,0x5C,0xD6,0x89,
0x22,0x83,0x41,0x9E,0xE8,0x62,0xBD,0x1E,0x12,0x9D,
0xCD,0xE7,0x15,0xA2,0xD3,0xE9,0xF4,0x92,0xBA,0xD2,
0x96,0xD2,0x06,0xD2,0xD6,0xD2,0xE6,0xD2,0xA6,0xD2,
0x74,0x88,0x96,0xC3,0x6D,0x3A,0x4D,0xDC,0x66,0x51,
0xC4,0x6D,0xFA,0x63,0xDC,0x66,0x55,0xC3,0x6D,0x66,
0x65,0xDC,0x66,0x12,0x66,0x3C,0xE6,0x6E,0xA4,0xB4,
0xF6,0xE8,0x48,0xED,0xA3,0xA1,0x13,0x75,0x1F,0xBA,
0x5D,0xA2,0xE5,0xCB,0x72,0x49,0x34,0x78,0x1C,0x0C,
0x88,0xD6,0xAF,0xEB,0x35,0xD1,0xFC,0x79,0x3E,0x27,
0x9A,0x3E,0x4D,0xA7,0x86,0x53,0x47,0x30,0x2D,0x04,
0x53,0x5F,0x30,0xAD,0x04,0xD3,0x4C,0x30,0x4D,0xE4,
0x6E,0xF7,0x87,0xFB,0x13,0x06,0xD5,0xC9,0x9C,0x33,
0xA8,0x45,0x3D,0xC2,0xA0,0xFA,0xF9,0x0B,0x06,0xB5,
0x1A,0x9E,0x31,0xA8,0x59,0xE5,0x94,0x41,0x4D,0x78,
0x52,0x3A,0x59,0x8C,0x67,0xD1,0xC0,0x78,0xFA,0x05,
0x8C,0x67,0x35,0xC2,0x78,0x66,0x55,0x8C,0x67,0x52,
0x9A,0x3A,0x4E,0x0E,0x56,0x88,0xE6,0x29,0xF3,0xFB,
0xC2,0xD6,0xFE,0x5B,0xCF,0xBE,0xEF,0xF1,0xBB,0x1E,
0x03,0xD7,0xC0,0xC5,0x3F,0x15,0x99,0x6B,0xFC,0x54,
0xF2,0xDF,0xFC,0x6B,0x14,0xFB,0x53,0x77,0x73,0xED,
0xD4,0xBF,0x7A,0xD9,0xBC,0x8D,0xFF,0xA5,0x07,0xC5,
0x5E,0xFA,0x3F,0xBD,0x1E,0xDF,0x25,0xFF,0xD1,0xF3,
0xDA,0x4D,0xE2,0x6F,0x3D,0x2D,0x5F,0x0B,0xA7,0xAC,
0x70,0x6A,0x08,0xA7,0x82,0x70,0x1A,0x09,0xA7,0xAA,
0x70,0x2A,0xC9,0x70,0xAE,0x0E,0xF7,0xED,0x2C,0xDF,
0x26,0x76,0xDB,0xE0,0xDB,0xA4,0x7A,0x05,0xBE,0x4D,
0xFC,0x6E,0xC4,0xB7,0x49,0xDF,0x54,0xF9,0x36,0xC9,
0xEB,0x12,0xDF,0x26,0x11,0xD3,0x9D,0x2C,0x8F,0x47,
0x2F,0x1A,0x3C,0x1E,0xDD,0x2F,0xF0,0x78,0xF4,0x6A,
0xC4,0xE3,0xD1,0xB3,0x2A,0x8F,0x47,0x4F,0x4A,0xE5,
0x6B,0xF3,0xDD,0x95,0x01,0x10,0x2A,0x5C,0x84,0x85,
0x79,0x01,0x82,0xFB,0xE9,0x5E,0x8C,0x03,0x77,0x92,
0x17,0x20,0xBA,0x9F,0xEE,0xC5,0xFF,0x9D,0xE3,0x78,
0xEA,0x70,0x2E,0xBC,0x2C,0x17,0x9C,0x0B,0x8F,0x83,
0x3E,0xE7,0xC2,0xEB,0x7A,0xC5,0xB9,0xF0,0x3C,0x9F,
0x71,0x2E,0x3C,0x4D,0x27,0x93,0x70,0x9C,0x5A,0x51,
0xE6,0x81,0x79,0xB9,0xD2,0xF7,0x44,0x7F,0xC8,0xB5,
0xE9,0x95,0xED,0xBB,0x27,0xB9,0x4E,0xA6,0xB3,0x3C,
0x6F,0x2E,0xEA,0x8B,0x41,0xA4,0xD8,0xCF,0xF7,0xD7,
0x17,0xE3,0xD5,0x70,0x35,0x3F,0xAB,0xCD,0x2A,0xB3,
0xE9,0x69,0x79,0x72,0x39,0xC9,0x3D,0x64,0xB3,0xB9,
0x4E,0xF3,0xA5,0xD1,0x68,0x2E,0x8A,0x8F,0x85,0x42,
0xB1,0x3F,0x7E,0x1D,0x8D,0xC6,0xAB,0xDA,0x73,0xB5,
0x5A,0x9B,0x95,0x9F,0x4A,0xA5,0xF2,0x24,0x18,0x29,
0x61,0x39,0xB9,0x38,0x72,0x9C,0x34,0x72,0x0D,0xD7,
0x26,0xAE,0xC8,0xC5,0x91,0xE3,0x42,0xF6,0x37,0xB4,
0x89,0x2B,0xC9,0xA9,0x4E,0x4E,0x52,0xAA,0x29,0x29,
0x55,0x94,0x94,0x1A,0x4B,0x4A,0xD5,0x24,0xA5,0xCA,
0xA1,0x38,0x59,0x36,0xD1,0x7B,0x50,0x89,0x6A,0x15,
0xB8,0xD6,0xB6,0xEF,0xB6,0xB3,0xD9,0x58,0x76,0x79,
0xDB,0x68,0xA4,0x1A,0x83,0x5E,0xA1,0x10,0x2F,0xAC,
0xEF,0x46,0xA3,0xF4,0x68,0x7E,0x53,0xAD,0x26,0xAB,
0xD3,0xEB,0x52,0x29,0x51,0xE2,0xB4,0xCB,0xE6,0x1E,
0x38,0xED,0x1A,0xCD,0x17,0x4E,0xBB,0x42,0xF1,0x91,
0xD3,0x6E,0x34,0x7E,0xE5,0xB4,0xAB,0xD6,0x9E,0x39,
0xED,0x4A,0xE5,0xA7,0x6D,0x4E,0xB1,0xAE,0x6D,0x6D,
0x53,0x41,0x6F,0xDB,0x29,0xEA,0xFA,0x8D,0x7A,0xB1,
0x6E,0xFB,0x50,0x3C,0x99,0xF7,0xDF,0x8F,0x27,0xFB,
0xFE,0xD1,0x38,0x79,0xCA,0x53,0x7E,0x0C,0x39,0x36,
0xF2,0x8E,0xD2,0xB6,0xE7,0xA4,0xCB,0xE4,0xB2,0x9C,
0x74,0xF5,0x66,0x83,0x93,0x2E,0x5F,0x2C,0x70,0xD2,
0x0D,0xC7,0x23,0x4E,0xBA,0x4A,0xAD,0xCA,0x49,0x77,
0x59,0x2E,0x31,0x26,0xE6,0xC4,0x98,0x98,0x13,0x63,
0x62,0x4E,0x8C,0x89,0x39,0x31,0x26,0xE6,0xC4,0x98,
0x3E,0xE6,0x44,0xCB,0xDB,0xCD,0x7B,0xF1,0x01,0xF9,
0x9C,0x76,0xEB,0x13,0x02,0xC5,0xD6,0x27,0x13,0x43,
0x3B,0xF5,0xC9,0x04,0x9A,0xE1,0xD4,0x01,0x82,0xDC,
0x02,0x08,0x9A,0x7D,0x20,0x28,0xAE,0x80,0x60,0x3C,
0x03,0x82,0xDA,0x04,0x08,0x42,0x72,0x32,0xF9,0x75,
0x28,0x9E,0x3A,0x99,0x6E,0xF7,0x24,0xBB,0xA8,0x2F,
0x97,0xE7,0x8D,0x7E,0x7E,0x30,0x88,0x14,0x56,0xC3,
0xF5,0xFA,0x62,0x34,0xAB,0xCC,0xE7,0x67,0xD5,0xC9,
0xE5,0x74,0x7A,0x2A,0x9C,0xFE,0x14,0x4E,0xFF,0x0A,
0xA7,0xBF,0x84,0xD3,0x7F,0xC2,0xE9,0x1F,0xE1,0xF4,
0xF7,0x47,0x9C,0x52,0xBC,0x24,0xF9,0xE1,0x34,0x18,
0xF4,0x62,0xCC,0xE9,0x97,0xD7,0xBB,0x5C,0x8E,0x23,
0xBD,0xD3,0x6C,0x72,0xA4,0x2F,0x8A,0x45,0x8E,0xF4,
0xFE,0x78,0xCC,0x91,0xBE,0xAA,0xD5,0x38,0xD2,0x67,
0xE5,0x32,0x47,0xFA,0xE4,0x73,0xF1,0xB4,0xBF,0x3E,
0x09,0x27,0xFE,0x4A,0xED,0xEC,0x82,0xBF,0xC7,0x6D,
0xA3,0x1F,0xE7,0x6F,0x50,0x58,0xA5,0xD7,0x9C,0x7A,
0xB3,0xE4,0x9C,0x53,0x6F,0x92,0x98,0x72,0xEA,0xE5,
0x38,0x9C,0x74,0xA7,0xC9,0xE1,0xA4,0x17,0x45,0x0E,
0x27,0xDD,0x1F,0x73,0x38,0xE9,0x55,0x8D,0xC3,0x49,
0xCF,0xCA,0x1C,0x4E,0x7A,0x72,0x98,0x13,0x81,0x55,
0xCC,0x0F,0x27,0x5E,0xC1,0xDB,0x52,0x9F,0x64,0xF9,
0xDA,0xCE,0x3D,0xE5,0xAF,0x83,0x06,0xD5,0x6E,0xEE,
0x79,0xCA,0xAD,0x83,0x14,0xE3,0xF9,0xCB,0xB6,0x53,
0x3C,0x7F,0x8D,0xDB,0x38,0xCF,0x5F,0xA1,0x97,0xE6,
0xF9,0x1B,0xDD,0x25,0x79,0xFE,0xAA,0x37,0x09,0x9E,
0xBF,0xD2,0xD1,0xD6,0xBB,0x0C,0xEE,0x73,0x52,0xC7,
0x7D,0xCE,0xF3,0xB8,0x4F,0x64,0x88,0xFB,0x5C,0x54,
0x70,0x9F,0xB3,0x4B,0xDC,0xE7,0x34,0x96,0xED,0x6A,
0xCD,0xE3,0x59,0x6A,0xCD,0xE3,0x19,0x68,0xCD,0xE3,
0x59,0x6B,0xCD,0xE3,0x99,0x6B,0xCD,0xE3,0x61,0xA1,
0xB6,0xB3,0xDE,0xED,0x70,0x42,0x38,0xF9,0x01,0x45,
0xF8,0x94,0x1E,0xD7,0x71,0xF9,0xB6,0xC2,0xC6,0xD6,
0x72,0xC9,0x3F,0x15,0xA8,0x5B,0xF6,0x6E,0x9A,0x1C,
0x38,0xCE,0x3F,0xC7,0x0D,0x39,0xD9,0xCD,0x8A,0x5E,
0x69,0x88,0x5E,0x29,0x88,0x5E,0x19,0x89,0x5E,0xA9,
0x8A,0x5E,0x29,0xB1,0x5E,0xE9,0x82,0x65,0x67,0x09,
0x96,0x8B,0x01,0x58,0xF6,0xD7,0x60,0xB9,0x9A,0x83,
0xE5,0x6C,0x0A,0x96,0x13,0x7D,0xC5,0xED,0xFE,0x70,
0x1F,0xEB,0xC8,0x9C,0x2C,0x64,0x4E,0xFA,0x32,0x27,
0x2B,0x99,0x93,0x99,0xCC,0x09,0x92,0xEA,0x9A,0x18,
0x13,0xC6,0xA3,0x35,0xC6,0xA3,0x35,0xC6,0xA3,0x35,
0xC6,0xA3,0x35,0xC6,0xA3,0xF5,0x8E,0x7E,0xDA,0xE5,
0x44,0x86,0x56,0xCC,0x0F,0x27,0x48,0xC2,0x0D,0x27,
0xED,0x6D,0xEA,0xB7,0xD2,0x7E,0xDD,0xF2,0x39,0x71,
0xC5,0xF2,0xE3,0xC9,0xB3,0xB5,0x49,0x62,0x2A,0x84,
0xFE,0xC5,0xD7,0xCB,0x66,0xF1,0xF5,0x1A,0x0D,0x7C,
0xBD,0x42,0x01,0x5F,0x6F,0x34,0xC2,0xD7,0xAB,0x56,
0xF1,0xF5,0x4A,0xA5,0xFB,0x2B,0x41,0x71,0xB0,0x0F,
0x73,0x9F,0xCF,0xEA,0xF1,0x5D,0x4E,0x26,0x9C,0x6C,
0x40,0x91,0x71,0x0F,0x3D,0xC3,0x49,0x07,0xE3,0x89,
0xD4,0xCE,0x1A,0xE8,0x72,0x8D,0xB6,0xD7,0x39,0x97,
0x87,0x5F,0xAE,0x85,0xE0,0x14,0x6C,0xBB,0x9C,0xF8,
0x2D,0x59,0xF3,0xF0,0x76,0x9B,0x48,0xEA,0x93,0xD1,
0x4F,0xA4,0x8C,0x1C,0x32,0x5A,0x2A,0x58,0x9F,0x6C,
0x29,0xF7,0x8C,0x9C,0x32,0x7A,0x29,0x58,0x9F,0x0C,
0xA7,0x87,0x2E,0x7E,0xEB,0x05,0x9F,0x40,0x8F,0xB8,
0x29,0xBD,0xAE,0xD1,0x3F,0xCF,0xD1,0x3F,0x4D,0xC9,
0x8C,0xA4,0x2D,0x13,0x75,0x2B,0x91,0xDC,0x4B,0xA3,
0xAE,0xDC,0x25,0x51,0x57,0x6E,0x12,0xA8,0x2B,0xD7,
0xCA,0xD9,0x83,0x03,0xFD,0xB1,0x7C,0x8B,0xB9,0x9B,
0x91,0x82,0x7B,0xD6,0x3B,0xBC,0x38,0x96,0xE4,0x3D,
0x0C,0xF7,0x28,0xEB,0x1D,0xC1,0xB7,0x10,0xC1,0xB7,
0x10,0xC1,0xB7,0x10,0xC1,0xB7,0x10,0xC1,0xB7,0x10,
0xC1,0xB7,0x98,0x91,0x64,0x84,0x53,0x5D,0x38,0xE5,
0x85,0xD3,0x50,0x38,0x55,0x84,0xD3,0xA5,0x8C,0xBD,
0x75,0xB8,0x27,0xF8,0x16,0x22,0xF8,0x16,0x22,0xF8,
0x16,0x22,0xF8,0x16,0x22,0xF8,0x16,0x22,0xF8,0x16,
0x0A,0xE3,0x5B,0x2C,0xA7,0x60,0x7D,0x6A,0x93,0x09,
0x24,0xC7,0xC9,0x7D,0x7F,0x17,0x4F,0x41,0x7F,0xA7,
0x02,0xF1,0xE4,0x5E,0x41,0x7F,0xE7,0x05,0xE2,0x29,
0x50,0xC7,0xD9,0xB7,0x88,0x0F,0x5E,0x88,0x0F,0xEE,
0x8B,0x0F,0x5E,0x89,0x0F,0x9E,0x89,0x0F,0x9E,0x84,
0xE4,0xC4,0xBE,0xA5,0x25,0x71,0xDA,0x52,0xD0,0x05,
0x72,0x6D,0x7A,0x65,0xFB,0x18,0x7C,0x4B,0x3B,0x05,
0xDF,0x72,0x1B,0x87,0x6F,0xE9,0xA5,0xE1,0x5B,0xEE,
0x92,0xF0,0x2D,0x37,0x09,0xF8,0x96,0xEB,0x30,0xBE,
0x25,0x04,0x27,0x8E,0x22,0x29,0x4E,0x7E,0xDE,0x05,
0x6A,0x91,0xC8,0xCA,0x00,0x23,0x79,0x37,0x50,0x8B,
0x40,0x32,0xC8,0x48,0xAA,0x16,0x3E,0xA5,0x23,0x0C,
0x16,0xC2,0xA0,0x2F,0x0C,0x56,0xC2,0x60,0x26,0x0C,
0x26,0x97,0xA1,0x38,0x59,0x36,0xAC,0x2D,0xD1,0x6B,
0x15,0xB8,0xD6,0xB6,0x8F,0xC1,0xB7,0x64,0x52,0xF0,
0x2D,0xF5,0x38,0x7C,0x4B,0x3E,0x0D,0xDF,0x32,0x4C,
0xC2,0xB7,0x54,0x12,0xF0,0x2D,0x97,0x3C,0x98,0x13,
0xF8,0x96,0xFA,0x39,0x7C,0x4B,0x3E,0x02,0xDF,0x32,
0xBC,0x80,0x6F,0xA9,0x9C,0xC1,0xB7,0x5C,0x9E,0x96,
0x9F,0xB6,0x32,0xFA,0xBD,0x4C,0x8A,0xC9,0x62,0xB7,
0xC5,0xC9,0xD6,0xA8,0x5D,0x4E,0xA6,0x32,0xF9,0x7A,
0xFC,0x0D,0x27,0xFC,0xAB,0xE3,0x71,0x02,0x77,0x3F,
0x86,0x1C,0x1B,0x79,0x47,0x69,0xDB,0xC7,0xE0,0x5B,
0x32,0x29,0xF8,0x96,0x7A,0x1C,0xBE,0x25,0x9F,0x86,
0x6F,0x19,0x26,0xE1,0x5B,0x2A,0x09,0xF8,0x96,0xCB,
0x0E,0x27,0x26,0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,
0x0B,0x11,0x7C,0x0B,0x11,0x7C,0x0B,0xD1,0x2E,0xA7,
0x58,0xF7,0x9D,0x46,0x41,0x4E,0x56,0x03,0x08,0x24,
0xCB,0xC9,0xE6,0xA2,0x89,0x27,0xAB,0x01,0xE4,0xBE,
0x96,0x93,0xCD,0x45,0x13,0x4F,0x27,0x90,0x90,0x99,
0x73,0x48,0xC8,0x7A,0x04,0x12,0x32,0x7F,0x01,0x09,
0x39,0x3C,0x83,0x84,0xAC,0x9C,0x42,0x42,0x86,0xE4,
0x64,0xF2,0xEB,0x50,0x3C,0x9D,0xC0,0xB7,0x64,0xCE,
0xE1,0x5B,0xEA,0x11,0xF8,0x96,0xFC,0x05,0x7C,0xCB,
0xF0,0x0C,0xBE,0xA5,0x72,0x0A,0xDF,0xC2,0x9C,0x32,
0x27,0xF0,0x2D,0xF5,0x73,0xF8,0x96,0x7C,0x04,0xBE,
0x65,0x78,0x01,0xDF,0x52,0x39,0x83,0x6F,0xB9,0x3C,
0xFD,0x3B,0x2C,0x27,0x04,0x54,0xA0,0x3E,0xF9,0x31,
0x25,0xA8,0x64,0x3B,0x60,0x13,0x57,0x7E,0x4D,0xB2,
0xF1,0x64,0x56,0x89,0x40,0x5C,0x11,0x7C,0x0B,0x4F,
0xDE,0x12,0x53,0x08,0xDF,0xC2,0x93,0xB7,0xC6,0x14,
0xC2,0xB7,0xF0,0xE4,0xF1,0x02,0x43,0x9F,0x8B,0xA7,
0xFD,0xF5,0x49,0x38,0x61,0xAD,0xCE,0x9C,0xC3,0xB7,
0xD4,0x23,0xF0,0x2D,0xF9,0x0B,0xF8,0x96,0xE1,0x19,
0x7C,0x4B,0xE5,0x14,0xBE,0xE5,0x32,0x8C,0x6F,0xD9,
0x53,0x9F,0xDE,0x0B,0x28,0xC7,0xE9,0xD7,0xD7,0x3B,
0x48,0x3F,0x5E,0x83,0xB8,0xF1,0x1A,0xC4,0x8D,0xD7,
0x20,0x6E,0xBC,0x06,0x71,0xE3,0x35,0x08,0xD2,0xEF,
0x68,0xEB,0x9D,0x0C,0x9E,0x8C,0xCC,0x31,0x42,0x19,
0xF7,0xE1,0x35,0x63,0x2E,0x7B,0xA7,0xDC,0x28,0x8C,
0x6F,0x09,0xCB,0x89,0x03,0x6A,0xA7,0x3E,0xB9,0xC4,
0xDA,0x6C,0x9B,0xD8,0xF7,0x9D,0x6E,0xB2,0x89,0xB9,
0xD9,0x76,0x71,0x7A,0x0A,0xA0,0x00,0x14,0x98,0x00,
0x0A,0x3D,0x30,0x01,0x14,0x7A,0xC6,0x14,0xCA,0x03,
0x2A,0x08,0x6E,0xEF,0x70,0x7F,0x2C,0xDF,0xF2,0x8E,
0x7E,0x7A,0x1B,0x4F,0xB4,0xC9,0x3B,0xA7,0xBA,0x6D,
0x7D,0x72,0x48,0xDC,0x1A,0xE8,0xDC,0x2F,0xD9,0xFA,
0xE4,0x90,0x7E,0x47,0x3D,0xFE,0x26,0x9C,0x58,0x3E,
0xC9,0x9A,0x27,0xFE,0xCE,0xF3,0xD7,0x39,0xBF,0x3E,
0x29,0x7F,0x9F,0x9C,0x9C,0xB2,0x72,0x9C,0xCC,0xBA,
0xE7,0xEF,0x93,0x7F,0x6B,0x4E,0x4E,0x67,0xC6,0xAD,
0xBF,0x33,0x0B,0x98,0x5B,0xEF,0x68,0x93,0x66,0x76,
0xBF,0xC0,0x2C,0x80,0x6E,0xBD,0xD3,0x9B,0x34,0x0D,
0xBB,0x0B,0xFF,0x5B,0x5B,0x08,0xDF,0xB2,0xCD,0xE9,
0x5D,0xFD,0x14,0xE4,0x24,0x8C,0x6C,0xEC,0xA8,0xC0,
0xBE,0x26,0xD9,0x35,0x50,0x18,0xD9,0xD8,0xF1,0x02,
0xFB,0x9A,0xDA,0xDF,0x2F,0x20,0x2D,0xE0,0xB5,0xF8,
0x3B,0x2D,0xFE,0x4E,0x8B,0xBF,0xD3,0xE2,0xEF,0x34,
0x86,0x15,0xA2,0xFE,0x9A,0xAA,0xFA,0x41,0x7F,0x24,
0xDF,0x62,0xEF,0x16,0xAC,0x4F,0xFB,0xF4,0x78,0x2F,
0x18,0x4F,0xBF,0xBC,0xDE,0xC5,0x1E,0xF0,0x21,0xA9,
0x17,0x78,0xA2,0xF8,0x23,0x36,0xB5,0xD2,0xAF,0xEB,
0x3B,0xA2,0xE4,0xF3,0xFC,0x86,0x28,0xF1,0x34,0xBD,
0x0E,0xC9,0x89,0x7D,0x8B,0x2C,0xC0,0xDC,0x43,0x17,
0xC8,0xB5,0xE9,0x95,0xEB,0xE1,0x5B,0x38,0xA7,0xD8,
0xB7,0x70,0x4E,0xB1,0x6F,0xE1,0x9C,0x62,0xDF,0xC2,
0x39,0xC5,0xBE,0x85,0x73,0x8A,0x7D,0x0B,0x6B,0x4C,
0xD6,0xE3,0xEC,0x5B,0x58,0x8F,0xB3,0x6F,0x61,0x3D,
0xCE,0xBE,0x85,0xF5,0x38,0xFB,0x16,0xD6,0xE3,0xEC,
0x5B,0x58,0x8F,0x4F,0x2C,0xA7,0xE0,0xBE,0xCA,0x5B,
0x4E,0x14,0x0F,0x72,0x52,0x9B,0xF3,0x3A,0x5F,0x93,
0x4B,0x42,0x79,0x46,0x8F,0x7B,0x9B,0xF3,0x3A,0x5F,
0x93,0x4B,0x42,0x2A,0xAB,0xC7,0xC1,0xA0,0x23,0x1F,
0xB1,0x10,0x06,0x7D,0x61,0xB0,0x12,0x06,0x33,0x61,
0x30,0x09,0xC7,0xC9,0xB2,0x61,0x6D,0x89,0x5E,0xAB,
0xC0,0xB5,0x76,0x3D,0x7C,0x0B,0x11,0x7C,0x0B,0x11,
0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,
0x0B,0x36,0xFD,0x79,0xEA,0x30,0x69,0xA9,0x17,0x4C,
0x5A,0xFC,0x11,0x93,0x96,0x7E,0xC5,0xA4,0x25,0x9F,
0x31,0x69,0x89,0xA7,0x60,0x8C,0xBE,0xCF,0x69,0x10,
0xE4,0x64,0xEA,0x91,0xDE,0x9C,0xAF,0x00,0x8F,0x0A,
0xAC,0x78,0x76,0xEB,0xCF,0xF7,0x2A,0xC0,0xE3,0x6D,
0x56,0xBC,0xE3,0x71,0x12,0xBF,0xE8,0x62,0xC8,0xB1,
0x91,0x77,0x94,0x76,0x3D,0x7C,0x0B,0xE7,0x1D,0xFB,
0x16,0xCE,0x3B,0xF6,0x2D,0x9C,0x77,0xEC,0x5B,0x38,
0xEF,0xD8,0xB7,0x70,0xDE,0xB1,0x6F,0x21,0x04,0x5C,
0xEC,0x01,0x01,0x97,0x7A,0x41,0xC0,0xC5,0x1F,0x11,
0x70,0xE9,0x57,0x04,0x5C,0xF2,0x99,0x03,0x2E,0x2C,
0xA7,0xB8,0xCF,0x09,0xFB,0x74,0x41,0x1D,0x6E,0xE2,
0xD0,0xF3,0xE3,0xCA,0x4F,0x3D,0xBB,0xCE,0x21,0x8E,
0x36,0x6B,0x9E,0x72,0xE7,0xE6,0x52,0x33,0x96,0x52,
0x33,0x06,0x52,0x33,0xD6,0x52,0x33,0xE6,0x52,0x33,
0xE0,0x5B,0x42,0x72,0x32,0xF9,0x75,0x30,0x9E,0xE0,
0x5B,0x88,0xE0,0x5B,0x88,0xE0,0x5B,0x88,0xE0,0x5B,
0x88,0xE0,0x5B,0x88,0xE0,0x5B,0x84,0x93,0x12,0x4E,
0x4A,0x38,0x29,0xE1,0xA4,0x84,0x93,0x12,0x4E,0xEA,
0x03,0x4E,0x94,0x12,0x4E,0x83,0x6D,0x4E,0x01,0x5F,
0xE7,0xC3,0x51,0x12,0x54,0x9E,0xDD,0xA5,0xF3,0x7D,
0x9D,0x0F,0xC7,0x93,0xA0,0x52,0xB6,0x3E,0x75,0x31,
0xB4,0xD4,0x12,0x43,0x8B,0x0F,0x30,0xB4,0xF4,0x1A,
0x43,0x4B,0xCE,0x31,0xB4,0x04,0xB6,0xCE,0x3E,0x17,
0x4F,0xFB,0xEB,0x53,0xD4,0x7C,0x96,0xD4,0x42,0xD9,
0x1F,0x8A,0xCB,0x17,0x81,0x6F,0xC1,0x67,0x49,0x2D,
0x64,0xDF,0x42,0xB9,0x6C,0x26,0x06,0xDF,0x52,0x4F,
0xC1,0xB7,0xE4,0xE3,0xF0,0x2D,0xC3,0x34,0x7C,0x4B,
0x25,0x09,0xDF,0x72,0xC9,0xA5,0xFC,0x70,0x7D,0x5A,
0x2E,0xF7,0x70,0x52,0x41,0x5F,0xE7,0x98,0x69,0xB3,
0xAB,0x42,0xC6,0xD8,0x6C,0x7C,0x9D,0x63,0x46,0x66,
0x57,0xC5,0xAE,0x1A,0x1F,0xEB,0xF1,0xA3,0xAD,0x77,
0x47,0xF2,0x2D,0x87,0xD7,0xBB,0xBD,0x9C,0x7E,0x7D,
0xBD,0xFB,0x72,0xFA,0xE9,0x63,0xDF,0xB2,0x47,0x67,
0x0A,0xA7,0xA6,0xCF,0xA9,0xBE,0xCB,0xC9,0x9C,0x9E,
0x78,0xDB,0xCA,0xDA,0xD5,0x26,0x29,0x57,0x5A,0xF9,
0x4F,0xB5,0x04,0x9F,0x72,0xB1,0x27,0x16,0xDF,0x45,
0x8F,0x0B,0xA7,0x94,0xCF,0x29,0xB2,0xC5,0x29,0x6F,
0xF3,0x4E,0x53,0xB0,0x6E,0xFB,0xDA,0x80,0xAC,0x9E,
0xB1,0xBB,0x51,0x5B,0x9C,0x3C,0xEB,0x6E,0xBE,0x15,
0x27,0x3F,0xF1,0x6E,0x8B,0x5B,0x9C,0x9C,0xBF,0xB3,
0x95,0xC8,0x3D,0x5F,0xE6,0x3F,0x67,0x66,0xCE,0xAC,
0xEC,0xC9,0xA9,0x65,0x63,0x9F,0x2D,0x70,0x27,0x85,
0xDF,0xC0,0xB7,0x04,0x38,0x9D,0x1B,0x4C,0x8B,0xC8,
0x20,0xC8,0xA9,0x47,0xDF,0x30,0x9E,0x62,0xBA,0x7D,
0x02,0xDF,0x72,0x7B,0x0E,0xDF,0xD2,0x8B,0xC0,0xB7,
0xDC,0x5D,0xC0,0xB7,0xDC,0x9C,0xC1,0xB7,0x5C,0x9F,
0xB2,0x6F,0x79,0x8F,0x93,0x01,0x65,0x31,0x39,0x4E,
0x7D,0x04,0xD1,0x6E,0x7D,0x72,0x1A,0xEA,0xBD,0xFA,
0xE4,0x34,0x54,0xA0,0x3E,0x7D,0x7C,0x7E,0x17,0x66,
0x3D,0xE7,0x4D,0xCB,0xA8,0xF9,0x58,0xEE,0xA3,0x44,
0x2D,0xB9,0x6E,0xED,0xE4,0x54,0x08,0xDF,0xC2,0xFF,
0x3C,0xD6,0x69,0x72,0x9F,0x5A,0x14,0xB9,0x8F,0xF7,
0xC7,0xDC,0xA7,0x57,0x35,0xEE,0x93,0xB3,0x32,0xF7,
0x89,0x89,0xCB,0x18,0xB3,0xDE,0x85,0x7A,0x4E,0xEC,
0x08,0xFE,0x2E,0x04,0x83,0x30,0xBF,0x63,0xD9,0x44,
0xEF,0xF1,0xB1,0x51,0x99,0x36,0x77,0xED,0xF9,0xFD,
0xC7,0x1A,0x44,0x26,0xED,0x41,0x26,0xED,0x45,0x26,
0xED,0x51,0x26,0xED,0x55,0x26,0xED,0x59,0x72,0xEE,
0xC9,0x72,0xB2,0xFA,0x29,0x1C,0x27,0xFF,0x64,0xCE,
0x33,0x3E,0x65,0x73,0xA4,0xE0,0x9E,0x63,0xD9,0xEC,
0x76,0x2A,0x0A,0x5C,0xBB,0x53,0x9D,0x63,0x71,0xF2,
0xA3,0xB8,0x15,0x60,0x13,0x58,0x7E,0xD1,0x9F,0xC4,
0x32,0x88,0xA7,0x54,0x1D,0xF1,0x14,0xCF,0x23,0x9E,
0xD2,0x43,0xC4,0x53,0xB2,0x82,0x78,0x4A,0x5C,0xF2,
0xB3,0x0C,0xC2,0x69,0x21,0x9C,0xFA,0xC2,0x69,0x25,
0x9C,0x66,0xC2,0x69,0xB2,0x87,0x93,0xEC,0x95,0xB6,
0xF0,0x04,0x83,0xBA,0xE2,0xCF,0xBE,0xE7,0x1F,0xB8,
0xB8,0x6F,0x99,0x2B,0xFC,0x4F,0x9B,0x73,0x7B,0x38,
0x99,0x3C,0x0C,0xC8,0xF0,0x1D,0x4E,0xF6,0x69,0x0F,
0x13,0x4F,0xA2,0xC7,0x97,0xA2,0xC7,0x07,0xA2,0xC7,
0xD7,0xA2,0xC7,0xE7,0xA2,0xC7,0xB1,0xBE,0x84,0xE2,
0x64,0xDA,0xE1,0x78,0x32,0x9B,0x67,0xF2,0x14,0x00,
0xC9,0x86,0x2C,0xAD,0x25,0x5C,0xE6,0x12,0x2E,0x90,
0xAB,0x9F,0xE7,0x14,0x95,0xC9,0x61,0x42,0xD1,0x28,
0xE6,0xA8,0x15,0xE5,0x26,0xD7,0x2D,0xBA,0x8A,0x9A,
0xFF,0x49,0x5E,0xB0,0x7E,0x6F,0x71,0xB2,0xAF,0x60,
0xFD,0xDE,0xE2,0x64,0x5F,0xB2,0xC0,0xC8,0xD8,0x65,
0x68,0x52,0xF4,0x68,0x2D,0x43,0x9B,0xCB,0xD0,0x60,
0x83,0x3F,0x17,0x4F,0xFB,0xEB,0x93,0x70,0x0A,0xE3,
0x5B,0xE0,0xEF,0x3A,0x4D,0xF8,0xBB,0x45,0x11,0xFE,
0xAE,0x3F,0x86,0xBF,0x5B,0xD5,0xE0,0xEF,0x66,0x65,
0xF8,0xBB,0x9D,0xFA,0x14,0x95,0x90,0xE1,0x97,0xE1,
0x84,0x9F,0xD1,0xAB,0x16,0x37,0x73,0xF5,0x36,0x9E,
0xB6,0x75,0xA6,0x59,0x07,0xB7,0xB8,0x6C,0xE9,0x4C,
0xFA,0x9A,0xBA,0x20,0xC6,0x15,0x0C,0xBE,0x85,0x7B,
0xF6,0x2D,0xDC,0xB3,0x6F,0xE1,0x9E,0x7D,0x0B,0xF7,
0xEC,0x5B,0xB8,0xBF,0xDE,0xBF,0x9F,0x19,0x35,0x9C,
0x24,0xAE,0xF8,0xD5,0x92,0xD8,0x7A,0x53,0x9F,0xDE,
0xE8,0x71,0x65,0x0F,0x34,0x83,0x79,0x16,0xE4,0x64,
0x1C,0xDE,0x37,0xF0,0x2D,0xEA,0xCA,0x94,0x25,0xCB,
0x09,0x17,0x4A,0xE2,0xC9,0x5C,0xD9,0x78,0xFA,0x76,
0xFE,0xEE,0xD3,0x7A,0xDC,0x24,0xB9,0x29,0x4B,0x81,
0x0B,0x06,0x25,0x57,0x9B,0xFA,0x14,0x4C,0x39,0xD9,
0xA4,0xD3,0xFE,0x4A,0xB7,0x39,0x8E,0xF2,0xC1,0x78,
0xDA,0x9C,0x2D,0xD8,0xE7,0xA2,0xBE,0x3B,0x27,0x44,
0x53,0x8B,0x3C,0xFF,0x8F,0x0F,0xDC,0x3F,0x73,0xF5,
0xDB,0x7F,0xC6,0x47,0x6F,0xE5,0x9C,0xB7,0xA9,0xDF,
0xEE,0x3C,0xFD,0xAB,0xE5,0x5D,0xFB,0x04,0x79,0x77,
0x7B,0x8E,0xBC,0xEB,0x45,0x90,0x77,0x77,0x17,0xC8,
0xBB,0x9B,0x33,0xE4,0xDD,0xF5,0xE9,0xF4,0x33,0x9C,
0x24,0x9A,0x5A,0xE6,0xBC,0x65,0x3B,0xA0,0x36,0x6B,
0x1F,0x94,0xB8,0x7F,0xB4,0xF9,0xE6,0x0F,0x63,0x98,
0x6E,0x58,0x95,0xF6,0x5B,0xEB,0x38,0x96,0xC5,0x76,
0x0A,0x7A,0xFC,0x36,0x0E,0x3D,0xDE,0x4B,0x43,0x8F,
0xDF,0x25,0xA1,0xC7,0x6F,0x12,0xD0,0xE3,0xD7,0x6F,
0x38,0x71,0xD0,0xB4,0xA2,0x7F,0x30,0x15,0xFF,0xC2,
0x71,0xE2,0xFA,0xE4,0x6D,0xC5,0xD3,0x8E,0xC7,0x73,
0xCF,0xDB,0xEB,0xE0,0x1F,0xB4,0x04,0x78,0xB9,0xE7,
0xED,0xBF,0x1C,0xA7,0x1C,0xBA,0x4E,0x13,0xFD,0xA2,
0x88,0xBE,0x3F,0x46,0xBF,0xAA,0xA1,0x9F,0x95,0xD1,
0x4F,0xDE,0x70,0xF2,0xF5,0x53,0x40,0x48,0xBD,0x53,
0x9F,0x76,0xF3,0x6F,0xB7,0x3E,0xED,0xE6,0xDF,0xA6,
0x3E,0x99,0x03,0xC1,0x94,0x3C,0xAA,0x27,0x67,0x39,
0x3C,0x7B,0xE8,0x93,0x37,0xE8,0xCD,0xEC,0x7D,0xAC,
0x0F,0x0F,0xE9,0xCC,0x4D,0x7F,0x24,0xDF,0x62,0x05,
0x8D,0x79,0x42,0x30,0x1C,0xA7,0x5F,0x5F,0xEF,0xC2,
0x30,0x08,0xF3,0x3B,0xC1,0xEC,0x0F,0xB2,0xB1,0xC9,
0x2D,0x7D,0x2C,0x23,0x73,0x52,0x97,0x39,0xC9,0xCB,
0x9C,0x0C,0x65,0x4E,0x2A,0x32,0x27,0x5C,0xA2,0x65,
0xD2,0x62,0x32,0x69,0x29,0x99,0xB4,0xB8,0x4C,0x5A,
0x5A,0x26,0x2D,0x29,0x93,0x96,0x70,0x9C,0x76,0x74,
0xE6,0x55,0x74,0x73,0xC1,0x5A,0x1C,0x3A,0xF3,0x6A,
0x4B,0x67,0x9A,0x3D,0xF5,0x4D,0xEE,0x29,0xCF,0xED,
0x20,0x93,0xD3,0x4E,0x5B,0xFB,0x2B,0xA6,0x8E,0xBB,
0xDF,0xF9,0x9D,0xF1,0x74,0x24,0xDF,0xB2,0x15,0x4F,
0xE1,0x7C,0xB0,0x7D,0x3A,0xC7,0x9C,0x1C,0x04,0x74,
0xB8,0xCF,0xC9,0x9C,0xAA,0x9B,0x93,0x83,0x6D,0x1D,
0xAE,0xBF,0x47,0x7D,0x0A,0xB9,0x5F,0xE0,0xB8,0x6A,
0x17,0x57,0xEE,0x8C,0xD8,0x39,0x61,0xFB,0x0E,0xB9,
0xB8,0xF2,0x67,0xE1,0x4B,0x72,0x42,0x66,0xAA,0x36,
0x32,0x53,0xDD,0x22,0x33,0x55,0x0F,0x99,0xA9,0xEE,
0x90,0x99,0xEA,0x06,0x99,0xA9,0xB6,0xD7,0xBB,0x70,
0x7F,0xF7,0xEA,0xE2,0xC9,0xD7,0x4E,0xEF,0xC4,0x93,
0xAF,0x9D,0xBE,0x7A,0x3C,0x51,0xD7,0x53,0xD0,0x4F,
0x9E,0x82,0x7E,0xF2,0x14,0xF4,0x93,0xA7,0xA0,0x9F,
0x3C,0x05,0xFD,0xE4,0xA9,0xE9,0xFF,0x75,0xDB,0xCD,
0x53,0xA9,0x5B,0xFB,0x05,0xBB,0xF5,0x69,0x77,0x5F,
0xE5,0xEB,0x72,0xFA,0xA4,0x1E,0xA7,0xDF,0xF5,0xF7,
0xE6,0x5F,0x8E,0x13,0x1F,0xAF,0x33,0x27,0x3E,0x5E,
0x67,0x4E,0x7C,0xBC,0xCE,0x9C,0xF8,0x78,0x9D,0x39,
0xF1,0xF1,0x3A,0x73,0xE2,0xE3,0x75,0xFA,0x69,0x3F,
0xED,0xA7,0x1D,0xB7,0x89,0x10,0x3D,0x11,0x21,0x7A,
0x2E,0x42,0x34,0x22,0x42,0xF4,0x42,0x84,0xE8,0x99,
0xE4,0xDC,0xE9,0x0F,0xA5,0xAF,0xDC,0xC2,0xE8,0xF1,
0x30,0xBF,0xB3,0xE5,0x5B,0xBC,0x4D,0xBF,0xAB,0x8E,
0x0E,0xFB,0x96,0xF0,0xAB,0xFC,0xDE,0x7D,0x92,0x9F,
0xF6,0xD3,0x7E,0xEA,0xD3,0x4F,0xFB,0x69,0x3F,0x7A,
0x7C,0x5F,0xFB,0x1F,0xEB,0xB4,0x9C,0x3B,0x01,0xF6,
0x48,0x6B,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,
0xAE,0x42,0x60,0x82,};
+162
View File
@@ -0,0 +1,162 @@
char about[] = { // about screen
"FUN COLUMNS"
" BY FTA "
"CODING: "
"O. GOGUEL "
"DESIGN: "
"O. BAILLY "
" MAITRE "
"VERSION 1.1"
"TOOLBOX-MAG"
" ISSUE: 04 "
" 03-FEB-91 "
" COPYRIGHT "
"FTA/TOOLBOX"
};
char high[] = { // high scores
"HIGH "
"SCORES:"
"HULK " // OLIVIER
"..10000"
"EARTH " // J-YVES
"...9000"
"BUSH " // BERNARD
"...8000"
"AXE " // ERIC
"...7000"
"PERFECT" // HUBERT
"...6000"
"POWERS " // J-LUC
"...5000"
"TUGBOAT" // YVAN
"...4000"
"DINO " // EMILE
"......1"
};
char status[] = { // current status
"SCORE: "
" 0" // score
"LEVEL: "
"1E 1" // levels remaining / completed (31)
"TOTAL: "
" 0" // tiles smashed
};
char m_menu[] = { // main menu
"CHOOSE : "
"1-VERY EASY"
"2-EASY "
"3-MEDIUM "
"4-HARD "
"5-VERY HARD"
"6-JEDI "
"A-ABOUT "
"I-INFO "
"Q-QUIT "
};
char info[] = { // info/instruction screen
"COLUMNS "
"RULES. "
" <-:LEFT "
" ->:RIGHT "
" R:ROTATE "
"SPC:FALL "
" ^R:RESTART"
" ^S:NEW PAT"
" N:NEXT "
" P:PAUSE "
" HAVE FUN !"
};
char gameo[] = {
"GAME OVER"
};
char pause[] = {
"> PAUSE <"
};
int gameol [1][2] = {
{124, 97}
};
int pausel [1][2] = {
{124, 97}
};
int highl [18][2] = {
{22, 11}, // HIGH
{22, 18}, // SCORES:
{22, 34}, // HULK
{22, 42}, // ......0
{22, 54}, // EARTH
{22, 62}, // ......0
{22, 74}, // BUSH
{22, 82}, // ......0
{22, 94}, // AXE
{22, 102}, // ......0
{22, 114}, // PERFECT
{22, 122}, // ......0
{22, 134}, // POWERS
{22, 142}, // ......0
{22, 154}, // TUGBOAT
{22, 162}, // ......0
{22, 174}, // DINO
{22, 182} // ......0
};
int aboutl [13][2] = {
{118, 35}, // fun columns
{118, 49}, // by fta
{118, 63}, // coding:
{118, 72}, // o. goguel
{118, 88}, // design:
{118, 97}, // o. bailly
{118, 104}, // maitre
{118, 132}, // version 1.1
{118, 141}, // toolbox-mag
{118, 150}, // issue: 04
{118, 159}, // 03-deb-91
{118, 175}, // copyright
{118, 184} // fta/toolbox
};
int statusl [6][2] = {
{240, 11}, // score:
{240, 20}, // 0
{240, 31}, // level:
{240, 40}, // 00 1
{240, 51}, // total:
{240, 60} // 0
};
int infol [11][2] = {
{116, 50}, // columns
{116, 57}, // rules.
{116, 71}, // <-:left
{116, 78}, // ->:right
{116, 85}, // r:rotate
{116, 92}, // spc:fall
{116, 99}, // ^r:restart
{116, 106}, // ^s:new pat
{116, 113}, // n:next
{116, 120}, // p:pause
{116, 134} // have fun !
};
int m_menul [10][2] = {
{118, 52}, // choose
{118, 66}, // 1 - very easy
{118, 73}, // 2 - easy
{118, 80}, // 3 - medium
{118, 87}, // 4 - hard
{118, 94}, // 5 - very hard
{118, 101}, // 6 - jedi
{118, 115}, // a - about
{118, 122}, // i - info
{118, 129} // q - quit
};