Changes log for EmuXL --------------------- Version 0.2.2 - first public release Version 0.2.3. - A bugfix in keyboard handler, Control key now recognized. - Code cleanup - debug and obsolete stuff removal. - Few optimizations in VBL handler. - CLI and RTI instructions are emulated differently on 040/060. - Bugfix in resolution switcher, now it should work OK with external clock. - Popup-menus in config dialogs implemented. Version 0.2.4 - Video switcher forced low-res monitor to VGA resolution. Fixed. - FastRAM buffer for video emulator implemented. - Memory allocation table now initialized to zeroes at startup. - Changes in RSC file (3D-popups, why not?), dialog boxes look decent (not in MagiC though, but it's not my fault...) - Few further optimizations in video-related routines - Internal FP routines added. - A small 040/060 related fix - Fixed the annoying bug that made some keypresses be understood as key releases (visible as "shift-lock problem") - "Restore & restart" function added. - README.DOC made decent. - Few optimizations done in comparisons and binary subtraction. - Another bugfix in CPU emulator (how the duck it worked with wrong ADC #$xx ???) - Disk I/O rudiments implemented (virtual XLD drives) - Falcon filesystem access basics implemented - No more instruction cache flushes on 68030, single entries are invalidated now. On 040/060 cache is not touched at all. - Some optimizations in absolute addressing modes and INC/DEC instructions (*sigh*) - Emu's code exceeded 64k in length - Fclose() now forced for all files still open after returning to the GEM part Version 0.2.5 - When the FFS driver was enabled, each F10 caused a very strange, semi-cold system restart. Fixed. Unfortunately, just after version 0.2.4 was released... Version 0.2.6 - Other bugfixes in FFS driver, should work stable now (but who knows) - Bugfix in resolution switch. Well, Videl Inside II is pretty cool if tolerates such things... ;) Version 0.2.7 - "Monitor type" option changed to "Video mode". The code behind is less intelligent, but at least works... - Stack correction bugfix in the GEM part - Due to permanent compatibility problems now using hardware directly to switch resolutions. - Fake VCOUNT register implemented, graphic mode switching much faster now, also the KEYCLK patch removed from the system. - VGA video mode tuned to be exactly 31.250kHz/50Hz. The total screen size is 512 pixels per 625 lines, as in broadcast PAL monitors. It may produce better display on some monitors (e.g. Microvitec 4235), on some other it may be less proportional than before. Still using 32 MHz Videl master clock, my monitor doesn't like anything above 320x240 with 25 MHz, sorry! - Display List overflows won't crash the Falcon anymore. - Fixed a bug in virtual disk routines - a part of the header was missing while flushing the buffer back to the disk. - "Falcon filesystem" name changed to more universal "GEMDOS filesystem" - GEMDOS filesystem driver now supports wildcards in filenames (not in paths however, unlike SpartaDOS) - FASC function added to the set of 68030 FP routines - Fixed a silly bug in GEMDOS filesystem driver, that could cause unstable behaviour sometimes. - GEMDOS filesystem driver now supports reading directories. Due to GEMDOS limitations, only one channel may be opened for a directory at a time. - Besides of unit numbers 1-9 (for the GEMDOS filesystems), now letters A-I can be specified, like under SpartaDOS X. - The minimal screen resolution to start Emu is now 640x400. - Some optimizations in Antic emulator. - PDVREG now fully implemented (don't POKE anything there, its for XL OS) - CHRCTL implemented (try POKE 755,6) - Diplay List DMA control partially implemented. POKE 559,0 now disables the screen display, POKE 559,34 enables it again. Disabling DMA makes CPU emulator faster about 20% (depends on a graphics mode). - An important rewrite in the interrupt handling. Keyboard should work much better now. - On multiuser setups only root can execute the Emu and only when GEM AES is active. Version 0.2.8 - A fix in interrupt handler for 040/060. Additionally it may take effect in a slight speedup for these processors. Version 0.3.1 - Important changes in CPU emulator: no more cache manipulations, also all processors run the same code again. This is an effect of changing the way of passing interrupt signals to the CPU emulator. For 030 it works at the same speed as before, 040/060 users however may notice some speedup. - FastRAM buffer thing removed as unefficient. - Also some code went away from interrupt service routines, which takes effect in a slight faster Antic emulator. - Some optimizations in CPU emulator (CIRCLE.BAS seems to run 10% faster now). - Reset (F10) now closes all files opened by GEMDOS on Emu's request. - GEMDOS filesystem device now correctly reports "file not found" condition as error 170, not 146 ("no function in device handler") as before. Version 0.3.2 - Bugfix: MyDOS *finally* loads the DUP.SYS :) - New: joystick control implemented (joystick port - left port on MSTE/TT - mapped as joystick 0 by default) - New: ST mouse acts like attached to a real XL computer. - New: further DMACTL functions implemented: - no display (DMACTL = $20) - underscanned display (32 columns, DMACTL = $21) - normal display (40 columns, DMACTL = $22, default) - overscan, 48 columns (DMACTL = $23) - New: Joystick ports can be swapped on user's selection. - New: Atari BASIC may be completely disabled at user's selection - New: "Save preferences" and "Autosave preferences" added. - New: GEMDOS filesystem and standard DOS may be now used at the same time. - New: GEMDOS filesystem now assigns separate 'default' directories to each unit. - Bugfix: SysInfo now correctly reports the state of the external cartridge. - Bugfix: a typo in JMP (abs,X) corrected. - New: CPU emulator optimized, everything a bit faster, at least on 68030 (I have no clue what effect does it take on 040 considering its larger cache). - New: ANTIC emulator optimized considering memory writes (about 10% less). - New: GEMDOS filesystem device returns correct file length in directory and number of free units in directory listings. - New: memory usage reduction: now the Emu takes 512k less than before. - Bugfix: INC abs for I/O area should now work. According to my backups, it was an ooooold bug and SysInfo should never work with this. But it did until I reallocated some tables. Very strange... :) - New: some docfiles... - New: the full 64k now accessible for programs. - New: the emulator gets very restrictive on illegal opcodes. Encountered one it now returns to the GEM (debug reasons). - New: Turbo BASIC XL now works. Slow though... - Miracle: Amaroute (a game) works also. - New: Antic memory scan register is now initially set to the nearest 4k block boundary, not to the bottom of the RAM. It takes some more CPU time, but you should see less garbage on the screen when things go to custom display list. - New: some more stuff gets reset when you press F10. Especially DMACTL register. - Bugfix: NTSC won't be reported anymore; it didn't make sense, coz PAL computer is emulated. KNOWN BUGS: wrong screen mode on accelerated Falcons (due to using 32 MHz clock) GEMDOS FS hangs the system when floppy B: is called. Memory management is full of dirty code and kludges, needs a rewrite..