Subversion Repositories aysalia

Compare Revisions

No changes between revisions

Regard whitespace Rev 1 → Rev HEAD

/trunk/Aysalia DOS/AyDos.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/AyDos.mnu
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/AyDos1.gam
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/AyDos2.gam
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/DOSBox License.txt
0,0 → 1,340
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
 
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
 
Preamble
 
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
 
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
 
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
 
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
 
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
 
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
 
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
 
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
 
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
 
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
 
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
 
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
 
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
 
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
 
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
 
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
 
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
 
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
 
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
 
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
 
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
 
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
 
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
 
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
 
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
 
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
 
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
 
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
 
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
 
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
 
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
 
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
 
NO WARRANTY
 
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
 
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
 
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
 
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
 
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
 
<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 2 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 
Also add information on how to contact you by electronic and paper mail.
 
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
 
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
 
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
 
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
 
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
 
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
 
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
/trunk/Aysalia DOS/DOSBox.conf
0,0 → 1,243
# This is the configurationfile for DOSBox 0.74. (Please use the latest version of DOSBox)
# Lines starting with a # are commentlines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
 
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# fulldouble: Use double buffering in fullscreen. It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, overlay, opengl, openglnb, ddraw.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the defaul value.
# usescancodes: Avoid usage of symkeys, might not work on all operating systems.
 
fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=original
output=surface
autolock=false
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper-0.74.map
usescancodes=true
 
[dosbox]
# language: Select another language file.
# machine: The type of machine tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
 
language=
machine=svga_s3
captures=capture
memsize=16
 
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes.
# If 'forced' is appended, then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
 
frameskip=0
aspect=false
scaler=normal2x
 
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually need if 'auto' fails.
# (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to handle.
#
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombo.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
 
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
 
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
 
nosound=false
rate=44100
blocksize=1024
prebuffer=20
 
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# See the README/Manual for more details.
 
mpu401=intelligent
mididevice=default
midiconfig=
 
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
 
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
 
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
 
gus=false
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
ultradir=C:\ULTRASND
 
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
 
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
 
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
 
joysticktype=auto
timed=true
autofire=false
swap34=false
buttonwrap=false
 
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
 
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
 
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
 
xms=true
ems=true
umb=true
keyboardlayout=auto
 
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
 
ipx=false
 
[autoexec]
mount c "."
c:
aydos.exe
exit
/trunk/Aysalia DOS/DOSBox.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/SDL.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/SDL_net.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/AyDos.cfg
0,0 → 1,35
-$A+
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\program files (x86)\borland\delphi5\Projects\Bpl"
-LN"c:\program files (x86)\borland\delphi5\Projects\Bpl"
/trunk/Aysalia DOS/Source/AyDos.dof
0,0 → 1,84
[Compiler]
A=1
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=Vcl50;Vclx50;VclSmp50;Vcldb50;vclado50;ibevnt50;Vclbde50;vcldbx50;Qrpt50;TeeUI50;TeeDB50;Tee50;Dss50;TeeQR50;VCLIB50;Vclmid50;vclie50;Inetdb50;Inet50;NMFast50;webmid50;dclocx50;dclaxserver50;vclAbsDBd5
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
[Language]
ActiveLang=
ProjectLang=$00000407
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=Aysalia DOS Launcher
FileVersion=1.0.0.0
InternalName=AyDos
LegalCopyright=(C) 2018 ViaThinkSoft
LegalTrademarks=Aysalia by Kai Breiling
OriginalFilename=AyDos.exe
ProductName=Aysalia DOS
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
$(DELPHI)\Projects\Bpl\hbTapiD5.bpl=hbTapi Components 1.9.9 Standard Edt.
/trunk/Aysalia DOS/Source/AyDos.dpr
0,0 → 1,266
program AyDos;
 
// Aysalia DOS Launcher
// Revision 2018-12-08
// (C) 2018 Daniel Marschall, ViaThinkSoft
 
// This launcher does launch DOSBox with the correct *.conf file,
// centers the window and changes the window title and icon at runtime.
 
uses
SysUtils,
ShellAPI,
Windows,
Messages;
 
{$R *.RES}
 
const
DOSBOX_EXE = 'DOSBox.exe';
AYDOS_MNU = 'AyDos.mnu';
AYDOS_COM = 'AyDos.com';
 
var
hPsApiDll: Cardinal = 0;
hIcon: THandle = 0;
bCeneredOnce: boolean = false;
 
(*
function GetModuleFileNameEx(inProcess: THandle; inModule: THandle;
Filename: PChar; size: DWord): DWord; stdcall;
external 'psapi.dll' name 'GetModuleFileNameExA';
*)
{$IFDEF UNICODE}
function GetModuleFileNameEx(inProcess: THandle; inModule: THandle; Filename: PWideChar; size: DWord): Integer;
type
TGetModuleFileNameExFunc = function (inProcess: THandle; inModule: THandle; Filename: PWideChar; size: DWord): DWord; stdcall;
var
funcGetModuleFileNameEx: TGetModuleFileNameExFunc;
begin
if hPsApiDll <> 0 then
begin
@funcGetModuleFileNameEx := GetProcAddress(hPsApiDll, 'GetModuleFileNameExW');
if Assigned(funcGetModuleFileNameEx) then
result := funcGetModuleFileNameEx(inProcess, inModule, Filename, size)
else
result := -1;
end
else result := -2;
end;
{$ELSE}
function GetModuleFileNameEx(inProcess: THandle; inModule: THandle; Filename: PAnsiChar; size: DWord): Integer;
type
TGetModuleFileNameExFunc = function (inProcess: THandle; inModule: THandle; Filename: PAnsiChar; size: DWord): DWord; stdcall;
var
funcGetModuleFileNameEx: TGetModuleFileNameExFunc;
begin
if hPsApiDll <> 0 then
begin
@funcGetModuleFileNameEx := GetProcAddress(hPsApiDll, 'GetModuleFileNameExA');
if Assigned(funcGetModuleFileNameEx) then
result := funcGetModuleFileNameEx(inProcess, inModule, Filename, size)
else
result := -1;
end
else result := -2;
end;
{$ENDIF}
 
procedure ChangeTitleAndIcon(hWnd: Thandle);
var
Title: array[0..255] of Char;
const
TargetWinWidth = 640;
TargetWinHeight = 480;
resourcestring
AyDosTitle = 'Aysalia DOS';
AyDos1Title = 'Aysalia DOS 1';
AyDos2Title = 'Aysalia DOS 2';
begin
ZeroMemory(@Title, sizeof(Title));
GetWindowText(hWnd, @Title, sizeof(Title)-1);
 
// Center window (once)
if (Title = 'DOSBox') and not bCeneredOnce then
begin
MoveWindow(hWnd, GetSystemMetrics(SM_CXSCREEN) div 2 - TargetWinWidth div 2,
GetSystemMetrics(SM_CYSCREEN) div 2 - TargetWinHeight div 2,
TargetWinWidth,
TargetWinHeight,
true);
bCeneredOnce := true;
end;
 
// Change window title
if Pos('AYDOS1', Title) > 0 then
SetWindowText(hWnd, PChar(AyDos1Title))
else if Pos('AYDOS2', Title) > 0 then
SetWindowText(hWnd, PChar(AyDos2Title))
else if Pos('AYDOS', Title) > 0 then
SetWindowText(hWnd, PChar(AyDosTitle));
 
// Change window and taskbar icon
if hIcon > 0 then
begin
// Change both icons to the same icon handle.
SendMessage(hWnd, WM_SETICON, ICON_SMALL, hIcon);
SendMessage(hWnd, WM_SETICON, ICON_BIG, hIcon);
 
// This will ensure that the application icon gets changed too.
SendMessage(GetWindow(hWnd, GW_OWNER), WM_SETICON, ICON_SMALL, hIcon);
SendMessage(GetWindow(hWnd, GW_OWNER), WM_SETICON, ICON_BIG, hIcon);
end;
end;
 
function EnumWindowsProc(Handle: hWnd; dummy: DWORD): BOOL; stdcall;
var
Title: array[0..255] of Char;
WinFileName: array[0..MAX_PATH] of Char;
var
PID: DWORD;
hProcess: THandle;
Len: Integer;
begin
Result := True;
ZeroMemory(@WinFileName, sizeof(WinFileName));
GetWindowThreadProcessId(Handle, @PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
Len := GetModuleFileNameEx(hProcess, 0, WinFileName, sizeof(WinFileName)-1);
if Len > 0 then
begin
// GetModuleFileNameEx is available on newer operating systems;
// it ensures that we find the correct window by checking its EXE filename.
if SameText(WinFileName, ExtractFilePath(ParamStr(0)) + DOSBOX_EXE) then
begin
Result := False; // stop enumeration
ChangeTitleAndIcon(Handle);
end;
end
else if Len < 0 then
begin
// At Win9x, there is no psapi.dll, so we try it the old fashioned way,
// finding the window by parts of its title
ZeroMemory(@Title, sizeof(Title));
GetWindowText(Handle, Title, sizeof(Title)-1);
if IsWindowVisible(Handle) then
begin
if (title = 'DOSBox') or ((Pos('DOSBox ', title) > 0) and
(Pos('Cpu speed', title) > 0)) then
begin
Result := False; // stop enumeration
ChangeTitleAndIcon(Handle);
end;
end;
end;
end;
 
function ShellExecuteWait(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer; lpEnumFunc: TFNWndEnumProc=nil): DWord;
var
Info: TShellExecuteInfo;
pInfo: PShellExecuteInfo;
begin
pInfo := @Info;
with Info do
begin
cbSize := SizeOf(Info);
fMask := SEE_MASK_NOCLOSEPROCESS;
wnd := hWnd;
lpVerb := Operation;
lpFile := FileName;
lpParameters := PChar(Parameters + #0);
lpDirectory := PChar(Directory);
nShow := ShowCmd;
hInstApp := 0;
end;
ShellExecuteEx(pInfo);
 
repeat
result := WaitForSingleObject(Info.hProcess, 10);
if Assigned(lpEnumFunc) then EnumWindows(lpEnumFunc, 0);
until (result <> WAIT_TIMEOUT);
end;
 
function CanRunDosBox: boolean;
var
windir: array[0..MAX_PATH] of char;
osVerInfo: TOSVersionInfo;
begin
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
// DOSBox does not work with Windows 95
// It works on Windows 98 (but the VC++ Runtime must be installed)
if osVerInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
begin
result := (osVerInfo.dwMajorVersion > 4) or
((osVerInfo.dwMajorVersion = 4) and (osVerInfo.dwMinorVersion >= 10{Win98}));
end
else if osVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
result := true;
end
else
begin
// This should not happen
result := false;
end;
end
else
begin
if GetWindowsDirectory(windir, sizeof(windir)) > 0 then
begin
// In case GetVersionEx fails, we are trying to see if command.com exists
result := FileExists(windir + '\command.com');
end
else
begin
// This should never happen
result := false;
end;
end;
end;
 
function Main: Integer;
var
sFile: string;
begin
if CanRunDosBox then
begin
hPsApiDll := LoadLibrary('psapi.dll');
try
hIcon := LoadIcon(hInstance, 'MainIcon');
bCeneredOnce := false;
 
ShellExecuteWait(0, 'open', DOSBOX_EXE, '-noconsole -conf DOSBox.conf',
PChar(ExtractFilePath(ParamStr(0))), SW_NORMAL, @EnumWindowsProc);
 
sFile := IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))) + 'stdout.txt';
if FileExists(sFile) then DeleteFile(PChar(sFile));
 
sFile := IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))) + 'stderr.txt';
if FileExists(sFile) then DeleteFile(PChar(sFile));
finally
FreeLibrary(hPsApiDll);
hPsApiDll := 0;
end;
end
else
begin
// SEE_MASK_CLASSNAME cannot be used with pure MZ files (it does only work for NE/PE files!)
// So we need to do the dirty rename-hack...
if FileExists(AYDOS_MNU) and not FileExists(AYDOS_COM) then RenameFile(AYDOS_MNU, AYDOS_COM);
try
ShellExecuteWait(0, 'open', PChar(AYDOS_COM), '',
PChar(ExtractFilePath(ParamStr(0))), SW_NORMAL, nil);
finally
if FileExists(AYDOS_COM) and not FileExists(AYDOS_MNU) then RenameFile(AYDOS_COM, AYDOS_MNU);
end;
end;
 
result := 0;
end;
 
begin
ExitCode := Main;
end.
/trunk/Aysalia DOS/Source/AyDos.dproj
0,0 → 1,33
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{19b697c4-ec95-436f-a24a-835c62a5d966}</ProjectGuid>
<MainSource>AyDos.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>AyDos.exe</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_Define>DEBUG</DCC_Define>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1031</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">AyDos.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="AyDos.dpr">
<MainSource>MainSource</MainSource>
</DelphiCompile>
</ItemGroup>
</Project>
/trunk/Aysalia DOS/Source/AyDos.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/AyDos.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/DOS Stub/DosStub.asm
0,0 → 1,47
 
; Aysalia DOS Launcher
; DOS Stub for AyDos.exe fat binary
; Revision 2018-12-05
; (C) 2018 Daniel Marschall, ViaThinkSoft
 
.model tiny
.code
org 100h
 
start:
 
jmp real_start
 
exename1 db "AYDOS.MNU",0
cmdargs db 0,'',0dh
 
dummy_fcb db 36 dup(0)
 
paramblk dw 0 ; use environment of parent
dw cmdargs ; command line arguments
dw 0 ; cmdargs_seg
dw dummy_fcb ; fcb1
dw 0 ; fcb1_seg
dw dummy_fcb ; fcb2
dw 0 ; fcb2_seg
 
 
real_start:
; Reduce size of own application to give the called applications more space
mov ah, 4ah
mov bx, 32 ; 32 paragraphs a 16 bytes = 512 bytes
int 21h
 
; Start Menu
mov ah, 4bh ; execute
mov al, 00h ; load and execute
mov bx, paramblk
lea dx, exename1
int 21h
 
; Return to DOS
mov ah, 4ch
mov al, 00h
int 21h
 
end start
/trunk/Aysalia DOS/Source/DOS Stub/DosStub.com
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/DOS Stub/Make.bat
0,0 → 1,6
 
c:\tasm\bin\tasm DOSSTUB.ASM
c:\tasm\bin\tlink /t DOSSTUB.OBJ
 
del DOSSTUB.MAP
del DOSSTUB.OBJ
/trunk/Aysalia DOS/Source/Games/AyDos1.gam
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/Games/AyDos2.gam
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/MSDos.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/Menu/AyDos.mnu
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Aysalia DOS/Source/Menu/AyDosMnu.asm
0,0 → 1,362
 
; Aysalia DOS Launcher
; Launches aydos1.gam and aydos2.gam
; Revision 2018-12-07
; (C) 2018 Daniel Marschall, ViaThinkSoft
 
.model small
.stack 100h
 
; -------------------------------------------------------
 
.data
 
exename1 db "AYDOS1.GAM", 0
exename2 db "AYDOS2.GAM", 0
cmdargs db 0, '', 0Dh
 
dummy_fcb db 36 dup(0)
 
paramblk dw 0 ; use environment of parent
dw cmdargs ; command line arguments
dw 0 ; cmdargs_seg
dw dummy_fcb ; fcb1
dw 0 ; fcb1_seg
dw dummy_fcb ; fcb2
dw 0 ; fcb2_seg
 
menu1 db 13, 10, \
13, 10, \
13, 10, \
13, 10, \
' Aysalia DOS', 13, 10, \
13, 10, \
13, 10, \
' Welches Spiel soll gestartet werden?', 13, 10, \
13, 10, \
' Dr', 81h, 'cke eine der folgenden Tasten:', 13, 10, \
13, 10, \
' 1 Aysalia DOS I', 13, 10, \
' 2 Aysalia DOS II', 13, 10, \
13, 10, \
' 9 Beenden', 13, 10, \
13, 10, \
13, 10, \
13, 10, 0
error1 db 13, 10, \
'Fehler: Spiel kann nicht gestartet werden. Fehlt eine Datei?', 13, 10, \
13, 10, 0
 
gameover1 db 13, 10, \
'Spiel zu Ende!', 13, 10, \
13, 10, 0
 
; -------------------------------------------------------
 
.code
 
clear_vga PROC
mov ax, 0A000h
mov es, ax
xor di, di
mov ax, 0
mov cx, 64000
rep stosb
ret
clear_vga ENDP
 
set_screen12 PROC
mov ah, 0 ; set screen mode
mov al, 12h ; graphic mode, 640x480 pixel, 16 colors (VGA)
int 10h
ret
set_screen12 ENDP
 
setup_paramblk PROC
mov ax, cs
mov [paramblk + 4], ax ; cmdargs_seg
mov [paramblk + 8], ax ; fcb1_seg
mov [paramblk + 12], ax ; fcb2_seg
ret
setup_paramblk ENDP
 
set_numlock_on PROC
push es
 
; In Windows 98+, we cannot access the BIOS Data Area,
; so we use this technique to check if we are inside Windows.
; This code was taken from http://www.fysnet.net/chkwin.htm
xor ax,ax ; point es:di to 0000:0000h
mov es,ax ;
mov di,ax ;
mov ax,1602h ; Get API entry point
int 2Fh ; call to multiplex interrupt
mov ax,es ;
or ax,ax ; if es:di doesn't point to 0000:0000h
jnz short is_win ; then Windows is running a DOS box
or di,di ; else
jnz short is_win ; we are in True DOS
 
; Now the actual code that sets numlock on
push ds
mov ax, 40h
mov ds, ax ; Go to BIOS Data Area ( http://stanislavs.org/helppc/bios_data_area.html )
mov bx, 17h ; Load Keyboard flag byte 0
mov al, [bx] ; Read
or al, 20h ; Set bit 5 (numlock) to 1
mov [bx], al ; Write
pop ds
is_win:
pop es
ret
set_numlock_on ENDP
 
flush_keyb_buf PROC
mov ah, 0Ch ; Flush input buffer and input
mov al, 0
int 21h
ret
flush_keyb_buf ENDP
 
exit_to_dos PROC
mov ah, 4Ch
mov al, 00h
int 21h
ret
exit_to_dos ENDP
 
sleep_5 PROC
mov ah, 00h
int 1Ah
cmp dx, 7FFFh
jg sleep_5_upperhalf
sleep_5_lowerhalf:
mov bx, dx
add bx, 91 ; 18.2 = 1 sec (therefore 91 = 5 sec)
sleep_5_lowerhalf_again:
int 1Ah
cmp dx, bx
jl sleep_5_lowerhalf_again
ret
sleep_5_upperhalf:
mov bx, dx
sub bx, 7FFFh
add bx, 91 ; 18.2 = 1 sec (therefore 91 = 5 sec)
sleep_5_upperhalf_again:
int 1Ah
sub dx, 7FFFh
cmp dx, bx
jl sleep_5_upperhalf_again
ret
sleep_5 ENDP
 
print_color_string PROC
; This function requires:
; dx = Pointer to zero terminated string
; cl = Color
mov ah, 0Eh
print_color_string_again:
mov bx, dx
mov al, [bx]
test al, al ; is the character zero? then we are done
jz print_color_string_end
mov bl, cl
int 10h
add dx, 1 ; go to next character
jmp print_color_string_again
print_color_string_end:
ret
print_color_string ENDP
 
set_bg_color PROC
; This function requires:
; bl = Color
mov ah, 0Bh
mov bh, 00h
int 10h
ret
set_bg_color ENDP
 
print_menu_screen PROC
; Clear screen
call clear_vga
 
; Set background color
mov bl, 8 ; dark green background
call set_bg_color
; Set text color
mov cl, 0Fh ; white font
lea dx, menu1
call print_color_string
ret
print_menu_screen ENDP
 
print_error_screen PROC
; Clear screen
call clear_vga
 
; Set background color
mov bl, 4 ; dark red background
call set_bg_color
; Set text color
mov cl, 0Fh ; white font
lea dx, error1
call print_color_string
ret
print_error_screen ENDP
 
print_gameover_message PROC
; Keep cursor position
 
; Set background color
mov bl, 4 ; dark red background
call set_bg_color
; Set text color
mov cl, 0Fh ; white font
lea dx, gameover1
call print_color_string
ret
print_gameover_message ENDP
 
; -------------------------------------------------------
 
start:
; Setup data segment
mov ax, @data ; moving base address of data to ax
mov ds, ax ; moving contents of ax into ds
; data section now gets initialized
 
; Preserve the original screen mode
mov ah, 0Fh ; Query screen mode
int 10h
push ax ; actually, we are only interested in register al (screen mode), not in ah (column count)
; Change numlock to ON
; DOSBox has a bug where the NumLock is not correctly set to the setting of the host system,
; so you have to press the NumLock key twice so that DOSBox recognizes the status.
; see: https://sourceforge.net/p/dosbox/bugs/71/
; https://superuser.com/questions/255102/is-there-a-way-to-use-the-numeric-keypad-in-dosbox/1146986
; Since the game uses number keys very often, we set NumLock to ON
call set_numlock_on
 
; Reduce size of own application to give the called applications more space
; see https://stackoverflow.com/a/10067627
mov ah, 4Ah
mov bx, 100 ; 100 paragraphs a 16 bytes = 1600 bytes
int 21h
 
menu:
; Video Mode VGA 12
call set_screen12
 
; Flush keyboard buffer
call flush_keyb_buf
 
; Print menu screen
call print_menu_screen
retry:
; Query keyboard input
mov ah, 07h ; Direct character input, without echo
int 21h
cmp al, '1'
je prog1
cmp al, '2'
je prog2
cmp al, '9'
je exit
 
; Invalid input
jmp retry
 
prog1:
; Clear screen
call clear_vga
 
; Setup parameter block for the EXEC command
call setup_paramblk
 
; Start game 1
mov ax, @data ; ds:dx = ASCIZ program name (must include extension)
mov ds, ax
lea dx, exename1
mov ax, @data ; es:bx = Parameter block
mov es, ax
mov bx, paramblk
mov ah, 4Bh ; execute
mov al, 00h ; load and execute
int 21h ; DOS API
; Is everything OK? Or is the GAM file missing?
jc error
 
; Notify the player that the game has finished
jmp gameover
 
prog2:
; Clear screen
call clear_vga
; Setup parameter block for the EXEC command
call setup_paramblk
 
; Start game 2
mov ax, @data ; ds:dx = ASCIZ program name (must include extension)
mov ds, ax
lea dx, exename2
mov ax, @data ; es:bx = Parameter block
mov es, ax
mov bx, paramblk
mov ah, 4Bh ; execute
mov al, 00h ; load and execute
int 21h ; DOS API
; Is everything OK? Or is the GAM file missing?
jc error
 
; Notify the player that the game has finished
jmp gameover
error:
; Video Mode VGA 12
call set_screen12
 
; Print error
call print_error_screen
; Give the player time to read the error message (approx 5 seconds)
call sleep_5
 
; Go back to the menu
jmp menu
gameover:
; Print gameover message
call print_gameover_message
 
; Give the player time to read the game over message (approx 5 seconds)
call sleep_5
 
; Go back to the menu
jmp menu
exit:
; Reset video mode to DOS default
pop ax ; the video mode we have preserved at program start
mov ah, 0 ; set screen mode
int 10h
 
; Return to DOS
call exit_to_dos
 
; -------------------------------------------------------
 
end start
/trunk/Aysalia DOS/Source/Menu/Make.bat
0,0 → 1,16
 
c:\tasm\bin\tasm AYDOSMNU.ASM
c:\tasm\bin\tlink AYDOSMNU.OBJ
 
del AYDOSMNU.MAP
del AYDOSMNU.OBJ
 
del AyDos.mnu
ren AYDOSMNU.EXE AyDos.mnu
 
del C:\AyDos.mnu
copy AyDos.mnu C:\
 
c:
cd \
aydos
/trunk/Aysalia DOS/Source/Source Notes.txt
0,0 → 1,75
 
Annotations for the Aysalia DOS I & II source codes
===================================================
 
CALLING FLOW
------------
 
When running under Windows that supports DOXBox:
 
AyDos.exe (32 Bit PE) --> DOSBox (32 Bit PE) --> AyDos.exe (16 Bit COM) --> AyDos.mnu (16 Bit MZ) --> AyDos1/2.gam (16 Bit MZ)
 
1. AyDos.exe (32 Bit PE) calls DOSBox.exe (32 Bit PE) with config DOSBox.conf
2. DOSBox.conf starts AyDos.exe (16 Bit MZ) as autostart
3. AyDos.exe (16 Bit COM) calls AyDos.mnu (16 Bit MZ)
4. AyDos.mnu (16 Bit MZ) shows a menu and calls AyDos1.gam or AyDos2.gam (both 16 Bit MZ)
When running under Windows that does not support DOSBox (only Windows 95):
 
AyDos.exe (32 Bit PE) --> AyDos.mnu (16 Bit MZ) --> AyDos1/2.gam (16 Bit MZ)
 
1. AyDos.exe (32 Bit PE) calls AyDos.mnu (16 Bit MZ) by temporarily renaming it to AyDos.com
2. AyDos.mnu (16 Bit MZ) shows a menu and calls AyDos1.gam or AyDos2.gam (both 16 Bit MZ)
When running under DOS:
 
AyDos.exe (16 Bit COM) --> AyDos.mnu (16 Bit MZ) --> AyDos1/2.gam (16 Bit MZ)
 
1. AyDos.exe (16 Bit COM) calls AyDos.mnu (16 Bit MZ)
2. AyDos.mnu (16 Bit MZ) shows a menu and calls AyDos1.gam or AyDos2.gam (both 16 Bit MZ)
 
 
AYDOS.EXE
---------
 
AyDos.exe is a "fat binary" which can be called by DOS and Windows.
 
In Windows mode, it calls DOSBox.exe with the arguments "-noconsole -conf DOSBox.conf" and
the working directory being the directory where the EXE file is located.
It also centers the DOSBox window and changes its window title and icon at runtime.
 
In DOS mode, it executes the application "AYDOS.MNU" (which is actually a COM-file
containing the menu code that will eventually call AYDOS1.GAM or AYDOS2.GAM which are
actually MZ-executables).
 
To create this fat binary, do the following:
 
1. Compile AyDos.exe with Delphi
 
2. Compile DosStub.com with TASM
 
3. With an hex editor, copy the contents of DosStub.com into AyDos.exe to offset 0x40
 
 
AYDOS1.GAM and AYDOS2.GAM
-------------------------
 
These games were developed and compiled in QuickBasic, but unfortunately the source code is lost.
 
The EXE files have been modified with a hex editor to fix some small issues.
A side effect of one fix is that the video mode is not reset when the game exists.
Therefore, the EXE files have been renamed to GAM and will be called by the menu/launcher executable,
which resets the video mode correctly, in addition in showing a menu.
 
 
DISTRIBUTE
----------
 
AyDos.exe
AyDos.mnu
AyDos1.gam
AyDos2.gam
DOSBox.exe
DOSBox.conf
SDL.dll (required by DOSBox)
SDL_net.dll (required by DOSBox)
/trunk/Aysalia DOS
Property changes:
Added: svn:ignore
+tasm
/trunk/LICENSE
0,0 → 1,202
 
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
 
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 
1. Definitions.
 
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
 
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
 
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
 
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
 
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
 
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
 
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
 
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
 
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
 
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
 
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
 
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
 
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
 
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
 
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
 
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
 
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
 
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
 
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
 
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
 
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
 
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
 
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
 
END OF TERMS AND CONDITIONS
 
APPENDIX: How to apply the Apache License to your work.
 
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
 
Copyright 2018 Daniel Marschall, ViaThinkSoft
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
 
http://www.apache.org/licenses/LICENSE-2.0
 
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
/trunk/Readme.md
0,0 → 1,269
 
# AYSALIA: DUAL PACK
**11. Dezember 2018**
 
Vielen Dank, dass Sie Aysalia spielen! Das "Dual Pack" beinhaltet die
Teile "Zeitalter der Dämonen" in Version 1.5.3 und "Schatten über Aysalia"
in Version 2.3.1 inklusive der Quelltexte für Visual Basic 5 und höher.
 
"Aysalia" ist der neue Name der vor kurzem umbenannten "Dragon Quest"-Reihe
von Mystix Development. Dem "Dual Pack" liegen zusätzlich die beiden sehr alten
Versionen von Dragon Quest bei, die nun in "Aysalia DOS" umbenannt wurden.
Die Versionen enthalten keinen Quelltext und liegen nur aus "nostalgischen"
Gründen bei.
 
Aysalia DOS I und Aysalia DOS II können ab Dezember 2018
mit allen Windows Versionen (auch 64 Bit) gespielt werden.
Hierfür wurde DOSBox sowie ein Launcher in das Spielepaket inkludiert.
 
Wir wünschen Ihnen viel Spaß beim Spielen. Wenn Sie Verbesserungsvorschläge
haben, können Sie diese uns gerne zukommen lassen!
 
## DAS ZEITALTER DER DÄMONEN, VERSION 1.5.3
 
### VERSIONSHISTORIE
 
Version 1.5.3 (Juni 2007)
- Orklager: Weiterer kleiner Bug behoben
- Orklager und Herberge: Goldanzeige wurde an einer Stelle nicht aktualisiert
 
Version 1.5.2 (Juni 2007)
- Schwerer Bug im Lager der Orks behoben
- Globaler Dialogfehler wurde behoben
 
Version 1.5.1 (Januar 2007)
- Kleinere Verbesserungen
 
Version 1.5 (September 2006)
- KAMPFBILDSCHIRM AKTUALISIERT SICH ERST NACH DEM ERSTEN SCHLAG
- Wenn man ohne Items abspeichert, hat man nach dem Laden ein leeres Item
- Charakter: Wenn man die Rasse neu auswählt, bleibt Klasse noch bestehen
- Wenn man durch Wundenheilen stirbt, beendet das Programm sofort
- Rastensymbol wird beim Laden nicht angezeigt
Darauf folgender Cheat wird unterbunden: Beim Rasten kann man nicht abspeichern
(Jemand könnte dadurch seine Wunden mehrmals heilen)
- Wenn Anwendung über fremden Anwendungspfad aufgerufen wird, dann werden
Spielstände nicht gefunden.
- Charakterfenster konnte an den Kanten groß gemacht werden
- Man konnte (sehr selten) gleichzeitg sterben und gewinnen bei einem Kampf
- Kalender in Manager reinmachen
- Versionsinformationen aktualisieren
- "Spiel laden" ausblenden, wenn kein Spiel vorhanden
- Schleichwerbung beim Beenden entfernt
- Hexe ist in Havengate nach Verschwinden noch ein wenig sichtbar
- Modale Fenster (bleiben im Vordergrund) verwenden
- Circles verwenden
- City soll beim Laden angewandt werden
- Rast: Objekt benutzen wird deaktiviert, wenn es doch gar nicht ging
... Das selbe mit Dorfältesten
- Neuen Versionsinfo-Dialog
- Manager soll immer ganz expandiert sein
- Man kann nicht über Rand hinweg gehen
- Man kann nun auch über ASDW Steuern
- Nach Rast/Angriff wird City aufgerufen
Rast aber nicht durch City überschreiben
- Uhrzeit mit 00-Angaben
- Neu laden Möglichkeit bei Tod
- Neue Spielstandstruktur:
save.s01 + save.s02 + save.s03 = zdd.sav
- Weitere nicht dokumentierte, kleine Veränderungen
 
Version 1.41 (März 2000)
- "Feilsch-Sperre" wurde korrigiert.
 
Version 1.4 (Februar 2000)
- Auf der Landkarte und im Elfenwald wird man jetzt nicht mehr so oft angegriffen.
- Der Orklager-Bug wurde behoben.
- Bei der Charaktergenerierung kann man jetzt auch das Programm beenden.
- Kaufen-/Stehen-/Feilschenbutton Bug wurde behoben.
 
Version 1.3 (Dezember 1999)
- ACHTUNG: Alte Speicherstände können nicht mehr verwendet werden!
- Die drei wichtigen Gegenstände gehen beim speichern nicht mehr verloren
- Wenn Schild angelegt wird, erscheint nicht mehr im Inventar : "kein Schild!"
- Ritterrüstung hinzugefügt (Havengate)
- ... und andere kleinere Bugs
 
Version 1.2 (Juli 1999)
- Veröffentlichung in dem Spielemagazin Game-Star.
- Truhe im Haus (Phargas)
- Inventar geordnet
- Paladin kann jetzt wieder Helm tragen
- Helm und Schild wird jetzt wieder zur RK addiert
- Tropfen klares Blut lässt sich jetzt verkaufen
- Mit Maras, dem Schmied kann man jetzt wieder reden
- Hartholzharnisch lässt sich jetzt benutzen und verkaufen
 
### CHEATS
 
Auf Landkarte oben links in die Ecke klicken, um einen Cheatcode einzugeben.
 
|Cheatcode|Wirkung |
|---------|---------------------|
|king |10.000 Einheiten Gold|
|god |999 HP |
|archmage |999 MP |
|heal |Vollständige Heilung |
 
Sie sollten die Cheats nicht verwenden, da Sie sich sonst den Spielspaß verderben.
 
### WEITERE VERBESSERUNGSVORSCHLÄGE / BEKANNTE BUGS
 
- orte ausblenden
- problem mit fehlerhaften kampfschirm
- (nicht mehr rekonst) tdok2... linker tisch: du hast xxx besiegt statt etwas gefunden
- lebenspunkte regenerieren, obwohl man maximum hat
If Hp + Zahl - STARThp >= 0 Then Zahl = Hp + Zahl - STARThp
... funktioniert aber nicht (+süa)
- Anstelle von "Verlassen"-Buttons könnte man zu den Ausgänge oder Türen laufen
 
### UMWANDELN ALTER SPIELSTÄNDE
 
Die Spielständestruktur von wurden im "Dual Pack" verändert.
Um alte Spielstände weiterhin nutzen zu können, müssen Sie
diese in das neue Format umwandeln. Gehen Sie dabei wie folgt vor:
 
- Hängen Sie die Daten von save.s01 an die Datei save.s03
- Hängen Sie an die Datei save.s03 die Zeile "###"
- Anschließend hängen Sie noch die Daten von save.s02 an die Datei save.s03
- Save.s01 und Save.s02 können Sie löschen
- Save.s03 wird abgespeichert und umbenannt in ZDD.sav
 
## SCHATTEN ÜBER AYSALIA, VERSION 2.3.1
 
### VERSIONSHISTORIE
 
Version 2.3.1 (Januar 2007)
- "Höhle des Verderbens" wieder spielbar, verbessert
- Schwerer Bug behoben, der das Inventar leerte
- Schwerer Bug im Feentempel behoben
- Schwerer Bug in den Höhlentruhen behoben
- Kleinere Verbesserungen
 
Version 2.3 (September 2006)
- MAN KONNTE DIE INTELLIGENZ NICHT ERHÖHEN, ABER MAN VERLOR PUNKTE
- Man konnte Amazonenkampf überspringen, wenn vorher noch ein Kampf war
- Programm bleibt im Speicher, wenn man es beim Starttitel oder bei
der Charaktergenerierung über X schließt
- Die Projektdateien wurden abgeändert. Sie enthielten falsche
Ordnerverweise, wodurch der Quelltext auf fremden PCs nicht
einsehbar wurde. Orderverweise wurden korrigiert.
- TheEnd.frm und TheEnd.frx wurden versehentlich zum Quelltext des
ersten Teils hinzugefügt. Sie müssen in diesen Teil verschoben werden.
- In einigen FRM-Dateien gab es Formnamen-Konflikte
(Groß- und Kleinschreibung)
- Man kann einen Charakter erstellen, wenn man seine Rasse nicht
ausgewählt hat
- Wenn man den Rassentyp ändert, bekommt werden die Punkte zurückgesetzt,
aber der OK-Button bleibt aktiviert!
- Wenn man beim Tauchen stirbt, bleibt das Tauchfenster offen.
- Objekt wegwerfen, wenn keines im Inventar: Laufzeitfehler
- Wenn man einen Spielstand lädt, der keine Gegenstände besitzt,
bekommt man einen leeren Gegenstand...
- Wenn kein Spielstand vorhanden, kommt Laufzeitfehler
- Wenn man beim Schlafengehen durch eine Vergiftung <= 0 Leben bekommt,
stirbt man nicht sofort (erst bei einem Kampf)
- Wenn man die Landkarte über X schließt, dann bleibt der Debugger offen.
- Nach dem Nachtlager und einem Kampf muss City() abgerufen werden (falls man in eine Stadt gelaufen ist)
- Am Anfang wird kein Wetter angezeigt
- Wenn Anwendung über fremden Anwendungspfad aufgerufen wird, dann werden Spielstände nicht gefunden.
- Drachenkampf-Abspann verbessern
- Man konnte beim Rasten nicht sterben
- Der Drache in der Wüste hatte keine Rasse angezeigt
- OCharakter.frm und StartTitle.frm sollen eine Titelleiste bekommen.
- Manche Formulare können an den Kanten größer gemacht werden... das ist unschön!
- Dialoge (z.B. Objekt benutzen) sollen Modal (nicht in den Hintergrund
verschiebbar) sein!
- Beute und LevelFort soll in der Mitte der Karte erscheinen.
- Kleine Verbesserungen beim Startbildschirm
- Es ist extrem verwirrend, dass man beim z.B. beim Rasten einfach ein Objekt
benutzen kann, das man vorher gar nicht ausgewählt hat (es wird nach dem ListIndex
geschaut) und im Kampf ein Objekt erstmal "rauslegen" muss, um es zu dann benutzen.
Desweiteren gibt es beim "rauslegen" eines Objektes folgenden Fehler:
Wenn man ein Objekt im Kampf auswählt, es dann aber löscht, bleibt es
im Gegenstand-Label des Kampfbildschirmes und kann weiterhin benutzt werden.
Daher gleichen wir das Kampf-Formular sowie das Objekt-Formular an!
- Versionsinformationen einfügen
- Weitere Veränderungen
- Beute: Wenn man ein Item nimmt, soll gleich das nächste Item angewählt werden, sodass man schnell
alles nehmen kann.
- Alle Links, die noch kein Hand-Symbol haben, sollen nun eins bekommen.
- Man soll auch über die ASDW-Tasten steuern können
- City-Funktionen werden abgeändert. Die Position richtet sich nach den Shape-Positionen.
Die Shapes werden genau so hingerichtet, dass der Spieler sie mit den 100er Schritten erreichen kann.
Meldung, wenn kein Schlüssel für Burg vorhanden.
Überall Circles verwenden
Desweieren: Orte, die nicht (mehr) zu erreichen sind, im Form-Load ausblenden
(Visible=False z.B. nach Drachentot usw setzen!)
- Man kann nicht über Rand hinaus gehen
- Neu laden wenn man stirbt
- Schlüsselaltar wird abgespeichert, nicht passende Gegenstände nicht gelöscht
- Neue Spielstandstruktur: OBJEKTE.SAV UND WERTE.SAV IN EINEM!
- Nicht dokumentierte Codeoptimierungen und Form-Verbesserungen
 
Version 2.25 (Januar 2001)
- Kleinigkeiten
 
Version 2.2 (Januar 2001)
- Gegenstände werden nach dem Benutzen/Verkaufen aus dem Inventar entfernt.
 
Version 2.1 (November 2000)
- Eine richtiges Ende wurde hinzugefügt
- Die Landkarte kann nun mini-/maximiert werden
- Stufenansteig funktioniert
- Bei Kampf gegen Abtrünniger ist der Abtrünnige wieder ein Abtrünniger und kein Lindwurm :)
- Fehlende Bezeichnungen wurden eingesetzt
 
Dank an Raphael Biehl für den hervorragenden Bugreport.
 
### WEITERE VERBESSERUNGSVORSCHLÄGE / BEKANNTE BUGS
 
- Cheats einbauen
- Magie einbauen
- charaktergenerierung: Bei nicht genügend punkte -> enabled=false
- Eigenschaften-Form mit aktuelle rüstung und waffe
- Feature: aufträge in Listbox speichern
- nicht rekonstruierbar!! Kampf: Mit angreifen! bei erstem kampf
- nicht rekonstruierbar!! manchmal passiert nix, wenn man auf einen punkt kommt
- WsOase, HöAltar ausgewähltes Item Anzeige
- Hide überall außer bei Landkarten verwenden!
- Key-Shortscuts bei Kämpfen und Rast
- Überall wo man verletzt wird, muss geprüft werden, ob man gestorben ist!
- Magie einbauen ... in Version 3.0
- Anstelle von "Verlassen"-Buttons könnte man zu den Ausgänge oder Türen laufen
 
### UMWANDELN ALTER SPIELSTÄNDE
Die Spielständestruktur von wurden im "Dual Pack" verändert.
Um alte Spielstände weiterhin nutzen zu können, müssen Sie
diese in das neue Format umwandeln. Gehen Sie dabei wie folgt vor:
 
- Hängen Sie Ihrer werte.sav die Zeile " 0 0 0 0 0" an
- Anschließend hängen Sie die Daten von objekte.sav an die Datei werte.sav
- Objekte.sav können Sie löschen
- Werte.sav wird abgespeichert und umbenannt in SüA.sav
 
## QUELLTEXTHINWEISE
 
Veränderungen an der Software müssen vorher mit dem Autor abgesprochen werden.
Das Programm darf in veränderter Form nicht weitergegeben werden. Wenn Sie Fehler
finden oder Verbesserungsvorschläge haben, können Sie uns gerne kontaktieren.
 
Sie benötigen für die Quelltexte Visual Basic 5 oder höher.
 
Beachten Sie jedoch, dass dem Installationspaket nur die Runtime für
Visual Basic 6 beigelegt wurde. Wenn Sie die Anwendungen mit Visual
Basic 5 erstellen, dann benötigt der Entbenutzer die Runtime für
Version 5 und nicht die der Version 6, die dem Setupquelltext beiliegt, ist
und mit-installiert wird.
 
Das Installationsprogramm ist mit InnoSetup entwickelt worden.
Kostenlos erhältlich unter: https://jrsoftware.org/isinfo.php
 
Um die Ressourcen (Bilder, Grafiken) aus den FRX-Dateien zu bekommen, benötigen Sie
ein Tool wie z.B. "FRX Split": http://www.topshareware.com/FRX-Split-download-9464.htm
 
## KONTAKTINFORMATIONEN
 
Entwicklung von "Aysalia" 1999-2007 [Kai Breiling](mailto:kai_breiling@gmx.de)
 
Weiterentwicklung und Erstellung des "Dual Packs" durch [Daniel Marschall](mailto:info@daniel-marschall.de) / [ViaThinkSoft](https://www.viathinksoft.de/)
/trunk/Readme.txt
0,0 → 1,269
 
# AYSALIA: DUAL PACK
**11. Dezember 2018**
 
Vielen Dank, dass Sie Aysalia spielen! Das "Dual Pack" beinhaltet die
Teile "Zeitalter der Dämonen" in Version 1.5.3 und "Schatten über Aysalia"
in Version 2.3.1 inklusive der Quelltexte für Visual Basic 5 und höher.
 
"Aysalia" ist der neue Name der vor kurzem umbenannten "Dragon Quest"-Reihe
von Mystix Development. Dem "Dual Pack" liegen zusätzlich die beiden sehr alten
Versionen von Dragon Quest bei, die nun in "Aysalia DOS" umbenannt wurden.
Die Versionen enthalten keinen Quelltext und liegen nur aus "nostalgischen"
Gründen bei.
 
Aysalia DOS I und Aysalia DOS II können ab Dezember 2018
mit allen Windows Versionen (auch 64 Bit) gespielt werden.
Hierfür wurde DOSBox sowie ein Launcher in das Spielepaket inkludiert.
 
Wir wünschen Ihnen viel Spaß beim Spielen. Wenn Sie Verbesserungsvorschläge
haben, können Sie diese uns gerne zukommen lassen!
 
## DAS ZEITALTER DER DÄMONEN, VERSION 1.5.3
 
### VERSIONSHISTORIE
 
Version 1.5.3 (Juni 2007)
- Orklager: Weiterer kleiner Bug behoben
- Orklager und Herberge: Goldanzeige wurde an einer Stelle nicht aktualisiert
 
Version 1.5.2 (Juni 2007)
- Schwerer Bug im Lager der Orks behoben
- Globaler Dialogfehler wurde behoben
 
Version 1.5.1 (Januar 2007)
- Kleinere Verbesserungen
 
Version 1.5 (September 2006)
- KAMPFBILDSCHIRM AKTUALISIERT SICH ERST NACH DEM ERSTEN SCHLAG
- Wenn man ohne Items abspeichert, hat man nach dem Laden ein leeres Item
- Charakter: Wenn man die Rasse neu auswählt, bleibt Klasse noch bestehen
- Wenn man durch Wundenheilen stirbt, beendet das Programm sofort
- Rastensymbol wird beim Laden nicht angezeigt
Darauf folgender Cheat wird unterbunden: Beim Rasten kann man nicht abspeichern
(Jemand könnte dadurch seine Wunden mehrmals heilen)
- Wenn Anwendung über fremden Anwendungspfad aufgerufen wird, dann werden
Spielstände nicht gefunden.
- Charakterfenster konnte an den Kanten groß gemacht werden
- Man konnte (sehr selten) gleichzeitg sterben und gewinnen bei einem Kampf
- Kalender in Manager reinmachen
- Versionsinformationen aktualisieren
- "Spiel laden" ausblenden, wenn kein Spiel vorhanden
- Schleichwerbung beim Beenden entfernt
- Hexe ist in Havengate nach Verschwinden noch ein wenig sichtbar
- Modale Fenster (bleiben im Vordergrund) verwenden
- Circles verwenden
- City soll beim Laden angewandt werden
- Rast: Objekt benutzen wird deaktiviert, wenn es doch gar nicht ging
... Das selbe mit Dorfältesten
- Neuen Versionsinfo-Dialog
- Manager soll immer ganz expandiert sein
- Man kann nicht über Rand hinweg gehen
- Man kann nun auch über ASDW Steuern
- Nach Rast/Angriff wird City aufgerufen
Rast aber nicht durch City überschreiben
- Uhrzeit mit 00-Angaben
- Neu laden Möglichkeit bei Tod
- Neue Spielstandstruktur:
save.s01 + save.s02 + save.s03 = zdd.sav
- Weitere nicht dokumentierte, kleine Veränderungen
 
Version 1.41 (März 2000)
- "Feilsch-Sperre" wurde korrigiert.
 
Version 1.4 (Februar 2000)
- Auf der Landkarte und im Elfenwald wird man jetzt nicht mehr so oft angegriffen.
- Der Orklager-Bug wurde behoben.
- Bei der Charaktergenerierung kann man jetzt auch das Programm beenden.
- Kaufen-/Stehen-/Feilschenbutton Bug wurde behoben.
 
Version 1.3 (Dezember 1999)
- ACHTUNG: Alte Speicherstände können nicht mehr verwendet werden!
- Die drei wichtigen Gegenstände gehen beim speichern nicht mehr verloren
- Wenn Schild angelegt wird, erscheint nicht mehr im Inventar : "kein Schild!"
- Ritterrüstung hinzugefügt (Havengate)
- ... und andere kleinere Bugs
 
Version 1.2 (Juli 1999)
- Veröffentlichung in dem Spielemagazin Game-Star.
- Truhe im Haus (Phargas)
- Inventar geordnet
- Paladin kann jetzt wieder Helm tragen
- Helm und Schild wird jetzt wieder zur RK addiert
- Tropfen klares Blut lässt sich jetzt verkaufen
- Mit Maras, dem Schmied kann man jetzt wieder reden
- Hartholzharnisch lässt sich jetzt benutzen und verkaufen
 
### CHEATS
 
Auf Landkarte oben links in die Ecke klicken, um einen Cheatcode einzugeben.
 
|Cheatcode|Wirkung |
|---------|---------------------|
|king |10.000 Einheiten Gold|
|god |999 HP |
|archmage |999 MP |
|heal |Vollständige Heilung |
 
Sie sollten die Cheats nicht verwenden, da Sie sich sonst den Spielspaß verderben.
 
### WEITERE VERBESSERUNGSVORSCHLÄGE / BEKANNTE BUGS
 
- orte ausblenden
- problem mit fehlerhaften kampfschirm
- (nicht mehr rekonst) tdok2... linker tisch: du hast xxx besiegt statt etwas gefunden
- lebenspunkte regenerieren, obwohl man maximum hat
If Hp + Zahl - STARThp >= 0 Then Zahl = Hp + Zahl - STARThp
... funktioniert aber nicht (+süa)
- Anstelle von "Verlassen"-Buttons könnte man zu den Ausgänge oder Türen laufen
 
### UMWANDELN ALTER SPIELSTÄNDE
 
Die Spielständestruktur von wurden im "Dual Pack" verändert.
Um alte Spielstände weiterhin nutzen zu können, müssen Sie
diese in das neue Format umwandeln. Gehen Sie dabei wie folgt vor:
 
- Hängen Sie die Daten von save.s01 an die Datei save.s03
- Hängen Sie an die Datei save.s03 die Zeile "###"
- Anschließend hängen Sie noch die Daten von save.s02 an die Datei save.s03
- Save.s01 und Save.s02 können Sie löschen
- Save.s03 wird abgespeichert und umbenannt in ZDD.sav
 
## SCHATTEN ÜBER AYSALIA, VERSION 2.3.1
 
### VERSIONSHISTORIE
 
Version 2.3.1 (Januar 2007)
- "Höhle des Verderbens" wieder spielbar, verbessert
- Schwerer Bug behoben, der das Inventar leerte
- Schwerer Bug im Feentempel behoben
- Schwerer Bug in den Höhlentruhen behoben
- Kleinere Verbesserungen
 
Version 2.3 (September 2006)
- MAN KONNTE DIE INTELLIGENZ NICHT ERHÖHEN, ABER MAN VERLOR PUNKTE
- Man konnte Amazonenkampf überspringen, wenn vorher noch ein Kampf war
- Programm bleibt im Speicher, wenn man es beim Starttitel oder bei
der Charaktergenerierung über X schließt
- Die Projektdateien wurden abgeändert. Sie enthielten falsche
Ordnerverweise, wodurch der Quelltext auf fremden PCs nicht
einsehbar wurde. Orderverweise wurden korrigiert.
- TheEnd.frm und TheEnd.frx wurden versehentlich zum Quelltext des
ersten Teils hinzugefügt. Sie müssen in diesen Teil verschoben werden.
- In einigen FRM-Dateien gab es Formnamen-Konflikte
(Groß- und Kleinschreibung)
- Man kann einen Charakter erstellen, wenn man seine Rasse nicht
ausgewählt hat
- Wenn man den Rassentyp ändert, bekommt werden die Punkte zurückgesetzt,
aber der OK-Button bleibt aktiviert!
- Wenn man beim Tauchen stirbt, bleibt das Tauchfenster offen.
- Objekt wegwerfen, wenn keines im Inventar: Laufzeitfehler
- Wenn man einen Spielstand lädt, der keine Gegenstände besitzt,
bekommt man einen leeren Gegenstand...
- Wenn kein Spielstand vorhanden, kommt Laufzeitfehler
- Wenn man beim Schlafengehen durch eine Vergiftung <= 0 Leben bekommt,
stirbt man nicht sofort (erst bei einem Kampf)
- Wenn man die Landkarte über X schließt, dann bleibt der Debugger offen.
- Nach dem Nachtlager und einem Kampf muss City() abgerufen werden (falls man in eine Stadt gelaufen ist)
- Am Anfang wird kein Wetter angezeigt
- Wenn Anwendung über fremden Anwendungspfad aufgerufen wird, dann werden Spielstände nicht gefunden.
- Drachenkampf-Abspann verbessern
- Man konnte beim Rasten nicht sterben
- Der Drache in der Wüste hatte keine Rasse angezeigt
- OCharakter.frm und StartTitle.frm sollen eine Titelleiste bekommen.
- Manche Formulare können an den Kanten größer gemacht werden... das ist unschön!
- Dialoge (z.B. Objekt benutzen) sollen Modal (nicht in den Hintergrund
verschiebbar) sein!
- Beute und LevelFort soll in der Mitte der Karte erscheinen.
- Kleine Verbesserungen beim Startbildschirm
- Es ist extrem verwirrend, dass man beim z.B. beim Rasten einfach ein Objekt
benutzen kann, das man vorher gar nicht ausgewählt hat (es wird nach dem ListIndex
geschaut) und im Kampf ein Objekt erstmal "rauslegen" muss, um es zu dann benutzen.
Desweiteren gibt es beim "rauslegen" eines Objektes folgenden Fehler:
Wenn man ein Objekt im Kampf auswählt, es dann aber löscht, bleibt es
im Gegenstand-Label des Kampfbildschirmes und kann weiterhin benutzt werden.
Daher gleichen wir das Kampf-Formular sowie das Objekt-Formular an!
- Versionsinformationen einfügen
- Weitere Veränderungen
- Beute: Wenn man ein Item nimmt, soll gleich das nächste Item angewählt werden, sodass man schnell
alles nehmen kann.
- Alle Links, die noch kein Hand-Symbol haben, sollen nun eins bekommen.
- Man soll auch über die ASDW-Tasten steuern können
- City-Funktionen werden abgeändert. Die Position richtet sich nach den Shape-Positionen.
Die Shapes werden genau so hingerichtet, dass der Spieler sie mit den 100er Schritten erreichen kann.
Meldung, wenn kein Schlüssel für Burg vorhanden.
Überall Circles verwenden
Desweieren: Orte, die nicht (mehr) zu erreichen sind, im Form-Load ausblenden
(Visible=False z.B. nach Drachentot usw setzen!)
- Man kann nicht über Rand hinaus gehen
- Neu laden wenn man stirbt
- Schlüsselaltar wird abgespeichert, nicht passende Gegenstände nicht gelöscht
- Neue Spielstandstruktur: OBJEKTE.SAV UND WERTE.SAV IN EINEM!
- Nicht dokumentierte Codeoptimierungen und Form-Verbesserungen
 
Version 2.25 (Januar 2001)
- Kleinigkeiten
 
Version 2.2 (Januar 2001)
- Gegenstände werden nach dem Benutzen/Verkaufen aus dem Inventar entfernt.
 
Version 2.1 (November 2000)
- Eine richtiges Ende wurde hinzugefügt
- Die Landkarte kann nun mini-/maximiert werden
- Stufenansteig funktioniert
- Bei Kampf gegen Abtrünniger ist der Abtrünnige wieder ein Abtrünniger und kein Lindwurm :)
- Fehlende Bezeichnungen wurden eingesetzt
 
Dank an Raphael Biehl für den hervorragenden Bugreport.
 
### WEITERE VERBESSERUNGSVORSCHLÄGE / BEKANNTE BUGS
 
- Cheats einbauen
- Magie einbauen
- charaktergenerierung: Bei nicht genügend punkte -> enabled=false
- Eigenschaften-Form mit aktuelle rüstung und waffe
- Feature: aufträge in Listbox speichern
- nicht rekonstruierbar!! Kampf: Mit angreifen! bei erstem kampf
- nicht rekonstruierbar!! manchmal passiert nix, wenn man auf einen punkt kommt
- WsOase, HöAltar ausgewähltes Item Anzeige
- Hide überall außer bei Landkarten verwenden!
- Key-Shortscuts bei Kämpfen und Rast
- Überall wo man verletzt wird, muss geprüft werden, ob man gestorben ist!
- Magie einbauen ... in Version 3.0
- Anstelle von "Verlassen"-Buttons könnte man zu den Ausgänge oder Türen laufen
 
### UMWANDELN ALTER SPIELSTÄNDE
Die Spielständestruktur von wurden im "Dual Pack" verändert.
Um alte Spielstände weiterhin nutzen zu können, müssen Sie
diese in das neue Format umwandeln. Gehen Sie dabei wie folgt vor:
 
- Hängen Sie Ihrer werte.sav die Zeile " 0 0 0 0 0" an
- Anschließend hängen Sie die Daten von objekte.sav an die Datei werte.sav
- Objekte.sav können Sie löschen
- Werte.sav wird abgespeichert und umbenannt in SüA.sav
 
## QUELLTEXTHINWEISE
 
Veränderungen an der Software müssen vorher mit dem Autor abgesprochen werden.
Das Programm darf in veränderter Form nicht weitergegeben werden. Wenn Sie Fehler
finden oder Verbesserungsvorschläge haben, können Sie uns gerne kontaktieren.
 
Sie benötigen für die Quelltexte Visual Basic 5 oder höher.
 
Beachten Sie jedoch, dass dem Installationspaket nur die Runtime für
Visual Basic 6 beigelegt wurde. Wenn Sie die Anwendungen mit Visual
Basic 5 erstellen, dann benötigt der Entbenutzer die Runtime für
Version 5 und nicht die der Version 6, die dem Setupquelltext beiliegt, ist
und mit-installiert wird.
 
Das Installationsprogramm ist mit InnoSetup entwickelt worden.
Kostenlos erhältlich unter: https://jrsoftware.org/isinfo.php
 
Um die Ressourcen (Bilder, Grafiken) aus den FRX-Dateien zu bekommen, benötigen Sie
ein Tool wie z.B. "FRX Split": http://www.topshareware.com/FRX-Split-download-9464.htm
 
## KONTAKTINFORMATIONEN
 
Entwicklung von "Aysalia" 1999-2007 [Kai Breiling](mailto:kai_breiling@gmx.de)
 
Weiterentwicklung und Erstellung des "Dual Packs" durch [Daniel Marschall](mailto:info@daniel-marschall.de) / [ViaThinkSoft](https://www.viathinksoft.de/)