mirror of
https://github.com/mauiaaron/apple2.git
synced 2024-12-24 02:33:19 +00:00
Remove ancient text files
This commit is contained in:
parent
1bf328795a
commit
c22ad4c1e9
14
ASM
14
ASM
@ -1,14 +0,0 @@
|
||||
Begin3
|
||||
Title: Apple //ix
|
||||
Author: alexb@csd.uu.se (Alexander Jean-Claude Bottema)
|
||||
sl14@cornell.edu (Stephen Lee)
|
||||
michael@talamasca.ocis.net (Michael Deutschmann)
|
||||
ASC _at_ BITR0T (Aaron Culliney)
|
||||
Version: 0.8
|
||||
Entered-date: 2014-02-27
|
||||
Description: Apple //e emulator for POSIX systems
|
||||
Keywords: emulator, linux, posix
|
||||
Uploader: ASC _at_ BITR0T (Aaron Culliney)
|
||||
Primary-site: https://github.com/mauiaaron/apple2
|
||||
Platform: Linux i386
|
||||
End
|
277
NEWS
277
NEWS
@ -1,277 +0,0 @@
|
||||
Changed in 0.8:
|
||||
|
||||
Upgraded to modern-ish times...X11 now uses 32bit color!
|
||||
|
||||
Audio is now OpenAL instead of raw PC speaker access. We are indebted to
|
||||
AppleWin for much of the sound code including preliminary suport for
|
||||
Mockingboard emulation.
|
||||
|
||||
Bugfix and simplification for PC Joystick. Joystick emulation is now
|
||||
bug-for-bug compatible with original Apple ][. Better calibration routines and
|
||||
better "feel" for emulation of joystick on keypad/arrow-keys.
|
||||
|
||||
Better emulation fidelity overall by counting 6502 CPU cycles. This was
|
||||
necessary for proper output of stream digital audio in OpenAL.
|
||||
|
||||
Significant interface and preferences changes and simplifications.
|
||||
|
||||
Changed in 0.7.4:
|
||||
|
||||
Many bugs have been fixed, including a calling-convention mistake that
|
||||
could cause unpredictable behavior on reboot. Potential buffer overflows
|
||||
have also been corrected.
|
||||
|
||||
Some key assignments have changed. Joystick buttons are now Left-Alt,
|
||||
Right-Alt & Insert. Delete, formerly a joystick button, now produces the
|
||||
DEL ascii code. Reboot is now Break (Ctrl-Pause), and Reset is now
|
||||
Ctrl-Printscreen. (This is reversed from 0.7.3)
|
||||
|
||||
Some significant optimizations were also made in the assembly code. The
|
||||
large memory-access indirection table is now compressed using virtual
|
||||
memory tricks, to slightly reduce cache load and swap requirements.
|
||||
|
||||
Also many cleanups have been made in the internal code. This is
|
||||
user-invisible, and far from complete. When done, it will become easier to
|
||||
add new interface cards, video drivers, and other stuff, as well as port
|
||||
to other unixes.
|
||||
|
||||
Changed in 0.7.3:
|
||||
|
||||
More makefile/configuration bugs were fixed.
|
||||
|
||||
The `Mystery House' sample disk, which was accidently omitted from my
|
||||
distributions, has been reinstated. Also, I've added a new sample
|
||||
disk image - William Night's emulator performance tests.
|
||||
|
||||
Changed in 0.7.2:
|
||||
|
||||
The configure script will now react to absence of X Windows or SVGAlib by
|
||||
only building an emulator for the remaining graphics system.
|
||||
|
||||
A makefile bug that caused xapple-80col not to depend on
|
||||
all it's source files was fixed. Also, the alternate character set is now
|
||||
correctly restored on exit from the <F10> menu.
|
||||
|
||||
Some major cleanups were done to the assembly-language files. This is
|
||||
invisible to the user, but should make further enhancement a little saner.
|
||||
|
||||
The banners on the source code have been synchronized.
|
||||
|
||||
Changed in 0.7.1:
|
||||
|
||||
1. Fixed a makefile bug that caused xapple-80col to be miscompiled.
|
||||
|
||||
2. Put sample .apple2 (config file) back in. It was accidentally excluded
|
||||
from 0.7.
|
||||
|
||||
3. The SVGA emulator is again named `apple2', not `sapple2'.
|
||||
|
||||
Changed in 0.7: (Sep 98)
|
||||
|
||||
Version 0.7 - Michael Deutschmann <michael@talamasca.wkpowerlink.com>
|
||||
|
||||
1. Replaced "character.rom" and Aaron's MouseText table in misc.c with
|
||||
a single file, font.txt, which is converted into a packed c table by a
|
||||
generator utility.
|
||||
|
||||
2. Overhauled Makefile system. We now use GNU autoconf/automake.
|
||||
|
||||
Note: This hasn't been tested extensively. Also, there are a few automake
|
||||
tricks I haven't bothered with - I added them to TODO.
|
||||
|
||||
Changed is 0.06: (Aug 98)
|
||||
-------------------------
|
||||
|
||||
Version 0.06 - Aaron Culliney <chernabog@baldmountain.bbn.com,
|
||||
aculline@bbn.com>
|
||||
My code changes have nothing to do with my employer, GTE
|
||||
Internetworking, BBN Technologies. They were written completely on my
|
||||
own time and on my own machine.
|
||||
|
||||
1) Separated SVGAlib specific stuff into svideo.c. Added X Windows
|
||||
frontend support in xvideo.c. The X frontend works by doing an
|
||||
X(Shm)PutImage() of the emulator's framebuffer around 30 times a
|
||||
second. This saves us from changing the internal video routines (they
|
||||
assume direct access to an 8bit framebuffer), and it's a heck of a lot
|
||||
faster than trying to do an XPutPixels() on each change. The X
|
||||
frontend only currently works for 8bit displays. Make sure you run it
|
||||
using a mode (specified in XF86Config) that has a bit depth of 8 (not
|
||||
16 or greater).
|
||||
|
||||
2) We now build three versions of the emulator: svideo_320x200,
|
||||
xvideo_320x200, xvideo_640x400. The last one really isn't 640x400 for
|
||||
optimization reasons (568x384) although it probably should be...
|
||||
Sorry, but there's no support for switching resolutions on the fly, we
|
||||
ifdef it in with a new define "_640x400".
|
||||
|
||||
3) Provided 80column support for the 640x400 X version. Now you
|
||||
can PR#3 (running as //e) and get 80 columns. This change required
|
||||
a resolution of at least 560 horizontal pixels (Apple //e specs).
|
||||
|
||||
4) Both SVGA and X versions need to be suid root (for PC speaker port
|
||||
access and SVGA stuff). But both versions now give up root access
|
||||
during video initialization. This means that disk access is now done
|
||||
as *you* (not root) even when g(un)zipping images for loading.
|
||||
Before images would be g(un)zipped as root. There was something about
|
||||
this that made me uneasy... Now it's up to you to give the
|
||||
appropriate user/group permissions to your disk image repository.
|
||||
I make no claim about the security fitness of this emulator. See the
|
||||
other READMEs and files for more information/disclaimers.
|
||||
|
||||
5) Did a 180 on the disk image selection menu. <RET> now tries
|
||||
to open disk images as read-only, 'W' for both read-write.
|
||||
Of course this will only work if you have the correct
|
||||
file permissions set (see 5 above). I find this more convenient b/c
|
||||
I play alot of the arcade games where you don't ever save game state.
|
||||
|
||||
6) Removed the disk "Information" submenu. I never use it. Do you?
|
||||
|
||||
|
||||
|
||||
Changes in 0.05: (Feb 98)
|
||||
-------------------------
|
||||
|
||||
Version 0.05 - Aaron Culliney <chernabog@baldmountain.bbn.com,
|
||||
aculline@bbn.com>
|
||||
My code changes have nothing to do with my employer, GTE
|
||||
Internetworking, BBN Technologies. They were written completely on my
|
||||
own time and on my own machine.
|
||||
|
||||
1) Added support for 65c02 instructions. The programs that
|
||||
I've tested which use them work just fine.
|
||||
|
||||
2) Added support for 128k //e EXCEPT 80 column mode, B/W
|
||||
DHIRES mode, and MouseText character set. The two unimplemented video
|
||||
modes require major changes to current video routines, thus a next
|
||||
version... New supported images are copy ii+ 9.0, diagnostics //e,
|
||||
marble madness, airheart, legend of blacksilver, pirates!...
|
||||
|
||||
3) Fixed some old problems with HIRES colors being off around
|
||||
byte edges in interpolated/color modes. but we still give you the
|
||||
option to use these "lazy" modes since emulation is faster with them
|
||||
enabled...
|
||||
|
||||
4) You now have several new options in your .apple2 file. I
|
||||
suggest either copying the distributed one over your existing one, or
|
||||
merging the changes in.
|
||||
|
||||
5) Fixed some potential security bugs where a user could
|
||||
traverse into sensitive directories by using the disk selection
|
||||
interface. The current emulator version is not guaranteed to be
|
||||
foolproof since it has to be installed suid root for normal users to
|
||||
use it. Sysadmins should take extra precautions as they see fit.
|
||||
|
||||
6) Added and deprecated some options in the debugger interface
|
||||
to support the new 128k //e. see the DEBUGGER file for more info.
|
||||
DEBUGGER support is not default compiled in.
|
||||
|
||||
7) added some extra options to the .config file that you build
|
||||
into the emulator. One big one: a way to set the max delay count in
|
||||
the emulator to bring Apple ][ emulation rates down to normal on high
|
||||
end pentiums!... 100 is the default delay rate (which works just fine
|
||||
for low end 386-Pentium100's).
|
||||
|
||||
|
||||
|
||||
Changes in 0.04: (June 97)
|
||||
-----------------------------
|
||||
|
||||
Version 0.04 - Aaron Culliney <chernabog@baldmountain.bbn.com,
|
||||
aculline@bbn.com>
|
||||
My code changes have nothing to do with my employer, BBN. They were
|
||||
written completely on my own time and on my own machine.
|
||||
|
||||
1) Added PC Joystick Support. You must have the joystick
|
||||
kernel loadable module 0.8.0 correctly configured and installed to use
|
||||
this feature.
|
||||
|
||||
2) Changed the way the emulator handles the language card
|
||||
memory space. We no longer patch rom/ram on lc_c08x functions. I did
|
||||
this because under certain conditions the previous versions of the
|
||||
emulator would run a lot slower. Now you may notice the emulator
|
||||
running a tad slower in general (because of the range checking), but
|
||||
Ultima 4 and Arctic Fox (formerly unplayable) should now be just fine.
|
||||
|
||||
3) Changed the way the .apple2 preferences file is handled. I
|
||||
Did this mainly to support saving of PC Joystick parameters, and I'd
|
||||
rather let flex do the dirty work of regexp matching.
|
||||
|
||||
4) Changed the disk interface and main interface menu. In the
|
||||
disk interface, you can now see which disk is in the drive, and with
|
||||
what permission <rw1> for read/write drive 1. You can eject this disk
|
||||
or force it to be write-protected. In the main menu screen, you have
|
||||
more parameters to play around with (associated with the pc joystick
|
||||
add-on).
|
||||
|
||||
5) Disk image files are now opened with user privileges, not
|
||||
root privileges, even though the program is suid root. gzip'ed disks
|
||||
are still handled as root, but we no longer call the unsecure system()
|
||||
to do the dirty work. Instead we fork and directly exec "/bin/gzip".
|
||||
|
||||
5) General bug fixes and enhancements.
|
||||
|
||||
|
||||
Changes in 0.03: (Jan-Feb 97)
|
||||
-----------------------------
|
||||
|
||||
Version 0.03 - Aaron Culliney <chernabog@baldmountain.bbn.com>
|
||||
My code changes have nothing to do with my employer, BBN. They were
|
||||
written completely on my own time and on my own machine.
|
||||
|
||||
1) Fixed language card initialization bug.
|
||||
|
||||
2) Improved colors. Seems that Greens and purples we're
|
||||
switched around. The colors are still slightly off, and color
|
||||
interpolation seems screwy (TODO).
|
||||
|
||||
3) Added apple II debugger interface. This requires flex
|
||||
version 2.5.2. (You can compile this into the program or leave it
|
||||
out.) Type F7 to get into the debugger and type a '?' to see a
|
||||
command summary. Check out the file DEBUGGER for more info.
|
||||
|
||||
4) Added support for standard 232960 .nib disks.
|
||||
|
||||
5) Added a more intuitive interface to selecting disks. You
|
||||
can now traverse forward and backward in a directory hierarchy with
|
||||
the base directory set by your .apple2 config file.
|
||||
|
||||
6) changed keymap: shift-p = @ and shift-N = ^, just like my
|
||||
old II+ keyboard.
|
||||
|
||||
Changes in 0.02: (8 Dec 1995)
|
||||
-----------------------------
|
||||
|
||||
* Ctrl-C will not kill the emulator with newer SVGAlib. Please
|
||||
use SVGAlib > 1.2.9 for best results.
|
||||
|
||||
* Rudimentory REPT key handling. It's too fast though.
|
||||
|
||||
* The assembler files now compiles under ELF.
|
||||
|
||||
* Not every SVGA card can do page-flipping. The emulator now
|
||||
checks for this and fall back to VGA if it can't.
|
||||
|
||||
* Keymap has changed a bit. Backspace and ']' is now <-, '[' is
|
||||
REPT.
|
||||
|
||||
* Disk extension changed to the more common .dsk (and a2d.info to
|
||||
dsk.info).
|
||||
|
||||
|
||||
Changes in 0.01: (9 Oct 1994)
|
||||
-----------------------------
|
||||
|
||||
* Standard VGA support with some performance degradation.
|
||||
(When page flipping occurs, 64K memory banks are swapped;
|
||||
hence the performance degradation.)
|
||||
|
||||
* -vga flag switch added, e.g. "apple2 -vga"; forces standard
|
||||
VGA detection.
|
||||
|
||||
* (Trident) TVGA8900 page flipping bug fixed.
|
||||
|
||||
* File names may now contain any character codes. (The previous
|
||||
version had some problems with compressing/uncompressing file
|
||||
names with extraordinary characters.)
|
||||
|
||||
* Diskette selection retains last cursor position.
|
58
PROBLEMS
58
PROBLEMS
@ -1,58 +0,0 @@
|
||||
Known issues with the emulator:
|
||||
|
||||
Emulation Fidelity:
|
||||
|
||||
- Disk emulation. The emulator is not very realistic. It handles almost
|
||||
all non-copyprotected disk access okay, but copyprotected or diagnostic
|
||||
programs may be confused by our drive, which magically spins at precisely
|
||||
the optimal speed. (see Specific Programs, below).
|
||||
|
||||
- Medium Resolution graphics. This is a rarely used //e mode that is to
|
||||
Low-Res what 80 Column text is to 40 column text. We don't support it as
|
||||
yet, although it should be relatively simple.
|
||||
|
||||
- We don't emulate the //e's vertical blanking interval detection feature.
|
||||
This is on the TODO list.
|
||||
|
||||
Graphics:
|
||||
|
||||
- Composite graphics artifacts are not emulated. This is on the TODO list.
|
||||
|
||||
- B/W color setting does not apply to lores or double hires. This
|
||||
generally is not an issue in practice though, as it's really only needed
|
||||
to avoid color fringing in b/w hires images.
|
||||
|
||||
- Double Hires mode is always 140x192 color. Some applications use it as
|
||||
a 560x192 b/w display however. Note that most applications indicate
|
||||
which mode they want using the high bit of the dhires data bytes, so it
|
||||
wouldn't need to be a preferences setting.
|
||||
|
||||
- If an 80-column mode is selected in the low-res emulator, nothing will
|
||||
be written to the display -- the image from the last video mode will
|
||||
remain on the screen. If a menu is brought up it will `stick'. This may
|
||||
make people think the emulator crashed, although it will recover if the
|
||||
application returns to 40-column mode.
|
||||
|
||||
Keyboard:
|
||||
|
||||
- Presently, the Backspace key is interpreted as Left-Arrow (Code 0x88).
|
||||
It could be argued that it should be interpreted as Delete (Code 0xff)
|
||||
instead. Real Apples had no seperate Backspace key, but the //e's Delete
|
||||
key was in an analogous position to the PC's Backspace). The PC
|
||||
keyboard's Delete is assigned to 0xff (in //e mode).
|
||||
|
||||
Specific Programs:
|
||||
|
||||
- Some programs (Computist's Nibbler, Sword of Kadash Master copy for
|
||||
example) lock up. It appears (in debugger) that they are reading the disk
|
||||
with the motor off. Perhaps they pulsed the real Apple's drive motor to make
|
||||
it turn slower?
|
||||
|
||||
- ProDOS will refuse to format disks, claiming that the disk is too slow.
|
||||
|
||||
- ``Alternate Reality: The City'' seems to get jammed, rapidly changing
|
||||
the video mode. I'm not sure if this is a real failure, or just a special
|
||||
effect that takes longer than I'm willing to wait to finish (mode switches
|
||||
would be much faster on a real Apple.) I can get into the program
|
||||
with some nontrivial debugger manipulation to `short out' the offending loops.
|
||||
|
408
README
408
README
@ -1,408 +0,0 @@
|
||||
**************************************************************************
|
||||
* Apple II+ Emulator version 0.7 for Linux *
|
||||
* *
|
||||
* Original Author: Alexander Jean-Claude Bottema *
|
||||
* Email : d91a1bo@meryl.csd.uu.se *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the Free Software *
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
|
||||
* *
|
||||
* Modified: Dec 8 1995 by Stephen Lee <sl14@cornell.edu> *
|
||||
* Modified: Jan 97 by Aaron Culliney <aculline@bbn.com> *
|
||||
* <chernabog@baldmountain.bbn.com> *
|
||||
* Modified: Jun 97 by Aaron Culliney <aculline@bbn.com> *
|
||||
* <chernabog@baldmountain.bbn.com> *
|
||||
* Modified: Feb 98 by Aaron Culliney <aculline@bbn.com> *
|
||||
* <chernabog@baldmountain.bbn.com> *
|
||||
* Modified: Aug 98 by Aaron Culliney <aculline@bbn.com> *
|
||||
* <chernabog@baldmountain.bbn.com> *
|
||||
* *
|
||||
* Modified: Sep 98, Dec 98, Jan 98, Jun 99 *
|
||||
* by Michael Deutschmann *
|
||||
* <michael@talamasca.wkpowerlink.com>*
|
||||
* *
|
||||
**************************************************************************
|
||||
|
||||
NOTE:
|
||||
This is basically the original README. See the CHANGES file
|
||||
first for information on this specific version of the emulator. Then
|
||||
read section 0 (installation) in this file for cookbook compilation /
|
||||
installation instructions. Other information in this file may be
|
||||
outdated, so read the manpage for up-to-date runtime instructions.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
0. Installation issues (briefly)
|
||||
1. Why did I make an Apple II+ Emulator when there are so many available?
|
||||
2. System Files
|
||||
3. Keyboard & keys
|
||||
4. Diskette database
|
||||
5. Future plans
|
||||
6. Status of the current emulator
|
||||
7. Can you port this to DOS?
|
||||
8. Availability
|
||||
9. Known problems
|
||||
10. Changes since the last
|
||||
11. Final words
|
||||
|
||||
|
||||
0. Installation issues (briefly)
|
||||
================================
|
||||
|
||||
Requirements: SVGA lib version 1.2.9 (or later, see 9.) Tested under 1.2.13.
|
||||
Kernel 2.0.X. Tested under 2.0.36pre12.
|
||||
libc 4.4.4 (or later). Tested under glibc-2.0.6
|
||||
joystick 0.8.0 kernel module for PC Joystick support.
|
||||
flex 2.5.2 (for compiling lex files)
|
||||
|
||||
|
||||
1) Unpack this distribution in a temporary directory.
|
||||
|
||||
2) Run "configure" for a normal build, or "configure --enable-debugger"
|
||||
to add debugger support. (Other GNU autoconf options, such as --prefix,
|
||||
may of course be used.) You may provide optimizations in the enviroment
|
||||
variable CFLAGS.
|
||||
|
||||
3) Type "make" to make the program. As root, type "make install" to
|
||||
install the programs in $(BINDIR) and the man page in $(MANDIR), (both
|
||||
configurable at the configure line). The sysadmin should enable the
|
||||
setuser bit on "apple2" in order for it to use the VGA. Enabling setuser
|
||||
on "xapple2" will allow use of the PC speaker, but is not essential.
|
||||
|
||||
4) Copy the .apple2 configuration file to your home directory, and
|
||||
read the manpage that was installed for further information on how to
|
||||
configure this file. You can configure most of the settings from
|
||||
within the emulator, (F10 for the menu screen), but you need the
|
||||
system path correctly set to point to the rom files before you start
|
||||
the emulator. The emulator won't run without the correct rom files
|
||||
(see the manpage).
|
||||
|
||||
5) After you're done configuring, type "xapple2" to run the
|
||||
emulator under X or "apple2" to run using svgalib. There are two X11
|
||||
versions for different resolutions. Once running, F1 selects disk
|
||||
drive #1, F2 selects disk drive #2, F10 gives you the main menu of
|
||||
runtime parameters, and F5 shows you the keyboard lay out.
|
||||
|
||||
|
||||
1. Why did I make an Apple II+ Emulator when there are so many available?
|
||||
=========================================================================
|
||||
|
||||
For three reasons. The first is that there are no Apple II emulators
|
||||
especially written for Linux; hence they do not take advantages that
|
||||
are commonly provided in Linux systems, e.g. the SVGA library
|
||||
distribution. However, there is an Apple II emulator for X-Windows
|
||||
that easily can be compiled on most UN*X architectures, but the major
|
||||
disadvantage is slow emulation. You cannot obtain a fast emulator by
|
||||
writing it in C, despite the elegant optimizations provided by GNU-C,
|
||||
but of course it becomes more portable if you do that.
|
||||
|
||||
By contrast, this Apple II emulator is partly written in 386 (AT&T)
|
||||
assembler; partly in C. Only those issues that were not time critical
|
||||
were written in C. Especially the CPU emulation was written in
|
||||
optimized assembler to achieve optimum performance. The emulator
|
||||
approximately runs twice as fast as an ordinary Apple II+ computer if
|
||||
it is running on a 486 DX-50.
|
||||
|
||||
The second reason is that there is no Apple II emulator which is 100%
|
||||
usable. Either it is too slow or it is simply too fast (= there is no
|
||||
option to trim the speed of the emulator). Furthermore, many
|
||||
implementors happily avoid implementing mixed text/graphics in high
|
||||
resolution mode; mostly because it complicates the programming. I have
|
||||
never seen an Apple II+ emulator that is entirely complete. I think
|
||||
most emulators fail on implementing the undocumented 6502 instructions
|
||||
(those that are listed as ???), hence some games (or applications) may
|
||||
not work despite they should.
|
||||
|
||||
The third reason is that no emulator support an easy way to switch
|
||||
diskettes given a database of diskettes. With this emulator you can
|
||||
easily switch diskettes through an intuitive interface. You can also
|
||||
add additional information for each diskette (in your database), e.g.
|
||||
which keys to use for a particular game program. The information is
|
||||
kept in a plain text file that can be edited with an ordinary text
|
||||
editor, preferbly GNU-Emacs.
|
||||
(Aaron removed the above feature)
|
||||
|
||||
|
||||
2. System files
|
||||
===============
|
||||
|
||||
Before you can run the emulator, three vital system files must be
|
||||
available. These are:
|
||||
|
||||
apple_II.rom (12k) This file contains the ROM of your Apple II+.
|
||||
It is not distributed due to copyright issues.
|
||||
You have to get this file on your own. If you
|
||||
have been running another emulator, you can
|
||||
probably use its ROM files directly. Technically
|
||||
speaking, this file is a memory dump of the
|
||||
consecutive addresses from D000 to FFFF. This
|
||||
file may also be called by other names such as
|
||||
apple.rom or apple2.rom, but is referenced
|
||||
internally as apple_II.rom.
|
||||
|
||||
appple_IIe.rom Likewise for IIe emulation.
|
||||
|
||||
slot6.rom (256 bytes) Memory dump of the consecutive addresses from
|
||||
C600 to C6FF. This file is not distributed
|
||||
either due to the same reasons as above. This
|
||||
file may also be called by other names such as
|
||||
controller.rom, but is referenced internally
|
||||
as slot6.rom.
|
||||
|
||||
Other important files
|
||||
---------------------
|
||||
|
||||
.apple2 This file is distributed. The file contains default
|
||||
parameter settings. The most important parameter is
|
||||
the setting of the system path, i.e. the directory
|
||||
where the three vital system (ROM) files are
|
||||
stored. Most of the other parameters can be
|
||||
changed during run time via the interface
|
||||
(activated by pressing F10).
|
||||
|
||||
Parameters (that can be set in .apple2):
|
||||
|
||||
speed = <percentage>% Speed of the emulator
|
||||
path = <directory> Diskette database directory
|
||||
color = off Monochrome mode
|
||||
on Plain color mode
|
||||
interpolated Interpolated color mode
|
||||
sound = off Silent mode
|
||||
pc speaker Sound through PC speaker
|
||||
joystick = off Joystick disabled
|
||||
linear Linear joystick mode
|
||||
pc joystick PC Joystick (see CHANGES)
|
||||
digital (Atari) digital joystick mode
|
||||
not yet supported
|
||||
joystick range 1-256 range of joystick
|
||||
origin_x = 0-255 Origin of the joystick (X)
|
||||
origin_y = 0-255 Origin of the joystick (Y)
|
||||
sensitivity <percentage>% Joystick sensitivity
|
||||
system_path = <directory> Directory where the system
|
||||
ROM files are stored.
|
||||
pc joystick parms You don't want to fool
|
||||
around with these, you
|
||||
generate these parms from
|
||||
F10 screen "Calibrate" menu
|
||||
item.
|
||||
|
||||
dsk.info An example is distributed. This file contains
|
||||
information for various diskettes kept in the database.
|
||||
|
||||
Syntax:
|
||||
{<Name of diskette>} i.e. the name is written
|
||||
within curly braces.
|
||||
<Any information...>
|
||||
|
||||
{<Name of another diskette>} ... etc.
|
||||
|
||||
3. Keyboard & keys
|
||||
==================
|
||||
|
||||
F1 To switch diskettes in Drive A, Slot 6
|
||||
F2 To switch diskettes in Drive B, Slot 6
|
||||
F4, also Pause key Pause
|
||||
F5 Keyboard layout
|
||||
F8 Words from the author (removed)
|
||||
F9 Toggle between maximum speed and configured speed.
|
||||
F10 General parameter settings
|
||||
Break (ctrl-Pause) Apple II Reset key
|
||||
Ctrl Printscreen Reboot Apple II emulator
|
||||
|
||||
The numeric keypad is used for joystick emulation.
|
||||
|
||||
Left Alt Joystick button 0
|
||||
Right Alt Joystick button 1
|
||||
Insert Joystick button 2
|
||||
|
||||
F7 Debugger - (if it's compiled into the source).
|
||||
Edit the Makefile if you don't want the
|
||||
debugger. The emulator will run slightly
|
||||
faster without the debugger.
|
||||
|
||||
|
||||
4. Diskette database
|
||||
====================
|
||||
|
||||
The diskettes are provided as plain binary files. These are actually
|
||||
raw dumps, containing the tracks from 0 to 34. For the standard
|
||||
143360 byte .dsk format each track is partitioned into sectors
|
||||
numbered from 0 to 15. Each sector is 256 bytes. Hence, the data is
|
||||
organized as the following:
|
||||
|
||||
File offset (in bytes) Sector Track
|
||||
---------------------- ------ -----
|
||||
0 0 0
|
||||
256 1 0
|
||||
512 2 0
|
||||
. . .
|
||||
. . .
|
||||
. . .
|
||||
3840 15 0
|
||||
4096 0 1
|
||||
4352 1 1
|
||||
. . .
|
||||
. . .
|
||||
. . .
|
||||
143104 15 34
|
||||
|
||||
To transfer Apple II diskettes into this format requires that you own
|
||||
an original Apple II. Since the drives provided by the IBM PC's are
|
||||
not compatible with the original Apple II drives there are no
|
||||
conversion programs directly available. If you have used other Apple
|
||||
II emulators it is most likely that the files will work with this
|
||||
emulator too. It seems to be a common standard to structure the
|
||||
diskettes in the above described way, e.g. the ApplePC and Apl2em
|
||||
emulators for DOS uses the same structure.
|
||||
|
||||
Emulated diskettes MUST have the .dsk or .nib extension (143360 bytes
|
||||
or 232960 bytes respectively), otherwise the emulator will not
|
||||
recognize the file as a valid diskette. However, it is valid to
|
||||
compress them by using gnu-zip (then the extension becomes .dsk.gz or
|
||||
.nib.gz). The emulator will automatically decompress/compress them
|
||||
whenever required (note that it assumes /bin/gzip exists).
|
||||
|
||||
Note that you can add information/documentation for the dsk-diskettes
|
||||
by using an ordinary text editor and edit the file "dsk.info". The
|
||||
name of the diskette is written in curly braces (without the .dsk
|
||||
extension) followed by any information.
|
||||
|
||||
|
||||
5. Future plans
|
||||
===============
|
||||
|
||||
I intend to improve the emulator. Actually, for the next major release
|
||||
(i.e. version 1.00) the emulator will be entirely rewritten. For minor
|
||||
changes, see file CHANGES.
|
||||
|
||||
[Note from Stephen Lee: since this hasn't happened yet, I took to
|
||||
improving the existing emulator until Alexander release a new one.]
|
||||
|
||||
[Note from Aaron Culliney: since this still hasn't happened, I also
|
||||
took the liberty to fix a few things and add some functionality.]
|
||||
|
||||
[v004 note: decided to add in some more features, and fix problems as
|
||||
they've arisen.]
|
||||
|
||||
6. Status of the current emulator
|
||||
=================================
|
||||
|
||||
Works in standard VGA Y
|
||||
Works in SVGA (then using SVGA facilities) Y
|
||||
Disk drive emulation (slot 6) (.dsk & .nib) Y
|
||||
Disk drive emulation (slot 5) N (release 1.00)
|
||||
High resolution emulation Y
|
||||
Low resolution emulation Y
|
||||
Mixed mode (in all resolution modes) Y
|
||||
Correct color emulation (both Low and Hi-res) Y
|
||||
Interpolated color emulation Y
|
||||
Configurable speed Y
|
||||
Diskette switching Y
|
||||
Diskette database Y
|
||||
Interface for parameter settings, etc. Y
|
||||
Sound emulation (PC speaker) Y
|
||||
Flashing text Y
|
||||
Joystick emulation through numeric keypad Y
|
||||
Virtual console switching Y (only when emu. is paused)
|
||||
Raw keyboard mode (reading scancodes) Y
|
||||
Undocumented 6502 instructions Y
|
||||
Language card (i.e. additonal 16k RAM) Y
|
||||
Serial card N (maybe release 1.00)
|
||||
Works on DOS N (AND NEVER WILL)
|
||||
Apple II Debugger Y
|
||||
PC Joystick kernel module support Y
|
||||
|
||||
7. Can you port this to DOS?
|
||||
============================
|
||||
|
||||
No, for two reasons. The first, and probably the most important, is
|
||||
that the current emulator use kernel specific issues that are not, and
|
||||
never will be, available in DOS. Future emulators will be based on the
|
||||
same principles, so the emulator will never run in DOS. The second
|
||||
reason is that DOS is a bad operating system. It is a pain in the neck
|
||||
to write and debug programs in DOS and there is no usable memory
|
||||
management provided by the kernel (if the DOS "interrupts" can be
|
||||
called a "kernel" at all).
|
||||
|
||||
With this free software I hope that more users will switch to Linux
|
||||
(which is a great operating system) and I have a dream that one day,
|
||||
DOS will become a minority.
|
||||
|
||||
8. Availability
|
||||
===============
|
||||
|
||||
This distribution is available at ftp.apple.asimov.net, and
|
||||
tsx-11.mit.edu, and sites mirroring these.
|
||||
|
||||
9. Known problems
|
||||
=================
|
||||
|
||||
Problem: SVGAlib version 1.2.8 and below has a bug in
|
||||
keyboard-handling that makes the '-' key (in the emulator)
|
||||
unusable.
|
||||
|
||||
Solution: Please use SVGAlib version 1.2.9 or above.
|
||||
|
||||
Problem: The REPT (repeat) key repeats too fast.
|
||||
|
||||
Answer: The current implementation is a kludge by me [Stephen]. I
|
||||
might fix it later, but again, I might not.
|
||||
|
||||
Problem: I can't switch virtual consoles while running the program
|
||||
under gdb [Aaron].
|
||||
|
||||
Answer: Actually you do, it's just that the graphic mode stays valid.
|
||||
If you have the svgalib utility "textmode", try a "shell
|
||||
textmode" reset. I haven't played around enough to figure out
|
||||
how/if you can get back to graphic mode after this.
|
||||
|
||||
Problem: Compiling with optimization causes the debugger to choke
|
||||
[Aaron].
|
||||
|
||||
Answer: I'm playing fast and loose with the debugger's assembly hooks.
|
||||
I think it's something to do with -fomit-frame-pointer. And
|
||||
since I don't see much speed gain, I'm ignoring the problem
|
||||
for now.
|
||||
|
||||
10. Changes
|
||||
===========
|
||||
|
||||
see file CHANGES
|
||||
|
||||
|
||||
11. Final words
|
||||
===============
|
||||
|
||||
Note that albeit you can switch between digital and linear joystick
|
||||
emulation, only linear mode is presently supported. I still haven't
|
||||
figured out how the atari (digital) joystick emulation works, so I'll
|
||||
save it to the next release (as I said in the previous release :-) )
|
||||
|
||||
[PC Joystick mode is just another linear mode. In general linear mode
|
||||
seems to work fine for most games. If a game seems to be having
|
||||
trouble with it, change the range from $100 (256) to $80 (128) with
|
||||
center points at $80 and $40 respectively. Switching around ranges
|
||||
often seems to do the trick for most games, but I bet I'm not handling
|
||||
the joystick softswich values correctly. documentation on this is
|
||||
scant. -Aaron]
|
||||
|
||||
I hope you will enjoy this emulator. I do. Many games (that I have
|
||||
ported) works perfectly, even those that use undocumented 6502
|
||||
instructions. Suggestions to improvements are welcome. My email
|
||||
address will be valid at least one more year, i.e. as long as I am a
|
||||
computer science student at the University of Uppsala in Sweden.
|
||||
|
||||
/ Alexander Jean-Claude Bottema (Email: d91a1bo@meryl.csd.uu.se)
|
||||
Oct. 9 1994 15:44:21
|
154
README.debugger
154
README.debugger
@ -1,154 +0,0 @@
|
||||
*************************************************************************
|
||||
* *
|
||||
* Apple II debugger routines for the Linux-x86 Apple II emulator. *
|
||||
* by Aaron Culliney - chernabog@baldmountain.bbn.com - (C) 1998 *
|
||||
* *
|
||||
* My code changes have nothing to do with my employer, GTE *
|
||||
* Internetworking, BBN Technologies. They were written completely on my*
|
||||
* own time and on my own machine. *
|
||||
* *
|
||||
*************************************************************************
|
||||
|
||||
The debugger console is a mid-size hack onto the main emulator code.
|
||||
I did it b/c I wanted to fool around with some of my old games while
|
||||
they were running and to debug the emulator itself.
|
||||
The code is kinda ugly in some areas, but seems robust enough; (I've
|
||||
used flex to handle most of the dangerous UI stuff). It runs a bit
|
||||
slower than when you're in unrestricted emulation mode because it's
|
||||
doing a lot of switching between C code and asm, copying state, and
|
||||
checking breakpoints/watchpoints.
|
||||
|
||||
|
||||
KNOWN PROBLEMS:
|
||||
--------------
|
||||
|
||||
When you hit a watchpoint or breakpoint, you have to step over it
|
||||
before you can use the g{o}, f{inish}, or u{ntil} commands again.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Usage:
|
||||
-----
|
||||
|
||||
F7 - enters the debugger. (actually we wait until we've finished with
|
||||
the current 6502 instruction before we enter the debugger so we're all
|
||||
synched up if/when we start stepping the machine).
|
||||
|
||||
ESC - exits the debugger console.
|
||||
|
||||
General Command format:
|
||||
|
||||
command {optional part} <mandatory part> (this | that)
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Disassembling Apple II main memory and language card memory:
|
||||
|
||||
d{is} {language card bank} {/bank/}{addrs} {+}{len}
|
||||
|
||||
Examples:
|
||||
"d" - disassemble from current location
|
||||
"dis +5" - disassemble from current location +5
|
||||
"dis /01/2000" - (128k (//e) specific)
|
||||
"dis lc1 d000 5" - disassemble memory +5 at lang card 1 0xd000
|
||||
|
||||
Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language
|
||||
card.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Dumping memory:
|
||||
|
||||
m{em} {lc1|lc2} {addrs} {+}{len}
|
||||
a{scii} {lc1|lc2} {addrs} {+}{len}
|
||||
|
||||
Examples:
|
||||
|
||||
"mem" - dump memory at current location
|
||||
"m dead" - dump memory at 0xDEAD
|
||||
"m lc2 2fff 1" - dump memory at lang card 2 0x2FFF +1
|
||||
"ascii /01/400" - (128k (//e) specific)
|
||||
|
||||
Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language
|
||||
card. Also you need to specify the {addrs} if you're examining lc
|
||||
memory.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Setting memory:
|
||||
<addrs> {lc1|lc2} : <byteseq>
|
||||
|
||||
"4000:deadc0de" - set memory at 0x4000 to 0xDEADC0DE
|
||||
"50lc2:def" - set memory at lang bank 2 0x50 to 0xDE0F
|
||||
|
||||
Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language
|
||||
card.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Displaying machine state (registers, language card, drive, softswitches):
|
||||
|
||||
r{egs} - registers
|
||||
l{ang} - language card settings
|
||||
dr{ive} - disk drive settings
|
||||
vm - other virtual machine settings
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Stepping the machine:
|
||||
|
||||
(s{tep} | n{ext}) {len}
|
||||
f{inish}
|
||||
u{ntil}
|
||||
g{o} {addr}
|
||||
|
||||
-*step* or *next* 0-255 instructions.
|
||||
|
||||
-*finish* current stack-frame (stop at RTS).
|
||||
|
||||
-step *until* PC == next instruction (good for finishing loops).
|
||||
|
||||
-*go* or jump to {addr} and continue executing until user hits a key.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Searching and setting/unsetting memory breakpoints and watchpoints:
|
||||
|
||||
sea{rch} {lc1|lc2} <byteseq>
|
||||
|
||||
"se deadc0de" - search for 0xDEADC0DE
|
||||
"search lc2 def" - search lang bank2 (and lang card) for 0xDEF
|
||||
|
||||
(b{reak} | w{atch}) {addr}
|
||||
br{eak} op <byte>
|
||||
(c{lear} | i{gnore}) {num}
|
||||
c{lear} op <byte>
|
||||
sta{tus} - show status of memory watch/breakpoints
|
||||
op{codes} - show opcodes that we're stopping at
|
||||
|
||||
"w c0e9" - watch memory at C0E9
|
||||
"br" - break at current PC
|
||||
"br op 20" - break on opcode 20
|
||||
"clear 1" - clear breakpoint 1
|
||||
"ig" - ignore all watchpoints
|
||||
"cl op 20" - clear break on opcode 20
|
||||
|
||||
-break or watch addrs. (use in conjunction with g{o})
|
||||
|
||||
-clear breakpoints, ignore watchpoints.
|
||||
|
||||
-show break and watchpoint status.
|
||||
|
||||
Note: breakpoints and watchpoints persist even when you exit the
|
||||
debugger console. They are only reset if you clear/ignore them or
|
||||
virtually reboot.
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Loading and saving state:
|
||||
|
||||
bload <file> <addrs>
|
||||
bsave <file> /<bank>/<addrs> <len>
|
||||
|
||||
bload binary 8000 - load file into memory
|
||||
bsave pic /0/2000 2000 - save memory to file
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Miscellaneous:
|
||||
|
||||
fr{esh} - clear screen of graphics
|
12
TODO
12
TODO
@ -1,12 +0,0 @@
|
||||
Obviously this emulator could use extension. We could do with support
|
||||
for more disk-image formats, additional interface cards, memory-image
|
||||
save/restore, and other things.
|
||||
|
||||
However, most of these things would require hooking into parts of the code
|
||||
that are likely going to change radically in later versions of the
|
||||
emulator, due to badly needed cleanups. Thus, I do not recommend trying
|
||||
to extend this version alone.
|
||||
|
||||
If you want to work on the emulator, contact us first. We can give you alpha
|
||||
versions of the emulator to work on, and coordinate your efforts with
|
||||
other contributors.
|
Loading…
Reference in New Issue
Block a user