|
|
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.