http://www.winuae.net/files/b/winuae_4400b3.7z
http://www.winuae.net/files/b/winuae64_4400b3.7z
Beta 3:
Not much updates because 68000 bus/address error stack frame bug wasn't that simple to fix.
- b1 disk read dma without drives update didn't handle situation where disk write was started without any selected drives.
- 68000 bus/address error stack frame program counter field was almost always incorrect (b1). One modification was lost when gencpu was cleaned up and my CPU tester had a bug and ignored this field.. Address errors and bus errors fixed (read, write and prefetch). Amiga does not use bus errors and only some protections use address errors. You probably would expect bus/address error stacked PC point to address that was being prefetched but usually it has +2/-2 offset. It can get even more interesting if it is jump or branch instruction.
- When ejecting directory filesystem that points to plain file or archive, not all host file handles were closed properly.
CPU tester FPU trigonometric and logarithmic instructions verified. Last 16 or so bits of extended double was ignored in most tests because 6888x returns slightly different results than 68040+ FPSP and also some 6888x instructions return less precise result than FPSP does. All 6888x trigonometic and logarithmic instructions seem to work correctly enough in softfloat mode.
- FSINH and FCOSH didn't set INEX bit if result was infinity.
- FREM and FMOD didn't round using current rounding mode.
- FREM and FMOD will only return correct results with some input parameter values. FREM and FMOD is based on some other CPU behavior, most likely x87, and it isn't fully compatible with Motorola implementation. For some reason this was not updated. Will be fixed later.
- FSCALE didn't round the final result correctlyin all code paths.
Most likely no real world program was affected. Host FPU mode will also return even more different results.
http://www.winuae.net/files/b/winuae_4400b3.7z
http://www.winuae.net/files/b/winuae64_4400b3.7z
Beta 3:
Not much updates because 68000 bus/address error stack frame bug wasn't that simple to fix.
- b1 disk read dma without drives update didn't handle situation where disk write was started without any selected drives.
- 68000 bus/address error stack frame program counter field was almost always incorrect (b1). One modification was lost when gencpu was cleaned up and my CPU tester had a bug and ignored this field.. Address errors and bus errors fixed (read, write and prefetch). Amiga does not use bus errors and only some protections use address errors. You probably would expect bus/address error stacked PC point to address that was being prefetched but usually it has +2/-2 offset. It can get even more interesting if it is jump or branch instruction.
- When ejecting directory filesystem that points to plain file or archive, not all host file handles were closed properly.
CPU tester FPU trigonometric and logarithmic instructions verified. Last 16 or so bits of extended double was ignored in most tests because 6888x returns slightly different results than 68040+ FPSP and also some 6888x instructions return less precise result than FPSP does. All 6888x trigonometic and logarithmic instructions seem to work correctly enough in softfloat mode.
- FSINH and FCOSH didn't set INEX bit if result was infinity.
- FREM and FMOD didn't round using current rounding mode.
- FREM and FMOD will only return correct results with some input parameter values. FREM and FMOD is based on some other CPU behavior, most likely x87, and it isn't fully compatible with Motorola implementation. For some reason this was not updated. Will be fixed later.
- FSCALE didn't round the final result correctlyin all code paths.
Most likely no real world program was affected. Host FPU mode will also return even more different results.