Annotation of uae/src/ChangeLog, revision 1.1.1.2

1.1.1.2 ! root        1: 970204 Disk change fix from Mathias Ortmann.
        !             2: 970203 New file ncurses.c, from Samuel Devulder.
        !             3:        Disabled Exec stuff completely. Now it isn't even compiled in anymore.
        !             4: 970129 Changes from Samuel Devulder for Amiga and Christian Bauer for BeBox.
        !             5: 970122 Reorder the set_planes_unaligned functions so that better code is
        !             6:        generated. Remove the or_planes_unaligned functions, add a parameter
        !             7:        do_or to the set_planes functions and rely on the compiler to optimize
        !             8:        the additional if away.
        !             9:        post_decide_line() can now turn DMA off early.
        !            10:        Make struct flag_struct 64 bits large for i386 systems, so we can use
        !            11:        long move insns without clobbering the X flag.
        !            12:        "make clean" should delete machdep/support.o.
        !            13:        Maybe we do need SPR_vtop after all - undo 970120 change. Instead,
        !            14:        comment out the code that clears the pos and ctl words at vsync time.
        !            15:        In xwin.c, restrict window height to 300 or 600 depending on linedbl
        !            16:        mode.
        !            17: 970121 Get rid of SPCFLAG_BLIT, call do_blitter() directly.
        !            18:        In finish_decisions(), don't check for sprite draws in the border.
        !            19:        Reimplement the SMART_UPDATE define so that the memcmpy() overhead can
        !            20:        be avoided by not setting it (but this usually loses).
        !            21:        Detect 7 lores planes in BPLCON0() and change to 6 to avoid memory
        !            22:        clobbers.
        !            23:        In pfield_draw_line(), do memcpy linedoubling after handling the line
        !            24:        to be doubled, not when we see a LINE_AS_PREVIOUS. Get rid of prev_ypos
        !            25:        parameter.
        !            26:        Add special code for bpldelay1 == bpldelay2 to the UNALIGNED_PROFITABLE
        !            27:        code.
        !            28:        In pfield_init_linetoscr(), when delays 1 and 2 differ, clear the areas
        !            29:        which are covered only by half of the planes at the start and end of
        !            30:        the DDF area.
        !            31:        Replace FASTER_CPU and LINUX_SOUND_SLOW_MACHINE with M68K_SPEED.
        !            32:        Replace fast_unaligned_memset macros with fuzzy_memset; use this also
        !            33:        in pfield_init_linetoscr().
        !            34:        Use real (PAL) vblank end in do_sprites().
        !            35: 970120 Mask out high byte in DDF{STRT,STOP}
        !            36:        Oops, forgot about long frames while calculating the bounds of all the 
        !            37:        maxvpos*2-sized arrays. Increment them all by two.
        !            38:        Try to detect empty sprites before recording them for the drawing code,
        !            39:        but be careful not to hurt attached sprites.
        !            40:        From Paul Kienitz: hack for keyboard code in cia.c to work better with
        !            41:        newer Kickstarts; small cleanup in cpuopti.c.
        !            42:        Undo yesterday's change in copper_memory_cycles(), instead call
        !            43:        decide_line() each iteration and test whether copper_cycle_time == -1
        !            44:        to determine whether we're vertically in the DIW.
        !            45:        calculate_copper_cycle_time() could get astronomical plane counts due
        !            46:        to missing masking operation.
        !            47:        No need to put the copper to sleep for one memory cycle after a WAIT,
        !            48:        merge that with the two cycles for the next instruction.
        !            49:        Get rid of SPR_vtop, no longer needed (it was unnatural anyway)
        !            50: 970119 Implemented alternate pfield_doline functions that access the apixels
        !            51:        array at unaligned addresses; conditional on UNALIGNED_PROFITABLE.
        !            52:        Move LORES_HACK from config.h to custom.c.
        !            53:        Fix loop exit test for pfield_linetoscr_hdouble_asm8(). Clear the
        !            54:        right parts of apixels in pfield_init_linetoscr() when LORES_HACK is
        !            55:        enabled.
        !            56:        Get rid of bordercol array: the decision-making code should handle
        !            57:        lines in the border correctly by setting line_changed.
        !            58:        Disable bitplane DMA if more than 4 hires bitplanes are set in BPLCON0.
        !            59:        Fix some more copper timing inaccuracies: used to test
        !            60:        thisline_decision.which without calling decide_line() before.
        !            61: 970118 Now remember BPLCON1 changes during data fetch. New functions
        !            62:        decide_delay(), pfield_adjust_delay(); new fields in struct drawinfo
        !            63:        and new variables next_delay_change, delay_changes.
        !            64:        Forgot to set copstate to COP_morewait in one case in do_copper().
        !            65:        Add a kludge that checks for copper position 0xDC and changes it to 
        !            66:        0xDE.
        !            67:        Restore equality test for vertical sprite positions. Disable sprite
        !            68:        DMA before the end of the vertical blank area.
        !            69:        Mask not only the positions, but also comparison values in 
        !            70:        calc_copcomp_true().
        !            71: 970117 Change custom_bput to put the byte value in each half of the word that
        !            72:        is put.
        !            73: 970116 disk.c: Set the gap between sector 11 and 0 to 380 words. Andromeda's
        !            74:        "Seven Seas" demo expects at least 320. Make the KILLEHB bit
        !            75:        conditional on AGA_CHIPSET. Decide BPLCON1 (scrolling delays) in
        !            76:        decide_diw(). Fix off-by-one errors in the very_broken_program case
        !            77:        of decide_plane(). Fix aspect calculation when horizontal resolutions
        !            78:        differ. Simplify copper horizontal comparison logic slightly.
        !            79:        Fix divide by zero errors when reading from empty floppies.
        !            80: 970115 pfield_draw_line(): Check for frame_redraw_necessary also for border
        !            81:        lines. New global variable pfield_last_drawn_line, used to implement
        !            82:        clever Y centering. Make the KILLEHB test conditional on ECS_AGNUS.
        !            83:        Move joystick and sound initialization before gui startup. Adapt tui.c
        !            84:        so it understands the gfx_requested_* options.
        !            85:        We can't always avoid clearing pixdata.apixels if DIW is larger than
        !            86:        DDF. There may be sprites in the area outside DDF, but inside the DIW,
        !            87:        so we can't just adjust linetoscr_diw_{start,end} blindly in
        !            88:        pfield_init_linetoscr() [Sanity Arte demo].
        !            89: 970114 Bebox diffs from Christian Bauer.
        !            90:        Support for Symmetric Multi Penguins under Linux (start second thread
        !            91:        with clone and use some pipes for communication - rather simpleminded
        !            92:        for now). Rework do_flush_line() and do_flush_screen() so that X
        !            93:        libraries are only called from the first thread.
        !            94:        Eliminate valid field from struct decision (set which to -2 instead of
        !            95:        valid = 0)
        !            96:        Fix definition for gui_filename() in xdebug.c to use const char * for
        !            97:        the second parameter. Remove CRs from disk.c (now how did they get in
        !            98:        there??). Likewise for cpuopti.c.
        !            99: 970113 When post_decide_line() detects mid-line DDF change, must adjust
        !           100:        bitplane pointers in decide_plane() also. Make plfstrt the earlier a
        !           101:        position in this case, and adjust bitplane pointers/modulos
        !           102:        accordingly.
        !           103:        current_hpos() isn't what GCC calls a constant function.
        !           104:        Replace line_drawinfo[current_change_set] with new variable
        !           105:        curr_drawinfo throughout. Likewise for new variables prev_drawinfo,
        !           106:        {curr,prev}_{color_{change,table}s,sprite_positions}; all initialized 
        !           107:        in init_drawing_frame (). Turn line_data into a 2dim. array, do some
        !           108:        CSE/SR on line_data[lineno] in pfield_doline_{l,h}() and
        !           109:        decide_plane(). Make some custom registers unsigned int instead of
        !           110:        UWORD.
        !           111:        calc_copcomp_true(): Masking with 0xF000 isn't likely to give 0xC0000.
        !           112:        Comment out bplcon{3,4} from struct decision.
        !           113: 970112 filesys.c, action_set_protect(): if __unix is defined, check whether
        !           114:        user wants to change directory protection, and if so, force rwx to be
        !           115:        the new protection.
        !           116:        Force sane window sizes in xwin.c, and set width/height from mode specs
        !           117:        in svga.c.
        !           118:        Implement LORES_HACK compile-time option.
        !           119:        Whee, there _are_ broken programs that enable bitplane DMA in the
        !           120:        middle of the data fetch area, draw half a picture on the first line
        !           121:        and the full picture on all subsequent lines. New function
        !           122:        post_decide_line(), called from BPLCON0() and DMACON() which tries to
        !           123:        detect this case and turns the decision from border to playfield if
        !           124:        necessary.
        !           125:        New arrays, sprvstart and sprvstop, calculated in SPRxPOS and SPRxCTL,
        !           126:        and used by do_sprites. Handle sprites with vstart == vstop correctly.
        !           127:        Sprite vpos comparisons are now done with <= , not ==.
        !           128:        _Now_ the X86-specific linetoscr routines do their masking correctly.
        !           129:        configure: If we have GCC, #define GCCCONSTFUNC as __attribute__ 
        !           130:        ((const))
        !           131: 970111 Eliminate can_draw from struct decision.
        !           132:        Change vertical DIW code; use enum of two states (waiting for start and
        !           133:        for stop) which is updated in decide_line(). Lines during the wait for
        !           134:        stop phase are decided as border. No data is fetched outside the
        !           135:        vertical DIW.
        !           136:        Optimize copper memory cycle calculation a little: the new variable
        !           137:        copper_cycle_time is set to a time >= 0 if this time is constant
        !           138:        (i.e. 2). Calculated whenever DMA, BPLCON0, or DIW state changes.
        !           139:        blitter.c, genblitter.c, custom.c: For BLTBDAT, follow the HRM which
        !           140:        says that immediate data is shifted as soon as it is written. This 
        !           141:        seems to be wrong for the A channel, though. Also, don't change prevb
        !           142:        during blitter loops if DMA B is off (Sanity Arte). Turn FAST_BLITTER
        !           143:        stuff into run-time option "-n", and eliminate the ancient blitting
        !           144:        code (former FAST_BLITTER == 0).
        !           145:        Big OOPS: Copper move checked copcon, but there was no COPCON function
        !           146:        so it was always zero -> copper-controlled blitter never worked. As a
        !           147:        speed optimization, recognize 00010000 copper commands and put the
        !           148:        copper to sleep until the blit is finished.
        !           149:        Slow down the blitter in decide_line() if bitplane DMA steals blitter/
        !           150:        copper/CPU cycles (but this code is commented out for now).
        !           151: 970110 New function pfield_init_linetoscr(). Move calculation of diw_end and
        !           152:        diw_start values there from x86-specific code. Also use DDF values to
        !           153:        determine where data in pixdata.apixels is valid. The x86-specific
        !           154:        linetoscr routines now only do the alignment masking (and they now do
        !           155:        it correctly, too).
        !           156:        Got rid of the display-related contents of struct draw_info, make 
        !           157:        static variables and them initialize from pfield_draw_line() only when 
        !           158:        necessary in function pfield_expand_dp_bplcon (). Get rid of the four
        !           159:        saved_* arrays, remember line_drawinfo instead now that it's smaller.       
        !           160:        Color compare avoidance didn't work because color_src_match didn't get
        !           161:        set when a compare was successful. Fixed.
        !           162:        Reorder parts of the decision-making code so that less redundant checks
        !           163:        are performed.
        !           164:        Add clever x centering. Change "-O" option parameter format.
        !           165:        In md-i386-linux/support.c, memcmpy(), do memcmp() first, then switch
        !           166:        to a plain memcpy routine once we find the first difference.
        !           167:        Patches from Stefan Reinauer/Christian Schmitt for 
        !           168:        xdebug.c/configure.in
        !           169:        New uae-ui.tk from Volker Zota.
        !           170:        Add --enable-profiling to configure.in.
        !           171:        Check for period==0 in AUDxPER() was accidentally commented out -
        !           172:        revert.
        !           173: 970109 Some tweaks in X86.S, plus a new option X86_PPRO_OPT to use movzbl
        !           174:        instead of xorl/movb when possible.
        !           175:        Fix maxline calculation in finish_drawing_frame().
        !           176:        Make next_lineno always a valid array index. Decrease minfirstline to
        !           177:        21 (NTSC vblank end). New option -O to specify display parameters,
        !           178:        supersedes -d and -C which will be removed eventually. Differentiate
        !           179:        between line doubling and aspect correction. Put aspect correction code
        !           180:        in custom.c.
        !           181:        Remove some more unused stuff from custom.c.
        !           182:        Fix Makefile problems when cpuopti isn't used.
        !           183: 970108 use_lores isn't initialized before custom_init(), setup lores_frame and
        !           184:        friends in customreset(). Optimize spixstate clearing. Optimize border
        !           185:        drawing with copper color changes (use fill_line instead of linetoscr)
        !           186:        Fix the sprite DMA logic, it now works with the Interference demo.
        !           187:        Silly bug: Sprite 7 never got displayed (introduced sometime last week)
        !           188:        Implement USER_PROGRAMS_BEHAVE for normal (non-compiler) CPU emulation.
        !           189:        Add most of Gustavo's last patch (new dir md-i386-dos)
        !           190: 970107 Finish rewriting most of the drawing code in custom.c/X86.S. See
        !           191:        README.PROGRAMMERS and source for details. Improvements include better
        !           192:        copper precision, better interlace support, hopefully much less bugs
        !           193:        and not too many new ones.
        !           194:        Remove calc_adjustment() and gfxvidinfo.x_adjust; replace with code in
        !           195:        custom.c that looks at gfxvidinfo.follow_diwstop (new field)
        !           196:        Some operations (like EHB playfields) now have a higher penalty than
        !           197:        before, the assumption being that these are rare and the normal case
        !           198:        runs faster if it doesn't have to care too much about exceptions.
        !           199:        Fix sign mismatch bug in BPL1MOD() and BPL2MOD().
        !           200: 970104 Move x_ShowEA() from xdebug.c in newcpu.c, rename as ShowEA().
        !           201: 970102 Add check for XK_W to decode_es() in xwin.c.
        !           202:        New uae-ui.tk from Volker Zota.
        !           203: 961218 Add a patch by Bernie Solomon to overcome a problem with K&R compilers. 
        !           204:        Change X86.S in a way that may make it either faster or slower.
        !           205:        Fix ADF_EXT1.
        !           206: 961217 #ifdef XK_dead_*, since Solaris doesn't have it.
        !           207: 961202 Fixed joystick.h problem in configure. X11/DGA support from Kai
        !           208:        Kollmorgen.
        !           209: 961117 Some fixes in svgancui.c.
        !           210: 961112 Gustavo's latest patch, with GUS support for DOS by Michael Sontheimer.
        !           211:        Add menu browsing to tui.c/svgancui.c
        !           212: 961107 Fix m68k_areg and m68k_dreg macros (put args in parentheses)
        !           213:        Initialize gfxvidinfo.maxlinetoscr in xwin.c (found by Sam Devulder)
        !           214: 961104 svgancui.c tui_refresh() routine tweaked to work with the non-standard
        !           215:        ncurses that came with my new SuSE-Linux CD.
        !           216: 961031 Added Christian Schmitt's xdebug.c (disabled for this release)
        !           217: 961024 Module search function from Michael Krause.
        !           218: 961019 Add Samuel Devulder's Amiga patches.
        !           219: 961018 Don't use -lm on NeXTStep.
        !           220: 961017 configure checks for -lforms.
        !           221: 961016 Ian Stephenson's new NeXTwin.m. Make CLXDAT return 0 (no collisions)
        !           222:        transdisk and transrom patches from Rodney Hester. Don't warn about
        !           223:        256K Kickstarts. Check diskfile sizes and try to determine whether it's
        !           224:        a normal or a HD diskfile. No HD drive identification yet (is it
        !           225:        different?)
        !           226: 961013 Corrected lots of bugs in the return address stack. Fix some errors in
        !           227:        the compiler memory management. Use the "locked" flag for hash entries
        !           228:        differently, and don't enforce it on a cache flush. Compile JMP to a
        !           229:        constant address.
        !           230: 961012 Remove regs from cache before sign extending them for ADDA, MOVEA and
        !           231:        similar things. Compile NOPs to nothing. Implement variable shifts/
        !           232:        rotates. Most shifts clear the V flag: Handle this in the compiler by
        !           233:        some extra magic sequences after shifts or in the CC_AFTER_RO case in
        !           234:        flush_cc_cache().
        !           235:        Implement a stack containing return addresses and their hash entries,
        !           236:        and compile JSR (to constant addresses)/BSR/RTS instructions inline.
        !           237: 961011 compiler.c: Several bugs introduced in the last two days fixed.
        !           238:        New function compile_note_modify() which is used when an ea is
        !           239:        modified. This replaces calls to storeea with eaino_s == eaino_d.
        !           240:        Bah, the 386 doesn't set flags on a NOT. Use CC_TEST_REG again.
        !           241:        Do flag life analysis until no more changes are found.
        !           242:        Make sure all "data" parts of EAs are locked exclusively (esp. for 
        !           243:        LEA, PEA)
        !           244: 961010 compiler.c: Finish yesterdays changes. Get rid of reg/offset
        !           245:        bookkeeping in m68k_compile_block(), keep the information in struct
        !           246:        ea_info instead. Rewrite all instructions to use the new fetch and
        !           247:        store routines.
        !           248:        Don't force a byteorder conversion in sync_reg() if the reg doesn't need
        !           249:        to be written back. Don't do a SAHF or equivalent in compile_condbranch
        !           250:        if we are doing a BRA or BF.
        !           251:        Don't use CC_TEST_REG for NEG and NOT (this was inefficient for NOT and
        !           252:        wrong for NEG).
        !           253: 961009 compiler.c: Two types of locks for registers; shared and exclusive.
        !           254:        Implement better EA fetching and storing routines. For pdi addressing
        !           255:        modes, lock the necessary registers shared before calling prepareea.
        !           256:        Unlock those registers again in generate_possible_exit().
        !           257: 961008 MOVEM instructions in the compiler to an absolute address could have
        !           258:        caused random memory corruption.
        !           259: 961007 Spanish keyboard support for X by Ruben Martinez. Some configure fixes
        !           260:        (don't assume current dir is in path, don't assume ncurses.h exists if
        !           261:        libncurses does).
        !           262:        If we're calling 68k code from an emulator function, don't use compiled
        !           263:        code.
        !           264:        Add a compilation option USER_PROGRAMS_BEHAVE (for compiler). Make
        !           265:        compiler hash table larger.
        !           266: 961004 Fix typo in configure.in.
        !           267:        Modify the compiler so it doesn't ever throw away code, unless it's
        !           268:        necessary for a cache flush.
        !           269:        Didn't quite squash the compiler flag bug yesterday. Try again.
        !           270:        In filesys.c, do_find(), add a parameter fallback that indicates that
        !           271:        the open should be retried with O_RDONLY if it failed with O_RDWR.
        !           272:        Use this in find_input(). This fixes problems with r/o files on r/w
        !           273:        volumes.
        !           274: 961003 Play around with the x86 specific memory access functions. Problem:
        !           275:        __attribute__((regparam)) isn't reliable, and it seems that that's a
        !           276:        rather hard to fix bug in GCC. Add some alternatives to
        !           277:        md-i386-linux/memory.h; these aren't used yet though.
        !           278:        Huh, the compiler was completely wrong about the flag needs of
        !           279:        conditional instructions. I wonder how it could work at all...
        !           280:        Remove a and d arrays from struct regstruct; replace with array regs
        !           281:        with 16 elements. This allows better code for get_disp_ea()
        !           282: 961002 BeBox diffs from Christian Bauer. Move all code from main() to new
        !           283:        function real_main().
        !           284: 961001 Use do_get_mem_*() functions for nextiword(), nextilong() and new
        !           285:        function nextibyte().
        !           286: 960930 genblitter optimizations: Don't generate expressions in genblitter, use
        !           287:        a second program called gengenblitter to generate a table of
        !           288:        expressions for genblitter to use. gengenblitter knows about a lot of
        !           289:        rules to simplify expressions. Some other tweaks to make GCC output
        !           290:        better assembly for blitfunc.c.
        !           291: 960927 Turn off LED() in xwin.c (may fix SunOS joystick emulation problems)
        !           292:        Call XFlush() and XSync() when exiting.
        !           293:        Add some DOS patches.
        !           294:        Add hooks in filesys.c to support filesystem units in a GUI. Use them
        !           295:        in tui.c. Bugfixes in svgancui.c. Change the way tui_refresh() works.
        !           296:        New option "-A".
        !           297: 960925 For read-only filesystems (CD...), use O_RDONLY in action_find_input.
        !           298: 960923 Save options file even if rename fails.
        !           299:        Mirror address space every 16MB like we used to (got turned off by
        !           300:        accident).
        !           301:        Move some checks out of options.h into configure. Set up md-*
        !           302:        directories with machine-dependent stuff in them; configure creates
        !           303:        a link called machdep to the appropriate one.
        !           304: 960918 Solaris sound update from Manfred Thole.
        !           305: 960917 Add a timer.device replacement (buggy).
        !           306: 960916 Tristan Cavelier's french keyboard patch.
        !           307:        Apply ReadTheSpecsBeforeYouWrite(tm) technology to AddPort().
        !           308:        Implement RemPort(), GetCC().
        !           309: 960915 Tighten up some of the return values in Exec.
        !           310: 960914 EXEC: Implement RemTask(), ObtainSemaphoreList() and
        !           311:        ReleaseSemaphoreList(). Set up more fields of the ExecBase properly
        !           312:        and Enqueue it in the library list. Make InitResident call AddLibrary
        !           313:        when appropriate (otherwise, intuition is never put into the library
        !           314:        list). Fix major braino in Obtain/ReleaseSemaphore() (tried to Enqueue
        !           315:        tasks into two lists). Make OpenLibrary() honor the version parameter.
        !           316: 960913 EXEC: Idle task now runs in user mode (abuse 0xFF0D as second STOP
        !           317:        instruction). Make EXEC_IntTrap perform the RTE before trying to
        !           318:        schedule.
        !           319: 960912 Solaris sound didn't compile. So much for making blind changes without
        !           320:        being able to test them.
        !           321: 960911 As soon as you compile it under Solaris, it bombs... Now check that the
        !           322:        hardfile exists before determining the size in main.c.
        !           323:        execlib fixes: Set master DMA enable bit at startup, fix interrupt
        !           324:        code to survive an interrupt that occurs before the proper SetIntVector
        !           325:        call. Implement RawDoFmt(), CloseDevice(), CloseLibrary(),
        !           326:        FindResident().
1.1       root      327: 960905 Lower 8 bits of POTGOR should be 0.
                    328: 960904 Implement MULU, MULS, ADDX and SUBX in compiler.
                    329: 960903 ncurses interface works. DOS people: please use the new portable tui.c
                    330:        and turn dos-ui.c into a frontend for conio.h, similar to svgancui.c
                    331:        In xui.c, unlink the temporary files ASAP.
                    332:        Two new command-line options, "-o" and "-G".
                    333:        Get rid of sz_unknown.
                    334:        compiler.h, compiler.c: New files.
                    335:        filesys.c, action_read(): Added a hack to test whether the first four
                    336:        bytes read from a file a file contain 0x000003F3 (HUNK_HEADER), in
                    337:        which case there's probably a LoadSeg() call going on and we ought to
                    338:        flush the cache. Also, use the fact that memory is now linear.
                    339: 960902 Struggle a bit with dos-ui.c, rename it to tui.c (text-based ui), add
                    340:        new file svgancui.c (ncurses ui) and try to make these two understand
                    341:        each other.
                    342: 960829 New transdisk from Stefan Ropke (can write images)
                    343:        Apply Patrick Hanevolds BeBox patches.
                    344: 96082x many changes to Exec. Still not booting (DMACON seems not to be set up
                    345:        properly, and sometimes Signal is called with task==0).
                    346: 960821 Solaris sound from Manfred Thole.
                    347: 960820 In filesys.c, get_fileinfo(), return volume name for top-level 
                    348:        directory.
                    349: 960819 Reimplement WritePixel(). Layer locking is still missing.
                    350: 960818 Reverse meaning of -x flag for X11. More Exec code.
                    351:        Several changes to the main CPU loop and the way call traps work.
                    352: 960817 Implement some simple Exec functions (Lists, AllocMem & friends)
                    353: 960816 filesys.c fixes from David Varley.
                    354: 960815 Implement graphics library region functions.
                    355: 960814 Modify memory layout: All memory is linear now; get_real_address()
                    356:        returns a (UBYTE *).
                    357: 960810 Add Gustavo's latest DOS code.
                    358:        In configure, include <sys/param.h> earlier for the sake of some *BSD.
                    359:        Add three options for sound code (bits, frequency, buffer size).
                    360:        Make -S option take a parameter; remove SPEED_UP_SIDMON_MODULES.
                    361:        New version of transrom (return 0, duh).
                    362: 960805 Fixed the blitter line mode emulation (this time, really! I hope.)
                    363:        Thanks to Fabio Ciucci for a detailed description of the correct
                    364:        behaviour.
                    365: 960730 Spent the last three days trying to make the filesystem emulation
                    366:        bootable by adding an expansion device for it. A fair bit of trial and
                    367:        error, but now it works! Even the hardfile now works with Kick 1.3, but
                    368:        you have to mount it manually after booting.
                    369:        hardfile.c, filesys.c, expansion.c and autoconf.c now are an
                    370:        entangled mess which badly needs to be cleaned up.
                    371:        We can now mount more than one filesystem even with Kick 1.3: we
                    372:        recognize them by param 2 of the startup packet, which has the same
                    373:        value as the dn_Startup field of the devicenode.
                    374:        Make Kickstart replacement work again (didn't like the CPU emulator
                    375:        changes)
                    376:        Include preliminary serial support from Stefan Reinauer.
                    377: 960728 Fixed the scancodes for <> and #' keys in svga.c
                    378:        Apparently, CIA timer latches ought to be 0xFFFF after a reset
                    379:        (prevents Eagleplayer from crashing occasionally). #ifdeffed out a
1.1.1.2 ! root      380:        slightly weird call to INTREQ from RethinkICRB()
1.1       root      381: 960727 Sound code rewritten again. Now uses events (five new ones). All 
                    382:        modules seem to play correctly now. It's a bit slower, though.
                    383:        AF sound should work again, patches from Marcus Sundberg.
                    384: 960723 ... and more CPU emulation bugs fixed by Herman.
                    385:        Added uae.library from Tauno Taipaleenmaki, plus support files in the
                    386:        "amiga" directory.
                    387:        Added some files for the XFree86/OS2 port from Krister Bergman.
                    388:        Reorganized all the directories.
                    389: 960717 Add latest patch from Herman.
                    390:        More FAST_BLITTER options: 4 and 5. These finish the blit immediately.
                    391: 960713 Call XAutoRepeatXXX() only if we know we want to change the state.
                    392: 960709 Work around a few AIX bugs (ughhh... what a broken OS). New test for
                    393:        sys/select.h.
                    394:        In xui.c, don't try to communicate with a dead process.
                    395: 960704 More bugfixes from Herman.
                    396:        Get rid of dummy_xlate(), use default_xlate() to abort with error.
                    397:        In svga.c, set correct_aspect to 0 if using lores.
                    398:        Change the Bcc exception 3 handling code a bit.
                    399:        Add new program "cpuopti" that takes gcc-generated assembly files and
                    400:        optimizes away unnecessary pushl/popl instructions on the x86.
                    401: 960701 68020 exception handling & various bugfixes from Herman ten Brugge.
                    402:        In ersatz.c, use 0xFF0D instead of 0xF00D as trap opcode.
                    403:        Do MMU "emulation" (no-op MMU instructions, probably many cases decoded
                    404:        incorrectly).
                    405: 960627 New file LIESMICH, with minimal German instructions. Somebody want to
                    406:        translate the docs to French, Spanish, Italian, all the Scandinavian
                    407:        languages, Hebrew, Polish, Dutch, Russian, Welsh, Gaelic and something
                    408:        [email protected] understands? (No offense meant - I'm sure there are
                    409:        brillant minds using AOL. There must be.)
                    410: 960626 In zfile.c, make sure we delete the temporary file even if file
                    411:        decompression fails.
                    412:        Reimplemented sound support, this time following the HRM closely. Seems
                    413:        to work fine most of the time, but occasionally loses drum beats in
                    414:        TFMX modules. do_sound() is now unconditional, it calls
                    415:        flush_sound_buffer(), which is system-dependent. This breaks everything
                    416:        except Linux sound for now :(
                    417:        Add Herman ten Brugge's 68020/68881 emulation code.
                    418:        FreeBSD chokes if sys/mount.h is included without sys/types.h. Fix the
                    419:        configure script.
                    420: 960622 More work on AGA code.
                    421:        Removed 2-bit display routines from custom.c. Ian: please use dithering
                    422:        code.
                    423:        Make slowmem and chipmem sizes run-time configurable.
                    424:        Mask out the high bits in BLT?PTH().
                    425:        Add exception 3 checks to Bcc/BSR instructions. Seems to be not quite
                    426:        correct yet.
                    427:        Completely rewrote the disk emulation. We now create a big track buffer
                    428:        full of MFM data, used in a cyclic fashion by DSKBYTR() and friends. 
                    429:        The current position in the buffer is determined by the cycle counter.
                    430:        DMA reads are now done in one piece. Two new event types: ev_diskblk 
                    431:        and ev_diskindex.
                    432:        ARRGGHH! The RSI demo has _completely_ broken disk loading routines.
                    433:        They start disk DMA on a block while the blitter is still working on 
                    434:        the same memory region.
                    435:        In zfile.c, unlink() the temporary file directly after opening it so
                    436:        it will be freed by the OS as soon as we close it (or crash... :)
                    437: 960621 Merge pfield_sprite_h() and pfield_sprite_l() into one function.
                    438:        Split off new files blitter.c and blitter.h from custom.c.
                    439:        Fixed null-pointer dereference in zfile.c when filename has no
                    440:        extension.
                    441:        Add new field maxline to gfxvidinfo that prevents writing past the
                    442:        screen buffer if it has less lines than expected.
                    443:        Modify the 256 color allocation routine to set nb_cols to the same
                    444:        value first for r,g and b; allocate everything as usual and fill the
                    445:        lost colors afterwards with those that have the greatest difference.
                    446: 960620 For some extremely weird reason, it is faster to simply call the
                    447:        assembly-optimized pfield_linetoscr_full routines _twice_ to double the
                    448:        line than calling the new (also assembly-optimized)
                    449:        pfield_linetoscr_full_double routines, at least when writing directly 
                    450:        into the framebuffer. If someone has a good theory why, let me know 
                    451:        about it.
                    452:        Drawing into memory is faster with the _double routines, but not
                    453:        noticeably (about 1%).
                    454:        Consequence: Removed the new pfield_linetoscr_full_double assembly
                    455:        routines again.
                    456:        Add a "--disable-gui" option to configure.
                    457:        Add Samuel Devulder's dithering code. Provide support for mono and
                    458:        16 color X servers.
                    459:        Put an assembly version of DitherLine() in X86.S.
                    460:        New color mode (3) available, tells UAE to use 256 colors and dither
                    461:        the image. This is meant for people who have only a 256 color X server
                    462:        available, but it works with the SVGA version, too. It's much slower
                    463:        than normal 256 color mode, though.
                    464:        Use the color allocation algorithm from the dither code in
                    465:        alloc_colors256(), too.
                    466: 960619 New files: zfile.c and zfile.h, from Samuel Devulder. These provide
                    467:        transparent decompression of various compressed file formats. Enabled
                    468:        by configure only for Unix systems.
                    469:        Eliminate dont_want_aspect. New option "-C", sets correct_aspect. Make
                    470:        video mode 3 640x480, video mode 4 800x600. Honor correct_aspect in
                    471:        320x400, 640x480 and 800x600 mode with SVGAlib.
                    472:        Add fields maxlinetoscr and x_adjust to gfxvidinfo.
                    473:        Rename pfield_slow_linetoscr() to pfield_do_linetoscr(). Use new fields
                    474:        in gfxvidinfo to enable writing directly to the framebuffer in
                    475:        resolutions with <800 horizontal pixels.
                    476:        New function pfield_do_linetoscr_full(), called when sure that full
                    477:        line update is being done.
                    478:        Move some of the usage() information into some target_specific_usage() 
                    479:        functions, defined in the various system-specific files.
                    480:        Support lower resolutions with LOW_BANDWIDTH, too.
                    481:        memcpy() within screen memory is dog slow. Prevent some common cases:
                    482:        1. Use fill_line() to double a line in the border.
                    483:        2. Add a parameter to pfield_do_linetoscr_full() to indicate whether 
                    484:           the line has to be doubled. New functions
                    485:           pfield_linetoscr_*_double_slow() that simply do a memcpy(), plus 
                    486:          optimized ones in X86.S that are much faster by avoiding the copy.
                    487:        Smart update code could get confused by lores modes when
                    488:        prev_max_diwstop changed from one frame to the next. New variable
                    489:        frame_redraw_necessary, which acts as a counter. It's initialized to
                    490:        2 in interlace mode to handle that case properly, too.
                    491:        Move sprite priority checks into pfield_sprite_?(), move HAM
                    492:        calculations into new function decode_ham6() to simplify the various
                    493:        linetoscr functions.
                    494:        Fixed a bug that would cause sprites to get deformed in some cases
                    495:        when they overlapped (never seen it).
                    496: 960618 New file: dos-snd.c, from Gustavo.
                    497: 
                    498: 960617 Release 0.6.0
                    499: 960617 Fix memory clobber in X86.S when diwfirstword==0. Eliminate double test
                    500:        for HAVE_SYS_MOUNT_H in sysdeps.h.
                    501: 960616 Handle programs that don't wait for the blitter by finishing a pending
                    502:        blit as soon as a blitter register is written to (regardless of DMACON,
                    503:        to be safe).
                    504:        Call gui_led only if the LED changed.
                    505: 960615 Fixed dual playfield sprite priorities. Optimized dual playfield code
                    506:        in X86.S. More work on AGA code. Get joystick status only in
                    507:        vsync_handler to speed things up.
                    508:        Make blitter fill more intelligent with table lookups instead of loop.
                    509: 960614 DOS update from Gustavo. Pass real bitplane pointer to
                    510:        bpl_data_differs(), don't calculate it again.
                    511: 960610 Fixed silly INTEL_FLAG_OPT bug: The new __asm__ expressions use
                    512:        regflags, which is of course _regflags on a.out...
                    513:        More BeBox fixes from Christian.
                    514:        Make the CIA bank bigger (A0..BF) and relax the CIA A/B selection
                    515:        checks to make broken software (Kingsoft's Emerald Mine, reportedly)
                    516:        happy.
                    517:        Default framerate is now 1.
                    518: 960603 New BeBox code from Christian. Fix test for ELF in configure.in.
                    519: 960529 genblitter.c: generate blitfunc as a function taking ULONGs and
                    520:        returning an ULONG. This makes custom.o about 4500 bytes smaller on the
                    521:        x86 by removing worthless size prefixes, and should increase
                    522:        performance (better for the cache, and the P6 reportedly doesn't like 
                    523:        16 bit instructions anyway).
                    524:        memory.c: Load Kickstart in one block and swap bytes after that if
                    525:        necessary (eliminates the need for the special bebox load routine)
                    526:        custom.c: Some preliminary work for AGA support.
                    527: 960528 Saw a real awful piece of code that detects the right mouse button by
                    528:        reading a value from POT0DAT, counting up to 25, reading from POT0DAT
                    529:        again, and deciding the button is pressed if the value changed. Urgl!
                    530:        Added POT0DAT() in custom.c ...
                    531:        Gustavo's latest patches.
                    532: 960525 Do index pulse handling in CIA_hsync_handler(). Make sure bit 12 in 
                    533:        INTREQ gets set on an index pulse. Don't call DISK_Index() for now,
                    534:        since this breaks the Workbench.
                    535:        The CIA code should _probably_ not be resetting the bits in INTREQ.
                    536:        Disable this as an experiment, let's see what breaks.
                    537: 960524 Z flag handling for ABCD/SBCD/ADDX/SUBX was wrong (must be clear if not
                    538:        zero, was set if zero). Some other flag bugs in these functions fixed.
                    539: 960523 gfxlib.c update from Christian Schmitt. Some new Mac code from Ernesto,
                    540:        still not all of it, though. Italian keyboard from Alessandro Bissacco.
                    541: 960522 Fix the CHK instruction. Implement middle mouse button.
                    542: 960515 Fix some Nextstep problems in configure.in.
                    543: 960513 New Makefile target "streifenfrei" to remove all output from configure.
                    544:        Use autoconf 2.7; 2.9 is buggy.
                    545: 960512 Remove BIG_ALIGNMENT hack. Remove superfluous pfield_fetchdata() call
                    546:        in pfield_doline_slow_l() that resulted in garbage on the screen.
                    547:        Move blttbl array from custom.h to genblitter.c
                    548:        Use new lookup tables imm8_table and areg_byteinc in CPU emulation
                    549:        instead of ?: expressions.
                    550:        GCC appears to generate better code if the opcode is passed as ULONG to
                    551:        the CPU emulation functions instead of as UWORD.
                    552:        Modify some of the flag emulation __asm__ statements so that GCC uses
                    553:        less registers for them.
                    554: 960510 Cast malloc() results to char *, for C++ compilers.
                    555: 960509 Use test for GCC and __i386__ in options.h to decide whether to use
                    556:        intel flag optimization.
                    557:        Use test for wish4.0 to decide whether to use the GUI.
                    558: 960507 New bebox.cpp from Christian. AF sound patches from Marcus Sundberg.
                    559: 960505 Fix the configuration stuff so it works. Fix some bugs in gfxlib.c
                    560: 960504 Use GNU autoconf scripts to generate Makefile and sysconfig.h. Add new
                    561:        files sysdeps.h that includes the right system header files. Remove
                    562:        amiga.h and Makefile.
                    563: 960502 More Next code from Ian (new Uae.app directory, 2 bit drawing for
                    564:        custom.c).
                    565: 960501 Allow the sound driver to set the frequency to a value that is slightly
                    566:        different from the requested one.
                    567: 960430 Added AmigaOS port from Olaf Barthel.
                    568: 960427 Fixed single playfield sprite priorities in X86.S.
                    569: 960426 Added new NeXTwin.m from Ian.
                    570:        Turn off the blitter delay in line mode.
                    571:        Added a CPU optimization from Olivier Raoul: gencpu now reads a file
                    572:        "insncount" that can be generated by UAE during execution and generates
                    573:        specific functions for the most common opcodes. Not documented yet.
                    574: 960414 Reimplemented the fast disk emulation in a more sane way. Also it's
                    575:        only done for reads now. (Plus, it no longer works :-/ Need to work
                    576:        some more on this).
                    577:        In blitter emulation, defer not only the setting of the bltfinish bit,
                    578:        but actually defer the whole blit for the number of cycles it will
                    579:        take. This makes programs the clear the screen while it is still being
                    580:        displayed look much better.
                    581:        Changed supervisor mode handling around a bit (was messy).
                    582:        New DOS code from Gustavo.
                    583: 960412 Removed smart update method 2. Added Alessandro Bissacco's blitter
                    584:        optimization patch.
                    585:        Fixed some sprite problems: during hysnc, clear sprpos and sprctl, and
                    586:        don't do_sprites() in line 0.
                    587: 960409 Be a little more intelligent about when to call pfield_linetoscr() from
                    588:        pfield_doline_slow(). It's only necessary if a color register changed.
                    589:        If it can be deferred to the end of the line, use the the _full
                    590:        variants.
                    591:        Some CIA TOD fixes.
                    592:        Better transdisk, accepts first/last track parameters.
                    593: 960405 New function memcmpy(), inline assembler for the i386. Compares two
                    594:        memory blocks and copies them at the same time. Used in
                    595:        bpl_data_differs.
                    596: 960404 French keyboard from Tristan Cavelier. Parallel port emulation from
                    597:        Stefan Reinauer.
                    598:        Turn bpl?pt and r_bpl?pt into arrays, simplify some code using them.
                    599: 960401 Some parts of Ernesto's new Mac sources.
                    600: 960331 filesys.c: Close filedescriptors in free_key(). get_path() sometimes
                    601:        read uninitialized bytes.
                    602:        Minor cleanups all over the place.
                    603:        unchain_mnn() leaves sibling intact, but clobbers next. customreset()
                    604:        didn't care about that and crashed.
                    605:        Use the __asm__("intel_flag_lookup") magic not only for DOS.
                    606:        Support 320x300 for X (without LOW_BANDWIDTH).
                    607:        Add new function fast_memcmp(), defined as memcmp if __i386__ is
                    608:        undefined, otherwise a slightly optimized inline assembly function.
                    609: 960329 Some bug fixes in gencpu.c
                    610: 960328 Stupid programs write odd playfield modulos into the hw registers...
                    611:        Eek! Sometimes, linedescr[] was indexed with a negative value... Add a
                    612:        vpos >= minfirstline check to pfield_may_need_update(). I really need
                    613:        to rewrite this in Oberon...
                    614:        Don't turn off SHM when LOW_BANDWIDTH is selected.
                    615:        Keep the nextpos and linepos variables from pfield_doline_slow_?() as
                    616:        globals and initialize them in pfield_may_need_udpate().
                    617:        Modified alloc_colors256() some more.
                    618:        Try to make sprite DMA follow the Amiga DMA slots more closely by
                    619:        adding a currhp parameter to do_sprites() and calling it at the end
                    620:        of a scanline or in pfield_may_need_update().
                    621: 960327 Added Gustavo's latest DOS code, as far as possible. Modified X86.S to
                    622:        use a macro SYM() to create symbol names either with underscore or
                    623:        without.
                    624:        Fixed some very silly SVGAlib lores bugs. Move screen 8 pixels up in
                    625:        low resolution.
                    626:        Use diwstop instead of diwstart to caclulate the DIW for 320x200 modes.
                    627:        Reset it not only in calcdiw(), but also in init_frame().
                    628:        Speed up 256 color allocation a little bit.
                    629: 960326 New function flush_block() in xwin.c and svga.c. Called from
                    630:        do_flush_line() and (new function) do_flush_screen(). Modify struct
                    631:        vidbuf_description, new member maxblocklines that records the maximum
                    632:        number of scanlines that do_flush_line() should collect before calling
                    633:        flush_block(). If it is zero, then flush_line() is used as before.
                    634:        This makes the special case stuff for SHM unnecessary, so it's removed.
                    635:        Fixed a stupid bug in events code: Put ev_hsync in front of ev_copper,
                    636:        so that do_copper gets called with hpos == 0 instead of hpos == 227 at
                    637:        the beginning of the line.
                    638:        New function init_frame() that sets up some variables, called from 
                    639:        customreset() and vsync_handler().
                    640:        Move smart update code to pfield_doline() from pfield_doline_h() and 
                    641:        ..._l(). Clean up these two with a macro DO_ONE_PLANE, removing
                    642:        duplicate code.
                    643:        Implement big blits and ECS chip ids. New configuration options
                    644:        ECS_AGNUS and ECS_DENISE.
                    645:        Implement MOVEP.
                    646: 960325 Before calling pfield_may_need_update(), make sure the value that was
                    647:        written to a register actually differs from the previous one.
                    648:        New expansion code from Stefan Reinauer.
                    649:        Modify struct mem_notify_node to contain a pointer to a valid bit 
                    650:        instead of the valid bit itself, so that the playfield code has to
                    651:        check only one flag to decide whether to draw the line (SU method 2)
                    652: 960324 The chip_flags approach has several problems. A flag may cover an area
                    653:        in memory that spans two scanlines, or several scanlines may use the
                    654:        same area in memory.
                    655:        Provide two other, different methods for the smart update:
                    656:        1. Save all the bitplane data for each line and compare the chipmem
                    657:           with the saved data to decide whether an update is necessary.
                    658:        2. Use a chain of memory_notify_node structs instead of a single bit
                    659:           for flags. Each scanline owns a set of these structs and chains them
                    660:          into the right place, and the chipmem_?put routines walk the chains
                    661:          and set the modified bit for each element.
                    662:        Unfortunately, both methods are slower than the old one. Especially the
                    663:        first one has some advantages though: it speeds up programs that clear
                    664:        the screen each update and write the same contents back, and it
                    665:        can speed up double-buffering programs at full framerate, since it does
                    666:        not have to check whether the bitplane pointers have changed.
                    667:        Remember the first and last drawn line for each frame, and pass them to
                    668:        flush_screen. Use this in xwin.c for SHM. Modify SHM logic: if smart
                    669:        update is selected, call XShmPutImage() from flush_line() instead of 
                    670:        from flush_screen(). But gather blocks of consecutive lines to avoid
                    671:        calling XShmPutImage() too often.
                    672: 960323 "Smart update" method, based very loosely on Alessandro Bissacco's
                    673:        work, implemented:
                    674:        Add an array chip_flags that records any change made to specific words
                    675:        in chip memory.
                    676:        Move all the hardware registers relevant to playfield display into a
                    677:        new structure bplinfo. Remember the contents of this structure in
                    678:        struct line_description for every line on the screen. Avoid redrawing
                    679:        in pfield_doline if the screen memory has not been modified for the
                    680:        line to be drawn and if the information from the last frame matches
                    681:        that in the current frame.
                    682: 960322 Duplicate all functions responsible for drawing (pfield_doline,
                    683:        pfield_doline_slow, pfield_sprite, pfield_*word_*res) and append _h
                    684:        or _l (ah, the golden C++ days, when we had templates... which never
                    685:        worked). Modify the *_l functions to support drawing in low resolution
                    686:        (i.e. 320x200). Change the options -d and -H to support selecting color
                    687:        mode and resolution, thereby getting rid of some SVGALIB_* options.
                    688:        Get rid of the old pfield_*word_*res functions.
                    689:        Collect information about the minimum diwstart value during the
                    690:        previous frame and use that in case 320x200 was selected to fit the
                    691:        image on the screen.
                    692:        Get rid of HAVE_JOYSTICK (breaks the "-J" option)
                    693: 960321 Give up in op_illg() if opcode is 0x4e7b and the exception handler for
                    694:        it is NULL. In that case, it's a 68020 Kickstart.
                    695: 960319 New Next code from Ian. SunOS target was still screwed (two CFLAGS).
                    696:        Turn -x option into a "hair cursor" option. Support multiple mounts,
                    697:        but warn if more than one is seen (still does not work with Kick 1.3).
                    698:        Integrated Samuel Devulder's new LOW_BANDWIDTH patch.
                    699: 960318 Integrated the start of Markus Gietzen's gfx library replacement.
                    700:        Changed the interface between custom.c and the graphics code. There has
                    701:        to be a buffer holding the data of all the lines on the screen. For
                    702:        linear SVGAlib modes, this is the video memory. Eliminated -x option,
                    703:        prepare_line(), DrawPixel() and the X_?BIT_SCREEN options, replace with
                    704:        3 versions of pfield_linetoscr for different datatypes. Implement
                    705:        proper handling of the borders above and below the DIW in custom.c
                    706:        instead of in flush_screen().
                    707:        Move common code (color allocation) from all the graphics files to new 
                    708:        file gfxutil.c.
                    709:        Swedish keyboard from Per Olofsson.
                    710: 
                    711: 960315 Release 0.5.0
                    712: 960315 Newest DOS port from Gustavo. New sgi-gcc target.
                    713: 960314 Add -lXext to osf target. Use "rb" for fopen() in main.c
                    714: 960310 Play a bit with the __asm__ constraints. Implement CHK.
                    715: 960307 Fix some stupid Makefile errors. Call parse_cmdline() if no init file
                    716:        is found.
                    717:        First round of NextStep patches; new file NeXTwin.m
                    718:        Stupid bug in custom.c: The #define is called NO_FAST_DISK, not
                    719:        NO_FAST_FLOPPY.
                    720:        Fix one of the problems the Deform demo had with the blitter: The
                    721:        line texture wasn't rotated to the right position in blitter_init().
                    722: 960306 Use some black GCC __asm__ magic to calculate flags more quickly
                    723:        (config INTEL_FLAG_OPT)
                    724:        HAM was broken by pfield_linetoscr changes. Fixed.
                    725:        LOW_BANDWIDTH sometimes got confused when the display window changed.
                    726: 960305 BCD instructions work well enough for Locomotive Basic on CPE.
                    727:        New function parse_cmdline_and_init_file() that reads ~/.uaerc or
                    728:        ./.uaerc and adds the options found in those files to those in argv[].
                    729:        Patch from Denis Sablic to make disk image filenames runtime 
                    730:        configurable. Extend it for the ROM filename.
                    731:        Remove some of the run-time configurable stuff from config.h.
                    732:        More X keysym fixes (I finally got a proper .Xmodmap ...)
                    733:        for SVGAlib: Delete key, and PgUp/PgDn as Amiga keys.
                    734:        The sound driver can now handle 22050 Hz and/or 8 bit samples. Both of
                    735:        these are the default with LINUX_SOUND_SLOW_MACHINE.
                    736:        Also use the SNDCTL_DSP_GETBLKSIZE ioctl and write the buffer when 
                    737:        there is enough data.
                    738:        Abuse keybuf.c to provide a fake joystick emulation with the numeric
                    739:        pad (enable with -J)
                    740: 960304 bebox.cpp from Christian.
                    741:        Rename pfield_linetoscr_full to pfield_linetoscr_full8.
                    742:        More x86 assembly: pfield_linetoscr_full16.
                    743: 960303 SunOS target from Dirk Vangestel. Put some not-so-superfluous includes
                    744:        back in. Added the DOS specific patches to filesys.c.
                    745:        Started x86 assembly optimizations. New file X86.S, includes an
                    746:        optimized version of pfield_linetoscr (for 8 bit screens only).
                    747:        Don't use SA_RESTART if it isn't defined.
                    748:        prepare_line() wasn't called often enough (again...), leading to memory
                    749:        corruption and "hit the reset button" bugs when using SVGAlib.
                    750: 960226 Get rid of bool, true and false in amiga.h and everywhere else.
                    751:        Copy yesterdays code to AF_SOUND code, too.
                    752:        Include first round of Christian Bauer's BeBox patches. Add AIX fix
                    753:        from Samuel Mackrill.
                    754:        Add #include <string.h> and #include <stdlib.h> in some more places.
                    755:        Modify gencpu.c and readcpu.c so that immediate types j and J (0..15
                    756:        and 1..8) can be merged. Replace HAVE_ONE_GIG... option with a new
                    757:        CPU_EMU_SIZE option that can be set to a value in the range 0..5,
                    758:        where 0 is minimum size and 5 is equivalent to HAVE_ONE_GIG...
                    759: 960225 Remove multiplications in sound code, use a big lookup table.
                    760: 960222 Go back to having only one memory bank table of type addrbank instead
                    761:        of several function pointer arrays. Eliminate the HAVE_BROKEN_SOFTWARE 
                    762:        define by extending the memory bank table to 65536 entries.
                    763:        Remove remaining DUALCPU code. Allow BTST src,imm instructions in
                    764:        table68k.
                    765: 960220 Back out filesys.c change from Stefan Reinauer: don't call V36 specific
                    766:        functions in expansion.library.
                    767:        Better fix for the filesys.c assign problems by Oliver Moehrke.
                    768:        Make new playfield code conditional on EXPERIMENTAL_SCREEN_UPDATE.
                    769:        Improve the 64bit variant of said code. Try to get alignment for
                    770:        apixels by putting it into a union with a long.
                    771:        Kill the child in gui_exit(). Make graphics_init() return a value and
                    772:        check it in main.c to see whether graphics were initialized. If not,
                    773:        call gui_exit() anyway.
                    774:        Use new 256 color allocation routine from svga.c in xwin.c, too.
                    775:        Make LOW_BANDWIDTH compile _and_ work (wow...).
                    776: 960219 Fix bug in memory.c: When loading 256K Kickstart, copy 256K, not 128K.
                    777: 960218 Finished the rest of the UI: reset, debug and quit buttons as well as
                    778:        drive LEDs. New target linux-gui; all others use dummy file nogui.c
                    779:        for now.
                    780: 960217 The GUI now supports inserting and ejecting diskfiles and displays
                    781:        their names. Two pipes are used now, one for reading and one for
                    782:        writing. Properly wait for the process to start up.
                    783:        Use sigaction() instead of signal() in debug.c.
                    784:        More fixes for the new display routines: Need to do a final call to
                    785:        pfield_*word_*res with the data shifted right from the last fetched
                    786:        word.
                    787: 960216 Copper & sprite bugfixes from Marco Nelissen. Better X keyboard support
                    788:        from Bruno Coste.
                    789:        Move my_strdup() from filesys.c to options.h
                    790:        New files xui.c, uae-ui (shell script) and uae-ui.tk (wish script).
                    791:        These create a GUI for the X version of the emulator. So far, the
                    792:        power LED works.
                    793: 960215 Don't rely on SVGAlib headers defining any keycodes at all.
                    794:        Include Thorsten Frueauf's NetBSD patch. Apparently, the devname
                    795:        variable in hardfile.c caused a namespace collision, so rename it to
                    796:        uaedevname. Fastmem fixes, debugger help, and ConfigDev allocation in
                    797:        hardfile and filesys from Stefan Reinauer.
                    798:        xwin.c: Give the window a title.
                    799:        Half-implemented the DIVU.L, DIVS.L, MULU.L and MULS.L instructions.
                    800: 960213 AF sound system support from Marcus Sundberg. Win95 keyboard support
                    801:        for SVGAlib from Thierry Lescot. Added most of Gustavo Goedert's MS-DOS
                    802:        port.
                    803:        When using the old pfield_*word_*res functions, the gen_pfield_tables()
                    804:        function was undefined.
                    805:        Hmmm, /dev/brain must have been unmounted when I wrote the new pfield_*
                    806:        functions. Now they make sure they access the apixels array only with
                    807:        addresses that are multiples of 16 bytes.
                    808: 960212 Fix copy&paste bug in cia.c found by Marco Nelissen: Need to call
                    809:        RethinkICRB() instead of RethinkICRA() for CIA B timers.
                    810:        Added Stefan Reinauers autoconfig area/fastmem support. Added run-time
                    811:        options for use_slow_mem and use_fast_mem.
                    812:        Oops, the pfield_*word_*res() optimizations break completely on HPs and
                    813:        Sparcs. Now use this optimization only if we are using GCC 2.7.
                    814:        HPUX fixes in the Makefile. New target hpux-gcc.
                    815:        The code for clearing the areas above and below the DIW was trying to
                    816:        be a little too clever selecting the color. Just use the current 
                    817:        background color.
                    818:        Added channel attachment to the sound code. Untested.
                    819: 960211 Found some flag setting bugs in the rotate/shift instructions and in
                    820:        addx/subx (which I thought I had already fixed) by reimplementing 
                    821:        DUALCPU mode to work with Ed's e68k.
                    822:        Argh! The copper is completely disabled during DDF in Hires 4 bitplane
                    823:        mode - so copper positions 0x30 and 0x34 are about 640 pixels apart.
                    824:        The Kickstart uses FF39FFFE to wait for the end of line 256 instead of
                    825:        FFDFFFFE as in all the other modes. This is implemented now, but
                    826:        probably not 100% correct.
                    827:        Added check whether SVGAlib doesn't support our mode.
                    828:        If using GCC >= 2.7, define __attribute__((aligned(16))) as
                    829:        BIG_ALIGNMENT in config.h. Use it for the apixels array to prevent
                    830:        potential problems on the Alpha.
                    831:        Tried to make the color selection routine produce better results in 256
                    832:        color mode.
                    833: 960210 readdisk didn't work at all for large files - fixed.
                    834:        In pfield_doline(), clear the apixels array if playfield DMA is off.
                    835:        In SPRxCTL(), reset sprite mode when sprpos==sprctl==0
                    836:        Rewrite pfield_orword_hires() and friends to use lookup tables. No
                    837:        noticeable improvement on my machine, but might be different on other
                    838:        machines. Two versions of this code: one using 64bit longs on the Alpha.
                    839:        New targets linux-debug and linux-prof.
                    840:        Use 1MB slow mem.
                    841:        -funroll-loops is a little excessive. Remove it.
                    842:        Add support for linear addressing modes for SVGAlib version. Speedup
                    843:        is 20-30% on my old 486 VLB. Now, would someone please fix SVGAlib to
                    844:        support that for the S3-864 as well?
                    845:        Set SVGAlib keyboard mode to DONT_CATCH_CTRLC.
                    846:        Change custom.c, xwin.c and svga.c to keep track of the display window 
                    847:        and background color and to clear the areas above and below the display
                    848:        window if necessary to remove garbage images from previous frames.
                    849:        Set the LOF bit in the Kickstart replacement init routine. Also
                    850:        initialize CIAs to Kick 1.3-like values.
                    851: 960209 Some more -DHAVE_xxx_H options in the Makefile and filesys.c. DEC Alpha
                    852:        fixes for filesys.c from Ed and Marcus. HPUX fixes.
                    853:        New field in table68k for CPU type, parsed by readcpu and compared to
                    854:        CPU_LEVEL which is defined in config.h. New instructions MOVE2C, MOVEC2
                    855:        and CAS. Also a new field for priviledge level that is used by gencpu to
                    856:        generate tests for regs.s and Exception(8) calls if necessary.
                    857:        Move parsing of table68k into a new file build68k.c. Generate a file
                    858:        called cpudefs.c containing the information from table68k in 
                    859:        machine-readable form. Change readcpu.c to use the array found in 
                    860:        cpudefs.c.
                    861:        Don't generate the d8(An,Dn) addressing mode in-line. Generate a call to
                    862:        get_disp_ea(), which is an inline function in newcpu.h if UAE is
                    863:        configured for 68000 emulation; for 68020 emulation, it is defined in
                    864:        newcpu.c.
                    865:        Debugger could crash on illegals because there was no mnemonic defined
                    866:        in lookuptab[].
                    867:        Return zero for SERDATR.
                    868: 960207 It seems that the copper stops completely if an attempt to write to a
                    869:        specific register fails because of COPDANG. Apparently, the Kickstarts
                    870:        use this to stop the copper with a 0x00000000 longword. This leaves the
                    871:        question why they don't do 0xFFFFFFFE like everybody else.
                    872:        Enable 512K slow memory by default.
                    873:        Integrate Stefan Reinauers battclock patch that makes it work with
                    874:        newer Kickstarts.
                    875:        In cia.c, do the little index pulse hack even if dskdmaen==1, because
                    876:        DMA is only enabled when dskdmaen==2 (Helps the "Mad Decision" demo).
                    877:        Add solaris entry to Makefile (GCC, Openwin, -DHAVE_STATFS_H)
                    878:        Define HAVE_STRINGS_H for SGIs, change filesys.c accordingly.
                    879: 960206 Build a smaller table instead of cputbl.c. Use readcpu and the smaller
                    880:        table to build the cpufunctbl array at run-time.
                    881:        Nuked the other half of the old CPU emulator. Reimplemented debugger to
                    882:        use the information generated by readcpu.
                    883:        Define HAVE_STATFS_H for SGIs in the Makefile, and use that as a test
                    884:        in filesys.c instead of #ifndef __linux.
                    885:        Hack filesys.c, get_path() to support the assign command.
                    886:        Add -fstrength-reduce and -funroll-loops in Makefile to make people
                    887:        nervous.
                    888:        Rewrite Sam Devulder's LOW_BANDWIDTH patch and add it to xwin.c.
                    889: 960205 Forgot some PC-relative bit instructions in table68k.
                    890:        Nuked half of the old CPU emulator.
                    891:        Split gencpu.c into two parts, new one is called readcpu.c and just
                    892:        parses the table68k file. Link it to the main program.
                    893: 
                    894: 960205 Release 0.4
                    895: 960203 filesys.c, action_read(): Slightly more efficient code (translate Amiga
                    896:        address to real pointer).
                    897:        Moved some common code in the generate_* functions in gencpu.c to a
                    898:        separate function.
                    899: 960202 Added an experimental fast disk option. Currently turned off by
                    900:        default (it's not such a big win).
                    901:        Attached sprite fixes (overlapping att. sprites looked bad, Katakis).
                    902:        Add sleep(1) before resetting the console to text mode when using
                    903:        SVGAlib: this might fix some screen corruption problems.
                    904:        Add sprite/playfield priority checking to the most important case
                    905:        (single playfield, no HAM).
                    906:        In filesys.c, do_find(): open() returns -1 on error, not zero.
                    907:        Return ERROR_OBJECT_WRONG_TYPE if do_find() is called for a directory
                    908:        (fixes Champions of Krynn harddisk installation).
                    909: 960201 Don't abort if sound driver not present, just set produce_sound to 0.
                    910:        New files keybuf.c and keybuf.h to record keypresses in the right
                    911:        order and without losing any. In cia.c, force 15 scanlines between
                    912:        keypresses, just to be sure.
                    913:        unixfs.device _does_ work with Kick 1.3: just don't trust what Kick 1.3 
                    914:        sends in the startup packet. For now, disable more than one mount per 
                    915:        command line.
                    916:        Started integrating Ernesto's new Mac sources.
                    917:        Remove superfluous includes from some files.
                    918: 960131 Added Ed's unixfs.device (great stuff).
                    919:        Adding ULONGs to pointers is a bad idea on the Alpha if the ULONG value
                    920:        really is signed. Add some casts to LONG in (pc_p + src) expressions
                    921:        in genpu.c.
                    922:        If DMACON is written and copper DMA is enabled, do a COPJMP1 at once.
                    923:        Helps the "Interference" demo.
                    924: 960129 More SGI fixes from Ed. Bugfixes and transdisk improvements from Marcus 
                    925:        Sundberg.
                    926:        Remove EXTRA_DEFINES from Makefile. Breaks some systems.
                    927:        Move common sprite code from pfield_doline() and pfield_doline_slow()
                    928:        to new function pfield_sprite(). The same sprite may appear more than
                    929:        once on the same line, so don't shift out the bits of sprdata[] and
                    930:        sprdatb[] while displaying it (Turrican I).
                    931:        In xwin.c and svga.c, barf if LINUX_SVGALIB doesn't match the file 
                    932:        being compiled.
                    933:        Make all .o files depend on config.h in the Makefile.
                    934:        No need to exit if sound driver unavailable, but -S given.
                    935:        Small debugger fix: Missing space in output.
                    936:        Fix for the sprite logic: Specifically, use a state variable indicating
                    937:        whether the sprite has been restarted after a VSYNC. Fixes most
                    938:        Turrican problems.
                    939: 960124 Added Denis Sablic's patch for sound run-time option.
                    940:        Added Ed Hanway's patch for better Makefile, X mouse cursor blanking 
                    941:        and more SGI compilation fixes.
                    942: 960123 Include options.h everywhere.
                    943:        Handle 8 bit GrayScale visuals like PseudoColor.
                    944:        Remove C++ leftovers from joystick code.
                    945: 960122 When using the joystick driver, the button test must come after
                    946:        handle_events() in vsync_handler().
                    947: 960118 Removed all the remaining C++ comments. Changed all inline keywords to
                    948:        __inline__. Define __inline__ if not using gcc.
                    949:        Make proper prototypes for everything. Compile with maximum warnings +
                    950:        -ansi + -pedantic.
                    951:        Remove CIA_cycle(), obsolete.
                    952:        Reimplemented the STOP optimization in newcpu.c. Removed DualCPU
                    953:        support in CPU emulator.
                    954:        Real nasty bug in pfield_doline() fixed: sprxpos could be evaluated as
                    955:        negative, with not-so-amusing results. (Need to rewrite this in 
                    956:        Oberon to get array bounds checking :-)       
                    957: 960117 Heroic effort: Rewrote the thing in C. This might help fix some
                    958:        problems with users being unable to compile it.
                    959:        Fixed a problem in hsync_handler(): Only call flush_line() for lines
                    960:        in the display window, i.e. when we did a prepare_line() before.
                    961:        Better code for relative branches: Don't use setpc(getpc()+x) calls,
                    962:        increment regs.pc_p instead.
                    963: 960116 Reimplemented the function to load the Kickstart ROM. Use stdio instead
                    964:        of fstreams since this apparently does not work on the Mac. Detect 256K
                    965:        Kickstarts. Detect corrupt ROM images (calculate checksum).
                    966:        Added Ernesto Corvi's Mac port. Changed it around a bit, so it
                    967:        probably won't compile.
                    968: 960115 Reinstate config.h options for X screen depth, so that DrawPixel() can
                    969:        be inlined in custom.cc for speed. xlinebuffer is now incremented in
                    970:        each call to DrawPixel() (for both X and SVGAlib) to get rid of some
                    971:        address calculations.
                    972: 960114 Fixed X generic pixel drawing routine for SHM.
                    973:        Still trying to fix the harddisk emulation.
                    974:        uae.device no longer breaks the debugger (can step through uae.device
                    975:        functions now)
                    976:        Bugs affecting performance: SPCFLAG_STOP never got reset, and DSKLEN() 
                    977:        would set SPCFLAG_DISK even if DMA was being turned off.
                    978:        Made slow memory a run-time option.
                    979:        Defer interrupts by one CPU instruction to give programs a chance to
                    980:        read INTREQR ("Seeing is Believing" and "Substance" demos)
                    981:        Added ScrollLock hack for X, too.
                    982: 960113 SVGAlib version compiles again. Fixed SVGAlib mouse bug.
                    983:        Fixed SHM bug: Maximum scanline is 313, not 312.
                    984:        Sometimes, disk.cc missed a side change and would read the wrong data.
                    985:        Fixed. Apparently, this was the worst compatibility problem.
                    986:        Implemented trace mode.
                    987: 960112 Changed layout of class amigamemory a little so that gcc can generate
                    988:        better addressing modes.
                    989:        Finally wrote functions in gencpu to generate MOVEMs.
                    990: 960109 Integrated Ed Hanway's patches for better X support and run-time
                    991:        configuration of some options. 
                    992:        Got rid of the direct VGA memory access. (Need to do this differently).
                    993:        Changed the method of drawing lines: custom.cc now tells the graphics
                    994:        code the line number and whether it needs to be doubleed before drawing
                    995:        it.
                    996:        Added Andre Beck's MIT-SHM patch.
                    997:        Remove warnings for newcpu.cc.
                    998: 960108 Fixed exceptions in op_illg(): Need to decrement PC.
                    999: 960107 Added an "uae.device" resident module at 0xF00000. This emulates a hard
                   1000:        disk (fixed size 8MB for now).
                   1001: 960106 Moved some common code from pfield_doline() and pfield_doline_slow() to
                   1002:        a separate function. This fixes a potential HAM bug (two static vars
                   1003:        for the same value).
                   1004:        Sound support for Linux. Works only with graphics off and the CPU
                   1005:        slowed down.
                   1006:        Better SVGAlib keyboard support.
                   1007: 960105 Added AvailMem(), AllocMem(), AllocAbs() and FreeMem() dummies.
                   1008:        The Hardwired demo times the multiplication instructions and prints
                   1009:        "This demo don't like Axel" if they are too fast. Apparently, Axel has
                   1010:        a 68040. Added a WANT_SLOW_MULTIPLY option to config.h.
                   1011:        Fixed the fast blitter emulation (seems to work now).
                   1012: 960104 Fixed all the ChangeLog entries from 95 that said 96 (oops??!)
                   1013:        pfield_may_need_update() should check whether bitplane DMA is on.
                   1014:        Added ersatz.cc and ersatz.h. The purpose of these files is to
                   1015:        implement one or two Kickstart functions that are commonly called from
                   1016:        bootblocks. This should help support some games and demos that only use
                   1017:        the Kickstart as an initial track loader. So far, it's only good enough
                   1018:        for one program.
                   1019: 951223 More intelligent event handling in the CPU emulator. Slightly faster.
                   1020: 951222 Optimize CPU emulation by inlining cctrue(). Also, the real PC no
                   1021:        longer needs to be incremented each instruction. The real PC value
                   1022:        now has to be fetched by m68k_getpc().
                   1023:        Added direct screen access for SVGAlib, but it didn't help much. I'll
                   1024:        probably remove it again.
                   1025:        The gencpu executable is 2M smaller if it allocates memory
                   1026:        dynamically.
                   1027: 951216 custom_bput() enhanced a little. Now remembers the value that was 
                   1028:        written in the other half of the register.
                   1029:        Apparently, the USEx bits of BLTCON0 are ignored in line draw mode.
                   1030:        (Silents-Demo)
                   1031: 
                   1032: 951212 Release 0.3
                   1033: 951212 Included Alessandro's battclock patch.
                   1034:        Fixed mouse autocalibration for wrong-aspect screens.
                   1035: 951210 Joystick support for Linux.
                   1036:        Better color matching for 256 color modes.
                   1037:        Rewrote most of the memory management in plain C, mainly to avoid the
                   1038:        various template bugs in some compilers, but also because gcc can't
                   1039:        handle the regparm attribute for virtual functions yet.
                   1040: 951209 Added Alessandro's patches for automatic mouse calibration.
                   1041:        Tried to optimize the blitter loop a bit. Doesn't work.
                   1042: 951205 Added Hannu's patches for diskfile write support.
                   1043: 951201 More portability fixes, especially for weird compilers that workstation
                   1044:        vendors ship.
                   1045: 951125 More keys for X, some keyboard support for SVGAlib (slightly 
                   1046:        dangerous); beginnings of US keyboard support.
                   1047: 951124 256 color mode support for SVGAlib. FAST!
                   1048: 951123 Tiny tweak to central loops in playfield code results in much better
                   1049:        assembly. Apparently, GCC does not feel too good about optimizing 
                   1050:        reference variables.
                   1051: 951113 Bug fix in the events code (nextevent must not be changed while events
                   1052:        are being processed).
                   1053: 951112 The playfield can now be drawn with the right aspect (i.e., every line
                   1054:        twice). Slower, but looks nicer and supports interlaced mode
                   1055:        (flickerfree!). The first 29 lines (blanking interval) are omitted
                   1056:        now to fit everything in 800x600.
                   1057:        Oops, disk drive identification did not work. Fixed, all four drives
                   1058:        appear now.
                   1059:        Oops, CIA_reset() was there all the time but never got called.
                   1060:        Optimized the planar->chunky conversion in pfield_doline() a little.
                   1061:        This really is time critical.
                   1062: 951111 If colors change on a line, we might still be able to use the full 
                   1063:        line update, if the change occurred outside the DIW. Have to be a 
                   1064:        little careful, though.
                   1065:        Playfield code now uses real pointers again, but makes sure it can
                   1066:        read enough bytes to complete the current line without segfaulting.
                   1067:        Oops, my "better estimate" (see below) was a mistake. Restored the
                   1068:        original 4 hw cycles per instruction relation. This slows down the
                   1069:        emulator while booting (more screen refreshs), but speeds up many
                   1070:        demos that otherwise spend most of their time waiting for a specific
                   1071:        raster position.
                   1072:        Playfield modulos must be added immediately when DDF stops. (WOC demo)
                   1073:        Portability fixes in disk.cc (null pointers).
                   1074:        Implemented average frame rate calculation ('c' in the debugger).
                   1075:        Debugger fixes.
                   1076:        Sprite fixes (height was wrong, wrong priorities in fast update)
                   1077:        Added an AutoConfig expansion RAM device. The OS seems to recognize
                   1078:        it, but breaks sometime later (seems to be the same bug that kills
                   1079:        the emulator when there's RAM at 0xC00000).
                   1080:        SVGAlib now has mouse support, too.
                   1081:        HAM mode implemented.
                   1082: 951110 Implemented fast complete line playfield update. Switches back if
                   1083:        necessary. Fixed attached sprites bug.
                   1084:        Copper wait no longer slows down the CPU emulation. (there were
                   1085:        lots of new copper bugs because of this, but I hope I fixed all
                   1086:        of them).
                   1087:        Changed cia?t? from UWORD to ULONG, since there were overflows in
                   1088:        the assertion (because of 65535+1 == 0).
                   1089: 951108 The DIVS remainder could have the wrong sign.
                   1090:        New HAVE_BROKEN_SOFTWARE define in config.h that makes the emulator
                   1091:        mask out the high byte of all addresses.
                   1092:        Wrote genblitter.cc and replaced the awful code in blitter_blit()
                   1093:        and blitter_line() with calls to the generated function.
                   1094: 951107 Implemented ?BCD. These don't really work yet.
                   1095: 
                   1096: 951106 Release 0.2
                   1097: 951105 Fixed a bug in the new CIA timer code.
                   1098:        Fixed flag settings for some cases of ADDX/SUBX
                   1099: 951104 Changed the main loop a bit - call all the *cycle() functions only if
                   1100:        it is really necessary. I hope everything still works - at least it is
                   1101:        twice as fast now :-D
                   1102:        Improved mouse emulation - avoid overflows, permit "wraparound".
                   1103:        Added debugger 'g' command.
                   1104:        Removed some useless casts from the CPU emulator.
                   1105:        Added a configuration option to prevent checks for odd addresses. Only
                   1106:        very bad programs need this check.
                   1107: 951103 The sprite emulation sometimes did not work too well, especially with
                   1108:        dual playfield mode. Hopefully fixed.
                   1109: 951102 The 10 cycle counter is more like a 5 cycle counter in this
                   1110:        implementation. (Fine, that makes floppy loading even faster :-)
                   1111:        Implemented mouse movement. Totally out of sync with the X pointer,
                   1112:        but at least something.
                   1113:        Found out about the XAutoRepeatOff() function. Real useful.
                   1114:        DualCPU mode works again.
                   1115:        Corrected flag settings for CMPA.W.
                   1116:        Fixed DIV instructions: Don't change dest in case of overflow.
                   1117: 951031 The PC is now converted to a real pointer. This is safe (much safer
                   1118:        than converting bitplane pointers, since the PC always has to be valid)
                   1119:        and should speed things up a little.
                   1120: 951029 Some primitive event handling: 2 mouse buttons and 1 joystick button
                   1121:        are emulated, as well as parts of the keyboard (only german mapping).
                   1122:        Fixes: Delay values and sprite widths are always LoRes. Playfield 2
                   1123:        uses colors 9..15.
                   1124:        Implemented a frame rate configuration option that can speed up the
                   1125:        emulation quite a bit.
                   1126: 951028 A-ha. The 68000 has one strange feature after all. MOVEM.W to Dn sign 
                   1127:        extends the value to a longword.
                   1128:        Katakis expects that accessing odd addresses causes exception 3, so 
                   1129:        we have to emulate this. *Sigh*
                   1130:        Do at least something with the index pulse bit. It's more or less a 
                   1131:        toggle now.
                   1132:        Implemented sprites & dual playfields, both with small glitches.
                   1133: 951027 When LOF is set, the frame is one line longer.
                   1134: 951026 Implemented a preliminary diskfile type for special formats. Turrican
                   1135:        boots up correctly (crashes if I want to play a game, though).
                   1136:        Implemented EHB and added a few missing masking operations in the color
                   1137:        handling.
                   1138:        Fixed the absw addressing mode - need to sign extend here as well.
                   1139: 951025 Fixed another extremely stupid bug, this time in the playfield code.
                   1140:        Each pixel was calculated four times...
                   1141:        Increased the size of the apixels array - this was being overrun.
                   1142: 951024 Fixed an extremely stupid bug in flag settings for byte and word
                   1143:        operations.
                   1144:        The "sectors until gap" field must be in the range 1..11 instead of
                   1145:        0..10, or very bad things will happen if it is used to calculate a
                   1146:        blit size.
                   1147: 951021 Don't use real pointers to fetch bitplane data - too many segfaults.
                   1148:        Delay the copper after executing an instruction, or wait sequences like
                   1149:        FFDF FFFE 0200 FFFE won't work.
                   1150:        Some programs expect that the CPU is completely turned off if the
                   1151:        blitter nasty bit is set. So be it.
                   1152:        The RSI Megademo chokes when disk DMA fetches two syncs. Leave one out.
                   1153:        The LOF bit wasn't set correctly.
                   1154: 951020 Blitter fixes: Load fill carry from FCI each line; keep the masked
                   1155:        value of bltadat in bltolda
                   1156:        Give the CPU twice as many "cycles" - this still is not even remotely
                   1157:        correct, but a better estimate.
                   1158: 951017 Added SVGAlib support. Unfortunately, my graphics card isn't fully
                   1159:        supported by the current SVGAlib version.
                   1160: 951015 More small optimizations to memory.h and custom.cc.
                   1161:        Added code for 256 color screens. The type of screen has to be
                   1162:        selected at compile time.
                   1163: 951014 Modified the memory management to be (hopefully) a little more
                   1164:        efficient.
                   1165:        Changed gencpu.cc to generate functions and a big function pointer
                   1166:        array instead of the old case labels. The generated C++ files now
                   1167:        compile a lot faster, and the code should be better as well.
                   1168: 951013 Implemented pseudo POTGOR to keep the RMB from being detected as
                   1169:        pressed all the time.
                   1170:        GenerateDecTab() generated TRAP incorrectly.
                   1171:        Made some more instructions (MOVE.B A0,D0 etc) illegal in gencpu.cc.
                   1172:        Fixed X colors. Fixed data fetching for HiRes screens.
                   1173: 951011 EXT.WL instructions set the flags.
                   1174:        Implemented second CPU emulator, plus "DualCPU" option. The new CPU
                   1175:        emulator is generated automatically from a file called table68k by
                   1176:        a program called gencpu.
                   1177: 951002 Removed version information from the file headers.
                   1178:        Removed some sillinesses in custom.cc. 
                   1179:        DSKLEN bug fixed (mask out 0xC000).
                   1180:        Playfield code rewritten. Now supports horizontal scrolling. Implemented
                   1181:        some primitive color support.
                   1182: 950927 Fixed predecrement/postincrement addressing with byte size for the
                   1183:        stack pointer.
                   1184: 950926 Fixes to the disk code: Terminate disk DMA, flip disk side, read more
                   1185:        than just two sectors during disk DMA, fix checksum calculation.
                   1186:        Fixed copper comparison bugs.
                   1187:        
                   1188: 950901 Release 0.1
                   1189: 950826 bugfix in GenerateDecTab(): LEA.W instructions were generated.
                   1190: 950312 New file disk.cc, for (guess what) disk support. Doesn't work yet.
                   1191: 950311 Multiplication instructions were generating 16 bit results.
                   1192:        Sign extension was wrong in some places.
                   1193:        Removed bugs in the blitter (one word width: ALWM & AFWM and line mode)
                   1194:        The Kickstart logo looks perfect now.
                   1195:        Playfield routine should check BPLCON0 instead of BLTCON0
                   1196: 950309 ASR D8,D0 is not a valid instruction.
                   1197:        Bitplane pointers were not incremented.
                   1198:        Copper comparison didn't work. COP2LC and bitplane pointers were written
                   1199:        incorrectly. Fixed.
                   1200:        Something that bears a striking resemblance to the familiar Kickstart
                   1201:        logo now appears in my X window!
                   1202: 950306 ROR used to set the X flag. Bug fixes in GenerateDecTab.
                   1203:        More bug fixes in several 68000 instructions.
                   1204:        Improved blitter. ?????? KS1.3 doesn't seem to set BLTDMOD on a 
                   1205:        line draw. What is this??
                   1206:        Fixed stupid bugs in playfield code.
                   1207: 950305 fixed bugs in opcode generation and interrupt handling. Implemented 
                   1208:        STOP. Fixed flag settings: Result wasn't masked. Ooops!!
                   1209:        ADDQ #imm,An doesn't set flags.
                   1210:        One-shot timer mode didn't work.
                   1211:        Implemented blitter, doesn't work.
                   1212:        Some primitive and slow playfield support, only to make the things that
                   1213:        hopefully will soon appear visible.
                   1214: 950304 CIA timers ought to work OK. Copper is emulated.
                   1215:        Emulator loops infinitely when trying to initialize the console.device
                   1216: 950303 experiments with X, figured out how to open a window and draw pixels.
                   1217:        No graphics emulation yet, though.
                   1218: 950301 Nearly all instructions work.
                   1219:        Fixed supervisor mode stack.
                   1220:        The memory manager now handles CIA chips.
                   1221: 950228 Bug fixes in 68000 code, exceptions and more instructions implemented
                   1222:        Memory management extended to handle custom chips as well.
                   1223:        Debugger improved.
                   1224:        Kickstart passes memory & CPU type test, builds up some system
                   1225:        structures.
                   1226: 950227 MC68000 & little debugger for tracing. It can execute the first couple
                   1227:        of KS1.3 instructions, but doesn't get past the memory test.
                   1228: 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.