Annotation of uae/src/ChangeLog, revision 1.1.1.29

1.1.1.29! root        1: A21130 hdf_read and hdf_write APIs imported from WinUAE.  Hardfile read/write
        !             2:        operations sped up by using xlateaddr and using block transfers directly
        !             3:        from Amiga memory.
        !             4:        Correct the range of allowed Z3 fastmem sizes.
        !             5:        Import the "hardfile2/filesys2" config options from WinUAE/E-UAE.
        !             6: A21127 WinUAE returns a type from is_hardfile. Import that and rename the
        !             7:        function.  Also change get_new_device and callers to match WinUAE
        !             8:        more closely.
        !             9:        Import code for multiple filesys units (unused for now; needed for RDB
        !            10:        support).
        !            11:        Minor hardfile code cleanup, and support for NSCMD_DEVICEQUERY.
        !            12: A11122 Remove MULTIPLICATION_PROFITABLE stuff in audio.c.
        !            13:        64 bit fix in filesys.c.
        !            14:        A few compiler warnings squashed.
1.1.1.28  root       15: A11120 Remove some gtk1-specific workarounds.
                     16:        Make sure all gtk operations happen from the same thread (i.e. the
                     17:        GUI thread).
                     18:        Hide GUI window on delete event, and implement GUICMD_SHOW to unhide
                     19:        it.
                     20:        Fix a nogui compilation failure.
                     21:        Suggestions by Heikki Orsila: "anti" resampler now the default.  Rename
                     22:        "interpolation" to "resampling" in the GUI, remove "crux" and "rh"
                     23:        methods.
1.1.1.27  root       24: A11111 Disable mousehack-in-ROM for the next release.
                     25:        Fix a compile error in custom.c
                     26: A10828 Disallow mousehack utility to start if we have a bootrom.
                     27:        NTSC toggle in the GTK UI.  Some ntsc/varsync changes merged from
                     28:        WinUAE.  Also merged chipmem_agnus functions and a couple more minor
                     29:        changes.
                     30:        Fix a theoretical infinite loop in filesystem cache recycling.
                     31: A10826 Screenmode now configurable in the gui.  So is the bootrom.
                     32:        leds_on_screen is now separately configurable for windowed and
                     33:        fullscreen.  There are fullscreen toggles in the graphics page.
                     34:        Move some common code out of the graphics drivers and into drawing.c
                     35:        and picasso96.c.
                     36:        Merge from WinUAE: Tolerate more res_shift values for AGA.
                     37:        Fix some botched if statements in configure.
                     38:        Ignore comment lines when loading a config file.
                     39:        Silence keyboard init to avoid multiple messages when scanning config
                     40:        files.
                     41:        Be slightly more conservative about freeing stuff in some of the sound
                     42:        drivers.
                     43: A10825 Merge mousehack in ROM from WinUAE, minus the crazy startup logic.
                     44:        Merge a stripped-down gayle.c from WinUAE, just enough to get the A4000
                     45:        Kickstart working properly.  GUI changes to take ROM requirements into
                     46:        account, and to allow for selectable motherboard types.
                     47:        Merge A1000 ROM handling, m68k RESET instruction handling, and some
                     48:        memory reset changes from WinUAE.  m68k_reset now happens after
                     49:        memory_reset so that it picks up the right start address.
                     50:        Call handle_events during reset - sometimes we reset so quickly in
                     51:        succession that vsync_handler never happens.
                     52:        Sort the config file presets by a new option, "config_sortstr".
                     53: A10824 Fix two state save bugs (writing out incorrect values for fastmem size,
                     54:        and a memory clobber in save_cpu).
                     55:        Merge minor drawing.c changes from WinUAE.
                     56: A10822 Wire up the filters to the other interpolations beside sinc.  Undo some
                     57:        unsigned changes that came in from E-UAE.
                     58: A10820 Add amd64 support - identical to x86 support for now.  Fix a crash in
                     59:        patch_kick.  Split gtkui's memory tab into RAM and ROM.  Garbage collect
                     60:        a few things in configure.in; eliminate the p.OS port.
                     61: A10819 Changes in gtkui.c not to use obsolete GtkCList; everything replaced
                     62:        with GtkTreeView.
                     63:        Add preset hardware configurations; install them in a location based
                     64:        on $(datadir); scan them at startup & present a list of them in the
                     65:        GUI.
                     66:        Merge from WinUAE: a few small blitter changes, memory savestate restore
                     67:        changes, changed A3000 mbres memory support, audio filters, memory reset
                     68:        changes (patch_kick).
                     69:        Save & restore rom_crc32 option.  Add a kickstart_rom_crc_attempt
                     70:        option for config files.  Provide default config files and install them.
                     71:        Boot priority support.  Support mounting disk files as harddisks.
                     72:        Keyboard language support in the GUI.
                     73:        Sort the ROM list.
                     74: A10818 Scan rom path for ROMs and key files on startup.  Present the list
                     75:        of found ROMs in a combobox in the GUI.  Try all keys in the keyring
                     76:        when trying to load a Cloanto ROM.
                     77:        Robustify the default_xlate handling.
                     78:        Clear Z3 memory info before restoring a saved state.  Update GUI after
                     79:        state restore.  Restore correct ROM from CRC32 value.  Add SHA1
                     80:        functions.
                     81:        Reorder regstruct members as per E-UAE.
                     82:        Don't clear memory on kickstart change when restoring state.
                     83:        Update m68k state restore code from WinUAE.
                     84:        Add an install target to the toplevel Makefile.
                     85:        Further GUI cleanup; add hardfile entry dialogs.
                     86:        Minor merge from WinUAE's gencpu.c, primarily prefetch and cycle
                     87:        counting stuff.
                     88:        Enforce a minimum buffer time in (some of) the sound drivers.
                     89:        Merge WinUAE's "anti" interpolation.
                     90:        Update minimum required GTK version in configure.
                     91:        Define a system ROM path and scan it at startup.
                     92: A10817 Move ROM management to a separate file.  Add CRC16 functions.
                     93:        Slight adjustment to zfile API (close->fclose).
                     94:        Drive type enum moved to options.h.
                     95:        Set up a GUIDEP directory as in E-UAE; move gtkui.c and nogui.c.
                     96:        Add a small util.c to gui-gtk.
                     97:        Savestate fixes in newcpu: update changed_prefs.
                     98:        Some disk changes from WinUAE, especially drive type updates.
                     99:        Implement drive type selection in the GTK UI.
                    100:        Use GTK's new file chooser dialogs instead of the old ugly file
                    101:        selection boxes.
                    102: A10815 Import a slightly modified version of E-UAE's new traps.c.  Merge
                    103:        bsdsocket updates (still disabled due to problems) and related
                    104:        infrastructure.
                    105:        Also merge the zfile interface changes (but no implementation yet)
                    106:        from WinUAE.
                    107: A10813 Disable idle on stop if there are any outstanding filesys packets.
                    108:        Try to deal more gracefully with the user closing the GUI window.
                    109: A10812 Merge a variant of the mixed stereo enhancements from WinUAE.
                    110:        Merge a change from WinUAE to emulate a CIA TOD bug.
                    111:        More whitespace fixes.
                    112:        Changes from Antonio Ospite and Florian Ernst, submitted by Peter Volkov
                    113:        for gentoo:
                    114:        Clean more stuff in the Makefiles.  Save changed_prefs, not currprefs,
                    115:        in gtkui.  Fix some memory leaks.  Some gtkui type fixes.
                    116: A10811 Overhaul the CPU type configuration.  Use the WinUAE idea of cpu_model
                    117:        and fpu_model entries in the prefs structure.  Simplify by getting rid
                    118:        of cpu_level and eliminating the special 020+FPU level from the CPU
                    119:        generators.  Add 030 MMU and 060 stuff.
                    120:        Get rid of read_processor_time entirely; always use sound or gtod to
                    121:        sync with real time.  If a sound buffer fills while the m68k is in
                    122:        stopped state, block on sound output.  Increase nr_gtods_to_skip if
                    123:        we're calling gettimeofday too often.
                    124:        Import newer version of sd-alsa from E-UAE.  Fix several sd-sdl
                    125:        problems.  Lower default sound buffer sizes.  Change configure script
                    126:        to warn against sd-sdl unless there's nothing better.
                    127: A10810 Some cfgfile merges from WinUAE: split up cfgfile_parse_option into
                    128:        _host and _hardware variants.  Add a cpu_model member to the prefs
                    129:        structure, but don't export it to the config file (yet?)
                    130:        Delete some obsolete options.
                    131: A10808 Style and miscellaneous other small changes intended to unify this with
                    132:        the other trees.
                    133: A10806 Kill special_mem, which is only needed for JIT.
                    134:        Support POT1DAT.
1.1.1.26  root      135: A10805 Implement a way not to block on sound output, using the time for m68k
                    136:        cycles instead.
                    137:        Remove "config.h" and all of its #includes.
                    138:        Merge various audio bits from E-UAE, including sinc interpolation.  Add
                    139:        GUI support for it.
                    140:        Merge random other changes from E-UAE.
                    141:        Revert previous playfield delay changes which broke the RSI demo.
                    142:        When setting picasso mode in xwin and sdlgfx, check whether we keep the
                    143:        same dimensions, and skip the shutdown/init cycle if so.
                    144:        Kill 8 bit audio support.
                    145: A10804 Make fullscreen and windowed graphics configurations independent.
                    146:        Fix some issues with SDL and fullscreen.
                    147:        Move call to InitPicasso out of reset_drawing.
                    148:        Use gettimeofday for the max CPU setting, rather than rdtsc - at least
                    149:        if it is accurate enough.
                    150: A01111 Fixes to compile with gcc-4.1.
                    151: A00707 Imported keymap stuff from euae.
                    152: 9F0704 Playfield delay code imported from WinUAE.
                    153:        If produce_sound is 0, kill audio event on state restore.
1.1.1.25  root      154: 9F0702 Deleted really old mousehack (sprite follow) code, since there are a
                    155:        number of better alternatives today and it didn't work so well with
                    156:        the inputdevice stuff.
                    157:        leds_on_screen can be toggled in the GTK UI; hscale widths fixed.
                    158:        Lose 24bit checkbox; use 68EC020 names.  Disable Z3 and P96 memory when
                    159:        using EC CPU.  CPU type settings take effect only after reset.  68000
                    160:        mode is always slow but compatible.
                    161:        Some state save changes merged from WinUAE.
                    162: 9F0701 Imported inputdevice code from WinUAE; Linux specific inputdevice code
                    163:        partly from EUAE.  Breaks the autofire stuff I added :-/
                    164:        uae_reset now takes an argument.
                    165:        Imported more romlist code and a few other bits and pieces from WinUAE.
                    166:        Removed memory-smashing remains of AHI.
1.1.1.24  root      167: 9F0629 Adapt autofire logic a little to work better with my new four-button
                    168:        Competition Pro.
                    169:        More small and relatively unimportant differences merged from WinUAE.
                    170:        Delete more fast_copper pieces that escaped the previous purge.
                    171: 9F0317 Fix bsdsocket compilation problems.  Include picasso96.h in
                    172:        inputdevice.c.
                    173: 9F0211 Add NOINLINE macro.  Turns out gcc-3.3.3 likes to inline large functions
                    174:        but not small ones so we have to mess with noinline and always_inline
                    175:        attributes.  Fish.
                    176: 9E1113 Compile with gtk-2.0.
                    177: 9E1024 Remove fast copper code.
                    178:        Created inputdevice.c; moved over some code from custom.c.
                    179:        Merge further small pieces from WinUAE.
1.1.1.23  root      180: 9E1011 ALSA sound and SDL sound fix from Heikki Orsila.
                    181: 9E1010 Remove AHI code from audio.c; WinUAE didn't end up using it so there's
                    182:        no point keeping it around.
                    183:        Clear registers on reset; use calloc in mapped_malloc.
                    184:        Work around REGPARAM problems with newer compilers.
                    185:        Lose cpuopti, no point on current hardware and gcc breaks it too often.
                    186:        Upgrade to newer version of autoconf (ugh).
                    187:        Remove option stereo to sound_stereo to match WinUAE.
                    188:        Make some variables static in cia.c.
                    189:        Rename BPLPT[LH] to BPLxPT[LH], again to match WinUAE.
                    190:        Import new identify.[ch] from WinUAE.
                    191:        Move over exception and prefetch handling from WinUAE.  Also remove last
                    192:        traces of old (pre-Bernie) JIT compiler.
                    193:        Import most of WinUAE's debugger.
                    194: 9C1003 gcc3 broke lots of optimizations.  Fix the lossage by making
                    195:        STATIC_INLINE contain the new always_inline attribute.
1.1.1.22  root      196: 9C0702 Correct an overflow problem in the CIA code.
                    197: 9C0407 Sprite code updates; correct CIA memory access handlers (Toni).
                    198: 9C0306 Make w/d representable for fsdb_win32.
                    199:        Don't reorder children of directories; this causes duplicates in
                    200:        exnext.
                    201:        Reorder the code for the 9/10 vsynctime hack a bit.
                    202:        Add code from Toni to remember the last value written to a custom
                    203:        register and to return it when reading from a write-only reg - this
                    204:        seems to match actual hardware behaviour.
                    205:        Add some more blitter tweaks (Toni).
                    206: 9C0227 When waking up the copper from a blitter wait, recheck that vpos is
                    207:        larger than vcmp - especially with masking going on, this may not be
                    208:        the case.
                    209:        X11: When changing picasso resolution, reinitialize everything - our
                    210:        bitmap might be too small otherwise.
                    211:        When configuring hardfiles, use specified blocksize, not 512 (Toni).
                    212:        In SPRxCTL_1, don't examine vstart position before computing it (Toni).
                    213: 9C0225 Some cfgfile fixes, more blitter timing changes and one big sprite
                    214:        statemachine update from Toni.
                    215:        Some copper timing fixes.
                    216:        Fix flag bit confusion in action_fh_from_lock (taken from earlier
                    217:        WinUAE).
                    218: 9C0220 Blitter timing update from Toni.
                    219:        Copper timing "theory" changed (me/Toni).
                    220:        If we have a rdtsc insn, always synchronize with realtime in
                    221:        vsync_handler.
                    222:        Don't reset the lof bit when restoring state.
                    223:        When restoring disk image names, put them in changed_prefs (Toni)
                    224:        Return error in action_seek if trying to seek past end of file (Bernd
                    225:        Roesch).
                    226:        SDL fixes by Maik Qualmann.
                    227:        Fix for gtk warnings when updating floppy LEDs (Maik Qualmann).
1.1.1.21  root      228: 9C0216 Fix the clockspeed detection - we were getting lots of alarm signals
                    229:        even after it had finished.
                    230:        Some tweaks for the GUI - and also fix the problem with waiting on the
                    231:        GUI semaphore even if no GUI is present...
                    232:        More accurate blitter timing (Toni).
                    233:        Support for A1000 bootrom and CDTV/CD32 extended ROMs (Toni).
                    234:        Fix filesystem lockup with "copy dh0: ram: all".
                    235:        Fix for JIT and more than 2MB chipmem from Toni
                    236:        Make fsdb_win32 accept more valid Windows filenames (Toni).
                    237: 9C0215 Fix filesystem reset code that used to access freed memory.
                    238: 9C0213 gtk UI fixes from Maik Qualmann.
                    239: 9C0113 Configury & bsd compilation fixes from Krister Walfridsson.
                    240:        Match up lock/unlock calls in wgfx_do_flushline (found by Axel
                    241:        Doerfler).
                    242:        Fix potential crash taking strlen of NULL in filesys.c (Axel Doerfler).
                    243:        Set diskdmaen to 0 in dsk_dmafinished (Toni).
1.1.1.20  root      244: 9B1230 lockscr/unlockscr fixes in drawing.c.
                    245:        Add sdlgfx from Bernd [4] Lachner.
                    246:        Filesystem asm code improvements from Toni (make it pic, call
                    247:        setup_exter earlier in the boot sequence, etc.)
                    248:        Also add Toni's patch to make rtarea position configurable (keep it
                    249:        at 0xF00000 for now, though).
                    250:        Avoid installing filesystem stuff if user didn't request to mount
                    251:        directories.
                    252:        BEAMCON0 is only available with ECS Agnus.
                    253:        Revert some bogus parts of the write_log patch.
                    254: 9B1219 Add some missing clipping to the Picasso code.
                    255:        Limit number of illegal-mem warnings.
                    256: 9B1217 Fix the GUI crash when changing floppies.
                    257:        Changes to support programs that change between HAM/no HAM in the
                    258:        middle of a line.
                    259:        Some bug fixes, and a big fprintf->write_log patch from Alex Kazik.
1.1.1.19  root      260: 9B1125 Panning support for Picasso96 (in part from WinUAE).
                    261:        More state save fixes from Toni, and a small disk.c update as well
                    262:        which corrects track/gap lengths.
                    263:        More evolution of the AHI code.
                    264: 9B1124 Merged a few more small pieces from WinUAE (larger pieces in case of
                    265:        the Picasso code).
                    266:        CLXCON2 was never called or statesaved.  Fixed by Toni.
                    267:        Sound sample frequency now always based on PAL timings.
                    268: 9B1123 Goodness!  Massive memory corruption bug in picasso96.c - passing
                    269:        last color changed to DX_SetPalette instead of count.
                    270:        Fixes for the AHI code.
                    271:        Changed prefetch emulation to be more similar to the one MAME uses.
                    272:        Trace mode fixes (Bernd Roesch & myself).
                    273: 9B1122 Redo the ExNext code in the filesystem to make sure we always match
                    274:        opendir with closedir and to fix some renaming problems.
                    275:        Fix hd changing code in gtkui.
1.1.1.18  root      276: 9B1121 Mini-merge of noncontroversial WinUAE filesys.c code.
                    277:        Add harddisk page to gtkui.  Also change gui behaviour to wait for
                    278:        the user to unpause before starting the emulator.
                    279:        Add Toni's drive-led display.
                    280:        Fixed a rather amazing source of crashes (we could fail to notice
                    281:        the end of the frame in some cases).
                    282:        Default to scanline mode.
                    283:        Some tweaks to the SDL driver and the Win32 gui, mostly buffer-size
                    284:        related.
                    285:        Moved C source files back from tools directory (but still build them
                    286:        there) to preserve my CVS history.
                    287: 9B1119 Move all the build tools (gencpu, cpuopti etc.) into their own
                    288:        directory which is configured separately.  This was necessary to
                    289:        avoid picking up SDL CFLAGS (which can #define main to _SDL_main, and
                    290:        that breaks if you don't link with SDL), and to make cross-compiling
                    291:        at least a little more likely.
                    292:        Remove sanity check for SDL header file - rely on sdl-config getting
                    293:        things right (not that we have much choice).
                    294:        Move thread support code past sound code in configure, and make sure
                    295:        that SDL sound enables threads.
                    296:        Move sername into options structure.
                    297:        Check for existance of isinf/isnan before using them.
                    298:        Rather large WinUAE merge - this tree compiles again under Windows.
                    299:        Most of the additional features are missing though.
                    300: 9B1118 Restore code to mirror banks for 24 bit address space which got lost
                    301:        when all the JIT memory changes were put in.
                    302:        Speed up the CPU time calibration code.
                    303:        Fix the broken file selector handling in the gtk ui.  Add kickstart
                    304:        selector.
                    305:        Don't call XCloseDisplay, it apparently leads to crashes.
                    306:        Try to solve the "missing write_log" problem in a sane way.
                    307:        SDL joystick support.
                    308:        When configure detects win32, use fsdb_win32 rather than fsdb_unix.
                    309: 9B1117 Proper masking for DDFSTOP; proper handling of AUDLEN == 0, changed
                    310:        delayoffset code, gencpu BFINS fix, and lots of disk updates (all
                    311:        Toni).
                    312:        Some additional regs for move2c/movec2 (also by Toni IIRC)
                    313: 9B1115 COLOR_READ typo fix (Toni).
                    314: 9B1024 Filesystem reset leak fixes (Brian)
                    315:        Allocate enough memory for custom state saving.
                    316:        bploff renamed to bpl_off.
                    317:        AGA copper cycle diagram (Toni)
                    318:        Disable disk_data_used optimization.
                    319: 9B0926 Delayed palette setting for Picasso modes.  Also fixed problem with
                    320:        palette setting in CLUT emulation - we need to redraw the entire
                    321:        screen if that happens.
                    322: 9B0921 Miscellaneous small bugfixes.  Delete some obsolete code.
                    323: 9B0907 Beginnings of SDL support.  Exterminated some penguins.
                    324: 9B0825 Some xwin.c fixes from Maik Qualmann.
1.1.1.17  root      325: 9B0730 Some sprite state machine tweaks.  Fix sprite vs. DIW comparison.
                    326:        HAM linebuffer was too small by half - oops.
                    327:        Make absolutely, positively sure that when hsync_handler calls
                    328:        sync_copper_with_cpu, we don't take any invalid shortcuts.
1.1.1.18  root      329:        Memory management changes for JIT (Bernie [2], mostly).
1.1.1.17  root      330: 9B0729 Silly mistake - need to call flush_plane_data unless plfleft is
                    331:        -1, even if no planes were enabled.
                    332: 9B0728 Small hack to reduce the time we lose with unnecessary
                    333:        disk_doupdate_read calls.
                    334:        Avoid calling flush_plane_data if we have no bitplanes enabled.
                    335:        Tweak the SPCFLAG_INT handling to make "Delirium" demo work.
                    336:        Limit rate of DDF warning messages.
                    337:        Adjust display parameters so that things are shifted to the left
                    338:        even more.
                    339:        Fix (hopefully) CIA & blitter saving code.
                    340: 9B0727 Copper code reorganized; speedup code rewritten.  Can now be
                    341:        enabled with a GUI setting.
                    342:        Fixed the delayoffset stuff.
                    343: 9B0725 AGA sprites, and some patches to sprite/playfield collision code,
                    344:        mostly by Toni.
                    345:        Fixed a small sprite restore problem; added missing code to map
                    346:        fastmem banks when restoring them.
                    347:        Some more state saving updates from Toni.
                    348: 9B0724 Fix a nasty bug in the copper SKIP instruction introduced by recent
                    349:        changes.
                    350:        Update the FAST_COPPER code.  Not quite enabled yet.
                    351:        More work on the memory configuration stuff.
                    352:        Fix CPU type writeout in cfgfile.c (taken from WinUAE source).
                    353:        Move the WOC demo BPLCON0 fix to compute_toscr_delay (Toni).
                    354:        Added Toni's new disk patches, which include HD disk support by
                    355:        Adil Temel.
                    356:        Rewrote the memory and audio save/restore code.
                    357:        Mask DDFSTOP with 0xFE, not 0xFC.
                    358: 9B0723 Yet another new and correct copper state machine (this time for sure)
                    359:        Fix some AGA problems in DDF speedup code.
                    360:        In gencpu.c, branch insns return a hardcoded cycle count; this had
                    361:        not been updated for the CYCLE_UNIT stuff.  Fixed.
                    362:        xwin.c: If mouse is grabbed, we don't need mousehack.
                    363:        Don't clear audio state if produce_sound == 0; this causes problems
                    364:        if we want to turn the sound back on.
                    365:        If an audio channel had a period of PERIOD_MAX, allow AUDxPER to
                    366:        set its evtime back to a reasonable value.
                    367:        Massive cleanup of memory initialization code; it will now use changed
                    368:        prefs on reset.  Added some memory options to gtkui.c.
                    369:        Added Toni's state saving code, then added gtkui options and code to
                    370:        initiate saving/restoring.
                    371: 9B0722 filesys.c: Fix writeout of hardfile params (Bernie [2])
                    372:        Add an A1000 Kickstart disk loader (Gerald Schnabel).  Got rid of
                    373:        the automount_uaedev code; we can detect the Kickstart version and
                    374:        do the right thing.
                    375:        Deleted a few unused variables (Toni)
                    376:        Avoid aborting in decode_ham if Amiga code turns on the HAM bit but
                    377:        has too few bitplanes (found by Toni).
                    378:        Make the dummy mem bank return other values than 0; helps some
                    379:        stupid memory detection code.
                    380:        Implemented a little exec task lister for the debugger.
                    381:        Added new debugger commands from Mark Cox.  Improved his copper list
                    382:        debugger by adding recorded timing information to it.
                    383:        MOVE16 fixes from Gwenole Beauchesne.
                    384:        xBCD fixes by Maik Qualmann, with some additional flag fixes by myself
                    385:        (ABCD & SBCD behave exactly like on a 68000 now; dunno about NBCD).
                    386: 9B0520 AGA bscan2 fixes and disk.c kickstart speedup fixes from Toni.
                    387:        Remove bogus changes I made to one of Toni's earlier disk.c updates.
                    388:        Call RethinkICRA/B from INTREQ (suggested by Toni).
                    389:        Properly save mixed_stereo setting.
                    390:        NEGX uses X and Z (Bernd Roesch).
                    391:        Danish keyboard support (Jesper Bojesen).
1.1.1.16  root      392: 9B0311 Repair "emulated but no output" sound setting.
                    393: 9B0310 Fix massive bug introduced in do_cycles_slow with the rescaling
                    394:        changes.
                    395:        CLXCON logic updated for AGA (Toni).  Change meaning of collision_level
                    396:        and add support for it in cfgfile.c.
                    397: 9B0309 Fix problem where a fsdb file could prevent deletion of otherwise
                    398:        empty directory discovered by Torsten Enderling.
                    399:        Rescale return values of CPU emulator functions.
                    400: 9B0225 Undo parts of the audio changes that made the "accurate" setting the
                    401:        default.
                    402: 9B0221 Make fsdb_unix compile again.
                    403: 9B0219 Fix ddf for cases where start isn't aligned to fetchunit.
                    404:        Fix some problems with the sound code going into infinite loops or
                    405:        crashing.
                    406:        Try to re-add Toni's ddf delay fixes properly.
                    407:        Added a fix from Krister Walfridsson for X11 SHM code.
                    408:        Rename OBJECT_NOT_FOUND to OBJECT_NOT_AROUND (not sure why, but the
                    409:        win32 port does this; Fellow picked it up as well...)
                    410:        Give in and allocate ainos with xcalloc.
                    411:        Import fsdb_win32 code from Fellow.
                    412:        Some tidyup and fixes in fsdb code.
                    413:        Lose the lastdiv10 variable, and update CIA timers when reading them
                    414:        (mostly by Bernie [2] Meyer)
                    415:        Move reset_uaedevices and get_new_device to filesys.c.  Add extra
                    416:        parameter to get_new_device.
                    417: 9B0213 Fix mouse pointer jumping bug in X11 code (Ralf Hoffmann)
                    418:        Scaled event handling by a factor of 512.  This allows more accurate
                    419:        sound output frequencies, as well as more fine grained CPU speed
                    420:        settings.
                    421:        Implemented totally untested emulator side AHI support.
                    422: 9B0211 Partially reverted changes made to the audio event code in 0.8.0.
                    423:        Implemented "mixed" stereo.
                    424: 9B0210 Fixed invisible sprite bug - sprite_width got a new meaning, and not
                    425:        everything had been updated.
                    426: 9B0121 cycles => get_cycles () (from Bernie [2] Meyer's JIT patchkit)
                    427: 9B0120 Final bugfix in speedup code (plfleft got set too early).
                    428: 9B0118 Fixed SPEEDUP code for AGA.  Speedup now starts when fetch_state is
                    429:        fetched_plane0.
                    430: 9B0115 First batch of AGA playfield changes (Toni & myself).
                    431: 9B0110 Small fix for the m68k_run macro (Bernie [2] Meyer)
                    432: 9B0109 Use ntscmode from prefs structure (Dwayne C. Litzenberger)
                    433:        Some 040 FPU fixes (Bernie [2] Meyer)
                    434:        Delay DSKREADY a while; fix other small disk bugs (Toni Wilen)
                    435: 9A0902 F0FF10 is now a puts () calltrap.
                    436: 9A0830 Add some missing initializations in filesys.c, thanks to debugging by
                    437:        Harald Frank.
                    438: 9A0827 Fix a crash with framerate != 1.
                    439:        Don't allow programs to see left & right or top & bottom simultaneously
                    440:        with the keyboard joystick replacements.  (Gee, games on the CPC and on
                    441:        the Amiga actually have something in common - some of them crash when
                    442:        the joystick is pushed in too many directions at the same time...)
1.1.1.15  root      443: 9A0825 Put in the new sprite code.  This has existed for many months but
                    444:        I've only now found the final bugs.
                    445:        New version of Bernd Meyer's special_mem code.  Also add his
                    446:        set_special/unset_special code, the noflags changes for gencpu,
                    447:        and a fix for cpuopti's string matching.
                    448:        Tiny clarification in table68k.
                    449:        Add 68040 support from Basilisk.
                    450:        readcpu.h is now included from newcpu.h.
                    451: 9A0824 Rather massive overhaul of the DDF code.  Many other timing fixes
                    452:        (copper state machine mostly) (Sam Jordan and myself)
                    453:        Get rid of stupid optimizations in color recording.
                    454:        Synchronize CPU and copper in custom_wget.
                    455: 9A0816 Introduce variable "special_mem", set it in each memory handler
                    456:        that doesn't work on real memory (Bernd Meyer).
1.1.1.14  root      457: 9A0815 Fix a really stupid bug in cfgfile_strval.
                    458:        Nonfunctional support for switching between windowed/fullscreen modes
                    459:        in gtkui.
                    460:        Add (semi-broken) support in the debugger to create a trace logfile.
                    461:        Take out most port-specific flags handling; x86 version kept with
                    462:        slight name changes to indicate that this is code is suitable for
                    463:        other ports as well.  Took out HAVE_GAS while I was in configure.
                    464: 9A0811 Fix the line doubling slowdown.
                    465: 9A0809 Software autofire.
                    466:        Remove one line from Makefile.in in the hope it will fix the build
                    467:        errors people are seeing.
                    468: 9A0807 Tighten up some minor aspects of spcflags handling.
                    469:        Fix an AGA bug in customreset.
                    470:        Set default CPU speed to approximate a A500.  Tweak gencpu so that the
                    471:        timings for this are more accurate.
                    472:        Ignore T0 bit if not emulating a 68020.
                    473:        Add an option to set the number of emulated floppy drives.
                    474:        Improve the mfmcode function a bit.  Faster and more accurate.
                    475:        More SCSI patches from Patrick.
                    476:        Add gui_data structure from WinUAE.  Turn on gui leds again.        
                    477: 9A0725 Fix incorrect define of m68k_run for non-x86 systems (could have
                    478:        sworn I already fixed that).
1.1.1.13  root      479: 9A0723 Some SCSI patches by Patrick Ohly (which I got two months ago... oops)
                    480:        Filesystem fixes from Brian.
                    481:        AGA updates from Toni.
                    482: 9A0627 Apydia loader fixes from Toni.
                    483: 9A0611 Fix bug in filesys.c causing in-use ainos to get discarded.  Thanks
                    484:        to Brian for the analysis.
                    485: 9A0608 Added some disk.c changes from Toni and a crude hack of my own to
                    486:        speed up disk accesses done by the Kickstart.
                    487: 9A0330 Change blitter not to translate memory addresses to native.  Had to
                    488:        disable 32 bit blits.
                    489:        Floppy code changes (Toni Wilen)
                    490:        Delete GGI port.
                    491:        Fix toggle_inhibit_frame (Brian).
                    492: 9A0228 Some WARPUP fixes, and changes to accomodate broken Amiga gzip (Sam
                    493:        Jordan).
                    494: 9A0221 Tweak POTGO a bit.  Seems to work with BC Kid now.
                    495: 9A0220 Fix off-by-one errors in expansion.c (Toni Wilen).
                    496:        Remove AGA checks in DDFSTRT/DDFSTOP (Toni Wilen).
                    497:        Turn off/restrict some warning messages.
1.1.1.12  root      498: 9A0209 Fix some problems where the blitter nasty flag wouldn't ever get reset.
                    499:        cia.c: Set all parallel port related bits to 1 when reading.
                    500: 9A0208 gencpu.c: Fix saved PC for division by zero exception (found by Sam
                    501:        Jordan).
                    502: 9A0131 update_copper: Mask until_hpos properly.
                    503:        Delay values are masked to 3 bit in hires mode (Sam Jordan).
                    504: 9A0102 Only delay horizontal copper wait if vertical position matches exactly.
                    505:        Tweak vblank end position for sprites.
                    506:        Calculate playfield borders more accurately for case where we have
                    507:        sprites.
                    508: 9A0101 Reintroduce ev_copper; use it sparingly for longer waits within a
                    509:        single line (but _not_ to time reads).
                    510:        Fix a dumb bug in yesterday's changes that screwed up scrolling.
                    511: 991231 drawing.c: Cruftectomy.  genp2c.c: Gone.  X86.S: mostly gone.
1.1.1.11  root      512: 991229 Always use NTSC vblank_lastline for sprite purposes.
                    513:        Make sprite logic recognize vertical stop even if vertical start has
                    514:        not been reached (found by Sam Jordan).
                    515:        Prevent move2c/movec2 instructions from incrementing the PC if they
                    516:        raise an illegal instruction exception (found by Toni Wilen).
                    517: 991212 ncurses port compiles again.
                    518:        Disable serial interrupts in custom.c; they break things.
                    519: 991208 Add a missing decide_line call in update_copper_1.
                    520: 991206 Fix copper emulation to use state machine figured out by Sam Jordan.
                    521: 991205 Fix event table corruption in disksync_handler.
                    522: 991113 gencpu.c: Fix a problem with BTST.
                    523: 991110 fpp.c: Initial set of changes merging code from Lauri Pesonen.
                    524: 991024 Add missing type in m68k_run1.
                    525:        Divisions by zero clear overflow bit.
1.1.1.10  root      526: 991023 Fix compilation problem for ! HAVE_STEREO_SUPPORT.
                    527: 991022 Rewrite disk read code to transfer some DMA words every raster line.
                    528:        fpp_movem_index1 and fpp_movem_index2 were reversed (Brian King, Sam
                    529:        Jordan).
                    530:        Fix accuracy of fpp fix insns (Sam Jordan).
                    531:        Allow ports to define their own FP 68881/host conversion functions (Sam
                    532:        Jordan).
                    533:        Get rid of all the HAVE_GET_WORD_UNSWAPPED code.
                    534:        Fix prefetch for insn opcodes (Sam Jordan).
                    535:        Fix call insn syntax in X86.S.
                    536:        Tidy up sound interpolation support.
                    537:        Readd old command line arg parsing.
                    538:        Change "long unsigned int" to "unsigned long" in a couple of places.
                    539:        Use Sam's version of the filesys.c fixes (action_parent_fh,
                    540:        action_change_mode).
                    541:        Fix a place in disk.c where a mfm buffer was zeroed instead of 0xaa'ed
                    542:        (Sam Jordan).
                    543: 991006 CPU emulator fixes by Christian Bauer
                    544:        tui.c compilation fixes by Christof Petig.
                    545:        Fix operand in one insn in X86.S (Brian).
                    546:        zfile.c fix for filenames with embedded spaces (Ingo Ruhnke).
                    547:        linux-ppc configury patch (Holger Jakob).
                    548:        s,static __inline__,STATIC_INLINE, (Sam Jordan).
                    549:        cfgfile.c: Don't use "t" modifier in fopen (Sam Jordan).
                    550:        serial.c: Don't close file if fd < 0 (Sam Jordan).
                    551:        filesys.c: Open files on readonly devices with O_RDONLY (Sam Jordan).
                    552:        Fix bugs in parent_fh and change_mode actions (Sam Jordan).
                    553:        WARPUP patch (Sam Jordan).
1.1.1.9   root      554: 990621 Initial version of Richard Hoffmann's sound interpolation patches.
                    555:        Fix a crash in action_set_comment.
                    556:        De-inline 68k trace code.
                    557: 990508 Fix rdtsc asm statement to show that edx is clobbered.
                    558:        gtkui.c: Add pause button (Patrick Ohly)
                    559:        configure.in: Check for -mpreferred-stack-boundary compiler option
                    560:        and use it if found to set a sane value.
                    561: 990429 X11 patches by Patrick Ohly.
                    562:        Filesystem code extended to keep a simple database with information
                    563:        about each file that is not representable on the host FS, such as
                    564:        script/pure bits or filenotes.
                    565: 990417 Bits and pieces merged from the Win32 port; mostly options stuff. Got
                    566:        rid of getopt; added chipset options to prefs structure.
                    567: 990411 Patches by Patrick Ohly: SCSI support and timehack tool.
                    568: 990410 Applied easy parts of Toni's latest AGA patches.
                    569: 990315 Attempts to fix Picasso crashes in SVGAlib version.
1.1.1.8   root      570: 990216 picasso96.c: Some optimizations.
                    571:        cfgfile.c: Save target specific options. Allow simple/smart choice
                    572:        for centering options. Delete mount_data junk, substitute immediately.
                    573:        Whitespace handling fixes.  Fix config_description typo.
                    574:        m68k flag handling redone.
                    575: 990212 Implement rotate instructions without loops.  Some other m68k
                    576:        optimizations.
                    577:        Some configure.in fixes.
                    578: 990122 gtkui.c: Fixes for gtk 1.1.13.
                    579: 990113 genp2c.c: Don't include custom.h.
                    580: 990109 Some fixes in cfgfile.c.  Make svga.c compile again.
1.1.1.7   root      581: 981229 Miscellaneous fixes in the new config file stuff.
                    582:        In config files, allow 68ec020 as CPU type, and get rid of 24 bit
                    583:        addressing option.
                    584:        Make the get_disp_ea non-inline.
                    585:        SGI sound support (Ari Heikkinen).
                    586:        More updates by Brian:
                    587:        audio.c: Handle frequency, too, when changing sound prefs. Do some
                    588:        work in update_audio even if not generating sound output.
                    589:        filesys.c: Request 50 buffers in our parampacket.
                    590:        Assorted right control key fixes.
                    591:        Some updates in od-win32 (not nearly done...)
                    592: 981228 Config file and option handling redone; based on work by Brian.
                    593:        Rename UAEn: devices to DHn: (Brian).
                    594:        filesys.c: Implement ACTION_CHANGE_MODE, ACTION_PARENT_FH; add support
                    595:        for variable hardfile blocksizes (Brian).
                    596:        Some Picasso96 updates (Brian).
                    597: 981226 Win32 fsusage.c fixes; zfile bug fix; gui_fps addition (Brian).
                    598: 981221 Fix gtkui to work with newer versions of gtk.
                    599:        Fix gencpu so that FPU emulation doesn't crash when unswapped word reads
                    600:        are available.
                    601: 981129 gencpu.c: Delete all the queue_amode stuff again.
                    602:        xwin.c: Allow switching between DGA and window mode (Marcus Sundberg).
                    603:        DGA seems broken in X 3.3.3, however :(
                    604: 981011 Teach cpuopti.c about epilogues that increment esp by popping.
                    605: 980930 Add BSD socket code (Mathias Ortmann).
                    606: 980923 filesys.c: Implement FH_FROM_LOCK (Brian King)
                    607: 980823 xwin.c: French keyboard patch (Rapha�l Poss).
                    608: 980810 Fix RDTSC detection (Rapha�l Poss).
                    609:        newcpu.c: Patch by Brian King to display what kind of CPU table is
                    610:        built.
                    611: 980716 More AGA patches: use new macro GET_PLANES to calculate number of
                    612:        bitplanes from BPLCON0; adapt the copper code; add BPLPT[HL][78] and
                    613:        BPLDAT[78] (Toni Wilen)
1.1.1.6   root      614: 980715 Change sd-uss/sound.c not to keep a file open in setup_sound, to
                    615:        support reconfiguration.
                    616: 980713 Fix m68k detection in configure.in. Clear execbase after allocating
                    617:        chipmem (Holger Jakob)
                    618:        od-dos update, tui.c patches (Gustavo Goedert)
                    619:        Get rid of --enable-sound, always enable sound.
                    620:        Make svga.c compilable.
                    621: 980712 md-ppc-gcc patches (Holger Jakob)
                    622: 980707 gtk ui: Better CPU speed selection.
                    623:        Move initializations from add_filesys_unit to set_filesys_unit.
                    624: 980706 AGA patches by Toni Wilen: Call calcdiw when changing fmode; fix
                    625:        references to bplcon variables to go through dp_for_drawing; ifdef out
                    626:        some code that's too hard to fix for now.
                    627:        "Fix" the AGA color code. In pfield_linetoscr_aga, add lframe_end and
                    628:        diw_end parameters and use them. Add some fill_line code for AGA. Make
                    629:        sure no code touches acolors if [AGA_CHIPSET != 0]
                    630:        New function finish_line_aga.
                    631: 980705 drawing.c/custom.c: Get rid of line_changed, replace with a single
                    632:        variable thisline_changed. Pass it to hsync_record_line_state and
                    633:        evaluate it there. Get rid of BORDER_PREV and BORDER_NEXT states;
                    634:        add LINE_BLACK/LINE_REMEMBERED_AS_BLACK to implement scanlines option.
                    635:        Remove code in pfield_draw_line that checks line_changed.
1.1.1.5   root      636: 980702 filesys.c: New function move_filesys_unit.
                    637:        Win32 GUI fixes.
                    638: 980701 gtk UI beautification and code cleanup (Michael Krause)
                    639:        Beginning to make audio code run-time configurable (mostly by Michael
                    640:        Krause)
                    641:        Fix off-by-one errors in memory check handlers (Jake Hamby)
                    642:        configure: Add AM_CYGWIN32, AM_EXEEXT and AM_MINGW32 and fix some Win32
                    643:        configuration problems.
                    644:        genp2c: Fix symbol name braindamage.
                    645:        md-i386-{gcc,watcom}.c: Don't do machdep_init when [_WIN32].
                    646:        Many Win32 compilation fixes.
                    647:        filesys.c: Attempt to fix the mount code chaos.
1.1.1.4   root      648: 980629 MOVEP bug fixes (Philippe Gerin)
1.1.1.5   root      649:        Comment out code using readdir_r again.
                    650: 980628 gencpu.c: Generate an end label only when it's needed.
                    651:        configure.in: Check for windows.h, ddraw.h, sys/utime.h; check sizeof
                    652:        __int64; check whether a small DirectX program compiles; check for
                    653:        Watcom C; don't do GNOME_FILEUTILS_CHECKS when compiling on Win32
                    654:        without GNU C; use AC_EGREP_CPP in some places instead of compiling a
                    655:        file by hand; check for GAS .p2align feature; check for USE_UNDERSCORE
                    656:        with a small test program; add code to set up od-win32/md-i386-watcom
                    657:        directories when appropriate.
                    658:        genp2c.c: Use GAS .p2align feature; don't generate .type directive.
                    659:        Rename md-*/memory.h to md-*/maccess.h.
                    660:        More fixes in Win32 code.
                    661:        Add wcc.sh and wrc.sh, two scripts to make it possible to use the
                    662:        Watcom C compiler and the resource compiler in a Cygwin32 build
                    663:        environment.
                    664: 980626 Change zfile.c not to use fopen_del.
                    665: 980614 Delete ihf_sem stuff.
                    666:        picasso_refresh now nonstatic and called by check_picasso after a
                    667:        notice_screen_contents_lost call.
                    668:        More functions to access filesystem mount information.
                    669:        More Win32 code.
                    670: 980613 Use an AC_TRY_LINK block to check for libpthread.
                    671: 980611 Rename lockscr/unlockscr to gfx_{lock,unlock}_picasso and add new
                    672:        functions lockscr/unlockscr which are now called by drawing.c.
                    673:        xwin.c: Clear picasso_invalid_lines in graphics_subinit and when
                    674:        doing an XPutImage for a refresh.
                    675:        New function reset_all_systems, which is a bit misnamed at the moment
                    676:        because it only resets the filesystem. Called from m68k_go when a
                    677:        reset is needed.
                    678:        In filesys_prepare_reset, examine unit_pipe instead of self to
                    679:        determine whether a unit has a thread that needs to be killed. Move
                    680:        the reset_state and reset_sync_sem variable to UnitInfo so they are
                    681:        available at all times.
                    682:        Don't need to call finish_drawing_frame if we do a reset, it was
                    683:        done a couple of lines earlier.
                    684:        In uae_reset, do nothing if any reset or quit operations are in
                    685:        progress.
                    686:        Make DMACONR static.
                    687: 980609 Add memory size fields in struct uae_prefs. New variables
                    688:        allocated_xxxmem for every block of memory that holds the actual
                    689:        amount currently allocated, copied from the preferences at allocation
                    690:        time.
                    691:        Create a new structure "uaedev_mount_info" to hold filesystem mount
                    692:        information. Add a pointer to one of those in struct uae_options,
                    693:        and copy it from currprefs to a filesystem private place when
                    694:        starting the filesystem threads to a work area. 
                    695:        Terminate filesystem threads during a reset, and restart the whole
                    696:        filesystem code afterwards so that prefs changes are noticed.
                    697: 980608 If check_prefs_changed_gfx returns nonzero, or if we switch from/to
                    698:        picasso mode, call notice_new_xcolors and notice_screen_contents_lost.
                    699:        Delete the frame_do_semup crap.
1.1.1.4   root      700: 980606 Create config.h link in configure, not in Makefile.
1.1.1.5   root      701: 980604 xwin.c: No longer need picasso_max[wh]. Improve picasso invalid lines
                    702:        code a bit more. Fix some dithering bugs.
                    703:        gtkui.c (add_checkbox_widget, add_radio_widget): New helper functions.
                    704:        Patches by Marcus Sundberg:
                    705:        Make X11 picasso clut emulation mode work in DGA
                    706:        gfxutil.c (setup_dither): Free redvals.
                    707: 980602 Split out init_aspect_maps from reset_drawing.
                    708:        Call check_prefs_changed_gfx from vsync_handle_redraw, and initialize
                    709:        row and aspect maps if it returns nonzero.
                    710:        Use an enum instead of integer values to communicate between
                    711:        hsync_handler and hsync_record_line_state.
                    712:        gtkui.c: Use gtk_window_set_title (Marcus Sundberg)
                    713:        xwin.h: Add lockscr/unlockscr prototypes.
                    714: 980601 Move check_prefs_changed_xxx into vsync_handle_redraw.
                    715:        Make ersatz.c a little more crash-proof.
                    716: 980531 New graphics specs 'a' and 'p'. Support them in the X11 version.
                    717: 980530 sysdeps.h, posixemu.c: Change (char *) to (const char *) in the
                    718:        arguments of some of the posixemu functions.
                    719:        sysdeps.h: Delete getopt declaration. Include "getopt.h" in main.c.
                    720:        aclocal.m4: add fsusage.c support from Gnome.
                    721:        fsusage.[ch]: New files from fileutils, slightly modified to fit
                    722:        into UAE and to add Win32 support. Adapt do_info filesys.c to use
                    723:        it, and delete all the old cruft.
                    724:        Some updates for the Win32 port.
                    725: 980529 Patches for X11 version by Marcus Sundberg (Picasso invalid lines
                    726:        optimization, XShm availability check, cleanup, etc.)
                    727: 980528 Add field emergmem to struct vidbuf_description, and change
                    728:        pfield_draw_line to use it.
                    729: 980516 Patches by Samuel Devulder and Holger Jakob: update Amiga port,
                    730:        add support for compiling cpuemu.c in seveal steps again, add
                    731:        cheatsearch in the debugger.
                    732: 980515 GGI patches (Christian Schmitt).
                    733:        sd-mme: New directory (Marcus Sundberg).
                    734:        Changes in the X11 version to support mixed DGA/normal binaries,
                    735:        hotkeys, and mouse grabbing (Marcus Sundberg)
                    736:        xwin.c: Copy a bit of code from Win32 port that constrains
                    737:        lastmx/lastmy to real coordinates when ievent_alive.
                    738: 980510 gencpu.c: Slightly better flag generation code.
                    739:        picasso96.c (wgfx_flushline): Don't do anything if Picasso screen
                    740:        is invisible.
                    741: 980508 Don't disable GGI if we can't find svgalib.
                    742:        newcpu.[ch], gencpu.c, md-i386-gcc/memory.h: Implement unswapped
                    743:        word reads for opcodes.
                    744: 980505 drawing.c: add missing #ifdef X86_ASSEMBLY.
                    745: 980504 More BSD fixes from Krister.
                    746:        xwin.c: Call XAllocColorCells for dithered modes. Don't set image_mem
1.1.1.3   root      747:        in get_image, instead arrange for it to store the address in a pointer
                    748:        chosen by the caller.
1.1.1.5   root      749:        picasso96.h: Add a clut array to picasso_vidinfo.
                    750:        picasso96.c (do_fillrect, do_blit): Use picasso_vidinfo.pixbytes
                    751:        instead of picasso96_state.BytesPerPixel where appropriate.
                    752:        (do_fillrect, do_blit, wgfx_do_flushline): Handle the case when the
                    753:        Amiga-side buffer is a 256 color palette mode and the native buffer
                    754:        is truecolor by looking up colors in the new picasso_vidinfo.clut.
                    755:        xwin.c: Adapt to support emulating a palette display in truecolor.
                    756:        Make tui.c compile.
                    757: 980501 picasso96.c: Make sure there's an unlockscr for every lockscr call.
                    758:        In SetColorArray, detect when no colors changed.
                    759:        configure.in, aclocal.m4, Makefile.in: Use AM_PATH_GTK from gtk
                    760:        distribution.
                    761:        New field rgbformat in picasso_vidinfo. Set it in xwin.c and svga.c.
                    762:        custom.c (mousehack_helper): Use Picasso screen offsets correctly.
                    763: 980427 Call decide_line in DIWSTOP. Implement DIWHIGH register.
                    764: 980426 filesys.c (get_nname): Don't allow Unix "." and ".." directories.
                    765:        gencpu.c: Approximate the number of cycles per instruction. Make
                    766:        generated functions return that number, and use it in newcpu.c in
                    767:        the do_cycles call.
                    768:        custom.c, drawing.c: init_hardware_for_drawing_frame must be
                    769:        called from init_drawing_frame.
                    770:        Move read_processor_time specific stuff to new file md-xxx/rpt.h.
                    771:        md-i386-gcc/support.c: Try to detect whether the CPU has RDTSC.
                    772:        newcpu.c: m68k_speed == 0 means approximate A500 speed;
                    773:        m68k-speed == -1 means use frame rate hack when available. Some
                    774:        changes to support this.
                    775: 980425 custom.c: New copper code. Unfortunately not much faster than the
                    776:        old one.
                    777:        Get rid of some unused variables throughout.
                    778:        filesys.c: Use readdir_r when available.
                    779:        picasso96.c: In BlitPattern, correctly handle the pattern offsets.
                    780:        missing.c: Get rid of getopt. Add GNU getopt instead.
                    781:        In SPRxPTH, SPRxPTL, call decide_sprites instead of decide_line.
                    782: 980421 custom.c: Add an extra argument, hpos, to plenty of functions, and
                    783:        use it instead of calling current_hpos.
                    784: 980420 BeOS update (Christian Bauer).
                    785:        When enabling additional planes in post_decide_line, update
                    786:        thisline_decision.bplcon0.
                    787:        Tweak copper timings.
                    788: 980419 Extend post_decide_line to handle cases where some planes are
                    789:        enabled much later in the line than the others.
                    790:        In pfield_doline_unaligned_h, don't increment dataptr.
                    791:        Split custom.c, move drawing code to new file drawing.c. New header
                    792:        file drawing.h for declarations of shared stuff.
                    793:        osemu.h: Delete junk.
1.1.1.3   root      794: 980418 gtkui.c: Don't crash if -G option is given.
1.1.1.5   root      795:        audio.c, custom.c: Don't use the generic event handling mechanism
                    796:        for audio emulation, the overhead is too high. update_audio: New
                    797:        function, handles audio updates "on demand" or every hsync (Idea by
                    798:        Petter Schau).
                    799: 980417 Some cleanups in custom.c to make splitting it up easier.
1.1.1.3   root      800: 980416 custom.c: Don't use bplhires in do_modulos.
1.1.1.5   root      801: 980415 readdisk.c: Support FFS (Jim Cooper).
                    802:        BSD patches by Krister Walfridsson.
                    803:        configure.in, Makefile.in: More fixes for build != source directory.
                    804:        Arrange to build p2c_x86.o when using md-i386-gcc.
                    805:        sysdeps.h: Include limits.h.
                    806:        Remove silly code that restricted possible version numbers.
                    807: 980320 configure.in: Check for vprintf.
                    808:        Make write_log a varargs function. Provide a write_log_standard
                    809:        function that is used by most systems.
                    810:        Refuse to compile with non-ANSI compilers.
                    811:        gencpu.c: Rearrange some of the generated code to reduce register
                    812:        pressure.
1.1.1.3   root      813: 
                    814: Release 0.7.0
                    815: 980401 gengenblitter.c: Complete rewrite. Much smaller, much faster, much
                    816:        better results.
                    817:        Check for -lXi to support newer versions of gtk+.
                    818: 980316 gencpu.c (read_counts): Two silly bugs fixed.
                    819:        main.c (save_options): Don't write out 'a' if cpu_level < 2
                    820:        configure.in: Changes to try to be compatible with Solaris /bin/sh.
                    821: 980315 New UAE-Control version from Tauno & Cloanto.
                    822:        Make configure set UNALIGNED_PROFITABLE for x86.
                    823:        Get rid of "-o", add save command to tui.c and gtkui.c.
                    824:        Fix some bugs in save_options.
                    825: 980314 Many improvements in the gtk UI. Made CPU type changeable at run-time.
                    826:        Make DGA && ! VIDMODE configuration compile. Kludge around the fact
                    827:        that DGA misses colormap changes. Call XWarpPointer to try to avoid
                    828:        the click-moves-framebuffer bug.
                    829:        Make sure p2c.[ch] don't get deleted.
                    830: 980313 Move all CPU_LEVEL handling from build68k.c to gencpu.c. In gencpu.c,
                    831:        ignore all parameters and don't write to standard output, instead
                    832:        hardcode all filenames and generate them all at once. Arrange to
                    833:        generate code for all CPU emulator variants and to select them at
                    834:        run-time.
                    835:        Get rid of copper cheat mode, re-use "-C" option for CPU selection.
                    836: 980312 In COPxLCL, mask out LSB (Axel Wefers).
                    837:        newcpu.h: Always compile in both get_disp_ea versions with a different
                    838:        name. Delete USE_POINTER option; always use pointer. Don't fill
                    839:        prefetch in m68k_setpc, do it in callers where necessary. Compile in
                    840:        two versions of get_ixxxx, with different names for prefetch and
                    841:        non-prefetch. Change gencpu.c to use these appropriately.
                    842:        Don't generate 16 small CPU emulation source files. With a decent
                    843:        machine it's no problem to compile all the code in one file. Also turn
                    844:        off -O3 for gcc, -O2 does fine since all the necessary __inline__s are
                    845:        there, and the compiler takes less memory that way.
                    846:        Don't include <linux/joystick.h>, duplicate some definitions from
                    847:        there instead. Makes configure.in simpler, too.
                    848:        Fix Makefile.in/configure.in and a couple of other places to support
                    849:        building in a separate directory (sort of; not complete yet).
                    850:        Remove p2c.[ch] and genp2c when doing make clean.
                    851:        Delete code to support Tcl/Tk and XForms GUIs.
                    852: 971215 More Amiga and BeOS patches from Sam and Christian.
                    853: 971205 Move some more code from custom.c to audio.c. Optimize sample handlers
                    854:        a bit.
                    855:        Make RDTSC asm statement volatile.
                    856: 971203 Latest GGI patch from Christian Schmitt.
                    857:        Fix configure to enable zfile decompression for GGI target.
                    858:        Fix mouse button mapping in ggi.c.
                    859: 971128 Fix double definition of gfxvidinfo in custom.c.
                    860:        Fix impossible register constraints in asm statement in newcpu.c
                    861:        Sprinkle casts and rename some variables to make C++ compilers happy.
                    862:        Add BeOS patches by Christian Bauer.
                    863: 971125 More Amiga patches from Sam.
                    864: 971120 Get rid of DONT_WANT_SOUND.
                    865: 971119 Support USS sound not only on Linux (Douglas Carmichael)
                    866:        Update Win32 and DOS ports.
                    867:        Add Polish documentation by Tomasz Sienicki.
                    868: 971116 Add a missing return statement in filesys.c (Brian King)
                    869: 971112 Fix silly error in xwin.c.
                    870: 971108 Add some more decompressors to zfile.c. Set FLOPPY_SPEED to 4.
                    871: 971107 Make ggi.c compile again, fix a few bugs and add Picasso support.
                    872: 971106 Fill prefetch queue after executing an encrypted ROM illegal insn.
                    873: 971105 Initialize the sprites during customreset now that init_hardware_frame
                    874:        no longer does it.
                    875: 971104 Implement action_set_file_size as required by the specs.
                    876:        SetPanning/picasso96_state: XOffset and YOffset are signed.
                    877: 971103 xwin.c: Offer 640x512 and 320x256 resolutions in windowed Picasso mode.
                    878:        Add a few more memory banks in memory.c (A3000 stuff - nonfunctional)
                    879:        Don't map kickmem at address 0 if using replacement Kickstart.
                    880:        Must fill prefetch buffer when calling calltraps or ersatz functions.
                    881:        Write out hardfile parameters in write_filesys_config().
                    882:        xwin.c: Support 15 bit displays.
                    883: 971101 Add latest patches by Samuel Devulder. Improve hardfile support in
                    884:        tui.c.
                    885: 971031 Offer "-U" only ifdef PICASSO96.
                    886:        Add support for mounting multiple hardfiles in any order.
                    887:        Don't reset sprite state in init_hardware_frame. Instead, allow SPRxPT
                    888:        functions to set the state to SPR_restart in the vertical blanking
                    889:        area.
                    890: 971030 Fix 8MB Chip RAM.
                    891:        filesys_dev_storeinfo: New function and calltrap. Use it to store
                    892:        per-unit data (which now includes geometry information) in the
                    893:        parampacket. Modify filesys.asm to use it instead of trying to find
                    894:        the values by itself.
                    895: 971028 "AMIROMTYPE1" has 11 characters, not 0.
                    896: 971027 Implement encrypted ROM features. Comment out non-working InvertRect
                    897:        optimization.
                    898: 971026 Fix some problems in PlanarToDirect and CopyColorIndexMappingA2U.
                    899: 971022 Remove fixed paths in genp2c.c (oops...)
                    900:        Some more XF86VidMode hacks.
                    901:        Include target.h in sysdeps.h. Define PICASSO96_SUPPORTED for X11,
                    902:        SVGAlib and Win32. Don't compile in Picasso support if this macro isn't
                    903:        defined.
                    904: 971021 xwin.c: Picasso code wants to use bit_unit, not bitdepth. Also correct
                    905:        byteorder (it's B8G8R8A8 from the Amiga's point of view).
                    906:        Fix Picasso InvertRect function.
                    907:        Half-hearted attempt at 24 bit support in the X11 version, with some
                    908:        awful code in custom.c.
                    909:        Make the X11/VidMode version try to resize the screen for Picasso mode
                    910:        switches.
                    911: 971020 Delete option -5, make -4 take an argument. Disable z3fastmem and
                    912:        Picasso emulation when using a 24 bit address space.
                    913: 971019 record_color_change: No need to remember a color table if the current
                    914:        line hasn't been decided yet.
                    915:        Add XF86VidMode extension support.
                    916:        Integrate Stefan's Zorro III support, add support for up to 64MB fast.
                    917:        xwin.c: Refresh the whole Picasso screen if there are Expose events.
                    918:        Fix module length calculation for *Tracker modules.
                    919:        Use a 32 bit address space by default if CPU_LEVEL > 1. New option -5.
                    920: 971018 Apparently it's not possible to turn on bitplane DMA in the middle of
                    921:        the line, so call post_decide_line only when the number of planes is
                    922:        modified, not in DMACON.
                    923:        genp2c.c: New file, generates planar to chunky conversion routines.
                    924:        Remove those which are now generated from custom.c.
                    925: 971017 Make row_map an array, not a pointer to one.
                    926:        Audio periods may not be 0, so initialize them to 65535 in customreset.
                    927:        Implement "S" command in the debugger. Add a bunch of module detection
                    928:        routines.
                    929: 971015 od-linux/sound.c: If FRAME_RATE_HACK, reduce vsynctime a bit to give
                    930:        the sound emulation more room to breathe.
                    931: 971013 Merge with Brian's latest Picasso code.
                    932: 971012 Fix a few more portability problems that showed up when compiling with
                    933:        Watcom C. Also remove superfluous includes from some files.
                    934:        Add md-i386-watcom directory. Update od-win32 with latest code.
                    935:        Remove fast_memcmp routine.
                    936:        Include penguin.h before xwin.h everywhere. Declare a few semaphores
                    937:        for multithreaded setups in xwin.h. Move inhibit_frame stuff to xwin.h.
                    938: 971011 gencpu.c: Don't generate labels without following statement. Don't
                    939:        directly generate assembly statements if X86_ASSEMBLY, instead generate
                    940:        code that uses macros defined in machdep/m68k.h.
                    941: 971008 xwin.c, svga.c, custom.c, uaelib.c: Add picasso96 code. Add Picasso
                    942:        selection to configure.
                    943:        Move common variables (mouse stuff, gfxvidinfo, xcolors) from graphics
                    944:        files to custom.c.
                    945:        memory.c: custom chip area isn't supposed to be mapped at 0x200000. Use
                    946:        dummy bank for now.
                    947:        od-linux/joystick.c: Open different devices for different joysticks.
                    948:        From Win32 sources: set vsyncmintime in m68k_go.
                    949: 971005 genblitter.c: blitzero is initialized to 1, not to 0, so we need to
                    950:        clear, not set it.
                    951: 970928 Add another user interface for X11 using libgtk+.
                    952: 970925 audio.c: For stereo sound, double all lookup table values.
                    953:        Added (preliminary) win32.c.
                    954: 970923 DISK_check_change: Should call gui_filename when ejecting.
                    955: 970922 Fix od-linux/joystick.c compilation problem with recent kernels.
                    956:        Merge results of the UAE meeting:
                    957:        New serial code (Stefan Reinauer)
                    958:        Expansion "test card" support (Stefan Reinauer)
                    959:        New GGI code (Christian Schmitt), also configure/Makefile changes
                    960:        to make it compile.
                    961:        Fix 68020/FPU code.
                    962:        Call do_mousehack before every read of the mouse position to get more
                    963:        accurate values.
                    964:        Add sd-file directory; add support for it in configure.
                    965:        Add stereo support in audio.c, od-linux/sound.[ch], and main.c.
                    966:        Fix copper problem: call decide_line in calc_copcomp_true; and if the
                    967:        copper wouldn't wait normally (position reached), but the hardware is
                    968:        fetching data in Hires 4 plane mode, delay until ddf stop.
                    969:        t-ascii.h: Asciiart target understands "-x" parameter.
                    970: 970823 gencpu.c [X86_ASSEMBLY]: Turn input constraints for scratch into output
                    971:        constraints.
                    972: 970626 Fix 24 bit address space logic (Mathias Ortmann).
                    973:        Raise exception 3 for Bcc.L insns if CPU_LEVEL < 1. Reported by Stefan
                    974:        Ropke.
                    975:        Remove USER_PROGRAMS_BEHAVE for normal emulator. Remove hacks to
                    976:        generate expanded CPU functions for specific opcodes. Replace with code
                    977:        that reads an instruction count file and sorts gencpu output by
                    978:        frequency of the called opcodes.
                    979: 970625 Calltraps (at least those with call_m68k calls in them) were broken by
                    980:        the CPU emulator changes. Now use Axxx opcodes as calltraps.
                    981:        Include pOS port by Samuel Devulder.
                    982: 970624 Solaris sound patches by Manfred Thole.
                    983:        gencpu.c: The generated code shouldn't just check for odd addresses,
                    984:        it should also call Exception...
                    985: 970622 gencpu.c: don't emit return statements; make code jump to a function
                    986:        end label instead. Make genamode() check for odd addresses, also reduce
                    987:        code duplication. Interpret getv parameter so that data is fetched if
                    988:        getv == 1, and the address is checked if getv != 0. Remove exception 3
                    989:        checks from get_long() etc. Get rid of buserr.
                    990:        cpuopti.c: Make a few more checks whether optimization is possible. Add
                    991:        code to undo GCC's epilogue scheduling.
                    992:        newcpu.c: Split all the specialflag handling into new function.
                    993:        Implement -w option as in Win32 port. tui.c: add it to misc menu.
                    994: 907621 Fix yesterday's CPU emulator changes. Make cpuopti aware of functions
                    995:        with two RET insns. Make sure that NO_EXCEPTION_3 and
                    996:        NO_PREFETCH_BUFFER are on when emulating a 68020.
                    997:        Add usage information for src/dst operands to table68k.
                    998:        Implement CIA A OVL bit properly.
                    999: 970620 New NeXTwin.m from Ian. Fix a number of prefetch bugs in gencpu.c.
                   1000:        newcpu.h: m68k_incpc(), get_i{byte,word,long}: New function/macros.
                   1001:        Also add oldpc parameter to m68k_do_[bj]sr(). gencpu.c: use all this.
                   1002:        CPU functions now don't use nextiword; they keep the PC constant and
                   1003:        increment it with the right value at the end.
                   1004:        If chipmem_size > 2MB, disable fastmem.
                   1005:        In configure.in and od-linux/joystick.c, use ljoystick.h as name for
                   1006:        the replacement file for a broken <linux/joystick.h>
                   1007:        configure.in: Check for post-gcc-2.7.2 option "-mno-schedule-prologue"
                   1008:        and use it for compiling the optimized CPU files if it exists.
                   1009: 970618 Rename hardfile.device to uaehf.device to avoid name clashes. Suggested
                   1010:        by George Nicolaidis.
                   1011:        Reimplement CPU prefetch by making gencpu aware of it so it generates
                   1012:        code that fetches data from the right places automatically. Also reduce
                   1013:        prefetch length to 4 bytes.
                   1014: 970612 memory.h: Include osdep/memory.h. missing.c: implement xmalloc().
                   1015:        Throughout: use xmalloc instead of malloc.
                   1016:        Apply changes by Sam Devulder.
                   1017: 970608 Fix ncurses.c so that it links. Fix configure so that it can be enabled
                   1018:        Get rid of spixstate by implementing a new sprite drawing method.
                   1019: 970607 do_copper_cheat(): New function, Implement inaccurate, line-based
                   1020:        copper as an option (-C). calc_copcomp_true(): Fix possible hr 4 plane
                   1021:        bug (split the wait into several pieces in this mode).
                   1022:        Allow 0 bytes for fast and bogomem (to override .uaerc)
                   1023: 970606 Fix some bugs in transdisk, and make it compile with SAS C (Joanne Dow)
                   1024:        Stupid compilation fixes: Get rid of "==" in shell scripts, check that
                   1025:        B300 and friends are defined in serial.c before using them.
                   1026:        Implement blitter prefetch. Fix silly typo in main.c that prevented
                   1027:        immediate blits.
                   1028:        init_ham_decoding(): new function, handles case where the first few
                   1029:        pixels of a HAM display are outside the window.
                   1030: 970605 disk.c: Get rid of need_read. Save cylinder/track number for the data
                   1031:        in the MFM buffer for each drive. Force rereads on disk insert and
                   1032:        write operations. In drive_fill_bigbuf(), do nothing if saved data
                   1033:        matches current. Fix disk change logic: give the program time to read
                   1034:        the change bit a couple of times before inserting a new disk.
                   1035:        custom.c: Fix really subtle bug: when deciding a line as border,
                   1036:        plfstrt/plflinelen were not set up properly, which could confuse
                   1037:        post_decide_line(), and eventually there would be lines decided as
                   1038:        playfield with plfstrt == 0, plflinelen == -32 ==> Bang. A related
                   1039:        bug was that setting DDFSTRT to 0 would result in both plfstrt and
                   1040:        plfstop having value 0.
                   1041:        gfxutil.c: Fix bug that could cause color values to go out of bounds.
                   1042:        xwin.c, svga.c: When dithering, color values were not doubled properly.
                   1043: 970604 filesys.c: when deleting an a_ino, remove it from hash table (Mathias
                   1044:        Ortmann). In do_find(), if creating a file failed and we didn't have
                   1045:        an a_ino before, call delete_aino on the one we created.
                   1046:        More configure changes: Add $X_PRE_LIBS and $X_EXTRA_LIBS in some
                   1047:        places. See if MIT-SHM support for X will compile and link. Always
                   1048:        compile it in if it will. Turn DONT_WANT_SHM and LOW_BANDWIDTH into
                   1049:        run-time options (-T, -L). Use single line buffer when dithering and
                   1050:        in low-bandwidth mode (but in all cases there's a full buffer for the
                   1051:        X image).
                   1052:        memory.c: Don't map in custom regs at 0x200000 if chipmem_size > 2MB.
                   1053:        Split up init_sound(): new function setup_sound(). Make "-B" accept
                   1054:        minimum and maximum values as in Gustavo's latest patch. Add code to
                   1055:        tui.c to support changing buffer size, number of bits and frequency.
                   1056: 970603 If using compiler, define NO_EXCEPTION_3 and NO_PREFETCH_BUFFER.
                   1057:        (bugreport by Raphael Poss).
                   1058:        GGI support from Christian Schmitt/Stefan Reinauer. More serial patches
                   1059:        from Stefan. 3 button joystick patch from Mathias.
                   1060:        Add linemem field to gfxvidinfo, for systems that don't want to keep
                   1061:        a buffer of the full screen. Adjust custom.c to use it instead of
                   1062:        bufmem if it's not NULL (mostly by Mathias). svga.c, xwin.c: Use single
                   1063:        line buffer in some cases. xwin.c: If USE_DGA_EXTENSION, undef
                   1064:        LOW_BANDWIDTH. Move test of DONT_WANT_SHM after inclusion of config.h
                   1065:        Make configure.in a bit more structured.
                   1066:        Move colormodes array to main.c.
                   1067: 970602 gfxlib.c: Start implementing layers workalike.
                   1068:        md-i386-gcc/support.c: Don't mix sleep and alarm. (Petter Schau)
                   1069: 970601 Remove may_run_compiled. Print error and abort if m68k_go is called
                   1070:        twice.
                   1071:        Fix yesterdays bugfix in svga.c.
                   1072:        Change FRAME_RATE_HACK so it tries to average the times a bit.
                   1073:        Re-implement a call_m68k function in autoconf.c. The new version
                   1074:        works by doing some heavy setjmp/longjmp magic and switching stacks.
                   1075:        With this, it's even possible to call things that Wait(), so use
                   1076:        the new functionality in gfxlib.c to call LockLayer() in WritePixel().
                   1077: 970531 Turn some inline functions in memory.h into macros. Get rid of
                   1078:        get_along and get_aword. Implement CIA A OVL bit.
                   1079:        main.c: Add missing close_sound() call.
                   1080:        Remove INTEL_FLAG_OPT, use X86_ASSEMBLY for everything.
                   1081:        tui.c/svgancui.c: Implement scrollable menus. Add code to select
                   1082:        video mode from a given list. Add "graphics_setup" call to graphics
                   1083:        specific files. Use it in svga.c to build a video mode menu.
                   1084:        Fix bug in svga.c that would crash non-linear modes.
                   1085:        disk.c needs to include gensound.h and sounddep/sound.h.
                   1086:        Fix bug in fuzzy_memset. In pfield_init_linetoscr, always adjust ddf
                   1087:        values if lores hack is being used.
                   1088: 970530 Apply some patches by Samuel Devulder.
                   1089: 970529 filesys.c: In "Houston, we have a problem" case, do not only delete
                   1090:        the oldest ExKey, but also use it instead of random memory for the
                   1091:        new one. Attempt to reduce the number of lost exkeys by allocating
                   1092:        them in action_examine_next instead of action_examine_object.
                   1093:        Initialize the "uniq" field of unit->rootnode.
                   1094:        Attempt to speed up sprite drawing loop.
                   1095:        Implement sprite<->sprite collisions.
                   1096:        Get rid of -Wtraditional.
                   1097: 970524 New config option NO_PREFETCH_BUFFER. Emulate 16 byte prefetch if
                   1098:        unset.
                   1099:        For exception 3, the stack frame seems to be:
                   1100:        (saved SR).w, (faulting address).l, (faulting instruction).w, 0.w,
                   1101:        (pc at fault time).l. Make everything that could generate this fault
                   1102:        handle it properly. That got Cybernoid II working!
                   1103: 970523 Makefile.in: Make sure $(DEBUGFLAGS) is used for CPU emulation files.
                   1104:        memory.c: Don't map chipmem at 0x200000, use custom chip bank for now.
                   1105: 970507 configure.in: Mutate ac_cv_c_inline=no to ac_cv_c_inline=
                   1106:        Check for tcgetattr, <sys/termios.h>, cfmakeraw, <sys/ioctl.h>
                   1107:        Check for sem_init in -lposix4 (Marc Zimmermann)
                   1108:        serial.c, cia.c, cia.h, serial.c: changes (Stefan Reinauer)
                   1109:        Make disk gap 360 (Michael Krause)
                   1110: 970404 In configure, check for features.h before including it in test program.
                   1111: 970401 New option -4. Bugreport by Mirko Viviani.
                   1112: 970324 Petter Schau says the exception frame for Bus Error and Address Error
                   1113:        is 14 bytes, not 6, on the 68000. Change Exception() accordingly.
                   1114:        It's *** OUCH *** day! Make hardfile beginio return the correct value. 
                   1115:        Also load execbase before calling ReplyMsg().
                   1116:        It's *** OUCH *** day again! The filesystem asm code was an odd number
                   1117:        of bytes, leaving the hardfile code unaligned.
                   1118: 970318 custom.c: Rename spron to sprst, and use new variable spron to indicate
                   1119:        for which sprites the sprite pointer registers have been written. Don't
                   1120:        do sprite DMA if spron==0. (The problem was that some programs write
                   1121:        SPRxCTL and then SPRxPT, which used to set the sprite state to
                   1122:        SPR_restart, but it must be SPR_waiting_start.)
                   1123:        Turn a few m68k_reset()s into uae_reset()s.
                   1124:        New variable nr_joysticks. Delete joystickpresent. New arg "nr" for
                   1125:        getjoystate() and read_joystick().
                   1126:        New extra keycode AK_RCTRL. Handle multiple joysticks & different key
                   1127:        replacements in keybuf.c/custom.c. Make tui.c handle all the settings.
                   1128: 970310 od-linux/joystick.c now compiles again without the joystick header.
                   1129:        Fix some problems in configure; also check whether [n]curses.h defines
                   1130:        attr_t. Keep count of warnings and errors during configuration and
                   1131:        print a hopefully helpful message at the end.
                   1132:        disk.c sanitized by Mathias Ortmann.
                   1133:        Change the replacement getopt around a bit.
                   1134:        execlib.c, timerdev.c: Files removed. This will never be compatible
                   1135:        enough. Also remove related code (several SPCFLAGs, etc.)
                   1136:        Make main.c a bit nicer by introducing additional defines for the t-*
                   1137:        files. Also canonicalize the .uaerc file on all systems, eliminating
                   1138:        lines starting with '#' in the process.
                   1139:        Remove code in autoconf.c to set up 8MB chip; move it to filesys.asm.
                   1140:        Try doing the copper end-of-line hack in copper_memory_cycles().
                   1141:        Disable the copper speedup hack.
                   1142: 970309 Add a small, dumb hash table to struct _unit to speed up repeated
                   1143:        aino lookups. Delete aino in action_delete_object(). Move children in
                   1144:        action_rename_object(). In action_examine_next(), call new function
                   1145:        lookup_child_aino_for_exnext() which behaves more or less like
                   1146:        lookup_child_aino(), except it uses new function get_aname() to
                   1147:        translate filenames.
                   1148:        More portability fixes. New links set up in configure: sounddep,
                   1149:        target.h. All machine-dependent and joystick code removed
                   1150:        from os.c, renamed to audio.c. os.h renamed to audio.h, joystick stuff
                   1151:        moved to joystick.h. New directory targets/.
                   1152:        missing.c: New file.
                   1153: 970308 Rewrite filesystem. Now it keeps one unique "a_inode" structure for
                   1154:        every object in the filesystem. This contains Amiga name, native
                   1155:        name, Amiga permissions, lock counts and several links for building
                   1156:        a tree structure. Keys are now made only for files which need a fd
                   1157:        and a file position.
                   1158:        Treat invalid locking modes als shared.
                   1159:        Comment out the code using readdir_r because that function appears
                   1160:        to be broken in glibc-2.0.1.
                   1161:        Clear RES2 in all packets before handling them.
                   1162:        Give mousehack the same task priority as the input.device.
                   1163:        Fix (?) some silly bugs in disk.c.
                   1164: 970307 Include some Acorn port code from Peter Teichmann.
                   1165:        Yet Another Serial Diff from Stefan.
                   1166: 970306 filesys.c: Don't just crash if lookup_key() has no success.
                   1167:        action_find_write() is supposed to create the file if it does not
                   1168:        exist.
                   1169: 970305 More DOS patches. Make the Makefile parallel-make safe.
                   1170:        svgancui.c: Do cyclic search if character is typed in file selector.
                   1171:        my_alphasort(): New function (work around glibc bug)
                   1172:        custom.c: Fix error in yesterdays change.
                   1173:        filesys.h: New file.
                   1174: 970304 New serial patch from Stefan and Christian.
                   1175:        Remove the assembler code to generate inputevents. Instead, add a new
                   1176:        Amiga C program ("mousehack") which does the trick. New function
                   1177:        mousehack_helper() in custom.c, activated by calltrap 0xF0FF70.
                   1178:        Mouse default is now always normal_mouse, not follow_mouse.
                   1179:        Do disk change checks only every 1/2 second. disk.c: Reverse
                   1180:        nodskchange to dskchange, and make sure there has been a step with the
                   1181:        drive empty before calling drive_insert() from DISK_check_change() (but
                   1182:        this _still_ doesn't work. Arrrghh).
                   1183: 970303 filesys.c: Initialize _all_ of struct _unit in startup_handler().
                   1184:        Remove message_lock and friends and use new variables cmds_sent,
                   1185:        cmds_acked and cmds_completed to determine when to send dummy messages.
                   1186:        Changed examinekey handling so that "dir all" on a large tree doesn't
                   1187:        crash anymore (it used to reuse the top-level exkeys which were still
                   1188:        in use after a wraparound). Don't allocate examinekeys if we're
                   1189:        examining files.
                   1190:        Check for readdir_r in configure. Use a wrapper my_readdir() around
                   1191:        either readdir or readdir_r.
                   1192:        Call filesys_reset() also from filesys_diagentry().
                   1193:        Get rid of most of uaelib.c. Now there isn't a library, just a calltrap
                   1194:        at 0xF0FF60. Changed uae_pragmas.h accordingly and recompiled uaectrl.
                   1195:        Added a bunch of "volatile"s in various places in filesys.c and
                   1196:        penguin.h.
                   1197:        Make the filesystem reset-safe in the threaded case (paranoia changes).
                   1198:        Check disk changes only every 1/10 second in vsync_handler().
                   1199:        Add assembler code to generate InputEvents once every vblank to
                   1200:        filesys.asm. (Doesn't work yet.)
                   1201: 970302 filesys.c: Get rid of DosPacket type, pass pointers into Amiga memory
                   1202:        instead. Use GET_PCK_* and PUT_PCK_* macros to access fields.
                   1203:        Start making filesystem code thread safe & multithreaded. Move static
                   1204:        variables from some functions into struct _unit, likewise the key
                   1205:        and exkey variables. Add code to filesys.asm to queue commands which
                   1206:        did not complete and to reply to them later. Do multithreading if
                   1207:        compiled with SUPPORT_THREADS. See source for details.
                   1208:        Change hardfile and uaelib code not to call 68k routines. Make emulator
                   1209:        traps more efficient (no need to save regs, don't need SPCFLAG_EMULTRAP
                   1210:        anymore).
                   1211: 970301 Fixed ncurses.c so it works with currprefs.
                   1212:        filesys_reset(): New function, called from customreset().
                   1213:        Changed source layout. Break up machdep into machdep, osdep and
                   1214:        threaddep.
                   1215:        penguin.h: Now supports arbitrary types in pipes.
                   1216:        Changed filesys.c so that no 68k code is called from native C code.
                   1217:          filesys.asm, filesys.sh: New files. filesys.asm contains some
                   1218:         startup code and the main loop for the filesystem. Several locks
                   1219:         are allocated by the assembler code for use by the C code.
                   1220:         DOS_AllocMem(), DOS_FreeMem(), make_dev(), build_parmpacket(),
                   1221:         filesys_init(): Functions removed.
                   1222: 970228 ncurses.c: Fix problem in b/w modes.
                   1223:        finish_drawing_frame(): Don't need to draw lines in multipenguin mode.
                   1224:        Move all options into new struct uae_prefs. New variables currprefs,
                   1225:        changed_prefs.
                   1226:        svgancui.c, tui_filereq(): If user presses a key, start search at
                   1227:        current position, not at the beginning.
                   1228:        DISK_check_change(): new function, compares currprefs with
                   1229:        changed_prefs and handles diskchanges if they differ. Called from
                   1230:        vsync_handler().
                   1231:        DISK_validate_filename(): new function, checks whether a file exists.
                   1232:        Modify svga.c and tui.c so that F11 now brings up a limited UI.
                   1233: 970227 Reimplement Mathias Ortmann's frame rate hack: New option HAVE_RDTSC
                   1234:        in config.h. New typedef frame_time_t. New variables vsynctime and
                   1235:        vsyncmintime. New function machdep_init() in md-*/support.c which
                   1236:        sets up vsynctime in the md-i386-gcc and md-i386-linux cases. Use
                   1237:        all of those in events.h, do_cycles() to determine whether to spend
                   1238:        more time on the CPU emulation.
                   1239:        Add missing "int i;" to xwin.c, init_colors().
                   1240:        Unroll some loops in sample_*handler().
                   1241:        Improve quitting/resetting behaviour: Move quit_program from GUI
                   1242:        specific files to main.c. New functions uae_reset() and uae_quit(),
                   1243:        quit_program is now handled in vsync_handler() and m68k_go().
                   1244:        New variable sample_evtime, used in customreset() and set up in
                   1245:        init_sound().
                   1246: 970226 Solaris sound update from Manfred Thole.
                   1247:        keybuf.c: Decided that it doesn't need locking after all.
                   1248:        Add a bunch of Gustavo's latest diffs. (I hate CR characters!)
                   1249:        Move gfxvidinfo from all the target-specific files to custom.c
                   1250:        More Win32 stuff: New function notice_new_xcolors().
                   1251: 970225 configure.in: In shell string comparisons, always put spaces around =
                   1252:        Add warning about standard SVGAlib being incompatible with
                   1253:        LinuxThreads.
                   1254:        os.c, SOLARIS_SOUND: Remove reference to obsolete variable smplcnt.
                   1255:        Two new variables sound8_base and sound16_base.
                   1256:        sysdeps.h: Split off some stuff into md-amiga/amiga-kludges.h. Also
                   1257:        make the main types now uae_u32 and variants instead of ULONG, etc.
                   1258:        Convert some files to use the new types.
                   1259:        cia.c: use int/long instead of ULONG/UWORD/etc for most static vars.
                   1260:        xdebug.c: Some cleanup.
                   1261:        md-i386-linux/penguin.h: Fix bug. Add "chunks" parameter to
                   1262:        init_comm_pipe. Use it to decide in write routine whether to signal
                   1263:        the other thread if it's waiting. Add no_buffer parameter to
                   1264:        write_comm_pipe_int.
                   1265:        Start adding Mathias Ortmann's Win32 patches.
                   1266:          md-i386-win32: New directory
                   1267:         include/sysconfig.h.win32: New file
                   1268:         custom.c: is_lastline: new variable, set in hsync_handler().
                   1269:         sysdeps.h: Make it possible for system specific code to say that
                   1270:           POSIX/ANSI stdio/malloc functions aren't present and are defined
                   1271:           by a system-specific file instead. In filesys.c, don't reference
                   1272:           errno if DONT_HAVE_POSIX is defined.
                   1273:         readcpu.h: Kludge around the fact that Messysoft C apparently doesn't
                   1274:           handle enums properly.
                   1275:         newcpu.c/sysdeps.h: Preprocessor magic for 64 bit constants to get
                   1276:           around a problem with MS C.
                   1277:         md-*/penguin.h: Add dummy definitions for semaphores.
                   1278:         keybuf.c: Use semaphores to synchronize access.
                   1279:         os.c, win32 sound stuff: add memcpy avoidance code.
                   1280: 970221 X86.S: Don't use .type ifdef USE_UNDERSCORE.
                   1281:        Move thread support configuration to configure from config.h. Change
                   1282:        pipe implementation to use POSIX semaphore functions.
                   1283: 970217 From Samuel Devulder: Fix off-by-one error in LINE_TO_SCR, EHB case.
                   1284: 970215 customreset(): Initialize current_colors.color_regs to invalid values
                   1285:        [reported by Samuel Devulder]. config.h: Uncomment ECS_DENISE [reported
                   1286:        by Mathias Ortmann]. Add ami-win.c and custom.c patch from Samuel
                   1287:        Devulder.
                   1288: 970213 disk.c: Set FLOPPY_SPEED to 3
                   1289:        custom.c: SPRxCTL_1(): if spron was SPR_restart set it to
                   1290:        SPR_waiting_start. do_sprites(): don't do that.
                   1291:        SPRxPT{H,L}: Call decide_line().
                   1292: 970210 custom.c, X86.S: Do LORES_HACK for dual playfield screens. Plug memory
                   1293:        leak in custom_reset(). Fix pfield_draw_line() not to do so many
                   1294:        multiplications. Make line_changed a char array. In remember_ctable(),
                   1295:        remember comparison results also if negative.
                   1296:        In 8 and 16 bit graphics modes, use the high parts of the color values
                   1297:        to duplicate the actual values. This saves a lot of code in the
                   1298:        hdoubling routines. Add a special fill_line in the X86_ASSEMBLY case.
                   1299:        Check for glibc-2 and libpthread in configure.
                   1300:        options.h: In fuzzy_memset(), do rounding slightly more conservative.
                   1301:        Add tons of new keycodes to svga.c
                   1302:        In record_color_change(), also check if vertically outside DIW.
                   1303:        New variable hdiwstate, to represent the horizontal DIW state machine
                   1304:        (thanks Petter!) Handled in reset_decisions(), finish_decisions() and
                   1305:        decide_diw().
                   1306: 970209 Change ncurses.c not to do so many multiplications/divisions. Add bold
                   1307:        character support. Add color support. Make configure recognize
                   1308:        --without-svgalib and enable ncurses.c in that case.
                   1309: 970208 X86.S, custom.c: Do LORES_HACK for EHB screens also.
                   1310:        New function write_log(); convert some fprintf(stderr, ...) calls.
                   1311: 970207 Argh, Linux/i386/ELF check in configure got broken by latest sh-utils.
                   1312:        In disk.c, drive_reset(), clear nodskchange flag.
                   1313: 970206 Sprite fix from Mathias Ortmann: _really_ get rid of SPR_vtop, and
                   1314:        replace all uses by SPR_stop.
1.1.1.2   root     1315: 970204 Disk change fix from Mathias Ortmann.
                   1316: 970203 New file ncurses.c, from Samuel Devulder.
                   1317:        Disabled Exec stuff completely. Now it isn't even compiled in anymore.
                   1318: 970129 Changes from Samuel Devulder for Amiga and Christian Bauer for BeBox.
                   1319: 970122 Reorder the set_planes_unaligned functions so that better code is
                   1320:        generated. Remove the or_planes_unaligned functions, add a parameter
                   1321:        do_or to the set_planes functions and rely on the compiler to optimize
                   1322:        the additional if away.
                   1323:        post_decide_line() can now turn DMA off early.
                   1324:        Make struct flag_struct 64 bits large for i386 systems, so we can use
                   1325:        long move insns without clobbering the X flag.
                   1326:        "make clean" should delete machdep/support.o.
                   1327:        Maybe we do need SPR_vtop after all - undo 970120 change. Instead,
                   1328:        comment out the code that clears the pos and ctl words at vsync time.
                   1329:        In xwin.c, restrict window height to 300 or 600 depending on linedbl
                   1330:        mode.
                   1331: 970121 Get rid of SPCFLAG_BLIT, call do_blitter() directly.
                   1332:        In finish_decisions(), don't check for sprite draws in the border.
                   1333:        Reimplement the SMART_UPDATE define so that the memcmpy() overhead can
                   1334:        be avoided by not setting it (but this usually loses).
                   1335:        Detect 7 lores planes in BPLCON0() and change to 6 to avoid memory
                   1336:        clobbers.
                   1337:        In pfield_draw_line(), do memcpy linedoubling after handling the line
                   1338:        to be doubled, not when we see a LINE_AS_PREVIOUS. Get rid of prev_ypos
                   1339:        parameter.
                   1340:        Add special code for bpldelay1 == bpldelay2 to the UNALIGNED_PROFITABLE
                   1341:        code.
                   1342:        In pfield_init_linetoscr(), when delays 1 and 2 differ, clear the areas
                   1343:        which are covered only by half of the planes at the start and end of
                   1344:        the DDF area.
                   1345:        Replace FASTER_CPU and LINUX_SOUND_SLOW_MACHINE with M68K_SPEED.
                   1346:        Replace fast_unaligned_memset macros with fuzzy_memset; use this also
                   1347:        in pfield_init_linetoscr().
                   1348:        Use real (PAL) vblank end in do_sprites().
                   1349: 970120 Mask out high byte in DDF{STRT,STOP}
                   1350:        Oops, forgot about long frames while calculating the bounds of all the 
                   1351:        maxvpos*2-sized arrays. Increment them all by two.
                   1352:        Try to detect empty sprites before recording them for the drawing code,
                   1353:        but be careful not to hurt attached sprites.
                   1354:        From Paul Kienitz: hack for keyboard code in cia.c to work better with
                   1355:        newer Kickstarts; small cleanup in cpuopti.c.
                   1356:        Undo yesterday's change in copper_memory_cycles(), instead call
                   1357:        decide_line() each iteration and test whether copper_cycle_time == -1
                   1358:        to determine whether we're vertically in the DIW.
                   1359:        calculate_copper_cycle_time() could get astronomical plane counts due
                   1360:        to missing masking operation.
                   1361:        No need to put the copper to sleep for one memory cycle after a WAIT,
                   1362:        merge that with the two cycles for the next instruction.
                   1363:        Get rid of SPR_vtop, no longer needed (it was unnatural anyway)
                   1364: 970119 Implemented alternate pfield_doline functions that access the apixels
                   1365:        array at unaligned addresses; conditional on UNALIGNED_PROFITABLE.
                   1366:        Move LORES_HACK from config.h to custom.c.
                   1367:        Fix loop exit test for pfield_linetoscr_hdouble_asm8(). Clear the
                   1368:        right parts of apixels in pfield_init_linetoscr() when LORES_HACK is
                   1369:        enabled.
                   1370:        Get rid of bordercol array: the decision-making code should handle
                   1371:        lines in the border correctly by setting line_changed.
                   1372:        Disable bitplane DMA if more than 4 hires bitplanes are set in BPLCON0.
                   1373:        Fix some more copper timing inaccuracies: used to test
                   1374:        thisline_decision.which without calling decide_line() before.
                   1375: 970118 Now remember BPLCON1 changes during data fetch. New functions
                   1376:        decide_delay(), pfield_adjust_delay(); new fields in struct drawinfo
                   1377:        and new variables next_delay_change, delay_changes.
                   1378:        Forgot to set copstate to COP_morewait in one case in do_copper().
                   1379:        Add a kludge that checks for copper position 0xDC and changes it to 
                   1380:        0xDE.
                   1381:        Restore equality test for vertical sprite positions. Disable sprite
                   1382:        DMA before the end of the vertical blank area.
                   1383:        Mask not only the positions, but also comparison values in 
                   1384:        calc_copcomp_true().
                   1385: 970117 Change custom_bput to put the byte value in each half of the word that
                   1386:        is put.
                   1387: 970116 disk.c: Set the gap between sector 11 and 0 to 380 words. Andromeda's
                   1388:        "Seven Seas" demo expects at least 320. Make the KILLEHB bit
                   1389:        conditional on AGA_CHIPSET. Decide BPLCON1 (scrolling delays) in
                   1390:        decide_diw(). Fix off-by-one errors in the very_broken_program case
                   1391:        of decide_plane(). Fix aspect calculation when horizontal resolutions
                   1392:        differ. Simplify copper horizontal comparison logic slightly.
                   1393:        Fix divide by zero errors when reading from empty floppies.
                   1394: 970115 pfield_draw_line(): Check for frame_redraw_necessary also for border
                   1395:        lines. New global variable pfield_last_drawn_line, used to implement
                   1396:        clever Y centering. Make the KILLEHB test conditional on ECS_AGNUS.
                   1397:        Move joystick and sound initialization before gui startup. Adapt tui.c
                   1398:        so it understands the gfx_requested_* options.
                   1399:        We can't always avoid clearing pixdata.apixels if DIW is larger than
                   1400:        DDF. There may be sprites in the area outside DDF, but inside the DIW,
                   1401:        so we can't just adjust linetoscr_diw_{start,end} blindly in
                   1402:        pfield_init_linetoscr() [Sanity Arte demo].
                   1403: 970114 Bebox diffs from Christian Bauer.
                   1404:        Support for Symmetric Multi Penguins under Linux (start second thread
                   1405:        with clone and use some pipes for communication - rather simpleminded
                   1406:        for now). Rework do_flush_line() and do_flush_screen() so that X
                   1407:        libraries are only called from the first thread.
                   1408:        Eliminate valid field from struct decision (set which to -2 instead of
                   1409:        valid = 0)
                   1410:        Fix definition for gui_filename() in xdebug.c to use const char * for
                   1411:        the second parameter. Remove CRs from disk.c (now how did they get in
                   1412:        there??). Likewise for cpuopti.c.
                   1413: 970113 When post_decide_line() detects mid-line DDF change, must adjust
                   1414:        bitplane pointers in decide_plane() also. Make plfstrt the earlier a
                   1415:        position in this case, and adjust bitplane pointers/modulos
                   1416:        accordingly.
                   1417:        current_hpos() isn't what GCC calls a constant function.
                   1418:        Replace line_drawinfo[current_change_set] with new variable
                   1419:        curr_drawinfo throughout. Likewise for new variables prev_drawinfo,
                   1420:        {curr,prev}_{color_{change,table}s,sprite_positions}; all initialized 
                   1421:        in init_drawing_frame (). Turn line_data into a 2dim. array, do some
                   1422:        CSE/SR on line_data[lineno] in pfield_doline_{l,h}() and
                   1423:        decide_plane(). Make some custom registers unsigned int instead of
                   1424:        UWORD.
                   1425:        calc_copcomp_true(): Masking with 0xF000 isn't likely to give 0xC0000.
                   1426:        Comment out bplcon{3,4} from struct decision.
                   1427: 970112 filesys.c, action_set_protect(): if __unix is defined, check whether
                   1428:        user wants to change directory protection, and if so, force rwx to be
                   1429:        the new protection.
                   1430:        Force sane window sizes in xwin.c, and set width/height from mode specs
                   1431:        in svga.c.
                   1432:        Implement LORES_HACK compile-time option.
                   1433:        Whee, there _are_ broken programs that enable bitplane DMA in the
                   1434:        middle of the data fetch area, draw half a picture on the first line
                   1435:        and the full picture on all subsequent lines. New function
                   1436:        post_decide_line(), called from BPLCON0() and DMACON() which tries to
                   1437:        detect this case and turns the decision from border to playfield if
                   1438:        necessary.
                   1439:        New arrays, sprvstart and sprvstop, calculated in SPRxPOS and SPRxCTL,
                   1440:        and used by do_sprites. Handle sprites with vstart == vstop correctly.
                   1441:        Sprite vpos comparisons are now done with <= , not ==.
                   1442:        _Now_ the X86-specific linetoscr routines do their masking correctly.
                   1443:        configure: If we have GCC, #define GCCCONSTFUNC as __attribute__ 
                   1444:        ((const))
                   1445: 970111 Eliminate can_draw from struct decision.
                   1446:        Change vertical DIW code; use enum of two states (waiting for start and
                   1447:        for stop) which is updated in decide_line(). Lines during the wait for
                   1448:        stop phase are decided as border. No data is fetched outside the
                   1449:        vertical DIW.
                   1450:        Optimize copper memory cycle calculation a little: the new variable
                   1451:        copper_cycle_time is set to a time >= 0 if this time is constant
                   1452:        (i.e. 2). Calculated whenever DMA, BPLCON0, or DIW state changes.
                   1453:        blitter.c, genblitter.c, custom.c: For BLTBDAT, follow the HRM which
                   1454:        says that immediate data is shifted as soon as it is written. This 
                   1455:        seems to be wrong for the A channel, though. Also, don't change prevb
                   1456:        during blitter loops if DMA B is off (Sanity Arte). Turn FAST_BLITTER
                   1457:        stuff into run-time option "-n", and eliminate the ancient blitting
                   1458:        code (former FAST_BLITTER == 0).
                   1459:        Big OOPS: Copper move checked copcon, but there was no COPCON function
                   1460:        so it was always zero -> copper-controlled blitter never worked. As a
                   1461:        speed optimization, recognize 00010000 copper commands and put the
                   1462:        copper to sleep until the blit is finished.
                   1463:        Slow down the blitter in decide_line() if bitplane DMA steals blitter/
                   1464:        copper/CPU cycles (but this code is commented out for now).
                   1465: 970110 New function pfield_init_linetoscr(). Move calculation of diw_end and
                   1466:        diw_start values there from x86-specific code. Also use DDF values to
                   1467:        determine where data in pixdata.apixels is valid. The x86-specific
                   1468:        linetoscr routines now only do the alignment masking (and they now do
                   1469:        it correctly, too).
                   1470:        Got rid of the display-related contents of struct draw_info, make 
                   1471:        static variables and them initialize from pfield_draw_line() only when 
                   1472:        necessary in function pfield_expand_dp_bplcon (). Get rid of the four
                   1473:        saved_* arrays, remember line_drawinfo instead now that it's smaller.       
                   1474:        Color compare avoidance didn't work because color_src_match didn't get
                   1475:        set when a compare was successful. Fixed.
                   1476:        Reorder parts of the decision-making code so that less redundant checks
                   1477:        are performed.
                   1478:        Add clever x centering. Change "-O" option parameter format.
                   1479:        In md-i386-linux/support.c, memcmpy(), do memcmp() first, then switch
                   1480:        to a plain memcpy routine once we find the first difference.
                   1481:        Patches from Stefan Reinauer/Christian Schmitt for 
                   1482:        xdebug.c/configure.in
                   1483:        New uae-ui.tk from Volker Zota.
                   1484:        Add --enable-profiling to configure.in.
                   1485:        Check for period==0 in AUDxPER() was accidentally commented out -
                   1486:        revert.
                   1487: 970109 Some tweaks in X86.S, plus a new option X86_PPRO_OPT to use movzbl
                   1488:        instead of xorl/movb when possible.
                   1489:        Fix maxline calculation in finish_drawing_frame().
                   1490:        Make next_lineno always a valid array index. Decrease minfirstline to
                   1491:        21 (NTSC vblank end). New option -O to specify display parameters,
                   1492:        supersedes -d and -C which will be removed eventually. Differentiate
                   1493:        between line doubling and aspect correction. Put aspect correction code
                   1494:        in custom.c.
                   1495:        Remove some more unused stuff from custom.c.
                   1496:        Fix Makefile problems when cpuopti isn't used.
                   1497: 970108 use_lores isn't initialized before custom_init(), setup lores_frame and
                   1498:        friends in customreset(). Optimize spixstate clearing. Optimize border
                   1499:        drawing with copper color changes (use fill_line instead of linetoscr)
                   1500:        Fix the sprite DMA logic, it now works with the Interference demo.
                   1501:        Silly bug: Sprite 7 never got displayed (introduced sometime last week)
                   1502:        Implement USER_PROGRAMS_BEHAVE for normal (non-compiler) CPU emulation.
                   1503:        Add most of Gustavo's last patch (new dir md-i386-dos)
                   1504: 970107 Finish rewriting most of the drawing code in custom.c/X86.S. See
                   1505:        README.PROGRAMMERS and source for details. Improvements include better
                   1506:        copper precision, better interlace support, hopefully much less bugs
                   1507:        and not too many new ones.
                   1508:        Remove calc_adjustment() and gfxvidinfo.x_adjust; replace with code in
                   1509:        custom.c that looks at gfxvidinfo.follow_diwstop (new field)
                   1510:        Some operations (like EHB playfields) now have a higher penalty than
                   1511:        before, the assumption being that these are rare and the normal case
                   1512:        runs faster if it doesn't have to care too much about exceptions.
                   1513:        Fix sign mismatch bug in BPL1MOD() and BPL2MOD().
                   1514: 970104 Move x_ShowEA() from xdebug.c in newcpu.c, rename as ShowEA().
                   1515: 970102 Add check for XK_W to decode_es() in xwin.c.
                   1516:        New uae-ui.tk from Volker Zota.
                   1517: 961218 Add a patch by Bernie Solomon to overcome a problem with K&R compilers. 
                   1518:        Change X86.S in a way that may make it either faster or slower.
                   1519:        Fix ADF_EXT1.
                   1520: 961217 #ifdef XK_dead_*, since Solaris doesn't have it.
                   1521: 961202 Fixed joystick.h problem in configure. X11/DGA support from Kai
                   1522:        Kollmorgen.
                   1523: 961117 Some fixes in svgancui.c.
                   1524: 961112 Gustavo's latest patch, with GUS support for DOS by Michael Sontheimer.
                   1525:        Add menu browsing to tui.c/svgancui.c
                   1526: 961107 Fix m68k_areg and m68k_dreg macros (put args in parentheses)
                   1527:        Initialize gfxvidinfo.maxlinetoscr in xwin.c (found by Sam Devulder)
                   1528: 961104 svgancui.c tui_refresh() routine tweaked to work with the non-standard
                   1529:        ncurses that came with my new SuSE-Linux CD.
                   1530: 961031 Added Christian Schmitt's xdebug.c (disabled for this release)
                   1531: 961024 Module search function from Michael Krause.
                   1532: 961019 Add Samuel Devulder's Amiga patches.
                   1533: 961018 Don't use -lm on NeXTStep.
                   1534: 961017 configure checks for -lforms.
                   1535: 961016 Ian Stephenson's new NeXTwin.m. Make CLXDAT return 0 (no collisions)
                   1536:        transdisk and transrom patches from Rodney Hester. Don't warn about
                   1537:        256K Kickstarts. Check diskfile sizes and try to determine whether it's
                   1538:        a normal or a HD diskfile. No HD drive identification yet (is it
                   1539:        different?)
                   1540: 961013 Corrected lots of bugs in the return address stack. Fix some errors in
                   1541:        the compiler memory management. Use the "locked" flag for hash entries
                   1542:        differently, and don't enforce it on a cache flush. Compile JMP to a
                   1543:        constant address.
                   1544: 961012 Remove regs from cache before sign extending them for ADDA, MOVEA and
                   1545:        similar things. Compile NOPs to nothing. Implement variable shifts/
                   1546:        rotates. Most shifts clear the V flag: Handle this in the compiler by
                   1547:        some extra magic sequences after shifts or in the CC_AFTER_RO case in
                   1548:        flush_cc_cache().
                   1549:        Implement a stack containing return addresses and their hash entries,
                   1550:        and compile JSR (to constant addresses)/BSR/RTS instructions inline.
                   1551: 961011 compiler.c: Several bugs introduced in the last two days fixed.
                   1552:        New function compile_note_modify() which is used when an ea is
                   1553:        modified. This replaces calls to storeea with eaino_s == eaino_d.
                   1554:        Bah, the 386 doesn't set flags on a NOT. Use CC_TEST_REG again.
                   1555:        Do flag life analysis until no more changes are found.
                   1556:        Make sure all "data" parts of EAs are locked exclusively (esp. for 
                   1557:        LEA, PEA)
                   1558: 961010 compiler.c: Finish yesterdays changes. Get rid of reg/offset
                   1559:        bookkeeping in m68k_compile_block(), keep the information in struct
                   1560:        ea_info instead. Rewrite all instructions to use the new fetch and
                   1561:        store routines.
                   1562:        Don't force a byteorder conversion in sync_reg() if the reg doesn't need
                   1563:        to be written back. Don't do a SAHF or equivalent in compile_condbranch
                   1564:        if we are doing a BRA or BF.
                   1565:        Don't use CC_TEST_REG for NEG and NOT (this was inefficient for NOT and
                   1566:        wrong for NEG).
                   1567: 961009 compiler.c: Two types of locks for registers; shared and exclusive.
                   1568:        Implement better EA fetching and storing routines. For pdi addressing
                   1569:        modes, lock the necessary registers shared before calling prepareea.
                   1570:        Unlock those registers again in generate_possible_exit().
                   1571: 961008 MOVEM instructions in the compiler to an absolute address could have
                   1572:        caused random memory corruption.
                   1573: 961007 Spanish keyboard support for X by Ruben Martinez. Some configure fixes
                   1574:        (don't assume current dir is in path, don't assume ncurses.h exists if
                   1575:        libncurses does).
                   1576:        If we're calling 68k code from an emulator function, don't use compiled
                   1577:        code.
                   1578:        Add a compilation option USER_PROGRAMS_BEHAVE (for compiler). Make
                   1579:        compiler hash table larger.
                   1580: 961004 Fix typo in configure.in.
                   1581:        Modify the compiler so it doesn't ever throw away code, unless it's
                   1582:        necessary for a cache flush.
                   1583:        Didn't quite squash the compiler flag bug yesterday. Try again.
                   1584:        In filesys.c, do_find(), add a parameter fallback that indicates that
                   1585:        the open should be retried with O_RDONLY if it failed with O_RDWR.
                   1586:        Use this in find_input(). This fixes problems with r/o files on r/w
                   1587:        volumes.
                   1588: 961003 Play around with the x86 specific memory access functions. Problem:
                   1589:        __attribute__((regparam)) isn't reliable, and it seems that that's a
                   1590:        rather hard to fix bug in GCC. Add some alternatives to
                   1591:        md-i386-linux/memory.h; these aren't used yet though.
                   1592:        Huh, the compiler was completely wrong about the flag needs of
                   1593:        conditional instructions. I wonder how it could work at all...
                   1594:        Remove a and d arrays from struct regstruct; replace with array regs
                   1595:        with 16 elements. This allows better code for get_disp_ea()
                   1596: 961002 BeBox diffs from Christian Bauer. Move all code from main() to new
                   1597:        function real_main().
                   1598: 961001 Use do_get_mem_*() functions for nextiword(), nextilong() and new
                   1599:        function nextibyte().
                   1600: 960930 genblitter optimizations: Don't generate expressions in genblitter, use
                   1601:        a second program called gengenblitter to generate a table of
                   1602:        expressions for genblitter to use. gengenblitter knows about a lot of
                   1603:        rules to simplify expressions. Some other tweaks to make GCC output
                   1604:        better assembly for blitfunc.c.
                   1605: 960927 Turn off LED() in xwin.c (may fix SunOS joystick emulation problems)
                   1606:        Call XFlush() and XSync() when exiting.
                   1607:        Add some DOS patches.
                   1608:        Add hooks in filesys.c to support filesystem units in a GUI. Use them
                   1609:        in tui.c. Bugfixes in svgancui.c. Change the way tui_refresh() works.
                   1610:        New option "-A".
                   1611: 960925 For read-only filesystems (CD...), use O_RDONLY in action_find_input.
                   1612: 960923 Save options file even if rename fails.
                   1613:        Mirror address space every 16MB like we used to (got turned off by
                   1614:        accident).
                   1615:        Move some checks out of options.h into configure. Set up md-*
                   1616:        directories with machine-dependent stuff in them; configure creates
                   1617:        a link called machdep to the appropriate one.
                   1618: 960918 Solaris sound update from Manfred Thole.
                   1619: 960917 Add a timer.device replacement (buggy).
                   1620: 960916 Tristan Cavelier's french keyboard patch.
                   1621:        Apply ReadTheSpecsBeforeYouWrite(tm) technology to AddPort().
                   1622:        Implement RemPort(), GetCC().
                   1623: 960915 Tighten up some of the return values in Exec.
                   1624: 960914 EXEC: Implement RemTask(), ObtainSemaphoreList() and
                   1625:        ReleaseSemaphoreList(). Set up more fields of the ExecBase properly
                   1626:        and Enqueue it in the library list. Make InitResident call AddLibrary
                   1627:        when appropriate (otherwise, intuition is never put into the library
                   1628:        list). Fix major braino in Obtain/ReleaseSemaphore() (tried to Enqueue
                   1629:        tasks into two lists). Make OpenLibrary() honor the version parameter.
                   1630: 960913 EXEC: Idle task now runs in user mode (abuse 0xFF0D as second STOP
                   1631:        instruction). Make EXEC_IntTrap perform the RTE before trying to
                   1632:        schedule.
                   1633: 960912 Solaris sound didn't compile. So much for making blind changes without
                   1634:        being able to test them.
                   1635: 960911 As soon as you compile it under Solaris, it bombs... Now check that the
                   1636:        hardfile exists before determining the size in main.c.
                   1637:        execlib fixes: Set master DMA enable bit at startup, fix interrupt
                   1638:        code to survive an interrupt that occurs before the proper SetIntVector
                   1639:        call. Implement RawDoFmt(), CloseDevice(), CloseLibrary(),
                   1640:        FindResident().
1.1       root     1641: 960905 Lower 8 bits of POTGOR should be 0.
                   1642: 960904 Implement MULU, MULS, ADDX and SUBX in compiler.
                   1643: 960903 ncurses interface works. DOS people: please use the new portable tui.c
                   1644:        and turn dos-ui.c into a frontend for conio.h, similar to svgancui.c
                   1645:        In xui.c, unlink the temporary files ASAP.
                   1646:        Two new command-line options, "-o" and "-G".
                   1647:        Get rid of sz_unknown.
                   1648:        compiler.h, compiler.c: New files.
                   1649:        filesys.c, action_read(): Added a hack to test whether the first four
                   1650:        bytes read from a file a file contain 0x000003F3 (HUNK_HEADER), in
                   1651:        which case there's probably a LoadSeg() call going on and we ought to
                   1652:        flush the cache. Also, use the fact that memory is now linear.
                   1653: 960902 Struggle a bit with dos-ui.c, rename it to tui.c (text-based ui), add
                   1654:        new file svgancui.c (ncurses ui) and try to make these two understand
                   1655:        each other.
                   1656: 960829 New transdisk from Stefan Ropke (can write images)
                   1657:        Apply Patrick Hanevolds BeBox patches.
                   1658: 96082x many changes to Exec. Still not booting (DMACON seems not to be set up
                   1659:        properly, and sometimes Signal is called with task==0).
                   1660: 960821 Solaris sound from Manfred Thole.
                   1661: 960820 In filesys.c, get_fileinfo(), return volume name for top-level 
                   1662:        directory.
                   1663: 960819 Reimplement WritePixel(). Layer locking is still missing.
                   1664: 960818 Reverse meaning of -x flag for X11. More Exec code.
                   1665:        Several changes to the main CPU loop and the way call traps work.
                   1666: 960817 Implement some simple Exec functions (Lists, AllocMem & friends)
                   1667: 960816 filesys.c fixes from David Varley.
                   1668: 960815 Implement graphics library region functions.
                   1669: 960814 Modify memory layout: All memory is linear now; get_real_address()
                   1670:        returns a (UBYTE *).
                   1671: 960810 Add Gustavo's latest DOS code.
                   1672:        In configure, include <sys/param.h> earlier for the sake of some *BSD.
                   1673:        Add three options for sound code (bits, frequency, buffer size).
                   1674:        Make -S option take a parameter; remove SPEED_UP_SIDMON_MODULES.
                   1675:        New version of transrom (return 0, duh).
                   1676: 960805 Fixed the blitter line mode emulation (this time, really! I hope.)
                   1677:        Thanks to Fabio Ciucci for a detailed description of the correct
                   1678:        behaviour.
                   1679: 960730 Spent the last three days trying to make the filesystem emulation
                   1680:        bootable by adding an expansion device for it. A fair bit of trial and
                   1681:        error, but now it works! Even the hardfile now works with Kick 1.3, but
                   1682:        you have to mount it manually after booting.
                   1683:        hardfile.c, filesys.c, expansion.c and autoconf.c now are an
                   1684:        entangled mess which badly needs to be cleaned up.
                   1685:        We can now mount more than one filesystem even with Kick 1.3: we
                   1686:        recognize them by param 2 of the startup packet, which has the same
                   1687:        value as the dn_Startup field of the devicenode.
                   1688:        Make Kickstart replacement work again (didn't like the CPU emulator
                   1689:        changes)
                   1690:        Include preliminary serial support from Stefan Reinauer.
                   1691: 960728 Fixed the scancodes for <> and #' keys in svga.c
                   1692:        Apparently, CIA timer latches ought to be 0xFFFF after a reset
                   1693:        (prevents Eagleplayer from crashing occasionally). #ifdeffed out a
1.1.1.2   root     1694:        slightly weird call to INTREQ from RethinkICRB()
1.1       root     1695: 960727 Sound code rewritten again. Now uses events (five new ones). All 
                   1696:        modules seem to play correctly now. It's a bit slower, though.
                   1697:        AF sound should work again, patches from Marcus Sundberg.
                   1698: 960723 ... and more CPU emulation bugs fixed by Herman.
                   1699:        Added uae.library from Tauno Taipaleenmaki, plus support files in the
                   1700:        "amiga" directory.
                   1701:        Added some files for the XFree86/OS2 port from Krister Bergman.
                   1702:        Reorganized all the directories.
                   1703: 960717 Add latest patch from Herman.
                   1704:        More FAST_BLITTER options: 4 and 5. These finish the blit immediately.
                   1705: 960713 Call XAutoRepeatXXX() only if we know we want to change the state.
                   1706: 960709 Work around a few AIX bugs (ughhh... what a broken OS). New test for
                   1707:        sys/select.h.
                   1708:        In xui.c, don't try to communicate with a dead process.
                   1709: 960704 More bugfixes from Herman.
                   1710:        Get rid of dummy_xlate(), use default_xlate() to abort with error.
                   1711:        In svga.c, set correct_aspect to 0 if using lores.
                   1712:        Change the Bcc exception 3 handling code a bit.
                   1713:        Add new program "cpuopti" that takes gcc-generated assembly files and
                   1714:        optimizes away unnecessary pushl/popl instructions on the x86.
                   1715: 960701 68020 exception handling & various bugfixes from Herman ten Brugge.
                   1716:        In ersatz.c, use 0xFF0D instead of 0xF00D as trap opcode.
                   1717:        Do MMU "emulation" (no-op MMU instructions, probably many cases decoded
                   1718:        incorrectly).
                   1719: 960627 New file LIESMICH, with minimal German instructions. Somebody want to
                   1720:        translate the docs to French, Spanish, Italian, all the Scandinavian
                   1721:        languages, Hebrew, Polish, Dutch, Russian, Welsh, Gaelic and something
                   1722:        [email protected] understands? (No offense meant - I'm sure there are
                   1723:        brillant minds using AOL. There must be.)
                   1724: 960626 In zfile.c, make sure we delete the temporary file even if file
                   1725:        decompression fails.
                   1726:        Reimplemented sound support, this time following the HRM closely. Seems
                   1727:        to work fine most of the time, but occasionally loses drum beats in
                   1728:        TFMX modules. do_sound() is now unconditional, it calls
                   1729:        flush_sound_buffer(), which is system-dependent. This breaks everything
                   1730:        except Linux sound for now :(
                   1731:        Add Herman ten Brugge's 68020/68881 emulation code.
                   1732:        FreeBSD chokes if sys/mount.h is included without sys/types.h. Fix the
                   1733:        configure script.
                   1734: 960622 More work on AGA code.
                   1735:        Removed 2-bit display routines from custom.c. Ian: please use dithering
                   1736:        code.
                   1737:        Make slowmem and chipmem sizes run-time configurable.
                   1738:        Mask out the high bits in BLT?PTH().
                   1739:        Add exception 3 checks to Bcc/BSR instructions. Seems to be not quite
                   1740:        correct yet.
                   1741:        Completely rewrote the disk emulation. We now create a big track buffer
                   1742:        full of MFM data, used in a cyclic fashion by DSKBYTR() and friends. 
                   1743:        The current position in the buffer is determined by the cycle counter.
                   1744:        DMA reads are now done in one piece. Two new event types: ev_diskblk 
                   1745:        and ev_diskindex.
                   1746:        ARRGGHH! The RSI demo has _completely_ broken disk loading routines.
                   1747:        They start disk DMA on a block while the blitter is still working on 
                   1748:        the same memory region.
                   1749:        In zfile.c, unlink() the temporary file directly after opening it so
                   1750:        it will be freed by the OS as soon as we close it (or crash... :)
                   1751: 960621 Merge pfield_sprite_h() and pfield_sprite_l() into one function.
                   1752:        Split off new files blitter.c and blitter.h from custom.c.
                   1753:        Fixed null-pointer dereference in zfile.c when filename has no
                   1754:        extension.
                   1755:        Add new field maxline to gfxvidinfo that prevents writing past the
                   1756:        screen buffer if it has less lines than expected.
                   1757:        Modify the 256 color allocation routine to set nb_cols to the same
                   1758:        value first for r,g and b; allocate everything as usual and fill the
                   1759:        lost colors afterwards with those that have the greatest difference.
                   1760: 960620 For some extremely weird reason, it is faster to simply call the
                   1761:        assembly-optimized pfield_linetoscr_full routines _twice_ to double the
                   1762:        line than calling the new (also assembly-optimized)
                   1763:        pfield_linetoscr_full_double routines, at least when writing directly 
                   1764:        into the framebuffer. If someone has a good theory why, let me know 
                   1765:        about it.
                   1766:        Drawing into memory is faster with the _double routines, but not
                   1767:        noticeably (about 1%).
                   1768:        Consequence: Removed the new pfield_linetoscr_full_double assembly
                   1769:        routines again.
                   1770:        Add a "--disable-gui" option to configure.
                   1771:        Add Samuel Devulder's dithering code. Provide support for mono and
                   1772:        16 color X servers.
                   1773:        Put an assembly version of DitherLine() in X86.S.
                   1774:        New color mode (3) available, tells UAE to use 256 colors and dither
                   1775:        the image. This is meant for people who have only a 256 color X server
                   1776:        available, but it works with the SVGA version, too. It's much slower
                   1777:        than normal 256 color mode, though.
                   1778:        Use the color allocation algorithm from the dither code in
                   1779:        alloc_colors256(), too.
                   1780: 960619 New files: zfile.c and zfile.h, from Samuel Devulder. These provide
                   1781:        transparent decompression of various compressed file formats. Enabled
                   1782:        by configure only for Unix systems.
                   1783:        Eliminate dont_want_aspect. New option "-C", sets correct_aspect. Make
                   1784:        video mode 3 640x480, video mode 4 800x600. Honor correct_aspect in
                   1785:        320x400, 640x480 and 800x600 mode with SVGAlib.
                   1786:        Add fields maxlinetoscr and x_adjust to gfxvidinfo.
                   1787:        Rename pfield_slow_linetoscr() to pfield_do_linetoscr(). Use new fields
                   1788:        in gfxvidinfo to enable writing directly to the framebuffer in
                   1789:        resolutions with <800 horizontal pixels.
                   1790:        New function pfield_do_linetoscr_full(), called when sure that full
                   1791:        line update is being done.
                   1792:        Move some of the usage() information into some target_specific_usage() 
                   1793:        functions, defined in the various system-specific files.
                   1794:        Support lower resolutions with LOW_BANDWIDTH, too.
                   1795:        memcpy() within screen memory is dog slow. Prevent some common cases:
                   1796:        1. Use fill_line() to double a line in the border.
                   1797:        2. Add a parameter to pfield_do_linetoscr_full() to indicate whether 
                   1798:           the line has to be doubled. New functions
                   1799:           pfield_linetoscr_*_double_slow() that simply do a memcpy(), plus 
                   1800:          optimized ones in X86.S that are much faster by avoiding the copy.
                   1801:        Smart update code could get confused by lores modes when
                   1802:        prev_max_diwstop changed from one frame to the next. New variable
                   1803:        frame_redraw_necessary, which acts as a counter. It's initialized to
                   1804:        2 in interlace mode to handle that case properly, too.
                   1805:        Move sprite priority checks into pfield_sprite_?(), move HAM
                   1806:        calculations into new function decode_ham6() to simplify the various
                   1807:        linetoscr functions.
                   1808:        Fixed a bug that would cause sprites to get deformed in some cases
                   1809:        when they overlapped (never seen it).
                   1810: 960618 New file: dos-snd.c, from Gustavo.
                   1811: 
                   1812: 960617 Release 0.6.0
                   1813: 960617 Fix memory clobber in X86.S when diwfirstword==0. Eliminate double test
                   1814:        for HAVE_SYS_MOUNT_H in sysdeps.h.
                   1815: 960616 Handle programs that don't wait for the blitter by finishing a pending
                   1816:        blit as soon as a blitter register is written to (regardless of DMACON,
                   1817:        to be safe).
                   1818:        Call gui_led only if the LED changed.
                   1819: 960615 Fixed dual playfield sprite priorities. Optimized dual playfield code
                   1820:        in X86.S. More work on AGA code. Get joystick status only in
                   1821:        vsync_handler to speed things up.
                   1822:        Make blitter fill more intelligent with table lookups instead of loop.
                   1823: 960614 DOS update from Gustavo. Pass real bitplane pointer to
                   1824:        bpl_data_differs(), don't calculate it again.
                   1825: 960610 Fixed silly INTEL_FLAG_OPT bug: The new __asm__ expressions use
                   1826:        regflags, which is of course _regflags on a.out...
                   1827:        More BeBox fixes from Christian.
                   1828:        Make the CIA bank bigger (A0..BF) and relax the CIA A/B selection
                   1829:        checks to make broken software (Kingsoft's Emerald Mine, reportedly)
                   1830:        happy.
                   1831:        Default framerate is now 1.
                   1832: 960603 New BeBox code from Christian. Fix test for ELF in configure.in.
                   1833: 960529 genblitter.c: generate blitfunc as a function taking ULONGs and
                   1834:        returning an ULONG. This makes custom.o about 4500 bytes smaller on the
                   1835:        x86 by removing worthless size prefixes, and should increase
                   1836:        performance (better for the cache, and the P6 reportedly doesn't like 
                   1837:        16 bit instructions anyway).
                   1838:        memory.c: Load Kickstart in one block and swap bytes after that if
                   1839:        necessary (eliminates the need for the special bebox load routine)
                   1840:        custom.c: Some preliminary work for AGA support.
                   1841: 960528 Saw a real awful piece of code that detects the right mouse button by
                   1842:        reading a value from POT0DAT, counting up to 25, reading from POT0DAT
                   1843:        again, and deciding the button is pressed if the value changed. Urgl!
                   1844:        Added POT0DAT() in custom.c ...
                   1845:        Gustavo's latest patches.
                   1846: 960525 Do index pulse handling in CIA_hsync_handler(). Make sure bit 12 in 
                   1847:        INTREQ gets set on an index pulse. Don't call DISK_Index() for now,
                   1848:        since this breaks the Workbench.
                   1849:        The CIA code should _probably_ not be resetting the bits in INTREQ.
                   1850:        Disable this as an experiment, let's see what breaks.
                   1851: 960524 Z flag handling for ABCD/SBCD/ADDX/SUBX was wrong (must be clear if not
                   1852:        zero, was set if zero). Some other flag bugs in these functions fixed.
                   1853: 960523 gfxlib.c update from Christian Schmitt. Some new Mac code from Ernesto,
                   1854:        still not all of it, though. Italian keyboard from Alessandro Bissacco.
                   1855: 960522 Fix the CHK instruction. Implement middle mouse button.
                   1856: 960515 Fix some Nextstep problems in configure.in.
                   1857: 960513 New Makefile target "streifenfrei" to remove all output from configure.
                   1858:        Use autoconf 2.7; 2.9 is buggy.
                   1859: 960512 Remove BIG_ALIGNMENT hack. Remove superfluous pfield_fetchdata() call
                   1860:        in pfield_doline_slow_l() that resulted in garbage on the screen.
                   1861:        Move blttbl array from custom.h to genblitter.c
                   1862:        Use new lookup tables imm8_table and areg_byteinc in CPU emulation
                   1863:        instead of ?: expressions.
                   1864:        GCC appears to generate better code if the opcode is passed as ULONG to
                   1865:        the CPU emulation functions instead of as UWORD.
                   1866:        Modify some of the flag emulation __asm__ statements so that GCC uses
                   1867:        less registers for them.
                   1868: 960510 Cast malloc() results to char *, for C++ compilers.
                   1869: 960509 Use test for GCC and __i386__ in options.h to decide whether to use
                   1870:        intel flag optimization.
                   1871:        Use test for wish4.0 to decide whether to use the GUI.
                   1872: 960507 New bebox.cpp from Christian. AF sound patches from Marcus Sundberg.
                   1873: 960505 Fix the configuration stuff so it works. Fix some bugs in gfxlib.c
                   1874: 960504 Use GNU autoconf scripts to generate Makefile and sysconfig.h. Add new
                   1875:        files sysdeps.h that includes the right system header files. Remove
                   1876:        amiga.h and Makefile.
                   1877: 960502 More Next code from Ian (new Uae.app directory, 2 bit drawing for
                   1878:        custom.c).
                   1879: 960501 Allow the sound driver to set the frequency to a value that is slightly
                   1880:        different from the requested one.
                   1881: 960430 Added AmigaOS port from Olaf Barthel.
                   1882: 960427 Fixed single playfield sprite priorities in X86.S.
                   1883: 960426 Added new NeXTwin.m from Ian.
                   1884:        Turn off the blitter delay in line mode.
                   1885:        Added a CPU optimization from Olivier Raoul: gencpu now reads a file
                   1886:        "insncount" that can be generated by UAE during execution and generates
                   1887:        specific functions for the most common opcodes. Not documented yet.
                   1888: 960414 Reimplemented the fast disk emulation in a more sane way. Also it's
                   1889:        only done for reads now. (Plus, it no longer works :-/ Need to work
                   1890:        some more on this).
                   1891:        In blitter emulation, defer not only the setting of the bltfinish bit,
                   1892:        but actually defer the whole blit for the number of cycles it will
                   1893:        take. This makes programs the clear the screen while it is still being
                   1894:        displayed look much better.
                   1895:        Changed supervisor mode handling around a bit (was messy).
                   1896:        New DOS code from Gustavo.
                   1897: 960412 Removed smart update method 2. Added Alessandro Bissacco's blitter
                   1898:        optimization patch.
                   1899:        Fixed some sprite problems: during hysnc, clear sprpos and sprctl, and
                   1900:        don't do_sprites() in line 0.
                   1901: 960409 Be a little more intelligent about when to call pfield_linetoscr() from
                   1902:        pfield_doline_slow(). It's only necessary if a color register changed.
                   1903:        If it can be deferred to the end of the line, use the the _full
                   1904:        variants.
                   1905:        Some CIA TOD fixes.
                   1906:        Better transdisk, accepts first/last track parameters.
                   1907: 960405 New function memcmpy(), inline assembler for the i386. Compares two
                   1908:        memory blocks and copies them at the same time. Used in
                   1909:        bpl_data_differs.
                   1910: 960404 French keyboard from Tristan Cavelier. Parallel port emulation from
                   1911:        Stefan Reinauer.
                   1912:        Turn bpl?pt and r_bpl?pt into arrays, simplify some code using them.
                   1913: 960401 Some parts of Ernesto's new Mac sources.
                   1914: 960331 filesys.c: Close filedescriptors in free_key(). get_path() sometimes
                   1915:        read uninitialized bytes.
                   1916:        Minor cleanups all over the place.
                   1917:        unchain_mnn() leaves sibling intact, but clobbers next. customreset()
                   1918:        didn't care about that and crashed.
                   1919:        Use the __asm__("intel_flag_lookup") magic not only for DOS.
                   1920:        Support 320x300 for X (without LOW_BANDWIDTH).
                   1921:        Add new function fast_memcmp(), defined as memcmp if __i386__ is
                   1922:        undefined, otherwise a slightly optimized inline assembly function.
                   1923: 960329 Some bug fixes in gencpu.c
                   1924: 960328 Stupid programs write odd playfield modulos into the hw registers...
                   1925:        Eek! Sometimes, linedescr[] was indexed with a negative value... Add a
                   1926:        vpos >= minfirstline check to pfield_may_need_update(). I really need
                   1927:        to rewrite this in Oberon...
                   1928:        Don't turn off SHM when LOW_BANDWIDTH is selected.
                   1929:        Keep the nextpos and linepos variables from pfield_doline_slow_?() as
                   1930:        globals and initialize them in pfield_may_need_udpate().
                   1931:        Modified alloc_colors256() some more.
                   1932:        Try to make sprite DMA follow the Amiga DMA slots more closely by
                   1933:        adding a currhp parameter to do_sprites() and calling it at the end
                   1934:        of a scanline or in pfield_may_need_update().
                   1935: 960327 Added Gustavo's latest DOS code, as far as possible. Modified X86.S to
                   1936:        use a macro SYM() to create symbol names either with underscore or
                   1937:        without.
                   1938:        Fixed some very silly SVGAlib lores bugs. Move screen 8 pixels up in
                   1939:        low resolution.
                   1940:        Use diwstop instead of diwstart to caclulate the DIW for 320x200 modes.
                   1941:        Reset it not only in calcdiw(), but also in init_frame().
                   1942:        Speed up 256 color allocation a little bit.
                   1943: 960326 New function flush_block() in xwin.c and svga.c. Called from
                   1944:        do_flush_line() and (new function) do_flush_screen(). Modify struct
                   1945:        vidbuf_description, new member maxblocklines that records the maximum
                   1946:        number of scanlines that do_flush_line() should collect before calling
                   1947:        flush_block(). If it is zero, then flush_line() is used as before.
                   1948:        This makes the special case stuff for SHM unnecessary, so it's removed.
                   1949:        Fixed a stupid bug in events code: Put ev_hsync in front of ev_copper,
                   1950:        so that do_copper gets called with hpos == 0 instead of hpos == 227 at
                   1951:        the beginning of the line.
                   1952:        New function init_frame() that sets up some variables, called from 
                   1953:        customreset() and vsync_handler().
                   1954:        Move smart update code to pfield_doline() from pfield_doline_h() and 
                   1955:        ..._l(). Clean up these two with a macro DO_ONE_PLANE, removing
                   1956:        duplicate code.
                   1957:        Implement big blits and ECS chip ids. New configuration options
                   1958:        ECS_AGNUS and ECS_DENISE.
                   1959:        Implement MOVEP.
                   1960: 960325 Before calling pfield_may_need_update(), make sure the value that was
                   1961:        written to a register actually differs from the previous one.
                   1962:        New expansion code from Stefan Reinauer.
                   1963:        Modify struct mem_notify_node to contain a pointer to a valid bit 
                   1964:        instead of the valid bit itself, so that the playfield code has to
                   1965:        check only one flag to decide whether to draw the line (SU method 2)
                   1966: 960324 The chip_flags approach has several problems. A flag may cover an area
                   1967:        in memory that spans two scanlines, or several scanlines may use the
                   1968:        same area in memory.
                   1969:        Provide two other, different methods for the smart update:
                   1970:        1. Save all the bitplane data for each line and compare the chipmem
                   1971:           with the saved data to decide whether an update is necessary.
                   1972:        2. Use a chain of memory_notify_node structs instead of a single bit
                   1973:           for flags. Each scanline owns a set of these structs and chains them
                   1974:          into the right place, and the chipmem_?put routines walk the chains
                   1975:          and set the modified bit for each element.
                   1976:        Unfortunately, both methods are slower than the old one. Especially the
                   1977:        first one has some advantages though: it speeds up programs that clear
                   1978:        the screen each update and write the same contents back, and it
                   1979:        can speed up double-buffering programs at full framerate, since it does
                   1980:        not have to check whether the bitplane pointers have changed.
                   1981:        Remember the first and last drawn line for each frame, and pass them to
                   1982:        flush_screen. Use this in xwin.c for SHM. Modify SHM logic: if smart
                   1983:        update is selected, call XShmPutImage() from flush_line() instead of 
                   1984:        from flush_screen(). But gather blocks of consecutive lines to avoid
                   1985:        calling XShmPutImage() too often.
                   1986: 960323 "Smart update" method, based very loosely on Alessandro Bissacco's
                   1987:        work, implemented:
                   1988:        Add an array chip_flags that records any change made to specific words
                   1989:        in chip memory.
                   1990:        Move all the hardware registers relevant to playfield display into a
                   1991:        new structure bplinfo. Remember the contents of this structure in
                   1992:        struct line_description for every line on the screen. Avoid redrawing
                   1993:        in pfield_doline if the screen memory has not been modified for the
                   1994:        line to be drawn and if the information from the last frame matches
                   1995:        that in the current frame.
                   1996: 960322 Duplicate all functions responsible for drawing (pfield_doline,
                   1997:        pfield_doline_slow, pfield_sprite, pfield_*word_*res) and append _h
                   1998:        or _l (ah, the golden C++ days, when we had templates... which never
                   1999:        worked). Modify the *_l functions to support drawing in low resolution
                   2000:        (i.e. 320x200). Change the options -d and -H to support selecting color
                   2001:        mode and resolution, thereby getting rid of some SVGALIB_* options.
                   2002:        Get rid of the old pfield_*word_*res functions.
                   2003:        Collect information about the minimum diwstart value during the
                   2004:        previous frame and use that in case 320x200 was selected to fit the
                   2005:        image on the screen.
                   2006:        Get rid of HAVE_JOYSTICK (breaks the "-J" option)
                   2007: 960321 Give up in op_illg() if opcode is 0x4e7b and the exception handler for
                   2008:        it is NULL. In that case, it's a 68020 Kickstart.
                   2009: 960319 New Next code from Ian. SunOS target was still screwed (two CFLAGS).
                   2010:        Turn -x option into a "hair cursor" option. Support multiple mounts,
                   2011:        but warn if more than one is seen (still does not work with Kick 1.3).
                   2012:        Integrated Samuel Devulder's new LOW_BANDWIDTH patch.
                   2013: 960318 Integrated the start of Markus Gietzen's gfx library replacement.
                   2014:        Changed the interface between custom.c and the graphics code. There has
                   2015:        to be a buffer holding the data of all the lines on the screen. For
                   2016:        linear SVGAlib modes, this is the video memory. Eliminated -x option,
                   2017:        prepare_line(), DrawPixel() and the X_?BIT_SCREEN options, replace with
                   2018:        3 versions of pfield_linetoscr for different datatypes. Implement
                   2019:        proper handling of the borders above and below the DIW in custom.c
                   2020:        instead of in flush_screen().
                   2021:        Move common code (color allocation) from all the graphics files to new 
                   2022:        file gfxutil.c.
                   2023:        Swedish keyboard from Per Olofsson.
                   2024: 
                   2025: 960315 Release 0.5.0
                   2026: 960315 Newest DOS port from Gustavo. New sgi-gcc target.
                   2027: 960314 Add -lXext to osf target. Use "rb" for fopen() in main.c
                   2028: 960310 Play a bit with the __asm__ constraints. Implement CHK.
                   2029: 960307 Fix some stupid Makefile errors. Call parse_cmdline() if no init file
                   2030:        is found.
                   2031:        First round of NextStep patches; new file NeXTwin.m
                   2032:        Stupid bug in custom.c: The #define is called NO_FAST_DISK, not
                   2033:        NO_FAST_FLOPPY.
                   2034:        Fix one of the problems the Deform demo had with the blitter: The
                   2035:        line texture wasn't rotated to the right position in blitter_init().
                   2036: 960306 Use some black GCC __asm__ magic to calculate flags more quickly
                   2037:        (config INTEL_FLAG_OPT)
                   2038:        HAM was broken by pfield_linetoscr changes. Fixed.
                   2039:        LOW_BANDWIDTH sometimes got confused when the display window changed.
                   2040: 960305 BCD instructions work well enough for Locomotive Basic on CPE.
                   2041:        New function parse_cmdline_and_init_file() that reads ~/.uaerc or
                   2042:        ./.uaerc and adds the options found in those files to those in argv[].
                   2043:        Patch from Denis Sablic to make disk image filenames runtime 
                   2044:        configurable. Extend it for the ROM filename.
                   2045:        Remove some of the run-time configurable stuff from config.h.
                   2046:        More X keysym fixes (I finally got a proper .Xmodmap ...)
                   2047:        for SVGAlib: Delete key, and PgUp/PgDn as Amiga keys.
                   2048:        The sound driver can now handle 22050 Hz and/or 8 bit samples. Both of
                   2049:        these are the default with LINUX_SOUND_SLOW_MACHINE.
                   2050:        Also use the SNDCTL_DSP_GETBLKSIZE ioctl and write the buffer when 
                   2051:        there is enough data.
                   2052:        Abuse keybuf.c to provide a fake joystick emulation with the numeric
                   2053:        pad (enable with -J)
                   2054: 960304 bebox.cpp from Christian.
                   2055:        Rename pfield_linetoscr_full to pfield_linetoscr_full8.
                   2056:        More x86 assembly: pfield_linetoscr_full16.
                   2057: 960303 SunOS target from Dirk Vangestel. Put some not-so-superfluous includes
                   2058:        back in. Added the DOS specific patches to filesys.c.
                   2059:        Started x86 assembly optimizations. New file X86.S, includes an
                   2060:        optimized version of pfield_linetoscr (for 8 bit screens only).
                   2061:        Don't use SA_RESTART if it isn't defined.
                   2062:        prepare_line() wasn't called often enough (again...), leading to memory
                   2063:        corruption and "hit the reset button" bugs when using SVGAlib.
                   2064: 960226 Get rid of bool, true and false in amiga.h and everywhere else.
                   2065:        Copy yesterdays code to AF_SOUND code, too.
                   2066:        Include first round of Christian Bauer's BeBox patches. Add AIX fix
                   2067:        from Samuel Mackrill.
                   2068:        Add #include <string.h> and #include <stdlib.h> in some more places.
                   2069:        Modify gencpu.c and readcpu.c so that immediate types j and J (0..15
                   2070:        and 1..8) can be merged. Replace HAVE_ONE_GIG... option with a new
                   2071:        CPU_EMU_SIZE option that can be set to a value in the range 0..5,
                   2072:        where 0 is minimum size and 5 is equivalent to HAVE_ONE_GIG...
                   2073: 960225 Remove multiplications in sound code, use a big lookup table.
                   2074: 960222 Go back to having only one memory bank table of type addrbank instead
                   2075:        of several function pointer arrays. Eliminate the HAVE_BROKEN_SOFTWARE 
                   2076:        define by extending the memory bank table to 65536 entries.
                   2077:        Remove remaining DUALCPU code. Allow BTST src,imm instructions in
                   2078:        table68k.
                   2079: 960220 Back out filesys.c change from Stefan Reinauer: don't call V36 specific
                   2080:        functions in expansion.library.
                   2081:        Better fix for the filesys.c assign problems by Oliver Moehrke.
                   2082:        Make new playfield code conditional on EXPERIMENTAL_SCREEN_UPDATE.
                   2083:        Improve the 64bit variant of said code. Try to get alignment for
                   2084:        apixels by putting it into a union with a long.
                   2085:        Kill the child in gui_exit(). Make graphics_init() return a value and
                   2086:        check it in main.c to see whether graphics were initialized. If not,
                   2087:        call gui_exit() anyway.
                   2088:        Use new 256 color allocation routine from svga.c in xwin.c, too.
                   2089:        Make LOW_BANDWIDTH compile _and_ work (wow...).
                   2090: 960219 Fix bug in memory.c: When loading 256K Kickstart, copy 256K, not 128K.
                   2091: 960218 Finished the rest of the UI: reset, debug and quit buttons as well as
                   2092:        drive LEDs. New target linux-gui; all others use dummy file nogui.c
                   2093:        for now.
                   2094: 960217 The GUI now supports inserting and ejecting diskfiles and displays
                   2095:        their names. Two pipes are used now, one for reading and one for
                   2096:        writing. Properly wait for the process to start up.
                   2097:        Use sigaction() instead of signal() in debug.c.
                   2098:        More fixes for the new display routines: Need to do a final call to
                   2099:        pfield_*word_*res with the data shifted right from the last fetched
                   2100:        word.
                   2101: 960216 Copper & sprite bugfixes from Marco Nelissen. Better X keyboard support
                   2102:        from Bruno Coste.
                   2103:        Move my_strdup() from filesys.c to options.h
                   2104:        New files xui.c, uae-ui (shell script) and uae-ui.tk (wish script).
                   2105:        These create a GUI for the X version of the emulator. So far, the
                   2106:        power LED works.
                   2107: 960215 Don't rely on SVGAlib headers defining any keycodes at all.
                   2108:        Include Thorsten Frueauf's NetBSD patch. Apparently, the devname
                   2109:        variable in hardfile.c caused a namespace collision, so rename it to
                   2110:        uaedevname. Fastmem fixes, debugger help, and ConfigDev allocation in
                   2111:        hardfile and filesys from Stefan Reinauer.
                   2112:        xwin.c: Give the window a title.
                   2113:        Half-implemented the DIVU.L, DIVS.L, MULU.L and MULS.L instructions.
                   2114: 960213 AF sound system support from Marcus Sundberg. Win95 keyboard support
                   2115:        for SVGAlib from Thierry Lescot. Added most of Gustavo Goedert's MS-DOS
                   2116:        port.
                   2117:        When using the old pfield_*word_*res functions, the gen_pfield_tables()
                   2118:        function was undefined.
                   2119:        Hmmm, /dev/brain must have been unmounted when I wrote the new pfield_*
                   2120:        functions. Now they make sure they access the apixels array only with
                   2121:        addresses that are multiples of 16 bytes.
                   2122: 960212 Fix copy&paste bug in cia.c found by Marco Nelissen: Need to call
                   2123:        RethinkICRB() instead of RethinkICRA() for CIA B timers.
                   2124:        Added Stefan Reinauers autoconfig area/fastmem support. Added run-time
                   2125:        options for use_slow_mem and use_fast_mem.
                   2126:        Oops, the pfield_*word_*res() optimizations break completely on HPs and
                   2127:        Sparcs. Now use this optimization only if we are using GCC 2.7.
                   2128:        HPUX fixes in the Makefile. New target hpux-gcc.
                   2129:        The code for clearing the areas above and below the DIW was trying to
                   2130:        be a little too clever selecting the color. Just use the current 
                   2131:        background color.
                   2132:        Added channel attachment to the sound code. Untested.
                   2133: 960211 Found some flag setting bugs in the rotate/shift instructions and in
                   2134:        addx/subx (which I thought I had already fixed) by reimplementing 
                   2135:        DUALCPU mode to work with Ed's e68k.
                   2136:        Argh! The copper is completely disabled during DDF in Hires 4 bitplane
                   2137:        mode - so copper positions 0x30 and 0x34 are about 640 pixels apart.
                   2138:        The Kickstart uses FF39FFFE to wait for the end of line 256 instead of
                   2139:        FFDFFFFE as in all the other modes. This is implemented now, but
                   2140:        probably not 100% correct.
                   2141:        Added check whether SVGAlib doesn't support our mode.
                   2142:        If using GCC >= 2.7, define __attribute__((aligned(16))) as
                   2143:        BIG_ALIGNMENT in config.h. Use it for the apixels array to prevent
                   2144:        potential problems on the Alpha.
                   2145:        Tried to make the color selection routine produce better results in 256
                   2146:        color mode.
                   2147: 960210 readdisk didn't work at all for large files - fixed.
                   2148:        In pfield_doline(), clear the apixels array if playfield DMA is off.
                   2149:        In SPRxCTL(), reset sprite mode when sprpos==sprctl==0
                   2150:        Rewrite pfield_orword_hires() and friends to use lookup tables. No
                   2151:        noticeable improvement on my machine, but might be different on other
                   2152:        machines. Two versions of this code: one using 64bit longs on the Alpha.
                   2153:        New targets linux-debug and linux-prof.
                   2154:        Use 1MB slow mem.
                   2155:        -funroll-loops is a little excessive. Remove it.
                   2156:        Add support for linear addressing modes for SVGAlib version. Speedup
                   2157:        is 20-30% on my old 486 VLB. Now, would someone please fix SVGAlib to
                   2158:        support that for the S3-864 as well?
                   2159:        Set SVGAlib keyboard mode to DONT_CATCH_CTRLC.
                   2160:        Change custom.c, xwin.c and svga.c to keep track of the display window 
                   2161:        and background color and to clear the areas above and below the display
                   2162:        window if necessary to remove garbage images from previous frames.
                   2163:        Set the LOF bit in the Kickstart replacement init routine. Also
                   2164:        initialize CIAs to Kick 1.3-like values.
                   2165: 960209 Some more -DHAVE_xxx_H options in the Makefile and filesys.c. DEC Alpha
                   2166:        fixes for filesys.c from Ed and Marcus. HPUX fixes.
                   2167:        New field in table68k for CPU type, parsed by readcpu and compared to
                   2168:        CPU_LEVEL which is defined in config.h. New instructions MOVE2C, MOVEC2
                   2169:        and CAS. Also a new field for priviledge level that is used by gencpu to
                   2170:        generate tests for regs.s and Exception(8) calls if necessary.
                   2171:        Move parsing of table68k into a new file build68k.c. Generate a file
                   2172:        called cpudefs.c containing the information from table68k in 
                   2173:        machine-readable form. Change readcpu.c to use the array found in 
                   2174:        cpudefs.c.
                   2175:        Don't generate the d8(An,Dn) addressing mode in-line. Generate a call to
                   2176:        get_disp_ea(), which is an inline function in newcpu.h if UAE is
                   2177:        configured for 68000 emulation; for 68020 emulation, it is defined in
                   2178:        newcpu.c.
                   2179:        Debugger could crash on illegals because there was no mnemonic defined
                   2180:        in lookuptab[].
                   2181:        Return zero for SERDATR.
                   2182: 960207 It seems that the copper stops completely if an attempt to write to a
                   2183:        specific register fails because of COPDANG. Apparently, the Kickstarts
                   2184:        use this to stop the copper with a 0x00000000 longword. This leaves the
                   2185:        question why they don't do 0xFFFFFFFE like everybody else.
                   2186:        Enable 512K slow memory by default.
                   2187:        Integrate Stefan Reinauers battclock patch that makes it work with
                   2188:        newer Kickstarts.
                   2189:        In cia.c, do the little index pulse hack even if dskdmaen==1, because
                   2190:        DMA is only enabled when dskdmaen==2 (Helps the "Mad Decision" demo).
                   2191:        Add solaris entry to Makefile (GCC, Openwin, -DHAVE_STATFS_H)
                   2192:        Define HAVE_STRINGS_H for SGIs, change filesys.c accordingly.
                   2193: 960206 Build a smaller table instead of cputbl.c. Use readcpu and the smaller
                   2194:        table to build the cpufunctbl array at run-time.
                   2195:        Nuked the other half of the old CPU emulator. Reimplemented debugger to
                   2196:        use the information generated by readcpu.
                   2197:        Define HAVE_STATFS_H for SGIs in the Makefile, and use that as a test
                   2198:        in filesys.c instead of #ifndef __linux.
                   2199:        Hack filesys.c, get_path() to support the assign command.
                   2200:        Add -fstrength-reduce and -funroll-loops in Makefile to make people
                   2201:        nervous.
                   2202:        Rewrite Sam Devulder's LOW_BANDWIDTH patch and add it to xwin.c.
                   2203: 960205 Forgot some PC-relative bit instructions in table68k.
                   2204:        Nuked half of the old CPU emulator.
                   2205:        Split gencpu.c into two parts, new one is called readcpu.c and just
                   2206:        parses the table68k file. Link it to the main program.
                   2207: 
                   2208: 960205 Release 0.4
                   2209: 960203 filesys.c, action_read(): Slightly more efficient code (translate Amiga
                   2210:        address to real pointer).
                   2211:        Moved some common code in the generate_* functions in gencpu.c to a
                   2212:        separate function.
                   2213: 960202 Added an experimental fast disk option. Currently turned off by
                   2214:        default (it's not such a big win).
                   2215:        Attached sprite fixes (overlapping att. sprites looked bad, Katakis).
                   2216:        Add sleep(1) before resetting the console to text mode when using
                   2217:        SVGAlib: this might fix some screen corruption problems.
                   2218:        Add sprite/playfield priority checking to the most important case
                   2219:        (single playfield, no HAM).
                   2220:        In filesys.c, do_find(): open() returns -1 on error, not zero.
                   2221:        Return ERROR_OBJECT_WRONG_TYPE if do_find() is called for a directory
                   2222:        (fixes Champions of Krynn harddisk installation).
                   2223: 960201 Don't abort if sound driver not present, just set produce_sound to 0.
                   2224:        New files keybuf.c and keybuf.h to record keypresses in the right
                   2225:        order and without losing any. In cia.c, force 15 scanlines between
                   2226:        keypresses, just to be sure.
                   2227:        unixfs.device _does_ work with Kick 1.3: just don't trust what Kick 1.3 
                   2228:        sends in the startup packet. For now, disable more than one mount per 
                   2229:        command line.
                   2230:        Started integrating Ernesto's new Mac sources.
                   2231:        Remove superfluous includes from some files.
                   2232: 960131 Added Ed's unixfs.device (great stuff).
                   2233:        Adding ULONGs to pointers is a bad idea on the Alpha if the ULONG value
                   2234:        really is signed. Add some casts to LONG in (pc_p + src) expressions
                   2235:        in genpu.c.
                   2236:        If DMACON is written and copper DMA is enabled, do a COPJMP1 at once.
                   2237:        Helps the "Interference" demo.
                   2238: 960129 More SGI fixes from Ed. Bugfixes and transdisk improvements from Marcus 
                   2239:        Sundberg.
                   2240:        Remove EXTRA_DEFINES from Makefile. Breaks some systems.
                   2241:        Move common sprite code from pfield_doline() and pfield_doline_slow()
                   2242:        to new function pfield_sprite(). The same sprite may appear more than
                   2243:        once on the same line, so don't shift out the bits of sprdata[] and
                   2244:        sprdatb[] while displaying it (Turrican I).
                   2245:        In xwin.c and svga.c, barf if LINUX_SVGALIB doesn't match the file 
                   2246:        being compiled.
                   2247:        Make all .o files depend on config.h in the Makefile.
                   2248:        No need to exit if sound driver unavailable, but -S given.
                   2249:        Small debugger fix: Missing space in output.
                   2250:        Fix for the sprite logic: Specifically, use a state variable indicating
                   2251:        whether the sprite has been restarted after a VSYNC. Fixes most
                   2252:        Turrican problems.
                   2253: 960124 Added Denis Sablic's patch for sound run-time option.
                   2254:        Added Ed Hanway's patch for better Makefile, X mouse cursor blanking 
                   2255:        and more SGI compilation fixes.
                   2256: 960123 Include options.h everywhere.
                   2257:        Handle 8 bit GrayScale visuals like PseudoColor.
                   2258:        Remove C++ leftovers from joystick code.
                   2259: 960122 When using the joystick driver, the button test must come after
                   2260:        handle_events() in vsync_handler().
                   2261: 960118 Removed all the remaining C++ comments. Changed all inline keywords to
                   2262:        __inline__. Define __inline__ if not using gcc.
                   2263:        Make proper prototypes for everything. Compile with maximum warnings +
                   2264:        -ansi + -pedantic.
                   2265:        Remove CIA_cycle(), obsolete.
                   2266:        Reimplemented the STOP optimization in newcpu.c. Removed DualCPU
                   2267:        support in CPU emulator.
                   2268:        Real nasty bug in pfield_doline() fixed: sprxpos could be evaluated as
                   2269:        negative, with not-so-amusing results. (Need to rewrite this in 
                   2270:        Oberon to get array bounds checking :-)       
                   2271: 960117 Heroic effort: Rewrote the thing in C. This might help fix some
                   2272:        problems with users being unable to compile it.
                   2273:        Fixed a problem in hsync_handler(): Only call flush_line() for lines
                   2274:        in the display window, i.e. when we did a prepare_line() before.
                   2275:        Better code for relative branches: Don't use setpc(getpc()+x) calls,
                   2276:        increment regs.pc_p instead.
                   2277: 960116 Reimplemented the function to load the Kickstart ROM. Use stdio instead
                   2278:        of fstreams since this apparently does not work on the Mac. Detect 256K
                   2279:        Kickstarts. Detect corrupt ROM images (calculate checksum).
                   2280:        Added Ernesto Corvi's Mac port. Changed it around a bit, so it
                   2281:        probably won't compile.
                   2282: 960115 Reinstate config.h options for X screen depth, so that DrawPixel() can
                   2283:        be inlined in custom.cc for speed. xlinebuffer is now incremented in
                   2284:        each call to DrawPixel() (for both X and SVGAlib) to get rid of some
                   2285:        address calculations.
                   2286: 960114 Fixed X generic pixel drawing routine for SHM.
                   2287:        Still trying to fix the harddisk emulation.
                   2288:        uae.device no longer breaks the debugger (can step through uae.device
                   2289:        functions now)
                   2290:        Bugs affecting performance: SPCFLAG_STOP never got reset, and DSKLEN() 
                   2291:        would set SPCFLAG_DISK even if DMA was being turned off.
                   2292:        Made slow memory a run-time option.
                   2293:        Defer interrupts by one CPU instruction to give programs a chance to
                   2294:        read INTREQR ("Seeing is Believing" and "Substance" demos)
                   2295:        Added ScrollLock hack for X, too.
                   2296: 960113 SVGAlib version compiles again. Fixed SVGAlib mouse bug.
                   2297:        Fixed SHM bug: Maximum scanline is 313, not 312.
                   2298:        Sometimes, disk.cc missed a side change and would read the wrong data.
                   2299:        Fixed. Apparently, this was the worst compatibility problem.
                   2300:        Implemented trace mode.
                   2301: 960112 Changed layout of class amigamemory a little so that gcc can generate
                   2302:        better addressing modes.
                   2303:        Finally wrote functions in gencpu to generate MOVEMs.
                   2304: 960109 Integrated Ed Hanway's patches for better X support and run-time
                   2305:        configuration of some options. 
                   2306:        Got rid of the direct VGA memory access. (Need to do this differently).
                   2307:        Changed the method of drawing lines: custom.cc now tells the graphics
                   2308:        code the line number and whether it needs to be doubleed before drawing
                   2309:        it.
                   2310:        Added Andre Beck's MIT-SHM patch.
                   2311:        Remove warnings for newcpu.cc.
                   2312: 960108 Fixed exceptions in op_illg(): Need to decrement PC.
                   2313: 960107 Added an "uae.device" resident module at 0xF00000. This emulates a hard
                   2314:        disk (fixed size 8MB for now).
                   2315: 960106 Moved some common code from pfield_doline() and pfield_doline_slow() to
                   2316:        a separate function. This fixes a potential HAM bug (two static vars
                   2317:        for the same value).
                   2318:        Sound support for Linux. Works only with graphics off and the CPU
                   2319:        slowed down.
                   2320:        Better SVGAlib keyboard support.
                   2321: 960105 Added AvailMem(), AllocMem(), AllocAbs() and FreeMem() dummies.
                   2322:        The Hardwired demo times the multiplication instructions and prints
                   2323:        "This demo don't like Axel" if they are too fast. Apparently, Axel has
                   2324:        a 68040. Added a WANT_SLOW_MULTIPLY option to config.h.
                   2325:        Fixed the fast blitter emulation (seems to work now).
                   2326: 960104 Fixed all the ChangeLog entries from 95 that said 96 (oops??!)
                   2327:        pfield_may_need_update() should check whether bitplane DMA is on.
                   2328:        Added ersatz.cc and ersatz.h. The purpose of these files is to
                   2329:        implement one or two Kickstart functions that are commonly called from
                   2330:        bootblocks. This should help support some games and demos that only use
                   2331:        the Kickstart as an initial track loader. So far, it's only good enough
                   2332:        for one program.
                   2333: 951223 More intelligent event handling in the CPU emulator. Slightly faster.
                   2334: 951222 Optimize CPU emulation by inlining cctrue(). Also, the real PC no
                   2335:        longer needs to be incremented each instruction. The real PC value
                   2336:        now has to be fetched by m68k_getpc().
                   2337:        Added direct screen access for SVGAlib, but it didn't help much. I'll
                   2338:        probably remove it again.
                   2339:        The gencpu executable is 2M smaller if it allocates memory
                   2340:        dynamically.
                   2341: 951216 custom_bput() enhanced a little. Now remembers the value that was 
                   2342:        written in the other half of the register.
                   2343:        Apparently, the USEx bits of BLTCON0 are ignored in line draw mode.
                   2344:        (Silents-Demo)
                   2345: 
                   2346: 951212 Release 0.3
                   2347: 951212 Included Alessandro's battclock patch.
                   2348:        Fixed mouse autocalibration for wrong-aspect screens.
                   2349: 951210 Joystick support for Linux.
                   2350:        Better color matching for 256 color modes.
                   2351:        Rewrote most of the memory management in plain C, mainly to avoid the
                   2352:        various template bugs in some compilers, but also because gcc can't
                   2353:        handle the regparm attribute for virtual functions yet.
                   2354: 951209 Added Alessandro's patches for automatic mouse calibration.
                   2355:        Tried to optimize the blitter loop a bit. Doesn't work.
                   2356: 951205 Added Hannu's patches for diskfile write support.
                   2357: 951201 More portability fixes, especially for weird compilers that workstation
                   2358:        vendors ship.
                   2359: 951125 More keys for X, some keyboard support for SVGAlib (slightly 
                   2360:        dangerous); beginnings of US keyboard support.
                   2361: 951124 256 color mode support for SVGAlib. FAST!
                   2362: 951123 Tiny tweak to central loops in playfield code results in much better
                   2363:        assembly. Apparently, GCC does not feel too good about optimizing 
                   2364:        reference variables.
                   2365: 951113 Bug fix in the events code (nextevent must not be changed while events
                   2366:        are being processed).
                   2367: 951112 The playfield can now be drawn with the right aspect (i.e., every line
                   2368:        twice). Slower, but looks nicer and supports interlaced mode
                   2369:        (flickerfree!). The first 29 lines (blanking interval) are omitted
                   2370:        now to fit everything in 800x600.
                   2371:        Oops, disk drive identification did not work. Fixed, all four drives
                   2372:        appear now.
                   2373:        Oops, CIA_reset() was there all the time but never got called.
                   2374:        Optimized the planar->chunky conversion in pfield_doline() a little.
                   2375:        This really is time critical.
                   2376: 951111 If colors change on a line, we might still be able to use the full 
                   2377:        line update, if the change occurred outside the DIW. Have to be a 
                   2378:        little careful, though.
                   2379:        Playfield code now uses real pointers again, but makes sure it can
                   2380:        read enough bytes to complete the current line without segfaulting.
                   2381:        Oops, my "better estimate" (see below) was a mistake. Restored the
                   2382:        original 4 hw cycles per instruction relation. This slows down the
                   2383:        emulator while booting (more screen refreshs), but speeds up many
                   2384:        demos that otherwise spend most of their time waiting for a specific
                   2385:        raster position.
                   2386:        Playfield modulos must be added immediately when DDF stops. (WOC demo)
                   2387:        Portability fixes in disk.cc (null pointers).
                   2388:        Implemented average frame rate calculation ('c' in the debugger).
                   2389:        Debugger fixes.
                   2390:        Sprite fixes (height was wrong, wrong priorities in fast update)
                   2391:        Added an AutoConfig expansion RAM device. The OS seems to recognize
                   2392:        it, but breaks sometime later (seems to be the same bug that kills
                   2393:        the emulator when there's RAM at 0xC00000).
                   2394:        SVGAlib now has mouse support, too.
                   2395:        HAM mode implemented.
                   2396: 951110 Implemented fast complete line playfield update. Switches back if
                   2397:        necessary. Fixed attached sprites bug.
                   2398:        Copper wait no longer slows down the CPU emulation. (there were
                   2399:        lots of new copper bugs because of this, but I hope I fixed all
                   2400:        of them).
                   2401:        Changed cia?t? from UWORD to ULONG, since there were overflows in
                   2402:        the assertion (because of 65535+1 == 0).
                   2403: 951108 The DIVS remainder could have the wrong sign.
                   2404:        New HAVE_BROKEN_SOFTWARE define in config.h that makes the emulator
                   2405:        mask out the high byte of all addresses.
                   2406:        Wrote genblitter.cc and replaced the awful code in blitter_blit()
                   2407:        and blitter_line() with calls to the generated function.
                   2408: 951107 Implemented ?BCD. These don't really work yet.
                   2409: 
                   2410: 951106 Release 0.2
                   2411: 951105 Fixed a bug in the new CIA timer code.
                   2412:        Fixed flag settings for some cases of ADDX/SUBX
                   2413: 951104 Changed the main loop a bit - call all the *cycle() functions only if
                   2414:        it is really necessary. I hope everything still works - at least it is
                   2415:        twice as fast now :-D
                   2416:        Improved mouse emulation - avoid overflows, permit "wraparound".
                   2417:        Added debugger 'g' command.
                   2418:        Removed some useless casts from the CPU emulator.
                   2419:        Added a configuration option to prevent checks for odd addresses. Only
                   2420:        very bad programs need this check.
                   2421: 951103 The sprite emulation sometimes did not work too well, especially with
                   2422:        dual playfield mode. Hopefully fixed.
                   2423: 951102 The 10 cycle counter is more like a 5 cycle counter in this
                   2424:        implementation. (Fine, that makes floppy loading even faster :-)
                   2425:        Implemented mouse movement. Totally out of sync with the X pointer,
                   2426:        but at least something.
                   2427:        Found out about the XAutoRepeatOff() function. Real useful.
                   2428:        DualCPU mode works again.
                   2429:        Corrected flag settings for CMPA.W.
                   2430:        Fixed DIV instructions: Don't change dest in case of overflow.
                   2431: 951031 The PC is now converted to a real pointer. This is safe (much safer
                   2432:        than converting bitplane pointers, since the PC always has to be valid)
                   2433:        and should speed things up a little.
                   2434: 951029 Some primitive event handling: 2 mouse buttons and 1 joystick button
                   2435:        are emulated, as well as parts of the keyboard (only german mapping).
                   2436:        Fixes: Delay values and sprite widths are always LoRes. Playfield 2
                   2437:        uses colors 9..15.
                   2438:        Implemented a frame rate configuration option that can speed up the
                   2439:        emulation quite a bit.
                   2440: 951028 A-ha. The 68000 has one strange feature after all. MOVEM.W to Dn sign 
                   2441:        extends the value to a longword.
                   2442:        Katakis expects that accessing odd addresses causes exception 3, so 
                   2443:        we have to emulate this. *Sigh*
                   2444:        Do at least something with the index pulse bit. It's more or less a 
                   2445:        toggle now.
                   2446:        Implemented sprites & dual playfields, both with small glitches.
                   2447: 951027 When LOF is set, the frame is one line longer.
                   2448: 951026 Implemented a preliminary diskfile type for special formats. Turrican
                   2449:        boots up correctly (crashes if I want to play a game, though).
                   2450:        Implemented EHB and added a few missing masking operations in the color
                   2451:        handling.
                   2452:        Fixed the absw addressing mode - need to sign extend here as well.
                   2453: 951025 Fixed another extremely stupid bug, this time in the playfield code.
                   2454:        Each pixel was calculated four times...
                   2455:        Increased the size of the apixels array - this was being overrun.
                   2456: 951024 Fixed an extremely stupid bug in flag settings for byte and word
                   2457:        operations.
                   2458:        The "sectors until gap" field must be in the range 1..11 instead of
                   2459:        0..10, or very bad things will happen if it is used to calculate a
                   2460:        blit size.
                   2461: 951021 Don't use real pointers to fetch bitplane data - too many segfaults.
                   2462:        Delay the copper after executing an instruction, or wait sequences like
                   2463:        FFDF FFFE 0200 FFFE won't work.
                   2464:        Some programs expect that the CPU is completely turned off if the
                   2465:        blitter nasty bit is set. So be it.
                   2466:        The RSI Megademo chokes when disk DMA fetches two syncs. Leave one out.
                   2467:        The LOF bit wasn't set correctly.
                   2468: 951020 Blitter fixes: Load fill carry from FCI each line; keep the masked
                   2469:        value of bltadat in bltolda
                   2470:        Give the CPU twice as many "cycles" - this still is not even remotely
                   2471:        correct, but a better estimate.
                   2472: 951017 Added SVGAlib support. Unfortunately, my graphics card isn't fully
                   2473:        supported by the current SVGAlib version.
                   2474: 951015 More small optimizations to memory.h and custom.cc.
                   2475:        Added code for 256 color screens. The type of screen has to be
                   2476:        selected at compile time.
                   2477: 951014 Modified the memory management to be (hopefully) a little more
                   2478:        efficient.
                   2479:        Changed gencpu.cc to generate functions and a big function pointer
                   2480:        array instead of the old case labels. The generated C++ files now
                   2481:        compile a lot faster, and the code should be better as well.
                   2482: 951013 Implemented pseudo POTGOR to keep the RMB from being detected as
                   2483:        pressed all the time.
                   2484:        GenerateDecTab() generated TRAP incorrectly.
                   2485:        Made some more instructions (MOVE.B A0,D0 etc) illegal in gencpu.cc.
                   2486:        Fixed X colors. Fixed data fetching for HiRes screens.
                   2487: 951011 EXT.WL instructions set the flags.
                   2488:        Implemented second CPU emulator, plus "DualCPU" option. The new CPU
                   2489:        emulator is generated automatically from a file called table68k by
                   2490:        a program called gencpu.
                   2491: 951002 Removed version information from the file headers.
                   2492:        Removed some sillinesses in custom.cc. 
                   2493:        DSKLEN bug fixed (mask out 0xC000).
                   2494:        Playfield code rewritten. Now supports horizontal scrolling. Implemented
                   2495:        some primitive color support.
                   2496: 950927 Fixed predecrement/postincrement addressing with byte size for the
                   2497:        stack pointer.
                   2498: 950926 Fixes to the disk code: Terminate disk DMA, flip disk side, read more
                   2499:        than just two sectors during disk DMA, fix checksum calculation.
                   2500:        Fixed copper comparison bugs.
                   2501:        
                   2502: 950901 Release 0.1
                   2503: 950826 bugfix in GenerateDecTab(): LEA.W instructions were generated.
                   2504: 950312 New file disk.cc, for (guess what) disk support. Doesn't work yet.
                   2505: 950311 Multiplication instructions were generating 16 bit results.
                   2506:        Sign extension was wrong in some places.
                   2507:        Removed bugs in the blitter (one word width: ALWM & AFWM and line mode)
                   2508:        The Kickstart logo looks perfect now.
                   2509:        Playfield routine should check BPLCON0 instead of BLTCON0
                   2510: 950309 ASR D8,D0 is not a valid instruction.
                   2511:        Bitplane pointers were not incremented.
                   2512:        Copper comparison didn't work. COP2LC and bitplane pointers were written
                   2513:        incorrectly. Fixed.
                   2514:        Something that bears a striking resemblance to the familiar Kickstart
                   2515:        logo now appears in my X window!
                   2516: 950306 ROR used to set the X flag. Bug fixes in GenerateDecTab.
                   2517:        More bug fixes in several 68000 instructions.
                   2518:        Improved blitter. ?????? KS1.3 doesn't seem to set BLTDMOD on a 
                   2519:        line draw. What is this??
                   2520:        Fixed stupid bugs in playfield code.
                   2521: 950305 fixed bugs in opcode generation and interrupt handling. Implemented 
                   2522:        STOP. Fixed flag settings: Result wasn't masked. Ooops!!
                   2523:        ADDQ #imm,An doesn't set flags.
                   2524:        One-shot timer mode didn't work.
                   2525:        Implemented blitter, doesn't work.
                   2526:        Some primitive and slow playfield support, only to make the things that
                   2527:        hopefully will soon appear visible.
                   2528: 950304 CIA timers ought to work OK. Copper is emulated.
                   2529:        Emulator loops infinitely when trying to initialize the console.device
                   2530: 950303 experiments with X, figured out how to open a window and draw pixels.
                   2531:        No graphics emulation yet, though.
                   2532: 950301 Nearly all instructions work.
                   2533:        Fixed supervisor mode stack.
                   2534:        The memory manager now handles CIA chips.
                   2535: 950228 Bug fixes in 68000 code, exceptions and more instructions implemented
                   2536:        Memory management extended to handle custom chips as well.
                   2537:        Debugger improved.
                   2538:        Kickstart passes memory & CPU type test, builds up some system
                   2539:        structures.
                   2540: 950227 MC68000 & little debugger for tracing. It can execute the first couple
                   2541:        of KS1.3 instructions, but doesn't get past the memory test.
                   2542: 950225 Work begun

unix.superglobalmegacorp.com

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