Annotation of uae/docs/README, revision 1.1.1.17

1.1.1.17! root        1: This is version 0.8.17 of UAE, the Un*x Amiga Emulator.
1.1.1.5   root        2: 
                      3: Versions numbered 0.8.x are beta versions, to be used for development only.
                      4: If you are only a user of UAE, you are better off using the latest 0.7.x
                      5: version or waiting for 0.9.0.
                      6: 
1.1       root        7: 
1.1.1.3   root        8: License
                      9: =======
1.1       root       10: 
1.1.1.5   root       11: UAE is available under the terms of the GNU General Public License. This means
                     12: that it is free software: you are welcome to distribute copies of it and/or
                     13: modify it, under certain conditions. It also means that there is no warranty
                     14: for UAE.
                     15: See the file COPYING that is included in the top level directory of this
                     16: archive for details.
1.1       root       17: 
                     18: 
                     19: Overview
                     20: ========
                     21: 
1.1.1.2   root       22: An emulator is a program which enables you to run software for a machine
                     23: which has non-native hardware and a non-native operating system, on your
                     24: computer.  UAE allows you to run most of the available Amiga software. It is a
                     25: software emulation, meaning that no extra or special hardware is needed to do
                     26: this. The hardware of an Amiga is emulated accurately, so that Amiga software
                     27: is tricked into thinking it is running on the real thing, with your computer's
                     28: display, keyboard, harddisk and mouse taking the parts of their emulated
                     29: counterparts.
1.1       root       30: 
                     31: UAE was developed for Unixoid systems. Meanwhile, it has been ported to the
1.1.1.2   root       32: Mac, DOS, the BeBox, NextStep, the XFree86/OS2 environment and the Amigas (it
                     33: can run itself by now). You should have received several other files along
                     34: with this document with details on how to install and use the version for your
                     35: operating system.
1.1       root       36: 
                     37: This section is just what it says: an overview. Please read _all_ of this
1.1.1.2   root       38: file, especially if you have problems. UAE has many, many features and
                     39: equally many configuration options. If you don't know about them, it's likely
                     40: that UAE doesn't work for you, or doesn't work as good as it could.
                     41: 
                     42: Please read also the file "FAQ" which contains some Frequently Asked
1.1.1.3   root       43: Questions (and even the answers!) You should also look for a document
                     44: describing the specific port of UAE to the operating system you are using,
                     45: for example "BeOS/README" or "DOS/README".
1.1.1.2   root       46: 
                     47: People have complained that the UAE documentation contains only "weird jargon".
                     48: Sorry about this. Despite what MessySoft and Tomato tell you, computer
                     49: programs aren't always easy to use. UAE does require some assistance from you,
                     50: and therefore you should at least understand a bit about computers. After all,
                     51: you are an Amiga fan, so you should know what a Workbench is, don't you think?
1.1       root       52: 
                     53: 
1.1.1.2   root       54: Features
                     55: ========
                     56: 
                     57: This version of UAE emulates:
1.1       root       58: 
1.1.1.5   root       59: - A 68000, 68010 or 68020 CPU, optionally a 68881 FPU
1.1.1.2   root       60: - OCS Graphics Chipset, plus big blits from the ECS Chipset
1.1.1.5   root       61: - Up to 2MB Chip RAM and up to 8MB Fast RAM, or 8MB Chip RAM without Fast RAM
                     62: - Up to 64MB Zorro III Fast RAM, independent of Chip RAM setting (68020 only)
1.1.1.3   root       63: - Up to 1MB Slow RAM, for extended compatibility with problem software
                     64: - Up to 8MB of graphics card memory, usable by software that supports
1.1.1.5   root       65:   Picasso 96 compatible graphics cards
                     66: - 4 x 3.5" floppy disk drives (DF0:, DF1:, DF2: and DF3:). It's not possible to
                     67:   read Amiga disks, so these are emulated with disk files.
                     68: - A hard-disk: either a harddisk image file or part of the native filesystem
1.1.1.2   root       69: - Joystick support (with option of mapping joystick to numeric keypad)
                     70: - Mouse support
                     71: - Ability to run in various screen modes (for better display quality or
                     72:   better speed)
1.1.1.5   root       73: - Full stereo sound support, consisting of 4 x 8bit channels
1.1.1.3   root       74: - Beta parallel and serial port support
1.1.1.2   root       75: - some other things which don't work well enough to mention them here...
                     76: 
                     77:   
                     78: Requirements (IMPORTANT! READ THIS!)/Limitations
                     79: ================================================
                     80: 
                     81: Not emulated:
1.1.1.3   root       82: - Sprite to playfield collisions (sprite to sprite collisions work)
                     83: - An MMU (part of 68030/040 CPUs except those that Commodore used). This means
1.1.1.2   root       84:   you can't use virtual memory systems or real operating systems like Linux
                     85:   or BSD.
                     86: - The AGA chipset (A4000/A1200). This chipset has enhanced capabilites for
                     87:   up to 256 colors in all resolutions.
1.1.1.11  root       88: - Serial port emulation exists but doesn't work too well.
1.1.1.2   root       89: 
                     90: Since the PC floppy controller can't read Amiga disks (yes, that's a fact), 
                     91: floppy access has to be emulated differently: Floppies are emulated by means 
                     92: of disk files that contain a raw image of the floppy disk you want to emulate.
                     93: A disk file is an image of the raw data on an Amiga floppy disk, it contains
                     94: 901120 bytes (880K), which is the standard capacity of an Amiga disk.
                     95: 
                     96: To actually run the program, you'll need to install the ROM image from your
                     97: Amiga. You can't run UAE if you don't have this image. It is not included
                     98: because it is copyrighted software. Don't ask me to send you one. I won't.
                     99: If you don't have an Amiga and still want to use UAE, you'll have to buy an
                    100: Amiga or at least the system software (ROM + Workbench) first.
                    101: The Kickstart image can have a size of either 256K or 512K. It must be named
                    102: "kick.rom" by default.
                    103: 
                    104: Read the section "tools" below for information how to create ROM images and
                    105: disk files.
1.1       root      106: 
                    107: If you don't have a Kickstart file, you may still be able to boot some games
                    108: and demos. The emulator includes some primitive bootstrap code that will try
                    109: to read and execute the bootblock of the diskfile you are using, and if that
                    110: bootblock only uses the one or two Kickstart functions that are supported by 
                    111: the "replacement Kickstart", your program will boot. Don't expect too much, 
                    112: though.
                    113: 
1.1.1.2   root      114: You'll also need some other software to run - why else would you want to
                    115: emulate an Amiga? There are several ways to make the software accessible to
1.1.1.3   root      116: UAE, either with disk image files or with a harddisk emulation. You should
                    117: make an image of your Amiga's Workbench disk and install it as "df0.adf"
                    118: (adf = Amiga Disk File) when you use UAE for the first time. More about how
                    119: to create these files in the chapter "Transferring software"
                    120: 
                    121: To use Picasso96 emulation, you need the Picasso96 libraries, which are also
                    122: not included. They can be obtained (e.g.) from Aminet.
1.1       root      123: 
                    124: 
                    125: Invoking UAE
                    126: ============
                    127: 
1.1.1.2   root      128: First, read the system-specific documents for information how to set up UAE.
                    129: You should have an executable program called "uae". You can simply execute it,
1.1.1.7   root      130: but you can also optionally give it one or more of the following parameters:
                    131: 
                    132:  -h              : Print out a help text.
                    133:  -f file         : Load a configuration file
                    134:  -s opt=val      : Set the emulator's option "opt" to value "val".
                    135: 
                    136: Configuration files consist of several lines of the form "opt=val", just as
                    137: with the "-s" parameter.  You can use the following options with the "-s"
                    138: option, or in a config file.
                    139: [Here, "=n" means the option takes a number as value.  "=bool" means the option
                    140: takes a value of either "yes" or "no" (or "true", "false", or abbreviations of
                    141: any of these).  There are other classes as well.]
1.1       root      142: 
                    143: General options:
1.1.1.7   root      144: accuracy=n [default=2]
                    145:   Set emulator accuracy to n. The default is n = 2, which means the
                    146:   emulator will try to be as accurate as possible. This no longer
                    147:   does much in this version, and I'll probably remove it.
                    148: framerate=n [default=1]
                    149:   Sets the frame rate to 1/n. Only every nth screen will be drawn.  Using a
                    150:   higher value can speed up the emulator, at the expense of graphics quality.
                    151: autoconfig=bool [default=yes]
                    152:   If this is enabled, all expansion devices provided by the emulation will be
                    153:   automounted. You should only disable this if you have a Kickstart ROM
                    154:   earlier than 1.3 which can't cope with this. Some badly written games and
                    155:   demos might also be incompatible with this.
                    156: kbd_lang=lang [default=us]
                    157:   Set the keyboard language. Currently, the following values can be used: "us"
                    158:   for U.S. keyboard (default), "se" for swedish, "fr" for french, "it" for
1.1.1.17! root      159:   italian, "es" for spanish, "dk" for danish, or "de" for german keyboard.
1.1.1.7   root      160:   This setting only affects the X11 version.
                    161: floppy0=file [default=df0.adf]
                    162:   Try to use the specified file as diskfile for drive 0 instead of df0.adf.
                    163:   The options floppy1, floppy2, and floppy3 also exist.
                    164: kickstart_rom_file=file [default=kick.rom]
                    165:   Use the specified file instead of kick.rom as Kickstart image.
1.1.1.17! root      166: kickstart_key_file=file [default=none]
        !           167:   For some strange licensing reasons, Cloanto had to encrypt the ROM images
        !           168:   they ship with the Amiga Forever package.  This option lets you select the
        !           169:   key file; this is only necessary if you are using one of the ROMs from
        !           170:   Amiga Forever.
1.1.1.7   root      171: joyport0=mode [default=mouse]
                    172:   Specify how to emulate joystick port 0. You can use "mouse", "joy0", or
                    173:   "joy1" to use the corresponding input devices of your machine, or you can
1.1.1.14  root      174:   select several different keyboard replacements for a joystick:
                    175:     "kbd1" for the numeric pad.  '0' is the fire button.  Three keys on the
                    176:            numeric pad act as autofire toggle: '.' (or ',' depending on your
                    177:            keyboard language), Enter and the division key.
                    178:     "kbd2" for the cursor keys with right control key as fire button and the
                    179:            right shift key as autofire toggle
                    180:     "kbd3" for T/F/H/B with the left Alt key as fire button and the left Shift
                    181:            key as autofire toggle.
                    182:   The autofire toggle keys will turn on autofire (25 shots per second), it
                    183:   will stay enabled until you hit the autofire toggle again.
1.1.1.7   root      184: joyport1=mode [default=joy0]
                    185:   Like joyport0, but for the Amiga's joystick port 1.
                    186: use_gui=bool [default=yes]
                    187:   Show a user-interface that enables changing these options at run-time.
                    188: 32bit_blits=bool [default=no]
                    189:   If enabled, the blitter emulation will use 32 bit operations where that
                    190:   seems profitable (note that this will cause bus errors on most  RISC
                    191:   machines)
                    192: immediate_blits=bool [default=no]
                    193:   If enabled, all blits will finish immediately, which can be nice for speed,
                    194:   but may cause incompatibilities.
1.1.1.16  root      195: collision_level=level [default=sprites]
1.1.1.17! root      196:   This can have a value of "none", "sprites", "playfields", or "full".  If
        !           197:   set to "sprites", the emulator will only compute collisions between sprites.
        !           198:   If set to "playfields", it will additionally compute collisions between
        !           199:   sprites and the background.  This is much slower and used only rarely.  When
        !           200:   "full" level is selected, collisions of the background with itself are also
        !           201:   computed.  This is also used very rarely, and makes the emulator even slower.
        !           202:   Using "sprites" or "none" will almost always be enough.
1.1.1.7   root      203: cpu_speed=speed [default=4]
                    204:   This can have a value of "real", "max", or an integer between 1 and 20.
                    205:   "real" will try to give the CPU emulation exactly as many cycles, relative
                    206:   to the other chips, as on a real A500.  "max" will try to give you the
                    207:   maximum CPU emulation speed achievable on your machine.  Numeric values
                    208:   specify a fixed relation between CPU and custom chip emulation, where lower
                    209:   values prioritize CPU emulation, while higher values prioritize custom chip
                    210:   emulation.
1.1.1.16  root      211: finegrain_cpu_speed=speed
                    212:   Like cpu_speed, but only accepts numeric values.  These numeric values are
                    213:   equivalent to the ones given to cpu_speed multiplied by 512.  This means
                    214:   that "cpu_speed=2" and "finegrain_cpu_speed=1024" have the same effect.
                    215:   Using this option you can give the CPU emulation a much higher priority by
                    216:   using small values.
1.1.1.7   root      217: cpu_type=type [default=68000]
                    218:   Controls which CPU is emulated. This can be "68000", "68010", "68020" or
                    219:   "68020/68881".  In some cases, you may need to use "68ec020" or
                    220:   "68ec020/68881" to emulate a crippled variant of the 68020 that has only a
                    221:   24 bit address bus.  Some software, including some Kickstart versions, does
                    222:   not work with a normal 68020 that has a 32 bit address bus.
                    223:   Careful: using an "ec" variant has harmful side effects, and should be
                    224:   disabled unless absolutely needed (you lose Z3 memory and Picasso
                    225:   emulation).
                    226: cpu_compatible=bool [default=no]
                    227:   If enabled, a slower but slightly more accurate variant of the CPU emulation
                    228:   will be used.  This is needed for some types of copy protection, among other
                    229:   things. This is only meaningful for a CPU type of "68000".
1.1.1.14  root      230: nr_floppies=n [default=4]
                    231:   The emulator will emulate this many external floppy drives.  Some very old
                    232:   games apparently have problems if this is larger than 1, but for all normal
                    233:   programs the default is good enough.
1.1       root      234: 
1.1.1.3   root      235: Emulating external devices (harddisk, CD-ROM, printer, serial port):
1.1.1.7   root      236: filesystem=access,volume:path [default=no filesystems mounted]
                    237:   Mount the host's file system at "path" as an Amiga filesystem with volume
                    238:   name "VOLUME:".  "access" can be either "ro" (for readonly), or "rw" (for
                    239:   read-write).  If you want to mount a CD-ROM, you should use a readonly
                    240:   mount.  You can mount multiple file systems.
                    241:   See below.
                    242: hardfile=access,secs,heads,reserved,bsize,file [default=no hardfiles mounted]
                    243:   Mount the hardfile "file" as an emulated harddisk, using a geometry of
                    244:   "secs" sectors per track, "heads" surfaces and "nr" reserved blocks.
                    245:   Each sector should have "bsize" bytes. This can be abused to mount
                    246:   floppy images.  You can mount multiple hardfiles.
                    247:   See below.
1.1       root      248: 
                    249: Sound options:
1.1.1.7   root      250: sound_output=type [default=none]
                    251:   The type of sound output can be "none" (no sound at all), "interrupts"
                    252:   (emulated for the internal side effects that can be noticed by programs,
                    253:   but no sound output), "normal" (emulated, and sound output), "exact" (a
                    254:   slightly more accurate emulation that may be necessary in some cases, but
                    255:   can also be slower).
                    256: sound_channels=type [default=mono]
1.1.1.16  root      257:   Can be "mono", "stereo", or "mixed".  If set to "stereo", the left and right
                    258:   channels produce the same output as on a real Amiga - two of the four audio
                    259:   channels are audible on the left, and the other two on the right.  This is
                    260:   exactly what you want, except if you're using headphones - having the sound
                    261:   split so strictly can lead to a strange listening experience at times.  This
                    262:   is what "mixed" is trying to solve: it mixes the left channel with a low
                    263:   volume into the right channel and vice versa.  (This mixing operation loses
                    264:   a bit of precision in the output).
1.1.1.7   root      265: sound_bits=n [default varies across UAE versions on different OS types]
                    266:   Common values are 8 (low quality) or 16 (high quality)
                    267: sound_frequency=n [default varies across UAE versions on different OS types]
                    268:   Common values are 22050 or 44100. The quality of sound output increases with
                    269:   the frequency.
                    270: sound_min_buff=n
                    271: sound_max_buff=n [default varies across UAE versions on different OS types]
                    272:   You can specify the minimum and maximum size of the sound buffer.
                    273:   Smaller buffers reduce latency.  Usually only the minimum size is used.
1.1.1.10  root      274: sound_interpol=type [default none]
                    275:   Normally, sound samples are output exactly as they are computed, without
                    276:   any post-processing.  This can generate errors in the sound output when the
                    277:   output frequency isn't an even multiple of the input frequency.  These
                    278:   errors are usuable perceived as a high-frequency noise.
                    279:   There are currently two types of interpolation available, both under
                    280:   experimentation.  You can use either "rh" or "crux" as value for this
                    281:   option.  Note that no interpolation is supported for 8 bit output; you need
                    282:   to use 16 bit output to hear a difference.  If you have any comments about
                    283:   the effects of either method on audio quality, I'd be very interested to
                    284:   hear them.
1.1.1.3   root      285: 
1.1       root      286: Memory options:
1.1.1.7   root      287: bogomem_size=n [default=0]
                    288:   Emulate n*256K slow memory at 0xC00000. Some demos/games need this.
                    289: fastmem_size=n [default=0]
                    290:   Emulate n megabytes of fast memory as an expansion board.
                    291: z3mem_size=n [default=0]
                    292:   Emulate n megabytes of Zorro III fast memory as an expansion board.
                    293: chipmem_size=n [default=4]
                    294:   Emulate n*512K chip memory. Some very broken programs need specific amounts
                    295:   of chip mem to work properly. The largest valid value is 16, which means 8MB
                    296:   chip memory.
                    297: 
                    298: Display options:
                    299: gfx_width=n [default=800]
                    300:   Use a window that is n pixels wide for displaying the Amiga screen.
                    301: gfx_height=n [default=300]
                    302:   Use a window that is n pixels high for displaying the Amiga screen.
                    303: gfx_lores=bool [default=no]
                    304:   Enable this option if you use a very small window width (320 to 400 pixels)
                    305:   to shrink the display horizontally.
                    306: gfx_linemode=type [default=none]
                    307:   The type can be none (every line is drawn once), "double" (every line is
                    308:   drawn twice), and "scanlines" (every line is drawn once, but the image is
                    309:   stretched vertically by inserting a black line every other line to simulate
                    310:   the display on an old monitor).
                    311:   The "double" mode gives best results, but slows down the emulation quite a
                    312:   lot. Don't use the "none" mode if you want a decent interlace emulation.
                    313:   If you use "double" or "scanlines", your window needs to be twice as high
                    314:   as when using the "none" mode.
                    315: gfx_correct_aspect=bool [default=none]
                    316:   Try to fit the image into the specified window dimensions by leaving out
                    317:   certain lines.  Useful if you want to fit a 640x512 Amiga display in a
                    318:   640x480 window.
                    319: gfx_center_vertical=bool [default=no]
                    320: gfx_center_horizontal=bool [default=no]
                    321:   If you use a smaller window than 800x300 (400x300 with "gfx_lores" option or
                    322:   800x600 with a gfx_linemode other than "none"), not all parts of the display
                    323:   will fit on the screen. By enabling the necessary centering options, you can
                    324:   ask the emulator to try and move the screen contents so that the relevant
                    325:   parts are displayed. If you are unlucky, this can cause the contents to jump
                    326:   around a bit in certain cases.
                    327: gfx_fullscreen_amiga=bool [default=no]
                    328:   Enable if you want to use the full screen, not a window on the desktop, for
                    329:   the Amiga display.  Some ports (DOS, SVGAlib) always use fullscreen mode.
                    330: gfx_fullscreen_picasso=bool [default=no]
                    331:   Like gfx_fullscreen_amiga, but for the Picasso graphics card display.
                    332: gfx_color_mode=mode [default=8bit]
                    333:   Select a color mode to use.
                    334:   Color modes: 8bit (256 colors), 15bit (32768 colors), 16bit (65536 colors),
                    335:               8bit_dithered (256 colors, with dithering to improve quality),
                    336:               4bit_dithered (16 colors, dithered); 32bit (16 million colors)
1.1.1.10  root      337: gfxcard_size=n [default=0]
1.1.1.7   root      338:   Emulate a Picasso 96 compatible graphics card with n MB graphics memory.
                    339:   This requires that you use set the CPU type to "68020" or higher, and that
                    340:   you do not use 24 bit addressing.
1.1.1.3   root      341: 
                    342: Debugging options (not interesting for most users):
1.1.1.7   root      343: use_debugger=bool [default=no]
                    344:   If enabled, don't start the emulator at once, use the built-in debugger.
                    345: log_illegal_mem [default=no]
                    346:   If enabled, print illegal memory accesses
1.1       root      347: 
1.1.1.2   root      348: 
                    349: Whew. You'll probably have to experiment a little to get a feeling for it.
1.1.1.3   root      350: 
1.1.1.2   root      351: 
1.1       root      352: You can also put these options into a configuration file in your home
                    353: directory. Simply create ~/.uaerc and put some of these options in it. On
                    354: non-Unix systems, the file is called uae.rc and should be located in the
                    355: current directory.
                    356: 
                    357: 
                    358: Choosing color and screen modes
                    359: ===============================
                    360: 
                    361: As described in the previous paragraph, UAE can run in many different 
                    362: resolutions and color modes. However, few of the color mode options are
                    363: available if you use the X11 version of UAE, since the X server determines
                    364: how many colors are available. If you are running a 256 color X server, you
                    365: can use "-H3" to tell UAE to dither the colors for better results.
                    366: 
                    367: You will have to experiment which mode gives the best results for you at a
                    368: satisfying speed. Note that the dithering process consumes time, so even if
                    369: 256 colors with dithering look better than 256 colors without, remember that
                    370: UAE will be slower in that mode.
                    371: 
                    372: The recommended resolution is 800x600. In the lower resolution modes, some
                    373: overscan pictures the Amiga tries to display may not fit entirely on the
                    374: screen, others may be off-center and some graphical effects may look weird.
                    375: For best results, use 800x600 with at least 32768 colors.
1.1.1.3   root      376: For speed, use 400x300 lores with 256 colors.
                    377: 
                    378: _Don't_ use 24 bit or 32 bit screen modes, unless you absolutely have to.
                    379: These are way too slow to be usable.
1.1       root      380: 
                    381: 
                    382: Harddisk emulation
                    383: ==================
                    384: 
1.1.1.3   root      385: Since using diskfiles is awkward, it is necessary to emulate harddisks. There
                    386: are two ways how you can use large amounts of data with UAE: harddisk files
                    387: and mounted directories.
                    388: 
                    389: 1. Harddisk files
                    390: 
                    391: Harddisk files are large files that contain the image of an Amiga filesystem.
                    392: They work much the same way as a disk file. You can simply create a large
                    393: empty file and tell UAE to use it as a hardfile, but you will need to format
                    394: it from the emulation before you can actually use it.
1.1       root      395: 
1.1.1.3   root      396: Under Unix, You can create a (unformatted) harddisk file with
1.1       root      397:   dd if=/dev/zero of=hardfile bs=512 count=16384
1.1.1.3   root      398: That will create an 8MB file. Other ports of UAE may come with a utility
                    399: called "makedisk" or other ways to create such a file.
1.1.1.2   root      400: 
1.1.1.3   root      401: To tell the emulator that you want to use a certain file as a hardfile, use
                    402: the "-W" option, for example
                    403:   uae -W 32:1:2:hardfile
                    404: The first three numbers are geometry information which tell the AmigaOS how
                    405: the file is organized. The first number (32) is the number of sectors per
                    406: track, the second number (1) is the number of heads or surfaces, the third
                    407: number (2) is the number of reserved blocks. If you use "normal" sizes
                    408: (powers of two, like 32MB), then you should be OK using the same numbers as
                    409: in the above example. Using different numbers can make sense if you transfer
                    410: the image of a real Amiga harddisk which uses a different geometry. The last
                    411: field of the argument to the "-W" option is the name of the harddisk file.
                    412: 
                    413: If you are using Kickstart 1.3 or earlier, hardfiles can't currently be
                    414: mounted at boot time, and therefore you can't boot from it either. You will
                    415: have to boot either from a floppy disk image or from a filesystem (see below),
                    416: and mount the hardfile.device later. To do this, add the following to
                    417: "DEVS:mountlist":
1.1       root      418: 
1.1.1.3   root      419: UAE0:     Device = uaehf.device
1.1       root      420:           Unit   = 0
                    421:           Flags  = 0
                    422:           Surfaces  = 1
                    423:           BlocksPerTrack = 32
                    424:           Reserved = 1
                    425:           Interleave = 0
                    426:           LowCyl = 0  ;  HighCyl = 511
                    427:           Buffers = 5
                    428:           DosType = 0x444F5300
                    429:           BufMemType = 1
                    430: #
                    431: 
1.1.1.3   root      432: (You may need to adjust the values if you specified a different geometry,
                    433: and/or your hardfile has a different size than 8MB, and/or the hardfile is not
                    434: mounted as UAE0: because you mounted other harddisks before it.)
                    435: 
1.1       root      436: Then, type "mount UAE0:" (or put that command in your startup-sequence), and
                    437: you should be able to access it. Don't forget to format it with the AmigaDOS
                    438: format command:
                    439: 
                    440:   format drive uae0: name Mister_Willwink
                    441: 
1.1.1.3   root      442: b) Accessing native filesystems from the emulator
1.1       root      443: 
                    444: This has some major advantages:
                    445:  - It has no problems with Kickstart 1.3
                    446:  - It is more convenient.
1.1.1.3   root      447:  - It is much faster.
1.1       root      448: 
1.1.1.2   root      449: If you specify the -M or -m command line arguments, you your native filesystem 
                    450: from the emulator. If you start UAE with
1.1       root      451: 
                    452:   uae -m sound:/usr/amiga/modules
1.1.1.2   root      453: 
1.1       root      454: you can access all the files in /usr/amiga/modules by reading from the
                    455: AmigaDOS volume "SOUND:".
                    456: (DOS users: try "uae -m dh0:C:\" to mount your drive C:\ as DH0:)
                    457: 
1.1.1.3   root      458: You can mount up to 20 devices, either hardfiles or filesystems, by giving
                    459: either of these options multiple times. The volumes will be named UAE0:,
                    460: UAE1:, etc. UAE will boot from UAE0: if no diskfile is found for floppy
                    461: drive 0.
                    462: You can also use native filesystems to mount Amiga CD-ROMs, and you can
                    463: abuse the hardfile emulation to mount floppy disks: "uae -W 11:2:2:wb13.adf"
                    464: will mount the diskfile "wb13.adf".
1.1       root      465: 
                    466: 
                    467: Tools / Transferring files
                    468: ==========================
                    469: 
1.1.1.2   root      470: As you should know by now, you need to transfer files between your Amiga and
                    471: the machine you run UAE on. There are several ways how to do this.
                    472: 
                    473: - Using a null modem cable, and a terminal package running on each machine,
                    474:   you can transfer the file(s) via Zmodem upload/download. 68000 equipped
                    475:   Amigas can normally attain around 3000cps through the null modem cable,
                    476:   using the standard Commodore serial.device.  However, by using the device
                    477:   replacement BaudBandit.device, anything up to 5500cps can be attained.
                    478:   BaudBandit can be obtained from Aminet.  A second alternative is to use
                    479:   the BASIC program adfi.bas (included with UAE) to transfer a file from the
                    480:   Amiga to the PC via the null modem cable.
                    481:   
                    482: - If you're using CrossDOS on your Amiga, you can compress the disk or
                    483:   kickstart image using LhA or similar PC compatible archiver and copy it to
                    484:   a 720KB floppy disk.  You can now take the disk over to the PC, copy the
                    485:   compressed file to the UAE directory and uncompress it.
                    486:   If you don't have CrossDOS on the Amiga, there is a similar freeware tool
                    487:   called Msh, which can be found on Aminet or on Fish disk 382 or 327.
                    488: 
                    489: In either case, you ought to read the documentation for the programs that
                    490: you use for the transfer. These programs can't be explained here.
1.1       root      491: 
1.1.1.2   root      492: In the "amiga" subdirectory you'll find two small Amiga programs that will
                    493: help you to generate the necessary image files. These are called transrom 
1.1       root      494: and transdisk. Copy them to your Amiga and make them executable (by typing
1.1.1.2   root      495: "protect transrom rwed" and "protect transdisk rwed" in the Amiga shell
1.1       root      496: window).
                    497: transrom will dump the contents of your Kickstart ROM, and transdisk will 
                    498: dump an image of a floppy in one of the drives. Both programs write to the
1.1.1.2   root      499: standard output (read: the screen), so you'll want to redirect that. Do
1.1       root      500: 
                    501:    transrom >ram:kick.rom
                    502:    
                    503: to create a file called "kick.rom" in the RAM disk, and
                    504: 
                    505:    transdisk >ram:df0.adf
                    506:    
                    507: to create a file called "df0.adf" in the RAM disk. These files are pretty
1.1.1.2   root      508: big, 262144 or 524288 bytes for the ROM image and 901120 bytes for a disk 
                    509: image.
1.1.1.3   root      510: 
                    511: NEVER run either of these programs from the Workbench. Always open a Shell
                    512: or CLI window to do this.
                    513: 
1.1       root      514: transdisk understands the following arguments:
                    515: 
                    516:     -d device unit: Use this device instead of DF0:
1.1.1.2   root      517:     -s n:           Begin transfer at track n (default: 0)
                    518:     -e n:           End transfer at track n (default: 79)
                    519:     -w file:        don't read from the floppy, instead write the contents
                    520:                     of "file" to the floppy
                    521:     -h:             Treat the disk as high-density disk. HD images aren't
                    522:                     supported by UAE yet, though. Note that the resulting
                    523:                    file will be twice as big.
1.1       root      524: 
                    525: So, to transfer the disk in drive DF1:, you'd give the command:
                    526: 
                    527:   transdisk >ram:df1.adf -d trackdisk 1
                    528: 
                    529: If you don't have much RAM and can't fit all of a disk image in the RAM disk,
                    530: you can split up the transfer into multiple parts with the "-s" and "-e"
                    531: parameters. To transfer the disk in four parts, you'd use the following 
                    532: commands:
1.1.1.16  root      533: 
1.1       root      534:   transdisk >ram:df0_1.adf -s 0 -e 19
                    535:   transdisk >ram:df0_2.adf -s 20 -e 39
                    536:   transdisk >ram:df0_3.adf -s 40 -e 59
                    537:   transdisk >ram:df0_4.adf -s 60 -e 79
                    538: 
                    539: Of course, you should save each of the four files to another place before
                    540: transferring the next one with transdisk to make space in your RAM disk. 
                    541: If you have all the files on your PC, you can do the following under Unix:
                    542:   cat df0_1.adf df0_2.adf df0_3.adf df0_4.adf >df0.adf
                    543: or, under DOS:
1.1.1.2   root      544:   COPY /B df0_1.adf+df0_2.adf+df0_3.adf+df0_4.adf df0.adf
1.1       root      545: I've been told there are the following tools for the Mac to join binaries:
                    546: "ChunkJoiner 2.1.2" found under Info-Mac's <disk> directory or 
                    547: "JoinFiles 1.0.1" under Info-Mac's <text>.
                    548: 
                    549: The current transdisk can only read the standard AmigaDOS format. This means
                    550: that most games that rely on some form of copy-protection cannot be
1.1.1.2   root      551: transferred (more about disk formats in the file "FAQ")
1.1       root      552: 
1.1.1.2   root      553: ****************************************************************************
1.1       root      554: If you transfer commercial software, you must not distribute the resulting
                    555: image files, since that would be a violation of copyright law. The Kickstart
                    556: ROM has to be considered commercial software. You may only use the Kickstart
                    557: from your own Amiga, and you may not distribute Kickstart ROM files.
                    558: Please read the license that came with your software for details.
1.1.1.2   root      559: ****************************************************************************
                    560: 
                    561: 
                    562: Retrieving files from a disk image
                    563: ==================================
1.1       root      564: 
                    565: If you have a disk image file, and you want to retrieve the files from it, you
                    566: can use the "readdisk" tool. It is automatically built by "make". If you have
                    567: a disk image of a disk called "Workbench1.3D" as df0.adf, and you do
                    568:    readdisk df0.adf
                    569: the whole directory structure of the disk image will be stored in a newly
                    570: created subdirectory called "Workbench1.3D". You can optionally give a second
                    571: parameter to specify a directory where to create the output other than the
                    572: current directory.
                    573: readdisk only understands about the OFS right now. FFS disks will cheerfully
                    574: be regarded as being unreadable. Use the unixfs.device from within the
1.1.1.2   root      575: emulator if you want to transfer files from FFS disks.
1.1       root      576: 
                    577: 
1.1.1.3   root      578: Picasso 96 graphics card emulation
                    579: ==================================
                    580: 
                    581: To use this feature, you must select 68020 emulation with a 32 bit address
1.1.1.16  root      582: space (i.e. _not_ 68ec020). You also need a Kickstart 3.x ROM.
1.1.1.3   root      583: 
                    584: To specify how much graphic memory you want to emulate, use the "-U" option,
                    585: e.g. "-U 4" for 4 megabytes. Then, you need the Picasso 96 software which
                    586: is not distributed with UAE (There will be a link to the Picasso 96 home page
                    587: on the UAE Web page soon). Version 1.31 or higher is recommended.
                    588: Install the Picasso software, and make sure you enable the "uaegfx" driver.
                    589: After that is complete, reboot, and you should be able to select the new
                    590: modes from the ScreenModes program.
                    591: 
                    592: 
1.1.1.17! root      593: Saving and restoring snapshots
        !           594: ==============================
        !           595: 
        !           596: From version 0.8.17 onwards, the emulator has the capability to save the
        !           597: current state of the emulation into a "snapshot" file that can be restored
        !           598: later on.  This functionality is available through the GUI on some ports.
        !           599: It is mainly useful for computer games that either have no save game
        !           600: feature, or whose save game feature does not work on UAE (often, games try
        !           601: to save in a non-standard disk format, this can be tricky to emulate).
        !           602: 
        !           603: There are several restrictions that apply to the save state feature:
        !           604: 
        !           605:  - It is at the moment experimental.  It is not guaranteed that the
        !           606:    emulator can correctly restore every snapshot.  It is not guaranteed
        !           607:    that future versions of the emulator will be able to restore snapshots
        !           608:    saved by this version.
        !           609:  - The state of the harddisk emulation cannot be saved.  This makes it
        !           610:    essentially useless for applications, but remember it's designed for
        !           611:    games.  Be careful with games that have been installed to the harddisk.
        !           612:  - Neither ROM contents nor floppy disk contents are saved right now.
        !           613: 
        !           614: 
1.1.1.9   root      615: UAE SCSI device
                    616: ===============
                    617: 
1.1.1.17! root      618: To enable SCSI support, use --enable-scsi-device when running configure. 
1.1.1.9   root      619: The emulator provides a uaescsi.device. This device only supports
                    620: direct SCSI, which is sufficient to run applications like MakeCD. The
                    621: device does not support reading or writing with the normal Exec commands,
                    622: so you cannot mount filesystems on it right now.
                    623: 
                    624: The unit numbers of the uaescsi.device follow the Amiga SCSI
                    625: conventions: unit number "xyz" maps to the lun y of target z on bus
                    626: x. Wide SCSI busses can have targets with numbers larger than 9. In
                    627: this case the uaescsi.device pretends that there is another SCSI
                    628: bus. To avoid confusion, all available SCSI targets are listed
                    629: together with their unit number when starting UAE. Devices cannot be
                    630: added while the emulator is running.  Reseting it is not sufficient
                    631: either for technical reasons.
                    632: 
                    633: The implementation of the uaescsi.device uses cdrecord's libscg as
1.1.1.13  root      634: interface to the native SCSI system. The Linux implementation of this
                    635: library used to be included into UAE, but now the library as generated
                    636: by the cdrecord source package (ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/)
                    637: is used. As the library is not distributed seperately, you will have
                    638: to get the whole cdrecord sources, compile it and then make several
                    639: header and lib files available to the compiler if (and only if) building
                    640: UAE with SCSI support. The script "src/install_libscg" copies the files
                    641: required for the libscg in cdrecord 1.8.1.
                    642: 
                    643: Using threads is strongly recommended, because some SCSI commands can
                    644: run for extended periods of time and would block the whole emulation
                    645: during this time without threads. Use --enable-threads when starting
                    646: configure.
1.1.1.9   root      647: 
                    648: Depending on the hosts capabilities the uaescsi.device may be limited
                    649: compared to other Amiga SCSI devices. The Linux kernel by default only
                    650: allows 32KB of data per SCSI command and does not always perform SCSI
                    651: requests in parallel.
                    652: 
                    653: Setting the chunk size in MakeCD to 30KB is already too much and
                    654: causes an IO error -4 (IOERR_BADLENGTH), because the setting is only
                    655: used as a guideline. You can work around this by setting the Tooltypes
                    656: BUFFER_CHUNK_XXX to 29. On a Pentium II 350MHz with Adaptec UW SCSI
                    657: controller on board on-the-fly copying was possible from a Philips
                    658: CDD2600 (SCSI) to a Yamaha CRW4416E (IDE) at 4x.
                    659: 
                    660: 
1.1       root      661: The UAE_CONTROL program
                    662: =======================
                    663: 
                    664: In the "amiga" subdirectory, you will find two programs, uae_control and
                    665: uaectrl that provide the same functionality as the X11 GUI. uaectrl is
                    666: shell-based and works with any Kickstart, while uae_control needs the
                    667: gadtools.library and a recent version of reqtools.library, so it only works
                    668: with Kick 2.0 and upwards. Copy these two programs to the directory that you
                    669: use for harddisk emulation. They should be self-explanatory.
                    670: 
                    671: 
1.1.1.9   root      672: The timehack
                    673: ============
                    674: 
                    675: Another tool in the "amiga" subdirectory, timehack, synchronizes the
                    676: emulated Amiga's system time with the host's time every second. This
                    677: is useful when the emulation is not done in real-time or is suspended
                    678: completely.
                    679: 
                    680: 
1.1       root      681: Quick overview of the debugger commands
                    682: =======================================
                    683: 
1.1.1.2   root      684: Some (window-system based) ports of UAE have a built-in debugger. You can
                    685: press ^C at any time to enter this debugger.
1.1       root      686: Each debugger command consists of a single letter and occasionally some
                    687: parameters.
                    688: 
                    689: g:                    Start execution at the current address. 
                    690: c:                    Dump state of the CIA and custom chips.
                    691: r:                    Dump state of the CPU
                    692: m <address> <lines>:  Memory dump starting at <address>
                    693: d <address> <lines>:  Disassembly starting at <address>
                    694: t:                    Step one instruction
                    695: z:                    Step through one instruction - useful for JSR, DBRA etc.
                    696: f <address>:          Step forward until PC == <address>
                    697: q:                    Quit the emulator. You don't want to use this command.
1.1.1.3   root      698: M:                    hunt for sound modules
                    699: S <filename> <address> <len>:
                    700:                       save a sound module
1.1.1.5   root      701: C <value>:            Search for values like energy or lifes in games
                    702: W <address> <value>:  Write into Amiga memory
1.1       root      703: 
                    704: 
                    705: Sound
                    706: =====
                    707: 
1.1.1.2   root      708: If your version of UAE supports sound, you can pass parameters like frequency
                    709: or number of bits to use on the commandline; if you don't specify any, sane
                    710: defaults will be used. If graphics output is enabled while sound is output,
                    711: the emulator will be much too slow on most systems. The sound will not be
                    712: continuous. Therefore, a hack to turn off screen updates is provided: Press
                    713: ScrollLock to disable graphics, press it again to enable them.
1.1       root      714: 
                    715: The quality of the emulation depends on the setting of the "-S" commandline
                    716: option. With "-S 3", all of the sound hardware is emulated; and some programs
                    717: (e.g. AIBB) won't run with other settings. "-S 2" should sound just as good as
                    718: "-S 3" and will be much faster for some programs. "-S 1" tries to emulate most
                    719: of the sound hardware, but doesn't actually output sound. "-S 0" completely
                    720: turns off sound.
                    721: 
                    722: 
1.1.1.2   root      723: Pointers
                    724: ========
1.1       root      725: 
1.1.1.2   root      726: There are a few sites in the Internet that contain helpful information about
                    727: UAE.
                    728: 
                    729: The new "official" UAE page is located at
                    730: 
1.1.1.11  root      731:   http://www.freiburg.linux.de/~uae
1.1.1.2   root      732: 
                    733: thanks to Stefan Reinauer who is now maintaining it.
                    734: 
                    735: There, you will find links to other UAE pages. One which is especially useful
                    736: is the "UAE Discussion Board" set up by Gustavo Goedert, the address is
                    737: 
1.1.1.11  root      738:   http://amiga.nvg.org/uaeboard
1.1.1.2   root      739: 
1.1.1.3   root      740: There is supposedly a newsgroup named "alt.emulators.amiga", but I don't get
                    741: it here.
                    742: The newsgroup "comp.sys.amiga.emulations" appears to be a proper place to
                    743: discuss Amiga emulation, but, strictly speaking, it is _not_ the right place.
                    744: More appropriate places are "comp.emulators.misc", and, of course, Gustavo's
                    745: discussion board.
                    746: 
                    747: Petter Schau has written another Amiga emulator named "Fellow".  It's mostly
                    748: written in x86 assembly and only runs under DOS.  It's quite compatible and
                    749: generally faster than UAE.  The Fellow homepage is at
                    750: 
1.1.1.11  root      751:   http://www.geocities.com/SiliconValley/Peaks/5244/
1.1       root      752: 
                    753: 
                    754: Thanks & Acknowledgements
                    755: =========================
                    756: 
                    757: Thanks to all who have written me so far with bugreports and success/failure
                    758: reports when trying to run the emulator on various hardware with different
                    759: Kickstart versions. A list of everyone who has contributed to the source code
                    760: can be found in the CREDITS file (this was getting too big to keep it here).
                    761: 
                    762: Special thanks to:
                    763:   - Jay Miner, Dale Luck, R.J. Mical and all the others who built the Amiga.
                    764:   - Felix Bardos, whose HRM I "borrowed".
                    765:   - Hetz Ben Hamo mailed Peter Kittel from Commodore asking for permission to
                    766:     give Kick 1.3 away. Unfortunately, the response was negative :-(
1.1.1.5   root      767:   - Stefan Reinauer, for hosting the UAE Web page after the RWTH decided it's
                    768:     too dangerous to let students have their own Web pages.
                    769:   - Bruno Coste, Ed Hanway, Alessandro Soldo and Marko Nippula provided useful
                    770:     documentation about the Amiga
1.1       root      771:   - Fabio Ciucci gets the "Best bug reports" award for his help with the
                    772:     blitter line emulation and other problem areas.
1.1.1.3   root      773:   - Michael C. Battilana and Cloanto Software, for all their support.
1.1.1.5   root      774:   - Julian Eggebrecht of Factor 5, for providing several F5 games and a lot
                    775:     of valuable input.
1.1.1.16  root      776:     Factor 5 has made several of their classic Amiga games freely
1.1.1.5   root      777:     available for download. There are still some good people left in the
                    778:     world...
                    779:   - Jens Sch�nfeld, inventor of the Catweasel controller, donated one
                    780:     controller card.
1.1.1.11  root      781:   - J�rgen Beck, maintainer of the Amiga emulation web site "Back to the
                    782:     Roots" (http://back2roots.emuunlim.com) and everyone else who spends
                    783:     time writing to software companies asking for permission to distribute
                    784:     old Amiga games.
                    785:   - all the software companies who allow distribution of their Amiga games on
                    786:     sites like "Back to the Roots".
1.1       root      787: 
                    788: 
1.1.1.2   root      789: Authors/Maintainers
                    790: ===================
1.1       root      791: 
1.1.1.3   root      792: My address is (please read the section "Before you send email" below):
1.1       root      793: 
                    794: [email protected]
                    795: 
                    796: or, via snailmail
                    797: 
                    798: Bernd Schmidt
1.1.1.16  root      799: 21 St Stephen's Place
                    800: Cambridge CB3 0JE
                    801: UK
1.1       root      802: 
                    803: Email is more likely to be answered, and will definitely be answered much
                    804: faster. Please avoid phonecalls if you can.
1.1.1.3   root      805: I won't distribute software, neither PD or commercial. Don't send me floppy
                    806: disks without at least asking first, you will not get them back.
1.1.1.2   root      807: 
                    808: The following people have ported UAE to different platforms; you should
                    809: direct system-specific questions to them:
                    810: 
                    811: DOS port:
1.1.1.3   root      812:   Gustavo Goedert <[email protected]>
                    813:   Available: http://www.netrunner.com.br/dosuae
                    814:   Sourecode: available on the above Web page, most of it included in the
                    815:              main source (with some delay)
1.1.1.2   root      816: 
                    817: Mac port:
1.1.1.3   root      818:   Originally: Ernesto Corvi <[email protected]>
                    819:   Currently: Arnaud Blanchard <[email protected]>
                    820:   Available: http://www.pratique.fr/~jblancha/
                    821:   Sourcecode: extra package available. Bits and pieces in the main source,
                    822:               but nothing you could get to compile.
1.1.1.2   root      823: 
                    824: BeBox port:
                    825:   Christian Bauer <[email protected]>
                    826:   Available: The main UAE web page (use the Unix sources)
1.1.1.3   root      827:   Sourcecode: Included in the main source. Should compile OK.
                    828:   Notes: Christian says he doesn't have much time to spend on UAE, so if
                    829:          anyone is willing to help maintain this port, please speak up.
1.1.1.2   root      830: 
                    831: NextStep port:
                    832:   Ian Stephenson <[email protected]>
                    833:   Available: The main UAE web page (use the Unix sources)
1.1.1.3   root      834:   Sourcecode: Included in the main source. Should compile OK.
                    835:   Notes: Ian says he doesn't have much time to spend on UAE, so if
                    836:          anyone is willing to help maintain this port, please speak up.
1.1.1.2   root      837: 
                    838: Amiga port:
                    839:   Originally: Olaf 'Olsen' Barthel <[email protected]>
                    840:   Currently: Samuel Devulder <[email protected]>
                    841:   Available: Not quite sure yet. Paul Liss' Web page has binaries.
1.1.1.3   root      842:   Sourcecode: Included in the main source. Should compile OK.
1.1.1.2   root      843: 
1.1.1.3   root      844: pOS port:
                    845:   Samuel Devulder <[email protected]>
                    846:   Available: Not quite sure yet.
                    847:   Sourcecode: Included in the main source. Should compile OK.
1.1.1.7   root      848: 
1.1.1.13  root      849: OS/2 port:
                    850:   Pressenna Sockalingasamy <[email protected]>
                    851:   Available: ftp://hobbes.nmsu.edu/pub/os2/apps/emulator/uae2_0810_a1.zip
                    852:   Sourcecode: working on including it
                    853: 
1.1.1.2   root      854: XFree86/OS2 port:
                    855:   Krister Bergman <[email protected]>
1.1.1.3   root      856:   Available: http://www.kuai.se/~bellman/html/xfreeapps.html
                    857:   Sourcecode: nothing special, apparently the Unix stuff compiles cleanly (?)
1.1.1.2   root      858: 
1.1.1.3   root      859: Win32 port:
1.1.1.7   root      860:   Originally: Mathias Ortmann <[email protected]>
                    861:   Currently: Brian King <[email protected]>
                    862:   Available: http://www.codepoet.com/uae
                    863:   Sourcecode: bits merged into the main source, the rest available from the
                    864:               URL above. Still trying to merge more of it...
1.1.1.3   root      865: 
                    866: Acorn RISC PC port:
                    867:   Peter Teichmann <[email protected]>
                    868:   Available: http://www.wh1.tu-dresden.de/~sol/acorn.shtml
                    869:              http://www.wh1.tu-dresden.de/~sol/acorne.shtml
                    870:   Sourcecode: Some of it is included in the main source, but since Acorn's OS
                    871:               apparently doesn't have decent file handling, you can't even
                    872:              use the same source layout. Also needs lots of additional files.
                    873:              
1.1.1.2   root      874: Since I generally don't have the possibility to test or improve these ports,
                    875: it is a good idea to contact their respective authors if you have questions.
                    876: 
                    877: 
1.1.1.3   root      878: Before you send email...
                    879: ========================
1.1.1.2   root      880: 
                    881: Before you contact me with a problem that you have, make sure you have read
                    882: _all_ of the above. Please read also the file "FAQ", which contains a lot of
1.1.1.3   root      883: helpful information, and the README file for your specific system. 
1.1.1.2   root      884: 
1.1       root      885: I can't answer _every_ question. If you have trouble understanding this
                    886: README, either because you don't speak English very well or because you have
1.1.1.2   root      887: no clue at all about computers, please try to find some friend of yours who 
                    888: does understand this file and who can translate/explain it for you. I simply
                    889: can't explain (for example) how to use terminal programs or CrossDOS because
                    890: I don't use either, and it would be much too time-consuming anyway. This file
                    891: and the file FAQ contains about every piece of information I can give you. I 
                    892: try to help people who have questions, but sometimes it takes too much time.
                    893: 
                    894: Please don't ask for Kickstart ROM files or other copyrighted software. Don't
                    895: _send_ me stuff like this either. If you want to send me something else which
                    896: is big (>= 50K), ask me before or put it somewhere in Webspace.
1.1.1.3   root      897: If I get 3MB of screen shots or a core dump ("it doesn't work, it generates
                    898: this file"), I'm very likely to get extremely angry, I might complain to your
                    899: sysadmin, and you might lose your account. Think twice.
                    900: 
                    901: I'm also going to be extremely annoyed if you send email in HTML format.
                    902: Fight this disease!
1.1       root      903: 
                    904: Oh, and another thing: If I promise to do things (like implement new
                    905: features), and forget about them, pester me. That happens occasionally, it's
                    906: a known bug in my brain. I'll have it replaced.

unix.superglobalmegacorp.com

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