English Amiga Board


Go Back   English Amiga Board > Support > support.Other

 
 
Thread Tools
Old 13 November 2022, 15:39   #21
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,365
Quote:
Originally Posted by Thomas Richter View Post
No, the 68881 and 68882 compute equally precise, but less precise than the software. That is, for elementary algebra, the two are equally precise, but for the additional functions SoftIEEE offers a higher precision.
Ok, that was a misunderstanding concerning the 67 bits and your 96 bits precision. You were talking about the mantissa only, which is, of course, responsible for the precision of the FPU. I just thought about 64 bit and 80 bit FPUs, the exponent included, and the 96 bit data format, which is used on PCs for long double.
PeterK is offline  
Old 13 November 2022, 17:46   #22
Flash951
Registered User
 
Join Date: Feb 2015
Location: Lier / Norway
Posts: 103
Thank you! I've replaced 060 lib (~160 KB) for MMU 060 lib (much smaller). TVPaint versions still crash, but give 'software failure' system message.

TVPaint 2.0 EGS record demos will now start, and partly work without error message. But will stop playing and not do the operations. Can exit without failure though.

Vampire guys got TVPaint 3.6 P96 to run with FEMU before they implemented FPU. Haven't got that to work with FEMU using 060LC though, only Vampire 2+.
Flash951 is offline  
Old 13 November 2022, 17:57   #23
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
You need to use the above revised version, not the first version.
Thomas Richter is offline  
Old 13 November 2022, 18:10   #24
Flash951
Registered User
 
Join Date: Feb 2015
Location: Lier / Norway
Posts: 103
I did!
Flash951 is offline  
Old 13 November 2022, 20:37   #25
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Well, as usual, please kindly run MuForce with the DISPC option, and kindly provide the output.

Here is another fix - this fixes a register trash affecting conversions to integer - thank you.
Attached Files
File Type: lha SoftIEEE.lha (50.0 KB, 49 views)

Last edited by Thomas Richter; 13 November 2022 at 22:41.
Thomas Richter is offline  
Old 14 November 2022, 17:31   #26
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Another day, another update, sorry folks. However, I finally found a way how to test this on the real stuff. Friends from a1k kindly sponsored an A1200 a while ago, and iComp also provided an ACA1211lc, back then for testing the card.resource. Now, a quick swap of the accelerator later, I could finally run this version of SoftIEEE, and at least, it is now good enough to run my Deluxe Mandelbrot program. Slow, of course, but it works.

Chances are improving that the thing works correctly. This version runs AIBB correctly on the above 68020 based system. The defects so far are interestingly not related to numerics, but to register trashes and register assignments in the actual opcode interpreter (the SoftIEEE part) and not so much in the numerics (the softieee.library). The ATAN code trashed one register, and fmove to data register was broken.
Attached Files
File Type: lha SoftIEEE.lha (50.0 KB, 54 views)

Last edited by Thomas Richter; 14 November 2022 at 20:58.
Thomas Richter is offline  
Old 14 November 2022, 21:57   #27
Flash951
Registered User
 
Join Date: Feb 2015
Location: Lier / Norway
Posts: 103
Still software failure for TVPaint 3.0 EGS and TVP jr. Will check with MUForce.
Flash951 is offline  
Old 15 November 2022, 22:49   #28
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
A new day, a new luck. There was an interesting defect in frestore(). For the 68040 and the 68030 (or rather the 68881/882), the frestore needs to read first the first long word of the saved data because this word contains the size of the frame. Unfortunately, when then reading the final frame, it used the wrong ea and might have trashed some registers.
Attached Files
File Type: lha SoftIEEE.lha (50.3 KB, 61 views)
Thomas Richter is offline  
Old 15 November 2022, 23:33   #29
klx300r
Registered User
 
klx300r's Avatar
 
Join Date: Oct 2007
Location: Toronto, Canada
Posts: 1,593
@ThoR

This is a great idea nowadays with the price of full 060’s and looking forward to seeing it progress!
klx300r is offline  
Old 16 November 2022, 10:12   #30
Flash951
Registered User
 
Join Date: Feb 2015
Location: Lier / Norway
Posts: 103
Great progress:
TVPaint 3.6 for P96 works!
TVPaint 2.0 EGS demos works!

TVPaint 3.0 EGS still fails:
Click image for larger version

Name:	7BAB2343-DF87-4027-B56E-6BA324625BD9.jpg
Views:	128
Size:	1.03 MB
ID:	77092
Flash951 is offline  
Old 16 November 2022, 11:12   #31
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Thanks, that's very valuable information. An interesting opcode they seem to use, let's see what I can do about it.
Thomas Richter is offline  
Old 16 November 2022, 19:15   #32
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Yes, the problem was fmovems of control or FPU registers with empty register lists, i.e. essentially an fnop by other means. There was also a very minor issue that frestore on the 68060 did not use the correct function codes when the addressing mode was PC-relative. This needs to use a program-space function code, not a data-space function code.

There is nothing else today.
Attached Files
File Type: lha SoftIEEE.lha (50.5 KB, 65 views)
Thomas Richter is offline  
Old 16 November 2022, 20:54   #33
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
On fmovem control with an empty reg list being a fnop...
I just went through the docs (68k prg ref manual) and couldn't find it, but I 100% remember, and I'm 100% sure that if no control register is specified (all 3 bits are 0) it defaults to fpiar (so it's not "equivalent" to fnop). Manual states (5-93) that at least one reg must be specified, but, again, I can't find it now where I read about the "default" if nothing is selected. Once upon a time (~10 years ago) when I was working on my disassembler that's how I've implemented it (and pretty sure tested on a real 040).
Just did a quick test in winuae with a proper instruction (fmove(m) fpiar,(a0) = $f210, $a400) and modified opcode ($f210, $a000 nothing selected) and the result was identical.
Unless you meant you initially implemented it diffrenly and now it's ok, not really clear...
a/b is offline  
Old 16 November 2022, 21:10   #34
Marce
Banned
 
Join Date: Oct 2021
Location: SA
Posts: 283
I was trying to run the program simple mail version 0.29 on winuae in a config without fpu
result: guru and crash

can anyone confirm that simple mail works with softieee in a real Amiga?
Marce is offline  
Old 16 November 2022, 21:41   #35
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
It *cannot* work with WinUAE at this point, so please do not test with it. As explained above, the current version of WinUAE has a defect that trashes one register upon entry into the exception handler.
Thomas Richter is offline  
Old 16 November 2022, 21:46   #36
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Did no one read what I replied few days ago? That bug only affects 68060. (also not mentioning used config means: not enough information. It is also usually good idea to test few different configs, including enabled FPU, to confirm it is even FPU related problem!)
Toni Wilen is online now  
Old 16 November 2022, 21:49   #37
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by a/b View Post
On fmovem control with an empty reg list being a fnop...
Unless you meant you initially implemented it diffrenly and now it's ok, not really clear...
It was implemented as creating an invalid opcode (line F trap engaged), it is now implemented as a "nop". However, the faulting instruction at this point is a move multiple data registers, not move multiple control registers.
Thomas Richter is offline  
Old 16 November 2022, 22:44   #38
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Well, what I'm trying to say it's not a "nop". It actually reads/writes fpiar if nothing is selected.
Checking winuae sources... fpp.cpp, line 3358:
Code:
				/* FMOVE(M) EA,Control Register(s) */
...
				// No control register bits set: FPIAR
				if (!(extra & (0x1000 | 0x0800 | 0x0400))) {
					extra |= 0x0400;
				}
Lines up with my recollection of how it works.
Did a test with softieee.library: $f210, $a000 (fmovem <no_ctrl_regs>,(a0) ) doesn't write to memory at all, and without the library (fpu present) fpiar is written.

edit: Made me anxious, pulled my A4000 out and tested it on real hardware: $f210, $a000 writes the fpiar to memory (exactly the same as $f210, $a400).

Last edited by a/b; 17 November 2022 at 00:58.
a/b is offline  
Old 17 November 2022, 07:14   #39
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Thank you (though that is part of the emulator, not part of the numerical core in the library, i.e. SoftIEEE, not the softieee.library).

The interesting question rather is: What happens for the "move multiple data registers" instruction. Does that also read a register if the register list is empty.
Thomas Richter is offline  
Old 17 November 2022, 08:49   #40
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Quote:
Originally Posted by Thomas Richter View Post
The interesting question rather is: What happens for the "move multiple data registers" instruction. Does that also read a register if the register list is empty.
FMOVEM <registers> with no registers selected does nothing.
FMOVEM <control registers> always moves at least one register (FPIAR if nothing selected).

(FMOVEM <registers> has some CPU specific differences when using invalid static/dynamic predecrement/postincrement mode bit combinations but afaik no programs do that)
Toni Wilen is online now  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Demos to test FPU on SX32 MkII (020+FPU) Rochabian request.Demos 1 21 April 2020 03:03
Betatesting Amiga and C64 Forever 7 michaelz support.Amiga Forever 23 22 June 2017 16:58
[obsolete] EoB 2 Thread AGA and translations betatesting Marcuz project.Amiga Game Factory 17 21 August 2008 22:47
Frederic's Emulator inside and Emulator thread Fred the Fop Retrogaming General Discussion 22 09 March 2006 07:31

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:56.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.13929 seconds with 14 queries