|
|
1.1 root 1: This is version 0.1 of UAE, the Unusable Amiga Emulator for Un*x systems.
2:
3: 1. <stddisclaim.h>
4:
5: Copyright 1995 Bernd Schmidt. This program is freeware. You may do whatever
6: you want with it for personal use. Permission is granted to redistribute this
7: program free of charge, provided it is distributed in the full archive with
8: unmodified contents.
9: You may not port this program to Windows or any other so-called operating
10: system made by Microsoft.
11: There are no warranties of any kind for this program. If you use this program,
12: you do so at your own risk. The author is not responsible for any damages
13: that might result from using this program.
14: The program is not supposed to do anything useful. Don't expect it to work,
15: and you won't be disappointed.
16:
17: 2. What you need to get it to work
18:
19: - a Un*x system with the X Window System.
20: - a C++ compiler. I use gcc; version 2.6.x will do, 2.7.0 will do better.
21: With some modifications it can be made to compile with gcc 2.5.8.
22: Since only very few elements of C++ are used in the source, it should be
23: possible to create a C version with minimal effort as well.
24: - a Kickstart ROM file. I use 1.3, other versions may work, too.
25:
26: I've successfully tested UAE on the following systems:
27: - Pentium-90, Linux 1.2.7, X11R6 (XFree86 3.1.1), GCC 2.6.3
28: - a while ago, i486DX2-66, Linux 1.1.>80, X11R6, GCC 2.5.8
29: - HP Apollo, HP-UX, X11R5, GCC 2.6.0
30: - Sun Sparcstation, X11R5, GCC 2.6.0
31:
32: You see, it's fairly portable; it doesn't even rely on endianness.
33:
34: What you need to enjoy it:
35: - some programming skills to fix the bugs and add the missing features.
36: - a CPU that is roughly 30 times faster than a Pentium 90.
37:
38: To build UAE, first unpack it to an appropriate directory (e.g. /usr/src/uae
39: on a Linux system), cd into it and type "xmkmf" to create the Makefile. Then,
40: do "make" to compile everything. Warnings can be ignored; there should be no
41: errors.
42: Some systems (the ones at my university) have a broken imake that generates
43: bogus Makefiles. For this, an examples Makefile is provided which can be
44: modified to suit your system.
45: After compilation, you'll need to install the ROM image. This must have a size
46: of exactly 512K and should be an image of the addresses 0xF80000-0xFFFFFF on
47: your Amiga system. You can dump it with any debugger that deserves its name,
48: and transfer it to a PC with a tool like CrossDos or MessyFS (or a serial
49: cable). It must be called kick.rom to be recognized.
50: You can also install a disk image file. This must be called wb13.adf (Amiga
51: Disk File), and should be a raw image of the data on the floppy disk:
52: 11x2x80 sectors == 901120 bytes. This will not buy you anything, since
53: floppy disk support is broken. The Kickstart will recognize that there's a
54: disk in the drive and try to boot from it, and therefore will not show the
55: startup logo. Since showing the logo is all the Kickstart ever does with the
56: emulator if there's no disk in the drive, you won't see anything at all, so
57: don't install that disk file.
58: You can then execute the file "uae". It should load the Kickstart and
59: open a large X Window. UAE starts up in the builtin debugger, you can single
60: step through the Kickstart if you want, but you can also type "f 1" to make it
61: run forever or until you press ^C, whichever comes first.
62:
63: 3. Current state of UAE
64:
65: This program is only half-finished, that's why it is called the Unusable
66: Amiga Emulator. The following parts are already mostly complete:
67:
68: - MC68000 CPU: Almost done, some rare instructions (ABCD, ...) are not
69: emulated yet. I'd like to make this a 68020 emulation, but I need more
70: info than I have about the special registers (MMU etc.)
71: Maybe it will one day run Linux/68k!
72: - Blitter: If there's no bug, it ought to be complete.
73: - Copper: Not much to emulate here :-)
74: - Timers: I think these are fully working, too.
75:
76: Not done properly:
77: - Playfield (display) hardware: Only black & white graphics, no dual
78: playfield support, no HAM.
79: - Sprites: None.
80: - Sound: None.
81: - Mouse, Keyboard, Joystick: None.
82: - Timing: The CPU and blitter cycles are counted, but I have not bothered
83: yet to adjust the timing to match the characteristics of a real A500
84: - Floppy disk: Broken. I never modified disk.cc after creating it. It is not
85: debugged and does not work.
86:
87: Currently, this program can only display the Kickstart logo (hand holding
88: WB disk). If the disk support were working, it would probably boot and could
89: be made to execute some demos correctly.
90:
91: 4. Future
92:
93: I have only very little spare time to work on this program. So, any help
94: is welcome.
95: If you fix any bugs or implement new features, please mail me any of these
96: enhancements (see below for address). If they are any good, I will include
97: them into a new version of the emulator. You'll be credited for any of your
98: changes that make it into the source.
99:
100: Various approaches how to write an Amiga emulator have been discussed in
101: comp.emulators.misc, comp.emulators.cbm and comp.sys.amiga.emulations. This
102: implementation tries to emulate the behaviour of the Amiga hardware. This
103: hardware is supposed to be an A500 with Old Chipset, KS1.3 and 512K chipmem.
104: Extending this to ECS should be no problem, a 68020 emulation should be
105: possible as well, AGA may be tricky. I don't see a reason why newer
106: Kickstarts should fail with the emulator, please try it.
107:
108: It should be possible to speed the thing up quite a bit. Currently, it is 30
109: times slower than it should be on my Pentium-90. I am sure this can be
110: improved by a factor of at least two. But currently, I think it's more
111: useful to work on compatibility instead.
112:
113: Bugs:
114: - When the Kickstart tries to boot from a floppy, it doesn't seem to do the
115: Right Things. That may be a bug in the floppy support, or in the 68000
116: part.
117: - Somehow, I don't like what the Kickstart does with the copper lists when
118: the system is initialized. COP2LC points at some location where no copper
119: list is found. That may be a bug in the Kickstart, but I think that's
120: unlikely.
121:
122: 5. The author's address
123:
124: [email protected]
125:
126: or, via snailmail
127:
128: Bernd Schmidt
129: Schlossweiherstrasse 14
130: 52072 Aachen
131: Germany
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.