1200, yesguidol wrote:Did you use the ROM for the A1200 (68020) or which version did you buy?vebxenon wrote:Today I've tested Amiga OS 3.1.4

Moderators: Mug UK, Zorro 2, spiny, Greenious, Moderator Team
1200, yesguidol wrote:Did you use the ROM for the A1200 (68020) or which version did you buy?vebxenon wrote:Today I've tested Amiga OS 3.1.4
Try this if it works without slow RAM: And review the last commits:kolla wrote: My own kickstarts seem to be ok with just 0.5 MB of slow ram. I have no idea what could cause such behaviour, and that it works for others just makes it weirder
It's perfect!slingshot wrote:Try this if it works without slow RAM:kolla wrote: My own kickstarts seem to be ok with just 0.5 MB of slow ram. I have no idea what could cause such behaviour, and that it works for others just makes it weirder
minimig_mist.zip
And review the last commits:
https://github.com/mist-devel/minimig-mist/commits/dev
Nah, same problems as before, still needs slow ram.slingshot wrote:Try this if it works without slow RAM:kolla wrote: My own kickstarts seem to be ok with just 0.5 MB of slow ram. I have no idea what could cause such behaviour, and that it works for others just makes it weirder
minimig_mist.zip
If I set 0.5MB Slow RAM, then 0.5MB will shown in Sysinfo/Memory info. Did you try to remove MINIMIG{1..4}.CFG from your SD-Card?kolla wrote: On the other hand - now it doesn't matter how much slow ram I configure, it always ends up as 1.5MB according to showconfig, sysinfo etc. Is that just me??
I have just started to look at that. This also happens in the ghdl simulation. I'll see what i can do ... whenever I touch something in tg68k i am afraid to break something else. tg68k is a VHDL version of a house of cards.kolla wrote:@retrofan and @slingshot
I hope this one didn't fly under the radar?
http://atari-forum.com/viewtopic.php?f= ... 25#p383381
At least there's a CPU tester now to test regressions (ok, it runs only in Amiga-Minimig, but still better than nothing).MasterOfGizmo wrote:I have just started to look at that. This also happens in the ghdl simulation. I'll see what i can do ... whenever I touch something in tg68k i am afraid to break something else. tg68k is a VHDL version of a house of cards.kolla wrote:@retrofan and @slingshot
I hope this one didn't fly under the radar?
http://atari-forum.com/viewtopic.php?f= ... 25#p383381
Great tip!slingshot wrote:If I set 0.5MB Slow RAM, then 0.5MB will shown in Sysinfo/Memory info. Did you try to remove MINIMIG{1..4}.CFG from your SD-Card?kolla wrote: On the other hand - now it doesn't matter how much slow ram I configure, it always ends up as 1.5MB according to showconfig, sysinfo etc. Is that just me??
That's good, hope you manage.MasterOfGizmo wrote:kolla wrote:@retrofan and @slingshot
I have just started to look at that. This also happens in the ghdl simulation. I'll see what i can do ... whenever I touch something in tg68k i am afraid to break something else. tg68k is a VHDL version of a house of cards.
After a few hours of hunting the problem I ended up at this line:slingshot wrote: Btw, not just the MUL, but the DIV instructions also have problems.
Code: Select all
mulu.l d0,d1:d2
I can run the CPU tester with commenting that out later on.MasterOfGizmo wrote:
Commenting that line fixes the problem for me. But of course that may introduce new problems and needs to be investigated a little further. But the real odd thing is the comment '''--???'''. I wonder who put it there. It's been there for at least 7 years and it seems someone tried to fix the same problem. I wonder why he kept that line.
Ok, it _does_ work if one gets the order of the two target registers correct. Looking forward to the CPU test results for MULU.L ....MasterOfGizmo wrote:And it seems the 32x32->64 bit version does not work at all:
It's better with the commented out line. Now the next failure:MasterOfGizmo wrote:Ok, it _does_ work if one gets the order of the two target registers correct. Looking forward to the CPU test results for MULU.L ....MasterOfGizmo wrote:And it seems the 32x32->64 bit version does not work at all:
Are you sure? I get d2 = 7ffe8001 in simulation (which of course is even worse ...)slingshot wrote: result
d2=7ffe0001
Yes, you're right. Failed copy/paste by eyesMasterOfGizmo wrote:Are you sure? I get d2 = 7ffe8001 in simulation (which of course is even worse ...)slingshot wrote: result
d2=7ffe0001
Try replacing line:slingshot wrote: Yes, you're right. Failed copy/paste by eyes
Seems that last bit is slipped by 16 positions (or just two totally different causes for two bits are inverted).
Code: Select all
elsif micro_state /= idle or exe_opcode(15) = '1' or sndOPC(10) = '0' then -- 32 Bit, don't run in idle for MULU.L 64
It works! Mull.l now fully passes. There's a minor problem with the patch, it introduces a clock because result_mulu doesn't get a value in every case. What would be a good default value (value in 64 bit mode)?MasterOfGizmo wrote:
Try replacing line:
https://github.com/mist-devel/minimig-m ... U.vhd#L849
byThe problem is that the MULU state machine runs all the time and in the MULU.L case with 64 bit target it might still shift/add while the result is already being processed.Code: Select all
elsif micro_state /= idle or exe_opcode(15) = '1' or sndOPC(10) = '0' then -- 32 Bit, don't run in idle for MULU.L 64
Exactly that is what's supposed to happen: result_mulu should not change at all in that case. It should stay stable so the 64 bit result can be processed over several steps. Would something likeslingshot wrote: It works! Mull.l now fully passes. There's a minor problem with the patch, it introduces a clock because result_mulu doesn't get a value in every case. What would be a good default value (value in 64 bit mode)?
Code: Select all
else
result_mulu <= result_mulu;
Well, that's the definition of a latch - which we should avoid (this block is purely combinatorial). But the "old" value should come from some previous result, right? Then some register should already contain the data.MasterOfGizmo wrote:Exactly that is what's supposed to happen: result_mulu should not change at all in that case. It should stay stable so the 64 bit result can be processed over several steps. Would something likeslingshot wrote: It works! Mull.l now fully passes. There's a minor problem with the patch, it introduces a clock because result_mulu doesn't get a value in every case. What would be a good default value (value in 64 bit mode)?be helpful?Code: Select all
result_mulu <= result_mulu
Ok. The thing is that the input of this block changes, in this case "faktorB" which in turn comes from op2out which is generated somewhere else ... tricky ...slingshot wrote: Well, that's the definition of a latch - which we should avoid (this block is purely combinatorial).
Code: Select all
else
result_mulu <= result_mulu_last;
.
.
.
if rising_edge(clk) then
result_mulu_last <= result_mulu
Code: Select all
else
result_mulu <= mulu_reg;
Code: Select all
else