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