What Needs to be done for a NeXT Emulator

Started by cjbriare, August 16, 2010, 06:34:34 PM

Previous topic - Next topic

cuby

Quote from: andreas_g on February 11, 2024, 07:17:07 AMIf you can find out anything more about the root cause of the issue please let me know.
Hm, I just checked the standard logs of Previous, but the only unusual thing I see so far is this:

[NFSD:nfsd:100003][DMA] Channel Ethernet Receive: Error! DMA not enabled!
[EN] Receiving packet: Error! Receiver overflow (DMA disabled)!
[NFSD] Socket closed: Undefined error: 0

However, this could already be a consequence of the panic handler trying to shut down the machine. I'll probably have to enable MMU/page table debugging...

andreas_g

Quote from: cuby on February 12, 2024, 08:53:19 AMHowever, this could already be a consequence of the panic handler trying to shut down the machine. I'll probably have to enable MMU/page table debugging...
I think I found the problem. If testing is successfull I'll provide a patch later today. In the meantime there is no need for further investigations.

andreas_g

Quote from: cuby on February 09, 2024, 01:09:56 PMWhen copying a large file via NFS and trying to run some command in a second terminal window, this often (but not always) results in the error message "bad address" and a kernel panic after several attempts

This is fixed now in the latest revision of branch_softfloat (r1420). I will release a new version including this fix soon.

The problem was inside the CPU/MMU simulation. There was a stuck flag after page fault if faulted access was via a MOVES instruction. I also fixed another issue regarding MOVES that was not part of this problem.

Thank you very much for reporting and your efforts for debugging this.

cuby

Quote from: andreas_g on February 12, 2024, 10:26:51 AMThere was a stuck flag after page fault if faulted access was via a MOVES instruction.
Uh, that's a nasty bug. Congrats on finding it!

Quote from: andreas_g on February 12, 2024, 10:26:51 AMThank you very much for reporting and your efforts for debugging this.
Thanks a lot for fixing it that quickly! :)

Update: Did quite a bit of stress testing, seems to be rock solid now!

andreas_g

Hello all,

I am happy to announce the release of Previous v3.1. As usual you can load a binary for macOS 10.13 and later (Intel and Apple Silicon) here.

The most significant changes are:
  • Addition of Apple Desktop Bus keyboard and mouse. The new devices work with Turbo systems. If you don't like the new devices you can go back to the old ones by unchecking ADB devices in System options under Customize. Non-Turbo systems are not affected by this change.
  • Fix for a bug that caused kernel panics during network transfers on 68040 based systems. Therefore updating is highly recommended.

I hope you enjoy the new release! Please let me know if you experience any issues.

eagle

Man I am so far behind, but I will be updating my Previous website with this latest release. Thanks for all the great work, Andreas.
My NeXTs:
NeXT Computer prototype (68030-25 x2, 68040-25)
Two NeXTstations (68040-25)
All mono

pTeK

Quote from: eagle on February 13, 2024, 11:45:28 AMMan I am so far behind, but I will be updating my Previous website with this latest release. Thanks for all the great work, Andreas.
That's a cool website.

I like how on the version history you start from the current release and work backwards. There are some release files that start with the oldest and work backwards  :'(  (first world problems)

What tools did you use for this screenshot?

Congrats to @andreas_g and the other Previous contributers and bug reporters for the big 3.1

eagle

Quote from: pTeK on February 13, 2024, 01:16:24 PMThat's a cool website.
Thanks for the kind words about the site design. I modeled it after another site that I really like, and found some nice NeXT-related images.

QuoteWhat tools did you use for this screenshot?
Pretty sure I just used the regular macOS screenshot functionality -- I just had the 2 windows right next to one another. I agree that it's a really cool effect and cool screenshot.
My NeXTs:
NeXT Computer prototype (68030-25 x2, 68040-25)
Two NeXTstations (68040-25)
All mono

wlewisiii

Speaking of current screenshots:
Previous 3.0 running on Windows 10. SoftPC 3 running DOS 5 with my old copy of Wordstar 7.0D loaded and running, just because  8)


andreas_g

Hello all,

I am still looking to improve the accuracy of Previous although you won't notice these improvements in normal operation. If someone wants to do some tests on real hardware then this could be done from ROM Monitor:

Type the following commands and hit return until you reach the limit or you get a bus error. Because a bus error might happen any time please write down the results after every return.

eb 02010000   (until 02010010)
el 02010000   (only once)
eb 0200d000   (until 0200d010)
eb 02014000   (until 02014020)

You should get the same result on any black hardware. So it does not matter what machine you use.

stepleton

I hope this is what you're looking for. NeXT ROM Monitor 3.3 (v74) on a NeXTstation Color Turbo:

CPU MC68040 33 MHz, memory 60 nS
Ethernet address: 0:0:f:1:5b:8c
Memory size 64MB

NeXT>eb 02010000
2010000: 00? ...I hit enter...
...brief flash of 02010001: and screen clears...
Exception #2 (0x8) at pc 0x1000754 sp 0x4000424
faultaddr 0x2010001
NeXT>el 02010000
2010000: 00000000? ...I hit enter...
2010004: 00000000? ...I hit enter...
...is the same through 2010060 before I give up...
2010060: 00000000? ?
NeXT eb 0200d000
200d000: 00? ...I hit enter...
200d001: 00? ...I hit enter...
200d002: 10? ...I hit enter...
200d003: 80? ...I hit enter...
200d004: 00? ...I hit enter...
200d005: 00? ...I hit enter...
200d006: 10? ...I hit enter...
200d007: 80? ...I hit enter...
200d008: 00? ...I hit enter...
200d009: 00? ...I hit enter...
200d00a: 10? ...I hit enter...
200d00b: 80? ...I hit enter...
200d00c: 00? ...I hit enter...
200d00d: 00? ...I hit enter...
200d00e: 10? ...I hit enter...
200d00f: 80? ...I hit enter...
200d010: 00? ?
NeXT>eb 02014000
2014000: 00? ...I hit enter...
2014001: 00? ...I hit enter...
2014002: 02? ...I hit enter...
2014003: 02? ...I hit enter...
2014004: 00? ...I hit enter...
2014005: 00? ...I hit enter...
2014006: c0? ...I hit enter...
2014007: 02? ...I hit enter...
2014008: 00? ...I hit enter...
2014009: 02? ...I hit enter...
201400a: 5f? ...I hit enter...
201400b: 00? ...I hit enter...
201400c: 02? ...I hit enter...
201400d: 02? ...I hit enter...
201400e: 02? ...I hit enter...
201400f: 02? ...I hit enter...
2014010: 00? ?
NeXT>?
NeXT ROM monitor commands:
        p  inspect/modify configuration parameters
...remainder of help text skipped...
NeXT>eb 02010000
2010000: 00? ...I hit enter...
2010001: ...computer locks up hard...


At this point no variation on the NMI key combination works, nor does holding down the power button for any length of time. There is a cursor at the bottom of the monitor window just at the X in 2010001: X, but there is also what looks like a cursor at the top left of the NMI window too.

I hope this helps!

andreas_g

@stepleton
Thank you very much! Yes, this is what I was looking for. I'll try to simulate this behavior except for the last part. I hope you could recover your machine from the stuck condition? I didn't expect that and have no idea what might have happened there. Maybe some kind of bug in the ROM because normally it catches any kind of exception and prints a message just like it did for eb 02010001.

stepleton

No problem. I just had to unplug the computer and plug it back in again and everything was fine.

What do these memory locations do?

andreas_g

Quote from: stepleton on February 18, 2024, 01:33:55 PMWhat do these memory locations do?

02010000 is the brightness register. It is unused on Color systems.

0200d000 is system control register 2. Reading from is does not affect its contents.

0201400x are SCSI controller registers. Reading from them does not adversly affect the system because they would have been reset anyway in case you would have continued with booting.

andreas_g

Quote from: stepleton on February 18, 2024, 09:48:10 AMAt this point no variation on the NMI key combination works, nor does holding down the power button for any length of time. There is a cursor at the bottom of the monitor window just at the X in 2010001: X, but there is also what looks like a cursor at the top left of the NMI window too.

I just tried your sequence in Previous with the same setup. It seems to be indeed a bug in the ROM which can be triggered if more than one bus error occurs. I am getting the same result:

Bildschirmfoto 2024-02-19 um 18.22.03.png