Annotation of uae/README, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.